var xmlHttp;

if (document.images)
{
	postArrowUpNormal = new Image();
	postArrowUpNormal.src = "http://www.mysterypig.com/staticimages/arrowUp.png";
	postArrowUpHover = new Image();
	postArrowUpHover.src = "http://www.mysterypig.com/staticimages/arrowUpWhite.png";
	postArrowDownNormal = new Image();
	postArrowDownNormal.src = "http://www.mysterypig.com/staticimages/arrowDown.png";
	postArrowDownHover = new Image();
	postArrowDownHover.src = "http://www.mysterypig.com/staticimages/arrowDownWhite.png";
	commentArrowUpNormal = postArrowUpNormal;
	commentArrowUpHover = postArrowUpHover;
	commentArrowDownNormal = postArrowDownNormal;
	commentArrowDownHover = postArrowDownHover;
}

function imgHover(imgName,imgID)
{
	if (document.images) document[imgName + imgID].src = eval(imgName + "Hover.src");
}
function imgOff(imgName,imgID)
{
	if (document.images) document[imgName + imgID].src = eval(imgName + "Normal.src");
}

function getXmlHttpObject()
{
	xmlHttp=null;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

function modsReceived()
{
	if(xmlHttp.readyState==4)
	{
		var xmlDoc=xmlHttp.responseXML;
		var mods = xmlDoc.getElementsByTagName("mod");
		for (i=0;i<mods.length;i++)
		{
			var mod = mods[i];
			// check for both post and comment, then use one or the other (or both, although that would never happen)
			if(mod.getElementsByTagName("post").length > 0) var post = mod.getElementsByTagName("post")[0].childNodes[0].nodeValue;
			if(mod.getElementsByTagName("comment").length > 0) var comment = mod.getElementsByTagName("comment")[0].childNodes[0].nodeValue;
			var modCode = mod.getElementsByTagName("modCode")[0].childNodes[0].nodeValue;
			var rating = mod.getElementsByTagName("rating")[0].childNodes[0].nodeValue;
			if(post) renderPostModControls(post, modCode, rating);
			else if(comment) renderCommentModControls(comment, modCode, rating);
		}
	}
}

function modPost(post, direction)
{
	xmlHttp = getXmlHttpObject();
	if(xmlHttp)
	{
		xmlHttp.onreadystatechange=modsReceived;
		var url="http://www.mysterypig.com/mod.php?post=" + post + "&mod=" + direction;
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
}

function renderPostModControls(post, currentPosition, currentRating)
{
	if(currentRating > 0) currentRating = "+" + currentRating;
	var modControlArray = document.getElementsByName("postmodcontrols" + post);
	for (i=0;i<modControlArray.length;i++)
	{
		var modControl = modControlArray[i];
		if(currentPosition == "up")
		{
			modControl.innerHTML = "<div class=\"uparrow\"><img src=\"http://www.mysterypig.com/staticimages/arrowUpGrey.png\" name=\"postArrowUp" + post + "\" border=\"0\"></div><div class=\"downarrow\"><a href=\"http://www.mysterypig.com/post.php?action=nullmod&post=" + post + "\" onMouseOver=\"imgHover('postArrowDown','" + post + "')\" onMouseOut=\"imgOff('postArrowDown','" + post + "')\" onClick=\"modPost('" + post + "','null'); return false;\"><img src=\"http://www.mysterypig.com/staticimages/arrowDown.png\" name=\"postArrowDown" + post + "\" border=\"0\" title=\"Mod Down\"></a></div>";
		}
		else if(currentPosition == "down")
		{
			modControl.innerHTML = "<div class=\"uparrow\"><a href=\"http://www.mysterypig.com/post.php?action=nullmod&post=" + post + "\" onMouseOver=\"imgHover('postArrowUp','" + post + "')\" onMouseOut=\"imgOff('postArrowUp','" + post + "')\" onClick=\"modPost('" + post + "','null'); return false;\"><img src=\"http://www.mysterypig.com/staticimages/arrowUp.png\" name=\"postArrowUp" + post + "\" border=\"0\" title=\"Mod Up\"></a></div><div class=\"downarrow\"><img src=\"http://www.mysterypig.com/staticimages/arrowDownGrey.png\" name=\"postArrowDown" + post + "\" border=\"0\"></div>";
		}
		else
		{
			modControl.innerHTML = "<div class=\"uparrow\"><a href=\"http://www.mysterypig.com/post.php?action=upmod&post=" + post + "\" onMouseOver=\"imgHover('postArrowUp','" + post + "')\" onMouseOut=\"imgOff('postArrowUp','" + post + "')\" onClick=\"modPost('" + post + "','up'); return false;\"><img src=\"http://www.mysterypig.com/staticimages/arrowUp.png\" name=\"postArrowUp" + post + "\" border=\"0\" title=\"Mod Up\"></a></div><div class=\"downarrow\"><a href=\"http://www.mysterypig.com/post.php?action=downmod&post=" + post + "\" onMouseOver=\"imgHover('postArrowDown','" + post + "')\" onMouseOut=\"imgOff('postArrowDown','" + post + "')\" onClick=\"modPost('" + post + "','down'); return false;\"><img src=\"http://www.mysterypig.com/staticimages/arrowDown.png\" name=\"postArrowDown" + post + "\" border=\"0\" title=\"Mod Down\"></a></div>";
		}
	}
	var ratingArray = document.getElementsByName("postrating" + post);
	for (i=0;i<ratingArray.length;i++)
	{
		var rating = ratingArray[i];
		rating.innerHTML = currentRating;
	}
}

function modComment(comment, direction)
{
	xmlHttp = getXmlHttpObject();
	if(xmlHttp)
	{
		xmlHttp.onreadystatechange=modsReceived;
		var url="http://www.mysterypig.com/mod.php?comment=" + comment + "&mod=" + direction;
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
}

function renderCommentModControls(comment, currentPosition, currentRating)
{
	if(currentRating > 0) currentRating = "+" + currentRating;
	var modControlArray = document.getElementsByName("commentmodcontrols" + comment);
	for (i=0;i<modControlArray.length;i++)
	{
		var modControl = modControlArray[i];
		if(currentPosition == "up")
		{
			modControl.innerHTML = "<div class=\"uparrow\"><img src=\"http://www.mysterypig.com/staticimages/arrowUpGrey.png\" name=\"commentArrowUp" + comment + "\" border=\"0\"></div><div class=\"downarrow\"><a href=\"http://www.mysterypig.com/comment.php?action=nullmod&comment=" + comment + "\" onMouseOver=\"imgHover('commentArrowDown','" + comment + "')\" onMouseOut=\"imgOff('commentArrowDown','" + comment + "')\" onClick=\"modComment('" + comment + "','null'); return false;\"><img src=\"http://www.mysterypig.com/staticimages/arrowDown.png\" name=\"commentArrowDown" + comment + "\" border=\"0\" title=\"Mod Down\"></a></div>";
		}
		else if(currentPosition == "down")
		{
			modControl.innerHTML = "<div class=\"uparrow\"><a href=\"http://www.mysterypig.com/comment.php?action=nullmod&comment=" + comment + "\" onMouseOver=\"imgHover('commentArrowUp','" + comment + "')\" onMouseOut=\"imgOff('commentArrowUp','" + comment + "')\" onClick=\"modComment('" + comment + "','null'); return false;\"><img src=\"http://www.mysterypig.com/staticimages/arrowUp.png\" name=\"commentArrowUp" + comment + "\" border=\"0\" title=\"Mod Up\"></a></div><div class=\"downarrow\"><img src=\"http://www.mysterypig.com/staticimages/arrowDownGrey.png\" name=\"commentArrowDown" + comment + "\" border=\"0\"></div>";
		}
		else
		{
			modControl.innerHTML = "<div class=\"uparrow\"><a href=\"http://www.mysterypig.com/comment.php?action=upmod&comment=" + comment + "\" onMouseOver=\"imgHover('commentArrowUp','" + comment + "')\" onMouseOut=\"imgOff('commentArrowUp','" + comment + "')\" onClick=\"modComment('" + comment + "','up'); return false;\"><img src=\"http://www.mysterypig.com/staticimages/arrowUp.png\" name=\"commentArrowUp" + comment + "\" border=\"0\" title=\"Mod Up\"></a></div><div class=\"downarrow\"><a href=\"http://www.mysterypig.com/comment.php?action=downmod&comment=" + comment + "\" onMouseOver=\"imgHover('commentArrowDown','" + comment + "')\" onMouseOut=\"imgOff('commentArrowDown','" + comment + "')\" onClick=\"modComment('" + comment + "','down'); return false;\"><img src=\"http://www.mysterypig.com/staticimages/arrowDown.png\" name=\"commentArrowDown" + comment + "\" border=\"0\" title=\"Mod Down\"></a></div>";
		}
	}
	var ratingArray = document.getElementsByName("commentrating" + comment);
	for (i=0;i<ratingArray.length;i++)
	{
		var rating = ratingArray[i];
		rating.innerHTML = currentRating;
	}
}