function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadimg() { //v3.0
  var d=document; if(d.img){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadimg.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];}}
}

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}

function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function openWindow(theURL,winName) {
  window.open(theURL,winName);
}

function openWindow(theURL,winName,features) {
  window.open(theURL,winName,features);
}

//Pour fermer les fenetres volantes
function closewindow() {
self.close();
}

// pour les checkbox
function allchecked(field){
	for( i = 0 ; i < field.length ; i ++){field[i].checked=true;}
}

// pour les checkbox
function allunchecked(field){
	for( i = 0 ; i < field.length ; i ++){ field[i].checked=false;}
}

function CheckLen(field, size, counter){
        strLen =field.value.length;
        if(strLen>size){
                field.value = field.value.substring(0,size);
                strLen = size;
        }
        counter.value = strLen;
        return true;
}

function CheckLenAlert(field, size)
{
        strLen =field.value.length;
        if(strLen>size)
        {
                field.value = field.value.substring(0,size);
        }
        return true;
}

//Verifie si un champs est vide
function isEmpty(field){
         if(field==null) return true;
         if(field.length<1) return true;
         for(i=0;i<field.length;i++) {
                if(field.charAt(i)!=' ') return false;
         }
         return true;
}

//Verifie le format d'une date
function checkDateInfDate( dj , dm , da , fj ,fm , fa ) 
{
	var amin=1970; // annee mini
    var amax=2037; // annee maxi

    if ( ((isNaN(dj))||(dj<1)||(dj>31)) ) 
	{
        return(false);
    }

    if ( ((isNaN(dm))||(dm<1)||(dm>12)) ) 
    {
        return(false);
    }

    if ( ((isNaN(da))||(da<amin)||(da>amax)) ) 
    {
        return(false);
    }

    if ( ((isNaN(fj))||(fj<1)||(fj>31)) ) 
	{
        return(false);
    }

    if ( ((isNaN(fm))||(fm<1)||(fm>12)) ) 
    {
        return(false);
    }

    if ( ((isNaN(fa))||(fa<amin)||(fa>amax)) ) 
    {
        return(false);
    }

	if( !checkDate( dj+'/'+dm+'/'+da ) )
	{
		return false;	
	}

	if( !checkDate( fj+'/'+fm+'/'+fa ) )
	{
		return false;	
	}

//date 1
	var d1=new Date(dj,dm-1,da );
	j2=d1.getDate();
    m2=d1.getMonth()+1;
    a2=d1.getFullYear();
    
    if (a2<=100) {a2=1900+a2;}
    
//date 2    
	var d2=new Date(fj,fm-1,fa );
	j2=d2.getDate();
    m2=d2.getMonth()+1;
    a2=d2.getFullYear();
    
    if (a2<=100) {a2=1900+a2;}
    
    if (	da != fa && da > fa)
	{
		alert('Erreur : Date de fin < Date de debut !');
		return false;
	}
	else if (dm > fm && da == fa)
	{
		alert('Erreur : Date de fin < Date de debut !');
		return false;
	}
	else if (dm==fm && dj > fj)
	{
		alert('Erreur : Date de fin < Date de debut !');
		return false;
	}
	return true;
}

//Verifie le format d'une date
function checkDate(thedate) {
	var lang = 'FR';
	var amin=1970; // annee mini
    var amax=2037; // annee maxi
    if(thedate==null) return true;
	if(thedate.length<1) return true;
	if(thedate.length!=10) return false;
	for(i=0;i<10;i++) {
	   c =  thedate.charAt(i);
	   if(  (c<'0' || '9'<c || i==2 || i==5) && (c!='/' || (i!=2 && i!=5))  ) return false;
	}
	if(lang == 'FR') {
	   jj=thedate.substring(0,2);
	   mm=thedate.substring(3,5);
	} else {
	   mm=thedate.substring(0,2);
	   jj=thedate.substring(3,5);
	}
	aa=thedate.substring(6,10);
//ajout du test de validite de la date	
	if ( ((isNaN(jj))||(jj<1)||(jj>31)) ) 
	{
        return(false);
    }
    
    if ( ((isNaN(mm))||(mm<1)||(mm>12)) ) 
    {
        return(false);
    }
    
    if ( ((isNaN(aa))||(aa<amin)||(aa>amax)) ) 
    {
        return(false);
    }
    var d2=new Date(aa,mm-1,jj);
    j2=d2.getDate();
    m2=d2.getMonth()+1;
    a2=d2.getFullYear();
    
    if (a2<=100) {a2=1900+a2; alert(a);}
    
    if ( (jj!=j2)||(mm!=m2)||(aa!=a2) ) 
    {
        return(false);
    }
    else 
    {
        return(true)
    }
/*
	if(jj<1 || 31<jj) return false;
	if(mm<1 || 12<mm) return false;
	if(aa<1900 || 9000<aa) return false;
	return true;
*/	
}

//Verifie le format d'une date
function checkDateJJMM(thedate) {
	if(thedate==null) return true;
	if(thedate.length<1) return true;
	if(thedate.length!=5) return false;
	for(i=0;i<5;i++) {
	   c =  thedate.charAt(i);
	   if(  (c<'0' || '9'<c || i==2 ) && (c!='/' || i!=2 ) ) return false;
	}
   	jj=thedate.substring(0,2);
   	mm=thedate.substring(3,5);
	if(jj<1 || 31<jj) return false;
	if(mm<1 || 12<mm) return false;
	return true;
}

//Veifie le format d'un temps
function checkTime(thetime) {
	if(thetime==null) return true;
	if(thetime.length<1) return true;
	if(thetime.length!=8) return false;
	for(i=0;i<8;i++) {
	   c =  thetime.charAt(i);
	   if(  (c<'0' || '9'<c || i==2 || i==5) && (c!=':' || (i!=2 && i!=5))  ) return false;
	}
	
	hh=thetime.substring(0,2);
	mm=thetime.substring(3,5);
	ss=thetime.substring(6,8);
	if(hh<0 || 24<hh) return false;
	if(mm<0 || 60<mm) return false;
	if(ss<0 || 60<ss) return false;
	return true;
}

//Verifie le format d'un temps
function checkTimeHHMM(thetime) {
	if(thetime==null) return true;
	if(thetime.length<1) return true;
	if(thetime.length!=5) return false;
	for(i=0;i<5;i++) {
	   c =  thetime.charAt(i);
	   if(  (c<'0' || '9'<c || i==2 || i==5) && (c!=':' || (i!=2 && i!=5))  ) return false;
	}
	
	hh=thetime.substring(0,2);
	mm=thetime.substring(3,5);
	
	if(hh<0 || 24<hh) return false;
	if(mm<0 || 60<mm) return false;
	
	return true;
}

//Verifie le format d'un integer pour une valeur
function checkInteger(theint) {
	if(theint==null) return true;
	if(theint.length<1) return true;
	for(i=0;i<theint.length;i++) {
	   c =  theint.charAt(i);
	   if(c<'0' || '9'<c ) return false;
	}
	return true;
}

//Verifie le format d'un integer pour un champ
function checkIntegerChamp(thethis) {
	if(thethis.value==null) return true;
	if(thethis.value.length<1) return true;
	for(i=0;i<thethis.value.length;i++) {
	   c =  thethis.value.charAt(i);
	   if(c<'0' || '9'<c ) return false;
	}
	return true;
}

//Verifie le format d'un prix ( 1000.00)
function checkPrix(theint) {
	if(theint==null) return true;
	if(theint.length<1) return true;
	for(i=0;i<theint.length;i++) {
	   c =  theint.charAt(i);
	   if((c<'0' || '9'<c )&& (c!='.')) return false;
	}
	return true;
}

function checkFloat(thefloat) {
	if(thefloat==null) return true;
	if(thefloat.length<1) return true;
	for(i=0;i<thefloat.length;i++) {
	   c =  thefloat.charAt(i);
	   if((c<'0' || '9'<c )&& (c!='.')) return false;
	}
	return true;
}

function list_moveOption(src, dest)
{
	/*
	+-------------+
	| check input |
	+-------------+
	*/
	
	if ( dest.length == dest.maxlength )
	{
		alert('Liste pleine');
		return false;
	}
	
	if ( src.selectedIndex == -1 )
	{
		alert('Selectionnez une ou plusieurs item(s)');
		return false;
	}
	
	
	
	for ( i = 0 ; i < src.length ;  i++ )
	{
		if ( dest.length == dest.maxlength )
		{
			break;
		}
		
		if ( src[i].selected > 0  )
		{
			/*
			+------------+
			| add option |
			+------------+
			*/
			
			var o = new Option(src.options[i].text, src.options[i].value,false,false);
			 
			dest.options[dest.length]= o;
		
			/*
			+---------------+
			| remove option |
			+---------------+
			*/
			
			src.options[i] = null;
			
			i--;
		}
	}
	
	return false;
}

//Remplace un caractere par un autre pour un champs donne
function replaceStr(toCheck,strOld,strNew) {
    var tmp = toCheck.value;
    while ( tmp.indexOf(strOld) > 0) {
        tmp=tmp.substring(0,tmp.indexOf(strOld))+strNew+tmp.substring(tmp.indexOf(strOld)+strOld.length,tmp.length);
    }
    toCheck.value=tmp;
}

//Remplace un caractere par un autre pour une chaine
function replaceStrForChaine(toCheck,strOld,strNew) {
    var tmp = toCheck;
    while ( tmp.indexOf(strOld) > 0) {
        tmp=tmp.substring(0,tmp.indexOf(strOld))+strNew+tmp.substring(tmp.indexOf(strOld)+strOld.length,tmp.length);
    }
    toCheck=tmp;
}


//Verifie si un champs email est valide : s'il est different de nul et s'il contient un @
function isMail(field)
{
	if ( field.indexOf( ' ' ) >= 0 ) 	return false ;
	if(field.length < 5 ) 		 	return false ;
	if(field.indexOf('@') < 3 ) 	 	return false;
	
	var i = field.indexOf('@');
	if( i <= 0 ) return false;
	
	field =  field.substring( i + 1 , field.length ); 
	var j = field.indexOf('@');
	if( j >= 0 ) return false ;
	
	if( field.length < 1 )  return false;
	
	var j = field.indexOf( '.' );
	if ( j <= 0 ) return false;
	if ( field.substring( 0 ,j ) <= 0 ) return false;
	if ( field.substring( j+1 , field.length ) <= 0 ) return false; 
	
	return true;
}

function Is() {
    var agent = navigator.userAgent.toLowerCase();
    this.major = parseInt(navigator.appVersion);
    this.minor = parseFloat(navigator.appVersion);
    this.ns  = ((agent.indexOf('mozilla')!=-1) && ((agent.indexOf('spoofer')==-1) && (agent.indexOf('compatible') == -1)));
    this.ns2 = (this.ns && (this.major == 2));
    this.ns3 = (this.ns && (this.major == 3));
    this.ns4b = (this.ns && (this.minor < 4.04));
    this.ns4 = (this.ns && (this.major >= 4));
    this.ie   = (agent.indexOf("msie") != -1);
    this.ie3  = (this.ie && (this.major == 2));
    this.ie4  = (this.ie && (this.major >= 4));
    this.op3 = (agent.indexOf("opera") != -1);
    this.win   = (agent.indexOf("win")!=-1);
    this.mac   = (agent.indexOf("mac")!=-1);
    this.unix  = (agent.indexOf("x11")!=-1);
}

var is = new Is();

var ie = document.all ? true : false;
var ns4 = document.layers ? true : false;
var ns6 = document.getElementById && !document.all;
var ie4 = (document.all && !document.getElementById)? true : false;
var ie5 = (document.all && document.getElementById)? true : false;


function Show_Hide(nObjet) 
{
 if(ie) { // Internet explorer
   eval(nObjet).style.visibility = 
    (eval(nObjet).style.visibility=='visible'?'hidden':'visible');
 }
 else if(ns4) { // Netscape 4.x
	//document.eval(nObjet).visibility = 
	//(document.eval(nObjet).visibility=='show'?'hidden':'show');
}
 else if(ns6) { // Netscape 6 (mozilla)
   var divns6 = document.getElementsByTagName("div")
   divns6[nObjet].style.visibility = 
    (divns6[nObjet].style.visibility=='visible'?'hidden':'visible');
 }
}

function Hide(monobjet) 
{
  if(ie) { // Internet explorer
    eval(monobjet).style.visibility = 'hidden';
  }
  else if(ns4) { // Netscape 4.x
    //document.eval(monobjet).visibility = 'hidden';
  }
  else if(ns6) { // Netscape 6 (mozilla)
    var divns6 = document.getElementsByTagName("div")
    divns6[monobjet].style.visibility = 'hidden';
	}
}

function Show(monobjet) 
{
  if(ie) { // Internet explorer
    eval(monobjet).style.visibility = 'visible';
  }
  else if(ns4) { // Netscape 4.x
    //document.eval(monobjet).visibility = 'show';    
  }
  else if(ns6) { // Netscape 6 (mozilla)
    var divns6 = document.getElementsByTagName("div")
    divns6[monobjet].style.visibility = 'visible';
  }
}


function getLeft(l)
{
  if (l.offsetParent) return (l.offsetLeft + getLeft(l.offsetParent));
  else return (l.offsetLeft);
}

//serializeRTE
function serializeRTE(src)
{
	var str= src.serialize();
	str = str.replace (/\r\n/g, " ");
	str = str.replace (/\n/g, " ");
	return str;
}

//methode pour afficher les RTES
var rtedraw	= "";
function drawrte()
{
	try
	{
		while(true)
		{
			var pos = rtedraw.indexOf(',');
			if( pos == -1 )
				break;
			pos = pos+1;
			pos2 = rtedraw.indexOf(',', pos );
			if( pos2 == -1 )
				pos2 = rtedraw.length;
			var tmp = rtedraw.substring( pos, pos2 );
			rtedraw = rtedraw.substring( pos,rtedraw.length );
			try
			{
				eval(tmp+'.draw();');
			}
			catch(e){}
		}
	}catch(e1){}
}

// ADD NBO
function MM_jumpMenu(targ,selObj,restore,header){ //v3.0
  if(!header || selObj.selectedIndex > 0) eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function MM_jumpMenuGo(selName,targ,restore,header){ //v3.0
  var selObj = MM_findObj(selName); if (selObj) MM_jumpMenu(targ,selObj,restore,header);
}

// ADD pour flash
//v1.0
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '<object ';
  for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
  str += '>';
  for (var i in params)
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  str += '<embed ';
  for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
  str += ' ></embed></object>';

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "id":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}

