var xmlHttp;

function getCities(str) {
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) {
		alert ("Votre navigateur ne supporte pas les objets XMLHTTP");
		return;
	}
	var url="cities.php";
	url=url+"?pc="+str+"&cntry="+document.getElementById("country").selectedIndex+"&rand="+parseInt(Math.random()*999999999999999);
	xmlHttp.onreadystatechange=citiesStatusChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function citiesStatusChanged() {
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {

		objStreets=document.getElementById("street");
		objStreets.options.length = 0;

		objCities=document.getElementById("city");
		objCities.options.length = 0;

		xmlDoc=xmlHttp.responseXML;
		cities = xmlDoc.getElementsByTagName("city");

		switch(cities.length) {
			case 0:
				objCities.options[objCities.options.length] = new Option("Renseignez un code postal valide", "");
				break;
			case 1:
				objCities.options[objCities.options.length] = new Option(cities[0].childNodes[0].nodeValue,cities[0].getAttribute("id"));
				if (document.getElementById('country').selectedIndex != 1) { // Luxembourg has no streets in database
	     		getStreets(cities[0].getAttribute("id"));
	     	}	
				break;
			default:
				objCities.options[objCities.options.length] = new Option("Sélectionnez votre ville", "");
				for (i=0;i<cities.length;i++) {
					objCities.options[objCities.options.length] = new Option(cities[i].childNodes[0].nodeValue,cities[i].getAttribute("id"));
				}
		}
	}
}

function getStreets(str) {
	deactivateUserStreet();
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) {
		alert ("Votre navigateur ne supporte pas les objets XMLHTTP");
		return;
	}
	var url="streets.php";
	url=url+"?insee="+str+"&rand="+parseInt(Math.random()*999999999999999);  // vermijd caching problemen;
	xmlHttp.onreadystatechange=streetsStatusChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function streetsStatusChanged() {
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {

		objStreets=document.getElementById("street");
		objStreets.options.length = 0;

		xmlDoc=xmlHttp.responseXML;
		streets = xmlDoc.getElementsByTagName("street");

		switch(streets.length) {
			case 0:
			objStreets.options[objStreets.options.length] = new Option("Sélectionnez votre ville", "");
			break;
			default:
			objStreets.options[objStreets.options.length] = new Option("Sélectionnez votre rue", "");
			for (i=0;i<streets.length;i++) {
				objStreets.options[objStreets.options.length] = new Option(streets[i].childNodes[0].nodeValue,streets[i].getAttribute("id"));
			}
		}
	}
}

function GetXmlHttpObject() {
	var xmlHttp=null;
	try{
		xmlHttp=new XMLHttpRequest();
	}
	catch (e) {
		try{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}
/*
function GetXmlHttpObject() {
var objXMLHttp=null
if (window.XMLHttpRequest) {
objXMLHttp=new XMLHttpRequest()
}
else if (window.ActiveXObject) {
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
return objXMLHttp
}

*/

function checkform() {
	var error = false;
	if (document.puree.title.value=='') {
		error = true;
		document.getElementById('errortitle').className = 'error';
	}else document.getElementById('errortitle').className = '';
			
	if (document.puree.firstname.value=='') {
		error = true;
		document.puree.firstname.className = 'error';
	}else document.puree.firstname.className = '';

	if (document.puree.surname.value=='') {
		error = true;
		document.puree.surname.className = 'error';
	}else document.puree.surname.className = '';

	if (document.puree.postcode.value=='') {
		error = true;
		document.getElementById('postcode').className = 'error';
	}else document.getElementById('postcode').className = '';
		
	if (document.getElementById('street_type').value=='db') {
		if (document.puree.street.value=='') {
			error = true;
			document.getElementById('errorstreet').className = 'error'; 
			document.getElementById('street2').className = 'error';
		}else	{
			document.getElementById('errorstreet').className = '';
			document.getElementById('street2').className = 'error'; 
		}			
	}else{
		if (document.getElementById('country').selectedIndex==1 && document.puree.user_street.value=='' && document.puree.street2.value!='' ) {
			document.puree.user_street.value=document.puree.street2.value;
		}		
		
		if (document.puree.user_street.value=='') {
			error = true;
			document.getElementById('errorstreet').className = 'error';
		}else document.getElementById('errorstreet').className = '';
	}
	if (document.puree.city.value=='' || document.puree.city.value=='0/0/0') {
		error = true;
		document.getElementById('errorcity').className = 'error';
	}else document.getElementById('errorcity').className = '';

	if (document.puree.nr.value=='') {
		error = true;
		document.puree.nr.className = 'error';
	}else document.puree.nr.className = '';

	if (!checkMail(document.puree.email.value)) {
		error = true;
		document.puree.email.className = 'error';
	}else document.puree.email.className = '';

/*
	if (!checkRadio(document.puree.q1)) {
		error = true;
		document.getElementById('q1').className = 'error';
	}else document.getElementById('q1').className = '';

	if (!checkRadio(document.puree.q2)) {
		error = true;
		document.getElementById('q2').className = 'error';
	}else document.getElementById('q2').className = '';

	if (!checkRadio(document.puree.q3)) {
		error = true;
		document.getElementById('q3').className = 'error';
	}else document.getElementById('q3').className = '';

	if (!checkRadio(document.puree.q4)) {
		error = true;
		document.getElementById('q4').className = 'error';
	}else document.getElementById('q4').className = '';

	if (!checkRadio(document.puree.q5)) {
		error = true;
		document.getElementById('q5').className = 'error';
	}else document.getElementById('q5').className = '';

	if (!checkRadio(document.puree.q6)) {
		error = true;
		document.getElementById('q6').className = 'error';
	}else document.getElementById('q6').className = '';

	if (!checkRadio(document.puree.q7)) {
		error = true;
		document.getElementById('q7').className = 'error';
	}else document.getElementById('q7').className = '';

	if (!checkRadio(document.puree.q8)) {
		error = true;
		document.getElementById('q8').className = 'error';
	}else document.getElementById('q8').className = '';

	if (!checkRadio(document.puree.q9)) {
		error = true;
		document.getElementById('q9').className = 'error';
	}else document.getElementById('q9').className = '';

	if (!checkRadio(document.puree.q10)) {
		error = true;
		document.getElementById('q10').className = 'error';
	}else document.getElementById('q10').className = '';

	if (!checkRadio(document.puree.q11)) {
		error = true;
		document.getElementById('q11').className = 'error';
	}else document.getElementById('q11').className = '';

	if (!document.getElementById('newsletteryes').checked && !document.getElementById('newsletterno').checked) {
		error = true;
		document.getElementById('contact').className = 'error';
	}else document.getElementById('contact').className = '';
	*/

	if (!checkDate(document.puree.day.value,document.puree.month.value,document.puree.year.value)) {
		error = true;
		document.getElementById('errorday').className = 'error';
		document.getElementById('errormonth').className = 'error';
		document.getElementById('erroryear').className = 'error';
		
	}else{
		document.getElementById('errorday').className = '';
		document.getElementById('errormonth').className = '';
		document.getElementById('erroryear').className = '';
	}

	if (error) {
		if (document.getElementById('nokmessagePuree')) document.getElementById('nokmessagePuree').style.display = 'inline';
		return false;
	}else{
		if (document.getElementById('nokmessagePuree')) document.getElementById('nokmessagePuree').style.display = 'none';
		return true;
		//document.puree.selector.value = "puree";
		//document.puree.submit();
	}
}

function checkform_stf() {
	var error = false;
	if (document.puree.title.value=='') {
		error = true;
		document.getElementById('errortitle').className = 'error';
	}else document.getElementById('errortitle').className = '';
			
	if (document.puree.firstname.value=='') {
		error = true;
		document.puree.firstname.className = 'error';
	}else document.puree.firstname.className = '';

	if (document.puree.surname.value=='') {
		error = true;
		document.puree.surname.className = 'error';
	}else document.puree.surname.className = '';

	if (document.puree.email.value=='' || !checkMail(document.puree.email.value)) {
		error = true;
		document.puree.email.className = 'error';
	}else document.puree.email.className = '';

	if (error) {
		if (document.getElementById('nokmessagePuree')) document.getElementById('nokmessagePuree').style.display = 'inline';
		return false;
	}else{
		if (document.getElementById('nokmessagePuree')) document.getElementById('nokmessagePuree').style.display = 'none';
		return true;
		//document.puree.selector.value = "puree";
		//document.puree.submit();
	}
	
}

function checkform_site() {
	var error = false;
	if (document.puree.title.value=='') {
		error = true;
		document.getElementById('errortitle').className = 'error';
	}else document.getElementById('errortitle').className = '';
			
	if (document.puree.firstname.value=='') {
		error = true;
		document.puree.firstname.className = 'error';
	}else document.puree.firstname.className = '';

	if (document.puree.surname.value=='') {
		error = true;
		document.puree.surname.className = 'error';
	}else document.puree.surname.className = '';

	if (document.puree.postcode.value=='') {
		error = true;
		document.getElementById('postcode').className = 'error';
	}else document.getElementById('postcode').className = '';

	if (document.getElementById('street_type').value=='db') {
		if (document.puree.street.value=='') {
			error = true;
			document.getElementById('errorstreet').className = 'error';
			document.getElementById('street2').className = '';
		} else	{
			document.getElementById('street2').className = 'error';
			document.getElementById('errorstreet').className = '';
		}	
	}else{
		if (document.getElementById('country').selectedIndex==1 && document.puree.user_street.value=='' && document.puree.street2.value!='' ) {
			document.puree.user_street.value=document.puree.street2.value;
		}
				
		if (document.puree.user_street.value=='') {
			error = true;
			document.getElementById('errorstreet').className = 'error';
		}else document.getElementById('errorstreet').className = '';
	}
	if (document.puree.city.value=='' || document.puree.city.value=='0/0/0') {
		error = true;
		document.getElementById('errorcity').className = 'error';
	}else document.getElementById('errorcity').className = '';

	if (document.puree.nr.value=='') {
		error = true;
		document.puree.nr.className = 'error';
	}else document.puree.nr.className = '';

	if (document.puree.email.value=='' || !checkMail(document.puree.email.value)) {
		error = true;
		document.puree.email.className = 'error';
	}else document.puree.email.className = '';

	var sub_q_col=Array(1,2,3,4);
	if (!checkRadio(document.puree.q1)) {
		error = true;
		for(i=0;i<sub_q_col.length;i++) {
			document.getElementById('q1_'+sub_q_col[i]).className = 'error';
		}	
	}else {
		for(i=0;i<sub_q_col.length;i++) {
			document.getElementById('q1_'+sub_q_col[i]).className = '';
		}
	}	
		
	if (!checkRadio(document.puree.q2)) {
		error = true;
		for(i=0;i<sub_q_col.length;i++) {
			document.getElementById('q2_'+sub_q_col[i]).className = 'error';
		}	
	}else {
		for(i=0;i<sub_q_col.length;i++) {
			document.getElementById('q2_'+sub_q_col[i]).className = '';
		}
	}	

	if (!checkRadio(document.puree.q3)) {
		error = true;
		for(i=0;i<sub_q_col.length;i++) {
			document.getElementById('q3_'+sub_q_col[i]).className = 'error';
		}	
	}else {
		for(i=0;i<sub_q_col.length;i++) {
			document.getElementById('q3_'+sub_q_col[i]).className = '';
		}
	}	

	if (!checkRadio(document.puree.q4)) {
		error = true;
		for(i=0;i<sub_q_col.length;i++) {
			document.getElementById('q4_'+sub_q_col[i]).className = 'error';
		}	
	}else {
		for(i=0;i<sub_q_col.length;i++) {
			document.getElementById('q4_'+sub_q_col[i]).className = '';
		}
	}	

	if (!document.getElementById('newsletteryes').checked && !document.getElementById('newsletterno').checked) {
		error = true;
		document.getElementById('contact').className = 'error';
	}else document.getElementById('contact').className = '';
	

	if (!checkDate(document.puree.day.value,document.puree.month.value,document.puree.year.value)) {
		error = true;
		document.getElementById('errorday').className = 'error';
		document.getElementById('errormonth').className = 'error';
		document.getElementById('erroryear').className = 'error';
		
	}else{
		document.getElementById('errorday').className = '';
		document.getElementById('errormonth').className = '';
		document.getElementById('erroryear').className = '';
	}

	if (error) {
		if (document.getElementById('nokmessagePuree')) document.getElementById('nokmessagePuree').style.display = 'inline';
		return false;
	}else{
		if (document.getElementById('nokmessagePuree')) document.getElementById('nokmessagePuree').style.display = 'none';
		return true;
		//document.puree.selector.value = "puree";
		//document.puree.submit();
	}
}

function checkform_paper() {
	var error = false;
	
	if (document.getElementById('nokmessagePaper')) {
		 document.getElementById('nokmessagePaper').style.display='none';
	}	
	
	if (document.puree.codepersonnel.value=='') {
		error = true;
		document.puree.codepersonnel.className = 'error';
	}
	else document.puree.codepersonnel.className = '';			
				
	if (document.puree.email.value=='' || !checkMail(document.puree.email.value)) {
		error = true;
		document.puree.email.className = 'error';
	}else {
		document.puree.email.className = '';
	}	
	
	if (document.puree.private_key.value=='') {
		error = true;
		document.puree.private_key.className = 'error';
	}else {
		document.puree.private_key.className = 'captcha';
	}			

	if (error) {
		if (document.getElementById('nokmessagePuree')) document.getElementById('nokmessagePuree').style.display = 'inline';		
		return false;
	}else{
		if (document.getElementById('nokmessagePuree')) document.getElementById('nokmessagePuree').style.display = 'none';
		/* outcommented omv captcha, waar de submit in de validate functie zit >>> 
		return true;
		<<< */
		/* captcha */
		captcha_msg = "Code de sécurité erronnée, veuillez essayer de nouveau svp.";
		validate_captcha(document.puree);	
		return false; // submit gebeurt in validate_captcha als code goed ingevuld
		//document.puree.selector.value = "puree";
		//document.puree.submit();
	}
}

function check_form_new() {
	var error=false;
	var success=false;
	
	if (document.puree.email.value=='' || !checkMail(document.puree.email.value)) {
		error = true;
		document.puree.email.className = 'error';
	}else {
		document.puree.email.className = '';
	}		
	success=checkform_site();
	if ((!success) || error) return false;
	else return true;
}	

function checkAnum(o) {
	o.value=o.value.toUpperCase().replace(/([^0-9A-Z])/g,"");
}

function checkRadio(o) {
	for (i=0;i<o.length;i++)
	if (o[i].checked==true)
	return true;
	return false;
}

function checkMail(email) {
	var filter = /^([a-z0-9\.\&_\-]+@(([a-z0-9][a-z0-9\-]*)*[a-z0-9]\.)+[a-z]{2,6})?$/i
	if (filter.test(email)) return true;
	else return false;
}

function checkDate(day,month,year) {
	source_date = new Date(year,(month-1),day);

	if(year != source_date.getFullYear())
	return false;

	if((month-1) != source_date.getMonth())
	return false;

	if(day != source_date.getDate())
	return false;

	return true;
}

function MM_swapImgRestore() { //v3.0
	var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
	var d=document; if(d.images) { if(!d.MM_p) d.MM_p=new Array();
	var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0) { d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
	var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
		if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
		for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
		if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
	var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	if ((x=MM_findObj(a[i]))!=null) {document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src;x.src=a[i+2];}
}

var _dialogPromptID=null;
var _blackoutPromptID=null;

function IEprompt(innertxt,def) {

	that=this;

	var _isIE7=true;

	this.wrapupPrompt = function (cancled) {
		document.getElementById('title').style.display='';
		/*
		document.getElementById('country').style.display='';
		*/
		document.getElementById('city').style.display='';
		document.getElementById('street').style.display='';	
		document.getElementById('day').style.display='';
		document.getElementById('month').style.display='';
		document.getElementById('year').style.display='';			

		if (_isIE7) {
			val=document.getElementById('iepromptfield').value;
			_dialogPromptID.style.display='none';
			_blackoutPromptID.style.display='none';
			document.getElementById('iepromptfield').value = '';
			if (cancled) { val = '' }
			promptCallback(val);
		}
		return false;
	}
	if (def==undefined) { def=''; }
	if (_isIE7) {
		if (_dialogPromptID==null) {
			var tbody = document.getElementsByTagName("body")[0];
			tnode = document.createElement('div');
			tnode.id='IEPromptBox';
			tbody.appendChild(tnode);
			_dialogPromptID=document.getElementById('IEPromptBox');
			tnode = document.createElement('div');
			tnode.id='promptBlackout';
			tbody.appendChild(tnode);
			_blackoutPromptID=document.getElementById('promptBlackout');
			_blackoutPromptID.style.opacity='.9';
			_blackoutPromptID.style.position='absolute';
			_blackoutPromptID.style.top='0px';
			_blackoutPromptID.style.left='0px';
			_blackoutPromptID.style.backgroundColor='#555555';
			_blackoutPromptID.style.filter='alpha(opacity=90)';
			_blackoutPromptID.style.height=(document.body.offsetHeight<screen.height) ? screen.height+'px' : document.body.offsetHeight+20+'px';
			_blackoutPromptID.style.display='block';
			_blackoutPromptID.style.fontFamily='Arial';
			_blackoutPromptID.style.zIndex='50';
			_dialogPromptID.style.border='2px solid yellow';
			_dialogPromptID.style.backgroundColor='#DDDDDD';
			_dialogPromptID.style.position='absolute';
			_dialogPromptID.style.width='330px';
			_dialogPromptID.style.zIndex='100';
		}
		document.getElementById('title').style.display='none'; // hide select boxes
		/*document.getElementById('country').style.display='none';*/
		document.getElementById('city').style.display='none';
		document.getElementById('street').style.display='none';
		/*document.getElementById('foyer').style.display='none';*/
		document.getElementById('day').style.display='none';
		document.getElementById('month').style.display='none';
		document.getElementById('year').style.display='none';
		var tmp = '<div style="width: 100%; background-color: black; color: yellow; font-family: verdana; font-size: 10pt; font-weight: bold; height: 20px">&nbsp;'+innertxt + '</div>';
		tmp += '<div style="padding: 10px;font-family:arial;font-size:11px;">';
		tmp += '<form action="" onsubmit="return that.wrapupPrompt()">';
		tmp += '<input id="iepromptfield" name="iepromptdata" type="text" size="46" style="width:300px" value="'+def+'">';
		tmp += '<br><br><center>';
		tmp += '<input type="submit" style="font-family:arial" style="font-family:arial" value="&nbsp;&nbsp;&nbsp;OK&nbsp;&nbsp;&nbsp;">';
		tmp += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
		tmp += '<input type="button" onclick="if (document.getElementById(\'street_type\').value != \'db\'){ document.getElementById(\'street\').style.display=\'none\'; };that.wrapupPrompt(true)" style="font-family:arial" value="&nbsp;Cancel&nbsp;">';
		tmp += '</form></div>';
		_blackoutPromptID.style.height=(document.body.offsetHeight<screen.height) ? screen.height+'px' : document.body.offsetHeight+20+'px';
		_blackoutPromptID.style.width='100%';
		_blackoutPromptID.style.display='block';
		_dialogPromptID.innerHTML=tmp;
		_dialogPromptID.style.top=parseInt(document.documentElement.scrollTop+(screen.height/3))+'px';
		_dialogPromptID.style.left=parseInt((document.body.offsetWidth-315)/2)+'px';
		_dialogPromptID.style.display='block';		
		document.getElementById('iepromptfield').value = document.getElementById('street2').value;
		document.getElementById('iepromptfield').focus();
	} else {
		promptCallback(prompt(innertxt,def));
	}
}

function promptCallback(val) {
	if (val != null && val.length > 2) {
		activateUserStreet(val);
	}
}

function activateUserStreet(val) {
	document.getElementById('street').style.display='none';
	document.getElementById('errorstreet').style.display='none';
	document.getElementById('street').className = '';
	document.getElementById('street2').style.display='';
	document.getElementById('street2').value = val;
	document.getElementById('user_street').value = val;
	document.getElementById('street_type').value = 'user';
	document.getElementById('street2').className = '';
	document.getElementById('street2').disabled=true;
}


function deactivateUserStreet() {
	document.getElementById('street').style.display='inline';
	document.getElementById('errorstreet').style.display='';
	document.getElementById('street').className = '';
	document.getElementById('street2').style.display='none';
	document.getElementById('street2').value = '';
	document.getElementById('user_street').value = '';
	document.getElementById('street_type').value = 'db';
	document.getElementById('street2').className = '';
	document.getElementById('street2').disabled=false;
}


function clearAddress() {
	document.getElementById('postcode').value='';
	document.getElementById('street').selectedIndex=0;
	var objCities=document.getElementById("city");
	objCities.options.length=0;
	objCities.options[objCities.options.length] = new Option("Renseignez un code postal valide", "");
}

function activateUserStreetLuxembourg(val) {
	document.getElementById('street').style.display='none';
	document.getElementById('errorstreet').style.display='none';
	document.getElementById('street').className = '';
	document.getElementById('street2').style.display='';
	document.getElementById('street2').value = val;
	document.getElementById('user_street').value = val;
	document.getElementById('street_type').value = 'user';
	document.getElementById('street2').className = '';
	document.getElementById('street2').disabled=false;
}

function getObj(id) {
  if (document.getElementById) return document.getElementById(id);
  else if (document.all) return document.all[id];
  else if (document.layers)	return document.layers[id];
}	

String.prototype.capitalize = function(){ // ucfirst functie
    return this.toLowerCase().replace(/[\wàáâãäåæçèéêëìíîïðñòóôõöùúûüýÿžš]+/g, function(a){    	
        return a.charAt(0).toUpperCase() + a.substr(1).toLowerCase();
    });
};

function hascase(str) {
	if (str.length < 2) return false;
	if (/[a-z]/.test(str) && /[A-Z]/.test(str)) return true;
	else return false;
}	

function anuppercase(id) {
	theobject=getObj(id);
	switch (id) {
	  case 'city' : 
	  	if (theobject && theobject.value) theobject.value=theobject.value.toUpperCase(); break;
	  case 'email' : 
	  	if (theobject && theobject.value) theobject.value=theobject.value.toLowerCase(); break;	  	
	  case 'firstname' :
	  case 'lastname' : 
	  case 'surname' : 	  
	    if (theobject && theobject.value) theobject.value=theobject.value.capitalize(); break;  
	}  
}	 

function numbers_only(value) {
	if(!(/[0-9a-zA-Z\-\/ ]$/.test(value))) value=value.substring(0,value.length-1);
	value = value.replace(/[^0-9a-zA-Z\-\/ ]/, '');
	return value;
}
