
(function($){$.fn.pixDisplay=function(options){var opts=$.extend({},$.fn.pixDisplay.defaults,options);return this.each(function(){var node=$(this);var o=$.metadata?$.extend({},opts,node.metadata()):opts;for(i in o){node.find(i).each(function(){$(this).bind('click',o[i],function(event){node.find('a.on').removeClass('on');$(this).addClass('on');if(event.data.del)
node.removeClass(event.data.del);if(event.data.add)
node.addClass(event.data.add);return false;});});}});};$.fn.pixDisplay.defaults={};$.fn.pixDivFilter=function(options){var opts=$.extend({},$.fn.pixDivFilter.defaults,options);return this.each(function(){var node=$(this);var o=$.metadata?$.extend({},opts,node.metadata()):opts;var container=null;var filtres=new Object();var cookie;var id=document.URL.substr(document.URL.lastIndexOf("c")+1);id=id.substr(0,id.length-5);o.pagination=node.find('> '+o.pagination);if(!o.table)
return false;if(o.table.length>o.nbr)
node.find('.'+o.show).removeClass(o.show);for(i in o.table){for(j in o.table[i]){if(o.table[i][j].toLowerCase){o.table[i][j]=o.table[i][j].toLowerCase();}}
o.table[i].node=node.find('div > div#prod-'+o.table[i].id);if(!container)
container=o.table[i].node.parent();}
node.find(o.tri+' select').each(function(){$(this).change(function(){sort(this.value);draw();});});node.find(o.filtres+' select').each(function(){$(this).change(function(){filtres[this.name]=this.value.toLowerCase();filtrer();});});node.find(o.reset).click(function(){node.find(o.filtres+' input[type=checkbox]').each(function(){this.checked=false;});node.find(o.filtres+' select').each(function(){var all=0;for(var i=0;i<this.options.length;i++){if(this.options[i].value==-1){all=i;break;}}
this.selectedIndex=all;});node.find(o.filtres+' input[type=radio]').each(function(){if(this.value==-1)
this.checked=true;else
this.checked=false;});var slider=node.find(o.filtres+' div.inslider');var minS=slider.slider('option','min');var maxS=slider.slider('option','max');slider.slider('values',0,minS);slider.slider('values',1,maxS);slider=node.find(o.filtres+' div.slider');slider.find('.min').text(minS);slider.find('.max').text(maxS);filtres=new Object();filtrer();return false;});node.find(o.filtres+' div.slider').each(function(){var name=$(this).find('input').attr('name');var max=0;var min=0;for(i in o.table){if(o.table[i][name]){if(o.table[i][name]>max)
max=o.table[i][name];if((o.table[i][name]<min)||i==0)
min=o.table[i][name];}}
$(this).find('.inimin').text(min);$(this).find('.inimax').text(max);var nmin=$(this).find('.min').text(min);var nmax=$(this).find('.max').text(max);$(this).find('div.inslider').slider({range:true,min:min,max:max,values:[min,max],slide:function(event,ui){nmin.text(ui.values[0]);nmax.text(ui.values[1]);},stop:function(event,ui){if(!filtres[name])
filtres[name]=new Object();filtres[name].min=ui.values[0];filtres[name].max=ui.values[1];filtrer();}});});node.find(o.filtres+' input[type=checkbox]').each(function(){$(this).change(function(){if(this.checked)
filtres[this.name]=this.value;else
filtres[this.name]=-1;filtrer();});});node.find(o.filtres+' input[type=radio]').each(function(){$(this).change(function(){filtres[this.name]=this.value;filtrer();});});var filtrer=function(){var nbResult=0;if(!cookie)
cookie=new Array();var obj={id:id,data:filtres};for(var i=0;i<cookie.length;i++){if(cookie[i].id==id){cookie[i]=obj;obj=null;}}
if(obj)
cookie.push(obj);if(cookie.length==11)
cookie.shift();setCookie('jproduit-fast',JSON.stringify(cookie));for(i in o.table){o.table[i].quarantine=false;for(j in filtres){if(filtres[j]==-1)
continue;else if(filtres[j].min&&filtres[j].max){if((o.table[i][j])&&(o.table[i][j]<=filtres[j].max)&&(o.table[i][j]>=filtres[j].min)){continue;}
else{o.table[i].quarantine=true;}}
else if((o.table[i][j])&&(o.table[i][j]==filtres[j])){continue;}
else{o.table[i].quarantine=true;}}
if(o.table[i].quarantine==false){nbResult++;}}
node.find(o.nbrResult).text(nbResult);o.page=1;makePages();draw();};var sort=function(field){if(field.charAt(0)=='-'){field=field.substr(1);if(typeof(o.table[0][field])=='number'){o.table.sort(function(a,b){return(b[field]-a[field]);});}
else{o.table.sort(function(a,b){a=a[field];b=b[field];var c=a.length;if(b.length>c)
c=b.length;for(var i=0;i<c;i++){if(b.charAt(i)>a.charAt(i))
return 1;else if(b.charAt(i)<a.charAt(i))
return-1;}
return 0;});}}
else{if(typeof(o.table[0][field])=='number'){o.table.sort(function(a,b){return(a[field]-b[field]);});}
else{o.table.sort(function(a,b){a=a[field];b=b[field];var c=a.length;if(b.length>c)
c=b.length;for(var i=0;i<c;i++){if(a.charAt(i)>b.charAt(i))
return 1;else if(a.charAt(i)<b.charAt(i))
return-1;}
return 0;});}}};var removePageFocus=function(){var html=$('<li><a href="#">'+o.page+'</a></li>').click(onPageClick);o.pagination.find('li:eq('+(o.page)+')').replaceWith(html);};var addPageFocus=function(){var html=$('<li><strong>'+o.page+'</strong></li>');o.pagination.find('li:eq('+o.page+')').replaceWith(html);};var onPageClick=function(){removePageFocus();o.page=parseInt($(this).text());draw();addPageFocus();$('html, body').animate({scrollTop:0,scrollLeft:0},"normal");return false;};var makePages=function(){if(!o.pagination)
return false;o.pagination.empty();var nbr=0;for(i in o.table)
if(!o.table[i].quarantine)
nbr++;nbr=Math.ceil(nbr/o.nbr);if(nbr>1){var ul=$('<ul></ul>').appendTo(o.pagination);$('<li class="precedent"><a href="#">&laquo; <span>Pr&eacute;c&egrave;dente</span></a></li>').appendTo(ul).find('a').click(function(){if(o.page>1){removePageFocus();o.page=o.page-1;draw();addPageFocus();}
return false;});$('<li><strong>1</strong></li>').appendTo(ul);for(i=2;i<=nbr;i++){$('<li><a href="#">'+i+'</a></li>').appendTo(ul).find('a').click(onPageClick);}
$('<li class="suivant"><a href="#"><span>Suivant</span> &raquo;</a></li>').appendTo(ul).find('a').click(function(){if(o.page<nbr){removePageFocus();o.page=o.page+1;draw();addPageFocus();}
return false;});}
if(o.page>nbr)
o.page=1;};var draw=function(){var count=0;for(i in o.table){if(!o.table[i].node)
break;if(o.table[i].quarantine){o.table[i].node.removeClass('bugIe6');continue;}
if(count>=(o.nbr*(o.page-1))&&count<(o.nbr*o.page))
o.table[i].node.appendTo(container).addClass('bugIe6');else
o.table[i].node.removeClass('bugIe6');count++;}};var setForm=function(){node.find(o.filtres+' select').each(function(){for(j in filtres){if(j==this.name){for(var i=0;i<this.options.length;i++){if(this.options[i].value==filtres[j])
this.selectedIndex=i;}}}});node.find(o.filtres+' input[type=checkbox]').each(function(){for(j in filtres){if(j==this.name){if(this.value==filtres[j])
this.checked=true;else
this.checked=false;}}});node.find(o.filtres+' input[type=radio]').each(function(){for(j in filtres){if(j==this.name){if(this.value==filtres[j])
this.checked=true;else
this.checked=false;}}});node.find(o.filtres+' div.slider').each(function(){var name=$(this).find('input').attr('name');for(j in filtres){if(j==name){$(this).find('div.inslider').slider('values',0,filtres[j].min);$(this).find('div.inslider').slider('values',1,filtres[j].max);$(this).find('.min').text(filtres[j].min);$(this).find('.max').text(filtres[j].max);}}});};var setCookie=function(nom,value){document.cookie=nom+"="+escape(value);};var getCookie=function(nom){if(document.cookie.length>0){var start=document.cookie.indexOf(nom+"=");if(start!=-1){start=start+nom.length+1;var end=document.cookie.indexOf(";",start);if(end==-1)
end=document.cookie.length;return unescape(document.cookie.substring(start,end));}}
return"";};sort(o.defaultSort);cookie=getCookie('jproduit-fast');if(cookie){cookie=JSON.parse(cookie);for(var i=0;i<cookie.length;i++){if(cookie[i].id==id){filtres=cookie[i].data;filtrer();}}
setForm();$('#ouvrirTri').hide();$('#fermerTri').show();}
else{$('#lesCriteres').hide();$('#fermerTri').hide();makePages();draw();}});};$.fn.pixDivFilter.defaults={page:1,nbr:20,tri:'ma_node_de_tri',filtres:'ma_node_de_filtres',show:'ma_classe_affichant',box:'le_debut_des_ID_de_box',pagination:'le_div_de_pagination',defaultSort:'le_tri_par_defaut',nbrResult:'la_node_text_de_mon_nombe_de_resultats',reset:'le_bouton_de_reset_des_filtres'};})(jQuery);
