/*
 * contactable 1.0 - jQuery Ajax contact form
 *
 * Copyright (c) 2009 Philip Beel (http://www.theodin.co.uk/)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * Revision: $Id: jquery.contactable.js 2009-08-24 $
 *
 */
 
//extend the plugin
(function($){
	//define the new for the plugin ans how to call it	
	$.fn.contactable = function(options) {
		//set default options  
		var defaults = {
			name: 'Name',
			email: 'Email',
			message : 'Message',
			path : 'path',
			disclaimer: 'Please feel free to get in touch,<br/>we value your feedback.'
			/*recipient : 'test@test.co.uk',
			subject : 'A contactable message',
			recievedMsg : 'Thank you for your information, we will contact you as soon as possible.',
			notRecievedMsg : 'Sorry but your message could not be sent, try again later',
			*/
		};

		//call in the default otions
		var options = $.extend(defaults, options);
		var contactShowStatus =1;

		
		//act upon the element that is passed into the design    
		return this.each(function(options) {
			//construct the form
			
			var path = defaults.path.replace("contactus/contactus_action.cfm", "");
			$(this).html('<div  id="contactable"></div><div id="contactForm" class="feedContainer"><a href="##" id="close_feedback" title="Close"><img src="' + path + 'css/plugin-images/btn-close.png" border="0" alt="Close" class="close" /></a><div class="topCrv"></div><div class="leftHand"><div class="leftshad"><div class="rightHand"><div class="rightshad"><div class="gradient"><div id="frm_container" style="height:317px;width:510px;max-height:317px;max-width:510px;"><form name="form_contact" id="form_contact"  method="post" ><div id="loading">Please Wait..<br><img src="css/plugin-images/ajax-loader.gif" border="0"/></div><div id="holder" class="holder"><label ><input type="text" id="txtname" name="name" /></label><label><input type="text" id="txtEmail" name="email" /></label><label><textarea id="txtComment" name="comment"></textarea></label><label><input type="submit" name="Submit" value="SEND" class="btn" /><span style=" padding-top:4px;">'+defaults.disclaimer+'</span></label></div></form></div><p class="thankNote" id="callback"></p></div></div></div></div></div><div class="botCrv"></div></div>');
			
			$('#form_contact #txtname').example('Name');
			$('#form_contact #txtEmail').example('Email');
			$('#form_contact #txtComment').example('Message');
			
		/*	
			$(this).html('<div id="contactable"></div><form id="contactForm" method="" action=""><div id="loading"></div><div id="callback"></div><div class="holder"><input type="hidden" id="recipient" name="recipient" value="'+defaults.recipient+'" /><input type="hidden" id="subject" name="subject" value="'+defaults.subject+'" /><p><label for="name">Name <span class="red"> * </span></label><br /><input id="name" class="contact" name="name" /></p><p><label for="email">E-Mail <span class="red"> * </span></label><br /><input id="email" class="contact" name="email" /></p><p><label for="comment">Your Feedback <span class="red"> * </span></label><br /><textarea id="comment" name="comment" class="comment" rows="4" cols="30" ></textarea></p><p><input class="submit" type="submit" value="Send"/></p><p>'+defaults.disclaimer+'</p></div></form>');
		*/	
			//show / hide function
		function contactShow() {
				$('#overlay').css({display: 'block'});
				$('div#contactable').animate({"marginLeft": "-=5px"}, "fast"); 
				$('#contactForm').animate({"marginLeft": "-=0px"}, "fast");
				$('div#contactable').animate({"marginLeft": "+=523px"}, "slow"); 
				$('#contactForm').animate({"marginLeft": "+=520px"}, "slow");
				$('.feedContainer .close').css({right: '-4px'});
				contactShowStatus = 0;
			}
			
		function contactHide() {
				$('#contactForm').animate({"marginLeft": "-=520px"}, "slow");
				$('div#contactable').animate({"marginLeft": "-=523px"}, "slow").animate({"marginLeft": "+=5px"}, "fast"); 
				$('#overlay').css({display: 'none'});
				$('.feedContainer .close').css({right: '0px'});
				contactShowStatus =1;
			}
			
			$('div#contactable').click(
				function() {
				if(contactShowStatus==1)
					contactShow();
				else
					contactHide();
			
			});
			
			$('a#close_feedback').click(function() {
				contactHide();
			
			}
			);
			//validate the form 
			$("#form_contact").validate({
				//set the rules for the fild names
				rules: {
					name: {
						required: true,
						minlength: 2
					},
					email: {
						required: true,
						email: true
					},
					comment: {
						required: true
					}
				},
				//set messages to appear inline
				messages: {
					name: "Please enter your name",
					email: "Please enter your email",
					comment: "Please enter your Message"
				},
				submitHandler: function() {
				//var f = document.form_contact;
				
				$.ajax({
                        type: 'POST',
                        url: defaults.path,
                        data: $("#form_contact").serialize(),
                        success: function(){$('#form_contact').remove();
						                $('#frm_container').html("<div style='margin-left:30px;text-align:left;'><br><br><br><h1>Thanks for contacting us</h1><br><br><h4>We will be in touch with you soon.</h4></div>"); },
                        error:function(){alert("There was an error submitting your form. Please try again.");}
                     });

		
				
					
				}
			});
		});
	};
	//end the plugin call 
})(jQuery);


