var cptAjout = 0;
var cptStockKO = 0;

var myrules = {
	'.btn_vider' : function(vider)
	{
		vider.onclick = function()
		{
			var idtoclean = getIDElement(vider, 1)
			idtoclean = idtoclean.replace('vider:', '');
			if($('lightbox:'+idtoclean+':ajout'))
				$('lightbox:'+idtoclean+':ajout').style.display = "none";
			if($(idtoclean+':ajout:visu'))
				$(idtoclean+':ajout:visu').style.display = "none";
			if($('form'+idtoclean))
				$('form'+idtoclean).value = "";
		}
	},
	
	'.look_msg' : function(look)
	{
		var bloc = getIDElement(look, 0);
		bloc = bloc.replace('look_msg:', '');
		if($(bloc))
		{
			look.onmouseover = function()
			{
				FORM_performPosition($(bloc));
				$(bloc).style.display = "block";
			},
			
			look.onmouseout = function()
			{
				$(bloc).style.display = "none";
			}
		}
	},
	
	'div.etat_fiche' : function(et){
 		et.onclick = function(){
 			var bloc = $('contenu_fiche');
 			if(bloc.style.display == 'none')
 				new Effect.Grow(bloc);
 			else
 				new Effect.SwitchOff(bloc);
 		}
 	},
 	
 	'a.qte_prod' : function(qb) {
 		qb.onclick = function(){
 			var tab = qb.id.split('_');
	 		var tableProd = tab[2];
	 		var idelement = tab[1];
	 		var type = tab[0];
	 		var ch_quantite = $('quantite_'+idelement+'_'+tableProd);
 			if(ch_quantite.value == '')
 				ch_quantite.value = 0;
 			if(type == "moins")
 			{
 				if(ch_quantite.value <= 0)
 					ch_quantite.value = 0;
 				else
 					ch_quantite.value --;
 			}
 			else
 				ch_quantite.value ++;
 		}
 	},
 	 	 	
 	'div.lien_reglette' : function(lr){
 		var valbloc = lr.id.replace('offset:', '');
 		var tab = valbloc.split(':');
 		var nombloc = tab[0];
 		var en_cours = $('reglette_encours:'+nombloc);
 		var tpl = $('template:'+nombloc);
 		if(document.getElementById('postsupp:'+nombloc))
 		{
 			var postsupp = $('postsupp:'+nombloc).value;
 			var tabpost = postsupp.split('|');
 			postsupp = "";
 			for(var i = 0; i < tabpost.length; i++)
 				postsupp += '&'+tabpost[i];
 		}
 		else
 			postsupp = "";
 		var offset = tab[1];
 		var bloc = $('contenu_reglette:'+nombloc);
 		var attente = $('loading_reglette:'+nombloc);
 		
 		lr.onclick = function(){
 			if(en_cours.value == '1')
				return;
 			
 			en_cours.value = '1';
 			bloc.scrollTo();
 			new Effect.Appear(attente, {queue:'front'});
 			
 			new Ajax.Request(urlaff+'&offset='+offset, {
				asynchronous: 'true',
				postBody: 'tpl='+tpl.value+postsupp,
				onSuccess: function (ahr)
				{
					new Effect.BlindUp(bloc, {queue:'front', afterFinish: function(){bloc.innerHTML = ahr.responseText;}});
					new Effect.BlindDown(bloc, {queue:'end'});
					new Effect.SwitchOff(attente, {queue:'end', afterFinish: function(){en_cours.value = '0'; Behaviour.apply();}});
				}
			});
 		}
 	},
 	
 	'.defile_prec' : function(prec)
	{
		prec.onclick = function() {
			imageDefile(-1);
		}
	},
	
	'.defile_suiv' : function(suiv)
	{
		suiv.onclick = function() {
			imageDefile(1);
		}
	},
	
	'.ajout_panier' : function(ajout) {
 		ajout.onclick = function() {
 			cptAjout = 0;
 			cptStockKO = 0;
 			var tabelement = ajout.id.replace('ajout_', '').split('_');
 			var valbloc = tabelement[0]+'_'+tabelement[1];
 			var liste = $$('.'+tabelement[2]+'_'+tabelement[3]);
 			var lst = $$('input.encours_ajoutpanier');
		 	for(var i = 0; i < lst.length; i++)
		 	{
		 		if(lst[i].value == '1')
					return;
		 	}
 			if(liste.length > 0)
 			{
	 			var en_cours = $('ajout_encours_'+valbloc);
	 			en_cours.value = '1';
	 			var attente = $('attente_'+valbloc);
				new Effect.Appear(attente, {queue:'front'});
				for(var i = 0; i < liste.length; i++)
	 			{
	 				var valeurId = liste[i].id.replace('quantite_','');
					var tabId = valeurId.split('_');
					var idprod = tabId[0];
					var tableProd = tabId[1];
					var quantiteproduit = liste[i].value;
					ajoutPanier(idprod, tableProd, quantiteproduit, i);
	 			}
	 			new Effect.Fade(attente, {queue:'end', duration:0.5, afterFinish: function(){en_cours.value = '0'; updateMiniPanier();}});
 			}
 		}
 	},
 	
 	'div.lien_reglette' : function(lr){
 		lr.onclick = function(){
 			var valbloc = lr.id.replace('offset:', '');
	 		var tab = valbloc.split(':');
	 		var nombloc = tab[0];
	 		var en_cours = $('reglette_encours:'+nombloc);
	 		var tpl = $('template:'+nombloc);
	 		if(document.getElementById('postsupp:'+nombloc))
	 		{
	 			var postsupp = $('postsupp:'+nombloc).value;
	 			var tabpost = postsupp.split('|');
	 			postsupp = "";
	 			for(var i = 0; i < tabpost.length; i++)
	 				postsupp += '&'+tabpost[i];
	 		}
	 		else
	 			postsupp = "";
	 		var offset = tab[1];
	 		var bloc = $('contenu_reglette:'+nombloc);
	 		var attente = $('loading_reglette:'+nombloc);
 			if(en_cours.value == '1')
				return;
 			
 			en_cours.value = '1';
 			bloc.scrollTo();
 			new Effect.Appear(attente, {queue:'front', duration:0.5});
 			
 			new Ajax.Request(urlaff+'&offset='+offset, {
				asynchronous: 'true',
				postBody: 'tpl='+tpl.value+postsupp,
				onSuccess: function (ahr)
				{
					bloc.innerHTML = ahr.responseText;
					new Effect.Fade(attente, {queue:'end', duration:0.5, afterFinish: function(){en_cours.value = '0'; Behaviour.apply();}});
				}
			});
 		}
 	},
 	
 	'a.view_cat' : function(view) {
 		view.onclick = function() {
 			var bloc = view.id.replace('view_', '');
 			var lst = $$('div.view_cat');
 			for(var i = 0; i < lst.length; i++)
 			{
 				if(lst[i].style.display != "none")
 				{
 					lst[i].style.display = "none";
 				}
 			}
 			var lst = $$('a.view_cat');
 			for(var i = 0; i < lst.length; i++)
 			{
 				if($(lst[i].id))
 					$(lst[i].id).style.color = "#DE5F2A";
 			}
 			if($(bloc))
 			{
	 			if($(bloc).style.display == "none")
	 			{
	 				$(bloc).style.display = "block";
	 			}
 			}
 			view.style.color = "#FFFFFF";
 		}
 	}
};

// Enregistrement des regles definies ci dessus dans Behaviour
Behaviour.register(myrules);

function Callback_COMMUN_updateimage(file, indice)
{
	var indice = indice || "";
	if($('image'+indice+':ajout:visu'))
	{
		$('image'+indice+':ajout:visu').src =  file;
		$('image'+indice+':ajout:visu').style.display = "block";
		if($('formimage'+indice))
		{
			$('formimage'+indice).value =  file;
		}
		if($('lightbox:image'+indice+':ajout'))
		{
			$('lightbox:image'+indice+':ajout').href = file;
			$('lightbox:image'+indice+':ajout').style.display = "block";
		}
	}
}

//Recupere les elements ayant une classe donnée (on peut préciser le genre de tag et le contenu dans lequel recherché) 
function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|s)" + className + "(s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

function ParseSortable(bloc)
{
	var tabTable = bloc.select('table.sortable');
	for(var i = 0; i < tabTable.length; i++)
	{
		var table = tabTable[i];
		sorttable.makeSortable(table);
	}
}

function array_search( needle, haystack, argStrict ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: Brett Zamir
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: array_search('zonneveld', {firstname: 'kevin', middle: 'van', surname: 'zonneveld'});
    // *     returns 1: 'surname'
 
    var strict = !!argStrict;
    var key = '';
 
    for(key in haystack){
        if( (strict && haystack[key] === needle) || (!strict && haystack[key] == needle) ){
            return key;
        }
    }
 
    return false;
}

function imageDefile(increment)
{
	var cpt = $('cpt_image').value;
	var liste = $$('.img_defile');
	var nb_image = liste.length;
	var encours = $('encours_image').value;
	if(encours == 1)
		return;
	if(nb_image > 1)
	{
		$('encours_image').value = 1;
		var image_to_hide = $('img_'+cpt);
		var valeur = parseInt(cpt) + parseInt(increment);
		if(valeur < 0)
			valeur = parseInt(nb_image) - 1;
		if(valeur > (parseInt(nb_image) - 1))
			valeur = 0;
		var image_to_appear = $('img_'+valeur);
		new Effect.Fade(image_to_hide, {queue:'front', duration:0.2});
		new Effect.Appear(image_to_appear, {queue:'end', duration:0.2, afterFinish:function(){$('cpt_image').value = valeur; $('encours_image').value = 0;}});
	}
}

function ajoutPanier(idprod, tableProd, quantiteproduit)
{
	if(quantiteproduit != 0 && quantiteproduit != '')
	{
		new Ajax.Request(urlcot, {
			aynchronous: 'true', 
			postBody: 'idproduit='+idprod+'&qte='+quantiteproduit+'&table='+tableProd,
			onSuccess: function (xhr)
			{
				var temmp = xhr.responseText;
				var tabtmp = temmp.split('|');
				var quantite = tabtmp[0];
				var puht = tabtmp[1];
				var totalht = tabtmp[2];
				var tauxtva = tabtmp[3];
				var idpromo = tabtmp[4];
				var numpromo = tabtmp[5];
				var poids = tabtmp[6];
				var old_prix = tabtmp[8];
				if(tabtmp[9] == 1)
				{
					cptStockKO ++;
				}
				else
				{
					new Ajax.Request(urlpanier, {
						asynchronous: 'true',
						postBody: 'panier_produit='+idprod+'|'+quantite+'|'+'ajout'+'|'+puht+'|'+tauxtva+'|'+idpromo+'|'+numpromo+'|'+poids+'|'+tableProd+'&old_prix='+old_prix,
						onSuccess: function(fhr)
						{
							cptAjout ++;
						}
					});
				}
			}
		});
	}
}

function updateMiniPanier()
{
	var ajax_ok = $('msg_ajax');
	ajax_ok.innerHTML = "";
	new Ajax.Request(urlaff, {
		asynchronous: 'true', 
		postBody: 'tpl=front/panier/mini_recap_panier',
		onSuccess: function (ahr)
		{
			$('texte_panier').innerHTML = ahr.responseText;
			if(cptStockKO > 0)
			{
				ajax_ok.innerHTML = "Des produits dont le stock n'&eacute;tait pas suffisant ont &eacute;t&eacute; modifi&eacute;s";
			}
			else
			{
				if(cptAjout > 1)
					ajax_ok.innerHTML = "Vos produits ont bien &eacute;t&eacute; ajout&eacute;s au panier";
				else
					ajax_ok.innerHTML = "Votre produit a bien &eacute;t&eacute; ajout&eacute; au panier";
			}
			if(cptAjout > 0 || cptStockKO > 0)
				myEffect_FlashInfo(ajax_ok.id, 2);
		}
	});
}