/* $Header: /cvs01/Spinfish/beelinersurveys.com/resource/web/shared/js/navbar.js,v 1.2 2007/11/15 03:56:18 heiko Exp $ */
/*
 * Copyright 2006 ROG, INc.
 */

var navbarSubNavDelay = 300;
var navbarResetDelay = 1500;

var navbarSubNavTimer;
var navbarResetTimer;
var navbarCurrentIdx;

function navbarInit(section) {
    var banner;
    var width;
    var idx = 1;
    
    banner = platform.getElement("banner");
    width = platform.getWidth(banner);
    while (true) {
        var button;
        var bar;
        var src;
        var statePos;
        
        button = platform.getElement("navbar-" + idx);
        bar = platform.getElement("navbar-sub" + idx);
        if (button == null || bar == null) break;
        buttonPos = platform.getX(button);
        buttonWidth = platform.getWidth(button);
        barWidth = platform.getWidth(bar);
        x = buttonPos + (buttonWidth / 2) - (barWidth / 2);
        if (x < 0) x = 0;
        if (x > width - barWidth) width = x - barWidth;
        platform.setX(bar, x);
        button = platform.getElement("navbar-img" + idx);
        if (button != null) {
            src = button.src;
            statePos = navbarGetStatePos(src);
            state = parseInt(src.substring(statePos, statePos + 1));
            if (state & 0x0002) {
                navbarCurrentIdx = idx;
            }
        }
        idx++;
    }
}

function navbarMouseIn() {

    if (navbarResetTimer != null) {
        window.clearTimeout(navbarResetTimer);
        navbarResetTimer = null;
    }
}

function navbarMouseOut() {

    navbarResetTimer = window.setTimeout(
        "navbarSelectSubNav(" + navbarCurrentIdx + ");",
        navbarResetDelay);
}

function navbarNavMouseIn(section) {

    // replace the image with the "h" version
    button = platform.getElement("navbar-img" + section);
    if (button != null) {
        var src;
        var statePos;
        
        src = button.src;
        statePos = navbarGetStatePos(src);
        state = parseInt(src.substring(statePos, statePos + 1));
        state |= 0x0001;
        src = src.substring(0, statePos) + state + src.substring(statePos + 1);
        button.src = src;
    }
    // set timer for delayed subnav bar selection
    navbarSubNavTimer = window.setTimeout(
        "navbarSelectSubNav(" + section + ");", 
        navbarSubNavDelay);
}

function navbarNavMouseOut(section) {

    button = platform.getElement("navbar-img" + section);
    if (button != null) {
        var src;
        var statePos;
        
        src = button.src;
        statePos = navbarGetStatePos(src);
        state = parseInt(src.substring(statePos, statePos + 1));
        state &= 0xfffe;
        src = src.substring(0, statePos) + state + src.substring(statePos + 1);
        button.src = src;
    }
    // cancel timer
    if (navbarSubNavTimer != null) {
    	window.clearTimeout(navbarSubNavTimer);
    	navbarSubNavTimer = null;
    }
}

function navbarSelectSubNav(section) {
    var idx = 1;
    var bar;
	
    // replace the subnav bar with the proper section
    while (true) {
    	
    	bar = platform.getElement("navbar-sub" + idx);
    	if (bar == null) break;
    	bar.style.visibility = "hidden";
        idx++;
    }
    bar = platform.getElement("navbar-sub" + section);
    if (bar != null) {
        bar.style.visibility = "visible";
    }
}

function navbarGetStatePos(uri) {
    var statePos = -1;
    
    for (var idx = 0; idx < 4; idx++) {
        statePos = uri.indexOf(',', statePos + 1);
        if (uri.substring(statePos, statePos + 4) == ",bc:") idx--;
    }
    return statePos + 1;
}
