// Version       : 3.6
// Last modified : 14.01.2004 (P.Seliger, no preloading for -a. Images)
// Author        : BBDO InterOne Hamburg
// Copyright     : BMW Group 2002-2003

// Unique scripting solutions that are provided for  BMW Group sites are for use exclusively
// within  BMW Group projects.  No other use of these solutions is permitted.

// See "documentation_bmw_scriptlib.doc" for details!

var nn4                  = document.layers;
var nn6                  = document.documentElement;if(document.all) {nn6 = false;}
var ie4                  = (document.all && !document.getElementById);
var ie5                  = (document.all && document.getElementById);
var mac                  = false; if(navigator.platform.indexOf("Mac") >= 0){mac = true;}
var lyr                  = new Array();
var pictures             = new Array();
var userAgent            = window.navigator.userAgent;
var preLoadIsComplete    = false;
var ToggleStatus         = new Array ();
var oldImg               = "";
var oldCnt;
var loopCounter          = 0;
var CheckAnimationStatus = 0;
var loadImgList;
var loadImgCount;
var LoopAnimation;
var layerLoadingStatus   = new Array();
var query                = new Object();
var parameterArray       = new Array();

var lastPermanentHigh;



// lookup id in dom (works for nested layers in ns4)
function findObject(id,d)
{
    var i,ret; 

    if(!d) d=document; 
    
    ret=d[id];
    if( !ret && d.all) ret=d.all[id]; 
    if( !ret && d.getElementById) ret=d.getElementById(id); 
    
    for(i=0; !ret && i<d.forms.length; i++) ret=d.forms[i][id];
    for(i=0; !ret && d.layers && i<d.layers.length; i++) ret=findObject(id,d.layers[i].document); 
    
    return ret;
}

function findElement(n,ly) {
  var curDoc = ly ? ly.document : document;
  var elem = curDoc[n];
  if (!elem) {
    for (var i=0;i<curDoc.layers.length;i++) {
      elem = findElement(n,curDoc.layers[i]);
      if (elem) {
        return elem;
      }
    }
  }
  return elem;
}


function NSStyle(s) {
  return findElement(s,0);
}


function IEStyle(s) {
  return document.all.tags("div")[s].style;
}


function activeImageConstructor(aName,aLowlightSrc,aHighlightSrc) {
  this.name          = aName;
  this.lowLight      = new Image();
  this.lowLight.src  = aLowlightSrc;
  this.highLight     = new Image();
  this.highLight.src = aHighlightSrc;
  this.storeLight     = new Image();
  this.storeLight.src = aLowlightSrc;
}

function addImageToPictureList(imageName, imageUrl, activeImageUrl){
  activeImageObj     = new activeImageConstructor(imageName, imageUrl, activeImageUrl);
  activeImageData    = new Array(activeImageObj);
  pictures           = pictures.concat(activeImageData);
}

function addJpgToPictureList(imageName, imageUrl, activeImageUrl){
  activeImageObj     = new activeImageConstructor(imageName, imageUrl, activeImageUrl);
  activeImageData    = new Array(activeImageObj);
  pictures           = pictures.concat(activeImageData);
}

function preLoad() {
  var preLoadedImgs = "";
  if (document.layers) {
    for (i=0; i<document.layers.length; i++) {
      for (j=0; j<document.layers[i].document.images.length; j++)  {
        if (document.layers[i].document.images[j].name) {
          if (preLoadedImgs.indexOf(document.layers[i].document.images[j].name) < 0) {
            var imgSrc = document.layers[i].document.images[j].src;
            if (!(/\-a\./.test(imgSrc))) {
              var tmpPrefix = imgSrc.substr(0,imgSrc.length-4);
              var tmpSuffix = imgSrc.substr(imgSrc.length-4,imgSrc.length-1);
              if (tmpSuffix == ".gif") {
                var tmpActiveSrc = tmpPrefix + "-a" + tmpSuffix;
                var IEFix = new activeImageConstructor(document.layers[i].document.images[j].name,document.layers[i].document.images[j].src,tmpActiveSrc);
                var tmpData = new Array(IEFix);
                pictures = pictures.concat(tmpData);
                preLoadedImgs = preLoadedImgs.concat(document.layers[i].document.images[j].name);
              }
            }
          }
        }
      }
    }
  }
  for (i=0; i <document.images.length; i++) {
    if (document.images[i].name) {
      if (preLoadedImgs.indexOf(document.images[i].name) < 0) {
        var imgSrc = document.images[i].src;
        if (!(/\-a\./.test(imgSrc))) {
          var tmpPrefix = imgSrc.substr(0,imgSrc.length-4);
          var tmpSuffix = imgSrc.substr(imgSrc.length-4,imgSrc.length-1);
          if (tmpSuffix == ".gif") {
            var tmpActiveSrc = tmpPrefix + "-a" + tmpSuffix;
            var IEFix = new activeImageConstructor(document.images[i].name,document.images[i].src,tmpActiveSrc);
            var tmpData = new Array(IEFix);
            pictures = pictures.concat(tmpData);
            preLoadedImgs = preLoadedImgs.concat(document.images[i].name);
          }
        }
      }
    }
  }
  preLoadIsComplete = true;
}

function chgclass(tagname,css) {
  if (!nn4) {
    if (ie4){eval("document.all."+tagname+".className='"+css+"'");}
    else    {eval("document.getElementById('"+tagname+"')"+".className='"+css+"'");}
  }
}


function changeImageSource(imageName,imageSource,layerName) {
  if(nn4 && layerName) {
    NSStyle(layerName).document.images[imageName].src = imageSource;
  }
  else {
    document.images[imageName].src = imageSource;
  }
}


function mouseOver(aPic,aLayer) {
  if (preLoadIsComplete) {
    for (i=0; i<pictures.length; i++) {
      if (pictures[i].name == aPic) {
        if(nn4 && aLayer) {
          NSStyle(aLayer).document.images[aPic].src = pictures[i].highLight.src;
        }
        else {
          document.images[aPic].src = pictures[i].highLight.src;
        }
      }
    }
  }
  else {
    preLoad();
  }
}


function mouseOut(aPic,aLayer) {
  oldImg = "";
  if (preLoadIsComplete) {
    for (i=0; i<pictures.length; i++) {
      if (pictures[i].name == aPic) {
        if(nn4 && aLayer) {
          NSStyle(aLayer).document.images[aPic].src = pictures[i].lowLight.src;
        }
        else {
          document.images[aPic].src = pictures[i].lowLight.src;
        }
      }
    }
  }
  else {
    preLoad();
  }
}


function setPermanentHigh(picName,layerName, dropLastPermanentHigh) {
  if (preLoadIsComplete) {

    if(dropLastPermanentHigh) dropPermanentHigh(lastPermanentHigh, layerName);
    lastPermanentHigh = picName;

    for (i=0; i<pictures.length; i++) {
      if (pictures[i].name == picName) {
        pictures[i].lowLight.src = pictures[i].highLight.src;
        if(nn4 && layerName) {
          NSStyle(layerName).document.images[picName].src = pictures[i].highLight.src;
        }
        else {
          document.images[picName].src = pictures[i].highLight.src;
        }
      }
    }
  }
  else {
    preLoad();
  }
}


function dropPermanentHigh(picName,layerName) {
  if (preLoadIsComplete) {
    for (i=0; i<pictures.length; i++) {
      if (pictures[i].name == picName) {
        pictures[i].lowLight.src = pictures[i].storeLight.src;
        if(nn4 && layerName) {
          NSStyle(layerName).document.images[picName].src = pictures[i].lowLight.src;
        }
        else {
          document.images[picName].src = pictures[i].lowLight.src;
        }
      }
    }
  }
  else {
    preLoad();
  }
}


function vSwitch(aLayer,aBool) {
  if (preLoadIsComplete) {
    if (document.all) {
      IEStyle(aLayer).visibility = (aBool == 0) ? "hidden" : "visible";
    }
    else {
      if (nn4) {
        NSStyle(aLayer).visibility = (aBool == 0) ? 'hide' : 'show';
      }
      else if (nn6) {
        document.getElementById(aLayer).style.visibility= (aBool == 0) ? "hidden" : "visible";
      }
    }
  }
  else {
    preLoad();
  }
}


function centerPopup(popup_name,popup_url,popup_with,popup_height,myWidth,myHeight,myScrollbar) {
  // add query string if local
  if(popup_url.substring(0,5) != "http:" && popup_url.indexOf("controller")==-1) popup_url += location.search;
  if(!myWidth) {myWidth = 10;}
  if(!myHeight){myHeight = 50;}
  if(!myScrollbar){myScrollbar = 0;}
  var popup_left = (window.screen.width/2)  - (popup_with/2 + myWidth);
  var popup_top  = (window.screen.height/2) - (popup_height/2 + myHeight);
  window.open(popup_url, popup_name,"toolbar=no,location=no,status=no,menubar=no,scrollbars=" + myScrollbar + ",resizable=no,width=" + popup_with + ",height=" + popup_height + ",left=" + popup_left + ",top=" + popup_top + ",screenX=" + popup_left + ",screenY=" + popup_top);
}



function loadPage(layerName,sourcePath,layerWidth) {
  if(!layerWidth) {layerWidth = 0;}
  iFrameName = layerName + "I";
  if (nn4) {
    NSStyle(layerName).load(sourcePath,layerWidth);
  }
  else if (ie4) {
    parent[iFrameName].location = sourcePath;
  }
  else {
    document.getElementById(iFrameName).src = sourcePath;
  }
}


function loadAllLayers(layerName,layerURL,thisLayerNumber) {
  loadPage(layerName,layerURL);
  thisLayerNumber++;
  checkLoading(layerName,thisLayerNumber);
}


function checkLoading(layerName,thisLayerNumber) {
  if(layerLoadingStatus[thisLayerNumber]) {
    initLayerLoad(thisLayerNumber);
  }
  else {
    setTimeout("checkLoading('"+layerName+"',"+thisLayerNumber+")",10);
  }
}


function initLayerLoad(thisLayerNumber) {
  numberOfLayers = layerNames.length;
  if(thisLayerNumber <= (numberOfLayers-1)) {
    loadAllLayers(layerNames[thisLayerNumber],layerURLs[thisLayerNumber],thisLayerNumber);
  }
}


function setLayerPosition(thisLayer,positionLeft,positionTop) {
  var unit = "";
  thisLayer = document.all ? document.all[thisLayer] : document.getElementById ? document.getElementById(thisLayer) : NSStyle(thisLayer);
  thisLayer = document.layers ? thisLayer : thisLayer.style;
  if(document.getElementById) {unit = "px";}
  thisLayer.left = positionLeft + unit;
  thisLayer.top  = positionTop + unit;
  return;
}


function getLayerInformation(thisLayer) {
  thisLayerPosition = new Array();
  thisLayer = document.all ? document.all[thisLayer] : document.getElementById ? document.getElementById(thisLayer) : NSStyle(thisLayer);
  thisLayerPosition[0] = document.layers ? thisLayer.top : thisLayer.offsetTop;
  thisLayerPosition[1] = document.layers ? thisLayer.left : thisLayer.offsetLeft;
  thisLayerPosition[2] = document.layers ? thisLayer.document.width : thisLayer.offsetWidth;
  thisLayerPosition[3] = document.layers ? thisLayer.document.height : thisLayer.offsetHeight;
  return(thisLayerPosition);
}


function getScreenInformation() {
  thisScreenInformation = new Array();
  thisScreenInformation[0] = screen.width;
  thisScreenInformation[1] = screen.height;
  thisScreenInformation[2] = screen.colorDepth;
  thisScreenInformation[3] = document.all ? document.body.offsetWidth  : window.innerWidth; //Innerer Anzeigebereich
  thisScreenInformation[4] = document.all ? document.body.offsetHeight : window.innerHeight; //Innerer Anzeigebereich
  return(thisScreenInformation);
}


function writeIntoLayer(thisLayer,layerContent) {
  if(ie4) {
    document.all.tags("div")[thisLayer].innerHTML = layerContent;
  }
  else if(nn4) {
    NSStyle(thisLayer).document.open("text/html");
    NSStyle(thisLayer).document.write(layerContent);
    NSStyle(thisLayer).document.close();
  }
  else {
    document.getElementById(thisLayer).innerHTML = layerContent;
  }
}


//Ergaenzung fuerr NS
//--Groesse des fensters bestimmen --//
var win_height = window.innerHeight;
var height_percent = (win_height/100);
var curr_width = window.innerWidth;
var curr_height = window.innerHeight;
var tmpTop = 0;
var tmpBottom = 0;
var allDefined = 0;
var checkTopHeight = true;
var checkBottomHeight = true;
var user_agent = window.navigator.userAgent;
//-- resize check   --//
function startTimeout(){
	timer = setTimeout('checkForResize()',1000);
}
//-- Aufruf der index.html mit entsprechendem Query - String nach Resize   --//
function checkForResize(){
	clearTimeout(timer);
	if ((window.innerWidth != curr_width) || (window.innerHeight != curr_height)){
	    tmpURL=location.href;
		window.location.href = tmpURL;
	}
	else
		startTimeout();
}
if(nn4){
    startTimeout()
}


