//////////////////////////////////////
//									//
//									//
//	AJAX functions by ignacioROJAS	//
//									//
//									//
//////////////////////////////////////

/*

  Start up :
  ----------
  onload="ajax('index');" be sure to configure the switch with the file that you want to start with.- #1
  
  Links : 
  -------
  onclick="ajax('load','display-layer','link','preload-layer');"
  
  Posts :
  -------
  onclick="ajax('post',formName,'link','display-layer','preload-layer');"

*/
function ajax(){
  var args = ajax.arguments;
  http_request = false;  
  if(window.ActiveXObject){
    try{
	  http_request = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
      try{
        http_request = new ActiveXObject("Msxml2.XMLHTTP");
      }catch(e){
		http_request = false;  
	  }
    }	
  }else if(window.XMLHttpRequest){
	try{
	  http_request = new XMLHttpRequest();	
	}catch(e){
	  http_request = false;	
	}  
  }else{
    http_request = false;	  
  }
  
  if(!http_request){  
	return false;  
  }
  
  switch(args[0]){	
	case "load" : dLYR = document.getElementById(args[1]);
  	              pLYR = document.getElementById(args[3]);
				  http_request.onreadystatechange = ajaxRequest;
				  http_request.open("GET", args[2], true);				  
				  http_request.send(null);				  
	  break;
	case "post" : dLYR = document.getElementById(args[3]);
  	              pLYR = document.getElementById(args[4]);
				  var parameters = makePostString(args[1]);
				  http_request.onreadystatechange = ajaxRequest;
				  http_request.open('POST', args[2], true);
    			  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    			  http_request.setRequestHeader("Content-length", parameters.length);
    			  http_request.setRequestHeader("Connection", "close");
				  http_request.send(parameters);
	  break;
	case "index" : ajax('load','mainLYR','php_index.php','preloadLYR'); //<-- Here you config the index.-
	  break;
  }
}

function ajaxRequest(){
  if(http_request.readyState == 0){
	pLYR.style.visibility = "visible";
	pLYR.innerHTML = "No iniciado";
  }else if(http_request.readyState == 1){	
    pLYR.style.visibility = "visible";
	pLYR.innerHTML = "<img src='images/animation.gif' width='16' height='16'> Procesando";
  }else if(http_request.readyState == 2){
	pLYR.style.visibility = "visible";
	pLYR.innerHTML = "Cargado";  
  }else if(http_request.readyState == 3){
	pLYR.style.visibility = "visible";
	pLYR.innerHTML = "<img src='images/animation.gif' width='16' height='16'> Cargando";  
  }else if(http_request.readyState == 4 && http_request.status == 200){ 
	pLYR.style.visibility = "hidden";
	dLYR.innerHTML = http_request.responseText;
  }else{
	alert("Ha ocurrido un error!..");  
	return false;
  }
}

function makePostString(obj){
  var i;  
  var counter = obj.elements.length;
  var str = "";  
  for(i = 0; i < counter; i++){
      switch(obj.elements[i].type){
        case "text" : str += obj.elements[i].name + "=" + escape(obj.elements[i].value) + "&";
		  break;
        case "password" : str += obj.elements[i].name + "=" + escape(obj.elements[i].value) + "&";
		  break;
		case "checkbox" : if(obj.elements[i].checked){
		                    str += obj.elements[i].name + "=" + escape(obj.elements[i].value) + "&";
						  }
		  break;
		case "radio": if(obj.elements[i].checked){
		                str += obj.elements[i].name + "=" + escape(obj.elements[i].value) + "&";
					  }
		  break;
		case "textarea" : str += obj.elements[i].name + "=" + escape(obj.elements[i].value) + "&";
		 break;
        case "select-one" : str += obj.elements[i].name + "=" + escape(obj.elements[i].value) + "&";
		  break;
        case "hidden" : str += obj.elements[i].name + "=" + escape(obj.elements[i].value) + "&";
          break;
		case "file" : str += obj.elements[i].name + "=" + escape(obj.elements[i].value) + "&";
          break;  
		default : break;		 
	  }	 
  }  
  str = str.substring(0,str.length-1);
  return str;
}
