﻿var MKW = MKW || {};
MKW.LiveScore = MKW.LiveScore || {};

MKW.LiveScore.Menu = {
    aContinents: [],
    aFavouriteGroups: [],
    //aContinents: [[1, 'AVRUPA'], [2, 'G.AMERİKA'], [3, 'K.AMERİKA'], [4, 'ASYA'], [6, 'AFRİKA'], [8, 'AVUSTRALYA'], [5, 'CONMEBOL'], [7, 'DİĞER']],
    //favoriteLeagues: [{ id: 2, name: "Almanya" }, { id: 5, name: "Belçika" }, { id: 3, name: "Fransa" }, { id: 11, name: "Hollanda" }, { id: 17, name: "İngiltere" }, { id: 18, name: "İskoçya" }, { id: 14, name: "İspanya" }, { id: 10, name: "İtalya" }, { id: 13, name: "Portekiz" }, { id: 1, name: "Türkiye" }, { id: 24, name: "Hazırlık" }, { id: 22, name: "Şampiyonlar Ligi" }, { id: 23, name: "UEFA Kupası"}],
    showLeagues: function(obj) {
        if (obj.style.display == "none") {
            obj.style.display = "block";
        } else {
            obj.style.display = "none";
        }
    },
    liveGroup: function(id, obj) {
        MKW.LiveScore.clearOptions();
        MKW.LiveScore.getGroupScores(id, obj.innerHTML);
    },
    showGroups: function(obj, id) {
        if (obj.nextSibling.childNodes.length == 0) {
            this.getGroups(obj.nextSibling, id);
        } else {
            if (obj.nextSibling.style.display == 'none') {
                obj.nextSibling.style.display = '';
            } else {
                obj.nextSibling.style.display = 'none';
            }
        }
    },
    getGroups: function(obj, id) {
        var url = APP_ROOT + '/AjaxHandlers/LiveScoreHandler.ashx?op=groups&id=' + id;
        var callback = new AjaxCallback(function(response) { MKW.LiveScore.Menu.getGroupsCompleted(obj, response) });
        var transaction = YAHOO.util.Connect.asyncRequest('GET', url, callback);
    },
    getGroupsCompleted: function(obj, response) {
        var data = eval("(" + response.responseText + ")");
        var submenuFormat = '<li class="group fnt-mavi {2}" onclick="setupMenu(this);javascript:MKW.LiveScore.Menu.liveGroup({0},this)" style="background-image:url(' + GROUP_FLAG_PATH + '{0}.gif);background-repeat:no-repeat; background-position:1px 3px;padding-left:20px">{1}</li>';
        var sbGroups = new StringBuilder();
        for (var i = 0; i < data.length; i++) {
            var group = data[i];
            sbGroups.appendFormat(submenuFormat, group[0], group[1], i % 2 == 1 ? 'menurow2' : '');
        }
        obj.style.display = "";
        obj.innerHTML = "<ul>" + sbGroups.toString() + "</ul>";
        var aMenuElements = YAHOO.util.Dom.getElementsBy(function() { return true; }, "li", obj);
        //YAHOO.util.Event.addListener(aMenuElements, 'click', setupMenu);
    },
    writeMenu: function() {
        var header = '<table width="150" cellspacing="0" cellpadding="0" border="0" align="center"><tr><td valign="top" class="boyut karakter mavi bld">';
        var list = '<ul id="liveMenu" style="margin-top:0px;"><li class="root selected" onclick="javascript:setupMenu(this);MKW.LiveScore.Menu.liveGroup(0,this);">{0}</li><li class="root" onclick="javascript:setupMenu(this);MKW.LiveScore.Menu.liveGroup(\'all\',this);">{1}</li><li class="root" onclick="javascript:setupMenu(this);MKW.LiveScore.Menu.liveGroup(\'live\',this);">{2}</li><li class="root" onclick="setupMenu(this);MKW.LiveScore.Menu.showLeagues(this.nextSibling)" style="cursor:pointer">{3}</li><ul>{4}</ul>';
        var submenuFormat = '<li class="group fnt-mavi {2}" onClick="setupMenu(this);MKW.LiveScore.Menu.liveGroup({0},this);"><img src="' + GROUP_FLAG_PATH + '{0}.gif"/>&nbsp;{1}</li>';
        var continentFormat = '<li class="root" onclick="setupMenu(this);MKW.LiveScore.Menu.showGroups(this,{0});">{1}</li><ul style="display:none;"></ul>';
        var footer = '</td></tr></table>';

        var sbMenu = new StringBuilder();

        sbMenu.append(header);

        var sbSubMenu = new StringBuilder();

        for (var i = 0; i < this.aFavouriteGroups.length; i++) {
            sbSubMenu.appendFormat(submenuFormat, this.aFavouriteGroups[i][0], this.aFavouriteGroups[i][1], i % 2 == 1 ? 'menurow2' : '');
        }

        sbMenu.appendFormat(list, MKW.Message.messages["LiveScores.TodaySummary"].toUpperCase().replace("'", "\'"), MKW.Message.messages["LiveScores.TodayAll"].toUpperCase().replace("'", "\'"), MKW.Message.messages["LiveScores.LiveAll"].toUpperCase(), MKW.Message.messages["LiveScores.FavouriteLeagues"].toUpperCase(), sbSubMenu.toString());
        for (var i = 0; i < this.aContinents.length; i++) {
            sbMenu.appendFormat(continentFormat, this.aContinents[i][0], this.aContinents[i][1]);
        }
        sbMenu.append('</ul>');
        sbMenu.append(footer);

        document.getElementById("dvMenu").innerHTML = sbMenu.toString();
        var aMenuElements = YAHOO.util.Dom.getElementsBy(function() { return true; }, "li", "liveMenu");

        //YAHOO.util.Event.addListener(aMenuElements, 'click', setupMenu);
    },
    clearMenu: function() {
        var aRoots = YAHOO.util.Dom.getElementsByClassName("root", "li", "liveMenu");
        var aMenuElements = YAHOO.util.Dom.getElementsByClassName("group", "li", "liveMenu");

        YAHOO.util.Dom.removeClass(aMenuElements, 'group_selected');
        YAHOO.util.Dom.removeClass(aRoots, 'selected');
    }
}

function setupMenu(obj) {
    var Dom = YAHOO.util.Dom;
    var Event = YAHOO.util.Event;
    var aMenuElements = YAHOO.util.Dom.getElementsBy(function() { return true; }, "li", "liveMenu");

    Dom.removeClass(aMenuElements, 'group_selected');

    var aRoots = Dom.getElementsByClassName("root", "li", "liveMenu");

    for (var index = 0; index < aRoots.length; index++) {
        if (Dom.hasClass(aRoots[index], 'selected')) {
            Dom.removeClass(aRoots[index], 'selected');
            break;
        }
    }
    if (Dom.hasClass(obj, 'root')) {
        Dom.addClass(obj, 'selected');
    } else {
        var ancestor = Dom.getPreviousSibling(obj.parentNode.parentNode);
        obj.parentNode.style.display = "";
        Dom.addClass(ancestor, 'selected');
        Dom.addClass(obj, 'group_selected');
    }
}