/* getElementsByClass ! */
function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

/* Envoie le formulaire */
function envoyer(input) {
	input.parentNode.submit();
}

/* BBCODE pour répondre à une conversation */
function bbcodeMessageRepondre(bbdebut, bbfin)	{
	var input = window.document.repondre.message;
	bbcode(bbdebut, bbfin, input);
}

/* BBCODE pour une nouvelle conversation */
function bbcodeMessageNouveau(bbdebut, bbfin)	{
	var input = window.document.nouveau.message;
	bbcode(bbdebut, bbfin, input);
}

/* BBCODE pour un nouveau sujet sur le forum */
function bbcodeForumNouveau(bbdebut, bbfin)	{
	var input = window.document.nouveau.message;
	bbcode(bbdebut, bbfin, input);
}

/* BBCODE pour répondre à un sujet sur le forum */
function bbcodeForumRepondre(bbdebut, bbfin) {
	var input = window.document.repondre.message;
	bbcode(bbdebut, bbfin, input);
}

/* BBCODE pour édition à un sujet sur le forum */
function bbcodeForumEdition(bbdebut, bbfin) {
	var input = window.document.editer.message;
	bbcode(bbdebut, bbfin, input);
}

/* BBCODE pour le tableau du standard */
function bbcodeTableauStandard(bbdebut, bbfin) {
	var input = window.document.tableau.message;
	bbcode(bbdebut, bbfin, input);
}
	
/* BBCODE */
function bbcode(bbdebut, bbfin, input)	{
	input.focus();
	if(typeof document.selection != 'undefined') {
		var range = document.selection.createRange();
		var insText = range.text;
		range.text = bbdebut + insText + bbfin;
		range = document.selection.createRange();
		if (insText.length == 0) {
			range.move('character', -bbfin.length);
		}
		else {
			range.moveStart('character', bbdebut.length + insText.length + bbfin.length);
		}
		range.select();
	}
	else if(typeof input.selectionStart != 'undefined') {
		var start = input.selectionStart;
		var end = input.selectionEnd;
		var insText = input.value.substring(start, end);
		input.value = input.value.substr(0, start) + bbdebut + insText + bbfin + input.value.substr(end);
		var pos;
		if (insText.length == 0) {
			pos = start + bbdebut.length;
		}
		else {
			pos = start + bbdebut.length + insText.length + bbfin.length;
		}
		input.selectionStart = pos;
		input.selectionEnd = pos;
	}
	else {
	var pos;
		var re = new RegExp('^[0-9]{0,3}$');
		while(!re.test(pos)) {
			pos = prompt("insertion (0.." + input.value.length + "):", "0");
		}
		if(pos > input.value.length) {
			pos = input.value.length;
		}
		var insText = prompt("Veuillez taper le texte");
		input.value = input.value.substr(0, pos) + bbdebut + insText + bbfin + input.value.substr(pos);
	}
}

/* Affichage smileys nouvelle conversation */
function smileyMessageNouveau(img){
	var input = window.document.nouveau.message;
	bbcode(' '+img+' ', '', input);
}

/* Affichage smileys répondre a une conversation */
function smileyMessageRepondre(img){
	var input = window.document.repondre.message;
	bbcode(' '+img+' ', '', input);
}

/* Affichage smileys nouveau sujet forum */
function smileyForumNouveau(img){
	var input = window.document.nouveau.message;
	bbcode(' '+img+' ', '', input);
}

/* Affichage smileys répondre a un sujet sur le forum */
function smileyForumRepondre(img){
	var input = window.document.repondre.message;
	bbcode(' '+img+' ', '', input);
}

/* Affichage smileys répondre a un sujet sur le forum */
function smileyForumEdition(img){
	var input = window.document.editer.message;
	bbcode(' '+img+' ', '', input);
}

/* Affichage smileys tableau du standard */
function smileyTableauStandard(img){
	var input = window.document.tableau.message;
	bbcode(' '+img+' ', '', input);
}

/* AJAX */
function getXMLHttpRequest() {
	var xhr = null;
	
	if(window.XMLHttpRequest || window.ActiveXObject) {
		if(window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch(e) {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
		}
		else {
			xhr = new XMLHttpRequest(); 
		}
	} 
	else {
		return null;
	}
	
	return xhr;
}

/* Affiche / masque un div */
function afficher(div) {
	if(document.getElementById(div).style.display == 'none' || document.getElementById(div).style.display == '') {
		document.getElementById(div).style.display = 'block';
	}
	else {
		document.getElementById(div).style.display = 'none';
	}
}

/* Masque un div */
function masquer(div) {
	if(document.getElementById(div).style.display != 'none') {
		document.getElementById(div).style.display = 'none';
	}
}

/* Compte les caractères d'un champ */
function compterCaracteres(input, tailleMini, destination) {
	var taille = input.value.length;
	if(taille < tailleMini) {
		document.getElementById(destination).innerHTML = "<span class=rouge>"+taille+"</span> / "+tailleMini;
	}
	else {
		document.getElementById(destination).innerHTML = "<span class=vert>"+taille+"</span> / "+tailleMini;
	}
}

/* Image de chargement */
function afficherChargement() {
	document.getElementById('imageChargement').style.display = 'block';
}
function masquerChargement() {
	document.getElementById('imageChargement').style.display = 'none';
}

/* Vérification nouveaux MP */
function verifierNouveauxMessages() {
	var xhr = getXMLHttpRequest();
	
	xhr.onreadystatechange = function() {
		if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
			if(xhr.responseText > 0) {
				document.getElementById('alerteMessages').innerHTML = '<a href="messages.php" title="Nouveaux messages privés">MP <img src="templates/images/message_anime.gif" alt="" /></a>';
			}
			else {
				document.getElementById('alerteMessages').innerHTML = '';
			}
		}
		else if (xhr.readyState < 4) {
			
		}
	}
	
	xhr.open("GET", "./ajax/global.php?action=nouveauxMessages", true);
	xhr.send(null);
	
	setTimeout("verifierNouveauxMessages()",60000);
}

function afficherConfirmation(texte) {
	$.notifier.broadcast({
		ttl: 'Confirmation',
		msg: texte,
		skin: 'rounded',
		duration: 5000	
	});
}

function afficherErreur(texte) {
	$.notifier.broadcast({
		ttl: 'Erreur',
		msg: texte,
		skin: 'rounded,red',
		duration: 10000	
	});
}

/* Open Flash Chart http://teethgrinder.co.uk/open-flash-chart-2/tutorial-5.php */
function findSWF(movieName) {
	if (navigator.appName.indexOf("Microsoft")!= -1) {
		return window[movieName];
	} else {
		return document[movieName];
	}
}
