// take care variables are definitly defined
var technologyguideDatabasePath = false;
var confCountryTopic  = null;
var confLanguageTopic = null;
var modulnavHeightTeasermode = 274;

// Country-Language
confCountryId  = "JM";
confLanguageId = "en";

// Perso Engine
confPersoEngineEnabled = false;
// confPersoEnginePid = 	"";
// confPersoEngineEventController = "";
// confPersoEngineProfileController = "";

// Perso Engine + SILO
confPersoEngineSSOEnabled = false;
confPersoEngineSSOController = "?pid=&sys=&lan=en";
// confPersoSsoSalutation = "";
// confPersoSsoLogin = "";
// confPersoSsoLogout = "";

// Tracking
confTrackingEnabled = true;
gDcsId  = "dcsoudq7000000cx1d9je0raa_2q2o";
gDomain = "-";

// Browser Check
confBrowserCheckEnabled = false;
confBrowserCheckHighendEnabled = false;
confIncompatibleBrowserUrl  = "/jm/en/general/incompatible.html";

// Technology Guide
technologyguideEnabled = false;
// technologyguideDatabasePath = "";

// SEO
seoEnabled = true;

// ID-Modules
confIdModuleImage = "/jm/en/_common/shared/img/id_moduls.png";
confIdModuleImageGrey = "/jm/en/_common/shared/img/id_moduls_grey.png";
confIdModuleImageService = "/jm/en/_common/shared/img/id_moduls_service.png";
// confIdModuleImageFinance = "";

// Height Of Modulnavigation
modulnavHeightTeasermode = 274;

// Date format
confDateFormat = "DD.MM.YYYY";

// Price and hundreds delimiter
confPriceDelimiter    = ".";
confHundredsDelimiter = ",";

// Topnavi X displayed
topnaviXenabled = "false";

// tracking page urls
var trackingPages=new Array();
trackingPages["download"] = new Array("/jm/en/_common/shared/tracking_redirect/download.html", "download");
trackingPages["external"] = new Array("/jm/en/_common/shared/tracking_redirect/external.html", "external");
trackingPages["small_standard"] = new Array("/jm/en/_common/shared/tracking_redirect/teaser_small_standard.html", "teaser_small_standard");
trackingPages["large"] = new Array("/jm/en/_common/shared/tracking_redirect/teaser_large.html", "teaser_large");
trackingPages["main"] = new Array("/jm/en/_common/shared/tracking_redirect/teaser_main.html", "teaser_main");
trackingPages["small_text"] = new Array("/jm/en/_common/shared/tracking_redirect/teaser_small_text.html", "teaser_small_text");
trackingPages["medium_label"] = new Array("/jm/en/_common/shared/tracking_redirect/teaser_medium_label.html", "teaser_medium_label");
trackingPages["click_event"] = new Array("/jm/en/_common/shared/tracking_redirect/click_event.html", "click_event");
trackingPages["3seriestouring"] = new Array("/jm/en/_common/shared/tracking_redirect/experience/3seriestouring.html", "3seriestouring");
trackingPages["quicklinks"] = new Array("/jm/en/_common/shared/tracking_redirect/quicklinks.html", "quicklinks");
trackingPages["bandwidth"] = new Array("/jm/en/_common/shared/tracking_redirect/bandwidth.html", "bandwidth");


//Bandwidth layer
var bandwidth_bottomnavi_link_high = "Broadband content";
var bandwidth_bottomnavi_link_low = "Modem/ISDN content";
var bandwidth_headline_high = "Display content for broadband connections.";
var bandwidth_copy_high = "The international BMW website including a wide range of video sequences, animations and music - ideal for broadband and DSL connections. Please note that if you are using a modem or ISDN connection, loading broadband content will take considerably longer.";
var bandwidth_link_high = "Display content for broadband connections";
var bandwidth_headline_low = "For modem and ISDN connections.";
var bandwidth_copy_low = "The international BMW website including all images and information but without any music or video sequences - ideal for modem and ISDN connections.";
var bandwidth_link_low = "Display content for modem and ISDN connections";
var bandwidth_save_headline = "Set internet connection";
var bandwidth_save_copy = "Always display the following content:";
var bandwidth_save_button = "Save";
var bandwidth_save_select = "Please select";
var bandwidth_save_highband = "Broadband content";
var bandwidth_save_lowband = "Modem/ISDN content";
var bandwidth_save_auto = "Check automatically";
var bandwidth_save_confirm = "Your internet connection has been saved.";
var bandwidth_save_error_no_selection = "Please select a content version.";
var bandwidth_save_error_no_cookies = "Sorry, we are unable to save your settings as your browser does not allow cookies.";

// enhanced bandwidth detection
var enhanced_bandwidth_detection = false;
var enhanced_bandwidth_detection_threshold = "1000";

// share
var share_services_active = false;
// var share_services_headline = "";
var share_services = new Array();
var useAsWhitelist = false;
var initialTimer = 720000;
var onceActiveTimer = 720000;
var trackingLanguage = "en";
var trackingCountry = "jm";
var swfUrl = "/_common/shared/website_screensaver/website_screensaver_joy.swf";
var effDynUrl = "/jm/en/insights/technology/joy/bmw_joy.html";
var effDynTarget = "";
var effDynUrl2 = "";
var effDynTarget2 = "";
var urlList = new Array();
urlList[0] = "/en/newvehicles/1series/1series/2004/experience";
urlList[1] = "/en/newvehicles/1series/3door/2007/experience";
urlList[2] = "/en/newvehicles/1series/5door/2007/experience";
urlList[3] = "/en/newvehicles/1series/convertible/2007/experience";
urlList[4] = "/en/newvehicles/1series/coupe/2007/experience";
urlList[5] = "/en/newvehicles/3series/convertible/2004/experience";
urlList[6] = "/en/newvehicles/3series/convertible/2006/experience";
urlList[7] = "/en/newvehicles/3series/convertible/2007/experience";
urlList[8] = "/en/newvehicles/3series/coupe/2004/experience";
urlList[9] = "/en/newvehicles/3series/coupe/2006/experience";
urlList[10] = "/en/newvehicles/3series/sedan/2005/experience";
urlList[11] = "/en/newvehicles/3series/touring/2005/experience";
urlList[12] = "/en/newvehicles/5series/sedan/2004/experience";
urlList[13] = "/en/newvehicles/5series/sedan/2007/experience";
urlList[14] = "/en/newvehicles/5series/touring/2004/experience";
urlList[15] = "/en/newvehicles/5series/touring/2007/experience";
urlList[16] = "/en/newvehicles/6series/convertible/2004/experience";
urlList[17] = "/en/newvehicles/6series/convertible/2007/experience";
urlList[18] = "/en/newvehicles/6series/coupe/2004/experience";
urlList[19] = "/en/newvehicles/6series/coupe/2007/experience";
urlList[20] = "/en/newvehicles/7series/sedan/2005/experience";
urlList[21] = "/en/newvehicles/mseries/m3convertible/2004/experience";
urlList[22] = "/en/newvehicles/mseries/m3convertible/2008/experience";
urlList[23] = "/en/newvehicles/mseries/m3coupe/2004/experience";
urlList[24] = "/en/newvehicles/mseries/m3coupe/2007/experience";
urlList[25] = "/en/newvehicles/mseries/m5/2004/experience";
urlList[26] = "/en/newvehicles/mseries/m5/2007/experience";
urlList[27] = "/en/newvehicles/mseries/m5touring/2007/experience";
urlList[28] = "/en/newvehicles/mseries/m6/2004/experience";
urlList[29] = "/en/newvehicles/mseries/m6convertible/2006/experience";
urlList[30] = "/en/newvehicles/mseries/z4mcoupe/2006/experience";
urlList[31] = "/en/newvehicles/mseries/z4mroadster/2005/experience";
urlList[32] = "/en/newvehicles/mseries/m3sedan/2007/experience";
urlList[33] = "/en/newvehicles/x3/x3/2006/experience";
urlList[34] = "/en/newvehicles/x5/x5/2004/experience";
urlList[35] = "/en/newvehicles/x5/x5/2006/experience";
urlList[36] = "/en/newvehicles/z4/coupe/2006/experience";
urlList[37] = "/en/newvehicles/z4/roadster/2006/experience";
urlList[38] = "/en/newvehicles/x6/x6/2007/experience";
var screensaverTimer = null;
var permanentHidden = false;
var allowScreensaver = false;
var activeTimer = initialTimer;
var locationIsPortal = false;
var showSecondVideo = false;
var expireDate = new Date();
expireDate.setTime(expireDate.getTime() + 30 * 24 * 60 * 60 * 1000);
expireDate = expireDate.toGMTString();

if((window.location.pathname == "/")||(window.location.pathname.indexOf("/index_en.html") != -1)||(window.location.pathname.indexOf("/index_de.html") != -1)){
  locationIsPortal = true;
}

function startScreensaver(){
  if(!useAsWhitelist){
    allowScreensaver = true;
  }
  for (var i = 0; i < urlList.length; ++i){
    if(useAsWhitelist){
      if(self.location.href.indexOf(urlList[i]) != -1){
        allowScreensaver = true;
      }
    }else{
      if(self.location.href.indexOf(urlList[i]) != -1){
        allowScreensaver = false;
      }
    }
  }

  if(allowScreensaver){
    var screensaverCookieValue = getCookieValue("screensaver");
    if(screensaverCookieValue == undefined){
      setCookie("screensaver", 0, expireDate, "/");
      screensaverCookieValue = 0;
    }
    if(screensaverCookieValue != -1){
      if(screensaverCookieValue == 1){
        activeTimer = onceActiveTimer;
      }
      document.onmousemove = mouseMoveTest;
      screensaverTimer = window.setTimeout('showScreensaver()', activeTimer);
    }
  }
}

function mouseMoveTest(){
  window.clearTimeout(screensaverTimer);
  screensaverTimer = window.setTimeout('showScreensaver()', activeTimer);
}

function showScreensaver(){
  showSecondVideo = false;
  if(effDynUrl2 != "" && screensaverContent['links'].length == 4 && screensaverContent['texts'].length == 8 && (Math.random()*10 > 5)){
    showSecondVideo = true;
  }
  if(isCookiesEnabled()){
    setCookie("screensaver", 1, expireDate, "/");
  }
  window.clearTimeout(screensaverTimer);
  document.onmousemove = null;

  document.getElementsByTagName("body")[0].style.overflow = "hidden";

  var newDiv = document.createElement("div");
  newDiv.id = "websiteScreensaverContent";
  newDiv.style.position = "absolute";
  newDiv.style.top = "0px";
  newDiv.style.left = "0px";
  newDiv.style.width = "100%";
  newDiv.style.height = "100%";
  newDiv.style.zindex = "1000";
  document.getElementsByTagName("body")[0].appendChild(newDiv);
  setZIndex("websiteScreensaverContent", 1000);

  var teaserSWFObject = new SWFObject(buildValidServerRelativeUrl(swfUrl), "quickwins", "100%", "100%", "9.0.45");
  teaserSWFObject.addParam("allowScriptAccess", "sameDomain");
  teaserSWFObject.addParam("wmode", "transparent");
  teaserSWFObject.addParam("quality", "BEST");
  teaserSWFObject.addVariable("prm_version",(highbandUser)?"high":"low");
  teaserSWFObject.addVariable("prm_country",confCountryTopic.toUpperCase());
  teaserSWFObject.addVariable("prm_language",confLanguageTopic);
  teaserSWFObject.addVariable("prm_idmodule", confIdModuleImage);
  teaserSWFObject.addVariable("prm_components", "/_common/flash/components/bmw_as3_components_1_2.swf");

  if(teaserSWFObject.write("websiteScreensaverContent")){
    window.scrollTo(0,0);
    activeTimer = onceActiveTimer;
    window.setTimeout('setVisibility("outerDiv", null, "none")', 1000);
    setVisibility("metaNavigation", null, "none");
  }else{
    document.getElementsByTagName("body")[0].removeChild(document.getElementsByTagName("body")[0].lastChild);
  }
  if(!locationIsPortal){
    trackTeaserClick("/" + trackingCountry + "/" + trackingLanguage + "/bmw_efficientdynamics_mode/start.html", "start", "start_energy_saving_mode");
  }else{
    trackTeaserClick("/" + trackingCountry + "/" + trackingLanguage + "/portal/bmw_efficientdynamics_mode/start.html", "start", "start_energy_saving_mode");
  }
}

function hideScreensaver(permanentHide){
  if(permanentHide){
    if(isCookiesEnabled()){
      setCookie("screensaver", -1, expireDate, "/");
      if(!locationIsPortal){
        trackTeaserClick("/" + trackingCountry + "/" + trackingLanguage + "/bmw_efficientdynamics_mode/stop_permanently.html", "stop_permanently", "stop_energy_saving_mode_permanently");
      }else{
        trackTeaserClick("/" + trackingCountry + "/" + trackingLanguage + "/portal/bmw_efficientdynamics_mode/stop_permanently.html", "stop_permanently", "stop_energy_saving_mode_permanently");
      }
    }
  }else{
    if(!locationIsPortal){
      trackTeaserClick("/" + trackingCountry + "/" + trackingLanguage + "/bmw_efficientdynamics_mode/stop.html", "stop", "stop_energy_saving_mode");
    }else{
      trackTeaserClick("/" + trackingCountry + "/" + trackingLanguage + "/portal/bmw_efficientdynamics_mode/stop.html", "stop", "stop_energy_saving_mode");
    }
  }
  permanentHidden = permanentHide;
  document.getElementsByTagName("body")[0].removeChild(document.getElementsByTagName("body")[0].lastChild);
  document.getElementsByTagName("body")[0].style.overflow = "";
  setVisibility("metaNavigation", null, "block");
  setVisibility("outerDiv", null, "block");
  startScreensaver();
}

function callEffDynUrl(permanentHide){
  var currentUrl = effDynUrl;
  var currentTarget = effDynTarget;
  if(showSecondVideo){
    currentUrl = effDynUrl2;
    currentTarget = effDynTarget2;
  }
  permanentHidden = permanentHide;
  document.getElementsByTagName("body")[0].removeChild(document.getElementsByTagName("body")[0].lastChild);
  document.getElementsByTagName("body")[0].style.overflow = "";
  setVisibility("metaNavigation", null, "block");
  setVisibility("outerDiv", null, "block");
  if(!locationIsPortal){
    trackTeaserClick("/" + trackingCountry + "/" + trackingLanguage + "/bmw_efficientdynamics_mode/next.html", "next", "more_about_bmw_efficientdynamics");
  }else{
    trackTeaserClick("/" + trackingCountry + "/" + trackingLanguage + "/portal/bmw_efficientdynamics_mode/next.html", "next", "more_about_bmw_efficientdynamics");
  }
  if(currentTarget == ""){
    self.location.href = buildValidServerRelativeUrl(currentUrl) + "?prm_theme_id=skip";
  }else{
    effDynWindow = window.open(currentUrl, currentTarget);
  }
}

if(window.addEventListener){
  window.addEventListener("load", startScreensaver, true);
}else if(window.attachEvent){
  window.attachEvent("onload", startScreensaver);
}

function getScreensaverContent() {
  var currentContent = new Object();
  currentContent['links'] = new Array();
  currentContent['texts'] = new Array();
  currentContent['links'][0] = screensaverContent['links'][0];
  currentContent['links'][1] = screensaverContent['links'][1];
  currentContent['texts'][0] = screensaverContent['texts'][0];
  currentContent['texts'][1] = screensaverContent['texts'][1];
  currentContent['texts'][2] = screensaverContent['texts'][2];
  currentContent['texts'][3] = screensaverContent['texts'][3];
  if(showSecondVideo){
    currentContent['links'][0] = screensaverContent['links'][2];
    currentContent['links'][1] = screensaverContent['links'][3];
    currentContent['texts'][0] = screensaverContent['texts'][4];
    currentContent['texts'][1] = screensaverContent['texts'][5];
    currentContent['texts'][2] = screensaverContent['texts'][6];
    currentContent['texts'][3] = screensaverContent['texts'][7];
  }
  return currentContent;
}

screensaverContent = new Object();
screensaverContent['links'] = new Array();
screensaverContent['links'][0] = '/_common/shared/website_screensaver/website_screensaver_joy_2010_image.jpg';
screensaverContent['links'][1] = '/_common/shared/website_screensaver/website_screensaver_joy_2010_video_en.flv';
screensaverContent['texts'] = new Array();
screensaverContent['texts'][0] = 'JOY IS BMW.'
screensaverContent['texts'][1] = 'More joy'
screensaverContent['texts'][2] = 'Back'
screensaverContent['texts'][3] = 'Switch off the screensaver'

