﻿/// <reference path="../Scripts/jquery-1.3.2.js" />
var NavigationMenuTimeout = 500;
var NavigationMenuSelectedItem = 0;
var NavigationCloseFunc = 0;
var rightNavOpenDelay = 1000;
var rightNavOpenTimer = {};
var navigationCloseTimer = {};

/*
* jQuery Timer Plugin
* http://www.evanbot.com/article/jquery-timer-plugin/23
*
* @version      1.0
* @copyright    2009 Evan Byrne (http://www.evanbot.com)
*/
jQuery.timer = function(time, func, callback) {
    var a = { timer: setTimeout(func, time), callback: null }
    if (typeof (callback) == 'function') { a.callback = callback; }
    return a;
};
jQuery.clearTimer = function(a) {
    clearTimeout(a.timer);
    if (typeof (a.callback) == 'function') { a.callback(); };
    return this;
};

window.addEvent('error', JavaScriptErrorHandler);
jQuery(document).ready(function() {
    jQuery(".topNavigation > li").mouseenter(OpenTopNavigationMenu).mouseleave(function() {
        navigationCloseTimer = jQuery.timer(NavigationMenuTimeout, CloseTopNavigationMenu);
    });
    jQuery(".topNavigation").find("ul").bgIframe({ opacity: true });
    jQuery("#rightNavigation").find("div.right-subnav").bgIframe({ opacity: true });
    jQuery("#rightNavigation > li").mouseenter(function() {
        StartRightNavigationOpenMenuTimer(this);
    }).mouseleave(StartRightNavigationMenuTimer).find("> a").click(function(e) {
        OpenRightNavigationMenu(jQuery(this).parent());
        e.preventDefault();
    });
    matchColumnHeight();
});

function StartRightNavigationOpenMenuTimer(menuItem) {
    CancelNavigationTimers();
    rightNavOpenTimer = jQuery.timer(rightNavOpenDelay, function() { OpenRightNavigationMenu(menuItem); });
}

function StartRightNavigationMenuTimer() {
    CancelNavigationTimers();
    navigationCloseTimer = jQuery.timer(NavigationMenuTimeout, CloseRightNavigationMenu);
}

function CancelNavigationTimers() {
    if (rightNavOpenTimer) {
        jQuery.clearTimer(rightNavOpenTimer);
        rightNavOpenTimer = null;
    }
    if (navigationCloseTimer) {
        jQuery.clearTimer(navigationCloseTimer);
        navigationCloseTimer = null;
    }
}

function OpenTopNavigationMenu() {
    CancelNavigationTimers();
    if (NavigationCloseFunc) {
        NavigationCloseFunc();
    }
    NavigationCloseFunc = CloseTopNavigationMenu;
    NavigationMenuSelectedItem = jQuery(this).find("ul").show();
    if (NavigationMenuSelectedItem.is("#topNavigationMenuItem5 + ul")) {
        var tabRightEdge = jQuery(".topNavigation > li:eq(5)").offset().left + jQuery(".topNavigation > li:eq(5)").width();
        var menuRightEdge = NavigationMenuSelectedItem.offset().left + NavigationMenuSelectedItem.width();
        NavigationMenuSelectedItem.css("left", (NavigationMenuSelectedItem.offset().left - (menuRightEdge - tabRightEdge) - 3) + "px"); // TODO: Magic number 3 - why?
    }
    jQuery("> a", this).addClass("selected");
}

function CloseTopNavigationMenu() {
    if (NavigationMenuSelectedItem) {
        NavigationMenuSelectedItem.hide();
        jQuery("> a", NavigationMenuSelectedItem.parent()).removeClass("selected");
    }
}

function OpenRightNavigationMenu(menuItem) {
    if (NavigationCloseFunc) {
        NavigationCloseFunc();
    }
    NavigationCloseFunc = CloseRightNavigationMenu;
    var context = jQuery(menuItem);
    NavigationMenuSelectedItem = context.find(".right-subnav");
    context.addClass("selected");
    if (context.hasClass("right-nav-shadow")) {
        context.addClass("right-nav-over-shadow");
    }
    var rightEdge = context.offset().left;
    NavigationMenuSelectedItem.show().css({ "top": context.offset().top + "px", "left": (rightEdge - NavigationMenuSelectedItem.width()) + "px" });
}

function CloseRightNavigationMenu() {
    if (NavigationMenuSelectedItem) {
        NavigationMenuSelectedItem.hide();
        jQuery(NavigationMenuSelectedItem.parent()).removeClass("selected").removeClass("right-nav-over-shadow");
    }
}

function matchColumnHeight() {
    var maxHeight = $('column-right').offsetHeight;
    if ($('column-left').offsetHeight > maxHeight) {
        maxHeight = $('column-left').offsetHeight;
    }
    if ($('column-main').offsetHeight < maxHeight) {
        // HACK: Fix this with conditional checks and some global variable.
        if (typeof document.body.style.maxHeight != "undefined") {
            $('column-main').setStyle('min-height', maxHeight);
        }
        else {
            $('column-main').setStyle('height', maxHeight);
        }
    }
}

function ClearSearchText(textBox) {
    if (textBox.value == "search/keyword") {
        textBox.value = "";
    }
}

function hideDiv(divID) {
    document.getElementById(divID).style.display = 'none';
}

function showGalleryDiv(anchor, imagenum, newcaption) {
    var media = document.getElementById('media');
    var caption = document.getElementById('caption');

    var str = anchor.getAttribute("id");
    var index = str.substr('6');
    var xpos = 0;

    if (imagenum == 4) {
        if (parseInt(index) == 4) { xpos += 265 }
        else if (parseInt(index) == 3) { xpos += 170 }
        else if (parseInt(index) == 2) { xpos += 95 }
    }
    else if (imagenum == 5) {
        if (parseInt(index) == 5) { xpos += 404 }
        else if (parseInt(index) == 4) { xpos += 320 }
        else if (parseInt(index) == 3) { xpos += 210 }
        else if (parseInt(index) == 2) { xpos += 85 }
    }
    media.style.bottom = 90 + "px";
    media.style.left = xpos + "px";
    media.style.display = 'block';
    caption.innerHTML = newcaption;

    var source = anchor.getAttribute("href");
    var placeholder = document.getElementById("placeholder");
    placeholder.setAttribute("src", source);
}

function fontSize(increment) {
    if (typeof fontInt == 'undefined') {
        fontInt = 14;
    }
    fontInt = fontInt + increment;
    if (fontInt > 16) {
        fontInt = 16;
    } else if (fontInt < 12) {
        fontInt = 12;
    }
    setSize = fontInt + 'px';
    document.getElementById('container').style.fontSize = setSize;
}