//Algemene functies voor het een of ander =====================================================
function hideobj(obj_id) {
	document.getElementById(obj_id).style.visibility = 'hidden';
	return true;
}
function showobj(obj_id) {
	document.getElementById(obj_id).style.visibility = 'visible';
	return true;
}
function displayobj(obj_id,disp) {
	document.getElementById(obj_id).style.display = disp;
	return true;
}
function showhideobj(obj_id) {
	if (document.getElementById(obj_id).style.visibility == 'visible') {
		hideobj(obj_id);
	} else {
		showobj(obj_id);
	}
	return true;
}

function toggleDisplay(obj_id) {
	if (document.getElementById(obj_id).style.display == 'none') {
		displayobj(obj_id,"");
	} else {
		displayobj(obj_id,"none");
	}
	return true;
}

function validateEmail ( email, errorMsg ) {
 emailpat = /^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+$/;
 if( !emailpat.test( email ) ) {
  alert( errorMsg);
  return false;
 }
 return true;
}

function validatePostcode ( postcode, errorMsg ) {
 pat = /^(\d{4})\s?([A-Za-z]{2})$/;
 if( !pat.test( postcode ) ) {
  alert( errorMsg);
  return false;
 }
 return true;
}

function validateHuisnummer ( huisnummer, errorMsg ) {
 pat = /^\d+\s*[0-9A-Za-z]*$/;
 if( !pat.test( huisnummer ) ) {
  alert( errorMsg);
  return false;
 }
 return true;
}

function checkPW(ww1,ww2,errorMsg1,errorMsg2,updateflag) {
	if (ww1 != ww2) {
 		alert(errorMsg2);
 	return false
 	}
 	if (updateflag == 1 && ww1 == '') {
 		return true
 	} else {
 	pat = /^(.{5,})$/;
	if( !pat.test(ww1) || !pat.test(ww2) ) {
	  alert(errorMsg1);
  	return false;
 	}
 	}
 return true;
}

//Basisvariabelen voor gebruikers
email_oke = false;
match_pcnr = true;
match_password = false;


//Ajax functies ================================================================================
_cfscriptLocation = "model/AjaxInvoker.cfm";

function errorHandler(message)
{
	$('disabledZone').style.visibility = 'hidden';
    if (typeof message == "object" && message.name == "Error" && message.description)
    {
        alert("Error: " + message.description);
    }
    else
    {
        alert(message);
    }
};

//Login functies voor commentaar
function test(returndata) {
	alert(returndata);
}

function checkLoginForComment() {
	DWREngine._errorHandler =  errorHandler;
	DWREngine._execute(_cfscriptLocation, null, 'checkloginforComment', loginResultForComment);
}

function loginResultForComment(returndata) {
	DWRUtil.setValue('reactie_form',returndata[1]);
}

//registreren
function checkIfUserExists() {
	var frm = document.getElementById('userForm');
	validateEmail(frm.email.value,'U dient een geldig e-mail adres in te vullen.');
	DWREngine._errorHandler =  errorHandler;
	DWREngine._execute(_cfscriptLocation, null, 'userExists',frm.email.value, proc_checkIfUserExists);
}

function proc_checkIfUserExists(returndata) {
	var frm = document.getElementById('userForm');
	if (returndata[0] == 1) {
		alert('Dit e-mail adres is al geregistreerd.\nKies een ander e-mail adres.');
		email_oke = false
	} else {
		email_oke = true
	}
}
function checkRegisterData() {
	var frm = document.getElementById('userForm');
	//checkIfUserExists();
	//getAdres('nr');
	//getAdres('pc');
	pw_oke = checkPW(frm.ww.value,frm.ww2.value,'Het wachtwoord dient uit minimaal 5 karakters te bestaan.','De ingevoerde wachtwoorden zijn niet gelijk.')
	
	if (email_oke == true && pw_oke ==true) {
		var oWddx = new WddxSerializer();
		var _o = {
			gebruiker_email: frm.email.value, 
			gebruiker_voornaam:frm.voornaam.value,
			gebruiker_tussenvoegsels:frm.tussenvoegsels.value,
			gebruiker_achternaam:frm.achternaam.value,
			gebruiker_huisnr:frm.huisnummer.value,
			gebruiker_postcode:frm.postcode.value,
			gebruiker_straatnaam:frm.straat.value,
			gebruiker_woonplaats:frm.plaats.value,
			gebruiker_tel:frm.telthuis.value,
			gebruiker_gsm:frm.telmobiel.value,
			gebruiker_telwerk:frm.telwerk.value,
			gebruiker_wachtwoord:frm.ww.value};
		//alert(oWddx.serialize(_o));
	DWREngine._errorHandler =  errorHandler;
	DWREngine._execute(_cfscriptLocation, null, 'registerUser', oWddx.serialize(_o),registerResult);
	}
}
function checkProfielData() {
	var frm = document.getElementById('userForm');
	//checkIfUserExists();
	//getAdres('nr');
	//getAdres('pc');
	//checkPW(frm.ww.value,frm.ww2.value,'Het wachtwoord dient uit minimaal 5 karakters te bestaan.','De ingevoerde wachtwoorden zijn niet gelijk.',1)
	
		var oWddx = new WddxSerializer();
		var _o = {
			gebruiker_email: frm.email.value, 
			gebruiker_voornaam:frm.voornaam.value,
			gebruiker_tussenvoegsels:frm.tussenvoegsels.value,
			gebruiker_achternaam:frm.achternaam.value,
			gebruiker_huisnr:frm.huisnummer.value,
			gebruiker_postcode:frm.postcode.value,
			gebruiker_straatnaam:frm.straat.value,
			gebruiker_woonplaats:frm.plaats.value,
			gebruiker_tel:frm.telthuis.value,
			gebruiker_gsm:frm.telmobiel.value,
			gebruiker_telwerk:frm.telwerk.value,
			gebruiker_wachtwoord:frm.ww.value};
		//alert(oWddx.serialize(_o));
	DWREngine._errorHandler =  errorHandler;
	DWREngine._execute(_cfscriptLocation, null, 'UpdateUser', oWddx.serialize(_o),updateResult);
}

function PlaceComment() {
	var frm = document.getElementById('reactieform');
	if (frm.reactie.value == "") {
        alert ("U dient een reactie in te vullen");
        document.invulform.email.focus();
        return false;
		}
	
		var oWddx = new WddxSerializer();
		var _o = {
			reactie: frm.reactie.value,
			artikelid: _artikelid};

	DWREngine._errorHandler =  errorHandler;
	DWREngine._execute(_cfscriptLocation, null, 'placecomment', oWddx.serialize(_o),pageReload);
}

function PlaceReactie() {
	var frm = document.getElementById('reactieform');
	
	if (frm.name.value == "") {
        alert ("U dient een naam in te vullen");
        document.invulform.email.focus();
        return false;
		}
	if (frm.email.value == "") {
        alert ("U dient een e-mail adres in te vullen");
        document.invulform.email.focus();
        return false;
		}
	if (frm.titel.value == "") {
        alert ("U dient een onderwerp in te vullen");
        document.invulform.email.focus();
        return false;
		}
	if (frm.reactie.value == "") {
        alert ("U dient een reactie in te vullen");
        document.invulform.email.focus();
        return false;
		}
			
		var oWddx = new WddxSerializer();
		var _o = {
			naam: frm.name.value,
			email: frm.email.value,
			titel: frm.titel.value,			
			reactie: frm.reactie.value};

	DWREngine._errorHandler =  errorHandler;
	DWREngine._execute(_cfscriptLocation, null, 'placereactie', oWddx.serialize(_o),pageReload);
}
function pageReload(returndata) {
	window.location.reload( false );
}

function registerResult(returndata) {
	alert(returndata[1]);
}
function updateResult(returndata) {
	alert(returndata[1]);
}
function checkIfPcNrExists() {
	var frm = document.getElementById('profielform');
	DWREngine._errorHandler =  errorHandler;
	DWREngine._execute(
		_cfscriptLocation, 
		null, 
		'PCNRExists',
		frm.postcode.value,
		frm.huisnummer.value, 
		proc_checkIfPcNRExists
		);
}
function proc_checkIfPcNRExists(returndata) {
	if (returndata[0] == 1) {
		alert('Het opgegeven adres bestaat al');
		match_pcnr = true;
	} else match_pcnr = false;
	proc_checkIfPcNrExists();
}

function getAdres(validate) {
	var frm = document.getElementById('profielform');
	if (validate == 'pc'){
		validatePostcode(frm.postcode.value,'U dient een geldige postcode in te vullen.');
	} else if (validate == 'nr'){
		validateHuisnummer(frm.huisnummer.value,'U dient een geldig huisnummer in te vullen.\nGebruik een spatie tussen het huisnummer en een eventuele toevoeging');
	}
	if (frm.postcode.value != '' && frm.huisnummer.value != '') {
		DWREngine._errorHandler =  errorHandler;
		DWREngine._execute(_cfscriptLocation, null, 'getAdres', frm.postcode.value, frm.huisnummer.value,proc_getAdres);
	}
}
function proc_getAdres(returndata) {
	var frm = document.getElementById('profielform');
		if (returndata[0] == 0) {
			//geen adres gevonden
		} else {
			if (frm.straat.value == '') {
				frm.straat.value = returndata[1];
			}
			if (frm.plaats.value == '') {
				frm.plaats.value = returndata[2];
			}
		}
	}
function passVal() { //T.Bouwhuis: Wachtwoord vergelijking binnen formulier
	pass1 = document.getElementById("user_wachtwoord").value;
	pass2 = document.getElementById("user_wachtwoord2").value;
	if(pass1.length < 5 || pass2.length < 5) {
		alert("Het wachtwoord moet minimaal 6 characters lang zijn")
		return false;
	}
	else {
		if(pass1 != "" && pass2 != "" ) {
			if(pass1 !== pass2) {
				alert('Wachtwoorden zijn niet gelijk')
			}
		}
	}
}
