// JavaScript Document
// AJAX Client FrameWork
// Author: J. Antonio Rodríguez Landeros, arlander@energia.gob.mx  rodriguez.antonio@gmail.com
// Copyright:  Secretaría de Energía, México; 

// Global Defs

_d=document;
_db=document.body;
_ie = (_d.all) ? 1 : 0;

// Begins :: Paths
_rgi="/GRP2/img/";
_rg="/GRP2/";

// FX Section

function fx_ce(_o,_s){ // Change Style
	var o=di_gE(_o);
	try{
		o.className=_s;
	} catch (e) {}
}

// DOM Interface

function di_gE(_o){ // get Element
    try{
	    return _d.getElementById(_o);
	} catch (e) {}
}
function di_rc(_h,_o){ // Remove Content
	var h=di_gE(_h);
	var o=di_gE(_o);
	if(h!=null){
		if(o!=null){
			try{
				h.removeChild(o);
			} catch(e){}
		}
	}
}
function di_ih(_h,_t){ // set InnerHTML
	var h=di_gE(_h);
	try{
	 h.innerHTML=_t;
	} catch(e) {}
}

// User Interface Section

function ui_rl(_s){ // Relocate URL
	window.location.href=_s;
}

// Remote Socket Section

function rs_cS(){ // Create Socket
	var C=null;
	if (window.XMLHttpRequest) { // Mozilla, Safari, IE7...
		C = new XMLHttpRequest();		
	} else if (window.ActiveXObject) { // IE 6 & 5		
		try {C=new ActiveXObject("Msxml3.XMLHTTP");}catch(e){
			try {C=new ActiveXObject("Msxml2.XMLHTTP");}catch(e){C=new ActiveXObject("Microsoft.XMLHTTP");} 
		}
	}
	return C;
}

function rs_gR(_h,_m,_r){ // get Resource	
	var h=di_gE(_h);
	var _s=rs_cS();	
	function rs_Bind()
	{
		if (_s.readyState==4)
		{
			if (_s.status==200)
			{			
				h.innerHTML=_s.responseText;				
			} else {			   				
			    h.innerHTML="1: No se ha podido contactar al servidor... <br><br>El servidor no ha encontrado el recurso que busca: "+_r;
			}
		}
	}
	if(_s){		
		_s.onreadystatechange=rs_Bind;
		if(!_ie) {
			_s.open("GET",_r,true);
		} else {
			_s.open("POST",_r,true);
		}
		_s.setRequestHeader("Cache-Control","no-cache, must-revalidate, max-age=0");
		_s.setRequestHeader("Expires","Mon, 06 Apr 1978 05:23:42 GMT");
		_s.setRequestHeader("Pragma","no-cache");
		_s.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		_s.send(null);
	} else {
		h.innerHTML="2: No se ha podido contactar al servidor ... <br><br>El servidor no ha encontrado el recurso que busca: "+_r;
	}	
}


function rs_gRR(_m,_r){ // Regresa los puntos para pintarlos en un Mapa de Geoposicionamiento

	var _s=rs_cS();	
	function rs_Bind(){
		if (_s.readyState==4){
			if (_s.status==200){	
				crearPuntos(_s.responseText);
			} else {			   				
			    return "1: No se ha podido contactar al servidor... <br><br>El servidor no ha encontrado el recurso que busca: "+_r;
			}
		}
	}
	if(_s){		
		_s.onreadystatechange=rs_Bind;
		if(!_ie) {
			_s.open("GET",_r,true);
		} else {
			_s.open("POST",_r,true);
		}
		_s.setRequestHeader("Cache-Control","no-cache, must-revalidate, max-age=0");
		_s.setRequestHeader("Expires","Mon, 06 Apr 1978 05:23:42 GMT");
		_s.setRequestHeader("Pragma","no-cache");
		_s.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		_s.send(null);
	} else {
		return "2: No se ha podido contactar al servidor ... <br><br>El servidor no ha encontrado el recurso que busca: "+_r;
	}	
}


function rs_gRGenerica(h,_m,_r, psdm, alto, ancho, funcion){ // get Resource con return value;	


    try
    {
      var control = h.name.substring(0,3);
    }
    catch(err)
    {
        var control = h.id.substring(0,3);
    }
    
	var _s=rs_cS();	
	function rs_Bind(){	    
		if (_s.readyState==4){
		    if (_s.status==200){	
		    
		        if(control=="TBX")
		        {	        
		            h.value = _s.responseText;		            
		        }		        
		        else if(control=="DDL")
		        {	        
		            var returnConsulta = _s.responseText;
		            var ventana = window.location.href;
		            var consultaSplit = returnConsulta.split("|");
		            var valores;
		             h.ClearItems();
		             if(returnConsulta.length > 0)
		             {
		                h.BeginUpdate();
		                var numItems = consultaSplit.length;
		                 for (var i = 0; i < numItems; i++) 
	                     { 	      
	                        valores = consultaSplit[i].split("#");
	                        h.AddItem(valores[1],valores[0]);                    
	                     }
	                     h.EndUpdate();
	                 }
	                 else
	                 {
	                    rs_gRV('GET', 'pp.aspx?psdm=' + psdm);  
	                    h.ClearItems();
	                    h.AddItem('',''); 
	                    if(ventana.match('og.aspx'))
	                    {
                            showPopWin('log2.aspx', ancho, alto, funcion, false);      
                        }
	                    if(ventana.match('og2.aspx'))
	                    {
                            showPopWin('log3.aspx', ancho, alto, funcion, false);      
                        }
                        if(ventana.match('og3.aspx'))
	                    {
                            showPopWin('log4.aspx', ancho, alto, funcion, false);      
                        }
	                 }
		        }
		        else if(control=="div")
		        {	  
		           try
                    {
                      h.innerHTML=_s.responseText;
                    }
                    catch(err)
                    {
                      alert(err);
                    } 		            
		        }		        
		        
			} else {			   				
			    return "1: No se ha podido contactar al servidor... <br><br>El servidor no ha encontrado el recurso que busca: "+_r;
			}
		}
	}
	if(_s){		
		_s.onreadystatechange=rs_Bind;
		if(!_ie) {
			_s.open("GET",_r + '&control=' + control,true);
		} else {
			_s.open("POST",_r + '&control=' + control,true);
		}
		_s.setRequestHeader("Cache-Control","no-cache, must-revalidate, max-age=0");
		_s.setRequestHeader("Expires","Mon, 06 Apr 1978 05:23:42 GMT");
		_s.setRequestHeader("Pragma","no-cache");
		_s.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		_s.send(null);
	} else {
		return "2: No se ha podido contactar al servidor ... <br><br>El servidor no ha encontrado el recurso que busca: "+_r;
	}	
}

function rs_gRV(_m,_r){ // get Resource con return void;	

	var _s=rs_cS();	
	function rs_Bind(){
		if (_s.readyState==4){
			if (_s.status==200){
			    
			} else {			   				
			    return "1: No se ha podido contactar al servidor... <br><br>El servidor no ha encontrado el recurso que busca: "+_r;
			}
		}
	}
	if(_s){		
		_s.onreadystatechange=rs_Bind;
		if(!_ie) {
			_s.open("GET",_r,true);
		} else {
			_s.open("POST",_r,true);
		}
		_s.setRequestHeader("Cache-Control","no-cache, must-revalidate, max-age=0");
		_s.setRequestHeader("Expires","Mon, 06 Apr 1978 05:23:42 GMT");
		_s.setRequestHeader("Pragma","no-cache");
		_s.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		_s.send(null);
	} else {
		return "2: No se ha podido contactar al servidor ... <br><br>El servidor no ha encontrado el recurso que busca: "+_r;
	}	
}

// System Section

function sys_gR(_r){ // System Get Resource
    rs_gR("SESSION","POST",_rg+_r);
}
function sys_gR2(_r,_h){ // System Get Resource
	rs_gR(_h,"POST",_rg+_r);
}
function sys_pH(step){ // System Process Handler	
	rs_gR("PROCESS_HANDLER","POST",_rg+"sys/Process/h.jsp?PROCESS_STEP="+step);
}
function sys_pH(step,args){ // System Process Handler	
	rs_gR("PROCESS_HANDLER","POST",_rg+"sys/Process/h.jsp?PROCESS_STEP="+step+"&"+args);
}
function sys_pH(step,args,handler){ // System Process Handler	
	rs_gR(handler,"POST",_rg+"sys/Process/h.jsp?PROCESS_STEP="+step+"&"+args);
}
