var curStyle;
var curMode;
var curSize;
var baseUrl = '/themes/default/css/';
var num_etls_hidded = 0;

function initStyleCookie(style){
	createCookie('aa_style',style,7);
}
function initModeCookie(mode){
	createCookie('aa_mode',mode,7);
}
function initSizeCookie(size){
	createCookie('aa_size',size,7);
}
function initStyles(){
	var testCookie1 = readCookie('aa_style');
	var testCookie2 = readCookie('aa_mode');
	var testCookie3 = readCookie('aa_size');
	if (testCookie1) {
		curStyle = testCookie1;
		$("link.color").attr("href", baseUrl+'colors_'+testCookie1+'.css');
	} else {
		curStyle = "dark";	
		initStyleCookie(curStyle);
	}
	
	if(testCookie2) {
		curMode = testCookie2;
		$('#main').attr("class", "aa-"+curMode);
		$('#mode .'+testCookie2).parent().addClass('on');
	} else {
		curMode = "thumb";	
		//$('#mode .thumb').parent().addClass('on');
		initModeCookie(curMode);
	}
	var images = $('#main').find('img');
	images.each(function(){
		if ($(this).attr('src')){
			var src = $(this).attr('src');
		} else {
			var src = $(this).attr('original');
		}
		if (curMode == 'full'){
			var newsrc = src.replace('.jpg', '_f.jpg');
		} else if (curMode == 'list'){
			var newsrc = src.replace('.jpg', '_l.jpg');
		} else if (curMode == 'thumb'){
			var newsrc = src.replace('.jpg', '_t.jpg');
		}
		if ($(this).attr('src')){
			$(this).attr('src', newsrc);
		}
		$(this).attr('original', newsrc);
	});

	var elts = $('#main li');
	for (var i=0; i<elts.length; i++){
		elts.eq(i).fadeIn(125*i);
	}
	
	
	if(testCookie3) {
		curSize = testCookie3;
		$("#aa-b").attr("class", curSize);
	} else {
		curSize = "hor";
		initSizeCookie(curSize);
	}
	switchStyle(curStyle);
	switchMode(curMode);
	switchSize(curSize);
	initSlider('aa-b');
	showDetail();
}

function switchStyle(curStyle){
	$("#btn_negatif").unbind();
	$("#btn_hi").unbind();
	$("#btn_low").unbind();
	
	$("#btn_negatif").bind("click", function(){
		switch(curStyle){
			case "dark":
				$("link.color").attr("href", baseUrl+'colors_light.css');
				curStyle = "light";
			break;
			case "light":
				$("link.color").attr("href", baseUrl+'colors_dark.css');
				curStyle = "dark";
			break;
			case "white":
				$("link.color").attr("href", baseUrl+'colors_black.css');
				curStyle = "black";
			break;
			case "black":
				$("link.color").attr("href", baseUrl+'colors_white.css');
				curStyle = "white";
			break;
		}
		initStyleCookie(curStyle);
		return false;
    });
	$("#btn_hi").bind("click", function(){
		switch(curStyle){
			case "dark":
				$("link.color").attr("href", baseUrl+'colors_black.css');
				curStyle = "black";
			break;
			case "light":
				$("link.color").attr("href", baseUrl+'colors_white.css');
				curStyle = "white";
			break;
		}
		initStyleCookie(curStyle);
		return false;
    });
	$("#btn_low").bind("click", function(){
		switch(curStyle){
			case "white":
				$("link.color").attr("href", baseUrl+'colors_light.css');
				curStyle = "light";
			break;
			case "black":
				$("link.color").attr("href", baseUrl+'colors_dark.css');
				curStyle = "dark";
			break;
		}
		initStyleCookie(curStyle);
		return false;
    });
}

function showNewMode(mode){
	var cible = $('#main');
	num_etls_hidded = 0;
	cible.attr("class", "aa-"+mode);
	initModeCookie(mode);
	var elts = cible.find('li');
	elts.each(function(){
		$(this).fadeIn(50*(elts.index($(this))+1));
		$(this).css('display', 'block');
	});
	initSlider('aa-b');
	if(mode == 'thumb'){
		showDetail();
	}
	$("#aa-b img").lazyload({         
		container: $(".aa-scroll"),
		threshold : 8,
		effect : "fadeIn"
	});
}

function switchMode (curMode){
	var selectors = $('#mode li a');
	var cible = $('#main');
	selectors.unbind();
	selectors.bind("click", function(event){
		event.preventDefault();
		var sel = $(this);
		if (!$(this).parent().hasClass("on")){	
			$('#mode').find('.on').removeClass('on');
			$(this).parent().toggleClass('on');
			curMode = sel.attr('class');
			var elts = $('#main li')
			elts.each(function(){
				var image = $(this).find('img');
				var src = image.attr('original');
				$(this).fadeOut((elts.length*50)/(elts.index($(this))+1), function(){
					num_etls_hidded++;
					var ext = src.substr(-6, 6);
					if (curMode == 'thumb'){
						var newsrc = src.replace(ext, '_t.jpg');
					} else if (curMode == 'full'){
						var newsrc = src.replace(ext, '_f.jpg');
					} else if (curMode == 'list'){
						var newsrc = src.replace(ext, '_l.jpg');
					}
					if (image.attr('src')){
						image.attr('src', newsrc);
					}
					image.attr('original', newsrc);
					
					if(num_etls_hidded == elts.length){
						showNewMode(curMode);
					};
				});
				
			});
		}
	});
}

function switchSize(curSize){
	$("#btn_size").unbind();
	$("#btn_size").bind("click", function(){
		var contner = $("#aa-b");
		if (contner.hasClass('vert')){
			var newWidth = '100%';
			var newTop = '52.7em';
			curSize = 'hor';
		} else {
			var newWidth = '87em';
			var newTop = '0';
			curSize = 'vert';
		}
		initSizeCookie(curSize);
		$(".aa-scroll").animate({ 
			width: newWidth
			}, 300, function() {
				$("#aa-b").attr("class", curSize);
				$("#aa-tools").animate({ 
					opacity: 1,
					top: newTop
				}, 100, function(){initSlider('aa-b');showDetail();});
		});
		$("#aa-tools").animate({
			top: '60em',
			opacity: 0
			}, 300);
		return false;
    });
}

function slider(bloc){
	var hauteur = bloc.height();
	var liste = bloc;
	var hauteurEls = $('.hider').height();
	var nbrEtapes = Math.ceil((hauteurEls-hauteur)/hauteur);

	var current = 0;
	var btn_backward = $('.back');
	var btn_forward = $('.forth');
	var btn_first = $('.first');
	var btn_last = $('.last');
	if (current ==  0){
		btn_backward.parent().addClass('off');
		btn_first.parent().addClass('off');
		btn_forward.parent().removeClass('off');
		btn_last.parent().removeClass('off');
	}
	btn_backward.unbind();
	btn_forward.unbind();
	btn_first.unbind();
	btn_last.unbind();
	var $width = "2.3em";
	
	function grow(cible){
		cible.css('height', '4.6em').css('opacity', 0.2);
		cible.animate({
			height: $width,
			opacity: 1
		}, 500, 'easeOutExpo');
	}
	
	btn_backward.bind("click", {foo: "back"}, function(event){
		moveBackward();
		event.preventDefault();
	});
	btn_forward.bind("click", {foo: "forth"}, function(event){
		moveForward();
		event.preventDefault();
	});
	btn_first.bind("click", {foo: "back"}, function(event){
		moveStart();
		event.preventDefault();
	});
	btn_last.bind("click", {foo: "forth"}, function(event){
		moveEnd();
		event.preventDefault();
	});
	
	function moveForward(){
		grow(btn_forward);
		if (current < nbrEtapes){
			liste.stop();
			current++;
			btn_backward.parent().removeClass('off');
			btn_first.parent().removeClass('off');
			liste.animate({
				scrollTop:(hauteur*current)
			}, 1000, 'easeOutExpo');
		}
		if (current == nbrEtapes){
			btn_forward.parent().addClass('off');
			btn_last.parent().addClass('off');
		}
	}
	function moveBackward(){
		grow(btn_backward);
		if (current > 0){
			liste.stop();
			current--;
			btn_forward.parent().removeClass('off');
			btn_last.parent().removeClass('off');
			liste.animate({
				scrollTop:(hauteur*current)
			}, 1000, 'easeOutExpo');
		}
		if (current == 0){
			btn_backward.parent().addClass('off');
			btn_first.parent().addClass('off');
		}
	}
	function moveStart(){
		liste.stop();
		grow(btn_first);
		current = 0;
		btn_forward.parent().removeClass('off');
		btn_last.parent().removeClass('off');
		btn_backward.parent().addClass('off');
		btn_first.parent().addClass('off');
		liste.animate({
			scrollTop:0
		}, 1000, 'easeOutExpo');
	}
	function moveEnd(){
		liste.stop();
		grow(btn_last);
		current = nbrEtapes;
		btn_backward.parent().removeClass('off');
		btn_first.parent().removeClass('off');
		btn_forward.parent().addClass('off');
		btn_last.parent().addClass('off');
		var dist = (nbrEtapes*hauteur);
		liste.animate({
			scrollTop:dist
		}, 1000, 'easeOutExpo');
		
	}
	$().unbind();
	$().bind("keydown", function(e){
		if(e.keyCode == 40) {
			moveForward();
		} else if(e.keyCode == 38) {
			moveBackward();
		} else if(e.keyCode == 37) {
			moveStart();
		} else if(e.keyCode == 39) {
			moveEnd();
		}
	});

}

function initSlider(id){
	var contener = $('#'+id);
	var sliders = $('.aa-scroll');
	sliders.find('ul').scrollTop = 0;
	slider(sliders);	
}

function checkIsready (){
	$('#main').ready(function () {
		initStyles();
		initSlider('aa-b');
		showDetail();
	});
}

function triByCats(){
	$.ajaxSetup ({
		cache: false
	});
	var boutons = $('#aa-tools .menu a');
	var liste = $('#aa-tools .menu li');
	boutons.each(function(){
		$(this).click(function() {
			var url = $(this).attr('href');
			var hashes = url.slice(url.indexOf('?') + 1);
			var loadUrl = 'index.php?'+hashes;
			$("#main").addLoader();
			$("#main").useLoader(loadUrl+' #main li',function(){checkIsready()})
			//$("#main").load(loadUrl+' #main li', '', function(){checkIsready()});
			liste.removeAttr('class');
			$(this).parent().addClass('current');
			return false;
		});
	});
}

function showDetail(){
	var elts = $('.aa-thumb li');
	var listsize = elts.parent().width();
	var eltsSize = elts.outerWidth()+10;
	var nElts = Math.floor(listsize/eltsSize);
	var middle =  Math.ceil(nElts/2);
	elts.unbind();
	elts.bind("mouseenter", function(){
		var bloc = $(this).find('.blk_txt');
		var position = elts.index($(this))+1;
		var row = Math.ceil(position/nElts);
		var vPos = Math.floor(position-nElts*(row-1));
		if (vPos>middle){
			var decalage = '-14.5em';
			$(this).toggleClass('right');
		} else {
			var decalage = '+14.5em';
		}
		bloc.css('display', 'block');
		bloc.animate({
			left:decalage,
			opacity:1
		}, 300, 'easeOutSine');
		
	});
	elts.bind("mouseleave", function(){
		var bloc = $(this).find('.blk_txt');
		bloc.stop();
		bloc.css('left', 0).css('opacity', 0).css('display', 'none');
		bloc.removeAttr("style");
		if ($(this).hasClass("right")){
			$(this).removeAttr("class");
		}
	});
}


$(document).ready(function(){
	initStyles();
});