/***********************************************************************************************/
/******************************VARIABLES GLOBALES***********************************************/
/***********************************************************************************************/
var xmlHttp;			//Objeto xmlHTTP para ajax
var IdOperacion;		//Identificador del tipo de operación que se esta realizando
var strControlDst;		//Id. del control destino
var strImgLoading;		//Id. de la imagen de carga, wait for loading.
var strControlName		// Id del control de destino Nombre trabajador
var strControlApe		// Id del control de destino Apellidos trabajador
var strControlMail		// Id del control de destino email trabajador

/***********************************************************************************************/
/*****************************INTERFACES PARA OPERACIONES COMUNES*******************************/
/***********************************************************************************************/

function CargarComboProvinciasAjax(strControlSrc,strDestino,strImagenLoading,strCtrlPrv)
{	

	
	//Se define la operación y el control de destino para siguientes funciones.
	IdOperacion = 0;
	strControlDst = strDestino;
	strImgLoading = strImagenLoading;
	
	
	//Control de origen de datos para obtención del selectValue	
	var controlOrigen = document.getElementById(strControlSrc);
	//Se definen variables para realizar la operacion
	var requestURL = GetUrlServer() + '/FAPB.WEBAjaxPub.PAjax/FAjax.aspx?IdMetodo=Localidades&IdProvincia=';
	var strSel = controlOrigen.options[controlOrigen.selectedIndex].value;			
	
	if (strSel > 0){ 
		//Append the name to search for to the requestURL 
		var url = requestURL + strSel; 		
		
		//Creación del objeto xmlHTTP
		xmlHttp = GetXmlHttpObject(stateChangeHandler); 
		if(xmlHttp){//Si se ha creado correctamente el objeto	
			//Se muestra la imagen de carga
			if(strImagenLoading!=null && strImagenLoading.length>0)//Se muestra la imagen
				document.getElementById(strImagenLoading).style.display="block";
			if(strCtrlPrv!=null && strCtrlPrv.length>0)//Se modifica la prov seleccionada en el campo de texto
				document.getElementById(strCtrlPrv).innerText = strSel;
			//Se envia el xmlHttp get especificando la URL	
			xmlHttp_Get(xmlHttp, url); 
		}
	}else{
		var ddl = document.getElementById(strDestino);
		//Se eliminan todas las opciones del dropdownlist
		for (var i = (ddl.options.length-1); i >= 0; i--)
		{
			ddl.options[i]=null;
		}	
		if(strCtrlPrv!=null && strCtrlPrv.length>0)//Se modifica la prov seleccionada en el campo de texto
			document.getElementById(strCtrlPrv).innerText = '';
	}
}

function CargarComboCentrosAjax(strControlSrc,strDestino,strImagenLoading)
{	
	
	//Se define la operación y el control de destino para siguientes funciones.
	IdOperacion = 0;
	strControlDst = strDestino;
	strImgLoading = strImagenLoading;
	
	
	//Control de origen de datos para obtención del selectValue	
	var controlOrigen = document.getElementById(strControlSrc);
	//Se definen variables para realizar la operacion
	var requestURL = GetUrlServer() + '/FAPB.WEBAjaxPub.PAjax/FAjax.aspx?IdMetodo=Centros&IdProvincia=';	
	var strSel = controlOrigen.options[controlOrigen.selectedIndex].value;		
	
	if (strSel > 0){ 
		//Append the name to search for to the requestURL 
		var url = requestURL + strSel; 				
		
		//Creación del objeto xmlHTTP		
		xmlHttp = GetXmlHttpObject(stateChangeHandler); 		
		if(xmlHttp){//Si se ha creado correctamente el objeto	
			//Se muestra la imagen de carga						
			if(strImagenLoading!=null && strImagenLoading.length>0)//Se muestra la imagen
				document.getElementById(strImagenLoading).style.display="block";					
			//Se envia el xmlHttp get especificando la URL	
			xmlHttp_Get(xmlHttp, url); 
		}
	}else{
		var ddl = document.getElementById(strDestino);
		//Se eliminan todas las opciones del dropdownlist
		for (var i = (ddl.options.length-1); i >= 0; i--)
		{
			ddl.options[i]=null;
		}			
	}
}


function CargarDatosTrabajadorAjax(strControlIPF,strControlNumero,strControlNIETrab,strControlDNITrab,strControlPasaport,strControCCC
,strNombre,strApellido,strMail,strPrvactfor,strDelactfor,strYearactfor,strSecactfor)
{
	//Se define la operación y el control de destino para siguientes funciones.
	IdOperacion = 0;
	strControlName = strNombre;		
	strControlApe = strApellido;		
	strControlMail = strMail;	
	//Control del origen de datos para obtención del selectValue	
	var controltipoIPF = document.getElementById(strControlIPF);
	var controlCCC = document.getElementById(strControCCC);
	var controlNumero = document.getElementById(strControlNumero);
	var controlNIEtrab = document.getElementById(strControlNIETrab);
	var controlDNItrab = document.getElementById(strControlDNITrab);
	var controlPasaport =  document.getElementById(strControlPasaport);	
	var controlPrvactfor = document.getElementById(strPrvactfor);
	var controlDelactfor = document.getElementById(strDelactfor);
	var controlYearactfor = document.getElementById(strYearactfor);
	var controlSecactfor =  document.getElementById(strSecactfor);	
	
	//Se definen variable tipo que controla el proceso
	var strTipo = controltipoIPF.options[controltipoIPF.selectedIndex].value;
	var strCCC = controlCCC.innerHTML;
	var strPrvactfor = controlPrvactfor.value;	
	var strDelactfor = controlDelactfor.value;	
	var strYearactfor = controlYearactfor.value;
	var strSecactfor = controlSecactfor.value;	
		
	//se definen el resto de variables por defecto	
	var strDNI = "";	
	var strNumero = "";	
	var strNIE = "";
	var strPasaport = "";	
	var Continue = 0;	
	
	//se comprueba si estan informados los parametros en base al tipo de IPF seleccionado			
	//NIF
	if(strTipo == 1)
	{
		strNumero = controlNumero.value;
		strDNI = controlDNItrab.options[controlDNItrab.selectedIndex].value;
		if(strNumero == '' || strDNI == '' || strNumero == null)
			Continue = 1;
	}		
	//pasaporte
	else if(strTipo == 2)
	{
		strPasaport = controlPasaport.value;
		if(strPasaport == "" || strPasaport == null)
			Continue = 1;
	}	
	else if(strTipo == 6)
	{		
		//NIE
		strNumero = controlNumero.value;
		strDNI = controlDNItrab.options[controlDNItrab.selectedIndex].value;
		strNIE = controlNIEtrab.value;
		if(strNumero == "" || strDNI == "" || strNIE == "" || strNumero == null)
			Continue = 1;
	}
	if(Continue == 0)
	{	
		//Se definen variables para realizar la operacion
		var requestURL = GetUrlServer() + '/FAPB.WEBAjaxPub.PAjax/FAjax.aspx?IdMetodo=Trabajador&tipoipf=';	
		//Append the name to search for to the requestURL 
		//se genera con un random para evitar que al quedarse en memoria siempre lance la misma
		var url = requestURL + strTipo + '&ccc=' + strCCC + '&nietrab=' + strNIE + '&dnitrab=' + strDNI 
		+ '&numero=' + strNumero + '&pasaport=' + strPasaport + '&prvactfor=' + strPrvactfor + '&delactfor=' + strDelactfor 
		+ '&yearactfor=' + strYearactfor + '&secactfor=' + strSecactfor + '&fantasma=' + Math.random();
		
		//Creación del objeto xmlHTTP		
		xmlHttp = GetXmlHttpObject(stateChangeHandler); 		
		if(xmlHttp)
		{//Si se ha creado correctamente el objeto	
			//Se muestra la imagen de carga						
			//if(strImagenLoading!=null && strImagenLoading.length>0)//Se muestra la imagen
			document.getElementById('imgLoad').style.display="block";					
			//Se envia el xmlHttp get especificando la URL	
			xmlHttp_Get(xmlHttp, url); 
		}
	}
}

/***********************************************************************************************/
/***********************METODOS 'PRIVADOS' TRANSPARENTES AL USUARIOS****************************/
/*****************************PARA EL PROCESAMIENTO DE DATOS************************************/
/***********************************************************************************************/

//Función que se encarga de redireccionar la llamada, al metodo que deba en función 
//del identificador de operación.
function ProcesarXml(xmldoc){	
	if(IdOperacion==0){//Carga de combo
		ProcesarDatosCombo(xmldoc);
	}
}

//Procesar el xml que recibe como parámetro y los inserta en el combo destino.
function ProcesarDatosCombo(xmldoc){	
try{													
	//Obtención del nodo principal del documento xml
	var xmlObj = xmldoc.documentElement;
	
	var ddl = document.getElementById(strControlDst);
	//Se eliminan todas las opciones del dropdownlist
	for (var i = (ddl.options.length-1); i >= 0; i--)
	{
		ddl.options[i]=null;
	}
	
	//Se insertan las nuevas opciones del dropdownlist
	var optn;												
	var i;
	var j;
	//Primer registro vacio
	optn = document.createElement("OPTION");	
	optn.text = "";
	optn.value = "0";
	ddl.options.add(optn);	
	for(i = 0;i<xmlObj.childNodes.length;i++)
	{//Se insertan uno a uno cada uno de los datos del documento xml en el control						
		optn = document.createElement("OPTION");	
		optn.text = xmlObj.childNodes(i).childNodes(0).firstChild.text;
		//alert("texto--" + xmlObj.childNodes(i).childNodes(0).firstChild.text);
		optn.value = xmlObj.childNodes(i).childNodes(1).firstChild.text;
		//alert("value--" + xmlObj.childNodes(i).childNodes(1).firstChild.text);
		ddl.options.add(optn);						
	}
	//Selección del primer registro
	ddl.selectedIndex = 0;	
	if(strImgLoading!=null && strImgLoading.length>0)//Se oculta la imagen
		document.getElementById(strImgLoading).style.display="none";		
}catch(ex)
{
}
}

function GetUrlServer(){
	var strUrlServer = '' + document.location;
	var inicio=0,fin=0;
	
	inicio = strUrlServer.indexOf("/");
	fin = strUrlServer.indexOf("/",inicio + 2);
	
	strUrlServer = strUrlServer.substring(0,fin);	
	
	return strUrlServer;
}


/***********************************************************************************************/
/*********************MÉTODOS PARA CREACIÓN Y PROCESO DEL XMLHTTP*******************************/
/***********************************************************************************************/

//Función que envia un GET request con el XMLHttp
function xmlHttp_Get(xmlhttp, url) { 
	xmlhttp.open('GET', url, true); 
	xmlhttp.send(null);
} 

//Función que obtiene un objeto XmlHTTP adecuado para el navegador del cliente.
function GetXmlHttpObject(handler) { 
	var xmlHttp = false;    //Creamos una instancia del objeto XMLHTTP

	//Se prueba a crear todas las versiones del objeto XMLHTTP
	//hasta encontrar aquella que este instalada en el cliente
	var ids = ["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0",
		"Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP",
		"Microsoft.XMLHTTP"];
	for(var i=0; !xmlHttp && i<ids.length; i++) {
		try { 
			xmlHttp = new ActiveXObject(ids[i]); 
			xmlHttp.onreadystatechange = handler;					
		}catch(ex) { xmlHttp = false; }
	}
			
	//Se devuelve el objeto XMLHTTP
	return xmlHttp; 
} 
		

