// Global jquery script
$(document).ready(function() {
	
	/*---------------------------------
		AJAX
	---------------------------------*/
	$.ajaxSetup({
		type: "POST",
		url: "http://ctnimports.com.au/php/ajax.gateway",
		dataType: "json",
		global: false
	});

	/*---------------------------------
		News Comments
	---------------------------------*/	
	$('.post_comment').click(function() {
		$('.post_comment_cont').slideUp();
		$('#news_comment_form').slideDown();
		return false;
	});

	/*---------------------------------
		Defuscate emails
	---------------------------------*/
	$('.defuscate').defuscate();

	/*---------------------------------
		Home
	---------------------------------*/
	$('#home-banner').cycle({ 
     		timeout: 4000, 
      		speed: 500,
    	 	startingSlide: 6 
   	 });

	/*---------------------------------
		Leaf Cycles
	---------------------------------*/
	var leaf_menu_height = ( ($('#leaf_content_area').outerHeight() - 202) < 370 ) ? 370 : ($('#leaf_content_area').outerHeight() - 202);
	$('.leaf_menu').height( leaf_menu_height );
	
	/*---------------------------------
		Cycle
	---------------------------------*/
	$('#leaf-key-image').cycle({ 
		timeout: 4000, 
		speed:   300,
		startingSlide: 2 
	});
	
	/*---------------------------------
		jGrowl
	---------------------------------*/
	$.jGrowl.defaults.position = 'center';
	
	/*---------------------------------
		prettyPhoto
	---------------------------------*/
	$("a[rel^='prettyPhoto']").prettyPhoto({theme:'facebook'});

	/*---------------------------------
		Where to buy
	---------------------------------*/
	$('.retailers_sidebar_showall').click(function() {
		$('div.retailer_item').slideDown();

		return false;
	});
	$('.retail_filter').click(function() {
		var set_filter = $(this).attr('set');		

		$('div.retailer_item').slideUp();
		$('.' + set_filter).slideDown();
		
		$('.retail_filter').removeClass('selected');
		$(this).addClass('selected');

		return false;
	});

	/*---------------------------------
		Elka Compatibility
	---------------------------------*/
	$('#compatibility_make').change(function() {
		$('#compatibility_model').hide().parent().addClass('load');
		$('#compatibility_year').hide();
		$(this).closest("form").submit();
	});
	$('#form_bike_compatibility_make').submit(function(index, domEle) {
		var thisObj = this;
		$.ajax({
			data: "func=elkaBikeCallMake&"+$(this).serialize(),
			beforeSend: function(result) {
			},
			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);
				//alert('result: ' + resp_arr.result + 'msg: ' + resp_arr.msg + 'data: ' + resp_arr.data);
				if (resp_arr.result == '1') {
					var arr = resp_arr.data;
					var select_options = '';
					for (var i in arr) {
						select_options += '<option value="' + arr[i].optionValue + '">' + arr[i].optionDisplay + '</option>';
					}
					$('#compatibility_model').html('<option value="">-- Please Select --</option>' + select_options).show();
				} else if (resp_arr.result == '0') {
					var arr = resp_arr.data;
					$.jGrowl('No results found!', { 
							 life: 5000
					});
				} // end if
			},
			complete: function(response){$('#form_loading').removeClass('loading');}
		});
        return false;
	});
	$('#compatibility_model').change(function() {
		$('#compatibility_year').removeClass('hidden').css('display', 'block');
	});
	$('#compatibility_year').click(function() {
		var val_make = $('#compatibility_make').val();
		var val_model = $('#compatibility_model').val();
		$('.elka_sku').slideUp();
		$('.cs_' + val_make + '.cs_' + val_model).slideDown();
		return false;
	});
	
	/*---------------------------------
		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;
	});
	
});

/* 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);
