﻿//<![CDATA[
function ValidateAll(form,action,lan) {
	if (form.vercode) {
		if(CheckField(form.vercode.value,form.elements['vercode'].id.replace(/_/gi," "),lan,'1','') == false) return false; // 1 = verplicht veld
	}
	if (form.sender_name) {
		if(CheckField(form.sender_name.value,form.elements['sender_name'].id.replace(/_/gi," "),lan,'0','name') == false) return false; // 1 = verplicht veld
	}
	if (form.sender_comment) {
		if(CheckField(form.sender_comment.value,form.elements['sender_comment'].id.replace(/_/gi," "),lan,'0','') == false) return false; // 1 = verplicht veld
	}

	if (form.vote) {
		for (i=0;i<form.vote.length;i++) {
			if (form.vote[i].checked) {
				user_input = form.vote[i].value;
				return true;
			}
		}	
		switch (lan){
			case "de":
			alert(" ");
			break;
			case "es":
			alert("¡Seleciona tu vota!");
			break;
			case "fr":
			alert(" ");
			break;
			case "it":
			alert(" ");
			break;
			case "nl":
			alert("Selecteer je stem!");
			break;
			case "pt":
			alert(" ");
			break;
			case "se":
			alert(" ");
			break;
			
			default:
			alert("Choose you vote!");
		}
		return false;		
	}
	
	return true;
}


function StripSpacesFromEnds(s) {
	while((s.indexOf(' ',0) == 0) && (s.length > 1)) {
	s = s.substring(1,s.length);
	}
	while((s.lastIndexOf(' ') == (s.length - 1) && (s.length > 1))) {
		s = s.substring(0,(s.length - 1));
	}
	if((s.indexOf(' ',0) == 0) && (s.length == 1)) s = '';
	return s;
}

function IsItPresent(s) {
	s = StripSpacesFromEnds(s);
	if(s.length) 
	return s;
}

function CheckCaps(val,texfield,lan) {
	var regexp = /[A-Z]/g;
	if (val.match(regexp)) {
		var text = val;
		var matchList = text.match(regexp); 
		var percentage = matchList.length/text.length * 100 ;  
		if ( percentage > 34 ) {  
			var amount = matchList.length;
			switch (lan){
				case "nl":
				alert(texfield + " bevat te veel hoofdletters:\n" + amount + " hoofdletters geteld\n\nVerander de hoofdletters in kleine letters. Bedankt!");
				break;
				case "en":
				alert(texfield + " contains too many capitals:\n" + amount + " capital letters are count\n\nPlease change them to small letters. Thanks!");
				break;
				case "de":
				alert(texfield + " \n");
				break;
				default:
				alert(texfield + " contiene demasiadas mayusculas:\n" + amount + " mayusculas contadas\n\n Por favor use minusculas en sus textos. ¡Gracias!");
			}
			return false;
		}
	}
	return true;
}
function ChangeCaps(val,texfield,lan) {
	var i = val.indexOf('  ',0);
	while(i > -1) {
		val = val.substring(0,(i + 1)) +
		val.substring((i + 2),val.length);
		i = val.indexOf('  ',0);
	}
	val = val.toLowerCase();
	var s = new String(val.substring(0,1));
	s = s.toUpperCase();
	val = s + val.substring(1,val.length);
	i = val.indexOf(' ',0);
	if(i == (val.length - 1)) i = -1;
	var ts = new String("");
	var j = 0;
	while(i > -1) {
		i++;
		j = i + 1;
		s = val.substring(i,j);
		s = s.toUpperCase();
		ts = '';
		if(i > 0) ts = val.substring(0,i);
		val = ts + s + val.substring(j,val.length);
		i = val.indexOf(' ',j);
		if(i == (val.length - 1)) i = -1;
	}
	document.getElementById(texfield).value = val;
}

function CheckYouTube(val,texfield,lan) {
	var v = new RegExp();
	v.compile("^http://www.youtube.com/watch[\?\]+v[=]+[A-Za-z0-9-_-]+$");
	var field = "youtube";
	if (val && (!v.test(val))) {
		switch (lan){
			case "nl":
			alert(texfield + " is niet geldig\nHet zier er bijvoorbeeld zo uit:\nhttp://www.youtube.com/watch?v=RkRxGEASW_A");
			break;
			case "en":
			alert(texfield + " it not valid\nIt have to look this:\nhttp://www.youtube.com/watch?v=RkRxGEASW_A");
			break;
			case "de":
			alert(texfield + " \n");
			break;
			default:
			alert(texfield + " no es válido\nTiene que parecer así:\nhttp://www.youtube.com/watch?v=RkRxGEASW_A");
		}
		return false;
	}
	return true;
}

function CheckURL(val,texfield,lan) {
	var v = new RegExp();
	v.compile("^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$");

	if ((val) && (!v.test(val))) {
		switch (lan){
			case "nl":
			alert(texfield + " is geen geldige url\nHet moet beginnen met http:// en ziet er bijvoorbeeld zo uit:\nhttp://www.worldweatherweb.com/");
			break;
			case "en":
			alert(texfield + " does not contain a valid URL\nIt has to start with http:// and looks like this:\nhttp://www.worldweatherweb.com/");
			break;
			case "de":
			alert(texfield + " \n");
			break;
			default:
			alert(texfield + " no contiente una dirección válida\nTiene que empezar con http:// y parece a este ejemplo:\nhttp://www.worldweatherweb.com/");
		}
		return false;
	}
	return true;
}

function CheckRSSURL(val,texfield,lan) {
	var v = new RegExp();
	v.compile("^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$");

	if ((val) && (!v.test(val))) {
		switch (lan){
			case "nl":
			alert(texfield + " is geen geldige url\nHet moet beginnen met http:// en ziet er bijvoorbeeld zo uit:\nhttp://www.worldweatherweb.com/feeds.xml");
			break;
			case "en":
			alert(texfield + " does not contain a valid URL\nIt has to start with http:// and looks like this:\nhttp://www.worldweatherweb.com/feeds.xml");
			break;
			case "de":
			alert(texfield + " \n");
			break;
			default:
			alert(texfield + " no contiente una dirección válida\nTiene que empezar con http:// y parece a este ejemplo:\nhttp://www.worldweatherweb.com/feeds.xml");
		}
		return false;
	}
	return true;
}

function CheckPrice(val,texfield,lan) {
	var v = new RegExp();
	v.compile("^[0-9-_.,]+$");

	if ((val) && (!v.test(val))) {
		switch (lan){
			case "nl":
			alert(texfield + " is niet geldig. Dit veld mag alleen nummers, punten of komma's bevatten");
			break;
			case "en":
			alert(texfield + " is not valid. This field can only contain numbers, dots or commas");
			break;
			case "de":
			alert(texfield + " \n");
			break;
			default:
			alert(texfield + " no es válido. Este campo solo puede tener números, puntos o commas");
		}
		return false;
	}
	return true;
}

function CheckEmail(s_email,texfield,lan) {
	var i = s_email.indexOf(' ',0);
	while(i > -1) {
		s_email = s_email.substring(0,i) +
		s_email.substring((i + 1),s_email.length);
		i = s_email.indexOf(' ',0);
	}

	if((s_email.length < 6) ||
	(s_email.indexOf('@',0) < 1) ||
	(s_email.lastIndexOf('@') != s_email.indexOf('@',0)) ||
	(s_email.lastIndexOf('@') > (s_email.length - 5)) ||
	(s_email.lastIndexOf('.') > (s_email.length - 3)) ||
	(s_email.lastIndexOf('.') < (s_email.length - 4)) ||
	(s_email.indexOf('..',0) > -1) ||
	(s_email.indexOf('@.',0) > -1) ||
	(s_email.indexOf('.@',0) > -1) ||
	(s_email.indexOf(',',0) > -1)) {
		switch (lan){
			case "nl":
			alert(s_email + " is een ongeldig e-mail adres");
			break;
			case "en":
			alert(s_email + " is an invalid e-mail address required field");
			break;
			case "de":
			alert(s_email + " ");
			break;
			case "fr":
			alert(s_email + ":\n");
			break;
			default:
			alert(s_email + " no es una direccíon de e-mail válida");
		}	
		return false;
	}
	return true;
}

function CheckPrefix(val,texfield,lan) {
	var v = new RegExp();
	v.compile("^[A-Za-z0-9-_]+$");

	if ((val) && (!v.test(val))) {
		switch (lan){
			case "nl":
			alert(texfield + " is geen geldige url\nHet moet beginnen met http:// en ziet er bijvoorbeeld zo uit:\nhttp://www.worldweatherweb.com/feeds.xml");
			break;
			case "en":
			alert(texfield + " does not contain a valid URL\nIt has to start with http:// and looks like this:\nhttp://www.worldweatherweb.com/feeds.xml");
			break;
			case "de":
			alert(texfield + " \n");
			break;
			default:
			alert(texfield + " no contiente una dirección válida\nTiene que empezar con http:// y parece a este ejemplo:\nhttp://www.worldweatherweb.com/feeds.xml");
		}
		return false;
	}
	return true;
}

function CheckColor(val,name,lan) {
	var texfield = name.replace(/_/gi," ");
	var v = new RegExp();
	v.compile("[A-Za-z0-9]");
	val = val.toUpperCase();

	if ( (val.length < 6) || (val && !v.test(val)) ) {
		switch (lan){
			case "de":
			alert(texfield + " ");
			break;
			case "es":
			alert(texfield + " no es un color válido");
			break;
			case "fr":
			alert(texfield + " ");
			break;
			case "it":
			alert(texfield + " ");
			break;
			case "nl":
			alert(texfield + " is geen geldige kleur");
			break;
			case "pt":
			alert(texfield + " ");
			break;
			case "se":
			alert(texfield + " ");
			break;
			
			default:
			alert(texfield + " is not a valid color");
		}
		return false;
	}
	return true;
}

function CheckName(s_name,texfield,lan) {
	var i = s_name.indexOf('  ',0);
	while(i > -1) {
		s_name = s_name.substring(0,(i + 1)) +
		s_name.substring((i + 2),s_name.length);
		i = s_name.indexOf('  ',0);
	}
	s_name = s_name.toLowerCase();
	var s = new String(s_name.substring(0,1));
	s = s.toUpperCase();
	s_name = s + s_name.substring(1,s_name.length);
	i = s_name.indexOf(' ',0);
	if(i == (s_name.length - 1)) i = -1;
	var ts = new String("");
	var j = 0;
	while(i > -1) {
		i++;
		j = i + 1;
		s = s_name.substring(i,j);
		s = s.toUpperCase();
		ts = '';
		if(i > 0) ts = s_name.substring(0,i);
		s_name = ts + s + s_name.substring(j,s_name.length);
		i = s_name.indexOf(' ',j);
		if(i == (s_name.length - 1)) i = -1;
	}
	if (document.forms['propertyaddform']) {
		document.forms['propertyaddform'].company.value = s_name;
	}
	return true;
}

function CheckField(val,name,lan,check,field,caps) {
	var texfield = name.replace(/_/gi," ");
	if (!IsItPresent(val) && check==1) {
		switch (lan){
			case "nl":
			alert(texfield + " is een verplicht veld");
			break;
			case "en":
			alert(texfield + " is a required field");
			break;
			case "de":
			alert(texfield + " ist ein erfordert Feld");
			break;
			case "fr":
			alert(texfield + ":\n");
			break;
			default:
			alert(texfield + " es un campo obligatorio");
		}
		return false;
	}
	if ((field=="youtube" && val) && (CheckYouTube(val,texfield,lan)==false)) return false;
	if ((field=="url" && val) && (CheckURL(val,texfield,lan)==false)) return false;
	if ((field=="rss_url" && val) && (CheckRSSURL(val,texfield,lan)==false)) return false;
	if ((field=="email" && val) && (CheckEmail(val,texfield,lan)==false)) return false;
	if ((field=="name" && val) && (CheckName(val,texfield,lan)==false)) return false;
	if ((field=="price" && val) && (CheckPrice(val,texfield,lan)==false)) return false;

	if (caps=="changecaps") {
		ChangeCaps(val,name,lan);
	}
	else {
		if (CheckCaps(val,texfield,lan)==false) return false;
	}
}

function CheckFile(s_name,name,lan) {
	var s_filetypes = ".jpg;.jpeg;.gif;.tiff;.png;.bmp";
	var texfield = name.replace(/_/gi," ");
	s_filetypes=s_filetypes.toUpperCase();
	s_name=s_name.toUpperCase();

	var pos=s_name.lastIndexOf(".");
	var extension=s_name.substring(pos+1);

	if(s_filetypes.indexOf(extension)==-1) 	{
		switch (lan){
			case "nl":
			alert(texfield + " heeft een ongeldige extensie en zal daarom niet worden geupload");
			break;
			case "en":
			alert(texfield + " has an invalid extension and will not be uploaded");
			break;
			case "de":
			alert(texfield + " ");
			break;
			case "fr":
			alert(texfield + ":\n");
			break;
			default:
			alert(texfield + " tiene una extensión inválida y no se puede añadir");
		}
		return false;
	}
	return true;
}

function CheckDoc(s_name,name,lan) {
	var s_filetypes = ".pdf;.txt;.doc;.docx;.rtf";
	var texfield = name.replace(/_/gi," ");
	s_filetypes=s_filetypes.toUpperCase();
	s_name=s_name.toUpperCase();

	var pos=s_name.lastIndexOf(".");
	var extension=s_name.substring(pos+1);

	if(s_filetypes.indexOf(extension)==-1) 	{
		switch (lan){
			case "nl":
			alert(texfield + " heeft een ongeldige extensie en zal daarom niet worden geupload");
			break;
			case "en":
			alert(texfield + " has an invalid extension and will not be uploaded");
			break;
			case "de":
			alert(texfield + " ");
			break;
			case "fr":
			alert(texfield + ":\n");
			break;
			default:
			alert(texfield + " tiene una extensión inválida y no se puede añadir");
		}
		return false;
	}
	return true;
}
//]]>
