var $back;
var $content;

$(function()
{
	$content = $("#content");
    $back = $("#back");
    
    $content.css('opacity', 0);
    
    $back.css("z-index", -1).css('opacity', 0).css("height", $(window).height());
    
    $("#menu .entry.active").each(function(i)
    {
       if (i != 0)
           $(this).removeClass("active");
    });

    if ($("#menu .entry.active").length > 0)
    {
        var $entry = $("#menu .entry.active");
		drawLine($entry);
    }
    
    $("#content ul li a").click(function()
    {
        open_lang();
        return false;
    });
    
    $("#languette").css("top", $("body").height());
    
    $("#menu a").click(function(e)
    {
    	e.preventDefault();
    	
    	$("#content").html("Loading...");
    	$menu = $(this);
    	var url = $(this).attr('href');
        _gaq.push(['_trackPageview', url]);
		$.post(url, { AJAX: "AJAX" }, function(data)
		{
			//history.replaceState(url, url, url);
			
    		datas = data.split('<!--  -->');

    		$('iframe').hide();
    		
            if (datas[0].length > 0)
            {
                $("#left").children().fadeOut(1000, function()
                {
                    $(this).remove();
                });
                
                $("#left").prepend("<div class='ombre'> </div>");
                $(datas[0]).hide().prependTo($("#left")).fadeIn(1000);
            }
			
			$("#content").html(datas[1]);
			$("#languette .content").html(datas[2]);
			
			bindContent($("#content"));
			drawLine($menu);
    	});
    });
	
	$('.newsletter input[name="email"]').click(function(){
		$(this).val('');
	});
	
	$('.newsletter').submit(function(e){
		e.preventDefault();
		
		var email = $(this).find('input[name="email"]').val();
		
		var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;  
		if(emailPattern.test(email))
		{
            _gaq.push(['_trackPageview', "/newsletters"]);
			$.post("/newsletters", { AJAX: "AJAX", mail: email }, function(data) {
				alert(data);
			});
		}
		else
		{
			alert('Cet e-mail n\'est pas valide.');
		}
	});
	
	if ($(document).width() <= 1024)
    {
        //Small resolution tricks
        var move_left = 130;
        
		$("link[title=small]").attr('href', '/style/smallres.css');
        $("#left").width($("#left").width() - move_left);
		//$("#left").children().width($("#left").width());
        var to_move = [$("#logo"), $("#languette"), $("#menu"), $("#content")];
        
        for (i in to_move)
        {
            $cur = to_move[i];
            $cur.css("left", $cur.offset().left - move_left);
        }
        
        //$(".youtube-player").width((".youtube-player").width() - 100);
    }
    
    $("#greyblock").width(($(document).width() - 1280) / 2);
	
    bindContent($('html'));
});

function drawLine($entry)
{
	$(".entry").removeClass("active");
	$entry.addClass("active");
	$content.css("height", "auto");
	var h = $content.height();
	$content.css("overflow", "hidden")
			.css("display", "block")
			.css("opacity", "0")
			.css("height", "1");
	$("#line").width(1);
	
	var top = $entry.offset().top + $entry.height() - 2;
	var left = 501;
	
	left += ($(document).width() - 1280) / 2;
	
	if ($(document).width() <= 1024)
	{
		left += 28;
	}
	
	if ($entry.hasClass("lazareff"))
	{
		top += 1;
	}
	if ($entry.hasClass("lazareff") || $entry.hasClass("exposition") || $entry.hasClass("presse"))
	{
		left += 2;
	}
	else if ($entry.hasClass("contact"))
	{
		left += 20;
		top++;
	}
	
	$("#line").css("top", top);
	$("#line").css("left", left);
	
	$("#line").animate({width:$(document).width() - left}, 1000, function()
	{
		$content.css("top", $("#line").offset().top + 1);
		placeSpecific();
		$content.animate({opacity:1, height:h}, 500);
	});
}

function placeSpecific()
{
	if ($content.find(".expo").length > 0)
	{
		/*$content.css("height", "auto");
		var h = $content.height();
		$content.css("top", $content.offset().top - h / 2);
		$content.css("height", "1");*/
		$content.css("top", $content.offset().top * 2 - ($content.find(".date:eq("+Math.floor(($content.find(".date").length / 2))+")")).offset().top);
	}
	else if ($content.find(".presse").length > 0)
	{
		$content.css("top", $content.offset().top * 2 - $content.find(".content-bottom").offset().top);
	}
}

function bindContent($e)
{
	$e.find(".date").hover(function()
	{
		$e.find(".date").removeClass("selected");
		$(this).addClass("selected");
	}, function()
	{
		$(this).removeClass("selected");
	});
	
	$e.find("a:not(.disabled)").not("#menu a").click(function(e)
	{
		e.preventDefault();

		var url = $(this).attr('href');
		if(url.indexOf('.') > -1)
		{
			window.open(url);
		}
		else
		{
            _gaq.push(['_trackPageview', url]);
			$.post(url, { AJAX: "AJAX" }, function(data)
			{
				$('iframe').hide();
				
				datas = data.split('<!--  -->');
                if (datas[0].length > 0)
                {
                    $("#left").children().fadeOut(1000, function()
                    {
                        $(this).remove();
                    });
                    
                    $("#left").prepend("<div class='ombre'> </div>");
                    $(datas[0]).hide().prependTo($("#left")).fadeIn(1000);
                }
				
				if($("#content").html() != datas[1])
				{
					$("#content").html(datas[1]);
					bindContent($("#content"));
				}
				
				$("#languette .content").html(datas[2]);
				
				bindContent($("#languette .content"));
				bindContent($("#left"));
			});
		}
	});
	
    $("#content ul li a").hover(image_switch, function()
    {
        $(this).removeClass("active");
    });	
    
    
    $("#content ul li a").mouseenter(function()
    {
        $("#content ul li a").removeClass("active");
        $(this).addClass("active");
    });
	
	if($.trim($("#languette .content").html()) != '')
	{
		open_lang();
	}
	
	$("a.showbio").click(function(e)
    {
        $(".bio").fadeIn();
        $(".imgbloc").fadeOut();
        $(this).hide();
        $("a.showpic").show();
        e.preventDefault();
    });

    $("a.showpic").click(function(e)
    {
        $(".bio").fadeOut();
        $(".imgbloc").fadeIn();
        $(this).hide();
        $("a.showbio").show();
        e.preventDefault();
    });
    
    if($('.imgbloc').length > 0)
    {
    	var imgarr = new Array();
    	$img = $('.imgbloc').children(':not(.navigation,:empty)');
    	
    	$img.each(function(key, value) 
    	{
    		imgarr.push($(this));
    	});
    	
    	$img.css({"display": "block", "opacity": "0"});

        function showImage($element)
        {
        	if($element != undefined)
        	{
        		$element.animate({"opacity": "1"}, 800);
        		
        		setTimeout(function(){showImage(imgarr.shift());}, 150);
        	}
        }        
        
    	showImage(imgarr.shift());
        
    	var url = $(".next").children('a').attr('href');
    	$(".next").html('');
    	$(".next").click(function()
    	{
    		$.post(url, { AJAX: "AJAX" }, function(data)
    		{
    			datas = data.split('<!--  -->');
    			$("#languette .content").html(datas[2]);
    			
    			bindContent($("#languette"));
    		});
    	});
    }
	
	$("a[rel^='prettyPhoto']").prettyPhoto({theme:"light_square"});
}

function open_lang(e)
{
    $back.css("z-index", 30);
    //$back.animate({"opacity": 0.1}, 500);
    $back.click(close_lang);
    $("#languette .fermer").click(close_lang);
    
    $("#languette").animate({top:172}, 500);
    
    return false;
}

function close_lang()
{
    $back.css("z-index", -1);
    $back.unbind("click");
    $("#languette .fermer").unbind("click");
    $("#languette").animate({top:$("body").height()}, 500);
}

function image_switch()
{
    var $this = $(this);
    
    $("#content ul li a").unbind("mouseenter", image_switch);
    var url = $(this).attr('href')+'/img';
    $.post(url, { AJAX: "AJAX" }, function(data)
    {
        datas = data.split('<!--  -->');
    
        $("#left").children().fadeOut(1000, function()
        {
            $(this).remove();
        });
        $("#left").prepend("<div class='ombre'> </div>");
        
        $(datas[0]).hide().prependTo($("#left")).fadeIn(1000, function()
        {
            $("#content ul li a").mouseenter(image_switch);
            if (!$this.hasClass("active"))
            {
               $("#content ul li a.active").mouseenter();
            }
        });
    });
}

