﻿
function togglesub(submenu,display) {
var hulp = document.getElementById(submenu);
hulp.style.display = display;
}

//if (document.all) document.createStyleSheet("/css/ievierxvrij.css");

function ArticleZoom(ID,extra_args) {
  window.open('kadobon.aspx?ID='+ID+'&'+extra_args,'zoom','width=640,height=500')
}
function ArticleRemove(ID,count,extra_args) {
  var confirm_text = "";
  if (count == 1) {
    confirm_text = "Weet u zeker dat u deze kadobon\nuit uw winkelwagen wilt verwijderen?"
  }else{
    confirm_text = "Weet u zeker dat u deze kadobonnen\nuit uw winkelwagen wilt verwijderen?"
  }
  if (window.confirm(confirm_text)) {
    document.location.replace('kadobonnen.lp?action=remove&ID='+ID+'&count='+count+'&'+extra_args);
  }
}
function ArticleUpdate(ID,count,extra_args) {
  window.alert('Uw winkelwagen wordt nu bijgewerkt.');
  document.location.replace('kadobonnen.lp?action=update&ID='+ID+'&count='+count+'&'+extra_args);
}
function ArticleSetflag(flag_name,flag_value,extra_args) {
  document.location.replace('kadobonnen.lp?action=setflag&flag_name='+flag_name+'&flag_value='+flag_value+'&'+extra_args);
}
function ArticleSetActioncode(actioncode,extra_args) {
  document.location.replace('kadobonnen.lp?action=setflag&flag_name=discount&flag_value=2&actioncode='+actioncode+'&'+extra_args);
}


// Add article from zoom page
function ArticleAdd(ID,extra_args) {
  if (window.opener) {
    window.opener.document.location.replace('kadobonnen.lp?action=add&ID='+ID+'&'+extra_args);
    window.close();
  }
}

// Hint functions
function ShowHint(hintName,delay) {
  setTimeout( "if (document.getElementById('"+hintName+"')) document.getElementById('"+hintName+"').style.visibility = 'visible';", delay );
}
function HideHint(hintName,delay) {
  setTimeout( "if (document.getElementById('"+hintName+"')) document.getElementById('"+hintName+"').style.visibility = 'hidden';", delay );
}

function FormValidate(land,postcode,rekening) {
  if (land.options[ land.selectedIndex ].value == '3000320' && !IsValidDutchZipcode( postcode.value )) {
    window.alert("U heeft geen geldige postcode ingevuld");
    postcode.focus();
    postcode.select();
    return false;
  } 
    else if (land.options[ land.selectedIndex ].value == '3000320' && !IsValidDutchBanknumber( rekening.value )) {
    window.alert("U heeft geen geldig Nederlands rekeningnummer ingevuld");
 /*  rekening.focus();
    rekening.select();*/
    return true
    } 
     else {
    return true
   }
}


function VoordeelFormValidate() {
var postcode = document.getElementById("ctl00$ContentPlaceHolder1$Postcode");
var rekening = document.getElementById("ctl00$ContentPlaceHolder1$Rekeningnummer");
  if (!IsValidDutchZipcode( postcode.value )) {
    window.alert("U heeft geen geldige postcode ingevuld");
    postcode.focus();
    postcode.select();
    return false;
  } 
    else if (!IsValidDutchBanknumber( rekening.value )) {
    window.alert("U heeft geen geldig Nederlands rekeningnummer ingevuld");
 /*  rekening.focus();
    rekening.select();*/
    return false;
    } 
     else {
    return true;
   }
}

function IsValidPostcode(land,postcode) {
  if (land.options[ land.selectedIndex ].value == '3000320' && !IsValidDutchZipcode( postcode.value )) {
    window.alert("U heeft geen geldige postcode ingevuld");
    postcode.focus();
    postcode.select();
    return false;
  } 
  else {
 // window.alert("hoe kan dit");
  return true;
  }
}

/* Email address validation */
function IsValidEmailAddress(email) {
  if (email.match(/\s/)) return false;
  if (email.indexOf('@') < 0) return false;
  if (email.indexOf('@') != email.lastIndexOf('@')) return false;
  if (!(email.match(/\w\@/))) return false;
  if (!(email.match(/\@\w/))) return false;
  if (!(email.match(/.*\@.*\./))) return false;
  if (!(email.match(/\@[\w\-]+\.\w\w/))) return false;
  return true;
}

function CheckDutchAccount(sender, args) {
 var land = document.getElementById('ctl00_ContentPlaceHolder1_Land');
 var rekening = document.getElementById('ctl00_ContentPlaceHolder1_Rekeningnummer');
/* alert(rekening.value);
 alert(land.options[ land.selectedIndex].value);*/
 if ((land.options[ land.selectedIndex ].value == '3000320') && (!IsValidDutchBanknumber( rekening.value ))) {
    //return false;
    args.IsValid = false;
    //alert("Hallo");
  }
  else
  { 
  //return true;
  args.IsValid = true;
  //alert("Hallo2");
  }
}


function CheckDutchAccountVoordeel(sender, args) {
 var rekening = document.getElementById('ctl00_ContentPlaceHolder1_Rekeningnummer');
/* alert(rekening.value);
 alert(land.options[ land.selectedIndex].value);*/
 if ((!IsValidDutchBanknumber( rekening.value ))) {
    //return false;
    args.IsValid = false;
    //alert("Hallo");
  }
  else
  { 
  //return true;
  args.IsValid = true;
  //alert("Hallo2");
  }
}

/* Dutch Zipcode validation */
function IsValidDutchZipcode(zipcode) {
  if (zipcode.match(/^0/)) return false;
  if (!(zipcode.match(/^\d{4}\s*[a-z]{2}$/i))) return false;
  return true;
}


/* Bank account validation */
function IsValidDutchBanknumber(number) {
  // Validates a Dutch bank account number
  // IN:  9 digit bank account number
  // OUT: (true|false)
  if (number.match(/^P/i)) return true;
  number = number.replace(/[\D]/g, "");
  if (number.length < 9 || number.length > 10) return false;
  var checksum = 0;
  for (var i=0; i<number.length; i++) checksum += ((number.length-i) * number.substring(i,(i+1)));
  return !(checksum % 11);
}

function voordeelIsValidDutchBanknumber(Sender, args) {
  // Validates a Dutch bank account number
  // IN:  9 digit bank account number
  // OUT: (true|false)
  var number = document.getElementById("ctl00$ContentPlaceHolder1$Rekeningnummer");
  if (number.value.match(/^P/i)) {
    args.IsValid = true;
 //   return;
  }
  else {
  number = number.value.replace(/[\D]/g, "");
  if (number.length < 9 || number.length > 10)  {
    args.IsValid = true;
 //   return;
  }
  else { 
      var checksum = 0;
      for (var i=0; i<number.length; i++) checksum += ((number.length-i) * number.substring(i,(i+1)));
      //return !(checksum % 11);
      args.IsValid = true;
  //    return;
  }
  }
}

function IsValidBelgianBanknumber(number) {
  // Validates a Belgian bank account number
  // IN:  10 digit bank account number
  // OUT: (true|false)
  number = number.replace(/[\D]/g, "");
  if (number.length < 3) return false;
  var left  = Math.abs(number.substring(0,number.length-2));
  var right = Math.abs(number.substring(number.length-2,number.length));
  return (left % 97 == right);
}

function GetBankAccountType(number) {
  var type;

  if (number.match(/^P/i)) return "giro";

  number = number.replace(/[\D]/g, "");

  // Invalid length
  if (number.length < 4 || number.length > 10) return "";

  // Valid Dutch bank account
  if (IsValidDutchBanknumber(number)) return "bank";

  // Valid length for giro bank account after removing leading zero's
  number = number.replace(/^0+/,"");
  if (number.length >= 4 && number.length <= 7) return "giro";

  return "";
}

function BankAccount_ViewMode(obj,land) {
  var number = obj.value;
  if (number.length==0) return;
  if (land.options[ land.selectedIndex ].value != '3000320') return;
//  if (document.frmBestel['form_land'].options[ document.frmBestel['form_land'].selectedIndex ].value != 'NL') return;

  var type = GetBankAccountType(number);
  number = number.replace(/[\D]/g, "");
  number = number.replace(/^0+/,"");

  if (type == "giro") {
    while (number.length < 9) {
      number = "0" + number;
    }
    number = "P" + number;
  }

  obj.value = number;

  // Set bank account type
  if (type && number) {
    document.getElementById('divBankAccountType').innerText = "(" + type + "nummer)";
  }
}

function BankAccount_EditMode(obj,land) {
  var number = obj.value;
  if (number.length==0) return;
  if (land.options[ land.selectedIndex ].value != '3000320') return;
//  if (document.frmBestel['form_land'].options[ document.frmBestel['form_land'].selectedIndex ].value != 'NL') return;

  number = number.replace(/[\D]/g, "");
  number = number.replace(/^0+/,"");

  document.getElementById('divBankAccountType').innerText = "";

  var oldnumber = obj.value;
  if (oldnumber != number) {
    obj.value = number;
    obj.select();
  }
}


function BankAccount_ViewModeVoordeel(obj) {
  var number = obj.value;
  if (number.length==0) return;
//  if (document.frmBestel['form_land'].options[ document.frmBestel['form_land'].selectedIndex ].value != 'NL') return;

  var type = GetBankAccountType(number);
  number = number.replace(/[\D]/g, "");
  number = number.replace(/^0+/,"");

  if (type == "giro") {
    while (number.length < 9) {
      number = "0" + number;
    }
    number = "P" + number;
  }

  obj.value = number;
  // Set bank account type
  if (type && number) {
    if (document.getElementById('divBankAccountType') != null) {
        document.getElementById('divBankAccountType').innerText = "(" + type + "nummer)";
    }
  }
}

function BankAccount_EditModeVoordeel(obj) {
  var number = obj.value;
  if (number.length==0) return;
//  if (document.frmBestel['form_land'].options[ document.frmBestel['form_land'].selectedIndex ].value != 'NL') return;

  number = number.replace(/[\D]/g, "");
  number = number.replace(/^0+/,"");
  
  if (document.getElementById('divBankAccountType') != null) {
    document.getElementById('divBankAccountType').innerText = "";
  }

  var oldnumber = obj.value;
  if (oldnumber != number) {
    obj.value = number;
    obj.select();
  }
}


/* Dutch Phone number validation */
function IsValidDutchPhonenumber(number) {
  number = number.replace(/^\+/, "00");
  number = number.replace(/[\D]/g, "");
  number = number.replace(/^0031/, "0");
  if (number.length == 10) return true;
  return false;
}

function Phone_ViewMode(obj,land) {
  var number = obj.value;
  if (number.length==0) return;
  if (land.options[ land.selectedIndex ].value != '3000320') return;

  number = number.replace(/^\+/, "00");
  number = number.replace(/[\D]/g, "");

  if (number.length > 10) {
    number = number.replace(/^00(1|7|20|27|30|31|32|33|34|36|39|40|41|43|44|45|46|47|48|49|51|52|53|54|55|56|57|58|60|61|62|63|64|65|66|81|82|84|86|90|91|92|93|94|95|98|212|213|216|218|220|221|222|223|224|225|226|227|228|229|230|231|232|233|234|235|236|237|238|239|240|241|242|243|244|245|246|247|248|249|250|251|252|253|254|255|256|257|258|260|261|262|263|264|265|266|267|268|269|290|291|297|298|299|350|351|352|353|354|355|356|357|358|359|370|371|372|373|374|375|376|377|378|380|381|385|386|387|388|389|420|421|423|500|501|502|503|504|505|506|507|508|509|590|591|592|593|594|595|596|597|598|599|670|672|673|674|675|676|677|678|679|680|681|682|683|684|685|686|687|688|689|690|691|692|800|808|850|852|853|655|856|870|871|872|873|874|878|880|881|882|886|960|961|962|963|964|965|966|967|968|970|971|972|973|974|975|976|977|979|991|992|993|994|995|996|998)/, "+$1 ");
  }

  number = number.replace(/(^|\s)(06|0800|0900|010|0111|0113|0114|0115|0117|0118|013|015|0161|0162|0164|0165|0166|0167|0168|0172|0174|0180|0181|0182|0183|0184|0186|0187|020|0222|0223|0224|0226|0227|0228|0229|023|024|0251|0252|0255|026|0294|0297|0299|030|0313|0314|0315|0316|0317|0318|0320|0321|033|0341|0342|0343|0344|0345|0346|0347|0348|035|036|038|040|0411|0412|0413|0416|0418|043|045|046|0475|0478|0481|0485|0486|0487|0488|0492|0493|0495|0497|0499|050|0511|0512|0513|0514|0515|0516|0517|0518|0519|0521|0522|0523|0524|0525|0527|0528|0529|053|0541|0543|0544|0545|0546|0547|0548|055|0561|0562|0566|0570|0571|0572|0573|0575|0577|0578|058|0591|0592|0593|0594|0595|0596|0597|0598|0599|070|071|072|073|074|075|076|077|078|079)/, "$2-");

  obj.value = number;
}

function Phone_EditMode(obj,land) {
  var number = obj.value;
  if (number.length==0) return;
  if (land.options[ land.selectedIndex ].value != '3000320') return;

  number = number.replace(/^\+/, "00");
  number = number.replace(/[\D]/g, "");
  number = number.replace(/^00/, "+");

  var oldnumber = obj.value;
  obj.value = number;
  if (oldnumber != number) obj.select();
}


/* Uppercase [a-z] characters on keypress*/
function keypress_UpperCase() {
  var kc = event.keyCode;
  var ord_a = 97;
  var ord_A = 65;
  var ord_z = (97+26) - 1;
  if (kc >= ord_a && kc <= ord_z) {
    event.keyCode = kc - (ord_a-ord_A);
  }
}
/* Uppercase [a-z] characters */
function change_UpperCase(obj) {
  obj.value = obj.value.toUpperCase();
}

function swapimage(img,url) {
    img.src = url;
}
