var onLoadFirst = true;
var D = YAHOO.util.Dom;
var E = YAHOO.util.Event;
var BR = YAHOO.env.ua;
SKYPE.namespace("staticTabs");

//
/* Prevents default function (follow href for a link for example )*/
//
var cancelDefault = function(e) {
    E.preventDefault(e);
};

//
/* Detects page anchor */
//
function detectAnchor() {
var strID = window.document.location.toString();
var intLen = strID.indexOf('#');
if (intLen > -1) {
anchor = strID.substring(intLen + 1,strID.length - 3);
return anchor;
} else {
return false;
}
}

//
/* Shows correct tab, needs tab to activate id as parameter */
//
function showTab(activeTab, animOpen, animFade) {
var divs = D.getElementsByClassName("tabContents");
var tab = document.getElementById(activeTab);
var currentlySelectedTab;
var currentlySelectedTabHeight = 0;
for (var i= 0; i < divs.length; i++) {
        if (divs[i].offsetHeight > 0) {
    currentlySelectedTab = divs[i];
    currentlySelectedTabHeight = divs[i].offsetHeight;
}
    }
for (var i= 0; i < divs.length; i++) {
    if (tab && divs[i] == tab) {
        divs[i].style.display = "block";
        if (tab != currentlySelectedTab) {
            if (BR.ie) {
                // alert(tab.id);
                // tab.style.display = "hidden";
            }
if(animOpen) {
            var tabHeight = tab.scrollHeight;
if (SKYPE.util.Browser.isSafari || SKYPE.util.Browser.isOpera) {
             tabHeight = tab.scrollHeight + 20;
             }
             var animOpenFx = new YAHOO.util.Anim(activeTab, { height: { from: 0, to: tabHeight } }, 0.5, YAHOO.util.Easing.easeOut);
             animOpenFx.animate();
} else {
    divs[i].style.height = "auto";
}
if(animFade) {
              var animFadeFx = new YAHOO.util.Anim(activeTab, { opacity: {from: 0.5, to: 1 } }, 0.5, YAHOO.util.Easing.easeIn);
              animFadeFx.animate();
}
// Hack to remove # reference in the URL onLoad as you have to double click back to get to the previous page.
if(!onLoadFirst) {
    parent.location.hash = activeTab + "Tab";
}
onLoadFirst = false;
}
    } else {
        divs[i].style.height = "0";
        divs[i].style.display = "none";
    }
}
}


//
/* Adds tab functionality to tabstrip */
//
SKYPE.staticTabs.addTabFunctionality = function(animOpen, animFade) {
    var tabSection = D.getElementsByClassName("tabs");
if (tabSection.length > 0) {
        for (var i=0; i<tabSection.length; i++) {
            var eachTab = tabSection[i].getElementsByTagName("li");
if (eachTab) {
                for (var j=0; j < eachTab.length; j++) {
                    var link = eachTab[j].firstChild;
var tabActions = function() {
                        selecttab(this);
                        showTab(this.id.substring(0,this.id.length-4),animOpen,animFade);
                    };
                    E.addListener(link, "click", tabActions);
                    E.addListener(link, "click", cancelDefault);
                }
            }
        }
    }
};

//
/* Selects active tab according to page anchor */
//
SKYPE.staticTabs.selectTabsWithAnchor = function() {
    var page;
    if (detectAnchor() && document.getElementById(detectAnchor()+"Link")) {
        page = detectAnchor();
} else {
        var possibleTabs = D.getElementsByClassName("tabContents");
if (possibleTabs.length > 0) {
            page = possibleTabs[0].id;
        }
    }

    var tab = document.getElementById(page+"Link");
    if (page && document.getElementById(page)) {
        showTab(page);
    }
    if (tab) {
        selecttab(tab);
    }
};
E.onDOMReady(function() {
    SKYPE.staticTabs.selectTabsWithAnchor();
    SKYPE.staticTabs.addTabFunctionality(false,false);  // animOpen, animFade
});