/**
 * Common functions
 **/
function $(e){if(typeof e=='string')e=document.getElementById(e);return e};
function collect(a,f){var n=[];for(var i=0;i<a.length;i++){var v=f(a[i]);if(v!=null)n.push(v)}return n};

/**
 * Ajax functions
 **/

ajax={};

ajax.x = function(){
	try{
		return new ActiveXObject('Msxml2.XMLHTTP')
	}catch(e){
		try{
			return new ActiveXObject('Microsoft.XMLHTTP')
		}catch(e){
			return new XMLHttpRequest()
		}
	}
};

ajax.serialize = function(f){
	var g = function(n){
		return f.getElementsByTagName(n)
	};
	var nv = function(e){
		if(e.name)
			return encodeURIComponent(e.name) + '=' + encodeURIComponent(e.value);
		else
			return ''
	};
	var i = collect(g('input'),
		function(i) {
			if( (i.type != 'radio' && i.type != 'checkbox') || i.checked)
				return nv(i)
		}
	);
	var s = collect(g('select'),nv);
	var t = collect(g('textarea'),nv);
	
	return i.concat(s).concat(t).join('&');
};

ajax.send = function(u,f,m,a){
	var x = ajax.x();
	x.open(m,u,true);
	x.onreadystatechange = function(){
		if(x.readyState == 4)
			f(x.responseText)
	};
	if(m == 'POST')
		x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	x.send(a)
};

ajax.get = function(url,func){
	ajax.send(url, func,'GET')
};

ajax.gets = function(url){
	var x = ajax.x();
	x.open('GET', url, false);
	x.send(null);
	return x.responseText
};

ajax.post = function(url, func, args){
	ajax.send(url, func, 'POST', args)
};

ajax.posts = function(url, args){
	var x = ajax.x();
	x.open('POST', url, false);
	x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	x.send(args);
	return x.responseText;
};

ajax.update = function(url, elm){
	var e = $(elm);
	var f = function(r){
		e.innerHTML=r
	};
	ajax.get(url,f)
};

ajax.submit = function(url, elm, frm){
	var e = $(elm);
	var f = function(r){
		e.innerHTML = r
	};
	ajax.post(url, f, ajax.serialize(frm))
};

ajax.submits = function(url, frm){
	return ajax.posts(url, ajax.serialize(frm));
};


/**
 * www.dansfotter.se functions
 **/
function lookForPosts(theTime) {
	ajax.get("guestbook_checkpost.php?time=" + theTime, updatePostField);
}

function updatePostField(answer) {
	
	var count = parseInt(answer);
	
	if(count > 0) {
		var obj = $("newPostInfo");
		if(obj != null) {
			if(count == 1)
				obj.innerHTML = "<font size='2'><a href='guestbook.php'>&lt;1 nytt inlägg har tillkommit!&gt;</a><br>&nbsp;</font>";
			else
				obj.innerHTML = "<font size='2'><a href='guestbook.php'>&lt;" + count + " nya inlägg har tillkommit!&gt;</a><br>&nbsp;</font>";
		} // */
	}
}

function getCounterValue(inc) {
	ajax.get("counter.php?inc=" + (inc ? 1 : 0), updateCounterValue);
//	alert(ajax.gets("counter.php?inc=" + (inc ? 1 : 0)));
}

function updateCounterValue(answer) {
	var count = parseInt(answer);
//	alert(count);
	if(count > 0) {
		var obj = $("counter");
		if(obj != null) {
			if(count > 0)
				obj.innerHTML = "<font size='5'><strong>" + count + "</strong></font>";
		} // */
	}
}

function nextImg(gal, nbr) {
	ajax.get("imgurl.php?path=" + gal + "&nbr=" + nbr, updateImage);
}

function updateImage(answer) {
	//var url = parseInt(answer);
	var obj = $("galimg");
	if(obj != null) {
//		alert("\"" + answer + "\"");
		obj.src = answer;
	}
}


