jQuery(function($) {

	if($.browser.webkit) $('body').addClass('webkit');

	$(document).ready(function() {

		if($browser_is_ie) return false;

		Cufon.replace('.breadcrumbs li, h3,'+
				' .category-description h1,'+
				' .category-description h5,'+
				//' form h4,'+
				' .customer-account-forgotpassword legend,'+
				' .box-up-sell h2,'+
				' #checkoutSteps h4,'+
				' #checkout-progress-wrapper h4,'+
				' #locations h4,'+
				' #locations h5');

		var $body = $('body');
		var $script_url = $('script[src$="jscript.js"]').attr('src').replace('jscript.js', '');
		var $container = $('#container');
		var $content = $container.find('.main');
		var spinner_url = $script_url.replace('/js/', '/images/loading-darkbg.gif');

		// load the images
		$.getScript($script_url + 'jquery.imgLoader.js', function() {
			$content.find('.c-list img').not('.category-description img').imgLoader({ 
				loadingSrc: spinner_url
			});
			$('#bgimg').imgLoader({ 
				loadingSrc: spinner_url,
				absoluteBGImg: true
			});
		});
		
		//fade in the hero banner
		$('#hero-banner').hide().fadeIn(2000);
		//fade in the signup form
		$('#signup-form').hide().fadeIn(2000);


		// animate the menu
		/*
		$('#primary_nav li:has("ul")').hover(
			function() {
				$(this).find('> ul').slideDown();
			}, 
			function() {
				$(this).find('> ul').slideUp();
			}
		);
		*/



		// if we're on the homepage
		if($body.hasClass('cms-home')) {
			// get all the homepage images
			var $img_container = $('<div id="img_container"></div>');
			var $home = $container.find('.std');
			
			// put all the homepage images into a container and fade them
			$home.find('a').appendTo($img_container);
			$home.html('').append($img_container);
			$img_container.css({
				background: 'url("' + spinner_url + '") no-repeat center'
			});
			
			
			$img_container.fadeIn(2000);
			
			$.getScript($script_url + 'jquery.cycle.min.js', function() {				
				$img_container.after('<div id="slide_nav"></div>').cycle({
					"speed": 1500,
					"timeout": 5000,
					"pager": "#slide_nav",
					"pagerAnchorBuilder": function(idx, slide){
						return '<a href="#" class="slide-page"><span>&nbsp;</span></a>';
					}
				});				
			});

			
		}
		//newsletter signup
		else if($body.hasClass('cms-newsletter-signup')){
			Cufon.replace(
			'#signup-form h1,'+
			'#signup-form p,'+
			'#signup-form label'
			);
		}
		//competition signup
		else if($body.hasClass('cms-competitions')){
			Cufon.replace(
			'#signup-form h1,'+
			'#signup-form .cuf,'+
			'#signup-form label'
			);
			
			$.getScript($script_url + 'jquery.uniform.min.js', function() {
				$('#whereInfo, #termsChk, #emailChk').uniform();
			});
			
			$.data(document.body, 'bCompReturned', true);
			$('#signup_submit').click(function(){
				var data = "";
				$('#signup-form input,#signup-form textarea,#signup-form select').each(function(){
					data += $(this).attr('id') +'='+ $(this).val() + '&';
				});
				data = data.replace('termsChk=on', 'termsChk=' + ($('#termsChk:checked').length));
				data = data.replace('emailChk=on', 'emailChk=' + ($('#termsChk:checked').length));
				data += 'isAjax=1';

				$(window).scrollTop(0);
				$('.col-main .messages').fadeOut();

				if($.data(document.body, 'bCompReturned')){
					$.post('/signup/competition', data, function(rtrn){
						
						if($(rtrn).find('.success-msg').length > 0) $('#signup-form').slideUp();
						
						$('.col-main').prepend(rtrn);
						$.data(document.body, 'bCompReturned', true);
					});
				}
				$.data(document.body, 'bCompReturned', false);
				return false;
			});
		}
		
		//if we're on a catalog page
		else if($body.hasClass('catalog-category-view')){
			
			//setup custom product slideshow plugin
			(function( $ ){
				  $.fn.kasProdCycle = function() {
					  //setup slider
					  if($('#prod_nav').length == 0) {
						  $('.product-list')
						  .after('<ul id="prod_nav"></ul>'
							   + '<a href="#" id="slide_left_btn">&nbsp;</a><a href="#" id="slide_right_btn">&nbsp;</a>')
						  .cycle({
								"speed": 1500,
								"timeout": 0,
								"pager": "#prod_nav",
								"next": "#slide_right_btn",
								"prev": "#slide_left_btn",
								"pagerAnchorBuilder": function(idx, slide){
									var imgSrc = $(slide).find('img').attr('src'),
									url = $(slide).find('a').attr('href'),
									name = $(slide).find('.name').text();
									return '<li class="btn'+ (idx + 1) +'"><a href="'+url+'" class="slide-page"><span class="loader">'
									+'<img src="'+imgSrc+'" width="100" height="67" alt=""/><span class="fade">&nbsp;</span></span></a>'
									+'<span class="name"><span>'+ name +'</span></span>'
									+'</li>';
								}				
							});
								
								//setup slide buttons to display on hover
								$slideBtns = $('#slide_left_btn, #slide_right_btn');
								$slideBtns.css('opacity','0');
								$(".product-list").hover(
										function(){ 
											$slideBtns.css('opacity','0.6'); 
											},
										function(){ 
											$slideBtns.css('opacity','0');
											});	
								$slideBtns.hover(
										function(){
											$slideBtns.css('opacity','0.6');
											$(this).css('opacity','1');
										},
										function(){
											$slideBtns.css('opacity','0.6');
										});
								
												  
					  }
				  };

			})( jQuery );
			
			if($('.product-list').length > 0){//is slider category				
				$.getScript($script_url + 'jquery.cycle.min.js', function() {	
					$.fn.kasProdCycle();
					//after creating the slider, setup async page nav
					$.fn.kasAsyncPageNav({
						"beforeLoad":function(){
							$('#prod_nav img, .product-list img').fadeOut();
						},
						"onLoad":function(){
							$.fn.kasProdCycle();
						}
					});
				});						
			}else if($('.c-list').length > 0){//is grid layout category
				$.fn.kasAsyncPageNav({
					"beforeLoad":function(){
						$('.c-list img').fadeOut();
					},
					"onLoad":function(){
						$('.c-list img').imgLoader({
							"loadingSrc": spinner_url
						});
					}
				});
			}
		}

		// if we're on the checkout page
		else if($body.hasClass('checkout-onepage-index')) {
			var $steps = $content.find('#checkoutSteps');
			var $progress = $content.find('#checkout-progress-wrapper');
			var $current_step = null;			

			var pagetest = setInterval(function() {
				var $active = $steps.find('li.active').attr('id');

				if($current_step != $active) {
					$progress.find('.active').removeClass('active');
					$progress.find('html').each(function() { $(this).html($(this).text()); });

					var active = '';
					if($active == 'opc-billing') active = 'billing address';
					else if($active == 'opc-shipping') active = 'delivery address';
					else if($active == 'opc-shipping_method') {
						active = 'delivery method';
						$('#checkout-shipping-method-load input').uniform();
						$('#checkout-shipping-method-load li:contains("TransitCover")').remove();
						$('#checkout-shipping-method-load li:contains("Sea Mail")').remove();
					}
					else if($active == 'opc-payment') {
						active = 'payment details';
						$('#checkout-payment-method-load').find('input, select').uniform();
						$('#payment_form_ewayau_direct .selector').removeClass('disabled');
					}

					if(active != '') $progress.find('h4:contains("' + active + '")').addClass('active');
					Cufon.replace($progress.find('h4'));
				}

				$current_step = $active;
			}, 500);
		}

		// if we're on the find a stockist page
		else if($body.hasClass('cms-find-a-stockist')) {
			var $locations = $('#locations > div');
			var $tabs = $('#tabs a');

			$tabs.click(function() {
				$tabs.removeClass('current');

				var location = $(this).addClass('current').attr('href');

				$locations.filter(':visible').slideUp('slow', function() {
					$locations.filter(location).slideDown('slow');
				});

				return false;
			});

		    if(window.location.hash != '') {
		    	$('a[href="' + window.location.hash + '"]').click();
		    }
		}

		// if we're on the product detailed page
		else if($body.hasClass('catalog-product-view')) {
				$('#product-image .cloud-zoom').CloudZoom();
				$('#wrap').append('<div id="img-zoom-btn">&nbsp;</div>');
				$('#product-purchase option').eq(1).attr('selected', true);
		}

		// if we're on the search results page
		else if($body.hasClass('catalogsearch-result-index')) {			
			
			$('#search-results-list a').each(function() {
				$(this).closest('tr').css('cursor', 'pointer').click(function() {
					window.location = $(this).find('a').attr('href');
				});
			});
			
			//setup async page nav
			$.fn.kasAsyncPageNav({"beforeLoad":function(){$('tr img').fadeOut();}});

		}

		// if we're on the shopping cart page
		else if($body.hasClass('checkout-cart-index')) {
			var $shipping = $('#cart-sidebar .shipping');

			$shipping.find('#region').closest('li').hide();
			$shipping.find('h2').text('Estimate Shipping');
			$shipping.find('p').hide();

			$shipping.find('#postcode').bind('keypress', function(e) { 
				if(e.keyCode == 13) coShippingMethodForm.submit();
			});

		}

		// if we're on the account dashboard page
		else if($body.hasClass('customer-account-index')) {
			$('#dashboard-info-block').find('p[style]').attr('style', '');
		}

		// make the dollar signs for prices superscript
		$('.price').each(function() {
			var $this = $(this);
			$this.html($this.html().replace('$', '<sup>$</sup>'));
		});
		
		// make the form fields look pretty
		if(!$body.hasClass('cms-newsletter-signup') && !$body.hasClass('cms-competitions')){
			var $inputs = $content.find('input, select, button')
				.not('.btn-continue, .btn-checkout, #region_id, #update-cart, .btn-cart, #send2, .new-users button, .customer-account-forgotpassword .main form button, #create-account-btn, .checkout-onepage-success button');

			if($inputs.size() > 0) {
				$.getScript($script_url + 'jquery.uniform.min.js', function() {
					$inputs.uniform();
				});

			}
		}
		

		// make the states field a text input
		var states = $content.find('select[name="shipping[region_id]"]');
		if(states.size() > 0) {
			states.replaceWith('<input type="text" name="shipping[region_id]" value="' + states.val() + '" />');
		}


		// AJAXify the header shopping cart
		var $top_links = $('#shopping_nav');
		var $cart_btn = $top_links.find('.top-link-cart');

		var $cart_html = '<li class="link"><a href="' + $cart_btn.attr('href') + '">view cart &raquo;</a></li>';
		$cart_html += '<li class="loading">&nbsp;</li>';
		$cart_html += '<li class="link"><a href="https://www.kasaustralia.com.au/checkout/onepage/">proceed to checkout &raquo;</a></li>';

		$cart_btn.click(function() {
			var $this = $(this);
			var $cart_ddm_holder = $this.parent().find('#cart_ddm');
			var $cart_ddm = $cart_ddm_holder.find('ul');

			if($cart_ddm.size() == 0) {
				$this.after('<div id="cart_ddm"><ul></ul></div>');
				$cart_ddm_holder = $this.parent().find('#cart_ddm').hide();
				$cart_ddm = $cart_ddm_holder.find('ul');
			}

			if(!$cart_ddm_holder.is(':visible')) {
				$cart_ddm.html($cart_html);
				$cart_ddm_holder.slideDown();

				$.get(this.href, {}, function(data) {
					var $results = $cart_ddm.find('.loading');

					$results.slideUp(400, function() {

						var $items = $(data).find('#shopping-cart-table tbody tr');

						if($items.size() > 0) {
							$items.each(function() {
								var $this = $(this);
								var $a = $this.find('.thumb-td a').addClass('clearfix');
								var $qty = parseInt($this.find('.qty').val());
								var $num_items = $qty > 1 ? ' (' + $qty + ')' : '';

								$a.append('<strong>' + $this.find('.product-name').text() + $num_items + '</strong><br />' + $this.find('.item-options dd').text());
								$results.after($('<li style="display:none"></li>').append($a));
							});
						}
						else $results.after('<li class="no-results" style="display:none;">your cart is empty</li>');

						$results.remove();
						$cart_ddm.find('li:hidden').slideDown();

					});
				});
			}
			else $cart_ddm_holder.slideUp();

			return false;
		});

		// AJAXify the search form
		var $form = $('#search_mini_form');
		var $search_url = $form.attr('action');
		var $search = $form.find('#search');
		var $results = $form.find('#quick_search_results');

		$search
			.focus(function() {
				$search.addClass('focus');
				if($search.val() == 'Search...') $search.attr('value', '');				
			})
			.blur(function() {
				$search.removeClass('focus');
				if($search.val() == '') {
					$search.attr('value', 'Search...');
					$results.slideUp();
				}
			})
			.keyup(function() {
				if($search.val().length > 2) {
					$results.slideDown();
					if($results.find('.loading').size() == 0) {
						$results.find('ul').prepend('<li class="loading">&nbsp;</li>');
					}

					$.get($search_url, { q: $search.val(), quick: true }, function(data) {
						var $r = $(data).find('#quick_search');

						if($r.html() == null) {
							$results.html('<li class="no-results">no results found</li>');
						}
						else $results.html($r.html());
					});
				}
			});

	});

});
//global functions
(function( $ ){
	  $.fn.kasAsyncPageNav = function(options) {
		  var self = this;
		  
		  self.options = $.extend({}, $.fn.kasAsyncPageNav.defaultOptions, options);
		  
				$('#pages_nav a').each(function(){
					var sHref = $(this).attr('href').replace('#page_nav','').replace('http://' + location.host,'#');
					$(this).attr('href',sHref);
				});
		
				$('#pages_nav a').unbind('click');
				
				$('#pages_nav a').bind('click',function(){
					var sHref = $(this).attr('href').replace('#','');
					self.options.beforeLoad();
					$('div.main').load(sHref + ' div.main',function(){
						$.fn.kasAsyncPageNav(self.options);
						self.options.onLoad();
					});
				});
				
				self.options.afterLoad();
	  };
	  
	  $.fn.kasAsyncPageNav.defaultOptions = {
			"beforeLoad": function() {},
			"onLoad":function(){},
			"afterLoad": function() {}
		};

})( jQuery );

