﻿/*      global variables        */
selectedClubId = -1;
lastClubTeamSiteList = null;
selectedTeamId = -1;
selectedRegionId = -1;
selectedSettlementId = -1;

/*
*/

var checkerHndl = 0;

function setSelectedValue(select, id)
{
    select = $get(select);
    if(!select)
        return;

    for(var i = 0 ; i < select.options.length; i++)
    {
        if(select.options[i].value == id)
        {
            select.options[i].selected = true;
            break;
        }
    }
}


function onRegionsFld()
{
   selectedRegionId = reg;
}

var club = getCookie('clubId'),
         reg = getCookie('regId'), 
         setl = getCookie('setlId'); 

function checkFilled()
{
      if(selectedClubId != -1 && selectedSettlementId > 0 && selectedRegionId > 0)
      {
        window.clearInterval(checkerHndl);
        checkerHndl =0; 
        //lstTeams
        setSelectedValue('slCities', setl);
        setSelectedValue('slClubs', club);
        setSelectedValue('slRegions', reg);

        if (team)
            setSelectedValue('lstTeams', team);
        
        if (ts)
            showTeamSiteDetails(ts);
        else
            openTab(1);
      }
}



function restoreSelections()
{
    if (!club || !setl || !reg) {
        clearAllSelectors();
        fillRegions(-2);
        return 0;
    }
          
          fillTeams(club);
          fillCities(reg);
          fillClubs(setl);
          fillRegions(0, onRegionsFld);

          if (team)
              teamSelected(team);

          if(checkerHndl != 0){
 		window.clearInterval(checkerHndl);
	  }
          
          checkerHndl = window.setInterval(checkFilled, 100);
          
    return 1;
}

function onCitiesFilled(a)
{
    setCookie('regId', selectedRegionId);
}

function fillCities(reg)
{
    clearCoupledSelectors(['slCities', 'slClubs']);

    if(reg == -1)
    {
        clearCoupledSelectors(['lstTeams']);
        thirdTabMode = 0;
        //Disable coupled dropdowns
        return;
    }
    
    selectedRegionId = reg;

    var req = {regionId:reg};
    $invoke("GetAvailableCities", 
                req,
                new FillSelectCallback('Id', 'Name', 'slCities', Msg.selectCity, onCitiesFilled));
}

function fillRegions(regId, onFilled)
{
    if(regId == -1)
    {
        //Disable coupled dropdowns
        clearAllSelectors();
        return;
    }

    $invoke("GetAvailableRegions", 
                null,
                new FillSelectCallback('RegionId', 'Name', 'slRegions', Msg.selectRegion, onFilled));
}

function getSelectedClubId()
{
    return $get('slClubs').value;
}

function onClubsFilled()
{
    setCookie('setlId', selectedSettlementId);
}

function fillClubs(setl)
{
    if(setl == -1)
    {
        clearCoupledSelectors(['slClubs', 'lstTeams']);
        thirdTabMode = 0;
        //Disable coupled dropdowns
        return;
    }
    
    selectedSettlementId = setl;

    var req = {settlementId:setl};

    $invoke("GetAvailableClubs", 
                req,
                new FillSelectCallback('Id', 'Name', 'slClubs', Msg.selectClub, onClubsFilled));
}

var tabMap = {
                selectTeam: 2,
                selectTeamSite: 3,
                teamFilter: 1
             };

//UNDONE: merge with openTab
function showTab(tabId)
{
    var t = tabMap[tabId];
    
    if(typeof(t) == 'undefined')
        t = '';
        
    openTab(t);
}

var thirdTabMode = 0;



function openTab(n)
{
    var ac = $get('pnlAccordeon'),
        cn = 'leftContentPart_inner tab';
        
        
    //if(n == 3 && !thirdTabMode)
    //{
     //   ac.className = 'leftContentPart_inner tabPar';
      //  return;
    //}
    
    if(ac.className == cn + n)
        ac.className = cn;
    else
        ac.className = cn + n;
        
    return false;
}

function onTeamsFilled(items)
{
  if(items.length)
     showTab('selectTeam');
     
  setCookie('clubId', selectedClubId);
     
  hideTeamSiteDetailsPnl();
  
  clearSelect('lstTeamSites', 1);
}

function fillTeams(clubId)
{
    selectedClubId = clubId || getSelectedClubId();
    
    if(selectedClubId < 0)
    {
        clearSelect('lstTeams');
        thirdTabMode = 0;
        //Disable coupled dropdowns
        return;
    }
    
    var req = {clubId:selectedClubId,filter:''};
    
    $invoke("GetAvailableTeams", 
                req,
                new FillSelectCallback('Id',
                                         'Name',
                                         'lstTeams',
                                         0,
                                         onTeamsFilled)
            );
}


function onCreateTeamSite()
{
    if(selectedTeamId < 0)
        return;

    gotoUrl(UrlUtil.createTeamSite + selectedTeamId);
}

function setTeamSitesTabDisplScheme(tsc)
{

    if(tsc == 0 || tsc == 1)
    {
        $('#lnkCreateTeamSite')[0].style.display = 'block';
        $('#lnkTeamSitesCommand')[0].style.display = 'none';
        $('#lstTeamSites')[0].style.display = 'none';
    }
    else if(tsc > 1)
    {
        $('#lnkCreateTeamSite')[0].style.display = 'none';
        $('#lnkTeamSitesCommand')[0].style.display = 'block';
        $('#lstTeamSites')[0].style.display = 'none';
    }
}

var __selectedTeamSiteId;
var __teamSites;
/*      Tabs functionality      */
function onTeamSitesFilled(items)
{
    //__teamSites = items;
    
    setCookie(UrlUtil.teamPar, selectedTeamId);

    lastClubTeamSiteList = items;
    
    setTeamSitesTabDisplScheme(items.length);

    if (!items.length)
        showTeamSitePopup(Msg.noTeamSitesForThisTeam, 1);
    else {
        showTeamSiteDetails(items[0].Id);
        //Remove selected item
        $("#lstTeamSites option:first").remove();
    }
    showTab('selectTeamSite');
}

function teamSelected(team)
{
    var req = {teamId:team};
    selectedTeamId = team;
    var cb = new FillSelectCallback('Id', 'Name', 'lstTeamSites', null, onTeamSitesFilled);
    $invoke("GetAvailableTeamSites", req, cb);

}

function showTeamSiteDetails(teamSiteId)
{
    setWidgetSelectedTeamSite(teamSiteId);

    __selectedTeamSiteId = teamSiteId;

    setCookie(UrlUtil.teamStPar, teamSiteId);

    $('#pnlJoinMenu').show('slow');
    
    thirdTabMode = 1;
    if (lastClubTeamSiteList != null) {
    for(var i = 0 ; i < lastClubTeamSiteList.length; i++)
    {
        if(lastClubTeamSiteList[i].Id == teamSiteId)
        {
            var tsDetails = lastClubTeamSiteList[i];
            var details =  '<h2>' + tsDetails.Name + '</h2><p>' +
                            Msg.admin + tsDetails.AdminName + '<br />' +
                            Msg.supporters + tsDetails.SupportersCount + '<br />' +
                            Msg.players + tsDetails.PlayersCount + '<p/>';

            //showTeamSitePopup(details, 0, new Function('onSubscribeToTeamSite("' + teamSiteId + '"); return false;'));
            showTeamSitePopup(details, 0);
            break;
        }
    }
  }
}

var selectedTeamSiteId = -1;
function onSubscribeToTeamSite(teamSiteId) {
    fillSelect(lastClubTeamSiteList, 'Id', 'Name', 'lstTeamSites');
    $("#lstTeamSites option[@value=" + teamSiteId + "]").remove();
    
    showTeamSiteDetails(teamSiteId);
    //showTeamSiteDetails(teamSiteId);

    //setCookie(UrlUtil.teamStPar, teamSiteId);
    //gotoUrl(UrlUtil.joinMenu + teamSiteId);
}

/* Initialization */
function onLoad()
{
    //if(urlQuery("load") == "1")
    if (typeof(ts) != 'undefined')
    {
        restoreSelections();
    }
    else
    {
        clearAllSelectors();
        fillRegions(-2);
    }
    //clearAllSelectors();
    
//    if(!restoreSelections())
//    {
//        fillRegions(-2); //, function()
////                    {
////                    });
//    }
}

$(document).ready(onLoad);
