var xWinScrollWin = null;
function xWinScrollTo(win,x,y,uTime) {
  var e = win;
  if (!e.timeout) e.timeout = 25;
  var st = xScrollTop(e, 1);
  var sl = xScrollLeft(e, 1);
  e.xTarget = x; e.yTarget = y; e.slideTime = uTime; e.stop = false;
  e.yA = e.yTarget - st;
  e.xA = e.xTarget - sl; // A = distance
  if (e.slideLinear) e.B = 1/e.slideTime;
  else e.B = Math.PI / (2 * e.slideTime); // B = period
  e.yD = st;
  e.xD = sl; // D = initial position
  var d = new Date(); e.C = d.getTime();
  if (!e.moving) {
    xWinScrollWin = e;
    _xWinScrollTo();
  }
}

function xScrollTop(e, bWin)
{
  var offset=0;
  if (!xDef(e) || bWin || e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {
    var w = window;
    if (bWin && e) w = e;
    if(w.document.documentElement && w.document.documentElement.scrollTop) offset=w.document.documentElement.scrollTop;
    else if(w.document.body && xDef(w.document.body.scrollTop)) offset=w.document.body.scrollTop;
  }
  else {
    e = xGetElementById(e);
    if (e && xNum(e.scrollTop)) offset = e.scrollTop;
  }
  return offset;
}

function xDef()
{
  for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])=='undefined') return false;}
  return true;
}

function xScrollLeft(e, bWin)
{
  var offset=0;
  if (!xDef(e) || bWin || e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {
    var w = window;
    if (bWin && e) w = e;
    if(w.document.documentElement && w.document.documentElement.scrollLeft) offset=w.document.documentElement.scrollLeft;
    else if(w.document.body && xDef(w.document.body.scrollLeft)) offset=w.document.body.scrollLeft;
  }
  else {
    e = xGetElementById(e);
    if (e && xNum(e.scrollLeft)) offset = e.scrollLeft;
  }
  return offset;
}

function _xWinScrollTo() {
  var e = xWinScrollWin || window;
  var now, s, t, newY, newX;
  now = new Date();
  t = now.getTime() - e.C;
  if (e.stop) { e.moving = false; }
  else if (t < e.slideTime) {
    setTimeout("_xWinScrollTo()", e.timeout);

    s = e.B * t;
    if (!e.slideLinear) s = Math.sin(s);
//    if (e.slideLinear) s = e.B * t;
//    else s = Math.sin(e.B * t);

    newX = Math.round(e.xA * s + e.xD);
    newY = Math.round(e.yA * s + e.yD);
    e.scrollTo(newX, newY);
    e.moving = true;
  }  
  else {
    e.scrollTo(e.xTarget, e.yTarget);
    xWinScrollWin = null;
    e.moving = false;
    if (e.onslideend) e.onslideend();
  }  
}

function goTop(){
	xWinScrollTo(window, 0, 0, 1000);
}

var minHeight = 150;
var maxHeight = 1000;

var curHeight = 150;

function setAll(newSize, text, div_id){
	var currentTextarea = document.getElementById(text);
	var curDiv = document.getElementById(div_id);
	
	curHeight = curHeight + Number(newSize);
	
	if( curHeight < minHeight ){
		curHeight = minHeight;
	}
	else if( curHeight > maxHeight ){
		curHeight = maxHeight;
	}
	
	currentTextarea.style.height = curHeight+"px";
	curDiv.style.height = curHeight+"px";
	
	currentTextarea.focus();
	return false;
}

function SFFATR(curTextarea, curDivPrev){
	var curText = document.getElementById(curTextarea).value;
	
	curText = curText.replace(/\[b\](.*)\[\/b\]/gi, '<span class="gras">$1</span>');
	curText = curText.replace(/\<italique\>(.*)\<\/italique\>/gi, '<span class="italique">$1</em>');
	curText = curText.replace(/\<souligne\>(.*)\<\/souligne\>/gi, '<span class="souligne">$1</em>');
	curText = curText.replace(/\<barre\>(.*)\<\/barre\>/gi, '<span class="barre">$1</em>');
	
	curText = curText.replace(/\<lien\>(.*)\<\/lien\>/gi, '<a href="$1">$1</a>');
	curText = curText.replace(/\<lien url="([^"]+)"\>(.*)\<\/lien\>/gi, '<a href="$1">$2</a>');
	
	curText = curText.replace(/\<image url="([^"]+)" \/\>/gi, '<img src="$1" />');
	
	curText = curText.replace(/\<liste type="(main|nombres|normal)"\>(.+?)\<\/liste\>/gi, '<ul class="sffcode_list_$1">$2</ul>');
	curText = curText.replace(/\<liste\>(.+?)\<\/liste\>/gi, '<ul class="sffcode_list_normal">$1</ul>');
	
	curText = curText.replace(/\<citation source="moi"\>(.+?)\<\/citation\>/gi, '<br /><div class="sffcode_quote_top">J\'ai écrit :</div><div class="sffcode_quote_main">$1 </div><br />');
	curText = curText.replace(/\<citation source="(.+?)"\>(.+?)\<\/citation\>/gi, '<br /><div class="sffcode_quote_top">$1 a écrit :</div><div class="sffcode_quote_main">$2 </div><br />');
	curText = curText.replace(/\<citation\>(.+?)\<\/citation\>/gi, '<br /><div class="sffcode_quote_top">Citation :</div><div class="sffcode_quote_main">$1 </div><br />');
	
	curText = curText.replace(/\<position valeur="(centre|gauche|droite)"\>(.+?)\<\/position\>/gi, '<div class="sffcode_position_$1">$2</div>');
	
	curText = curText.replace(/\<couleur valeur="(rouge|noir|argent|rose|vert|gris|bleu|jaune|marron)"\>(.+?)\<\/couleur\>/gi, '<span class="sffcode_couleur_$1">$2</span>');
	
	curText = curText.replace(/(\s):-°/g, '$1<img src="http://www.siteduzero.com/Templates/images/smilies/siffle.png" alt=":-°" />');
	curText = curText.replace(/:-°(\s)/g, '<img src="http://www.siteduzero.com/Templates/images/smilies/siffle.png" alt=":-°" />$1');
	curText = curText.replace(/(\s)\^_\^/g, '$1<img src="http://www.siteduzero.com/Templates/images/smilies/hihi.png" alt=":-°" />');
	curText = curText.replace(/\^_\^(\s)/g, '<img src="http://www.siteduzero.com/Templates/images/smilies/hihi.png" alt=":-°" />$1');
	
	curText = rreplace("\n", '<br />', curText);
	document.getElementById(curDivPrev).innerHTML = curText;
	
	setTimeout("200");
	//setTimeout('SFFATR(\'' + curTextarea + '\',\'' + curDivPrev + '\');'), 200);
}

function addChar(newChar, text, curDivPrev){
	var curText = document.getElementById(text);
	
	curText.value += newChar;
	
	SFFATR(text, curDivPrev);
	
	curText.focus();
	return false;
}

function rreplace(string_needle, string_replace, string_haystack){
	while (string_haystack.indexOf(string_needle) > -1){ //Tant que l'on trouve le caractère ou la chaîne de caractère à remplacer, on utilise trictement supérieur à moins 1 au lieu de supérieur ou égal à 0 pour une question de rapidité (tout du moins en php, du coup ;) )
		string_haystack = string_haystack.substring(0, string_haystack.indexOf(string_needle)) + string_replace + string_haystack.substring ((string_haystack.indexOf(string_needle) + string_needle.length), string_haystack.length);
	}
	
	return string_haystack;
}

function ajouter_balises(id_textarea, balise_debut, balise_fin, id_prev){
	var champ = document.getElementById(id_textarea);
	var scroll = champ.scrollTop;
	
	if(balise_fin == ''){
		balise_debut = ' ' + balise_debut + ' ';
	}
	
	if (champ.curseur){
		champ.curseur.text = balise_debut + champ.curseur.text + balise_fin;
	}
	else if (champ.selectionStart >= 0 && champ.selectionEnd >= 0){
		var debut = champ.value.substring(0, champ.selectionStart);
		var entre = champ.value.substring(champ.selectionStart, champ.selectionEnd);
		var fin = champ.value.substring(champ.selectionEnd);
		
		champ.value = debut + balise_debut + entre + balise_fin + fin;
		champ.focus();
		champ.setSelectionRange(debut.length + balise_debut.length, champ.value.length - fin.length - balise_fin.length);
	}
	else{
		champ.value  += balise_debut + balise_fin;
		champ.focus();
	}
	
	champ.scrollTop = scroll;
	SFFATR(id_textarea, id_prev);
}

function add_link(id_textarea, id_prev){
	var champ = document.getElementById(id_textarea);
	var result = prompt('Veuillez indiquer l\'adresse du lien', 'http://');
	var inter_link;
	
	if ((!champ.curseur && champ.selectionStart == champ.selectionEnd) || (champ.curseur && champ.curseur.text == '' && !champ.selectionStart && !champ.selectionEnd)){
		inter_link = prompt('Texte du lien ?');
		if( !inter_link ){
			inter_link = '';
		}
	}
	else {
		inter_link = '';
	}
	
	if( result ){
		var debut = '[url=' + result + ']';
	}
	else {
		var debut = '[url]';
	}
	
	ajouter_balises(id_textarea, debut + inter_link, '[/url]', id_prev);
}

function add_img(id_textarea, id_prev){
	var champ = document.getElementById(id_textarea);
	var result = prompt('Veuillez indiquer l\'adresse de l\'image', '');
	
	ajouter_balise(id_textarea, '[img]' + result + '[/img]', '', id_prev);
}

function add_quote(id_textarea, id_prev){
	var result = prompt('Veuillez indiquer l\auteur de la citation', '');
	
	if (result){
		ajouter_balises(id_textarea, '[quote=' + result + ']', '[/quote]', id_prev);
	}
	else {
		ajouter_balises(id_textarea, '[quote]', '[/quote]', id_prev);
	}
}

function correctPNG() // correctly handle PNG transparency in Win IE 5.5 or higher.
{
	for(var i=0; i<document.images.length; i++)
    {
        var img = document.images[i]
        var imgName = img.src.toUpperCase()
        if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
            {
                var imgID = (img.id) ? "id='" + img.id + "' " : ""
                var imgClass = (img.className) ? "class='" + img.className + "' " : ""
                var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
                var imgStyle = "display:inline-block;" + img.style.cssText
                if (img.align == "left") imgStyle = "float:left;" + imgStyle
                if (img.align == "right") imgStyle = "float:right;" + imgStyle
                if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle               
                var strNewHTML = "<span " + imgID + imgClass + imgTitle
                + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
				+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
                + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
                img.outerHTML = strNewHTML
                i = i-1
            }
    }
	setTimeout("HeureCheckEJS()", 1000);
}

function verifPseudo(pseudo,box,get){
	if(pseudo != ''){
		if(pseudo.length<3 && get == 'pseudo')
			document.getElementById(box).innerHTML = '<span style="color:#cc0000"><b>Trop court</b></span>';
		else if(pseudo.length>30 && get == 'pseudo')
			document.getElementById(box).innerHTML = '<span style="color:#cc0000"><b>Trop long</b></span>';
		else if(texte = file('ajax/verifpseudo.php?'+escape(get)+'='+escape(pseudo))){
			if(texte == 1)
				document.getElementById(box).innerHTML = '<span style="color:#cc0000"><b>Déjà pris</b></span>';
			else if(texte == 2)
				document.getElementById(box).innerHTML = '<span style="color:#1A7917"><b>'+get.substring(0,1).toUpperCase()+get.substring(1,get.length)+' libre</b></span>';
			else
			document.getElementById(box).innerHTML = '';
		}
	}
}

function file(fichier){
if(window.XMLHttpRequest) // FIREFOX
	xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
	xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
	return(false);
	xhr_object.open("GET", fichier, false);
	xhr_object.send(null);
	if(xhr_object.readyState == 4) return(xhr_object.responseText);
	else return(false);
}
function securite(password){
	passwordlow = password.toLowerCase();
	majuscule = false;
	//On vérifie si il y avait des majuscules
	if(password != passwordlow)
		majuscule = true;
	taille = password.length;
	numerique = false;
	// On vérifie qu'il y a des chiffres
	for(i=0;i<taille;i++){
		caractere = password.substring(i,i+1);
		if(!isNaN(caractere))
			numerique = true;
	}
	if(taille < 6){
			document.getElementById("secur").style.color = 'red';
			document.getElementById("secur").innerHTML = 'Trop Court';
	}
	else if(taille > 14){
			document.getElementById("secur").style.color = 'red';
			document.getElementById("secur").innerHTML = 'Trop long';
	}
	else if((majuscule==false && numerique==false)){
			document.getElementById("secur").style.color = 'red';
			document.getElementById("secur").innerHTML = 'Faible';
	}
    else{
		if(majuscule && numerique && taille>8){
			document.getElementById("secur").style.color = 'green';
			document.getElementById("secur").innerHTML = 'Elevé';
        }
		else if(majuscule || numerique){
			document.getElementById("secur").style.color = 'orange';
			document.getElementById("secur").innerHTML = 'Moyen';
		}
    }
}

function affichenote(valeur){
	for(i=valeur;i<=5;i++){
		if(i!=0)document.getElementById('note'+i).src = '../images/note/vide.png';
	}
	for(i=1;i<=valeur;i++){
		document.getElementById('note'+i).src = '../images/note/plein.png';
	}
}
function setnote(valeur){
	document.getElementById('notesubmit').value = valeur;
}

function HeureCheckEJS(){
	var krucial = new Date;
	var heure = krucial.getHours();
	var min = krucial.getMinutes();
	var sec = krucial.getSeconds();
	if (sec < 10)
		sec0 = "0";
	else
		sec0 = "";
	if (min < 10)
		min0 = "0";
	else
		min0 = "";
	if (heure < 10)
		heure0 = "0";
	else
		heure0 = "";
	DinaHeure = heure0+heure+":"+min0+min+":"+sec0+sec;
	which = DinaHeure
	if (document.getElementById)
		document.getElementById("heure").innerHTML=which;
	setTimeout("HeureCheckEJS()", 1000);
}

var cadre = 1;
function affcadre(id){
arr = new Array(0,2,1);
	if(id!=cadre){
		document.getElementById('type').value = id;
		new Effect.BlindUp(document.getElementById('cache'+arr[id]));
		setTimeout("new Effect.BlindDown(document.getElementById('cache"+id+"'))", 1000);
		cadre = id;
	}
}

function addJapoucode(instext) {
    var mess = document.getElementById("message");
        //IE support
        if (document.selection) {
            mess.focus();
            sel = document.selection.createRange();
            sel.text = instext;
            document.forum.focus();
        }
        //MOZILLA/NETSCAPE support
        else if (mess.selectionStart || mess.selectionStart == "0") {
            var startPos = mess.selectionStart;
            var endPos = mess.selectionEnd;
            var chaine = mess.value;

            mess.value = chaine.substring(0, startPos) + instext + chaine.substring(endPos, chaine.length);

            mess.selectionStart = startPos + instext.length;
            mess.selectionEnd = endPos + instext.length;
            mess.focus();
        } else {
            mess.value += instext;
            mess.focus();
        }
}
	
window.onload = correctPNG();
