/* * contactable 1.2.1 - 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 2010-01-18 $ * */ //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', subject : 'A contactable message', recievedMsg : 'Thankyou for your message', notRecievedMsg : 'Sorry but your message could not be sent, try again later', disclaimer: 'Please feel free to get in touch, we value your feedback', hideOnSubmit: true }; //call in the default otions var options = $.extend(defaults, options); //act upon the element that is passed into the design return this.each(function(options) { //construct the form $(this).html('




'+defaults.disclaimer+'

'); //show / hide function $('div#contactable').toggle(function() { $('#overlay').css({display: 'block'}); $(this).animate({"marginLeft": "-=5px"}, "fast"); $('#contactForm').animate({"marginLeft": "-=0px"}, "fast"); $(this).animate({"marginLeft": "+=387px"}, "slow"); $('#contactForm').animate({"marginLeft": "+=390px"}, "slow"); }, function() { $('#contactForm').animate({"marginLeft": "-=390px"}, "slow"); $(this).animate({"marginLeft": "-=387px"}, "slow").animate({"marginLeft": "+=5px"}, "fast"); $('#overlay').css({display: 'none'}); }); //validate the form $("#contactForm").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: "", email: "", comment: "" }, submitHandler: function() { $('.holder').hide(); $('#loading').show(); $.post('mail.php',{subject:defaults.subject, name:$('#name').val(), email:$('#email').val(), comment:$('#comment').val()}, function(data){ $('#loading').css({display:'none'}); if( data == 'success') { $('#callback').show().append(defaults.recievedMsg); if(defaults.hideOnSubmit == true) { //hide the tab after successful submition if requested $('#contactForm').animate({dummy:1}, 2000).animate({"marginLeft": "-=450px"}, "slow"); $('div#contactable').animate({dummy:1}, 2000).animate({"marginLeft": "-=447px"}, "slow").animate({"marginLeft": "+=5px"}, "fast"); $('#overlay').css({display: 'none'}); } } else { $('#callback').show().append(defaults.notRecievedMsg); } }); } }); }); }; })(jQuery);