var g_psyma_navi_clicked = null;
var g_timeout = 1;
var g_timeoutTime = 250; 
var g_openZoom = 0;
var g_openKnowledgeBase = 0;
var g_imageNr = 1;
var g_req;
var g_is_home = false;
var g_pageWidth = 839;
var g_initHome = false;
var g_timeoutHide1 = 0;
var g_timeoutHide2 = 0;
var g_timeoutHide3 = 0;
var g_timeoutHide4 = 0;
var g_timeoutHead = 0;
var g_currentNav1 = "";
var g_currentNav2 = "";
var g_currentNav3 = "";
var g_currentNav4 = "";
var g_currentHi1 = "";
var g_currentHi2 = "";
var g_currentHi3 = "";
var g_currentHi4 = "";
var g_blackValue = 0;
var g_blackTimeout = 0;
var g_navShadeMax = .35;
var g_currentModelLink = '';
var g_echoCount = 0;
var g_is_opera = false;
var g_is_ie = false;
var g_is_ie5 = false;
var g_is_ie5_5 = false;
var g_is_safari = false;
var g_is_mac = true;
var g_contextDebug = "";
var g_fallbackImage = "";
window.onload = function (){
	initAll();
	var uls = document.getElementsByTagName("ul");
	for (i=0;i<uls.length;i++) {
		if(uls[i].className=="submenu")uls[i].style.display = "none";
	}	
	initNews();
    };

	function initNews()
	{
		// check for DOM
		//if(!document.getElementById || !document.createTextNode){return;}
		//initDOMnews();
		// add more functions as needed
	}
	
function mmenu(mID) {
	var menu = document.getElementById(mID);
	var display = menu.style.display;
	menu.style.display = (display == "block") ? "none" : "block";
	menu.parentNode.style.listStyleImage = (display == "block") ? "url(../images/plus.gif)" : "url(../images/minus.gif)";
}

function initAll(){
    var sClass = "";
    if (document.body.className) {
        sClass = document.body.className;}
    else {
        sClass = document.body.getAttribute("class");}
    if (sClass != undefined) {
        g_is_home = sClass.indexOf("home") >= 1;  }
    else {
        g_is_home = false;    }   
    positionFooter();    
    var noteConflict = false;
    sniffAll();
    if (document.getElementById) {
        g_canHandleTransparency = !g_is_ie5;   }
    else if (noteConflict) {
        gotoUrl("/browser.htm");    }
    if (g_is_home) {
        initHome();    }
	}
function positionFooter(){
    var footer = document.getElementById("footer");
    var search = document.getElementById("search");
    
    if (!g_is_home) setDocumentSize();

    if (footer) { footer.style.bottom = "-1px"; }
    if (search) { search.style.bottom = "-1px"; }}
function showLr(id){
    var elm = document.getElementById(id);
    if (elm) {
        elm.style.display = "block";}}
function hideLr(id){
    var elm = document.getElementById(id);
    if (elm) {
        elm.style.display = "none";}}
function initHome(){
    if (document.getElementById) {
        g_initHome = true;}}
function overNav(level, sName, sSelf){
    if (g_initHome){
        if (level == 0 || level == "0"){
            echo("level in 0");
            if (g_timeoutHide1 != 0) { clearTimeout(g_timeoutHide1); }
            hideSubLayers(g_currentNav1);
            loliteLr(level, g_currentHi1);
            if (g_currentNav1 != "") { hideSubLayers(g_currentNav1); }
            if (g_currentHi1 != "") { loliteLr(level, g_currentHi1); }
            showNav(level + 1, sName, sSelf);
            g_currentNav1 = sName;
            g_currentHi1 = sSelf;            }
        else if (level == 1 || level == "1"){
            echo("level in 1");
            if (g_timeoutHide1 != 0) { clearTimeout(g_timeoutHide1); }
            if (g_timeoutHide2 != 0) { clearTimeout(g_timeoutHide2); }
            if (g_currentNav2 != "") { hideSubLayers(g_currentNav2); }
            if (g_currentHi2 != "") { loliteLr(level, g_currentHi2); }
            showNav(level + 1, sName, sSelf);
            g_currentNav2 = sName;
            g_currentHi2 = sSelf;}
        else if (level == 2 || level == "2"){
            echo("level in 2");
            if (g_timeoutHide1 != 0) { clearTimeout(g_timeoutHide1); }
            if (g_timeoutHide2 != 0) { clearTimeout(g_timeoutHide2); }
            if (g_timeoutHide3 != 0) { clearTimeout(g_timeoutHide3); }
            if (g_currentNav3 != "") { hideSubLayers(g_currentNav3); }
            if (g_currentHi3 != "") { loliteLr(level, g_currentHi3); }
            showNav(level + 1, sName, sSelf);
            g_currentNav3 = sName;
            g_currentHi3 = sSelf;            }
        else if (level == 3 || level == "3"){
            echo("level in 3");
            if (g_timeoutHide1 != 0) { clearTimeout(g_timeoutHide1); }
            if (g_timeoutHide2 != 0) { clearTimeout(g_timeoutHide2); }
            if (g_timeoutHide3 != 0) { clearTimeout(g_timeoutHide3); }
            if (g_timeoutHide4 != 0) { clearTimeout(g_timeoutHide4); }
            if (g_currentNav4 != "") { hideSubLayers(g_currentNav4); }
            showNav(level + 1, sName, sSelf);
            g_currentNav4 = sName;}}}
function loadImage(sName, sUrl){ 
    var elem = document.getElementById(sName + "_image");
    if (elem) elem.src = sUrl;}
function navShadeIn(level){
if (g_initHome){
        if (level == 1){
            if (g_timeoutHide1 != 0) { clearTimeout(g_timeoutHide1); }}
        else if (level == 2){
            if (g_timeoutHide1 != 0) { clearTimeout(g_timeoutHide1); }
            if (g_timeoutHide2 != 0) { clearTimeout(g_timeoutHide2); }}
        else if (level == 3){
            if (g_timeoutHide1 != 0) { clearTimeout(g_timeoutHide1); }
            if (g_timeoutHide2 != 0) { clearTimeout(g_timeoutHide2); }
            if (g_timeoutHide3 != 0) { clearTimeout(g_timeoutHide3); }}}}
function navShadeOut(level){
    if (g_initHome){
        if (level == 1){
            g_timeoutHide1 = setTimeout("hideNav(1,\"" + g_currentNav1 + "\",\"" + g_currentHi1 + "\")", g_timeoutTime);}
        else if (level == 2){
            g_timeoutHide1 = setTimeout("hideNav(1,\"" + g_currentNav1 + "\",\"" + g_currentHi1 + "\")", g_timeoutTime);
            g_timeoutHide2 = setTimeout("hideNav(2,\"" + g_currentNav2 + "\",\"" + g_currentHi2 + "\")", g_timeoutTime);}
        else if (level == 3){
            g_timeoutHide1 = setTimeout("hideNav(1,\"" + g_currentNav1 + "\",\"" + g_currentHi1 + "\")", g_timeoutTime);
            g_timeoutHide2 = setTimeout("hideNav(2,\"" + g_currentNav2 + "\",\"" + g_currentHi2 + "\")", g_timeoutTime);
            g_timeoutHide3 = setTimeout("hideNav(3,\"" + g_currentNav3 + "\",\"" + g_currentHi3 + "\")", g_timeoutTime);
        }}}
function outNav(level){
    if (g_initHome){
        if (level == 0 || level == "0"){
            echo("level out 0");
            g_timeoutHide1 = setTimeout("hideNav(1,\"" + g_currentNav1 + "\",\"" + g_currentHi1 + "\")", g_timeoutTime);      }
        else if (level == 1 || level == "1"){
            echo("level out 1");
            g_timeoutHide1 = setTimeout("hideNav(1,\"" + g_currentNav1 + "\",\"" + g_currentHi1 + "\")", g_timeoutTime);
            g_timeoutHide2 = setTimeout("hideNav(2,\"" + g_currentNav2 + "\",\"" + g_currentHi2 + "\")", g_timeoutTime);}
        else if (level == 2 || level == "2"){
            echo("level out 2");
            g_timeoutHide1 = setTimeout("hideNav(1,\"" + g_currentNav1 + "\",\"" + g_currentHi1 + "\")", g_timeoutTime);
            g_timeoutHide2 = setTimeout("hideNav(2,\"" + g_currentNav2 + "\",\"" + g_currentHi2 + "\")", g_timeoutTime);
            g_timeoutHide3 = setTimeout("hideNav(3,\"" + g_currentNav3 + "\",\"" + g_currentHi3 + "\")", g_timeoutTime);}
        else if (level == 3 || level == "3"){
            echo("level out 3");
            g_timeoutHide1 = setTimeout("hideNav(1,\"" + g_currentNav1 + "\",\"" + g_currentHi1 + "\")", g_timeoutTime);
            g_timeoutHide2 = setTimeout("hideNav(2,\"" + g_currentNav2 + "\",\"" + g_currentHi2 + "\")", g_timeoutTime);
            g_timeoutHide3 = setTimeout("hideNav(3,\"" + g_currentNav3 + "\",\"" + g_currentHi3 + "\")", g_timeoutTime);
            g_timeoutHide4 = setTimeout("hideNav(4,\"" + g_currentNav4 + "\",\"" + g_currentHi4 + "\")", g_timeoutTime);}
        else{
            echo("level out is else: " + level);}}}

function dimHeadline(doOn){         
    var elem = document.getElementById("homeHead"); 
    if (elem) {
        if (parseInt(elem.style.top.replace(/px/, ""),10) > 88) {        
                if (doOn){
                    elem.style.MozOpacity = ".50";
                    elem.style.filter = "alpha(opacity=50)";}
                else{
                    elem.style.MozOpacity = ".40";
                    elem.style.filter = "alpha(opacity=40)";}}}}
function showNav(level, sName, sSelf){
    dimHeadline(false);
    hiliteLr(level - 1, sSelf);
    var foundOne = showSubLayers(sName);
    if (foundOne){
        if (g_canHandleTransparency){
            var elm = document.getElementById("navshade" + level);
            showLr("navshade" + level);}
        else{
            var elm = document.getElementById("navshadeSimple" + level);
            showLr("navshadeSimple" + level);}}
    else{
        if (g_canHandleTransparency){
            hideLr("navshade" + level);}
        else{
            hideLr("navshadeSimple" + level);}}     }
function hideNav(level, sName, sSelf){
    if (level == 1) { g_timeoutHide1 = 0; g_currentNav1 = ""; g_currentSelf1 = ""; dimHeadline(true)}
    if (level == 2) { g_timeoutHide2 = 0; g_currentNav2 = ""; g_currentSelf2 = ""; }
    if (level == 3) { g_timeoutHide3 = 0; g_currentNav3 = ""; g_currentSelf3 = ""; }
    if (level == 4) { g_timeoutHide4 = 0; g_currentNav4 = ""; }
    loliteLr(level - 1, sSelf);
    if (g_canHandleTransparency){
        hideLr("navshade" + level);}
    else{
        hideLr("navshadeSimple" + level);}
    hideSubLayers(sName);}
function hiliteLr(level, sName){
    var elem = document.getElementById(sName);
    if (elem){
        if (level == 0 || level == "0"){
            elem.style.color = "rgb(204, 0, 0)";
            elem.style.backgroundColor = "rgb(255,255,255)";
            if (! (elem.className.indexOf("final") >= 0) ){
                elem.style.backgroundImage = "url(arrow-red.gif)";}}
        else{
            elem.style.color = "rgb(204, 0, 0)";
            if (! (elem.className.indexOf("final") >= 0) ){
                elem.style.backgroundImage = "url(arrow-red.gif)";}

            elem.style.MozOpacity = ".99"; // hack around weeeiiird bug which causes "1" to break NS7.02
            elem.style.filter = "alpha(opacity=100)";}}}
function loliteLr(level, sName){
    var elem = document.getElementById(sName);
    if (elem){
        if (level == 0 || level == "0"){
            elem.style.color = "rgb(255,255,255)";
            elem.style.backgroundColor = "#212121";
            if (! (elem.className.indexOf("final") >= 0) ){
                elem.style.backgroundImage = "url(arrow-white.gif)";}}
        else{
            elem.style.color = "rgb(0, 0, 0)";
            if (! (elem.className.indexOf("final") >= 0) ) {
                elem.style.backgroundImage = "url(arrow-gray.gif)";}
            elem.style.MozOpacity = ".86";
            elem.style.filter = "alpha(opacity=86)";}}}
function showSubLayers(sName){
    var i = 0;
    var foundOne = false;
    for (i = 1; i <= 16; i++){
        var s = "nav_" + sName + "_" + i;
        var elem = document.getElementById(s);
        if (elem){
            foundOne = true;}
        else{
            break;}
        showLr(s);}
    return foundOne;}
function hideSubLayers(sName){
    var i = 0;
    var foundOne = false
    for (i = 1; i <= 16; i++){
        var s = "nav_" + sName + "_" + i;
        var elem = document.getElementById(s);
        if (elem){
            foundOne = true; }
        else{
            break;}
        hideLr(s);
    }
    return foundOne;}
function echo(s){
    /*
    var elDebug = document.getElementById("debug");
    elDebug.innerHTML = "<div><span>" + (++g_echoCount) + ".</span> " + s + "</div>" + elDebug.innerHTML;
    */}
function gotoUrl(s){
    g_psyma_navi_clicked = true;
    document.location.href = s;}
function gotoUrlTimeout(s, timeout){
  setTimeout("gotoUrl('" + s + "')", timeout)}
function sniffAll(){
    var agt=navigator.userAgent.toLowerCase();
    var appVer = navigator.appVersion.toLowerCase();
    var is_minor = parseFloat(appVer);
    var is_major = parseInt(is_minor);
    var is_opera = (agt.indexOf("opera") != -1);
    var iePos  = appVer.indexOf('msie');
    if (iePos !=-1) {
       is_minor = parseFloat(appVer.substring(iePos+5,appVer.indexOf(';',iePos)));
       is_major = parseInt(is_minor);}
    var is_konq = false;
    var kqPos   = agt.indexOf('konqueror');
    if (kqPos !=-1) {                 
       is_konq  = true;
       is_minor = parseFloat(agt.substring(kqPos+10,agt.indexOf(';',kqPos)));
       is_major = parseInt(is_minor);}
    var is_getElementById   = (document.getElementById) ? "true" : "false";
    var is_getElementsByTagName = (document.getElementsByTagName) ? "true" : "false";
    var is_documentElement = (document.documentElement) ? "true" : "false";
    var is_safari = ((agt.indexOf('safari')!=-1)&&(agt.indexOf('mac')!=-1))?true:false;
    var is_khtml  = (is_safari || is_konq);
    var is_gecko = ((!is_khtml)&&(navigator.product)&&(navigator.product.toLowerCase()=="gecko"))?true:false;
    var is_gver  = 0;
    if (is_gecko) is_gver=navigator.productSub;
    var is_moz   = ((agt.indexOf('mozilla/5')!=-1) && (agt.indexOf('spoofer')==-1) &&
                    (agt.indexOf('compatible')==-1) && (agt.indexOf('opera')==-1)  &&
                    (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)     &&
                    (is_gecko) && 
                    ((navigator.vendor=="")||(navigator.vendor=="Mozilla")));
    if (is_moz) {
       var is_moz_ver = (navigator.vendorSub)?navigator.vendorSub:0;
       if(!(is_moz_ver)) {
           is_moz_ver = agt.indexOf('rv:');
           is_moz_ver = agt.substring(is_moz_ver+3);
           is_paren   = is_moz_ver.indexOf(')');
           is_moz_ver = is_moz_ver.substring(0,is_paren);}
       is_minor = is_moz_ver;
       is_major = parseInt(is_moz_ver);}
    var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
                && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)
                && (!is_khtml) && (!(is_moz)));
    if ((navigator.vendor)&&
        ((navigator.vendor=="Netscape6")||(navigator.vendor=="Netscape"))&&
        (is_nav)) {
       is_major = parseInt(navigator.vendorSub);
       is_minor = parseFloat(navigator.vendorSub);}
    var is_nav2 = (is_nav && (is_major == 2));
    var is_nav3 = (is_nav && (is_major == 3));
    var is_nav4 = (is_nav && (is_major == 4));
    var is_nav4up = (is_nav && is_minor >= 4); 
    var is_navonly  = (is_nav && ((agt.indexOf(";nav") != -1) ||
                          (agt.indexOf("; nav") != -1)) );
    var is_nav6   = (is_nav && is_major==6);
    var is_nav6up = (is_nav && is_minor >= 6);
    var is_nav5   = (is_nav && is_major == 5 && !is_nav6);
    var is_nav5up = (is_nav && is_minor >= 5);
    var is_nav7   = (is_nav && is_major == 7);
    var is_nav7up = (is_nav && is_minor >= 7);
    var is_ie   = ((iePos!=-1) && (!is_opera) && (!is_khtml));
    var is_ie3  = (is_ie && (is_major < 4));
    var is_ie4   = (is_ie && is_major == 4);
    var is_ie4up = (is_ie && is_minor >= 4);
    var is_ie5   = (is_ie && is_major == 5);
    var is_ie5up = (is_ie && is_minor >= 5); 
    var is_ie5_5  = (is_ie && (agt.indexOf("msie 5.5") !=-1));
    var is_ie5_5up =(is_ie && is_minor >= 5.5);  
    var is_ie6   = (is_ie && is_major == 6);
    var is_ie6up = (is_ie && is_minor >= 6);
    g_is_ie = is_ie;
    g_is_opera = is_opera;
    g_is_ie5 = is_ie5;
    g_is_ie5_5 = is_ie5_5;
    g_is_safari = is_safari;
}
