jQuery(document).ready(function(){ 
	
	var popupStatus = 0;

	function attachAjaxSubmit() {
		// Override the onsubmit function registered by Silverstripe
		Behaviour.register({
		    '#Form_Form': {
			
					onsubmit: function() {

		        if (typeof this.bypassValidation == 'undefined' || !this.bypassValidation) {
							if( this.validate() ) {
									var dataString = getFormDataString();
									var formAction = getFormAction();
									//alert (dataString);return false;  
									jQuery.ajax({  
									  type: "POST",  
									  url: formAction,  
									  data: dataString,  
									  success: function(data) {  
												eval(data);
									    }    
										});
									return false;
							}
							return false;
        		}

					}
				}
		});
	
	}
	
	// Silverstripe sends this on an Ajax form response
	// Used mainly in the CMS so just needs to be a prototype here
	function statusMessage(msg, type, clearManually, container) {
	}
	function validationError($field,$message,$error) {
		alert($field);
	}

	function disablePopup(){  
		//disables popup only if it is enabled  
		if(popupStatus==1){  
			jQuery("#modalBackground").fadeOut("slow");  
			jQuery("#modalContent").fadeOut("slow");
			jQuery("#modalContent").html('');  
			popupStatus = 0;  
		}  
	}

	function loadPopup(){  
		//	loads popup only if it is disabled  
		if(popupStatus==0){  
			jQuery("#modalBackground").css({  
					"opacity": "0.7"  
			});
			
			jQuery.ajax({
					type: 		'GET',
					url: 			jQuery('#contactUsAction').attr('href')+'?isAjax=1',
					success: 	function(data) {
													jQuery("#modalContent").html(data);
													jQuery("#modalContent #contactUs h1").after('<p class="close"><a href="#"><span>Close</span></a></p>');
													jQuery("#modalContent #contactUs .close").click(function() {
															disablePopup();
															return false;
															});
													attachAjaxSubmit();
												}
					});
			jQuery("#modalBackground").fadeIn("slow");  
			jQuery("#modalContent").fadeIn("slow");  
			popupStatus = 1;  

		}  
	}

	//centering popup  
	function centerPopup(){  
		//request data for centering  
		var windowWidth = document.documentElement.clientWidth;  
		var windowHeight = document.documentElement.clientHeight;  
		var popupHeight = jQuery("#modalContent").height();  
		var popupWidth = jQuery("#modalContent").width();  
		
		var scrollVert = (document.all ? document.scrollTop : window.pageYOffset);
		var scrollHoriz = (document.all ? document.scrollLeft : window.pageXOffset);
		
		//centering  
		jQuery("#modalContent").css({  
		"position": "absolute",  
		"top": windowHeight/2-popupHeight/2 + scrollVert,  
		"left": windowWidth/2-popupWidth/2 + scrollHoriz
		});  
		//only need force for IE6  
  
		jQuery("#modalBackground").css({  
		"height": windowHeight  
		});  
  
	}

	//LOADING POPUP  
	//Click the button event!  
	jQuery(".contactUsAction").click(function(){  
		//centering with css  
		centerPopup();  
		//load popup  
		loadPopup();  
		return false;
	});

	//Click out event!  
	jQuery("#modalBackground").click(function(){  
		disablePopup(); 
		 
	});
	
	jQuery("#modalBackground #contactUs p.close a").click(function(){  
	       disablePopup();  
	 });
	
	//Press Escape event!  
	/*jQuery(document).keypress(function(e){  
		if(e.keyCode==27 &amp;amp;amp;&amp;amp;amp; popupStatus==1){  
			disablePopup();  
		}
	});	*/
	
	function getFormDataString() {
		var dataString = '';
		jQuery('#Form_Form input').each(function(){
			var name = jQuery(this).attr('name');
			var val = jQuery(this).val();
			dataString += name+'='+val+'&';
		});
		jQuery('#Form_Form select').each(function(){
			var name = jQuery(this).attr('name');
			var val = jQuery(this).val();
			dataString += name+'='+val+'&';
		});
		jQuery('#Form_Form textarea').each(function(){
			var name = jQuery(this).attr('name');
			var val = jQuery(this).val();
			dataString += name+'='+val+'&';
		});
		return dataString;
	}
	
	function getFormAction() {
		var formAction = jQuery('#Form_Form').attr('action');
		return formAction;
	}
	


});