function ToggleDisplay(o,alt){
	var O=document.getElementById(o);
	O.style.display=(O.style.display=='none'?(alt?alt:'block'):'none');
}

//AJAX stuff:
function AJAXthing(){
	var xmlHttp=null;
	try{
		xmlHttp=new XMLHttpRequest();
	} catch(e){
		try{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e){
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}
 
function LoadPage(page,target,altText){
	document.getElementById(target).innerHTML=(altText!=null?altText:"<div style='padding:10px;'>Loading page "+page+"...</div>");
	
	var AJAX=AJAXthing();
	if(AJAX==null){
		alert("Your browser is horrendously obsolete and cannot run this webpage. Tsk.");
		return;
	}
	AJAX.onreadystatechange=function(){
		if(AJAX.readyState==4) document.getElementById(target).innerHTML=AJAX.responseText;
	}
	AJAX.open("GET","AJAX_getPage.php?doc="+page,true);
	AJAX.send(null);	
}

minLimit=50;
maxLimit=10000;
function TrueLength(str){
	return str.replace(/(<.*?(>|$)|[\s\n]{2,})/g,"").length;
}
function CA_Add(box){
	var len=TrueLength(box.value);
	if(len<minLimit) alert("That comment is too short! Please elaborate on what you have to say, or don't post at all. Thank you.\n\n(Length: "+len+")");
	else if(len>maxLimit) alert("That comment is too long, and people tend to dislike reading such monstrous posts. Consider saving some of your points for responses?\n\n(Length: "+len+")");
	else box.form.submit();
}

function CA_Update(box){
	var len=TrueLength(box.value);
	var n=(len>maxLimit||len<minLimit);
	document.getElementById(box.id+'_chars').innerHTML="<span class='"+(n?'red1':'green1')+"'>"+len+"</span>";
}


// Cross-browser stuff...

function GetMouseCoords(e){
	e=e||window.event;
	var coords={x:0,y:0};

	if(e.pageX||e.pageY){
		coords.x=e.pageX;
		coords.y=e.pageY;
	}
	else {
		cursor.x= e.clientX + (document.documentElement.scrollLeft||document.body.scrollLeft) + document.documentElement.clientLeft;
		cursor.y= e.clientY + (document.documentElement.scrollTop||document.body.scrollTop) + document.documentElement.clientTop;
	}

	return coords;
}

function _00(n){
	return (n<10?'0'+n:n);
}

function ColumnClock(){
	//Change this manually when the clocks change:
	var DST=0;

	var NOW=new Date();
	var Y =String(NOW.getUTCFullYear()).substr(-2);
	var M =_00(NOW.getUTCMonth()+1);
	var D =_00(NOW.getUTCDate());
	var Hr=_00(NOW.getUTCHours()+DST);
	var Mn=_00(NOW.getUTCMinutes());
	var Sc=_00(NOW.getUTCSeconds());
	var display="<tt style='font-size:15px;'><span class='brown3'>"+Y+"<br />"+M+"</span><br /><span class='brown2'>"+D+"</span><br />"+Hr+"<br />"+Mn+"<br /><span class='brown2'>"+Sc+"</span></tt>";
	document.getElementById("colclock").innerHTML=display;
}

function SetupColumnClock(){
	ColumnClock();
	colclocktick=setInterval("ColumnClock()",1000);
}
