/** Version       : 1.2
  * Last modified : (K. Breynck) 29.02.2004
  * Author        : BBDO InterOne Hamburg (K. Breynck)
  * Copyright     : BMW Group 2002-2004
  *
  * 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.
  *
  **/

/*************************
 * START main navigation *
 *************************/
if ((document.layers) && (!location.query.nn4Refreshed)) {
 var nn4Param = ((location.query.mainMenuHighlight) ? "&nn4Refreshed=true" : "?nn4Refreshed=true" );
 self.location=self.location.href + nn4Param;
}

var screenResolution = (((window.screen) && (screen.width < 1024)) ? 800 : "");
var mainMenuHighlight;
var logoId;
var staticSatusDynLayer;
var staticStatus800DynLayer;
var dynamicStatusDynLayer;
var whiteLineDynLayer;
var whiteLineWidth     = 0;
var whiteLineMinWidth  = 581;
var whiteLineTolerance = 50;

var staticImageName;
var delay = 200;
var activeStatus;


function setLogo(){

  logoId = ((!location.query.logoId) ? -1 : location.query.logoId);

  if((logoId != -1) && (logoId < specialLogoData.length)) {
    logoDynLayer.setHTML('<img src="' + specialLogoData[logoId]["path"] + '" />');
  
    if (screenResolution != 800) {
      logoDynLayer.setX(specialLogoData[logoId]['x_1024']);
      logoDynLayer.setY(specialLogoData[logoId]['y_1024']);
    }else{
      logoDynLayer.setX(specialLogoData[logoId]['x_800']);
      logoDynLayer.setY(specialLogoData[logoId]['y_800']);
    }
  }
}


function initializeMiniMainNavigation() {

  for(i=0;i<mainNavigationData.length;i++){

    if((i==1) && (screenResolution == 800)) {
      pictures.addImage("dynamicStatusImage" + i, mainNavigationData[i]['dynamicStatus800Image'], mainNavigationData[i]['dynamicStatus800Image-a']);
    }
    else {
      pictures.addImage("dynamicStatusImage" + i, mainNavigationData[i]['dynamicStatusImage'], mainNavigationData[i]['dynamicStatusImage-a']);
    }
  }
  mainNavigationMenuDynLayer           = DynLayer.getInline("mainNavigationMenuLayer");
  staticSatusDynLayer                  = DynLayer.getInline("staticStatusLayer");
  staticStatus800DynLayer              = DynLayer.getInline("staticStatus800Layer");
  whiteLineDynLayer                    = DynLayer.getInline("whiteLineLayer");
  dynamicStatusDynLayer                = DynLayer.getInline("dynamicStatusLayer");
  closeNavigationDynLayer              = DynLayer.getInline("closeNavigationLayer");
  bgMainNavigationMenuDynLayer         = DynLayer.getInline("bgMainNavigationMenuLayer");
  logoDynLayer                         = DynLayer.getInline("logoLayer");

  if (screenResolution != 800) {
    staticImageName = "staticStatusImage";
    for (i=1; i<mainNavigationData.length; i++) {
      whiteLineWidth += ((document.layers) ? document.staticStatusLayer.document.images["" + staticImageName + i].width : document.images["staticStatusImage"+i].width);
    }
    staticSatusDynLayer.setVisible(1);
    whiteLineDynLayer.setX(176);
  } else {
    logoDynLayer.setY(35);
    staticImageName = "staticStatus800Image";
    for (i=1; i<mainNavigationData.length; i++) {
      whiteLineWidth += ((document.layers) ? document.staticStatus800Layer.document.images["" + staticImageName + i].width : document.images["staticStatus800Image"+i].width);
    }
    staticStatus800DynLayer.setVisible(1);
    whiteLineDynLayer.setX(0);
  }
  whiteLineWidth = ((whiteLineWidth  < (whiteLineMinWidth - whiteLineTolerance)) ?  whiteLineMinWidth : whiteLineWidth );
  whiteLineDynLayer.setHTML('<img src="' + rootpath + '/_common/_img/1x1_dddddd.gif" width="' + whiteLineWidth + '" height="1" />');

  preloadActiveImages();
  setMainNavigationMenuEntries();
  mainMenuHighlight = ((!location.query.mainMenuHighlight) ? 0 : location.query.mainMenuHighlight);
  if(mainMenuHighlight != 0) {
    mouseOver("staticStatus" + screenResolution + "Image" + mainMenuHighlight);
    writeMiniMainNavigation();
  }
  setLogo();
}

function getMainCategoryImagePositionX(imgName) {
 return ((document.layers) ? (document.getImageByName(imgName).x) : getAbsoluteLeft(document.images[imgName]));
}

function writeMiniMainNavigation(mainNavigationCategory) {
  dynamicStatusDynLayer.setVisible(0);
  if(!mainNavigationCategory) {
    if((mainMenuHighlight==1) && (screenResolution == 800)) {
      dynamicStatusDynLayer.setHTML('<a href="javascript://" class="cursorDefault" onmouseover="activeStatus=window.setTimeout(\'writeMiniMainNavigation(' + mainMenuHighlight + ')\',delay);self.status=\'\';return true;" onmouseout="window.clearTimeout(activeStatus);self.status=\'\';return true;" onfocus="this.blur()"><img src="' + mainNavigationData[mainMenuHighlight]["dynamicStatus800Image"] + '" border="0" name="dynamicStatusImage" id="dynamicStatusImage" /></a>');
    }
    else {
      dynamicStatusDynLayer.setHTML('<a href="javascript://" class="cursorDefault" onmouseover="activeStatus=window.setTimeout(\'writeMiniMainNavigation(' + mainMenuHighlight + ')\',delay);self.status=\'\';return true;" onmouseout="window.clearTimeout(activeStatus);self.status=\'\';return true;" onfocus="this.blur()"><img src="' + mainNavigationData[mainMenuHighlight]["dynamicStatusImage"] + '" border="0" name="dynamicStatusImage" id="dynamicStatusImage" /></a>');
    }

    dynamicStatusDynLayer.setX(getMainCategoryImagePositionX("" + staticImageName + mainMenuHighlight));
    whiteLineDynLayer.setVisible(0);
    closeNavigationDynLayer.setVisible(0);
    bgMainNavigationMenuDynLayer.setVisible(0);
    mainNavigationMenuDynLayer.setVisible(0);
    mainNavigationMenuDynLayer.setHTML(mainNavigationData[0]['finalString']);
  } else {
    mainNavigationMenuDynLayer.setHTML(mainNavigationData[mainNavigationCategory]['finalString']);
    if(mainNavigationCategory != 1) {
      dynamicStatusDynLayer.setHTML('<img src="' + mainNavigationData[mainNavigationCategory]["dynamicStatusImage-a"] + '" name="dynamicStatusImage" id="dynamicStatusImage" />');
      mainNavigationMenuDynLayer.setVisible(1);
      whiteLineDynLayer.setVisible(1);
    } else {
      if((screenResolution == 800)) {
        dynamicStatusDynLayer.setHTML('<a href="' + mainNavigationData[mainNavigationCategory]["homeUrl"] + '" target="' + mainNavigationData[mainNavigationCategory]["homeUrlTarget"] + '" onmouseover="self.status=\'' + mainNavigationData[mainNavigationCategory]["homeUrlStatus"] + '\';return true" onmouseout="self.status=\'\';return true" onfocus="this.blur();"><img src="' + mainNavigationData[mainNavigationCategory]["dynamicStatus800Image-a"] + '" border="0" name="dynamicStatusImage" id="dynamicStatusImage" /></a>');
      }
      else {
        dynamicStatusDynLayer.setHTML('<a href="' + mainNavigationData[mainNavigationCategory]["homeUrl"] + '" target="' + mainNavigationData[mainNavigationCategory]["homeUrlTarget"] + '" onmouseover="self.status=\'' + mainNavigationData[mainNavigationCategory]["homeUrlStatus"] + '\';return true" onmouseout="self.status=\'\';return true" onfocus="this.blur();"><img src="' + mainNavigationData[mainNavigationCategory]["dynamicStatusImage-a"] + '" border="0" name="dynamicStatusImage" id="dynamicStatusImage" /></a>');
      }

      mainNavigationMenuDynLayer.setVisible(0);
      whiteLineDynLayer.setVisible(0);
    }
    dynamicStatusDynLayer.setX(getMainCategoryImagePositionX("" + staticImageName + mainNavigationCategory));
    bgMainNavigationMenuDynLayer.setVisible(1);
    closeNavigationDynLayer.setVisible(1);
  }
  dynamicStatusDynLayer.setVisible(1);
}

function setMainNavigationMenuEntries() {
  for (var i=2; i<mainNavigationData.length; i++ ) {
    for (var j=0; j<mainNavigationData[i].length; j++) {
      if(!mainNavigationData[i][j]['break']) {
        mainNavigationData[i]['finalString'] += '<span class="font11line13"><a href="' + mainNavigationData[i][j]["navUrl"] + '" class="colora9a9a9-ffffff" target="' + mainNavigationData[i][j]["navTarget"] + '" onmouseover="self.status=\'' + mainNavigationData[i][j]["navStatus"] + '\';return true" onmouseout="self.status=\'\';return true" onfocus="this.blur();">' + mainNavigationData[i][j]['navText'] + '</a></span><img src="' + rootpath + '/_common/_img/1x1_trans.gif" width="20" height="1" />';
      } else {
        mainNavigationData[i]['finalString'] += '<br /><img src="' + rootpath + '/_common/_img/1x1_trans.gif" width="1" height="3" /><br />';
      }
    }
    mainNavigationData[i]['finalString'] += '<br />';
  }
}
/***********************
 * END main navigation *
 ***********************/

/***************************
 * START module navigation *
 ***************************/
var navDataPath      = new Array();
var navDataFinalPath = new Array();
var successStatus    = false;

function getNavigationDataPath(menuData,menuIndex,menuIndexLevel) {
  for (var i=0; i < menuData.length; i++) {
		if (!successStatus) {
			menuIndex[menuIndexLevel] = i;
			if (menuData[i]['navUniqueID'] == navUniqueID) {
				successStatus  = true;
			} else {
				if (menuData[i].length>0) {
		  		getNavigationDataPath(menuData[i],menuIndex,menuIndexLevel + 1);
				}
		  }
		}
	}
  if (!successStatus ) {
		menuIndex[menuIndexLevel] = null;
	}
  for (var j=0; j<menuIndex.length; j++) {
  	if (menuIndex[j] != null && successStatus) {
  		navDataFinalPath[j] = menuIndex[j];
  	}
  }
	return navDataFinalPath;
}

var moduleNavigationDynLayer;

function writeMiniModuleNavigation(navFontFace, navFontColor, striplineColor) {
  var moduleNavHiColor        = "color" + navFontColor.substr(12,6);
  var teaserLinkHeadlineColor = navFontColor.substr(0,11);
  var striplineColor          = ((striplineColor) ? striplineColor : "666666");
  var moduleNavigation        = '';

  moduleNavigation         += '<table cellpadding="0" cellspacing="0" width="166" border="0">';
  
  navHeaderData["navUrl"]   = ((navHeaderData["navAddParam"]) ? navHeaderData["navUrl"].split("?")[0] + '?' + navHeaderData["navAddParam"] : navHeaderData["navUrl"]);
  navHeaderData["navUrl"]   = ((navHeaderData["navUrl"].split("?")[0].indexOf("javascript:") != -1) ? navHeaderData["navUrl"] : rootpath + navHeaderData["navUrl"]);

//  START Module navigation headline
  moduleNavigation         += '  <tr>';
  moduleNavigation         += '    <td valign="top" width="10"><img src="'+ rootpath +'/_common/_img/1x1_trans.gif" width="10" height="4" /><br /><img src="'+ rootpath +'/_common/_img/1x1_trans.gif"  width="3"   height="5" /><img src="'+ rootpath +'/_common/_img/arrow_3x5_trans_' + navFontColor.substr(12,6) + '.gif" width="3" height="5" id="ArrowNavHeader" name="ArrowNavHeader" /></td>';
  moduleNavigation         += '    <td width="156"><span class="' + navFontFace + '"><a href="' + navHeaderData["navUrl"] + '" target="_self" onmouseover="mouseOver(\'ArrowNavHeader\');self.status=\''+ navHeaderData["navStatus"] + '\';return true;" onmouseout="mouseOut(\'ArrowNavHeader\');self.status=\'\';return true;" class="' + moduleNavHiColor + '" /*title="' + navHeaderData["navText"] + '"*/ onfocus="this.blur();">' + navHeaderData["navText"] + '</a><br /></span><img src="'+ rootpath +'/_common/_img/1x1_trans.gif" width="1" height="4" /></td>';
  moduleNavigation         += '  </tr>';
  moduleNavigation         += '  <tr>';
  moduleNavigation         += '    <td></td>';
  moduleNavigation         += '    <td>';
  moduleNavigation         += '      <img src="'+ rootpath +'/_common/_img/1x1_trans.gif" width="1" height="1" /><br />';
  moduleNavigation         += '      <img src="'+ rootpath +'/_common/_img/1x1_' + striplineColor + '.gif" width="156" height="1" /><br />';
  moduleNavigation         += '      <img src="'+ rootpath +'/_common/_img/1x1_trans.gif" width="1" height="6" /><br />';
  moduleNavigation         += '    </td>';
  moduleNavigation         += '  </tr>';
//  END Module navigation headline


// START Module navigation body
  getNavigationDataPath(navMainData,navDataPath,0);//  Get actual path for the highlighting

  if (navMainData.length > 0) {
    moduleNavigation       += getModuleNavigationBody(navMainData,0,"Nav",navFontFace,navFontColor);
  }

  moduleNavigationBody = '';
// END Module navigation body


// START Content related topics
  if (navTeaserLinkData.length > 0) {
    if (navMainData.length > 0) {
      moduleNavigation     += '  <tr>';
      moduleNavigation     += '    <td></td>';
      moduleNavigation     += '    <td>';
      moduleNavigation     += '      <img src="'+ rootpath +'/_common/_img/1x1_trans.gif" width="1" height="1" /><br />';
      moduleNavigation     += '      <img src="'+ rootpath +'/_common/_img/1x1_' + striplineColor + '.gif" width="156" height="1" /><br />';
      moduleNavigation     += '      <img src="'+ rootpath +'/_common/_img/1x1_trans.gif" width="1" height="6" /><br />';
      moduleNavigation     += '    </td>';
      moduleNavigation     += '  </tr>';
    }

    moduleNavigation       += '  <tr>';
    moduleNavigation       += '    <td valign="top" width="10"><img src="'+ rootpath +'/_common/_img/1x1_trans.gif" width="10" height="1" /></td>';
    moduleNavigation       += '    <td valign="top">';
    moduleNavigation       += '      <img src="'+ rootpath +'/_common/_img/1x1_trans.gif" width="1" height="22" /><br />';
    moduleNavigation       += '      <table cellpadding="0" cellspacing="0" border="0">';
    moduleNavigation       += '        <tr>';
    moduleNavigation       += '          <td valign="top" width="156" colspan="2"><span class="' + navFontFace + 'bold"><span class="' + teaserLinkHeadlineColor + '">' + navTeaserLinkData["navHeadline"] + '</span><br /></span><img src="'+ rootpath +'/_common/_img/1x1_trans.gif" width="1" height="5" /></td>';
    moduleNavigation       += '        </tr>';

    for (var i=0; i<navTeaserLinkData.length ; i++) {
      var tempUrlSubString = navTeaserLinkData[i]["navUrl"].split("?")[0];
      if (!navTeaserLinkData[i]['navTarget']) {
        if (tempUrlSubString.indexOf("javascript:") != -1) {
          navTeaserLinkData[i]['navTarget'] = '_self';
        }
        else {
          if ((tempUrlSubString.indexOf("://") != -1)) {
            navTeaserLinkData[i]['navTarget'] = '_blank';
          }
          else {
              navTeaserLinkData[i]['navTarget'] = '_self';
              navTeaserLinkData[i]["navUrl"] = rootpath + navTeaserLinkData[i]["navUrl"];
          }
        }
      }
      else {
        if (tempUrlSubString.indexOf("://") == -1) {
          navTeaserLinkData[i]["navUrl"] = rootpath + navTeaserLinkData[i]["navUrl"];
        }
      }

      navTeaserLinkData[i]["navUrl"]  = ((navTeaserLinkData[i]["navAddParam"]) ? navTeaserLinkData[i]["navUrl"].split("?")[0] + '?' + navTeaserLinkData[i]["navAddParam"] : navTeaserLinkData[i]["navUrl"].split("?")[0] + '?');
      navTeaserLinkData[i]["navUrl"] += 'refType=teaserLink&refPage=' + serverRelativeUrl;
      
      moduleNavigation     += '        <tr>';
      moduleNavigation     += '          <td valign="top" width="11"><img src="'+ rootpath +'/_common/_img/1x1_trans.gif" width="1" height="4" /><br /><img src="'+ rootpath +'/_common/_img/arrow_3x5_' + navFontColor.substr(5,6) +'_' + navFontColor.substr(12,6) + '.gif" width="3" height="5" id="QuickNav' + i + '" name="QuickNav' + i + '" /></td>';
      moduleNavigation     += '          <td width="145"><span class="' + navFontFace + '"><a href="' + navTeaserLinkData[i]["navUrl"] + '" target="' + navTeaserLinkData[i]["navTarget"] + '" onmouseover="mouseOver(\'QuickNav' + i + '\');self.status=\'' + navTeaserLinkData[i]["navStatus"] + '\';return true;" onmouseout="mouseOut(\'QuickNav' + i + '\');self.status=\'\';return true;" class="' + navFontColor + '" /*title="' + navTeaserLinkData[i]["navText"] + '"*/ onfocus="this.blur();">' + navTeaserLinkData[i]["navText"] + '</a><br /></span><img src="'+ rootpath +'/_common/_img/1x1_trans.gif" width="1" height="3" /></td>';
      moduleNavigation     += '        </tr>';
    }

    moduleNavigation       += '      </table>';
    moduleNavigation       += '    </td>';
    moduleNavigation       += '  </tr>';
  }
// END Content related topics

  moduleNavigation         += '</table>';

  moduleNavigationDynLayer = DynLayer.getInline("moduleNavigationLayer");
  moduleNavigationDynLayer.setHTML(moduleNavigation);
}



var moduleNavigationBody = '';

function getModuleNavigationBody(menuData,menuIndexLevel,arrowImgName,navFontFace,navFontColor,lastEntryValue) {
  var moduleNavHiColor = "color"+navFontColor.substr(12,6);

  moduleNavigationBody     += '  <tr>';
  moduleNavigationBody     += '    <td valign="top" width="10"><img src="'+ rootpath +'/_common/_img/1x1_trans.gif" width="10" height="11" /></td>';
  moduleNavigationBody     += '    <td valign="top">';
  moduleNavigationBody     += '      <table cellpadding="0" cellspacing="0" border="0">';

  for (var i=0; i<menuData.length ; i++) {

    var tempUrlSubString = menuData[i]["navUrl"].split("?")[0];
  
    if (!menuData[i]['navTarget']) {
      if (tempUrlSubString.indexOf("javascript:") != -1) {
        menuData[i]['navTarget'] = '_self';
      }
      else {
        if ((tempUrlSubString.indexOf("://") != -1)) {
          menuData[i]['navTarget'] = '_blank';
        }
        else {
          menuData[i]['navTarget'] = '_self';
          menuData[i]["navUrl"] = rootpath + menuData[i]["navUrl"];
        }
      }
    }
    else {
      if (tempUrlSubString.indexOf("://") == -1) {
        menuData[i]["navUrl"] = rootpath + menuData[i]["navUrl"];
      }
    }
    
    menuData[i]["navUrl"] = ((menuData[i]["navAddParam"]) ? menuData[i]["navUrl"].split("?")[0] + '?' + menuData[i]["navAddParam"] : menuData[i]["navUrl"]);

    moduleNavigationBody   += '        <tr>';
    moduleNavigationBody   += '          <td valign="top" width="11"><img src="'+ rootpath +'/_common/_img/1x1_trans.gif" width="11" height="4" /><br /><img src="'+ rootpath +'/_common/_img/arrow_3x5_trans_' + navFontColor.substr(12,6) + '.gif" width="3" height="5" id="' + arrowImgName+i + '" name="' + arrowImgName+i + '" /></td>';

    if (navDataFinalPath[menuIndexLevel] == i || menuData[i]['navUniqueID'] == navUniqueID) {
      moduleNavigationBody += '          <td><span class="' + navFontFace + '"><a href="' + menuData[i]["navUrl"] + '" target="' + menuData[i]["navTarget"] + '" onmouseover="mouseOver(\'' + arrowImgName+i + '\');self.status=\'' + menuData[i]["navStatus"] + '\';return true;" onmouseout="mouseOut(\'' + arrowImgName+i + '\');self.status=\'\';return true;" class="' + moduleNavHiColor + '" /*title="' + menuData[i]["navText"] + '"*/ onfocus="this.blur();">' + menuData[i]["navText"] + '</a><br /></span><img src="'+ rootpath +'/_common/_img/1x1_trans.gif" width="1" height="4" /></td>';
      moduleNavigationBody += '        </tr>';
      if (menuData[i].length > 0) {
        getModuleNavigationBody(menuData[i],menuIndexLevel+1,arrowImgName+i+"Sub",navFontFace,navFontColor,((i+1) >= menuData.length));
      }
    }
    else {
      moduleNavigationBody += '          <td><span class="' + navFontFace + '"><a href="' + menuData[i]["navUrl"] + '" target="' + menuData[i]["navTarget"] + '" onmouseover="mouseOver(\'' + arrowImgName+i + '\');self.status=\'' + menuData[i]["navStatus"] + '\';return true;" onmouseout="mouseOut(\'' + arrowImgName+i + '\');self.status=\'\';return true;" class="' + navFontColor + '" /*title="' + menuData[i]["navText"] + '"*/ onfocus="this.blur();">' + menuData[i]["navText"] + '</a><br /></span><img src="'+ rootpath +'/_common/_img/1x1_trans.gif" width="1" height="4" /></td>';
      moduleNavigationBody += '        </tr>';
    }

  }
  if ((menuIndexLevel != 0) && !(lastEntryValue)) {
      moduleNavigationBody += '        <tr>'
      moduleNavigationBody += '          <td colspan="2"><img src="'+ rootpath +'/_common/_img/1x1_trans.gif" width="1" height="9" /></td>'
      moduleNavigationBody += '        </tr>'
  }
  moduleNavigationBody     += '      </table>';
  moduleNavigationBody     += '    </td>';
  moduleNavigationBody     += '  </tr>';

	return moduleNavigationBody;
}
/*************************
 * END module navigation *
 *************************/

 /************************
 * START meta navigation *
 *************************/
 /**********************
 * END meta navigation *
 ***********************/