/***** SCRIPT.JS ***********************************************************

 Version : 02/12/2004
 Auteur : 
 Sébastien Poubelle
 Jérôme Demyttenaere
 Philippe Prédhomme
 Rémi Wipliez

******************************************************************************/

/***** Liste des fonctions ****************************************************

 isRef
 getRef
 addbookmark
 loadOne
 supprimer
 ajouter
 repondre
 fiche
 loaded
 reloaded
 IsNumeric
 popup
 MM_preloadImages
 agrandir
 openwindow
 
 + fonction BETA en fin de fichier
 
******************************************************************************/

/************************** addFavorite 1.0 2005-06-14
 *
 * Auteur : Sébastien Poubelle
 *
 * Ajoute la page aux favories
 *
 */

function addFavorite() {
	NomNavigateur = navigator.appName;
	VersionNavigateur = parseInt(navigator.appVersion);
	if(NomNavigateur == "Microsoft Internet Explorer" && VersionNavigateur >= 4) {
		window.external.AddFavorite(location.href, document.title);
		}
	else alert("Votre navigateur ne permet pas l'ajout automatique dans vos favories.");
	}

/************************** isRef 1.0 2005-02-15
 *
 * Auteur : Sébastien Poubelle
 *
 * Retourne la référence du navigateur : 'DOM', 'IE4' ou 'NS4'.
 *
 */

function isRef() {
	if(document.getElementById) return "DOM";
	if(document.all) return "IE4";
	if(document.layers) return "NS4";
	}

/************************** getRef 1.3 2005-02-15
 *
 * Auteur : Sébastien Poubelle
 *
 * Retourne l'appelle javascript d'un identifiant 'id' de la page HTML
 *
 */

function getRef(id) {
	if(isRef() == "DOM") return document.getElementById(id);
	if(isRef() == "IE4") return document.all[id];
	if(isRef() == "NS4") return document.layers[id];
	}

/************************** addbookmark 1.0 2005-05-19
 *
 * Auteur : Sébastien Poubelle
 *
 * Ajoute l'adresse bookmarkurl portant le nom bookmarktitle dans le BookMark
 *
 */

function addbookmark(bookmarkurl,bookmarktitle) {
	if(isRef() == "IE4") window.external.AddFavorite(bookmarkurl,bookmarktitle);
	}

/************************** loadOne 1.0 2005-02-15
 *
 * Auteur : Jérôme Demyttenaere
 *
 * Recharge la page
 *
 */

function loadOne() {
        window.location.reload();
        }

/************************** supprimer 1.2 2003-09-04
 *
 * Auteur : Jérôme Demyttenaere, Sébastien Poubelle
 *
 * Appelle la page supprimer.php qui permet de supprimer
 * l'enregistrement 'id' de la table 'table' de la base
 * de donnée courante.
 * 'url' est l'adresse de retour et 'arg' est la chaine
 * de caractères correspondant aux argument à retourner.
 *
 */

function supprimer(id,table,url,arg) {
	if(confirm("Confirmez-vous la suppression définitive ?\n")) {
		location = "supprimer.php?id="+ id +"&table="+table +"&url="+ url +"&arg=&"+ arg;
		}
	}

/************************** ajouter 1.0 2005-02-15
 *
 * Auteur : Jérôme Demyttenaere
 *
 *
 */

function ajouter(id,url) {
	pleft = (window.screen.availWidth - 550) / 2;
	ptop = (window.screen.availHeight - 450) / 2;
	openwindow(url+'_modifier.php?id='+id,'modifier',550,450,ptop,pleft);
	}

/************************** repondre 1.0 2005-02-15
 *
 * Auteur : Jérôme Demyttenaere
 *
 *
 */

function repondre(id,table) {
	pleft = (window.screen.availWidth - 550) / 2;
	ptop = (window.screen.availHeight - 450) / 2;
	openwindow('repondre.php?id='+id+'&table='+table,'repondre',550,450,ptop,pleft);
	}

/************************** fiche 1.0 2005-02-15
 *
 * Auteur : Jérôme Demyttenaere
 *
 *
 */

function fiche(id,table) {
	pleft = (window.screen.availWidth - 480) / 2;
	ptop = (window.screen.availHeight - 320) / 2;
	openwindow('fiche.php?id='+id+'&table='+table,'fiche',550,450,ptop,pleft);
	}

/************************** loaded 2.0 2005-03-29
 *
 * Auteur : Jérôme Demyttenaere, Sébastien Poubelle
 *
 *
 */

function loaded(color) {
	reloaded(color,"nowLoading");
	}

/************************** reloaded 1.1 2005-03-29
 *
 * Auteur : Sébastien Poubelle
 *
 *
 */

function reloaded(color,id) {
	getRef(id).innerHTML = "<font color='"+ color +"'>TRAITEMENT EN COURS</font>";
	}

/************************** IsNumeric 3.0
 *
 * Auteur : Jérôme Demyttenaere
 *
 *
 */

function IsNumeric(strString) {
	var strValidChars = "0123456789.- ";
	var strChar;
	var blnResult = true;
	
	if (strString.length == 0) return false;
	
	// test strString consists of valid characters listed above
	for (i = 0; i < strString.length && blnResult == true; i++) {
		 strChar = strString.charAt(i);
		 if (strValidChars.indexOf(strChar) == -1) blnResult = false;
		}
	return blnResult;
	}

/************************** popup 3.0 2005-03-29
 *
 * Auteur : Sébastien Poubelle
 *
 * void popup( String pop_url , Int pop_width , Int pop_height [ , String pop_bar ] )
 *
 * pop_url : url de la page pop-up.
 * pop_width : largeur de la fenêtre en pixel.
 * pop_height : hauteur de la fenêtre en pixel.
 * pop_bar : affichage de la scrollbar, option : 'yes' / 'no'.
 *
 */

function popup(pop_url,pop_width,pop_height) {
	var pop_bar = "yes", pop_arg = popup.arguments;
	if(pop_arg.length == 4) pop_bar = pop_arg[3];
	pop_name = pop_url.substring(0,3);
	pop_left = (window.screen.availWidth / 2) - (pop_width / 2);
	pop_top = (window.screen.availHeight / 2) - (pop_height / 2);
	window.open(pop_url,pop_name,"left=" + pop_left + ",top=" + pop_top + ",width=" + pop_width + ",height=" + pop_height + ",scrollbars="+ pop_bar +",noresize");
	}

/************************** MM_preloadImages 3.0
 *
 * Auteur : Macromédia
 *
 *
 */

function MM_preloadImages() {
	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];
			}
		}
	}

/************************** agrandir 3.0 2005-02-15
 *
 * Auteur : Sébastien Poubelle
 *
 *
 */

function agrandir(img_src,link_color,bg_color) {
	var pop_width = 640;
	var pop_height = 480;
	var pop_img = new Image();
	pop_img.src = img_src;
	pop_win = window.open("","","width="+ pop_width +",height="+ pop_height +",scrollbars=no");
	pop_win.document.open();
	pop_win.document.write("<head><title>"+ pop_img.src +"</title></head>");
	pop_win.document.write("<body leftmargin=0 topmargin=0 marginwidth=0 marginheight=0");
	pop_win.document.write(" link='"+ link_color +"' alink='"+ link_color +"' vlink='"+ link_color +"' bgcolor='"+ bg_color +"'>");
	pop_win.document.write("<table width='100%' height='100%' border=0>");
	pop_win.document.write("<tr><td align=center valign=middle><img src='"+ pop_img.src +"'></td></tr>");
	pop_win.document.write("<tr><td align=center valign=middle><font size='1' face='Verdana, Arial, Helvetica, sans-serif'>");
	pop_win.document.write("<a href='javascript:window.close();'>Fermer la fen&ecirc;tre</a>");
	pop_win.document.write("</font></td></tr>");
	pop_win.document.write("</table>");
	pop_win.document.write("</body>");
	pop_win.document.close();
	if(pop_img.width != 0 || pop_img.height != 0) {
		pop_width = pop_img.width + 40;
		pop_height = pop_img.height + 80;
		pop_win.resizeTo(pop_width,pop_height);
		}
	pop_left = (window.screen.availWidth / 2) - (pop_width / 2);
	pop_top = (window.screen.availHeight / 2) - (pop_height / 2);
	pop_win.moveTo(pop_left,pop_top);
	}

/************************** openwindow 1.0 2005-02-15
 *
 * Auteur : Jérôme Demyttenaere
 *
 *
 */

function openwindow(url,name,width,height,ptop,pleft) {
	window.open(url,name,'toolbar=0,menubar=0,scrollbars=yes,resizable=0,width=' + width + ',height=' + height + ',top=' + ptop + ',left=' + pleft);
	}

/************************** ejs_img_fx 1.0 2005-02-15
 *
 * Auteur : ???
 *
 *
 */

function ejs_img_fx(img) {
	if(img && img.filters && img.filters[0]) {
		img.filters[0].apply();
		img.filters[0].play();
		}
	}

/************************** roll2 1.0 2006-04-27
 *
 * Auteur : Sébastien Poubelle
 *
 * i : indice en cours. Lors de l'initialisation il est égale à 0.
 * speed : Vitesse du roll over en ms
 * ejs_img_fx : booléen indiquant si il existe un style du genre style="filter:progid:DXImageTransform.Microsoft.Fade(Duration=1)" sur l'image.
 * roll : objet image dans laquelle le roll over est effectif
 *
 * Préalablement il faut initialiser 'roll_array[roll]', tableau des sources images de l'animation. 'roll_array' étant déjà définit.
 *
 * !!! Changement de roll2 par rapport à roll !!!
 * Utiliser avec les fonctions roll_start et roll stop qui gère
 *
 * exemple :
 *
 *	<IMG id="monImage" src="" width="410" height="600" border="0">
 *	
 *	<SCRIPT>
 *	
 *	roll_array['monImage'] = new Array();
 *	roll_array['monImage'][0] = "monImage1.jpg";
 *	roll_array['monImage'][1] = "monImage2.jpg";
 *	roll_array['monImage'][2] = "monImage3.jpg";
 *	roll_array['monImage'][3] = "monImage4.jpg";
 *	roll_array['monImage'][4] = "monImage5.jpg";
 *	
 *	roll(0,3000,false,'monImage');
 *	
 *	</SCRIPT>
 *
 *
 */

var roll_index = new Array(); // tableau des indexes en cours.
var roll_statu = new Array(); // tableau boolean.
var roll_array = new Array(); // tableau des sources image.

function roll(i,speed,ejs_img_fx_boo,roll) {
	if(ejs_img_fx_boo) ejs_img_fx(getRef(roll));
	getRef(roll).src = roll_array[roll][i];
	i++;
	if(i >= roll_array[roll].length) i = 0;
	setTimeout("roll("+ i +","+ speed +","+ ejs_img_fx +",'"+ roll +"')",speed);
	}

// function roll_start(i,speed,ejs_img_fx_boo,roll) {
// 	roll_statu[roll] = true;
// 	roll2(i,speed,ejs_img_fx_boo,roll);
// 	}
// 
// function roll_stop(roll) {
// 	roll_statu[roll] = false;
// 	}
// 
// function roll_timeout(i,speed,ejs_img_fx_boo,roll) {
// 	if(roll_statu[roll]) {
// 		roll2(i,speed,ejs_img_fx_boo,roll);
// 		}
// 	}
// 
// function roll2(i,speed,ejs_img_fx_boo,roll) {
// //	if(i < 2) alert(roll_array[roll][i]);
// 	if(ejs_img_fx_boo) ejs_img_fx(getRef(roll));
// 	getRef(roll).src = roll_array[roll][i];
// 	roll_index[roll] = i;
// 	i++;
// 	if(i >= roll_array[roll].length) i = 0;
// 	setTimeout("roll_timeout("+ i +","+ speed +","+ ejs_img_fx +",'"+ roll +"')",speed);
// 	}


/************************** calque_open 1.0 2006-03-17
 *
 * Auteur : Sébastien Poubelle
 *
 */


function calque_open(id) {
	if(getRef(id).style.visibility == 'hidden') {
		getRef(id).style.visibility = 'visible';
//		setTimeout("calque_close('"+id+"')",9000);
		}
	else getRef(id).style.visibility = 'hidden';
	}


/************************** calque_close 1.0 2006-03-17
 *
 * Auteur : Sébastien Poubelle
 *
 */


function calque_close(id) {
	getRef(id).style.visibility = 'hidden';
	}



/************************** calendar 1.0 2006-03-17
 *
 * Auteur : Sébastien Poubelle
 *
 */


function calendar(id, buttoncolor, bgcolor, color, langue, objet_input, m_plus) {
	var str = "";
	var flg = 0;
	M_fr = new Array("Janvier","Fevier","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Decembre");
	D_fr = new Array("Dim","Lun","Mar","Mer","Jeu","Ven","Sam");
	M_uk = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
	D_uk = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");

	M = M_uk;
	D = D_uk;
	if(langue == "fr") {
		M = M_fr;
		D = D_fr;
		}

	if(m_plus < 0) m_plus = 0;
	if(m_plus > 12) m_plus = 12;

	pdy = new Date();        // today
	pmo = pdy.getMonth();    // present month
	pyr = pdy.getYear();     // present year
	if(pyr < 1000) pyr += 1900;

	yr = pyr;                // present year
	mo = pmo + m_plus;                // present month
	if(mo > 11) {
		mo = mo - 12;
		yr++;
		}

	bgn = new Date(M_uk[mo] + " 1," + yr); // assign to date

	dy = bgn.getDay();
	yr = eval(yr);
	d = "312831303130313130313031";
	if (yr / 4 == Math.floor(yr / 4)){
		d = d.substring(0,2) + "29" + d.substring(4,d.length);
		}
	pos = (mo*2);
	ld = eval(d.substring(pos,pos+2));

	str += ""
	+ "<TABLE BGCOLOR=\""+ bgcolor +"\" BORDER=0 cellpadding=\"1\" cellspacing=\"2\"' style=\"border-right:1px solid "+ color +";border-top:1px solid "+ color +";border-left:1px solid "+ color +";border-bottom:1px solid "+ color +";\">"
	+ "<TR><TD ALIGN=CENTER BGCOLOR=\""+ buttoncolor +"\" style=\"cursor:pointer;font-size:12px;font-family:Verdana,sans-serif;color:"+ color +";\" onclick=\"calendar('"+ id +"','"+ buttoncolor +"','"+ bgcolor +"','"+ color +"','"+ langue +"','"+ objet_input +"',"+ (m_plus-1) +");\"><B>&#171;</B></TD><TD ALIGN=CENTER COLSPAN=5 style=\"font-size:10px;font-family:Verdana,sans-serif;color:"+ color +";\"><B>"+ M[mo] +" "+ yr +"</B></TD><TD ALIGN=CENTER BGCOLOR=\""+ buttoncolor +"\" style=\"cursor:pointer;font-size:12px;font-family:Verdana,sans-serif;color:"+ color +";\" onclick=\"calendar('"+ id +"','"+ buttoncolor +"','"+ bgcolor +"','"+ color +"','"+ langue +"','"+ objet_input +"',"+ (m_plus+1) +");\"><B>&#187;</B></TD></TR>"
	+ "<TR>";
	for (var i=0;i<7;i++){
		str += "<TD WIDTH=\"15%\" style=\"font-size:10px;font-family:Verdana,sans-serif;color:"+ color +";\" ALIGN=CENTER>"+ D[i] +"</TD>";
		}
	str += "</TR><TR>";
	ctr = 0;
	for(var i = 0; i < 7; i++) {
		if (i < dy){
			str += "<TD></TD>";
			}
		else{
			ctr++;
			jour = ""+ ctr; 
			if(jour.length < 2) jour = "0"+ jour;
			mois = ""+ (mo+1); 
			if(mois.length < 2) mois = "0"+ mois;
			str += "<TD BGCOLOR=\""+ buttoncolor +"\" ALIGN=CENTER style=\"cursor:pointer;font-size:10px;font-family:Verdana,sans-serif;color:"+ color +";\" onclick=\""+ objet_input +".value = '"+ jour +"/"+ mois +"/"+ yr +"';calque_close('"+ id +"');\">"+ ctr +"</TD>";
			}
		}
	str += "</TR><TR>";
	while (ctr < ld){
		for (var i = 0; i < 7; i++){
			ctr++;
			if (ctr > ld){
				str += "<TD></TD>";
				}
			else{
				jour = ""+ ctr; 
				if(jour.length < 2) jour = "0"+ jour;
				mois = ""+ (mo+1); 
				if(mois.length < 2) mois = "0"+ mois;
				str += "<TD BGCOLOR=\""+ buttoncolor +"\" ALIGN=CENTER style=\"cursor:pointer;font-size:10px;font-family:Verdana,sans-serif;color:"+ color +";\" onclick=\""+ objet_input +".value = '"+ jour +"/"+ mois +"/"+ yr +"';calque_close('"+ id +"');\">"+ ctr +"</TD>";
				}
			}
		str += "</TR><TR>";
		}
	str += "</TR></TABLE>";
	getRef(id).innerHTML = str;
	}


/************************** getFlashVersion 1.2.1 2006-03-24
 *
 * documentation: http://www.dithered.com/javascript/flash_detect/index.html
 * license: http://creativecommons.org/licenses/by/1.0/
 * code by Chris Nott (chris[at]dithered[dot]com)
 * with VBScript code from Alastair Hamilton (now somewhat modified)
 *
 */



var flashVersion = 0;
function getFlashVersion() {
	var latestFlashVersion = 8;
	var agent = navigator.userAgent.toLowerCase(); 
	// NS3 needs flashVersion to be a local variable
	if (agent.indexOf("mozilla/3") != -1 && agent.indexOf("msie") == -1) {
		flashVersion = 0;
		}
	// NS3+, Opera3+, IE5+ Mac (support plugin array):  check for Flash plugin in plugin array
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		var flashPlugin = navigator.plugins['Shockwave Flash'];
		if (typeof flashPlugin == 'object') { 
			for (var i = latestFlashVersion; i >= 3; i--) {
				if (flashPlugin.description.indexOf(i + '.') != -1) {
					flashVersion = i;
					break;
					}
				}
			}
		}
	// IE4+ Win32:  attempt to create an ActiveX object using VBScript
	else if (agent.indexOf("msie") != -1 && parseInt(navigator.appVersion) >= 4 && agent.indexOf("win")!=-1 && agent.indexOf("16bit")==-1) {
		var doc = '<scr' + 'ipt language="VBScript"\> \n';
		doc += 'On Error Resume Next \n';
		doc += 'Dim obFlash \n';
		doc += 'For i = ' + latestFlashVersion + ' To 3 Step -1 \n';
		doc += '   Set obFlash = CreateObject("ShockwaveFlash.ShockwaveFlash." & i) \n';
		doc += '   If IsObject(obFlash) Then \n';
		doc += '      flashVersion = i \n';
		doc += '      Exit For \n';
		doc += '   End If \n';
		doc += 'Next \n';
		doc += '</scr' + 'ipt\> \n';
		document.write(doc);
		}
	// WebTV 2.5 supports flash 3
	else if (agent.indexOf("webtv/2.5") != -1) flashVersion = 3;
	// older WebTV supports flash 2
	else if (agent.indexOf("webtv") != -1) flashVersion = 2;
	// Can't detect in all other cases
	else {
		flashVersion = flashVersion_DONTKNOW;
	}
	return flashVersion;
	}


/************************** mailto 1.0 2007-01-22
 *
 * Auteur : Sébastien Poubelle
 *
 */


function mailto(user,domaine) {
	var at = "@"
	document.write("<a href=\"mailto:"+ user + at + domaine +"\">");
	document.write(user + at + domaine +"</a>");
	}


/************************** BETA

function print_image(img_src) {
	var pop_width = 640;
	var pop_height = 480;
	var pop_img = new Image();
	pop_img.src = img_src;
	pop_win = window.open("","window_print_image","width=0,height=0,scrollbars=no");
	pop_win.document.open();
	pop_win.document.write("<body leftmargin=0 topmargin=0 marginwidth=0 marginheight=0>");
	pop_win.document.write("<img src='"+ pop_img.src +"'>");
	pop_win.document.write("</body>");
	pop_win.document.close();
	if(pop_img.width != 0 || pop_img.height != 0) {
		pop_width = pop_img.width;
		pop_height = pop_img.height;
		pop_win.resizeTo(pop_width,pop_height);
		}
	pop_win.print();
	pop_win.close();
	}

var infullscreen;

function fullscreen(full) {
	if(isDOM) {
		if(navigator.appName == "Microsoft Internet Explorer") {
			if(full) {
				infullscreen = window.open("index.php","SiteWindow","fullscreen");
				}
			else {
				parent.opener.window.location.href = document.location.href;
				window.close();
				}
			}
		}
	}

function screen_button(boo) {
	if(boo == 1) {
		getRef("screenButton").innerHTML = "<a href=\"javascript:fullscreen(false);\">fermer</a>";
		}
	else {
		getRef("screenButton").innerHTML = "";
		}
	}

**************************/
