/***********
FONCTIONS
***********/



// Gestion de l'affichage des elements de la boite d'info du comparateur
function manageComparateurDisplay(){	
	var existing = 0;
	
	// On verifie d'abord si le produit en cours est deja dans le comparateur :
	if ($('#comparateur_item li').size()>0) {
		var classes = $('#comparateur_item li').attr('class').split(' ');
		existing = $('.' + classes[0]).size();
	}
	
	// Puis on affiche ou non les elements du comparateur
	// comparateur_info = intro
	// #comparateur_link = bouton "comparer"
	// a.comparateur_add = bouton "ajouter au comparateur" dans fiche produit
	//alert($('a.comparateur_add').size());
	switch ($('#comparateur_list li').size()) { 
		case 0: 
			$('#comparateur_infobox').hide();			
			$('#comparateur_info').show();
			$('#comparateur_link').hide();			
			if (existing==1) $('a.comparateur_add').show();	else $('a.comparateur_add').hide();	
			break;
		case 1: 
			$('#comparateur_infobox').show();			
			$('#comparateur_info').show();
			$('#comparateur_link').hide();			
			if (existing==1) $('a.comparateur_add').show();	else $('a.comparateur_add').hide();	
			break; 
		case 2:
			$('#comparateur_infobox').show();			
			$('#comparateur_info').hide();
			$('#comparateur_link').show();	
			if (existing==1) $('a.comparateur_add').show();	else $('a.comparateur_add').hide();
			break; 
		default: 
			$('#comparateur_infobox').show();			
			$('#comparateur_info').hide();
			$('#comparateur_link').show();	
			$('a.comparateur_add').hide();	
	}
	
	// Masquage du comparateur de la partie centrale si tous les produits ont ete supprimes
	var elements_compares = $('#products_comparateur .product_box_comparateur').size();
	
	if (elements_compares<1) {
		$('#products_comparateur').hide();
		$('#comparateur_no_item').show();
	}
}

// Ajout d'un element au comparateur
function addComparateurItem(e) {
		e.preventDefault();		

		
		// On verifie d'abord si le produit en cours n'est pas incompatible avec la rubrique des elements deja compares		
		if ($('ul#comparateur_list li').size()>0) {						

			var classes = $('#comparateur_list li').eq(0).attr('class').split(' ');
			var category = classes[1].replace(/[^0-9]/g,'');
			
			var classes = $('#comparateur_item li').attr('class').split(' ');
			var newCategory = classes[1].replace(/[^0-9]/g,'');
			if(category != newCategory) {
				alert('Vous ne pouvez comparer que des produits de la même catégorie !');
				return false;
			}
		}

		$('#comparateur_list').append($('#comparateur_item li').clone(true));

		//Ajout au cookie array
		var classes = $('#comparateur_item li').attr('class').split(' ');
		var id = classes[0].replace(/[^0-9]/g,'');
		cookie_comparateur.add(id);
		
		manageComparateurDisplay();
		return false;
}

// Suppression d'un element du comparateur
function removeComparateurItem(e) {
		e.preventDefault();
				
		//Suppression du cookie array
		var classes = $(e.target).parents('li').attr('class').split(' ');
		var id = classes[0].replace(/[^0-9]/g,'');
		cookie_comparateur.remove(id);
		
		$(e.target).parents('li').remove();
		$('.product_box_comparateur_'+id).remove();
		
		manageComparateurDisplay();
		return false;
}

//Manipulation de listes dans les cookies
var cookieList = function(cookieName) {
	var cookie = $.cookie(cookieName);
	var items = cookie ? cookie.split(/,/) : new Array();
	return {
		"add": function(val) {
			items.push(val);
			$.cookie(cookieName, items.join(','));
		},
		"remove": function(val) {
			items = $.grep(items, function(value) {
				return value != val;
			});
			$.cookie(cookieName, items.join(','));
		},
		"clear": function() {
			items = null;
			$.cookie(cookieName, null);
		},
		"items": function() {
			return items;
		}
	}
}  

// Search box
function checkSearch(){
	if(document.quickFind.keywords.value=="" || document.quickFind.keywords.value=="' . BOX_HEADING_FIELD_TEXT . '"){
		document.quickFind.keywords.value="";
		document.quickFind.keywords.focus();
		return false;
	}else{
		return true;
	}
}
var empty_string = "";


/***********
INIT
***********/
var cookie_comparateur = new cookieList("comparateur")
//console.debug(cookie_comparateur.items())
// cookie_comparateur.clear()

	
$(document).ready(function(){
	
	/***********
	COMPARATEUR
	***********/
	manageComparateurDisplay();
	$('a.comparateur_remove').click(removeComparateurItem);
	$('a.comparateur_add').click(addComparateurItem);

	/***********
	FIX HOME
	***********/
	$height = $('#products_small tr').height();
	$('.product_box_small').height($height-75);
	
	/***********
	CAROUSEL BANDEAU
	***********/	
	function mycarousel_initCallback(carousel) {
		// Pause du defilement automatique en cas de survol
		carousel.clip.hover(function() {
			carousel.stopAuto();
		}, function() {
			carousel.startAuto();
		});		
	
		// Controles externes
		$('#bandeau-control a').bind('click', function() {  
			carousel.scroll($.jcarousel.intval($(this).text()));
			return false;
		});
	}
	function mycarousel_itemFirstInCallback(carousel, object, index, state) {
		if (index>0) {
			$('#bandeau-control a').removeClass('active');
			$('#bandeau-control a:eq('+(index-1)+')').addClass('active');
		}
		//console.debug(index);
	}		
	if ($('#bandeau_home>ul>li').length>1) {
		$('#bandeau_home>ul').jcarousel({
			scroll: 1,
			visible: 1,
			wrap: 'last',
			auto : carousel_speed,
			initCallback: mycarousel_initCallback,
			itemFirstInCallback: mycarousel_itemFirstInCallback,
			// This tells jCarousel NOT to autobuild prev/next buttons
			buttonNextHTML: null,        
			buttonPrevHTML: null
		});
		$('#bandeau-control').show();
		$('#bandeau_home ul.jcarousel-list>li').removeClass('hidden');
	}
 
	/***********
	CAROUSEL INFOBOX
	***********/

	if ($('#carouselPubs li').size()>1) {
		$('#carouselPubs').jcarousel({
			buttonPrevHTML: null,
			buttonNextHTML: null,
			wrap: 'circular',
			auto : carousel_infobox_speed,
			scroll: 1,
			visible: 1
		});
	}
	
	/***********
	FANCYBOX
	***********/

	$('.fancy').fancybox();
	$('.fancy_productvideo').fancybox({
		'type'		: 'iframe',
		'width'		: 595,
		'height'	: 510
	});
	$('.fancy_cnil').fancybox({
		'type'		: 'iframe',
		'width'		: 690,
		'height'	: 510
	});
	$('.fancy_cgv').fancybox({
		'type'		: 'iframe',
		'width'		: 690,
		'height'	: 510
	});	
	$('.fancy_productprint').fancybox({
		'type'		: 'iframe',
		'width'		: 500,
		'height'	: 510
	});
	$('.fancy_productsend').fancybox({
		'type'		: 'iframe',
		'width'		: 390,
		'height'	: 510
	});	
	
	

	/***********
	NAV
	***********/

	$('#nav td').hover(function(e){
			$('.cat.selected').removeClass('selected').addClass('remembered');
			$('.cat').removeClass('hover');
			$(e.target).not('a').addClass('hover');
			$('.subcats').hide();
			$('#subcats_'+$(e.target).attr('id')).show();
		},function(e){
		});
	$('.subcats').hover(function(e){
		},function(e){
			$('.cat.remembered').removeClass('remembered').addClass('selected');
			$('.subcats').hide();
			$('.cat').removeClass('hover');
		});
	$('#header,body,.pagewidth').hover(function(e){
			$('.cat.remembered').removeClass('remembered').addClass('selected');
			$('.subcats').hide();
			$('.cat').removeClass('hover');
		});
		
		

	/***********
	CARTE
	***********/
	var area = null;
				
	$('#map_bulle').bind('mouseenter', function() {
		if(area)
			area.trigger('mouseenter')
	});

	$('#map_tooltip').bind('mouseenter', function() {
		if(area)
			area.trigger('mouseenter')
	});
		
		
	var findCooMap = function($area) {

		var link = $area.attr('href');
		var area = $area.attr('alt');
		

		var x=0,y=0;
		var p = $area.attr('coords').split(',');
		for(var i=0;i<p.length;i+=2){
			x += parseInt(p[i]);
			y += parseInt(p[i+1]);
		}
		x /= p.length/2;
		y /= p.length/2;
		
		return {'x':x,'y':y,'area':area,'href':link};
	}
	$('area.tTip').each(function(){
		var map =$(this).parent('map').attr('id');
		map =$('img[usemap=#'+map+']');
		var pos = findCooMap($(this));
		var that = $(this);
		$('<div class="map_pointer"></div>')
			.css({left:map.position().left+pos.x-11+3,top:map.position().top + pos.y-15+5})
			.bind('mouseenter',function(){ that.trigger('mouseenter') })
			.appendTo($('body'))
			;
		
	});

	$('area.tTip').bind('mouseenter',function(){

		var map =$(this).parent('map').attr('id');
		map =$('img[usemap=#'+map+']');
		var pos = findCooMap($(this));
		
		$('#map_tooltip').show();
		$('#map_bulle').show();
		
		area = $(this);

		
		$('#map_tooltip').css({zIndex:1000,left:map.position().left+pos.x-11,top:map.position().top + pos.y-15})
		$('#map_tooltip').click(function() {
			window.location.href = pos.href;
		});
		$('#map_bulle').css({zIndex:1001,left:map.position().left+pos.x,top:map.position().top + pos.y+29})
		$('#map_bulle').text(pos.area);
		
	});

	$('div.map_pointer').bind('mouseover',function(){
		
		var map =$(this).parent('map').attr('id');
		map =$('img[usemap=#'+map+']');
		var pos = findCooMap($(this));
		
		
		$('#map_tooltip').show();
		$('#map_bulle').show();
		
		$('#map_tooltip').css({zIndex:1000,left:map.position().left+pos.x-11,top:map.position().top + pos.y-15})
		$('#map_bulle').css({zIndex:1001,left:map.position().left+pos.x,top:map.position().top + pos.y+29})
		$('#map_bulle').text(pos.area);
	});

	$('area.tTip').bind('mouseout',function(){
		
		var map = $(this).parent('map').attr('id');
		map =$('img[usemap=#'+map+']');
		
		$('#map_tooltip').hide();
		$('#map_bulle').hide();
		
		var area = $(this).attr('alt');
		
		newClass = area.replace(" ","");

		image = $('.'+newClass);
		image.show();

	});
	
	$('.product_box_big, .product_box_small').hover(
		function(e) {
			//console.debug($('.block_visuel span',$(e.target)))
			/*
			pos = $('.block_visuel img',$(e.target)).position();		
			$('#product_focus').css({
				left: pos.left,
				top: pos.top
			});			
			$('#product_focus').show();
			*/
		},
		function(e){
				/*$('#product_focus').hide();*/
		}
	);
	
	/** V3 CADRE HOVER **/
	
	$('#cadre_occasion').bind('mouseover',function() {
		$('#cadre_occasion').attr('src','images/css/occasion-hover.png');
	});
	
	$('#cadre_occasion').bind('mouseout',function() {
		$('#cadre_occasion').attr('src','images/css/occasion.png');
	});
	
	$('#cadre_astuce').bind('mouseover',function() {
		$('#cadre_astuce').attr('src','images/css/astuce-hover.png');
	});
	
	$('#cadre_astuce').bind('mouseout',function() {
		$('#cadre_astuce').attr('src','images/css/astuce.png');
	});
	
	$('#cadre_affilie').bind('mouseover',function() {
		$('#cadre_affilie').attr('src','images/css/affilie-hover.png');
	});
	
	$('#cadre_affilie').bind('mouseout',function() {
		$('#cadre_affilie').attr('src','images/css/affilie.png');
	});
	
	
	
});
