
var Class = {
	create: function() {
		return function() { this.initialize.apply(this, arguments); }
	}
};

if (!window.Event) {
  var Event = new Object();
}
//

function $(id) {  
	if (id == undefined) return false;
	return (document.getElementById(id.toString())) ? document.getElementById(id.toString()) : false; 
}


var Ajax = Class.create();

Ajax.prototype = {

	// Constructeur

	initialize: function(sUrl, scope) {

		if (scope == undefined) { 
			this.scope = window; 
		} else {
			this.scope = scope; 
		} 

		this.sUrl = sUrl;
		this.oXmlHttp = false;
		this.sVariables = "";
		this.aArguments = [];

		/*@cc_on
		@if(@_jscript_version >= 5)
			try {
				this.oXmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					this.oXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (E) {
					this.oXmlHttp = false;
				}
			}
		@else
			this.oXmlHttp = false;
		@end @*/
		if(!this.oXmlHttp && typeof XMLHttpRequest != 'undefined') {
			try {
				this.oXmlHttp = new XMLHttpRequest();
			} catch (e) {
				this.oXmlHttp = false;
			}
		}
		if (!this.oXmlHttp) {
			// XMLHttpRequest n'est pas supporte pas le client
		}
	},
	// Envoi
	envoie: function(fonctionRetour) {

		this.fonctionRetour = fonctionRetour;
		this.oXmlHttp.abort();
		this.oXmlHttp.open('POST', this.sUrl, true);
		this.oXmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

		for (var i = 0; i < this.aArguments.length; i++) {
			this.sVariables += "&"+this.aArguments[i].nom+"="+this.aArguments[i].valeur;
		}

		this.oXmlHttp.send(this.sVariables);
		var _this = this;

		this.oXmlHttp.onreadystatechange = function () {
			try {
				if (_this.oXmlHttp.status == 200 && _this.oXmlHttp.readyState == 4) {
					_this.fonctionRetour.apply(_this.scope, [_this.oXmlHttp.responseText]);
				}
			} catch (e) {
				// debug seulement
			}
		}
	},

	// Ajoute
	ajoute: function(nom, valeur) {
		var bExiste = false;
		for (var i = 0; i < this.aArguments.length; i++) {
			if (this.aArguments[i].nom == nom) {
				bExiste = true;
				this.aArguments[i].valeur = valeur;
				break;
			}
		}
		if (!bExiste) {
			this.aArguments.push( {nom: nom, valeur: valeur} );
		}
	}

};

// Information des produits en infobulle
function chargeInformationProduit(idProduit) {
	var chargeInformationProduit = new Ajax("../medias/includes/crazy_information_produit.php");
	chargeInformationProduit.ajoute('ajax', 1);
	chargeInformationProduit.ajoute('idProduitACharger', idProduit);
	chargeInformationProduit.envoie(retourChargementInformationProduit);
}
var retourChargementInformationProduit = function(e) {
	$("__infobulle").innerHTML = e;
}

// Déplacement des produits dans le panier vers la poubelle

var ie = document.all;
var xInit, yInit;
var down = false;
var div_x = 0;
var div_y = 0;
var imagePanierActive = 0;
var produitASupprimer = 0;

function desactiveDrag()
{
	down = false
	if(imagePanierActive) {
		if(produitASupprimer) {
			// Supression du produit dans le panier (si suppression activer, voir plus bas)
			//document.getElementById("poubelle").style.zIndex = "3";
			var ajoutAuPanier = new Ajax("../medias/includes/crazy_gestion_panier.php");
			ajoutAuPanier.ajoute('idProduitSupprimer', produitASupprimer);
			ajoutAuPanier.envoie(retourSuppression);
			produitASupprimer = 0;
		} else {
			document.getElementById(imagePanierActive).style.left = div_x+"px";
			document.getElementById(imagePanierActive).style.top = div_y+"px";
			document.getElementById(imagePanierActive).style.zIndex = "1";
		}
	}
	imagePanierActive = 0
}

function deplacer(evt)
{

	if(down==1) {

		posX = div_x + (ie?evt.clientX:evt.pageX) - xInit;
		posY = div_y + (ie?evt.clientY:evt.pageY) - yInit;

		document.getElementById(imagePanierActive).style.left = posX+"px";
		document.getElementById(imagePanierActive).style.top = posY+"px";

	} 

	return false;

}

function activDrag(id, evt)
{
	imagePanierActive = id;
	down = true;
	
	xInit = (ie?evt.clientX:evt.pageX);
	yInit = (ie?evt.clientY:evt.pageY);

	div_x = document.getElementById(id).offsetLeft;
	div_y = document.getElementById(id).offsetTop;

	document.getElementById(imagePanierActive).style.zIndex = "2";

}

// Suppression d'un produit dans le panier (activation de la suppression seulement, voir plus haut pour la suppression)

function supprimerProduit()
{
	//document.getElementById("poubelle").style.zIndex = "1";
	produitASupprimer = imagePanierActive;
}

var retourSuppression = function(e) {
	$("panierCrazy").innerHTML = e;

	actualiseMiniRecap();
}

// Modification de la quantite d'un produit dans le panier
var majChampTotal = 0;

function panierModifierQuantite(idProduitModifier, quantite) {

	var quantiteSaisi = parseInt(quantite, 10);
	if(isNaN(quantiteSaisi)==true) {
		$("qte"+idProduitModifier).value = 1;
		quantiteSaisi = 1;
	} else if(quantiteSaisi!=quantite) {
		$("qte"+idProduitModifier).value = quantiteSaisi;
	}

	var quantiteMaxi = $("quantiteMaxiPanier"+idProduitModifier).value;

	if(quantiteMaxi != "" && parseInt(quantite)>parseInt(quantiteMaxi)) {
		$("qte"+idProduitModifier).value = quantiteMaxi;
		alert("Stock limité, vous ne pouvez commander que "+quantiteMaxi+" exemplaire(s) de ce produit");
		quantiteSaisi = quantiteMaxi;
	}

	var modifierQuantitePanier = new Ajax("../medias/includes/crazy_gestion_panier.php");
	modifierQuantitePanier.ajoute('idProduitModifier', idProduitModifier);
	modifierQuantitePanier.ajoute('nouvelleQuantite', quantiteSaisi);
	if(quantiteSaisi!=0) {
		// Ne modifier que le total produit du panier
		modifierQuantitePanier.envoie(retourModifQuantite);
	} else {
		// Mettre à jour l'ensemble du panier
		modifierQuantitePanier.envoie(retourSuppression);
	}
	actualiseMiniRecap();
	var modifierQuantitePanier = new Ajax("../medias/includes/crazy_gestion_panier.php");
	modifierQuantitePanier.ajoute('estimationPort', "oui");
	modifierQuantitePanier.envoie(retourEstimation);
	actualiseMiniRecap();
}

var retourModifQuantite = function(e) {
	$("totalPanier").innerHTML = e;
}

var retourEstimation = function(e) {
	$("totalPorts").innerHTML = e;
}

function envoiQuantiteModifier(idProduitModifier, quantiteSaisi) {

	var modifierQuantitePanier = new Ajax("../medias/includes/crazy_etape1_recapitulatif_panier.php");
	modifierQuantitePanier.ajoute('idProduitModifier', idProduitModifier);
	modifierQuantitePanier.ajoute('nouvelleQuantite', quantiteSaisi);
	if(quantiteSaisi!=0) {
		// Modifier le total produit du panier
		modifierQuantitePanier.envoie(retourModifQuantiteRecap);

		// Modifier le total de la ligne du panier
		majChampTotal = idProduitModifier;

		//var modifierQuantitePanier = new Ajax("../medias/includes/crazy_etape1_recapitulatif_panier.php");
		//modifierQuantitePanier.ajoute('idProduitTotal', idProduitModifier);
		//modifierQuantitePanier.ajoute('nouvelleQuantite', quantiteSaisi);
		//modifierQuantitePanier.envoie(retourSousTotal);
		//var modifierQuantitePanier = new Ajax("../medias/includes/crazy_etape1_recapitulatif_panier.php");
		//modifierQuantitePanier.ajoute('modifFraisPort', "howi");
		//modifierQuantitePanier.envoie(retourPOOORTT);
	} else {
		// Mettre à jour l'ensemble du panier
		modifierQuantitePanier.envoie(retourSuppressionRecap);
	}
	
	setTimeout("rechargePanier()",200);
}

function rechargePanier() {
	var modifierQuantitePanier = new Ajax("../medias/includes/crazy_etape1_recapitulatif_panier.php");
	modifierQuantitePanier.ajoute('reload', "oui");
	modifierQuantitePanier.envoie(retourSuppressionRecap);
}

var idTimeEnvoiQuantite;

// Utilisé dans l'Etape 1 du processus de commande
function recapPanierModifierQuantite(idProduitModifier, quantite, sourceAction) {

	if(sourceAction == "bouton") {
		clearTimeout(idTimeEnvoiQuantite);
	} 

	var quantiteSaisi = parseInt(quantite, 10);
	if(isNaN(quantiteSaisi)==true) {
		$("qte"+idProduitModifier).value = 1;
		quantiteSaisi = 1;
	} else if(quantiteSaisi!=quantite) {
		$("qte"+idProduitModifier).value = quantiteSaisi;
	}
	
	var quantiteMaxi = $("quantiteMaxi"+idProduitModifier).value;
	quantite = $("qte"+idProduitModifier).value;

	if(quantiteMaxi != "" && parseInt(quantite)>parseInt(quantiteMaxi)) {
		$("qte"+idProduitModifier).value = quantiteMaxi;
		alert("Stock limité, vous ne pouvez commander que "+quantiteMaxi+" exemplaire(s) de ce produit");
	}

	idTimeEnvoiQuantite = setTimeout("envoiQuantiteModifier("+idProduitModifier+", "+quantiteSaisi+")",500);
	
}

var etape1_offerts_sel = "";

// Utilisé dans l'Etape 1 du processus de commande
function recapPanierModifierQuantiteOfferts(idProduitModifier, quantite) {


  if(idProduitModifier != 0){
      var quantiteSaisi = 1;
   		$("qte_offerts"+idProduitModifier).value = 1;
    	var quantiteMaxi = $("quantiteMaxi_offerts"+idProduitModifier).value;
    	quantite = $("qte_offerts"+idProduitModifier).value;

    	if(quantiteMaxi != "" && parseInt(quantite)>parseInt(quantiteMaxi)) {
    		$("qte_offerts"+idProduitModifier).value = quantiteMaxi;
    		alert("Stock limité, vous ne pouvez commander que "+quantiteMaxi+" exemplaire(s) de ce produit");
    	}
    	var modifierQuantitePanier = new Ajax("../medias/includes/crazy_etape1_recapitulatif_panier.php");
    	modifierQuantitePanier.ajoute('idProduitModifierOfferts', idProduitModifier);
    	modifierQuantitePanier.ajoute('nouvelleQuantiteOfferts', quantiteSaisi);
    	if(quantiteSaisi!=0) {
    		// Modifier le total produit du panier
    		modifierQuantitePanier.envoie(retourModifQuantiteRecap);
    		// Modifier le total de la ligne du panier
    		majChampTotal = idProduitModifier;
    		var modifierQuantitePanier = new Ajax("../medias/includes/crazy_etape1_recapitulatif_panier.php");
    		modifierQuantitePanier.ajoute('idProduitTotalOfferts', idProduitModifier);
    		modifierQuantitePanier.ajoute('nouvelleQuantiteOfferts', quantiteSaisi);
    		modifierQuantitePanier.envoie(retourSousTotalOfferts);
    	}
	} else {
    	 // on vide la session des produits offerts
		var modifierQuantitePanier = new Ajax("../medias/includes/crazy_etape1_recapitulatif_panier.php");
		modifierQuantitePanier.ajoute('videOfferts', "howi");
		modifierQuantitePanier.envoie(retourModifQuantiteRecap);
	}
	var modifierQuantitePanier = new Ajax("../medias/includes/crazy_etape1_recapitulatif_panier.php");
	modifierQuantitePanier.ajoute('modifFraisPortOfferts', "howi");
	modifierQuantitePanier.envoie(retourPOOORTT);
	// on desel l'ancien
	if(etape1_offerts_sel) {
	   	$("qte_offerts"+etape1_offerts_sel).value = 0;
	   	$("total_offerts"+etape1_offerts_sel).innerHTML = "0.00 &#128; TTC";
	}
	etape1_offerts_sel = idProduitModifier;
}


var retourModifQuantiteRecap = function(e) {
	$("totalPanier").innerHTML = e;
}

var retourSuppressionRecap = function(e) {
	$("listingRecapPanier").innerHTML = e;
}

var retourSousTotalOfferts = function(e) {
	if(majChampTotal) {
		$("total_offerts"+majChampTotal).innerHTML = e;
	}
	majChampTotal = 0;
}

var retourSousTotal = function(e) {
	if(majChampTotal) {
		$("total"+majChampTotal).innerHTML = e;
	}
	majChampTotal = 0;
}

var retourPOOORTT = function(e) {
	$("totalFraisPort").innerHTML = e;
}

// Pour le listing des produits suivant précédent
function afficherListeProduit(depart, rechercher, idGamme, compatibilite, promo, tri, nombreProduitALister, activerlistepromo) {
	var gestionListeProduit = new Ajax("../medias/includes/crazy_listing_produit.php");
	gestionListeProduit.ajoute('depart', depart);
	gestionListeProduit.ajoute('rechercher', rechercher);
	gestionListeProduit.ajoute('idGamme', idGamme);
	gestionListeProduit.ajoute('compatibilite', compatibilite);
	gestionListeProduit.ajoute('promo', promo);
	gestionListeProduit.ajoute('tri', tri);
	if(!nombreProduitALister) nombreProduitALister = "";
	gestionListeProduit.ajoute('nombreProduitALister', nombreProduitALister);
	gestionListeProduit.ajoute('activerlistepromo', activerlistepromo);
	gestionListeProduit.envoie(retourListeProduit);
}

var retourListeProduit = function(e) {
	$("listingProduit").innerHTML = e;
}

// Ajout au panier depuis le listing des produits 
function ajouterPanier(idProduit) {
	var ajoutAuPanier = new Ajax("../medias/includes/crazy_gestion_panier.php");
	ajoutAuPanier.ajoute('idProduitPanier', idProduit);
	ajoutAuPanier.envoie(retourPanier);
}

var retourPanier = function(e) {
	if(e.length>10) {
		$("panierCrazy").innerHTML = e;
		actualiseMiniRecap();
	} else {
		var quantiteLimite = $("qte"+e).value;
		alert("Stock limité, vous ne pouvez commander que "+quantiteLimite+" exemplaire(s) de ce produit");
	}
}

// Actualise le recap panier 
function actualiseMiniRecap() {
	var actualiseRecapPanier = new Ajax("../medias/includes/crazy_mini_recap_panier.php");
	actualiseRecapPanier.ajoute('actualisePanier', "1");
	actualiseRecapPanier.envoie(retourRecap);
	var actualiseRecapPanier = new Ajax("../medias/includes/crazy_mini_recap_panier.php");
	actualiseRecapPanier.ajoute('actualisePanierV2', "1");
	actualiseRecapPanier.envoie(retourRecapCadre);
}

var retourRecap = function(e) {
	$("recapPanier").innerHTML = e;
}

var retourRecapCadre = function(e) {
	$("conteneurInfoPanier").innerHTML = e;
}

function actualiseRecapFraisPort(idProduit) {
	var actualiseRecapPanierFraisPort = new Ajax("../medias/includes/crazy_fiche_informations_droite.php");
	actualiseRecapPanierFraisPort.ajoute('actualisePortV2', idProduit);
	actualiseRecapPanierFraisPort.ajoute('ajax', 1);
	actualiseRecapPanierFraisPort.envoie(retourRecapCadreFraisPort);
}

var retourRecapCadreFraisPort = function(e) {
	$("conteneurInfoFraisPort").innerHTML = e;
}

var opacityLG = 0;
var idTimeLG;
function opacifie(sId, nPourcentage) {
	var calque = $(sId).style;
	calque.opacity = (nPourcentage / 100);
	calque.MozOpacity = (nPourcentage / 100);
	calque.KhtmlOpacity = (nPourcentage / 100);
	calque.filter = "alpha(opacity=" + nPourcentage + ")";
}

function faitApparaitre(element, vitesse) {
   clearTimeout(idTimeLG);
	 opacityLG = opacityLG + 15;
   opacifie(element, opacityLG);
   if(opacityLG <= 100) idTimeLG = setTimeout("faitApparaitre('"+element+"',"+vitesse+")",vitesse);
}

function faitDisparaitre(element, vitesse) {
   clearTimeout(idTimeLG); 
	 opacityLG = opacityLG - 15;
   opacifie(element, opacityLG);
   if(opacityLG > 0) idTimeLG = setTimeout("faitDisparaitre('"+element+"',"+vitesse+")",vitesse);
}

function pauseApparitionDisparition(){
    clearTimeout(idTimeLG);
}

// Confirmation ajout au panier
var idTime1 = 0;
var idTime2 = 0;
var idTime3 = 0;
var idTime4 = 0;
var idTime5 = 0;
var idTime6 = 0;

function crazy_cacheInfoPanier(idChamp, opacity) {
	opacity = opacity - 10;
	opacifie('infoAjoutPanier'+idChamp, opacity);
	if(opacity > 0) {
		eval("idTime"+idChamp+" = setTimeout(\"crazy_cacheInfoPanier("+idChamp+", "+opacity+")\", 10)");
	} else {
		$("infoAjoutPanier"+idChamp).style.display = 'none';
	}
}

function crazy_afficheInfoPanier(idChamp, opacity) {
	opacity = opacity + 10;
	opacifie('infoAjoutPanier'+idChamp, opacity);
	if(opacity < 100) {
		eval("idTime"+idChamp+" = setTimeout(\"crazy_afficheInfoPanier("+idChamp+", "+opacity+")\", 10)");
	}
}

function afficheAjoutPanier(idChamp) {

	//clearTimeout(eval("idTime"+idChamp));
	$("infoAjoutPanier"+idChamp).style.display = 'block';
	//crazy_afficheInfoPanier(idChamp, 0);
}

function afficheCadreInfoPanier() {
  var largeurEcran = screen.width;
  var hauteurEcran = screen.height;
  var positionDivEnHauteur = (hauteurEcran/2) - 120;
  var positionDivEnLargeur = (largeurEcran/2);
  var decalageX = document.documentElement.scrollTop;
  if(decalageX == 0) var decalageX = document.body.scrollTop;
  var decalageY = document.documentElement.scrollLeft;
  if(decalageY == 0) var decalageY = document.body.scrollLeft; 
  var top = decalageX + positionDivEnHauteur;
  var left = decalageY + positionDivEnLargeur + 50;
  $("infoPanier").style.top = ""+top+"px";
  $("infoPanier").style.left = ""+left+"px";
  $("infoFraisPort").style.display = 'none';
  $("infoPanier").style.display = 'block';
}

function afficheCadreFraisPort() {
  var largeurEcran = screen.width;
  var hauteurEcran = screen.height;
  var positionDivEnHauteur = (hauteurEcran/2) - 120;
  var positionDivEnLargeur = (largeurEcran/2);
  var decalageX = document.documentElement.scrollTop;
  if(decalageX == 0) var decalageX = document.body.scrollTop;
  var decalageY = document.documentElement.scrollLeft;
  if(decalageY == 0) var decalageY = document.body.scrollLeft; 
  var top = decalageX + positionDivEnHauteur;
  var left = decalageY + positionDivEnLargeur + 50;
  $("infoFraisPort").style.top = ""+top+"px";
  $("infoFraisPort").style.left = ""+left+"px";
}

// Moteur de recherche
function testMoteurRecherche() {
	motClef = $("champRecherche").value;
	if(motClef=="Rechercher un produit" || motClef=="") {
		alert("Vous devez saisir un mot clé");
		return false;
	} else {
		return true;
	}
}