//om de enter af te handelen(gaat naar de volgende vraag)
document.onkeyup = handleEnter;

var enqs_id = 0;

function urlencode(str) {
str = escape(str);
str = str.replace(/\+/g, '%2B');
str = str.replace(/%20/g, '+');
str = str.replace(/\*/g, '%2A');
str = str.replace(/\//g, '%2F');
str = str.replace(/@/g, '%40');
return str;
}

function urldecode(str) {
str = str.replace(/\+/g, ' ');
str = unescape(str);
return str;
}

function vorige(vraag_id){
	$('vraag').innerHTML = '<p>Vraag laden...<br><img src="../images/loader.gif" alt="Vraag laden"></p>';
	$('button').innerHTML = '';
	$('vorig').innerHTML = '';
	$('categorie').innerHTML = '';
	vraag_id_noreturn = vraag_id;
	to = setTimeout(function(){noReturnBack()}, 30000);
	
	new Ajax.Request('/klanten/content/includes/ajax/enqueteAfnemen.php', {
		method: 'post',
		parameters: 'vorige=1&vrg_id='+vraag_id,
		onComplete: function(transport){
			var result = transport.responseText.evalJSON();
				clearTimeout(to);
				$('vraag').innerHTML = '<p>'+urldecode(result.vraag)+'</p>';
				$('button').innerHTML = result.knop;
				$('vorig').innerHTML = result.vorige;
				$('categorie').innerHTML = urldecode(result.categorie);
				$('bartext').innerHTML = result.text;
				if($('barimg')){
					$('barimg').style.width = result.bar+'px';
				}
		}
    });
}
var enq_id_noreturn;
var vraag_id_noreturn;
var vrg_volgorde_noreturn;
var cat_volgorde_noreturn;

function volgende(enquete_id, vraag_id, vrg_volgorde, cat_volgorde){
	enq_id_noreturn = enquete_id;
	vraag_id_noreturn = vraag_id;
	vrg_volgorde_noreturn = vrg_volgorde;
	cat_volgorde_noreturn = cat_volgorde;
	data = getAntwoorden(vraag_id);
	if(!! data){
		handleAjax(enquete_id, data, cat_volgorde, vrg_volgorde);
	}else {
		return false;
	}
}

//doorloop alle vragen en antwoorden en haal de data eruit
function getAntwoorden(vraag_id){
	antwoord_id = new Array();
	data = new Array();
	tekst_antwoord = '';
	antwoord_field = new Array();
	vraag_id = vraag_id.split(',');
	var teller = 0;
	
	for(vr = 0; vr < vraag_id.length; vr++){
		
		teller = 0;
		positie = data.length;
		data[positie] = new Array();
		data[positie]['antwoorden'] = new Array();
		data[positie]['antwoorden'][teller] = new Array();
		data[positie]['vrg_id'] = vraag_id[vr];
		
		if($(vraag_id[vr]+'vakantwoord1')){
			if(trim($(vraag_id[vr]+'vakantwoord1').value) != ''){
				data[positie]['antwoorden'][teller]['antwoord'] = urlencode($(vraag_id[vr]+'vakantwoord1').value);
				data[positie]['antwoorden'][teller]['id'] = 0;
			}else if($(vraag_id[vr]+'vakantwoord1').getAttribute('standaard') == 0){
				alert('U heeft niet alles correct ingevuld');
				return false;
			}
			teller++;
		}else if($(vraag_id[vr]+'antwoord1')){
			//doorloop alle antwoorden en controleer of ze ingevuld zijn
			for(i = 1; $(vraag_id[vr]+'antwoord'+i); i++){
				//als het antwoord gechecked is
				if($(vraag_id[vr]+'antwoord'+i).checked){
					data[positie]['antwoorden'][teller] = new Array();
					//id van het antwoord
					a_id = $(vraag_id[vr]+'antwoord'+i).value;
					//als er een tekstvak bij hoort
					if($(vraag_id[vr]+'tekstantwoord'+i)){
						if(trim($(vraag_id[vr]+'tekstantwoord'+i).value) != ''){
							data[positie]['antwoorden'][teller]['antwoord'] = urlencode($(vraag_id[vr]+'tekstantwoord'+i).value);
						}else{
							alert('U heeft niet alles correct ingevuld');
							return false;
						}
					}
					data[positie]['antwoorden'][teller]['id'] = a_id;
					teller++;
				}
			}
			//controleer of de teller niet verhoogd is wat betekend dat er geen antwoord is ingevuld
			if(teller == 0 && $(vraag_id[vr]+'antwoord1').getAttribute('standaard') == 0){
				alert('U heeft niet alles correct ingevuld');
				return false;
			}
		}else if ($(vraag_id[vr]+'r1antwoord1')){
			//doorloop alle antwoorden van de matrix en controleer of ze ingevuld zijn
			for(i = 1; $(vraag_id[vr]+'r'+i+'antwoord1'); i++){
				for(d = 1; $(vraag_id[vr]+'r'+i+'antwoord'+d); d++){
					//als het antwoord gechecked is
					if($(vraag_id[vr]+'r'+i+'antwoord'+d).checked){
						data[positie]['antwoorden'][teller] = new Array();
						//id van het antwoord
						a_id = $(vraag_id[vr]+'r'+i+'antwoord'+d).name;
						//zet het geselecteerde item als extra tekst
						data[positie]['antwoorden'][teller]['antwoord'] = urlencode($(vraag_id[vr]+'r'+i+'antwoord'+d).value);
						data[positie]['antwoorden'][teller]['id'] = a_id;
						teller++;
					}
				}
			}
			//als niet alle antwoorden gegeven zijn
			if(i-1 > teller && $(vraag_id[vr]+'r1antwoord1').getAttribute('standaard') == 0){
				alert('U heeft niet alles correct ingevuld');
				return false;
			}
		}
		if($(vraag_id[vr]+'opmerkingen')){
			if(trim($(vraag_id[vr]+'opmerkingen').value) != ''){
				data[positie]['antwoorden'][teller] = new Array();
				data[positie]['antwoorden'][teller]['antwoord'] = urlencode($(vraag_id[vr]+'opmerkingen').value);
				data[positie]['antwoorden'][teller]['id'] = 0;
			}
		}
	}
	return data;
}

function handleAjax(enquete_id, data, cat_volgorde, vrg_volgorde){
	$('vraag').innerHTML = '<p>Vraag laden...<br><img src="../images/loader.gif" alt="Vraag laden"></p>';
	$('button').innerHTML = '';
	$('categorie').innerHTML = '';
	$('vorig').innerHTML = '';
	error = false;
	gegevens = '';
	to_data = data;
	
	//controleer of er een antwoord is ingevuld 
	for(l = 0; l < data.length; l++){
		if(data[l]['antwoorden'].length == 0){
			alert('U dient een antwoord in te vullen');
			error = true;
			break;
		}else {
			gegevens += "&vragen[" + l + "][vrg_id]=" + data[l]['vrg_id'];
			for(ps = 0; ps < data[l]['antwoorden'].length; ps++){
				gegevens += "&vragen[" + l + "][antwoorden]["+ ps + "][id]=" + data[l]['antwoorden'][ps]['id']+"&vragen[" + l + "][antwoorden]["+ ps + "][antwoord]=" + data[l]['antwoorden'][ps]['antwoord'];
			}
			
		}
	}
	
	if(! error){
		
		var post_string = 'enq_id=' + enquete_id + gegevens + '&cat_volg='+cat_volgorde+'&vrg_volg='+vrg_volgorde+'&opslaan='+0;
		//set een timeout zodat hij automatisch stopt na 30 seconden
		to = setTimeout(function(){noReturn()}, 30000);
		new Ajax.Request('/klanten/content/includes/ajax/enqueteAfnemen.php', {
			method: 'post',
			parameters: post_string,
			onComplete: function(transport){
				var result = transport.responseText.evalJSON();
					clearTimeout(to);
					$('vraag').innerHTML = urldecode(result.vraag);
					$('button').innerHTML = result.knop;
					$('vorig').innerHTML = result.vorige;
					$('categorie').innerHTML = urldecode(result.categorie);
					$('bartext').innerHTML = result.text;
					if($('barimg')){
						$('barimg').style.width = result.bar+'px';
					}
				}
	        });
	}
}

//als er geen goede informatie is terug gekomen met ajax
function noReturn(){
    clearTimeout(to);
	$('vraag').innerHTML = '<p>De vraag kon niet geladen worden.<br><br><input type="button" id="verzend" class="btn" value="Probeer opnieuw" onmouseout="this.className=\'btn\'" onmouseover="this.className=\'btnhov\'" onmouseup="this.className=\'btn\'" onmousedown="this.className=\'btndown\'" onclick="volgende(' + enq_id_noreturn + ', \'' + vraag_id_noreturn + '\', ' + vrg_volgorde_noreturn + ', ' + cat_volgorde_noreturn + ');"></p>';
	$('button').innerHTML = '';
	$('vorig').innerHTML = '';
	$('categorie').innerHTML = 'Error';
	
}

//als er geen goede informatie is terug gekomen met ajax met het terug gaan
function noReturnBack(){
    clearTimeout(to);
	$('vraag').innerHTML = '<p>De vraag kon niet geladen worden.<br><br><input type="button" id="verzend" class="btn" value="Probeer opnieuw" onmouseout="this.className=\'btn\'" onmouseover="this.className=\'btnhov\'" onmouseup="this.className=\'btn\'" onmousedown="this.className=\'btndown\'" onclick="vorige(' + vraag_id_noreturn + ');"></p>';
	$('button').innerHTML = '';
	$('vorig').innerHTML = '';
	$('categorie').innerHTML = '<b>Error</b>';
	
}

function verzend(){
	$('vraag').innerHTML = '<p>Bezig met het verwerken van de antwoorden...<br><img src="../images/loader.gif" alt="Antwoorden verwerken"></p>';
	$('button').innerHTML = '';
	$('categorie').innerHTML = '';
	$('vorig').innerHTML = '';
	
	ajaxVerzend();	
}

function ajaxVerzend(){
	new Ajax.Request('/klanten/content/includes/ajax/enqueteAfnemen.php', {
		method: 'post',
		parameters: 'opslaan=1',
		onComplete: function(transport){
			var result = transport.responseText.evalJSON();
			$('vraag').innerHTML = urldecode(result.afsluiting+result.standaardvragen);
			$('button').innerHTML = result.knop;
			$('categorie').innerHTML = '';
			$('bartext').innerHTML = result.text;
			var today = new Date();
			if(result.setcookie){
				today.setTime(today.getTime()+(1000*60*60*24*365));
				document.cookie = 'enqueteafnemen'+enqs_id+'=1; expires= '+today.toGMTString()+'; path=/; domain=.etocom.com;';
			}
		}
    });
}

function handleEnter(event){
	/*key = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if(key == 13){
		if(typeof ($('verzend').fireEvent) =="function"){
			//i.e.
			$('verzend').fireEvent('onclick');		
			return false;
		}else{
			$('verzend').click();
			return false;
		}
	}*/
}

function selectAntwoord(id, vraag_id){
	$(vraag_id+'antwoord'+id).checked = true;
}

//verstuur de standaard vragen 
function verstuur(enquete_id, string_id, identify){
	data = getAntwoorden(string_id);
	$('vraag').innerHTML = '<p>Vraag laden...<br><img src="../images/loader.gif" alt="Vraag laden"></p>';
	$('button').innerHTML = '';
	$('categorie').innerHTML = '';
	$('vorig').innerHTML = '';
	error = false;
	gegevens = '';
	
	//controleer of er een antwoord is ingevuld 
	for(l = 0; l < data.length; l++){
		if(data[l]['antwoorden'].length == 0){
			alert('U dient een antwoord in te vullen');
			error = true;
			break;
		}else {
			gegevens += "&vragen[" + l + "][vrg_id]=" + data[l]['vrg_id'];
			for(ps = 0; ps < data[l]['antwoorden'].length; ps++){
				gegevens += "&vragen[" + l + "][antwoorden]["+ ps + "][id]=" + data[l]['antwoorden'][ps]['id']+"&vragen[" + l + "][antwoorden]["+ ps + "][antwoord]=" + data[l]['antwoorden'][ps]['antwoord'];
			}
			
		}
	}
	
	if(! error){
		var post_string = 'enq_id=' + enquete_id + gegevens + '&standaard=1&identify=' + identify ;
		
		new Ajax.Request('/klanten/content/includes/ajax/enqueteAfnemen.php', {
			method: 'post',
			parameters: post_string,
			onComplete: function(transport){
				var result = transport.responseText.evalJSON();
					$('vraag').innerHTML = urldecode(result.vraag);
					$('button').innerHTML = '';
					$('vorig').innerHTML = '';
					$('categorie').innerHTML = '';
				}
	        });
	}
}

//------- alleen voor APPR overtoom enquete
function verstuurStandaard2(){
	send = false;
	veld = document.getElementsByName('146');
	if(trim(veld[0].value) != '' && isValidEmail(veld[0].value)){
		send = true;
	}
	
	if(send){
		if(document.forms["standaardVraagForm"]){
			document.forms["standaardVraagForm"].submit();
		}else {
			form = document.getElementsByName('standaardVraagForm');
			form[0].submit();
		}
	}else {
		alert('Om kans te maken op een NH Hotel Dreamgift dient u een geldig email adres in te vullen.');
	}
}
//-------

function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function isValidEmail(str) {
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
} 
