function $(elementId)
{
	return document.getElementById(elementId);
}

function fixGroupBoxAndUnitDescription()
{
	var unitDescr = document.forms[0].elements['unitDescription'];
	var gbCombo = document.forms[0].elements['groupCodeId'];
	
	if(unitDescr && gbCombo)
	{
		var selectedGroupCode = gbCombo.options[gbCombo.selectedIndex].value;
		var text = unitDescr.value;

		//group code is not selected
		if(selectedGroupCode == "-1")
		{
			//we have a value in the textbox
			if(text != '' && text != undefined)
			{
				gbCombo.disabled = true;
				unitDescr.disabled = false;
				unitDescr.className = "";
			}
			else
			{
				gbCombo.disabled = false;
				unitDescr.disabled = false;
				unitDescr.className = "";
			}
		}
		else
		{
			gbCombo.disabled = false;
			unitDescr.className = "disabled";
			unitDescr.value = "";
			unitDescr.disabled = true;
		}
	}
}

function toggleDropDowns(day)
{
	var cb = $(day + 'Authorized');
	
	var toDD = $(day + 'StartTime');
	var fromDD = $(day + 'EndTime');
	
	//If this is Firefox, the above won't work, so use another approach
	if(!cb)
	{
		var temp = document.getElementsByName(day + "Authorized");
		cb = temp[0];	
	}
	
	//If this is Firefox, the above won't work, so use another approach
	if(!toDD && !fromDD)
	{
		var to = document.getElementsByName(day + "StartTime");
		var from = document.getElementsByName(day + "EndTime");
		
		toDD = to[0];
		fromDD = from[0];
	}
	
	if(toDD && fromDD)
	{
		toDD.disabled = !cb.checked;
		fromDD.disabled = !cb.checked;
	}
}

function toggleTransactionCheckboxes(containerId, checked)
{
	var container = $(containerId);
	
	if(container)
	{
		inputs = container.getElementsByTagName("input");
		dropdowns = container.getElementsByTagName("select");
		
		if(inputs && inputs.length && 
			dropdowns && dropdowns.length)
		{
			var i = 0;
				
			for(; i<inputs.length; ++i)
			{
				if(inputs[i].type == "checkbox")
				{
					inputs[i].checked = checked;
				}
			}
			
			var k = 0;
			
			for(; k<dropdowns.length; ++k)
			{
				dropdowns[k].disabled = !checked;
			}
		}
	}
}

function validateQuantity(textbox, idOfMessageElem)
{
	if(textbox)
	{
		var elem = $(idOfMessageElem);
		var txtVal = textbox.value;
		
		var amount = parseInt(txtVal);
		
		if(amount == NaN)
		{
			elem.style.display = "";
			elem.innerHTML = "Quantity must be supplied";
		}
		else if(amount == 0)
		{
			elem.style.display = "";
			elem.innerHTML = "Quantity must be greater than zero";
		}
		else if(amount > 0 && amount <= 10)
		{
			elem.style.display = "none";
		}
		else if(amount > 10 && amount <= 50)
		{
			elem.style.display = "";
			elem.innerHTML = "Quantity is greater than 10";
		}
		else if(amount > 50 && amount <= 100)
		{
			elem.style.display = "";
			elem.innerHTML = "Quantity is greater than 50";
		}
		else if(amount > 100 && amount <= 500)
		{
			elem.style.display = "";
			elem.innerHTML = "Quantity is greater than 100";
		}
		else if(amount > 500)
		{
			elem.style.display = "";
			elem.innerHTML = "Quantity is greater than 500";
		}
	}
}

function toggleCardChecks(src, elementsName, form, check)
{
	inputElements = document.forms[form].elements[elementsName];
		
	if(inputElements != null)
	{	
		if(!check)
		{
			src.innerHTML = "Select All";
		}
		else
		{
			src.innerHTML = "Deselect All";
		}
			
		src.onclick = function() { toggleCardChecks(src, elementsName, form, !check) };
		
		var length = inputElements.length;
		
		if(!length)
		{
			inputElements.checked = check;
		}
		else
		{
			for(var i=0; i<length; ++i)
			{
				inputElements[i].checked = check;
			}
		}	
	}
}

function onlyNumeric(e)
{
  	var iKeyCode = 0;
  	if (window.event)
  	{
       iKeyCode = window.event.keyCode
    }
  	else if (e)
    {
       iKeyCode = e.which;
   	}
   	
   	//13 = enter, 8 = backspace, 9/0 = tab, 27 = esc, 
   	//46 = delete, 37 = left arrow
   	

  	if ((iKeyCode > 47 && iKeyCode < 58))
  	{
       return true;
    }
    else if((iKeyCode == 13) || (iKeyCode == 8) ||
    	(iKeyCode == 9) || (iKeyCode == 27) || (iKeyCode == 37) 
    	|| (iKeyCode == 0))
    {
    	return true;
    }
  	else
  	{
       return false;
  	}
 }
 
 function toggleHiddenArea(clickedElem, areaToToggle, show, text)
 {
 	var theDiv = $(areaToToggle);
 	
 	clickedElem.onclick = function() { toggleHiddenArea(clickedElem, areaToToggle, !show, text); }
 	
 	if(show)
 	{
 		theDiv.style.display = "";
 		clickedElem.innerHTML = text + " hide)";
 	}
 	else
 	{
 		theDiv.style.display = "none";
 		clickedElem.innerHTML = text + " show)";
 	}
 }
 
 //adding these functions for the calender operations
 //added by Shamir Charania for the SAP migration
 //Feb 2008
 
function ToggleTimeControls() {
	this.isDateSelectionValid();
                               
} // End of ToggleTimeControls()
            


function InitializeControls() {
	if ("" == ""){//document.getElementById("startDate").value || "" == document.getElementById("endDate").value) {
				    var now = new Date();
	                var currentYear = now.getFullYear();
	                var currentMonth = now.getMonth() + 1;
	                var currentDay = now.getDate();

	                document.getElementById("startDate").value = currentYear + "-" + currentMonth + "-" + 01;
	                document.getElementById("endDate").value = currentYear + "-" + currentMonth + "-" + currentDay;
	            } // End of if
	            this.ToggleTimeControls();

	            document.getElementById("startDate").focus();
            } // End of InitializeControls()
                        
			function isDateSelectionValid() {
			
            	var startDateComponents = document.getElementById("startDate").value.split('-');
            	var startDate = new Date(startDateComponents[0], startDateComponents[1], startDateComponents[2]);
            	
                var endDateComponents = document.getElementById("endDate").value.split('-');
            	var endDate = new Date(endDateComponents[0], endDateComponents[1], endDateComponents[2]);
			
				var maxEndDate = new Date();
				maxEndDate.setDate(startDate + 180);
				
				if ((endDate >= maxEndDate) || (endDate <= startDate))
				{
				document.getElementById("invalidDateWarning").style.display = '';
				document.getElementById("cardSearch").disabled = 1;
				
				}
				else
				{
				document.getElementById("invalidDateWarning").style.display = 'none';
				document.getElementById("cardSearch").disabled = 0;
				
				}
            	
            } // End of isDateSelectionValid()
            
            function ShowNewCalendar(textboxToUpdate) {
            	
				var dialogURL = "/selfservice/web/reports/ModalCalendar.html";
				var dialogStyle = "scroll: no; status: no; help: no; edge: sunken; dialogHeight: 175px; dialogWidth: 165px;";
				
				//display a modal dialog: the return value is returnValue property
				var retVal = window.showModalDialog(dialogURL, document.getElementById(textboxToUpdate).value.split('-'), dialogStyle);
				
				if (null != retVal) {
				    document.getElementById(textboxToUpdate).value = retVal[0] + "-" + retVal[1] + "-" + retVal[2];
				} // End of if
				
				this.isDateSelectionValid();
				
			} // End of ShowNewCalendar(textboxToUpdate)
			
