// JSON decoder:
function decodeJSON(JSONstr){
	eval("var obj = "+JSONstr);
	return obj;
}	


	
/* function to highlight the background of formfield on error */
function HiLite(fieldname) {
	$(fieldname).style.backgroundColor  = "#ff0000";
	}
	
	
	
/* function to reset the background color formfield  */
function LoLite(fieldname) {
	$(fieldname).style.backgroundColor  = "#ffffff";
	}
	

      		

/* Email Validation script */
function ValiderEmail(email){
	var pos=email.indexOf("@");
	var pos2=email.indexOf(".");
	var error=0;
	if (email.length == 0) return false;
	if (pos < 1) error++;
	else  if(email.indexOf(".",pos) < pos+2) error++;
	if (pos2==email.length-1)   error++;
	if (email.indexOf(" ") > 0){
    	return false;
	}
	if (error){
		return false;
	}
	return true;
}


function submitOnEnter(formid) {
	if (window.event && window.event.keyCode == 13)
	{
		$(formid).submit();
	}
	} 

/* Function voor het controleren van aanmeld gegevens */
function passwordChanged() {
	var strength = document.getElementById("strength");
	var strongRegex = new RegExp("^(?=.{7,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
	var mediumRegex = new RegExp("^(?=.{6,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
	var enoughRegex = new RegExp("(?=.{5,}).*", "g");
	var pwd = $("memberPassword1");
	if (pwd.value.length==0) {
		$('strength').hide();
		return false;
	} else if (false == enoughRegex.test(pwd.value)) {
		$('strength').show();
		$('strength').setStyle({backgroundColor: '#ee1122'})
		$('strength').update("&laquo; Wachtwoord te kort");
		return false;
	} else if (strongRegex.test(pwd.value)) {
		$('strength').show();
		$('strength').setStyle({backgroundColor: 'green'})
		$('strength').update("&laquo; Sterk wachtwoord!");
		return true;
	} else if (mediumRegex.test(pwd.value)) {
		$('strength').show();
		$('strength').setStyle({backgroundColor: 'orange'})
		$('strength').update("&laquo; Gemiddelde sterkte");
		return true;
	} else {
		$('strength').show();
		$('strength').setStyle({backgroundColor: '#ee1122'})
		$('strength').update("&laquo; Zwak wachtwoord");
		return false;
	 }
	}




function checkTheSamePassword() {
	if ($F("memberPassword1") != $F("memberPassword2")) {
		$('passwordFeedback').show();
	} else {
		$('passwordFeedback').hide();
	}
 }




function checkMemberExists() {
	
	$('memberExistFeedback').hide();

	var tmpUrl = "ajax/ajax.php";
	var tmpParameters = "?action=checkMemberExists&memberName=" + $F('memberName');
	var req = new Ajax.Request(
			tmpUrl,
				{
					method: "post",
					parameters: tmpParameters,
					asynchronous: "true",
					onComplete:setMemberExistResult
				}
			);
			
			function setMemberExistResult(transport) {
			 $('userExists').value = "0";
				if(transport.responseText == "true"){
					$('memberExistFeedback').show();
					$('userExists').value = "1";
				}
		}
	}




function checkLogin(){
	
		goodToGo = true; 

		if (!$F('userid') || $F('userid') == "Username") { 
				HiLite('userid');
				goodToGo = false;
		}
				
		if (!$F('userpass')) {
				HiLite('userpass');
				goodToGo = false;
		}
		
		if (goodToGo)	{
			document.login.submit();
		}
	}
		
		
		

function definitiefVersturen() {
		if (!$('akkoord').checked) {
			alert('Je bent niet akkoord met de algemene voorwaarden');
		} else if (!$F('begroting')) {
		  alert('Je hebt geen begroting toegevoegd, voeg een begroting toe onder het tabblad Financien.');
		} else {
			var temp = false;
			temp=window.confirm('Weet je zeker dat je de aanvraag definitief wilt versturen?');
			if (temp){
				$('verstuurd_def').value = "1";
				document.aanvraag.submit();
			}
		}
	}
			
			
			
		
/* functions om forms te valideren */
function checkAanvraagForm(stap,nextstep) {

	var goodToGo = "yes";
	var FieldArray = new Array();

	/* volgende stap bepalen en de Post action van form aanpassen */
	if (nextstep) {
				var postAction = $('aanvraag').action + "&ns=" + nextstep;
				$('aanvraag').action = postAction;
				}
				
				
	/* start Switch */
	switch(stap) {
		
		
	case "aanmelden": 
				
				FieldArray[0]="memberName"
				FieldArray[1]="memberPassword1"
				FieldArray[2]="memberPassword2"
				FieldArray[3]="contactpersoon"
				
				/* emailadres valideren */
				if (!ValiderEmail($F('contact_email_1'))) {
					goodToGo = "no";
					HiLite('contact_email_1');
					}
					
				/* Controle op spaties in username */
				if ($F('memberName').indexOf(" ") > 0){
					goodToGo = "no";
					HiLite('memberName');
					alert('Loginnaam mag geen spaties bevatten');
					}

        /* Controleer of username al bestaat */
        if(!$('memberName').disabled) {
	        checkMemberExists();
	        if ($F('userExists')== "1") {
	          goodToGo = "no";
	          HiLite('memberName');
	        }
        }
				break;
				
			
				
	case "gegevens": 
				FieldArray[0]="title";
				FieldArray[1]="contact_email_1";
				
				/* emailadres valideren */
				if (!ValiderEmail($F('contact_email_1'))) {
					goodToGo = "no";
					HiLite('contact_email_1');
				}
				
				/* wanneer het contacpersoon email 2 is ingevoerd dan ook emailadres valideren */
				if ($F('contact_email_2')){
					if (!ValiderEmail($F('contact_email_2'))) {
					goodToGo = "no";
					HiLite('contact_email_2');
					}
				}
				break; 
				
	case "financien": 
				
				if($F('begroting_file')) {
				var begrotingFileName = $F('begroting_file').toLowerCase();
				if(begrotingFileName.endsWith('pdf') || begrotingFileName.endsWith('xls') || begrotingFileName.endsWith('xlsx') || begrotingFileName.endsWith('ods')){
					} else {
					goodToGo = "no";
					HiLite('begroting_file');
					alert('Alleen Excel, Open Office & PDF bestanden toegestaan');
				}
				}
				break;
	
	
	case "versturen":
				$('verstuurd_feedback').value = "0";
				break;
				
				
	case "versturenFeedback": 
				$('verstuurd_feedback').value = "1";
				
				break;
			
	case "versturenDefinitief": 
				FieldArray[0]="akkoord_naam"
				FieldArray[1]="akkoord_organisatie"
				FieldArray[2]="akkoord_datum"
				FieldArray[3]="akkoord_plaats"
				break;
	
	
	
	case "save": 

				break;
				
	default: "";
	}
	
	/* Walkthru Array of formfields and check value */
	FieldArray.each(function(i) {
		
		if (!$F(i)) {
	 		HiLite(i);
	 		goodToGo = "no";
	 		}
		
		});

	if (goodToGo == "no") {
		alert("Niet alle velden zijn juist ingevuld, controleer de velden welke rood zijn gemarkeerd.");
	} else {
		if(stap == "versturenDefinitief") {
			definitiefVersturen();
		} else {
			document.aanvraag.submit();
		}
	}
	}
	
	


/* function voor het verwijderen van de aanvraag */
function deleteAanvraag(rondeid) {
	var temp = false
		temp=window.confirm('Weet je zeker dat je de aanvraag wilt verwijderen?');
		 if (temp){
		 $('aanvraag').action = "index.php?delete=true&r="+rondeid;
		 document.aanvraag.submit();
		}
	}




/* function om het aanvraag formulier te disablen bij niet aangemeld of definitief verstuurd */
function aanvraagDisabled(stap,aanvraagid,state) {
	if (stap != "aanmelden") {
		if ((aanvraagid == 0) || (state == 1)) {
		Form.disable('aanvraag');
		$('button_opslaan').hide();
		$('button_verder').hide();
		}
		}
	}
	



/* functie voor het verwijderen van de begroting via Ajax Call */
function deleteBegroting(file) {

	var tmpUrl = "ajax/ajax.php";
	var tmpParameters = "?action=deleteBegroting&file=" + file;
	var req = new Ajax.Request(
			tmpUrl,
				{
					method: "post",
					parameters: tmpParameters,
					asynchronous: "true",
					onComplete:hideFile
				}
			);
			
		function hideFile() {
			$('begroting_display').hide();
		}

	}


function buttonFeedbackToggle() {
	if ($('verstuurd_feedback').checked) {
		$('button_feedback').show();
		$('button_opslaan_feedback').show();
		$('afronding').hide();
	} else {
		$('afronding').show();
		$('button_opslaan_feedback').hide();
		$('button_feedback').hide();
	}
}


/* functie voor het tellen van de woorden om te zorgen dat niet te veel woorden zijn gebruikt */
function wordCount(field,maxcount) {
	
	var words = $F(field);
	/* overhead van % aan aantal woorden, standaard op 150% */
	var limit  = ((Number(maxcount)/ 100)*115);
	var wordsarray = words.split(/\b[\s,\.-:;]*/);
	var numwords = wordsarray.length;
	
	if (numwords > (limit)){
		HiLite(field);
		alert("Tekst te lang, maximaal "+maxcount+" woorden toegestaan, verkort de tekst.");
		}
		
}


function forgotPassword() {
	
	if (ValiderEmail($F('forgotEmail'))) {
	
	
	function passCallback(transport) {

	if (transport.responseText) {
		 tmpText = '<br />De gegevens zijn verstuurd,<br />controleer je mailbox.';
	} else {
		 tmpText = '<br />Dit e-mailadres is niet bekend.';
	}
 		$('forgot-ruimte').update(tmpText);
	
	}

	var tmpUrl = "ajax/ajax.php";
	var tmpParameters = "?action=forgotPassword&email=" + $F('forgotEmail');
	var req = new Ajax.Request(
			tmpUrl,
				{
					method: "get",
					parameters: tmpParameters,
					asynchronous: "true",
					onComplete: passCallback
				}
			);
			
			
			
   	} else  {
  	 	alert('Dit is geen geldig e-mailadres');
  	 }
	}



/* Behaviours, sommige functies worden aangeroepen via behaviours */
var SearchRules = {
	'input' : function(el) {
			el.onclick = function() {
					LoLite(this);
				}
			el.onfocus = function() {
					LoLite(this);
				}
			},
	'textarea' : function(el) {
			el.onclick = function() {
					LoLite(this);
				}
			el.onfocus = function() {
					LoLite(this);
				}
			},
	'.login' : function(el) {
			el.onclick = function() {
					this.select();
				}
			el.onfocus = function() {
					this.select();
				}
			},
	'.nav_element' : function(el) {
			el.onclick = function() {
					checkAanvraagForm('save');
					
				}
			}			
	,
  '#verstuurd_feedback':  function(el) {
					el.onclick = function() {
						buttonFeedbackToggle();
					
				}
			}			

	}
	
Behaviour.register(SearchRules);
	
	
	
