// JavaScript Document
function getFlashMovie(movieName) {
	var isIE = navigator.appName.indexOf("Microsoft") != -1;
	return (isIE) ? window[movieName] : document[movieName];
}

function includeFlash(movie,name,w,h,flashvars) {
	if (AC_FL_RunContent == 0) {
		alert("This page requires AC_RunActiveContent.js.");
	} else {
		AC_FL_RunContent(
			'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
			'width', w,
			'height', h,
			'src', movie,
			'quality', 'high',
			'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
			'align', 'middle',
			'play', 'true',
			'loop', 'true',
			'scale', 'noscale',
			'wmode', 'transparent',
			'devicefont', 'false',
			'id', name,
			'bgcolor', '#000000',
			'name', name,
			'menu', 'true',
			'allowFullScreen', 'false',
			'allowScriptAccess','always',
			'movie', movie,
			'flashvars', flashvars,
			'salign', 'top'
			); //end AC code
	}
}


function showObject(obj,show) {
	obj = Dom.get(obj);
	if (show) {
		obj.style.display = "block";
	} else {
		obj.style.display = "none";
	}
}


function showProjectImagesNav(bShow) {
	if (images.length > 1) {
		if (bShow) {
			$('#vorige').show();
			$('#volgende').show();
		} else {
			$('#vorige').hide();
			$('#volgende').hide();
		}
	}
}

function setProjectImage(nr) {
	if (nr >= images.length) nr = 0;
	if (nr < 0) nr = images.length-1;
	
	//set large image
	$('#project_image_large').attr('src',loadingImg);
	$('#project_image_large').attr('src',images[nr]);
	
	//set thumbs
	for (var i = 0; i < images.length; i++) {
		if (i == nr) {
			$('#thumb_'+i).attr('src',imagethumbs_active[i]);
		} else {
			$('#thumb_'+i).attr('src',imagethumbs_inactive[i]);
		}
	}
	
	currentImage = nr;
}

function checkForm(formId) {
	var form = document.getElementById('form_'+formId);
	var elements = form.elements;
	var errorfields = new Array();
	var feedback = '';
	for(var i = 0; i < elements.length; i++) {
		var id_parts = elements[i].id.split("_");
		if (id_parts[0] == 'formitem') {			
			var validationObj = document.getElementById('validate_'+id_parts[1]);
			if (validationObj != null) {
				var validation = validationObj.value;
				if (validation != "" && validation != "none") {
					//validate
					var legal = new Array();
					legal['letters'] = 'abcdefghijklmnopqrstuvwxyz';
					legal['numbers'] = '0123456789';
					legal['letters_numbers'] = 'abcdefghijklmnopqrstuvwxyz0123456789';
					switch (elements[i].type) {
						case 'text':
						case 'textarea':
							switch	(validation) {
								case 'notempty':
									if (elements[i].value == '') {
										errorfields.push(elements[i].title);
										feedback += 'Het veld \''+elements[i].title+'\' is niet ingevuld.<br />';										
									}
									break;
								case 'letters':
								case 'numbers':
								case 'letters_numbers':
									if (elements[i].value == '') {
										errorfields.push(elements[i].title);
										feedback += 'Het veld \''+elements[i].title+'\' is niet ingevuld.<br />';										
									} else {
										if (!validateString(elements[i].value, legal[validation])) {
											errorfields.push(elements[i].title);
											if (validation == 'letters') var only = 'letters';
											if (validation == 'numbers') var only = 'cijfers';
											if (validation == 'letters_numbers') var only = 'letters en cijfers';
											feedback += 'Het veld \''+elements[i].title+'\' mag alleen '+only+' bevatten.<br />';
										}
									}
									break;							
								case 'email':
									if (!validateEmail(elements[i].value)) {
										errorfields.push(elements[i].title);
										feedback += 'Het veld \''+elements[i].title+'\' is geen correct e-mailadres.<br />';
									}
									break;
								case 'postal':
									if (elements[i].value == '') {
										errorfields.push(elements[i].title);
										feedback += 'Het veld \''+elements[i].title+'\' is niet ingevuld.<br />';										
									} else {
										// 1234AB
										if (elements[i].value.length != 6) {
											errorfields.push(elements[i].title);
											feedback += 'Het veld \''+elements[i].title+'\' moet 6 karakters bevatten.<br />';
										} else {
											var numbers = elements[i].value.substr(0,4);
											var letters = elements[i].value.substr(4,2);
											if (!validateString(numbers, legal['numbers']) || !validateString(letters, legal['letters'])) {
												errorfields.push(elements[i].title);
												feedback += 'Het veld \''+elements[i].title+'\' is geen correcte postcode.<br />';
											}
										}
									}
									break;
							}
							break;
						case 'checkbox':
							//str += "Value:" + elements[i].checked + "\n";
							if (validation == 'notempty' && !elements[i].checked) {
								errorfields.push(elements[i].title);
								feedback += 'Het veld \''+elements[i].title+'\' moet worden aangevinkt.<br />';
							}
							break;
						case 'select-multiple':
							var selected = new Array(); 
							for (var j = 0; j < elements[i].options.length; j++) {
								if (elements[i].options[j].selected) selected.push(elements[i].options[j].value);
							}
							if (validation == 'notempty' && selected.length == 0) {
								errorfields.push(elements[i].title);
								feedback += 'Bij het veld \''+elements[i].title+'\' is geen keuze gemaakt.<br />';
							}
							break;
					}
				}
			}
		}
	}
	
	if (errorfields.length == 0) {
		//no errors -> submit form
		form.submit();
	} else {
		//display errors
		$('#feedback_'+formId).html(feedback);
		$('#feedback_'+formId).removeClass("feedback_green");
		$('#feedback_'+formId).addClass("feedback_red");
		window.location.hash = 'pointer_'+formId;
	}
}

/* form field checks */
function validateString(string,legal) {
	if (string == '') return false;
	string = string.toLowerCase();
	for (var i = 0; i < string.length; i++) {
		if (legal.indexOf(string.charAt(i)) == -1) {
			return false;
		}
	}
	return true;
}

function validateEmail(address) {
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	return reg.test(address);
}


function imgSwap (oImg) {
	var strOver  = "_ro"
	var strOff = "_off"
	var strImg = oImg.src
	if (strImg.indexOf(strOver) != -1) 
		oImg.src = strImg.replace(strOver,strOff)
	else
		oImg.src = strImg.replace(strOff,strOver)
}

function preloadImages() {
	var images = preloadImages.arguments;	
	for (var i=0; i < images.length; i++) {
		if (isArray(images[i])) {
			for (var j=0; j < images[i].length; j++) {
				loadedImage = new Image(); 
				loadedImage.src = images[i][j];
			}
		} else {
			loadedImage = new Image(); 
			loadedImage.src = images[i];
		}
	}
}


function isArray(obj) {
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}

function checkContactForm() {
	var form = document.getElementById('contact_form');
	
	stripHttpFromInput(form);
	stripTagsFromInput(form);
	
	var feedback = '';			
			
	if (form.naam.value == '') {
		feedback += 'Het veld \'Naam\' is niet ingevuld.<br />';										
	}
	
	if (form.email.value == '') {
		feedback += 'Het veld \'E-mail\' is niet ingevuld.<br />';										
	} else {
		if (!validateEmail(form.email.value)) {
			feedback += 'Het veld \'E-mail\' is geen correct e-mailadres.<br />';
		}	
	}
	
	if (form.bericht.value == '') {
		feedback += 'Het veld \'Bericht\' is niet ingevuld.<br />';										
	}

	if (form.captcha == undefined) {
		//no captcha
		if (feedback == '') {
			//no errors -> submit form
			form.submit();
		} else {
			//display errors
			$('#feedback').html(feedback);
			$('#feedback').removeClass("feedback_green");
			$('#feedback').addClass("feedback_red");
		}
	} else {
		$.ajax({
			type: 'POST',
			data: {	code: form.captcha.value
					},
			url: "captcha/check.php"+'?uniq='+Math.random(),
			success: function(response) {
				if (response != 'OK') {
					feedback += 'Het veld \'Code\' is niet correct ingevuld.<br />';
				}
				if (feedback == '') {
					//no errors -> submit form
					form.submit();
				} else {
					//display errors
					$('#feedback').html(feedback);
					$('#feedback').removeClass("feedback_green");
					$('#feedback').addClass("feedback_red");
				}
			}
		});	
	}
}

function checkReplyForm() {
	var form = document.getElementById('reply_form');
	
	stripHttpFromInput(form);
	stripTagsFromInput(form);
	
	var feedback = '';			
			
	if (form.naam.value == '') {
		feedback += 'Het veld \'Naam\' is niet ingevuld.<br />';										
	}
	
	if (form.email.value != '' && !validateEmail(form.email.value)) {
		feedback += 'Het veld \'E-mail\' is geen correct e-mailadres.<br />';
	}
	
	if (form.bericht.value == '') {
		feedback += 'Het veld \'Bericht\' is niet ingevuld.<br />';										
	}

	if (form.captcha == undefined) {
		//no captcha
		if (feedback == '') {
			//no errors -> submit form
			form.submit();
		} else {
			//display errors
			$('#feedback').html(feedback);
			$('#feedback').removeClass("feedback_green");
			$('#feedback').addClass("feedback_red");
		}
	} else {
		var path = getRelativePath();
		$.ajax({
			type: 'POST',
			data: {	code: form.captcha.value
					},
			url: path+"captcha/check.php"+'?uniq='+Math.random(),
			success: function(response) {
				//alert(response);
				if (response != 'OK') {
					feedback += 'Het veld \'Code\' is niet correct ingevuld.<br />';
				}
				if (feedback == '') {
					//no errors -> submit form
					form.submit();
				} else {
					//display errors
					$('#feedback').html(feedback);
					$('#feedback').removeClass("feedback_green");
					$('#feedback').addClass("feedback_red");
				}
			}
		});	
	}
}

function getRelativePath() {	
	var path_name = document.location.pathname;
	
	//rootdirname in index.php
	path_name = path_name.replace(rootdirname,'');	
	var path_items = path_name.split("/");
	var rel_path = '';
	for (var i = 0; i < path_items.length-1; i++) {
		rel_path += '../';
	}
	return rel_path;
}

function stripHttpFromInput(formObj) {
	for(i = 0; i < formObj.elements.length; i++) {
		var field = formObj.elements[i];
		if (field.name != '' && (field.type == 'text' || field.type == 'hidden' || field.type == 'textarea') && field.value != '') {
			field.value = field.value.replace(/http:\/\//gi,"");
		}
	}
}

function stripTagsFromInput(formObj) {
	for(i = 0; i < formObj.elements.length; i++) {
		var field = formObj.elements[i];
		if (field.name != '' && (field.type == 'text' || field.type == 'hidden' || field.type == 'textarea') && field.value != '') {
			var tag = /<\S[^>]*>/g; 
			field.value = field.value.replace(tag,""); 
		}
	}
}

function newCaptcha(url) {
	$('#captcha_img').attr('src',url+'?uniq='+Math.random());
}

//newsletter
function newsletterEmailFocus() {
	if ($('#newsletter_email').val() == 'uw e-mailadres') {
		$('#newsletter_email').val('');
	}
}

function newsletterEmailBlur() {
	if ($('#newsletter_email').val() == '') {
		$('#newsletter_email').val('uw e-mailadres');
	}
}

function newsletterSignup() {
	var feedback = '';
	if ($('#newsletter_email').val() == '') {
		feedback += 'Er is geen e-mailadres ingevuld.<br />';										
	} else {
		if (!validateEmail($('#newsletter_email').val())) {
			feedback += 'Dit is geen correct e-mailadres.<br />';
		}	
	}
	if (feedback == '') {
		//no errors -> submit form
		$.ajax({
			type: 'POST',
			data: {	email: $('#newsletter_email').val()
					},
			url: "inschrijven_nieuwsbrief.php",
			success: function(response) {
				//display feedback
				if (response == 'OK') {
					$('#feedback').html('Bedankt voor uw inschrijving. Binnenkort ontvangt u de Limoen nieuwsbrief in uw mailbox!');
					$('#feedback').removeClass("feedback_red");
					$('#feedback').addClass("feedback_green");
					$('#feedback').css('margin','6px 0 6px 0');
				} else {
					$('#feedback').html('Er is een technische fout opgetreden. Probeer het later nogmaals.');
					$('#feedback').removeClass("feedback_green");
					$('#feedback').addClass("feedback_red");
					$('#feedback').css('margin','6px 0 6px 0');
				}
			}
		});
	} else {
		//display errors
		$('#feedback').html(feedback);
		$('#feedback').removeClass("feedback_green");
		$('#feedback').addClass("feedback_red");
		$('#feedback').css('margin','6px 0 6px 0');
	}
}