	V = new validation();
	var IgnoreArray = new Array();
	
	
	function Required(Fields) {
		if(ConfirmPassword()) {
			var Result = true;
			arrFields = Fields.split("|");
			arrPairs = new Array();
			for(var i=0;i<arrFields.length;i++) {
				if(tObj = document.getElementById(arrFields[i])) {
					arrPairs[arrFields[i]] = tObj.value;
				}
			}
			
			ResetErrors(arrFields);
			
			
			Result = V.required_fields(Fields,arrPairs);
			
			if(Result!= true) {
				ProcessErrors(Result,arrFields,'submit');
				return false;
			} 
			return true;
		} else {
			return false;
		}
	}	
	
		function ResetErrors(arrFields) {
			for(var i=0;i<arrFields.length;i++) {
				if(theC = document.getElementById('label_'+arrFields[i])) {
					IgnoreAString = IgnoreArray.toString();
					if(IgnoreAString.search(arrFields[i]) == -1) {
						theClassName = theC.className;
						theC.className=theClassName.replace("error","");
						if(errObj = document.getElementById('error_'+arrFields[i])) {
							errObj.innerHTML="";
						}
					}
				}
			}
		}
		
		function IgnoreReset(Field,clean) {
			var is_found = false;
			var counter = 0;
			if(clean == true) {
				IgnoreArray = new Array();
			}
			
			for(i=0;i<IgnoreArray.length;i++) {
				if((clean == true)&&(Field != IgnoreArray[i])) {
					IgnoreArray[counter++] = Field;
					is_found = true;
				}
			}
			if((is_found==false)&&(clean==false)) {
				IgnoreArray[(IgnoreArray.length)] = Field;
				
			}
			
		}
		
		function RealEmail(Field) {
			var Result = true;
			arrFields  = new Array();
			arrFields[0] = Field.name;
			ResetErrors(arrFields);
			arrPairs = new Array();
			arrPairs[Field.name] = Field.value;
			Result = V.email_fields(Field.name,arrPairs);	
			if(Result!= true) {
				IgnoreReset(Field.name,false);
				ProcessErrors(Result,arrFields,'change');
				return false;
			} else {
				
				IgnoreReset(Field.name,true);
				ResetErrors(arrFields);
			}
			return true;
		}
		function ProcessErrors(Result,Fields,Event) {
			
			var arrErrors = Result['fields'];
			
			
			
			
			
			if(Event=="change") {
				if(errObj = document.getElementById("error_"+Result['first'])) {
					errObj.innerHTML = '<p class="error">'+Result['message'][0]+'</p>';
				} else {
					alert(Result['message'][0]);
				}
			} else if(Event=="submit") {
				tM = "";
				if(errObj = document.getElementById("main_error")) {
					for(z=0;z<Result['message'].length;z++) {
						tM += "<li class=\"error\">"+Result['message'][z]+"</li>";
					}
					errObj.innerHTML = tM;
				} else {
					for(z=0;z<Result['message'].length;z++) {
						tM += "*** "+Result['message'][z]+"\n";
					}
					alert(tM);
				}
			
			}
			for(i=0;i<arrErrors.length;i++) {
				if(eObj = document.getElementById('label_'+arrErrors[i])) {
					eObj.className=eObj.className+" error";
				}
			}
			if(theF = document.getElementById(Result['first'])) {
				theF.focus();
			}
		}
		
	function ConfirmPassword() {
		
		if((tPassword = document.getElementById('password'))&&(tConfirm = document.getElementById('confirm'))) {
			if(tPassword.value!=tConfirm.value) {
				alert("The password you have entered has not been confirmed properly.");
				return false;
			}
		}
		return true;
	}

