// JavaScript Document
// VARIABLES

// AAN TE PASSEN
var wisselGBP = 0.67;
var wisselUSD = 1.22;

var gedrukt = 0;

var difference;
var reden;
var nachten = 0;
var nachtenLaag = 0;
var nachtenHoog = 0;

var villaTariefLaag = 51;
var villaTariefHoog = 56;
var eindPoets = 36;
var annulatie = 3;
var babyBed = 1.4;
var safe = 1.8;
var ontbijt = 4.9;
var dagmenu = 11;
var kinderKorting = 50;


var villaType = new Array();
var villaInfo = new Array();

villaType[0] = 'RA1';
villaInfo[0] = 'RA1-CASA RITA MAISON 2 Pers. - 1 chambre à coucher / vue sur la mer';
villaType[1] = 'RA2';
villaInfo[1] = 'RA2-CASA RITA MAISON 6 Pers. - 2 chambres à coucher + divan lit / vue sur la mer';
villaType[2] = 'RB1';
villaInfo[2] = 'RB1-CASA RITA MAISON 4 Pers. - 1 chambre à coucher + divan lit';
villaType[3] = 'RB2';
villaInfo[3] = 'RB2-CASA RITA MAISON 6 Pers. - 2 chambres à coucher + divan lit';
villaType[4] = 'NA1';
villaInfo[4] = 'NA1-CASA NELE LUXE APPART. 4 Pers. - 1 chambre à coucher + divan lit / vue sur la mer';
villaType[5] = 'NA2';
villaInfo[5] = 'NA2-CASA NELE LUXE APPART. 6 Pers. - 2 chambres à coucher + divan lit / vue sur la mer';
villaItems = 6

//alert(villas[0,0]);
//alert(villas[1,0]);

var eenDag = (((24*60)*60)*1000);

var vandaag = new Date();
var dag = vandaag.getDate();
var maand = vandaag.getMonth() + 1;
var jaar = vandaag.getFullYear();
var uur = vandaag.getHours();
var uur = (uur < 10) ? '0' + uur : uur;
var min = vandaag.getMinutes();
var min = (min < 10) ? '0' + min : min;
var sec = vandaag.getSeconds();
var sec = (sec < 10) ? '0' + sec : sec;

var dagVanDeWeek = new Array('Dimanche','Lundi',"Mardi","Mercredi","Jeudi","Vendredi","Samedi");
var maanden = new Array('Janvier','Fevrier','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Decembre');
var alfaCodes = new Array('','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P');
	
		
var perStart = new Array();
var perEinde = new Array();

perStart[0] = new Date(2003,10-1,25,0,0,0); // herfst begin 25 oktober 2003
perEinde[0] = new Date(2004,04-1,18,0,0,0); // einde hoog 18 april 2004

perStart[1] = new Date(2004,07-1,01,0,0,0); // begin zomer jul & aug 2004
perEinde[1] = new Date(2004,08-1,31,0,0,0); // einde zomer jul & aug 2004

perStart[2] = new Date(2004,10-1,16,0,0,0); // herfst begin 16 oktober 2004
perEinde[2] = new Date(2005,04-1,15,0,0,0); // einde hoog 15 april 2005

perStart[3] = new Date(2005,07-1,01,0,0,0); // begin zomer jul & aug 2005
perEinde[3] = new Date(2005,08-1,31,0,0,0); // einde zomer jul & aug 2005

perStart[4] = new Date(2005,10-1,16,0,0,0); // herfst begin 16 oktober 2005
perEinde[4] = new Date(2006,04-1,16,0,0,0); // einde hoog 16 april 2006

perStart[5] = new Date(2006,07-1,01,0,0,0); // begin zomer jul & aug 2006
perEinde[5] = new Date(2006,08-1,31,0,0,0); // einde zomer jul & aug 2006

perStart[6] = new Date(2006,10-1,16,0,0,0); // herfst begin 16 oktober 2006
perEinde[6] = new Date(2007,04-1,15,0,0,0); // einde hoog 15 april 2007

			

//FUNCTIES

function calcTarief() {
 	villaTariefLaag = 0;
   	villaTariefHoog = 0;

	var teBetalenHuur = 0;
	var teBetalenAnnulatie = 0;
	var teBetalenBabyBed = 0;
	var teBetalenSafe = 0;
	var teBetalenOntbijtVolwassen = 0;
	var teBetalenOntbijtKind = 0;
	var teBetalenDagmenuVolwassen = 0;
	var teBetalenDagmenuKind = 0;
	var totaalVoorAnnulatie = 0;
	
	nachten = 0;
	nachtenLaag = 0;
	nachtenHoog = 0;
	
	document.RQ.STARTDAG.value = '';
	document.RQ.ENDDAG.value = '';
	
	document.RQ.HUUR.value = '0.00';
	document.RQ.BABYBED.value = '0.00';
	document.RQ.SAFE.value = '0.00';

	document.RQ.ONTBIJTVOLWASSEN.value = '0.00';
	document.RQ.ONTBIJTKIND.value = '0.00';
	document.RQ.DAGMENUVOLWASSEN.value = '0.00';
	document.RQ.DAGMENUKIND.value = '0.00';

	document.RQ.ANNULATIE.value = '0.00';
	document.RQ.EINDPOETS.value = '0.00';

	document.RQ.TOTAAL.value = '0.00';
	document.RQ.VOORSCHOT.value = '0.00';

	//indien vertrekjaar < aankomstjaar stel gelijk
	if (document.RQ.ENDYY.value < document.RQ.STARTYY.value) document.RQ.ENDYY.value = document.RQ.STARTYY.value;
	
	//indien vertrekmaand < aankomstmaand in hetzelfde jaar stel gelijk
	if (document.RQ.ENDYY.value == document.RQ.STARTYY.value)
		if (parseInt(document.RQ.ENDMM.value) < parseInt(document.RQ.STARTMM.value)) document.RQ.ENDMM.value = document.RQ.STARTMM.value;

    if ((isGeldigeDatum(document.RQ.STARTYY.value,document.RQ.STARTMM.value,document.RQ.STARTDD.value)) &&
    	(isGeldigeDatum(document.RQ.ENDYY.value,document.RQ.ENDMM.value,document.RQ.ENDDD.value))){
      			aantalNachten(new Date(document.RQ.ENDYY.value +'/'+document.RQ.ENDMM.value +'/'+document.RQ.ENDDD.value),new Date(document.RQ.STARTYY.value +'/'+document.RQ.STARTMM.value +'/'+document.RQ.STARTDD.value));
}
    			else {
    			alert('Dates pas correcte');
    			nachten = 0;}
    			
    if (nachten > 0){

	//BEPAAL DE WEEKDAGEN
	var d = new Date(document.RQ.STARTYY.value-0, document.RQ.STARTMM.value-1, document.RQ.STARTDD.value-0,0,0,0);
	document.RQ.STARTDAG.value = dagVanDeWeek[d.getDay()];

	var d = new Date(document.RQ.ENDYY.value-0, document.RQ.ENDMM.value-1, document.RQ.ENDDD.value-0,0,0,0);
	document.RQ.ENDDAG.value = dagVanDeWeek[d.getDay()];



    if (document.RQ.VILLATYPE.value == 'RA1') {
    villaTariefLaag = 51;
    villaTariefHoog = 56;
    }
    
    else if (document.RQ.VILLATYPE.value == 'RA2'){
    villaTariefLaag = 61;
    villaTariefHoog = 67;
    }

    else if (document.RQ.VILLATYPE.value == 'RB1'){
    villaTariefLaag = 45;
    villaTariefHoog = 50;
    }
   
    else if (document.RQ.VILLATYPE.value == 'RB2'){
    villaTariefLaag = 55;
    villaTariefHoog = 61;
    }

    else if (document.RQ.VILLATYPE.value == 'NA1'){
    villaTariefLaag = 58;
    villaTariefHoog = 63;
    }

    else if (document.RQ.VILLATYPE.value == 'NA2'){
    villaTariefLaag = 76;
    villaTariefHoog = 83;
    }

	
	var vanTijd = Date.UTC(document.RQ.STARTYY.value-0,document.RQ.STARTMM.value -1,document.RQ.STARTDD.value-0,0,0,0);
	var totTijd = Date.UTC(document.RQ.ENDYY.value-0,document.RQ.ENDMM.value -1,document.RQ.ENDDD.value-0,0,0,0);

	
	for (var p = vanTijd ; p < totTijd ; p = p + eenDag) {
	var soort = 0;
		
		for (var pp = 0 ; pp < 7 ; pp++) {
		 if ((p >= perStart[pp]) && (p <= perEinde[pp])){
				var soort = 1;}
		}

	if (soort == 0){
		teBetalenHuur = teBetalenHuur + villaTariefLaag;
		nachtenLaag = nachtenLaag + 1;
		}
		else{
		teBetalenHuur = teBetalenHuur + villaTariefHoog;
		nachtenHoog = nachtenHoog + 1;
		}
	}


	nachten = nachtenLaag + nachtenHoog;

	document.RQ.NACHTENLAAG.value = nachtenLaag;
	document.RQ.NACHTENHOOG.value = nachtenHoog;
	document.RQ.NACHTEN.value = nachten;
	document.RQ.NACHTEN3.value = nachten+1;
	


	document.RQ.HUUR.value = Afronden(teBetalenHuur);

	if (document.RQ.BABY.value > 0)
	document.RQ.BABYBED.value = Afronden(document.RQ.BABY.value * (nachten * babyBed));
	else
	document.RQ.BABYBED.value = '0.00';
	
	
	if (document.RQ.SAFEJANEE.checked)
		document.RQ.SAFE.value = Afronden(nachten * safe);
		else
		document.RQ.SAFE.value = '0.00';
	
	
	
	document.RQ.EINDPOETS.value = Afronden(eindPoets);


	//ONTBIJT VOLWASSENEN
	if (document.RQ.ONTBIJTJANEE.checked){
		document.RQ.ONTBIJTVOLWASSEN.value =  Afronden(document.RQ.VOLWASSEN.value * (nachten * ontbijt));
		}
		

	//ONTBIJT KINDEREN
	if (document.RQ.ONTBIJTJANEE.checked && document.RQ.KIND.value != 0){
		teBetalenOntbijtKind = (document.RQ.KIND.value * (nachten * ontbijt));
		document.RQ.ONTBIJTKIND.value = Afronden((teBetalenOntbijtKind / 100) * (100 - kinderKorting));
		}


	//DAGMENU VOLWASSENEN
	if (document.RQ.DAGMENUJANEE.checked){
		document.RQ.DAGMENUVOLWASSEN.value = Afronden(document.RQ.VOLWASSEN.value * (nachten * dagmenu));
		}

	//DAGMENU KINDEREN
	if (document.RQ.DAGMENUJANEE.checked && document.RQ.KIND.value != 0){
		teBetalenDagmenuKind = (document.RQ.KIND.value * (nachten * dagmenu));
		document.RQ.DAGMENUKIND.value = Afronden((teBetalenDagmenuKind / 100) * (100 - kinderKorting));
		}

	totaalVoorAnnulatie = Number(document.RQ.HUUR.value) ; 
	
	//ANNULATIE
	document.RQ.ANNULATIE.value = Afronden((totaalVoorAnnulatie / 100) * annulatie);
	
	//TOTAAL

	document.RQ.TOTAAL.value = Afronden(totaalVoorAnnulatie + Number(document.RQ.ANNULATIE.value) + Number(document.RQ.EINDPOETS.value)
	+ Number(document.RQ.BABYBED.value)  + Number(document.RQ.SAFE.value) + Number(document.RQ.ONTBIJTVOLWASSEN.value) 
	+ Number(document.RQ.ONTBIJTKIND.value)+ Number(document.RQ.DAGMENUVOLWASSEN.value) + Number(document.RQ.DAGMENUKIND.value))
	


	//DAGEN TOT AANKOMST & VOORSCHOT
	var totAankomst =
		Date.UTC(document.RQ.STARTYY.value-0,document.RQ.STARTMM.value -1,document.RQ.STARTDD.value-0,0,0,0)
		- Date.UTC((vandaag.getFullYear()),vandaag.getMonth(),vandaag.getDate(),0,0,0)
	
	totAankomst = totAankomst / eenDag

	if (totAankomst <= 60) 
		document.RQ.VOORSCHOT.value = document.RQ.TOTAAL.value;
		else
		document.RQ.VOORSCHOT.value = Afronden(document.RQ.TOTAAL.value * 0.4);
	
	calcWisselKoers()

	}
}


function y2k(nummer) {
	return (nummer < 1000) ? nummer + 2000 : nummer;
}



function aantalNachten(date1,date2) {
	    var verschil =
        Date.UTC(y2k(date1.getFullYear()),date1.getMonth(),date1.getDate(),0,0,0)
      - Date.UTC(y2k(date2.getFullYear()),date2.getMonth(),date2.getDate(),0,0,0);

		nachten = verschil/1000/60/60/24;
		
		if (nachten < 1) nachten = 0;
		
		document.RQ.NACHTEN.value = nachten;

}



function isGeldigeDatum(year,month,day) {
	
    var today = new Date();
    year = ((!year) ? y2k(today.getFullYear()):year);
    month = ((!month) ? today.getMonth():month-1);
    if (!day) return false
    var test = new Date(year,month,day);
    if ( (y2k(test.getFullYear()) == year) &&
         (month == test.getMonth()) &&
         (day == test.getDate()) )
        return true;
    else{
    	 alert(day + '-' + (month+1) + '-' + year + ' pas correcte')
        return false;}
        
}


function calcWisselKoers(){

	
	switch (document.RQ.RATE.value)
	{
	
	case 'USD':
		document.RQ.TOTAAL2.value = Afronden(document.RQ.TOTAAL.value * wisselUSD);
		break;
	case 'GBP':
		document.RQ.TOTAAL2.value = Afronden(document.RQ.TOTAAL.value * wisselGBP);
		break;
	default:
		document.RQ.TOTAAL2.value = '';
		break;
	}
}


function Afronden(X) { var S, T
   return (S=new String(Math.round(X*100))).substr(0, T=(S.length-2)) +
    '.' + S.substr(T, 2) }



function valideerVelden() {
		
		calcTarief();
		
		var hoofDing = 'Veuillez remplir la suivante :\n\n';
		var foutMelding = '';
		var F = document.RQ;
		
		if (new Date(F.STARTYY.value +'/'+F.STARTMM.value +'/'+F.STARTDD.value) <= vandaag){foutMelding += 'Date d\'arrivée < aujourd\'hui !!\n'};
		if (new Date(F.ENDYY.value +'/'+F.ENDMM.value +'/'+F.ENDDD.value) <= vandaag){foutMelding += 'Date de départ < aujourd\'hui !! \n\n'};
		
		if (nachten == 0) {foutMelding += 'Date de départ égale ou plus tôt que la date d\'arrivée !!\n\n'};

		if (F.EMAIL.value == '') {foutMelding += 'Email\n'};
		if (F.ACHTERNAAM.value == ''){foutMelding += 'Nom\n'};
		if (F.ADRES.value == '') {foutMelding += 'Rue\n'};
		if (F.ZIP.value == ''){foutMelding += 'Code Postale\n'};
		if (F.STAD.value == '') {foutMelding += 'Ville\n'};

		if (F.TELEFOON.value == '') {
			foutMelding += '\nNuméro de téléphone pas obligatoire mais facile si nous voulons vous atteindre\nSi vous n\'avez pas de téléphone, veuillez remplir RIEN.\n\n';
			}
	
	if (F.VILLATYPE.value == 'RA1' && parseInt(F.VOLWASSEN.value) > 2) {foutMelding += 'Vous avez choissi type RA1.\nCe type est limité à 2 adultes !!\n\n'}
		
		
		if (foutMelding != '') {
			alert (hoofDing + foutMelding);
			gedrukt=0;
			return false;
			}
			else {
			
				if (gedrukt==1) {
					alert('Votre demande est déjà envoyé. \nPousse renouveler pour recommencer');
					return false;
				}
			
			alert('Votre demande sera envoyé du moment que vous clickez OK.\n\nAttends environ 20 secondes jusqu\'à vous avez une confirmation sur votre écran. \n\nCette confirmation est aussi envoyé à votre adresse email. \n\nMerci pour votre demande.');		
			gedrukt=1
			return true;
			}
			
}
	

function valideerEmail() {

var emailStr = document.RQ.EMAIL.value

var emailPat=/^(.+)@(.+)$/
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
var validChars="\[^\\s" + specialChars + "\]"
var quotedUser="(\"[^\"]*\")"
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
var atom=validChars + '+'
var word="(" + atom + "|" + quotedUser + ")"
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
var matchArray=emailStr.match(emailPat)

if (matchArray==null) {alert("Email pas correcte :\n\nsigne-@ ou nom du server manquant")
	return false
}
var user=matchArray[1]
var domain=matchArray[2]

if (user.match(userPat)==null) {
    alert("Email pas correcte :\n\nespaces ou caractères spéciales sont pas admis dans votre nom.")
    return false
}

var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
	  for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {
	        alert("Email pas correcte : IP-adresse pas correcte")
		return false
	    }
    }
    return true
}

var domainArray=domain.match(domainPat)
if (domainArray==null) {
	alert("Email pas correcte : nom du server pas valable.")
    return false
}

var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if (domArr[domArr.length-1].length<2 || 
    domArr[domArr.length-1].length>4) {
   alert("Nom du server doit finir sur une combination de 3 ou 4 caractères\n\nComme .com, .org, .gov, .info ou une combination de 2 caractères\n\ncomme .be ou .fr.")
   return false
}

if (len<2) {
   var errStr="Email pas correcte : pas de nom du host."
   alert(errStr)
   return false
}
return true;
}


    