﻿//***********************************************************************
//INITIAL
//Developer:    Mark Warner
//     Date:    June 25, 2009
//  Purpose:    This class provides the client-side functionality.
//
//REVISIONS
//Developer:    (Name of developer.)
//     Date:    (Date of change.)
//  Purpose:	(Purpose of change.)
//***********************************************************************

//global vars...
//which browser?
var isInternetExplorer = (navigator.appName == "Microsoft Internet Explorer") ? true : false;
//for scroller objects
var scroller;
var scrollbar;
var scroller2;
var scrollbar2;
var scroller3;
var scrollbar3;
var scroller4;
var scrollbar4;
//for InnerContentDIV population...
var currentItemId = '';
var crumbText = '';
var controlName;
var clientParams;
var currentPanel = "?"
var isLoaded = false;
var searchResults = '';

/* utility functions... */
//document.getElementById shortcut...
/*
function $(id) {
return document.getElementById(id);
}//$()
*/

//reveal all properties for any object...
function IterateProperties(currentProperty) {
    // iterate properties...
    for (property in currentProperty) {
        alert(property.valueOf());
    } //for        
} //IterateProperties()

function DummyFunction(e) {
    if (e.stopPropagation != null) e.stopPropagation();
    if (e.preventDefault != null) e.preventDefault();
    e.cancelBubble = true;
    e.returnValue = false;
} //DummyFunction()

/* application functions... */
//corrects callback array script...
function FixCallback() {
    if (typeof (WebForm_CallbackComplete) == "function") {
        //overwrite the defective stock version with corrected version...
        WebForm_CallbackComplete = WebForm_CallbackComplete_SyncFixed;
    } //if
} //FixCallback()

//init carousel...
function StartScroll() {
    var imageViewer = $find("WebImageViewer1");
    //IterateProperties(imageViewer);
    imageViewer.get_scrollAnimations().set_type($IG.ScrollAnimation.Continuous);
    var animationInstance = imageViewer.get_scrollAnimations().get_continuousAnimation();
    animationInstance.set_maxSpeed(1);
    imageViewer.navigateNext();
} //StartScroll()

//init on page load...
function InitPanel() {
    //corrects callback array script...
    FixCallback();
    //get Home.xml data...
    CallServer("0", null); //main content 
    //pre-load IFrame...
    document.getElementById('InnerContentIFrame').src = "Seek/search.aspx?zoom_query=''"
} //InitPanel()
/*
//disable mouse wheel for main browser...
//TODO: same for IFrame?
if (isInternetExplorer) {
//if IE...
document.attachEvent('onmousewheel', function(e) {
if (!e) var e = window.event;
e.returnValue = false;
e.cancelBubble = true;
return false;
}, false);
}//if
else {
//of if FF...
document.addEventListener('DOMMouseScroll', function(e) {
e.stopPropagation();
e.preventDefault();
e.cancelBubble = false;
return false;
}, false);
}//else          
*/
//for external links...
//TODO: consider 'target=_blank' for new tab without new window?
function OpenTab(currentURL) {
    window.open(currentURL, "_blank");
} //OpenTab()

//called from breadcrumb hyperlinks...
function GetPage(pageIndex) {
    //server call for XML...
    //alert(pageIndex);
    //pre fetch clean-up for IFRAME to ContentDIV transition...    
    document.getElementById('InnerContentDIV').innerHTML = '';

    //behavior for ControlDIV... 
    if (pageIndex != "3") {
        CallServer(pageIndex, null);
    } //if
    else {
        TogglePanel("UltraWebmenu1", "UltraWebmenu1_3");
    } //else
} //GetPage

//for search ENTER key...
function CatchEnter(currentEvent) {
    //get key...
    var keyPressed = currentEvent.keyCode;
    //evaluate it...
    if (keyPressed == 13 || keyPressed == 3) {
        if (document.getElementById('TextBox1').value != '') {
            SearchClick();
            return false;
        } //
        else {
            return false;
        } //else
    } //if
    else {
        return true;
    } //else 
} //CatchEnter()

//for search results navigation...
//get URL from user click on search results...
function CatchClick(currentEvent) {
    //alert(currentEvent.srcElement.href);
    //alert(currentEvent.srcElement.hostname);

    /*
    //search results breadcumbs...
    //alert(divArray[(divArray.length - 1)].className);                    
    if (divArray[(divArray.length - 1)].className == "result_pages") {
    alert(divArray[(divArray.length - 1)].innerHTML);
    searchResults = divArray[(divArray.length - 1)].innerHTML;
    }//if
    */

    //test for 'next page' navigation...
    //if IE...
    if (isInternetExplorer) {
        //if valid url...
        if (currentEvent.srcElement.href) {
            //if query string, proceed and get next page...
            if (currentEvent.srcElement.href.indexOf('?') != -1) {
                searchResults = currentEvent.srcElement.href;
                ShowResults(currentEvent.srcElement.href);
                return;
            } //if
        } //if
    } //if
    //else Firefox...
    else {
        //if valid url...
        if (currentEvent.target.href) {
            //if query string, proceed and get next page...
            if (currentEvent.target.href.indexOf('?') != -1) {
                searchResults = currentEvent.target.href;
                ShowResults(currentEvent.target.href);
                return;
            } //if
        } //if
    } //else

    //if results link clicked...
    //if IE...
    if (isInternetExplorer) {
        //if valid url...
        if (currentEvent.srcElement.href) {
            //if no query string, get XML data...
            var currentURL = currentEvent.srcElement.href;
            //alert('currentURL = ' + currentURL);
            var currentPath = 'http://' + currentEvent.srcElement.hostname + '/HTMLFiles/';
            //alert('currentPath = ' + currentPath);
            var fileName = currentURL.replace(currentPath, '');
            //alert('fileName = ' + fileName);
            var xmlKey = fileName.replace('.htm', '');
            //alert('xmlKey = ' + xmlKey);
            var itemID = 'UltraWebMenu1_' + xmlKey;
            //alert('itemID = ' + itemID);                
            document.getElementById('InnerContentDIV').innerHTML = '';
            ItemClick('UltraWebMenu1', itemID);
            document.getElementById('SearchResultsDIV').style.display = '';
        } //if    
        //if erroneous click, squash it...
        else {
            return false;
        } //else 
    } //if 
    //if Firefox...
    else {
        //if valid url...   
        if (currentEvent.target.href) {
            //if no query string, get XML data...
            var currentURL = currentEvent.target.href;
            //alert('currentURL = ' + currentURL);
            var currentPath = 'http://' + currentEvent.target.hostname + '/HTMLFiles/';
            //alert('currentPath = ' + currentPath);
            var fileName = currentURL.replace(currentPath, '');
            //alert('fileName = ' + fileName);
            var xmlKey = fileName.replace('.htm', '');
            //alert('xmlKey = ' + xmlKey);
            var itemID = 'UltraWebMenu1_' + xmlKey;
            //alert('itemID = ' + itemID);
            document.getElementById('InnerContentDIV').innerHTML = '';
            ItemClick('UltraWebMenu1', itemID);
            document.getElementById('SearchResultsDIV').style.display = '';
        } //if    
        //if erroneous click, squash it...
        else {
            return false;
        } //else 
    } //if   
} //CatchCatch()

//get search box criteria and execute...
function SearchClick() {
    var tempParams = document.getElementById('TextBox1').value;
    var whiteSpace = / /g;
    var searchParams = tempParams.replace(whiteSpace, "+");
    //render results...
    ShowResults("seek/search.aspx?zoom_query=" + searchParams);

    //manage search results link...
    //new search, toggle link...
    document.getElementById('SearchResultsDIV').style.display = 'none';
    //persist original search string... 
    searchResults = "seek/search.aspx?zoom_query=" + searchParams;
    document.getElementById('SearchResultsLink').innerHTML = "<a href='javascript:ShowPreviousResults();'>Return to Search Results</a>";
} //SearchClick()

//display search results... 
function ShowPreviousResults() {
    //test...
    //alert(currentURL);

    //clean up breadcrumbs...
    document.getElementById('imgFirst').style.display = 'none';
    document.getElementById('lblSecond').style.display = 'none';
    document.getElementById('imgSecond').style.display = 'none';
    document.getElementById('lblThird').style.display = 'none';
    document.getElementById('imgThird').style.display = 'none';
    document.getElementById('lblFourth').style.display = 'none';

    //toggle panel images and toggle DIVs...
    document.getElementById('leftPanel').style.backgroundImage = "url(/images/left_panel_01_search.gif)";
    document.getElementById('ControlDIV').style.display = 'none';
    document.getElementById('ContentDIV').style.display = 'none';
    document.getElementById('IFrameDIV').style.display = '';
    document.getElementById('InnerContentIFrame').src = searchResults;
    document.getElementById('SearchResultsDIV').style.display = 'none';
} //ShowResults

//display search results... 
function ShowResults(currentURL) {
    //test...
    //alert(currentURL);

    //clean up breadcrumbs...
    document.getElementById('imgFirst').style.display = 'none';
    document.getElementById('lblSecond').style.display = 'none';
    document.getElementById('imgSecond').style.display = 'none';
    document.getElementById('lblThird').style.display = 'none';
    document.getElementById('imgThird').style.display = 'none';
    document.getElementById('lblFourth').style.display = 'none';

    //toggle panel images and toggle DIVs...
    document.getElementById('leftPanel').style.backgroundImage = "url(/images/left_panel_01_search.gif)";
    document.getElementById('ControlDIV').style.display = 'none';
    document.getElementById('ContentDIV').style.display = 'none';
    document.getElementById('IFrameDIV').style.display = '';
    document.getElementById('InnerContentIFrame').src = currentURL;
} //ShowResults

//track navigation... 
function CreateBreadcrumbs(MenuId, ItemId) {
    //get control name and menu level clicked...
    //controlName = ItemId.toString().substring(0, ItemId.toString().indexOf('_') + 1);
    controlName = MenuId.toString() + '_';
    clientParams = ItemId.toString().replace(controlName, '');
    clientParams = '"' + clientParams + '"';
    var itemObject = igmenu_getItemById(ItemId);

    //count params...
    var paramCount = 1;
    var underscoreChar = /_/g;
    var matchArray = clientParams.match(underscoreChar);
    paramCount = (matchArray) ? paramCount + matchArray.length : paramCount;

    //test...
    //debugger;

    switch (paramCount) {
        //1 number...                       
        case 1:
            //clean up...
            document.getElementById('lblFourth').style.display = 'none';
            document.getElementById('imgThird').style.display = 'none';
            document.getElementById('lblThird').style.display = 'none';
            document.getElementById('imgSecond').style.display = 'none';
            //build crumbs...            
            document.getElementById('imgFirst').style.display = '';
            document.getElementById('lblSecond').style.display = '';
            document.getElementById('lblSecond').innerHTML = itemObject.getTag();
            document.getElementById('lblSecond').style.textDecoration = 'none';
            document.getElementById('lblSecond').style.cursor = 'default';
            break;
        //2 numbers... 
        case 2:
            //clean up...
            document.getElementById('lblFourth').style.display = 'none';
            document.getElementById('imgThird').style.display = 'none';
            document.getElementById('lblThird').style.display = 'none';
            //build crumbs...
            document.getElementById('imgFirst').style.display = '';
            document.getElementById('lblSecond').style.display = '';
            document.getElementById('lblSecond').style.cursor = 'hand';
            document.getElementById('imgSecond').style.display = '';
            document.getElementById('lblThird').style.display = '';
            //set text...
            var secondCrumb = '"' + itemObject.getParent().getTag() + '"';
            //build html...
            //document.getElementById('lblSecond').innerHTML = 
            //"<a href='javascript:TogglePanel(" + MenuId.toString() + ", " + itemObject.getParent().Id + "); SetCrumbText(" + secondCrumb + "); CleanupBreadcrumbs(2);'>" + itemObject.getParent().getTag() + "</a>";                                     

            document.getElementById('lblSecond').innerHTML =
                "<a href='javascript:GetPage(" + clientParams.toString().replace(clientParams.substr(2, 2), "") + "); SetCrumbText(" + secondCrumb + "); CleanupBreadcrumbs(2);'>" + itemObject.getParent().getTag() + "</a>";

            document.getElementById('lblThird').innerHTML = itemObject.getTag();
            document.getElementById('lblThird').style.textDecoration = 'none';
            document.getElementById('lblThird').style.cursor = 'default';
            break;
        //3 numbers... 
        case 3:
            //toggle elements...
            document.getElementById('imgFirst').style.display = '';
            document.getElementById('lblSecond').style.display = '';
            document.getElementById('lblSecond').style.cursor = 'hand';
            document.getElementById('imgSecond').style.display = '';
            document.getElementById('lblThird').style.display = '';
            document.getElementById('lblThird').style.cursor = 'hand';
            document.getElementById('imgThird').style.display = '';
            document.getElementById('lblFourth').style.display = '';
            //set text...
            var secondCrumb = '"' + itemObject.getParent().getParent().getTag() + '"';
            var thirdCrumb = '"' + itemObject.getParent().getTag() + '"';
            //build html...
            //document.getElementById('lblSecond').innerHTML =  
            //"<a href='javascript:TogglePanel(" + MenuId.toString() + ", " + itemObject.getParent().getParent().Id + "); SetCrumbText(" + secondCrumb + "); CleanupBreadcrumbs(2);'>" + itemObject.getParent().getParent().getTag() + "</a>";                           

            if (clientParams.length < 8) {
                document.getElementById('lblSecond').innerHTML =
                    "<a href='javascript:GetPage(" + clientParams.toString().replace(clientParams.substr(2, 4), "") + "); SetCrumbText(" + secondCrumb + "); CleanupBreadcrumbs(2);'>" + itemObject.getParent().getParent().getTag() + "</a>";
            } //if
            else {
                document.getElementById('lblSecond').innerHTML =
                    "<a href='javascript:GetPage(" + clientParams.toString().replace(clientParams.substr(2, 5), "") + "); SetCrumbText(" + secondCrumb + "); CleanupBreadcrumbs(2);'>" + itemObject.getParent().getParent().getTag() + "</a>";
            } //else


            if (clientParams.length < 8) {
                document.getElementById('lblThird').innerHTML =
                    "<a href='javascript:GetPage(" + clientParams.toString().replace(clientParams.substr(4, 2), "") + "); SetCrumbText(" + thirdCrumb + "); CleanupBreadcrumbs(3);'>" + itemObject.getParent().getTag() + "</a>";
            } //if
            else {
                document.getElementById('lblThird').innerHTML =
                    "<a href='javascript:GetPage(" + clientParams.toString().replace(clientParams.substr(4, 3), "") + "); SetCrumbText(" + thirdCrumb + "); CleanupBreadcrumbs(3);'>" + itemObject.getParent().getTag() + "</a>";
            } //else

            document.getElementById('lblFourth').innerHTML = itemObject.getTag();
            break;
        default:
            break;
    } //switch()     
} //ManageBreadcrumbs()

function SetCrumbText(argCrumbText) {
    crumbText = argCrumbText;
} //SetCrumbText()

function CleanupBreadcrumbs(crumbLevel) {
    switch (crumbLevel) {
        case 1:
            //toggle elements...
            document.getElementById('imgFirst').style.display = 'none';
            document.getElementById('lblSecond').style.display = 'none';
            document.getElementById('imgSecond').style.display = 'none';
            document.getElementById('lblThird').style.display = 'none';
            document.getElementById('imgThird').style.display = 'none';
            document.getElementById('lblFourth').style.display = 'none';
            break;
        case 2:
            //toggle elements... 
            document.getElementById('lblFourth').style.display = 'none';
            document.getElementById('imgThird').style.display = 'none';
            document.getElementById('lblThird').style.display = 'none';
            document.getElementById('imgSecond').style.display = 'none';
            document.getElementById('lblSecond').innerHTML = crumbText;
            document.getElementById('lblSecond').style.textDecoration = 'none';
            document.getElementById('lblSecond').style.cursor = 'default';
            break;
        case 3:
            //toggle elements...  
            document.getElementById('lblFourth').style.display = 'none';
            document.getElementById('imgThird').style.display = 'none';
            document.getElementById('lblThird').innerHTML = crumbText;
            document.getElementById('lblThird').style.textDecoration = 'none';
            document.getElementById('lblThird').style.cursor = 'default';

            //if IFRAME, close it too...
            if (document.getElementById('IFrameDIV').style.display == '') {
                document.getElementById('IFrameDIV').style.display = 'none';
                document.getElementById('ContentDIV').style.display = '';
            } //if
            break;
        default:
            break;
    } //switch() 
} //CleanupBreadcrumbs()

//handle all UltraWebMenu click events...
function ItemClick(MenuId, ItemId) {
    //helper stuff...
    //alert("MenuId = " + MenuId.toString() + ", ItemId = " + ItemId.toString());  
    //var menuObject = igmenu_getMenuById(MenuId);
    //var itemObject = igmenu_getItemById(ItemId);
    //IterateProperties(itemObject);

    //necessary for some reason...
    StartScroll();

    //manipulate appropriate menu...
    //squash breadcrumbs here...
    //top main menu...
    if (MenuId.toString() == 'UltraWebMenu1') {
        //set second arg...
        switch (ItemId) {
            //interim flyout... 
            case 'UltraWebMenu1_1_1': //Hot Locations
                return;
                break;
            //hodes location... 
            case 'UltraWebMenu1_1_1_1': //Hot Locations
                OpenTab("https://www.cytiva.com/jacobs/ext/cojobs.asp?From=1&UseCust=True&appid=&Keyword=&JobsID=&States=CA&Category=24&DaysBack=&PostalCode=&SearchRadius=0&DistanceUnit=miles");
                return; //no need to get XML...  
                //hodes location...
                //send mail... 
            case 'UltraWebMenu1_1_6': //Careers/Contact US
                return; //no need to get XML...  
                break;
            case 'UltraWebMenu1_4_3_2': //IT Schedule document
                OpenTab("/MiscFiles/GSA_IT70_Schedule.pdf");
                return;
                break;
            case 'UltraWebMenu1_4_3_3': //PES Schedule document
                OpenTab("/MiscFiles/GSA_PES_Schedule.pdf");
                return;
                break;     
            case 'UltraWebMenu1_4_4_1': //Contract Vehicles/State of Florida/State of Florida IT Consulting
                OpenTab("http://www.myflorida.com/apps/spurs/SPURS.VENDOR_MGT.vendor?display_str=QV205910FX408V40923");
                return;
                break;
            default:
                //track navigation...
                CreateBreadcrumbs(MenuId, ItemId);
                //manage DIVs...
                TogglePanel(MenuId, ItemId);
                break;
        } //switch() 
    } //if   

    //content panel menus...
    else {

        //set second arg...
        switch (MenuId.toString()) {
            case 'UltraWebMenu2':
                //toggle elements...
                ItemId = ItemId.toString().replace('UltraWebMenu2_', 'UltraWebMenu1_3_');
                break;
            case 'UltraWebMenu3':
                //toggle elements... 
                ItemId = ItemId.toString().replace('UltraWebMenu3_1', 'UltraWebMenu1_3_2');
                break;
            case 'UltraWebMenu4':
                //toggle elements...
                ItemId = ItemId.toString().replace('UltraWebMenu4_1', 'UltraWebMenu1_3_3');
                break;
            case 'UltraWebMenu5':
                //toggle elements...  
                ItemId = ItemId.toString().replace('UltraWebMenu5_1', 'UltraWebMenu1_3_4');
                break;
            case 'UltraWebMenu6':
                //toggle elements...  
                ItemId = ItemId.toString().replace('UltraWebMenu6_1', 'UltraWebMenu1_3_5');
                break;
            default:
                break;
        } //switch() 

        //set first arg...
        MenuId = "UltraWebMenu1";

        //track navigation...
        CreateBreadcrumbs(MenuId, ItemId);
        //manage DIVs...
        TogglePanel(MenuId, ItemId);
    } //else      
} //ItemClick()

//display appropriate panel...
function TogglePanel(MenuId, ItemId) {
    //global vars...
    var currentItemId = null;

    //check if object or string...
    if (typeof MenuId == "object") {
        //get control name and menu level clicked...
        controlName = MenuId.id.toString() + '_';
        clientParams = ItemId.id.toString().replace(controlName, '');
        currentItemId = ItemId.id.toString();
    } //if
    else {
        controlName = MenuId.toString() + '_';
        clientParams = ItemId.toString().replace(controlName, '');
        currentItemId = ItemId.toString();
    } //else    

    //parse clicked value...
    switch (currentItemId.toString().substr(14, 1)) {
        //Careers          
        case "1":
            //toggle panel image and init DIVs...
            document.getElementById('leftPanel').style.backgroundImage = "url(/images/left_panel_01_careers.gif)";
            document.getElementById('ControlDIV').style.display = 'none';
            document.getElementById('IFrameDIV').style.display = 'none';
            document.getElementById('InnerContentDIV').innerHTML = '';
            document.getElementById('ContentDIV').style.display = '';
            break;

        //Locations             
        case "2":
            //toggle panel images and toggle DIVs... 
            document.getElementById('leftPanel').style.backgroundImage = "url(/images/left_panel_01_locations.gif)";
            document.getElementById('ControlDIV').style.display = 'none';
            document.getElementById('IFrameDIV').style.display = 'none';
            document.getElementById('InnerContentDIV').innerHTML = '';
            document.getElementById('ContentDIV').style.display = '';
            break;

        //Capabilities 
        case "3":
            switch (clientParams.length) {
                case 1:
                    //toggle panel image and init DIVs... 
                    document.getElementById('leftPanel').style.backgroundImage = "url(/images/left_panel_01_capabilities.gif)";
                    document.getElementById('InnerContentDIV').innerHTML = '';
                    document.getElementById('ContentDIV').style.display = 'none';
                    document.getElementById('IFrameDIV').style.display = 'none';
                    document.getElementById('ControlDIV').style.display = '';

                    //init capabilities landing scrollbar objects here...
                    if (!scroller4) {
                        scroller4 = new Scrolling4.Scroller4(document.getElementById("InnerControlDIV"), 670, 460);
                        scrollbar4 = new Scrolling4.Scrollbar4(document.getElementById("Scrollbar-Container4"), scroller4, new Scrolling4.ScrollTween4());
                    } //if

                    //temporary...
                    scrollbar4.disabled = true;
                    document.getElementById("Scrollbar-Container4").style.display = 'none';

                    return; //no need to get XML...                
                    break;
                default:
                    //toggle panel image and init DIVs... 
                    document.getElementById('leftPanel').style.backgroundImage = "url(/images/left_panel_01_capabilities.gif)";
                    document.getElementById('ControlDIV').style.display = 'none';
                    document.getElementById('IFrameDIV').style.display = 'none';
                    document.getElementById('InnerContentDIV').innerHTML = '';
                    document.getElementById('ContentDIV').style.display = '';
                    break;
            } //switch() 
            break;

        //Contract Vehicles                
        case "4":
            //alert(clientParams);

            //if 'Sub-Contracting Opportunities' ASPX form...
            if (clientParams == '4_3_4') {
                document.getElementById('leftPanel').style.backgroundImage = "url(/images/left_panel_01_contracts.gif)";
                document.getElementById('ControlDIV').style.display = 'none';
                document.getElementById('ContentDIV').style.display = 'none';
                //document.getElementById('InnerContentIFrame').src = "/MiscFiles/blank.htm";                  
                document.getElementById('IFrameDIV').style.display = '';
                document.getElementById('InnerContentIFrame').src = "/MiscFiles/gsa_sub.aspx";

                return; //no need to get XML...  
            } //if()

            if (clientParams == '4_4_2') {
                document.getElementById('leftPanel').style.backgroundImage = "url(/images/left_panel_01_contact.gif)";
                document.getElementById('ControlDIV').style.display = 'none';
                document.getElementById('ContentDIV').style.display = 'none';
                //document.getElementById('InnerContentIFrame').src = "/MiscFiles/blank.htm";                 
                document.getElementById('IFrameDIV').style.display = '';
                document.getElementById('InnerContentIFrame').src = "/MiscFiles/contact.aspx";
                return; //no need to get XML...  
            } //if()

            //toggle panel image and init DIVs...             
            document.getElementById('leftPanel').style.backgroundImage = "url(/images/left_panel_01_contracts.gif)";
            document.getElementById('ControlDIV').style.display = 'none';
            document.getElementById('IFrameDIV').style.display = 'none';
            document.getElementById('InnerContentDIV').innerHTML = '';
            document.getElementById('ContentDIV').style.display = '';
            break;

        //Contact Us 
        case "5":
            //toggle panel image and init DIVs... 
            document.getElementById('leftPanel').style.backgroundImage = "url(/images/left_panel_01_contact.gif)";
            document.getElementById('ControlDIV').style.display = 'none';
            document.getElementById('ContentDIV').style.display = 'none';
            document.getElementById('IFrameDIV').style.display = '';
            document.getElementById('InnerContentIFrame').src = "/MiscFiles/contact.aspx";
            return; //no need to get XML...  
            break;

        //About TYBRIN 
        case "6":
            //toggle panel image and init DIVs... 
            document.getElementById("leftPanel").style.backgroundImage = "url(/images/left_panel_01_about.gif)";
            document.getElementById('ControlDIV').style.display = 'none';
            document.getElementById('IFrameDIV').style.display = 'none';
            document.getElementById('InnerContentDIV').innerHTML = '';
            document.getElementById('ContentDIV').style.display = '';
            break;

        //Current News 
        case "7":
            //toggle panel image and init DIVs... 
            document.getElementById("leftPanel").style.backgroundImage = "url(/images/left_panel_01_news.gif)";
            document.getElementById('ControlDIV').style.display = 'none';
            document.getElementById('IFrameDIV').style.display = 'none';
            document.getElementById('InnerContentDIV').innerHTML = '';
            document.getElementById('ContentDIV').style.display = '';
            break;

        //Opportunities 
        case "8":
            //toggle panel image and init DIVs... 
            document.getElementById("leftPanel").style.backgroundImage = "url(/images/left_panel_01_opportunities.gif)";
            document.getElementById('ControlDIV').style.display = 'none';
            document.getElementById('IFrameDIV').style.display = 'none';
            document.getElementById('InnerContentDIV').innerHTML = '';
            document.getElementById('ContentDIV').style.display = '';
            break;

        //shouldn't get here...             
        default:
            break;
    } //switch() 

    //pass menu selected item to C#...
    CallServer(clientParams, null);
} //TogglePanel()

//callback from C#, get content string and call xml parser...
function RecieveServerData(arg, context) {
    //control panel loading order...
    if (!isLoaded) {
        switch (currentPanel) {
            case '?':
                //toggle elements...
                currentPanel = '0';
                //document.getElementById('hdnClientParams').value = 0;
                break;
            case '0':
                //toggle elements... 
                currentPanel = '7';
                //document.getElementById('hdnClientParams').value = 7;
                break;
            case '7':
                //toggle elements...
                currentPanel = '8';
                //document.getElementById('hdnClientParams').value = 8;
                break;
            case '8':
                //toggle elements...  
                currentPanel = '0';
                //document.getElementById('hdnClientParams').value = 0;
                isLoaded = true //initial page load complete...
                break;
            default:
                break;
        } //switch()
    } //if 

    GetXMLContent(arg);
} //RecieveServerData()

//create XML object/document and populate with string from C#, populate DIV...
function GetXMLContent(arg) {
    //global...
    var tempContentXML;
    var contentXML;

    //determine if IE or Firefox...
    //if IE...
    if (isInternetExplorer) {
        xmlDocument = new ActiveXObject("Msxml.DOMDocument");
        xmlDocument.loadXML(arg);
        tempContentXML = xmlDocument.getElementsByTagName("Content");
        contentXML = (tempContentXML.length != 0) ? tempContentXML[0].firstChild.data : 'No data found...';
        //alert(tempContentXML.length);    
    } //if
    //else Firefox...
    else {
        contentParser = new DOMParser();
        xmlDocument = contentParser.parseFromString(arg, "text/xml");
        tempContentXML = xmlDocument.getElementsByTagName("Content");
        contentXML = (tempContentXML.length != 0) ? tempContentXML[0].childNodes[0].nodeValue : 'No data found...';
        //alert(tempContentXML.length);
    } //else 

    if (currentPanel == "0") {
        //populate InnerContentDIV...
        document.getElementById('InnerContentDIV').innerHTML = contentXML;
        //also works directly against XML object/document...
        //document.getElementById('InnerContentDiv').innerHTML = xmlDocument.documentElement.firstChild.childNodes[0].data;

        //init scroller here, eg after content is known...
        if (scroller) {
            scroller.reset();
            scrollbar.reset();

            scroller.getContent();
            scrollbar.getContent();

            scroller.getDimensions();
            scrollbar.getDimensions();

            if (scroller.getDimensions().theight > 460) {
                scrollbar.disabled = false;
                document.getElementById("Scrollbar-Container").style.display = '';
            } //if
            else {
                document.getElementById("Scrollbar-Container").style.display = 'none';
            } //else
        } //if 

        if (!scroller) {
            scroller = new Scrolling.Scroller(document.getElementById("InnerContentDIV"), 670, 460);
            scrollbar = new Scrolling.Scrollbar(document.getElementById("Scrollbar-Container"), scroller, new Scrolling.ScrollTween());
            document.getElementById("Scrollbar-Container").style.display = 'none';
        } //if  

        //only on initial page load...
        if (!isLoaded) {
            CallServer("7", null); //news 
        } //if
    } //if     

    if (currentPanel == "7") {
        //populate NewsDIV...
        document.getElementById('NewsDIV').innerHTML = contentXML;

        //init scroller here, eg after content is known...
        scroller2 = new Scrolling2.Scroller2(document.getElementById("NewsDIV"), 200, 240);
        scrollbar2 = new Scrolling2.Scrollbar2(document.getElementById("Scrollbar-Container2"), scroller2, new Scrolling2.ScrollTween2());
        //only on initial page load...
        if (!isLoaded) {
            CallServer("8", null); //jobs
        } //if
    } //if      

    if (currentPanel == "8") {
        //populate JobsDIV...
        document.getElementById('JobsDIV').innerHTML = contentXML;

        //init scroller here, eg after content is known... 
        scroller3 = new Scrolling3.Scroller3(document.getElementById("JobsDIV"), 200, 180);
        scrollbar3 = new Scrolling3.Scrollbar3(document.getElementById("Scrollbar-Container3"), scroller3, new Scrolling3.ScrollTween3());
    } //if   
} //GetXMLContent()

//uility, corrects callback array, called on page load by ASPX...
function WebForm_CallbackComplete_SyncFixed() {
    for (var i = 0; i < __pendingCallbacks.length; i++) {
        callbackObject = __pendingCallbacks[i];

        if (callbackObject && callbackObject.xmlRequest && (callbackObject.xmlRequest.readyState == 4)) {
            if (!__pendingCallbacks[i].async) {
                __synchronousCallBackIndex = -1;
            } //if

            __pendingCallbacks[i] = null;

            var callbackFrameID = "__CALLBACKFRAME" + i;
            var xmlRequestFrame = document.getElementById(callbackFrameID);
            if (xmlRequestFrame) {
                xmlRequestFrame.parentNode.removeChild(xmlRequestFrame);
            } //if

            WebForm_ExecuteCallback(callbackObject);
        } //if
    } //for
} //WebForm_CallbackComplete_SyncFixed()
