/***** Pop-up *****/

function winopen(ad) {
	window.open(ad);
}

function winopencenter(ad,w,h,scrol) {
	newwin = window.open("","","resizable=no,scrollbars="+scrol+"");
	if(document.all) {
		newwin.moveTo((screen.width-w)/2,(screen.height-h>=0)?(screen.height-h)/2:0);
		newwin.resizeTo(w,(h>screen.height-30)?(screen.height-30):h);
	}
	newwin.location = ad;
}

/***** Changer la classe courante par classe_over *****/

function classOver(pObj) {
	pObj.className += '_over';
}

function classOut(pObj) {
	pObj.className = pObj.className.slice(0,pObj.className.length-5);
}


/***** Changer l'image courante par image_over *****/

function imgOver(pObj) {
	var ext = pObj.name.slice(pObj.name.length-4,pObj.name.length);
	var name = pObj.name.slice(0,pObj.name.length-4);
	pObj.src = 'images/'+name+'_over'+ext;
}

function imgOut(pObj) {
	pObj.src = 'images/'+pObj.name;
}


/***** barre de statut *****/

function winStatus() {
	window.status = "OVA e - Services : Incubateur de formation";
	setTimeout("winStatus()",1000);
}
//winStatus();



//gère une zone de debug pour les tests
function AfficheZoneDebug() {
	document.write("<form>");
	<!-- FOOTER  -->
	document.write('<div style="position: relative; margin-bottom:5px;clear:both; border-bottom:1px dashed #000000;width:500px">Zone de débug</div>');
	document.write('<textarea cols="60" rows="15" id="DebugJS" name="DebugJS"></textarea><br/>');
	document.write('<input type="button" onclick="eval(document.getElementById(\'DebugJS\').value);" value="Evaluer JS" />');
	document.write("</form>");
}

//----------------------------------------------------------------------
//  Fonction générales
//----------------------------------------------------------------------

//simplifie l'accès à un élément
function eid(id) {
	return document.getElementById(id);
}


function removeClass(el, className) {
	if (!(el && el.className)) return;
	var classes = el.className.split(" ");
	var newClasses = new Array;
	for (i = 0; i < classes.length; ++i)
		if (classes[i] != className) newClasses[newClasses.length] = classes[i];
	el.className = newClasses.join(" ");
}

function addClass(el, className) {
	el.className += " " + className;
}

function intoClass(el, modele) {
	var model = new RegExp(modele);
	return model.test(el.className);
}

function isMember (value, array) {
	for (var i = 0; i< array.length; i ++){
		if (array[i] == value)		return true;	
	}
	return false; 
}

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

function rtrim(str) { 
   return str.replace(/\s*$/g,"") 
} 

function ltrim(str) { 
   return str.replace(/^\s*/g,"") 
} 

function sspace(str) {
   return str.replace(/\s*/g,"") 
}

function right(str,nbr) { 
   return str.substr(str.length-nbr) 
} 

function left(str,nbr) { 
   return str.substr(0,nbr) 
} 

function isTel(d){
	//le téléphone est du type (+33 1) 01.45.46.12.23
	//le séparateur peut être un point ou un tiret
	var re=/(\([0-9\.\+ ]*\)[ ]){0,1}\d{2}([\.-])\d{2}\2\d{2}\2\d{2}\2\d{2}/gi
	var res=d.match(re);
	if ((res==null) && (arguments.length>1)) alert(arguments[1]);
	return (res);
}

function isVide(s) {
	var res= (trim(s)=='') ?  true :  false;
	if ((res) && (arguments.length>1)) alert(arguments[1]);
	return (res);

}

function isLongueurMaxChaine(s, lgMax) {
	var res= (s.length >lgMax) ? true : false;
	if ((res) && (arguments.length>2)) alert(arguments[2]);
	return (res);
	
}

function isNotLongueurMinChaine(s, lgMin) {
	var res= (s.length < lgMin) ? true : false;
	if ((res) && (arguments.length>2)) alert(arguments[2]);
	return (res);
}

function isDate(d){
	alert(d);
	//la dtae est du type 13/08/1968 ou 1/9/01 ...
	var re=/^[ ]*(0[1-9]|[1-2][0-9]|3[0-1]|[1-9])\/((0[1-9]|1[0-2])|[1-9])\/((20[0-9][0-9]|[0-9][0-9]|[0-9])|19[0-9][0-9])$/gi
	var res=d.match(re);
	if ((res==null ) && (arguments.length>1)) alert(arguments[1]);
	return (res);
}

function isMail(m){
	var re=/(\w+(-|\.))*(\w+)@(\w+(-|\.))*(\w+)(\.[a-z]{2,3})$/gi
	var res=m.match(re);
	if ((res==null ) && (arguments.length>1)) alert(arguments[1]);
	return (res);
}

function isMontant(m){
	//le montant est du type 1235.523
	//3 décimales maxi, pas de virgule acceptée
	var re=/^\d+(((\.|,)\d{1,3}){0,1})$/gi
	var res=m.match(re);
	if ((res==null) && (arguments.length>1)) alert(arguments[1]);
	return (res);
}

function isChaineNonVide(m){
	//3 décimales maxi, pas de virgule acceptée
	var re=/^\d+(((\.|,)\d{1,3}){0,1})$/gi
	var res=m.match(re);
	if ((res==null) && (arguments.length>1)) alert(arguments[1]);
	return (res);
}

function isEntier(i){
	//le montant est du type 1235.523
	//3 décimales maxi, pas de virgule acceptée
	var re=/^\d+$/gi
	var res=i.match(re);
	if ((res==null) && (arguments.length>1)) alert(arguments[1]);
	return (res);
}

function ExportExcel(tbl) {	
	xl= new ActiveXObject('Excel.Application');
	wkb = xl.Workbooks.Add();
	xl.visible=true;
	for (l=0; l<tbl.rows.length; l++)
		for (c=0; c<tbl.rows[l].cells.length; c++) {
			V=tbl.rows[l].cells[c].innerText;
			if ((V.charAt(2)=='/') && (V.length==10) && (V.charAt(5)=='/')) V=V.substring(3,5) +'/'+V.substring(0,2)+'/'+ V.substring(6,10) ;
			wkb.ActiveSheet.cells(l+1,c+1).Value= V;
		}
}

function FormatNumber(valeur, NbDecimales) {
	pos=valeur.indexOf('.');
	if (pos==-1) return valeur;
	if (pos+NbDecimales+1 <= valeur.length)
		return valeur.substring(0,pos+NbDecimales+1);
	else
		return valeur.substring(0,valeur.length);
}

//split ue chaine selon un separateur
//renvoie un tableau
function splitStr(chaine, sep){
	var tabDest = new Array();
	pos=0;
	while ((pos=chaine.indexOf(sep))>=0){
		tabDest[tabDest.length]= chaine.substring(0,pos);
		chaine = chaine.substring(pos+1,chaine.length);
	}
	if (chaine.length >0)
		tabDest[tabDest.length]= chaine.substring(0,chaine.length);
	return tabDest;
}



/***** Image dans une Pop-up centrer *****/

var loadingSelectedImage;
var loadingSelectedImageUrl;
var loadingSelectedImageTimeOut;

function showImage(pUrlImage) {
	// on fixe le timeout de chargement
	loadingSelectedImageTimeOut = 3000;
	// on récupère l'image
	loadingSelectedImageUrl = pUrlImage;
    loadingSelectedImage = new Image();
    loadingSelectedImage.src = loadingSelectedImageUrl;
	// on attend la fin du chargement
	setTimeout('loadingImageComplete()', 500);
}

function loadingImageComplete() {
	if(!loadingSelectedImage.complete && (loadingSelectedImageTimeOut > 0)) {
		// on attend la fin du chargement
		setTimeout('loadingImageComplete()', 500);
		loadingSelectedImageTimeOut = loadingSelectedImageTimeOut - 500;
	}
	else {
		if(loadingSelectedImageTimeOut > 0) {
			// on affiche l'image
			showImage2();
		}
		else {
			alert("Image not found OR loading time has expired.\nPlease try again.");
		}
	}
}

function showImage2() {
	// on fixe une taille pour la pop-up
	var largeur = loadingSelectedImage.width;
	var hauteur = loadingSelectedImage.height;
	
	// on fixe les coordonnées pour centrer la pop-up
	var gauche = ( screen.width - largeur ) / 2;
	var haut = ( screen.height - hauteur ) / 2;

//	// on ouvre la pop-up avec les bons paramètres
//	var options = "left="+ gauche +"px,top="+ haut +"px,width="+ largeur +",height="+ hauteur +",toolbar=0,resizable=0";
//	openWindow = window.open(loadingSelectedImageUrl, "", options);
//	while(!openWindow.document.body);
//	openWindow.document.body.style.margin = "0px";

    var frame = window.open('', '', 'width='+largeur+',height='+(hauteur+35)+',scrollbars=0,location=0,menubar=0,resizable=1');
    frame.document.write(
      '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" '
      +'"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n'
      +'<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\n'
      +'  <head>\n'
      +'    <title>SPGM: '+loadingSelectedImageUrl+'</title>'
      +'    <style type="text/css">body {margin: 0px}</style>\n'
      +'    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />\n'
      +'  </head>\n'
      +'  <body>\n'
      +'    <div style="margin: 0px;">\n'
      +'      <img src="'+loadingSelectedImageUrl+'" alt="'+loadingSelectedImageUrl+'" />\n'
      +'    </div>\n'
      +'    <div style="margin: 0px;text-align:center">\n'
      +'      <input type=button value="Fermer" onclick="window.close();" />\n'
      +'    </div>\n'
      +'  </body>\n'
      +'</html>'
    );

}
