
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}





function getURL(str_url){
	window.location = str_url;
}


function submitForm(id_form) {
	document.forms[id_form].submit();
}

function changerImage(image,suffixe,path,extension){
	document.getElementById(image).src=path+image+suffixe+extension
}


function JSReplace(valeur, carToChange, changedCar){
	while(valeur.indexOf(carToChange) >= 0){
		valeur = valeur.replace(carToChange, changedCar);
	};
	
	return valeur;
};

function replaceCar(id,valeur, a_cartoChange, car){
	for (a=0;a<a_cartoChange.length; a++){
		valeur=valeur.replace(a_cartoChange[a],car)
	}
	document.getElementById(id).value=valeur
}


function setHTMLFormat(valeur){

	
	valeur = urlentitiesJS(valeur)
	
	return valeur;
}




function getElem( str_id ){
	var obj = null;

	if (isObject(str_id)) return str_id;

	obj = document.getElementById(str_id);


	return obj;
}


function isObject( obj ){
	return (obj!==null && typeof(obj)=="object");
}

function intVal( value ){
	var v = parseInt(value, 10);
	if (isNaN(v))
		v = 0;
	return v;
}

function varDefault( value, defaultValue ){
	return (typeof(value)=="undefined" || value===null || value==="") ? defaultValue : value;
}

String.prototype.toAnsi = function ( replaceWith ){
	replaceWith = varDefault(replaceWith, "").substr(0,1);
	var str = "", ch;
	for (var i=0; i<this.length; i++) {
		ch = (this.charCodeAt(i)<256) ? this.charAt(i) : replaceWith;
		str = str.concat(ch);
	}
	return str;
}

String.prototype.trim = function(charset, caseInsensitive){
	charset = (charset==null) ? "[\\s]+" : "["+charset+"\\s]+";
	var re = new RegExp("(^"+charset+")|("+charset+"$)", "g"+((caseInsensitive) ? "i" : ""));
	return this.replace(re, "");
}


Number.prototype.roundDecimal = function ( nbDecimal ){
	var multiplicateur = Math.pow(10,nbDecimal);
	var newNumber = (Math.round(this * multiplicateur))/multiplicateur;

	return newNumber;
}

Number.prototype.toCurrency = function (){
	var number = this.roundDecimal(2)+"";
	
	var str_decimal = ""
	if (number.indexOf(".") != -1)
		str_decimal = number.substr(number.indexOf(".")+1);
	while (str_decimal.length < 2){
		str_decimal += "0";	
	}
	
	if (number.indexOf(".") != -1)
		number = number.substr(0, number.indexOf("."));
	number = number+"."+str_decimal;

	return number;
}


EventDispatcher = Object();

//Dans tout bon navigateur comme firefox o utilise le addEvenListener et removeEventListener
if(document.addEventListener){
	EventDispatcher.addListener = function(element, type_event, func, captures){
		element.addEventListener(type_event, func, captures);
	}
	
	EventDispatcher.removeListener = function(element, type_event, func, captures){
		element.removeEventListener(type_event, func, captures);
	}
// Dans IE 5 et + on utlise attachEvent et detachEvent que l'on y ajoute certain hack 
// pour qu'il ce comporte comme addEventListener et removeEventListener
}else if(document.attachEvent){
	EventDispatcher.addListener = function(element, type_event, func){		
		//Vérifie si la fonction événementielle existe déjà, doublons non permis
		if (EventDispatcher._find(element,type_event,func) != -1) return;
		
		//On crée une fonction qui sera intégré à l'élément tel pour IE
		var wrappedHandler = function (e){
			if(!e) e = window.event;
			//Crée un événement synthétique
			
			var event =  {
				_event : e,  //Objet événement de IR
				type : e.type,  // Type d'événement
				target : e.srcElement,  //Où que l'événement ce produit
				currentTarget : element,  //Oû qu'il est pris en fonction
				relatedTarget : e.fromElement ? e.fromElement : e.toElement, 
				eventPhase : (e.srcElement == element) ? 2 : 3,
				
				//Coordonnées de la souris
				clientX : e.clientX, 
				clientY : e.clientY,
				screenX : e.screenX,
				screenY : e.screenY,
				
				//État des touche du clavier
				altKey : e.altKey,
				ctrlKey : e.ctrlKey,
				shiftKey : e.shiftKey,
				charCode : e.charCode,
				
				//Function gestionnaire d'événement
				stopPropagation : function (){this._event.cancelBubble = true;},
				preventDefault : function () {this._event.returnValue = false;}
			}	
			
			//Invoque la fonction de l'événement comme une méthode en soit de l'élément en passant l'événement synthétique
			//Utilise la fonction call sinon utilise un hack
			if(Function.prototype.call) {
				func.call(element, event);
			}else {
				//Sans fonction call on en crée une fausse
				element._currentHandler = func;
				element._currentHandler(event);
				element._currentHandler = null;
			}
		}
		
		//Enregistre la fonction dans gestionnaire d'événement attachEvent
		element.attachEvent("on"+type_event, wrappedHandler);
	
		//Concerve les infos dans un objet
		var h = {
			element : element,
			eventType : type_event,
			handler : func,
			wrappedHandler : wrappedHandler
		}
	
		//Détermine a quoi fait parti la fonction du document
		var d = element.document || element;
		//Extrait la fenetre associé au document
		var w = d.parentWindow;
		
		//Associer le Handler à la fenetre pour l'enlever sur le unload de la fenetre
		var id = EventDispatcher._uid();  //Génère nom unique
		if (!w._allHandlers) w._allHandlers = {};  //Crée l'objet au besoin
		w._allHandlers[id] = h;  //Store l'info dans l'objet
	
		//Associe l'id de l'Handler avec l'élément lui meme
		if (!element._handlers) element._handlers = [];
		element._handlers.push(id);
		
		w.attachEvent("onunload", EventDispatcher._removeAllHandlers);
	}
	
	EventDispatcher.removeListener = function(element, type_event, func){
		//Cherche l'Handler dans la liste d'handler de l'élément
		var i = EventDispatcher._find(element, type_event, func);
		if (i == -1) return;
		
		//Get la fenetre de l'élément
		var d = element.document || element;
		var w = d.parentWindow;
		
		//Extrait l'id de l'Handler
		var handlerId = element._handlers[i];
		//Extrait les info de l'Handler
		var h = w._allHandlers[handlerId];
		//Détach l'événement de l'élément
		element.detachEvent("on"+type_event, h.wrappedHandler);
		//enleve l'handler de la liste d'handler de l'élément
		element._handlers.splice[i,1];
		//enleve l'handler de la liste d'handler de la fenetre
		delete w._allHandlers[handlerId];
	}
	
	//Fonction utilitaires pour les hack de IE
	EventDispatcher._find = function(element, event_type, func) {
		var handlers = element._handlers;
		
		if(!handlers) return -1;
		
		var d = element.document || element;
		var w = d.parentWindow;
		
		//Loop à travers les handler associé à l'élément pour celui ayant le bon type et function
		//Loop à l'envers car plus de chance que ca soit les plus récents 
		for(var i = handlers.length-1; i>=0; i--){
			var handlerId = handlers[i];
			var h = w._allHandlers[handlerId];
			
			if (h){
				if(h.eventType == event_type && h.handler == func)
					return i;
			}
		}
		return -1  //No match found
	}
	
	EventDispatcher._removeAllHandlers = function(){
		//Fonction callé sur le unload de la fenetre
		var w = this;
		
		for(id in w._allHandlers){
			var h = w._allHandlers[id];
			if (h.element){
				h.element.detachEvent("on"+h.eventType, h.wrappedHandler);
				delete w._allHandlers[id];
			}
		}
	}
	
	EventDispatcher._counter = 0;
	EventDispatcher._uid = function(){
		return "h"+EventDispatcher._counter++;
	}
}else{
	throw "Sports-inter : Le site nécessite un navigateur plus récent."
	alert("Le site nécessite un navigateur plus récent.")
}



function urlentitiesJS(texte) {
	//texte = texte.replace(/&/g,'&amp;'); // 38 26
	texte = texte.replace(/\"/g,''); // 
	texte = texte.replace(/\*/g,''); // 
	texte = texte.replace(/\./g,''); // 
	texte = texte.replace(/\,/g,''); // 
	texte = texte.replace(/%/g,''); //  
	texte = texte.replace(/\(/g,''); //  
	texte = texte.replace(/\)/g,''); //
	texte = texte.replace(/:/g,''); //
	
	
	texte = texte.replace(/\'/g,''); // 39 27
	texte = texte.replace(/</g,''); // 60 3C
	texte = texte.replace(/>/g,''); // 62 3E
	texte = texte.replace(/\^/g,''); // 94 5E
	texte = texte.replace(/‘/g,''); // 145 91
	texte = texte.replace(/’/g,''); // 146 92
	texte = texte.replace(/“/g,''); // 147 93
	texte = texte.replace(/”/g,''); // 148 94
	texte = texte.replace(/•/g,''); // 149 95
	//texte = texte.replace(/–/g,'&ndash;'); // 150 96
	//texte = texte.replace(/—/g,'&mdash;'); // 151 97
	texte = texte.replace(/˜/g,''); // 152 98
	texte = texte.replace(/™/g,''); // 153 99
	texte = texte.replace(/š/g,'s'); // 154 9A
	texte = texte.replace(/›/g,''); // 155 9B
	texte = texte.replace(/œ/g,'oe;'); // 156 9C
	texte = texte.replace(//g,''); // 157 9D
	texte = texte.replace(/ž/g,'z'); // 158 9E
	texte = texte.replace(/Ÿ/g,'Y'); // 159 9F
	texte = texte.replace(/ /g,'-'); // 160 A0
	texte = texte.replace(/¡/g,''); // 161 A1
	texte = texte.replace(/¢/g,''); // 162 A2
	texte = texte.replace(/£/g,''); // 163 A3
	//texte = texte.replace(/ /g,'&curren;'); // 164 A4
	texte = texte.replace(/¥/g,''); // 165 A5
	texte = texte.replace(/¦/g,''); // 166 A6
	texte = texte.replace(/§/g,''); // 167 A7
	texte = texte.replace(/¨/g,''); // 168 A8
	texte = texte.replace(/©/g,''); // 169 A9
	texte = texte.replace(/ª/g,''); // 170 AA
	texte = texte.replace(/«/g,''); // 171 AB
	texte = texte.replace(/¬/g,''); // 172 AC
	texte = texte.replace(/­/g,''); // 173 AD
	texte = texte.replace(/®/g,''); // 174 AE
	texte = texte.replace(/¯/g,''); // 175 AF
	texte = texte.replace(/°/g,''); // 176 B0
	texte = texte.replace(/±/g,''); // 177 B1
	texte = texte.replace(/²/g,''); // 178 B2
	texte = texte.replace(/³/g,''); // 179 B3
	texte = texte.replace(/´/g,''); // 180 B4
	texte = texte.replace(/µ/g,''); // 181 B5
	texte = texte.replace(/¶/g,''); // 182 B6
	texte = texte.replace(/·/g,''); // 183 B7
	texte = texte.replace(/¸/g,''); // 184 B8
	texte = texte.replace(/¹/g,''); // 185 B9
	texte = texte.replace(/º/g,''); // 186 BA
	texte = texte.replace(/»/g,''); // 187 BB
	texte = texte.replace(/¼/g,''); // 188 BC
	texte = texte.replace(/½/g,''); // 189 BD
	texte = texte.replace(/¾/g,''); // 190 BE
	texte = texte.replace(/¿/g,''); // 191 BF
	texte = texte.replace(/À/g,'A'); // 192 C0
	texte = texte.replace(/Á/g,'A'); // 193 C1
	texte = texte.replace(/Â/g,'A'); // 194 C2
	texte = texte.replace(/Ã/g,'A'); // 195 C3
	texte = texte.replace(/Ä/g,'A'); // 196 C4
	texte = texte.replace(/Å/g,'A'); // 197 C5
	texte = texte.replace(/Æ/g,'AE'); // 198 C6
	texte = texte.replace(/Ç/g,'C'); // 199 C7
	texte = texte.replace(/È/g,'E'); // 200 C8
	texte = texte.replace(/É/g,'E'); // 201 C9
	texte = texte.replace(/Ê/g,'E'); // 202 CA
	texte = texte.replace(/Ë/g,'E'); // 203 CB
	texte = texte.replace(/Ì/g,'I'); // 204 CC
	texte = texte.replace(/Í/g,'I'); // 205 CD
	texte = texte.replace(/Î/g,'I'); // 206 CE
	texte = texte.replace(/Ï/g,'I'); // 207 CF
	texte = texte.replace(/Ð/g,''); // 208 D0
	texte = texte.replace(/Ñ/g,'N'); // 209 D1
	texte = texte.replace(/Ò/g,'O'); // 210 D2
	texte = texte.replace(/Ó/g,'O'); // 211 D3
	texte = texte.replace(/Ô/g,'O'); // 212 D4
	texte = texte.replace(/Õ/g,'O'); // 213 D5
	texte = texte.replace(/Ö/g,'O'); // 214 D6
	texte = texte.replace(/×/g,''); // 215 D7
	texte = texte.replace(/Ø/g,''); // 216 D8
	texte = texte.replace(/Ù/g,'U'); // 217 D9
	texte = texte.replace(/Ú/g,'U'); // 218 DA
	texte = texte.replace(/Û/g,'U'); // 219 DB
	texte = texte.replace(/Ü/g,'U'); // 220 DC
	texte = texte.replace(/Ý/g,'Y'); // 221 DD
	texte = texte.replace(/Þ/g,''); // 222 DE
	texte = texte.replace(/ß/g,''); // 223 DF
	texte = texte.replace(/à/g,'a'); // 224 E0
	texte = texte.replace(/á/g,'a'); // 225 E1
	texte = texte.replace(/â/g,'a'); // 226 E2
	texte = texte.replace(/ã/g,'a'); // 227 E3
	texte = texte.replace(/ä/g,'a'); // 228 E4
	texte = texte.replace(/å/g,'a'); // 229 E5
	texte = texte.replace(/æ/g,'ae'); // 230 E6
	texte = texte.replace(/ç/g,'c'); // 231 E7
	texte = texte.replace(/è/g,'e'); // 232 E8
	texte = texte.replace(/é/g,'e'); // 233 E9
	texte = texte.replace(/ê/g,'e'); // 234 EA
	texte = texte.replace(/ë/g,'e'); // 235 EB
	texte = texte.replace(/ì/g,'i'); // 236 EC
	texte = texte.replace(/í/g,'i'); // 237 ED
	texte = texte.replace(/î/g,'i'); // 238 EE
	texte = texte.replace(/ï/g,'i'); // 239 EF
	texte = texte.replace(/ð/g,''); // 240 F0
	texte = texte.replace(/ñ/g,'n'); // 241 F1
	texte = texte.replace(/ò/g,'o'); // 242 F2
	texte = texte.replace(/ó/g,'o'); // 243 F3
	texte = texte.replace(/ô/g,'o'); // 244 F4
	texte = texte.replace(/õ/g,'o'); // 245 F5
	texte = texte.replace(/ö/g,'o'); // 246 F6
	texte = texte.replace(/÷/g,''); // 247 F7
	texte = texte.replace(/ø/g,''); // 248 F8
	texte = texte.replace(/ù/g,'u'); // 249 F9
	texte = texte.replace(/ú/g,'u'); // 250 FA
	texte = texte.replace(/û/g,'u'); // 251 FB
	texte = texte.replace(/ü/g,'u'); // 252 FC
	texte = texte.replace(/ý/g,'y'); // 253 FD
	texte = texte.replace(/þ/g,''); // 254 FE
	texte = texte.replace(/ÿ/g,'y'); // 255 FF
	

	return texte;
}

