<!-- hide

function NewPage(page) {
OpenWin = this.open(page, "CtrlWindow", "toolbar=no,menubar=no,location=no,scrollbars=no,resizable=no,width=650,height=650, left=250, top=100");
}

function NewBigPage(page) {
OpenWin = this.open(page, "CtrlWindow", "toolbar=yes,menubar=yes,location=yes,scrollbars=yes,resizable=yes,width=1024,height=768, left=250, top=100");
}

function toggleDisplay(cObj, tTable, sOpenText,sClosedText){
   if (document.getElementById(tTable).style.display == "none") {
      document.getElementById(tTable).style.display = "block";
      cObj.innerText = sOpenText;
   }
   else {
      document.getElementById(tTable).style.display = "none";
      cObj.innerText = sClosedText;
   }
}

function reloadPage() { window.location.reload(); }

//trims any string of white spaces
function Trim(sInString) {
  sInString = sInString.replace( /^\s+/g, "" );// strip leading
  return sInString.replace( /\s+$/g, "" );// strip trailing
}

//confirm delete
//input - the name of what you are confirming
function confirmDelete(sItem) {
	if (confirm(sItem)==true) {
	return true;
	} else {
		return false;
	}	
}

//returns form select value
function getSelectVal(str)
{
	var index1 = document.getElementById(str).selectedIndex;
	var out = 0;
	if (index1 >= 0) 
	{	
		out = document.getElementById(str).options[index1].value;
	}
	return out;
}

//returns form element value
function getVal(str)
{
	var val="";
	if (document.getElementById(str) != null)
	{	
		var s = Trim(document.getElementById(str).value);
		val = (s.length > 0) ? s : "";
	}	
	return val;	
}

// returns 1 or more responses from checkboxes with the same name/id as csv
function getCollectionVal(str)
{
	var val="";
	var s="";
	if (document.getElementById(str) != null)
	{	
		for(var i=0; i < document.forms[0][str].length; i++)
		{
			if(document.forms[0][str][i].checked)
			{
				s+= (s.length != 0)? ", ":"";
				s+= document.forms[0][str][i].value
			}	
		}
		val += (s.length > 0) ? s : "";
	}	
	return val;	
}

//formats numbers as Currency
function formatCurrency(num, sym, symBefore) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	if (symBefore) 
		return (((sign)?'':'-') + sym + num + '.' + cents);
	else
		return (((sign)?'':'-') + num + '.' + cents + ' ' + sym);
}

function IsNumeric(strString)
   //  check for valid numeric strings	
   {
   var strValidChars = "0123456789.-";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++)
      {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
         {
         blnResult = false;
         }
      }
   return blnResult;
   }

function onlyNumeric(strString)
{
	var newString = strString.value.replace(/[^\d]/g,'');
	if (newString.length > 0) 
	{
		return newString;
	}
}



function ValidateEmail(src)
{
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return filter.test(src);
} 
  
  
  
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

  
  
//add regex tests here
var currencyRegex = /^\d+\.\d{2}$/;
var numberRegex = /^\d+$/;
var emailRegex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

// semi-generic in-line form field validation.  Add Regex above to increase the usefulness of this function
// call function with regex of item you wish to test
// example:  <input type=text name=something value=something_else onBlur="javascript:fnValidateField(this.id, currencyRegex)" />
function fnValidateField(fieldId, regex) 
{
    var errMsg = "";
    if (regex == currencyRegex)
        errMsg = "Please ensure the value you have entered is a currency format (x.xx)";
    if (regex == numberRegex)
        errMsg = "Please ensure the value you have entered is a number";
    if (regex == emailRegex)
        errMsg = "Please ensure the value you have entered is a valid \nemail address. We will not receive your request without it.";

    if (fieldId != null && fieldId != "undefined" && MM_findObj(fieldId) != null) {
        field = MM_findObj(fieldId).value;
        if (field.length > 0 && !field.match(regex)) {
            alert(errMsg);
            MM_findObj(fieldId).focus();
            MM_findObj(fieldId).select();
        }
    }
}
  
  
// function used to toggle the background color of table rows
// oper  = whether the row should be on or off
// row   = the row object
// color = the color to assign
function highlightRow(oper, row, color){
   if (oper=="on" && ie) {
      row.style.background = color;
   }else{
      row.style.background = "";
   }
}

// stop hiding -->
