/*
 * 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 $
 *
 */

(function($){
	$.fn.contactable=function(options){
		var defaults={
			url:'http://www.fiducia.si/gui/mail.php',
			name:'Ime in priimek',
			email:'Email naslov',
			address:'Naslov',
			company:'Podjetje',
			phone:'Telefon',
			post:'Pošta',
			products:'Izdelki, ki vas zanimajo',
			extra:'Posebne želje ali zahteve',
			subject:'Obrazec za povpraševanje',
			submit:'POŠLJI',
			recievedMsg:'Hvala za poslano sporočilo',
			notRecievedMsg:'Sporočilo ni bilo poslano, poskusite kasneje',
			disclaimer:'Prosimo izpolnite vsa polja',
			hideOnSubmit:false
		};
		
		var options=$.extend(defaults,options);
		return this.each(function(){
			var this_id_prefix='#'+this.id+' ';
			$(this).html('<div id="contactable_inner"></div><form id="contactForm" method="" action=""><div id="loading"></div><div id="callback"></div><div class="holder"><p><label for="name">'+options.name+'<span class="red"> * </span></label><br /><input id="name" class="contact" name="name"/></p><p><label for="email">'+options.email+' <span class="red"> * </span></label><br /><input id="email" class="contact" name="email" /></p><p><label for="address">'+options.address+' <span class="red"> * </span></label><br /><input id="address" class="contact" name="address" /></p><p><label for="company">'+options.company+' <span class="red"> * </span></label><br /><input id="company" class="contact" name="company" /></p><p><label for="phone">'+options.phone+' <span class="red"> * </span></label><br /><input id="phone" class="contact" name="phone" /></p><p><label for="post">'+options.post+' <span class="red"> * </span></label><br /><input id="post" class="contact" name="post" /></p><p><label for="products">'+options.products+' <span class="red"> * </span></label><br /><textarea id="products" name="products" class="message" rows="2" cols="30" ></textarea></p><p><label for="extra">'+options.extra+' <span class="red"> * </span></label><br /><textarea id="extra" name="extra" class="message" rows="2" cols="30" ></textarea></p><p><input class="submit" type="submit" value="'+options.submit+'"/></p><p class="disclaimer">'+options.disclaimer+'</p></div></form>');
			$(this_id_prefix+'div#contactable_inner').toggle(function(){
				$(this_id_prefix+'#overlay').css({display:'block'});
				$(this).animate({"marginLeft":"-=5px"},"fast");
				$(this_id_prefix+'#contactForm').animate({"marginLeft":"-=0px"},"fast");
				$(this).animate({"marginLeft":"+=387px"},"slow");
				$(this_id_prefix+'#contactForm').animate({"marginLeft":"+=390px"},"slow")},
				function(){
					$(this_id_prefix+'#contactForm').animate({"marginLeft":"-=390px"},"slow");
					$(this).animate({"marginLeft":"-=387px"},"slow").animate({"marginLeft":"+=5px"},"fast");
					$(this_id_prefix+'#overlay').css({display:'none'})
				});
				
				$(this_id_prefix+"#contactForm").validate({
					rules:{
						name:{required:true,minlength:2},
						email:{required:true,email:true},
						message:{required:true}},
						messages:{
							name:"",
							email:"",
							message:""
						},
						submitHandler:function(){
							$(this_id_prefix+'.holder').hide();
							$(this_id_prefix+'#loading').show();
							$.ajax({
								type:'POST',
								url:options.url,data:{
									subject:options.subject,
									name:$(this_id_prefix+'#name').val(),
									email:$(this_id_prefix+'#email').val(),
									address:$(this_id_prefix+'#address').val(),
									company:$(this_id_prefix+'#company').val(),
									phone:$(this_id_prefix+'#phone').val(),
									post:$(this_id_prefix+'#post').val(),
									products:$(this_id_prefix+'#products').val(),
									extra:$(this_id_prefix+'#extra').val()},
									success:function(data){
										$(this_id_prefix+'#loading').css({display:'none'});
										if(data=='success'){
											$(this_id_prefix+'#callback').show().append(options.recievedMsg);
											if(options.hideOnSubmit==true){
												$(this_id_prefix+'#contactForm').animate({dummy:1},2000).animate({"marginLeft":"-=450px"},"slow");
												$(this_id_prefix+'div#contactable_inner').animate({dummy:1},2000).animate({"marginLeft":"-=447px"},"slow").animate({"marginLeft":"+=5px"},"fast");
												$(this_id_prefix+'#overlay').css({display:'none'})
											}
										} else {
											$(this_id_prefix+'#callback').show().append(options.notRecievedMsg);
											setTimeout(function(){
												$(this_id_prefix+'.holder').show();
												$(this_id_prefix+'#callback').hide().html('')},2000)
											}
										},
										error:function(){
											$(this_id_prefix+'#loading').css({display:'none'});
											$(this_id_prefix+'#callback').show().append(options.notRecievedMsg)
										}
									})
								}
							})
						})
					}
				})(jQuery);
