// Alertbox
var ALERT_TITLE = "Mededeling";
var ALERT_BUTTON_TEXT = "[ Sluiten ]";
if(document.getElementById) {
  window.alert = function(txt) {
    createCustomAlert(txt);
  }
}
function createCustomAlert(txt) {
  d = document;
  if(d.getElementById("modalContainer")) return;
  mObj = d.getElementsByTagName("body")[0].appendChild(d.createElement("div"));
  mObj.id = "modalContainer";
  mObj.style.height = document.documentElement.scrollHeight + "px";
  alertObj = mObj.appendChild(d.createElement("div"));
  alertObj.id = "alertBox";
  if(d.all && !window.opera) alertObj.style.top = document.documentElement.scrollTop + "px";
  alertObj.style.left = (d.documentElement.scrollWidth - alertObj.offsetWidth)/2 + "px";
  h1 = alertObj.appendChild(d.createElement("h1"));
  h1.appendChild(d.createTextNode(ALERT_TITLE));
  msg = alertObj.appendChild(d.createElement("p"));
  msg.innerHTML = txt;
  btn = alertObj.appendChild(d.createElement("a"));
  btn.id = "closeBtn";
  btn.appendChild(d.createTextNode(ALERT_BUTTON_TEXT));
  btn.href = "#";
  btn.onclick = function() { removeCustomAlert();return false; }
}
function removeCustomAlert() {
  document.getElementsByTagName("body")[0].removeChild(document.getElementById("modalContainer"));
}
var menu_start;
var menu_current;
function toggleMenu(sub_menu) {
  Effect.toggle(sub_menu,'slide');
}

// Blankwin
this.blankwin = function(){
	var hostname = window.location.hostname;
	hostname = hostname.replace("www.","").toLowerCase();
	var a = document.getElementsByTagName("a");	
	this.check = function(obj){
		var href = obj.href.toLowerCase();
		return ( (href.indexOf("https://")!=-1 || href.indexOf("http://")!=-1)  && ( href.indexOf(hostname)==-1 && href.indexOf("suitofsin.")==-1 ) ) ? true : false;				
	};
	this.set = function(obj){
		obj.target = "_blank";
		obj.className = "external";
	};	
	for (var i=0;i<a.length;i++){
		if(check(a[i])) set(a[i]);
	};		
};
this.addEvent = function(obj,type,fn){
	if(obj.attachEvent){
		obj['e'+type+fn] = fn;
		obj[type+fn] = function(){obj['e'+type+fn](window.event );}
		obj.attachEvent('on'+type, obj[type+fn]);
	} else {
		obj.addEventListener(type,fn,false);
	};
};
addEvent(window,"load",blankwin);

function doCheckIntOnly(Etje, Obj) {
  var keyCode = Etje.keyCode ? Etje.keyCode : Etje.which ? Etje.which : Etje.charCode;
  if (keyCode >= 48 && keyCode <= 57 && Etje.ctrlKey == false && Obj.value.length < 3) {
    return true;
  } else {
    return false;
  }
}

// AJAX
var stateUninitialized; stateUninitialized = 0;
var stateLoading;       stateLoading       = 1;
var stateLoaded;        stateLoaded        = 2;
var stateInteractive;   stateInteractive   = 3;
var stateCompleted;     stateCompleted     = 4;
var tmpAction;

function ajax(pageUrl, pageParams, action) {
  tmpAction = action;
  toDay = new Date();
  datumtijd = toDay.getTime();
  var xmlHttp;
  try {
    xmlHttp = new XMLHttpRequest();
  } catch (e) {
    try {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
        return false;
      }
    }
  }
  xmlHttp.onreadystatechange = function() {
    if(xmlHttp.readyState == stateCompleted) {
      var strResponse;
      strResponse = xmlHttp.responseText;
      if (tmpAction == "addToCart") {
        updateHeader();
        alert(strResponse);
      } else if (tmpAction == "addToFavo") {
        alert(strResponse);
      } else if (tmpAction == "updateHeader") {
        responseTextArray = strResponse.split('||');
        if (responseTextArray[1] != undefined) {
          document.getElementById('header_quantity').innerHTML = responseTextArray[1];
          document.getElementById('header_total').innerHTML = responseTextArray[2];
        } else {
          document.getElementById('header_quantity').innerHTML = 0;
          document.getElementById('header_total').innerHTML = "0,00";
        }
      }
    }
  }
  pageParams = pageParams + "&datumtijd=" + datumtijd + "";  
  xmlHttp.open("POST", pageUrl, true);
  xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  xmlHttp.send(pageParams);
}
function addToCart(stam_id, voorraad_id) {
  ajax("/exec/addtocart.asp", "stam_id="+stam_id+"&voorraad_id="+voorraad_id+"&cart_aantal=1", "addToCart");
}
function addToCartMM(stam_id, stam_id1, voorraad_id1, stam_id2, voorraad_id2) {
  ajax("/exec/addtocartmm.asp", "stam_id="+stam_id+"&stam_id1="+stam_id1+"&stam_id2="+stam_id2+"&voorraad_id1="+voorraad_id1+"&voorraad_id2="+voorraad_id2+"&cart_aantal=1", "addToCart");
}
function updateHeader() {
  ajax("/exec/updateheader.asp", "", "updateHeader");
}
function addToFavo(stam_id) {
  ajax("/exec/addtofavo.asp", "stam_id="+stam_id+"", "addToFavo");
}
function tellaFriend(stam_id) {
  window.open('/content/popup_tellafriend.asp?stam_id='+stam_id,'Tipeenvriendin','width=640,height=400,scrollbars=no,toolbar=no,location=no,menubar=no,status=no,resizable=no');
}
function wachtwoordVergeten() {
  window.open('/content/popup_wachtwoord.asp','wachtwoordVergeten','width=640,height=400,scrollbars=no,toolbar=no,location=no,menubar=no,status=no,resizable=no');
}
function algemeneVoorwaarden() {
  window.open('/content/popup_voorwaarden.asp','algemeneVoorwaarden','width=640,height=400,scrollbars=no,toolbar=no,location=no,menubar=no,status=no,resizable=no');
}

// Winkelmandje Ajax Functions
function changedBetaalmethode(betaalmethode_id) {
  toDay = new Date();
  datumtijd = toDay.getTime();
  var xmlHttp1;
  try { xmlHttp1 = new XMLHttpRequest();
  } catch (e) { try { xmlHttp1 = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) { try { xmlHttp1 = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (e) { return false; } } }
  xmlHttp1.onreadystatechange = function() {
    if(xmlHttp1.readyState == 4) {
      document.getElementById("factuur_betaalkosten_txt").innerHTML = "&euro; " + document.getElementById("betaalkosten_" + betaalmethode_id).value;
      document.getElementById("factuur_betaalkosten").value         = document.getElementById("betaalkosten_" + betaalmethode_id).value;
      document.getElementById("factuur_betaalmethode_id").value     = betaalmethode_id;
      changedTotaal();
    }
  }
  var xmlParams = "";
  xmlParams = xmlParams + "factuur_betaalkosten=" + document.getElementById("betaalkosten_" + betaalmethode_id).value + "&";
  xmlParams = xmlParams + "factuur_betaalmethode_id=" + betaalmethode_id + "&";
  xmlParams = xmlParams + "datumtijd=" + datumtijd + "&";
  xmlHttp1.open("GET", "/exec/betaalmethode.asp?" + xmlParams, true);
  xmlHttp1.send(null);
}
function changedVerzendmethode(verzendmethode_id) {
  toDay = new Date();
  datumtijd = toDay.getTime();
  var xmlHttp2;
  try { xmlHttp2 = new XMLHttpRequest();
  } catch (e) { try { xmlHttp2 = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) { try { xmlHttp2 = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (e) { return false; } } }
  xmlHttp2.onreadystatechange = function() {
    if(xmlHttp2.readyState == 4) {
      document.getElementById("factuur_verzendkosten_txt").innerHTML = "&euro; " + document.getElementById("verzendkosten_" + verzendmethode_id).value;
      document.getElementById("factuur_verzendkosten").value         = document.getElementById("verzendkosten_" + verzendmethode_id).value;
      document.getElementById("factuur_verzendmethode_id").value     = verzendmethode_id;
      changedTotaal();
    }
  }
  var xmlParams = "";
  xmlParams = xmlParams + "factuur_verzendkosten=" + document.getElementById("verzendkosten_" + verzendmethode_id).value + "&";
  xmlParams = xmlParams + "factuur_verzendmethode_id=" + verzendmethode_id + "&";
  xmlParams = xmlParams + "datumtijd=" + datumtijd + "&";
  xmlHttp2.open("GET", "/exec/verzendmethode.asp?" + xmlParams, true);
  xmlHttp2.send(null);
}
function changedTotaal() {
  tmp_factuur_betaalkosten   = roundNumber(document.getElementById("factuur_betaalkosten").value, 2);
  tmp_factuur_verzendkosten  = roundNumber(document.getElementById("factuur_verzendkosten").value, 2);
  tmp_totaal_voor_korting    = roundNumber(document.getElementById("totaal_voor_korting").value, 2);
  tmp_factuur_subtotaal      = roundNumber(document.getElementById("factuur_subtotaal").value, 2);
  tmp_factuur_korting        = roundNumber(0, 2);

  for (var i = 1; i < 6; i++) {
    if (document.getElementById("factuur_korting_" + i + "_type")) {
      tmp_factuur_korting_type   = document.getElementById("factuur_korting_" + i + "_type").value;
      tmp_factuur_korting_waarde = document.getElementById("factuur_korting_" + i + "_waarde").value;
      tmp_factuur_korting_bedrag = 0;
      if (tmp_factuur_korting_type != "") {
        if (tmp_factuur_korting_type == 1) {
          tmp_factuur_korting_waarde = roundNumber(tmp_factuur_korting_waarde, 2);
          tmp_factuur_korting_bedrag = ((tmp_totaal_voor_korting * tmp_factuur_korting_waarde)/100);
        } else if (tmp_factuur_korting_type == 2) {
          tmp_factuur_korting_waarde = roundNumber(tmp_factuur_korting_waarde, 2);
          tmp_factuur_korting_bedrag = (tmp_factuur_korting_waarde);
        }
        if (document.getElementById("factuur_korting_" + i)) {
          tmp_factuur_korting_bedrag = parseFloat(roundNumber2(tmp_factuur_korting_bedrag, 2));
          tmp_factuur_korting = tmp_factuur_korting + tmp_factuur_korting_bedrag;
          document.getElementById("factuur_korting_" + i).innerHTML = "&euro; -" + roundNumber3(tmp_factuur_korting_bedrag, 2);
        }
      }
    }
  }

  var tmp_factuur_zonder_korting;
  tmp_factuur_zonder_korting = tmp_factuur_subtotaal - tmp_totaal_voor_korting;

  tmp_totaal_voor_korting = tmp_totaal_voor_korting - tmp_factuur_korting;
  tmp_factuur_subtotaal = tmp_factuur_zonder_korting - tmp_factuur_korting + (tmp_factuur_subtotaal - tmp_factuur_zonder_korting);

  document.getElementById("factuur_totaal").innerHTML  = "&euro; " + roundNumber3(roundNumber2(tmp_factuur_betaalkosten + tmp_factuur_verzendkosten + tmp_factuur_subtotaal, 2), 2);

  if (parseInt(roundNumber3(roundNumber2(tmp_factuur_betaalkosten + tmp_factuur_verzendkosten + tmp_factuur_subtotaal, 2), 2)) <= 0) {
    if (document.getElementById("kortingcart_0")) {
     document.getElementById("kortingcart_0").style.display = 'none';
    }
  }

  if (document.getElementById("factuur_korting_totaal").value == '0') {
    hideKortingen();
  }
}

function hideKortingen() {
  document.getElementById('header_korting').style.visibility = 'hidden';
  var divTags = document.getElementsByTagName('div');
  for (i = 0; i < divTags.length; i++) {
    if (divTags[i].getAttribute('id') == 'regel_korting') {
      divTags[i].style.visibility = 'hidden';
    }
  }
}

function roundNumber(num, dec) {
  var result = num;
  if (result != "") {
    result = result.replace(".", "");
    result = result.replace(",", ".");
	   result = Math.round(result*Math.pow(10,dec))/Math.pow(10,dec);
	   return result;
  } else {
    return 0;
  }
}
function roundNumber2(num, dec) {
  var result = num;
	 result = Math.round(result*Math.pow(10,dec))/Math.pow(10,dec);
	 return result.toFixed(2);
}
function roundNumber3(num, dec) {
  var result = num;
	 result = Math.round(result*Math.pow(10,dec))/Math.pow(10,dec);
  result = result.toFixed(2)
  result = result.replace(",", "");
  result = result.replace(".", ",");
	 return result;
}
function checkAfleveradres(mObj) {
  if (mObj.checked == true) {
    document.getElementById('aflevergegevens').style.display = 'block';
  } else {
    document.getElementById('aflevergegevens').style.display = 'none';
  }  
}