//if (top.frames.length>0)
//	top.location.href=this.location.href;
	
/**
 * Permet d'ajouter un event handler (ie.compat)
 * @param (object) 		elem - l'objet
 * @param (string) 		type - type d'évenement sans le prefixe on
 * @param (function) 		callback - Fonction appelée lorsque l'évènement est activé
 */

function addEvent (elem, type, callBack)
{
	var elem = (typeof elem == 'string') ? document.getElementById(elem) : elem;
	if (elem.addEventListener)
		elem.addEventListener(type, callBack, false);
	else if (elem.attachEvent)
		elem.attachEvent('on'+type, callBack);
}
/**
 * Permet d'ajouter un event handler (ie.compat)
 * @param (object) 		elem - l'objet
 * @param (string) 		type - type d'évenement sans le prefixe on
 * @param (function) 		callback - Fonction appelée lorsque l'évènement est activé
 */
function rmEvent (elem, type, callBack)
{
	if (elem.removeEventListener)
		elem.removeEventListener(type, callBack, false);
	else if (elem.detachEvent)
		elem.detachEvent('on'+type, callBack);
}

function getElementsByClassName (elem, theTag, theClass)
{
	var i, j, k;
	var okElems = new Array();
	var elems 	= elem.getElementsByTagName(theTag);
	
	for (i = 0, j = 0; i < elems.length; i++)
	{
		if (elems.item(i).className != "")
		{
			var classes = elems.item(i).className.split(' ');
			for (k = 0; k < classes.length; k++)
				if (classes[k] == theClass)
					okElems[j++] = elems.item(i); // stock l'objet
		}
	}
			
	return okElems; // on retourne le tableau d'objets
}

function removeClass (elem, theClass)
{
	if (typeof elem == "string") elem = document.getElementById(elem);
	if (elem == null) return null;
	
	var newClasses = new Array();
	var oldClasses = elem.className.split(' ');
	
	for (var i = 0; i < oldClasses.length; i++)
		if (oldClasses[i] != theClass)
			newClasses.push(oldClasses[i]);
			
	elem.className = newClasses.join(' ');
}

function addClass (elem, theClass)
{
	if (typeof elem == "string") elem = document.getElementById(elem);
	if (elem == null) return null;
	
	var classes = elem.className.split(' ');
	
	if (hasClass(elem, theClass))
		return true;
			
	classes.push(theClass);
	elem.className = classes.join(' ');
}

function hasClass (elem, theClass)
{
	if (typeof elem.className == 'undefined' || elem.className == '') return false;
	if (typeof elem == "string") elem = document.getElementById(elem);
	if (elem == null) return null;
	if (elem.className == "") return false;
	
	var classes = elem.className.split(' ');
	
	for (var i = 0; i < classes.length; i++)
		if (classes[i] == theClass)
			return true;
			
	return false;
}

function absPosY (elem)
{
	y = elem.offsetTop || 0;
	while (elem = elem.offsetParent)
		y += elem.offsetTop;
		
	return y;
}

function absPosX (elem)
{
	x = elem.offsetLeft || 0;
	while (elem = elem.offsetParent)
		x += elem.offsetLeft;
		
	return x;
}

function getParentByName (elem, name)
{
	if (name.length < 1)
		return false;
	name = name.toUpperCase();
	if (typeof elem != 'undefined')
	{
		while (elem && elem.nodeName != name)
			elem = elem.parentNode;
		if (elem.nodeName == name)
			return elem;
	}
	return false;
}

function getNextSibling (elem, name)
{
	if (name.length < 1)
		return false;
	name = name.toUpperCase();
	if (typeof elem != 'undefined')
	{
		elem = elem.nextSibling;
		while (elem && elem.nodeName != name)
			elem = elem.nextSibling;
		if (elem && elem.nodeName == name)
			return elem;
	}
	return false;
}

function getPrevSibling (elem, name)
{
	if (name.length < 1)
		return false;
	name = name.toUpperCase();
	if (typeof elem != 'undefined')
	{
		while (elem && elem.nodeName != name)
			elem = elem.previousSibling;
		if (elem && elem.nodeName == name)
			return elem;
	}
	return false;
}

	function getXHR ()
	{
		if (window.XMLHttpRequest)
			xhr		= new XMLHttpRequest();
		else if (window.ActiveXObject)
			xhr		= new ActiveXObject("Microsoft.XMLHTTP");
		else
			return false;
		return xhr;
	}
	
	function whipeDefault (event)
	{
		target = event.target || event.srcElement;
		
		if(target.name == 'search_field'){
			if(target.value == 'rechercher')
				target.value = '';
		}
		else{
			if (target.defaultValue == target.value)
				target.value = '';
		}
	}
	
	function putBackDefault (event)
	{
		target = event.target || event.srcElement;
		var lien = document.getElementById('bouton_espace');
		
		if (target.value == ''){
			if(target.name == 'req_username'){
				lien.innerHTML = '> Créer mon<br />espace Truffaut';
				lien.href = "inscription.html#header_forum";
			}
			
			target.value = target.defaultValue;
		}
	}
	
	function bouton_espace(){
		var login = document.forms['login_in'].req_username.value;
		var lien = document.getElementById('bouton_espace');
		
		if(login != '' && login != 'mon login'){
			lien.innerHTML = '> Me<br />connecter';
			lien.href = "javascript:document.forms['login_in'].submit();";
		}
		else{
			lien.innerHTML = '> Créer mon<br />espace Truffaut';
			lien.href = "inscription.html#header_forum";
		}
	}
	
	function include (filePath)
	{
		var newJS = document.createElement('script');
		newJS.setAttribute('type', 'text/javascript');
		newJS.setAttribute('src', filePath);
		document.getElementsByTagName('head').item(0).appendChild(newJS);
	}
	
	function message (txt)
	{
		method = "text";
		if (arguments.length > 1)
		{
			title	= arguments[1];
			if (arguments.length > 2)
				method	= arguments[2];
		}
		else
			title	= 'Information';
		overlay			= document.createElement('div');
		newbox			= document.createElement('div');
		newboxTitle		= document.createElement('div');
		pTitle			= document.createElement('p');
		newboxContent	= document.createElement('div');
		
		overlay.id				= 'newbox-overlay';
		newbox.className		= 'newbox medium overlay';
		newboxTitle.className	= 'newbox-title';
		newboxContent.className	= 'newbox-content';
		pTitle.appendChild(document.createTextNode(title));
		pTitle.style.textAlign = 'left';
		pTitle.style.margin = '0 5px';
		switch (method)
		{
			case 'append' :
				newboxContent.appendChild(txt);
				break;
			case 'text' :
			default :
				newboxContent.innerHTML	= txt;
				break;
		}
		newboxTitle.appendChild(pTitle);
		newbox.appendChild(newboxTitle);
		newbox.appendChild(newboxContent);
		overlay.appendChild(newbox);
		overlay.style.height = document.body.offsetHeight + 'px';
		overlay.style.margin = 0;
		document.body.appendChild(overlay);
		overlay.style.height = document.body.innerHeight + 'px';
	}
	
	function calque (name)
	{
		var close = true;
		switch(name)
		{
			case 'inscrit' :
				texte	= 'Nous vous remercions de votre inscription<br /> Vous êtes redirigé sur votre profil';
				rButtonText	= 'Fermer';
				rButtonLink	= document.location.href.split('?')[0] + '?' + QSremoveParam(qs, 'calque');
				break;
				
			case 'accept-rules' :
				texte		= 'Cher internaute,<br /><br /> les règles du Forum Truffaut ont récemment changé.<br />En conséquence, nous vous demandons de bien vouloir en prendre connaissance et les accepter : <a href="regles.html" title="Règles d\'utilisation du Forum Truffaut" target="_blank">Voir les règles d\'utilisation du Forum Truffaut</a><br /><br />Merci, L\'équipe Truffaut';
				rButtonText	= 'J\'accepte';
				rButtonLink	= 'accept-rules.html';
				break;
		}
		contText	= document.createElement('p');
		contText.innerHTML = texte + '<br /><br />';
		if (typeof rButtonText != "undefined")
		{
			rButton					= document.createElement('a');
			rButton.href			= rButtonLink + '#header_forum';
			rButton.className 		= 'bouton';
			rButton.style.position	= 'absolute';
			rButton.style.right		= '15px';
			rButton.style.bottom	= '15px';
			rButton.appendChild(document.createTextNode(rButtonText));
			contText.appendChild(rButton);
		}
		message (contText, 'Inscription', 'append');
	}
	
	function getQS ()
	{
		qs	= document.location.href;
		if (qs.indexOf('#') != -1)
			qs	= qs.split('#')[0];
		if (qs.indexOf('?') != -1)
			qs	= qs.split('?')[1];
		else
			return false;
		if (qs.indexOf('&') != -1)
			qs	= qs.split('&');
		else
			qs	= new Array(qs);
		return qs;
	}
	
	function QSremoveParam (QS, paramName)
	{
		newQS	= '';
		for (var i = 0; i < QS.length; ++i)
		{
			curElem		= qs[i].split('=');
			curIndex	= curElem[0];
			curVal		= curElem[1];
			if (curIndex != paramName)
			{
				if (newQS != '')
					newQS += '&';
				newQS	+= curIndex + '=' + curVal;
			}
		}
		return newQS
	}

if(typeof(document.ready) != 'function')
	document.ready = function (callBack) {addEvent(window, 'load', callBack)}

	

document.ready(function ()
{
	dest	= document.getElementById('dest');
	if (dest)
		include('js/autocomplete.js');
	if (document.location.href.split('#')[1] == 'test')
	{
	}
	qs			= getQS();
	if (qs)
	{
		for (var i = 0; i < qs.length; i++)
		{
			curElem		= qs[i].split('=');
			curIndex	= curElem[0];
			curVal		= curElem[1];
			if (curIndex == 'login')
				login = curVal;
			else if (curIndex == 'activate-account')
				idTruffaut	= curVal;
			else if (curIndex == 'calque')
				calque(curVal);
			else if (curIndex == 'pass')
				password	= curVal;
				
		}
		if (typeof idTruffaut != 'undefined')
		{
			/* Création du formulaire */
			form		=	document.createElement('form');
			form.action = "login.php?action=valid-account&id-truffaut=" + idTruffaut + "&pass=" + password;
			form.method = "post";
			
			/* br */
			br	= document.createElement('br');
			
			/* Texte d'explication */
			p = document.createElement('p');
			p.appendChild(document.createTextNode("Votre compte utilisateur sur le forum va être créé, vous pouvez choisir votre pseudo, puis cliquer sur valider afin de terminer la procédure"));
			
			/* label input login */
			logLabel			= document.createElement('label');
			logLabel.className	= 'newlogin';
			logLabel.style.fontWeight	= 'normal';
			logLabel.appendChild(document.createTextNode('Pseudo'));
				
			/* input login */
			logInput			= document.createElement('input');
			logInput.type		= "text";
			logInput.name		= "newlogin";
			logInput.value		= login;
				
			/* input accept-rules */
			accInput			= document.createElement('input');
			accInput.type		= "checkbox";
			accInput.name		= "accept-rules";
			accInput.value		= 1;
			
			/* label input accept-rules */
			accLabel			= document.createElement('label');
			accLabel.className	= 'accept-rules';
			accLabel.style.fontWeight	= 'normal';
			accLabel.appendChild(document.createTextNode(" J'accepte les "));
			
			/* Lien règles */
			rulesLink			= document.createElement('a');
			rulesLink.href		= 'regles.html';
			rulesLink.target	= '_blank';
			rulesLink.style.fontWeight	= 'bold';
			rulesLink.appendChild(document.createTextNode('règles d\'utilisation du Forum'));
				
			/* input submit */
			submInput			= document.createElement('input');
			submInput.type		= "submit";
			submInput.value		= "Valider";
			
			form.appendChild(p);
			form.appendChild(logLabel);
			form.appendChild(logInput);
			form.appendChild(br.cloneNode(true));
			form.appendChild(br.cloneNode(true));
			form.appendChild(accInput);
			form.appendChild(accLabel);
			form.appendChild(rulesLink);
			form.appendChild(br.cloneNode(true));
			form.appendChild(br.cloneNode(true));
			form.appendChild(submInput);
			message(form, 'Choisir un pseudo', 'append');
		}
	}
	
	/* Début du javascript pour la home */
	
	$(".click_jardin").click(function(event){
		prevDefault(event);
		$("#le_jardin_togoldiv").slideToggle(600, function() {
			if($(this).css('display') == 'none')
				$('.click_jardin a').css('background-image', 'url("/forum/img/bloc_centre/jardin_fleche_droite.jpg")');
			else
				$('.click_jardin a').css('background-image', 'url("/forum/img/bloc_centre/Blocs_centre_11.jpg")');
		});
	});
	
	$("#le_animaux_togoldiv").hide();
	//toggle the componenet with class msg_body
	$(".click_animaux").click(function(event){
		prevDefault(event);
		$("#le_animaux_togoldiv").slideToggle(600, function() {
			if($(this).css('display') == 'none')
				$('.click_animaux a').css('background-image', 'url("/forum/img/bloc_centre/Blocs_centre_13.jpg")');
			else
				$('.click_animaux a').css('background-image', 'url("/forum/img/bloc_centre/animaux_fleche_bas.jpg")');
		});
	});
	
	$("#le_maison_togoldiv").hide();
	//toggle the componenet with class msg_body
	$(".click_maison").click(function(event){
		prevDefault(event);
		$("#le_maison_togoldiv").slideToggle(600, function() {
			if($(this).css('display') == 'none')
				$('.click_maison a').css('background-image', 'url("/forum/img/bloc_centre/Blocs_centre_19.jpg")');
			else
				$('.click_maison a').css('background-image', 'url("/forum/img/bloc_centre/maison_fleche_bas.jpg")');
		});
	});
	
	$("#le_vous-nous_togoldiv").hide();
	//toggle the componenet with class msg_body
	$(".click_vous-nous").click(function(event){
		prevDefault(event);
		$("#le_vous-nous_togoldiv").slideToggle(600, function() {
			if($(this).css('display') == 'none')
				$('.click_vous-nous a').css('background-image', 'url("/forum/img/bloc_centre/Blocs_centre_25.jpg")');
			else
				$('.click_vous-nous a').css('background-image', 'url("/forum/img/bloc_centre/vous_nous_fleche_bas.jpg")');
		});
	});
	
	/* Fin du javascript pour la home */
});

function handleNewImg ()
{
	var parts		= document.getElementById('uploaded-image').value.split('.');
	var extension	= parts.pop();
	var randval		= Math.floor(Math.random() * 1000);
	document.getElementById('randval').value = randval;
	document.getElementById('ready').value = 0;
	document.getElementById('wait').style.display = 'block';
	TAinsert('[img]' + document.getElementById('img-path').value + randval + '.' + extension + '[/img]', '', 'ta_message');
	hideHandler('cadre-images');
}

function showHandler (handlerType)
{
	if (document.getElementById('ready').value != 1)
	{
		alert("Votre image est en cours de transfert, veuillez patienter");
		return false;
	}
	document.getElementById('my-form-upload').reset();
	document.getElementById('image-ul').value = '';
	document.getElementById('vid-ul').value = '';
	var shower	= document.getElementById('image-shower');
	var t		= absPosY(shower);
	var l		= absPosX(shower) + shower.offsetWidth;
	var handler	= document.getElementById(handlerType);
	handler.style.top = t + 'px';
	handler.style.left = l + 'px';
	var monCalque = document.getElementById('calque');
	monCalque.style.height = document.body.offsetHeight + 50 + 'px';
	monCalque.style.display = 'block';
	handler.style.display = 'block';
}

function hideHandler (handlerType)
{
	document.getElementById(handlerType).style.display = 'none';
	document.getElementById('calque').style.display = 'none';
}

function checkForm (form)
{
	if (document.getElementById('ready').value != 1)
	{
		alert("Votre image est en cours de transfert, veuillez patienter");
		return false;
	}
}

function isValidUrl(url) {
	var regexp = /(http):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
	return regexp.test(url);
}

function isValidImg(url) {
	var regexp = /(http):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?.(gif|jpg|jpeg|png|GIF|JPG|JPEG|PNG)/;
	return regexp.test(url);
}

function urlIsFrom(url, where)
{
	var regexp	= /http:\/\/([www\.]+\.)?([-0-9A-Za-z_]+(\.[a-z-A-Z]{2,4})?)/;
	var tableau	= regexp.exec(url);
	var from	= tableau[2];
	switch (where)
	{
		case 'youtube' :
			return (from == 'youtube.com');
			break;
		case 'dailymotion' :
			return (from == 'dailymotion.com');
			break;
		case 'truffaut' :
			return (from == 'truffaut.com');
			break;
		default :
			return false;
	}
}

function addVid ()
{
	var url = document.getElementById('vid-ul').value;
	var ta	= document.getElementById('ta_message');
	if (!isValidUrl(url))
	{
		alert("L'adresse que vous avez entrée n'est pas valide");
		return false;
	}
	authorizedSites = new Array('youtube', 'dailymotion', 'truffaut');
	isValid = false;
	for (var i = 0; i < authorizedSites.length; i++)
		if (urlIsFrom(url, authorizedSites[i]))
		{
			isValid = true;
			bbTag	= authorizedSites[i];
			break;
		}
	if (!isValid)
	{
		alert("Nous acceptons uniquement les vidéos venant de Youtube, Dailymotion ou Truffaut.tv");
		return false;
	}
	ta.value += '[' + bbTag + ']' + url + '[/' + bbTag + ']';
	ta.focus();
	hideHandler('cadre-videos');
	return true;
}

function addImg ()
{
	var url = document.getElementById('image-ul').value;
	var ta	= document.getElementById('ta_message');
	if (!isValidImg(url))
	{
		alert("L'adresse que vous avez entrée n'est pas valide");
		return false;
	}
	isValid = true;
	ta.value += '[img]' + url + '[/img]';
	ta.focus();
	hideHandler('cadre-images');
	return true;
}

function prevDefault(event){
	if (event.preventDefault) { 
		event.preventDefault(); 
	}
	else{
		event.returnValue = false;
	}
}
