$(document).ready(function(){
	$(window).bind( 'hashchange', onHashChange);		
	$(window).trigger( 'hashchange' );
	$(window).resize( onresize );	
	$("#fav-button").click(toggleFavList);
	checkFav();
	parseA();
	initElmnts();
	/*
	var addthis_config = {
		ui_use_css : false
	}
	addthis.init();
	*/
	$('.busy, #infscr-loading').activity();
});

/*------------------------------------------*/

var hash = {target:''};
var aDur = 400;
var aEase = 'easeOutExpo';
var item,favCount;
var currentMediaId,currentWorkId,currentFavMediaId;
var expanded = false;
var isFavlistVisible = false;
var isSlideAni;
var isoInited=false;
var hmined=false;
var isPhotographerLoading=false;
var intWork,intPhotographer,intTmp,intRetIso,intHashChange,intFavList;
var starOpened=$.cookie('starOpened') ? $.cookie('starOpened') : false;

/*------------------------------------------*/
function setNavEvents(){
	$("#nav").unbind('hover',hmaxf,hminf);
	$("#nav").hover(hmaxf,hminf);
}	
function remNavEvents(){
	$("#nav").unbind('hover');
	$("#nav").unbind('mouseenter');	
	$("#nav").unbind('mouseleave');		
	//console.log('remNavEvents',$("#nav").hover,$("#nav").mouseenter);
}
function hmaxf(){if(!expanded && hash.url.indexOf('work')>-1 ){hmax();}}
function hminf(){if(!expanded && hash.url.indexOf('work')>-1 ){hmin();}}
function parseA()
{
	$("a:not(.fancybox)").unbind('click',href);
	$("a:not(.fancybox)").click(href);
}
function href()
{
	var a = $(this);
	var target = a.attr('target');
	var href = a.attr('href');	
	
	if(href=="work/prev") { 
		workPrev();
		return false; 
	}
	
	if(href=="work/next") { 
		workNext();
		return false; 
	}
		
	switch ( target ){
		case "": case "_blank":
		return true;
		break;
		case "fav-list":
		favlistAction(href,target);
		return false;
		break;	
		default:
		changeHash(href,target);
		return false;
		break;
	}
}
function changeHash(href,target)
{	

	location.href= "#"+href;

	if(hash.url==href && expanded) collapse();
	else if(hash.url==href && !expanded && target=="top") expand();		
	if(isFavlistVisible){
		toggleFavList();
	}
}
function getTarget(url){
	if(url.indexOf('work/retrive')>-1){
		var u = url.split('/');
		return "work_"+u[u.length-1];
	}else if(
		url.indexOf('work')>-1 || 
		url.indexOf('photographer/retrive')>-1 ||
		url.indexOf('agency/retrive')>-1 ||
		url.indexOf('client/retrive')>-1 ||
		url.indexOf('media/retrive')>-1		
	){ 
		return "main";
	}else{
		return "top";
	} 
}
function onHashChange()
{
	//setNavEvents();

	var request = $.param.fragment().split("::");
	var url = request[0] || "work/bests";		
	var target = "#"+( getTarget(url) || "main" );
	
	if( target=="#top" && $(".work").length==0 && 
			hash.target.indexOf('work_')<0 && 
			( (url.indexOf('photographer')>-1 && hash.url==undefined ) || 
	 			(url.indexOf('client')>-1 && hash.url==undefined ) || 
	 			(url.indexOf('page')>-1 && hash.url==undefined ) ||
				(url.indexOf('newsletter')>-1 && hash.url==undefined )
			) )
	{
		$("#main").load( "work/bests", function()
		{	
			parseA();
		});
	}
	
	switch(target){
		case "#top":
			$("#top").empty();
			expand();
			remNavEvents();				
			//console.log("rem top");			
		break;
		case "#main":
			$("#work_"+currentWorkId+" .slides .cycle-content").stop(true,true);
			$("#work_"+currentWorkId+" .slides .cycle-content").cycle('destroy');
			$("#work_"+currentWorkId+" .slides .cycle-content").undelegate('click');
			clearInterval(intWork);
			clearInterval(intPhotographer);		
			clearInterval(intTmp);				
			collapse();			
			//hmin();	
			//console.log("rem main");
			remNavEvents();
			hmax();
		break;
		default:
			collapse();	
			hmin();	
			setNavEvents();		
			//console.log("set def");			
		break;
	}
	
	if(!validateHash(url,target))return false;
	
	$( '.busy' ).show();
	
	clearInterval(intHashChange);
	intHashChange = setTimeout(function(){
	
	//work/retrive/id first page
	if( $(target).length==0 ) {
		$("#main").append( '<div class="content-main ani" />' );
		var id = target.substring(1);
		$(".content-main").append( $( '<ul class="works infinite-scrolling" />').height(385) );
		$(".works").append( $( '<li class="work" id="'+id+'" style="display:block !important"/>') );
	}

	
	if( target.indexOf('work_')>-1 )
	{
		loadWorkContent(target,url);
	}else
	{	
		if(target=="#main" && $('.works').isotope().length>0){
			$('.works').animate({'opacity':0},aDur,aEase,function(){
			if(isoInited)$('.works').isotope( 'destroy' );
			$(target).load( url, function()
			{	
				if(url.indexOf('work/index')<0 && url.indexOf('work/bests')<0) $( '.busy' ).hide();
				hash[target]=url;
				hash["url"]=url;
				hash["target"]=target;				
				parseA();
			});
			});
		}else{
		
			$(target).load( url, function()
			{	
				if(url.indexOf('work/index')<0 && url.indexOf('work/bests')<0) $( '.busy' ).hide();
				hash[target]=url;
				hash["url"]=url;
				hash["target"]=target;				
				parseA();
			});
		}
	}
	},aDur);
	
}
function loadWorkContent(target,url)
{	
	collapse();
	if(isFavlistVisible){ 
		toggleFavList();
		};
	
	if(isoInited)
		$('.works').isotope( 'option', {'animationOptions':{'duration':0}} );	
			
	$(target).children('a.thumb').fadeOut(aDur,aEase);
	$(target).css("margin",0);

	if ( $('.works > .work').length>0 ){
		
		$(target).animate({'opacity':0},aDur,aEase);			
		
		$('.works > .work').each(function(i,elm)
		{
			if( i==$('.works > .work').length-1 )
			{	
				$(this).delay(i*24).fadeOut(aDur,aEase,function(){	
					if(item!=undefined){
						item.css('margin','10px 20px 20px 0px');
						item.children('a.thumb').show();				
						item.children(".content-work-container").remove();
						getWorkContent(target,url);
					}else{
						getWorkContent(target,url);
					}
				});
			}else{
				$(this).delay(i*24).fadeOut(aDur,aEase);	
			}
		});
	}else{
		getWorkContent(target,url);
	}
}
function getWorkContent(target,url)
{
	item = $(target);		
	
	$(target).append( $('<div class="content-work-container" />') );

	$(".content-work-container").
	width($(".content-main").width()).
	load( url, function()
	{	
		hash[target]=url;
		hash["url"]=url;
		hash["target"]=target;			
		parseA();
	});
}
function validateHash(url,target)
{
	if ( (hash.url == url && target==hash.target) ) { //(target=="#top" && hash[target]==url)
		return false;
	}
	return true;
}
function isotope()
{

	var isocontainer = $('.works');

	if( $(".work").length>1 || 
			location.href.indexOf('search')>-1 || 
			location.href.indexOf('client')>-1 || 
			location.href.indexOf('agency')>-1 )
	{

		isocontainer.imagesLoaded( function(){
			
			if(!isoInited)
			{
				isoInited=true;	
				
				//alert( $('.works .work:first-child').width() )
											
		  	isocontainer.isotope({
					itemSelector : '.work',
					animationEngine : 'jquery',
					animationOptions: {
					     duration: aDur,
					     easing: aEase,
					     queue: true
					},
					masonry : {
					  columnWidth : 1,
						rowHeight : 1
					},
					getSortData : {
						  tag : function ( $elem ) {
						    return $elem.attr('tag');
						 	},
						  year : function ( $elem ) {
					      return $elem.attr('year');
					    }
					},
					
					transformsEnabled: false,
				  hiddenStyle : {
				    opacity: 0,
				    scale : 1
				  }
				});
			
				isocontainer.infinitescroll({
			        navSelector  : '#item_nav',
			        nextSelector : '#item_nav a',
			        itemSelector : '.work',
			        donetext  : '<br/><br/><br/>'+nomore,
			        loadingText:loadingText,
			        loadingImg : 'img/212-loader.gif',
			        debug: false,
			        errorCallback: function() { 
			          // fade out the error message after 2 seconds
			          //$('#infscr-loading').animate({opacity: .8},2000).fadeOut('normal');   
			        }
			        },
			        // call Isotope as a callback			
			        function( newElements ) 
			        { 
								if( isocontainer.isotope().length>0 )
								{
									isocontainer.isotope( 'appended', 
										$( newElements ).each( function(index,e){
											$(this).show();
										})						
									);
								} 
								parseA(); 
			    		}
				);
			
				$('.works > .work').each( function(index,e){
					$(this).delay(index*2).fadeIn(aDur,aEase);
				});
				
				$( '.busy' ).hide();
			
			}

		});
	}
}
function loadPhotographer(id)
{
	if(!isPhotographerLoading){
		isPhotographerLoading=true;
		$(".photographer-other-works").fadeOut(aDur,aEase,function(){
		
			$("#photographer").parent('a').attr('href','photographer/retrive/'+id);
			
			$(".photographer-other-works").load(
				'photographer/others/'+id,
				function(data)
				{
					name = $("#photographer-name").text();
					$("#photographer-name").remove();
										
					//remove if only one photo
					if( $(".photographer-others-li").length==1 ){
						$(".photographer-other-works, #photographer-other-works").hide();
					}
					
					if(name!=$("#photographer").text()) 
					{
						$("#photographer").fadeOut(aDur,aEase,function(){
							$("#photographer").text(name);
							$("#photographer").fadeIn(aDur,aEase);
						});
						
					}

					parseA();				
									
					$(".photographer-other-works").fadeIn(aDur,aEase);
					//$("#work_"+currentWorkId).animate({'opacity':1},aDur,aEase);
					//$( '.busy' ).hide();
					isPhotographerLoading = false;
				}
			);
		})
	}
}
function workPrev()
{	
	if( item.prev().length==0 ){ 
		changeHash('work/bests','main');
		return false;
	}
	item.prev().children('a').click();
}
function workNext()
{
	if( item.next().length==0 ) {
		changeHash('work/bests','main');		
		return false;
	}
	item.next().children('a').click();
}
function toggleFavList(e)
{
	//olimpos donusu debug

	if( e==true || !$(e.target).hasClass('cycle-content') ){
	
	
	$("#fav-list").fadeToggle(aDur,aEase);
	
	isFavlistVisible = !isFavlistVisible;
	if(isFavlistVisible){
		$(".content-main").click(toggleFavList)
		$("#favcloser").click(toggleFavList);
	}else{
		$(".content-main").unbind('click',toggleFavList)
		$("#favcloser").unbind('click',toggleFavList);
	}
	
	}
}
function expand()
{
	$("body").addClass("expanded");			
	
	$('#top').animate({'height':345});		
	$('#nav').animate({'top':345});
		
	expanded = true;
}
function collapse()
{
	if(!hmined){
	$("body").removeClass("expanded");
	
	$('#top').animate({'height':0});		
	$('#nav').animate({'top':0});		
	
	expanded = false;
	
	}
}
function hmin()
{
		$('body').addClass('hmined')
		
		$('#nav').stop(true);
		$('#nav').animate({'top':-120});
		
		hmined = true;
		if(isFavlistVisible){ 
			toggleFavList(true);
		}
		
		//$("#nav").unbind('click',hmaxf);
		//$("#nav").click(hmaxf);	
		
		//setNavEvents();
}
function hmax()
{
		$('body').removeClass('hmined');		
		$('#nav').stop(true);	
		$('#nav').animate({'top':0});
		hmined = false;		
		
		//$("#nav").unbind('click',hmaxf);
}
function checkFav()
{
	$('#fav-list').load('favlist/index',function(data){
		if(!favCount>0){
			$('#fav-button').hide();
		}else{
			$('#fav-button').show();		
		}
		parseA();
	});
}
function favlistAction(href,target)
{
	if(!starOpened){
		var myP = $("<p style=\"vertical-align:middle;font-size:12px;padding:10px 0 0 80px\">"+favDsc+"</p>").hide();
		
		starOpened=true;
		$.cookie('starOpened',true);
		
		$(".starbg").append(myP.delay(aDur).fadeIn(aDur,aEase)).animate({
			width: "98%",
			height: "60px",
			top: "-25px",
			left:0},aDur,aEase);
		$(".star").animate({left:"20px"},aDur,aEase);
		
		clearInterval(intFavList);	
		intFavList = setTimeout(function(){
			myP.fadeOut(aDur,aEase);
			$(".starbg").delay(aDur).animate({width: "17px",
			height: "17px",
			top: "-2px",
			left:"75px"},aDur,aEase);
			$(".star").delay(aDur).animate({left:"80px"},aDur,aEase);
		},5000);
	}
	var _href = href.indexOf('favlist/add/')>-1 ? href : (href.indexOf('favlist/remove')>-1 ? href+'/'+currentFavMediaId : href+'/'+currentMediaId);

	$( '.busy' ).show();
	$("#"+target).load( _href, function(){	
		$( '.busy' ).hide();

		if(!favCount>0){
			isFavlistVisible=false;
			$('#fav-list, #fav-button').hide();
		}else{
			isFavlistVisible=true;
			$( '#fav-list, #fav-button' ).fadeIn();						
			if(hmined)
				hmax();
		}
		
		parseA();
	});
}
function initElmnts()
{
	initPlaceholder();
	
	$("#search").keypress(function(e){
		if(e.which==13){ //enter
			var term = $("#search").val();
			if(term.length>2){
				changeHash('work/search/'+term,'main');
			}	
		}
	})
}
function onresize(){
	$(".content-work-container").width($(".content-main").width());
}
function initPlaceholder(){
/* placeholder */
	$('[placeholder]').focus(function() {
	  var input = $(this);
	  if (input.val() == input.attr('placeholder')) {
	    input.val('');
	    input.removeClass('placeholder');
	  }
	}).blur(function() {
	  var input = $(this);
	  if (input.val() == '' || input.val() == input.attr('placeholder')) {
	    input.addClass('placeholder');
	    input.val(input.attr('placeholder'));
	  }
	}).blur().parents('form').submit(function() {
	  $(this).find('[placeholder]').each(function() {
	    var input = $(this);
	    if (input.val() == input.attr('placeholder')) {
	      input.val('');
	    }
	  })
	});

}
