function MM_preloadImages() { //v3.0
  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];}}
}

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_findObj(n, d) { //v4.01
  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);
  if(!x && d.getElementById) x=d.getElementById(n); 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 switchImage(imgName, imgSrc) 
{
  if (document.images)
  {
    if (imgSrc != "none")
    {
      document.images[imgName].src = imgSrc;
    }
  }
}

function SeeObj(objtxt,ReturnValue){
var z="",win;
	for(i in eval(objtxt)) z+=objtxt+"."+i+" : "+eval(objtxt+"[\""+i+"\"]")+"\n";
	if(ReturnValue){
		return z;
	} else {
		win=open();
		win.document.write(z.unactags().nl2br().txt2html());
		win.document.close();
	}
}

function XString_CleanSpace(){
var myexp=/\s+/g;/* tout les types d'espacement */
return this.replace(myexp,"");
}

function XString_LTrim(){
var myexp=/^\s+/;/* tout les types d'espacement, mais, n'efface que si ils sont en debut de chaine. */
return this.replace(myexp,"");
}

function XString_RTrim(){
var myexp=/\s+$/;/* tout les types d'espacement, qui vons jusqu'a la fin de la chaine. */
return this.replace(myexp,"");
}

function XString_Trim(){
return this.ltrim().rtrim();
}

function XString_UnacTags(){
var str=this,expr;
	expr=/</g;str=str.replace(expr,"&lt;");
	expr=/>/g;str=str.replace(expr,"&gt;");
return str;
}

function XString_AcTags(){
var str=this,expr;
	expr=/&lt;/g;str=str.replace(expr,"<");
	expr=/&gt;/g;str=str.replace(expr,">");
return str;
}

function XString_UnacEntity(){
var expr=/&/g;
return this.replace(expr,"&#38;");
}

function XString_AcEntity(){
var expr=/&#38;/g;
return this.replace(expr,"&");
}

function XString_Nl2Br(){
var expr=new RegExp("%0D%0A|%0A|%0D","g"),str=escape(this);
return unescape(str.replace(expr,"<BR>"));
}

function XString_Br2Nl(){
var expr=/<BR>/gi;
return this.replace(expr,unescape(this.nl));
}

function XString_Sp2Nbsp(){
var expr=/ /g;
return this.replace(expr,"&nbsp;");
}

function XString_Nbsp2Sp(){
var expr=/&nbsp;/g;
return this.replace(expr," ");
}

function XString_Txt2Html(){
var tmp="",chr,expr,str=escape(this);// pour unicode et bizarreries navigateur.

/* Traitement special unicode et MAC */
	expr=/%u2019/gi;str=str.replace(expr,"%27");
	expr=/%u0152/gi;str=str.replace(expr,"&OElig;");
	expr=/%u0153/gi;str=str.replace(expr,"&oelig;");
/* Force le OElig/oelig %8C/%9C et %CF/%CE pour MAC */
	if(document.layers && navigator.platform.toUpperCase().indexOf("MAC")!=-1){
		expr=/%CF/g;str=str.replace(expr,"&oelig;");
		expr=/%CE/g;str=str.replace(expr,"&OElig;");
	} else {
		expr=/%9C/g;str=str.replace(expr,"&oelig;");
		expr=/%8C/g;str=str.replace(expr,"&OElig;");
	}
	str=unescape(str);/* Fin traitement preliminaire */

/* balayage de la chaine et remplacement des char>160 par l'entitee correspondante */
	for(i=0;i<str.length;i++){
		chr=str.charCodeAt(i);
		if(chr>=160) tmp+="&"+this.tabentity[chr-160]+";"; else tmp+=String.fromCharCode(chr);
	}
return tmp;
}

/*	function Html2Txt(). version prototype.
	Transforme du HTML en son équivalence texte brute.
	output :
		retval (String) - La chaîne texte. */
function XString_Html2Txt(){
var expr,str=escape(this);// Traitement des bizzareries navigateurs.

/* Force le passage en texte du OElig/oelig */
	if(document.layers){// Netscape.
		if(navigator.platform.toUpperCase().indexOf("MAC")!=-1){// Le special Netscape pour MAC
			expr=/%26oelig%3B/g;str=str.replace(expr,"%CF");
			expr=/%26OElig%3B/g;str=str.replace(expr,"%CE");
		} else {	// les autres netscape.
			expr=/%26oelig%3B/g;str=str.replace(expr,"%9C");
			expr=/%26OElig%3B/g;str=str.replace(expr,"%8C");
		}
	} else { // IE PC.
		expr=/%26OElig%3B/g;str=str.replace(expr,"%u0152");
		expr=/%26oelig%3B/g;str=str.replace(expr,"%u0153");
	}
	str=unescape(str);/* Fin traitement preliminaire */

/* construis dynamiquement une expression reguliere par entitee du tableau et remplace les occurrences par le char correspondant */
	for(i=0;i<this.tabentity.length;i++){
		myexp=new RegExp("&"+this.tabentity[i]+";","g");/* creation dynamique d'expression reguliere */
		str=str.replace(myexp,String.fromCharCode(160+i));/* remplacement de l'entitee */
	}
return str;
}

function XString_IsMail(){
if(document.all){
// Cette version est plus restrictive , mais, ne fonctionne que sur IE.
var expr=/^([a-zA-Z0-9]+[_\-\.]?){0,}[a-zA-Z0-9]+@(([a-zA-Z0-9]+[_\-\.]?){0,}[a-zA-Z0-9]+){1,}\.[A-Za-z]+$/;
} else {
var expr=/^.[^@]+@.[^@]+\.[A-Za-z]+$/i;
}
return (this.search(expr)!=-1)? true: false;
}

/* declaration des prototypes. */
String.prototype.html2txt=XString_Html2Txt;
String.prototype.txt2html=XString_Txt2Html;
String.prototype.unactags=XString_UnacTags;
String.prototype.actags=XString_AcTags;
String.prototype.trim=XString_Trim;
String.prototype.rtrim=XString_RTrim;
String.prototype.ltrim=XString_LTrim;
String.prototype.cleanspace=XString_CleanSpace;
String.prototype.ismail=XString_IsMail;
String.prototype.unacentity=XString_UnacEntity;
String.prototype.acentity=XString_AcEntity;
String.prototype.nl2br=XString_Nl2Br;
String.prototype.br2nl=XString_Br2Nl;
String.prototype.sp2nbsp=XString_Sp2Nbsp;
String.prototype.nbsp2sp=XString_Nbsp2Sp;
/* initialisation du tableau d'entitee (160-255)*/
String.prototype.tabentity="nbsp,iexcl,cent,pound,curren,yen,brvbar,sect,uml,copy,ordf,laquo,not,shy,reg,macr,deg,plusmn,sup2,sup3,acute,micro,para,middot,cedil,sup1,ordm,raquo,frac14,frac12,frac34,iquest,Agrave,Aacute,Acirc,Atilde,Auml,Aring,AElig,Ccedil,Egrave,Eacute,Ecirc,Euml,Igrave,Iacute,Icirc,Iuml,ETH,Ntilde,Ograve,Oacute,Ocirc,Otilde,Ouml,times,Oslash,Ugrave,Uacute,Ucirc,Uuml,Yacute,THORN,szlig,agrave,aacute,acirc,atilde,auml,aring,aelig,ccedil,egrave,eacute,ecirc,euml,igrave,iacute,icirc,iuml,eth,ntilde,ograve,oacute,ocirc,otilde,ouml,divide,oslash,ugrave,uacute,ucirc,uuml,yacute,thorn,yuml".split(",");
if(navigator.platform.toUpperCase().indexOf("WIN")!=-1){
	String.prototype.nl="%0D%0A";// pour DOS 
} else if(navigator.platform.toUpperCase().indexOf("MAC")!=-1){
	String.prototype.nl="%0D";// pour MAC 
} else {
	String.prototype.nl="%0A";// pour X 
}



