var validate = {
		form : document.getElementById("fullDetailsForm"),

		exec : function(formName) {
			if(formName) validate.setForm(formName);
				try {
				$("#detailQuickSubmit div").each(
					function() {
						if(this.getAttribute("required")) {
							var type = this.getAttribute("required").substring(this.getAttribute("required").indexOf(".")+1,this.getAttribute("required").length);
							if(type.indexOf("email") || type.indexOf("phone"))
								validate.checkField(validate.form.elements[this.getAttribute("required")],this.innerHTML,type);
							else
								validate.checkField(validate.form.elements[this.getAttribute("required")],this.innerHTML);
						}
					}
				);
			} catch (exception) {
				alert(exception);
				return false;
			}
			return true;
		},

		checkField : function(elm, name, type) {
			try {
				if(elm.value.length == 0) throw("Please enter a value for " + name);
				validate.checkType(elm, name, type);
			} catch(exception) {
				throw (exception);
			}
		},

		setForm : function(formName) {
			validate.form = document.getElementById(formName);
		},

		checkType : function(elm, name, type) {
			if(type == "email") {
				elm.value = elm.value.replace(/ /g,'');
				var str = elm.value;
				var notValidEmail = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(\s)/;
				var validEmail = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,6}|[0-9]{1,3})(\]?)$/;
				if (!notValidEmail.test(str) && validEmail.test(str)) { // if syntax is valid
					return true;
				}
				throw ("Please enter a valid email address for " + name);
			} else if(type=="phone") {
				elm.value = elm.value.replace( /\s/g, "-" );
				elm.value = elm.value.replace( /\./g, "-" );

				if( elm.value.length < 7 )
				  throw ("Please enter a valid phone number for " + name);

				if( elm.value.length == 7 && elm.value.indexOf("-") != -1 )
				  throw ("Please enter a valid phone number for " + name);

				if( elm.value.length == 7 && elm.value.indexOf("-") == -1 &&
				  elm.value.indexOf("x") == -1 ){
				  elm.value = elm.value.substring(0,3) +"-"+ elm.value.substring(3);
				}

				if( elm.value.length == 10 && elm.value.indexOf("-") == -1 &&
				  elm.value.indexOf("x") == -1 ){
				  elm.value = elm.value.substring(0,3) +"-"+ elm.value.substring(3,6) +"-"+
							  elm.value.substring(6);
				}

				if( elm.value.length == 11 && elm.value.indexOf("-") == -1 &&
				  elm.value.indexOf("x") == -1 ){
				  elm.value = elm.value.substring(0,1) +"-"+ elm.value.substring(1,4) +"-"+
							  elm.value.substring(4,7) +"-"+ elm.value.substring(7);
				}
				return true;
			} else if(type=="zip") {
				value = elm.value;
				if( value.length < 5 )
				  throw ("Please enter a valid zip code for " + name);
				return true;
			}
		}
}