/*   
Web Site Name: m o o c h i
Document: Core jQuery
URL: http://www.moochi.co.nz
Copyright: Crosbie Design Ltd.
Designer:  m o o c h i
Email: michael@crosbiedesign.co.nz

TABLE OF CONTENTS

	Document ready functions
	Window load functions
	
	SITE WIDE FUNCTIONS
		- Menu								// menu()

	
	PAGE SPECIFIC FUNCTIONS
		- Press load more					// press()
		- Collections detail				// collections()

	MINI FUNCTIONS
		- delay								// fn.delay()

		

/* ---------- @ DOCUMENT READY FUNCTIONS -----------*/
	$(document).ready(function(){
		
		// Site wide
		menu();
		
		$("#typekit-badge-rxt8mav").remove();
		
		if($(".press_overview").size() > 0){
			press();
		}
		if($(".collections_detail").size() > 0){
			collections();
		}
	});
	

/* ---------- @ SITE WIDE FUNCTIONS -----------*/
	/* ---------- @ menu  -----------*/
	function menu(){
		var totalWidth = 0;
		$("#menu li").each(function(){
			totalWidth = totalWidth + $(this).width();
		});
		var count = $("#menu li").size();
		var leftOver = 872 - totalWidth;
		var padding = (leftOver/((count*2)-2));
		$("#menu li").each(function(){
			$(this).css('margin-left',padding+'px');
			$(this).css('margin-right',padding+'px');
		});
		$("#menu li:first").each(function(){
			$(this).css('margin-left','0px');
			$(this).css('margin-right',padding+'px');
		});
		$("#menu li:last").each(function(){
			$(this).css('margin-right','0px');
			$(this).css('margin-left',padding+'px');
		});
	}

/* ---------- @ PAGE SPECIFIC FUNCTIONS -----------*/
	/* ---------- @ press  -----------*/
	function press(){
			//function that creates posts
			var postHandler = function(postsJSON) {
				$.each(postsJSON,function(i,post) {					
					var id = 'post-' + post.id;
					//create the HTML
					$('<div></div>')
					.addClass('box col1')
					.attr('id',id)
					.css('background-image','url('+post.image+')')
					//generate the HTML
					.html('<a href="'+post.href+'" class="none"></a>')
					//inject into the container
					.appendTo($('#container #content .press_pieces'));
				});
			};
			//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 = 12;
			var loadMore = $('#load-more');
			//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: 'moochi/press/load_more', 
					data: {
						'start': start,
						'desiredPosts': desiredPosts,
						'collection': collection
					},
					type: 'post',
					dataType: 'json',
					cache: false,
					success: function(responseJSON) {
						//reset the message
						loadMore.text('Load More');
						//increment the current status
						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  -----------*/
	function collections(){
				$("#left .slides").each(function(){
					$(this).cycle({
						timeout:0,
						speed:1200,
						fx:'fade',
						prev: '#P_'+$(this).attr("id"),
						next: '#N_'+$(this).attr("id"),
						pager: '#right #T_'+$(this).attr("id"),
						before:        function(currSlideElement, nextSlideElement, options, forwardFlag){
							if($(currSlideElement).is(":last-child")){
								var id = parseInt($("ul.slides.selected").attr("id"));
								if($("#"+(id+1)).size() > 0){

									// hide
									$("#right .thumbs").hide().removeClass("selected");
									$("#left .slides").hide().removeClass("selected");
									$("#left .prev").hide().removeClass("selected");
									$("#left .next").hide().removeClass("selected");
									$(".numbers a").removeClass("selected");

									// show
									$("#"+(id+1)).fadeIn().addClass("selected");
									$("#T_"+(id+1)).fadeIn().addClass("selected");
									$("#P_"+(id+1)).fadeIn().addClass("selected");
									$("#N_"+(id+1)).fadeIn().addClass("selected");
									$("#H_"+(id+1)).addClass("selected");
								}
							}
						},
			    		pagerAnchorBuilder: function(idx, slide) { 
							img = $('#'+slide.id).find('img').attr('src');
			        		return "<li style='background-image:url("+img+")'><a href='#'></a></li>"; 
			    		} 
					});
					// Build counter
					$(".numbers").append(' <a href="#" id="H_'+$(this).attr("id")+'" rel="'+$(this).attr("id")+'">'+$(this).attr("id")+'</a> ');

				});
				$(".numbers a:first").addClass("selected");

				$("#right .thumbs").hide().removeClass("selected");
				$("#right .thumbs:first").show().addClass("selected");
				$("#left .slides").hide().removeClass("selected");
				$("#left .slides:first").show().addClass("selected");
				$("#left .prev").hide().removeClass("selected");
				$("#left .next").hide().removeClass("selected");
				$("#left .prev:first").show().addClass("selected");
				$("#left .next:first").show().addClass("selected");

				// Build counter
				if($("#left .slides").size() > 1){
					$("div.navigation").show();
					$("div.navigation .back").click(function(){
						// find current
						var id = parseInt($("ul.slides.selected").attr("id"));
						if($("#"+(id-1)).size() > 0){

							// hide
							$("#right .thumbs").hide().removeClass("selected");
							$("#left .slides").hide().removeClass("selected");
							$("#left .prev").hide().removeClass("selected");
							$("#left .next").hide().removeClass("selected");
							$(".numbers a").removeClass("selected");

							// show
							$("#"+(id-1)).fadeIn().addClass("selected");
							$("#T_"+(id-1)).fadeIn().addClass("selected");
							$("#P_"+(id-1)).fadeIn().addClass("selected");
							$("#N_"+(id-1)).fadeIn().addClass("selected");
							$("#H_"+(id-1)).addClass("selected");
						}
					});
					$("div.navigation .forward").click(function(){
						// find current
						var id = parseInt($("ul.slides.selected").attr("id"));
						if($("#"+(id+1)).size() > 0){

							// hide
							$("#right .thumbs").hide().removeClass("selected");
							$("#left .slides").hide().removeClass("selected");
							$("#left .prev").hide().removeClass("selected");
							$("#left .next").hide().removeClass("selected");
							$(".numbers a").removeClass("selected");

							// show
							$("#"+(id+1)).fadeIn().addClass("selected");
							$("#T_"+(id+1)).fadeIn().addClass("selected");
							$("#P_"+(id+1)).fadeIn().addClass("selected");
							$("#N_"+(id+1)).fadeIn().addClass("selected");
							$("#H_"+(id+1)).addClass("selected");
						}
					});
					$("div.navigation .numbers a").click(function(){
						var id = $(this).attr("rel");
						if($("#"+id).size() > 0){

							// hide
							$("#right .thumbs").hide().removeClass("selected");
							$("#left .slides").hide().removeClass("selected");
							$("#left .prev").hide().removeClass("selected");
							$("#left .next").hide().removeClass("selected");
							$(".numbers a").removeClass("selected");

							// show
							$("#"+id).fadeIn().addClass("selected");
							$("#T_"+id).fadeIn().addClass("selected");
							$("#P_"+id).fadeIn().addClass("selected");
							$("#N_"+id).fadeIn().addClass("selected");
							$("#H_"+id).addClass("selected");
						}
						return false;
					});
				}else{
					$("div.navigation").hide();
				}

	}
	
/* ---------- @ MINI FUNCTIONS -----------*/
jQuery.fn.delay = function(time,func){
	this.each(function(){
		setTimeout(func,time);
	});
	
	return this;
};

