//Httprequest for AJAX
function createXMLHttpRequest()
{
	var obj;
	var aVersions = ["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];
	if(window.ActiveXObject) {
		// IE
		for (var i = 0; i < aVersions.length; i++) {
        	try {
            	var obj = new ActiveXObject(aVersions[i]);
            	return obj;
        	} catch (oError) {
            //Do nothing
        	}
    	}
	}	
	else
		if((window.XMLHttpRequest)) {
		// MOZILLA
		obj = new XMLHttpRequest();
	}
	if(!obj);
		//document.write("error creating object...");
		else
	return obj;
}
var obj = createXMLHttpRequest();

//this function send variables to php (xml.php) in order to create the XML with rows from mysql
//after the XML is created the response() function is called and the result are put on the page
function get_content(goto_page,limit_from)
{		
	//get variables that need to be send to php in order to make mysql selection
	var table=document.getElementById('table').value;
	var where=document.getElementById('where').value;
	var order_by=document.getElementById('order_by').value;
	var asc_desc=document.getElementById('asc_desc').value;
	var page_tpl=document.getElementById('page_tpl').value;	
	var tpl_path=document.getElementById('tpl_path').value;	
	var util_path=document.getElementById('util_path').value;	
	var show_items=document.getElementById('show_items').value;	
	var no_of_rows=document.getElementById('no_of_rows').value;
	var number_of_pages=document.getElementById('number_of_pages').value;
	var navig=document.getElementById('navig').value;

	//for nav 5 and 6
	if(goto_page=="plus") 
	{ 
		goto_page=Number(document.getElementById('current_page_number').value)+Number(1);
	}
	if(goto_page=="minus") 
	{ 
		goto_page=Number(document.getElementById('current_page_number').value)-Number(1); 
	}
	limit_from=(goto_page-1)*show_items;
	//end for nav 5 and 6
	
	//write the number of the page clicked in order to be read in response() function
	document.getElementById('current_page_number').value=goto_page;	
	try
	{
		if(obj) 
		{
			try 
			{		
				document.getElementById('loader').style.visibility="visible";
				url = "util/xml.php?table=" + table + "&where=" + where + "&order_by=" + order_by + "&asc_desc=" + asc_desc + "&limit_from=" + limit_from + "&show_items=" + show_items + "&page_tpl=" + page_tpl + "&tpl_path=" + tpl_path + "&util_path=" + util_path + "&navig=" + navig + "&number_of_pages=" + number_of_pages + "&goto_page=" + goto_page ;
				obj.open("GET",url,true);
				obj.onreadystatechange = response;
				obj.send(null);
			}
			catch(e) { /*alert('can\'t connect to server');*/ }
		}
	} catch(e){}
}

//this function is called after the XML is full with data from mysql
function response()
{
	try
	{		
		if (obj.readyState == 4) // when readyState = 4 the server response is ready
		{ 
			// continue if HTTP status is "OK" 
			if (obj.status == 200) 
			{ 		 	
				try
				{	
					//get the number of elements from XML - one element = 1 row from mysql
					var nr = obj.responseXML.getElementsByTagName("element").length;					
					var display_this='';
					for(i = 0; i < nr; i++)
					{					
						content = obj.responseXML.getElementsByTagName("element")[i].childNodes[0].nodeValue;
						
						display_this=display_this+''+content;						 					
					}			
					//get navigation content
					var navig = obj.responseXML.getElementsByTagName("navig")[0].childNodes[0].nodeValue;

					//write the content from mysql to page					
					document.getElementById('pagination_content').innerHTML=display_this;
					
					//hide loading layer
					//a delay of 200 milliseconds is set in order to avoid the flicker of loading layer when the content is loaded fast
					setTimeout("document.getElementById('loader').style.visibility='hidden'", 200); 
		
					var number_of_pages=document.getElementById('number_of_pages').value;
					var current_page_number=document.getElementById('current_page_number').value;
					var total_nav=document.getElementById('total_nav').value;	

					//change navigation css if nav 4
					if(document.getElementById('navig').value==4)
					{						
						for(b=1;b<=total_nav;b++)
						{
							for(a=1;a<=number_of_pages;a++)
							{
								if(a==current_page_number)
								{
									//change css for current page number - firefox
									document.getElementById('navigation_link'+a+'_'+b).setAttribute('class', 'current');
									//change css for current page number  - Internet explorer
									document.getElementById('navigation_link'+a+'_'+b).setAttribute('className', 'current');
								}
								else
								{
									//change css for the other pages number - firefox
									document.getElementById('navigation_link'+a+'_'+b).setAttribute('class', 'pages');	
									//change css for the other pages number - internet explorer
									document.getElementById('navigation_link'+a+'_'+b).setAttribute('className', 'pages');		
								}								
							}
						} 
					}
					/*end change navigation css if nav 4*/
					//if nav 5 and 6
					if(document.getElementById('navig').value==5 || document.getElementById('navig').value==6)
					{
						for(b=1;b<=total_nav;b++)
						{
							document.getElementById('nav_'+b).innerHTML=navig;
						}
					}
					/*end nav 5 and 6*/
				} 
				catch(e) { }
			} 
			else { /*alert("There was a problem retrieving the data:\n" + obj.statusText); */} 
		} 
	} 
	catch(e){ }	 
}
