/*****************************************/
/* Gestion des evenements (anciennement utils/events.js)  */
/*****************************************/

/* classe permettent de declencher des ?v?nements sur des elements html */
function PageEvent(){
	this.IE = (navigator.appName == 'Microsoft Internet Explorer')? true : false;
	this.Netscape = (navigator.appName == 'Netscape')? true : false;
	
	/*if((typeof PageEvent.inisialized) == 'undefined'){
		if(navigator.appName == 'Microsoft Internet Explorer'){
		}else{
		}
		PageEvent.inisialized = true;
	}*/
}


PageEvent.prototype = { 

    isIE: function() {
        return this.IE;
    }, 

    isNetscape: function() {
        return this.Netscape;
    },

	/* declenche l'evenement onClick sur un element */
	fireOnClick: function(idElement){
		var element = document.getElementById(idElement);

		if(element != 'null'){
			if(this.isIE()){
				/* evenement onClick sous IE */
				element.fireEvent('onclick');
			}else{
				/* evenement onClick sous Netscape - Mozilla */
				var evt = document.createEvent('MouseEvents');
				evt.initEvent('click', true, true);
				element.dispatchEvent(evt);
			}
		}else{
			this.fireError('l\'element sp?cifi? n\'existe pas.');
		}
	},
	
	/* declenche l'evenement onChange sur un element */
	fireOnChange: function(idElement){
		var element = document.getElementById(idElement);
		if(element != 'null'){
			if(this.isIE()){
				/* evenement onChange sous IE */
				element.fireEvent('onchange');
			}else{
				/* evenement onChange sous Netscape - Mozilla */
				var evt = document.createEvent('HTMLEvents');
				evt.initEvent('change', true, true);
				element.dispatchEvent(evt);
			}
		}else{
			this.fireError('l\'element sp?cifi? n\'existe pas.');
		}
	},	
	
	/* methode declenche en cas d'erreur */
	fireError: function(message){
	}
} 


/*****************************************/


/*****************************************/
/* Anciennement utils/wait.js  */
/*****************************************/
//waitFor(function(){myState.ParticipantClicked();}, function(){ return $('icone_participants')}, 100, DateAdd('s',1,(new Date()))))
function waitFor(fonctionAExecuter, condition, interval, fin){
        if (condition()) fonctionAExecuter();
        else{
                if(compareObjDate(fin,(new Date()),'DIFF')>0) setTimeout(function(){waitFor(fonctionAExecuter, condition, interval, fin);},interval);
        }
}

       

//nb = compareObjDate(newDate,(new Date()),'DIFF')
function compareObjDate(date_1, date_2, operateur){

	diff = date_1.getTime()-date_2.getTime();

	if (diff>0){
		date_min = date_2;
		date_max = date_1;
	}else if (diff<0){
		date_min = date_1;
		date_max = date_2;
	}

	if (operateur == 'MIN') return date_min
	if (operateur == 'MAX') return date_max;
	if (operateur == 'DIFF') return (diff==0?diff:diff/Math.abs(diff));
}

//DateAdd('ms',100,dateObj))
//DateAdd('d',1,dateObj))
function DateAdd(timeU,byMany,dateObj) {
	var millisecond=1;
	var second=millisecond*1000;
	var minute=second*60;
	var hour=minute*60;
	var day=hour*24;
	var year=day*365;
	var newDate;
	var dVal=dateObj.valueOf();

	switch(timeU) {
		case "ms": newDate=new Date(dVal+millisecond*byMany); break;
		case "s": newDate=new Date(dVal+second*byMany); break;
		case "mi": newDate=new Date(dVal+minute*byMany); break;
		case "h": newDate=new Date(dVal+hour*byMany); break;
		case "d": newDate=new Date(dVal+day*byMany); break;
		case "y": newDate=new Date(dVal+year*byMany); break;
	}

	return newDate;

}
/*****************************************/


/*****************************************/
/* Anciennement utils/innerHTML.js  */
/*****************************************/
function setInnerHTML(id,value){
	document.getElementById(id).innerHTML = value;
}

function cleanInnerHTML(id){
	document.getElementById(id).innerHTML = '';
}

function etoiles(nbr){
	contenu = document.getElementById('critereetoile');
	stars = '';
	for(i=1;i<=nbr;i++){
		stars+="<img src='images/picto/star_ps.png'>";		
	}
	contenu.innerHTML = stars;
}

/*****************************************/



/**
 * Affiche toutes les offres d'un camping
 */
function afficheOffreAdditionnellesDuCamping( link )
{
	var elem	= $(link).up('.contenu');
	if( elem && !elem.hasClassName('afficheToutesLesOffres') )
	{
		elem.addClassName('afficheToutesLesOffres');
	}
	link.style.display	= 'none';
}
