
Event.observe(window, 'load', AWL_init);

function AWL_search(obj) {
	$('inputSearch').value=obj.rel;
	$('validSearch').click();
}

function AWL_init(){
	if($("AWL_filtreProduitList")){
		navigProductList = new AWL_NavProductList();
	}
}

var AWL_NavProductList = Class.create();

AWL_NavProductList.prototype = {

	initialize: function() {
	  this.idSelect = 0;
	  this.tabProd = $$('#listExpressContent a');
		this.numPage = 1;
		this.devDurableValue = 0;
		this.devDurable = null;
		this.filtreRayonId = "";
		this.initObserve();
		this.initObserveNavLeft();
		//this.selectProd(this.idSelect);
	
	},

	initObserve:function(){

   

		// observation de l'evenement click sur la pagination
		this.tabPart = $$('#AWL_pager');
		for(var i=0;i<this.tabPart.length;i++){
			this.tabA = this.tabPart[i].getElementsByTagName('a');
			for(var j=0;j<this.tabA.length;j++){
				this.a = this.tabA[j];
				Event.observe(this.a, 'click',this.doPostAjax.bind(this,this.a,'pager'));
			}
		}

		// observation de l'evenement click sur la pagination bas
		this.tabPart = $$('#AWL_pagerBas');
		for(var i=0;i<this.tabPart.length;i++){
			this.tabA = this.tabPart[i].getElementsByTagName('a');
			for(var j=0;j<this.tabA.length;j++){
				this.a = this.tabA[j];
				Event.observe(this.a, 'click',this.doPostAjax.bind(this,this.a,'pager'));
			}
		}
		
		// observation d'un changement sur le filtre marques
		this.tabPart = $$('#AWL_filtreMarques');
		if(this.tabPart.length>0){
			this.select = this.tabPart[0].getElementsByTagName('select')[0];
			Event.observe(this.select, 'change',this.doPostAjax.bind(this,this.select,'filtreMarques'));
		}

		// observation d'un changement sur le tri
		this.tabPart = $$('#AWL_filtrePrix');
		if(this.tabPart.length>0){
			this.select = this.tabPart[0].getElementsByTagName('select')[0];
			Event.observe(this.select, 'change',this.doPostAjax.bind(this,this.select,'filtrePrix'));
		}

		// observation d'un changement sur le top produit issu du developpement durable
		this.tabPart = $$('#AWL_filtreDurable');
		if(this.tabPart.length>0){
			this.devDurable = this.tabPart[0].getElementsByTagName('a')[0];
		
			Event.observe(this.devDurable, 'click',this.doPostAjax.bind(this,this.devDurable,'filtreDurable'));
		}

		// observation d'un changement sur le mode d'affichage Liste ou Vignettes
		this.tabPart = $$('#AWL_affichage');
		if(this.tabPart.length>0){
			this.a = this.tabPart[0].getElementsByTagName('a')[0];
			Event.observe(this.a, 'click',this.doPostAjax.bind(this,this.a,'modeAffichage'));
		}

		// observation d'un changement sur le filtre rayon (nouveautes, selections, promotions)
		this.tabPart = $$('#AWL_contentScroll');
		for(var i=0;i<this.tabPart.length;i++){
			this.tabA = this.tabPart[i].getElementsByTagName('a');
			for(var j=0;j<this.tabA.length;j++){
				this.a = this.tabA[j];
				Event.observe(this.a, 'click',this.doPostAjax.bind(this,this.a,'filtreRayon'));
			}
		}
		
		// observation du click sur toutes les nouveautes
		this.tabPart = $$('#AWL_ToutesSelections');
		if(this.tabPart.length>0){
			this.a = this.tabPart[0].getElementsByTagName('a')[0];
			Event.observe(this.a, 'click',this.doPostAjax.bind(this,this.a,'filtreRayon'));
		}

	},

	initObserveNavLeft:function(){
		// observation de l'evenement click le menu gauche des selections
		this.tabPart = $$('#navSubLeft li');
		for(var i=0;i<this.tabPart.length;i++){
			this.a = this.tabPart[i].getElementsByTagName('a')[0];
			Event.observe(this.a, 'click',this.doPostAjax.bind(this,this.a,'navLeftSelection'));
		}
	},

	doPostAjax:function(e,action){
		if (action=='filtreRayon' && e.rel=='RayonSelect') return;

		var optionPrix = '';
		var optionMarques = '';
		var selectionId = '';
		var ipListeExpress='';
		var ipListeExpressIdx='';
		if($('ipListeExpress')!=null)
	    	ipListeExpress=$('ipListeExpress').value;
    	else
	      	ipListeExpress="";
    	
    	if($('ipListeExpressIdx')!=null && $('ipListeExpressIdx').value!='')
	    	ipListeExpressIdx=$('ipListeExpressIdx').value;
    	else
	      	ipListeExpressIdx="0";
	  
    ipListeExpress=encodeURIComponent(ipListeExpress);
    //.replace("#","%23");
    if ($('optionPrix')!=null)
		{
			optionPrix = $('optionPrix').value;
			optionMarques = $('optionMarques').value.replace("&","%26");
			optionMarques = optionMarques.replace("\"","%22");
		}
		if (action=='filtreRayon' && e.rel!='Toutes') {this.filtreRayonId = e.rel; this.numPage=1;}
		if (e.rel && action =='pager') this.numPage = e.rel;
		if (e.rel && action =='navLeftSelection') selectionId = e.rel;
		if (e.rel && action =='filtreDurable') {
			if(this.devDurableValue==0) this.devDurableValue=1; else this.devDurableValue=0;
		}
		if (action=='filtreRayon') optionMarques = 'Toutes';
		if (action=='filtreMarques') this.numPage=1;
		var url = '/magasin/componentMagasin/produitListContent.jsp';
    var listeParameters = 'actionListProduit='+action+'&optionPrix='+optionPrix+'&optionMarques='+optionMarques+'&numPage='+this.numPage+'&devDurable='+this.devDurableValue+'&filtreRayonId='+this.filtreRayonId+'&selectionId='+selectionId+'&ipListeExpress='+ipListeExpress+'&ipListeExpressIdx='+ipListeExpressIdx;
    var target = 'contentMid';
    var myAjax = new Ajax.Request(url, {
			onComplete:this.callBack.bindAsEventListener(this), parameters: listeParameters});

		if (action=='navLeftSelection')
		{
			$$('#navSubLeft a').each(function(item) {
				item.removeClassName('PI_on');
			});
			e.addClassName('PI_on');
		}
	},

	callBack:function(e){
	
		// mise a jour du contenu de la liste
		$('contentMid').update(e.responseText);

		// drag n drop
		PI_ContentScroll();
		$$('div.PI_boxProduct').each(function(e){
			if(e.id) this["d"+e.id] = new SubsDraggable(e.id, {dragelement:PI_getDragElement});
		});
		$$('div.PI_boxProductList').each(function(e){
			if(e.id){
				this["d"+e.id] = new SubsDraggable(e.id, {dragelement:PI_getDragElement});
			}
		});
		$$('div.PI_boxProductDetail').each(function(e){
			if(e.id) this["d"+e.id] = new SubsDraggable(e.id, {dragelement:PI_getDragElement});
		});
		Event.observe(document, "mousemove", PI_eventMouseMove);	

		// rappel des observations pour les filtres
		this.initObserve();

		// mise a jour du checkbox developpement durable
		if (this.devDurableValue==1)
		{
			PI_checkbox(this.devDurable);
		}
	},
	
  	
	callBackNavLeft:function(e){
		// mise a jour du contenu du menu gauche selection
		$('navSubLeft').update(e.responseText);

		// rappel des observations du menu gauche selection
		this.initObserveNavLeft();
	}
}
