function isArray(TestObj)
{
	isArrayTest = true;

	try
	{
		if (isNaN(TestObj.length))
		{
			isArrayTest = false;
		}
	}
	catch (e)
	{
		isArrayTest = false;
	}

	return(isArrayTest); 
}

function UpdateTotal(TotalName, ScalarName, SelectObj)
{
	Total = document.getElementById(TotalName);
	Scalar = parseInt(document.getElementById(ScalarName).value);
	Total.value = DollarFormat(parseFloat(SelectObj.options[SelectObj.selectedIndex].value)*Scalar);
}

function PostBackForm(FormName)
{
	ScrollList = GetScrollXY();
	
	WebForm = document.getElementById(FormName);

	PageOffset = ScrollList[1];
	if (PageOffset == 0)
	{
		PageOffset = 1;
	}

//	alert(document.body.scrollHeight+" "+ScrollList[1]);

	PostBackField = document.getElementsByName("postback");
	if (isArray(PostBackField))
	{
		for (x=0; x<PostBackField.length; x++)
		{
			PostBackField[x].value = PageOffset;
		}
	}
	else
	{
		PostBackField.value = PageOffset;
	}

	if (WebForm.action.indexOf("?") != -1)
	{
		WebForm.action += "&PostBack="+PageOffset;		
	}
	else
	{
		WebForm.action += "?PostBack="+PageOffset;		
	}

	WebForm.submit();
}

function PostBackButton(FormName,SubmitButtonName)
{
	ScrollList = GetScrollXY();
	
	WebForm = document.getElementById(FormName);
	WebButton = document.getElementById(SubmitButtonName);

	PageOffset = ScrollList[1];
	if (PageOffset == 0)
	{
		PageOffset = 1;
	}

//	alert(document.body.scrollHeight+" "+ScrollList[1]);

	if (WebForm.action.indexOf("?") != -1)
	{
		WebForm.action += "&PostBack="+PageOffset;		
	}
	else
	{
		WebForm.action += "?PostBack="+PageOffset;		
	}

	WebButton.click();
}

function SumSubTotals(SubTotalName,GrandTotalName,ModifierName)
{
	Sum = 0;
	
	SubTotalList = document.getElementsByName("subtotal");

	Total = document.getElementById(SubTotalName);
	Modifier = document.getElementById(ModifierName);
	GrandTotal = document.getElementById(GrandTotalName);

    if (SubTotalList.length > 0)
	{
		for (i=0; i<SubTotalList.length; i++)
		{
			Sum += parseFloat(SubTotalList[i].value);
		}

		Total.value = Sum+""+".00";		
	}		

	Total.value = Sum+""+".00";

	if (Sum > 0)
	{
		Sum += parseFloat(Modifier.value);
	}

	GrandTotal.value = DollarFormat(Sum);
}

function DollarFormat (Amount)
{
	AmountString = Amount.toString();
	AmountList = null;
	
	if (AmountString.indexOf(".") == -1)
	{
		AmountString += ".00";
	}
	else
	{
		AmountList = AmountString.split('.');
		if (AmountList[1].length < 2)
		{
			AmountString += "0";
		}
	}
	
	return(AmountString);
}

function GetScrollXY() 
{
	var scrOfX = 0, scrOfY = 0;
	if( typeof( window.pageYOffset ) == 'number' ) 
	{
		//Netscape compliant
		scrOfY = window.pageYOffset;
		scrOfX = window.pageXOffset;
	} 
	else
	{
		if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) 
		{
			//DOM compliant
			scrOfY = document.body.scrollTop;
			scrOfX = document.body.scrollLeft;
		} 
		else 
		{
			if ( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) 
			{
				//IE6 standards compliant mode
				scrOfY = document.documentElement.scrollTop;
			    scrOfX = document.documentElement.scrollLeft;
			}			
		}
	}

	return [ scrOfX, scrOfY ];
}

function date2cookiedate(dTemp) 
  {    
    var sDay, sMonth, sYear;    
    var aMonth = new Array(12);    
    
    aMonth[0] = 'January';    
    aMonth[1] = 'February';    
    aMonth[2] = 'March';    
    aMonth[3] = 'April';    
    aMonth[4] = 'May';    
    aMonth[5] = 'June';    
    aMonth[6] = 'July';    
    aMonth[7] = 'August';    
    aMonth[8] = 'September';    
    aMonth[9] = 'October';    
    aMonth[10] = 'November';    
    aMonth[11] = 'December';        
    
    sMonth = aMonth[dTemp.getUTCMonth()];        
    sDay = dTemp.getUTCDate();        
    sYear = dTemp.getUTCFullYear();        
    
    return(sMonth + ' ' + sDay + ', ' + sYear);
  }
  
function date2access ()
  {
    if (!date2access.arguments.length)
	  dDate = new Date();
	else
	  dDate = date2access.arguments[0];
	  
	str = (dDate.getMonth()+1) + "/" + dDate.getDate() + "/" + dDate.getFullYear();
	
	return str;
  }
  
function date2time ()
  {
    if (!date2time.arguments.length)
	  dDate = new Date();
	else
	  dDate = date2time.arguments[0];
	  
    sMin = dDate.getMinutes();
    if (sMin < 10)
        sMin = "0"+sMin;
    sSec = dDate.getSeconds();
    if (sSec < 10)
        sSec = "0"+sSec;
    sHrs = dDate.getHours();
    sPM = "AM";
    if (sHrs >= 12)
        {
            sHrs = sHrs - 12;
            sPM = "PM";
        }
    if (sHrs == 0)
        sHrs = 12;
	str = sHrs + ":" + sMin;
	
	return str;
  }
  
function date2timeindicator ()
  {
    if (!date2timeindicator.arguments.length)
	  dDate = new Date();
	else
	  dDate = date2timeindicator.arguments[0];
	  
    sPM = "AM";
    sHrs = dDate.getHours();
    if (sHrs >= 12)
        {
            sHrs = sHrs - 12;
            sPM = "PM";
        }
			
	return sPM;
  }  
    
function date2datetime ()
  {
    if (!date2datetime.arguments.length)
	  dDate = new Date();
	else
	  dDate = date2datetime.arguments[0];
	  
    sMin = dDate.getMinutes();
    if (sMin < 10)
        sMin = "0"+sMin;
    sSec = dDate.getSeconds();
    if (sSec < 10)
        sSec = "0"+sSec;
    sHrs = dDate.getHours();
    sPM = "AM";
    if (sHrs >= 12)
        {
            sHrs = sHrs - 12;
            sPM = "PM";
        }
    if (sHrs == 0)
        sHrs = 12;
	str = (dDate.getMonth()+1) + "/" + dDate.getDate() + "/" + dDate.getFullYear() + " " + sHrs + ":" + sMin + ":" + sSec + " " + sPM;
	
	return str;
  }

function date2datetimetable ()
  {
    if (!date2datetimetable.arguments.length)
	  dDate = new Date();
	else
	  dDate = date2datetimetable.arguments[0];
	  
    sMin = dDate.getMinutes();
    if (sMin < 10)
        sMin = "0"+sMin;
    sSec = dDate.getSeconds();
    if (sSec < 10)
        sSec = "0"+sSec;
    sHrs = dDate.getHours();
    sPM = "AM";
    if (sHrs >= 12)
        {
            sHrs = sHrs - 12;
            sPM = "PM";
        }
    if (sHrs == 0)
        sHrs = 12;
	str = (dDate.getMonth()+1) + "/" + dDate.getDate() + "/" + dDate.getFullYear() + "<br>" + sHrs + ":" + sMin + " " + sPM;
	
	return str;
  }

function dateadd (iTemp)
  {
    if (dateadd.arguments.length != 2)
	  dDate = new Date();
	else
	  dDate = dateadd.arguments[1];
  
    offset = dDate.getDate() + iTemp;

    tdate = dDate;
    tdate.setDate(offset);
    
    return tdate;
  }
  
function monthadd (iTemp)
  {
    if (monthadd.arguments.length != 2)
	  dDate = new Date();
	else
	  dDate = monthadd.arguments[1];
  
    offset = dDate.getMonth() + iTemp;

    tdate = dDate;
    tdate.setMonth(offset);
    
    return tdate;
  }

function text2date (sTemp)
  {
    rval = null;
    d = new Date(Date.parse(sTemp));
    if (!isNaN(d))
      rval = d;
      
    return rval;
  }

function daylightstart ()
  {
    rval = null;
    dl = new Date();	
	if (daylightstart.arguments.length > 0)
	  dl.setFullYear(daylightstart.arguments[0]);
	dl.setMonth(3);
	dl.setDate(1);
	dl.setHours(3);
	dl.setMinutes(0);
	dl.setSeconds(0);
	dl.setMilliseconds(0);

	offset = dl.getDay();
	if (offset != 0)
	  {
   	    offset = 7-dl.getDay() + dl.getDate();
   	    dl.setDate(offset);			  
	  }
	  		
    rval = dl;
      
    return rval;
  }

function daylightend ()
  {
    rval = null;
    dl = new Date();	
	if (daylightend.arguments.length > 0)
	  dl.setFullYear(daylightend.arguments[0]);	
	dl.setMonth(9);
	dl.setDate(31);
	dl.setHours(2);
	dl.setMinutes(0);
	dl.setSeconds(1);
	dl.setMilliseconds(0);

	offset = dl.getDay();
	if (offset != 0)
	  {
   	    offset = 0-dl.getDay() + dl.getDate();
   	    dl.setDate(offset);			  
	  }
	  		
    rval = dl;
      
    return rval;
  }

function text2cst (sTemp)
  {
    GMTOffset = -6;
    GMTDSOffset = -5;
	
	rval = null;
	if (sTemp != null)
	  {	  
        d = text2date(sTemp);
	  }
	else
	  {
	    d = new Date();
	  }
	
	ds_start = daylightstart(d.getFullYear());
	ds_end = daylightend(d.getFullYear());
		
	if (d != null)
	  {
  	    if ((ds_start.valueOf() <= d.valueOf()) && (d.valueOf() <= ds_end.valueOf()))  
	      offset = d.getHours() + GMTDSOffset;
		else
	      offset = d.getHours() + GMTOffset;		
		d.setHours(offset);
	    rval = d;	  
	  }	 
	        
    return rval;	
  }  
    
function csttext2date (sTemp)
  {
    GMTOffset = 6;
    GMTDSOffset = 5;
	
	rval = null;
	if (sTemp != null)
	  {	  
        d = text2date(sTemp);
	  }
	else
	  {
	    d = new Date();
	  }
	
	ds_start = daylightstart(d.getFullYear());
	ds_end = daylightend(d.getFullYear());
		
	if (d != null)
	  {
  	    if ((ds_start.valueOf() <= d.valueOf()) && (d.valueOf() <= ds_end.valueOf()))  
	      offset = d.getHours() + GMTDSOffset;
		else
	      offset = d.getHours() + GMTOffset;		
		d.setHours(offset);
	    rval = d;	  
	  }	 
	        
    return rval;	
  }  

function toggle(element)
{
	if (document.getElementById)
	{
		var target = document.getElementById(element);
        if (target.style.display == "none")
		{
			target.style.display = "";
		} 
		else 
		{
			target.style.display = "none";
        }
	}
}

function DivideAndPut(textInput, hiddenInput) 
{
	var inputElement = document.getElementById(textInput);
	var hiddenElement = document.getElementById(hiddenInput);
	var inputValue = inputElement.value;
	
	var last = inputValue.indexOf(")$$");
	var first = inputValue.indexOf("$$(");

	var holder = inputValue.substring((first+3),last);

	hiddenElement.value = holder;
	inputElement.value = inputValue.substring(0,first);
}


var highlightClassName = 'highlight';

function SelectAll(elementNames) 
{
	var elements = document.getElementsByName(elementNames);

	for (var i=0; i<elements.length; i++)
	{
		elements[i].checked = true;
		var parent = elements[i].parentNode;
		if (parent.className.indexOf(highlightClassName) == -1)
		{
			parent.className += ' '+highlightClassName;
		}
	}
}
function SelectNone(elementNames) 
{
	var elements = document.getElementsByName(elementNames);

	for (var i=0; i<elements.length; i++)
	{
		elements[i].checked = false;
		var parent = elements[i].parentNode;
		parent.className = parent.className.replace(''+highlightClassName,'');
	}
}

var highlightInputs = Class.create();

highlightInputs.prototype = {
	
	initialize: function() {	
		var inputList = document.getElementsByTagName('input');
		for (var x=0; x<inputList.length; x++)
		{
			if ((inputList[x].type.toLowerCase() == 'checkbox') || (inputList[x].type.toLowerCase() == 'radio'))
			{
				if(inputList[x].checked){
					var parent = inputList[x].parentNode;
					if (parent.className.indexOf(highlightClassName) == -1)
					{
						parent.className += ' '+highlightClassName;
					}
				}
				else
				{
					var parent = inputList[x].parentNode;
					parent.className = parent.className.replace(''+highlightClassName,'');
				}

				var input = inputList[x];

				if (!input.onclick)
				{
					input.onclick = function () {myHighlight.highlight(this); return true;}
				}
			}
		}
	},

	highlight: function(checkElement) 
	{	
		var parent;
		if (checkElement.type.toLowerCase() == 'radio')
		{
			var Elements = document.getElementsByName(checkElement.name);
			for (var i=0; i<Elements.length; i++)
			{
				parent = Elements[i].parentNode;
				parent.className = parent.className.replace(''+highlightClassName,'');
			}
		}

		parent = checkElement.parentNode;
		if(checkElement.checked)
		{
			if (parent.className.indexOf(highlightClassName) == -1)
			{
				parent.className += ' '+highlightClassName;
			}
		}
		else
		{
			parent.className = parent.className.replace(''+highlightClassName,'');
		}
	}
}

function initHighlight() { myHighlight = new highlightInputs(); }
Event.observe(window, 'load', initHighlight, false);
