/**
 * Fonction centrale de soumission de form via AJAX et gerant le retour vers un div.
 */
function showPopup(url , formName,divDest,width,height,left){
	var dest = 'popupContent';
	if(divDest){
		var dest = divDest;
	}else{
		if(width){
			$(dest).setStyle({"width":+(width-20)+"px"});
			$("popup").setStyle({"width":+width+"px"})
		}else{
			$(dest).setStyle({"width":"300px"});
			$("popup").setStyle({"width":"320px"})
		}
		if(height){
			$(dest).setStyle({"height":+(height-20)+"px"});
			$("popup").setStyle({"height":+height+"px"})
		}else{
			$(dest).setStyle({"height":"240px"});
			$("popup").setStyle({"height":"260px"})
		}
	}
	
	if(formName){
		new Ajax.Updater(dest, url,{ 
			parameters: $(formName).serialize(true),
			evalScripts :true
		});
	}else{
		new Ajax.Updater(dest, url, {
			evalScripts :true
		});
		
	}
	if(dest == 'popupContent'){
		affichePopup();
	}
}

/**
 * Fonction tout simple en charge d'attendre.<b> 
 */
function wait(){
	;
}


/**
 * Fonction en charge d'ajouter un élément au cart.
 */
function addToCart(url, formName,publishName){
	publishName = escape( publishName); 
	showPopup('./popupPanier.html?publishName='+publishName,null,null,500,120,null);

	if(formName){
		new Ajax.Updater('cart', url,{ 
			parameters: $(formName).serialize(true),
			evalScripts :true
		});
	}else{
		new Ajax.Updater('cart', url, {});
		
	}
}

/**
 * Fonction de post d'un formulaire.<b> 
 */
function goSubmit(formName, action){

	if($(formName)._eventId){
		$(formName)._eventId.value=action; 
	} else {
		if ($('_eventId')){
			$('_eventId').value=action;
		}
	}
	$(formName).submit();
}

/**
 * Fonction en charge d'afficher la popup.
 */
function affichePopup(){
	$("transparent").show();
	$("mainPopup").show();
}

/**
 * Fonction en charge de cacher la popup.
 */
function cachePopup(){
	$("mainPopup").hide();
	$("transparent").hide();
}

/**
 * Fonction en charge de recopier l'adresse de livraison vers la facturation.
 */
function copyAddress(){
	$('invoiceAddress.moreAddress').value = $('address.moreAddress').value;
	$('invoiceAddress.address').value = $('address.address').value;
	$('invoiceAddress.city').value = $('address.city').value;
	$('invoiceAddress.province').value = $('address.province').value;
	$('invoiceAddress.postalCode').value = $('address.postalCode').value;
	$('invoiceAddress.country').value = $('address.country').value;
}


function updateOrderDeliveryFee(url){
	var deliveryId = $('deliveryFee').value;
	window.location=url+"&deliveryFeeId=" + deliveryId;
}

function changeOrderStatut(id,index,url){
	var statut = 'BROUILLON';  
	window.location=url + "&_eventId=changeStatus&idOrderToEdit=" + id +"&orderStat=" & statut;
}

/**
 * Fonction en charge d'interpreter les touches de saisie des password.<b> 
 * Sur Entrer => Post du form.
 */
function checkEnter(e,url,form){
	var formToSubmit='loginForm';
	var divTarget='errorLogin';
	if(form){
		formToSubmit=form
		divTarget='';
	}
	var characterCode;

	if(e && e.which){
		e = e;
		characterCode = e.which;
	}else{
		e = event;
		characterCode = e.keyCode; 
	}

	if(characterCode == 13){
		//showPopup(url,formToSubmit,'popupContent');
		showPopup(url,formToSubmit,divTarget);
	}
}

/**
 *	Fonction qui permet de calculer le nombre de jour d'heure minutes et secondes restantes
 *	avant la fin de la vente flash.
 */
function rebour()
{
	dateFin = $("produitPromoDateFin").value;
	langue=$("languePage").value;
	jour = "J";
	if (langue == "fr")
	{
		jour =" jour(s)";
	}
	else{
		jour =" day(s)";
	}
	
	if(dateFin != "")
	{
		dateFinAnnee = dateFin.split('-')[0];
		dateFinMois = dateFin.split('-')[1]-1;
		dateFinJour = (dateFin.split('-')[2]).split(' ')[0];

		if (document.getElementById)
		{
			maintenant = new Date;
			// nombre de millisecondes par jour, heure, minute et seconde
			var mms_jour = 24 * 60 * 60 * 1000;
			var mms_heure = 60 * 60 * 1000;
			var mms_minute = 60 * 1000;
			var mms_seconde = 1000;
		
			tempMaintenant = maintenant.getTime();
			future = new Date(dateFinAnnee, dateFinMois, dateFinJour);
			tempFuture = future.getTime();
			
			// le total de millisecondes de différences
			var diff_mms = tempFuture - tempMaintenant;
			
			// pareil pour les jours
			diff_jours = Math.floor(diff_mms / mms_jour);
			diff_mms -= diff_jours * mms_jour;
			
			// pour les heures
			diff_heures = Math.floor(diff_mms / mms_heure);
			diff_mms -= diff_heures * mms_heure;
			
			// les minutes
			diff_minutes = Math.floor(diff_mms / mms_minute);
			diff_mms -= diff_minutes * mms_minute;
			
			// les secondes, ce qui reste en fait.
			var diff_secondes = Math.floor(diff_mms / mms_seconde);
		
			document.getElementById("comptarebour").innerHTML=(diff_jours==0?"":(diff_jours +jour))+" "+diff_heures+"h "+diff_minutes+"m "+diff_secondes+"s ";
		}
	}
	temporebour = setTimeout("rebour()", 1000)
	
}
/**
 * Fonction en charge de switcher l'emplacement de deux images.
 */ 
function clickOnImageLink(event){
    var elem = Event.element(event);
    Event.stop(event);
    //make sure we are working on the link not on nested image 
    while(elem.tagName.toLowerCase()!="a") elem = Element.up(elem);
    if (elem.href){   
    	//load the 200 px size of image in the main place 
    	var posDot = elem.href.lastIndexOf("."); 
    	var imgWithoutExtension = elem.href.substring(0,posDot);
    	var imgExtension = elem.href.substring(posDot+1);
    	var imgInMain = imgWithoutExtension + "-200." + imgExtension;  
        $('mainImage').src = imgInMain;
        $('zoomLink').href = elem.href;        
    }
}

/**
 * Fonction en charge de déclarer les écouteurs de switch image.
 */
function addObserverToImageLink(){ 
   //add observer to image link 
   $$('a.imageLink').each(function(i){
        Event.observe(i,'click',clickOnImageLink);
        //preload each image
        var href = i.href;
        var href_200 = href.replace(/\./,"-200.");
        //href = href.replace(/mini\d*\//,"");
        var img = new Image();
        img.src = href;
        var img_200 = new Image();
        img_200.src = href_200; 
   });
}

/**
 * Fonction en charge d'affiche ou non un element
 */
 function toogleBarre(element){
 	 if(element.getStyle("display")=="block"){
 		element.hide();
 	}else{
 		element.show();
 	}
 }


/**
 * Gestion de l'écouteur pour l'affichage des images.
 */
try{
	Event.observe(window, 'load',addObserverToImageLink);
}catch(e){};

