document.observe("dom:loaded", function() {
    var anchor = self.document.location.hash.substring(1);
    if(anchor) {
        activateTab(anchor, 1, 1);
        return;
    }
    var tabCookie = getCookie('DTrevTab');
    if(tabCookie) { activateTab(tabCookie, 1, 1); }
});

Event.observe(window, 'load', function() {
    Event.observe('closeBox', 'click', closePic);
    Event.observe(window, 'click', checkPicForClose);
    Event.observe('screenshots', 'click', revealPic);
    
    var navBar = $("navBar");
    var navBarItems = navBar.getElementsByTagName("li");
    for(var i = 0; i < navBarItems.length; i++) {
        Event.observe(navBarItems[i], 'click', switchToTab);
    }
    var linkItems = document.getElementsByTagName("span");
    for(var i = 0; i < linkItems.length; i++) {
        if(linkItems[i].hasClassName("tabLink")) {
            Event.observe(linkItems[i], 'click', switchToTab);
        }
    }
});

//stupid preload
var closeBox = new Image(26,26); 
closeBox.src="images/closebox.png"; 
var closeBoxHover = new Image(26,26); 
closeBoxHover.src="images/closebox_hover.png"; 

function revealPic(e) {
    var eventElt = Event.element(e);
    var imgSrc = eventElt.src;
    if(imgSrc) {
        var fileName = imgSrc.replace("_thumb", "");
        $('photoCellImage').src = fileName;
        //$('contentSlab').fade({ duration: 0.5, from: 1.0, to: 0.1 });
        $('photoCell').appear({ duration: 0.5, from: 0.2, to: 1.0 });
    }
}

function closePic() {
    //$('contentSlab').fade({ duration: 0.5, from: 0.1, to: 1.0 });
    $('photoCell').fade({ duration: 0.5, from: 1.0, to: 0.0 });
}

function checkPicForClose(e) {
    var eventElt = Event.element(e);
    if(eventElt.id.indexOf("photoCellImage") < 0 && 
       eventElt.id.indexOf("photoCellContent") < 0 && 
       $('photoCell').visible()) {
          closePic();
    }
}

function switchToTab(e) {
    var newActiveEltTabID = Event.element(e).getAttribute("tabid");
    if(newActiveEltTabID) {
        activateTab(newActiveEltTabID, 0);
        setCookie("DTrevTab", newActiveEltTabID, 30);
    }
}

function activateTab(tabName, fast, dontScroll) {
    var newActiveEltID = "tab_" + tabName;
    var newActiveElt = $(newActiveEltID);

    var navBar = $("navBar");
    var allNavItems = navBar.getElementsByTagName("li");
    for(var i = 0; i < allNavItems.length; i++) {
       Element.removeClassName(allNavItems[i], "active");
    }
    Element.addClassName($(tabName), "active");
    
    var wrapper = $("allTabs");
    var allTabs = wrapper.getElementsByClassName("tab");
    for(var i = 0; i < allTabs.length; i++) {
        if(Element.hasClassName(allTabs[i], "active") && allTabs[i] != newActiveElt) {
            Element.removeClassName(allTabs[i], "active");
            if(fast) { Element.hide(allTabs[i]); } 
            else { Effect.Fade(allTabs[i], {duration: 0.1}); }
        }
    }
    Element.addClassName(newActiveElt, "active");
    if(fast) { Element.show(newActiveElt); } 
    else { Effect.Appear(newActiveElt); }
    
    if(!dontScroll) { 
        // show a part of the header and the tabs
        window.scrollTo(0,250);
    }
}

function setCookie(cookieName, cookieValue, daysToExpire) {
    var expireDate = new Date();
    expireDate.setDate(expireDate.getDate()+daysToExpire);
    document.cookie = cookieName + "=" + escape(cookieValue) +
        ((daysToExpire == null) ? "" : ";expires="+expireDate.toGMTString());
}

function getCookie(cookieName) {
    if (document.cookie.length > 0) {
        var cookieStart = document.cookie.indexOf(cookieName + "=");
        if (cookieStart != -1) { 
            cookieStart = cookieStart + cookieName.length + 1; 
            cookieEnd = document.cookie.indexOf(";",cookieStart);
            if (cookieEnd == -1) {
                cookieEnd = document.cookie.length;
            }
            return unescape(document.cookie.substring(cookieStart,cookieEnd));
        }
    }
    return "";
}