// JavaScript Document
// for combobox
var fActiveMenu = false;
var oOverMenu = false;

function mouseSelect(e)
{
	if (fActiveMenu)
	{
		if (oOverMenu == false)
		{
			oOverMenu = false;
			document.getElementById(fActiveMenu).style.display = "none";
			fActiveMenu = false;
			return false;
		}
		return false;
	}
	return true;
}

function menuActivate(idEdit, idMenu, idSel)
{
	if (fActiveMenu) return mouseSelect(0);

	oMenu = document.getElementById(idMenu);
	oEdit = document.getElementById(idEdit);
	nTop = oEdit.offsetTop + oEdit.offsetHeight;
	nLeft = oEdit.offsetLeft;
	while (oEdit.offsetParent != document.body)
	{
		oEdit = oEdit.offsetParent;
		nTop += oEdit.offsetTop;
		nLeft += oEdit.offsetLeft;
	}
	oMenu.style.left = nLeft;
	oMenu.style.top = nTop;
	oMenu.style.display = "";
	fActiveMenu = idMenu;
	document.getElementById(idSel).focus();
	return false;
}

function textSet(idEdit, text)
{
	document.getElementById(idEdit).value = text;
	oOverMenu = false;
	mouseSelect(0);
	document.getElementById(idEdit).focus();
}

function comboKey(idEdit, idSel)
{
	if (window.event.keyCode == 13 || window.event.keyCode == 32)
		textSet(idEdit,idSel.value);
	else if (window.event.keyCode == 27)
	{
		mouseSelect(0);
		document.getElementById(idEdit).focus();
	}
}
document.onmousedown = mouseSelect;

// end of combobox


function confirmSetValuesAndSubmit(formId, fieldIds, fieldValues, message)
{
	var result = false;

	if (fieldIds.length == fieldValues.length)
	{
		result = confirm(message);
		
		if (result)
		{
			
			for (i = 0; i < fieldIds.length; i++)
			{
				setValue(fieldIds[i], fieldValues[i]);
			}
			submitForm(formId);
		}
	}
	
	return result;
}

function setValueAndSubmit(formId, fieldId, fieldValue)
{
	setValue(fieldId, fieldValue);
	submitForm(formId);
}

function setValue(id, value)
{
	var eid = document.getElementById(id);
	
	eid.value = value;
}

function submitForm(form)
{
	document.getElementById(form).submit();
}

function showPDFPopup(form)
{
	var obj = document.getElementById(form);
	
	setValue('action', 'P');
	obj.setAttribute("target", "_blank");
	obj.submit();
	
	setValue('action', '');
	obj.setAttribute("target", "_self");
//	obj.submit();
	
	return true;
}

function setCheckbox(form, name, value)
{

	if (document.forms[form])
	{
		var objCheckBoxes = document.forms[form].elements[name];

		if (objCheckBoxes) 
		{
			var countCheckBoxes = objCheckBoxes.length;
		
			if (!countCheckBoxes)
			{
				objCheckBoxes.checked = value;
			}
			else
			{
				// set the check value for all check boxes
				for (var i = 0; i < countCheckBoxes; i++)
				{
					objCheckBoxes[i].checked = value;
				}
			}
		}
	}
}

function dateAdd(dateStr, days)
{
	var result = dateStr;
	
	if (isValidDate(dateStr) && isStartOfWeek(dateStr))
	{
		var year = dateStr.substring(0, 4);
		var month = dateStr.substring(5, 7) - 1;
		var day = dateStr.substring(8);
		var dateObj = new Date(year, month, day);
		
		var millisec = dateObj.getTime() + (days * 24 * 60 * 60 * 1000);
		dateObj.setTime(millisec);
		
		year = dateObj.getFullYear();
		month = new Number(dateObj.getMonth() + 101);
		month = month.toString().substring(1, 3);
		day = new Number(dateObj.getDate() + 100);
		day = day.toString().substring(1, 3);
		
		result = year + '-' + month + '-' + day;
	}
	
	return result;
}

function isStartOfWeek(dateStr)
{
	var result = false;
	
	if (isValidDate(dateStr))
	{
		year = dateStr.substring(0, 4);
		month = dateStr.substring(5, 7) - 1;
		day = dateStr.substring(8);
		dateObj = new Date(year, month, day);
		
		if (dateObj.getDay() == 0)
		{
			result = true;
		}
		else
		{
			alert('Start Date should be a Sunday.');
		}
	}
	
	return result;
}

function isValidDate(dateStr)
{
	var result = false;
	
	if (dateStr.length == 10)
	{
		year = dateStr.substring(0, 4);
		month = dateStr.substring(5, 7) - 1;
		day = dateStr.substring(8);
		dateObj = new Date(year, month, day);
		result = ((day == dateObj.getDate()) && (month == dateObj.getMonth()) && (year == dateObj.getFullYear()));
	}
	
	if (!result)
	{
		alert('Invalid date: ' + dateStr + '. Should be a valid date and in YYYY-MM-DD format.');
	}
	
	return result;
}

function getDateNow()
{
	now = new Date();
	
	year = now.getFullYear();
	month = new Number(now.getMonth() + 101);
	month = month.toString().substring(1, 3);
	day = new Number(now.getDate() + 100);
	day = day.toString().substring(1, 3);
	
	return(year + '-' + month + '-' + day);
}

function confirmExpiration(dateStr, message)
{
	var result = false;

	if (isValidDate(dateStr))
	{
		expDate = new Date(dateStr.substring(0, 4), dateStr.substring(5, 7) - 1, dateStr.substring(8));
		now = new Date();
		
		if (expDate.getTime() <= now.getTime())
		{
			result = confirm(message);
		}
		else
		{
			result = true;
		}
	}
	
	return result;
}

function validateNumber(allow, id, message)
{
	var result = false;

	if (parseInt(id.value) > 0)
	{
		
		if (id.value == 1 || (id.value > 1 && allow == 1))
		{
			result = true;
		}
		else
		{
			alert(message);
			id.value = 1;
		}
	}
	else
	{
		alert(id.value + ' is not a valid value.');
		id.value = 1;
	}

	return result;
}


function toggleDisplay(id)
{
	
	if (id.style.display == 'none')
	{
		id.style.display = 'inline';
	}
	else
	{
		id.style.display = 'none';
	}
}


