//
// AJAX SUPPORT
//
var xmlHttpIsSupported = true;
var xmlHttp=GetXmlHttpObject();

function stateChanged(txtDivid) 
{
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
		if (xmlHttp.responseText != "")
			document.getElementById(txtDivid).innerHTML=xmlHttp.responseText;
}

function GetXmlHttpObject()
{
	var xmlHttp=null;

	// Try Firefox, Opera 8.0+, Safari
	// Then Try Internet Explorer
	try { xmlHttp=new XMLHttpRequest(); }
	catch (e) {
		try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); }
		catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }
	}
	xmlHttpIsSupported = (xmlHttp == null) ? false : true;
	if (xmlHttp==null)
	{
		alert ("Your browser does not support HTTP Requests");
		return false;
	}
	return xmlHttp;
}

// floating division working indicator
var waiting_mousex	= 0;
var waiting_mousey	= 0;
var waiting_elex	= 0;
var waiting_eley	= 0;
var waiting_posel = null;
var waiting_divel = null;
function getMouseXY(e)
{
	IE = (!e) ? true : false;
	if (!e) e = window.event; // works on IE, but not NS (we rely on NS passing us the event)

	if (e)
	{
		if (e.pageX || e.pageY)
		{
			// this doesn't work on IE6!! (works on FF,Moz,Opera7)
			waiting_mousex = e.pageX;
			waiting_mousey = e.pageY;
		}
		else if (e.clientX || e.clientY)
		{
			// works on IE6,FF,Moz,Opera7
			waiting_mousex = e.clientX + document.body.scrollLeft;
			waiting_mousey = e.clientY + document.body.scrollTop;
		}
	}
}
function getElPos(el)
{
	var x = el.offsetLeft;
	var y = el.offsetTop;
	var elp = el.offsetParent;
	while(elp!=null)
	{
		x+=elp.offsetLeft;
		y+=elp.offsetTop;
		elp=elp.offsetParent;
	}
	waiting_elex = x;
	waiting_eley = y;
}
function hideWorking()
{
	waiting_divel.style.display='none';
}
function showWorking()
{
	if ((waiting_posel==null) || (waiting_divel==null)) return;
	getElPos(waiting_posel);
	var mx = waiting_mousex+waiting_elex+175;
	var my = waiting_mousey+waiting_eley+80;

	waiting_divel.style.top = my + "px";
	waiting_divel.style.left = mx + "px";
	waiting_divel.style.display='block';
}
function formatDate()
{
	// lookup arrays
	dows = "Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(',');
	mons = "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(',');
	months = "January,February,March,April,May,June,July,August,September,October,November,December".split(',');
	
	// default Date() "Thu Feb 26 2009 13:41:42 GMT-0500 (EST)"	
	var d= new Date();
	var yr = d.getFullYear();		// 4 digit Year
	var mon = d.getMonth();		// Month 0-11
	var day = d.getDate();		// day of the month 1-31
	var dow = d.getDay();			// day of the week 0-6
	var hrs = d.getHours();		// hours 0-23
	var min = d.getMinutes();		// minutes 0-59
	var sec = d.getSeconds();		// seconds 0-59

	var am = (hrs < 12)?'AM':'PM';
	var hr = (am == 'PM')?(hrs-12):hrs;
	hr = (hr==0)?12:hr;
	mn = (min<10)?'0'+min.toString():min;
		
	return dows[dow]+' '+months[mon]+' '+day+', '+yr+' '+hr+':'+mn+' '+am;
}

//
// Text to html preview
//
var keytimer=null;
var keysourceid=null;
var keytargetid=null;

function scaninit(src,tgt)
{
	if(keytimer!=null)
		window.clearTimeout(keytimer);
	keysourceid=src;
	keytargetid=tgt;
	keytimer=window.setTimeout("scantransform()",100);
}
function scanterm()
{
	if(keytimer!=null)
		window.clearTimeout(keytimer);
	keysourceid=null;
	keytargetid=null;
}
function scantransform()
{
	var ksrc=keysourceid;
	var ktgt=keytargetid;
	scanterm();
	document.getElementById(ktgt).innerHTML = ksrc.value;
	scaninit(ksrc,ktgt);
}

