// livercake.net: project hash
// JS layer v0.31 build 4

// (cc) livercake - felipe@livercake.net
// if you see something you like, take it - improve it - let me know :)


// jquery document-wide init - noconflict
jQuery(document).ready(function($) {
	
	// Scroll the main menu document
	$.localScroll({
		target: 'body',
		queue:true,
		duration:800,
		hash:false
	});
	
	// backstretch background image
	$.backstretch("http://www.livercake.net/wp-content/themes/projectX/img/clouds.jpg");
	
	
	// listening for hash change in addressbar
        	var $mainContent = $("#single_area"),
        	    siteUrl = "http://" + top.location.host.toString(),
        	    url = ''; 
    		
    		// assigning ajax property to links {excluding image attachments, wp-admin, login & logout}
    		$(document).delegate("a[href^='"+siteUrl+"']:not([href*=/wp-admin/]):not([href*=.jpg]):not([href*=/wp-login.php]):not([href$=/feed/])", "click", function() {
       			location.hash = this.pathname;
    			// REMEMBER: all anchors scroll to top, and return false!
    			scrollTo('0,0', {duration: 800});
    			$('#scrolltoPosts').fadeIn('slow');
    			return false;
    		});
    		
    		// redirecting search clicks' hash
    		$("#searchform").submit(function(e) {
    		        location.hash = '?s=' + $("#s").val();
    		        e.preventDefault();
    		    }); 
    		
    		// passing URLs as parameters for page load
    		$(window).bind('hashchange', function(){
        		url = window.location.hash.substring(1);
        		if (!url) {
    		        return;
    		    } 
    			$('#loading').fadeIn('slow');
    		    url = url + " #single_area";
    		    $mainContent
    		    	.slideUp('slow')

    		    	.load(url, function() {
    		        $('#loading').fadeOut('slow');
    		        $mainContent
    		        	.slideDown('slow');
    		   		});
    		});
	
	// changing hash in addressbar
    $(window).bind('hashchange', function(){
        url = window.location.hash.substring(1); 

        if (!url) {
            return;
        } 

        url = url + " #single_area"; 
		
		// animation for content loading
        $mainContent.slideUp('slow').load(url, function() {
            $mainContent.slideDown('slow');
        });
    });
    
    // When all resources are loaded...
    		$(window).load(function () {
    			
     			// Remove loading overlay
     			$('#loadOnce').slideUp('slow');
     			
     			// Title graphic closes current post 
     			$('#title').click(function() { 
     				$('#single_area').slideUp('slow');
     				$('scrolltoPosts').hide();
     				scrollTo('0,0', {duration: 800});
     			});
     			
     			// modal listeners
     				
     				// return active
     				$('header a.modaltrigger').click(function(){
     					$(this).toggleClass('active');
     				});
     				
     				// soundcloudRadio
     				$('#soundcloudTrigger').click(function() { 
     					$('#soundcloudRadio').toggleClass('open');
     				});
     				
     				// search form
     				$('#searchTrigger').click(function() { 
     					$('#searchform').slideToggle('fast');
     				});
     					
				// next mix trigger
				$('#soundcloudRadio ul li a.next').click(function() {
					$('#soundcloudMixes').animate({top: '-=170px'});
				});
				
				$('#soundcloudRadio ul li a.prev').click(function() {
					$('#soundcloudMixes').animate({top: '+=170px'});
				});
				
				// remove 'next' from last mix and 'prev' from first + adding 'see all'
				$('#soundcloudMixes').children().first().children('div.mixcontrols').children('a.prev').hide();
				$('#soundcloudMixes').children().last().children('div.mixcontrols').children('a.next').hide();
				$('<a href="http://www.livercake.net/soundcloud-mixes/" id="gotoMixes" class="allmixes">all mixes &raquo;</a>').insertAfter($('#soundcloudMixes').children().last().children('div.mixcontrols').children('a.next'));
				
				// 'see all mixes' -> close window, toggle button class
				$('#gotoMixes').click(function() {
					$('#soundcloudRadio').toggleClass('open');
					$('#soundcloudTrigger').toggleClass('active');
				});
     					
				// are tiles in the viewport? {back to posts}
				$('#mainLoop').bind('inview', function (event, visible) {
				  if (visible == true) {
				    $('#scrolltoPostsTrigger').hide();
				  } else {
				    $('#scrolltoPostsTrigger').show();     			    
				  }
				});
				
				// is the post in the viewport? {post nav}
				$('#single_area').bind('inview', function (event, visible) {
				  if (visible == true) {
				    $('#postNav').fadeIn('slow');
				  } else {
				    $('#postNav').fadeOut('slow');     			    
				  }
				});
				
				
     							
    		});
	
	// add URL after the hash
    $(window).trigger('hashchange');
});
