
function HTMLStack() {
	var a = [100];
	var i = 0;
	this.pushHTML = function(html) {
		i = i+1;
		a[i] = html;
	};
	this.popHTML = function() {
		rtnHTML = a[i];
		i = i-1;
		return rtnHTML;
	};
	this.peekHTML = function() {
		return a[i];
	};
}

function jsClickedCheckBoxLabel(formvar) {
	if (formvar.disabled == false) { 
		if (formvar.checked == true) { 
			formvar.checked = false ;
		} else { 
			formvar.checked = true ;
		}
		formvar.focus() ;
		if (formvar.onclick) {
			formvar.onclick() ;
		}
	}
}
function jsOpenHelpWindow(u, w) {

	intHeight = screen.height * .70;
	intWidth = screen.width * .60;
	intTop = 50;
	intLeft = 50;

	p = "height=" + intHeight + ",width=" + intWidth + ",left=" + intLeft + ",top=" + intTop + ",location=no,scrollbars=yes,menubar=no,toolbar=no,titlebar=yes,resizable=yes";
	
	NewWindow = this.open(u,w,p);	
	NewWindow.focus();
}
function jsOpenFormWindow(u) {

	intHeight = screen.height * .70;
	intWidth = screen.width * .60;
	intTop = 50;
	intLeft = 50;

	p = "height=" + intHeight + ",width=" + intWidth + ",left=" + intLeft + ",top=" + intTop + ",location=no,scrollbars=yes,menubar=no,toolbar=no,titlebar=yes,resizable=yes";
	
	NewWindow = this.open(u,'',p);	
	NewWindow.focus();
}
function jsOpenFeedbackWindow(u) {

	intHeight = 300;
	intWidth = 540;
	intTop = (screen.height - intHeight) / 2;
	intLeft = (screen.width - intWidth) / 2;

	p = "height=" + intHeight + ",width=" + intWidth + ",left=" + intLeft + ",top=" + intTop + ",location=no,scrollbars=no,menubar=no,toolbar=no,titlebar=yes,resizable=no";
	
	NewWindow = this.open(u,'',p);	
	NewWindow.focus();
}

function PopupCalendarDHTML(elTarget) {
 if (showModalDialog) {
   var sRtn;
   sRtn = showModalDialog("calendar.asp?date=" + elTarget.value,"","center=yes;dialogWidth=110px;dialogHeight=180px");
   if (sRtn!="")
     elTarget.value = sRtn;
 } else
   alert("Internet Explorer 4.0 or later is required.")
}
// String Functions
function JS_ltrim(str)
{
  re=/^ +/;
  var newstr=str.replace(re, "");
  return(newstr);
}
function JS_rtrim(str)
{
  re=/ +$/;
  var newstr=str.replace(re, "");
  return(newstr);
}
function JS_trim(str)
{
  if (str=='') {return str;}
  var newstr=JS_ltrim(str);
  return(JS_rtrim(newstr));
}
function JS_IsNumeric(sText)
{
   var ValidChars = "0123456789.-";
   var IsNumber=true;
   var Char;
 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
}

function JS_IsNumbersOnly(sText)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;
 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
}

function FormatCurrency(amount)
{
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	return s;
}

function ToggleInProgress() {
	
	var InProgressHTML = '<span style="background-color:#DDDDDD">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Retrieving Data...</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>'
	var NotInProgressHTML = ''
	
	if (document.getElementById("idRecordCount").innerHTML == InProgressHTML) {
		document.getElementById("idRecordCount").innerHTML = NotInProgressHTML;
	} else {
		document.getElementById("idRecordCount").innerHTML = InProgressHTML;
	}
	
}

function ShowDOMElement(elementName) {
  document.getElementById(elementName).style.visibility='visible';
}

function HideDOMElement(elementName) {
  document.getElementById(elementName).style.visibility='hidden';
}

//----------------------------------------------------------------
// DisableField
//----------------------------------------------------------------

function DisableField(id) {
	
	var obj
	
	obj = document.getElementById(id);

	if(obj) {obj.enabled = false;}

}

//----------------------------------------------------------------
// EnableField
//----------------------------------------------------------------

function EnableField(id) {
	
	var obj
	
	obj = document.getElementById(id);

	if(obj) {obj.enabled = true;}

}

//----------------------------------------------------------------
// SetFocus
//----------------------------------------------------------------

function SetFocus(id) {
	
	var obj
	
	obj = document.getElementById(id);
	if(obj) {
		if(obj.enabled) {
			if(obj.type != 'hidden' && obj.style.display != 'none') {obj.focus()};
			if(obj.select) {obj.select()};
		}
	}

}

//----------------------------------------------------------------
// DisableEnableElements
//----------------------------------------------------------------

function DisableEnableElements(TopElement, IsDisabled){
  var objElems = TopElement.elements;
  for(i=0;i<objElems.length;i++){
    objElems[i].disabled = IsDisabled;
  }
}

//----------------------------------------------------------------
// SaveElementsState
//----------------------------------------------------------------

function SaveElementsState(TopElement){
  var objElems = TopElement.elements;
  for(i=0;i<objElems.length;i++){
    SavedElementsDisabledState[objElems[i].name] = objElems[i].disabled;
  }
}

//----------------------------------------------------------------
// RestoreElementsState
//----------------------------------------------------------------

function RestoreElementsState(TopElement){
  var objElems = TopElement.elements;
  for(i=0;i<objElems.length;i++){
    objElems[i].disabled = SavedElementsDisabledState[objElems[i].name];
  }
}

//--------------------------------------------------------------------------------
// GetPeriodDesc -- Return Fiscal Period Desc for Numeric ID (ex. 01 = January)
//--------------------------------------------------------------------------------

function GetPeriodDesc(periodID, rtrnShortDesc) {
	switch(periodID)
	{
	case '01':
	  if (rtrnShortDesc) {return 'Jan'}
	  return 'January';
	  break;
	case '02':
	  if (rtrnShortDesc) {return 'Feb'}
	  return 'February';
	  break;
	case '03':
	  if (rtrnShortDesc) {return 'Mar'}
	  return 'March';
	  break;
	case '04':
	  if (rtrnShortDesc) {return 'Apr'}
	  return 'April';
	  break;
	case '05':
	  if (rtrnShortDesc) {return 'May'}
	  return 'May';
	  break;
	case '06':
	  if (rtrnShortDesc) {return 'Jun'}
	  return 'June';
	  break;
	case '07':
	  if (rtrnShortDesc) {return 'Jul'}
	  return 'July';
	  break;
	case '08':
	  if (rtrnShortDesc) {return 'Aug'}
	  return 'August';
	  break;
	case '09':
	  if (rtrnShortDesc) {return 'Sep'}
	  return 'September';
	  break;
	case '10':
	  if (rtrnShortDesc) {return 'Oct'}
	  return 'October';
	  break;
	case '11':
	  if (rtrnShortDesc) {return 'Nov'}
	  return 'November';
	  break;
	case '12':
	  if (rtrnShortDesc) {return 'Dec'}
	  return 'December';
	  break;
	default:
	  return 'Unknown Period';
	}	
	
}

//*********************************************************************
// Page Scope Variables
//*********************************************************************

var igHS = new HTMLStack(); /* HTML Stack */
var SavedElementsDisabledState = new Array(); /* Used by SaveElementsState and RestoreElementsState */


