var strBrowserAgent_Ajax;

function getHTTPObject() 
{
    //Declaración de variables
    var req;
    req = false;
    
    if(  window.XMLHttpRequest && !(window.ActiveXObject)) 
    {
    	try 
    	{
			req = new XMLHttpRequest();
        } 
        catch(e) 
        {
			req = false;
        }

    } 
    else if(window.ActiveXObject) 
    {
       	try 
       	{
        	req = new ActiveXObject("Msxml2.XMLHTTP");
      	} 
      	catch(e) 
      	{
        	try 
        	{
          		req = new ActiveXObject("Microsoft.XMLHTTP");
        	}
        	catch(e) 
        	{
          		req = false;
        	}
		}
    }
    
    return req;
    
}

function LoadProfessions()
{
	var textoProfesion;
	var blnLoadXML;
	var xmlDoc;
	var objControl;
	var mySerializer;
	var xmlSerializer;
	var searchResult;

	replaceContents(window.document.forms['MainForm'].profesion,'profesion','<SELECT class="TEXTO" name="profesion" id="profesion" onChange="AsignarProfesion()"><OPTION>Cargando...</OPTION></SELECT>');
	document.getElementById("profesion").disabled = true;
		
	var http = getHTTPObject();
	http.open("GET", "DatosMinimos_Accidentes1.asp?hddIDLetra=" + window.document.forms['MainForm'].letras.value , true);


	http.onreadystatechange = function() 
	{	
		if (http.readyState == 4 && http.status == 200)
		{	
			try{
				//Comprobamos la versión del navegador para cargar los datos
				if (strBrowserAgent_Ajax.toLowerCase().indexOf('firefox') > 0 || strBrowserAgent_Ajax.toLowerCase().indexOf('safari') > 0){
					var parser = new DOMParser();
    				xmlDoc = parser.parseFromString('<xml>' + http.responseText + '</xml>',"text/xml");
					blnLoadXML = true;
				} else {
					//Se hace el load del XML
					xmlDoc = new ActiveXObject("msxml2.DOMDocument");
					xmlDoc.preserveWhiteSpace = true;
					blnLoadXML = xmlDoc.loadXML('<xml>' + http.responseText + '</xml>');
				}	
	
				if (blnLoadXML == true) {				
					
					//Recuperamos el valor del combo de Modelos mediante el id del combo
					if (strBrowserAgent_Ajax.toLowerCase().indexOf('firefox') > 0 || strBrowserAgent_Ajax.toLowerCase().indexOf('safari') > 0){
						searchResult = evaluateXPath(xmlDoc, "//xml/SELECT[@id='profesion']");
						mySerializer = new XMLSerializer();
						textoProfesion = mySerializer.serializeToString(searchResult[0]);
					} else {
						searchResult = xmlDoc.selectNodes("//xml/SELECT[@id='profesion']");
						textoProfesion = searchResult[0].xml;
					}
					
					if (strBrowserAgent_Ajax.toLowerCase().indexOf('firefox') > 0){
						replaceContents(window.document.forms['MainForm'].profesion,'profesion',textoProfesion);
					} else {
						document.getElementById("profesion").outerHTML = textoProfesion;
					}
				}
				
			}
			catch (e){alert (e);}
		}
	}
	http.send(null);
	
}



//Función que reemplaza un combo por otro nuevo, para FireFox 
function replaceContents(oldElement,newElementName,newContent){
    var newElement=document.createElement(newElementName);
    newElement.innerHTML=newContent;
    oldElement.parentNode.replaceChild(newElement,oldElement);
}

//Función que realiza una búsqueda mediante XPath para FireFox
function evaluateXPath(aNode, aExpr) {
	
	
	//Declaración de variables
	var xpe = new XPathEvaluator();
	var found = [];
	var res;
	var nsResolver;
	var result;
	
	nsResolver = xpe.createNSResolver(aNode.ownerDocument == null ?	aNode.documentElement : aNode.ownerDocument.documentElement);
	result = xpe.evaluate(aExpr, aNode, nsResolver, 0, null);
	
	while (res = result.iterateNext()) {
		found.push(res);
	}
	return found;
}

function MaintainSession(intSessionTime){
	setTimeout('javascript:GetBlankPage(' + intSessionTime + ')',intSessionTime-60000);
}

function GetBlankPage(intSessionTime){
	//Se encarga de lanzar una petición Ajax a una página vacía para que no caduque la sesión
	var http = getHTTPObject();
	http.open("GET", "/blank.asp", true);
	http.send(null);
	setTimeout('javascript:GetBlankPage(' + intSessionTime + ')',intSessionTime-60000);
}
