// ***** Common JavaScript Functions *****
// ***** Copyright Office Depot, Inc *****

ns4 = (document.layers) ? true:false;
ie4 = (document.all) ? true:false;

function popUpX(url,T,L,W,H,M)
{
	var windowOptions = "toolbar=" + M + ",location=" + M + ",directories=0,status=0,menubar=" + M + ",scrollbars=1,resizable=1,top=" + T + ",left=" + L + ",width=" + W + ",height=" + H;
	window.open(url,'popUpX',windowOptions,false);
}

function openPDF(url,T,L,W,H)
{
	var windowOptions = "toolbar=1,location=1,directories=0,status=0,menubar=1,scrollbars=1,resizable=1,top=" + T + ",left=" + L + ",width=" + W + ",height=" + H;
	window.open(url,'',windowOptions,false);
}

function openCal()
{
	var calendar = window.open('/html/calendar.html','calendar','top=250,left=550,WIDTH=200,HEIGHT=200');
	calendar.focus();
	if (!calendar.opener) calendar.opener = self;
}

function openHelp(url,T,L,W,H)
{
	var newHeight = screen.availHeight * .5;
	var newWidth = screen.availWidth * .5;
	var newLeft = newWidth - 100;
	var newTop = 0;
	var windowOptions = "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,top=" + newTop + ",left=" + newLeft + ",width=" + newWidth + ",height=" + newHeight;
	var helpWindow = window.open(url,'Help',windowOptions,false);
	helpWindow.focus();
	//var windowOptions = "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,top=" + T + ",left=" + L + ",width=" + W + ",height=" + H;
	//window.open(url,'Help',windowOptions,false);
}

function checkAllBoxes()
{
	for (var i=0; i < document.forms[0].length; i++)
	{
		if (document.forms[0].elements[i].type == "checkbox")
		{
			document.forms[0].elements[i].checked = true;
		}
	}
}

function clearAllBoxes()
{
	for (var i=0; i < document.forms[0].length; i++)
	{
		if (document.forms[0].elements[i].type == "checkbox")
		{
			document.forms[0].elements[i].checked = false;
		}
	}
}

function gotoFirstElement()
{
	var firstElement = -1;
	for (var i=0; i < document.forms[0].length; i++)
	{
		if (firstElement == -1 && document.forms[0].elements[i].type != "hidden") firstElement = i;
	}
	if (firstElement != -1)
	{
		document.forms[0].elements[firstElement].focus();
	}
}

function clearFields()
{
	for (var i=0; i < document.forms[0].length; i++)
	{
		if (document.forms[0].elements[i].type == "checkbox") document.forms[0].elements[i].checked = false;
		if (document.forms[0].elements[i].type == "text") document.forms[0].elements[i].value = "";
		if (document.forms[0].elements[i].type == "password") document.forms[0].elements[i].value = "";
		if (document.forms[0].elements[i].type == "select-one") document.forms[0].elements[i].selectedIndex = 0;
		if (document.forms[0].elements[i].type == "radio") document.forms[0].elements[i].checked = false;
	}
	gotoFirstElement();
}

function clearErrorMessages()
{
	if (ie4)
	{
		for (var e = 0; e < document.all.errorMessage.length; e++)
		{
			document.all.errorMessage[e].innerText = '';
		}
	}
	if (ns4)
	{
		//var lyr = document.layers["statusDIV"].document;
		//lyr.open();
		//lyr.write("");
		//lyr.close();
		//document.layers["menu3DIV"].bgColor = "#006699";
		//for (var e = 0; e < document.layers["errorMessage"].length; e++)
		//{
		//	document.layers["errorMessage[e]"].value = '';
		//	document.layers["errorMessage[" + e + "]"].value = '';
		//	document.layers["errorMessage[0]"].value = '';
		//	alert("Error #" + e);
		//}
		//document.layers["NSerrorMessage"].value = '';
		//alert("Why are you still using Netscape?");
	}
}

function findFirstError(fieldName)
{
	var firstError = -1;
	for (var i=0; i < document.forms[0].length; i++)
	{
		if (firstError == -1 && document.forms[0].elements[i].name == fieldName) firstError = i;
	}
	if (firstError != -1)
	{
		document.forms[0].elements[firstError].focus();
	}
}

function openWindow(url)
{
	var newHeight = screen.availHeight * .5;
	var newWidth = screen.availWidth * .5;
	var newLeft = newWidth - 100;
	var newTop = 0;
	var windowOptions = "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,top=" + newTop + ",left=" + newLeft + ",width=" + newWidth + ",height=" + newHeight;
	var helpWindow = window.open(url,'Help',windowOptions,false);
	helpWindow.focus();
}

function resizeDataGrid()
{
	if (ie4)
	{
		if (ns4) objBothTables = document.divBothTables
		else if (ie4) objBothTables = divBothTables.style;

		if (ns4) objHeader = document.divHeader
		else if (ie4) objHeader = divHeader.style;

		objHeader.width = screen.availWidth * .9;
	
		if (ns4) objDetail = document.divDetail
		else if (ie4) objDetail = divDetail.style;

		objDetail.width = screen.availWidth * .9;
		objDetail.height = screen.availHeight - 400; // * .5

		var numberOfRows = document.all.rowDetail.length;
		if (numberOfRows >= 0)
		{
			// do nothing
		}
		else
		{
			numberOfRows = 1;
		}
		for (var d = 0; d < numberOfRows; d++)
		{
			if ((Math.floor(d / 2) * 2) != d) document.all.rowDetail[d].style.backgroundColor = "#CCCCCC";
		}

		for (var j = 0;j < document.all.rowHeader.cells.length; j++)
		{
			maxWidth = document.all.rowHeader.cells[j].innerText.length * 9;
			for (var d = 0; d < numberOfRows; d++)
			{
				var detailWidth = 0;
				if (numberOfRows == 1)
				{
					detailWidth = document.all.rowDetail.cells[j].innerText.length * 9;
				}
				else
				{
					detailWidth = document.all.rowDetail[d].cells[j].innerText.length * 9;
				}
				if (maxWidth < detailWidth) maxWidth = detailWidth;
			}
			if (maxWidth < 45)
			{
				maxWidth = 45;
			}
			document.all.rowHeader.cells[j].width = maxWidth;
			for (var d = 0; d < numberOfRows; d++)
			{
				if (numberOfRows == 1)
				{
					document.all.rowDetail.cells[j].width = maxWidth;
				}
				else
				{
					document.all.rowDetail[d].cells[j].width = maxWidth;
				}
			}
		}
	}
}

// ***** Calendar stuff next *****

function openCalendar()
{
	document.forms[0].saveDate.value = 0;
	window.dateField = document.forms[0].futureDate;
	initCalendar();
	if (ns4) document.calendar.visibility = "show"
	else if (ie4) calendar.style.visibility = "visible";
}

function closeCalendar()
{
	if (ns4) document.calendar.visibility = "hide"
	else if (ie4) calendar.style.visibility = "hidden";
}

function initCalendar()
{
	// Save field on parent form that opened this page
	//this.dateField = opener.dateField;
	//this.inDate    = dateField.value;

	// Retrieve fields for navigating through the months
	if (document.forms[0].saveDate.value == 0)
	{
		// Initialize hidden forms
		var now = new Date();
		var DD = now.getDate();
		var MM = now.getMonth() + 1;
		var CCYY = now.getYear();
		// if (CCYY < 100)
		// { CCYY += 1900; }
		// else
		// { CCYY += 2000; }
		document.forms[0].saveDate.value = formatDate(MM, DD, CCYY);
	}
}

function redrawCalendar()
{
	// Initialize local variables
	var monthArray = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
	var nbrDaysArray = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

	// Determine number of days in month
	var nbrDays = nbrDaysArray[document.forms[0].saveDate.value.substring(0,2) - 1];
	if (((document.forms[0].saveDate.value.substring(0,2) - 0) == 2) && ((document.forms[0].saveDate.value.substring(4,8) % 4 == 0 && document.forms[0].saveDate.value.substring(4,8) % 100 != 0) || document.forms[0].saveDate.value.substring(4,8) % 400 == 0))
	{ nbrDays = 29 }

	// Determine the day of week the month starts
	var firstOfMonth = new Date((document.forms[0].saveDate.value.substring(0,2) - 0) + "/1/" + document.forms[0].saveDate.value.substring(4,8));
	var day = - firstOfMonth.getDay();

	document.all.cellCalendarTitle.innerText = monthArray[document.forms[0].saveDate.value.substring(0,2) - 1] + " " + document.forms[0].saveDate.value.substring(4,8);;

	// Create first week of month
	for (var d=0; d<7; d++)
	{
		day++
		if (day > 0)
		{
			document.all.rowCalendar[0].cells[d].innerHTML = "<A HREF='javascript:sendToPrompter(" + day + ")'>" + day + "</a>";
		}
		else
		{
			document.all.rowCalendar[0].cells[d].innerHTML = "&nbsp;"
		}
	}

	// Create remaining weeks of month
	for(var w=1; w<6; w++)
	{
		for (var d=0; d<7; d++)
		{
			day++
			if (day <= nbrDays)
			{
				document.all.rowCalendar[w].cells[d].innerHTML = "<a href='javascript:sendToPrompter(" + day + ")'>" + day + "</a>";
			}
			else
			{
				document.all.rowCalendar[w].cells[d].innerHTML = "&nbsp;"
			}
		}
		if (day >= nbrDays)
		{
			break;
		}
	}
}

function formatDate(MM,DD,CCYY)
{
	var fmtDt = "";
	if ((""+MM).length == 1) { MM="0"+MM; }
	fmtDt += MM;
	if ((""+DD).length == 1) { DD="0"+DD; }
	fmtDt += DD;
	fmtDt += CCYY;
	return fmtDt;
}

function gotoPreviousMonth()
{
	var CCYY = document.forms[0].saveDate.value.substring(4,8) - 0;
	var MM = document.forms[0].saveDate.value.substring(0,2) - 0;
	if (MM == 1)
	{ MM = 12; CCYY--; }
	else
	{ MM--; }
	document.forms[0].saveDate.value = formatDate(MM, 1, CCYY);
	redrawCalendar();
}

function gotoNextMonth()
{
	var CCYY = document.forms[0].saveDate.value.substring(4,8) - 0;
	var MM = document.forms[0].saveDate.value.substring(0,2) - 0;
	if (MM == 12)
	{ MM = 1; CCYY++; }
	else
	{ MM++; }
	document.forms[0].saveDate.value = formatDate(MM, 1, CCYY);
	redrawCalendar();
}

function sendToPrompter(DD)
{
	if ((""+DD).length == 1) { DD="0"+DD; }
	dateField.value = document.forms[0].saveDate.value.substring(0,2) + DD + document.forms[0].saveDate.value.substring(6,8);
	closeCalendar();
}

function createCalendar()
{
	initCalendar();
	for (var w=0; w<6; w++)
	{
		document.write("<TR id=\"rowCalendar\">");
		for (var d=0; d<7; d++)
		{
			var adjust = (w*7) + d + 1;
			document.write("<TD align=right>");
			//document.write("<A HREF='javascript:sendToPrompter(" + adjust + ")'>" + adjust + "</a>");
			document.write("&nbsp;");
			document.write("</TD>");
		}
		document.write("</TR>");
	}
	redrawCalendar();
}

// ***** END *****
