var chatURL = "request_cont.php";
var xmlHttpGetCont = createXmlHttpRequestObjekt();
var xmlHttpGetCat = createXmlHttpRequestObjekt();
var xmlHttpAddComment = createXmlHttpRequestObjekt();
var xmlHttpRequestAfisha = createXmlHttpRequestObjekt();
var debugMode = true;
var cache = new Array();
var cacheCat = new Array();
var updateInterval = 1000;
var activeGr = 1;
var activeAf = 1;
var kilk = 10;
var numP = 1;

function createXmlHttpRequestObjekt()
{
	var xmlHttp;
	try
	{
		xmlHttp = new XMLHttpRequest();
	}
	catch(e)
	{
		var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
										"MSXML2.XMLHTTP.5.0",
										"MSXML2.XMLHTTP.4.0",
										"MSXML2.XMLHTTP.3.0",
										"MSXML2.XMLHTTP",
										"Microsoft.XMLHTTP");
		for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) 
		{
			try 
			{ 
				xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
			} 
			catch (e) {} 
		}
	}
	if (!xmlHttp)
		alert("Error creating the XMLHttpRequest object.");
	else 
		return xmlHttp;
}

function requestContId(idCat,lang,numPN,kilkN)
{
	if (xmlHttpGetCont)
	{
		try
		{
			if (xmlHttpGetCont.readyState == 4 || xmlHttpGetCont.readyState == 0)
			{
				var params="";
				if (idCat!="" )
				{
				    params =  "mode=RetrieveNew&idCat=" + encodeURIComponent(idCat) + "&lang=" + lang + "&numP=" + numPN + "&kilk=" + kilkN;
					kilk = kilkN;
					numP = numPN;
					cache.push(params);
				}
				if (cache.length>0){ 
					params = cache.shift();
					xmlHttpGetCont.open("POST", chatURL, true);
					xmlHttpGetCont.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
					xmlHttpGetCont.onreadystatechange = handleRecievingCont;
					xmlHttpGetCont.send(params);
				}			
			}
			else
			{
				setTimeout("requestContId(" + idCat + "," + lang + "," + numPN + "," + kilkN + ");",updateInterval);
			}
		}
		catch(e)
		{
			displayError("1"+e.toString());
		}
	}
}


function handleRecievingCont()
{
	if (xmlHttpGetCont.readyState == 4)
	{
		if (xmlHttpGetCont.status == 200)
		{
			try
			{
				readCont();
			}
			catch (e)
			{
				displayError("2"+e.toString());
			}
		}
		else
		{
			displayError("3"+xmlHttpGetCont.statusText);
		}
	}
}


function readCont()
{
	var response = xmlHttpGetCont.responseText;
	if (response.indexOf("ERNO")>=0
		 || response.indexOf("error")>=0
		  || response.length==0)
		 throw(response.length == 0 ? "Server error." : response);
	response = xmlHttpGetCont.responseXML.documentElement;
	cidItem = response.getElementsByTagName("cid").item(0).firstChild.data;
	langItem = response.getElementsByTagName("lang").item(0).firstChild.data;
    nameKatItem = response.getElementsByTagName("namekat").item(0).firstChild.data;
	countItem = response.getElementsByTagName("count").item(0).firstChild.data;
	idArray = response.getElementsByTagName("id");
	topArray = response.getElementsByTagName("top");
	nameArray = response.getElementsByTagName("name");
	grArray = response.getElementsByTagName("namegr");
    grIdArray = response.getElementsByTagName("idgr");
	var oResultsDoc = document.getElementById('centrbodyPan');
	var oLang = document.getElementById('lang').value;
	oResultsDoc.innerHTML = "";
	if (oLang == "ua")
	{
		view = "Переглянути";
		seleсt = "Показувати на сторінці";
        add_institution = 'Додати заклад';
	}else if (oLang == "ru")
	{
		view = "Просмотр";
		seleсt = "Показать на странице";
        add_institution = 'Добавить заведение';
	}else if (oLang == "pl")
	{
		view = "Przeglad";
		seleсt = "Pokazac na stronie";
        add_institution = 'Dodać zakład';
	}else if (oLang == "en")
	{
		view = "Viewing";
		seleсt = "Show on page";
        add_institution = 'Add an institution';
	}
	var struktTable = "";
	var sel ="";
    sel += "<h3>" + nameKatItem + "</h3>";
	sel += "<div id=\"sel1\" align=\"right\"><b>" + seleсt + "</b>&nbsp;&nbsp;<select size=\"1\" length=\"10\"name=\"sp_k\"  onchange=\"requestContId(" + cidItem + ",'" + oLang + "',1,this.value);\">";
	if (kilk == 10) {
	sel +="<option value=\"10\">10</option><option value=\"15\">15</option><option value=\"20\">20</option>";
	}else 	if (kilk == 15) {
	sel +="<option value=\"15\">15</option><option value=\"10\">10</option><option value=\"20\">20</option>";
	}else 	if (kilk == 20) {
	sel +="<option value=\"20\">20</option><option value=\"10\">10</option><option value=\"15\">15</option>";
	}
	sel +="</select></div>";
	for (var k=1; k<=countItem; k++)
	{
		sel += "&nbsp;&nbsp;&nbsp;<b><a href=\"javascript:requestContId(" + cidItem + ",'" + oLang + "'," + k + "," + kilk + ")\">" + k.toString() + "</a></b>";
	}
	struktTable += sel + "<hr>";
	var htmlNews = "";
	for (var i=0; i<idArray.length; i++)
	{
		var id = idArray.item(i).firstChild.data.toString();
		var name = nameArray.item(i).firstChild.data.toString();
		var top = topArray.item(i).firstChild.data.toString();
		var gr = grArray.item(i).firstChild.data.toString();
		if (top == 1){
			htmlNews += "<div style=\"background-color: #FFFF9F; border:1px dotted #000000; padding: 10px 10px 10px 10px;\"><center><h4>" + name + "</h4>" + grArray.item(i).firstChild.data.toString() + "</center><br><right><a href=\"index.php?lang=" + oLang + "&part=cont&id=" + id + "&cid=" + grIdArray.item(i).firstChild.data.toString() + "&param=" + cidItem + "-" + numP + "-"+ kilk + "\">" + view + ">></a></div>";
		}
		else
		{
			htmlNews += "<center><h4>" + name + "</h4>" + grArray.item(i).firstChild.data.toString() + "</center><p align=\"right\"><a href=\"index.php?lang=" + oLang + "&part=cont&id=" + id + "&cid=" + grIdArray.item(i).firstChild.data.toString() + "&param=" + cidItem + "-" + numP + "-"+ kilk + "\"><img src=\"images/read_more_" + oLang + ".png\" /></a></p><hr>";
		}
	}
	struktTable += htmlNews;
	sel = "";
	for (var k=1; k<=countItem; k++)
	{
		sel += "&nbsp;&nbsp;&nbsp;<b><a href=\"javascript:requestContId(" + cidItem + ",'" + oLang + "', " + k + " ," + kilk + ")\">" + k.toString() + "</a></b>";
	}
	struktTable += sel;
    struktTable += "<p align=\"right\"><a href=\"contacts.php?lang=" + oLang + "&part=add\">" + add_institution + "</a></p>";
	oResultsDoc.innerHTML += struktTable;
}

function requestCatId(idCat,lang)
{
	if (xmlHttpGetCat)
	{
		try
		{
			if (xmlHttpGetCat.readyState == 4 || xmlHttpGetCat.readyState == 0)
			{
				var params="";
				if (idCat!="" )
				{
				    params =  "mode=RetrieveCat&idCat=" + encodeURIComponent(idCat) + "&lang=" + lang;
					cacheCat.push(params);
				}
				if (cacheCat.length>0){
					params = cacheCat.shift();
					xmlHttpGetCat.open("POST", chatURL, true);
					xmlHttpGetCat.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
					xmlHttpGetCat.onreadystatechange = handleRecievingCat;
					xmlHttpGetCat.send(params);
				}
			}
			else
			{
				setTimeout("requestCatId(" + idCat + "," + lang + ");",updateInterval);
			}
		}
		catch(e)
		{
			displayError("1"+e.toString());
		}
	}
}


function handleRecievingCat()
{
	if (xmlHttpGetCat.readyState == 4)
	{
		if (xmlHttpGetCat.status == 200)
		{
			try
			{
				readCat();
			}
			catch (e)
			{
				displayError("2"+e.toString());
			}
		}
		else
		{
			displayError("3"+xmlHttpGetCont.statusText);
		}
	}
}

function readCat()
{
	var response = xmlHttpGetCat.responseText;
	if (response.indexOf("ERNO")>=0
		 || response.indexOf("error")>=0
		  || response.length==0)
		 throw(response.length == 0 ? "Server error." : response);
	response = xmlHttpGetCat.responseXML.documentElement;
	cidItem = response.getElementsByTagName("cid").item(0).firstChild.data;
	langItem = response.getElementsByTagName("lang").item(0).firstChild.data;
	idCatArray = response.getElementsByTagName("idcat");
	nameCatArray = response.getElementsByTagName("namecat");
	var strDiv = cidItem.toString() + "_cont";
    var oResultsDoc = document.getElementById(strDiv);

	strDiv_z = activeGr + "_cont";
	//document.getElementById(strDiv).innerHTML = "<p>&nbsp;</p>";
    animatedcollapse.hide(strDiv_z);

	activeGr = cidItem;
	oResultsDoc.innerHTML = "";
	struktSp = "<table width=\"100%\" align=\"center\">";
	htmlNews = "";
	for (var i=0; i<idCatArray.length; i++)
	{
		id = idCatArray.item(i).firstChild.data.toString();
		name = nameCatArray.item(i).firstChild.data.toString();
		htmlNews += "<tr><td><a href=\"javascript:requestContId(" + id + ",'" + langItem + "', 1, 10)\" style=\"text-decoration:none;\" >" + name + "</a></td></tr>";

	}
	struktSp += htmlNews + "</table>";
	oResultsDoc.innerHTML += struktSp;

	animatedcollapse.show(strDiv);
}

function addComment(idNews,lang)
{	
	if (xmlHttpAddComment)
	{
		try
		{
			if (xmlHttpAddComment.readyState == 4 || xmlHttpAddComment.readyState == 0)
			{

					xmlHttpAddComment.open("POST", chatURL, true);
					xmlHttpAddComment.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
					xmlHttpAddComment.onreadystatechange = handleAddComment;
					xmlHttpAddComment.send("mode=AddComment&autor=" + document.getElementById('autorc').value + "&email=" + document.getElementById('email').value + "&idNews=" + idNews + "&lang=" + lang + "&text=" + document.getElementById('text_mes').value);
			}
		}
		catch(e)
		{
			displayError("1"+e.toString());
		}
	}
}

function handleAddComment()
{
	if (xmlHttpAddComment.readyState == 4)
	{
		if (xmlHttpAddComment.status == 200)
		{
			try
			{
				readResAddComment();
			}
			catch (e)
			{
				displayError("2"+e.toString());
			}
		}
		else
		{
			displayError("3"+xmlHttpAddComment.statusText);
		}
	}
}

function readResAddComment()
{
	var response = xmlHttpAddComment.responseText;
	if (response.indexOf("ERNO")>=0
		 || response.indexOf("error")>=0
		  || response.length==0)
		 throw(response.length == 0 ? "Server error." : response);
	response = xmlHttpAddComment.responseXML.documentElement;
	err1 = response.getElementsByTagName("err1").item(0).firstChild.data;
	err2 = response.getElementsByTagName("err2").item(0).firstChild.data;
	err3 = response.getElementsByTagName("err3").item(0).firstChild.data;
	res = response.getElementsByTagName("res").item(0).firstChild.data;
	r = response.getElementsByTagName("r").item(0).firstChild.data;
	if (err1 == 0) 
	{
		document.getElementById('err1').innerHTML = "";
		
	}
	else {document.getElementById('err1').innerHTML = "<font style=\"color: red;\">" + err1 + "</font>";
	}
	if (err2 == 0) 
	{
		document.getElementById('err2').innerHTML = "";
		
	}
	else {document.getElementById('err2').innerHTML = "<font style=\"color: red;\">" + err2 + "</font>";
	}	
	if (err3 == 0) 
	{
		document.getElementById('err3').innerHTML = "";
		
	}
	else {document.getElementById('err3').innerHTML = "<font style=\"color: red;\">" + err3 + "</font>";
	}
	if (r == 0){
		document.getElementById('res').innerHTML = "<center><b><font style=\"color: red;\">" + res + "</font></b></center>";
	}
	else
	{
		document.getElementById('res').innerHTML = "<center><b>" + res + "</b></center>";
		document.getElementById('autorc').value = "";
		document.getElementById('email').value = "";
		document.getElementById('text_mes').value = "";
		history.go(0);
	}
}

function requestAfisha(idAfisha,lang)
{	
	if (xmlHttpRequestAfisha)
	{
		try
		{
			if (xmlHttpRequestAfisha.readyState == 4 || xmlHttpRequestAfisha.readyState == 0)
			{

					xmlHttpRequestAfisha.open("POST", chatURL, true);
					xmlHttpRequestAfisha.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
					xmlHttpRequestAfisha.onreadystatechange = handleRequestAfisha;
					xmlHttpRequestAfisha.send("mode=RequestAfisha&id=" + idAfisha + "&lang=" + lang);				
			}		
		}
		catch(e)
		{
			displayError("1"+e.toString());
		}
	}
}

function handleRequestAfisha()
{
	if (xmlHttpRequestAfisha.readyState == 4)
	{
		if (xmlHttpRequestAfisha.status == 200)
		{
			try
			{
				readResRequestAfisha();
			}
			catch (e)
			{
				displayError("2"+e.toString());
			}
		}
		else
		{
			displayError("3"+xmlHttpRequestAfisha.statusText);
		}
	}
}

function readResRequestAfisha()
{
	var response = xmlHttpRequestAfisha.responseText;
	if (response.indexOf("ERNO")>=0
		 || response.indexOf("error")>=0
		  || response.length==0)
		 throw(response.length == 0 ? "Server error." : response);
	response = xmlHttpRequestAfisha.responseXML.documentElement;
	cidItem = response.getElementsByTagName("cid").item(0).firstChild.data;
	langItem = response.getElementsByTagName("lang").item(0).firstChild.data;
	idArray = response.getElementsByTagName("id");
	nameArray = response.getElementsByTagName("name");	
	strDiv = "afisha" + activeAf;
	document.getElementById(strDiv).innerHTML = "";
	activeAf = cidItem;	
	var htmlAfisha = "";
	for (var i=0; i<idArray.length; i++)
	{
		var id = idArray.item(i).firstChild.data.toString();
		var name = nameArray.item(i).firstChild.data.toString();
		htmlAfisha += "<a href=\"?lang=" + langItem + "&part=cont&id=" + id + "\">" + name + "</a>";
	}	
	strDiv = "afisha" + cidItem;
	document.getElementById(strDiv).innerHTML = htmlAfisha;
}

function displayError(message)
{
	alert("Ошибка доступу к серверу!" + (debugMode ? "<br/>" + message : ""));
}

function trim(s)
{
	return s.replace(/(^s+)|(\s+$)/g,"");
}
