﻿/*---------------------------------------------------
 Objetivo: Funciones Personalizadas para el Mapa
 ---------------------------------------------------
*/
 function hidediv(id) {
	//safe function to hide an element with a specified id
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'none';
	}else {
  	 if (document.layers) { // Netscape 4
			document.id.display = 'none';
	 }else { // IE 4
			document.all.id.style.display = 'none';
	 }
	}
 }

 function showdiv(id) {
	//safe function to show an element with a specified id
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'block';
	}else {
	 if (document.layers) { // Netscape 4
			document.id.display = 'block';
	 }else { // IE 4
			document.all.id.style.display = 'block';
	 }
	}
 }

 function showLoadingImage(sender){
  if(sender!=null){showdiv("loadingLayer");}
 }
        
 function hideLoadingImage(sender){
  if(sender!=null){hidediv("loadingLayer");}
 }
        
// Archivo JScript
function sendRequestUbigeo(a,b,c){
   var message = "Ubigeo|"+a+"|"+b+"|"+c;
   var context = 'Map1';
   showdiv("loadingLayer");
   WebForm_DoCallback('__Page',message,processResultUbigeo,context,processMyError,false);
}
function processMyError(returnmessage, context){}
function ClearSelect(id){
    var select = document.getElementById(id);
    select.options.length = 0;
    var htmlDefaultOption = document.createElement("option"); 
    htmlDefaultOption.text = '-- Seleccione --';
	htmlDefaultOption.value = '0';
	try{
	    select.add(htmlDefaultOption);
	}
	catch(e){
	    select.appendChild(htmlDefaultOption);
	}
}
function processResultUbigeo(returnmessage,context){

    var xml;
    try{
        xml = new ActiveXObject("Microsoft.XMLDOM");
        xml.async = "false";
        xml.loadXML(returnmessage);
    }
    catch(e){
        var parser = new DOMParser();
        var xml = parser.parseFromString(returnmessage,"text/xml");
    }
    var responseTags = xml.getElementsByTagName("response");
    var optionsTag = responseTags.item(0);
    var selectId = optionsTag.getElementsByTagName("selectId");
    var id = selectId.item(0);
    var options = optionsTag.getElementsByTagName("option");
    var select = document.getElementById(id.getAttribute("id"));
    select.options.length = 0;
    var htmlDefaultOption = document.createElement("option"); 
    htmlDefaultOption.text = '-- Seleccione --';
	htmlDefaultOption.value = '0';
	try {
	    select.add(htmlDefaultOption);
	}
	catch(e){
	    select.appendChild(htmlDefaultOption);
	}
    for (var i=0; i<options.length; i++) {
	    var option = options.item(i);
	    var htmlOption = document.createElement("option");   
	    htmlOption.text = option.getAttribute("desc");
	    htmlOption.value = option.getAttribute("codigo");
	    try {
	        select.add(htmlOption);
	    }
	    catch(e){
	        select.appendChild(htmlOption);
	    }
    }
    hidediv("loadingLayer");
}
var zoomToCapa = "";
var zoomToCodigo = "";
var zoomToCapaPrevia = "";
var zoomToCodigoPrevia = "";
function setZoomTo(opcion,codigo){
    if(codigo=="0"){
        zoomToCapa = zoomToCapaPrevia;
        zoomToCodigo = zoomToCodigoPrevia;
    }
    else {
        zoomToCapa = opcion;
        zoomToCodigo = codigo;
    }
}
function setZoomToPrevious(idSelect){
    var select = document.getElementById(idSelect);
    if(idSelect=="Departamentos"){
        zoomToCapaPrevia = "Departamentos|CodUbigeoDpto";
        zoomToCodigoPrevia = select.value;
    }
    else if (idSelect=="Provincias"){
        zoomToCapaPrevia = "Provincias|CodUbigeoProvincia";
        zoomToCodigoPrevia = select.value;
    }
    else if (idSelect=="Distritos"){
        zoomToCapaPrevia = "Distritos|CodUbigeoDistrito";
        zoomToCodigoPrevia = select.value;
    }
    return;
}
function UbicarUbigeo(){
    if (zoomToCodigo==""){
        return;
    }
    ZoomToFeature(zoomToCapa,zoomToCodigo);
}
function ZoomToFeature(zoomToCapa,zoomToCodigo){
    var message = "Zoom|"+zoomToCapa+"|"+zoomToCodigo;
    var context = 'Map1';
    window.focus();
    showdiv("loadingLayer");
    WebForm_DoCallback('__Page',message,processCallbackResult,context,processMyError,false);
}

function ZoomAllFeature(zoomToCapa,zoomToCodigo){
    var message = "ZoomAllFeature|"+zoomToCapa+"|"+zoomToCodigo;
    var context = 'Map1';
    window.focus();
    showdiv("loadingLayer");
    WebForm_DoCallback('__Page',message,processCallbackResult,context,processMyError,false);
}

function ExportarMapa(){
    var formato = document.getElementById('Formato');
    var tamanio = document.getElementById('Tamanio');
    var titulo = document.getElementById('Titulo');
    var subtitulo = document.getElementById('SubTitulo');
    var message ="ExportarMapa|servidor=srvarcgis.osinerg.gob.pe|formato="+formato.value+"|tamanio="+tamanio.value+"|titulo="+titulo.value+"|subtitulo="+subtitulo.value;
    var context = 'Map1';
    hideFloatingPanel('Exportar',false,'');
    titulo.value='';
    subtitulo.value='';
    showdiv("loadingLayer");
    WebForm_DoCallback('__Page',message,processResultExportarMapa,context,processMyError,false);
}
function processResultExportarMapa(returnmessage,context){
    
    url = returnmessage;
    hidediv("loadingLayer");
    window.open(url,'_blank','scrollbars=yes,menubar=no,status=yes,height=450,width=600,resizable=yes');
}
function processResultExportarMapa2(returnmessage,context){
    var sXml  = "<?xml version=\"1.0\" ?>" ;
        sXml += "<soap:Envelope "
        sXml += "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " ;
        sXml += "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " ;
        sXml += "xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" ;
        sXml += "<soap:Body>" ;
        sXml += "<ExportarMapa xmlns=\"http://tempuri.org/\">" ;
        sXml += "<args>" + returnmessage + "</args>" ;
        sXml += "</ExportarMapa></soap:Body></soap:Envelope>";
    
//    var xmlObj = new ActiveXObject("Microsoft.XMLDOM");
//    xmlObj.async = "false";
//    xmlObj.loadXML(sXml);
    var xml;
    try {
        xml = new ActiveXObject("Microsoft.XMLDOM");
        xml.async = "false";
        xml.loadXML(sXml);
    } catch(e){
        var parser = new DOMParser();
        var xml = parser.parseFromString(sXml,"text/xml");
    }
    var xmlHTTP;
    if (window.XMLHttpRequest) {
        xmlHTTP = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        try {
            xmlHTTP = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e){
            try {
                xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e){}
        }
    } 
    
    xmlHTTP.Open("Post","http://srvarcgis/TelematicaWSImpresion/App_Services/ExportarMapaService.asmx", false) ;
    xmlHTTP.setRequestHeader("SOAPAction", "http://tempuri.org/ExportarMapa") ;
    xmlHTTP.setRequestHeader("Content-Type", "text/xml; charset=utf-8" ) ;
//    xmlHTTP.Send(xmlObj.xml);
    xmlHTTP.Send(xml);
    
//    var xmlResponse = new ActiveXObject("Microsoft.XMLDOM");
//    xmlResponse.async = "false";
//    xmlResponse.loadXML(xmlHTTP.responseText);
    
    try {
        xml = new ActiveXObject("Microsoft.XMLDOM");
        xml.async = "false";
        xml.loadXML(xmlHTTP.responseText);
    } catch(e){
        var parser = new DOMParser();
        var xml = parser.parseFromString(xmlHTTP.responseText,"text/xml");
    }
    
    var x = xml.getElementsByTagName("ExportarMapaResult")[0];
    y = x.childNodes[0];
    url = y.nodeValue;
    hidediv("loadingLayer");
    window.open(url,'_blank','scrollbars=yes,menubar=no,status=yes,height=450,width=600,resizable=yes');
}
function fnc_ClearGraphics(){
   var message = "ClearGraphics";
   var context = 'Map1';
   showdiv("loadingLayer");
   WebForm_DoCallback('__Page',message,processCallbackResult,context,processMyError,false);
}
function BuscarCCPP(){
    var a = document.getElementById('DepartamentoCCPP');
    var b = document.getElementById('CentroPoblado');
    if (trim(b.value)=="") {
        b.value = "";
        return;
    }
    var message = "BuscarCCPP"+"|"+a.value+"|"+b.value;
    var context = 'Map1';
    hideFloatingPanel('Buscar',false,'');
    showdiv("loadingLayer");
    WebForm_DoCallback('__Page',message,processResultBuscarCCPP,context,processMyError,false);
}
function processResultBuscarCCPP(returnmessage,context){
    var div = document.getElementById('div_Busqueda_CCPP');
    div.innerHTML = returnmessage;
    
    showFloatingPanel('Busqueda_CCPP',false,'');
    hidediv("loadingLayer");
    
}

function GuardarCapaIdentify(param){
  var capa = document.getElementById('DDL_Capa');
      capa.value = param;
  var message ="GuardarCapaIdentify|"+param;
  var context = 'Map1';
  WebForm_DoCallback('__Page',message,processCallbackResult,context,processMyError,false)
}
function processResultGuardarCapaIdentify(){
}
      
function sendCapaIdentify(param){
    var message ="GuardarCapaIdentify|"+param;
    var context = 'Map1';
    WebForm_DoCallback('__Page',message,processResultCapaIdentify,context,processMyError,false);
}
function sendParamsBuffer(){
    var distancia = document.getElementById('Distancia_Buffer');
    var capas = document.getElementById('Capa_Buffer');
    var message ="GuardarParamsBuffer|"+distancia.value+"|"+capas.value;
    var context = 'Map1';
    WebForm_DoCallback('__Page',message,processResultCapaIdentify,context,processMyError,false);
}
function processResultCapaIdentify(returnmessage,context){}
function IrA(){
    var a = document.getElementById('XCoord');
    var b = document.getElementById('YCoord');
    var message = "IrA|"+a.value+"|"+b.value;
    var context = 'Map1';
    showdiv("loadingLayer");
    WebForm_DoCallback('__Page',message,processCallbackResult,context,processMyError,false);
}
function sendMapScale(escala){
    var message = "MapEscala|"+escala;
    var context = 'Map1';
    showdiv("loadingLayer");
    WebForm_DoCallback('__Page',message,processCallbackResult,context,processMyError,false);
}
function processMapSelection(){
    showFloatingPanel('Busqueda_CCPP',false,'');
    map.divObject.style.cursor = "crosshair";
}
function trim(str) {
    var resultstr = "";
    resultstr = str.replace(/^\s*|\s*$/g,"");
    return resultstr;
}
function isNumberKey(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode
    var character = String.fromCharCode(charCode)
    if(isNumeric(character)){
        return true;
    }
    return false;
}
function isNumeric(x) {
    var RegExp = /^(-)?(\d*)(\.?)(\d*)$/; 
    var result = x.match(RegExp);
    return result;
}
