function getElement( id )
{
	return document.getElementById ? document.getElementById( id ) : document.all( id );
}

function getInnerText( node )
{
        if( node.innerText != null )    return node.innerText;
        if( node.textContent != null )  return node.textContent;
}


function HideAll( exclude )
{
	var i, elem, id;
	for( i=0; ; i++ )
	{
		id = 'pop_'+i;
		if( id == exclude ) continue;
		elem = getElement( id );
		if( !elem ) return;
		elem.style.display = 'none';
	}
}

function JSS1( id )
{
	HideAll( id );
	var elem = getElement( id );
	if( !elem ) return;
	elem.style.display = 'block';
}

function JSH1( id )
{
	var elem = getElement( id );
	if( !elem ) return;
	elem.style.display = 'none';
}

function JSH1B( elem )
{
	elem.style.display = none;
}


function getXMLHTTP()
{
 	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 @*/

	if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
	{
		try
		{
			xmlhttp = new XMLHttpRequest();
		}
		catch (e)
		{
			xmlhttp = false;
		}
	}

	return xmlhttp;
}

function PowaSearchUpdateNoForm( id, targetPage, clear )
{
	var elem	= getElement( id );
	if( !elem ) return;
	if( elem.lastVal == elem.value )	return;
	elem.lastVal = elem.value;

	var target	= getElement( id+'_re' );
	if( !target ) return;

	if( !elem.value )
	{
		if( clear )		target.innerHTML = '';
		return;
	}

	var req = getXMLHTTP();
	if (req)
	{
		req.onreadystatechange = function()
		{
			if (req.readyState == 4 && req.status == 200)
				target.innerHTML = req.responseText;
		};
		req.open('GET', 'powasearch.php?target='+targetPage+'&search='+escape(elem.value) );
		req.send(null);
	}
}

function PowaSearchTarget( elem, target, submitme, formpres, value )
{
	var div = elem;
	var text	= getInnerText( elem );
	var e;

	target = '__target_'+target;

	if( e = getElement( target+'_input' ))	e.value = value;
	if( e = getElement( target+'_text' ))	e.innerHTML = text;

	if( submitme )
	{
		while( elem && elem.tagName != 'FORM' )
			elem = elem.parentNode;
		elem.elements[formpres].value = 2;
		elem.submit();
	}

	div.parentNode.parentNode.parentNode.innerHTML = '';
}

function XHLoad( url, elem )
{
	if( !elem ) return;

	var req = getXMLHTTP();
	if (req)
	{
		req.onreadystatechange = function()
		{
			if (req.readyState == 4 && req.status == 200)
				elem.innerHTML = req.responseText;
		};
		req.open('GET', url );
		req.send( null );
	}
}

function XHPerform( url, callable )
{
	var req = getXMLHTTP();
	if (req)
	{
		req.onreadystatechange = function()
		{
			if (req.readyState == 4 && req.status == 200)
				callable( req.responseText );
		};
		req.open('GET', url );
		req.send( null );
	}
}

function XHUVote( elem, params )
{
	XHLoad('/xmlhttp.php?action=uvote&'+params, elem.parentNode.parentNode.parentNode.parentNode.parentNode );
}

function TorrentSeedAlert( elem, torrent_id, action, brief )
{
	while( elem && elem.tagName != 'SPAN' )
		elem = elem.parentNode;
	elem = elem.parentNode;

	XHLoad( '/xmlhttp.php?action=seed_alert&id='+torrent_id+'&type='+action+'&brief='+brief, elem );
}

function TorrentHistoryDelete( elem, torrent_id, brief )
{
	while( elem && elem.tagName != 'TD' )
		elem = elem.parentNode;
	elem = elem.parentNode;

	XHLoad( '/xmlhttp.php?action=seed_alert&id='+torrent_id+'&type=delete&brief='+brief, elem );
}

function XHLoadInto( url, id )
{
	var elem	= getElement( id );
	if( !elem ) return;

	var req = getXMLHTTP();
	if (req)
	{
		req.onreadystatechange = function()
		{
			if (req.readyState == 4 && req.status == 200)
				elem.innerHTML = req.responseText;
		};
		req.open('GET', url );
		req.send( null );
	}
}

function XHLoadIntoForm( url, id )
{
	var elem	= getElement( id );
	if( !elem ) return;

	var req = getXMLHTTP();
	if (req)
	{
		req.onreadystatechange = function()
		{
			if (req.readyState == 4 && req.status == 200)
				elem.value += req.responseText;
		};
		req.open('GET', url );
		req.send( null );
	}
}

function RateSeriePopup( serie_id, old )
{
	var elem	= getElement( 'xhttp_target' );
	if( !elem ) return;

	var h, i;

	h = '<div class=mbox><div class=title>Noter la série</div><div class=contents>';
	if( old )
		h += 'Ton ancienne note : <img src="/pic/'+old+'.gif"><br><br>';
	h += "Choisis une note :<br>";
	for( i=0; i<=5; i+=0.5 )
		h += '<a href="browse.php?cat='+serie_id+'&action=takerating&rating='+i+'"><img src="/pic/'+i+'.gif"></a><br>';

	h += "<br>Par pitié ne mettez pas 5/5 à toutes<br>les séries comme sur Animeka!<br><br>La moyenne des notes s'affichera<br> dans la description de la série, <br>si un nombre suffisant de votes<br>a été recueilli.<br>Tu peux voir les séries que tu <br>as préférées dans le menu 'Favoris'.<br><br><div class=clickable onclick=\"getElement('xhttp_target').innerHTML='';\">Fermer</div></div></div>";
	elem.innerHTML = h;
}

function PushStamp( elem )
{
	if( !elem.style.right || !parseInt( elem.style.right ) )
		elem.style.right='-200px';
	else
		elem.style.right='0px';
}

function ForumFaq( elem, id )
{
	var textarea = getElement( 'post_edit' );
	textarea.value += "\nVoir ce point de la FAQ :\n[url=faq.php#i" + id + "]" + getInnerText( elem ) + "[/url]\n";
}

function FComPaste( text )
{
	if( text != '' )
		document.forms.postform.body.value += ' '+text+' ';

	var elem;
	if( elem = getElement( 'forum_smilies_popup' ) ) elem.style.display = 'none';
	if( elem = getElement( 'forum_tags_popup' ) ) elem.style.display = 'none';
}

function TopicInterest( elem, topicid, interest )
{
	url = "/forums.php?action=interest&id="+topicid+"&interest="+interest;
	XHLoad( url, elem.parentNode );
}

function anime_covers_fan_submit( name )
{
	document.animecoversfan.nom.value = name;
	document.animecoversfan.submit();
}

function OnLoad()
{
	var bottom = getElement( 'bottom_menu' );
	var top = getElement( 'top_menu' );

	if( top && bottom ) bottom.innerHTML = top.innerHTML;
}

function XHPollVote( poll_id, vote_id )
{
	XHLoadInto( "/xmlhttp.php?action=poll_vote&poll_id="+poll_id+"&option_id="+vote_id, "poll_"+poll_id );
}

function XHPollUnvote( poll_id )
{
	XHLoadInto( "/xmlhttp.php?action=poll_unvote&poll_id="+poll_id, "poll_"+poll_id );
}

function SelfDestructTopic( elem, topic_id, when )
{
	while( elem && elem.tagName != 'DIV' )
		elem = elem.parentNode;
	elem = elem.parentNode;

	XHLoad( "/forums.php?action=self_destruct&topicid="+topic_id+"&when="+escape(when), elem );
}

function ForumOnLoad()
{
	var signatures = document.getElementsByTagName( 'DIV' );
	var i, signature, height;

	for( i=0; i<signatures.length; i++ )
	{
		if( (signature = signatures[i]).className != 'signature' )
			continue;

		height = signature.offsetHeight;
		if( !height || height <= 140) continue;

		signature.innerHTML = "* Signature cachée ("+height+" pixels de haut) *";
	}
}

function SignaturePreview()
{
	var dest = getElement( "signature" );
	var source = getElement( "signature_source" );

	if( !( source && dest )) return;
	bbcode = source.value;

	if( !dest.old_text )
		dest.old_text = bbcode;
	else if( dest.old_text == bbcode )
		return;

	dest.old_text = bbcode;
	XHPerform( "/xmlhttp.php?action=bbcode&text="+encodeURIComponent( bbcode ), function( html )
	{
		dest.innerHTML = html;

		var diag = getElement( "signature_diagnostic" );
		var height = dest.offsetHeight;

		diag.innerHTML = "Hauteur : "+height+" pixels.";
		if( height>120 )	diag.style.color = "red";
		else				diag.style.color = "black";
	});
}





