﻿// ElementIDs is hash of tab's ISs and page's IDs
function MenuTabs(ElementIDs,
                  cssTabName, cssTabNameSelected,
                  cssPageName, cssPageNameSelected)
{
    var StartTabIndex = 0;
    
    try {
        this.elements = ElementIDs;
        this.cssTabClassName = cssTabName;
        this.cssTabClassNameSelected = cssTabNameSelected;
        this.cssPageClassName = cssPageName;
        this.cssPageClassNameSelected = cssPageNameSelected;
        var keys = this.elements.keys();
        
        for(var i = 0; i < keys.length; i++) {
            var page = document.getElementById(this.elements[keys[i]]);
            
            if(page != null)
            {
                if (i == StartTabIndex) {
                    page.className = this.cssPageClassNameSelected;
                } else {
                    page.className = this.cssPageClassName;
                }
            }
        }
    } catch (e) { alert("MenuTabs ctor exception: " + e.message); }
}

MenuTabs.prototype.SetSelected = function(elementId)
{
    try {
        var keys = this.elements.keys();
        
        if(elementId == 'HomeMenuElementGuests')
        {
            document.getElementById('HomeMenuElementGuests').className  = 'GuestsHomeMenuElementSelected';
            document.getElementById('HomeMenuElementBudget').className  = 'BudgetsHomeMenuElement';
            document.getElementById('HomeMenuElementPlan').className  = 'PlansHomeMenuElement';
            document.getElementById('HomeMenuElementContacts').className  = 'ContactsHomeMenuElement';
        }
        else if(elementId == 'HomeMenuElementBudget')
        {
            document.getElementById('HomeMenuElementGuests').className  = 'GuestsHomeMenuElement';
            document.getElementById('HomeMenuElementBudget').className  = 'BudgetsHomeMenuElementSelected';
            document.getElementById('HomeMenuElementPlan').className  = 'PlansHomeMenuElement';
            document.getElementById('HomeMenuElementContacts').className  = 'ContactsHomeMenuElement';
        }
        else if(elementId == 'HomeMenuElementPlan')
        {
            document.getElementById('HomeMenuElementGuests').className  = 'GuestsHomeMenuElement';
            document.getElementById('HomeMenuElementBudget').className  = 'BudgetsHomeMenuElement';
            document.getElementById('HomeMenuElementPlan').className  = 'PlansHomeMenuElementSelected';
            document.getElementById('HomeMenuElementContacts').className  = 'ContactsHomeMenuElement';
        }
        else if(elementId == 'HomeMenuElementContacts')
        {
            document.getElementById('HomeMenuElementGuests').className  = 'GuestsHomeMenuElement';
            document.getElementById('HomeMenuElementBudget').className  = 'BudgetsHomeMenuElement';
            document.getElementById('HomeMenuElementPlan').className  = 'PlansHomeMenuElement';
            document.getElementById('HomeMenuElementContacts').className  = 'ContactsHomeMenuElementSelected';
        }
            
        
        for(var i = 0; i < keys.length; i++) {
            var tab  = document.getElementById(              keys[i] );
            var page = document.getElementById(this.elements[keys[i]]);
            
            if(page != null)
            {
                if (tab.id != elementId) {
                    page.className = this.cssPageClassName;
                } else {
                    page.className = this.cssPageClassNameSelected;
                }
            }
        }
    } catch (e) { alert("MenuTabs.Select exception: " + e.message); }
}

MenuTabs.prototype.GetSelected = function()
{
    try {
        var keys = this.elements.keys();
        
        for(var i = 0; i < keys.length; i++) {
            var tab = document.getElementById(keys[i]);
            
            if (tab.className == cssTabNameSelected)
                return tab.id;
        }
    } catch (e) { alert("MenuTabs.Select exception: " + e.message); }
    
    return null;
}