﻿/*
 *	Clase que administra los procesos de la página del lado del cliente
 */
window.Default = {};

/*
*	Asignación de métodos que se ejecutarán en una solicitud que se ejecuta 
*   cuando inicia una peticón Ajax
*/
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(function(sender, args) {
    if (window.Default !== undefined)
        if (Default._BeginRequest !== undefined)
            Default._BeginRequest(sender, args);
});

/*
 *	Asignación de métodos que se ejecutarán en una solicitud que se ejecuta 
 *  cuando finaliza una petición Ajax
 */
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function(sender, args) {
    if (window.Default !== undefined)
        if (Default._EndRequest !== undefined)
            Default._EndRequest(sender, args);

    if (typeof (window.Page_EndRequest) == "function") {
        window.Page_EndRequest();
    }
});

/*
*	Solicitud que se ejecuta cuando inicia una peticón Ajax
*/
Default._BeginRequest = function(sender, args) {
    Utils.BlockPanel("mainPanel");
};

/*
 *	Solicitud que se ejecuta cuando finaliza una petición Ajax
 */
Default._EndRequest = function(sender, args) {
    Utils.UnBlockPanel("mainPanel");

    if (args.get_error() != undefined) {
        var errorMessage = "Se ha generado un error inesperado durante la solicitud al servidor, esto pueda deberse a un error interno de red\n\n" + Utils.GetErrorMessage(args.get_error().message);
        var description = args.get_error().description;
        args.set_errorHandled(true);

        //MessageBox.Show("Tiempo de espera agotado", errorMessage, description, MessageBoxIcon.Warning, 0);        
        alert(errorMessage);
    }
};

/*
 *	Muesta la lista de pago a realizar
 */
Default.ShowListaPagos = function() {
    var windowPagos = new Utils.Window();
    windowPagos.SetUrl("ListaPagos.aspx?Date=" + new Date());
    windowPagos.SetCenter(true);
    windowPagos.SetShowScrollBars(true);
    windowPagos.SetWidth(800);
    windowPagos.SetHeight(320);
    windowPagos.OnClose = function(sender, args) {
        Default.OnCloseWindowPagos(sender, args);
    };

    //windowPagos.Show();
    windowPagos.ShowDialog();
    if (typeof (windowPagos.Object) != "undefined" && windowPagos.Object != null)
        windowPagos.Object.OnCloseWindow = function(sender, args) {
            Default.OnCloseWindowPagos(sender, args);
        }
};

/*
 *	Proceso que se invica cuando se cierra la ventana de pagos
 */
Default.OnCloseWindowPagos = function(sender, args) {
    if (typeof (args.returnValue) != "undefined" && args.returnValue != null)
        if (typeof (args.returnValue.Pagar) != "undefined" && args.returnValue.Pagar != null)
        alert(args.returnValue.Pagar);
};

Default.AnioActual = (new Date()).getFullYear();
Default.btnGvResultSubmitID = null;
Default.hdfRowSelectedID = null;
Default.tbMontoTotalID = null;
Default.tbMontoTotalHID = null;
Default.hdfCheckedPagosID = null;
Default.ifrmPagoID = null;
Default.hdfPagoResultID = null;
Default.btnPagoExitosoID = null;
Default.hdfWebPayButtonResultID = null;
Default.btnWepPayClickButtonID = null;
Default.pnlNavegacionID = null;
Default.btnBuscarID = null;
Default.controlPostBackID = null;

Default.DoBuscar = function() {
    var btnBuscar = $("#" + Default.btnBuscarID);
    if (btnBuscar.length > 0) {
        var href = btnBuscar.attr("href");
        eval(href);
    }
};

Default.DoGvResult = function(rowID) {
    var hdfRowSelectedID = $('#' + Default.hdfRowSelectedID);
    var btnGvResultSubmitID = $('#' + Default.btnGvResultSubmitID);

    hdfRowSelectedID[0].value = rowID;
    window.setTimeout(function() {
        btnGvResultSubmitID[0].click();
    }, 100);    
};

Default.CheckedList = [];

Default.SetCheckedList = function(arrayList) {
    Default.CheckedList = arrayList;
};

Default.InitCheckAll = function() {
    if (Default.CheckedList.length == 0)
        return;

    var tmrInitcheck = setInterval(function() {
        var creados = true;
        for (var i = 0; i < Default.CheckedList.length; i++) {
            var checkobj = $("#" + Default.CheckedList[i].Id);
            if (checkobj.length == 0) {
                creados = false;
                break;
            }
        }

        if (creados) {
            clearInterval(tmrInitcheck);
            Default.CalcularTotalMonto();
        }
    }, 100);
};

Default.lnkBtnAnterior_click = function(sender, args) {
    var iFrame = $("#" + Default.ifrmPagoID);
    if (iFrame.attr("src") != "about:blank")
        iFrame.attr("src", "about:blank");
};

Default.lnkPagar_Click = function(sender, args) {
    window.scroll(0, 0);
    Default.CalcularTotalMonto();
};

Default.CheckAll = function(checkBox) {
    var checkedState = true;
    for (var i = 0; i < Default.CheckedList.length; i++) {
        var checkobj = $("#" + Default.CheckedList[i].Id);
        if (checkobj.length > 0) {
            if (checkobj[0].id == checkBox.id) {
                checkedState = false;
                continue;
            }

            checkobj[0].checked = checkedState;
        }
    }

    Default.CalcularTotalMonto();
};

Default.CalcularTotalMonto = function() {
    var montoConDescuento = false;

    if (Default.CheckedList.length > 0) {
        var checkobj = $("#" + Default.CheckedList[Default.CheckedList.length - 1].Id);
        var year = checkobj[0].parentNode.getAttribute("year");
        if (checkobj[0].checked && year == Default.AnioActual)
            montoConDescuento = true;
    }

    var checkBoxIds = "";
    var montoTotal = 0;
    for (var i = Default.CheckedList.length - 1; i >= 0; i--) {
        var checkobj = $("#" + Default.CheckedList[i].Id);
        if (checkobj.length > 0) {
            var primaryKey = checkobj[0].parentNode.getAttribute("primarykey");

            var spanMontoNormal = $("#" + Default.CheckedList[i].IdMN);
            var spanMontoDesc = $("#" + Default.CheckedList[i].IdMD);

            var monto = 0;
            if (montoConDescuento) {
                monto = parseFloat(checkobj[0].parentNode.getAttribute("montodescuento"));
                spanMontoNormal.html("0");
                spanMontoNormal.formatCurrency();
                spanMontoDesc.html(monto);
                spanMontoDesc.formatCurrency();
            }
            else {
                monto = parseFloat(checkobj[0].parentNode.getAttribute("montonormal"));
                spanMontoNormal.html(monto);
                spanMontoNormal.formatCurrency();
                spanMontoDesc.html("0");
                spanMontoDesc.formatCurrency();
            }

            if (checkobj[0].checked) {
                if (checkBoxIds != "")
                    checkBoxIds += "&";
                checkBoxIds += Utils.Url.encode(primaryKey);

                montoTotal += monto;
            }
        }
    }

    var hdfCheckedPagos = $("#" + Default.hdfCheckedPagosID);
    var tbMontoTotal = $("#" + Default.tbMontoTotalID);
    var tbMontoTotalH = $("#" + Default.tbMontoTotalHID);

    if (hdfCheckedPagos.length > 0)
        hdfCheckedPagos[0].value = checkBoxIds;

    if (tbMontoTotal.length > 0) {
        tbMontoTotal[0].value = montoTotal;
        tbMontoTotal.formatCurrency();
    }

    if (tbMontoTotalH.length > 0) {
        tbMontoTotalH[0].value = montoTotal;
        tbMontoTotalH.formatCurrency();
    }
};

Default.Click_Button = function(buttonId) {
    var hdfWebPayButtonResult = $('#' + Default.hdfWebPayButtonResultID);
    var btnWepPayClickButton = $('#' + Default.btnWepPayClickButtonID);

    hdfWebPayButtonResult.attr("value", buttonId);
    window.setTimeout(function() {
        btnWepPayClickButton.click();
    }, 100);    
};

Default.OnResponseWebPay = function(args) {
    window.scroll(0, 0);
    var helpBoxPay = $("#helpBoxPay");
    var lbHelpBoxPay = $("#lbHelpBoxPay");
    var iFrame = $("#" + Default.ifrmPagoID);

    helpBoxPay.css("display", "block");
    iFrame.height(370);
    //Default.FixIframeHeight();    

    if (args.status == "Exitosa") {
        var hdfPagoResult = $("#" + Default.hdfPagoResultID);
        var btnPagoExitoso = $("#" + Default.btnPagoExitosoID);
        var urlArgs = "";

        for (var argName in args) {
            if (urlArgs != "")
                urlArgs += "&";

            urlArgs += Utils.Url.encode(argName) + "=" + Utils.Url.encode((args[argName] != null ? args[argName] : ""));
        }

        lbHelpBoxPay.html("Su transacción fue concluida exitosamente, gracias por utilizar nuestros servicios, ¡Con su pago más cosas buenas seguirán pasando en Campeche!");
        hdfPagoResult.attr("value", urlArgs);
        window.setTimeout(function() {
            btnPagoExitoso.click();
        }, 100);        
    }
    else
        if (args.status == "Fallida")
        lbHelpBoxPay.html("Su transacción fue rechazada por el banco, verifique el mensaje de error que el banco ha notificado, gracias por utilizar nuestros servicios");
    else
        if (args.status == "Rechazada")
        lbHelpBoxPay.html("Su transacción fue declinada por el banco, verifique que los datos hayan sido capturados correctamente, gracias por utilizar nuestros servicios");
};

Default.OnShowWebPay = function() {
    Default.FixIframeHeight();
};

Default.OnInitWebPay = function() {
    window.scroll(0, 0);
    var iFrame = $("#" + Default.ifrmPagoID);
    var pnlNavegacion = $('#' + Default.pnlNavegacionID);
    var helpBoxPay = $("#helpBoxPay");

    pnlNavegacion.css("display", "none");
    helpBoxPay.css("display", "none");
    iFrame.height(1500);
};

Default.FixIframeHeight = function() {
    var iFrame = $("#" + Default.ifrmPagoID);

    var nHeight = 0;
    if (iFrame[0].contentDocument)
        nHeight = iFrame[0].contentDocument.body.scrollHeight + 35;
    else
        nHeight = iFrame[0].contentWindow.document.body.scrollHeight;

    iFrame.height(nHeight);
};

Default.hypLinkMain_Click = function() {
    window.location.href = "http://municipiodecampeche.gob.mx"
};

Default.hypOtroTramite_Click = function() {
    window.location.href = "Default.aspx";
};

if (typeof ('Sys') !== 'undefined')
    Sys.Application.notifyScriptLoaded();
