/*
 * Webshop GSM4YOU
 * Copyright 2008 Siteapps
 * Gemaakt door R. Kock <rick@siteapps.nl>
 */

function toggleVorm(){
		
	var Abonnement = document.getElementById('NB_Abonnement');
	var Layer = document.getElementById('Layer_Abonnement');
	
		if(Abonnement.checked == true) Layer.style.display = 'block';
		else Layer.style.display = 'none';
	
}

function toggleHouder(){
		
	var Houder = document.getElementById('SIMhouder');
	var Layer = document.getElementById('Layer_SIMkaarthouder');
	
		if(Houder.checked == false) Layer.style.display = 'block';
		else Layer.style.display = 'none';
	
}

function toggleNummerbehoud(){
		
	var Behoud = document.getElementById('Nummerbehoud');
	var Layer = document.getElementById('Layer_Nummerbehoud');
	
		if(Behoud.checked == true) Layer.style.display = 'block';
		else Layer.style.display = 'none';
	
}

function toggleRekening(){
		
	var Rekening = document.getElementById('Rekening');
	var Layer = document.getElementById('Layer_Rekening');
	
		if(Rekening.value == 0) Layer.style.display = 'block';
		else Layer.style.display = 'none';
	
}

// check date JavaScript function
// if date is valid then function returns true, otherwise returns false
function isDate(txtDate){
  var objDate;  // date object initialized from the txtDate string
  var mSeconds; // milliseconds from txtDate

	// date length should be 10 characters - no more, no less
  if (txtDate.length != 10) return false;

	// extract day, month and year from the txtDate string
	// expected format is mm/dd/yyyy
	// subtraction will cast variables to integer implicitly
  var day   = txtDate.substring(3,5)  - 0;
  var month = txtDate.substring(0,2)  - 1; // because months in JS start with 0
  var year  = txtDate.substring(6,10) - 0;

	// third and sixth character should be /
	if (txtDate.substring(2,3) != '/') return false;
	if (txtDate.substring(5,6) != '/') return false;

  // test year range
  if (year < 999 || year > 3000) return false;

  // convert txtDate to the milliseconds
  mSeconds = (new Date(year, month, day)).getTime();

  // set the date object from milliseconds
  objDate = new Date();
  objDate.setTime(mSeconds);

  // if there exists difference then date isn't valid
  if (objDate.getFullYear() != year)  return false;
  if (objDate.getMonth()    != month) return false;
  if (objDate.getDate()     != day)   return false;

	// otherwise return true
  return true;
}


function checkContractData(){

	var GeboorteDD = document.getElementById('C_GeboorteDD');
	var GeboorteMM = document.getElementById('C_GeboorteMM');
	var GeboorteJJJJ = document.getElementById('C_GeboorteJJJJ');

	var Nu = new Date();
	var GeboorteDatum = new Date(GeboorteJJJJ.value, GeboorteMM.value - 1, GeboorteDD.value, 0, 0, 0);
		
	var DocumentNR = document.getElementById('ID_Nummer');
	
	var GeldigDD = document.getElementById('ID_GeldigDD');
	var GeldigMM = document.getElementById('ID_GeldigMM');
	var GeldigJJJJ = document.getElementById('ID_GeldigJJJJ');
	
	var Duur = document.getElementById('ID_Duur');
	var Geldig= new Date(GeldigJJJJ.value, GeldigMM.value - 1, GeldigDD.value, 0, 0, 0);
	
	var TmpDate = new Date();
	
		for(m = 0; m <= Duur.value / 2; m++){
				
			if (TmpDate.getMonth() == 11) TmpDate = new Date(TmpDate.getFullYear() + 1, 0, TmpDate.getDate());
			else TmpDate = new Date(TmpDate.getFullYear(), TmpDate.getMonth() + 1, TmpDate.getDate());
					
		}
		
	var TmpDateBehoud = new Date();
	
		for(m = 0; m <= 3; m++){
				
			if (TmpDateBehoud.getMonth() == 11) TmpDateBehoud = new Date(TmpDateBehoud.getFullYear() + 1, 0, TmpDateBehoud.getDate());
			else TmpDateBehoud = new Date(TmpDateBehoud.getFullYear(), TmpDateBehoud.getMonth() + 1, TmpDateBehoud.getDate());
					
		}
		
	var Land = document.getElementById('ID_Land');
	var Nationaliteit = document.getElementById('ID_Nationaliteit');
	
	var Behoud = document.getElementById('Nummerbehoud');
			
		if(!isDate(GeboorteMM.value + "/" + GeboorteDD.value + "/" + GeboorteJJJJ.value)) return showErr('Uw geboortedatum is incorrect.');
		else if(Math.floor((Nu.getTime() - GeboorteDatum.getTime())/(24 * 3600 * 1000 * 365.25)) < 18)  return showErr('Uw moet minimaal 18 jaar zijn om een contract te mogen afsluiten.');
	
		else if(DocumentNR.value == '') return showErr('U moet wel een document nummer invullen.');
		else if(!isDate(GeldigMM.value + "/" + GeldigDD.value + "/" + GeldigJJJJ.value)) return showErr('Uw geldigheidsdatum legitimatie is incorrect.');
		else if(Math.floor(TmpDate.getTime() > Geldig.getTime())) return showErr('Uw legitmatie moet mininaal nog ' + (Duur.value / 2) + ' maanden geldig zijn.');
		else if(Land.value == '')  return showErr('U moet wel het land van uitgifte invullen.');
		else if(Nationaliteit.value == '')  return showErr('U moet wel uw nationaliteit invullen.');
		else{
			
			if(Behoud.checked == true){
				
				var Nummer = document.getElementById('NB_Nummer');
				var SIMNummer = document.getElementById('NB_SIMnummer');
				var Provider = document.getElementById('NB_Provider');
				var Abonnement = document.getElementById('NB_Abonnement');
				
				var ContractDD = document.getElementById('NB_ContractDD');
				var ContractMM = document.getElementById('NB_ContractMM');
				var ContractJJJJ = document.getElementById('NB_ContractJJJJ');
				
				var DatumDD = document.getElementById('NB_DatumDD');
				var DatumMM = document.getElementById('NB_DatumMM');
				var DatumJJJJ = document.getElementById('NB_DatumJJJJ');
				
				var SIMHouder = document.getElementById('SIMhouder');
				
				var BehoudDTM = new Date(DatumJJJJ.value, DatumMM.value - 1, DatumDD.value, 0, 0, 0);
				var EindDTM = new Date(ContractJJJJ.value, ContractMM.value - 1, ContractDD.value, 0, 0, 0);
								
					if(isNaN(Nummer.value) || Nummer.value.length != 10) return showErr('Het te behoudennummer is incorrect');
					else if(SIMNummer.value == '') return showErr('U moet wel het simkaart nummer invullen.');
					else if(Provider.value == '') return showErr('U moet wel de huidige provider invullen.');
					else if(Abonnement.checked == true && !isDate(ContractMM.value + "/" + ContractDD.value + "/" + ContractJJJJ.value)) return showErr('Uw einddatum contract is incorrect.');
					else if(Nu.getTime() > EindDTM.getTime()) return showErr('Einddatum contract mag niet voor vandaag liggen.');
					else if(!isDate(DatumMM.value + "/" + DatumDD.value + "/" + DatumJJJJ.value)) return showErr('Gewenste datum nummerbehoud is incorrect.');
					else if(Nu.getTime() > BehoudDTM.getTime()) return showErr('Datum nummerbehoud mag niet voor vandaag liggen.');
					else if(BehoudDTM.getDay() == 6 || BehoudDTM.getDay() == 0) return showErr('Nummerbehoud kan alleen op werkdagen.');
					else if(BehoudDTM > TmpDateBehoud) return showErr('Nummerbehoud kan maximaal 3 maanden vooruit.');
					else{
						
						if(SIMhouder.checked == false){
							
							var Voorletters = document.getElementById('SIM_Voorletters');
							var Achternaam = document.getElementById('SIM_Achternaam');
							var Straat = document.getElementById('SIM_Straat');
							var Huisnummer = document.getElementById('SIM_Huisnummer');
							var Postcode = document.getElementById('SIM_Postcode');
							var Plaats = document.getElementById('SIM_Plaats');
							var Telefoon = document.getElementById('SIM_Telefoon');
							
							var GeboorteDD = document.getElementById('SIM_GeboorteDD');
							var GeboorteMM = document.getElementById('SIM_GeboorteMM');
							var GeboorteJJJJ = document.getElementById('SIM_GeboorteJJJJ');
	
							var GeboorteDatum = new Date(GeboorteJJJJ.value, GeboorteMM.value - 1, GeboorteDD.value, 0, 0, 0);
							
								if(Voorletters.value == '')  return showErr('U moet wel de voorletters invullen.');
								else if(Achternaam.value == '')  return showErr('U moet wel de achternaam invullen.');
								else if(Straat.value == '')  return showErr('U moet wel de straatnaam invullen.');
								else if(Huisnummer.value == '')  return showErr('U moet wel het huisnummer invullen.');
								else if(!(Postcode.value.match(/^[1-9][0-9]{3} ?[a-zA-Z]{2}$/))) return showErr('U moet wel een geldige postcode invullen.');
								else if(Plaats.value == '')  return showErr('U moet wel de plaatsnaam invullen.');
								else if(!isDate(GeboorteMM.value + "/" + GeboorteDD.value + "/" + GeboorteJJJJ.value)) return showErr('De geboortedatum is incorrect.');
								else formVerder = true;
								
						
						}
						else formVerder = true
						
					}
			}
			else formVerder = true;
		
		}
		
		if(formVerder == true){
			
			var Rekening = document.getElementById('Rekening');
			
			var DatumDD = document.getElementById('BankpasGeldigDD');
			var DatumMM = document.getElementById('BankpasGeldigMM');
			var DatumJJJJ = document.getElementById('BankpasGeldigJJJJ');
			var Datum = new Date(DatumJJJJ.value, DatumMM.value - 1, DatumDD.value, 0, 0, 0);
			
				if(Rekening.value == 0){
						
					var Issuer = document.forms.contractgen.IssuerID;
								
					for (i = 0; i < Issuer.length; i++) {
												
						if (Issuer[i].checked){ var IssuerID = Issuer[i].value; break }
			
					}
								
					///if(!IssuerID) return showErr('U moet wel een bank selecteren.');
											
				}
				
				if(!isDate(DatumMM.value + "/" + DatumDD.value + "/" + DatumJJJJ.value)) return showErr('Datum bankpas is incorrect.');
				else if(Nu.getTime() > Datum.getTime()) return showErr('De geldigheid van uw bankpas mag niet voor vandaag liggen.');
			
		}
}
