$(document).ready(function(){

		/*Create message object
		**This deals with the display of errors and success messages.
		****************************************/
		var messageObj=function(what){
			this.exist=function(){
				$('#contactForm .feedback').prepend(what);
				what.stop().show(400);
			}
			this.destroy=function(){
				what.stop().hide(400, function(){what.remove()});
			}
		}
		
		/*removeFeedback Function
		**Calls destroy() on any errors which exist.
		**(Errors ar stored in array msgs).
		****************************************/
		function removeFeedback(){
			if(msgs.length){
				$.each(msgs, function(index, value){
					msgs[index].destroy();
				})
			}
		}
		
		/*clearForm Function
		**Sets all the form fields to their default.
		****************************************/
		function clearForm(){
			$(':input','#contactForm').not(':submit, :reset, :hidden, #contactReason').val('');
		}
		
		/*toggleFieldEnabled Function
		**Sets/unsets fields disabled attribute on all of the form fields
		****************************************/
		function toggleFieldEnabled(toggle){
			if(toggle=="enable"){
				$('#contactForm input.disableable').removeAttr('disabled');
				$('#contactForm textarea').removeAttr('disabled');
			}else{
				$('#contactForm input.disableable').attr('disabled','disabled');
				$('#contactForm textarea').attr('disabled','disabled');
			}
		}
		
		/*Variables to make things work.
		****************************************/
		var submit=$('#contactSubmit');
		var msgs=new Array();
		
		/*Do the right stuff when things get clicked :
		**-The forms submit button.
		**-The forms cancel button.
		****************************************/

		submit.click(function(){
			submit.val('Sending...');
			removeFeedback();
			//Get values
			var name=$('#contactName').val();
			var email=$('#contactEmail').val();
			var subject=$('#contactSubject').val();
			var message=$('#contactMessage').val();
			//Disable Form Fields
			toggleFieldEnabled('disable');
			//Check the data via AJAX
			$.post("http://www.deadtreemedia.co.uk/millerphotography/wp-content/themes/millerphotography/actions/sendMailJs.php",
				{'name': name, 'email':email, 'subject':subject, 'message':message },
				function(data){
					//Re-enable form fields
					toggleFieldEnabled('enable');
					//Change the submit buttons value back to say "submit"
					submit.val('Submit');
					//Add an error div if there isnt already one
					if(!$('#contactForm .feedback').length){
						var feedbackDiv=$('<div></div>').addClass('feedback');
						$('#contactForm').prepend(feedbackDiv);
					}
					if(data==false){
						clearForm();
						var successPara=$('<p></p>').prepend('Your message was sent succesfully.<br />Thanks for getting in touch!').addClass('thanks').addClass('hidden');
						msgs[0]=new messageObj(successPara);
						msgs[0].exist();
					}else{
						//Create a paragraph from the error text, instantiate the error object and reveal it
						//var i is used because php returns an associative array with which javascript can't work
						var i=0;
						$.each(data, function(name,value){
							var errorPara=$('<p></p>').prepend(value).addClass('error').addClass('hidden');
							msgs[i]=new messageObj(errorPara);
							msgs[i].exist();
							i++;
						});
					}
				}
				,"json");
			return false;
		})
				
		$('#contactForm #contactCancel').click(function(){
			removeFeedback();
			clearForm();
			submit.val('Submit');
			toggleFieldEnabled('enable');
			return false;
		})
		
		
});
