/* ===========================================================================================
 VTour Navigation Services

 Author:  Selwyn Wan
 Company: EdgeState Services Inc.

 Copyright © 2008, 2009 EdgeState Services Inc.
 ===========================================================================================
*/
var kVTNavVersion = "1.2.9";

var gVTNavTabName_Map = "tabMap";
var gVTNavTabName_Show = "tabShow";
var gVTNavTabName_Details = "tabDetails";
var gVTNavTabName_Jump = "tabJump";
var gVTNavTabName_Search = "tabSearch";

var gVTNavTab_Map = null;
var gVTNavTab_Show = null;
var gVTNavTab_Details = null;
var gVTNavTab_Jump = null;
var gVTNavTab_Search = null;

var gVTNavTab_MapImg = null;
var gVTNavTab_ShowImg = null;
var gVTNavTab_DetailsImg = null;
var gVTNavTab_JumpImg = null;
var gVTNavTab_SearchImg = null;

var kVTNavTabID_None = -1;
var kVTNavTabID_Map = 0;
var kVTNavTabID_Show = 1;
var kVTNavTabID_Details = 2;
var kVTNavTabID_Jump = 3;
var kVTNavTabID_Search = 4;

var gVTCurTab = null;
var gVTCurTabID = kVTNavTabID_None;
var gVTCurTabTypeID = kVTNavTabID_None;

var gVTTabContent = null;
var gbVTTabContentDisplayed = false;
var gVTMediaUnderlay = null;

var gbVTCompactMode = false;

function vtNavInitialize(inReset)
{
    if ((gVTNavTab_Map = document.getElementById(gVTNavTabName_Map)) != null)
        gVTNavTab_Map.onclick = vtNavTabClickHandler;
    if ((gVTNavTab_Show = document.getElementById(gVTNavTabName_Show)) != null)
        gVTNavTab_Show.onclick = vtNavTabClickHandler;
    if ((gVTNavTab_Details = document.getElementById(gVTNavTabName_Details)) != null)
        gVTNavTab_Details.onclick = vtNavTabClickHandler;
    if ((gVTNavTab_Jump = document.getElementById(gVTNavTabName_Jump)) != null)
        gVTNavTab_Jump.onclick = vtNavTabClickHandler;
    if ((gVTNavTab_Search = document.getElementById(gVTNavTabName_Search)) != null)
        gVTNavTab_Search.onclick = vtNavTabClickHandler;
    
    if (gbVTCompactMode)
    {
        if ((gVTNavTab_MapImg = document.getElementById(gVTNavTabName_Map + "Img")) != null)
            gVTNavTab_MapImg.onclick = vtNavTabClickHandler;
        if ((gVTNavTab_ShowImg = document.getElementById(gVTNavTabName_Show + "Img")) != null)
            gVTNavTab_ShowImg.onclick = vtNavTabClickHandler;
        if ((gVTNavTab_DetailsImg = document.getElementById(gVTNavTabName_Details + "Img")) != null)
            gVTNavTab_DetailsImg.onclick = vtNavTabClickHandler;
        if ((gVTNavTab_JumpImg = document.getElementById(gVTNavTabName_Jump + "Img")) != null)
            gVTNavTab_JumpImg.onclick = vtNavTabClickHandler;
        if ((gVTNavTab_SearchImg = document.getElementById(gVTNavTabName_Search + "Img")) != null)
            gVTNavTab_SearchImg.onclick = vtNavTabClickHandler;
            
        gVTTabContent = document.getElementById("tabContent");

        if (gVTNavTab_Map != null)
            gVTNavTab_Map.onmouseover = vtNavTabMouseOverHandler;
        if (gVTNavTab_Show != null)
            gVTNavTab_Show.onmouseover = vtNavTabMouseOverHandler;
        if (gVTNavTab_Details != null)
            gVTNavTab_Details.onmouseover = vtNavTabMouseOverHandler;
        if (gVTNavTab_Jump != null)
            gVTNavTab_Jump.onmouseover = vtNavTabMouseOverHandler;
        if (gVTNavTab_Search != null)
            gVTNavTab_Search.onmouseover = vtNavTabMouseOverHandler;

        if (gVTNavTab_MapImg != null)
            gVTNavTab_MapImg.onmouseover = vtNavTabMouseOverHandler;
        if (gVTNavTab_ShowImg != null)
            gVTNavTab_ShowImg.onmouseover = vtNavTabMouseOverHandler;
        if (gVTNavTab_DetailsImg != null)
            gVTNavTab_DetailsImg.onmouseover = vtNavTabMouseOverHandler;
        if (gVTNavTab_JumpImg != null)
            gVTNavTab_JumpImg.onmouseover = vtNavTabMouseOverHandler;
        if (gVTNavTab_SearchImg != null)
            gVTNavTab_SearchImg.onmouseover = vtNavTabMouseOverHandler;

        gVTTabContent = document.getElementById("tabContent");
        
        gVTMediaUnderlay = document.getElementById("mediaUnderlay");
        if (gVTMediaUnderlay != null)
            gVTMediaUnderlay.onmouseover = vtMediaUnderlayMouseOver;
        
        if (gVTTabContentOrigX == "")
            gVTTabContentOrigX = gVTTabContent.offsetLeft;
        gVTTabContent.style.left = "-1000px";
    }

    if (inReset || gVTCurTabID == kVTNavTabID_None)
    {
        if (!gbVTCompactMode)
            vtNavSelectTab(kVTNavTabID_Jump);
    }
    else
    {
        var curTabID = gVTCurTabID;
        
        gVTCurTabID = kVTNavTabID_None;
        vtNavSelectTab(curTabID);
    }
}

function vtNavTabClickHandler(inEvent)
{
    if (gbDebugOutput)
        vtDebugOutput("vtNavTabClickHandler()");
        
    var theEvent = (inEvent ? inEvent : window.event);
    var theSrc = (theEvent.target ? theEvent.target : theEvent.srcElement);
    
    if (vtNavTabNameToTabID(theSrc.id) == gVTCurTabID)
    {
        if (gbVTCompactMode)
        {
            if (gbVTTabContentDisplayed)
            {
                vtDismissTabContent();
                vtNavDeselectCurTab();
            }
        }
    }
    else
    {
        if (gbVTCompactMode && !gbVTTabContentDisplayed)
            vtRevealTabContent();
        vtNavSelectTab(vtNavTabNameToTabID(theSrc.id));
    }
    
    if (gbVTCompactMode)
    {
        var evt = inEvent;
        
        if (!evt)
            evt = window.event
        if (evt)
        {
            evt.cancelBubble = true;
            if (evt.stopPropagation)
                evt.stopPropagation();
        }
    }
}

function vtNavTabMouseOverHandler(inEvent)
{
    if (gbDebugOutput)
        vtDebugOutput("vtNavTabMouseOverHandler()");
        
    if (!gbVTTabContentDisplayed)
        vtRevealTabContent();
    
    var theEvent = (inEvent ? inEvent : window.event);
    var theSrc = (theEvent.target ? theEvent.target : theEvent.srcElement);
    
    vtNavSelectTab(vtNavTabNameToTabID(theSrc.id));
    
    var evt = inEvent;
    
    if (!evt)
        evt = window.event
    if (evt)
    {
        evt.cancelBubble = true;
        if (evt.stopPropagation)
            evt.stopPropagation();
    }
}

function vtNavTabNameToTabID(inTabName)
{
    var theID = kVTNavTabID_None;
    
    switch (inTabName)
    {
        case gVTNavTabName_Map:
            theID = kVTNavTabID_Map;
            break;
        case gVTNavTabName_Show:
            theID = kVTNavTabID_Show;
            break;
        case gVTNavTabName_Details:
            theID = kVTNavTabID_Details;
            break;
        case gVTNavTabName_Jump:
            theID = kVTNavTabID_Jump
            break;
        case gVTNavTabName_Search:
            theID = kVTNavTabID_Search;
            break;
        case gVTNavTabName_Map + "Img":
            theID = kVTNavTabID_Map;
            break;
        case gVTNavTabName_Show + "Img":
            theID = kVTNavTabID_Show;
            break;
        case gVTNavTabName_Details + "Img":
            theID = kVTNavTabID_Details;
            break;
        case gVTNavTabName_Jump + "Img":
            theID = kVTNavTabID_Jump
            break;
        case gVTNavTabName_Search + "Img":
            theID = kVTNavTabID_Search;
            break;
    }
    
    return theID;
}

function vtMediaUnderlayMouseOver()
{
    if (gbDebugOutput)
        vtDebugOutput("vtMediaUnderlayMouseOver()");
        
    vtNavDeselectCurTab();
    vtDismissTabContent();        
}

var gVTTabContentOrigX = "";

function vtRevealTabContent()
{
    if (gbDebugOutput)
        vtDebugOutput("vtRevealTabContent()");

    if (!gbVTTabContentDisplayed)
    {        
        gFadeTarget = document.getElementById("tabContent");
        gFadeTarget.style.left = gVTTabContentOrigX + "px";
        vtFadeSet(0);
        vtFadeTarget(document.getElementById("tabContent"), 0, 90, 5, 5, -1);
        gbVTTabContentDisplayed = true;
        gVTMediaUnderlay.style.display = "block";
        gVTMediaUnderlay.style.visibility = "visible";
        gVTMediaUnderlay.style.zIndex = 2;
    }
}

function vtDismissTabContent()
{
    if (gbDebugOutput)
        vtDebugOutput("vtDismissTabContent()");
    
    if (gbVTTabContentDisplayed)
    {    
        gFadeTarget = document.getElementById("tabContent");
        gFadeTarget.style.left = "-1000px";
        vtFadeSet(90);
        vtFadeTarget(document.getElementById("tabContent"), 90, 0, 5, 5, -1);
        gbVTTabContentDisplayed = false;
    
        gVTMediaUnderlay.style.display = "none";
    }
}

function vtNavSelectTab(inTabID)
{
    var thePane;
    
    if (gVTCurTabID != inTabID && inTabID != kVTNavTabID_None)
    {
        var newTab = null;
        var theTabTypeID = -1;
        
        switch (inTabID)
        {
            case kVTNavTabID_Map:
                newTab = gVTNavTab_Map;
                theTabTypeID = kVTTabTypeMap;
                break;
            case kVTNavTabID_Show:
                newTab = gVTNavTab_Show;
                theTabTypeID = kVTTabTypeProximity;
                break;
            case kVTNavTabID_Details:
                newTab = gVTNavTab_Details;
                theTabTypeID = kVTTabTypeDetails;
                break;
            case kVTNavTabID_Jump:
                newTab = gVTNavTab_Jump;
                theTabTypeID = kVTTabTypeSummary;
                break;
            case kVTNavTabID_Search:
                newTab = gVTNavTab_Search;
                theTabTypeID = kVTTabTypeSearch;
                break;
        }
        
        if (newTab != null)
        {
            
            if (gVTCurTab != null)
            {
                thePane = vtFindTabPane(gVTCurTabTypeID);
                if (thePane != null)
                    thePane.style.display = "none";
                gVTCurTab.className = "";
            }
            gVTCurTab = newTab;
            gVTCurTabTypeID = theTabTypeID;
            gVTCurTab.className = "current";
            gVTCurTabID = inTabID;
            
            thePane = vtFindTabPane(gVTCurTabTypeID);
            if (thePane != null)
                thePane.style.display = "block";
                
            if (theTabTypeID == kVTTabTypeMap)
            {
                setTimeout(vtDelayedLoadMapXML, 1000);
                vtPolePanAngle();
            }
        }
    }
//    else
//    {
//        if (!(gVTCurTabID >= 0 && gVTCurTabID == inTabID))
//        {
//            vtNavDeselectCurTab();
//            vtDismissTabContent();
//        }
//    }
}

function vtNavDeselectCurTab()
{
    if (gVTCurTab != null)
    {
        thePane = vtFindTabPane(gVTCurTabTypeID);
        if (thePane != null)
            thePane.style.display = "none";
        gVTCurTab.className = "";
        gVTCurTab = null;
        gVTCurTabTypeID = -1;
        gVTCurTabID = kVTNavTabID_None;
    }
}
