////////////////////////////////////////////////////////////////
// Creation: August 18 2009 by Thanks for the postcard!                                    
////////////////////////////////////////////////////////////////

function removeSpaces(string) 
{
 	return string.split(' ').join('');
}

var wordLimit = 25;
function fCountWords(pObject, pTrackerId)
{
	 var text1 = pObject.value;
	 text1 = text1.trim();
	 var text2 = text1.replace(/\s+/g, ' ');
	 var text3 = text2.split(' ');
	 var numberOfWords = text3.length;
	
	 //write number of words left to another field
	 if (text1 != "")
	 	document.getElementById(pTrackerId).innerHTML = wordLimit - numberOfWords;
	 else
	 	document.getElementById(pTrackerId).innerHTML = wordLimit;
	
	 if(numberOfWords > wordLimit)
	 {
	  	 document.getElementById(pTrackerId).style.color = "#aa0000";
	 }
	 else
	 {
	 	document.getElementById(pTrackerId).style.color = "#000000";
	 }
}

function fValidation_form(pForm, pMessage, pListValidation, pFocus, pErrorEmpty, pErrorEmail, pErrorNumeric, pErrorPassword, pErrorMultipleSelection, pErrorToomany, pErrorInsertData)
{
	var colortext = "";
	var colortexterror = "";
	var color0 = "#fff";
	var color1 = "#fcf765"; // EMPTY
	var color2 = "#8effe8"; // NUMERIC VALUE
	var color3 = "#ffa729"; // EMAIL NOT VALID
	var color4 = "#7d7dfc"; // EMAIL CONFIRMATION
	var color5 = "#ff3829"; // ACCEPT THE TERMS
	var color6 = "#cecece"; // TOO MANY CHARACTERS
	var color7 = "#bbffc1";
	var error1 = "<div class='error_code' style='background: "+color1+";'></div><div class='error_message'>"+pErrorEmpty+"</div>";
	var error2 = "<div class='error_code' style='background: "+color2+";'></div><div class='error_message'>"+pErrorNumeric+"</div>";
	var error3 = "<div class='error_code' style='background: "+color3+";'></div><div class='error_message'>"+pErrorEmail+"</div>";
	var error4 = "<div class='error_code' style='background: "+color4+";'></div><div class='error_message'>"+pErrorPassword+"</div>";
	var error5 = "<div class='error_code' style='background: "+color5+";'></div><div class='error_message'>"+pErrorMultipleSelection+"</div>";
	var error6 = "<div class='error_code' style='background: "+color6+";'></div><div class='error_message'>"+pErrorToomany+"</div>";
	var error7 = "<div class='error_code' style='background: "+color7+";'></div><div class='error_message'>"+pErrorInsertData+"</div>";
	var showError1 = "";
	var showError2 = "";
	var showError3 = "";
	var showError4 = "";
	var showError5 = "";
	var showError6 = "";
	var showError7 = "";
	var message = document.getElementById(pMessage);
	var expressionUrl = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
	var expressionEmail = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	var expressionNumeric = /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;
	var expressionPhone  = /^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$/;

	message.innerHTML = "";
	message.style.background = "transparent";
	message.style.border = "dashed 0px #aaaaaa";
	message.style.padding = "0px 0px 0px 0px";
	message.style.color = "";
	var arrayValidation = pListValidation.split(",");
	
	for (i=0; i < eval("document."+pForm+".length"); i++)
	{
		var type = eval("document."+pForm+"["+i+"]").type;
		var value = eval("document."+pForm+"["+i+"]").value;
		var name = eval("document."+pForm+"["+i+"]").name;
		var parent = eval("document."+pForm+"["+i+"]").parentNode;
		var style = eval("document."+pForm+"["+i+"]").style;
		
		if (type == "checkbox")
		{
			var checked = eval("document."+pForm+"["+i+"]").checked;
			style = eval("document.getElementById('"+name+"_span')").style;
			style.background = "transparent";
			style.color = colortext;
			if (pListValidation.indexOf(name+"(unchecked)") >= 0)
			{
			 	if (checked == false)
			 	{
			 		showError5 = error5;
			 		style.background = color5;
			 		style.color = colortexterror;
				}
			}
		}
		if (type == "text" || type == "textarea" || type == "password" || type == "select" || type == "select-one")
		{
			style.background = color0;
			style.color = colortext;
			if (pListValidation.indexOf(name+"(empty)") >= 0)
			{
			 	if (value == "")
				{
					showError1 = error1;
					style.background = color1;
					style.color = colortexterror;
				}
			}
			if (pListValidation.indexOf(name+"(toomany)") >= 0)
			{
				if (value != "")
				{
					var text1 = value;
					var text2 = text1.replace(/\s+/g, ' ');
					var text3 = text2.split(' ');
					var numberOfWords = text3.length;
					
					if(numberOfWords > wordLimit)
					{
					   	showError6 = error6;
						style.background = color6;
						style.color = colortexterror;
					}
				}
			}
			if (pListValidation.indexOf(name+"(url)") >= 0 && value !="")
			{
				if (value.match(expressionUrl) == null)
				{
					showError2 = error2;
					style.background = color2;
					style.color = colortexterror;
				}
			}
			if (pListValidation.indexOf(name+"(email)") >= 0 && value !="")
			{
				array_email = value.split(";");
				for (a=0;  a< array_email.length; a++)
				{
					var email = array_email[a].replace(/^\s+|\s+$/g,"");
					if (email.match(expressionEmail) == null && email != "")
					{
						showError3 = error3;
						style.background = color3;
						style.color = colortexterror;
					}
				}
			}
			if (pListValidation.indexOf(name+"(numeric)") >= 0 && value !="")
			{
				if (value.match(expressionNumeric) == null)
				{
					showError2 = error2;
					style.background = color2;
					style.color = colortexterror;
				}
			}
			if (pListValidation.indexOf(name+"(confirmation)") >= 0)
			{
				if (value != eval("document."+pForm+".email").value)
				{
					showError4 = error4;
					style.background = color4;
					style.color = colortexterror;
				}
			}
			if (pListValidation.indexOf(name+"(empty)") >= 0)
			{
			 	if (value == "")
				{
					showError1 = error1;
					style.background = color1;
					style.color = colortexterror;
				}
			}
		}
	}
	for (i=0; i < arrayValidation.length; i++)
	{
		if (arrayValidation[i].indexOf("(oneofthese)") >= 0)
		{
			var arrayVar = arrayValidation[i].split("(");
			var arrayField = arrayVar[0].split("-");
			var fieldValue = "";
			style.color = colortext;
			
			for	(var i in arrayField)
 			{
				fieldValue = fieldValue + eval("document."+pForm+"."+arrayField[i]+".value");
			}
			if (fieldValue == "")
			{
				for	(var i in arrayField)
 				{
					style = eval("document."+pForm+"."+arrayField[i]+".style");
					showError2 = error2;
					style.background = color2;
					style.color = colortexterror;
				}
				
			}
			break;
		}
	}
	if (showError1 != "" || showError2 != "" || showError3 != "" || showError4 != "" || showError5 != "" || showError6 != "" || showError7 != "")
		message.innerHTML = "<div class='alert'><div class='message_js'> " + showError1 + showError2 + showError3 + showError4 + showError5 + showError6+ showError7 +"</div></div>";
	if (message.innerHTML != "" )
	{
		//eval("document."+pForm+"."+pFocus).focus();
		document.location.href="#top";
	}
	else
		eval("document."+pForm).submit();
}
