
var CHAR_OPEN_QUESTION_MARK = String.fromCharCode(191);
var CHAR_QUOTE = String.fromCharCode(34);
var CHAR_enye = String.fromCharCode(241);
var CHAR_ENYE = String.fromCharCode(209);
var CHAR_aTilde = String.fromCharCode(225);
var CHAR_eTilde = String.fromCharCode(233);
var CHAR_iTilde = String.fromCharCode(237);
var CHAR_oTilde = String.fromCharCode(243);
var CHAR_uTilde = String.fromCharCode(250);
var CHAR_ATilde = String.fromCharCode(193);
var CHAR_ETilde = String.fromCharCode(201);
var CHAR_ITilde = String.fromCharCode(205);
var CHAR_OTilde = String.fromCharCode(211);
var CHAR_UTilde = String.fromCharCode(218);


///////////////////////////////////////////////////////////////////////////////////////////////
// Código para controlar que una vez enviada una página, esta no se pueda volver a enviar
// hasta que no se procese la primera petición.
///////////////////////////////////////////////////////////////////////////////////////////////
var Flag_Submit = false;

function SaveScroll() {
    if (APP_HIDDEN_SCROLL_TOP != null) {
        APP_HIDDEN_SCROLL_TOP.value = document.documentElement.scrollTop;
    }
    if (APP_HIDDEN_SCROLL_LEFT != null) {
        APP_HIDDEN_SCROLL_LEFT.value = document.documentElement.scrollLeft;
    }
}

function SetScroll() {
    if (APP_HIDDEN_SCROLL_TOP != null) {
        document.documentElement.scrollTop = APP_HIDDEN_SCROLL_TOP.value;
    }
    if (APP_HIDDEN_SCROLL_LEFT != null) {
        document.documentElement.scrollLeft = APP_HIDDEN_SCROLL_LEFT.value;
    }
}

function DOC_FORM() { return document.forms[0]; }

function Set_Event_Submit() {
    //var theform = document.all.tags("FORM")[0];
    DOC_FORM().onsubmit = form_BeforeSubmit;
}

function form_BeforeSubmit() {
    var e = window.event;

    if (Flag_Submit == false) {

        if (arguments.length == 0)
            Flag_Submit = true;

        SaveScroll();
        if (typeof (e) != "undefined" && e != null) {
            e.returnValue = true;
        }
        return true;
    } else {

        if (e == null | typeof (e) == "undefined") { return false; }

        if (typeof (e.returnValue) != "undefined")
            e.returnValue = false;

        if (typeof (e.preventDefault) != "undefined")
            e.preventDefault();

        return false;
    }
}

function __MySubmit() {
    var b;

    if (arguments.length > 0)
        b = form_BeforeSubmit(arguments[0]);
    else
        b = form_BeforeSubmit();

    if (b) {
        DOC_FORM().submit();
    }
}

function __MydoPostBack(eventTarget, eventArgument) {
    var et, ea;

    et = document.getElementById("__EVENTTARGET");
    if (et == null) {
        et = document.createElement("<input type='HIDDEN' name='__EVENTTARGET' value='' />")
        DOC_FORM().insertAdjacentElement("AfterBegin", et);
    }

    ea = document.getElementById("__EVENTARGUMENT");
    if (ea == null) {
        ea = document.createElement("<input type='HIDDEN' name='__EVENTARGUMENT' value='' />")
        DOC_FORM().insertAdjacentElement("AfterBegin", ea);
    }

    et.value = eventTarget;
    ea.value = eventArgument;
    //El submit debe hacerse en la función origen, después de llamar a __MydoPostBack
    //__MySubmit();   o bien usar __MydoPostBack__MySubmit
}

function __MydoPostBack__MySubmit(eventTarget, eventArgument) {
    __MydoPostBack(eventTarget, eventArgument);

    if (eventArgument != null
	    && typeof (eventArgument) != "undefined") {
        var low = eventArgument.toLowerCase();
        if (low == "excel" || low == "html" || low == "word"
	       || low == "xml" || low == "pdf" || low == "imprimir"
	       || low == "ozi" || low == "shp") {
            //EVITAMOS QUE Flag_Submit SE PONGA A TRUE
            //PARA GENERAR ARCHIVOS
            __MySubmit(eventArgument);
        }
        else
            __MySubmit();
    }
    else
        __MySubmit();
}

///////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////


function OcultarInfoStatus() {

    if (typeof (APP_lblInfoStatus) != "undefined") {
        if (APP_lblInfoStatus != null) {
            if (APP_lblInfoStatus.innerText.length > 0) {
                APP_lblInfoStatus.style.visibility = "visible";
                setTimeout("OcultarInfoStatusTimeoutEvent()", 8000);
            }
        }
    }
}

function OcultarInfoStatusTimeoutEvent() {
    if (typeof (APP_lblInfoStatus) != "undefined") {
        if (APP_lblInfoStatus != null) {
            APP_lblInfoStatus.style.visibility = "hidden";
        }
    }
}

function SetFocus() {
    if (APP_HIDDEN_FOCUS != null) {
        if (APP_HIDDEN_FOCUS.value.length > 0) {
            var s = APP_HIDDEN_FOCUS.value + ' ';
            s = s.substring(0, s.indexOf(' '));
            var control = document.getElementById(s);
            if (control != null) {
                try {
                    control.focus();
                } catch (ex) { }
                var sTag = control.tagName.toUpperCase();
                if (sTag == 'INPUT') {
                    var sType = control.type.toUpperCase();
                    if ((sType == 'TEXT') || (sType == 'BUTTON') || (sType == 'CHECKBOX') || (sType == 'FILE') || (sType == 'IMAGE') || (sType == 'PASSWORD') || (sType == 'RADIO') || (sType == 'RESET') || (sType == 'SUBMIT')) {
                        try {
                            control.select();
                        } catch (ex) { }
                    }
                }
                if (sTag == 'TEXTAREA') {
                    try {
                        control.select();
                    } catch (ex) { }
                }
            }
        }
    }
}

function ShowAlert() {
    if (APP_HIDDEN_ALERT != null) {
        if (APP_HIDDEN_ALERT.value.length > 0) {
            alert(APP_HIDDEN_ALERT.value.replace(/\\n/g, '\n'));
            APP_HIDDEN_ALERT.value = '';
        }
    }
}

function AskConfirm() {
    if (APP_HIDDEN_CONFIRM_QUESTION != null) {
        if (APP_HIDDEN_CONFIRM_QUESTION.value.length > 0) {
            var msg_confirm = APP_HIDDEN_CONFIRM_QUESTION.value.replace(/\\n/g, '\n')
            if (window.confirm(msg_confirm)) {
                APP_HIDDEN_CONFIRM_RESPONSE.value = "True";
            } else {
                APP_HIDDEN_CONFIRM_RESPONSE.value = "False";
            }
            __MydoPostBack(APP_HIDDEN_CONFIRM_EVENT_TARGET.value, APP_HIDDEN_CONFIRM_EVENT_ARGUMENT.value);
            __MySubmit();
        }
    }
}

function ShowPrint() {
    if (APP_HIDDEN_PRINT != null) {
        if (APP_HIDDEN_PRINT.value.length > 0) {
            print();
        }
    }
}

function OpenWindow() {
    var target = '_blank';
    var width = parseInt(screen.width) - 10;
    var height = parseInt(screen.height) - 100;
    var top = 0;
    var left = 0;
    var directories = 0;
    var resizable = 1;
    var status = 0;
    var menubar = 0;
    var location = 0;
    var scrollbars = 1;
    var copyhistory = 0;
    var toolbar = 0;
    var titlebar = 0;    //Se ignora si el que llama no es un HTA
    var channelmode = 0; //Su valor debe ser igual a fullscrren o no funcionara bien
    var fullscreen = 0;


    //target
    if (APP_HIDDEN_OPENWINDOW_TARGET != null) {
        if (APP_HIDDEN_OPENWINDOW_TARGET.value.length > 0) {
            target = APP_HIDDEN_OPENWINDOW_TARGET.value;
        }
    }

    //width
    if (APP_HIDDEN_OPENWINDOW_WIDTH != null) {
        if (APP_HIDDEN_OPENWINDOW_WIDTH.value.length > 0) {
            width = APP_HIDDEN_OPENWINDOW_WIDTH.value;
        }
    }

    //height
    if (APP_HIDDEN_OPENWINDOW_HEIGHT != null) {
        if (APP_HIDDEN_OPENWINDOW_HEIGHT.value.length > 0) {
            height = APP_HIDDEN_OPENWINDOW_HEIGHT.value;
        }
    }

    //top
    if (APP_HIDDEN_OPENWINDOW_TOP != null) {
        if (APP_HIDDEN_OPENWINDOW_TOP.value.length > 0) {
            top = APP_HIDDEN_OPENWINDOW_TOP.value;
            if (top = 'center') {
                top = parseInt(screen.height / 2) - parseInt(height / 2);
            }
        }
    }

    //left
    if (APP_HIDDEN_OPENWINDOW_LEFT != null) {
        if (APP_HIDDEN_OPENWINDOW_LEFT.value.length > 0) {
            left = APP_HIDDEN_OPENWINDOW_LEFT.value;
            if (left = 'center') {
                left = parseInt(screen.width / 2) - parseInt(width / 2);
            }
        }
    }

    //directories
    if (APP_HIDDEN_OPENWINDOW_DIRECTORIES != null) {
        if (APP_HIDDEN_OPENWINDOW_DIRECTORIES.value.length > 0) {
            directories = APP_HIDDEN_OPENWINDOW_DIRECTORIES.value;
        }
    }

    //resizable
    if (APP_HIDDEN_OPENWINDOW_RESIZABLE != null) {
        if (APP_HIDDEN_OPENWINDOW_RESIZABLE.value.length > 0) {
            resizable = APP_HIDDEN_OPENWINDOW_RESIZABLE.value;
        }
    }

    //status
    if (APP_HIDDEN_OPENWINDOW_STATUS != null) {
        if (APP_HIDDEN_OPENWINDOW_STATUS.value.length > 0) {
            status = APP_HIDDEN_OPENWINDOW_STATUS.value;
        }
    }

    //menubar
    if (APP_HIDDEN_OPENWINDOW_MENUBAR != null) {
        if (APP_HIDDEN_OPENWINDOW_MENUBAR.value.length > 0) {
            menubar = APP_HIDDEN_OPENWINDOW_MENUBAR.value;
        }
    }

    //location
    if (APP_HIDDEN_OPENWINDOW_LOCATION != null) {
        if (APP_HIDDEN_OPENWINDOW_LOCATION.value.length > 0) {
            location = APP_HIDDEN_OPENWINDOW_LOCATION.value;
        }
    }

    //scrollbars
    if (APP_HIDDEN_OPENWINDOW_SCROLLBARS != null) {
        if (APP_HIDDEN_OPENWINDOW_SCROLLBARS.value.length > 0) {
            scrollbars = APP_HIDDEN_OPENWINDOW_SCROLLBARS.value;
        }
    }

    //copyhistory 
    if (APP_HIDDEN_OPENWINDOW_COPYHISTORY != null) {
        if (APP_HIDDEN_OPENWINDOW_COPYHISTORY.value.length > 0) {
            copyhistory = APP_HIDDEN_OPENWINDOW_COPYHISTORY.value;
        }
    }

    //toolbar
    if (APP_HIDDEN_OPENWINDOW_TOOLBAR != null) {
        if (APP_HIDDEN_OPENWINDOW_TOOLBAR.value.length > 0) {
            toolbar = APP_HIDDEN_OPENWINDOW_TOOLBAR.value;
        }
    }

    //titlebar
    if (APP_HIDDEN_OPENWINDOW_TITLEBAR != null) {
        if (APP_HIDDEN_OPENWINDOW_TITLEBAR.value.length > 0) {
            titlebar = APP_HIDDEN_OPENWINDOW_TITLEBAR.value;
        }
    }

    //channelmode
    if (APP_HIDDEN_OPENWINDOW_CHANNELMODE != null) {
        if (APP_HIDDEN_OPENWINDOW_CHANNELMODE.value.length > 0) {
            channelmode = APP_HIDDEN_OPENWINDOW_CHANNELMODE.value;
            fullscreen = channelmode;
        }
    }

    //fullscreen
    if (APP_HIDDEN_OPENWINDOW_FULLSCREEN != null) {
        if (APP_HIDDEN_OPENWINDOW_FULLSCREEN.value.length > 0) {
            fullscreen = APP_HIDDEN_OPENWINDOW_FULLSCREEN.value;
            channelmode = fullscreen;
        }
    }


    if (APP_HIDDEN_OPENWINDOW != null) {
        if (APP_HIDDEN_OPENWINDOW.value.length > 0) {
            var ancho = parseInt(screen.width) - 5;
            var alto = parseInt(screen.height) - 100;
            window.open(APP_HIDDEN_OPENWINDOW.value, target, 'top=' + top + ',left=' + left + ',width=' + width + ',height=' + height + ',directories=' + directories + ',resizable=' + resizable + ',status=' + status + ',menubar=' + menubar + ',location=' + location + ',scrollbars=' + scrollbars + ',copyhistory=' + copyhistory + ',toolbar=' + toolbar + ',titlebar=' + titlebar + ',channelmode=' + channelmode + ',fullscreen=' + fullscreen);
        }
    }
}

//CODIGO PARA PEGAR DESDE EL VISOR
function getXmlDOM(xmltext) {
    var doc = null;
    try {
        if (window.ActiveXObject) { doc = new ActiveXObject("Microsoft.XMLDOM"); doc.async = "false"; doc.loadXML(xmltext); }
        else { var parser = new DOMParser(); doc = parser.parseFromString(xmltext, "text/xml"); }
    }
    catch (e) { } if (doc != null) return doc.documentElement; else return null;
}
function getText(el) { if (window.ActiveXObject) { return el.text; } else { return el.textContent; } }

function getCoordsFromVisor(idInputX, idInputY, idInputHuso) {
    if (document.getElementById(idInputX) == null || document.getElementById(idInputY) == null || document.getElementById(idInputY) == null)
    { alert("Los controles pasados como params no son correctos"); return; }

    if (!window.ActiveXObject) { alert("Esta herramienta funciona en Internet Explorer 6 o superior"); return; }

    var txtClipBoard = null;
    try {
        txtClipBoard = window.clipboardData.getData("Text");
        if (txtClipBoard == null || txtClipBoard.length === 0) { alert("El portapapeles no tiene datos. Vuelva a copiar los datos desde el Visor."); return; }

        var rootXml = getXmlDOM(txtClipBoard);
        if (rootXml == null) { alert("El portapapeles no contiene un xml bien formado"); return; }

        var elDatum = rootXml.getElementsByTagName("datum");
        if (elDatum.length == 0) { alert("El xml pasado no tiene el formato del Visor EMERCARTO"); return; }
        if (getText(elDatum[0]) != "ED50") { alert("Las coordenadas del Visor EMERCARTO\n se deben obtener con el DATUM ED50"); return; }

        var huso = getText(rootXml.getElementsByTagName("zone")[0]);
        var X = getText(rootXml.getElementsByTagName("x")[0]);
        var Y = getText(rootXml.getElementsByTagName("y")[0]);

        if (typeof (document.getElementById(idInputX).readonly) != "undefined" && document.getElementById(idInputX).readonly === true || document.getElementById(idInputX).enabled === true) { alert("Las coordenadas no se pueden editar"); return; }

        document.getElementById(idInputX).value = X;
        document.getElementById(idInputY).value = Y;
        document.getElementById(idInputHuso).value = huso;

        alert("Coordenadas copiadas correctamente desde el Visor.");
    }
    catch (e) {
        txtClipBoard = null;
        alert("El acceso al portapapeles no se encuentra habilitado.\nContacte con su departamento de Sistemas.");
        return;
    }
    return;
}