// Javascript iscCoreServices version 1.4.0 By BOBI
// http://www.newtonconcept.com
// UTF-8 >> éèà

function iscCoreServices_browserDetect() {
	var agent=navigator.userAgent.toLowerCase();
	// detect platform
	this.isMac=(agent.indexOf('mac')!=-1);
	this.isWin=(agent.indexOf('win')!=-1);
	this.isWin2k=(this.isWin && (agent.indexOf('nt 5')!=-1));
	this.isWinSP2=(this.isWin && (agent.indexOf('xp')!=-1 || agent.indexOf('sv1')!=-1));
	this.isOther=(agent.indexOf('unix')!=-1 || agent.indexOf('sunos')!=-1 || agent.indexOf('bsd')!=-1 || agent.indexOf('x11')!=-1 || agent.indexOf('linux')!=-1);
	// detect browser
	this.isSafari	= (agent.indexOf('safari') != -1);
	this.isSafari2 = (this.isSafari && (parseFloat(agent.substring(agent.indexOf("applewebkit/")+"applewebkit/".length,agent.length).substring(0,agent.substring(agent.indexOf("applewebkit/")+"applewebkit/".length,agent.length).indexOf(' '))) >=  300));
	this.isFirefox	= (agent.indexOf('firefox') != -1);
	this.isOpera	= (agent.indexOf('opera') != -1);
	this.isNN		= (agent.indexOf('netscape') != -1);
	this.isIE		= (agent.indexOf('msie') != -1);
	// detect version
	this.version=((agent.match(/.+(?:fox|it|ra|ie)[\/: ]([\d.]+)/)||[])[1]||"").split(".");
	for(var i in this.version){this.version[i]=parseInt(this.version[i],10)}
}
var browser = new iscCoreServices_browserDetect();

function iscCoreServices_cssBrowser(){
	// defini CSS browser
	if(browser.isSafari){
		document.body.className+=' safari';
		if(browser.version[0]<'412') document.body.className+=' v1';
		else if(browser.version[0]<'522') document.body.className+=' v2';
		else if(browser.version[0]<'531') document.body.className+=' v3';
		else if(browser.version[0]<'533') document.body.className+=' v4';
		else if(browser.version[0]>'532') document.body.className+=' v5';
	}
	if(browser.isOpera){
		document.body.className+=' opera';
		if(browser.version[0]<'9') document.body.className+=' v0_8';
		else if(browser.version[0]=='9' && browser.version[1]<'80') document.body.className+=' v9';
		else if(browser.version[0]=='9' && browser.version[1]>='80') document.body.className+=' v10';
	}
	if(browser.isIE){
		document.body.className+=' msie';
		if(browser.version[0]<'6') document.body.className+=' v0_5';
		else if(browser.version[0]=='6') document.body.className+=' v6';
		else if(browser.version[0]=='7') document.body.className+=' v7';
		else if(browser.version[0]=='8') document.body.className+=' v8';
		else if(browser.version[0]>='9') document.body.className+=' v9';
	}
	if(browser.isFirefox){
		document.body.className+=' firefox';
		if(browser.version[0]<'2') document.body.className+=' v1';
		else if(browser.version[0]=='2') document.body.className+=' v2';
		else if(browser.version[0]=='3') document.body.className+=' v3';
		if(browser.version[0]=='3' && browser.version[1]=='6') document.body.className+=' v3-6';
	}
	// defini CSS plateforme
	if(browser.isMac)document.body.className+=' mac';
	if(browser.isWin)document.body.className+=' win';
}

// Gestion de debut
// ajouter : iscCoreServices_scriptDeDebut.push("NomDuScript");
var iscCoreServices_scriptDeDebut = new Array();
function iscCoreServices_activeScriptAuDebut() {
	for(var i=0; i<iscCoreServices_scriptDeDebut.length; i++){eval(iscCoreServices_scriptDeDebut[i]);}
}
window.onload=function(){iscCoreServices_activeScriptAuDebut();};

/// **** EXTENTION DE JAVASCRIPT **** ///

/* Evement des Objets */
function iscCoreServices_addEventToObject(obj, evt, func) { // Ajouter des evenements à des objets
	var oldhandler = obj[evt];
	obj[evt] = (typeof obj[evt] != 'function') ? func : function(){oldhandler();func();};
}

function iscCoreServices_arrayOfIdByTagName (tagName, findInId, filterId) { // v2.0
	var answer = new Array();
	if (tagName==undefined) var tagName = "DIV";
	if (filterId==undefined) var filterId = "";
	if (findInId=="" || findInId==undefined) {
		for (var i=0; i<document.getElementsByTagName(tagName).length; i++) {
			idEnCours = document.getElementsByTagName(tagName)[i].id;
			if (idEnCours.match(filterId)) {
				answer.push(idEnCours);
			}
		}
	} else {
		for (var i=0; i<document.getElementById(findInId).getElementsByTagName(tagName).length; i++) {
			idEnCours = document.getElementById(findInId).getElementsByTagName(tagName)[i].id;
			if (idEnCours.match(filterId)) {
				answer.push(idEnCours);
			}
		}

	}
	return answer;
}

/* Cookie */
function iscCoreServices_cookiTest(){
	iscCoreServices_writeCookie('testcookie',1);
	if(iscCoreServices_loadCookie('testcookie')==1)return true;
	else return false;
}
function iscCoreServices_writeCookie (name, value, expires, path, domain, secure) {
	document.cookie=name+"="+escape(value)+
	((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
	((path==null) ? "; path=/" : ("; path="+path))+
	((domain==null) ? "" : ("; domain="+domain))+
	((secure==true) ? "; secure" : "");
}
function iscCoreServices_getCookieVal(offset) {
	var endstr=document.cookie.indexOf (";", offset);
	if (endstr==-1) endstr=document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}
function iscCoreServices_loadCookie(name) {
	var arg=name+"=";
	var alen=arg.length;
	var clen=document.cookie.length;
	var i=0;
	while (i<clen) {
		var j=i+alen;
		if (document.cookie.substring(i, j)==arg) return iscCoreServices_getCookieVal(j);
		i=document.cookie.indexOf(" ",i)+1;
		if (i==0) break;
	}
	return null;
}
function iscCoreServices_cleanCookie(name) {
	date=new Date;
	date.setFullYear(date.getFullYear()-1);
	iscCoreServices_writeCookie(name,null,date);
}

// Gestion des fenetres
function iscCoreServices_fenetreAuCentre(pageDemande, tailleLargeur, tailleHauteur, nomDeLaFenetre) {
	var posHauteur=(screen.height-tailleHauteur)/2;
	var posLargeur=(screen.width-tailleLargeur)/2;
	if(nomDeLaFenetre==undefined)nomDeLaFenetre="";
	var laFenetre = window.open(pageDemande, '', 'top='+posHauteur+',left='+posLargeur+',toolbar=no,menubar=no,location=no,directories=no,status=no,resizable=no,width='+tailleLargeur+',height='+tailleHauteur);
	laFenetre.focus();
}
function iscCoreServices_fenetreAuCentreAvecAscenceur(pageDemande, tailleLargeur, tailleHauteur, nomDeLaFenetre) {
	var posHauteur=(screen.height-tailleHauteur)/2;
	var posLargeur=(screen.width-tailleLargeur)/2;
	if(nomDeLaFenetre==undefined)nomDeLaFenetre="";
	var laFenetre = window.open(pageDemande, nomDeLaFenetre, 'top='+posHauteur+',left='+posLargeur+',toolbar=no,menubar=no,location=no,directories=no,status=no,resizable=no,scrollbars=yes,width='+tailleLargeur+',height='+tailleHauteur);
	laFenetre.focus();
}


// Gestion des boutons images
function iscCoreServices_changerImage(nomDuBouton, cheminImage) {
	document.images[nomDuBouton].src = cheminImage;
}

// Gestion de l'animation de texte
function icsFastJavascript_texteDefilant(texteMessage, idBloc, nombreCaracteres, vitesseBoucle) {


	// Exemple :
	//  <p id="zoneTexte">texte chargement</p>
	//  <script language="JavaScript"><!--
	//  icsFastJavascript_texteDefilant("le texte", "zoneTexte");
	//  //--></ script>
	

	if (typeof(icsFastJavascript_texteDefilant_objetTexteDefilant) == typeof(Array())) {
		var objetTexteDefilant = icsFastJavascript_texteDefilant_objetTexteDefilant;
	}
	if (typeof(nombreCaracteres) != typeof(0)) { var nombreCaracteres = 70; }
	if (typeof(vitesseBoucle)    != typeof(0)) { var vitesseBoucle    = 200; }

	function texteDefilant(texteDemande, idBloc, nombreCaracteres, vitesseBoucle) {
		
		this.nombreCaracteres = nombreCaracteres;
		this.vitesse = vitesseBoucle;
		//
		this.idBloc = idBloc;
		this.message = texteDemande;
		this.afficher = afficherLeTexte;
		this.positionEnCours = 0;
		this.longeur=this.message.length;
		this.fois=(this.nombreCaracteres/this.message.length)+1;
		for(i=0;i<=this.fois;i++) this.message+=this.message;
		
		function afficherLeTexte() {
			document.getElementById(this.idBloc).innerHTML=this.message.substring(this.positionEnCours,this.positionEnCours+this.nombreCaracteres);
	 		this.positionEnCours++;
	 		if(this.positionEnCours == this.longeur) this.positionEnCours=0;
		}
	}
	
	// Création de la valeur
	if (typeof(texteMessage) == typeof(0)) {
	
		objetTexteDefilant[texteMessage].afficher();
		var texteActionBoucle = "icsFastJavascript_texteDefilant("+texteMessage+")";
		window.setTimeout(texteActionBoucle,objetTexteDefilant[texteMessage].vitesse);
		
	} else {
	
		if (typeof(objetTexteDefilant)!=typeof(Array())) { objetTexteDefilant=Array(); }
		objetTexteDefilant[objetTexteDefilant.length] = new texteDefilant(texteMessage, idBloc, nombreCaracteres, vitesseBoucle);
		var idAction = objetTexteDefilant.length - 1;
		var texteActionBoucle = "icsFastJavascript_texteDefilant("+idAction+")";
		window.setTimeout(texteActionBoucle,objetTexteDefilant[idAction].vitesse);
		
	}
	
	// Mise a jour des valeurs
	icsFastJavascript_texteDefilant_objetTexteDefilant = objetTexteDefilant;
}

// Impression
function icsFastJavascript_imprimerLaPage() {
	window.print();
	//window.setTimeout("window.location.reload()",1);
}

// Formulaire
function icsFastJavascript_formulaireChangerUneValeur(idChamp, nouvelleValeur) {
	if (browser.isIE && browser.isWin) {
		for (var i=0; i<document.forms.length; i++) {
			if (document.forms[i].elements[idChamp] != undefined) {
				//alert(document.forms[i].elements[idChamp]);
				document.forms[i].elements[idChamp].value = nouvelleValeur;
			}
		}
	} else {
		document.getElementById(idChamp).value=nouvelleValeur;
	}
}

function icsFastJavascript_formulaireVerifDuChamp(nomDuFormulaire, nomDuChamp, scriptAlert, typeDeVerif, complementVerif) {

	// typeDeVerif > nonVide, caractereMini (complementVerif > nombre), caractereMaxi (complementVerif > nombre) 
	if (typeDeVerif=="nonVide") {
		if (document.forms[nomDuFormulaire].elements[nomDuChamp].value.length <= 0) {
			eval(scriptAlert);
			document.forms[nomDuFormulaire].elements[nomDuChamp].focus();
		}
		
	} else if (typeDeVerif=="caractereMini") {
		if (document.forms[nomDuFormulaire].elements[nomDuChamp].value.length < complementVerif) {
			eval(scriptAlert);
			document.forms[nomDuFormulaire].elements[nomDuChamp].focus();
		}
		
	} else if (typeDeVerif=="caractereMaxi") {
		if (document.forms[nomDuFormulaire].elements[nomDuChamp].value.length > complementVerif) {
			eval(scriptAlert);
			document.forms[nomDuFormulaire].elements[nomDuChamp].focus();
		}
	}
}

function icsFastJavascript_formulaireSubmit(nomDuFormulaire) {
	try {
		if (document.forms[nomDuFormulaire].onsubmit()) document.forms[nomDuFormulaire].submit();
	}catch(ex){
		document.forms[nomDuFormulaire].submit();
	}
}

