// Multi Location : used to autoload and show language, location, and currency
// Created by: Troy Lawson 7/29/2008
// Modified: 12/23/2010

  var http_request = false;
  
  function postRequest(url, parameters) {
    http_request = false;
    if (window.XMLHttpRequest) {         // Mozilla, Safari,...
     http_request = new XMLHttpRequest();
     if (http_request.overrideMimeType) {
      // set type accordingly to anticipated content type
      //http_request.overrideMimeType('text/xml');
      http_request.overrideMimeType('text/html');
     }
    } else if (window.ActiveXObject) {     // IE
     try {
      http_request = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
      try {
        http_request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {}
     }
    }
    if (!http_request) {
     alert('Cannot create XMLHTTP instance');
     return false;
    }
      
    http_request.onreadystatechange = alertContents;
    http_request.open('POST', url, false);
    http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http_request.setRequestHeader("Content-length", parameters.length);
    http_request.setRequestHeader("Connection", "close");
    http_request.send(parameters);
  }
  
  function alertContents() {
    if (http_request.readyState == 4) {
     if (http_request.status == 200) {
      //alert(http_request.responseText);
      result = http_request.responseText;           
     } else {
      alert('There was a problem with the request.');
     }
    }
  }
  
  function getCookie(c_name) {
    if (document.cookie.length>0) {
      c_start=document.cookie.indexOf(c_name + "=");
      if (c_start!=-1) { 
        c_start=c_start + c_name.length+1; 
        c_end=document.cookie.indexOf(";",c_start);
        if (c_end==-1) c_end=document.cookie.length;
        
        return unescape(document.cookie.substring(c_start,c_end));
      } 
    }
    return "";
  }
  
  function setCookie(c_name,value,expiredays) {
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +escape(value)+
    ((expiredays==null) ? "" : ";expires="+exdate.toUTCString());
  }

  var timeOutValue = 300, overRideTimeOutValue = 1000;
  var bkbcurrency = getCookie("bkbcurrency");
  var bkbcountry = getCookie("bkbcountry");
  var bkblocation = getCookie("bkblocation");
  var bkblanguage = getCookie("bkblanguage");
  var bkbNS = getCookie("bkbNS");              // Have the above been set in Netsuite?
  
  function checkCounter() {              // Counter used to break endless loop if timeout is set too low
    var bkbcounter = getCookie("bkbcounter") * 1;

    if (bkbcounter == "") {
      setCookie('bkbcounter','1',1);    
    } else if (bkbcounter < 3) {
      bkbcounter+= 1;
      setCookie('bkbcounter',bkbcounter,1);  
    } else if (bkbcounter < 4) {
      timeOutValue = overRideTimeOutValue;
      bkbcounter+= 1;
      setCookie('bkbcounter',bkbcounter,1);  
    } else {
      // Break loop and give default values  
      bkbcounter+= 1;
      setCookie('bkbcounter',bkbcounter,1);    
      setCookie('bkbcurrency','USD',1000);
      setCookie('bkbcountry','US',1000);
      setCookie('bkblocation','United States',1000);
      setCookie('bkblanguage','en',1000);
      setCookie('bkbNS','Netsuite Set',6);
    }
  }

  function checkCookies() {
  
    if ( bkblanguage == "" || bkblocation == "" || bkbcountry == ""  || bkbcurrency == "" ) {
      
      getLanguage();
      setLanguage();
      
      getLocationCountryCurrency();
      setLocationCountryCurrency();
      
      setBKBNS();      
        
    } else if ( bkbNS == "" ) {   //Load saved settings into Netsuite
      setLanguage();
      setLocationCountryCurrency();
      setBKBNS();
    }
  }

  function getLocationCountryCurrency() {
    //<script type='text/javascript' src='http://www.google.com/jsapi?key=ABQIAAAAx_E31_JbMu3YFXIbkN7AVxRQkeXyjjJDNKYQRMUhWnuDEqdeoxQdoqK_9ArWdwKdN_vxKHtE17YL5A'></script>

    if(google.loader.ClientLocation) {
      bkblocation = google.loader.ClientLocation.latitude + "," + google.loader.ClientLocation.longitude;
      bkbcountry = google.loader.ClientLocation.address.country_code;
    } else {
      // Google couldnt find you
      bkblocation = "Cape Hatteras, NC";
      bkbcountry = "US";
    }
  }

  function setLocationCountryCurrency() {
  
    var USDCountries = "-US,CA,MX,BS,DO,CU,BB,DM,GD,HT,JM,KN,LC,VC,TT,AG,AU";
    
    if (USDCountries.indexOf(bkbcountry) > 0 ) {  
      postRequest('http://www.bestkiteboarding.com/app/site/backend/setshoppercurrency.nl','redirect=%2Fblank.html&c=446037&n=1&selcurrency=1');
      bkbcurrency = 'USD';
    } else if ( bkbcountry == 'UK' ) {
      postRequest('http://www.bestkiteboarding.com/app/site/backend/setshoppercurrency.nl','redirect=%2Fblank.html&c=446037&n=1&selcurrency=2');
      bkbcurrency = 'GBP';
    } else {
      postRequest('http://www.bestkiteboarding.com/app/site/backend/setshoppercurrency.nl','redirect=%2Fblank.html&c=446037&n=1&selcurrency=4');
      bkbcurrency = 'EUR';
    }
        
    //Set Cookies
    setCookie('bkblocation',bkblocation,1000);
    setCookie('bkbcountry',bkbcountry,1000);
    setCookie('bkbcurrency',bkbcurrency,1000);    
  }
   
  function getLanguage() {                  

    //Get Language from Browser and set cookie
    if (navigator.appName == 'Netscape')          
      bkblanguage = navigator.language;
    else
      bkblanguage = navigator.browserLanguage;
  }
  
  function setLanguage() {    
  
    var selectedLang="";
 
 /* Blocking code temporarily until multilanguage content is ready
    if (bkblanguage.substring(0,2).toLowerCase() == 'fr') {  
      selectedLang = 'fr_FR';
    } else if (bkblanguage.substring(0,2).toLowerCase() == 'es') {
      selectedLang = 'es_ES';
    } else if (bkblanguage.substring(0,2).toLowerCase() == 'de') {
      selectedLang = 'de_DE';
    } else {                  //Set Defaults
      selectedLang = 'en';
      bkblanguage = 'en';
    }
 */
    selectedLang = 'en';
    bkblanguage = 'en';
 
    setCookie('bkblanguage',bkblanguage,1000);
    //postRequest('http://www.bestkiteboarding.com/app/site/backend/setshopperlanguagelocale.nl','redirect=%2Fblank.html&c=446037&selshopperlanguage=' + selectedLang);
  }
  
  function setBKBNS() {
      //Set cookie to show that Netsuite has been loaded with the settings. Expires one less day then NS cookies.
      setCookie('bkbNS','Netsuite Set',6);  
      checkCounter();
      setTimeout('document.location.reload();',timeOutValue);    
  }
  
  function changeLocation(newLocation) {
    
    if (newLocation == "") {
      alert("Please select your location");
      return;
    }
    var splitResults = newLocation.split(",");
    setCookie('bkbcountry',splitResults[0],1000);
    setCookie('bkbcurrency',splitResults[1],1000);
    setCookie('bkblanguage',splitResults[2],1000);
    setCookie('bkblocation',"Cape Hatteras, NC");     //Fix this line to load based on the drop down once everything else is working.
    setCookie('bkbNS','',-1);  
    document.location.reload();
  }

  function showLanguageDiv() {
    var x = document.getElementsByTagName('div');    
    for (var i=0;i<x.length;i++)
    {
      if (x[i].id.substr(0,2) == bkblanguage.substr(0,2)) {
        x[i].style.visibility = "visible";
        x[i].style.display = "";
      }
    }
  }

  checkCookies();

