/********************************************************************/
/*********************** Nicolas SIONNIERE **************************/
/******************** (c) 2011 SIONNIERE NICOLAS ********************/
/****************** http://nicolas.sionniere.com/ *******************/
/********************************************************************/

var searchLaunched = false;

function launchEffects(){
	$("a.seethepicture").fancybox({
		'opacity'					: true,
		'overlayShow'			: false,
		'transitionIn'		: 'elastic',
		'titleShow'				:	false
	});
}

function loadContent(target,id){
	$(target).click(function(e){
		e.preventDefault();
		
		$('body').append($('#loading_top').fadeIn("fast"));
		
		var href = $(target).attr("href");
		
		$("#receptacle").load(href+" "+id, function(response, status, xhr) {
			$('#loading_top').fadeOut("slow");
		
			if (status == "error") {
				var msg = "Sorry but there was an error: ";
				$("#receptacle").html(msg + xhr.status + " " + xhr.statusText);
			}
			$.fancybox($("#receptacle").html(),{
				'opacity'					: true,
				'overlayShow'			: true,
				'autoScale'				: true,
				'transitionIn'		: 'elastic'
			});
		});
	});
}

function searchEngine(){

	var selector = $('input[name="selector"]:checked').val();
	var search = $('#search-input').val();
	var dataString = 'selector='+selector+"&search="+encodeURIComponent(search);
	$('#display_more a').fadeIn("fast");
	$('#display_more h2').fadeOut("slow");
	$.ajax({
		type: "POST",
		data: dataString,
		beforeSend: function(){
			$('.mini-loading').css({"display":"inline-block"}).hide().fadeIn("slow");
		},
		success: function(data){
			$('.mini-loading').fadeOut("slow");
			if(data){
				$('#tasting-notes').fadeOut("slow", function(){
					$(this).html(data).fadeIn("slow");
					searchLaunched = false;
				});				
				launchEffects();				
				
			}else{
				$('#display_more a').fadeOut("slow", function(){
					$('#display_more').hide().append('<h2>No results found</h2>').fadeIn("slow");
					searchLaunched = false;					
				});				
			}
		},
		error: function(data){
			$('.mini-loading').fadeOut("slow");
			$('#tasting-notes').html('<ul><li class="note"></li><li class="tweet"><dl><dt>'+data+'</dt></li></ul>');
			searchLaunched = false;
		}
	});
}

$(window).load(function() {

	launchEffects();
	
	loadContent("#learn-more a","#learn_more");
	
	$("#tasting-notes dt a").live("click",function(e){
		e.preventDefault(); return false;
	});
	
	var display_start = 10;
	$("#display_more a").click(function(e){
		e.preventDefault();
		var dataString = 'start='+encodeURIComponent(display_start);
		display_start+=10;
		$.ajax({
			type: "POST",
			data: dataString,
			beforeSend :function(){
				$('#loading').fadeIn("fast");
			},
			success: function(data){
				$('#loading').fadeOut("slow");
				if(data){
					$('#loading').fadeOut("slow");
					$('#tasting-notes').append(data);
					launchEffects();
				}else{
					$('#display_more a').fadeOut("slow", function(){
						$('#display_more').hide().append('<h2>All data are loaded</h2>').fadeIn("slow");
					});
				}
			},
			error: function(data){
				$('#loading').fadeOut("slow");
				$('#tasting-notes').append('<ul><li class="note"></li><li class="tweet"><dl><dt>Can\'t load more data</dt></li></ul>');
			}
		});
	});

	
	$("#search-engine").keypress(function(e){
		var code = (e.keyCode ? e.keyCode : e.which);
		if(!searchLaunched && code == 13){
			if($('#search-input').val() == ""){ 
				$("#search-input").css({"border-color":"#6b0715"});
				$("#search-input").removeClass("shadow_gray");
				$("#search-input").addClass("shadow_red");
			}else{
				$("#search-input").css({"border-color":"#e0e0e0"});
				$("#search-input").removeClass("shadow_red");
				$("#search-input").addClass("shadow_gray");
				searchLaunched = true;
				searchEngine();
			}			
		}
	});
	$("#send").click(function(e){ 
		e.preventDefault(); 
		if(!searchLaunched){
			if($('#search-input').val() == ""){ 
				$("#search-input").css({"border-color":"#6b0715"});
				$("#search-input").removeClass("shadow_gray");
				$("#search-input").addClass("shadow_red");
			}else{ 
				$("#search-input").css({"border-color":"#e0e0e0"});
				$("#search-input").removeClass("shadow_red");
				$("#search-input").addClass("shadow_gray");
				searchLaunched = true; 
				searchEngine();
			}			
		}
	});
	
	
	$("#header a.apps").click(function(e){
		e.preventDefault();
		var url = $(this).attr("href");
		window.open(url);
	});	
});
