/*
 * contactable 1.2 - 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-09-24 $
 *
 */

(function ($) {
    $.fn.contactable = function (options) {
        var defaults = {
            name: 'Name',
            email: 'Email',
            message: 'Message',
            recipient: 'test@test.co.uk',
            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'
        };
        var options = $.extend(defaults, options);
        return this.each(function (options) {
            $(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>');
            $('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'
                })
            });
            $("#contactForm").validate({
                rules: {
                    name: {
                        required: true,
                        minlength: 2
                    },
                    email: {
                        required: true,
                        email: true
                    },
                    comment: {
                        required: true
                    }
                },
                messages: {
                    name: "",
                    email: "",
                    comment: ""
                },
                submitHandler: function () {
                    $('.holder').hide();
                    $('#loading').show();
                    $.get('/mail.php', {
                        recipient: $('#recipient').val(),
                        subject: $('#subject').val(),
                        name: $('#name').val(),
                        email: $('#email').val(),
                        comment: $('#comment').val()
                    },


                    function (data) {
                        $('#loading').css({
                            display: 'none'
                        });
                        if (data === "success ") {
                            $('#callback').show().append(defaults.recievedMsg)
                        } else {
                            $('#callback').show().append(defaults.notRecievedMsg)
                        }
                    })
                }
            })
        })
    }
})(jQuery);
