$(document).ready(function(){
	initAanmelden();
	initGallery();
	initValidation();
	initPopupImage();
	
	clearFormFields({
		clearInputs: true,
		clearTextareas: true,
		passwordFieldText: true,
		addClassFocus: "focus",
		filterClass: "default"
	});
	
	if (window.initMap) { initMap() };
});

function initPopupImage() {
	$("a[rel^='popupImage']").prettyPhoto({
		animation_speed:'fast',
		theme:'facebook',
		counter_separator_label: ' van ',
		social_tools:false,
		slideshow: false,
		overlay_gallery: false,
		deeplinking: false
	});
}

function initAanmelden(){
	var scroller = $('#scroller');
	var btns = $('.btn-aanmelden');
	var form = $('#course_submit');
	var btn_back = $('#btn_aanmelden_back');
	var btn_submit = $('#btn_aanmelden_submit');
	var course_name = $('#course_name');
	var course_time = $('#course_time');
		
	btns.click(function(e){
		e.preventDefault();
		course_name.text($(this).parent().find('.btn-course').attr('title'));
		course_time.text($(this).parent().find('.time').text());
		$('#cursus_field').val($(this).parent().find('.btn-course').attr('title'));
		$('#cursus_tijd_field').val($(this).parent().find('.time').text());
		
		scroller.animate({
			'margin-left': -240
		});
	});
	btn_back.click(function(e){
		e.preventDefault();
		scroller.animate({
			'margin-left': 0
		});
	});
	btn_submit.click(function(e){
		e.preventDefault();		
		form.submit();
	});
	
	$("select, input:checkbox, input:radio, input:file").uniform();
}

function initGallery() {
	
	$('div.slider').slides({
		preload: true,
		preloadImage: '/assets/images/slides/loading.gif',
		play: 5000,
		pause: 2500,
		hoverPause: true
	});
	
}

function initValidation() {
	/*
	 * Translated default messages for the jQuery validation plugin.
	 * Locale: NL
	 */
	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.",
	        creditcard: "Vul hier een geldig creditcardnummer in.",
	        equalTo: "Vul hier dezelfde waarde in.",
	        accept: "Vul hier een waarde in met een geldige extensie.",
	        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}.")
	});
	
	$('#contact_form').validate();
}

//clear form fields
function clearFormFields(o)
{
	if (o.clearInputs == null) o.clearInputs = true;
	if (o.clearTextareas == null) o.clearTextareas = true;
	if (o.passwordFieldText == null) o.passwordFieldText = false;
	if (o.addClassFocus == null) o.addClassFocus = false;
	if (!o.filter) o.filter = "default";
	if(o.clearInputs) {
		var inputs = document.getElementsByTagName("input");
		for (var i = 0; i < inputs.length; i++ ) {
			if((inputs[i].type == "text" || inputs[i].type == "password") && !inputs[i].className.indexOf(o.filterClass)) {
				inputs[i].valueHtml = inputs[i].value;
				inputs[i].onfocus = function ()	{
					if(this.valueHtml == this.value) this.value = "";
					if(this.fake) {
						inputsSwap(this, this.previousSibling);
						this.previousSibling.focus();
					}
					if(o.addClassFocus && !this.fake) {
						this.className += " " + o.addClassFocus;
						this.parentNode.className += " parent-" + o.addClassFocus;
					}
				}
				inputs[i].onblur = function () {
					if(this.value == "") {
						this.value = this.valueHtml;
						if(o.passwordFieldText && this.type == "password") inputsSwap(this, this.nextSibling);
					}
					if(o.addClassFocus) {
						this.className = this.className.replace(o.addClassFocus, "");
						this.parentNode.className = this.parentNode.className.replace("parent-"+o.addClassFocus, "");
					}
				}
				if(o.passwordFieldText && inputs[i].type == "password") {
					var fakeInput = document.createElement("input");
					fakeInput.type = "text";
					fakeInput.value = inputs[i].value;
					fakeInput.className = inputs[i].className;
					fakeInput.fake = true;
					inputs[i].parentNode.insertBefore(fakeInput, inputs[i].nextSibling);
					inputsSwap(inputs[i], null);
				}
			}
		}
	}
	if(o.clearTextareas) {
		var textareas = document.getElementsByTagName("textarea");
		for(var i=0; i<textareas.length; i++) {
			if(textareas[i].className.indexOf(o.filterClass)) {
				textareas[i].valueHtml = textareas[i].value;
				textareas[i].onfocus = function() {
					if(this.value == this.valueHtml) this.value = "";
					if(o.addClassFocus) {
						this.className += " " + o.addClassFocus;
						this.parentNode.className += " parent-" + o.addClassFocus;
					}
				}
				textareas[i].onblur = function() {
					if(this.value == "") this.value = this.valueHtml;
					if(o.addClassFocus) {
						this.className = this.className.replace(o.addClassFocus, "");
						this.parentNode.className = this.parentNode.className.replace("parent-"+o.addClassFocus, "");
					}
				}
			}
		}
	}
	function inputsSwap(el, el2) {
		if(el) el.style.display = "none";
		if(el2) el2.style.display = "inline";
	}
}

