﻿var MisListasPopup = {};

MisListasPopup.IdSKU = [];
MisListasPopup.Visible = false;
MisListasPopup.TopOffset = 50;      // FIXME: reemplazar en archivos 'mlpTopOffset' por 'MisListasPopup.TopOffset'
MisListasPopup.Posicion;            // array de la forma [0:X,1:Y]
MisListasPopup.Autenticado = false; // Indica si el usuario se encuentra autenticado

//*************************************************************************************************

YAHOO.util.Event.onDOMReady(function()
{
});

//*************************************************************************************************

MisListasPopup.Mostrar = function(id, opciones)
{
    MisListasPopup.Actualizar();
    MisListasPopup.IdSKU = id;
    if(opciones != null && opciones.ev != null)
        MisListasPopup.Posicion = YAHOO.util.Event.getXY(opciones.ev);
    if(opciones != null && opciones.el != null)
        MisListasPopup.Posicion = YAHOO.util.Dom.getXY(opciones.el);
    if(opciones != null && opciones.posicion != null)
        MisListasPopup.Posicion = YAHOO.util.Event.getXY(opciones.ev);
    if(opciones != null && opciones.offsetLeft != null)
        MisListasPopup.Posicion[0] -= opciones.offsetLeft;
    if(opciones != null && opciones.offsetTop != null)
        MisListasPopup.Posicion[1] -= opciones.offsetTop;
    if(id != null && !MisListasPopup.Visible)
    {
        var panelLista = $('pnlListasPersonales');
        panelLista.style.visibility='hidden';
        panelLista.style.display='block';
        YAHOO.util.Dom.setXY(panelLista, MisListasPopup.Posicion);
        panelLista.style.display='none';
        panelLista.style.visibility='';
        Effect.Appear('pnlListasPersonales', { duration: 0.3 });
        MisListasPopup.Visible = true;
    }
}

//*************************************************************************************************

MisListasPopup.Cerrar = function()
{
    if($('pnlListasPersonales') != null)
        Effect.Fade('pnlListasPersonales', { duration: 0.4 });
    MisListasPopup.Visible=false;
}

//*************************************************************************************************

MisListasPopup.AgregarProducto = function()
{
    var chk = $('agregarListaDiv').getElementsByTagName('INPUT');
    var idListasPersonales = new Array();
    var css='button';
    for(var i=0;i<chk.length;i++)
    {
        if(chk[i].tagName.toLowerCase() == "input" && chk[i].type.toLowerCase() == "checkbox" && chk[i].checked)
        {
            css='button_enabled';
            idListasPersonales.push(chk[i].value);
        }
    }
    $('misListasPopupAgregar').className=css;
    var AgregarProducto_OnSuccess = function(args)
    {
        var respuesta = eval('(' + args + ')');
        if(!respuesta.resultado)
        {
            ModalDialog.Show("Error", respuesta.mensajeError, ModalDialog.OK);
            return;
        }
        MisListasPopup.Actualizar(respuesta.listas);
        ModalDialog.Show("Información", "El producto ha sido asociado a las listas seleccionadas", ModalDialog.OK);
    }
    if(idListasPersonales.length > 0)
        Mundial.ScriptServices.MisListasPopupAgregarProducto(MisListasPopup.IdSKU, idListasPersonales, AgregarProducto_OnSuccess, function(args) { }, function(args) { });
}

//*************************************************************************************************

MisListasPopup.ActualizarBotonAgregar = function()
{
    var chk = $('agregarListaDiv').getElementsByTagName('INPUT');
    var css='button';
    for(var i=0;i<chk.length;i++)
    {
        if(chk[i].tagName.toLowerCase() == "input" && chk[i].type.toLowerCase() == "checkbox" && chk[i].checked)
        {
            css='button_enabled';
            break;
        }
    }
    $('misListasPopupAgregar').className=css;
}

//*************************************************************************************************

MisListasPopup.CrearLista = function()
{
    var CrearLista_OnSuccess = function(args)
    {
        var respuesta = eval('(' + args + ')');
        if(!respuesta.resultado)
        {
            ModalDialog.Show("Error", respuesta.mensajeError, ModalDialog.OK);
            return;
        }
        $('misListasPopupNombre').value = "";
        MisListasPopup.ActualizarBotonCrear();
        MisListasPopup.Actualizar(respuesta.listas);
    }
    if($('misListasPopupNombre').value.replace(/^\\s+|\\s+$/g,'').length == 0)
        return;
    Mundial.ScriptServices.MisListasPopupCrear($('misListasPopupNombre').value, MisListasPopup.IdSKU, CrearLista_OnSuccess, function(args) { }, function(args) { });
}

//*************************************************************************************************

MisListasPopup.ActualizarBotonCrear = function()
{
    $('misListasPopupCrear').className = ($('misListasPopupNombre').value.replace(/^\\s+|\\s+$/g,'').length == 0) ? 'button' : 'button_enabled';
}

//*************************************************************************************************

MisListasPopup.Actualizar = function(listas)
{
    if(!MisListasPopup.Autenticado)
        return;
    var Actualizar_OnSuccess = function(args)
    {
        var respuesta = eval('(' + args + ')');
        if(!respuesta.resultado)
        {
            ModalDialog.Show("Error", respuesta.mensajeError, ModalDialog.OK);
            return;
        }
        MisListasPopup.Actualizar(respuesta.listas);
    }
    if(listas == null)
    {
        Mundial.ScriptServices.MisListasPopupActualizar(Actualizar_OnSuccess, function(args) { }, function(args) { });
        return;
    }
    // Actualizar listas personales
    var htmlListas = "";
    for(var i = 0; i < listas.length; i++)
    {
        htmlListas += '<input type="checkbox" onclick="MisListasPopup.ActualizarBotonAgregar()" value="' + listas[i].id + '" />' + listas[i].nombre + ' (' + listas[i].cantidad + ')<br />';
    }
    $('agregarListaDiv').innerHTML = htmlListas;
    MisListasPopup.ActualizarBotonAgregar();
}
