/*global SISAL */

/**
 * La variabile rappresenta il namespace utilizzato per tutto il codice javascript del lit.
 */
SISAL.MATCHPOINT.LIT = (function LIT() {
    /**
     * La variabile rappresenta il namespace utilizzato per tutto il codice
     * javascript del lit.
     */
    var components =
    [
        {
            url : "/LIT/publicroot/getGamesSortedByPrice.do?targetMethod=initialize",
            options : {target : "menuGamesSortedByPrice"}
        }, 
        {
            url : "/LIT/publicroot/getMostPlayed.do?targetMethod=initialize",
            options : {target : "mostPlayed"}
        },        
        {
            url : "/LIT/publicroot/getBoxWinnings.do?targetMethod=initialize",
            options : {target : "boxWinnings"}
        },        
        {
            url : "/LIT/publicroot/getTopPlayer.do?targetMethod=initialize",
            options : {target : "topPlayer"}
        },
        {
            url : "/LIT/publicroot/getTopWin.do?targetMethod=initialize",
            options : {target : "topWin"}
        },
        {
            url : "/LIT/publicroot/getVetrina.do?targetMethod=initialize" + location.search.replace("?", "&"),
            options : {target : "vetrinaGrattaVinci"}
        },
        {
            url : "/LIT/publicroot/getVetrina.do?targetMethod=initialize&mostPlayed=true" + location.search.replace("?", "&"),
            options : {target : "vetrinaGrattaVinciMostPlayed"}
        },
        {
            url : "/LIT/publicroot/getVetrinaMobile.do?targetMethod=initialize" + location.search.replace("?", "&"),
            options : {target : "vetrinaGrattaVinciMobile"}
        },
        {
            url : "/LIT/publicroot/storicoGiocate.jsp",
            options : {target : "storicoGiocate"}
        }
    ],
    
    testoAbilitazioneLIT = "<p>Abilitazione del conto di gioco all'acquisto del prodotto <b>Gratta e Vinci</b>.</p>" +
    "<p>" +
    "Chiedo di estendere l'oggetto del contratto relativo alla disciplina del conto di gioco," +
    " attualmente in essere con Sisal Matchpoint S.p.A., al gioco <b>Gratta e Vinci</b>" +
    " previsto dal decreto direttoriale dell´Amministrazione autonoma dei monopoli di Stato del 21 marzo 2006." +
    " A fronte della presente richiesta potrò pertanto utilizzare il conto di gioco Sisal Matchpoint" +
    " anche per l'acquisto del predetto gioco <b>Gratta e Vinci</b> in conformità" +
    " alla normativa vigente in materia e ai regolamenti delle singole lotterie disponibili sul sito www.aams.it." +
    "</p>" +
    "<p> L’abilitazione del gioco dovrà inviare alcune informazioni anagrafiche a Lottomatica S.p.a.. Procedi con l’abilitazione?" +
    "</p>",
    
    prodottoLIT = 3;
    
    //QUESTA FUNZIONE RITORNA TRUE NEL CASO IN CUI PUO' ESSERE LANCIATO IL GIOCO
    function abilitaLottomatica(showPopUpInSuccessCase)
    {
        var retVal = false,
            lottomaticaCheck = SISAL.getCookie("lottomaticaCheck"),
            idConto, surname, name, cf;
        if (!SISAL.isNullOrEmpty(lottomaticaCheck) && lottomaticaCheck === "1")
        {
            retVal = true;
            //SE DEVO VISUALIZZARE L'ALERT...
            if (showPopUpInSuccessCase === true)
            {
                //...VISUALIZZO L'ALERT
                SISAL.FX.showOnElement_TemplatePopup('errorBody', 'mp.alert.buttonok.html', {"{title}" : "Abilitazione Prodotto", "{content}" : "Prodotto Abilitato", "{buttonclick}" : "<hideThis>", "{buttontext}" : "OK", width : '360px' });
            }
        }
        else if (!SISAL.isNullOrEmpty(lottomaticaCheck) && lottomaticaCheck === "2")
        {
            //ABILITAZIONE LOTTOMARICA
            idConto = SISAL.getCookieField("login", "codiceConto");
            surname = SISAL.getCookieField("anagrafica", "cognome");
            name = SISAL.getCookieField("anagrafica", "nome");
            cf = SISAL.getCookieField("anagrafica", "codiceFiscale");
            if (!SISAL.isNullOrEmpty(idConto) && !SISAL.isNullOrEmpty(surname) && !SISAL.isNullOrEmpty(name) && !SISAL.isNullOrEmpty(cf))
            {
                SISAL.ajax('/LIT/publicroot/enableLottomatica.do?targetMethod=enableLottomatica&idConto=' + idConto + '&name=' + name + '&surname=' + surname + '&cf=' + cf);
            }
            else
            {
                SISAL.MATCHPOINT.popupLogin();
            }
        }            
        else if (!SISAL.isNullOrEmpty(lottomaticaCheck) && lottomaticaCheck === "3")
        {
            //ABILITAZIONE LOTTOMARICA
            idConto = SISAL.getCookieField("login", "codiceConto");
            surname = SISAL.getCookieField("anagrafica", "cognome");
            name = SISAL.getCookieField("anagrafica", "nome");
            cf = SISAL.getCookieField("anagrafica", "codiceFiscale");
            if (!SISAL.isNullOrEmpty(idConto) && !SISAL.isNullOrEmpty(surname) && !SISAL.isNullOrEmpty(name) && !SISAL.isNullOrEmpty(cf))
            {
                SISAL.ajax('/LIT/publicroot/enableLottomatica.do?targetMethod=sendVitalStatisticsToLottomatica&idConto=' + idConto + '&name=' + name + '&surname=' + surname + '&cf=' + cf);
            }
            else
            {
                SISAL.MATCHPOINT.popupLogin();
            }
        }            
        else if (SISAL.isNullOrEmpty(lottomaticaCheck))
        {
            SISAL.MATCHPOINT.popupLogin();
        }            
        else
        {
            SISAL.FX.showOnElement_TemplatePopup('errorBody', 'mp.alert.buttonok.html', {"{title}" : "Abilitazione Prodotto", "{content}" : "Contattare il servizio clienti", "{buttonclick}" : "<hideThis>", "{buttontext}" : "OK", width : '360px' });
        }
        return retVal;
    }
    
    function controllaAbilitazioneLottomatica(responseText)
    {
        SISAL.htmlEval(responseText);
        if (responseText.indexOf("Errore") !== -1)
        {
        }
        else
        {
            abilitaLottomatica(true);
        }
    }

    function abilitaLIT()
    {
        SISAL.FX.showOnElement_TemplatePopup('errorBody',
                'mp.alert.buttonconfannulla.html', 
                {"{title}" : "Abilitazione Prodotto",
            "{content}" : testoAbilitazioneLIT,
            "{buttonclickAnnulla}" : "<hideThis>",
            "{buttontextAnnulla}" : "Chiudi",
            "{buttonclickConferma}" : "SISAL.ajax('/LoginNuovo/pubblico/servlet/abilitaprodotto?prodotto=" + prodottoLIT + "', {response: true, success: SISAL.MATCHPOINT.LIT.controllaAbilitazioneLottomatica});",
            "{buttontextConferma}" : "Accetta",
            width : '480px'
                });
    }
    
    function playLIT(call)
    {
        var prodotti = SISAL.getCookieField("anagrafica", "prodottiAbilitati"),
            isEnabledRegExp = new RegExp("\\D+" + prodottoLIT + "\\D+");
        if (!SISAL.isNullOrEmpty(prodotti) && !isEnabledRegExp.test(prodotti))
        {
            abilitaLIT();
        }
        else
        {
            //SE L'ABILITAZIONE A LOTTOMATICA E' OK...
            if (abilitaLottomatica(false))
            {
                //...RICHIAMA IL GIOCO
                call();
            }
        }
    }
    
    function highlightPriceRange(range)
    {
        var menu,
            voci,
            i;
        menu = document.getElementById("menu_fascia_" + range);
        if (!SISAL.isNull(menu))
        {
            menu = menu.parentNode;
        }
        if (!SISAL.isNull(menu))
        {
            voci = menu.getElementsByTagName("div");
            if (!SISAL.isNull(voci))
            {
                for (i = 0; i < voci.length; i = i + 1)
                {
                    if (voci[i].id === ("menu_fascia_" + range))
                    {
                        voci[i].className = "menustat_voce2 color_menustat_voce2_sel";
                    }
                    else if (voci[i].id.search("menu_fascia_") !== -1)
                    {
                        voci[i].className = "menustat_voce2 color_menustat_voce2";
                    }
                }
            }
        }
    }
    
    function highlightMostPlayed(play)
    {
        var menu,
            voci,
            i;
        menu = document.getElementById("menu_gioco_" + play);
        if (!SISAL.isNull(menu))
        {
            menu = menu.parentNode;
        }
        if (!SISAL.isNull(menu))
        {
            voci = menu.getElementsByTagName("div");
            if (!SISAL.isNull(voci))
            {
                for (i = 0; i < voci.length; i = i + 1)
                {
                    if (voci[i].id === ("menu_gioco_" + play))
                    {
                        voci[i].className = "menustat_voce2 color_menustat_voce2_sel";
                    }
                    else if (voci[i].id.search("menu_gioco_") !== -1)
                    {
                        voci[i].className = "menustat_voce2 color_menustat_voce2";
                    }
                }
            }
        }
    }

    function popupLogin(idGioco)
    {
        SISAL.setCookie("gioco", {value: "" + idGioco + ""});
        SISAL.MATCHPOINT.popupLogin();
    }
    
    function popupLoginMenu(idGioco)
    {
        SISAL.setCookie("giocoMenu", {value: "" + idGioco + ""});
        SISAL.MATCHPOINT.popupLogin();
    }    
    
    return {
        components: components,
        controllaAbilitazioneLottomatica: controllaAbilitazioneLottomatica,
        playLIT: playLIT,
        highlightPriceRange: highlightPriceRange,
        highlightMostPlayed: highlightMostPlayed,
        popupLogin: popupLogin,
        popupLoginMenu: popupLoginMenu
    };
}());

if (SISAL.logger.isInfoEnabled())
{
    SISAL.logger.info("SISAL.MATCHPOINT.LIT - namespace creato");
}