window.onload = function()
{
	var a = document.getElementsByTagName('a');
	
	for ( var i = 0; i < a.length; i++ )
	{
		if ( a[i].id.match('comment-') )
		{
			a[i].onclick = showComment;
		}
	}
}

// G

function newXHR()
{
	if ( window.XMLHttpRequest )
	{
		return new XMLHttpRequest();
	}
	else if ( window.ActiveXObject )
	{
		return new ActiveXObject("MICROSOFT.XMLHTTP");
	}
	else
	{
		return null;
	}
}

function getEvent( e )
{
	var event	= e ? e : window.event;
	var element	= e ? event.target : event.srcElement;
    
	return element;
}

function adjust( element, property, value )
{
	var el = document.getElementById(element);
		
	el.style[property] = value;
}

function changeOpacity( opacity, id )
{	
	var element = document.getElementById(id);
	
	if ( element )
	{
		element.style.opacity		= (opacity / 100);
		element.style.MozOpacity	= (opacity / 100);
		element.style.KhtmlOpacity	= (opacity / 100);
		element.style.filter		= "alpha( opacity=" + opacity + " )";
	}
}

function fade( id, out, relapse, change )
{
	var animSpeed = 10;
	
	fade.swap = function()
	{
		var el = document.getElementById(id);
		
		el.innerHTML = change
	}
	
	fade.show = function()
	{
		for ( var i = 0; i <= 100; i++ )
		{
			setTimeout( 'changeOpacity( \'' + i + '\', \'' + id + '\' )', i * animSpeed );
		}
	}
	
	fade.hide = function()
	{
		var j = 0;
		
		for ( var i = 100; i >= 0; i-- )
		{
			setTimeout( 'changeOpacity( \'' + i + '\', \'' + id + '\' )', j * animSpeed );
				
			j++;
		}
	}
	
	fade.lapse = function()
	{		
		if ( out )
		{
			fade.show();
		}
		else
		{
			fade.hide();
		}
	}
	
	if ( out )
	{
		fade.hide();
	}
	else
	{
		fade.show();
	}
	
	if ( relapse )
	{
		setTimeout( 'fade.lapse()', animSpeed * 100 );
	}
	
	if ( change )
	{
		setTimeout( 'fade.swap()', animSpeed * 100 );
	}
}

// C

function showComment( e )
{
	var animHeight		= 100;
	var animSpeed		= 10;
	var request			= newXHR();
	var target			= getEvent( e );
	var id				= target.id.replace( "comment-", "" );
	var commentLink		= document.getElementById('comment-' + id);
	var commentHolder	= document.getElementById('comment-holder-' + id);
	var innerComment	= document.getElementById('inner-comment-' + id);

	showComment.open = function()
	{			
		commentLink.innerHTML	= "Hide Comments!";
		innerComment.innerHTML	= "<div style=\"margin: 0 auto; text-align: center;\"><span style=\"font-size: 17px;\">Loading...</span></div>";
		
		fade( 'inner-comment-' + id );

		for ( var i = 0; i <= animHeight; i++ )
		{
			setTimeout( 'adjust( \'comment-holder-' + id + '\', \'height\',  \'' + i + '\' + \'px\' )', i * animSpeed );
		}
	
		url = "http://www.runeaddict.net/replies.php?id=" + id + "&t=" + new Date().getTime();
	
		request.open( "GET", url, true );
			
		request.onreadystatechange = function()
		{
			if ( request.readyState == 4 )
			{
				fade( 'inner-comment-' + id, true, true, request.responseText );
			}
		}
			
		request.send( null );
	}
			
	showComment.close = function()
	{		
		commentLink.innerHTML = "View Comments!";
		
		fade( 'inner-comment-' + id, true );
		
		var o = 0;
		
		for ( var i = animHeight; i >= 0; i-- )
		{
			setTimeout( 'adjust( \'comment-holder-' + id + '\', \'height\',  \'' + i + '\' + \'px\' )', o * animSpeed );
			
			o++;
		}
	}
	
	if ( commentHolder.style.height == "0px" )
	{
		showComment.open();
	}
	else if ( commentHolder.style.height == animHeight + "px" )
	{
		showComment.close();
	}
	else
	{
		//alert( 'The comment window is animating.' );
	}
	
	return false;
}