// Original JavaScript by Chris Coyier
// Updated October 2010 by Stewart Heckenberg & Chris Coyier
// Updated May 2011 by Chris Coyier

// Self-Executing Anonymous Function to avoid more globals

(function ($) {


$.address;

// Home link isn't dynamic, so default set class name to it to match how dynamic classes work in WordPress
$(".home li.home").removeClass("home").addClass("current_page_item");

// Add spinner via JS, cuz would never need it otherweise

$("#column-wrap").append("<img src='"+ base +"/wp-content/themes/dte-theme/images/dte-files/ajax-loader.gif' id='ajax-loader' />");


var 
	$mainContent     = $("#main"),
    $ajaxSpinner     = $("#column-wrap"),
    $allLinks        = $("a"),
	firstTime		 = true,
    $el,
	$prim				=''
	;
	
	
$ajaxSpinner.hide();
//


// URL internal is via plugin http://benalman.com/projects/jquery-urlinternal-plugin/
$('a:urlInternal').live('click', function(e) { 
	// Caching
	//alert ('click');
	$el = $(this);

	if (  ( $el.hasClass("comment-reply-link") && $el.attr("id") == 'cancel-comment-reply-link' )    ) 
	{
		//
	}
	else if($el.hasClass('audioPlayerSingle'))
	{
		//
		e.preventDefault();
	}
	else if($el.hasClass('audioPlayerList') )
	{
		//
		e.preventDefault();
	}else if($el.hasClass('presslink'))
	{
		// do nothing, let's allow presslinks behave as they should (they open pdfs and others)
	}
	else if($el.hasClass('randomviewall'))
	{
		// adds a random string to the query so that we can keep 
	}
	else if ($el.parent().hasClass('tofrontpage'))
	{
		// the home btn doesn't work with the random append.
		var path = $(this).attr('href').replace(base, '') ;
		//alert (path);
		$.address.value(path);
		$(".current_page_item").removeClass("current_page_item");
		$allLinks.removeClass("current_link");
		$el.addClass("current_link").parent().addClass("current_page_item");
		return false;  
		//
		// Default action (go to link) prevented for comment-related links (which use onclick attributes)
		e.preventDefault();
	}
	else
	{		
	 	//	
		var path = $(this).attr('href').replace(base, '') + '&rand='+Math.floor(Math.random()*101);
		//alert (path);
		$.address.value(path);
		$(".current_page_item").removeClass("current_page_item");
		$allLinks.removeClass("current_link");
		$el.addClass("current_link").parent().addClass("current_page_item");
		return false;  
		//
		// Default action (go to link) prevented for comment-related links (which use onclick attributes)
		e.preventDefault();
	}
	
	
	
});  

$.address.externalChange(function(event){
	//alert('TO: '+event.value +' FROM:'+ $prim);
	
	if (event.value != $prim && $prim != '' ) 
	{	//alert ('op1');
		doChange(event);
	}
	if (event.value != $prim && event.value != '/' && $prim == '' ) {
		//alert ('op2');
		doChange(event);
	}else if (event.value =='/')
	{	// we are in the home page
		//alert ('FRONT');
		thefront = new Object();
		thefront.value = front;
		doChange(thefront);
	}
})

// Fancy ALL AJAX Stuff
$.address.internalChange(function(event) {
		//alert ('internal');
		doChange(event);
}); 


function doChange(theevent)
{
	//alert('TO: ' +theevent.value); 
	if (theevent.value == '/')
	{
		theevent.value = front;	
	}
	$prim = theevent.value;
	
	$mainContent.empty();
	$ajaxSpinner.fadeIn();
	
	$mainContent.load(base + theevent.value + ' #inside', function() {
			$ajaxSpinner.css('display', 'none');
			//$ajaxSpinner.fadeOut();
			$mainContent.fadeIn();
			setClicks($);
			setCollab($);
			slidePage($);
			scrollbarset();
		}); 
			
	var current = location.protocol + '//' + location.hostname + location.pathname;
	if (base + '/' != current) {
		var diff = current.replace(base, '');
		location = base + '/#' + diff;
	}
}



}(jQuery)); // End SEAF
