//<script language="javascript">
function ShowDate()
{
  document.write(getDisplayDate());
}

// IE FLASH DETECTION
var requiredVersion = 5;
var flash2Installed = false;
var flash3Installed = false;
var flash4Installed = false;
var flash5Installed = false;
var flash6Installed = false;
var flash7Installed = false;
var maxVersion = 7;
var actualVersion = 0;
var hasRightVersion = false;

var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.indexOf("Windows") != -1) ? true : false;

if(isIE && isWin){
	document.write('<SCR' + 'IPT LANGUAGE=VBScript\> \n');
	document.write('on error resume next \n');
	document.write('flash2Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.2"))) \n');
	document.write('flash3Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.3"))) \n');
	document.write('flash4Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.4"))) \n');
	document.write('flash5Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5"))) \n');	
	document.write('flash6Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.6"))) \n');	
	document.write('flash7Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.7"))) \n');	
	document.write('</SCR' + 'IPT\> \n');
}
// END IE FLASH DETECTION

function detectFlash(){	

	if (navigator.plugins){
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]){
			var isVersion2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + isVersion2].description;
			var flashVersion = parseInt(flashDescription.charAt(flashDescription.indexOf(".") - 1));
			flash2Installed = flashVersion == 2;		
			flash3Installed = flashVersion == 3;
			flash4Installed = flashVersion == 4;
			flash5Installed = flashVersion == 5;
			flash6Installed = flashVersion == 6;
			flash6Installed = flashVersion == 7;
		}
	}

	for (var i = 2; i <= maxVersion; i++) {	
		if (eval("flash" + i + "Installed") == true) actualVersion = i;
	}

	if (actualVersion < requiredVersion){
	  return(false);}
	else{
	  return(true);}	  
}

function GoMenu(url, target)
{
  if (url > ""){
    open(url,target);}
}

function jShowFlash(flashurl, width, height, bgcolor, transparent, sNoFlash)
{

  var bShowFlash = true;
  bShowFlash = detectFlash(); 
                                                                                                                     
  var sFlashCode = '<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" ID=inside';
  sFlashCode += ' WIDTH=' + width + ' HEIGHT=' + height + '>';  
  if (transparent) sFlashCode += '<param name=wmode value=transparent>';  
  sFlashCode += '<PARAM NAME=movie VALUE="' + flashurl + '">';
  sFlashCode += '<PARAM NAME=quality VALUE=high>';
  if(bgcolor > "") sFlashCode += '<PARAM NAME=bgcolor VALUE=' + bgcolor + '>';
  sFlashCode += '<PARAM NAME=scale VALUE=showall><PARAM NAME=menu VALUE=false>';  
  sFlashCode += '<EMBED src="' + flashurl + '"';
  if (transparent) sFlashCode += ' wmode="transparent"';
  sFlashCode += ' scale="showall" menu="false" quality="high"';
  if(bgcolor > "") sFlashCode += ' bgcolor="' + bgcolor + '"' 
  sFlashCode += '  WIDTH="' + width + '" HEIGHT="' + height + '" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">';
  sFlashCode += '</EMBED></OBJECT>';
    
  if(bShowFlash == false) sFlashCode = sNoFlash;

  //****************************
  document.write(sFlashCode);
  //****************************
}


function jCloseWindow()
{
  window.close();
}

function jPopUp(sURL, sName, nWidth, nHeight, bScroll)
{
  if (sURL.substring(0,4) == "http"){
    open(sURL, sName, "width="+nWidth+", height="+nHeight+",scrolling="+bScroll+", top=50, left=50, directories=0,toolbars=0");}
  else{
    open(GetServer(document.location.href) + "/" + sURL, sName, "width="+nWidth+", height="+nHeight+",scrolling="+bScroll+", top=50, left=50, directories=0,toolbars=0");}
}

function jRollover(imgName){document.images [imgName].src = (document.images [imgName].src == eval(imgName+"on.src")) ? eval(imgName+"off.src"):eval(imgName+"on.src");}

function jMenuGo(sURL, sTarget)
{
  if (sURL > ""){
    if(sTarget == "")sTarget == "_self";
    open(sURL,sTarget);}
}

function jAdminOpen(nKey,target)
{
  open("contents.asp?key=" + nKey,target);  
}

function jOpen(nKey,target)
{
  open("menu.asp?key=" + nKey,target);  
}

function jOpenMenu(nKey,target)
{
  open(GetServer(location.href) + "/active/open.asp?key=" + nKey,target);  
}

function MoreInfo_NoFrames()
{  
  var page = "";    
  page = document.title;
  page = escape(page);
  sLoc = document.location.href;
  location.href = GetServer(sLoc) + "/active/MoreInfo.asp?info=" + page;
}  

function MoreInfo(target)
{  
  var page = "";    
  if (parent[target].frames.length > 0){
    page = parent[target].frames[1].document.title;
  } else {
    page = parent[target].document.title;
  }  
  page = escape(page);
  sLoc = document.location.href;
  parent[target].location.href = GetServer(sLoc) + "/active/MoreInfo.asp?info=" + page;
}  

function GetServer(sLoc)
{
  //if local ntserver then find ntserver web name, if not find server name
  if(sLoc.slice(0,15) == "http://ntserver")
  {
    nPos = sLoc.indexOf('/',16);
    sServer = sLoc.substring(0,nPos);
  }
  else
  {        
    nPos = sLoc.indexOf('/',10);
    sServer = sLoc.substring(0,nPos+1);
  }
  return(sServer);
}

function jPhone(form, field)
{
  if (form[field].value != ""){
    form[field].value =  jValPhone(form[field].value);}
}

function FrameLoader(folder, pageurl, nKey)
{
  var nHash = 0;sHash = "";sServer="";nLen=0;nPos=0;
  var nCnt = 0;sName = "";nCnt = top.window.frames.length;
  if (nCnt < 3 && sName == "")
  {
    sPage = document.location.href;
    open (GetServer(sPage) + folder + "/active/loader.asp?key=" + nKey + "&page="+pageurl, "_top");
  }
}

function getDisplayDate(sDate)
{
    // uses getDisplayMonth()
    // returns passed Date formatted nicely
    // Month day, Year  mmmm dd, yyyy
    if (sDate > ""){
      theDate = new Date(sDate);}
    else{
      theDate = new Date();}

    // split into day, month, year
    nDay = theDate.getDate();
    nMonth = theDate.getMonth();
    nYear = theDate.getFullYear();

    sDisplayDate = getDisplayMonth(nMonth) + " " + nDay + ", " + nYear;

    return sDisplayDate;
}

function getDisplayMonth(nMonth)
{
  //var monthArray = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
  var monthArray = new Array("January","Febuary","March","April","May","June","July","August","September","October","November","December");
  return monthArray[nMonth];
}


//*****************************************************************
// Form Validation Utilities
//*****************************************************************

function CheckEmailSyntax(bChk,field,name)
{
  if (bChk){
    if (document.form1[field].value.indexOf('@') < 1 && document.form1[field].value.indexOf('.') < 1){
    alert(name + " is not in valid email syntax.");bChk = false;
    document.form1[field].focus();}}
  return(bChk);
}

function CheckBlankText(name, field) {
  if (field.value.match(/^\s*$/)) {
    alert(name + " is required.");
    field.value = '';
    field.focus();
    return true;
  }
  return false;
}

function CheckLimitLimit(bChk,field,name)
{	
	if (document.form1[field].value.length > document.form1[field].maxlength){
	  sVal = document.form1[field].value;	 
	  sVal = sVal.slice(0,document.form1[field].maxlength-1);
	  document.form1[field].value = sVal;
	  alert("Value in " + name + " exceeds maximum allowable text.\n\nThe extra characters have been removed.");
	  bChk = false;
	}
  return(bChk);
}

function CheckBlankDropdown(name, field)
{
  if (field.selectedIndex == 0) {
    alert(name + " is required.");
    field.focus();
    return true;
  }
  return false;
}

function CheckBlankCheckbox(bChk,field,name)
{
  var bIsChecked = false;
  var sSpace = " ";
  var sName = name.slice(0,1).toLowerCase();
  if (sName == "a" || sName == "e" || sName == "i" || sName == "o" || sName == "u") sSpace = "n ";
  if(bChk){
    if(document.form1[field].length > 1){    
      for(x=0;x<document.form1[field].length;x++){
        if (document.form1[field][x].checked) bIsChecked = true;}    
      if (!bIsChecked){  
        alert("Please select a" + sSpace + name + ".");
        bChk=false;
        document.form1[field][0].focus();}}
    else{
      if (document.form1[field].checked == false){    
        alert("Please select a" + sSpace + name + ".");
        bChk=false;
        document.form1[field].focus();}
      }
    }
  return(bChk);
}

function CheckBlankRadio(bChk,field,name)
{
  var bIsChecked = false;
  var sSpace = " ";
  if (name.slice(0,1) == "a" || name.slice(0,1) == "e" || name.slice(0,1) == "i" || name.slice(0,1) == "o" || name.slice(0,1) == "u") sSpace = "n ";
  if(bChk){
    for(x=0;x<document.form1[field].length;x++){
      if (document.form1[field][x].checked) bIsChecked = true;}    
    if (!bIsChecked){  
      alert("Please select a" + sSpace + name + ".");
      bChk=false;
      document.form1[field][0].focus();}}

  return(bChk);
}

function CheckFieldLimit(bChk,field,name)
{
  if (bChk){
    if (document.form1[field].value.length > document.form1[field].maxlength){
      alert(name + " is too long. Please limit to " + document.form1[field].maxlength + " characters.");bChk = false;      
      document.form1[field].focus();}}
  return(bChk);
}


//*****************************************************************


function getToday(form, dateFieldName)
{ 
  if(form[dateFieldName].value > ""){
    cdate = Date.parse(form[dateFieldName].value);
    today = new Date(cdate);}
  else{
    today = new Date();}
  day = today.getDate(); 
  month = today.getMonth(); 
  month++; 
  year = today.getYear(); 
  year = (year < 1000) ? 1900 + year : year; 
  
} 
function putcal(form, dateFieldName)
{
  getToday(form, dateFieldName);
  calwin = open("","calwin","width=190,height=192,resizable=yes"); 
  calccal(calwin,form,dateFieldName); 
} 

function calccal(CalenderWin,form,dateFieldName)
{ 
  var monthname = new Array(12); 
  monthname[0] = "January"; 
  monthname[1] = "February"; 
  monthname[2] = "March"; 
  monthname[3] = "April"; 
  monthname[4] = "May"; 
  monthname[5] = "June"; 
  monthname[6] = "July"; 
  monthname[7] = "August"; 
  monthname[8] = "September"; 
  monthname[9] = "October"; 
  monthname[10] = "November"; 
  monthname[11] = "December"; 
  var endday = calclastday(eval(month),eval(year)); 
  mystr = month + "/01/" + year; 
  mydate = new Date(mystr); 
  firstday = mydate.getDay(); 
  var cnt = 0; 
  var day = new Array(6); 
  for (var i=0; i<6; i++) 
    day[i] = new Array(7); 
  for (var r=0; r<6; r++) 
  { 
    for (var c=0; c<7; c++) 
    { 
      if ((cnt==0) && (c!=firstday)) 
        continue; 
      cnt++; 
      day[r][c] = cnt; 
      if (cnt==endday) 
        break; 
    } 
    if (cnt==endday) 
      break; 
  } 
  CalenderWin.document.open() 
  CalenderWin.document.writeln ("<html>");
  CalenderWin.document.writeln ("<head>");
  CalenderWin.document.writeln ("<title>Calendar</title>");
  CalenderWin.document.writeln ("<style>"); 
  CalenderWin.document.writeln (" #brack{font-family:arial;font-size:8pt;font-weight:bold}");
  CalenderWin.document.writeln (" body{font-family:arial;font-size:8pt}");
  CalenderWin.document.writeln (" td{font-family:arial;font-size:8pt;font-weight:bold}");
  CalenderWin.document.writeln (" A:link{color=101786}\nA:active{color=101786}\nA:visited{color=101786}\nA:hover{color:FE200E}");
  CalenderWin.document.writeln ("</style>"); 
  CalenderWin.document.writeln ("</head>");
  CalenderWin.document.writeln ("<body topmargin=2 marginheight=2 bgcolor=\"ffffff\">");
  CalenderWin.document.writeln ("<FORM id=form1 name=form1>");
  CalenderWin.document.writeln ("<center>");
  CalenderWin.document.writeln ("<TABLE border=0>");
  CalenderWin.document.writeln (" <TR>"); 
  var prevyear = eval(year) - 1; 
  
  // Previous Year Button
  CalenderWin.document.writeln ("    <TD><INPUT id=brack TYPE=BUTTON NAME=prevyearbutton VALUE='<<'"+ 
   " onclick='opener.month = " + month + "; opener.year = " + prevyear + ";document.clear();opener.calccal(opener.calwin,opener.document." + form.name + ",\"" + dateFieldName + "\")'></TD>"); 

  var prevmonth = (month == 1) ? 12 : month - 1; 
  var prevmonthyear = (month == 1) ? year - 1 : year; 

  // Previous Month Button
  CalenderWin.document.writeln ("    <TD><INPUT id=brack TYPE=BUTTON NAME=prevmonthbutton VALUE='&nbsp;<&nbsp;'"+ 
   " onclick='opener.month = " + prevmonth + "; opener.year = " + prevmonthyear + ";document.clear();opener.calccal(opener.calwin,opener.document." + form.name + ",&quot;" + dateFieldName + "\")'></TD>"); 

  var index = eval(month) - 1; 

  // Month/Year Text
  CalenderWin.document.writeln ("    <TD valign=middle ALIGN=CENTER><B>" + monthname[index] + " " + year + "</B></TD>"); 

  var nextyear = eval(year) + 1;         
  var nextmonth = (month == 12) ? 1 : month + 1; 
  var nextmonthyear = (month == 12) ? year + 1 : year; 

  // Next Month Button
  CalenderWin.document.writeln ("    <TD><INPUT id=brack TYPE=BUTTON NAME=nextmonthbutton VALUE='&nbsp;>&nbsp;'"+ 
   " onclick='opener.month = " + nextmonth + "; opener.year = " + nextmonthyear + ";document.clear();opener.calccal(opener.calwin,opener.document." + form.name + ",&quot;" + dateFieldName + "\")'></TD>"); 

  // Next Year Button
  CalenderWin.document.writeln ("    <TD><INPUT id=brack TYPE=BUTTON NAME=nextyearbutton VALUE='>>'"+ 
  " onclick='opener.month = " + month + "; opener.year = " + nextyear + ";document.clear();opener.calccal(opener.calwin,opener.document." + form.name + ",\"" + dateFieldName + "\")'></TD>"); 

  CalenderWin.document.writeln (" </TR>");
  CalenderWin.document.writeln (" <TR>");
  CalenderWin.document.writeln ("   <td colspan=\"5\" align=center>");
  CalenderWin.document.writeln ("     <TABLE border=0 cellpadding=2 cellspacing=2>");
  CalenderWin.document.writeln ("       <TR>"); 
  CalenderWin.document.writeln ("         <TD>Su</TD>"); 
  CalenderWin.document.writeln ("         <TD>Mo</TD>"); 
  CalenderWin.document.writeln ("         <TD>Tu</TD>"); 
  CalenderWin.document.writeln ("         <TD>We</TD>"); 
  CalenderWin.document.writeln ("         <TD>Th</TD>"); 
  CalenderWin.document.writeln ("         <TD>Fr</TD>"); 
  CalenderWin.document.writeln ("         <TD>Sa</TD>"); 
  CalenderWin.document.writeln ("       </TR>"); 
  CalenderWin.document.writeln ("       <TR><TD COLSPAN=7><HR size=1></TD></TR>"); 
  var selectedmonth = eval(month) - 1; 
  var today = new Date(); 
  var thisyear = today.getYear() + 1900; 
  var selectedyear = eval(year) - thisyear + 4; 
  for(r=0; r<6; r++) 
  { 
   CalenderWin.document.writeln ("      <TR>"); 
   for(c=0; c<7; c++) 
   { 
    if(day[r][c] == today.getDate() && year == today.getYear() && month == today.getMonth()+1)
      CalenderWin.document.writeln ("       <TD bgcolor=\"BEBEDC\">"); 
    else
      CalenderWin.document.writeln ("       <TD>"); 
    //CalenderWin.document.writeln (today.getDate()+" " +day[r][c]+" "+today.getYear()+" " +year+" "+ +today.getMonth() +month);
    if(day[r][c] != null) { 
      if (day[r][c] < 10) 
        conditionalpadder = "&nbsp;" 
      else         
          conditionalpadder = ""; 
          CalenderWin.document.write ("<a href=\"javascript:window.close();" +     
          "opener.document."  +  form.name  +  "."  +  dateFieldName  +  ".value= '" + month + "/" + day[r][c] + "/" + year + "'"  +   
          "\">" + conditionalpadder + day[r][c] + conditionalpadder + "</a>") 
    } 
    CalenderWin.document.write ("</TD>"); 
   } 
   CalenderWin.document.writeln ("      </TR>"); 
  } 
  CalenderWin.document.writeln ("     </TABLE>");  
  CalenderWin.document.writeln ("</td></tr></table>");
  CalenderWin.document.writeln ("</center>");
  CalenderWin.document.writeln ("</FORM>"); 
  CalenderWin.document.writeln ("</body>");
  CalenderWin.document.writeln ("</html>");
  CalenderWin.document.close() 
} 

function calclastday(month,year) { 
  if ((month==2) && ((year%4)==0)) 
    return 29; 
  if ((month==2) && ((year%4)!=0)) 
    return 28; 
  if ((month==1) || (month == 3) || (month == 5) || (month == 7) || 
      (month==8) || (month == 10) || (month ==12)) 
    return 31; 
  return 30; 
} 

function NumbChk(input, min, max, msg, dec, req)
{
  // check for required field
  var str = input.value;
  if (str.length < 1 && req == true) {
    input.value="";
    input.focus();
    input.select();
    alert(msg + " is a required field.");
    return false;
  }
    
  // check for numeric input
  var str = input.value;
  for (var i = 0; i < str.length; i++) {
    var ch = str.substring(i, i + 1)
  if (((ch < "0" || ch > "9") && ch != ".") || (ch == "." && dec == false)) {
    input.value="";
    input.focus();
    input.select();
    alert(msg + " must be numeric (0 through 9's, no commas).");
    
    return false;
  }
  }
  // check range of number
  var num = parseFloat(str)
  if (num < min || num > max) {
  input.value="";
    input.focus();
  input.select();
    alert(msg + " is not between " + min + " and " + max + ".");
  return false;
  }
  return true;
}

function NumbConvert(input, dec)
{   
  // check for numeric input
  var mVar = new String(input);
  var rstr = "";
  var havedec = false;
  var haveneg = false;

  for (var i = 0; i < mVar.length; i++)
 
  {
    var ch = mVar.substring(i, i + 1)
	  if (((ch < "0" || ch > "9") && ch != ".") || (ch == "." && dec < 1) || (ch=="." && havedec==true))
	  {
	    if ((ch == "-") && (haveneg == false))
	    {
       rstr = "-" + rstr;
	     haveneg = true;
	    }
	  }
	  else
	   {
	    if (ch == ".") havedec = true;
	    rstr += ch;
	   }
	  
  }
  
    
     return Number(rstr);
}
  
function RangFix(sField, eField, Min, Max)
{
  var sVar = sField.value;
  var eVar = eField.value;
  if (sVar.length > 0)
  {
    if (eVar.length <= 0) eField.value = Max;
  }
  else
  {
    if (eVar.length > 0) sField.value = Min;
  }
  return "";
} 
function toNumeric(mParam)
{
    var oChr = ",";
    var dChr = "$";
    var nChr = "";
    var mpos = 1;
    var mVar = " ";
    mVar = mParam.value;
    while (mpos > 0)
    {
    var rVar = mVar.replace(oChr, nChr);
    mVar = rVar.replace(dChr, nChr);
    mpos = mVar.indexOf(oChr);
    }
    mParam.value = mVar;
    return ;
}


function formatNumber(mParam, mDec, mDollar)

{
    var mlen=0;
    var dstart=0;
    var dVar = 0.0;
    var tDec = "";
    var rVar = "";
    var tNeg = "";
    if (String(mParam.value) == "")
    {
     return "";
    }
  
    dVar = NumbConvert(mParam.value, mDec);
  
    if (mDec > 0)
    {
     var mAmount = Math.round((dVar * Math.pow(10, mDec)) + .05) / Math.pow(10,mDec);
    }
    else
    {
      var mAmount = Math.round(dVar);
    }
    var tVar = new String(mAmount);
  
    if (tVar.substring(0,1) == "-")
    {
      tVar = tVar.substring(1);
      tNeg = "-";
    }
    dstart = tVar.indexOf(".");
    if (dstart >= 0)
    {
      tDec = tVar.substring(dstart);
      tVar = tVar.substring(0,dstart);
    }
    else
    {
      tDec = ".";
    }
    if (mDec > 0)
    {
      while (tDec.length < (mDec+1))
      {
        tDec += "0";
      }
    }
    else
    {
      tDec = "";
    }
    dstart = 0;
    for (var i = (tVar.length - 1); i >= 0; i--)
    {
      dstart++;
      rVar = tVar.charAt(i) + rVar;
      if ((dstart>2) && (i>0))
      {
        dstart = 0;
        rVar = "," + rVar;
      }
    }
    
    if (mDollar == true) rVar = "$" + rVar;
    rVar = tNeg + rVar + tDec;
  mParam.value = rVar;
    return rVar;
   }

function valEmail(oField)
{
  var sVal = Trim(oField.value);
  if (sVal.length > 0)
  {
    if ((sVal.indexOf('@') < 0) || (sVal.indexOf('.') < 0))
      return false;
    else
      return true;
  }
}

function jValEmail(oField)
{
  var sVal = Trim(oField.value);
  if (sVal.length > 0)
  {
    if ((sVal.indexOf('@') < 0) || (sVal.indexOf('.') < 0))
    {
      alert("Invalid Email address.");
      oField.focus();
    }
  }
}

function jValDate(sVar, sName)
{  
  var sDate = "";
  if (sVar.value == '') return true;
  
  var sDate = ConvertDate(sVar.value, sName)
  if (sDate == '')
  {
    sVar.focus();
    sVar.select();
    return false;
  }
  else
  {
    sVar.value = sDate;
    return true;
  }
}

function isLeapYear(nYear)
{
  return new Date(nYear,2-1,29).getDate()==29;
}

function DaysInMonth(nMonth, nYear)
{    
  nVar = parseInt(nMonth);
  switch (nVar)
  {    
    case 2:
      if(isLeapYear(nYear)){
        return 29;}
      else{
        return 28;}
      break;
    case 4:
      return 30;
      break;
    case 6:
      return 30;
      break;
    case 9:
      return 30;
      break;
    case 11:
      return 30;
      break;
    default:
      return 31;
      break;
  }
}

function ConvertDate(sDate, sName)
{
  // Get current Date
  sCurDate = new Date();
  nCurYear = sCurDate.getFullYear();
  nCurYear = parseInt(nCurYear);

  //Define pattern variable
  var sPattern = "";
  
  //Replace dashes (-) with slashes (/) if exist
  sPattern = /\-\b/ig;
  sDate = sDate.replace(sPattern,"/");

  //checks to make sure m/d/yy or mm/dd/yyyy etc is used
  sPattern = /^\d{1,2}[\/]\d{1,2}[\/]\d{2,4}$/;
  bMatch = sDate.match(sPattern);
  
  if (bMatch > "" && bMatch != "null")
  {
    //split each number into array
    sPattern = /\D{1,2}/;
    nVar = sDate.split(sPattern);
    
    //determine month
    nMonth = nVar[0];        
    if(nMonth > 12 || nMonth < 1)
    {
      alert(sName + " is invalid. Please use mm/dd/yyyy format");
      return false;
    }
    if(nMonth.length<2)
    {
      nMonth = "0"+nMonth;
    }

    //determine year    
    nYear = nVar[2];    
    if(nYear < 1)
    {
      alert(sName + " is invalid. Please use mm/dd/yyyy format");
      return false;
    }
    if(nYear.length<4)
    {                  
      if(eval(nYear) +(Math.round(nCurYear/100)*100)<=nCurYear+50)
      //if(eval(nYear) +(Math.round(nCurYear/100)*100)<=(Math.round(nCurYear/100)*100)+50)
      {
        nYear = eval(nYear) + (Math.round(nCurYear/100)*100);
      }
      else
      {
        nYear = eval(nYear) + ((Math.round(nCurYear/100)*100)-100);
      }
    }       

    //determine day    
    nDay = nVar[1];    
    if(nDay < 1)
    {
      alert(sName + " is invalid. Please use mm/dd/yyyy format");
      return false;
    }
    if(nDay>DaysInMonth(nVar[0], nYear))
    {
      alert(sName + " has invalid day of month. Please use mm/dd/yyyy format");
      return false;
    }
    if(nDay.length<2)
    {
      nDay = "0"+nDay;
    }

    sDate = nMonth + "/" + nDay + "/" + nYear;
  }
  else    
  {
    alert(sName + " is in invalid format. Please use mm/dd/yyyy format");return false;
  }

  return sDate;
}

function isNumber(mVar,dec,neg)
{
  for (var i = 0; i < mVar.length; i++)
  {
    var ch = mVar.substring(i, i + 1);
    if ((ch == "-" && neg==false) || (ch == "-" && i > 0))
    {
      return false;
    }
    if (((ch < "0" || ch > "9") && ch != ".") || (ch == "." && dec == false))
    {
      return false;
    }
  }
  return true;
}

function jisBlank(mvar1)
 {
   for(var i = 0;i < mvar1.length; i++)
   {
    var cvar = mvar1.charAt(i);
    if ((cvar != ' ') && (cvar !='\n') && (cvar != '\t')) return false;
 }
 return true;
 }

function jValPhone(phonenumber)
{
var pn = "";
var phn = "";
var jch = "";
var jpos = 0;
var jpre = "";
var jarea = "";
var jstart = 0;


var jlen = phonenumber.length;

for (var j = 0 ; j < jlen; j++)
{
  jch = phonenumber.substring(j, j+1);
  if (jch >= "0" && jch <= "9")
    { phn = phn + jch; }
}

jlen = phn.length;
if (jlen <=6)
  {//phn="";
   return(phn); }

if (jlen <= 7 )
  {
  pn = phn.substring(0,3) + "-" + phn.substring(3,7); 
  return (pn);
  }

if (jlen <=8)
{
  pn = "(" + phn.substring(0,1) + ") " + phn.substring(1,4) + "-" + phn.substring(4,8);
  return (pn);
}

if (jlen <=9)
{
  pn = "(" + phn.substring(0,2) + ") " + phn.substring(1,4) + "-" + phn.substring(4,8);
  return (pn);
}

if (jlen <=10)
{
  pn = "(" + phn.substring(0,3) + ") ";
  pn = pn + phn.substring(3,6) + "-" + phn.substring(6,10);
  return (pn);
}
pn = phn.substring(jlen - 7, jlen-4) + "-" + phn.substring(jlen-4, jlen);
jarea = "(" + phn.substring(jlen-10, jlen-7) + ") ";
jpre = phn.substring(0,jlen-10) + "-";
return(jpre+jarea+pn);
}

function formatNumeric(sVal, nDec, bDollar)
{
  var dstart = 0;
  var dVar = 0.0;
  var tDec = "";
  var rVar = "";
  var tNeg = "";

  if (sVal == "")
  {
    return "";
  }

  dVar = NumbConvert(sVal, nDec + 1);
  if (dVar.substring(0,1) == "-")
  {
    dVar = dVar.substring(1);
    tNeg = "-";
  }

  if (nDec > 0)
  {
    nDec = Math.pow(10, nDec);
    dVar = String(Math.round(dVar * nDec) / nDec);
  }
  else
  {
    dVar = String(Math.round(dVar));
  }
  if (dVar == 0) tNeg = "";

  dstart = dVar.indexOf(".");
  if (dstart >= 0)
  {
    tDec = dVar.substring(dstart);
    dVar = dVar.substring(0,dstart);
  }
  else
  {
    tDec = ".";
  }
  for (dstart = nDec - tDec.length + 1; dstart > 0; dstart--)
    tDec += "0";

  for (dstart = dVar.length - 3; dstart > 0; dstart -= 3)
  {
    rVar = "," + dVar.substring(dstart,dstart+3) + rVar;
  }
  rVar = dVar.substring(0,dstart+3) + rVar;
    
  if (bDollar == true) rVar = "$" + rVar;
  if (nDec > 0)
    rVar = tNeg + rVar + tDec;
  else
    rVar = tNeg + rVar;

  return rVar;
}
function formatNumberDisplay(mParam, mDec, mDollar)
{

   
    var mlen=0;
    var dstart=0;
    var dVar = 0.0;
    var tDec = "";
    var rVar = "";
    var tNeg = "";
    if (String(mParam) == "")
    {
     return "";
    }
    dVar = NumbConvert(mParam, mDec);
    
    if (mDec > 0)
    {
     var mAmount = Math.round((dVar * Math.pow(10, mDec)) + .05) / Math.pow(10,mDec);
    }
    else
    {
      var mAmount = Math.round(dVar);
    }
    var tVar = new String(mAmount);
    
    if (tVar.substring(0,1) == "-")
    {
      tVar = tVar.substring(1);
      tNeg = "-";
    }
    dstart = tVar.indexOf(".");
    if (dstart >= 0)
    {
      tDec = tVar.substring(dstart);
      tVar = tVar.substring(0,dstart);
    }
    else
    {
      tDec = ".";
    }
    if (mDec > 0)
    {
      while (tDec.length < (mDec+1))
      {
        tDec += "0";
      }
    }
    else
    {
      tDec = "";
    }
    dstart = 0;
    for (var i = (tVar.length - 1); i >= 0; i--)
    {
      dstart++;
      rVar = tVar.charAt(i) + rVar;
      if ((dstart>2) && (i>0))
      {
        dstart = 0;
        rVar = "," + rVar;
      }
    }
    if (mDollar == true) rVar = "$" + rVar;
    rVar = tNeg + rVar + tDec;
    return rVar;
   }
function NumbConvert2(input, dec)
{   
  // check for numeric input
  tStr = document.form1[input].value;
  var mVar = new String(tStr);
  var rstr = "";
  var havedec = false;
  var haveneg = false;

  for (var i = 0; i < mVar.length; i++)
 
  {
    var ch = mVar.substring(i, i + 1)
	  if (((ch < "0" || ch > "9") && ch != ".") || (ch == "." && dec < 1) || (ch=="." && havedec==true))
	  {
	    if ((ch == "-") && (haveneg == false))
	    {
       rstr = "-" + rstr;
	     haveneg = true;
	    }
	  }
	  else
	   {
	    if (ch == ".") havedec = true;
	    rstr += ch;
	   }
	  
  }
      document.form1[input].value = rstr; //Number(rstr);
}

function NS_IsDescendant(sPath1, sPath2) {
  sPath1 += '_';
  return sPath2.substring(0, sPath1.length) == sPath1;
}

function NS_OnChange() {
  var oNS = NestedSelection.ObjArray[this.name];
  if (oNS != null) {
    if (this.checked) {
      oNS.checked++;
      // Check all descendants
      for (var nIndx = 0; nIndx < oNS.fields.length; nIndx++) {
        var oFld = oNS.fields[nIndx];
        if (oFld != this && (! oFld.checked) && NS_IsDescendant(this.id, oFld.id)) {
          oFld.checked = true;
          oNS.checked++;
        }
      }
    } else {
      oNS.checked--;
      // Uncheck all descendants and ancestors
      for (var nIndx = 0; nIndx < oNS.fields.length; nIndx++) {
        var oFld = oNS.fields[nIndx];
        if (oFld != this && oFld.checked && (NS_IsDescendant(this.id, oFld.id) || NS_IsDescendant(oFld.id, this.id))) {
          oFld.checked = false;
          oNS.checked--;
        }
      }
    }
    if (oNS.onchange != null) oNS.onchange();
  }
}

function NS_disable(bVal){
  for (var nIndx = 0; nIndx < this.fields.length; nIndx++) {
    this.fields[nIndx].disabled = bVal;
  }
}

function NestedSelection(fields) {
  this.fields = fields;
  this.checked = 0;
  for (var nIndx = 0; nIndx < fields.length; nIndx++) {
    var oFld = fields[nIndx];
    if (nIndx == 0) {
      this.form = oFld.form;
      this.name = oFld.name;
      NestedSelection.ObjArray[this.name] = this;
    }
    oFld.onclick = NS_OnChange;
    if (oFld.checked) this.checked += 1;
  }
}
NestedSelection.ObjArray = new Object();
NestedSelection.prototype.disable = NS_disable;

function DoDisable(fields, bDisable) {
  if (fields) {
    var nLen = fields.length;
    if (nLen != null) {
      for (var nIndx = 0; nIndx < nLen; nIndx++)
        fields[nIndx].disabled = bDisable;
    } else {
      fields.disabled = bDisable;
    }
  }
}

function Trim(vVal)
{
  var sVal = vVal + '';
  var m,n;
  for (n = 0; n < sVal.length && sVal.charAt(n) == ' '; n++);
  for (m = sVal.length - 1; m > n && sVal.charAt(m) == ' '; m--);
  return sVal.substring(n, m + 1);
}