

$(function() {
	
	var showError = function(msg) {
		$("#contact-messages").html(msg);
		$("#contact-messages").show();
		$("#contact-messages").addClass("contact-error");			
		$(".contact-form-item").show();		
	};	
	
	var sendQuery = function(doNotSave) {
		
		$(".contact-form-item").show();	
		$("#contact-messages").html("");
		$("#contact-messages").hide();
		$("#contact-messages").removeClass();
		
		
		var email = $("#contact-email").val();
		var name = $("#contact-name").val();
		var msg = $("#contact-msg").val();
		var subject = $("#contact-subject").val();
		
		var errorMsg = "";
		if (""!=email && ""!=name && ""!=msg) {
			var emailPattern = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
			if (!emailPattern.test(email)) {
				errorMsg = "Please enter a valid email address.";
			}
		} else {
			errorMsg = "Please fill in all fields.";
		}
		
		if (errorMsg) {
			
			showError(errorMsg);
			
		} else {
			
			$(".contact-form-item").hide();	
					
			var saveError = function(jqXHR, textStatus, errorThrown) {
				showError("An error occured while trying to send message. Please try again");
			};
			
			var saveSuccess = function(data, textStatus, jqXHR) {
				if (data && data.success) {
					$("#contact-messages").html("Your message have been sent successfully. We will get back to you shortly.");
					$("#contact-messages").show();
					$("#contact-messages").addClass("contact-success");	
				} else {
					saveError();
				}
			};
			
			$.ajax({
				type: "POST",
				dataType: "json",
				url: SitebuilderPath + "extras/site",
				data: {
					op: "contact",
					data: {
						"name": name,
						"email": email,
						"msg": msg,
						"subject": subject
					}
				},
				error: saveError,
				success: saveSuccess
			});			
			
		}
			
		return false; 
		
	};
	
	$("#contact-form-send").click(sendQuery);
	
	var contactMap = $("#map");
	if (0<$("#map").size() && undefined!=geocodeAddress) {
		
		contactMap.css({height:500});
		
		var geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(40.730885,-73.997383);    
    var myOptions = {      
    	zoom: 16,      
    	mapTypeId: google.maps.MapTypeId.ROADMAP    
    }    
    var map = new google.maps.Map(document.getElementById("map"), myOptions);		

		geocoder.geocode( { 
			'address': geocodeAddress}, 
			function(results, status) {      
				if (status == google.maps.GeocoderStatus.OK) {        
					//alert(results[0].geometry.location);
					map.setCenter(results[0].geometry.location);        
					var marker = new google.maps.Marker({ 
						map: map,            
						position: results[0].geometry.location        
					});      
				} else {        
					//alert("Geocode was not successful for the following reason: " + status);      
				}    
		});
		
	}
	
});


