$(document).ready(function(){
	$("#contactForm").sendForm();
});

$.fn.extend({
	sendForm: function(){
		return this.each(function(){
			var form = $(this);
			var formOldContent = form.html();
			
			function submitClick() {
				
				var name = form.contents().find("input[name='name']");
				var address = form.contents().find("input[name='address']");
				var email = form.contents().find("input[name='email']");
				var phone = form.contents().find("input[name='phone']");
				var rInfo = form.contents().find("input[name='rInfo']");
				var rProblem = form.contents().find("input[name='rProblem']");
				var rSugg = form.contents().find("input[name='rSugg']");
				var rComl = form.contents().find("input[name='rComl']");
				var issue = form.contents().find("select[name='issue']");
				var otherIssue = form.contents().find("input[name='otherIssue']");
				var comments = form.contents().find("textarea[name='comments']");
				
				var canSend = true;
				
				form.contents().find("label").css("color", "#000");
				
				if (name.val().length < 3) {
					name.prevAll("label").css("color", "#f00");
					canSend = false;
				}
				if (!/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/.test(email.val())) {
					email.prevAll("label").css("color", "#f00");
					canSend = false;
				}
				if (comments.val().length < 5) {
					comments.prevAll("label").css("color", "#f00");
					canSend = false;
				}
				
				if (!canSend) return false; // !!!
								
				form.css("height", form.height() + "px").
					children("p").animate({
						opacity:0
					}, 500, "", function(){
						form.html("<p style='text-align:center'>Sending...</p>");
						form.contents("p").css("opacity", "0").
							css("lineHeight", form.height() + "px").
							animate({
								opacity:1
							}, 500);
					});
				
				$.ajax({
					type:"POST",
					url:"/sendcontactform.php",
					data: {
						name:name.val(),
						address:address.val(),
						email:email.val(),
						phone:phone.val(),
						rInfo:rInfo.attr("checked"),
						rProblem:rProblem.attr("checked"),
						rSugg:rSugg.attr("checked"),
						rComl:rComl.attr("checked"),
						issue:issue.val(),
						otherIssue:otherIssue.val(),
						comments:comments.val()
					},
					success: function() {
						form.contents("p").animate({
							opacity:0
						}, 500, "", function(){
							form.html("<p style='text-align:center'>Message was successfully sent. Thank you!</p>");
							form.contents("p").css("opacity", "0").
								css("lineHeight", form.height() + "px").
								animate({
									opacity:1
								}, 500);
						});
					}
					
				})
			}
			
			function clearClick() {
				if (confirm("You sure?")) {
					form.html(formOldContent);
					form.contents().find("input.clear").click(clearClick);
					form.contents().find("input.submit").click(submitClick);
				}
			}
			
			form.contents().find("input.clear").click(clearClick);
			
			form.contents().find("input.submit").click(submitClick);
			
		});
	}
});

