var request;
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		return null;
	}
}
/*	NOTE: vra6ta masiv ot vida arr[0]['name']='ivan',arr[0]['id']=5,...
*	ot xml ot vida <root><users><user><name>ivan</name><id>5</id></user></users></root>
*	ako xml e <root><bool>false</bool></root> - vra6ta false
*/
function getTagsAsArray(xml) {
	// alert(xml.childNodes.length);
	var root;
	if (xml == null || xml == undefined) {
		return false;
	}
	root=xml.getElementsByTagName('root')[0].childNodes[0];

	if (root.tagName=='bool' && root.firstChild.nodeValue=='false') {
		return false;
	}
	if (root.tagName=='bool' && root.firstChild.nodeValue=='true') {
		return true;
	}
	var arr=new Array();
	root=xml.getElementsByTagName('root')[0];
	if (root.childNodes.length > 1) {
		for (var k=0;k<root.childNodes.length;k++) {
			arr[k]=new Array();
			for (var i=0;i<root.childNodes[k].childNodes.length;i++) {
				arr[k][i]=new Object;
				var innerXml=root.childNodes[k].childNodes[i];
				for (var j=0;j<innerXml.childNodes.length;j++) {
					if (innerXml.childNodes[j].firstChild!=undefined) {
						arr[k][i][innerXml.childNodes[j].tagName]=innerXml.childNodes[j].firstChild.nodeValue;
					} else {
						arr[k][i][innerXml.childNodes[j].tagName]='';
					}

				}
			}
		}
	} else {
		root=xml.getElementsByTagName('root')[0].childNodes[0];
		for (var i=0;i<root.childNodes.length;i++) {
			arr[i]=new Object;
			var innerXml=root.childNodes[i];
			for (var j=0;j<innerXml.childNodes.length;j++) {
				if (innerXml.childNodes[j].firstChild!=undefined) {
					arr[i][innerXml.childNodes[j].tagName]=innerXml.childNodes[j].firstChild.nodeValue;
				} else {
					arr[i][innerXml.childNodes[j].tagName]='';
				}
			}
		}
	}

	return arr;
}
function debug() {
	if (bDebug == "1") {
		var argv = arguments;
		var argc = argv.length;
		for (var i = 0;i< argc;i++) {
			if (i != 0) {
				document.getElementById('jsDebug').innerHTML += ' -> ';
			}
			document.getElementById('jsDebug').innerHTML += argv[i] + '<br />';
		}
		if (document.getElementById('jsDebug').offsetHeight > 85) {
			document.getElementById('jsDebug').style.height = 85 + "px";
		}
		document.getElementById('jsDebug').scrollTop = document.getElementById('jsDebug').scrollHeight
	}
	// setTimeout(function() { throw new Error("[debug] " + aMsg); }, 0);
}

function getNewMessages() {
	requestMsg=getXmlHttpRequestObject();
	var url = serverPath+'ajax/getNewMessages.php';
	requestMsg.onreadystatechange=newMessagesStateChanged;
	requestMsg.open("GET",url,true);
	requestMsg.setRequestHeader("Accept-Language", "bg, en");
	requestMsg.setRequestHeader("Accept-Charset", "utf8");
	requestMsg.send(null);

	return false;
}
function newMessagesStateChanged() {
	if (requestMsg.readyState==4 || requestMsg.readyState=="complete") {
		document.getElementById('msgNotify').innerHTML = requestMsg.responseText;
	}
}

function getNewMessagesExtra() {
	getNewMessages();
	setTimeout('getNewMessagesExtra();',60000);
}

function hidePhoto(id) {
	document.getElementById(id).style.display = 'none';
}
function showPhoto(id,src,e) {
	document.getElementById(id).firstChild.src = src;
	document.getElementById(id).style.display = '';
	var mouse = getMouse(e);
	document.getElementById(id).style.top = mouse[1]+2+'px';
	document.getElementById(id).style.left = mouse[0]+2+'px';
}
function getMouse(e) {
	var posx = 0;
	var posy = 0;
	if (!e) e = window.event;
	if (e.pageX || e.pageY) 	{
		posx = e.pageX;
		posy = e.pageY;
	} else if (e.clientX || e.clientY) 	{
		posx = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
	// posx and posy contain the mouse position relative to the document
	// Do something with this information
	return [posx,posy];
}
function debug() {
	if (bDebug == "1") {
		var argv = arguments;
		var argc = argv.length;
		for (var i = 0;i< argc;i++) {
			if (i != 0) {
				document.getElementById('jsDebug').innerHTML += ' -> ';
			}
			document.getElementById('jsDebug').innerHTML += argv[i] + '<br />';
		}
		if (document.getElementById('jsDebug').offsetHeight > 85) {
			document.getElementById('jsDebug').style.height = 85 + "px";
		}
		document.getElementById('jsDebug').scrollTop = document.getElementById('jsDebug').scrollHeight
	}
	// setTimeout(function() { throw new Error("[debug] " + aMsg); }, 0);
}
function getTagsAsArray(xml) {
	// alert(xml.childNodes.length);
	var root;
	if (xml == null || xml == undefined) {
		return false;
	}
	root=xml.getElementsByTagName('root')[0].childNodes[0];

	if (root.tagName=='bool' && root.firstChild.nodeValue=='false') {
		return false;
	}
	if (root.tagName=='bool' && root.firstChild.nodeValue=='true') {
		return true;
	}
	var arr=new Array();
	root=xml.getElementsByTagName('root')[0];
	if (root.childNodes.length > 1) {
		for (var k=0;k<root.childNodes.length;k++) {
			arr[k]=new Array();
			for (var i=0;i<root.childNodes[k].childNodes.length;i++) {
				arr[k][i]=new Object;
				var innerXml=root.childNodes[k].childNodes[i];
				for (var j=0;j<innerXml.childNodes.length;j++) {
					if (innerXml.childNodes[j].firstChild!=undefined) {
						arr[k][i][innerXml.childNodes[j].tagName]=innerXml.childNodes[j].firstChild.nodeValue;
					} else {
						arr[k][i][innerXml.childNodes[j].tagName]='';
					}

				}
			}
		}
	} else {
		root=xml.getElementsByTagName('root')[0].childNodes[0];
		for (var i=0;i<root.childNodes.length;i++) {
			arr[i]=new Object;
			var innerXml=root.childNodes[i];
			for (var j=0;j<innerXml.childNodes.length;j++) {
				if (innerXml.childNodes[j].firstChild!=undefined) {
					arr[i][innerXml.childNodes[j].tagName]=innerXml.childNodes[j].firstChild.nodeValue;
				} else {
					arr[i][innerXml.childNodes[j].tagName]='';
				}
			}
		}
	}

	return arr;
}
