function centerImg( img, correction )
{
	// gardé pour compatibilité avant nettoyage.
}

function centerImgs() {

}

function autoSelect() {
	var selects = document.getElementsByTagName( "select" );
	if( !selects )
		return; 
	
	for( i=0; i<selects.length; i++)
	{
		var select = selects[i];
		var inputs = document.getElementsByTagName( "input" );
		
		if( select.className != "autoSubmit" )
			continue;
		
		select.onchange = function(e) {
			if(!e) e = window.event;
			if(!this) me = e.srcElement;
			else me = this;
			
			var form = this.form;
			form.submit();
		}		
				
		for( j=0; j<inputs.length; j++)
		{
			var input = inputs[j];
			
			if( input.className != "autoSubmit")
				continue;
			
			input.parentNode.removeChild( input );


		}
	}
}
/* Panier **************************************************************** */

var cart_effect;
var cart_state = 'closed';
var hidden_item_index = 0;
var item_num = 0;
var mouseInCart = false;

function cartToggler(e){
		Event.stop(e);
		Effect.toggle('cart', 'slide', {
			beforeStart : function(eff) {
				if( cart_state == 'open' ) {
					cart_state = 'closed';
				$('cart_parent').addClassName( 'hidden' );
				}
				else {
					cart_state = 'open';
					$('cart_parent').removeClassName( 'hidden' );
				}
				$('cart_link').stopObserving('click');
			},
			afterFinish : function(eff) {
				$('cart_link').observe('click', cartToggler );
			}, duration : 0.3
		});
	}
	
function toggleCartUpDown()
{
	if( hidden_item_index >= item_num - 3 )
		$('cart_down').addClassName( 'disabled' );
	else
		$('cart_down').removeClassName( 'disabled' );
	
	if( hidden_item_index <= 0 )
		$('cart_up').addClassName( 'disabled' );
	else
		$('cart_up').removeClassName( 'disabled' );
	
}

function setCart( open_at_start ) {
	$$('#cart input.numerique').each( function(el) { el.observe( 'change', updateCart ) } );
	$$('#cart .delete').each( function(el) { el.observe( 'click', updateCart ) } );
	if( $('hiddenRecalc') )
		$('hiddenRecalc').observe( 'click', updateCart );
	
	item_num = $$('.cart_item').length;
	
	
	if( item_num > 3 && $('newest') == undefined ) 
	{
		$$('.cart_item').each( function(el, index) {
			if( index < hidden_item_index )
				el.hide();
		});
	}	
	
	if( item_num > 0 ) {
		toggleCartUpDown();
		
		$('cart_down').observe('click',
			function(e) {
				Event.stop(e);
				
				if( hidden_item_index < item_num - 3 )
				{ 
					Effect.SlideUp( $$('.cart_item')[hidden_item_index++], {duration: 0.2} );
					toggleCartUpDown();
				}
			}
		); 
	
		$('cart_up').observe('click',
			function(e){
				Event.stop(e);
				
				if( hidden_item_index > 0 ) 
				{
					Effect.SlideDown( $$('.cart_item')[--hidden_item_index], {duration: 0.2});
					toggleCartUpDown();
				}
			}
		); 
	}
	
	$('cart_link').observe( 'click', cartToggler );
	
	if( open_at_start == 'do' )
		Effect.SlideDown('cart', {
			beforeStart : function(eff) {cart_state = 'open'; $('cart_parent').removeClassName('hidden'); },
			afterFinish : function(eff) { 
				$('cart_link').observe( 'click', cartToggler );
				Effect.Pulsate('newest', {
					afterFinish : function(eff) { 
						
						if( mouseInCart == false )
						{
							cart_effect = Effect.SlideUp( 'cart_parent', {
								afterFinish : function(eff) { $('cart_parent').removeClassName('hidden');cart_state = "closed"; },
								delay : 3						
							});
							
						}
						
					}});

					
			}	
		});	
	else if( open_at_start == 'done' )
	{
		$('cart').show();
		$('cart_parent').removeClassName('hidden');
		Effect.SlideDown('newest', {
				afterFinish : function(eff) {	
					Effect.Pulsate('newest');
				}, duration : 0.3
			});
	}
	// $('cart_link').observe( 'mouseleave', function(eff) {
	// 	if( cart_state == 'open' )
	// 		cart_effect = Effect.SlideUp( 'cart', { delay: 0.5,
	// 			afterFinish : function(eff) { 
	// 				$('cart_link').observe( 'click', cartToggler );
	// 			}		
	// 		});
	// 	else
	// 		$('cart_link').observe( 'click', cartToggler );
	// });
	// 
	// $('cart_link').observe( 'mouseenter', function(e){
	// 	$('cart_link').stopObserving('click');
	// 	
	// 	Effect.SlideDown('cart', {
	// 		beforeStart : function(eff) {cart_state = 'open' },
	// 		afterFinish : function(eff) { 
	// 			$('cart_link').observe( 'click', cartToggler );
	// 		}
	// 	});
	// 	
		$('cart').observe('mouseenter', function(e) {
			if( cart_effect && cart_effect.currentFrame == 0 )
				cart_effect.cancel();
			
			mouseInCart = true;
		});
		
		$('cart').observe( 'mouseleave', function(e){
			mouseInCart = false;
		});

}


function updateCart(e)
{
	var input = Event.element(e);
	var item = input.up('.cart_item');
	
	if( item ) {
	Effect.Shrink( item, {direction: 'top-right', 
	afterFinish : function(eff) {
	
		var cart = $('whole_cart');
		new Ajax.Updater(
			cart,
			'/panier/recalculer',
			{ 
				parameters: input.serialize(),
				onComplete: function(){ setCart( 'done' ); }
			}
			);}, duration: 0.2
	});
	} else {
		var cart = $('whole_cart');
		new Ajax.Updater(
			cart,
			'/panier/recalculer',
			{ 
				parameters: input.serialize(),
				onComplete: function(){ setCart( 'done' ); }
			}
			);
	}
	Event.stop(e);
}

function cartMessage()
{
	if(message = $('cart_message') )
	{
		message.fade({ duration: 2.0, delay: 1.0, afterFinish: centerImgs });
	}
}

function addToCart(e)
{
	var input = Event.element(e);
	
	Effect.ScrollTo('top');
	
	new Ajax.Updater(
		$('whole_cart'),
		'/panier/add',
		{
			parameters: input.serialize(),
			onComplete: function(){ setCart( cart_state == 'open' ? 'done' : 'do' ); }
		}
		)
	Event.stop(e);
}

/* Rollover menu types **************************************************** */

function switchRed( e )
{
	var roll = Event.findElement( e, 'a' ).getElementsByTagName("IMG")[0];
	roll.src = roll.src.sub( /-inactif\.gif/, '.gif' );
}

function switchGray( e )
{
	var roll = Event.findElement( e, 'a' ).getElementsByTagName("IMG")[0];
	roll.src = roll.src.sub( /\.gif/, '-inactif.gif' );
}

/* Vignettes ************************************************************* */
var img_detail = null;
var current_parent = null;
var interval = null;
var opacity = 0;

function prepareDetails() {
	var vignettes = document.getElementsByTagName("p");


	for( i=0; i<vignettes.length; i++ )
	{
			if( vignettes[i].className == "vignette" )
			{
				
				vignettes[i].onmouseover = showDetail;
				vignettes[i].onmouseout = hideDetail;
				vignettes[i].onmousemove = moveDetail;	
				if (vignettes[i].addEventListener)
				   	   vignettes[i].addEventListener('DOMMouseScroll', wheel, false);
				else
						vignettes[i].onmousewheel = wheel;
		
			}
	}
}

function wheel(e)
{
	if(!e) e = window.event;
	if(!this) me = e.srcElement;
	else me = this;
	
	// var img = null;
	
	me = me.parentNode;
	imgs = me.getElementsByTagName( "img" );
	for( i=0; i<imgs.length; i++ )
	{
		if( imgs[i].className == "detail" )
		{
			img = imgs[i];
			break;
		}
	}
	
	if( img == null )
	 	return; 
		
	if( img.src.indexOf( "zG.jpg" ) == -1 )
		img.src = img.src.replace( /G/, "zG" );
	else
		img.src = img.src.replace( /zG/, "G" );
		
	if (e.preventDefault)
        e.preventDefault();
	e.returnValue = false;
}

function showDetail(e)
{
	if(!e) e = window.event;
	if(!this) me = e.srcElement;
	else me = this;
	
	var img;
	
	imgs = me.getElementsByTagName( "img" );
	for( i=0; i<imgs.length; i++ )
	{
		if( imgs[i].className == "detail" )
		{
			img = imgs[i];
			break;
		}
	}
	
	if( !img )
		return;
	
	if( img != img_detail )
		hideDetail();
		

	if( img_detail == null )
	{
		img_detail = img;
		current_parent = img.parentNode;
		me.removeChild( img );
		document.getElementById("wrapper").appendChild( img );

	
		// if( document.all ) 
		// {
		// 	img_detail.style.filter = "progid:DXImageTransform.Microsoft.Alpha"; 
		// }
		img.style.opacity = 0;	
		interval = setInterval( "fadeIn()", 1 );
		moveDetail( e );
	}
}

function fadeIn()
{
	if( opacity < 1 )
	{

		if( document.all )
		{
			// opacity += 0.3;
			// img_detail.filters.item("DXImageTransform.Microsoft.Alpha").opacity = opacity * 100;
			
		}
		else
		{
			opacity += 0.04;
			img_detail.style.opacity = opacity;
		}
	}
}


function moveDetail( e )
{
	if(!e) e = window.event;
	
	var img = img_detail;
	
	if( img )
	{
		img.style.padding = "10px";
		img.style.border = "1px solid #999";
		img.style.background = "#CCC";
		img.style.display = "block";
		img.onmouseover = hideDetail;
		img.onmouseout = hideDetail;
		relativeToMouse( e, img );
	
	}
}

function relativeToMouse( evt, elmt, deltax )
{
	elmt.style.position = "absolute";
	
	if( deltax < 1 )
		dx = (elmt.offsetWidth / 2) + 10;
	else
		dx = 0;
		
	if (self.innerHeight) // all except Explorer
	{
		winx = self.innerWidth;
		winy = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight) // Explorer 6 Strict Mode
	{
		winx = document.documentElement.clientWidth;
		winy = document.documentElement.clientHeight;
	}
	else if (document.body) // other Explorers
	{
		winx = document.body.clientWidth;
		winy = document.body.clientHeight;
	}
		
	if( evt.pageX )
	{ 
		newX = (evt.pageX ) + 15;
		newY = (evt.pageY ) + 15;
	
		if( (newX + elmt.offsetWidth + 20 ) - self.pageXOffset > winx )
		{
			elmt.style.left = self.pageXOffset + newX + dx - elmt.offsetWidth - 30 - document.getElementById("wrapper").offsetLeft + "px";
		}
		else
		{
			elmt.style.left = newX - dx - document.getElementById("wrapper").offsetLeft + "px";
		}		
			
		if( ((newY + elmt.offsetHeight + 20 ) - self.pageYOffset) > winy )
		{
			elmt.style.top = self.pageYOffset + winy - elmt.offsetHeight - 20 + document.getElementById("wrapper").offsetTop + "px";
		}
		else
		{
			elmt.style.top = newY - document.getElementById("wrapper").offsetTop + "px";
		}
	}
	else
	{
		newX = (evt.clientX + document.body.scrollLeft + document.documentElement.scrollLeft - document.getElementById("wrapper").offsetLeft ) + 15;
		newY = (evt.clientY + document.body.scrollTop + document.documentElement.scrollTop - document.getElementById("wrapper").offsetTop ) + 15;
		
		if( (newX + elmt.offsetWidth + 20 ) - document.documentElement.scrollLeft > winx )
		{
			elmt.style.left = newX + dx - 30 - elmt.offsetWidth + "px";
		}
		else
		{	
			elmt.style.left =  newX - dx + "px";
		}
		
		if( ((newY + elmt.offsetHeight + 20 ) - document.documentElement.scrollTop ) > winy )
		{
			elmt.style.top = document.documentElement.scrollTop + winy - elmt.offsetHeight + document.getElementById("wrapper").offsetTop + "px";
		}
		else
		{
			elmt.style.top = newY - document.getElementById("wrapper").offsetTop + "px";
		}
	}
}

function hideDetail( e )
{
	if( img_detail )
	{
		document.getElementById("wrapper").removeChild( img_detail );
		current_parent.appendChild( img_detail );
		opacity = 0;
		img_detail.style.display = "none";
		img_detail = null;
		current_parent = null;
		clearInterval( interval );
	}
}

/* Fin vignettes ************************************************ */


var bubulle = null;
var bubulletextes = new Array();

function tailleSubmitHover()
{
	inputs = document.getElementsByTagName("input");
	
	for( i = 0; i < inputs.length; i++ )
	{
		if( inputs[i].className == "taille" )
		{
			inputs[i].onmouseover = showBulleTaille;
			inputs[i].onmouseout = hideBulleTaille;
			
			bubulletextes[inputs[i].id] = inputs[i].title;
			inputs[i].title = "";
		}
	}	
}

function showBulleTaille( e )
{
	if(	!e ) e = window.event;
	if( !this ) me = e.srcElement;
	else me = this;
		
	if( !bubulle )
	{
		bubulle = document.createElement("p");
		insidebubulle = document.createElement("span");
		document.getElementById("wrapper").appendChild( bubulle );
		bubulle.appendChild( insidebubulle );
		insidebubulle.innerHTML = bubulletextes[me.id];
		bubulle.className = "bulle";
		bubulle.style.position = "absolute";
		relativeToMouse( e, bubulle, 0.5 );	

	}
	
	me.style.color = "red";
	me.style.textDecoration = "underline";

	return true;
}

function moveBulleTaille( e )
{
	if(	!e ) e = window.event;
	if( !this ) me = e.srcElement;
	else me = this;
		
	relativeToMouse( e, bubulle, 0.5 );
}

function hideBulleTaille( e )
{
	if(	!e ) e = window.event;
	if( !this ) me = e.srcElement;
	else me = this;

	if( bubulle )
	{
		bubulle.parentNode.removeChild( bubulle );
		bubulle = null;
	}

	me.style.color = "#333";
	me.style.textDecoration = "none";
}

function hideLivraison()
{
	Element.hide($("form_livraison"));
}

function showLivraison()
{
	document.getElementById("form_livraison").style.display = "block";	
}


function toggle() {
	Effect.toggle( $('form_livraison'), 'slide' );
}
	

function init() 
{
	
//	setCart( false );
	
/*	if( inputs = $$("input.taille") ) 
		inputs.each(
			function( el ) {
				el.observe( 'click', addToCart );
			}
			);

	if( button_add = $('add_to_cart'))
		button_add.observe( 'click',
			function( e ) {
				new Ajax.Updater( $('whole_cart'), '/panier/add', { parameters: $("form_add").serialize(), onComplete: function(){ setCart( cart_state == 'open' ? 'done' : 'do' ); }}); 
				Event.stop(e);
			}
		 ); */
	
	if( type_imgs = $$('#type_selector a'))
		type_imgs.each(
			function( el ) {
				el.observe('mouseenter', switchRed );
				el.observe('mouseleave', switchGray );
			}
			);
	
	if( window.install_thumb_events != null )
		 install_thumb_events();
	
	prepareDetails();
	tailleSubmitHover();

	if( photo = $('grande_photo') )
		DetailZoom.install( photo ); 
		
		if( $("form_livraison") )
		{
			hideLivraison();
			adresses_identiques = document.getElementById("adresses_identiques");
			adresses_identiques.onclick = toggle;	
		}
}

window.onload = init;


