$(document).ready(function() {
	//Set Menu
	$('#menu ul li a').address(function() {  
		return $(this).attr('href').replace(/^#/, '');  
	});
	
	//Load Homepage
	$.address.change(function(event) { 
		if(!nochange) {
			var hash_value = event.value;
			if(hash_value == "/") hash_value =  "/everything";
		
			var hash_array = hash_value.split("/");
			curtype = hash_array[1];
			curid = hash_array[2];
			loadWorks(hash_array[1],hash_array[2]);
		}
		else
		nochange = false;
	});
	
	//Works
	$('.accordionButton').click(function() {
		$('.accordionButton').removeClass('accordionOn');
		$('.accordionContent').slideUp({duration: 1000, easing: "easeOutExpo"});
		$(".contentHolder" + curid).html('');	

		
		if($(this).next().is(':hidden') == true && curid != $(this).parent().attr("id"))
			changeWorkUrl($(this).parent().attr("id"));
		 else {
			nochange = true;
			curid = null;
			$.address.path(curtype);
		 }
	 });
});

//Vars 
var curid;
var curtype;
var firstload = true;
var nochange = false;

//Functions
function changeWorkUrl(id) {
	//Url
	if(id)
	$.address.value(curtype + "/" + id);
}
	
function loadWorks(filter,work) {
	if(firstload || !work) {
		//First Load
		firstload = false;
		
		//Filter
		curtype = filter;
			
		//Menu
		$('.accordionButton').removeClass('accordionOn');
		removeMenuSel();
			
		//Hide Open Content
		$('.accordionContent').hide();
			
		//Load Works
		if(filter == "everything") {
			removeMenuSel();
			$("#everything").addClass("selected");
			$(".work").show("blind");
		} else {
			removeMenuSel();
			$("#" + filter).addClass("selected");
			$(".work").hide();
			$("." + filter).show("blind"); 
		} 
	} 
	
	if(work)
		workDetail(work); 		
}

function removeMenuSel() {
	$("#everything").removeClass("selected");
	$("#web").removeClass("selected");
	$("#interactive").removeClass("selected");
	$("#mobile").removeClass("selected");
}

function workDetail(id) {
	//Current Id
	curid = id;
	
	//Get Data
	$.getJSON("includes/work.php?id=" + id,function(data)
	{
		$.each(data.work, function(i,data)
		{
			//Build Images
			var images = "";
			for(var i = 1; i <= data.nimage; ++i)
			{
				images += '<img src="images/'+data.image + i +'.jpg" />';
			}
			
			//Show Data
			var div_data = '<div class="workShare"><a id="share_button'+id+'"></a></div><div id="workGallery' + id + '" class="workGallery">';
			div_data += images;
			div_data += '</div><div class="workFooter"><div class="workFooterInfo"><b>Year:</b> '+data.year+' // <b>Client:</b> '+data.client+' // <b>Role:</b> '+data.role;
			if(data.url != "") div_data += '<br><a href="'+data.url+'" target="_blank">Visit here</a>';
			div_data += '</div><div id="workGalOptions"></div></div>';
			$(".contentHolder" + id).html(div_data);
			
			//Gallery
			Sliderman.effect({name: 'galanim', cols: 10, rows: 5, delay: 10, fade: true, order: 'straight_stairs'});
			var demoSlider = Sliderman.slider({container: 'workGallery' + id, width: 708, height: 491, effects: 'galanim',
				display: {
					autostart: true,
					first_slide: true,
					always_show_loading: 200, // testing loading mode
					loading: {background: '#DDDDDD', opacity: 0.2, image: 'images/loading.gif'}, // loading box settings
					buttons: {opacity: 1, prev: {className: 'SliderNamePrev', label: ''}, next: {className: 'SliderNameNext', label: ''}}, // Next/Prev buttons settings
					navigation: {container: 'workGalOptions', label: '&nbsp;'}
			}});
			
			//Change Foto
			$('#workGallery'+ id).click(function(event){ demoSlider.next(); });
			
			//Share Work
			$('#share_button' + id).live('click', function(e){
				e.preventDefault();
				FB.ui(
				{
				method: 'feed',
				name: data.title + ' by Nuno Bengalito',
				link: ' http://www.nunobengalito.com/#/'+ curtype +'/'+id,
				picture: 'http://www.nunobengalito.com/images/' + data.image + '1.jpg' ,
				caption: data.subtitle,
				description: 'Year: ' + data.year + ' // Client: ' + data.client + ' // Role: ' + data.role,
				message: ''
				});
			});
			
			//Anime
			$("#bwork" + id).addClass('accordionOn');
			$("#bwork" + id).next().slideDown({duration: 1000, easing: "easeOutExpo"}).delay(1000);
			$('html,body').animate({scrollTop: ($("#bwork" + id).offset().top), duration: 1000, easing: "easeOutExpo"});
		});
	});
}
