// Custom js additions to psyon.nl

var fields = [];

function checkRememberCookie() {
	var x = document.getElementById('remember');
	if (!x) return;
	var y = Cookies.psyon_form;
	if (!y) return;
	var values = y.split(',,');
	for (var i=0;i<fields.length;i++) {
		if (values[i] && values[i] != 'none')
		{
			if (values[i] == 'checked')
				x.form.elements[fields[i]].checked = "checked";
			else
				x.form.elements[fields[i]].value = values[i];
		}

	}
	x.checked = "checked";
}

function setRememberCookie() {
	var x = document.getElementById('remember');
	if (!x) return;
	if (!x.checked) {
		Cookies.erase('psyon_form');
		return;
	}	
	var form = x.form;
	var cookieString = '';
	for (var i=0;i<fields.length;i++) {
		var val = form.elements[fields[i]].value;
		if (form.elements[fields[i]].type == 'checkbox') {
			if(form.elements[fields[i]].checked)
				cookieString += 'checked,,';
			else
				cookieString += 'none,,';
		}
		else{
			if (val)
				cookieString += val+',,';
			else
				cookieString += 'none,,';
		}		
	}	
	Cookies.create('psyon_form',cookieString,60);
}


function initCustom()
{	
	//Check if we're on a form page
	if ( ! self.initForm ){
		return;
	}
	
	$('#form_msg').hide().after('<a class="printme" href="/assets/templates/popup.html">Bekijk uw aanvraag</a>');
	
	
	
	// Create popup with contents
	$('a.printme').click( function() {
		
		printme = window.open(this.href, '_blank', 'width=600,height=600,scrollbars=yes');
		
		if (window.focus) {printme.focus()}
				
		printme.document.onreadystatechange = function(){
			if(this.readyState == 'complete')
			{
				printme.document.getElementById('print').innerHTML = $('#form_msg').html().replace(/\n/g, '<br>');
			}
		}
	   
		printme.onload = function() {
			printme.document.getElementById('print').innerHTML = $('#form_msg').html().replace(/\n/g, '<br>');
		};
		return false;
	});
	
	
	// Create popup links
	$('a.popup').click( function() {
	        window.open(this.href, 'AlgemeneVoorwaardenPsyon', 'width=600,height=600,scrollbars=yes');
	        return false;
	    });
	
	
	if( ! $('form.gen_form').length)
	{
		return;
	}
	
	// Get the id's for the remebered fields
	$("#aanvrager input,#aanvrager select").each(function(){ fields.push(this.id); });
	
	var accordion;
	
	// Add checkbox for 'anders'
	$('#anders_l').prepend('<input type="checkbox" id="anders_check" name="P[]" value="P8"/>').addClass('checkbox');
	
	// Add error msg inside span
	$('#anders_l span').append('<label for="anders" class="error">Dit is een verplicht veld.</label>')
	
	// Set the validation plugin
	var validation = $(".gen_form").validate();
		
	// Add rules for required checkboxes
	$('#onderzoek div').append('<label for="P[]" class="error">Kies minstens één onderzoek.</label>');
	$("#P1").rules("add", {required: true});
		
	// Hide wett reg. chooser until wett reg is yes
	$('#wettelijke_welke_l').hide();
	$('#wettelijke_reg').change(function(){$('#wettelijke_welke_l').toggle()});
	
	// Hide taal input until tolk is yes
	$('#taal_l').hide();
	$('#tolk').change(function(){$('#taal_l').toggle()});
	
	// Hide verzuim sinds input until verzuim is yes
	$('#verzuim_sinds_l').hide();
	$('#verzuim').change(function(){$('#verzuim_sinds_l').toggle()});
	
	// Hide verzuim sinds input until verzuim is yes
	$('#behandeling_bij_l').hide();
	$('#behandeling').change(function(){$('#behandeling_bij_l').toggle()});
	
	// Remove required asterisk (requested by client)
	$('#onderzoek legend span').html('C. Gevraagd onderzoek')
	
	// Move text input inside span
	$('#anders').appendTo('#anders_l span');
	set_anders();
	
	$('#anders_check').click(function(){set_anders()});
	
	// Show/hide anders field
	function set_anders()
	{
		if($('#anders_check:checked').length)
		{
			$('#anders').show();
			$('#anders').rules("add", {required:true});
		}
		else
		{
			$('#anders').hide();
			$('#anders').rules("remove");
			$('#anders').valid();
		}
	}
	
	$('#algvoorw_l').append('<label for="algvoorw" class="error" >U dient de algemene voorwaarden te accepteren.</label>');
	
	// Remember input
	$('<label for="remember" class="checkbox"><input type="checkbox" id="remember" name="remember" value="" class="checkbox"><span>Onthoud mijn gegevens</span></label>').appendTo('fieldset div:first').click(function(){go_back(this)});
	
	// Check cookie now the remember input is in place.
	checkRememberCookie();
	
	// Hide file inputs until upload check is checked
	hideRemoveFileInput()
	
	// Change visability of file inputs
	$('#upload_check').change(function(){hideRemoveFileInput()});
	
	function hideRemoveFileInput()
	{
		if($('#upload_check').val() == '0')
		{
			$('label.file').hide();
		}
		else
		{
			$('label.file').show();
		}
	}
	
	// Add custom validator function for file uploads
	jQuery.validator.addMethod("upload", function(value, element) {
		valid = (value == '0') || (value != '0' && $('input.file:first').val() != '' );
		return valid;
	}, "Selecteer een bestand om mee te sturen.");
	
	$('#upload_check').rules('add', 'upload');
	
	// Remove file inputs from form on submit if upload check is unchecked
	$(".gen_form").submit(function(){
		if( $(".gen_form").valid() && $('#upload_check').val() == '0'){
			$('label.file').remove();
			// ADD js input
			$('<input type="hidden" name="js" value="1">').appendTo('.gen_form');
		}
	});
	
	// uncomment the next three lines to enable the accordion plugin
	$('<b class="formbutton">Ga terug</b>').appendTo('fieldset div:not(:first)').click(function(){go_back(this)});
	$('<b class="formbutton go">Ga verder</b>').appendTo('fieldset div:not(:last)').click(function(){validate(this)});
	accordion = $('form').accordion({ header: 'legend', animated: "easeslide", autoHeight: false });
	
	// Remove click events from legend
	$('form legend').unbind().css('cursor','auto');
	
	
	// Count the panels
	accordion_panels = $('form fieldset').length;
	
	
	function validate(el)
	{
		// Get the active panel
		active = accordion.accordion( "option", "active" );
		
		if($('.gen_form fieldset').eq(active).find('input, textarea, select').valid())
		{
			accordion.accordion( "option", "active", Math.min(active + 1, accordion_panels)  );
		}
	}
	function go_back(el)
	{
		active = accordion.accordion( "option", "active" );
		accordion.accordion( "option", "active", Math.max(active - 1, 0) );
	}
	
	jQuery.extend(jQuery.validator.messages, {
	        required: "Dit is een verplicht veld.",
	        remote: "Controleer dit veld.",
	        email: "Vul hier een geldig e-mailadres in.",
	        url: "Vul hier een geldige URL in.",
	        date: "Vul hier een geldige datum in.",
	        dateISO: "Vul hier een geldige datum in (ISO-formaat).",
	        number: "Vul hier een geldig getal in.",
	        digits: "Vul hier alleen getallen in.",
	        maxlength: jQuery.validator.format("Vul hier maximaal {0} tekens in."),
	        minlength: jQuery.validator.format("Vul hier minimaal {0} tekens in."),
	        rangelength: jQuery.validator.format("Vul hier een waarde in van minimaal {0} en maximaal {1} tekens."),
	        range: jQuery.validator.format("Vul hier een waarde in van minimaal {0} en maximaal {1}."),
	        max: jQuery.validator.format("Vul hier een waarde in kleiner dan of gelijk aan {0}."),
	        min: jQuery.validator.format("Vul hier een waarde in groter dan of gelijk aan {0}.")
	});
	
	
}

// If attachment is added or removed
function update_submit()
{
	$('#upload_check').valid();
}
