/*Main Validator Object */
function Validator(form,rules) {
    this.form = form;
    this.rules = rules;
	this.errors = "";
	this.fields = new Array();
	this.i = 0;
	this.focus = "";
	this.status = true;

    
    
	/* Logic to for field validation set for fields
	   validate function takes a boolean argument 
	   TRUE - execute validation one by one
	   FALSE - execute validation in one go
	*/    
	
	this.validate = function(one) {
		//var rLen = rules.length;
		
		for (var i in this.rules)
		{
			//alert(rules[i].rule+rules[i].name);
			//eval() is used to  evaluate javascript function constructed in run-time
			this.status = this.status & eval("this."+rules[i].rule+"('"+rules[i].name+"','"+rules[i].args+"','"+rules[i].message+"')");
			
			if(one == true && this.status == false) {
				break;
			}
		}
		if(this.status == false) {
			alert(this.fields.join("\n"));
			//this.fields[0].select();
			if (this.focus != "") this.form[this.focus].focus();
		}
		return this.status;
	}


	/* Required rule makes a field mandatory*/
	this.required = function(name,args,message) {

		var field = this.form[name];			

		if (field.type == 'text' ||
			field.type == 'textarea' ||
			field.type == 'file' ||
			field.type == 'select-one' ||
			field.type == 'select-multiple' ||
			field.type == 'radio' ||
			field.type == 'password'){			
			
				var value = '';
				// get field's value
				if(field.type == "select-multiple") {
					var sl = 0;
					for(var c=0; c< field.options.length; c++) {
						if(field.options[c].selected == true) {
							sl++;
						}
					}
					if(sl > 0) {
						value = sl;
					}
				}				

				if (field.type == "select-one") {
					var si = field.selectedIndex;
					if (si >= 0) {
						value = field.options[si].value;
						if(value == -1) {
							value = "";
						}
					}					
				} else {							
					value = field.value;					
				}

				if ((this.trim(value)).length == 0) {				
					this.fields[this.i++] = message;
					this.focus = field.name;
					return false;
				}				
		   }
		
	/*	if (field.type == "checkbox" && !field.checked) {
			this.fields[this.i++] = message;
			this.focus = field.name;
			return false;
		}  */
		
		if(args == "radio"){
			var flag = true;
			for(var j=0;j<field.length;j++){			
				if(field.item(j).checked){				
				  	flag = false;
				  	break;
				  }				 
			}	
			 if(flag){				
				this.fields[this.i++] = message;				
				return false;
			}		
		}
		
		return true;
	}
	


	/*Validate Mask rule matches value against given regular expression */
	this.mask = function(name,args,message) {
	
		var field = this.form[name];
		if (field.type == 'text' ||
			field.type == 'textarea' ||
			field.type == 'password' ) {
				var value = '';
				// get field's value
				var m = new RegExp(args);
	
				if (field.value != "" && !m.exec(this.trim(field.value))) {
					this.fields[this.i++] = message;
					this.focus = field.name;
					return false;
				}
		}
		return true;
	}
	
	this.validateStrength = function(name,args,message) {
	
		var field = this.form[name];
		var sField = this.form[args];
		if(field.value == "0%" || field.value == "25%"){
			this.fields[this.i++] = message;
			this.focus = sField.name;
			return false;
		}
		
		return true;
	}
	
	

	/*Conditional required validation 
	  Provide dependent field name and condition seperated by comma to args variable
	  For Example: You want to make Other Details txt box mandatory,
	  if "Other" (value for Other is 3) option is selected in a select box then rule should be written like:
	  rules[i] = {name:'otherTxt', rule:'requiredif', args:'selectBox,==3',message:'Other text box is required'};
	*/

	this.requiredif = function(name,args,message) {

		var field = this.form[name];
		var value = "";
		var svalue = "";
		var argFields = args.split(",");
		var sfield = this.form[argFields[0]];

		var scond  = argFields[1];
		var bval   = false;
		
		//alert(field.name+""+sfield.type+scond);
		if (field.type == 'text' ||
			field.type == 'textarea' ||
			field.type == 'password') {
				value = field.value;

		}

		if (field.type == "select-one") {
			var si = field.selectedIndex;
			if (si >= 0) {
				value = field.options[si].value == -1 ? "" : field.options[si].value;
				
			}
		}

		if(sfield.type == 'text' ||
		   sfield.type == 'textarea' ||
		   sfield.type == 'password') {
				svalue = sfield.value;
				bval = eval(svalue+scond);
		}

		if (sfield.type == "select-one") {
			var si = sfield.selectedIndex;
			if (si >= 0) {
				svalue = sfield.options[si].value;
			}
		//	alert(' svalue+scond '+svalue+scond);
			bval = eval(svalue+scond);
		}

		if (sfield.type == "select-multiple") {
			for(var c=0; c< sfield.options.length; c++) {
				svalue = sfield.options[c].value;
				if(sfield.options[c].selected == true && eval(svalue+scond)) {
					bval = true;
					break;
				}
			}
		}
		
		if (sfield.type == "checkbox") {
				bval = sfield.checked;				
		}


		if(bval && this.trim(value).length == 0) {
			this.fields[this.i++] = message;
			this.focus = sfield.name;
			return false;
		}
					
		return true;
	}

	/*Check box is mandatory if particular Radio button is selected */
	this.requiredcheckbox = function(name,args,message) {

		var field = this.form[name];
		var value = "";
		var svalue = "";
		var argFields = args.split(",");
		var sfield = this.form[argFields[0]];
		
		var scond  = argFields[1];
		var bval   = false;

		if(sfield[0].type == 'radio') {
			for(var c=0; c<sfield.length;c++) {
                if(sfield[c].checked == true) {
                    svalue = sfield[c].value;
					
				}
			}

			if(typeof(field) == 'object' && field[0].type == 'checkbox') {
				for(var c=0; c<field.length;c++) {
					if(field[0].checked == true) {
						bval = true;
						break;
					}

				}
			}
					

			if(svalue != "" && !bval && eval(svalue+scond)) {
				this.fields[this.i++] = message;
				this.focus = field.name;
				return false;
			}
					
        }
		return true;
	}

	/* Validation Rule for contact number */
	this.validatecontact = function(name,args,message) {

		var field = this.form[name];
		
		var argFields = args.split(",");
		var cfield = argFields[0];
		var sfield = argFields[1];

		var accode   = this.form[cfield].value;
		var stdcode = this.form[sfield].value;
		var anumber  = field.value;
						
		var bval   = true;
		if(this.trim(accode).length == 0 && this.trim(stdcode).length == 0  && this.trim(anumber).length == 0) {
			return true;
		}
		
		if((this.trim(accode).length == 0 || this.trim(stdcode).length == 0  || this.trim(anumber).length == 0)) {
			this.fields[this.i++] = "In Phone Number Country Code,STD Code & Number fields are Mandatory";
			return false;
		}

	//	alert("test"+anumber);				
		if(this.trim(anumber).length > 0) {
			bval = this.validateccode(cfield);
			if(bval == false) { return false; }
			
			if(this.trim(stdcode).length == 0) {
					this.fields[this.i++] = "Please enter the Area/STD Code.";
					return false;
			}
			
			if(this.trim(stdcode).length > 0) {
				var m = new RegExp('^[0-9]*$');
				if (!m.exec(stdcode)) {
					this.fields[this.i++] = "Area/STD Code should be numeric";
					return false;
				}
		
				if(!this.minlength(sfield,2,'Area/STD Code can not be less than 2 digits')) return false;
				if(!this.maxlength(sfield,5,'Area/STD Code can not be more than 5 digits')) return false;
				
			}

			bval = this.validateanumber(name);
			if(bval == false) { return false; }
			
			if(anumber.length < 6){
					this.fields[this.i++] = "Please check the Phone Number, it can not be less than 6 digits long.";
					return false;
			}
			
		}
		return true;
	}

    /* Validates Alternate number field*/
	this.validateanumber = function(field) {
		var anumber = this.trim(this.form[field].value);
		
		//Regular Expression to match comma seperated phone numbers
		var m = new RegExp('^([0-9]+,)*[0-9]+$');
	
		if (!m.exec(anumber)) {
			this.fields[this.i++] = "Phone number can be in numerals ";
			this.focus = field;
			return false;
		}
		
		if(!this.minlength(field,6,'Number can not be less than 6 digits.')) return false;
		
		return true;
	}
	
	

	/*Validation for Country Code*/
	this.validateccode = function(field) {
		var ccode = this.trim(this.form[field].value);
		//var m = new RegExp('^[+][0-9]*$');
		var m = new RegExp('^[0-9+]*$');
		
		if(ccode == ""){
			this.fields[this.i++] = "Please enter the Country Code";
			return false;
		}
		if (!m.exec(ccode)) {
			this.fields[this.i++] = "Please provide a valid Country Code.";
			return false;
		}
		
		if(!this.minlength(field,2,'Country code should be minimum 2 digits long')) return false;
		if(!this.maxlength(field,5,'Country code should be maximum 5 digits long')) return false;
		return true;
	}

	/*Validate mobile number */
	this.validatemnumber = function(field,ccode) {
		var mseries = new Array("92","93","94","97","98","99");
		var mnumber = this.trim(this.form[field].value);
		
		var m = new RegExp('^[0-9]*$');
	
		if (!m.exec(mnumber)) {
			this.fields[this.i++] = "Phone number can be in numerals only";
			this.focus = field;
			return false;
		}
		
		if(ccode == "+91") {
			var bval = false;
			if(!this.minlength(field,10,'Please check the Mobile Number, it can not be less than 10 digits long.')) return false;
			if(!this.maxlength(field,10,'Please check the Mobile Number, it can not be more than 10 digits long.')) return false;
			for(var c=0; c<mseries.length;c++)
				if(mnumber.substr(0,2) == mseries[c]) {
					bval = true;
					break;
				}
			if(bval == false) {
				this.fields[this.i++] = "Please check the Mobile Number, it should always start with number "+mseries.join(',');
				this.focus = field;
				return false;
			}
		} else {
			if(!this.minlength(field,6,'Please check the Mobile Number, it can not be less than 6 digits long.')) return false;
			if(!this.maxlength(field,15,'Please check the Mobile Number, it can not be more than 15 digits long.')) return false;
		}


		return true;
	}
	
	/*Validate mobile number */
	this.validatemobilenumber = function(field,args,message) {
		var mnumber = this.trim(this.form[field].value);
		
		if(mnumber.length==0)
			return true;
			
		var m = new RegExp('^[0-9]*$');
	
		if (!m.exec(mnumber)) {
			this.fields[this.i++] = "Mobile should be numeric only";
			this.focus = field;
			return false;
		}
		
		else {
			if(!this.maxlength(field,10,'Mobile number should be at max 10 digits long')) return false;			
		} 


		return true;
	}
	
	
	
	/* Validate  Landline number */
	this.validatellnumber = function(field, args,message) {
		var anumber = this.trim(this.form[field].value);
		
		//Regular Expression to match comma seperated phone numbers
		var m = new RegExp('^[0-9]*$');
	
		if (!m.exec(anumber)) {
			this.fields[this.i++] = "Landline number should be nummeric";
			this.focus = field;
			return false;
		}
		
		if(!this.minlength(field,8,'Landline number should be minimum 8 digits long')) return false;
		if(!this.maxlength(field,11,'Landline number should be maximum 25 digits long')) return false;
		
		return true;
	}
	
	
	/* Validate  Pincode */
	this.validatepincode = function(field, args,message) {
		var anumber = this.trim(this.form[field].value);
		
		if(anumber.length==0)
			return true;
			
		var m = new RegExp('^[0-9]*$');
	
		if (!m.exec(anumber)) {
			this.fields[this.i++] = message;
			this.focus = field;
			return false;
		}		
		return true;
	}
	
	/* Validate  number */
	this.validatenumeric = function(field, args,message) {
		var anumber = this.trim(this.form[field].value);
		
		//Regular Expression to match comma seperated phone numbers
		var m = new RegExp('^[0-9]*$');
	
		if (!m.exec(anumber)) {
			this.fields[this.i++] = message;
			this.focus = field;
			return false;
		}
	
		
		return true;
	}

	/* Maximum length */
	this.maxlength = function(name,args,message) {

		var field = this.form[name];
		var value = "";

		if(field.type == 'text' ||
		   field.type == 'textarea' ||
		   field.type == 'password') {
			//TODO: Ram Ji use This if(field.value != "" && field.value.length > args) {
			if(this.trim(field.value).length > args) {
				this.fields[this.i++] = message;
				this.focus = field.name;
				return false;
			}
		}

		if(field.type == 'select-multiple') {
			var sz = 0;
			var map = new Object();
		//	alert(field.name);
			for(var c=0; c < field.options.length; c++) {
				if(field.options[c].selected == true) {
			//		alert(value);
					map[field.options[c].text] = value;
				}
			}
			
            for(x in map) {
                sz++;
			}
		//	alert(sz+"count");
			if(sz > args) {
				this.fields[this.i++] = message;
				this.focus = field.name;
				for(var c=0; c < field.options.length; c++) {
					field.options[c].selected = false;
			}
				return false;
			}

		}
		
		return true;
	}

	/*Minimum Length*/
	this.minlength = function(name,args,message) {

		var field = this.form[name];
		var value = "";

		if(field.type == 'text' ||
		   field.type == 'textarea' ||
		   field.type == 'password') {
		   
			if(this.trim(field.value) != "" && this.trim(field.value).length < args) {
				this.fields[this.i++] = message;
				this.focus = field.name;
				return false;
			}
		}

		if(field.type == 'select-multiple') {
			var sz = 0;
			
			for(var c=0; c < field.options.length; c++) {
				if(field.options[c].selected == true) {
					sz++;
				}
			}
			
            if(sz < args) {
				this.fields[this.i++] = message;
				this.focus = field.name;
				return false;
			}

		}
		
		return true;
	}

	/*Minimum Length if field dpends on other field*/
	this.requiredifminlength0 = function(name,args,message) {

		var field = this.form[name];
		var value = "";
		var svalue = "";
		var argFields = args.split(",");
		var sfield = this.form[argFields[0]];

		var scond  = argFields[1];
		var third = argFields[2];
		var bval   = false;
		
		//alert(field.name+""+sfield.type+scond);
		if (field.type == 'text' ||
			field.type == 'textarea' ||
			field.type == 'password') {
				value = field.value;

		}

	
		if(sfield.type == 'text' ||
		   sfield.type == 'textarea' ||
		   sfield.type == 'password') {
				svalue = sfield.value;
				bval = eval(svalue+scond);
		}
		
		if (sfield.type == "select-one") {
			var si = sfield.selectedIndex;
			if (si >= 0) {
				svalue = sfield.options[si].value;
			}
		//	alert(' svalue+scond '+svalue+scond);
			bval = eval(svalue+scond);
		}
		
		if (sfield.type == "checkbox") {
				bval = sfield.checked;				
		}

		if(bval && this.trim(value).length< third) {
				this.fields[this.i++] = message;
				this.focus = field.name;
				return false;
			}
			
		return true;
	}

/*Validate Email Address */
	this.validEmailIf = function(name,args,message) {

		var field = this.form[name];
		var value = "";
		var svalue = "";
		var argFields = args.split(",");
		var sfield = this.form[argFields[0]];

		var bval   = false;
				
		if (sfield.type == "checkbox") {
				bval = sfield.checked;				
		}

		if(field.type == 'text') {
		var m = new RegExp('^[0-9a-zA-Z]+([0-9a-zA-Z-_]*[.]?)*([0-9a-zA-Z]+)@([0-9a-zA-Z-_]+[.])+([a-zA-Z]){2,4}$');
		 //var m = new RegExp('^([a-zA-Z]+)((([0-9a-zA-Z\-]*[.])?)|(([0-9a-zA-Z\-]*[_]){0,3}))([0-9a-zA-Z\-]+)\@([0-9a-zA-Z\-]+[.]){1,5}([a-zA-Z]{2,4})$');
			//var m = new RegExp('^([a-zA-Z]+)((([0-9a-zA-Z]*[.])?)|(([0-9a-zA-Z]*[_]){0,3}))([0-9a-zA-Z]+)\@([0-9a-zA-Z]+[.]){2,5}([a-zA-Z]{2,4})$');
			if (!m.exec(field.value)) {
				if(!bval && ((this.trim(field.value)).length == 0))
					return true;
				this.fields[this.i++] = message;
				this.focus = field.name;
				return false;
			}
		}
		return true;
	}

/* Maximum length if dpends on other field*/
this.requiredifmaxlength0 = function(name,args,message) {

		var field = this.form[name];
		var value = "";
		var svalue = "";
		var argFields = args.split(",");
		var sfield = this.form[argFields[0]];

		var scond  = argFields[1];
		var third = argFields[2];
		var bval   = false;
		
		
		if (field.type == 'text' ||
			field.type == 'textarea' ||
			field.type == 'password') {
				value = field.value;

		}

	
		if(sfield.type == 'text' ||
		   sfield.type == 'textarea' ||
		   sfield.type == 'password') {
				svalue = sfield.value;
				bval = eval(svalue+scond);
		}
		
		if (sfield.type == "select-one") {
			var si = sfield.selectedIndex;
			if (si >= 0) {
				svalue = sfield.options[si].value;
			}
		//	alert(' svalue+scond '+svalue+scond);
			bval = eval(svalue+scond);
		}
		
		if (sfield.type == "checkbox") {
				bval = sfield.checked;				
		}
		
		if(bval && this.trim(value).length > third) {
				this.fields[this.i++] = message;
				this.focus = field.name;
				return false;
		}
			
		return true;
	}




	/*If two fields are matching */
	this.matchfields = function(name,args,message) {
		
		var field = this.form[name];
		var sfield;
		var tempVar = args.split("-");
		
		if(tempVar.length == 1)
			sfield = this.form[tempVar[0]];
		else
			sfield = this.form[tempVar[1]];
		
		
		if(field.type == 'text' ||
		   field.type == 'password') {
		   if(tempVar.length > 1){
		   	if(field.value == sfield.value) {
				this.fields[this.i++] = message;
				this.focus = field.name;
				return false;
			}
		   }else{
			if(field.value != sfield.value) {
				this.fields[this.i++] = message;
				this.focus = field.name;
				return false;
			}
		  }
		}
		return true;
	}

	/*Validate Email Address */
	this.validemail = function(name, args,message) {
		var field = this.form[name];
		if(field.type == 'text') {
		var m = new RegExp('^[0-9a-zA-Z]+([0-9a-zA-Z-_]*[.]?)*([0-9a-zA-Z]+)@([0-9a-zA-Z-_]+[.])+([a-zA-Z]){2,4}$');
		//var m = new RegExp('^([a-zA-Z]+)((([0-9a-zA-Z\-]*[.])?)|(([0-9a-zA-Z\-]*[_]){0,3}))([0-9a-zA-Z\-]+)\@([0-9a-zA-Z\-]+[.]){1,5}([a-zA-Z]{2,4})$');
			//var m = new RegExp('^([a-zA-Z]+)((([0-9a-zA-Z]*[.])?)|(([0-9a-zA-Z]*[_]){0,3}))([0-9a-zA-Z]+)\@([0-9a-zA-Z]+[.]){1,2}([a-zA-Z]{2,4})$');
			if (!m.exec(field.value)) {
				this.fields[this.i++] = message;
				this.focus = field.name;
				return false;
			}
		}
		return true;
	}



	/*Trim a string (removes leading and trailing blanks)*/
	this.trim = function(s) {
		return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
	}
	
	/*Apply Partial Rules on some other events apart from onSubmit
	 *For individual Form Elements  
	 */	
	this.validatePartial = function(ids) {
	//alert('ids '+i);
		var aIds = ids.split(",");
		//alert('len '+aIds.length);
		for (var i=0; i<aIds.length;i++)
		{
			//eval() is used to  evaluate javascript function constructed in run-time
		//	alert(' '+("this."+rules[i].rule+"('"+rules[i].name+"','"+rules[i].args+"','"+rules[i].message+"')"));
			this.status = this.status & eval("this."+rules[aIds[i]].rule+"('"+rules[aIds[i]].name+"','"+rules[aIds[i]].args+"','"+rules[aIds[i]].message+"')");
			if(this.status == false) {
				 break;
			}
		}
		
		if(this.status == false){
			 alert(this.fields.join("\n"));
			 this.form[this.focus].focus();
		}
		return this.status;
	}
	
	this.validotherloc = function(name, args,message) {
		var field      = this.form[name];
		if(document.getElementById(args).style.display=="") {
			if(this.trim(field.value).length == 0) {
				this.fields[this.i++] = message;
				this.focus = field.name;
				return false;
			}
		}
		return true;
	}
	
	this.validotherlocMin = function(name, args,message) {
		var field = this.form[name];
		var argFields = args.split(",");
		var sfield = argFields[0];
		var scond  = argFields[1];
		
		if(document.getElementById(sfield).style.display=="") {
			if(this.trim(field.value).length < scond) {
				this.fields[this.i++] = message;
				this.focus = field.name;
				return false;
			}
		}
		return true;
	}
	
	
	this.validotherlocMax = function(name, args,message) {
		var field = this.form[name];
		var argFields = args.split(",");
		var sfield = argFields[0];
		var scond  = argFields[1];
		
		if(document.getElementById(sfield).style.display=="") {
			if(this.trim(field.value).length > scond) {
				this.fields[this.i++] = message;
				this.focus = field.name;
				return false;
			}
		}
		return true;
	}
	this.validotherlocMask = function(name, args,message) {
		var field = this.form[name];
		var argFields = args.split(",");
		var sfield = argFields[0];
		var scond  = argFields[1];
		
		if(document.getElementById(sfield).style.display=="") {
			var m = new RegExp('^[a-zA-Z ]*$');
				if (!m.exec(field.value)) {
					this.fields[this.i++] = message;
					this.focus = field.name;
					return false;
				}
			}
		return true;
	}
		
/*Validate Multiple Email Address */
	this.validmultipleemail = function(name, args,message) {
		var field = this.form[name];
		if(field.type == 'text') {
		var m = new RegExp('^[0-9a-zA-Z]+([0-9a-zA-Z-_]*[.]?)*([0-9a-zA-Z]+)@([0-9a-zA-Z-_]+[.])+([a-zA-Z]){2,4}$');
		//var m = new RegExp('^([a-zA-Z]+)((([0-9a-zA-Z\-]*[.])?)|(([0-9a-zA-Z\-]*[_]){0,3}))([0-9a-zA-Z\-]+)\@([0-9a-zA-Z\-]+[.]){1,5}([a-zA-Z]{2,4})$');
			//var m = new RegExp('^([a-zA-Z]+)((([0-9a-zA-Z]*[.])?)|(([0-9a-zA-Z]*[_]){0,3}))([0-9a-zA-Z]+)\@([0-9a-zA-Z]+[.]){1,2}([a-zA-Z]{2,4})$');

		var value =field.value;
		var aIds = value.split(",");
		//alert('aIds '+aIds);
		//alert('aIds len '+aIds.length);
		for (x in aIds )
		{
		//alert(" aIds[x] "+aIds[x]);
		//alert(' match '+m.exec(trim(aIds[x])));
			if (!m.exec(trim(aIds[x]))) {
				this.fields[this.i++] = message;
				this.focus = field.name;
				return false;
			}
		}
		}
		return true;
	}
	
this.validateNumberIfNotEmpty = function(name,args,message) {

		//alert('required '+args+name);
		var field = this.form[name];

		if (field.type == 'text') {
				var value = '';
				// get field's value
				value = field.value;				

				if ((this.trim(value)).length == 0) {
						
					this.fields[this.i++] = message;
					return true;
				}
				bval = this.validatePhoneNumber(name);
				if(!bval && field.value != "") {
					this.fields[this.i++] = message;
				return false;
			}		
		}
		return true;
	}
	
	this.validateNumberIf = function(name,args,message) {

		var field = this.form[name];
		var argFields = args.split(",");
		var sfield = this.form[argFields[0]];

		if (sfield.type == "checkbox") {
				bval = sfield.checked;				
		}
		
		if (bval && field.type == 'text') {
				var value = '';
								
				value = field.value;
				var anumber = value.replace(/[\(\)\-\ +]/g, '');
				var m = new RegExp('^([0-9]+,)*[0-9]+$');
			if (!m.exec(anumber)) {
				this.fields[this.i++] = "Phone number can be in numerals only sanjay";
				bval =false;
			}			
			if(bval == false) return false;
		}
		return true;
	}
	
	this.validatePhoneNumber = function(field) {
		var anumber = this.trim(this.form[field].value);
		
		var m = new RegExp('^([0-9]+,)*[0-9]+$');
	
		if (!m.exec(anumber)) {
			this.fields[this.i++] = "Phone number can be in numerals only";
			this.focus = field;
			return false;
		}
		
		if(!this.minlength(field,4,'Phone number should be minimum 4 digits long')) return false;
		if(!this.maxlength(field,25,'Phone number should be maximum 25 digits long')) return false;
				
		return true;
	}	
	
	this.validateAlpha = function(field){
  
			var value = this.trim(this.form[field].value);
			var charpos = value.search("[^A-Z a-z ]");

		  if( value.length > 0 &&  charpos >= 0 ){
				this.fields[this.i++] = field + " should not have numbers";
				this.focus = field;
				return false;
		  }
		  else
				return true;
	
}
	
	
}