/*   
Web Site Name: Mischief Shoes
Document: Core jQuery
URL: http://www.mischiefshoes.co.nz
Copyright: Crosbie Design Ltd.
Designer: Crosbie Design Ltd.
Email: michael@crosbiedesign.co.nz

TABLE OF CONTENTS

	Document ready functions
	Window load functions
	
	SITE WIDE FUNCTIONS
		- Category menu					// category_menu()
		- Newsletter signup				// newsletter_signup()

	
	ACCOUNT RELATED PAGES
		- Login view					// loginView()


		

/* ---------- @ DOCUMENT READY FUNCTIONS -----------*/
	$(document).ready(function(){
		
		// Site wide
		category_menu();
		newsletter_signup();

		//$("select, input:checkbox, input:radio").uniform();
		
		if($(".blog_detail").size() > 0){
			blog_detail();
		}
		if($("body.stores").size() > 0){
			store_maps();
		}
		if($("body.home").size() > 0){
			homepage();
		}
	});
	

/* ---------- @ SITE WIDE FUNCTIONS -----------*/
	/* ---------- @ Category menu  -----------*/
	function category_menu(){
		$("ul.categorymenulevel>li:nth-child(0)").removeClass('selected').addClass('onlineStore').find("li").removeClass('selected');
		$("ul.categorymenulevel>li:nth-child(1)").removeClass('selected').addClass('onlineStore').find("li").removeClass('selected');
		$("ul.categorymenulevel>li:nth-child(2)").removeClass('selected').addClass('onlineStore').find("li").removeClass('selected');
		$("ul.categorymenulevel>li:nth-child(3)").removeClass('selected').addClass('onlineStore').find("li").removeClass('selected');
		$("ul.categorymenulevel>li:nth-child(4)").removeClass('selected').addClass('onlineStore').find("li").removeClass('selected');
		
		// Add shoecare
		$("ul.categorymenulevel>li:nth-child(4) ul").append('<li class="shoe_care"><a href="client/shoe_care">SHOE CARE</a></li>');
		
		if($("body.shoe_care").size() > 0){
			$("ul.categorymenulevel>li:nth-child(4)").addClass("selected").find("li.shoe_care").addClass('selected');
		}
		
		if($("ul.categorymenulevel>li.selected").size() == 0){
			$("ul.categorymenulevel>li:first-child").addClass("selected").find("ul.categorysubmenulevel2").show();

		}else{
			$("ul.categorymenulevel>li.selected").find("ul.categorysubmenulevel2").show();
		}
		
		// STYLE SALE CATEGORY
		$("ul.categorysubmenulevel2 li a").each(function(){
			if($(this).attr('title') == "Sale"){
				$(this).addClass('sale');
			}
		}); 
		
		// HIDE EXCESS BRANDS
		if($("ul#cul16 li").size() > 10){
			$("ul#cul16 li:nth-child(n+11)").each(function(){
				$("#additional_brands ul").append($(this));
			});
			$("ul#cul16").append('<li id="see_more">SEE MORE ></li>');
			$("#see_more").click(function(){
				$(this).css('color','#00B7DC');
				$("#additional_brands").fadeIn("fast");
				$("#additional_brands .close").click(function(){
					$("#additional_brands").fadeOut("fast");
					$('#see_more').css('color','#58595b');
				});
				$('#additional_brands li a').click(function() {
					window.location.href = 'http://shop.mischiefshoes.co.nz'+$(this).attr("href");
					return false;	
				});
			});
		}
		
		$('div.categorymenu ul:not(.categorysubmenulevel2) li a').click(function() {
			$("ul.categorymenulevel>li").removeClass('selected');
			$(this).parents("li").addClass("selected");
			if($(this).parents("li").find("ul.categorysubmenulevel2").css("display") == "none"){
				if($(this).parents("li").find("ul.categorysubmenulevel2").size() > 0){
					$("ul.categorysubmenulevel2").hide();
					$(this).siblings("ul.categorysubmenulevel2").toggle();
					return false;
				}else{
					if($(this).parents("li").hasClass('onlineStore')){
						if($(this).parents("li").hasClass("shoe_care")){
							window.location.href = 'http://www.mischiefshoes.co.nz/'+$(this).attr("href");
						}else{
							window.location.href = 'http://shop.mischiefshoes.co.nz'+$(this).attr("href");
						}
						
					}else{
						window.location.href = 'http://www.mischiefshoes.co.nz/'+$(this).attr("href");
					}
					
				}
			}else{
				if($(this).parents("li").hasClass('onlineStore')){
					if($(this).parents("li").hasClass("shoe_care")){
						window.location.href = 'http://www.mischiefshoes.co.nz/'+$(this).attr("href");
					}else{
						window.location.href = 'http://shop.mischiefshoes.co.nz'+$(this).attr("href");
					}
					
				}else{
					if($(this).attr('rel') == "_blank"){
						window.location.href = $(this).attr("href");
					}else{
						window.location.href = 'http://www.mischiefshoes.co.nz/'+$(this).attr("href");
					}
				}
			}
			return false;
		}).find("ul.categorysubmenulevel2").hide();
		$('div.categorymenu ul.categorysubmenulevel2 li a').click(function(){
			if($(this).parents("li").parents("li").hasClass('onlineStore')){
				if($(this).parents("li").hasClass("shoe_care")){
					window.location.href = 'http://www.mischiefshoes.co.nz/'+$(this).attr("href");
				}else{
					window.location.href = 'http://shop.mischiefshoes.co.nz'+$(this).attr("href");
				}
			}else{
				if($(this).attr('target') == "_blank"){
					window.location.href = $(this).attr("href");
				}else{
					window.location.href = 'http://www.mischiefshoes.co.nz/'+$(this).attr("href");
				}
				
			}
		});
	}
	
	/* ---------- @ Newsletter Signup -----------*/
	function newsletter_signup(){
		 	var optionsDetail = { 
				success: showResponseNewsletter, // post-submit callback
				clearForm: true,
				dataType: 'json'
		    };
		    // bind form using 'ajaxForm' 
			$("#newsletter-detail-form").validationEngine();
			$("#newsletter-signup-submit").click(function(){
					$("#newsletter-detail-email").val($("#newsletter-signup-email").val());


					$("#overlay").fadeIn("slow");
					$("#newsletter-detail").fadeIn("slow");
					$('#newsletter-detail-form').ajaxForm(optionsDetail);
					$("#newsletter-signup-email").val('');
					$('.modal.notification .close').click(function(){
						$("#newsletter-detail-success").fadeOut("slow");
						$("#newsletter-detail").fadeOut("slow");
						$("#overlay").fadeOut("slow");
					});
				return false;
			});
	}

	function showResponseNewsletter(responseText, statusText)  {
		$("#newsletter-detail").fadeOut("fast");
		$("#newsletter-detail-success").fadeIn("fast");
		$(this).delay(8000,function(){
			$("#newsletter-detail-success").fadeOut("slow");
			$("#overlay").fadeOut("slow");							
		});
	};
	
/* ---------- @ PAGE SPEC FUNCTIONS -----------*/
	/* ---------- @ Blog Detail -----------*/
	function blog_detail(){
		$("#comment_form").validationEngine();
		var options = {
			beforeSubmit: validate, // pre-submit callback
			success: showResponse, // post-submit callback
			dataType: 'json'
		};
		$('#comment_form').ajaxForm(options);
	
		function validate(formData, jqForm, options) {
			if($('#comment_form').validationEngine('validate') == true){
				Recaptcha.destroy();
				$('#overlay').fadeIn("slow");
				return true;
			}else{
				return false;
			}
		}
		function showResponse(html, statusText) {
			$('#overlay').fadeOut("slow");
			Recaptcha.create("6LcIOsYSAAAAAFNUCv8f3yj1BT7k5_yXkdBiTyX8",
			"recaptcha_div",
			{
				theme: "white",
				callback: Recaptcha.focus_response_field
			}); 
			if(html.success){
				$(".comment_roll").append('<div class="comment"><div class="specs"><span class="author">'+html.data.author+'</span> says ...<span class="date">'+html.date.long+'</span></div><div class="text">'+html.data.comment+'</div><div class="clear"></div></div>');
				$('#comment_form').clearForm();
			}else{
				alert('There was an error with your recaptcha input, try again.');
			}
		};
	}
	/* ---------- @ Stores -----------*/
	function store_maps(){
		$('.map').click(function(){
			if($(this).hasClass('selected')){
				$(this).removeClass('selected');
				$("#"+$(this).attr("id")+"_iframe").hide();
				$("#"+$(this).attr("id")+"_img").show();
			}else{
				$(this).addClass('selected');
				$("#"+$(this).attr("id")+"_iframe").show();
				$("#"+$(this).attr("id")+"_img").hide();
				// Add map
				if($(this).attr("id") == "wlg_map"){
					var wellington = new google.maps.LatLng(-41.28584, 174.77789);
					var wlg_store = new google.maps.LatLng(-41.28584, 174.77593);
					var marker;
					var map;

					function wlg_initialize() {
					  var mapOptions = {
					    zoom: 13,
					    mapTypeId: google.maps.MapTypeId.ROADMAP,
					    center: wellington
					  };

					  map = new google.maps.Map(document.getElementById("wlg_map_iframe"),
					      mapOptions);

					  marker = new google.maps.Marker({
					    map:map,
					    draggable:true,
					    animation: google.maps.Animation.DROP,
					    position: wlg_store
					  });
					  google.maps.event.addListener(marker, 'click', wlg_toggleBounce);
					}

					function wlg_toggleBounce() {

					  if (marker.getAnimation() != null) {
					    marker.setAnimation(null);
					  } else {
					    marker.setAnimation(google.maps.Animation.BOUNCE);
					  }
					}
					wlg_initialize();
					wlg_toggleBounce();
				}else{ 
					var newmarket = new google.maps.LatLng(-36.86858, 174.77789);
					var store = new google.maps.LatLng(-36.86858, 174.77789);
					var marker;
					var map;

					function initialize() {
					  var mapOptions = {
					    zoom: 13,
					    mapTypeId: google.maps.MapTypeId.ROADMAP,
					    center: newmarket
					  };

					  map = new google.maps.Map(document.getElementById("akl_map_iframe"),
					      mapOptions);

					  marker = new google.maps.Marker({
					    map:map,
					    draggable:true,
					    animation: google.maps.Animation.DROP,
					    position: store
					  });
					  google.maps.event.addListener(marker, 'click', toggleBounce);
					}

					function toggleBounce() {

					  if (marker.getAnimation() != null) {
					    marker.setAnimation(null);
					  } else {
					    marker.setAnimation(google.maps.Animation.BOUNCE);
					  }
					}
					initialize();
					toggleBounce();
				}
				
				
				
			}
			return false;
		});
	}
	/* ---------- @ Stores -----------*/
	function homepage(){
		$('#banner').cycle({ 
		    fx:     'fade', 
		    speed:  'slow', 
		    speed:   300, 
			timeout: 10000, 
			pause:   1,
		    next:   '#next', 
		    prev:   '#prev'
		});
		$("div.team_pick").mouseover(function() {
		    $(this).find("img").hide();
			$(this).find(".rollover").show();
			$(this).find(".rollover>img").show();
		  }).mouseout(function(){
		    $(this).find("img").show();
			$(this).find(".rollover").hide();
		  });
	}
