var g_init = false;
var g_timeoutHide1 = 0;
var g_timeoutHide2 = 0;
var g_timeoutHide3 = 0;
var g_timeoutHide4 = 0;
var g_timeoutTime = 80;
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_ie5 = false;
var g_is_ie5_5 = false;
var g_is_safari = false;
var g_is_mac = true;
var g_lastHeight = -1;

window.onresize = function () {
  adjustFooter();
}
;

// document.oncontextmenu = new Function("return false");

function init(noteConflict) {
  sniffAll();
  if (document.getElementById) {
    g_canHandleTransparency = ( (!g_is_opera) && (!g_is_ie5) && (!g_is_safari) );
    g_init = true;
    adjustFooter();
  } else if (noteConflict) {
    gotoUrl("/browser.htm");
  }
}

function adjustFooter() {
  if (g_init) {
    var nowHeight = getBrowserHeight();
    if (g_lastHeight == -1)         {
      var elm1 = document.getElementById("staticfooter");
      var elm2 = document.getElementById("copyright");
//      elm1.style.display = "block";
//      elm2.style.display = "block";
    }
    if (nowHeight != g_lastHeight) {
      var elm1 = document.getElementById("staticfooter");
      var elm2 = document.getElementById("copyright");
      var sOff = "";
      if (nowHeight < 620) {
        elm1.style.bottom = sOff;
        elm2.style.bottom = sOff;
        elm1.style.top = "592px";
        elm2.style.top = "592px";
      } else {
//        elm1.style.top = sOff;
//        elm2.style.top = sOff;
//        elm1.style.bottom = "8px";
//        elm2.style.bottom = "8px";
      }
    }
    g_lastHeight = nowHeight;
  }
}

function getBrowserHeight() {
  if (window.innerHeight) {
    return window.innerHeight;
  }
  else if (document.documentElement && document.documentElement.clientHeight != 0) {
    return document.documentElement.clientHeight;
  }
  else if (document.body) {
    return document.body.clientHeight;
  }
  return 0;
}

function bannerLinkToHi(sId) {
  if (g_init) {
    var elm = document.getElementById(sId);
    if (elm) {
      elm.style.color = "#c00";
      elm.style.backgroundImage = "url(http://www.sparlings.com/graphics/arrow-right-hover.gif)";
    }
  }
}

function bannerLinkToLo(sId) {
  if (g_init) {
    var elm = document.getElementById(sId);
    if (elm) {
      elm.style.color = "rgb(102,102,102)";
      elm.style.backgroundImage = "url(http://www.sparlings.com/graphics/arrow-right-dark.gif)";
    }
  }
}

function navShadeIn(level) {
  if (g_init) {
    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_init) {
    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 overNav(level, sName, sSelf) {
  if (g_init) {
    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;
      loadImage(sName);
    } 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)
{
    sName = "nav_" + sName + "_1_image";
    var elem = document.getElementById(sName);
    if (elem)
    {
        elem.src = "http://www2.porsche.com/all/home/image/info/" + sName + ".jpg"
    }
}

function outNav(level)
{
    if (g_init)
    {
        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("backgroundHeadlinecaymans");

    if (doOn)
    {
        elem.style.MozOpacity = ".99";
        elem.style.filter = "alpha(opacity=100)";
    }
    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(http://www.sparlings.com/graphics/arrow-right-hover.gif)";
            }
        }
        else
        {
            elem.style.color = "rgb(204, 0, 0)";

            if (! (elem.className.indexOf("final") >= 0) )
            {
                elem.style.backgroundImage = "url(http://www.sparlings.com/graphics/arrow-right-hover.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 = "transparent";
            if (! (elem.className.indexOf("final") >= 0) )
            {
                elem.style.backgroundImage = "url(http://www.sparlings.com/graphics/arrow-right.gif)";
            }
        }
        else
        {
            elem.style.color = "rgb(0, 0, 0)";
            if (! (elem.className.indexOf("final") >= 0) )
            {
                elem.style.backgroundImage = "url(http://www.sparlings.com/graphics/arrow-right-dark.gif)";
            }

            elem.style.MozOpacity = ".86";
            elem.style.filter = "alpha(opacity=86)";
        }
    }
}

function showSubLayers(sName)
{
    var i = 0;
    var foundOne = false;

    for (i = 1; i <= 12; 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 <= 12; 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 showLr(s)
{
    if (g_init)
    {
        var elem = document.getElementById(s);
        if (elem)
        {
            elem.style.display = "block";
        }
    }
}

function hideLr(s)
{
    if (g_init)
    {
        var elem = document.getElementById(s);
        if (elem)
        {
            elem.style.display = "none";
        }
    }
}

function setModel(s)
{
    if (g_init)
    {
        g_currentModelLink = s;
    }
}

function gotoModel()
{
    if (g_init)
    {
        if (g_currentModelLink != '')
        {
            gotoUrl(g_currentModelLink);
        }
    }
}

function gotoUrl(s)
{
    document.location.href = s;
}

function gotoUrlNewWin(s)
{
    sWidth = 826;
    sHeight = 610;

    sWidth += 20;
    sHeight += 25;
    newWin = window.open(s, "newWin" + getRandomInt(10000), "width=" + sWidth + ",height=" + sHeight + ",left=40,top=40,dependent=yes,location=no,resizable=no,scrollbars=no,status=no");
}

function gotoUrlNewWinSize(s, sWidth, sHeight)
{
    sWidth += 20;
    sHeight += 25;
    newWin = window.open(s, "newWin" + getRandomInt(10000), "width=" + sWidth + ",height=" + sHeight + ",left=40,top=40,dependent=yes,location=no,resizable=no,scrollbars=no,status=no");
}

function openLeanWin(sUrl, sWidth, sHeight)
{
    sWidth += 20;
    sHeight += 25;
    newWin = window.open(sUrl, "newWin" + getRandomInt(10000), "width=" + sWidth + ",height=" + sHeight + ",left=140,top=140,dependent=yes,location=no,resizable=no,scrollbars=no,status=no,menubar=no,toolbar=no");
}

function nogo()
{
    //
}

function showGrid()
{
    setTimeout("showLr('grid')", 3000);
}

function getRandomInt(max)
{
    return Math.round( Math.random() * (max-1) );
}

function selectAllInput(elm)
{
    if (elm)
    {
        elm.focus();
        elm.select();
    }
}


function sniffAll()
{
    /* JavaScript Browser Sniffer
       Eric Krok, Andy King, Michel Plungjan Jan. 31, 2002
       see http://www.webreference.com/ for more information
       This program is free software */

    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 is_opera6 = (agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1);
    var is_opera7 = (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1);
    var is_opera6up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4 && !is_opera5);
    var is_opera7up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4 && !is_opera5 && !is_opera6);
    */

    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_opera = is_opera;
    g_is_ie5 = is_ie5;
    g_is_ie5_5 = is_ie5_5;
    g_is_safari = is_safari;
}
