/*********************************/
/*********** Constantes **********/
/*********************************/
var noteInfrastructure;
var noteSituation;
var noteLogement;
var noteSportLoisir;
var noteRestauration;
var noteAnimation;
var noteQualitePrix;
			
var ATTENTE_ID="attente";
var WAITING_PANEL_ID="waitingPannel";
var DYNAMIC_PANEL_ID="dynamicList";
var FIN_DE_LISTE_ID="finDeListe";
var SNF_WAITER_ID="snfWaiterPanel";
var PAGE_NUMBERS_PANEL_ID="spanPageNumbers";
var UNSELECTED_CSS="unselectedPageIndex";
var SELECTED_CSS="selectedPageIndex";
var ALPHA_TIME=2000;
var SNF_DELAY=100;
var WAITER_PANEL_ON=false;
var min_zIndex=0;
var max_zIndex=100;
var MARGIN_PATTERN=/^\s*([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s*$/;
var array=new Array();
// Fonction utilitaire pour recuperer l'objet style d'un element
function snf_getStyle(id,property){
	if(document.getElementById&&document.getElementById(id)){
		var elem=document.getElementById(id);
		var cssStyleDeclarationObject;
		if(elem.currentStyle){
			if(property==undefined) return elem.currentStyle;
			return elem.currentStyle[property];
		}else if(document.defaultView.getComputedStyle(elem,"")){
			if(property==undefined) return document.defaultView.getComputedStyle(elem,"");
			return document.defaultView.getComputedStyle(elem,"").getPropertyValue(property);
		}
	}
	return void(0);
}
function snf_getWidth(id){ try{ return parseInt(snf_getStyle(id,"width")); }catch(e){ return 0; } }
function snf_getHeight(id){ try{ return parseInt(snf_getStyle(id,"height")); }catch(e){ return 0; } }
function snf_getLeft(id){ try{ return parseInt(snf_getStyle(id,"left")); }catch(e){ return 0; } }
function snf_getPaddingLeft(id){ try{ return parseInt(snf_getStyle(id,"paddingLeft")); }catch(e){ return 0; } }
function snf_getHTML(id){ if(document.getElementById(id)) return document.getElementById(id).innerHTML; return void(0); }
function snf_show(id){ if(document.getElementById(id)) document.getElementById(id).style.visibility="visible"; }
function snf_hide(id){ if(document.getElementById(id)) document.getElementById(id).style.visibility="hidden"; }

function snf_setCursor(id,cur){ if(document.getElementById(id)) document.getElementById(id).style.cursor=cur; }
function snf_setFront(id){ if(document.getElementById(id)) document.getElementById(id).style.zIndex=++max_zIndex; }
function snf_setBehind(id){ if(document.getElementById(id)) document.getElementById(id).style.zIndex=--min_zIndex; }
function snf_setTop(id,n){ if(document.getElementById(id)&&!isNaN(n)) document.getElementById(id).style.top=n+"px"; }
function snf_setLeft(id,n){ if(document.getElementById(id)&&!isNaN(n)) document.getElementById(id).style.left=n+"px"; }
function snf_setClassName(id,css){ if(document.getElementById(id)) document.getElementById(id).className=css; }
function snf_setHTML(id,html){ if(document.getElementById(id)) document.getElementById(id).innerHTML=html; }

var indexAffichage=0;// index du premier resultat affiche (selon la page sur laquelle on se trouve)
var nbAffichage=10;// nombre maximal de resultats affiches
var iAff=0;// index du resultat dans les resultats visibles

function snf_borneByPercent(percent,way,smiley){
	var s="";
	var start="<img src=\"/imgs/smiley_";
	var middle=".gif\" style=\"margin:0 40px 0 ";
	var middleEnd=".gif\" />";
	var end="px\" />";
	array=new Array(
		start+"5"+middle+"78"+end,
		start+"4"+middle+"78"+end + start+"4"+middleEnd,
		start+"3"+middle+"78"+end + start+"3"+middle+"0"+end + start+"3"+middleEnd,
		start+"3"+middle+"69"+end + start+"3"+middle+"0"+end + start+"3"+middleEnd,
		start+"2"+middle+"69"+end + start+"2"+middle+"2"+end + start+"2"+middle+"0"+end + start+"2"+middleEnd,
		start+"1"+middle+"69"+end + start+"1"+middle+"1"+end + start+"1"+middle+"0"+end + start+"1"+middle+"0"+end + start+"1"+middleEnd
		);

	s+=snf_afficher(percent,0,3,"Non noté",smiley,"");
	s+=snf_afficher(percent,3,7,"0",smiley,array[0]);
	s+=snf_afficher(percent,7,11,"1",smiley,array[0]);
	s+=snf_afficher(percent,11,16,"2",smiley,array[0]);
	
	s+=snf_afficher(percent,16,21,"3",smiley,array[1]);
	s+=snf_afficher(percent,21,26,"4",smiley,array[1]);
	s+=snf_afficher(percent,26,31,"5",smiley,array[1]);
	s+=snf_afficher(percent,31,35,"6",smiley,array[1]);
	s+=snf_afficher(percent,35,40,"7",smiley,array[1]);
	
	s+=snf_afficher(percent,40,45,"8",smiley,array[2]);
	s+=snf_afficher(percent,45,49,"9",smiley,array[2]);
	s+=snf_afficher(percent,49,55,"10",smiley,array[3]);
	s+=snf_afficher(percent,55,59,"11",smiley,array[3]);
	s+=snf_afficher(percent,59,64,"12",smiley,array[3]);
	
	s+=snf_afficher(percent,64,69,"13",smiley,array[4]);
	s+=snf_afficher(percent,69,74,"14",smiley,array[4]);
	s+=snf_afficher(percent,74,79,"15",smiley,array[4]);
	s+=snf_afficher(percent,79,84,"16",smiley,array[4]);
	s+=snf_afficher(percent,84,89,"17",smiley,array[4]);
	
	s+=snf_afficher(percent,89,94,"18",smiley,array[5]);
	s+=snf_afficher(percent,94,98,"19",smiley,array[5]);
	s+=snf_afficher(percent,98,101,"20",smiley,array[5]);
	
	return s;
}
function snf_noteByPercent(percent){
	s="-1";
	if(percent>=3 && percent<7) s=0;
	if(percent>=7 && percent<11) s=1;
	if(percent>=11 && percent<16) s=2;
	if(percent>=16 && percent<21) s=3;
	if(percent>=21 && percent<26) s=4;
	if(percent>=26 && percent<31) s=5;
	if(percent>=31 && percent<35) s=6;
	if(percent>=35 && percent<40) s=7;
	if(percent>=40 && percent<45) s=8;
	if(percent>=45 && percent<49) s=9;
	if(percent>=49 && percent<55) s=10;
	if(percent>=55 && percent<59) s=11;
	if(percent>=59 && percent<64) s=12;
	if(percent>=64 && percent<69) s=13;
	if(percent>=69 && percent<74) s=14;
	if(percent>=74 && percent<79) s=15;
	if(percent>=79 && percent<84) s=16;
	if(percent>=84 && percent<89) s=17;
	if(percent>=89 && percent<94) s=18;
	if(percent>=94 && percent<98) s=19;
	if(percent>=98 && percent<101) s=20;
	return s;
}
function snf_afficher(percent,min,max,strNote,smiley,strSmiley){
	var s="";
	if(percent>=min && percent<max){
		s=strNote;
		if(smiley) s+=strSmiley;
	}
	return s;
}
function snf_firstBorne(arr){
	for(var i in arr){
		return i;
	}
	return '';
}
function snf_lastBorne(arr){
	var r='';
	for(var i in arr){
		r=i;
	}
	return r;
}
function Barrette3(id,txt,way,btnWidth,btnHeight,margin,debug){
	if(!mouseEventManager) return void(0);
	this.ml=new MouseListener();
  this.ml.filterId=id;
  this.ml.lblId=id+"Lbl";
  this.ml.lblLeftId=id+"LblLeft";
  this.ml.lblRightId=id+"LblRight";
  this.ml.btnId=id+"Btn";
  this.ml.btn2Id=id+"Btn2";
  this.ml.bkgOffId=id+"BkgOff";
  if(!margin) this.ml.marginT=this.ml.marginR=this.ml.marginB=this.ml.marginL=2;
  else{
    this.ml.marginT=parseInt(margin.replace(MARGIN_PATTERN,"$1"));
    this.ml.marginR=parseInt(margin.replace(MARGIN_PATTERN,"$2"));
    this.ml.marginB=parseInt(margin.replace(MARGIN_PATTERN,"$3"));
    this.ml.marginL=parseInt(margin.replace(MARGIN_PATTERN,"$4"));
  }
	this.ml.lblTxt=txt;
  this.ml.filterWay=way;
  this.ml.btnOffsetX=0;
  this.ml.mouseIsDown=false;
  this.ml.isSecond=false;
  this.ml.spacing=5;
  this.ml.lblTop=this.ml.marginT;
  this.ml.lblHeight=16;
  this.ml.topBkgOff=this.ml.lblTop+this.ml.lblHeight+this.ml.spacing;
  this.ml.topBtn=this.ml.topBkgOff;
  this.ml.leftBkgOff=this.ml.marginL;
  this.ml.leftBtn=this.ml.leftBkgOff;
  this.ml.btnWidth=btnWidth;
  this.ml.btnHeight=btnHeight;
  this.ml.bkgHeight=this.ml.btnHeight-2;
  this.ml.width=this.ml.marginL+this.ml.marginR;
  this.ml.height=this.ml.marginT+this.ml.lblHeight+this.ml.spacing+this.ml.btnHeight+this.ml.marginB;
  this.ml.xMax=this.ml.btnWidth;
  this.ml.xMin=0;

	this.ml.writeHTML=function(){
		var html="";
		html+='<div id="'+this.lblLeftId+'" class="css_filterBarrette3_lblLeft" style="width:344px;"></div>\n';
		html+='<div id="'+this.filterId+'" class="css_filterBarrette3" style="width:353px;height:36px;">\n';
		html+='	<div id="'+this.lblId+'" class="css_filterBarrette3_lbl" style="float:left;display:block;height:36px;width:90px;padding:10px 0 0 0;">'+this.lblTxt+'</div>\n';
		html+='	<div id="'+this.bkgOffId+'" class="css_filterBarrette3_bkgOff" style="float:left;top:'+this.topBkgOff+'px;width:261px;height:'+(this.btnHeight)+'px;">\n';
		html+='		<div id="'+this.btnId+'" class="css_filterBarrette3_btn"';
		html+=' style="float:left;margin-left:0px;top:'+(this.topBtn-4)+'px;width:'+this.btnWidth+'px;height:'+this.btnHeight+'px;"></div>\n';
		html+='	</div>\n';
		html+='</div>\n';
		document.writeln(html);
	}

	this.ml.onFilterChange=function(posBtn1,posBtn2){ return void(0); }
	this.setOnFilterChange=function(filterChangeEventMethod){
		this.ml.onFilterChange=filterChangeEventMethod;
		if(this.ml.filterWay=="min"&&this.ml.onFilterChange){ try{ this.ml.onFilterChange(0); }catch(e){} }
	}
	this.ml.onFilterRefresh=function(){ return void(0); }
	this.setOnFilterRefresh=function(filterRefreshEventMethod){ this.ml.onFilterRefresh=filterRefreshEventMethod; }

	this.ml.updateBtn=function(id,x){
		//la reférence est id=this.filterId

		//calcule de la marge (by Seb)
		var width=snf_getWidth(this.lblId); //taille de l'objet sur la gauche
		width=width+parseInt(document.getElementById(this.lblId).style.paddingLeft);//marge de l'objet sur la gauche
		width=width+(snf_getWidth(id)/2); //taille de l'objet image du cuseur divisé par 2

		var widthTotal=snf_getWidth(this.bkgOffId)-snf_getWidth(id);
		var minX=width;
		var maxX=widthTotal+width;
		var amplitude=maxX-minX;
		x=Math.max(Math.min(x,maxX),minX);
		x=(x-width);
		var pct=parseInt(x*100/amplitude);
		if(this.onFilterChange){ try{ this.onFilterChange(pct); }catch(e){} }

		document.getElementById(id).style.marginLeft=x+"px";
	}
	this.ml.mouseRelease=function(id){
		this.mouseIsDown=false;
		if(this.onFilterRefresh){ try{ this.onFilterRefresh(); }catch(e){} }
	}
	this.ml.mouseDown=function(e){
		if(e.mouseButton==LEFT_BUTTON&&e.srcElement&&(e.srcElement.id==this.btnId||e.srcElement.id==this.btn2Id||e.srcElement.id==this.bkgOffId)){
		  this.mouseIsDown=true;
		  this.mouseMove(e);
		}
		return false;
	}
	this.ml.mouseUp=function(e){ if(this.mouseIsDown&&e.mouseButton==LEFT_BUTTON) this.mouseRelease(this.filterId); }
	this.ml.mouseOut=function(e){ if(this.mouseIsDown&&!e.toElement) this.mouseRelease(this.filterId); }
	this.ml.mouseMove=function(e){
		var tmpX;
		if(window.scrollX===undefined) tmpX=e.clientX-findObjectLeft(this.filterId)-this.btnOffsetX;
		else tmpX=window.scrollX+e.clientX-findObjectLeft(this.filterId)-this.btnOffsetX;
		if(this.mouseIsDown&&e.srcElement) this.updateBtn(this.isSecond? this.btn2Id: this.btnId,tmpX);
	}
	mouseEventManager.addEventListener(this.ml);
  this.ml.writeHTML();
}