
/*******************************************************/
/* Afficher et Cacher les composants. */

function br(i) {
 	window.open(i,"breve",'scrollbars=yes,width=350,height=300,left=100,top=100');
}


  function hide(s) {
     if (document.all) {
       if (document.all[s]) {
         document.all[s].visibility="invisible";
         eval("document.all."+s+".style.display=\"none\"");
       }
     } else {
       if (document.getElementById(s)) {
         document.getElementById(s).visibility="invisible";
         document.getElementById(s).style.display="none";
       }
     }
   }

 function show(s,shm) {
   if (!shm) shm="block";
   if (document.all) {
     if (document.all[s]) {
       document.all[s].visibility="visible";
       eval("document.all."+s+".style.display=\""+shm+"\"");
     }
   } else {
     if (document.getElementById(s)) {
       document.getElementById(s).visibility="visible";
       document.getElementById(s).style.display=shm;
     }
   }
 }

function swap(s,shm) {
   if (document.all) {
     if (document.all[s]) {
       if (document.all[s].visibility=="visible") {
       	 hide(s);
       } else {
         show(s,shm);
       }
     }
   } else {
     if (document.getElementById(s)) {
       if (document.getElementById(s).visibility=="visible") {
       	 hide(s);
       } else {
         show(s,shm);
       }
     }
   }
}


/* Rollover d'image : c = l'image, img = la nouvelle image */
function rover(c,img) { 
	if (d=document.getElementById(c)) {
		d.osrc=d.src;
		d.src=img;
	}
}
/* Rollout : remet l'image d'origine apres un rollover */
function rout(c) { 
	if (d=document.getElementById(c)) {
		if (d.osrc) d.src=d.osrc; 
	}
}

function openwin(url) {
        window.open(url,'_blank','scrollbars=yes,width=400,height=400,left=100,top=100');
}

function onglet(i,mx) {
	for(j=0;j<mx;j++) {
		if (j!=i) {
			hide("onh"+j);
			document.getElementById("ong"+j).className="ong";
		}
	}
	show("onh"+i);
	document.getElementById("ong"+i).className="ong_active";	
}


/* Remplacement de la selection, compatible moz / ie / opera : */
function setSelectionRange(input, selectionStart, selectionEnd) {
  if (input.setSelectionRange) {
    input.focus();
    input.setSelectionRange(selectionStart, selectionEnd);
  }
  else if (input.createTextRange) {
    var range = input.createTextRange();
    range.collapse(true);
    range.moveEnd('character', selectionEnd);
    range.moveStart('character', selectionStart);
    range.select();
  }
}

function setCaretToPos (input, pos) {
  setSelectionRange(input, pos, pos);
}

/* Ajoute le texte addBefore et addAfter à la sélection dans le composant input */
function addInSelection (input, addBefore, addAfter) {
  if (input.setSelectionRange) { // MOZ NS & Other
    var selectionStart = input.selectionStart;
    var selectionEnd = input.selectionEnd;
    var ll=selectionEnd+addBefore.length+addAfter.length;
    input.value = input.value.substring(0, selectionStart)+addBefore+input.value.substring(selectionStart,selectionEnd)+addAfter+input.value.substring(selectionEnd);
    if (selectionStart != selectionEnd) // has there been a selection
      setSelectionRange(input, selectionStart, ll);
    else // set caret
      setCaretToPos(input, ll-addAfter.length);
  } else if (input.caretPos) { // IE. With additionnal component.
    range=input.caretPos;
    if (range.parentElement() == input) {
      var isCollapsed = range.text == '';
      var ll=range.text.length+addBefore.length+addAfter.length;
      range.text = addBefore+range.text+addAfter;
      if (!isCollapsed)  { // there has been a selection
        range.moveStart('character', -ll);
        range.select();
      }
    }
  }
  input.focus();
}

function storeCaret (textEl) {
  if (textEl.createTextRange) 
    textEl.caretPos = document.selection.createRange().duplicate();
}


var htext=Array(
	"Affiche le texte en gras <br />&lt;b&gt;<b>gras</b>&lt;/b&gt;",
	"Affiche le texte en italique <br />&lt;i&gt;<i>italique</i>&lt;/i&gt;",
	"Affiche le texte en souligné <br />&lt;u&gt;<u>souligné</u>&lt;/u&gt;",
	"Crée un lien vers une page <br />&lt;a href=\"lien\"&gt;<a href=\"#\">Texte</a>&lt;/a&gt;",
	"Envoie une image associée au message."
	);
var tagopen=Array("<b>","<i>","<u>");
var tagclose=Array("</b>","</i>","</u>");

/* Utilisé par le forum pour afficher / masquer un texte d'aide */
function shelp(i) {
	if ((t=document.getElementById("helpline")) && (u=htext[i])) {
		t.innerHTML=u;
	}	
}
/* Remet le texte d'origine pour l'aide. */
function hhelp() {
	if (t=document.getElementById("helpline")) {
		t.innerHTML="Les boutons vous permettent de mettre en forme votre texte.";
	}	
}

function sstyle(i) {
	if (i==3) { // Link !
		alert('link');
	} else if (i==4) { // Image ! 
//		alert('image');		
	} else {
		addInSelection(document.forms['post'].texte,tagopen[i],tagclose[i]);
	}
}

function changeImage(iid,src) {
	if (i=document.getElementById(iid))  {
		i.src=src;
	} else {
		if (i=document.all[iid]) {
			i.src=src;
		}
	}
}

function forum_add_image(newdoc,url) {
	if (c=window.opener.document.getElementById('imglist')) {
		c.innerHTML=c.innerHTML + "<div id=\"img"+newdoc+"\">\n<a href=\"javascript:forum_del_image("+newdoc+");\"><img src=\"/images/effacer.png\" alt=\"Effacer cette image\" title=\"Effacer cette image\" /></a> &nbsp; <img src=\"/img/"+url+"\" alt=\"\">\n<input type=\"hidden\" name=\"imgs[]\" value=\""+newdoc+"\" />\n</div>";
	}
}

function forum_del_image(doc) {
	if (c=document.getElementById('imglist')) {
		for (i=0;i<c.childNodes.length;i++) {
			if (c.childNodes[i].id=='img'+doc) {
				c.removeChild(c.childNodes[i]);
				return;
			}
		}
	}
}


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_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_findObj(n, d) { //v4.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);
  if(!x && document.getElementById) x=document.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];}
}

/* Gestion des fenêtres iframes ou div à hauteur auto-ajustable : */

function getWindowHeight() {
    var windowHeight=0;
    if (typeof(window.innerHeight)=='number') {
        windowHeight=window.innerHeight;
    }
    else {
     if (document.documentElement&&
       document.documentElement.clientHeight) {
         windowHeight = document.documentElement.clientHeight;
    }
    else {
     if (document.body&&document.body.clientHeight) {
         windowHeight=document.body.clientHeight;
      }
     }
    }
    return windowHeight;
}

function autoSizeUpdate(e) {
  w=getWindowHeight();
  if (autoSizeHeights && autoSizeObjects) {
    for(i=0;i<autoSizeObjects.length;i++) {
      if (tb=document.getElementById(autoSizeObjects[i])) {
        tb.style.height=(w-autoSizeHeights[i])+"px";
      }
    }
  }
}

function initAutoSize() {
  autoSizeUpdate(null);
  window.onresize=autoSizeUpdate;
}
