var xmlHttp;
var g_query = "";
var ajaxTimeout = null;

function selectDelete(id,ask,url){
	var temp = window.confirm(ask);
	if (temp) //delete
	{
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		{
			alert ("Browser does not support HTTP Request");
			return;
		}
		url=url+id;
		//Handle Timeout Event
		clearTimeout(ajaxTimeout); //Clear Timeout
		ajaxTimeout = setTimeout("onAjaxTimeout();",45000);
		// load 'loading' label
  		document.getElementById('ajax_loader').style.display = 'block';
		xmlHttp.onreadystatechange=stateChanged;
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
}

function selectMenu(str){ 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request");
		return;
	}
	var url="";
	url=url+str;
	//Handle Timeout Event
	clearTimeout(ajaxTimeout); //Clear Timeout
	ajaxTimeout = setTimeout("onAjaxTimeout();",45000);
	// load 'loading' label
  	document.getElementById('ajax_loader').style.display = 'block';
	xmlHttp.onreadystatechange=stateChanged ;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function stateChanged() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{ 
		clearTimeout(ajaxTimeout); //Clear Timeout
		document.getElementById('ajax_loader').style.display = 'none';
		if(xmlHttp.status==404)
    {
    	alert('The requested page does not exist!');
    }
    else
  	{
  		document.getElementById('divresult').innerHTML = xmlHttp.responseText;//"Submit data successful!";       
  	}
	} 
}

function updateCartInfo(str){ 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request");
		return;
	}
	var url="";
	url=url+str;
	//Handle Timeout Event
	clearTimeout(ajaxTimeout); //Clear Timeout
	ajaxTimeout = setTimeout("onAjaxTimeout();",45000);
	// load 'loading' label
  	document.getElementById('ajax_loader').style.display = 'block';
	xmlHttp.onreadystatechange=stateCartInfoChanged ;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function stateCartInfoChanged() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{ 
		clearTimeout(ajaxTimeout); //Clear Timeout
		document.getElementById('ajax_loader').style.display = 'none';
		if(xmlHttp.status==404)
    {
    	alert('The requested page does not exist!');
    }
    else
  	{
  		document.getElementById('divadd2cart').innerHTML = xmlHttp.responseText;//"Submit data successful!";      
  	}
	} 
}

function selectCategory(str){
	g_query = "main.php" + str;
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request");
		return;
	}
	var url="selectcategory.php";
	url=url+str;
	xmlHttp.onreadystatechange=categoryChanged ;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function categoryChanged(){
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{ 
		document.getElementById("divcategory_tree").innerHTML=xmlHttp.responseText;
		selectMenu(g_query);//Load main page when user click on category node
	} 
}

function GetXmlHttpObject(){
	var xmlHttp=null;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	 {
	 //Internet Explorer
	 try
	  {
	  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	  }
	 catch (e)
	  {
	  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	  }
	 }
	return xmlHttp;
}
function getDataValueFromForm(form)
{
	var data = "";
    var elements = form.elements;
	var length = elements.length;
	var i = 0;
	for (i=0; i < length; i++){
		if(elements[i].name!=""){
			if(elements[i].type=='radio'||elements[i].type=='checkbox'){
				if(elements[i].checked){
					data += elements[i].name +"=" + encodeURI(elements[i].value) + "&";
				}
			}
			else{
				data += elements[i].name +"=" + encodeURI(elements[i].value) + "&";
			}
		}
		else if(elements[i].id!="")
		{
			if(elements[i].type=='radio'||elements[i].type=='checkbox'){
				if(elements[i].checked){
					data += elements[i].id +"=" + encodeURI(elements[i].value) + "&";
				}
			}
			else{
				data += elements[i].id +"=" + encodeURI(elements[i].value) + "&";
			}
		}
	}
	return data;
}

function sendHttpRequest(method, url, form){
	var data = getDataValueFromForm(form);
 	makeHttpRequest(method, url, data);
}

function makeHttpRequest(method, url, data) {
    xmlHttp=GetXmlHttpObject();
	  if (xmlHttp==null)
	  {
		  alert ("Browser does not support HTTP Request");
		  return;
	  }
	  document.getElementById('ajax_loader').style.display = 'block';
	  //Handle Timeout Event
	  clearTimeout(ajaxTimeout); //Clear Timeout
	  ajaxTimeout = setTimeout("onAjaxTimeout();",45000);
    xmlHttp.onreadystatechange = setBackContents;
    xmlHttp.open(method, url, true);
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.setRequestHeader("Content-length", data.length);
    xmlHttp.setRequestHeader("Connection", "close");
    xmlHttp.send(data);
}

function setBackContents() {
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
		{
			clearTimeout(ajaxTimeout); //Clear Timeout
			document.getElementById('ajax_loader').style.display = 'none';
			if(xmlHttp.status==404)
      {
      	alert('The requested page does not exist!');
      }
      else
    	{
    		document.getElementById('divresult').innerHTML = xmlHttp.responseText;//"Submit data successful!";  
    	}
   }
}

function sendUpdateCartInfoRequest(method, url, form){
	var data = getDataValueFromForm(form);
 	makeUpdateCartInfoRequest(method, url, data);
}

function makeUpdateCartInfoRequest(method, url, data) {
    xmlHttp=GetXmlHttpObject();
	  if (xmlHttp==null)
	  {
		  alert ("Browser does not support HTTP Request");
		  return;
	  }
	  document.getElementById('ajax_loader').style.display = 'block';
	  //Handle Timeout Event
	  clearTimeout(ajaxTimeout); //Clear Timeout
	  ajaxTimeout = setTimeout("onAjaxTimeout();",45000);
    xmlHttp.onreadystatechange = setBackCartInfoContents;
    if(method.toUpperCase()=="GET")
    {
    	url = url + '?' + data;
	 	xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
	else
	{
		xmlHttp.open(method, url, true);
	    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	    xmlHttp.setRequestHeader("Content-length", data.length);
	    xmlHttp.setRequestHeader("Connection", "close");
	    xmlHttp.send(data);
	}
}

function setBackCartInfoContents() {
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
		{
			clearTimeout(ajaxTimeout); //Clear Timeout
			document.getElementById('ajax_loader').style.display = 'none';
			if(xmlHttp.status==404)
      {
      	alert('The requested page does not exist!');
      }
      else
    	{
    		document.getElementById('divresult').innerHTML = xmlHttp.responseText;//"Submit data successful!";  
    		//call updateCartInfo Menu
    		updateCartInfo('cart_info.php');
    	}
   }
}

function sendLoginRequest(method, url, form){
	var data = getDataValueFromForm(form);
 	makeLoginRequest(method, url, data);
}

function makeLoginRequest(method, url, data) {
    xmlHttp=GetXmlHttpObject();
	  if (xmlHttp==null)
	  {
		  alert ("Browser does not support HTTP Request");
		  return;
	  }
	  document.getElementById('ajax_loader').style.display = 'block';
	  //Handle Timeout Event
	  clearTimeout(ajaxTimeout); //Clear Timeout
	  ajaxTimeout = setTimeout("onAjaxTimeout();",45000);
    xmlHttp.onreadystatechange = setLoginContents;
    if(method.toUpperCase()=="GET")
    {
    	url = url + '?' + data;
	 	xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
	else
	{
			xmlHttp.open(method, url, true);
	    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	    xmlHttp.setRequestHeader("Content-length", data.length);
	    xmlHttp.setRequestHeader("Connection", "close");
	    xmlHttp.send(data);
	}
}

function setLoginContents() {
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
		{
			clearTimeout(ajaxTimeout); //Clear Timeout
			document.getElementById('ajax_loader').style.display = 'none';
			if(xmlHttp.status==404)
      {
      	alert('The requested page does not exist!');
      }
      else
    	{
    		document.getElementById('divlogin').innerHTML = xmlHttp.responseText;//"Submit data successful!";  
    	}
   }
}

function onAjaxTimeout(){
   xmlHttp.abort();
   alert("The Ajax request timed out!. Please try again!");
}

function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked){
			return radioObj.value;
		}
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}