// Global jquery script

var slid = false;

$(document).ready(function() {
	
	// Light box
	$('a.lightbox').lightBox({
		fixedNavigation: true,
		imageLoading: 'assets/images/ajax-loader.gif',
		imageBtnClose: 'assets/images/lightbox-btn-close.gif',
		imageBtnPrev: 'assets/images/lightbox-btn-prev.gif',
		imageBtnNext: 'assets/images/lightbox-btn-next.gif',
		imageBlank: 'assets/images/lightbox-blank.gif'
	});
	
	// home page
	if ($('.homeFeaturedProductCont').html()) {
		var current_home_image = 1;
		var current_cont = current_home_image;
		var next_cont = ((current_cont + 1) >= home_page_images) ? 0 : (current_cont + 1);
		function animateHomeFeature() {
			$('.homeFeaturedProductCont:eq('+current_cont+')').animate({"opacity": "1"}, 4000, function(){
				$('.homeFeaturedProductCont:eq('+current_cont+')').fadeOut('slow');
				$('.homeFeaturedProductCont:eq('+next_cont+')').fadeIn('slow', function(){
						current_home_image = next_cont;
						current_cont = current_home_image;
						next_cont = ((current_cont + 1) >= home_page_images) ? 0 : (current_cont + 1);
						animateHomeFeature();
				   });
			 });
		};
		animateHomeFeature();
	}
	
	
	// Form submission
	$('.submitBtn').live('click', function() {
		$(this).parents("form").submit();
		return false;
	});
	
	// Product Gallery
	$('#productGalleryBtn').live('click', function() {
		var dir = $(this).attr('product');
		var image = $(this).attr('image');
		var zoom = $(this).attr('zoom')
		var title = $(this).attr('title');
		$('#productImgLrg').attr('src','assets/userfiles/images/products/galleries/' + dir +'/' + image);
		$('#productImgLrg').attr('alt',dir);
		$('#productImageZoom').attr('title',title);
		$('#productImageZoom').attr('href','assets/userfiles/images/products/galleries/' + dir +'/' + zoom);
		return false;
	});
	
	
	// Product Item Loader
	$("#prodItemLoading").height($('#storeProdColThree').height()+'px');
	$("#prodItemLoading div").height($('#storeProdColThree').height()+'px');
	$("#prodItemLoading img").vAlign();
	// Product Item Btn
	$('#btnProdItem').live('click', function() {
		$('.menuContainer').toggleClass('menuHide');
		$('#prodDetailsUpdated').fadeOut(1);
		return false;
	});
	$('.btnItem').hover(
      function () {
        $(this).parents('li').css('background', '#E5E5E5');
      }, 
      function () {
        $(this).parents('li').css('background', '#ffffff');
      }
    );

	$('.btnItem').live('click', function() {
		// Hide menu
		$('.menuContainer').toggleClass('menuHide');
		// Set gallery image
		var item_name = $(this).attr('product');
		var item_image = $(this).attr('image');
		var item_id = $(this).attr('item');
		var item_colour = $(this).attr('colour');
		var item_size = $(this).attr('size');
		var item_option = $(this).attr('option');
		var item_units = $(this).attr('units');
		var item_shipping = $(this).attr('shipping');
		var item_avail = $(this).attr('avail');
		var item_price = $(this).attr('price');
		var item_sale = $(this).attr('sale');
		var item_saleprice = $(this).attr('saleprice');
		// Update image
		$('#productImage').html('<img src="' + item_image + '" width="350" height="250" border="0" alt="' + item_name + '" />');
		// Upadte product details
		if ($('#prodItemColour').html()) $('#prodItemColour').html(item_colour);
		if ($('#prodItemSize').html()) $('#prodItemSize').html(item_size);
		if ($('#prodItemOption').html()) $('#prodItemOption').html(item_option);
		if ($('#prodItemUnits').html()) $('#prodItemUnits').html(item_units);
		if ($('#prodItemShipping').html()) $('#prodItemShipping').html(item_shipping);
		if (item_sale == '1') {
			if ($('#prodItemPrice').html()) $('#prodItemPrice strong').html('Sale price: ' + item_saleprice + ' AUD');
			if ($('#prodItemPrice').html()) $('#prodItemPrice strong').css('color', '#FF0000'); 
		} else {
			if ($('#prodItemPrice').html()) $('#prodItemPrice strong').html('Price: ' + item_price + ' AUD');
			if ($('#prodItemPrice').html()) $('#prodItemPrice strong').css('color', '#000000'); 
		};
		// Update add to cart btn
		$('#addToCart').attr('item', item_id);
		$('#addToCart').attr('avail', item_avail);
		// Animate updated 
		$('#prodDetailsUpdated').fadeIn(1, function () {
			$('#prodDetailsUpdated').fadeOut(3000);
		});

		return false;
	});
	$('#addToCart').live('click', function() {	
		
		if ($(this).attr('avail') == '5') {
			alert('Sorry! This product option is currently out of stock. \n Please select another option from the list.');
		} else {
			
			var thisObj = this;
			var postObj = { 'func' : 'addToCart',
							'id': $(this).attr('item')	};
			$.ajax({
				data: postObj,
				beforeSend: function(result) {
					$('.shoppingCartWidth').width($('.shoppingCartCont').width());
					$('.shoppingCartHeight').height($('.shoppingCartCont').height());
					$('.shoppingCartContLoad .wait').vAlign();
					$('.shoppingCartContLoad').removeClass('hidden');
				},
				success: function(response){	
					if (response.result == 'true') {
						//window.location.reload();
						$('#shoppingCart').load('/assets/includes/store_shopping_cart.cfm');
					} else {
						alert(response.msg);
					} // end if
				}
			});
			
		}
		
		return false;
	});
	$('#removeFromCart').live('click', function() {	
												
		var thisObj = this;
		var postObj = { 'func' : 'removeFromCart',
						'id': $(this).attr('item')	};
		$.ajax({
			data: postObj,
			beforeSend: function(result) {
				$('.shoppingCartWidth').width($('.shoppingCartCont').width());
				$('.shoppingCartHeight').height($('.shoppingCartCont').height());
				$('.shoppingCartWidthFull').width($('.shoppingCartContFull').width());
				$('.shoppingCartHeightFull').height($('.shoppingCartContFull').height());
				$('.shoppingCartContLoad .wait').vAlign();
				$('.shoppingCartContLoad').removeClass('hidden');
			},
			success: function(response){	
				if (response.result == 'true') {
					//window.location.reload();
					$('#shoppingCart').load('/assets/includes/store_shopping_cart.cfm');
					$('#shoppingCartDetail').load('/assets/includes/store_shopping_cart_full.cfm');
				} else {
					alert(response.msg);
				} // end if
			}
		});
		
		return false;
	});
	// checkout form
	$('#check_address').change(function () {
		if ($(this).is('input:checked')) {
			$('#checkoutFormDelivery').addClass('hidden');
		} else {
			$('#checkoutFormDelivery').removeClass('hidden');
		}
	});
	$('#checkoutDetails').submit(function(index, domEle) {
		var thisObj = this;
		var check_address = ($('#check_address').is('input:checked')) ? "1" : "0";
		var contact = ($('#contact').is('input:checked')) ? "1" : "0";
		var postObj = { 'func' : 'checkoutDetails',
						
						'formtype': $(this).find('#formtype').val(),
						
						'title': $(this).find('#title').val(),
						'firstname': $(this).find('#firstname').val(),
						'lastname': $(this).find('#lastname').val(),
						'phone': $(this).find('#phone').val(),
						'fax': $(this).find('#fax').val(),
						'mobile': $(this).find('#mobile').val(),
						'email': $(this).find('#email').val(),
						'password': $(this).find('#password').val(),
						'c_password': $(this).find('#c_password').val(),
						'contact': $(this).find('#contact').val(),
						
						'b_address': $(this).find('#b_address').val(),
						'b_suburb': $(this).find('#b_suburb').val(),
						'b_state': $(this).find('#b_state').val(),
						'b_country': $(this).find('#b_country').val(),
						'b_postcode': $(this).find('#b_postcode').val(),
						
						'check_address': check_address,
						'contact': contact,
						'heard': $(this).find('#heard').val(),
						
						'd_id': $(this).find('#d_id').val(),
						'd_address': $(this).find('#d_address').val(),
						'd_suburb': $(this).find('#d_suburb').val(),
						'd_state': $(this).find('#d_state').val(),
						'd_country': $(this).find('#d_country').val(),
						'd_postcode': $(this).find('#d_postcode').val()};
						
		$.ajax({
			data: postObj,
			beforeSend: function(result) {
				$(thisObj).find('.errCell').empty();
				$(thisObj).find('.frmErr').removeClass('frmErr');
				$($(thisObj).find('.submitBtn')).buttonStatus('busy');
			},
			success: function(response){
				
				$($(thisObj).find('.submitBtn')).buttonStatus('reset');
				
				if (response.result == 'true') {
					window.location.href = "?p=checkout&status="+response.data
					//window.location.reload();
				} else if (response.result == 'cferror') {
					alert('cferror: ' + response.data +" - "+response.msg);			
				} else {
					
					var arr = new Array(); eval("arr="+response.data);
					
					for (var i in arr) {
						$(thisObj).find(':input[name=\''+i+'\']').closest('tr').find('.errCell').html('<img src="assets/images/important.gif" class="frmErrImg" title="'+arr[i]+'" align="left" />');
						$(thisObj).find(':input[name=\''+i+'\']').addClass('frmErr');
					}
					$(thisObj).find('.frmErrImg').tooltip({ delay: 0, showURL: false, fixPNG: false, extraClass: "pretty fancy", top: -15, left: 15 });
				} // end if
			}
		});
		
        return false;
	});
	$('#checkoutPaymentLoading').height($(document).height());
	$('#checkoutPaymentLoading .back').height($(document).height());
	$('#checkoutPaymentLoading .wait').vAlign();
	// payment
	$('#checkoutPayment').submit(function(index, domEle) {
		var thisObj = this;
		var base_url = $(this).find('#base_url').val();
		var postObj = { 'func' : 'checkoutPayment',
						'base_url': $(this).find('#base_url').val(),
						'cardholder': $(this).find('#cardholder').val(),
						'card_no': $(this).find('#card_no').val(),
						'cvn': $(this).find('#cvn').val(),
						'month': $(this).find('#month').val(),
						'year': $(this).find('#year').val()};
						
		$.ajax({
			url: base_url+"/assets/functions/ajax.gateway.cfm",
			data: postObj,
			beforeSend: function(result) {
				$('#checkoutPaymentLoading').removeClass('hidden');
				$(thisObj).find('.errCell').empty();
				$(thisObj).find('.frmErr').removeClass('frmErr');
				$($(thisObj).find('.submitBtn')).buttonStatus('busy');
				$('#paymentError').addClass('hidden');
			},
			success: function(response){
				
				$($(thisObj).find('.submitBtn')).buttonStatus('reset');
				$('#checkoutPaymentLoading').addClass('hidden');
				
				if (response.result == 'true') {
					$('#paymentForm').load('/assets/includes/checkout_payment_success.cfm');
					$('#shoppingCart').load('/assets/includes/store_shopping_cart.cfm');
				} else if (response.result == 'trxnerror') {
					$('#paymentError #msg').html(response.msg);
					$('#paymentError').removeClass('hidden');
					
				} else {
					
					var arr = new Array(); eval("arr="+response.data);
					
					for (var i in arr) {
						$(thisObj).find(':input[name=\''+i+'\']').closest('tr').find('.errCell').html('<img src="assets/images/important.gif" class="frmErrImg" title="'+arr[i]+'" align="left" />');
						$(thisObj).find(':input[name=\''+i+'\']').addClass('frmErr');
					}
					$(thisObj).find('.frmErrImg').tooltip({ delay: 0, showURL: false, fixPNG: false, extraClass: "pretty fancy", top: -15, left: 15 });
				} // end if
			}
		});
		
        return false;
	});
	// contact
	$('#contactForm').submit(function(index, domEle) {
		var thisObj = this;
		var contact = ($('#contact').is('input:checked')) ? "1" : "0";
		var postObj = { 'func' : 'contactForm',
						'name': $(this).find('#name').val(),
						'email': $(this).find('#email').val(),
						'message': $(this).find('#message').val(),
						'heard': $(this).find('#heard').val(),
						'contact': contact};
						
		$.ajax({
			url: "assets/functions/ajax.gateway.cfm",
			data: postObj,
			beforeSend: function(result) {
				$(thisObj).find('.errCell').empty();
				$(thisObj).find('.frmErr').removeClass('frmErr');
				$($(thisObj).find('.submitBtn')).buttonStatus('busy');
			},
			success: function(response){
				
				$($(thisObj).find('.submitBtn')).buttonStatus('reset');
				
				if (response.result == 'true') {
					$('#contactFormSpace').load('/assets/includes/contact_success.cfm');
				} else {
					
					var arr = new Array(); eval("arr="+response.data);
					
					for (var i in arr) {
						$(thisObj).find(':input[name=\''+i+'\']').closest('tr').find('.errCell').html('<img src="assets/images/important.gif" class="frmErrImg" title="'+arr[i]+'" align="left" />');
						$(thisObj).find(':input[name=\''+i+'\']').addClass('frmErr');
					}
					$(thisObj).find('.frmErrImg').tooltip({ delay: 0, showURL: false, fixPNG: false, extraClass: "pretty fancy", top: -15, left: 15 });
				} // end if
			}
		});
		
        return false;
	});
	
	// Login form
	$('#showLogin').click(function () {
		$(this).hide('fast', function () {
       	$('#menuStoreLogin').show('fast');
      });
        return false;
	});
	
/*******************************
	REGISTER
*******************************/
	
	// checkout form
	$('#check_address').change(function () {
		if ($(this).is('input:checked')) {
			$('#checkoutFormDelivery').addClass('hidden');
		} else {
			$('#checkoutFormDelivery').removeClass('hidden');
		}
	});
	$('#registerForm').submit(function(index, domEle) {
		
		var thisObj = this;
		var base_url = $(this).find('#base_url').val();
		var store_url = $(this).find('#store_url').val();
		var check_address = ($('#check_address').is('input:checked')) ? "1" : "0";
		var contact = ($('#contact').is('input:checked')) ? "1" : "0";
		
		var postObj = { 'func' : 'userRegister',
						
						'formtype': $(this).find('#formtype').val(),
						
						'title': $(this).find('#title').val(),
						'firstname': $(this).find('#firstname').val(),
						'lastname': $(this).find('#lastname').val(),
						'phone': $(this).find('#phone').val(),
						'fax': $(this).find('#fax').val(),
						'mobile': $(this).find('#mobile').val(),
						'email': $(this).find('#email').val(),
						'password': $(this).find('#password').val(),
						'c_password': $(this).find('#c_password').val(),
						'contact': contact,
						
						'b_address': $(this).find('#b_address').val(),
						'b_suburb': $(this).find('#b_suburb').val(),
						'b_state': $(this).find('#b_state').val(),
						'b_country': $(this).find('#b_country').val(),
						'b_postcode': $(this).find('#b_postcode').val(),
						
						'check_address': check_address,
						
						'd_id': $(this).find('#d_id').val(),
						'd_address': $(this).find('#d_address').val(),
						'd_suburb': $(this).find('#d_suburb').val(),
						'd_state': $(this).find('#d_state').val(),
						'd_country': $(this).find('#d_country').val(),
						'd_postcode': $(this).find('#d_postcode').val()};
		$.ajax({
			url: base_url+"/assets/functions/ajax.gateway.cfm",
			data: postObj,
			beforeSend: function(result) {
				$(thisObj).find('.errCell').empty();
				$(thisObj).find('.frmErr').removeClass('frmErr');
				$($(thisObj).find('.submitBtn')).buttonStatus('busy');
			},
			success: function(response){
				
				$($(thisObj).find('.submitBtn')).buttonStatus('reset');
				
				if (response.result == 'true') {
					alert(response.msg);
					window.location.href = store_url;
					//window.location.reload();
				} else if (response.result == 'cferror') {
					alert('cferror: ' + response.data +" - "+response.msg);			
				} else {
					
					var arr = new Array(); eval("arr="+response.data);
					
					for (var i in arr) {
						$(thisObj).find(':input[name=\''+i+'\']').closest('tr').find('.errCell').html('<img src="assets/images/important.gif" class="frmErrImg" title="'+arr[i]+'" align="left" />');
						$(thisObj).find(':input[name=\''+i+'\']').addClass('frmErr');
					}
					$(thisObj).find('.frmErrImg').tooltip({ delay: 0, showURL: false, fixPNG: false, extraClass: "pretty fancy", top: -15, left: 15 });
				} // end if
			}
		});
		
        return false;
	});
	
/*******************************
	FORGOTTEN PASSWORD
*******************************/
	$('#forgottenPasswordForm').submit(function(index, domEle) {
		var thisObj = this;
		var base_url = $(this).find('#base_url').val();
		$.ajax({
			url: base_url+"/assets/functions/ajax.gateway.cfm",
			data: "func=retrievePassword&"+$(this).serialize(),
			beforeSend: function(result) {
				$(thisObj).find('.errCell').empty();
				$(thisObj).find('.frmErr').removeClass('frmErr');
				$($(thisObj).find('.submitBtn')).buttonStatus('busy');
			},
			success: function(response){
				$($(thisObj).find('.submitBtn')).buttonStatus('reset');
				if (response.result == 'true') {
					alert(response.msg);	
					window.location.href = store_url;
				} else if (response.result == 'cferror') {
					alert('cferror: ' + response.data +" - "+response.msg);			
				} else {
					var arr = new Array(); eval("arr="+response.data);
					for (var i in arr) {
						$(thisObj).find(':input[name=\''+i+'\']').closest('tr').find('.errCell').html('<img src="assets/images/important.gif" class="frmErrImg" title="'+arr[i]+'" align="left" />');
						$(thisObj).find(':input[name=\''+i+'\']').addClass('frmErr');
					}
					$(thisObj).find('.frmErrImg').tooltip({ delay: 0, showURL: false, fixPNG: false, extraClass: "pretty fancy", top: -15, left: 15 });
				} // end if
			}
		});
		return false;
	});
	
/*******************************
	ENEWSLETTER SUBSCRIBE
*******************************/
	$('#subscribeForm').submit(function(index, domEle) {
		var thisObj = this;
		var base_url = $(this).find('#base_url').val();
		var store_url = $(this).find('#store_url').val();
		$.ajax({
			url: base_url+"/assets/functions/ajax.gateway.cfm",
			data: "func=subscribe&"+$(this).serialize(),
			beforeSend: function(result) {
				$(thisObj).find('.errCell').empty();
				$(thisObj).find('.frmErr').removeClass('frmErr');
				$($(thisObj).find('.submitBtn')).buttonStatus('busy');
			},
			success: function(response){
				$($(thisObj).find('.submitBtn')).buttonStatus('reset');
				if (response.result == 'true') {
					var message_result = (response.msg == 'added') ? 'Your details have been added.' : 'We found your details on our list and have updated them.';
					$('#subscribeFormResult p').html(message_result);
					$('#subscribeForm').hide();
				} else if (response.result == 'cferror') {
					alert('cferror: ' + response.data +" - "+response.msg);			
				} else {
					var arr = new Array(); eval("arr="+response.data);
					for (var i in arr) {
						$(thisObj).find(':input[name=\''+i+'\']').closest('tr').find('.errCell').html('<img src="assets/images/important.gif" class="frmErrImg" title="'+arr[i]+'" align="left" />');
						$(thisObj).find(':input[name=\''+i+'\']').addClass('frmErr');
					}
					$(thisObj).find('.frmErrImg').tooltip({ delay: 0, showURL: false, fixPNG: false, extraClass: "pretty fancy", top: -15, left: 15 });
				} // end if
			}
		});
		return false;
	});
	
/*******************************
	PROMO CODES
*******************************/
	$('#promoCodeForm').submit(function(index, domEle) {
		var thisObj = this;
		var base_url = $(this).find('#base_url').val();
		$.ajax({
			data: "func=getPromoCode&"+$(this).serialize(),
			beforeSend: function(result) {
				$(thisObj).find('.errCell').empty();
				$(thisObj).find('.frmErr').removeClass('frmErr');
				$($(thisObj).find('.submitBtn')).buttonStatus('busy');
			},
			success: function(response){
				$($(thisObj).find('.submitBtn')).buttonStatus('reset');
				if (response.result == 'true') {
					window.location.reload();
				} else if (response.result == 'cferror') {
					alert('cferror: ' + response.data +" - "+response.msg);			
				} else {
					var arr = new Array(); eval("arr="+response.data);
					for (var i in arr) {
						$(thisObj).find(':input[name=\''+i+'\']').closest('tr').find('.errCell').html('<img src="assets/images/important.gif" class="frmErrImg" title="'+arr[i]+'" align="left" />');
						$(thisObj).find(':input[name=\''+i+'\']').addClass('frmErr');
					}
					$(thisObj).find('.frmErrImg').tooltip({ delay: 0, showURL: false, fixPNG: false, extraClass: "pretty fancy", top: -15, left: 15 });
				} // end if
			}
		});
		return false;
	});
	$('#btnRemoveCode').click(function () {
		var thisObj = this;
		var postObj = { 'func' : 'removePromoCode'	};
		$.ajax({
			data: postObj,
			beforeSend: function(result) {
				//
			},
			success: function(response){	
				if (response.result == 'true') {
					window.location.reload();
				} else {
					alert(response.msg);
				} // end if
			}
		});
		
		return false;
	});
	
});

/*******************************
	VERTICALLY ALIGN FUNCTION
*******************************/

(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);

/*******************************
	BUTTON PROCESS
*******************************/
(function($){
	jQuery.fn.buttonStatus = function( mode ) {
		if ( mode == 'busy' ) {
			$(this).attr("disabled", true);
			$('.submitBtn').removeClass('button_on');
			$('.submitBtn').addClass('button_load');
		} else if ( mode == 'reset' ) {
			$(this).removeAttr("disabled");
			$('.submitBtn').removeClass('button_load');
			$('.submitBtn').addClass('button_on');
		}
	};
})(jQuery);