// determine what browser is being used
var IE5 = (document.all) ? true : false;
var N6 = (document.getElementById && !document.all) ? true : false;
function getVariable(strId)
{
	var retVal;
	if(N6)
	{
		retVal = document.getElementById(strId);
		/*
		if(retVal == null)
		{
			var items = document.getElementsByName(strId);
			if(items.length > 0)
				retVal = items[0];
		}
		*/
	}
	else if(IE5)
		retVal = document.all[strId];
	else 
		retVal = document.all[strId];
	
	return retVal;
}

function randRange(maxVal)
{
	return Math.round(maxVal * Math.random());
}

var currentBlinker = null;
function doBlink(obj, type)
{
	currentBlinker = setInterval("blinkText('" + obj + "', '" + type + "')", 500);
}

function blinkText(obj, type)
{
	if(type == "solid")
	{
		if(getVariable(obj).style.visibility == "hidden")
			getVariable(obj).style.visibility = "visible";
		else
			getVariable(obj).style.visibility = "hidden";
	}
}

function checkLength(length)
{
	if(window.event.srcElement.value.length  >= length)
	{
		alert("You have reached the maximum length of " + length + " characters permitted here.");
		return false;
	}
}

function rand()
{
	return (new Date()).valueOf();
}

function href_stripQueryString(href)
{
	var retVal = href;
	if(href.indexOf('?') >= 0)
		retVal = href.substring(0, href.indexOf('?'));
	return retVal;
}

function href_appendQueryString(href, varName, varValue)
{
	if(href.indexOf('?') >= 0)
		href += "&" + varName + "=" + varValue;
	else
		href += "?" + varName + "=" + varValue;
	return href;
}

function href_goto(href)
{
	window.open(href);
}

// BEGIN: date functions
//   - used with generateDate function to manage date fields
var daysNormal   = new Array( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var daysLeapYear = new Array( 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

function isLeapYear(year)
{
   if ((year / 4)   != Math.floor(year / 4))   
		return false;
   if ((year / 100) != Math.floor(year / 100)) 
		return true;
   if ((year / 400) != Math.floor(year / 400)) 
		return false;
   return true;
}

function updateDays(dateName)
{
	var objMonth = getVariable(dateName + '_month');
	var objDay = getVariable(dateName + '_day');
	var objYear = getVariable(dateName + '_year');
	var days = isLeapYear(objYear.value) ? daysLeapYear[parseInt(objMonth.value)-1] : daysNormal[parseInt(objMonth.value)-1];
	var oldDay = objDay.value == "" ? 1 : objDay.value;
	
	objDay.options.length = 0;
	for(var i=1; i<=days; i++)
		objDay.options[objDay.options.length] = new Option(i, i);
	if(oldDay > days)
		oldDay = days;
	objDay.value = oldDay;
}
// END: date functions


var iframe_counter = 1;
function iframe_request()
{
	var iframe_loader = document.createElement("iframe");
	var iframe_id = "iframe_loader_" + iframe_counter++;
	iframe_loader.id = iframe_id;
	iframe_loader.name = iframe_id;
	//iframe_loader.style.position = "absolute";
	iframe_loader.style.left = 0;
	iframe_loader.style.top = 0;
	iframe_loader.style.border = "0px";
	iframe_loader.style.width = "500px";
	iframe_loader.style.height = "300px";
	iframe_loader.style.display = "";
	
	document.body.appendChild(iframe_loader);
	return iframe_id;
}



function table_getRowIndex(tableObj, id)
{
	var rowIndex = null;
	for(var i=0; i<tableObj.rows.length; i++)
	{
		if(tableObj.rows[i].id == id)
		{
			rowIndex = i;
			break;
		}
	}
	return rowIndex;
}

function getFrame(id)
{
	return getVariable(id).contentWindow;
}

var ani_resizeIncrement = 50;
var ani_resizeSpeed = 10;
function aniOpen(targetFrameId, href, finalHeight)
{
	var targetFrame = getVariable(targetFrameId);
			
	// keep resizing
	if(targetFrame.clientHeight < finalHeight)
	{
		targetFrame.style.height = (targetFrame.clientHeight + ani_resizeIncrement) + "px";
		window.setTimeout("aniOpen('" + targetFrameId + "', '" + href + "', " + finalHeight + ")", ani_resizeSpeed); 
	}
	// done resizing...assign href
	else
	{
		targetFrame.style.height = finalHeight + "px";
		if(href.length > 0)
			getFrame(targetFrameId).location.href = href;
	}
}

function aniClose(targetFrameId, onClose)
{
	var targetFrame = getVariable(targetFrameId);
	//alert(targetFrame);
	// keep resizing
	if(targetFrame.clientHeight > ani_resizeIncrement)
	{
		targetFrame.style.height = (targetFrame.clientHeight - ani_resizeIncrement) + "px";
		window.setTimeout("aniClose('" + targetFrameId + "', \"" + onClose + "\")", ani_resizeSpeed); 
	}
	// hide iframe and call onClose
	else
	{
		targetFrame.style.height = "0px";
		if(onClose.length > 0)
			eval(onClose);
	}
}


function dummy(){}