// JavaScript Document

// Gestion du click dans les events move / Réinit sur focus
var boutonEnfonce = false;
document.onmousedown = function() { boutonEnfonce = true; }
document.onmouseup = function() { boutonEnfonce = false; }

// ----------------------------------------------------------
// Fonctions générales
// ----------------------------------------------------------

// Création d'un objet XMLHTTPRequest
function creer_XHR(url) {
	var oXHR = null; 
	if(window.XMLHttpRequest) 			oXHR = new XMLHttpRequest(); 
	else if(window.ActiveXObject)		oXHR = new ActiveXObject("Microsoft.XMLHTTP"); 
	oXHR.open("POST", url, true); 
	return oXHR;
}

// Déplacement d'une fenetre
var offsetX = 0; var offsetY = 0;
function deplace_fenetre(fenetre, e) {
	return;
	if (boutonEnfonce) {
		var object = null;
		if (document.getElementById(fenetre)) 			object = document.getElementById(fenetre);
		else if (top.document.getElementById(fenetre)) 	object = top.document.getElementById(fenetre);
		var x = 0; var y = 0;
		if (e.x != null && e.y != null) 			{ x = e.x; 			y = e.y; }
		if (e.clientX != null && e.clientY != null) { x = e.clientX; 	y = e.clientY; }
		if (!offsetX && !offsetY) { 
			offsetX = (x - object.offsetLeft); 
			offsetY = (y - object.offsetTop); 
		}
		object.style.left = (x - offsetX).toString()+"px";
		object.style.top = (y - offsetY).toString()+"px";
	} else {
		offsetX = 0; offsetY = 0;
	}
}
// Affichage d'une fenetre
function affiche_fenetre(fenetre, e, url, affiche, titre) {
	var object = null;
	if (document.getElementById(fenetre)) 			object = document.getElementById(fenetre);
	else if (top.document.getElementById(fenetre)) 	object = top.document.getElementById(fenetre);
	if (titre) {
		if (document.getElementById(fenetre+"_titre")) 			document.getElementById(fenetre+"_titre").innerHTML = titre;
		else if (top.document.getElementById(fenetre+"_titre")) top.document.getElementById(fenetre+"_titre").innerHTML = titre;
	}
	var opacite = getOpac(fenetre);
	if (affiche == 1 && opacite == 0) {
		var x = 0;
		var y = 0;
		if (e.x != null && e.y != null) { x = e.x; y = e.y; }
		if (e.clientX != null && e.clientY != null) { x = e.clientX; y = e.clientY; }
		object.style.left = (x>parseFloat(object.style.width)+20?(x-10-parseFloat(object.style.width)):(x+10)).toString()+"px";
		object.style.top = (y>parseFloat(object.style.height)+20?(y-10-parseFloat(object.style.height)):(y+10)).toString()+"px";
	}
	if (!url) {
		if (affiche == 2)		opacity(fenetre, opacite, (opacite==100?80:100), 1000);
		else					opacity(fenetre, opacite, (affiche?80:0), 1000);
	} else {
		var xhr_object = creer_XHR(url);
		xhr_object.onreadystatechange = function() { 
			if(xhr_object.readyState == 4) {
				if (document.getElementById(fenetre+"_content")) 
					document.getElementById(fenetre+"_content").innerHTML = xhr_object.responseText;
				else if (top.document.getElementById(fenetre+"_content")) 
					top.document.getElementById(fenetre+"_content").innerHTML = xhr_object.responseText;
				if ((opacite == 0 && affiche) || (opacite > 0 && !affiche))
					opacity(fenetre, (affiche?0:80), (affiche?80:0), 1000);
			}
		} 
		xhr_object.send(null); 
	}
}
// Enlever les espaces à gauche et à droite
function trim(chaine)
{
	return chaine.replace(/^\s+/g,'').replace(/\s+$/g,'')
}
function zeropad(chaine, longueur) {
	while (chaine.length < longueur) {
		chaine = "0"+chaine;
	}
	return chaine;
}
// Fondu sur un div
function opacity(id, opacStart, opacEnd, millisec) {
	changeOpac(opacStart, id);
	var speed = Math.round(millisec / 100);
    var timer = 0;
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')", (timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++) {
            setTimeout("changeOpac(" + i + ",'" + id + "')", (timer * speed));
            timer++;
        }
    }
}
// Changement d'opacity pour les différents browsers web
function changeOpac(opacity, id) {
	var object = null;
	if (document.getElementById(id)) 			object = document.getElementById(id).style;
	else if (top.document.getElementById(id)) 	object = top.document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
	object.visibility = (opacity == 0?"hidden":"visible");
} 
// Récup de l'opacity courante pour les différents browsers web
function getOpac(id) {
	var object = null;
	if (document.getElementById(id)) 			object = document.getElementById(id).style;
	else if (top.document.getElementById(id)) 	object = top.document.getElementById(id).style;
    if (object.opacity) 			return object.opacity * 100;
    else if (object.MozOpacity) 	return object.MozOpacity * 100;
    else if (object.KhtmlOpacity) 	return object.KhtmlOpacity * 100;
	else 							return 0;
}
// Affichage des smileys
function affiche_smileys() {
	if (document.getElementById("smileys").style.visibility == "visible") {
		document.getElementById("smileys").style.visibility = "hidden";
		if (document.getElementById("titre")) document.getElementById("titre").style.width = "335px";
		if (document.getElementById("texte")) document.getElementById("texte").style.width = "388px";
	} else {
		document.getElementById("smileys").style.visibility = "visible";
		if (document.getElementById("titre")) document.getElementById("titre").style.width = "180px";
		if (document.getElementById("texte")) document.getElementById("texte").style.width = "234px";
		if (document.getElementById("smileys").innerHTML == "") {
			var xhr_object = creer_XHR("actions.php?action=affsmi");
			xhr_object.onreadystatechange = function() { 
				if(xhr_object.readyState == 4) {
					document.getElementById("smileys").innerHTML = xhr_object.responseText;
				}
			} 
			xhr_object.send(null);
		}
	}
}
// Ajout d'un smiley / code
function ajoute_smiley(smiley) {
	var message = document.getElementById("texte");
	message.focus();
	if (message.createTextRange) {
		document.selection.createRange().text = " [" + smiley + "] ";
	} else if(typeof message.selectionStart != 'undefined') {
		var start = message.selectionStart;
		message.value = message.value.substr(0, start) + "[" + smiley + "] " + 
							message.value.substr(message.selectionEnd);
		message.selectionStart = start + smiley.length + 3;
	    message.selectionEnd = start + smiley.length + 3;
	} else {
		message.value = message.value + "[" + smiley + "] ";
	}
}

// Envoyer un fichier
function upload_fichier() {
	fenpop = open("upload.php", "chat_popup", 
		"toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,alwaysRaised=1,width=500,height=300");
	fenpop.window.focus();
}

if (window.addEvent) {
	window.addEvent('domready', function() {
		$$('.fenetre').each(function(elt, key) {
			new Drag.Move(elt, {'container': $(document), 'droppables': $(document)});
		});
	});
	
}