// formFilter v1.0, created by [P]Los! '2001
function browserCheck() {
	var b = navigator.appName;
	if (b=="Netscape") this.b = "ns";
	else if (b=="Microsoft Internet Explorer") this.b = "ie";
	else this.b = b;
	this.v = parseInt(navigator.appVersion);
	this.ns = (this.b=="ns" && this.v>=4);
	this.ns4 = (this.b=="ns" && this.v==4);
	this.ns5 = (this.b=="ns" && this.v==5);
	this.ie = (this.b=="ie" && this.v>=4);
	this.ie4 = (navigator.userAgent.indexOf('MSIE 4')>0);
	this.ie5 = (navigator.userAgent.indexOf('MSIE 5')>0);
	if (this.ie5) this.v = 5;
	this.min = (this.ns||this.ie);
}
is = new browserCheck();
 
function fnIsNum(sValue) {
	return (!isNaN(sValue) && (sValue!=""))
}
		
function fnIsEMailAddress(sValue) {
	return ((sValue.indexOf("@")>=1)&&(sValue.length>=6));
}
		
function fnIsWebAddress(sValue) {
	return ((sValue.indexOf("http://")>=0)&&(sValue.length>=11));
}

function fnGetSubString(sValue,sSeparator,iStrPosition) {
	var iSubStrCounter=0;
	var sToReturn="";
	for (iSubStrCounter=0;iSubStrCounter<iStrPosition;iSubStrCounter++){
		sToReturn=sValue.substr(0,sValue.indexOf(sSeparator,0));
		sValue=sValue.substr(sValue.indexOf(sSeparator,0)+1,sValue.length);				
	}		
	return sToReturn;
}
		
function fnFormFilter(formObject, sErrorColor, sCorrectColor) {
	var bValid=true;
	var strTemp="";
	var sMessageError="";
	var sFieldName="";
	var iObjectCounter=0;
	if (is.ns) {
		var iFormFieldNumber=eval("document."+formObject.name+".elements.length");
	}else{
		var iFormFieldNumber=document.all(formObject.name).length;
	}
	for (iObjectCounter=0; iObjectCounter<iFormFieldNumber; iObjectCounter++){
		if (is.ns) {
			if ((eval("document."+formObject.name+".elements["+iObjectCounter+"].type")=="text")||(eval("document."+formObject.name+".elements["+iObjectCounter+"].type")=="textarea")||(eval("document."+formObject.name+".elements["+iObjectCounter+"].type")=="password")){
				if (fnGetSubString(eval("document."+formObject.name+".elements["+iObjectCounter+"].id"),"#",2)=="EMAIL"){
					if (!fnIsEMailAddress(eval("document."+formObject.name+".elements["+iObjectCounter+"].value"))){
						bValid=false;
						eval("document."+formObject.name+".elements["+iObjectCounter+"].value=''");
						eval("document."+formObject.name+".elements["+iObjectCounter+"].style.backgroundColor='"+sErrorColor+"'");
						sMessageError+="El campo "+fnGetSubString(eval("document."+formObject.name+".elements["+iObjectCounter+"].id"),"#",3)+" ha de ser un correo electrónico\n";
					}else{
						eval("document."+formObject.name+".elements["+iObjectCounter+"].style.backgroundColor='"+sCorrectColor+"'");
					}											
				}else if (fnGetSubString(eval("document."+formObject.name+".elements["+iObjectCounter+"].id"),"#",2)=="WEB"){
					if (!fnIsWebAddress(eval("document."+formObject.name+".elements["+iObjectCounter+"].value"))){
						bValid=false;
						eval("document."+formObject.name+".elements["+iObjectCounter+"].value=''");
						eval("document."+formObject.name+".elements["+iObjectCounter+"].style.backgroundColor='"+sErrorColor+"'");
						sMessageError+="El campo "+fnGetSubString(eval("document."+formObject.name+".elements["+iObjectCounter+"].id"),"#",3)+" ha de ser una dirección web\n";							
					}else{
						eval("document."+formObject.name+".elements["+iObjectCounter+"].style.backgroundColor='"+sCorrectColor+"'");
					}
				}else if (fnGetSubString(eval("document."+formObject.name+".elements["+iObjectCounter+"].id"),"#",2)=="NUMBER"){
					if (!fnIsNum(eval("document."+formObject.name+".elements["+iObjectCounter+"].value"))){					
						bValid=false;
						eval("document."+formObject.name+".elements["+iObjectCounter+"].value=''");
						eval("document."+formObject.name+".elements["+iObjectCounter+"].style.backgroundColor='"+sErrorColor+"'");
						sMessageError+="El campo "+fnGetSubString(eval("document."+formObject.name+".elements["+iObjectCounter+"].id"),"#",3)+" ha de ser de tipo numérico\n";
					}else{
						eval("document."+formObject.name+".elements["+iObjectCounter+"].style.backgroundColor='"+sCorrectColor+"'");
					}
				}else if (fnGetSubString(eval("document."+formObject.name+".elements["+iObjectCounter+"].id"),"#",2)=="DATE"){
						//  alert("DATE"); // no cal si se li posa el tema del calendari
				}				
				if (fnGetSubString(eval("document."+formObject.name+".elements["+iObjectCounter+"].id"),"#",1)=="REQUIRED"){
					if (eval("document."+formObject.name+".elements["+iObjectCounter+"].value")==""){
						bValid=false;
						eval("document."+formObject.name+".elements["+iObjectCounter+"].value=''");
						eval("document."+formObject.name+".elements["+iObjectCounter+"].style.backgroundColor='"+sErrorColor+"'");
						sMessageError+="El campo "+fnGetSubString(eval("document."+formObject.name+".elements["+iObjectCounter+"].id"),"#",3)+" es obligatorio\n";
					}else{
						eval("document."+formObject.name+".elements["+iObjectCounter+"].style.backgroundColor='"+sCorrectColor+"'");
					}
				}
			} else if (eval("document."+formObject.name+".elements["+iObjectCounter+"].type")=="select-one") {			
				if (eval("document."+formObject.name+".elements["+iObjectCounter+"].value")==fnGetSubString(eval("document."+formObject.name+".elements["+iObjectCounter+"].id"),"#",4)){
					bValid=false;				
					eval("document."+formObject.name+".elements["+iObjectCounter+"].style.backgroundColor='"+sErrorColor+"'");
					sMessageError+="El campo"+fnGetSubString(eval("document."+formObject.name+".elements["+iObjectCounter+"].id"),"#",3)+" es obligatorio\n";
				}else{
					eval("document."+formObject.name+".elements["+iObjectCounter+"].style.backgroundColor='"+sCorrectColor+"'");
				}
			}
		} else {		
			if ((document.all(formObject.name)(iObjectCounter).type=="text")||(document.all(formObject.name)(iObjectCounter).type=="textarea")||(document.all(formObject.name)(iObjectCounter).type=="password")){
				if (fnGetSubString(document.all(formObject.name)(iObjectCounter).id,"#",2)=="EMAIL"){
					if (!fnIsEMailAddress(document.all(formObject.name)(iObjectCounter).value)){
						bValid=false;
						document.all(formObject.name)(iObjectCounter).style.backgroundColor=sErrorColor;
						sMessageError+="El campo "+fnGetSubString(document.all(formObject.name)(iObjectCounter).id,"#",3)+" ha de ser un correo electrónico\n";							
					}else{
						document.all(formObject.name)(iObjectCounter).style.backgroundColor=sCorrectColor;
					}											
				}else if (fnGetSubString(document.all(formObject.name)(iObjectCounter).id,"#",2)=="WEB"){
					if (!fnIsWebAddress(document.all(formObject.name)(iObjectCounter).value)){
						bValid=false;
						document.all(formObject.name)(iObjectCounter).style.backgroundColor=sErrorColor;
						sMessageError+="El campo "+fnGetSubString(document.all(formObject.name)(iObjectCounter).id,"#",3)+" ha de ser una dirección web\n";							
					}else{
						document.all(formObject.name)(iObjectCounter).style.backgroundColor=sCorrectColor;
					}
				}else if (fnGetSubString(document.all(formObject.name)(iObjectCounter).id,"#",2)=="NUMBER"){
					if (!fnIsNum(document.all(formObject.name)(iObjectCounter).value)){
						bValid=false;
						document.all(formObject.name)(iObjectCounter).style.backgroundColor=sErrorColor;
						sMessageError+="El campo "+fnGetSubString(document.all(formObject.name)(iObjectCounter).id,"#",3)+" ha de ser de tipo numérico\n";
					}else{
						document.all(formObject.name)(iObjectCounter).style.backgroundColor=sCorrectColor;
					}
				}else if (fnGetSubString(document.all(formObject.name)(iObjectCounter).id,"#",2)=="DATE"){
						//  alert("DATE"); // no cal si se li posa el tema del calendari
				}
				
				if (fnGetSubString(document.all(formObject.name)(iObjectCounter).id,"#",1)=="REQUIRED"){
					if (document.all(formObject.name)(iObjectCounter).value==""){
						bValid=false;
						document.all(formObject.name)(iObjectCounter).style.backgroundColor=sErrorColor;
						sMessageError+="El campo "+fnGetSubString(document.all(formObject.name)(iObjectCounter).id,"#",3)+" es obligatorio\n";
					}else{
						document.all(formObject.name)(iObjectCounter).style.backgroundColor=sCorrectColor;
					}
				}
			} else if (document.all(formObject.name)(iObjectCounter).type=="select-one") {
				if (document.all(formObject.name)(iObjectCounter).value==fnGetSubString(document.all(formObject.name)(iObjectCounter).id,"#",4)){
					bValid=false;
					document.all(formObject.name)(iObjectCounter).style.backgroundColor=sErrorColor;
					sMessageError+="El campo "+fnGetSubString(document.all(formObject.name)(iObjectCounter).id,"#",3)+" es obligatorio\n";
				}else{
					document.all(formObject.name)(iObjectCounter).style.backgroundColor=sCorrectColor;
				}
			}
		}
	}	
	if (!bValid){
		alert(sMessageError);
	}
	return bValid;
}