/***********************************************
* Contractible Headers script- © Dynamic Drive (www.dynamicdrive.com)
* This notice must stay intact for legal use. Last updated Mar 23rd, 2004.
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/
 
var enablepersist = "on" //Enable saving state of content structure using session cookies? (on/off)
var collapseprevious = "no" //Collapse previously open content when opening present? (yes/no)

if (document.getElementById)
{
	document.write('<style type="text/css">');
	document.write('.switchcontent{display:none;}');
	document.write('</style>');
}

function getElementbyClass (classname)
{
	ccollect = new Array();
	
	var inc = 0;
	var alltags = document.all ? document.all : document.getElementsByTagName("*");
	
	for (i = 0; i < alltags.length; i++)
	{
		if (alltags[i].className == classname)
			ccollect[inc++]=alltags[i];
	}
	
	return ccollect;
}

function contractcontent (omit)
{
	var inc = 0;
	
	while (ccollect[inc])
	{
		if (ccollect[inc].id != omit)
			ccollect[inc].style.display = "none";
		
		inc++
	}
}

function expandcontent (cid)
{
	if (typeof ccollect != "undefined")
	{
		if (collapseprevious == "yes")
			contractcontent(cid);
		document.getElementById(cid).style.display = (document.getElementById(cid).style.display != "block") ? "block" : "none";
	}
}

function revivecontent () 
{
	contractcontent("omitnothing");
	
	selectedItem=getselectedItem();
	
	selectedComponents=selectedItem.split("|");
	
	for (i = 0; i < selectedComponents.length-1; i++)
		document.getElementById(selectedComponents[i]).style.display = "block";
}

function get_cookie (Name)
{ 
	var search = Name + "=";
	var returnvalue = "";

	if (document.cookie.length > 0)
	{
		offset = document.cookie.indexOf(search);
		if (offset != -1)
		{ 
			offset += search.length;
			end = document.cookie.indexOf(";", offset);
			
			if (end == -1)
				end = document.cookie.length;
			
			returnvalue = unescape(document.cookie.substring(offset, end));
		}
	}
	
	return returnvalue;
}

function getselectedItem ()
{
	if (get_cookie(window.location.pathname) != "")
	{
		selectedItem = get_cookie(window.location.pathname);
		
		return selectedItem;
	}
	else
	{
		return "";
	}
}

function saveswitchstate ()
{
	var inc = 0, selectedItem = "";
	var cookieName = "";
	
	while (ccollect[inc])
	{
		if (ccollect[inc].style.display == "block")
			selectedItem += ccollect[inc].id+"|";
		inc++;
	}
	
	cookieName = window.location.pathname+"="+selectedItem;
	
	if (cookieName.length < 65)
		document.cookie = window.location.pathname+"="+selectedItem;
}

function do_onload ()
{
	uniqueidn = window.location.pathname+"firsttimeload";
	getElementbyClass("switchcontent");
	
	if (enablepersist == "on" && typeof ccollect != "undefined")
	{
		document.cookie = (get_cookie(uniqueidn) == "") ? uniqueidn+"=1" : uniqueidn+"=0";
		
		/* check if this is 1st page load */
		firsttimeload = (get_cookie(uniqueidn) == 1) ? 1 : 0;
		
		if (!firsttimeload)
			revivecontent();
	}
}

if (window.addEventListener)
	window.addEventListener("load", do_onload, false);
else if (window.attachEvent)
	window.attachEvent("onload", do_onload);
else if (document.getElementById)
	window.onload = do_onload;

if (enablepersist == "on" && document.getElementById)
	window.onunload=saveswitchstate;

function open_chat ()
{
	window.open('chat-ado.php','chatse','resizable=yes,height=530,width=750');
}

function del_topic (nb)
{
	data = confirm('Supprimer le topic num '+nb+' ?');
	
	if (data)
		self.location = '/ox_forum/suppr.php?id='+nb+'&type=sujet';
	else
		return false;
}

function signaler (topic, sujet)
{
	window.open('/ox_forum/signaler.php?topic='+topic+'&sujet='+sujet+'','chatse','resizable=yes,height=300,width=400');
}

function opencom (article, sujet)
{
	window.open('/ox_forum/ajout_com.php?article='+article+'&sujet='+sujet+'','chatse','resizable=yes,height=300,width=400');
}

function getHTTPObject()
{
	var xmlhttp = false;
	
	/* Compilation conditionnelle d'IE */
	/*@cc_on  
	@if (@_jscript_version >= 5)
	{
		try
		{
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (E)
			{
				xmlhttp = false;
			}
		}
	}
	@else
	{
		xmlhttp = false;
	}
	@end @*/
	
	/* on essaie de créer l'objet si ce n'est pas déjà fait */
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
	{
		try
		{
			xmlhttp = new XMLHttpRequest();
		}
		catch (e)
		{
			xmlhttp = false;
		}
	}
	
	if (xmlhttp)
	{
		/* on définit ce qui doit se passer quand la page répondra */
		xmlhttp.onreadystatechange = function()
		{
			if (xmlhttp.readyState == 4) /* 4 : état "complete" */
			{
				if (xmlhttp.status == 200) /* 200 : code HTTP pour OK */
				{
					/* Traitement de la réponse. Ici on affiche la réponse dans une boîte de dialogue.*/
					return xmlhttp;
				}
			}
		}
	}
	
	return xmlhttp;
}

function vote (post_id, membre_id, vote)
{

	if (confirm("Confirme ton vote"))
	{
		
		/* Création de l'objet : */
		var xmlhttp = getHTTPObject();
		/* Préparation d'une requête asynchrone de type POST : */
		xmlhttp.open("POST", "/membres/voteNonValider.php",true);
		/* Effectue la requête en envoyant les données : */
		xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xmlhttp.send("membre_voter="+membre_id+"&vote="+vote);
		elements = getElementbyClass('post_membre_non_valider');
		for (i = 0; i < elements.length; i++)
		{
			element = elements[i];
			element.innerHTML="Ton vote a bien été enregistré, merci :)";
			element.style.backgroundColor = "#c1ffc7";
		}	
	}

}

function affichertopics()
{
	elements = getElementsByClass('hide');
	total = elements.length;
	
	for (i = 0; i <= total; i++)
	{
		removeClass(elements[i], 'hide');
	}
}

function removeClass (ele, cls)
{
	if (hasClass(ele, cls))
	{
		var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
		ele.className = ele.className.replace(reg, ' ');
	}
}


function hasClass (ele, cls)
{
	return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}

function addClass (ele, cls)
{
	if (!this.hasClass(ele, cls))
		ele.className += " "+cls;
}


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;
}
