/**
 * @author byJaie Creative Solutions
 */

function valNum(strString) {
	if(!/\D/.test(strString)) return true;
	else if(/^\d+\.\d+$/.test(strString)) return true;
	else return false;
}

function contains(a, obj) {
  var i = a.length;
  while (i--) {
    if (a[i] === obj) {
      return true;
    }
  }
  return false;
}

function verifyInput() {
	var first = $("input#firstName").val();
	var last = $("input#lastName").val();
	var email = $("input#email").val();
	var address = $("input#address").val();
	var zip = $("input#zip").val();
	var phone = $("input#phone").val();
	var msg = $("textarea#message").val();
	var validate = new Array(5);
	if(first == "" || first.length < 3) {
		validate[0] = "first";
		validate[5] = "error";
	}
	if(last == "" || last.length < 3) {
		validate[1] = "last";
		validate[5] = "error";
	}
	if(email == "" || email.length < 3 || valEmail(email) != true) {
		validate[2] = "email";
		validate[5] = "error";
	}
	if(phone != "") {
		if(phone.length < 7 || valNum(phone) != true) {
			validate[3] = "phone";
			validate[5] = "error";
		}
	}
	if(msg == "" || msg.length < 10) {
		validate[4] = "msg";
		validate[5] = "error";
	}
	return validate;
}

function setupForm() {
	$("#submit").click(function() {
		$(this).fadeOut("fast", function() {
			$("#status").hide();
			$("#status").html("Verifi&#235;ren...");
			$("#load").fadeIn("fast");
			$("#status").fadeIn("fast", function () {
				var check = verifyInput();
				if(contains(check, "error") == true) {
					if(contains(check, "first") == true) {
						$("input#firstName").removeClass("inputfield").addClass("error");
					} else {
						if($("input#firstName").hasClass("error") == true) {
							$("input#firstName").removeClass("error").addClass("inputfield");
						}
					}
					if(contains(check, "last") == true) {
						$("input#lastName").removeClass("inputfield").addClass("error");
					} else {
						if($("input#lastName").hasClass("error") == true) {
							$("input#lastName").removeClass("error").addClass("inputfield");
						}
					}
					if(contains(check, "email") == true) {
						$("input#email").removeClass("inputfield").addClass("error");
					} else {
						if($("input#email").hasClass("error") == true) {
							$("input#email").removeClass("error").addClass("inputfield");
						}
					}
					if(contains(check, "phone") == true) {
						$("input#phone").removeClass("inputfield").addClass("error");
					} else {
						if($("input#phone").hasClass("error") == true) {
							$("input#phone").removeClass("error").addClass("inputfield");
						}
					}
					if(contains(check, "msg") == true) {
						$("textarea#message").removeClass("message").addClass("error");
					} else {
						if($("textarea#message").hasClass("error") == true) {
							$("textarea#message").removeClass("error").addClass("message");
						}
					}
					$("#load").fadeOut("fast", function() {
						$("#status").html("<input id='submit' type='submit' class='button' value='Verzenden' />");
						setupForm();
					});
				} else {
					$("input#firstName").removeClass("error").addClass("inputfield");
					$("input#lastName").removeClass("error").addClass("inputfield");
					$("input#email").removeClass("error").addClass("inputfield");
					$("input#phone").removeClass("error").addClass("inputfield");
					$("textarea#message").removeClass("error").addClass("message");
					$.get("include/contact.php", {
					'first': $("input#firstName").val(),
					'last': $("input#lastName").val(),
					'address': $("input#address").val(),
					'city': $("input#city").val(),
					'zip': $("input#zip").val(),
					'email': $("input#email").val(),
					'phone': $("input#phone").val(),
					'msg': $("textarea#message").val()
					}, function(data){
						if (data != "success") {
							alert("failed");
							$("#load").fadeOut("fast", function() {
								$("#status").html("<input id='submit' type='submit' class='button' value='Verzenden' />");
								setupForm();
							});
						} else {
							$("#load").fadeOut("fast", function() {
								$("#status").html("We hebben uw bericht ontvangen. Wij nemen zo spoedig mogelijk contact met u op.");
							});
						}
					});
				}
			});
		});
	});
}


// DOM-Ready Event Handler _____________________________________________________

$(window).load(function() {
	
	$(".mailto").click(function() {
		ml = 'm'+'a'+'i'+'l'+'t'+'o';
		name = $(this).html().toLowerCase();
		email = name.replace(" ", ".");
		window.location=ml+":"+email+"@"+"prezco.nl";
	});
	
	if($("#submit").length > 0) {
		setupForm();
	}

});



function valEmail(email) {
	filter = /^([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+@((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,6})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)$/i;
	return filter.test(email);
}
