var bCurEntryChanged = false;
var activeElement	 = null;

function validEntry(bPrompt)
{
	displayWarning("", false);

	if (document.formCompany.sAdminUserID)
	{
		if (document.formCompany.sUserName.value == "")
		{
			displayWarning("Please enter your name", false);
			return false;
		}
		if (document.formCompany.sEmail.value == "" || document.formCompany.sEmail.value.indexOf("@") == -1)
		{
			displayWarning("Please enter your email address", false);
			return false;
		}
		if ((document.formCompany.sEmail.value.indexOf("@") == -1) || (document.formCompany.sEmail.value.indexOf(".") == -1))
		{
			displayWarning("You must enter a valid email address", bPrompt);
			return false;
		}
		if (document.formCompany.sCompanyName.value == "")
		{
			displayWarning("Please enter a company name", bPrompt);
			return false;
		}
		if (document.formCompany.sAdminUserID.value == "")
		{
			displayWarning("Please enter a user id (e.g your first name)", bPrompt);
			return false;
		}
		if (document.formCompany.sPassword.value == "")
		{
			displayWarning("Please enter a password to use", bPrompt);
			return false;
		}
		if (document.formCompany.sConfirm.value == "")
		{
			displayWarning("Now confirm the password", bPrompt);
			return false;
		}
		if (document.formCompany.sPassword.value != document.formCompany.sConfirm.value)
		{
			displayWarning("Your passwords do not match", bPrompt);
			return false;
		}
	}
	else
	{
		if (document.formCompany.sCompanyName.value == "")
		{
			displayWarning("You must enter a company name", bPrompt);
			return false;
		}
	}

	iUnits = document.forms.formCompany.iDefUnits.value;
	if (iUnits > 0)
	{
		for (iDay = 0; iDay < 7; iDay++)
		{
			iDayLength = makeZero(timeInMinutes(eval("document.forms.formCompany.sDefDayEnd" + iDay).value)) - makeZero(timeInMinutes(eval("document.forms.formCompany.sDefDayStart" + iDay).value)) - makeZero(durationInMinutes(eval("document.forms.formCompany.sDefDayBreaks" + iDay).value));
			if (iDayLength > 0)
			{
				if ((iDayLength % iUnits) != 0)
				{
					displayWarning("The duration of each day must be a multiple of " + iUnits + " minutes", bPrompt);
					return false;
				}
			}
		}
	}
	for (iDay = 0; iDay < 7; iDay++)
	{
		iStartTime = timeInMinutes(eval("document.formCompany.sDefDayStart" + iDay).value);
		iEndTime = timeInMinutes(eval("document.formCompany.sDefDayEnd" + iDay).value);
		iDayBreak = durationInMinutes(eval("document.formCompany.sDefDayBreaks" + iDay).value);
		if (iDay == 0)
		{
			document.formCompany.sDefDayStart.value = iStartTime;
			document.formCompany.sDefDayEnd.value = iEndTime;
			document.formCompany.sDefDayBreaks.value = iDayBreak;
		}
		else
		{
			document.formCompany.sDefDayStart.value += "," + iStartTime;
			document.formCompany.sDefDayEnd.value += "," + iEndTime;
			document.formCompany.sDefDayBreaks.value += "," + iDayBreak;
		}
	}

	if ((document.formCompany.daReadOnly.value > "") && !checkDate(document.formCompany.daReadOnly, bPrompt))
		return false;


	return true;
}

function entryChanged (bChanged, oElement)
{
var bValid;

	bCurEntryChanged = bChanged;

	b24Hr = (document.forms.formCompany.bDef24Hr.value == "1");

	if ((oElement.name.substr(0, 12) == "sDefDayStart") || (oElement.name.substr(0, 10) == "sDefDayEnd"))
		oElement.value = formatTime(timeInMinutes(oElement.value));
	else if (oElement.name.substr(0, 13) == "sDefDayBreaks")
		oElement.value = formatDuration(durationInMinutes(oElement.value));

	// Enable/disable the buttons as necessary
	bValid = validEntry(false);
	if (document.images.imgRegister)
	{
		if (bValid)
			document.images.imgRegister.src = "/images/register.gif";
		else
			document.images.imgRegister.src = "/images/register_dis.gif";
	}
	else if (document.images.imgUpdate)
	{
		if (bValid)
		{
			document.images.imgUpdate.src = "/images/update.gif";
			document.images.imgDelete.src = "/images/delete.gif";
		}
		else
		{
			document.images.imgUpdate.src = "/images/update_dis.gif";
			document.images.imgDelete.src = "/images/delete_dis.gif";
		}
	}
}

function submitCompany (sAction)
{
	if (sAction == "delete")
	{
		if (!confirm("Are you sure you want to delete this company?"))
			return;
	}
	else
	{
		if (!bCurEntryChanged) return;
		if (!validEntry(true)) return;
	}

	if (document.formCompany.sPassword)
	{
		document.formCompany.sPassword.value = hex_md5(document.formCompany.sPassword.value);
		document.formCompany.sConfirm.value = document.formCompany.sPassword.value;
	}

	document.formCompany.act.value = sAction;
	document.formCompany.submit();
}

function blurHandler(evt) {
	activeElement = null;
}

function focusHandler(evt) {
var e = evt ? evt : window.event;

	if (!e) return;
	if (e.target)
		activeElement = e.target;
	else if(e.srcElement) activeElement = e.srcElement;
}

function formLoad()
{
var i, j;
	
	for (i = 0; i < document.forms.length; i++)
		for (j = 0; j < document.forms[i].elements.length; j++) {
			document.forms[i].elements[j].onfocus = focusHandler
			document.forms[i].elements[j].onblur  = blurHandler
		}
	focusOnFirst();
}
