$(document).ready(function() {						   
	//only called when the main page initially loads
	twitterLinks();
	loadContentAnimation();
	initPage();
	popups('.bubbleInfo');
	setupTabs();
});

function initPage(){
	//called everytime a page is loaded into div
	fadeButton();
	showHide();	
	popups('.contentBoxButton');
}
function popups(objectName){
  $(objectName).each(function () {
    // options
    var distance = 10;
    var time = 250;
    var hideDelay = 100;
    var hideDelayTimer = null;
    // tracker
    var beingShown = false;
    var shown = false;
    var trigger = $('.normal', this);
    var popup = $('.popup', this).css('opacjity', 0);
    // set the mouseover and mouseout on both element
    $([trigger.get(0), popup.get(0)]).mouseover(function () {
		  // stops the hide event if we move from the trigger to the popup element
		  if (hideDelayTimer) clearTimeout(hideDelayTimer);
		  // don't trigger the animation again if we're being shown, or already visible
		  if (beingShown || shown) {
			return;
		  } else {
			beingShown = true;
			// reset position of popup box
			popup.css({
			  top: -70,
			  left: -50,
			  display: 'block' // brings the popup back in to view
			})
			// (we're using chaining on the popup) now animate it's opacity and position
			.animate({
			  top: '-=' + distance + 'px',
			  opacity: 1
			}, time, 'swing', function() {
			  // once the animation is complete, set the tracker variables
			  beingShown = false;
			  shown = true;
			});
		  }
    }).mouseout(function () {
      // reset the timer if we get fired again - avoids double animations
		  if (hideDelayTimer) clearTimeout(hideDelayTimer);
		  // store the timer so that it can be cleared in the mouseover if required
			hideDelayTimer = setTimeout(function () {
				hideDelayTimer = null;
				popup.animate({
				top: '-=' + distance + 'px',
				opacity: 0
				}, time, 'swing', function () {
				  // once the animate is complete, set the tracker variables
				  shown = false;
				  // hide the popup entirely after the effect (opacity alone doesn't do the job)
				  popup.css('display', 'none');
			});
		  }, hideDelay);
    });
  });	
 

}
function showHide(){
	$('ul#filter a').click(function() {
		$(this).css('outline','none');
		$('ul#filter .current').removeClass('current');
		$(this).parent().addClass('current');
		var filterVal = $(this).text().toLowerCase().replace(' ','-');		
		if(filterVal == 'all') {
			$('ul#portfolio li.hidden').show('slow').removeClass('hidden');
		} else {
			$('ul#portfolio li').each(function() {
				if(!$(this).hasClass(filterVal)) {
					$(this).hide('normal').addClass('hidden');
				} else {
					$(this).show('slow').removeClass('hidden');
				}
			});
		}		
		return false;
	});
		
}
function twitterLinks(){	
	$('#twitterText li').fadeTo(0, 0 );
	$('#twitterText li').slideToggle( "fast");
	$('#twitterText li').fadeTo(250, .25 );
	$('#twitterText li').slideToggle( "slow");
	$('#twitterText li').fadeTo(250, .75 );
	$('#twitterText li').mouseleave(function(){				
		$(this).fadeTo(250, .75 );
	});
	$('#twitterText li').mouseenter (function(){				
		$(this).fadeTo(250, 1);
	});

}
function setupTabs(){
	$(".tab_content").hide(); //Hide all content
	$("ul.tabs li:first").addClass("active").show(); //Activate first tab
	$(".tab_content:first").show(); //Show first tab content

	$("ul.tabs li").click(function() {
						
		$("ul.tabs li").removeClass("active"); //Remove any "active" class
		$(this).addClass("active"); //Add "active" class to selected tab
		$(".tab_content").hide(); //Hide all tab content
	
		var activeTab = $(this).find("a").attr("href"); //Find the href attribute value to identify the active tab + content
		$(activeTab).fadeIn(); 
		return false;
	});
	
}
function setupPrettyPhoto(){
	$("a[rel^='prettyPhoto']").prettyPhoto({
		theme: 'dark_rounded' /* light_rounded / dark_rounded / light_square / dark_square / facebook */
	});
}
function loadContentAnimation(){
	var hash = window.location.hash.substr(1);
	var href = $('#menuButton a').each(function(){
		var href = $(this).attr('href');
		if(hash==href.substr(0,href.length-5)){
			var toLoad = hash+'.html #content';
			loadToDiv("content", toLoad);
		}											
	});
	$('.menuButton a, ul#latest a').click(function(){					  
		var toLoad = $(this).attr('href')+' #content';
		loadToDiv("content", toLoad);
		return false;
	});	
}

function loadDetailsAnimation(){
	var hash = window.location.hash.substr(1);
	var href = $('ul#portfolio a').each(function(){
		var href = $(this).attr('href');
		if(hash==href.substr(0,href.length-5)){
			var toLoad = hash+'.html #content';
			loadToDiv("details", toLoad);
		}											
	});

	$('ul#portfolio a').click(function(){					  
		var toLoad = $(this).attr('href')+' #content';
		loadToDiv("details", toLoad);
		return false;
		
	});	
	$('.tutorialLinks a').click(function(){					  
		var toLoad = $(this).attr('href')+' #content';
		loadToDiv("details", toLoad);
		return false;
		
	});	
}
function fadeButton(){
	$("img.normal").hover(
		function() {
			$(this).stop().animate({"opacity": "0"}, "slow");
		},
		function() {
		$(this).stop().animate({"opacity": "1"}, "slow");

		}
	);	
}



