// JavaScript Document

/*********************************/
/*** FONCTION D'INITIALISATION ***/
/*********************************/

function init_load(){
	if (navigator.appName == "Microsoft Internet Explorer" && window.attachEvent) {
			window.attachEvent("onload", Dinit);
	}else if(window.addEventListener){
		window.addEventListener("load", Dinit, false);
	}
}


/***************************/
/*** FONCTION ADDMYEVENT ***/
/***************************/

function addMyEvent(el,eventType,func,mode){
	if (navigator.appName == "Microsoft Internet Explorer" && el.attachEvent) {
		el.attachEvent("on"+eventType, func);
		//el.setAttribute("on"+eventType, func);
	}else if(el.addEventListener){
		el.addEventListener(eventType, func, (mode)?mode:false);
	}
}


/*************************************************/
/*** FONCTIONS LIEES AUX CHAINES DE CARACTERES ***/
/*************************************************/

function trim (chaine) {
 	return chaine.replace(/(^\s*)|(\s*$)/g, "");
}

function EffacerEspace(chaine){
	var tmp = "";;
	for(var i = 0; i < chaine.length; i++){
		tmp = tmp + chaine.charAt(i);
		if (chaine.charAt(i) == " "){
			tmp = tmp.replace(" ","");
		}
	}
	return tmp;
}

function check_email( adressemail){
	var char_vide=adressemail.indexOf(" ");
	var aroba  = adressemail.indexOf("@",1);
	var point = adressemail.indexOf(".",aroba +2);	//on a au moins une(<=>2) lettre entre le arobase et le point
	var fin_adressemail = adressemail.substring(point+1,adressemail.length+1);
	if ( (aroba  > -1) && (adressemail.length >2) && (point > 1) && (fin_adressemail.length>1) && (char_vide==-1) ){
		return(true);
	}
	else{
		return(false);
	}
}

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    return true;
}	

function IsNumeric(strString){
	var strValidChars = "0123456789.-";
	var strChar;
	var blnResult = true;
	
	if (strString.length == 0) return false;
	
	for (i = 0; i < strString.length && blnResult == true; i++){
		strChar = strString.charAt(i);
		if (strValidChars.indexOf(strChar) == -1){
			blnResult = false;
		}
	}
	return blnResult;
}
 

/**********************/
/*** FONCTION POPUP ***/
/**********************/

function popup(adr,name,width,height,is_scrollbar){
	var largeur=screen.availWidth;
	var hauteur=screen.availHeight;
	var demiL=((largeur-width)/2); 
	var demiH=((hauteur-height)/2); 
	name = window.open(adr,name,'scrollbars='+is_scrollbar+',screenX=0,screenY=0,status=0,location=0, menubar=0,toolbar=0,resizable=0,width='+width+',height='+height+',top='+demiH+',left='+demiL);
}


/********************************************/
/*** FONCTIONS LIEES A LA CREATION DE DIV ***/
/********************************************/

function createInput(idParent,IdInput,nameInput,typeInput, myvalue){
	// recherche du noeud parent
	var divParent = document.getElementById(idParent);
	
	// création des nouveaux noeuds
	var nouveauInput = document.createElement('input');
	
	// paramétrage des nouveaux noeuds
	nouveauInput.name = nameInput;
	nouveauInput.id = IdInput;
	nouveauInput.type = typeInput;
	
	// raccord des noeuds
	divParent.appendChild(nouveauInput);
	
	//On initialise la value
	document.getElementById(IdInput).value = myvalue;
}


/******************************************************/
/*** FONCTIONS LIEES AUX MANIPULATIONS DE CLASS CSS ***/
/******************************************************/

function hasClass(ele,cls) {
	return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}
function addClass(ele,cls) {
	if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}
function removeClass(ele,cls) {
	if (hasClass(ele,cls)) {
		var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
		ele.className=ele.className.replace(reg,' ');
	}
}

function change_classname(el){
	var classname = el.className;
	var is_on = (classname.substr(classname.length-3,3) == '_on' )? 1: 0;
	if(is_on){
		el.className=classname.substr(0,classname.length - 3);
	}else{
		el.className=classname+'_on';
	}	
}


/*******************************************************/
/*** FONCTIONS LIEES AUX MANIPULATIONS DE STYLES CSS ***/
/*******************************************************/

function getStyle(oElm, strCssRule){
	var strValue = "";
	if(document.defaultView && document.defaultView.getComputedStyle){
		strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
	}
	else if(oElm.currentStyle){
		strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
			return p1.toUpperCase();
		});
		strValue = oElm.currentStyle[strCssRule];
	}
	return strValue;
}

function getStyleValue(el, style){
	var res = getStyle(el,style);
	res = eval(res.substr(0,res.length-2));
	return res;
}


/*************************************************/
/*** FONCTION D'AFFICHAGE DES ANIMATIONS FLASH ***/
/*************************************************/

function show_anim(swf,width,height,str_flashvars,istransparent){
	
	var BaseSwf 			= "";
	var Flashvars_object 	= '';
	var Flashvars_embed  	= '';
	var Transparent_object 	= '';
	var Transparent_embed	= '';
	
	if(typeof(str_flashvars) != 'undefined'){
		if(str_flashvars!=""){
			Flashvars_object = '<param name="FlashVars" value="'+str_flashvars+'" />';
			Flashvars_embed = 'FlashVars="'+str_flashvars+'"';
		}
	}
	
	if(typeof(istransparent) != 'undefined'){
		if(istransparent==1){
			Transparent_object = '<param name="wmode" value="transparent" />';
			Transparent_embed  = 'wmode="transparent"';
		}
	} else {
			Transparent_object = '<param name="wmode" value="opaque" />';
			Transparent_embed  = 'wmode="opaque"';
	}
	
	var contenu = '';
	contenu += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="'+width+'" height="'+height+'">';
	contenu += '<param name="movie" value="'+BaseSwf+swf+'" />';
	contenu += '<param name="quality" value="high" />';
	contenu += Transparent_object;
	contenu += Flashvars_object;
	contenu += '<embed src="'+BaseSwf+swf+'" '+Transparent_embed+' '+Flashvars_embed+' quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="'+width+'" height="'+height+'"></embed>';
	contenu += '</object>';
	
	document.write(contenu);
	
}


/**************************/
/*** FONCTIONS D'EFFETS ***/
/**************************/

function setOpacity(obj, opacity) {
	opacity = (opacity == 100)?99.999:opacity;
	// IE/Win
	obj.style.filter = "alpha(opacity:"+opacity+")";
	// Safari<1.2, Konqueror
	obj.style.KHTMLOpacity = opacity/100;
	// Older Mozilla and Firefox
	obj.style.MozOpacity = opacity/100;
	// Safari 1.2, newer Firefox and Mozilla, CSS3
	obj.style.opacity = opacity/100;
}

function appear(content,i){
	var show = document.getElementById(content);
	var z = i/100;
	show.style.opacity = z ;
	show.style.filter = "alpha(opacity="+i+")";
	i=i+10;
	if(z<1){
	   	setTimeout("appear('"+content+"',"+i+");",10);
	}
 }

function disappear(content,i){
	var show = document.getElementById(content);
	var z = i/100;
	show.style.opacity = z ;
	show.style.filter = "alpha(opacity="+i+")";
	i=i-20;
	if(0<z){
			setTimeout("disappear('"+content+"',"+i+");",100);
	}
} 


/*****************************************/
/*** FONCTIONS DE MANIPULATIONS DU DOM ***/
/*****************************************/

function defineFunctionsDOMGecko (){
	//Redéfinition des fonctions javascript pour assurer la compatibilité avec le moteur Gecko
	var ie = /MSIE/.test(navigator.userAgent);
	var moz = !ie && navigator.product == "Gecko" ;
	
	if (moz) {
		 HTMLElement.prototype.__defineGetter__("children", function() {
			   var arr = new Array(), i = 0, l = this.childNodes.length;
			   for ( i = 0; i < l; i++ ) {
				   if ( this.childNodes[ i ].nodeType == 1 ) {
						arr.push( this.childNodes[ i ] );
				   }
			   }
		  return arr;
		  });
	
		  HTMLElement.prototype.__defineGetter__("firstChild", function() {
				var node = this.childNodes[ 0 ];
				while (node.nodeType != 1) node = node.nextSibling;
					 return node;
				});
	
		 HTMLElement.prototype.__defineGetter__("lastChild", function() {
		 var node = this.childNodes[ this.childNodes.length - 1 ];
		 while (node.nodeType != 1) node = node.previousSibling;
			   return node;
		  });
	}
}


function getNextNoeud(el){
	node=el.nextSibling;
	while ( node && node.nodeType != 1){
		node = node.nextSibling;
	}
	return node;
}

function getPreviousNoeud(el){
	node=el.previousSibling;
	while ( node && node.nodeType != 1){ 
		node = node.previousSibling;
	}
	return node;
}

function getArrayChildren(el) {
	var arr=new Array(), i= 0, l=el.childNodes.length;
	for (i=0;i<l; i++ ){
		if ( el.childNodes[ i ].nodeType==1) {
			arr.push(el.childNodes[i]);
		}
	}
	return arr;
}


/**********************/
/*** FONCTIONS AJAX ***/
/**********************/

function createAjaxObject() {
	var Try = {
		these: function() {
				var returnValue;
				for (var i = 0, length = arguments.length; i < length; i++) {
					var lambda = arguments[i];
					try {
						returnValue = lambda();
						break;
					} catch (e) {}
				}
				return returnValue;
			}
	}
	
	return Try.these(
		function() {return new XMLHttpRequest()},
		function() {return new ActiveXObject('Msxml2.XMLHTTP')},
		function() {return new ActiveXObject('Microsoft.XMLHTTP')}
	) || false;
}
