/************************************/
/* Erweiterung für JD Power 2008/03 */
/* -&gt; Mouseovers konfiguriertbar    */
/* -&gt; hl = "hilite"                 */
/* -&gt; ll = "lolite"                 */
/************************************/
var g_homemenu_hl_fontcolor = "rgb(204, 0, 0)";
var g_homemenu_hl_background_color = "rgb(255,255,255)";
var g_homemenu_hl_background_color_Level5 = "rgb(255,255,255)";
var g_homemenu_ll_fontcolor_level0 = "rgb(255,255,255)";
var g_homemenu_ll_fontcolor_level1 = "rgb(0, 0, 0)";
var g_homemenu_ll_background_color = "transparent";
var g_homemenu_ll_background_image_level0 = "url(/Global/porsche2005/Files/Images/arrow-white.gif)";
var g_homemenu_ll_background_image_level1 = "url(/Global/porsche2005/Files/Images/arrow-gray.gif)";
var g_jdpowerphase = "none";

var g_kabseLinkCurrentPosition = -1; // STV, 2007.10.25: für vor/zurück im KBaseLayer
var g_refresh = false;

var g_psyma_navi_clicked = null;

var g_timeout = -1;
var g_timeoutTime = 500;
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_MAXSUBLAYERS = 16;
var G_MAXITEMS_MAINNAVI = 20;

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_ie6 = false;
var g_is_safari = false;
// var g_is_macmoz = false; // mozilla on mac has flash problems on the homepage.
var g_is_mac = false;
var g_is_linux = false;
var g_contextDebug = "";
var g_fallbackImage = "";

var g_newWinFocus;

window.onload = function ()
{
	CreateRenderedHeads();
	initAll();
    
	if( document.getElementById( "galleryImage" ) )
	{
		g_lastNumber = getMaxNumberGallery();
		nextgalleryImage();
	}
	
	checkFlash();
	checkQuicktime();

};

window.onresize = function ()
{
	positionFooter();
}

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") >= 0;
    }
    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");
	setDocumentSize();
	if (footer) { footer.style.bottom = "-1px"; }
	if (search) { search.style.bottom = "-1px"; }

	positionFooterTop();
}

function positionFooterTop()
{
	setTimeout( "positionFooterTop()", 100 );
	if( document.getElementById( "content" ) && document.getElementById( "footer" ) )
	{
		var nHeightScreen	= document.body.offsetHeight - document.getElementById( "footer" ).offsetHeight;
		var nHeightContent	= document.getElementById( "content" ).offsetHeight;
		var nHeightContent2	= nHeightContent;
		if( document.getElementById( "address" ) )
		{
			nHeightContent2 = document.getElementById( "address" ).offsetHeight + document.getElementById( "address" ).offsetTop;
		}

		nTop = nHeightScreen;
		nTop = ( nTop < nHeightContent ? nHeightContent : nTop );
		nTop = ( nTop < nHeightContent2 ? nHeightContent2 : nTop );

		document.getElementById( "footer" ).style.top = nTop + "px";

		if( document.getElementById( "page" ) )
		{
			document.getElementById( "page" ).style.height = nTop + "px";
		}
	}
	return;
}

function getElementsByClassName(strClass, strTag, objContElm) {
  strTag = strTag || "*";
  objContElm = objContElm || document;
  var objColl = (strTag == '*' && document.all && !window.opera) ? document.all : objContElm.getElementsByTagName(strTag);
  var arr = new Array();
  var delim = strClass.indexOf('|') != -1  ? '|' : ' ';
  var arrClass = strClass.split(delim);
  for (var i = 0, j = objColl.length; i < j; i++) {
    var arrObjClass = objColl[i].className.split(' ');
    if (delim == ' ' && arrClass.length > arrObjClass.length) continue;
    var c = 0;
    comparisonLoop:
    for (var k = 0, l = arrObjClass.length; k < l; k++) {
      for (var m = 0, n = arrClass.length; m < n; m++) {
        if (arrClass[m] == arrObjClass[k]) c++;
        if (( delim == '|' && c == 1) || (delim == ' ' && c == arrClass.length)) {
          arr.push(objColl[i]);
          break comparisonLoop;
        }
      }
    }
  }
  return arr;
}

// To cover IE 5.0's lack of the push method
Array.prototype.push = function(value) {
  this[this.length] = value;
}



// finds the first Element carrying the class name and changes its visibility.
function showHideByClassName(clsName, visible)
{
	var visibility = (visible == true) ? 'visible' : 'hidden';
	var display = (visible == true) ? 'block' : 'none';
	
	var elm = getElementsByClassName(clsName)[0];
	if (elm)
		elm.style.visibility = visibility;
		elm.style.display = display;
}

function setDocumentSize()
{
	var size = 350; //160 + 105 + 85;
	var elm = document.getElementsByTagName("a");
	if (elm) {
        for (i = 0; i < elm.length; i++){
            var className = elm[i].className;

            switch (true) {
                case containsStr(className, "navigationBelowHome"):
                    size += 24;
                break;
                case containsStr(className, "subNavigationChapter"):
                case containsStr(className, "subSubNavigation"):
                case containsStr(className, "subSubNavigationActive"):
                    size += 20; // 1 line: 16, 2 lines: 31;
                break;
            }
        }
    }

    var elm = document.getElementsByTagName("div");

    if (elm) {
        for (i = 0; i < elm.length; i++){
            if (elm[i].className == "content") {
                //elm[i].style.border = "1px solid red";
                elm[i].style.minHeight = size + "px";
                elm[i].style.height = size + "px";
                break;
            }
        }
    }
}

function containsStr(s, find) {
    return (s.indexOf(find) != -1);
}

function positionSubMenuShadow()
{
    var elm = document.getElementById("navigationHomeSub");
    var shade = document.getElementById("navigationShade")

	if( elm && shade ) {
		shade.style.height	= elm.scrollHeight + 10 + "px";
	}
}

function overHome()
{
    if (g_timeout != -1) { clearTimeout(g_timeout); }
    showNavHomeSub();
    positionSubMenuShadow();
}

function outHome()
{
    g_timeout = setTimeout("hideNavHomeSub()", g_timeoutTime);
}

function overNavHomeSub()
{
    if (g_timeout != -1) { clearTimeout(g_timeout); }
}

function outNavHomeSub()
{
    if (g_timeout != -1) { clearTimeout(g_timeout); }
    g_timeout = setTimeout("hideNavHomeSub()", g_timeoutTime);
}

function showNavHomeSub()
{
    showLr("navigationHomeSub");
    showLr("navigationShade");
    setBackground("navigationHome", "rgb(242,242,242)");
}

function hideNavHomeSub()
{
    hideLr("navigationHomeSub");
    hideLr("navigationShade");
    setBackground("navigationHome", "rgb(255,255,255)");
}

function setBackground(id, sBack)
{
    var elm = document.getElementById(id);
    elm.style.backgroundColor = sBack;
}

 function clickKnowledgebase(sUrl)
 {
     if (g_openKnowledgeBase == 0)
     {
         var shadeborder = 8;

         var imgWidth = 656;
         var imgHeight = 535;
         // magic numbers follow, do not try at home
         var kbHeight = imgHeight - 60;
         var shadeHeight = imgHeight + 18;

         if (screen.width <= 800) {
             imgHeight = 300;
             kbHeight = 276;
             shadeHeight = 353;
         }

         var elmShade = document.getElementById("knowledgeBaseShade");
         var elmKB = document.getElementById("knowledgeBase");

         var imgX = g_pageWidth / 2 - imgWidth / 2;
         var imgY = Math.round( (viewportGetHeight() - imgHeight)/2 ) + viewportGetScrollY();

         if (imgY < 0) { imgY = 0; }
         if (imgX < 0) { imgX = 0; }

         elmShade.style.left = (imgX - shadeborder) + "px";
         elmShade.style.top = (imgY - shadeborder) + "px";
         elmShade.style.height = shadeHeight + "px";

         elmKB.style.left = imgX + "px";
         elmKB.style.top = imgY + "px";
         elmKB.style.height = kbHeight + "px";

         var elmCloseButton = document.getElementById("closeButtonKbase");
         if (elmCloseButton) {
             elmCloseButton.style.left = (imgWidth - 19) + "px";
         }

         g_openKnowledgeBase = sUrl;

         prepareFillKbase(sUrl);
     }
 }

function closeKnowledgebase()
{
	var elm = document.getElementById("knowledgeBase");
	elm.innerHTML = "<p>&nbsp;</p>";
	elm.style.display = "none";

	hideLr("knowledgeBaseShade");
	g_openKnowledgeBase = 0;

	if (g_is_safari)
	{
		var introElm = document.getElementById("introImage");
		if (introElm)
		{introElm.style.visibility = "visible";}
	}
}

function prepareFillKbase(sUrl)
{
	sUrl = getCachePrevent(sUrl);
	if (window.XMLHttpRequest)
		{g_req = new XMLHttpRequest();}
	else if (window.ActiveXObject)
		{g_req = new ActiveXObject("Microsoft.XMLHTTP");}
	g_req.onreadystatechange = fillKbase;
	g_req.open("GET", sUrl, true);
	g_req.send(null);
}

function getCachePrevent(sUrl)
{
	if( sUrl.indexOf( "?" ) >= 0 )
	{
		return sUrl + "&rand=" + escape( Math.round( Math.random() * 10000 ) );
	}
	else
	{
		return sUrl + "?rand=" + escape( Math.round( Math.random() * 10000 ) );
	}
}

function fillKbase()
 {
     if (g_req.readyState == 4)
     {
         if (g_req.status == 200)
         {
             if (g_is_safari) {
                 var introElm = document.getElementById("introImage");
                 if (introElm) {
                     introElm.style.visibility = "hidden";
                 }
             }

             fillKbaseText( g_req.responseText );
         }
		else
		{
			alert("Can't retrieve XML: " + g_req.statusText);
		}
	}
}

function fillKbaseText( sText )
{

	var s = "";

	var elmKB = document.getElementById("knowledgeBase");

	s += "";
	s += "<div class=\"closeButton\" id=\"closeButtonKbase\" onclick=\"closeKnowledgebase()\"><img src=\"" + g_globaltheme + "Files/Images/close-button.gif\" alt=\"[X]\" title=\"Close\" /></div>";
	s += sText;
	s = replStr(s, "<content>", "");
	s = replStr(s, "</content>", "");

	var sRun = getTextBetween(s, "// <![CDATA[", "// ]]>");
	sRun = replStr(sRun, ",wmode=opaque", ",");

	elmKB.innerHTML = s;

	var elmShade = document.getElementById("knowledgeBaseShade");
	var elmKB = document.getElementById("knowledgeBase");

	if (screen.width <= 800) {
		var imgHeight = 350;
		var elmWrapper = document.getElementById("knowledgebaseWrapper");
		elmWrapper.style.height = (imgHeight - 80) + "px";
	}

	elmKB.style.display = "block";
	elmShade.style.display = "block";

	if (sRun != "") { eval(sRun); }

	CreateRenderedHeads();


 }

 function getTextBetween(sAll, sStart, sEnd)
{
    var sPart = "";
    var posStart = sAll.indexOf(sStart);
    var posEnd = sAll.indexOf(sEnd);
    if (posStart >= 0 && posEnd >= 0 && posEnd > posStart) {
        sPart = sAll.substring(posStart + sStart.length, posEnd);
    }
    return sPart;
}

function clickZoomable(id,mustRefresh,padding)
{
	sniffAll();

    if (g_openZoom == 0)
    {
        var pageWidth = 840;
        var shadeborder = 8;

        if( padding )
        {
			shadeborder = padding;
        }

        var elmImage = document.getElementById("zoomImage" + id);
        var elmCloseButton = document.getElementById("closeButton" + id);

        elmImage.style.display = "block";

        if( mustRefresh )
        {
			refreshImage( elmImage.childNodes[0].firstChild );
		}

		var imgWidth = elmImage.childNodes[0].firstChild.clientWidth;
		var imgHeight = elmImage.childNodes[0].firstChild.clientHeight;
		
        var imgX = pageWidth / 2 - imgWidth / 2;
        var imgY = Math.round( (viewportGetHeight() - imgHeight)/2 ) + viewportGetScrollY();

        if (imgY < 0) { imgY = 0; }
        // if (imgX < 0) { imgX = 0; }

        elmImage.style.left = imgX + "px";
        elmImage.style.top = imgY + "px";

        showZoomShade( imgWidth, imgHeight, shadeborder );

        if (elmCloseButton) {
        	elmCloseButton.style.position = "relative";
        	elmCloseButton.style.width = "20px";
        	if( g_is_gecko ) {
        		elmCloseButton.style.top = ( -1 * imgHeight ) - 6 + "px";
        	} else {
        		elmCloseButton.style.top = ( -1 * imgHeight ) + "px";
        	}
            elmCloseButton.style.left = (imgWidth - 13) + "px";

            elmCloseButton.style.z_index = 1702;
        }



        g_openZoom = id;
    }
}

function openZoomableAt(id,x,y)
{
	sniffAll();

    if (g_openZoom == 0)
    {
        var pageWidth = 840;
        var shadeborder = 8;

        var elmImage = document.getElementById("zoomImage" + id);
        var elmCloseButton = document.getElementById("closeButton" + id);
        elmImage.style.display = "block";

		var imgWidth = elmImage.childNodes[0].firstChild.firstChild.clientWidth;
		var imgHeight = elmImage.childNodes[0].firstChild.firstChild.clientHeight;
		
        var imgX = ( pageWidth / 2 ) + x;
        var imgY = y;

        if (imgY < 0) { imgY = 0; }
        // if (imgX < 0) { imgX = 0; }

        elmImage.style.left = imgX + "px";
        elmImage.style.top = imgY + "px";

        showZoomShadeAt( imgWidth, imgHeight, shadeborder, imgX, imgY );

        if (elmCloseButton) {
        	elmCloseButton.style.position = "relative";
        	elmCloseButton.style.width = "20px";
        	if( g_is_gecko ) {
        		elmCloseButton.style.top = ( -1 * imgHeight ) - 6 + "px";
        	} else {
        		elmCloseButton.style.top = ( -1 * imgHeight ) + "px";
        	}
            elmCloseButton.style.left = (imgWidth - 13) + "px";

            elmCloseButton.style.z_index = 1702;
        }



        g_openZoom = id;
    }
}

function showZoomShade( imgWidth, imgHeight, shadeborder )
{
    var pageWidth = 840;

    var imgX = pageWidth / 2 - imgWidth / 2;
    var imgY = Math.round( (viewportGetHeight() - imgHeight)/2 ) + viewportGetScrollY();

    var elmShade = document.getElementById("zoomImageShade");
    shadeborder = "" + shadeborder; // trick, damit shadeborder auch tatsächlich da ist
    elmShade.style.display = "block";
    elmShade.style.left = (imgX - shadeborder) + "px";
    elmShade.style.width = (imgWidth + shadeborder * 2) + "px";
    elmShade.style.top = (imgY - shadeborder) + "px";
    elmShade.style.height = (imgHeight + shadeborder * 2) + "px";

    if( shadeborder != 8 )
    {

		var x = "8px";
		var y = "8px";
		var w = (imgWidth + (2*shadeborder) - 16 ) + "px";
		var h = (imgHeight + (2*shadeborder) - 16 ) + "px";

		var elmShadeInner = document.getElementById("zoomImageShadeInner");
		if( ! elmShadeInner )
		{
			elmShadeInner = document.createElement("span");
			elmShadeInner.innerHTML = "&nbsp;";
			elmShadeInner.id = "zoomImageShadeInner";
			elmShadeInner.style.position = "relative";
			elmShadeInner.style.backgroundImage = "url(" + g_globaltheme + "Files/Images/black.gif)";
			if( elmShade.childNodes.length > 0 )
			{
				elmShade.insertBefore( elmShadeInner, elmShade.childNodes[0] );
			}
			else
			{
				elmShade.appendChild( elmShadeInner );
			}
		}

		elmShadeInner.style.left = x;
		elmShadeInner.style.top = y;
		elmShadeInner.style.width = w;
		elmShadeInner.style.height = h;
		elmShadeInner.style.display = "block";
	}
	else
	{
		var elmShadeInner = document.getElementById("zoomImageShadeInner");
		if( elmShadeInner )
		{
			elmShadeInner.style.display = "none";
		}

	}

}

function showZoomShadeAt( imgWidth, imgHeight, shadeborder, x, y )
{
    var pageWidth = 840;

    var imgX = x;
    var imgY = y;

    var elmShade = document.getElementById("zoomImageShade");
    shadeborder = "" + shadeborder; // trick, damit shadeborder auch tatsächlich da ist
    elmShade.style.display = "block";
    elmShade.style.left = (imgX - shadeborder) + "px";
    elmShade.style.width = (imgWidth + shadeborder * 2) + "px";
    elmShade.style.top = (imgY - shadeborder) + "px";
    elmShade.style.height = (imgHeight + shadeborder * 2) + "px";

    if( shadeborder != 8 )
    {

		var x = "8px";
		var y = "8px";
		var w = (imgWidth + (2*shadeborder) - 16 ) + "px";
		var h = (imgHeight + (2*shadeborder) - 16 ) + "px";

		var elmShadeInner = document.getElementById("zoomImageShadeInner");
		if( ! elmShadeInner )
		{
			elmShadeInner = document.createElement("span");
			elmShadeInner.innerHTML = "&nbsp;";
			elmShadeInner.id = "zoomImageShadeInner";
			elmShadeInner.style.position = "relative";
			elmShadeInner.style.backgroundImage = "url(" + g_globaltheme + "Files/Images/black.gif)";
			if( elmShade.childNodes.length > 0 )
			{
				elmShade.insertBefore( elmShadeInner, elmShade.childNodes[0] );
			}
			else
			{
				elmShade.appendChild( elmShadeInner );
			}
		}

		elmShadeInner.style.left = x;
		elmShadeInner.style.top = y;
		elmShadeInner.style.width = w;
		elmShadeInner.style.height = h;
		elmShadeInner.style.display = "block";
	}
	else
	{
		var elmShadeInner = document.getElementById("zoomImageShadeInner");
		if( elmShadeInner )
		{
			elmShadeInner.style.display = "none";
		}

	}

}

var elmImageWidth = new Array();
var elmImageHeight = new Array();

function showZoomableQuicktime( id, url )
{
    var elmImage = document.getElementById("zoomImage" + id).childNodes[0].childNodes[0];
	if( elmImage.src )
	{

		clickZoomable(id,false,24)

		var elmCloseButton = document.getElementById("closeButton" + id);
		elmCloseButton.style.position = "relative";
		if( g_is_gecko ) {
			elmCloseButton.style.top = ( -1 * elmImage.clientHeight ) - 21 + "px";
		} else {
			elmCloseButton.style.top = ( -1 * elmImage.clientHeight ) - 15 + "px";
		}
		elmCloseButton.style.left = (elmImage.clientWidth + 2) + "px";
		elmCloseButton.style.z_index = 1702;

		elmImageWidth[ "zoomImageImg" + id ] = elmImage.clientWidth;
		elmImageHeight[ "zoomImageImg" + id ] = elmImage.clientHeight;

		showQuicktime( url, "zoomImageImg" + id, elmImage.clientWidth, elmImage.clientHeight );

	}
	else
	{

		var elmShade = document.getElementById("zoomImageShade");
		var elmImage = document.getElementById("zoomImage" + id);

        elmImage.style.display = "block";
		showZoomShade( elmImageWidth[ "zoomImageImg" + id ], elmImageHeight[ "zoomImageImg" + id ], 24 );

		g_openZoom = id;

    }
}

function clickZoomed()
{
    hideLr("zoomImageShade");
    hideLr("zoomImage" + g_openZoom);
	hideLr("zoomImageShadeInner");
    g_openZoom = 0;
}

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";
    }
}


/* Expandable module */

function expandCollapse(id)
{
    var i=1;
    do {
        var elm = document.getElementById("expandable_" + i);
        if (elm && !elm.Oldheight && elm.style.height != "auto" ) elm.Oldheight = elm.style.height;
        i++;
    } while(elm);

    var elm = document.getElementById("expandable_" + id);

    if (elm)
    {

        if (elm.style.height != "auto")
        {
			elm.Oldheight = elm.style.height;
			collapseAllElements();
			showElement(id);
        }
        else
        {
            collapseElement(id);
        }
	}
}

function showElement(id)
{
	var elm = document.getElementById("expandable_" + id);
	elm.style.height="auto";
	var h3 = document.getElementById("expandableHead_" + id);
	if (h3)
	{
		h3.style.backgroundColor = "rgb(102,102,102)";
		h3.style.color = "rgb(255,255,255)";
		h3.style.backgroundImage = "url(" + g_globaltheme + "Files/Images/arrow-lightgray-down.gif)";
		h3.style.backgroundPosition = "9px 9px";
	}
}

function collapseElement(id)
{
	var elm = document.getElementById("expandable_" + id);
	if(elm.Oldheight)
		{elm.style.height = elm.Oldheight;}
	else
		{elm.style.height = "19px";}

    var h3 = document.getElementById("expandableHead_" + id);
    if (h3) {
        h3.style.backgroundColor = "rgb(204,204,204)";
        h3.style.color = "rgb(0,0,0)";
        h3.style.backgroundImage = "url(" + g_globaltheme + "Files/Images/arrow-gray.gif)";
        h3.style.backgroundPosition = "11px 7px";
    }
}

function collapseAllElements() {
    var i=1;
    do {
        var elm = document.getElementById("expandable_" + i);
        if (elm) collapseElement(i);
        i++;
    } while(elm);
}

function viewportGetHeight()
{
    var retval = 0;

    if (window.innerHeight)
        retval = window.innerHeight - 18;
    else if (document.documentElement && document.documentElement.clientHeight)
        retval = document.documentElement.clientHeight;
    else if (document.body && document.body.clientHeight)
        retval = document.body.clientHeight;

    return retval;
}

function viewportGetScrollY()
{
    var retval = 0;

    if (typeof window.pageYOffset == "number")
        retval = window.pageYOffset;
    else if (document.documentElement && document.documentElement.scrollTop)
        retval = document.documentElement.scrollTop;
    else if (document.body && document.body.scrollTop)
        retval = document.body.scrollTop;
    else if (window.scrollY)
        retval = window.scrollY;

    return retval;
}

function showKVFlash( url, width, height, flashbg, outerHeight, marginTop )
{

	var iI = document.getElementById( 'introImage' );
	var innerHTML = iI.innerHTML;
	if( innerHTML.indexOf( "innerIntroImage" ) >= 0 )
	{
		iI.innerHTML = "<div style=\"width:" + width + "px;height:" + outerHeight + "px;background-color:" + flashbg + ";vertical-align:middle;align:center;padding-top:" + marginTop + "px\" id=\"innerIntroImage\"></div>";
	}
	else
	{
		iI.innerHTML = "<div style=\"width:" + width + "px;height:" + outerHeight + "px;background-color:" + flashbg + ";vertical-align:middle;align:center;padding-top:" + marginTop + "px\" id=\"innerIntroImage\">" + innerHTML + "</div>";
	}

	showSnifferFlash( url, 'innerIntroImage', width, height, '7', flashbg, 'loop=true,menu=false,quality=high,wmode=opaque', '');

}

function showGalleryFlash( url, width, height, flashbg )
{

    var elmImg = document.getElementById("galleryImage");
	if( elmImg )
	{
		elmImg.parentNode.id = "outerGalleryImage";
	}
	var outImg = document.getElementById("outerGalleryImage");
	outImg.style.background = flashbg;
	outImg.parentNode.style.background = flashbg;
	outImg.parentNode.parentNode.style.background = flashbg;
	outImg.parentNode.parentNode.style.width = (width+1) + "px";
	outImg.parentNode.parentNode.style.height = (height+1) + "px";
	outImg.parentNode.parentNode.style.top = 0;
	outImg.parentNode.parentNode.style.left = "-9px";

	showSnifferFlash(url, "outerGalleryImage", width, height, "7", flashbg, "loop=true,menu=true,quality=high,wmode=opaque", "" );

}

var g_showFlashSniffer = false;
var g_FlashSnifferActive = false;
var g_clientFlashSet = false;

var g_showFlashes = new Array();

var g_showQuicktimeSniffer = false;
var g_QuicktimeSnifferActive = false;
var g_clientQuicktimeSet = false;

var g_showQuicktimes = new Array();


function showSnifferFlash( url, id, width, height, version, bgcolor, playerparamstr, flashparamstr )
{
	var supportsFlash = readCookie( "flash" ) == "true";
	if( supportsFlash )
	{
		showFlash( url, id, width, height, version, bgcolor, playerparamstr, flashparamstr );
	}
	else
	{
		g_showFlashSniffer = true;
		if( url && id )
		{
			g_showFlashes[ id ] = new Array();
			g_showFlashes[ id ][ "url" ] = url;
			g_showFlashes[ id ][ "id" ] = id;
			g_showFlashes[ id ][ "width" ] = width;
			g_showFlashes[ id ][ "height" ] = height;
			g_showFlashes[ id ][ "version" ] = version;
			g_showFlashes[ id ][ "bgcolor" ] = bgcolor;
			g_showFlashes[ id ][ "playerparamstr" ] = playerparamstr;
			g_showFlashes[ id ][ "flashparamstr" ] = flashparamstr;
		}
	}
}

function checkFlash()
{
	if( g_showFlashSniffer && ! g_FlashSnifferActive && ! g_clientFlashSet )
	{
		if( document.getElementById("checkflash") )
		{
			g_FlashSnifferActive = true;
			showFlash( g_global + 'sniffer.swf', "checkflash", 1, 1, "7" );
			setTimeout( "setClientFlashDisabled(true)", 2500 );
		}
		else
		{
			setTimeout( "checkFlash()", 250 );
		}
	}
}

function showSnifferQuicktime( url, id, width, height, playerparamstr )
{
	var supportsQuicktime = readCookie( "quicktime" ) == "true";
	if( supportsQuicktime )
	{
		showQuicktime( url, id, width, height, playerparamstr );
	}
	else
	{
		g_showQuicktimeSniffer = true;
		if( url && id )
		{
			g_showQuicktimes[ id ] = new Array();
			g_showQuicktimes[ id ][ "url" ] = url;
			g_showQuicktimes[ id ][ "id" ] = id;
			g_showQuicktimes[ id ][ "width" ] = width;
			g_showQuicktimes[ id ][ "height" ] = height;
			g_showQuicktimes[ id ][ "playerparamstr" ] = playerparamstr;
		}
	}
}

function checkQuicktime()
{
	if( g_showQuicktimeSniffer && ! g_QuicktimeSnifferActive && ! g_clientQuicktimeSet )
	{
		if( document.getElementById("checkquicktime") )
		{
			g_QuicktimeSnifferActive = true;
			showQuicktime( g_global + 'snifferqt.swf', "checkquicktime", 1, 1 );
			setTimeout( "setClientQuicktimeDisabled(true)", 2500 );
		}
		else
		{
			setTimeout( "checkQuicktime()", 250 );
		}
	}
}


function setClientFlashDisabled( isDisabled )
{
	if( isDisabled && ! g_clientFlashSet )
	{
		g_clientFlashSet = true;
		/* update server */
		tellServerClientFlashAbility( false );
	}

}

function setClientFlashEnabled( isEnabled )
{
	if( isEnabled )
	{
		g_clientFlashSet = true;

		/*
		show all flashes
		*/
		var f;
		for( f in g_showFlashes )
		{
			showFlash(
				g_showFlashes[f][ "url" ],
				g_showFlashes[f][ "id" ],
				g_showFlashes[f][ "width" ],
				g_showFlashes[f][ "height" ],
				g_showFlashes[f][ "version" ],
				g_showFlashes[f][ "bgcolor" ],
				g_showFlashes[f][ "playerparamstr" ],
				g_showFlashes[f][ "flashparamstr" ]
			);
		}

		/* update server */
		tellServerClientFlashAbility( true );
	}
}

function setClientQuicktimeDisabled( isDisabled )
{
	if( isDisabled && ! g_clientQuicktimeSet )
	{
		if(!haveqt)
		{
			if (navigator.plugins)
			{
				for (i=0; i < navigator.plugins.length; i++ )
				{
					if (navigator.plugins[i].name.indexOf("QuickTime") >= 0)
						{ haveqt = true; }
				}
			}
		}
		if(haveqt)
		{
			setClientQuicktimeEnabled( haveqt );
		}
		else
		{
			g_clientQuicktimeSet = true;
			/* update server */
			tellServerClientQuicktimeAbility( false );
		}
	}

}

function setClientQuicktimeEnabled( isEnabled )
{
	if( isEnabled )
	{
		g_clientQuicktimeSet = true;

		/*
		show all quicktimes
		*/
		var f;
		for( f in g_showQuicktimes )
		{
			showQuicktime(
				g_showQuicktimes[f][ "url" ],
				g_showQuicktimes[f][ "id" ],
				g_showQuicktimes[f][ "width" ],
				g_showQuicktimes[f][ "height" ],
				q_showQuicktimes[f][ "playerparamstr" ]
			);
		}

		/* update server */
		tellServerClientQuicktimeAbility( true );
	}
}

function tellServerClientFlashAbility( isEnabled )
{
	if( isEnabled )
	{
		createCookie( "flash", "true" );
	}
	else
	{
		createCookie( "flash", "false" );
	}

	/* vielleicht doch besser bloß ein cookie setzen
	var sUrl;
	if( document.location.href.indexOf( "?" ) > 0 )
	{
		sUrl = document.location.href + "&flash=" + isEnabled;
	}
	else
	{
		sUrl = document.location.href + "?flash=" + isEnabled;
	}

	sUrl = getCachePrevent(sUrl);

	var r = null;
	if (window.XMLHttpRequest)
	{
		r = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		r = new ActiveXObject("Microsoft.XMLHTTP");
	}
	r.open("GET", sUrl, true);
	r.send(null);
	 */
}

function tellServerClientQuicktimeAbility( isEnabled )
{
	if( isEnabled )
	{
		createCookie( "quicktime", "true" );
	}
	else
	{
		createCookie( "quicktime", "false" );
	}
	/* vielleicht doch besser bloß ein cookie setzen
	var sUrl;
	if( document.location.href.indexOf( "?" ) > 0 )
	{
		sUrl = document.location.href + "&quicktime=" + isEnabled;
	}
	else
	{
		sUrl = document.location.href + "?quicktime=" + isEnabled;
	}

	sUrl = getCachePrevent(sUrl);

	var r = null;
	if (window.XMLHttpRequest)
	{
		r = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		r = new ActiveXObject("Microsoft.XMLHTTP");
	}
	r.open("GET", sUrl, true);
	r.send(null);
	 */
}

function showFlash( url, id, width, height, version, bgcolor, playerparamstr, flashparamstr )
{
	if (!g_is_safari )
	{
		var fo = new FlashObject(url, id + "_flash", width, height, version, bgcolor);
		if (playerparamstr != undefined)
		{
			var playerparams = playerparamstr.split(",");
			for (var i=0; i < playerparams.length; i++ )
			{
				var param = playerparams[i].split("=");
				if( param[1] != "=undefined" )
				{
					fo.addParam(param[0], param[1]);
				}
			}
		}
		if (flashparamstr != undefined)
		{
			var flashparams = flashparamstr.split(",");
			for (var i=0; i < flashparams.length; i++ )
			{
				var param = flashparams[i].split("=");
				if( param[1] != "=undefined" ) 
				{
					fo.addVariable(param[0], param[1]);
				}
			}
		}
		return fo.write(id);
	}
}

function showQuicktime(url, id, width, height, playerparamstr)
{
	if (! (g_is_home && g_is_safari) )
	{
		var fo = new QTObject(url, id + "_qt", width, height);
		if (playerparamstr != undefined)
		{
			var playerparams = playerparamstr.split(",");
			for (var i=0; i < playerparams.length; i++ )
			{
				var param = playerparams[i].split("=");
				fo.addParam(param[0], param[1]);
			}
		}
		if(document.getElementById(id))
		{
			fo.write(id);
		}
	}
}

/* Gallery module */

var g_lastNumber = 1;
var g_wallpaper = new Array();

function setImage(elm, n)
{
    if (g_lastNumber != n)
    {
        var lastElm = document.getElementById("thumbnail" + g_lastNumber);
        lastElm.className = "";
        lastElm.style.border = "1px solid #ccc";

        var thisElm = document.getElementById("thumbnail" + n);
        thisElm.className = "selected";
        thisElm.style.border = "1px solid rgb(204,0,0)";

        g_lastNumber = n;

        var sHref = elm.href;
        document.getElementById("galleryImage").src = sHref;

        showGallerySubtitle(n);

    }

    return false;
}

function setThumbnail(elm, n)
{
    if (g_lastNumber != n)
    {
        var lastElm = document.getElementById("thumbnail" + g_lastNumber);
        lastElm.className = "";
        lastElm.style.border = "1px solid #ccc";

        var thisElm = document.getElementById("thumbnail" + n);
        thisElm.className = "selected";
        thisElm.style.border = "1px solid rgb(204,0,0)";

        g_lastNumber = n;
    }

    return false;
}

function prevgalleryImage(img, imgMax)
{
    var lastElm = document.getElementById("thumbnail" + g_lastNumber);
    if (lastElm) {
        lastElm.className = "";
        lastElm.style.border = "1px solid #ccc";
    }

    var n = --g_lastNumber;
    if (n < 1) { n = getMaxNumberGallery(); }

    var thisElm = document.getElementById("thumbnail" + n);
    if (thisElm) {
        thisElm.className = "selected";
        thisElm.style.border = "1px solid rgb(204,0,0)";
    }

    setGalleryImage( n );
}

function setGalleryImage( n )
{

    var elm = document.getElementById("href" + n);
    if( elm )
    {
		var sHref = elm.href;
		if( document.getElementById( "galleryImage" ) )
		{
			document.getElementById("galleryImage").src = sHref;
		}

		g_lastNumber = n;

		showGallerySubtitle(n);
	}
    return false;
}

function nextgalleryImage()
{
    var lastElm = document.getElementById("thumbnail" + g_lastNumber);
    if (lastElm) {
        lastElm.className = "";
        lastElm.style.border = "1px solid #ccc";
    }

    var n = ++g_lastNumber;
    var max = getMaxNumberGallery();
    if (n > max) { n = 1; }

    var thisElm = document.getElementById("thumbnail" + n);
    if (thisElm) {
        thisElm.className = "selected";
        thisElm.style.border = "1px solid rgb(204,0,0)";
    }

    setGalleryImage( n );

    return false;
}

function initGallerySubtitles()
{
    var subtitles = document.getElementById("gallerySubtitles")

    if (subtitles) {
        var tab = getGallerySubtitleTab();

        if (tab) {
            tab.style.display = "block";

            showGallerySubtitle(1);
        }
    }
}

function showGallerySubtitle(n)
{
    var subtitles = document.getElementById("gallerySubtitles");

    if (subtitles) {
        var tab = getGallerySubtitleTab();

        if (tab != null) {
            var tabSubtitles = tab.getElementsByTagName("div");

            if (tabSubtitles) {
                for (var i = 0; i < tabSubtitles.length; i++) {
                    tabSubtitles[i].style.display = (i == n - 1) ? "block" : "none";
                }
            }
        }
    }
}

function getGallerySubtitleTab()
{
    var no = getGallerySubtitleTabNo();
    var tab = document.getElementById("gallerySubtitlesTab" + no);

    return tab;
}

function getGallerySubtitleTabNo()
{
	var no = 1;
	var regex = /tabindex=(\d)/;
	var result = regex.exec(document.URL);
	if (result != null)
	{
		no = result[1]
	}
	return no;
}

function getMaxNumberGallery()
{
	var max = 0;
	for (var i = 150; i >= 1 && max == 0; i--)
	{
		var testElm = document.getElementById("thumbnail" + i);
		if (testElm)
		{
			max = i;
			break;
		}
	}
	return max;
}

function showCurrentWallpaper( iWidth, iHeight, bShowAddress )
{
	var src,pos;
	if( ! g_wallpaper[ g_lastNumber - 1 ] )
	{
		var elm = document.getElementById("href" + g_lastNumber);
		src = elm.firstChild.src;
	}
	else
	{
		src = g_wallpaper[ g_lastNumber - 1 ];
	}
	pos=src.indexOf("picture.pcp");
	if(pos>0)
	{
		src=src.replace("picture.pcp", "wallpaper.pcp");
	}
	src = src + "&address=" + bShowAddress;
	showWallpaper( src, iWidth, iHeight );
}

function showWallpaper( src, iWidth, iHeight )
{
	if( src.match(/w=[0-9]+/) )
	{
		src = src.replace(/w=[0-9]*/,'w='+iWidth);
	}
	else
	{
		src += '&w='+iWidth;
	}
	if( src.match(/h=[0-9]+/) )
	{
		src = src.replace(/h=[0-9]*/,'w='+iHeight);
	}
	else
	{
		src += '&h='+iHeight;
	}
	openWallpaper(src,iWidth,iHeight);
}

function openWallpaper(img, iWidth, iHeight)
{
	gotoUrlNewWin(img);
}

var g_autoplay = false;
var g_autoplayinterval;

function autoplayGallery( button )
{
	g_autoplay = ! g_autoplay;
	if( g_autoplay )
	{
		g_autoplayinterval = window.setInterval( "nextgalleryImage()", 5000 );
		SetRenderedButtonContentText( button, "Autoplay Off", "icon=3" );
	}
	else
	{
		window.clearInterval( g_autoplayinterval );
		SetRenderedButtonContentText( button, "Autoplay On", "icon=1" );
	}
}

/* Windows module */

function gotoUrlNewWinSimple(s)
{
	newWin = window.open(s, "newWin" + getRandomInt(10000));
}

function gotoUrlNewWin(s)
{
	sWidth = 826;
	sHeight = 610;
	gotoUrlNewWinSize(s, sWidth, sHeight);
}

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=yes,scrollbars=no,status=no");
}

function gotoUrlNewWinDefaultSize(s)
{
	sWidth = 570;
	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 gotoUrlNewWinSizeCentered(s, iWidth, iHeight)
{
	iWidth += 20;
	iHeight += 25;
	var iLeft = Math.round((screen.width - iWidth) / 2);
	var iTop = Math.round((screen.height - iHeight) / 2);
	newWin = window.open(s, "newWin" + getRandomInt(10000), "width=" + iWidth + ",height=" + iHeight + ",left=" + iLeft + ",top=" + iTop + ",dependent=yes,location=no,resizable=no,scrollbars=no,status=no");
}

function gotoUrlNewWinSizeByName(s, sWidth, sHeight, sName)
{
	sWidth += 20;
	sHeight += 25;
	newWin = window.open(s, sName, "width=" + sWidth + ",height=" + sHeight + ",left=40,top=40,dependent=yes,location=no,resizable=no,scrollbars=no,status=no");
}

function gotoUrlNewWinSizeByNameCentered(s, sWidth, sHeight, sName)
{
	sWidth += 20;
	sHeight += 25;
	var iLeft = Math.round((screen.width - sWidth) / 2);
	var iTop = Math.round((screen.height - sHeight) / 2);
	newWin = window.open(s, sName, "width=" + sWidth + ",height=" + sHeight + ",left=" + iLeft + ",top=" + iTop + ",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 getRandomInt(max)
{
	return Math.round( Math.random() * (max-1) );
}


/* Ad-Tracker module */

function getAdTrackerNumber()
{
	var axel = Math.random() + "";
	var a = axel * 10000000000000;
	return a;
}



/* Home module */

function initHome()
{
    if (document.getElementById) {
        g_initHome = true;
    }
    
    // FF 3.x opacity+cleartype bugfix
    var i=0;
    var topNavs = getElementsByClassName('topnavlink');

    for(i=0;i<topNavs.length;i++) {
        topNavs[i].innerHTML += "&#160;";        
    }
    
    var navSubs = getElementsByClassName('subnav');
    for(i=0;i<navSubs.length;i++) {
        navSubs[i].innerHTML += "&#160;";        
    }
    
    

}

function bannerLinkToHi(sId)
{

    if (g_initHome)
    {
        var elm = document.getElementById(sId);
        if (elm)
        {
            elm.style.color = "#c00";
            elm.style.backgroundImage = "url(/Global/porsche2005/Files/Images/arrow-red.gif)";
        }
    }

}

function bannerLinkToLo(sId)
{

    if (g_initHome)
    {
        var elm = document.getElementById(sId);
        if (elm)
        {
            elm.style.color = "rgb(102,102,102)";
            elm.style.backgroundImage = "url(/Global/porsche2005/Files/Images/arrow-gray.gif)";
        }
    }
}

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 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 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) {
		// wtf?
        // if (parseInt(elem.style.top.replace(/px/, ""),10) > 88) {   
            
                if (doOn)
                {
                    elem.style.MozOpacity = ".99";
                    elem.style.Opacity = "1.00";
                    elem.style.opacity = "1.00";
                    elem.style.filter = "alpha(opacity=100)";
                }
                else
                {
                    elem.style.MozOpacity = ".40";
                    elem.style.Opacity = ".40";
                    elem.style.opacity = ".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 fadeAllOut(elem)
{
  if(elem == undefined)
    return;

  if(g_jdpowerphase == "none")
   return;

  var ID = elem.id
  var i = 0;
  var which = parseInt(ID.replace('link', '').replace('topnav', ''));
  for (; i <= G_MAXITEMS_MAINNAVI; i++)
  {
    if((i <= 5) && (which != i))
    {
      fadeOut('topnavlink' + i.toString());
    }
    if((i >= 6) && (which != i))
      fadeOut('topnavlink' + i.toString());
  }
}
function fadeAllIn(elem)
{
  if(elem == undefined)
    return;

  if(g_jdpowerphase == "none")
   return;

  var ID = elem.id
  var i = 0;
  var which = parseInt(ID.replace('link', '').replace('topnav', ''));
  for (; i <= G_MAXITEMS_MAINNAVI; i++)
  {
    if((i <= 5) && (which != i))
    {
      fadeIn('topnavlink' + i.toString());
    }
    if((i >= 6) && (which != i))
      fadeIn('topnavlink' + i.toString());
  }
}
function fadeOut(ID)
{
  var elem = document.getElementById(ID);
  if(elem)
  {
    elem.style.MozOpacity = ".5"; 
    elem.style.Opacity = ".5"; 
    elem.style.opacity = ".5"; 
    elem.style.filter = "Alpha(opacity=50, finishopacity=50, style=2)";
  }
}
function fadeIn(ID)
{
  var elem = document.getElementById(ID);
  if(elem)
  {
    elem.style.MozOpacity = "1.00"; // hack around weeeiiird bug which causes "1" to break NS7.02
    elem.style.Opacity = "1.00"; 
    elem.style.opacity = "1.00"; 
    elem.style.filter = "Alpha(opacity=100, finishopacity=100, style=2)";
  }
}

function hiliteLr(level, sName)
{
    var elem = document.getElementById(sName);
    if (elem)
    {
        if (level == 0 || level == "0")
        {
            //////////////////////
            // JD-Power 2008 03 Mouseover Workaround Hack
            //var itemNo = parseInt(sName.substring(sName.length - 1, sName.length));
            var itemNo = parseInt(sName.replace('topnavlink', '').replace('topnav', ''));
            if (itemNo >= 4)
            {
                elem.style.backgroundColor = g_homemenu_hl_background_color_Level5;
            }
            else
            {
                elem.style.backgroundColor = g_homemenu_hl_background_color;
            }
            if ((g_jdpowerphase == "200803") && (itemNo <= 3))
            {
                var topNavi = document.getElementById("topnav" + itemNo.toString()); 
                topNavi.style.backgroundImage = "none";
                topNavi.style.backgroundColor = "transparent"; //"#FFFFFF";
                elem.style.backgroundImage = "none";
                /***************************************/
                /* HG Weiß mit 1% Deckkraft, bei 0% löst IE7 sonst das mouseout Event wieder aus */
                elem.style.backgroundColor = "white"; 
                elem.style.MozOpacity = ".01"; 
                elem.style.Opacity = ".01"; 
                elem.style.opacity = ".01"; 
                elem.style.filter = "Alpha(opacity=1, finishopacity=1, style=2)"; /* 1% Deckkraft, bei 0% löst IE7 sonst das mouseout Event wieder aus */
                /***************************************/
            }
            else
            {
                elem.style.color = g_homemenu_hl_fontcolor; 
                if (! (elem.className.indexOf("final") >= 0) )
                {
                    elem.style.backgroundImage = "url(/Global/porsche2005/Files/Images/arrow-red.gif)";
                }
            }
            fadeAllOut(elem);
            //////////////////////
        }
        else
        {
            elem.style.color = g_homemenu_hl_fontcolor; //"rgb(204, 0, 0)";
            elem.style.backgroundColor = "#FFFFFF";
            if (! (elem.className.indexOf("final") >= 0) )
            {
                elem.style.backgroundImage = "url(/Global/porsche2005/Files/Images/arrow-red.gif)";
            }

            elem.style.MozOpacity = ".99"; // hack around weeeiiird bug which causes "1" to break NS7.02
            elem.style.Opacity = "1.00"; 
            elem.style.opacity = "1.00"; 
            elem.style.filter = "alpha(opacity=100)";
        }
    }
}

function loliteLr(level, sName)
{
    var elem = document.getElementById(sName);
    if (elem)
    {
        if (level == 0 || level == "0")
        {

            //////////////////////
            // JD-Power 2008 03 Mouseover Workaround Hack
            //var itemNo = parseInt(sName.substring(sName.length - 1, sName.length));
            var itemNo = parseInt(sName.replace('topnavlink', '').replace('topnav', ''));
			if (itemNo >= 4)
            {
                elem.style.backgroundColor = g_homemenu_ll_background_color; 
            }
			
            if ((g_jdpowerphase == "200803") && (itemNo <= 3))
            {
                var topNavi = document.getElementById("topnav" + itemNo.toString()); // NOP
                topNavi.style.backgroundImage = "url(/Global/porsche2005/Files/Images/hg.jpg)";
                var img = "";
                switch(itemNo)
                {
                    case 1: img = "url(/Local/porsche2005/Files/Images/01boxster.gif)"; break;
                    case 2: img = "url(/Local/porsche2005/Files/Images/02cayman.gif)"; break;
                    case 3: img = "url(/Local/porsche2005/Files/Images/03911.gif)"; break;
                }
                elem.style.backgroundImage = img;
                
                elem.style.backgroundColor = "transparent";
                elem.style.MozOpacity = "1.00"; 
                elem.style.Opacity = "1.00"; 
                elem.style.opacity = "1.00"; 
                elem.style.filter = "Alpha(opacity=100, finishopacity=100, style=2)";
                
            }
            else
            {
                elem.style.color = g_homemenu_ll_fontcolor_level0; 
                elem.style.backgroundColor = g_homemenu_ll_background_color; 
                if (! (elem.className.indexOf("final") >= 0) )
                {
                    elem.style.backgroundImage = g_homemenu_ll_background_image_level0; 
                }
            }
            fadeAllIn(elem);
            //////////////////////
        }
        else
        {
            elem.style.color = g_homemenu_ll_fontcolor_level1;
            elem.style.backgroundColor = "#FFFFFF";
            if (! (elem.className.indexOf("final") >= 0) )
            {
                elem.style.backgroundImage = g_homemenu_ll_background_image_level1;
            }

            elem.style.MozOpacity = ".86";
            elem.style.Opacity = ".86"; 
            elem.style.opacity = ".86"; 
            elem.style.filter = "alpha(opacity=86)";
        }
    }
}

function showSubLayers(sName)
{
    var i = 0;
    var foundOne = false;

    for (i = 1; i <= G_MAXSUBLAYERS; 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 <= G_MAXSUBLAYERS; 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 setModel(s)
{

    if (g_initHome)
    {
        g_currentModelLink = s;
    }
}

function gotoModel()
{

    if (g_initHome)
    {
        if (g_currentModelLink != '')
        {
            gotoUrl(g_currentModelLink);
        }
    }
}

function gotoUrl(s)
{
    g_psyma_navi_clicked = true;
    document.location.href = s;
}

function gotoUrlDropDown(e)
{
	if (e.options)
	{
		var url = e.options[e.options.selectedIndex].value;
		if(url != '')gotoUrl(url);			
	}
}

function gotoUrlTimeout(s, timeout)
{
  setTimeout("gotoUrl('" + s + "')", timeout)
}
function nogo()
{
    //
}

function selectAllInput(elm)
{
    if (elm)
    {
        elm.focus();
        elm.select();
    }
}

function changedCountry(elmThis)
{
    if (document.getElementById)
    {
        var sUrl = elmThis.value;

        if (sUrl != "")
        {
            document.location.href = sUrl;
        }
    }
}

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")));

	var is_mac = ((agt.indexOf('macintosh')!=-1))?true:false;
	var is_linux = (navigator.platform.toLowerCase().indexOf('linux')!=-1)?true:false;
	var is_win = (navigator.platform.toLowerCase().indexOf('win')!=-1)?true:false;
	
    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);

	// OS
	g_is_win = is_win;
	g_is_mac = is_mac;
	g_is_linux = is_linux;
	
    g_is_ie = is_ie;
    g_is_opera = is_opera;
    g_is_ie5 = is_ie5;
    g_is_ie5_5 = is_ie5_5;
    g_is_ie6 = is_ie6;
    g_is_safari = is_safari;
}




/* Module Motorschaubild */

function showDetail(item) {
    getDiagramDetail(item).style.display = "block";
}

function showDetailPointer(item) {
    var o;
    if( o = getDiagramDetailNumber(item) )
    {
		o.style.display = "block";
	}
    if( o = getDiagramDetailArrow(item) )
    {
		o.style.display = "block";
	}
}

function hideAllDetail(item)
{
	var i = 1;
	var h;
	while( h = document.getElementById( "engineDiagramItem" + i ) )
	{
		if( item || item.id != h.id )
		{
			hideDetail( h );
			hideDetailPointer( h );
		}
		i++;
	}
}

function hideDetail(item) {
    getDiagramDetail(item).style.display = "none";
}

function hideDetailPointer(item)
{
    var o;
    if( o = getDiagramDetailNumber(item) )
    {
		o.style.display = "none";
	}
    if( o = getDiagramDetailArrow(item) )
    {
		o.style.display = "none";
	}
}

function getDiagramDetail(item) {
    return document.getElementById("engineDiagramDetail" + item.getAttribute("id").substr(17,2));
}
function getDiagramDetailNumber(item) {
    return document.getElementById("engineDiagramDetail" + item.getAttribute("id").substr(17,2) + "Number");
}
function getDiagramDetailArrow(item) {
    return document.getElementById("engineDiagramDetail" + item.getAttribute("id").substr(17,2) + "Arrow");
}

function replStr(str,oldStr,newStr)
{
	var strPos=str.indexOf(oldStr);
	return (strPos>=0) ?
		str.substring(0,strPos) + newStr +
		replStr( str.substring(strPos +
		oldStr.length), oldStr, newStr ) :
		str
}




var g_openPostcard = 0;
var kbShadeSize = 8;
var kbWidth = 0;
var kbHeight = 0;

 function clickPostCard(sUrl,nWidth,nHeight)
 {

     if (g_openPostcard == 0)
     {

         kbWidth = 656;
         if( nWidth )
         {
			kbWidth = nWidth;
         }
         kbHeight = 535;
         if( nHeight )
         {
			kbHeight = nHeight;
         }

         var elmShade = document.getElementById("knowledgeBaseShade");
         var elmKB = document.getElementById("knowledgeBase");

         var elmCloseButton = document.getElementById("closeButtonKbase");
         if (elmCloseButton) {
             elmCloseButton.style.left = kbWidth + "px";
         }


		var imgX = g_pageWidth / 2 - kbWidth / 2;
		var imgY = Math.round( (viewportGetHeight() - kbHeight)/2 ) + viewportGetScrollY();

		if (imgY < 0) { imgY = 0; }
		if (imgX < 0) { imgX = 0; }



		elmShade.style.left = (imgX - kbShadeSize) + "px";
		elmShade.style.top = (imgY - kbShadeSize) + "px";
		elmShade.style.height = kbHeight + (kbShadeSize*2) + "px";
		elmShade.style.width = kbWidth + (kbShadeSize*2) + "px";

		elmKB.style.left = imgX + "px";
		elmKB.style.top = imgY + "px";
		elmKB.style.height = kbHeight + "px";
		elmKB.style.width = kbWidth + "px";

         g_openPostcard = sUrl;

         prepareFillPostCard(sUrl);

     }
 }


function prepareFillPostCard(sUrl)
{
	sUrl = getCachePrevent(sUrl);
	if (window.XMLHttpRequest)
		{g_req = new XMLHttpRequest();}
	else if (window.ActiveXObject)
		{g_req = new ActiveXObject("Microsoft.XMLHTTP");}
	g_req.onreadystatechange = fillPostCard;
	g_req.open("GET", sUrl, true);
	g_req.send(null);
}


function fillPostCard()
{
	if (g_req.readyState == 4)
	{
		if (g_req.status == 200)
			{fillPostCardText( g_req.responseText );}
		else
		{
			alert("Can't retrieve XML: " + g_req.statusText);
			fillPostCardText( g_req.responseText );
		}
	}
}

function fillPostCardText( sText )
{

	var elmKB = document.getElementById("knowledgeBase");

	s = "";
	s += "<div class=\"closeButton\" id=\"closeButtonKbase\" onclick=\"closePostCard()\"><img src=\"" + g_globaltheme + "Files/Images/close-button.gif\" alt=\"[X]\" title=\"Close\" /></div>";
	s += sText;
	s = replStr(s, "<content>", "");
	s = replStr(s, "</content>", "");

	var sRun = getTextBetween(s, "// <![CDATA[", "// ]]>");
	sRun = replStr(sRun, ",wmode=opaque", ",");

	elmKB.innerHTML = s;

	var elmShade = document.getElementById("knowledgeBaseShade");
	var elmKB = document.getElementById("knowledgeBase");
	var elmCloseButton = document.getElementById("closeButtonKbase");

	elmKB.style.display = "block";
	elmShade.style.display = "block";

	if (elmCloseButton)
	{
		var elmCloseButton = document.getElementById("closeButtonKbase");
		if (elmCloseButton){elmCloseButton.style.left = kbWidth + "px";}

		elmCloseButton.style.left = elmKB.scrollWidth - 19 + "px";
	}

	if (sRun != ""){eval(sRun);}

	CreateRenderedHeads();
}

function closePostCard()
{
	var elm = document.getElementById("knowledgeBase");
	elm.innerHTML = "<p>&nbsp;</p>";
	elm.style.display = "none";

	hideLr("knowledgeBaseShade");
	g_openPostcard = 0;

	if (g_is_safari)
	{
		var introElm = document.getElementById("introImage");
		if (introElm)
			{introElm.style.visibility = "visible";}
	}
}

function openDealerLocator(refForm, sWidth, sHeight, sName, sUrl) {
    if (!sUrl) {
        sUrl = "";
    }
    var topOffset = 40;
    if (sHeight > self.screen.availHeight + topOffset - 40) {
        sHeight = self.screen.availHeight - 40;
        topOffset = 0;
    }
    newWin = window.open(sUrl, sName, "width=" + sWidth + ",height=" + sHeight + ",left=40,top=" + topOffset + ",dependent=yes,location=no,resizable=no,scrollbars=no,status=no");
    if (refForm) {
        refForm.target = sName;
        return true;
    }
}