/*
author:	Kristaps Brigmanis-Brigis;
contact: kristaps.brigmanis_at_gmail.com;
*/

//piesienu peles klausiitaaju;
if (document.layers) { // Netscape
	document.captureEvents(Event.MOUSEMOVE);
	document.onmousemove = captureMousePosition;
} else if (document.all) { // Internet Explorer
	document.onmousemove = captureMousePosition;
} else if (document.getElementById) { // Netcsape 6
	document.onmousemove = captureMousePosition;
}
// globalaie mainiigie;
var xMousePos = 0; // Horizontal position of the mouse on the screen
var yMousePos = 0; // Vertical position of the mouse on the screen

function captureMousePosition(e) {
	if (document.layers) {
		xMousePos = e.pageX;
		yMousePos = e.pageY;
	} else if (document.all) {
		xMousePos = window.event.x+document.documentElement.scrollLeft;
		yMousePos = window.event.y+document.documentElement.scrollTop;
	} else if (document.getElementById) {
		xMousePos = e.pageX;
		yMousePos = e.pageY;
	}
	return true;
}


//pasleepj loading divu;
function hideLoadDiv(){
	var elem = document.getElementById(('loading_div'));
	if (elem != null){
		elem.className = "load_neredz";
	}
	
	return true;
}

//paraada loading div;
function showLoadDivCenter(){
	if (document.all){
		//ie;
		var elem = document.getElementById('loading_div');
		
		if (elem != null){
			elem.style.pixelTop = (document.body.clientHeight/2);
			elem.style.pixelLeft = (document.body.clientWidth/2);
			elem.className = "load_redz";
		}
		return true;
	}
		
	if (document.getElementById){
		//firefox;
		var elem = document.getElementById(('loading_div'));
		if (elem != null){
			elem.style.top = window.innerHeight/2 + "px";
			elem.style.left = window.innerWidth/2 + "px";
			elem.className = "load_redz";
		}
		return true;
	}
	
	return true;
}

var xmlHttpObj = null;	//xmlhttp objekts;
var sendMessage = true;
var tdInsertElem = null;	//elements kuraa liek iekshaa datus;
var trInsertElem = null;	//elements kuru attelo/pasleepj
var invisibleClass = null;
var visibleClass = null;
/*
	Funkcija izveido xmlhtmlobject lai nolasiitu no servera foruma apakshtemas;
*/
function getArticleComments(trElemID, tdElemID, classInvisible, classVisible, sadType, articleID, sadalaID, autorizeNeeded){
	if (sendMessage == true){
		tdInsertElem = null;
		trInsertElem = null;
		trInsertElem = document.getElementById(trElemID);
		tdInsertElem = document.getElementById(tdElemID);
		
		if ((trInsertElem != null) && (tdInsertElem != null)){
				invisibleClass = classInvisible;
				visibleClass = classVisible;
				
				if (trInsertElem.className == classVisible){
					trInsertElem.className = classInvisible;
					hideLoadDiv();
					sendMessage = true;
					return true;
				}
				
				showLoadDivCenter();
				sendMessage = false;
				getArticleCommData(sadType, articleID, sadalaID, autorizeNeeded);
		}
		
		return true;
	}
	
	return true;
}

/*izveido xmlhttp objektu*/
function getHmlHttpObject(){
	try{
  		// Firefox, Opera 8.0+, Safari
  		xmlHttpObj=new XMLHttpRequest();
	}
	catch (e){
  		// Internet Explorer
  		try{
    		xmlHttpObj=new ActiveXObject("Msxml2.XMLHTTP");
    	}
  		catch (e){
    		try{
      			xmlHttpObj=new ActiveXObject("Microsoft.XMLHTTP");
      		}
    		catch (e){
      			xmlHttpObj = null;
      			return xmlHttpObj;
      		}
    	}
  	}
	
	if (xmlHttpObj != null){
		xmlHttpObj.onreadystatechange = readyStateChangeFunction;
	}
	
	return xmlHttpObj;
}

/*	tiek izsaukts kad tiek sanjemta atbilde no servera;
	0 - pieprasiijums nav inicializeets;
	1 - pieprasiijums ir sgatavots;
	2 - pieprasiijums ir nosuutiits;
	3 - pieprasiijums ir procesaa;
	4 - pieprasiijums ir pabeigts;
*/
function readyStateChangeFunction(){
	if (xmlHttpObj == null){
		return true;
	}
	
	if(xmlHttpObj.readyState==4){
		//pieprasiijums ir pabeigts;
		var response = xmlHttpObj.responseText;
		//alert(response);
		if (response.length > 6){
			//kaut kas ir
			switch(response.substring(0, 6)){
				case "type=2":
					processData(response);
					break;
				default:
					processError(response);
					break;
					
			}
		}
		
		hideLoadDiv();
		sendMessage = true;
		
		xmlHttpObj = null;
    }

	return true;
}

//funkcija kas palaizh xmlhttp objektu izpildei nolasiit sadalas;
function getArticleCommData(sadType, articleID, sadalaID, autorizeNeeded){
	xmlHttpObj = getHmlHttpObject();
	if (xmlHttpObj != null){
		//ir objekts;
		
		xmlHttpObj.open("get",("./?sID=" + sadalaID + "&sType=" + sadType + "&akc=2&rID=" + articleID + "&aN=" + autorizeNeeded + ""),true); 
		xmlHttpObj.send(null);
		return true;
	}
}

//funkcija kas apstraadaa atgrieztos rezultaatus, kad pieprasa sadalas;
function processData(response){
	if ((response != null) && (response.length > 6)){
		if ((tdInsertElem != null) && (trInsertElem != null)){
			if (tdInsertElem.innerHTML != response.substring(6)){
				tdInsertElem.innerHTML = response.substring(6);
			}
			
			trInsertElem.className = visibleClass;
		}
		return true;
	}
	
	return true;
}

//funkcija kas apstraadaa atgrieztos rezultaatus, kad pieprasa sadalas;
function processError(response){
	if ((response != null) && (response.length > 6)){
		if ((tdInsertElem != null) && (trInsertElem != null)){
			if (tdInsertElem.innerHTML != response.substring(6)){
				tdInsertElem.innerHTML = response.substring(6);
			}
			
			trInsertElem.className = visibleClass;
		}
		return true;
	}

	return true;
}
