﻿// Initialise JavaScript namespaces.

Website = {};
Website.Base = {};
Website.Members = {};
Website.Members.Tabs = {};

// [Start] - Website.Base

Website.Base.ClearTextBox = function(element, defaultText) {
    if ($(element).value == defaultText) {
        $(element).value = "";
    }
}

// [End] - Website.Base


// IE6 background image flicker fix.
try { document.execCommand("BackgroundImageCache", false, true); } catch (err) { }

window.addEvent('domready', function() {
    $$('.menuImage').each(function(el) {
        el.addEvent('mouseover', function(event) {
            this.addClass('over');
        });
        el.addEvent('mouseout', function(event) {
            this.removeClass('over');
        });
    });
    $$('.loginForm input').each(function(el) {

        var orginalValue = el.value;
        // if the password field is text onlick turn off display and turn on real field
        if (el.hasClass("passwordInputHack")) {
            el.addClass('formLabel');
            el.addEvent('focus', function(event) {
                $(this.id + "Field").style.display = 'inline';
                this.style.display = 'none';
                $(this.id + "Field").focus();
            });
        }
        // if password fields blank turn off and make fake field display
        else if (el.hasClass("passwordInput")) {
            el.addEvent('blur', function(event) {
                if (this.value.length == 0) {
                    this.style.display = 'none';
                    $(this.id.substr(0, this.id.length - 5)).style.display = 'inline';
                }

            });
        }
        else if (el.type == 'text') {
            el.addClass('formLabel');
            el.addEvent('focus', function(event) {
                if (this.value == orginalValue) {
                    this.selectionStart = 0;
                }
            });
            el.addEvent('keydown', function(event) {
                if (this.value == orginalValue) {
                    this.value = '';
                    el.removeClass('formLabel');
                }
            });

            el.addEvent('blur', function(event) {
                if (this.value.length == 0) {
                    this.value = orginalValue;
                    el.addClass('formLabel');
                }
            });
        }

    });
});

function submitFormByCorrectButton(e, sender) {

    var caller = getEventCaller(e);

    if (getEventKeyCode(e) == 13 && caller.type.toLowerCase() != "textarea") {

        // hack for login in menu
        if (sender.id = 'mLoginForm') {
            $('headerLoginLink').onclick();
            return false;
        }

        var elements = sender;
        var clicked = false;
        console.log(sender.id);
        if (!clicked) {
            var callerFound = false;
            for (var i = 0; i < elements.length; i++) {
                var element = elements[i];
                var type = element.tagName;

                if (element.id == caller.id) { callerFound = true; }
                if (type) { type = type.toLowerCase(); }

                if (type == 'input') {
                    type = (element.type).toLowerCase();
                }

                if (callerFound && (type == "image" || type == "submit" || type == "a")) {
                    if (type == "a") {
                        element.onclick();
                        clicked = true;
                        break;
                    }
                    else {
                        element.click();
                        clicked = true;
                        break;
                    }
                }
            }

            return false;
        }

        return false;
    }

    return true;
}

function getEventKeyCode(e) {
    if (window.event) {
        return e.keyCode;
    } else if (e.which) {
        return e.which;
    }
}

function getEventCaller(e) {
    if (window.event) {
        return e.srcElement;
    } else if (e.which) {
        return e.target;
    }
}

Website.Base.ToggleElement = function(container) {
    if ($(container).getStyle("display") == "none") {
        $(container).setStyle("display", "block");
        return true;
    }
    else {
        $(container).setStyle("display", "none");
        return false;
    }
}

Website.Members.Tabs.Active = null;

Website.Members.Tabs.Init = function() {
    var panels = $("bodyWrapper").getElements(".panel");
    var tabs = new Array();

    var tabContainer = $("tabContainer");

    for (var panelID = 0; panelID < panels.length; panelID++) {
        var headers = panels[panelID].getElements(".header");

        // If this panel has headers, use the first one as the tab.
        if (headers.length > 0) {
            var tab = headers[0];

            tab.TabID = panelID;
            tab.id = "pageTab-" + panelID;

            if (panelID == 0) {
                tab.addClass("headerFirst");
            }

            if (panelID == panels.length - 1) {
                tab.addClass("headerLast");
            }

            tab.addEvent("click", Website.Members.Tabs.Click);

            tab.addEvent("mouseover", Website.Members.Tabs.TabMouseOver);
            tab.addEvent("mouseout", Website.Members.Tabs.TabMouseOut);

            tab.inject(tabContainer, "bottom");
            tabs.push(tab);
        }

        panels[panelID].id = "pageTabPanel-" + panelID;
        panels[panelID].setStyle("display", "none");
    }

    if (tabs.length > 0) {
        Website.Members.Tabs.Click(tabs[0]);
        tabContainer.setStyle("display", "block");
    }
}

Website.Members.Tabs.Click = function(tab) {
    if (tab.TabID == null) { var tab = this; }
    var panel = $("pageTabPanel-" + tab.TabID);

    if (Website.Members.Tabs.Active != null) {
        $("pageTabPanel-" + Website.Members.Tabs.Active).setStyle("display", "none");
        $("pageTab-" + Website.Members.Tabs.Active).removeClass("activeTab");
    }

    if (panel != null) {
        panel.setStyle("display", "block");
        tab.addClass("activeTab");
    }

    Website.Members.Tabs.Active = tab.TabID;
}

Website.Members.Tabs.TabMouseOver = function() {
    this.addClass("hoverTab");
}

Website.Members.Tabs.TabMouseOut = function() {
    this.removeClass("hoverTab");
}
