/*   
Web Site Name: Kate Sylvester
URL: http://www.katesylvester.com
Copyright: Kate Sylvester
Designer: Wayne Conway, Kate Sylvester
Developer: Michael Crosbie, Crosbie Design
Email: michael@crosbiedesign.co.nz
File: Core Javascript

TABLE OF CONTENTS

	Document Ready
	Window Load
	
	GLOBAL FUNCTIONS
	Selectors offset
	
	PAGE FUNCTIONS
	Blog functions
  
/* ---------- @ Document Ready -----------*/
$(document).ready(function(){
	selectors_offset();
	site_wide_share();
	newsletter_signup();
	termsAndconditions();
	
	
});
window.onresize = function(event) {
    selectors_offset();
}
$(window).load(function(){
	content_min_height();
});

/* ---------- @ GLOBAL FUNCTIONS -----------*/
/* ---------- @ Selectors offset -----------*/

function selectors_offset(){
	if($("#selectors").size() == 0){
		$("#sub_menu").after('<div id="selectors"></div>');
	}
	$("#selectors").prepend($(".newsletter"));
	var offset = $('#sub_menu').offset();
	$("#selectors").css('left',offset.left);
	
}
/* ---------- @ Content min height -----------*/
function content_min_height(selector,remove){
		if( typeof( window.innerWidth ) == 'number' ) { 

		//Non-IE 

		myWidth = window.innerWidth;
		myHeight = window.innerHeight; 

		} else if( document.documentElement && 

		( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { 

		//IE 6+ in 'standards compliant mode' 

		myWidth = document.documentElement.clientWidth; 
		myHeight = document.documentElement.clientHeight; 

		} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { 

		//IE 4 compatible 

		myWidth = document.body.clientWidth; 
		myHeight = document.body.clientHeight; 

		}
		if(selector){
			$(selector).css('min-height',(myHeight-remove));
		}else{
			remove = 132;
			$("#sub_menu").css('min-height',(myHeight-remove));
			$(".content").css('min-height',(myHeight-remove));
		}
}
/* ---------- @ Site-wide share -----------*/
function site_wide_share(){
 	if($(".content").css("background-color") == "rgb(220, 234, 230)"){
		$(".addthis_button img").each(function(){
			if($(this).attr('src') == "media/client/body/AKSL_share.png"){
				$(this).attr('src', 'media/client/body/AKSL_share_white.png');
			}
		});
	}
}
/* ---------- @ Newsletter Signup -----------*/
function newsletter_signup(){
	$("select, input:checkbox, input:radio").uniform();
	 	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");							
	});
};
/* ---------- @ Terms and Conditions -----------*/
function termsAndconditions()  {
	$("#menu #7").before('<li id="TC" ><a class="TAC" title="RETURNS" href="TermsConditions">RETURNS</a></li>');
	$(".TAC").click(function(){
			$("#overlay").fadeIn();
			$("#"+$(this).attr("href")).fadeIn();
			$('.modal').jScrollPane({showArrows: true, horizontalGutter: 14,	verticalGutter: 14 });
			$("#"+$(this).attr("href")+" .jspCapTop").click(function(){
				$("#overlay").fadeOut();
				$("div.modal").fadeOut();
			});
			modalWindow();
		return false;
	});
}
/* ---------- @ Modal window -----------*/
function modalWindow(){
	$(".modal .holder a").click(function(){
		$("#overlay").fadeIn();
		$(".modal").fadeOut();
		$("#"+$(this).attr("href")).fadeIn();
		$('.modal').jScrollPane({showArrows: true, horizontalGutter: 14,	verticalGutter: 14 });
		$(".modal .jspCapTop").click(function(){
			$("#overlay").fadeOut();
			$("div.modal").fadeOut();
		});
		modalWindow()
		return false;
	});
}
/* ---------- @ PAGE FUNCTIONS -----------*/
/* ---------- @ Blog functions -----------*/
function blog(){
	
	/* Selectors */
	$("#selectors .months").hide();
	if($("#selectors .sub_menu li.selected").size() > 0){
		$("#M_"+$("#selectors .sub_menu li.selected").attr("id")).show();
	}
	
	$("#selectors .sub_menu li").click(function(){
		$("#selectors .months").hide();
		$("#selectors .sub_menu li").removeClass("selected");
		$("#M_"+$(this).attr("id")).show();
		$(this).addClass("selected");
		return false;
	});
			//settings on top
		//function that creates posts
		var postHandler = function(postsJSON) {
			$.each(postsJSON,function(i,post) {
				//post url
				var id = 'post-' + post.id;
				//create the HTML
				$('.blog_posts').append('<div class="full_divider" id="'+id+'"></div>'+post.parsed.master)
				.slideDown(250,function() {
					if(i == 0) {
						$.scrollTo($('div#' + id));
					}
				});
			});
		};
		//place the initial posts in the page
		//first, take care of the "load more"
		//when someone clicks on the "load more" DIV
		var start = 1;
		var desiredPosts = 10;
		var loadMore = $('#load-more');
		var path = window.location.pathname;
		var path = path.replace('/client/','')
		var path = path.replace('news/','');
		//load event / ajax
		loadMore.click(function(){
			//add the activate class and change the message
			loadMore.addClass('activate').text('Loading...');
			//begin the ajax attempt
			$.ajax({
				url: 'dimensions/dynamic_blog/load_more/'+path, //ajax script -- same page
				data: {
					'start': start,
					'desiredPosts': desiredPosts
				},
				type: 'post',
				dataType: 'json',
				cache: false,
				success: function(responseJSON) {
					//reset the message
					loadMore.text('Load More');
					//increment the current status
					if(responseJSON.error){
						loadMore.text(responseJSON.error);
					}else{
						start += 1;
						//add in the new posts
						postHandler(responseJSON.article);
					}
				},
				//failure class
				error: function() {
					//reset the message
					loadMore.text('Oops! Try Again.');
				},
				//complete event
				complete: function() {
					//remove the spinner
					loadMore.removeClass('activate');
				}
			});
		});
}
/* ---------- @ Collections functions -----------*/
function collections(type){
	if(type == "campaign"){
		$(window).load(function(){
		$("#campaign").thumbnailScroller({ 
				scrollerType:"clickButtons", 
				scrollerOrientation:"horizontal", 
				scrollSpeed:1000, 
				scrollEasing:"easeOutCirc", 
				scrollEasingAmount:1500, 
				acceleration:4, 
				scrollSpeed:800, 
				noScrollCenterSpace:10, 
				autoScrolling:0, 
				autoScrollingSpeed:2000, 
				autoScrollingEasing:"easeInOutQuad", 
				autoScrollingDelay:500 
			});
		});
	}
	
	// Flow size
	if(type == "video"){
		$(window).load(function(){
			remove = $(".video .video").height() + 136;
			content_min_height('.flow',remove)
		});
	}else{
		$(window).load(function(){
			content_min_height('.flow',666)
		});
	}
	
	
	// Read more
	$('#toggle').click(function() {
	    
		if($('.read-more-text').css('display') == "none"){
			$('#toggle').html('< Read less');
			$('.read-more-text').slideDown('fast');
		}else{
			$('#toggle').html('Read more >');
			$('.read-more-text').slideUp('fast');
		}
	});
	// Sub menu
	$("#sub_menu ul li ul li ul li.selected").parents("li").addClass("selected");
	$("#sub_menu ul li ul li ul li.selected").addClass("stable");
	$('#sub_menu ul li ul>li').click(function() {
		if($(this).find("ul").css("display") == "none"){
			if($(this).find("ul").size() > 0){
				$('#sub_menu ul li ul li:not(.stable)').removeClass("selected");
				$(this).addClass("selected");
				$("#sub_menu ul li ul li ul").hide();
				$(this).find("ul").toggle();
			}else{
				if($(this).find("a").size() > 0){
					window.location.href = '/'+$(this).find("a").attr("href");
				}else{
					$('#sub_menu ul li ul li:not(.stable)').removeClass("selected");
					$(this).addClass("selected");
					$(this).find("ul").toggle();
				}
			}
		}else{
			if($(this).find("a").size() > 0){
				window.location.href = '/'+$(this).find("a").attr("href");
			}else{
				$('#sub_menu ul li ul li:not(.stable)').removeClass("selected");
				$(this).addClass("selected");
				$(this).find("ul").toggle();
			}
		}
		return false;
	}).find("#sub_menu ul li ul li ul").hide();
	$('#sub_menu ul li ul li ul>li a').click(function(){
		window.location.href = '/'+$(this).attr("href");
	});
}
/* ---------- @ Stockists functions -----------*/
function stockists(startwith){
				/* Show */
				if(startwith == 'stockists'){
					$(".brand_set").hide();
					$(".country_set").hide(); //Hide all content
					$("#C_KSSTOCKISTS").show();
					$(".stockist_country").show();
					$('.stockist_menu li').removeClass('selected');
					$('#KSSTOCKISTS').addClass("selected");
					stockists_country('KSSTOCKISTS');
				}else
				if(startwith == 'opticals'){
					$(".brand_set").hide();
					$(".country_set").hide(); //Hide all content
					$("#C_KSSTOCKISTS_OPTICALS").show();
					$(".stockist_country").show();
					$('.stockist_menu li').removeClass('selected');
					$('#KSSTOCKISTS_OPTICALS').addClass("selected");
					stockists_country('KSSTOCKISTS_OPTICALS');
				}else{
					$(".brand_set").hide();
					$(".stockist_country").hide();
					$(".country_set").hide(); //Hide all content
					$("#flagship").show();
					$('.stockist_menu li').removeClass('selected');
					$('#KSSTORES').addClass("selected");
				}
				
				/* Flagship/Country */
				$("#KSSTORES").click(function() {
					$(".brand_set").hide();
					$(".stockist_country").hide();
					$(".country_set").hide(); //Hide all content
					$("#flagship").show();
					$('.stockist_menu li').removeClass('selected');
					$(this).addClass("selected");
				});
				$("#KSSTOCKISTS").click(function() {
					$(".brand_set").hide();
					$(".country_set").hide(); //Hide all content
					$("#C_KSSTOCKISTS").show();
					$(".stockist_country").show();
					$('.stockist_menu li').removeClass('selected');
					$(this).addClass("selected");
					stockists_country('KSSTOCKISTS');
				});
				$("#KSSTOCKISTS_OPTICALS").click(function() {
					$(".brand_set").hide();
					$(".country_set").hide(); //Hide all content
					$("#C_KSSTOCKISTS_OPTICALS").show();
					$(".stockist_country").show();
					$('.stockist_menu li').removeClass('selected');
					$(this).addClass("selected");
					stockists_country('KSSTOCKISTS_OPTICALS');
				});
}
function stockists_country(brand){
	$('#C_'+brand+' .country_set:first').show();
	$('#C_'+brand+' .stockist_country li:first').addClass("selected");
	$('#C_'+brand+' .stockist_country li a').click(function() {
		$('#C_'+brand+' .country_set' ).hide(); //Hide all content
		var activeTab = $(this).attr("rel"); //Find the href attribute value to identify the active tab + content
		$('#C_'+brand+' #CSS_'+activeTab).fadeIn(); //Fade in the active content */
		$('#C_'+brand+' .stockist_country li').removeClass("selected"); //Remove any "active" class
		$(this).parent().addClass("selected"); //Add "active" class to selected tab
		return false;
	});
}

