// Global jquery script
$(document).ready(function() {
	
	/*---------------------------------
		AJAX
	---------------------------------*/
	$.ajaxSetup({
		type: "POST",
		url: "http://babushkaproductions.com/php/ajax.gateway",
		dataType: "json",
		global: false
	});
	
	/*---------------------------------
		Defuscate emails
	---------------------------------*/
	$('.defuscate').defuscate();
	
	/*---------------------------------
		jGrowl
	---------------------------------*/
	$.jGrowl.defaults.position = 'center';

	/*---------------------------------
		prettyPhoto
	---------------------------------*/
	$("a[rel^='prettyPhoto']").prettyPhoto();
	
	/*---------------------------------
		Contact Form
	---------------------------------*/
	$('#form_contact').submit(function(index, domEle) {
		var thisObj = this;
		$.ajax({
			data: "func=emailContact&"+$(this).serialize(),
			beforeSend: function(result) {
				$('#form_loading').addClass('loading');
				$(thisObj).find('.form_error').removeClass('form_error');
			},
			error: function(XMLHttpRequest, textStatus, errorThrown){	
				$.jGrowl('#form_contact; error: ' + textStatus + ', errorThrown:' + errorThrown, { 
					life: 5000
				});
			},
			success: function(response){	
				var resp_arr = new Array(); eval("resp_arr="+response);
				if (resp_arr.result == 'true') {
					$.jGrowl(resp_arr.msg, { 
						life: 2000,
						close: function(e,m,o) {}});
				} else if (resp_arr.result == 'msg') {
					$.jGrowl(resp_arr.msg, { 
						life: 5000
					});
				} else if (resp_arr.result == 'false') {
					var arr = resp_arr.data;
					for (var i in arr) {$(thisObj).find(':input[name=\''+i+'\']').addClass('form_error');}
					var error_msg = errorMsg(arr, resp_arr.msg);
					$.jGrowl(error_msg, { 
							 life: 5000
					});
				} // end if
			},
			complete: function(response){$('#form_loading').removeClass('loading');}
		});
        return false;
	});
	
	/*---------------------------------
		Booking Form
	---------------------------------*/
	$('#form_booking').submit(function(index, domEle) {
		var thisObj = this;
		$.ajax({
			data: "func=emailBooking&"+$(this).serialize(),
			beforeSend: function(result) {
				$('#form_loading').addClass('loading');
				$(thisObj).find('.form_error').removeClass('form_error');
			},
			error: function(XMLHttpRequest, textStatus, errorThrown){	
				$.jGrowl('#form_contact; error: ' + textStatus + ', errorThrown:' + errorThrown, { 
					life: 5000
				});
			},
			success: function(response){	
				var resp_arr = new Array(); eval("resp_arr="+response);
				if (resp_arr.result == 'true') {
					$.jGrowl(resp_arr.msg, { 
						life: 2000,
						close: function(e,m,o) {}});
				} else if (resp_arr.result == 'msg') {
					$.jGrowl(resp_arr.msg, { 
						life: 5000
					});
				} else if (resp_arr.result == 'false') {
					var arr = resp_arr.data;
					for (var i in arr) {$(thisObj).find(':input[name=\''+i+'\']').addClass('form_error');}
					var error_msg = errorMsg(arr, resp_arr.msg);
					$.jGrowl(error_msg, { 
							 life: 5000
					});
				} // end if
			},
			complete: function(response){$('#form_loading').removeClass('loading');}
		});
        return false;
	});	
	
});

/* Email Defuscator */
(function($){
	jQuery.fn.defuscate = function( settings ) {
		settings = jQuery.extend({
			link: true,
			find: /\b([A-Z0-9._%-]+)\([^)]+\)((?:[A-Z0-9-]+\.)+[A-Z]{2,6})\b/gi,
			replace: '$1@$2'
		}, settings);
		return this.each(function() {
			if ( $(this).is('a[@href]') ) {
				$(this).attr('href', $(this).attr('href').replace(settings.find, settings.replace));
				var is_link = true;
			}
			$(this).html($(this).html().replace(settings.find, (settings.link && !is_link ? '<a href="mailto:' + settings.replace + '">' + settings.replace + '</a>' : settings.replace)));
		});
	};
})(jQuery);

(function ($) {
$.fn.vAlign = function() {
	return this.each(function(i){
	var ah = $(this).height();
	var ph = $(this).parent().height();
	var mh = (ph - ah) / 2;
	$(this).css('margin-top', mh);
	});
};
})(jQuery);

