if (typeof(FIRT) == 'undefined') {
	FIRT = {};
	FIRT.UI = {};
}
if (typeof(FIRT.UI) == 'undefined') {
	FIRT.UI = {};
} 


FIRT.UI.Home = function() {

	var current_screen;
	var max_screen;
	
	current_screen=max_screen=4;
	
	jQuery.fn.exists = function(){return jQuery(this).length>0;}
	
	/* Slideshow for work pieces */
	var scrollWork = function(panelWidth, screenNo) {
		var newLeft = (panelWidth * screenNo) - panelWidth;

		$('#the-image').animate({left: (0 - newLeft) + 'px'},500, 'swing');
	}
	
	var scrollWorkPanel = function(newLeft) {
		showPainelElements();
		
		$('#work-gallery li').each(function(index) {
			var leftVal=$(this).position().left;
			$(this).animate({left: (leftVal - newLeft) + 'px'},500, 'swing');
		});
	}
	
	var positionList = function() {
		$('#work-gallery li').each(function(index) {
			$(this).css('left',index*285);
		});
	}
	
	
	/* Bind events for dynamically changeable elements */
	var bindEvents = function(){
	

		$('.more').live('click',function(e){
			e.preventDefault();
			var aux_up = $(this).attr('href')+'.up';
			var aux_down = $(this).attr('href')+'.down';
			
			if($('.up').exists()){
				$('#big-indices').hide();
				$('.desc-cat').show();
				$('.desc-text').show();
				$('.desc-slide').animate({
								bottom: '0'
								},'slow', 'swing', function() {
									$('.more').html('read less');
								});
				$('.desc-slide').removeClass('up');
				$('.desc-slide').addClass('down');
				
			}else if($('.down').exists()){
				$('.desc-slide').animate({
								bottom: '-310'
								},'slow', 'swing',function(){
									$('#big-indices').show();
									$('.desc-cat').hide();
									$('.desc-text').hide();
									$('.more').html('read more');
								});
				$('.desc-slide').removeClass('down');
				$('.desc-slide').addClass('up');
			}

		});
		
		$('#left-bt-container').live('click',function(e){
			e.preventDefault();
			var link = $(e.target);
			var screenNo = current_screen + 1;
			
			
			if (current_screen >= max_screen) {
				screenNo = 1;
				return;
			}
			
			current_screen = screenNo;
			scrollWorkPanel(-570);
		});
		
		$('#right-bt-container').live('click',function(e){
			e.preventDefault();
			var link = $(e.target);
			var screenNo = current_screen - 1;
			
			if (current_screen <= 1) {
				screenNo = max_screen;
				return;
			}

			current_screen = screenNo;
			scrollWorkPanel(570);
		});

		$('#mask').live('click',function(e){
			e.preventDefault();
			$('.big-picture').remove();
			$('#mask').hide();
			showPainelElements();
		});
		
		
		$('#return-index').live('click',function(e){
			e.preventDefault();
			$('.big-picture').remove();
			$('#mask').hide();
			showPainelElements();
		});
		
		//colocar live clicks para o scroll dos works
		$('#big-indices a').live('click',function(e){
			e.preventDefault();
			scrollWork(390,$(this).html());				
		});
		
		
		$('.work-thumb a').live('click',function(e){
			e.preventDefault();
			hidePainelElements();		
			var output = '<div class="big-picture window"><div id="big-container"><img id="the-image" src="'+$(this).attr('href')+'" alt="'+$(this).attr('href')+'" \/><div id="return-index"><a href="#">return to index<\/a><\/div><div id="big-indices"><\/div><\/div><\/div>'
			$('#main-area').append(output);
			
			//$('.big-picture').fadeIn('slow');
			/* TESTE Para scroll*/
			//get the top offset of the target anchor
			var target_offset = $('html').offset();
			var target_top = target_offset.top;
 
			//goto that anchor by setting the body scroll top to anchor top
			$('html, body').animate({scrollTop:target_top}, 500);

			
			//Get the screen height and width
			var maskHeight = $(document).height();
			var maskWidth = $(window).width();
		
			//Set heigth and width to mask to fill up the whole screen
			$('#mask').css({'width':maskWidth,'height':maskHeight});
		
			//transition effect		
			$('#mask').fadeIn(1000);	
			$('#mask').fadeTo("slow",0.2);	
	
			//Get the window height and width
			var winH = $(window).height();
			var winW = $(window).width();
	
			//Set the popup window to center
			$('.big-picture').css('top',  winH/2-$('.big-picture').height()/2);
			$('.big-picture').css('left', winW/2-$('.big-picture').width()/2);
	
			//transition effect
			$('.big-picture').fadeIn(2000,function(){
				var num_indices = $("#the-image").width()/390;
				if (num_indices > 1) {
					for (var i = 1; i <= num_indices; i++) {
						$('#big-indices').append('<a href="#">' + i + '</a>');
					}
				}

			}); 
			
			
			
			var encontrar = $(this).attr('name');
			if($('#'+encontrar).exists()){			
				$('.big-picture').append('<div id="'+encontrar+'" class="description desc-slide up">'+$('#'+encontrar).html()+'</div>');
			}
			/* End testes para scroll */

			
			
		});
		
		$('#the-image').live('click',function(e){
			var p = $('#the-image').position(); 
			//alert(p.left);
			//scrollWork(390,$(this).html());
			
		});

		
		$('.work-thumb').live('mouseenter',function(e){
			//$(this).find('.show-intro').css('top','-70px');
			$(this).find('.show-intro').animate({
								top: '-70px'
								},'slow', 'swing',function(){
								});
		});
		
		$('.work-thumb').live('mouseleave',function(e){
			//$(this).find('.show-intro').css('top','0');
			$(this).find('.show-intro').animate({
								top: '0'
								},'slow', 'swing',function(){
								});
		});
		
		
	}
	
	/* initiate ajax errror and busy message engine */
	var ajaxInit = function(){
		$("#work-gallery").ajaxError(function(event, request, settings){
			$('#work-gallery').empty();
			$(this).append("<li>Error requesting page " + settings.url +"</li>");
		});
		$(document).ajaxStart(function(){ 
			$('#ajaxBusy').show(); 
		}).ajaxStop(function(){ 
			$('#ajaxBusy').hide();
		});
	}
	
	var processGalleryBt = function(){
		$('#nav-buttons').show();
		if(max_screen == current_screen){
			if(max_screen==1){
				$('#left-bt-container').removeClass($('#left-bt-container').attr('class'));
				$('#left-bt-container').addClass('active-left-bt');
				$('#right-bt-container').removeClass($('#right-bt-container').attr('class'));
				$('#right-bt-container').addClass('disabled-right-bt');
			}
			else{
				$('#left-bt-container').removeClass($('#left-bt-container').attr('class'));
				$('#left-bt-container').addClass('disabled-left-bt');
				$('#right-bt-container').removeClass($('#right-bt-container').attr('class'));
				$('#right-bt-container').addClass('active-right-bt');
			}
		}
		else if(max_screen != current_screen){
			if(current_screen<max_screen && current_screen>1){
				$('#left-bt-container').removeClass($('#left-bt-container').attr('class'));
				$('#left-bt-container').addClass('active-left-bt');
				$('#right-bt-container').removeClass($('#right-bt-container').attr('class'));
				$('#right-bt-container').addClass('active-right-bt');			
			}
			else if(current_screen==1){
				$('#left-bt-container').removeClass($('#left-bt-container').attr('class'));
				$('#left-bt-container').addClass('active-left-bt');
				$('#right-bt-container').removeClass($('#right-bt-container').attr('class'));
				$('#right-bt-container').addClass('disabled-right-bt');						
			}
		
		}	
	}
	
	var ImgSource = function (path) {
		hostame = window.location;
		if(path.search(hostame)){
			return path;
		}else{
			rtrn=path.replace(hostame, '');
			return rtrn;;
		}
	}
	
	var showPainelElements = function(){
		processGalleryBt();
		$('#work-gallery').fadeIn('slow');
		$('#navigation ul').show();
	}
	
	var hidePainelElements = function(){
		$('#nav-buttons').hide();
		$('#work-gallery').hide();
		$('#navigation ul').hide();
	}
	
	var loadingGallery = function(){
		$('#work-gallery').empty();
		$('#work-gallery').append('<li>Loading ...<\/li>');
	}
	
	var requestPage = function(numPage){
		showPainelElements();
		loadingGallery();
		var url = 'assets/ajax/'+numPage+'/index.html';
		$.get(url,function(data) {
			$('#work-gallery').html(data);
			positionList();
		});
		
	}
	var init = function() {

		if (($('#work-gallery').exists()) && $(window).width() >= 480) {
			initFeature();
		}

	}
	var initFeature = function() {
		ajaxInit();
		bindEvents();
		requestPage(1);

	}
	
	return {
		init: init
	}
}();

jQuery(function($) {
	FIRT.UI.Home.init();
});
  
  
