$(document).ready(function() {
	$(".contact-link").each(function(i){
	  	$(this).click(function(){
			//Create overlay
			var overlay = $("<div id='overlay'/>");
		
			var contactForm = $("<div id='contact-form'/>").empty().load("contactform.php", null, function(){
			
				$("#contact-form-body").submit(function(obj){
					var valid = true;
			
					var inputs = $("#contact-form-body").find("input.required, textarea.required").each(function(i){
						if($(this).attr("value")){
							$(this).prev().removeClass("error");
						}else{						
							$(this).prev().addClass("error");
							valid = false;
						}
					});
				
					if(valid){
						$.post("/contactform.php", $("#contact-form-body").serialize(), function(response){
							$("#contact-form-body").replaceWith(response);
							$("#close_link").click(function(){
								contactForm.fadeTo("slow", 0);
								overlay.fadeTo("slow", 0, function(){
										if(overlay.css("opacity") == 0){
											overlay.remove();
											$("#contact-form").remove();
										}
									} )
									return false;
							});
						});				
					}
					return false;
				});
		
			}).css("opacity", 0);
		
			overlay.css("background-color", "black");
			overlay.css("height", $(document).height());
			overlay.css("width", $(document).width());		
			overlay.css("position", "absolute");
			overlay.css("left", "0px");		
			overlay.insertBefore($("body").children()[0]);
			overlay.css("opacity", 0);
			overlay.fadeTo("slow", 0.8);

			overlay.click(function(){ 
				contactForm.fadeTo("slow", 0);
				overlay.fadeTo("slow", 0, function(){
						if(overlay.css("opacity") == 0){
							overlay.remove();
							$("#contact-form").remove();
						}
					} );
			});
		

			//then the form		
			var scrollTop = document.documentElement.scrollTop;
			if(!scrollTop)
				scrollTop = document.body.scrollTop;
		
			contactForm.css("top", scrollTop + $(window).height() / 2 -139);
			contactForm.css("left", $(window).width() / 2 - 200);
			contactForm.insertBefore($("body").children()[0]).fadeTo("slow", 1);	

			return false;
		});
	});
});