var f_inmenu = false;
var f_insubmenu = false;
var f_inmenuitem = false;
var renderingMenuID = -1;
var currentMenuItemID = 0;

var intervalID = 0;
var tmpIndex = 0;

var menuItems;
var submenus;

/**************** Menu Event Handlers ****************/
function menuOver () {
    f_inmenu = true;
}
function menuOut() {
    f_inmenu = false;
}
function menuItemOver(id) { 
    f_inmenuitem = true;
    currentMenuItemID = id;
    menuItems[id].className = "menu_item_inner_over";  
    showSubmenu(id);
}
function menuItemOut(id, event) {
    f_inmenuitem = false;
    menuItems[id].className = "menu_item_inner";
    hideSubmenu(id);
}
function submenuOver(id) {
    f_insubmenu = true;
    menuItems[id].className = "menu_item_inner_over";  
    showSubmenu(id);    
}
function submenuOut(id) {
    f_insubmenu = false;
}
function submenuItemOver(obj) {
    obj.className = "submenu_item_over";
}
function submenuItemOut(obj) {
    obj.className = "submenu_item";
}

/**************** Menu Functions ****************/
function startMenuApp() {
    //setInterval("renderMenuState()", 150);
}

function renderMenuState() {
    if (f_inmenuitem) {
        hideAllMenus(currentMenuItemID);
        showSubmenu(currentMenuItemID);
    }
}

function showSubmenu(id) {
    submenus[id].style.visibility = "visible";
    setOpacity(submenus[id], 90);
    /*if (id != renderingMenuID) {
        
        renderingMenuID = id;       
        tmpIndex = 0;
        submenus[id].innerHTML = "";
        setOpacity(submenus[id], 0);
        intervalID = setInterval("menuFade()", 50);
    }*/
}
function hideAllMenus(id) {
    for (var i=0;i<itemCount;i++)
        if (id != i)
            hideSubmenu(i);
}
function hideSubmenu(id) {
    submenus[id].style.visibility = "hidden";
    //clearInterval(intervalID);
    renderingMenuID = -1;
}
function setOpacity(obj, opacity) {
    obj.style.filter = "alpha(opacity=" + opacity + ")";
    obj.style.opacity = opacity/100;
    obj.style.MozOpacity = opacity/100;
    obj.style.KhtmlOpacity = opacity/100;
}
function cacheMenus(itemCount) {
    menuItems = new Array(itemCount);
    submenus = new Array(itemCount);
    for (var i=0;i<itemCount;i++) {
        menuItems[i] = document.getElementById("menu_item_inner" + i);
        submenus[i] = document.getElementById("submenu" + i);
    }
}
function menuFade() {
    if (tmpIndex < menu[renderingMenuID].children.length) {
        setOpacity(submenus[renderingMenuID], ((tmpIndex + 1) / menu[renderingMenuID].children.length)*200);
        submenus[renderingMenuID].innerHTML += getSubmenuItem(menu[renderingMenuID].children[tmpIndex], tmpIndex);
    }
    tmpIndex++;
}
function getSubmenuItem(item, id) {
    return "<div class=\"submenu_item\" onmouseover=\"submenuItemOver(this)\" onmouseout=\"submenuItemOut(this)\" onclick=\"window.location='" + item.link + "'\">" + item.title + "</div>";
}

/**************** Background Image Cycling ****************/
var previousImageIndex;
var imageIndex = 1;
var fadeIndex = 0;
var fadeIncrement = 10;
var zIndex = 20;
var imageFadeIntervalID;

function cycleImages() {
    setInterval("fadeInNextImage()", 4000);
}
function fadeInNextImage() {
    previousImageIndex = imageIndex
    imageIndex = (imageIndex < 3) ? imageIndex + 1 : 1;
    setOpacity(document.getElementById("image" + imageIndex), 0);
    document.getElementById("image" + previousImageIndex).style.zIndex = 0;  
    if (previousImageIndex == 1)
        document.getElementById("image" + 3).style.zIndex = -10; 
    else 
        document.getElementById("image" + (previousImageIndex - 1)).style.zIndex = -10; 
        
    document.getElementById("image" + imageIndex).style.zIndex = 10;
    imageFadeIntervalID = setInterval("crossFadeImages(" + previousImageIndex + "," + imageIndex + ")", 40);
}
function crossFadeImages(id1, id2) {
    fadeIndex += fadeIncrement
    if (fadeIndex > 100) {
        clearInterval(imageFadeIntervalID);
        fadeIndex = 0;
        setOpacity(document.getElementById("image" + id1), 0);
        return;
    } 
    setOpacity(document.getElementById("image" + id2), fadeIndex);  
}