/*
Ver: 1.02
Last Update: 15/08/2001

Input ===> this.form (the form Object to be checked)
Output ==> Boolean result (true/false)

The form element should have these properties :
{
	validate --> either 1 or 0 (check or not).
	regEx --> the first regular expression.
	regEx2 --> the second regular expression.
		*(note)--> the check is regEx or regEx2 but not both.
	caption --> the text you want the user to get.
}

An example of a regular expression :
{
	(.*@{1}.*\..*) --> checks the email to be valid.
	(.{5,7}) --> any text at least 5 chars long but less then 7
	([0-9]) --> just the numeric values.
	(.+) --> any value	(= not empty)
	Note: You don't have to put regEx, if none is present the field is checked to have something.
	Note: You can read all about Regular Expressions in the MSDN Library.
}

** <select name="a3" validate=1 caption="select?!" regEx="([1-9])">
**
** <input type="radio" name="a2" value="1" validate=1 caption="radio" regEx="([1-2])">yes&nbsp;&nbsp;
** <input type="radio" name="a2" value="2" >no&nbsp;&nbsp;radio<br />
*/

var aRegEx=new Array();
aRegEx[0]=".+";//Any Chars
aRegEx[1]="(^(\d*)(\.{0,1})(\d*$))";//Integer or Float
aRegEx[2]="(.*@{1}.*\..*)";//Email

function checkForms(brFormObj)
{
	var xx,ff,flag;
	var valValue;
		// if valVlue =1 --> the field is a must, and the content should be checked !
		// if valVlue =2 --> the field should be checked only if it has data!
	flag=0;
	var formObj=brFormObj;
	var elmLength=formObj.elements.length;
	var i,globalAlertString="";
	for(i=0;i<elmLength;i++)
	{
		if(eval(formObj.elements[i].validate))
		{
			valValue = eval(formObj.elements[i].validate);	//**
			
		    if (formObj.elements[i].type=="radio")
			{
				var rName = formObj.elements[i].name;
				for(k=0;k<eval("formObj."+rName+".length");k++){
	   				if(eval("formObj."+rName+"["+k+"].checked")){flag=1;break} }
				if (flag==0) {globalAlertString+=formObj.elements[i].caption+'\n';}
				flag=0;
   			}
		    else if (formObj.elements[i].type=="checkbox")
			{
				flag=0;
				var rName = formObj.elements[i].name;
			    if(eval("formObj."+rName+".checked")){flag=1;}
			    if (flag==0) {globalAlertString+=formObj.elements[i].caption+'\n';}
				flag=0;
   			}
			else
			{

				if (valValue==1) globalAlertString+=checkItem(formObj.elements[i]);
				else if ((formObj.elements[i].value.length>0)&&(valValue==2)) globalAlertString+=checkItem(formObj.elements[i]);
			}
			//focusMe(formObj.elements[i].name);
		}
	}
	
	if(globalAlertString.length)
	{
		//alert("ops");
		alert(globalAlertString);
		return false;
	}
	return true;
}

function checkItem(item)
{
	var item=item;
	var regEx,result=true,result2=false;
	var regExString;
			
	if(item.regEx!=null)
	{
		result=checkRegEx(item,"regEx");
		if(item.regEx2!=null)
			result2=checkRegEx(item,"regEx2");
		
		result^=result2;
	}
	else
		result=item.length;
			
	if(!result)
	{
		//focusMe(item.name);
		return item.caption+"\t\n";
	}
	else
		return "";
}

function checkRegEx(item,regExAttName)
{
		var regExString,regEx;
		var regExValue=eval("item."+regExAttName);
		regExString=(isNaN(regExValue))?regExValue:aRegEx[regExValue];
		regEx=new RegExp(regExString,"gi");
		return regEx.test(trim(item.value));	
}

function trim (pString)  {
     for (i = 0; i < pString.length  && pString.charAt(i) == " "; i++);
   for (j = pString.length-1; j >= 0 && pString.charAt(j) == " "; j--);
      return ((j < i) ? '' : pString.substring(i,j+1));
  }
