//Variables globales
var req1;
var req2;
var req3;
var req4;
var req5;
//===========================================================================================================
  function init() {

        var reqTemp;
        if (window.XMLHttpRequest) {
            reqTemp = new XMLHttpRequest();
            if (reqTemp.overrideMimeType) {
                reqTemp.overrideMimeType('text/xml');
            }
        } else if (window.ActiveXObject) {
            try {
                reqTemp = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    reqTemp = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }
        var url = "../../../AppServlet";
        reqTemp.open("POST", url, true);
        reqTemp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        return reqTemp;
    }//init


//FUNCIONES
    function RegresaAtributo(xmlNode, intAtributo){
	if(xmlNode.nodeType == 1){
        return xmlNode.attributes[intAtributo].nodeValue;
	}
	else if(xmlNode.nodeType == 3){
		return 'nodo tipo 3';
	} else {
            return 'Desconocido';
    }
}

//===========================================================================================================

        //Trae listado de modelos MIO
        function CargaElementsMod(){
        //cadbusqueda  = String(palabras) + "";
        req1 = init();
		req1.onreadystatechange = TraeModelosListener;
		req1.send("TraeModelos");
      }

      
      //Trae listado de modelos MIO
        function FillModType(){
        //cadbusqueda  = String(palabras) + "";
        req2 = init();
		req2.onreadystatechange = TraeModTypeListener;
		req2.send("TraeModType");
      }

           function FillDescarga(modelo,tipo){
           if(modelo =='0'){
            alert("Es necesario seleccionar el modelo de su GPS, para ralizar la descarga...");
           }
           if(tipo =='0'){
            alert("Es necesario seleccionar la versión del mapa de su GPS, para ralizar la descarga...");
           }

        if(modelo !='0' & tipo !='0'){
           if(!confirm(" Esta seguro que la version del mapa es igual a la de su equipo y que el modelo es el mismo que el de su equipo ?  \n\n Una version diferente puede corromper el sistema operativo de su equipo .\n ")){
                   return false;
               }
                  else {
            req3 = init();
            req3.onreadystatechange = DescargaListener;
            req3.send("Descarga=" + modelo + "@@@" + tipo);
                   return false;
          }
       }
    } 

        
        //Trae Foto del modelo seleccionado
        function FillFoto(foto){
        //cadbusqueda  = String(palabras) + "";
        req4 = init();
		req4.onreadystatechange = TraeFotoListener;
		req4.send("TraeFoto=" + foto);
      }
//===========================================================================================================
        function FillCboMod(){
            CargaElementsMod()
        }



       //Carga Modelos de GPS
        function TraeModelosListener(){
        	if (req1.readyState == 4) {
			if (req1.status == 200) {


                    var indexObj = req1.responseXML.getElementsByTagName("TOTAL")[0];
                    var rows = RegresaAtributo(indexObj,0);
                    //var dataObj = req11.responseXML.getElementsByTagName("DATA")[0];
                    //var catBuscada = dataObj.childNodes[0].nodeValue;

                    var strHTML ="<TABLE border='0' align='center'>";
                    
                    var ModidrObj = "";
                    var Mod_FotoObj = "";
                    var lon ="";
                    var Modelo ="";
                    strHTML = strHTML + "<TR>";
                    strHTML = strHTML + "<TD valign='top' align='center' ><select  onchange='FillFoto(this.value)' style='color:black;font-size:9pt;' id='ListaModelos'>";
                    strHTML = strHTML + "<option  value=0 checked=true>---</option>";
                    for (var i = 0;i<rows;i++){
                        var rowObj = req1.responseXML.getElementsByTagName("ROW")[i];
                        ModidrObj = rowObj.getElementsByTagName("modelo_idr")[0];
                        Mod_FotoObj = rowObj.getElementsByTagName("modelo_foto")[0];
                        var sHRegresa = Mod_FotoObj.childNodes[0].nodeValue;
       
                        lon = sHRegresa.indexOf(".") ;
                        Modelo = sHRegresa.substring(0, lon);

                         strHTML = strHTML + "<option value=" + ModidrObj.childNodes[0].nodeValue + " checked=true>" + Modelo + "</option>";

                        }
                        strHTML = strHTML + "</select></TD></TR></TABLE>";
                        var divCboMod = document.getElementById("divCboMod");
                            divCboMod.innerHTML = strHTML;
                       FillModType()
            }
        }
    }


  //Carga Tipos de Mapas de GPS
        function TraeModTypeListener(){
        	if (req2.readyState == 4) {
			if (req2.status == 200) {

                    var indexObj = req2.responseXML.getElementsByTagName("TOTAL")[0];
                    var rows = RegresaAtributo(indexObj,0);
                    //var dataObj = req11.responseXML.getElementsByTagName("DATA")[0];
                    //var catBuscada = dataObj.childNodes[0].nodeValue;

                    var strHTML ="<TABLE border='0' align='center'>";
                    strHTML = strHTML + "<TR>";
                    strHTML = strHTML + "<TD valign='top' align='center' ><select style='color:black;font-size:9pt;' id='ListaTipos'>";
                    strHTML = strHTML + "<option  value=0 checked=true>---</option>";
                    for (var i = 0;i<rows;i++){
                        var rowObj = req2.responseXML.getElementsByTagName("ROW")[i];
                        var ModtipodesObj = rowObj.getElementsByTagName("modelo_tipo")[0];
                        

                        strHTML = strHTML + "<option value="+ ModtipodesObj.childNodes[0].nodeValue + " checked=true>" + ModtipodesObj.childNodes[0].nodeValue + "</option>";

                        }
                        strHTML = strHTML + "</select></TD></TR></TABLE>";
                        var divCboModType = document.getElementById("divCboType");
                            divCboModType.innerHTML = strHTML;
            }
        }
    }

        //Descarga Archivo de Actualización para puntos de interes
        function DescargaListener(){
        	if (req3.readyState == 4) {
			if (req3.status == 200) {

                     var indexObj = req3.responseXML.getElementsByTagName("TOTAL")[0];
                     var rows = RegresaAtributo(indexObj,0);
                     var strHTML="";
                    for (var i = 0;i<rows;i++){
                        var rowObj = req3.responseXML.getElementsByTagName("ROW")[i];
                        var FileNameObj = rowObj.getElementsByTagName("modelo_file_unload")[0];
                        var VersionActualizacionObj = rowObj.getElementsByTagName("modelo_observaciones")[0];

                        var strFile = RegresaValorLista(req3.responseXML, "modelo_file_unload", i);
                        if (strFile=="" ){
                             alert("La descarga de su archivo, no se encuentra disponible, disculpe las molestias que esto le ocasiona... a la brevedad se restablecera su archivo para su descarga correcta, Intente mas tarde Gracias... ");
                             break;
                        }else{
                                strHTML="<b>" + VersionActualizacionObj.childNodes[0].nodeValue +"</b>"
                                window.location="http://www.estoyenelmapa.com/" + FileNameObj.childNodes[0].nodeValue;
                        }
                          var divDesc = document.getElementById("divDesc");
                              divDesc.innerHTML = strHTML;

                      //VentanaSecundaria("http://www.estoyenelmapa.com/" + FileNameObj.childNodes[0].nodeValue)
                 }
            }
        }
    }


//Funcion que realiza validaciones en campos null o vacios dentro de la estructura XML
      function RegresaValorLista(xml, strCampo, indice){
            var strValor="";
            try {
                    var r = xml.getElementsByTagName("ROW")[indice];
                    strValor = r.getElementsByTagName(strCampo)[0].childNodes[0].nodeValue;
                    if (strValor=="null"){
                            strValor="";
                    }
            } catch(err){}
            return strValor;
      }//RegresaValorLista


       //Trae Foto segun Modelo seleccionado
        function TraeFotoListener(){
        	if (req4.readyState == 4) {
			if (req4.status == 200) {

                     var indexObj = req4.responseXML.getElementsByTagName("TOTAL")[0];
                     var rows = RegresaAtributo(indexObj,0);
                     var strHTML="";

                    for (var i = 0;i<rows;i++){
                        var rowObj = req4.responseXML.getElementsByTagName("ROW")[i];
                        var FotoNameObj = rowObj.getElementsByTagName("modelo_foto")[0];

                     strHTML=strHTML + "<img src='../../v4/imgs/" + FotoNameObj.childNodes[0].nodeValue + "'  height='300px'  >";
                 }
                        var divFotoGPS = document.getElementById("divFotoGPS");
                            divFotoGPS.innerHTML = strHTML;

            }
        }
    }


           function VentanaSecundaria (URL){
               window.open(URL ,"Images","width=800,height=450,scrollbars=NO")
            }



         function PoisDate(){
                req5 = init();
                req5.onreadystatechange = PoisDateListener;
                req5.send("PoisDate=1");
         }


         function PoisDateListener(){
               	if (req5.readyState == 4) {
                if (req5.status == 200) {

                     var indexObj = req5.responseXML.getElementsByTagName("TOTAL")[0];
                     var rows = RegresaAtributo(indexObj,0);
                     var strHTML="";
                     var lng=-1;


                for (var i = 0;i<rows;i++){
                        var rowObj = req5.responseXML.getElementsByTagName("ROW")[i];
                        var VersionActualizacionObj = rowObj.getElementsByTagName("modelo_observaciones")[0];
                        var strFind = VersionActualizacionObj.childNodes[0].nodeValue;

                         if (strFind.indexOf("(")>0){
                             lng = strFind.indexOf("(");
                             strHTML = "<p>" + strFind.substring(0, lng) +"</p>"
                        }

                          var divVersion = document.getElementById("divVersion");
                              divVersion.innerHTML = strHTML;

                 }
            }
        }
    }
