    var valid = new Object();

    // REGEX Elements
		valid.text = /^\w+$/;
		valid.Ftext = /^([!-JVû-üþ~-Õ\.\-_'" ])+$/;

		valid.free = /[^ ]/;
		
		valid.password = /^(\w| |.){6,12}$/;

        valid.name = /^[a-z]+( [a-z]+){0,3}$/i;
		valid.Fname = /^[!-JVû-üþ~-Õ]+( [!-JVû-üþ~-Õ]+){0,2}$/;

        valid.integer = /^\d+$/;
        
        valid.cNumber = /^\d(\d|[\-\.\/\\_])*$/;
        
        valid.float = /^\d*(\.\d+)?$/;
        
        //valid.phone = /^[1-9]\d{1,2} [2-9]\d{2}-\d+$/;
        valid.phone = /^\+\d{1,3} \d{1,5} \d{3,9}$/;
		
        valid.email = /^[a-z0-9\-\._]+\@(\[?)[a-z0-9\-\.]+\.([a-z]{2,4}|[0-9]{1,3})(\]?)$/i;

        
	function validateRules(theForm) {

		var elArr = theForm.elements;

		for(var i = 0; i < elArr.length; i++) {

			with(elArr[i]) {

				v = elArr[i].rule;

              if(!v) continue;

				var thePat = valid[v];
				var gotIt = value.match(thePat);
				//thePat.exec(value);

              if(!(gotIt||(elArr[i].op&&value==''))){
				alert("Failure to match " + elArr[i].name + " to '" + value +"'");
				if(elArr[i].type!="select-one")elArr[i].select()
				elArr[i].focus();
				return false;
              }
           }
        }

		return true;

    }