// JavaScript Document

var selectedItemName = 'about';
var selectedItemNum  = 0;
var bypassFlash = false;

function setPrintableValues() 
{
    document.printable_form.itemName.value = selectedItemName; 
    document.printable_form.itemNum.value  = selectedItemNum; 
}

var images = [];

var nonFlashPageId = '';

function loadHandler()
{
    //alert("load handler");
    var firstHash = location.hash;
    //alert(firstHash.search("news"));
    //alert(firstHash.search("events"));
    if(firstHash.search("news") != -1 || firstHash.search("events") != -1)
    {
        //alert("true");
        bypassFlash = true; 
    }
    getAllImages();
    //loadAllSWFs();  
}

function getAllImages( parent_node ) {
    
    var out = new Array();
    
    images = document.getElementsByTagName("img");
    
    //window.setTimeout("testAllImagesLoaded()", 1000);
    
    testAllImagesLoaded();
}

function testAllImagesLoaded()
{
    //alert('num images = ' + images.length);
    for (var i = 0; i < images.length; i++)
    {
        if (!images[i].complete)
        {
            //alert('image' + i + ' complete = ' + images[i].complete);
            window.setTimeout("testAllImagesLoaded()", 500);
            return;
        }
    }
    loadAllSWFs();
    return;
}

function loadAllSWFs()
{
    //alert("load all swfs");
    
    // About Menu
    var flashvars = false;
    var params = { 
        wmode:"window", 
        quality:"high" 
    };
    var attributes = {  
        id:"aboutmenu",
        name:"aboutmenu"
    };

    swfobject.embedSWF("flash/about_menu.swf", "container-aboutmenu", "215", "167", "9.0.0", "flash/expressInstall.swf", flashvars, params, attributes);
    swfobject.createCSS("#aboutmenu","outline:none");
    
    // Company Menu
    var flashvars = false;
    var params = { 
        wmode:"window", 
        quality:"high" 
    };
    var attributes = {  
        id:"companymenu",
        name:"companymenu"
    };

    swfobject.embedSWF("flash/companies_menu.swf", "container-companymenu", "215", "167", "9.0.0", "flash/expressInstall.swf", flashvars, params, attributes);
    swfobject.createCSS("#companymenu","outline:none");
    
    // Person Menu
    var flashvars = false;
    var params = { 
        wmode:"window", 
        quality:"high" 
    };
    var attributes = {  
        id:"personmenu",
        name:"personmenu"
    };

    swfobject.embedSWF("flash/people_menu.swf", "container-personmenu", "215", "167", "9.0.0", "flash/expressInstall.swf", flashvars, params, attributes);
    swfobject.createCSS("#personmenu","outline:none");
    
    // Contact Menu
    var flashvars = false;
    var params = { 
        wmode:"window", 
        quality:"high" 
    };
    var attributes = {  
        id:"contactmenu",
        name:"contactmenu"
    };

    swfobject.embedSWF("flash/contact_menu.swf", "container-contactmenu", "215", "167", "9.0.0", "flash/expressInstall.swf", flashvars, params, attributes);
    swfobject.createCSS("#contactmenu","outline:none");
    
    //About Text
    var flashvars = false;
    var params = { 
        wmode:"window", 
        quality:"high" 
    };
    var attributes = {  
        id:"abouttext",
        name:"abouttext"
    };
    
    swfobject.embedSWF("flash/text.swf", "container-abouttext", "442", "157", "9.0.0", "flash/expressInstall.swf", flashvars, params, attributes);
    swfobject.createCSS("#abouttext","outline:none");
    
    //Company Text
    var flashvars = false;
    var params = { 
        wmode:"window", 
        quality:"high" 
    };
    var attributes = {  
        id:"companytext",
        name:"companytext"
    };
    
    swfobject.embedSWF("flash/text.swf", "container-companytext", "442", "157", "9.0.0", "flash/expressInstall.swf", flashvars, params, attributes);
    swfobject.createCSS("#companytext","outline:none");
    
    //Person Text
    var flashvars = false;
    var params = { 
        wmode:"window", 
        quality:"high" 
    };
    var attributes = {  
        id:"persontext",
        name:"persontext"
    };
    
    swfobject.embedSWF("flash/text.swf", "container-persontext", "442", "157", "9.0.0", "flash/expressInstall.swf", flashvars, params, attributes);
    swfobject.createCSS("#persontext","outline:none");
    
    //Contact Text
    var flashvars = false;
    var params = { 
        wmode:"window", 
        quality:"high" 
    };
    var attributes = {  
        id:"contacttext",
        name:"contacttext"
    };
    
    swfobject.embedSWF("flash/text.swf", "container-contacttext", "442", "157", "9.0.0", "flash/expressInstall.swf", flashvars, params, attributes);
    swfobject.createCSS("#contacttext","outline:none");
    
    //People Videos
    var flashvars = false;
    var params = { 
        wmode:"window", 
        quality:"high" 
    };
    var attributes = {  
        id:"peoplevideos",
        name:"peoplevideos"
    };
    
    swfobject.embedSWF("flash/video_menu.swf", "container-peoplevideos", "215", "167", "9.0.0", "flash/expressInstall.swf", flashvars, params, attributes);
    swfobject.createCSS("#peoplevideos","outline:none");
    
    //Logos
    var flashvars = false;
    var params = { 
        wmode:"window", 
        quality:"high" 
    };
    var attributes = {  
        id:"logos",
        name:"logos"
    };
    
    swfobject.embedSWF("flash/logos.swf", "container-logos", "215", "167", "9.0.0", "flash/expressInstall.swf", flashvars, params, attributes);
    swfobject.createCSS("#logos","outline:none");

    //Main Flash
    var flashvars = false;
    var params = { 
        wmode:"transparent", 
        quality:"high" 
    };
    var attributes = {  
        id:"STG",
        name:"STG"
    };
    
    swfobject.embedSWF("flash/SymphonyTechnologyGroup.swf", "flash", "962", "362", "9.0.0", "flash/expressInstall.swf", flashvars, params, attributes);
    swfobject.createCSS("#STG","outline:none");
}   

var myImg = [  
    {idn:'about'}, 
    {idn:'news'}, 
    {idn:'companies'},
    {idn:'people'}, 
    {idn:'contact'}];

var imageObjA = new Object();

for (i = 0; i < myImg.length; i++) 
{
    imageObjA[myImg[i].idn + '_over'] = new Image();
    imageObjA[myImg[i].idn + '_over'].src = 'http://www.symphonytg.com/images/nav/' + myImg[i].idn + '_over.gif';
    imageObjA[myImg[i].idn + '_off'] = new Image();
    imageObjA[myImg[i].idn + '_off'].src = 'http://www.symphonytg.com/images/nav/' + myImg[i].idn + '_off.gif';
    imageObjA[myImg[i].idn + '_on'] = new Image();
    imageObjA[myImg[i].idn + '_on'].src = 'http://www.symphonytg.com/images/nav/' + myImg[i].idn + '_on.gif';
}

function imageOff(imageObj) 
{ 
    if (selectedItemName == 'company')
    {
        itemName = 'companies';
    } 
    else if (selectedItemName == 'person')
    {
        itemName = 'people';
    }
    else
    {
        itemName = selectedItemName;
    }
    
    if (imageObj.id != itemName)
    {
        imageObj.src = imageObjA[imageObj.id + '_off'].src;
    }
}

function imageOver(imageObj) 
{ 
    if (selectedItemName == 'company')  
    {
        itemName = 'companies';
    } 
    else if (selectedItemName == 'person')
    {
        itemName = 'people';
    }
    else if (selectedItemName == 'events')
    {
        itemName = 'news';
    }
    else
    {
        itemName = selectedItemName;
    }
    
    if (imageObj.id != itemName)
    {
        imageObj.src = imageObjA[imageObj.id + '_over'].src;
    }
}

function imageOn(itemName) 
{ 
    setMainNavOff();

    var navImage = new Image();
    navImage.src = 'http://www.symphonytg.com/images/nav/' + itemName + '_on.gif';
    
    if (navigator.appName.indexOf("Microsoft") != -1) 
    {
        window[itemName].src = navImage.src;
    } 
    else if (/Safari/.test(navigator.userAgent))
    {
        window[itemName].src = navImage.src;    
    }
    else 
    {
        document[itemName].src = navImage.src;
    }
    
    getTextIEHack();
}

function getTextIEHack()
{
    if (navigator.appName.indexOf("Microsoft") != -1  && firstTime[selectedItemName] == false) 
    {
        getText(selectedItemName, selectedItemNum);
    } 
}

function setMainNavOff()
{
    var mainNav = ['about', 'news', 'companies', 'people', 'contact'];  
    
    for (var i = 0; i < mainNav.length; i++)
    {
        //alert('http://www.symphonytg.com/images/nav/' + mainNav[i] + '_off.gif');
        var navImage = new Image();
        navImage.src = 'http://www.symphonytg.com/images/nav/' + mainNav[i] + '_off.gif';
        
        if (navigator.appName.indexOf("Microsoft") != -1) 
        {
            window[mainNav[i]].src = navImage.src;
        } 
        else if (/Safari/.test(navigator.userAgent))
        {
            window[mainNav[i]].src = navImage.src;
        }
        else 
        {
            document[mainNav[i]].src = navImage.src;
        }   
    }
}

function goNonFlashNews()
{
    hidePages();
    
    var showDiv = document.getElementById(nonFlashPageId + '-content'); 
    showDiv.style.display = 'block';
    
    var flashDiv = document.getElementById('container-flash');  
    var contentDiv = document.getElementById('container-content');  
    var promoDiv = document.getElementById('container-promo');

    //flashDiv.style.display = 'none';
    flashDiv.style.visibility = 'hidden';
    flashDiv.style.height = '0px'; 
    
    contentDiv.style.display = 'none';
    promoDiv.style.display = 'none';
}

function showPage(pageId)
{
    if ((pageId == 'news') || (pageId == 'events'))
    {
        //go straight to news, bypass intro
        if (bypassFlash == true)
        {
            nonFlashPageId = pageId;
            goNonFlashNews();
            bypassFlash = false;
        } 
        else
        {
            if ((nonFlashPageId == 'news') || (nonFlashPageId == 'events'))
            {
                nonFlashPageId = pageId;
                goNonFlashNews();
            }
            else
            {
                getFlash('news', 0);    
            }
        }
        nonFlashPageId = pageId;
    }
    else
    {
        nonFlashPageId = '';
        hidePages();
        
        var showDiv = document.getElementById(pageId + '-content'); 
        showDiv.style.display = 'block';
        
        var flashDiv = document.getElementById('container-flash');  
        var contentDiv = document.getElementById('container-content');  
        var promoDiv = document.getElementById('container-promo');
        
        if ((pageId == 'news') || (pageId == 'events') || (pageId == 'terms') || (pageId == 'privacy'))
        {
            //flashDiv.style.display = 'none';
            flashDiv.style.visibility = 'hidden';
            flashDiv.style.height = '0px'; 
            
            contentDiv.style.display = 'none';
            promoDiv.style.display = 'none';
        }
        else
        {
            //flashDiv.style.display = 'block'; 
            flashDiv.style.visibility = 'visible';
            flashDiv.style.height = '362px'; 
            
            contentDiv.style.display = 'block';  
            promoDiv.style.display = 'block';
        }
    }
}

function hidePages()
{
    var pages = ['about', 'news', 'events', 'companies', 'people', 'contact', 'terms', 'privacy'];  
    
    for (var i = 0; i < pages.length; i++)
    {
        var hideDiv = document.getElementById(pages[i] + '-content');   
        if (hideDiv!==null){hideDiv.style.display = 'none'}
    }
}

function setHash(hashValue) 
{
    location.hash = hashValue;  
}

function getHash()
{
    var hashValue = location.hash;
    
    return hashValue;
}

function setPage()
{
    var hashStr = getHash();
    var totalItems;
    hashStr = (hashStr.replace(/^#+/,'')).replace(/\W+$/,'');
    
    if (hashStr != '')
    {
        hashValues = hashStr.split('\.');
        itemName = hashValues[0];
        itemNum = hashValues[1];
        
        //alert('itemName = ' + itemName + '  itemNum = ' + itemNum);
        
        if (itemName == 'about')
        {
            totalItems = aboutTotal;
        }
        else if (itemName == 'company') 
        {
            totalItems = companiesTotal;
        }
        else if (itemName == 'person') 
        {
            totalItems = peopleTotal;
        }
        else if (itemName == 'news') 
        {
            totalItems = newsTotal;
        }
        else 
        {
            totalItems = 1;
        }
        
        if (itemName == 'person')
        {
            imageOn('people');
            getFlash('people', itemNum);
            showPage('people');
        }
        else if (itemName == 'company')
        {
            imageOn('companies');
            getFlash('company', itemNum);
            showPage('companies');
        }
        else
        {
            if (itemName == 'events')
            {
                imageOn('news');
                getFlash('news', 0);
            }
            else if ((itemName != 'privacy') && (itemName != 'terms'))
            {
                imageOn(itemName);
                getFlash(itemName, itemNum);
            }
            else
            {
                getFlash('news', 0);
            }
            
            showPage(itemName);
        }
        
        setPageValues(itemName, itemNum);
        showItem(itemName, itemNum, totalItems);
    }
    else
    {
        imageOn('about');
    }
}

function showItem(itemName, itemNum, total, wasDelayed)
{
    if (!wasDelayed && BrowserDetect.browser == "Firefox" && BrowserDetect.OS == "Mac")
    {
        setTimeout(showItem, 500, itemName, itemNum, total, true);
        return;
    }
    
    // console.log('itemName = ' + itemName + '  itemNum = ' + itemNum + '  total = ' + total);
    var promoPeople = document.getElementById('promo_people');
    var promoCompanies = document.getElementById('promo_companies');
    
    if ((itemName == 'news') || (itemName == 'events') || (itemName == 'terms') || (itemName == 'privacy'))
    {
        showItemSubPage(itemName, itemNum, total);
    }
    else
    {
        setHash(itemName + '.' + itemNum);
        
        for (i = 0; i <= total; i++)
        {
            if (itemName != 'contact')
            {
                var titleHideDiv = document.getElementById(itemName + i + '_title');
                titleHideDiv.style.display = 'none';
            }
        }
    
        if (itemName != 'contact')
        {
            var titleShowDiv = document.getElementById(itemName + itemNum + '_title');
            titleShowDiv.style.display = 'block';
        }
        
        if (itemName == 'person')
        {
            if (itemNum == 0)
            {
                promoPeople.style.display = 'none';
                promoCompanies.style.display = 'block';
            }
            else
            {
                promoPeople.style.display = 'block';
                promoCompanies.style.display = 'none';
            }
        }
        else
        {
            promoPeople.style.display = 'none';
            promoCompanies.style.display = 'block';
        }
    }
    
    if (selectedItemName == itemName)
    {
        if (itemName != 'contact')
        {
            setMenuOn(itemName, itemNum);
        }
        
        getText(itemName, itemNum); 
        
        if (itemName == 'person')
        {
            if ((selectedItemNum > 0) && (itemNum > 0))
            {
                getVideos(itemNum);
            }
        }
        else if (itemName == 'company')  
        {
            // console.log('getting logos');
            getLogos(itemNum);
        }
    }
    
    setPageValues(itemName, itemNum);
    // console.log('selectedItemName = ' + selectedItemName + ' selectedItemNum = ' + selectedItemNum);
}

function showItemSubPage(itemName, itemNum, total)
{
    for (i = 0; i < total; i++)
    {   
        var textHideDiv = document.getElementById(itemName + i + '_text');
        textHideDiv.style.display = 'none';
    }
    
    var textShowDiv = document.getElementById(itemName + itemNum + '_text');
    textShowDiv.style.display = 'block';
    
    if (itemName == 'news')
    {
        document.location.href = '#top';    
    }

    setHash(itemName + '.' + itemNum);
}

function setPageValues(itemName, itemNum)
{   
    selectedItemName = itemName;
    selectedItemNum  = itemNum;
}

function getMenuNum()
{
    //alert('getMenuNum - ' + selectedItemName);
    setMenuOn(selectedItemName, selectedItemNum);
}

function setMenuOn(itemName, itemNum)
{
    var flashId = itemName + 'menu';
    //alert('setMenuOn - itemNum = ' + itemNum);
    
    string1 = "<invoke name=\"setMenuOn\" returntype=\"javascript\"><arguments><string>"+itemNum+"</string></arguments></invoke>";
    window.document[flashId].CallFunction(string1);
}

var firstTime = new Object();

function getTextValues()  
{
    firstTime[selectedItemName] = false;
    getText(selectedItemName, selectedItemNum);
}

function getText(itemName, itemNum)
{
    //alert("getText " + itemName + itemNum);
    var flashId = itemName + 'text';
        
    string1 = "<invoke name=\"getText\" returntype=\"javascript\"><arguments><string>"+itemName+"</string><string>"+itemNum+"</string></arguments></invoke>";
    window.document[flashId].CallFunction(string1);
}

function getPeopleNum()
{
    //alert('itemNum = ' + selectedItemNum);
    getVideos(selectedItemNum);
}

function getVideos(itemNum)    
{
    string1 = "<invoke name=\"getVideos\" returntype=\"javascript\"><arguments><string>"+itemNum+"</string></arguments></invoke>";
    window.document.peoplevideos.CallFunction(string1);
}

function getCompanyNum()
{
    // console.log('getting company num');
    //alert('itemNum = ' + selectedItemNum);
    if (selectedItemName == 'company')
    {
        getLogos(selectedItemNum);
    }
    else
    {
        getLogos(0);
    }
    
    /*if (selectedItemName != 'about')
    {
        getLogos(selectedItemNum);
    }
    else
    {
        getLogos(0);
    }*/
}

function getLogos(itemNum)    
{
    string1 = "<invoke name=\"getLogos\" returntype=\"javascript\"><arguments><string>"+itemNum+"</string></arguments></invoke>";
    window.document.logos.CallFunction(string1);
}   

var BrowserDetect = {
    init: function () {
        this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
        this.version = this.searchVersion(navigator.userAgent)
            || this.searchVersion(navigator.appVersion)
            || "an unknown version";
        this.OS = this.searchString(this.dataOS) || "an unknown OS";
    },
    searchString: function (data) {
        for (var i=0;i<data.length;i++) {
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            this.versionSearchString = data[i].versionSearch || data[i].identity;
            if (dataString) {
                if (dataString.indexOf(data[i].subString) != -1)
                    return data[i].identity;
            }
            else if (dataProp)
                return data[i].identity;
        }
    },
    searchVersion: function (dataString) {
        var index = dataString.indexOf(this.versionSearchString);
        if (index == -1) return;
        return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
    },
    dataBrowser: [
        {
            string: navigator.userAgent,
            subString: "Chrome",
            identity: "Chrome"
        },
        {   string: navigator.userAgent,
            subString: "OmniWeb",
            versionSearch: "OmniWeb/",
            identity: "OmniWeb"
        },
        {
            string: navigator.vendor,
            subString: "Apple",
            identity: "Safari"
        },
        {
            prop: window.opera,
            identity: "Opera"
        },
        {
            string: navigator.vendor,
            subString: "iCab",
            identity: "iCab"
        },
        {
            string: navigator.vendor,
            subString: "KDE",
            identity: "Konqueror"
        },
        {
            string: navigator.userAgent,
            subString: "Firefox",
            identity: "Firefox"
        },
        {
            string: navigator.vendor,
            subString: "Camino",
            identity: "Camino"
        },
        {       // for newer Netscapes (6+)
            string: navigator.userAgent,
            subString: "Netscape",
            identity: "Netscape"
        },
        {
            string: navigator.userAgent,
            subString: "MSIE",
            identity: "Explorer",
            versionSearch: "MSIE"
        },
        {
            string: navigator.userAgent,
            subString: "Gecko",
            identity: "Mozilla",
            versionSearch: "rv"
        },
        {       // for older Netscapes (4-)
            string: navigator.userAgent,
            subString: "Mozilla",
            identity: "Netscape",
            versionSearch: "Mozilla"
        }
    ],
    dataOS : [
        {
            string: navigator.platform,
            subString: "Win",
            identity: "Windows"
        },
        {
            string: navigator.platform,
            subString: "Mac",
            identity: "Mac"
        },
        {
            string: navigator.platform,
            subString: "Linux",
            identity: "Linux"
        }
    ]

};
BrowserDetect.init();


