
var listHover;
function animelistHover( t )
{
	var iRef = document.getElementById("animelistimage");
	var imgsrc = t.getAttribute("animeimage");
	var top=0,left=0;
	var offset = t;
	while ( offset )
	{
		top=top+offset.offsetTop;
		left=left+offset.offsetLeft;
		offset=offset.offsetParent;
	}
	iRef.style.left=left+t.offsetWidth+"px";
	iRef.style.top=top+"px";
	iRef.style.position="absolute";
	var img = document.createElement("img");
	img.src=imgsrc;
	img.id="animeimage_actual";
	if ( listHover != undefined )
	{
		clearTimeout(listHover);
	}
	listHover = setTimeout("animelistFix()", 300);
	iRef.appendChild(img);


}

function animelistFix( )
{
	var iRef = document.getElementById("animelistimage");
	var img = document.getElementById("animeimage_actual");
	var topImg =0, bottomBox=0;
	var offset = img;
	if ( img == undefined )
	{
		return (0);
	}
	while ( offset )
	{
		topImg = topImg + offset.offsetTop;
		offset = offset.offsetParent;
	}
	offset = document.getElementById("divlist");
	while ( offset )
	{
		bottomBox = bottomBox + offset.offsetTop;
		offset = offset.offsetParent;
	}
	bottomBox = bottomBox + document.getElementById("divlist").offsetHeight;

	if ( img.offsetHeight + topImg +5 > bottomBox )
	{
		iRef.style.top = bottomBox - 5 - img.offsetHeight+"px";
	}
	listHover = setTimeout("animelistFix()", 300);

}

function animelistOff( t )
{
	var iRef = document.getElementById("animelistimage");
	iRef.innerHTML="";
}

function front_showimage( t, imageURL )
{
	var elementRef = document.getElementById( 'anime_image' );
	var eRef = document.getElementById( 'list_image' );

	var listRef = document.getElementById( 'animelist' );

	if ( imageURL == '' )
	{
		front_hideimage();
		return(0);
	}
	else
	{
		elementRef.src="";
		eRef.style.display = "block";
		elementRef.style.display = "block";
		elementRef.src = imageURL;
	}

	var posX=0, posY=0, sizX=0, sizY=0;

	var posRef = t;

	/* get position of the moused-over object */
	while (posRef)
	{
		posX=posX+posRef.offsetLeft;
		posY=posY+posRef.offsetTop;
		posRef = posRef.offsetParent;
	}
	posX = posX + t.offsetWidth;

	posRef = listRef;

	while ( posRef )
	{
		sizX = sizX+posRef.offsetLeft;
		sizY = sizY+posRef.offsetTop;
		posRef = posRef.offsetParent;
	}

	sizY = sizY+listRef.offsetHeight;

	eRef.style.position = "absolute";
	eRef.style.left = posX+"px";
	eRef.style.top = posY+"px";


	if ( posY + eRef.offsetHeight > sizY )
	{
		eRef.style.top = sizY - eRef.offsetHeight+"px";
	}


}

function front_hideimage( )
{
	var iRef = document.getElementById( 'anime_image' );
	var eRef = document.getElementById( 'list_image' );

	iRef.src="";
	eRef.style.display = "none";
}

function expandDetails( elementID )
{
    var elementRef = document.getElementById( elementID );

    if ( !elementRef )
        return (0);

    if ( elementRef.style.display == "none" )
        elementRef.style.display = "block";
    else
        elementRef.style.display = "none";

}

function resizeImage( imageID, parentID )
{
	var imageRef = document.getElementById( imageID );

	if ( !imageRef )
		return (0);

	var parentRef = document.getElementById( parentID );

	if ( !parentRef )
		return (0);

	var offsetWidth = parentRef.offsetWidth;
	var imageSize = imageRef.width;
	var maxImageSize = imageRef.getAttribute("maxwidth");


	if ( offsetWidth >= maxImageSize )
	{
		imageRef.width = maxImageSize;
	}
	else
	{
		imageRef.width = offsetWidth-20;
	}

}

function commentsNextPage( id, page )
{
	var cRef = document.getElementById('commentsContent');
	var pRef1 = document.getElementById('commentPage1');
	var pRef2 = document.getElementById('commentPage2');


	var url = "http://anime.secondangle.com/anime.comments.php?id="+id+"&page="+page;

	var http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// See note below about this line
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	/* ERROR! - Refresh this page, and resubmit. If that doesn't work, damn, its broken. Please tell us. <a href=\"$anime_page/feedback.php\" title=\"Feedback page\">Use this feedback page.</a> */
	if (!http_request) {
		if ( outputRef )
		{
			outputRef.innerHTML = "<strong>Error:</strong> Unable to report this since you don't have a javascript XML thingy (this is AJAX enabled!) Try Firefox!";
		}
		return false;
	}

	http_request.onreadystatechange = function() {
	
        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
				var xmldoc = http_request.responseXML;
				var root_node = xmldoc.getElementsByTagName('root')[0];

				if ( root_node.getElementsByTagName('status')[0].firstChild.data == "success" )
				{
					var content_node = root_node.getElementsByTagName('content')[0];
					content_node.normalize();
					cRef.innerHTML = content_node.firstChild.data;
					pRef1.innerHTML = root_node.getElementsByTagName('pagelist')[0].firstChild.data;
					pRef2.innerHTML = root_node.getElementsByTagName('pagelist')[0].firstChild.data;
					
				}
				else
				{
					alert ( 'some error occured' );
					return false;
				}
				
            } else {
               alert('server-side error');
            }
        }


	};
	http_request.open('GET', url, true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.overrideMimeType('text/xml');
	http_request.send(null);

}



function processModReport( formRef, elementID, outputID )
{
	var outputRef = document.getElementById( outputID );
	var elementRef = document.getElementById( elementID );

	var checkbox = formRef.elements['toreport'];
	var id = formRef.elements['id'].value;
	var reason = formRef.elements['reason'].value;

	if ( !checkbox.checked )
	{
		if ( outputRef )
		{
			outputRef.innerHTML = "<strong>Error:</strong> You need to check the box in order to report this";
		}
		return false;
	}
	if ( outputRef )
	{
		outputRef.innerHTML = "<strong>Sending...</strong>";
	}
	reason = escape( reason );
	id = escape( id );
/*
	reason = reason.replace(/&/g, '&amp;');
	reason = reason.replace(/</g, '&lt;');
	reason = reason.replace(/>/g, '&gt;');
	reason = reason.replace(/\"/g, '&quot;');
	reason = reason.replace(/\'/g, '&#39;');

	id = id.replace(/</g, '&lt;');
	id = id.replace(/>/g, '&gt;');
	id = id.replace(/&/g, '&amp;');
	id = id.replace(/\"/g, '&quot;');
	id = id.replace(/\'/g, '&#39;');

	var thisXML = "<modthis><animeid>"+id+"</animeid><comment>"+reason+"</comment></modthis>";

*/
	var url = "http://anime.secondangle.com/anime.reportcomment.php";

	var http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// See note below about this line
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	/* ERROR! - Refresh this page, and resubmit. If that doesn't work, damn, its broken. Please tell us. <a href=\"$anime_page/feedback.php\" title=\"Feedback page\">Use this feedback page.</a> */
	if (!http_request) {
		if ( outputRef )
		{
			outputRef.innerHTML = "<strong>Error:</strong> Unable to report this since you don't have a javascript XML thingy (this is AJAX enabled!) Try Firefox!";
		}
		return false;
	}
	http_request.onreadystatechange = function() {
	
        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
				var xmldoc = http_request.responseXML;
				var root_node = xmldoc.getElementsByTagName('message').item(0).firstChild.data;
				if ( root_node == "good" )
				{
					elementRef.innerHTML = "<div class=\"box\"><p><span class=\"comment_header\">Report This Comment:</span></p><span class=\"bold\">Success!</span> Thanks for reporting this spam to us, it'll help us keep the site nice and tidy.</div>";
				}
				else
				{
					outputRef.innerHTML = "<strong>Error:</strong> This request could not be completed as dialed. Please let us know on the <a href=\"http://anime.secondangle.com/feedback.php\" title=\"Feedback Forum\">Feedback Forum</a>. Please include your browser and the date of the request. Sorry!";
				}
            } else {
               outputRef.innerHTML = "<strong>Error:</strong> This request could not be completed as dialed. Please let us know on the <a href=\"http://anime.secondangle.com/feedback.php\" title=\"Feedback Forum\">Feedback Forum</.a>. Please include your browser and the date of the request. Sorry!";
            }
        }
	
	};
	/*
      http_request.onreadystatechange = alertContents;
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);

	*/
	var tosend = "id="+id+"&reason="+reason;
	http_request.open('POST', url, true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.setRequestHeader("Content-length", tosend.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(tosend);

	return false;

}


function new_freecap()
{
	// loads new freeCap image
	if(document.getElementById)
	{
		// extract image name from image source (i.e. cut off ?randomness)
		thesrc = document.getElementById("freecap").src;
		thesrc = thesrc.substring(0,thesrc.lastIndexOf(".")+4);
		// add ?(random) to prevent browser/isp caching
		document.getElementById("freecap").src = thesrc+"?"+Math.round(Math.random()*100000);
	} else {
		alert("Sorry, cannot autoreload freeCap image\nSubmit the form and a new freeCap will be loaded");
	}
}

function checkAddUserForm()
{
	var formRef = document.forms['addUser'];
	var toreturn =true;
	var passwords=true;
	var emails=true;

	if ( formRef.elements['reg_password'].value == "" )
	{
		document.getElementById('pw1_error').innerHTML = "&laquo; No password entered.";
		toreturn = false;
		passwords = false;
	}
	else
	{
		document.getElementById('pw1_error').innerHTML = "";
	}
	if ( formRef.elements['reg_passwordconfirm'].value == "" )
	{
		document.getElementById('pw2_error').innerHTML = "&laquo; No password confirmation entered.";
		toreturn = false;
		passwords = false;
	}
	else
	{
		document.getElementById('pw2_error').innerHTML = "";
	}

	if ( passwords && formRef.elements['reg_passwordconfirm'].value != formRef.elements['reg_password'].value )
	{
		document.getElementById('pw1_error').innerHTML = "&laquo; Passwords don't match";
		document.getElementById('pw2_error').innerHTML = "&laquo; Passwords don't match";
		toreturn = false;
	}

	if ( formRef.elements['reg_email'].value == "" )
	{
		document.getElementById('e1_error').innerHTML = "&laquo; No email entered.";
		toreturn = false;
		emails = false;
	}
	else
	{
		document.getElementById('e1_error').innerHTML = "";
	}

	if ( formRef.elements['reg_emailconfirm'].value == "" )
	{
		document.getElementById('e2_error').innerHTML = "&laquo; No email confirmation entered";
		toreturn = false;
		emails = false;
	}
	else
	{
		document.getElementById('e2_error').innerHTML = "";
	}

	if ( emails && formRef.elements['reg_email'].value != formRef.elements['reg_emailconfirm'].value )
	{
		document.getElementById('e1_error').innerHTML = "&laquo; Email does not match";
		document.getElementById('e2_error').innerHTML = "&laquo; Email does not match";
		toreturn = false;
	}


	return toreturn;
}

var Reg_checked;
function Reg_checkUsername()
{
	if ( Reg_checked == null )
	{
		Reg_checked = new Array();
	}
	var formRef = document.forms['addUser'];
	var messageRef = document.getElementById('username_error');

	if ( Reg_checked[formRef.elements['reg_username'].value] != undefined )
	{
		if ( Reg_checked[formRef.elements['reg_username'].value] == true )
		{
			messageRef.innerHTML = "Taken, please choose another";
		}
		else
		{
			messageRef.innerHTML = "Username okay";
		}
	}
	else
	{
		var http_request = CreateXMLObject();
		var thisUsername = formRef.elements['reg_username'].value;
		messageRef.innerHTML = "Checking...";
		http_request.onreadystatechange = function () {
			if ( http_request.readyState == 4 )
			{
				if ( http_request.status == 200 )
				{
					var rootElem = http_request.responseXML.getElementsByTagName("root")[0];
					var status = rootElem.getElementsByTagName("status")[0].firstChild.data;
					if ( formRef.elements['reg_username'].value == thisUsername )
					{
						if ( status == "taken" )
						{
							Reg_checked[thisUsername] = true;
							messageRef.innerHTML = "Taken, please choose another";
						}
						else
						{
							Reg_checked[thisUsername] = false;
							messageRef.innerHTML = "Username okay";

						}
					}
				}
			}

		};
		var request = "username="+encodeURIComponent( formRef.elements['reg_username'].value );
		http_request.open("POST", "anime.checkuser.php", true);
		http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		http_request.setRequestHeader("Content-length", request.length);
		http_request.setRequestHeader("Connection", "close");
		http_request.send(request);
	}
	
}


function CreateXMLObject()
{
	var http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// See note below about this line
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	return http_request;
}