//*****************************************************************
// Form Validation Utilities
//*****************************************************************

function CheckBlankText(bChk,field,name)
{
  if (bChk){
    if (field.value == ""){
      alert(name + " is required.");bChk = false;
      field.focus();}}
  return(bChk);
}

function CheckBlankDropdown(bChk,field,name)
{
  if (bChk){
    if (field.selectedIndex == 0){
      alert(name + " is required.");bChk = false;
      field.focus();}}
  return(bChk);
}

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(field.length > 1){    
      for(x=0;x<field.length;x++){
        if (field[x].checked) bIsChecked = true;}    
      if (!bIsChecked){  
        alert(name + " must be checked.");
        bChk=false;
        field[0].focus();}}
    else{
      if (field.checked == false){    
        alert(name + " must be checked.");
        bChk=false;
        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<field.length;x++){
      if (field[x].checked) bIsChecked = true;}    
    if (!bIsChecked){  
      alert("Please select a" + sSpace + name + ".");
      bChk=false;
      field[0].focus();}}

  return(bChk);
}


function NumbConvert(input, dec)
{   
  // check for numeric input
  var mVar = new String(input);
  var rstr = "";
  var havedec = false;
  var haveneg = false;

  if(dec<1)
  {
    nDec = mVar.indexOf(".");
    if(nDec>0) mVar = mVar.slice(0,nDec); 
  }

  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 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 jValEmail(oField,sName)
{
  var sVar = new String;  
  sVar = oField.value;

  if (sVar != '')
  {
    if ((sVar.indexOf('@') < 0) || (sVar.indexOf('.') < 0))
    {
      alert(sName + ' is not a valid email address.');
      oField.focus();
      oField.select();
    }
  }
}


function jValDate(sVar, sName)
{  
  var sDate = "";
  if (sVar.value == '') return true;
  
  var sDate = ConvDate(sVar.value);
  if (sDate == '')
  {
    alert("Please enter " + sName + " as mm/dd/yyyy");
    window.setTimeout("document.form." + sVar.name + ".focus()",1); 
    sVar.focus();
    sVar.select();
    return false;
  }
  else
  {
    sVar.value = sDate;
    return true;
  }
}

// *** new date routines ***

function ConvDate(theDate)
{
  var iPos = 0;
  var dToday = new Date();
  var nCent, nYear, nMonth, nDay;
  var dResult;
  var sSep = '';

  if ((iPos = theDate.indexOf('-')) >= 0)
  {
    sSep = '-';
  }
  else
  {
    if ((iPos = theDate.indexOf('/')) >= 0) 
      sSep = '/';
  }

  if (sSep == '') 
  {
    switch (theDate.length) 
    {
    case 1:
      return '';
    case 2:
      nMonth = theDate.substring(0, 1) - 0;
      nDay = theDate.substring(1, 2) - 0;
      nYear = dToday.getFullYear();
      break;
    case 3:
      nMonth = theDate.substring(0, 2) - 0;
      if(nMonth > 12)
      {
        nMonth = theDate.substring(0, 1) - 0;
        nDay = theDate.substring(1, 3) - 0;
      }
      else
      {
        nDay = theDate.substring(2, 4) - 0;
        if(nDay > 31)
        {
          nMonth = theDate.substring(0, 1) - 0;
          nDay = theDate.substring(1, 3) - 0;
        }
      }
      nYear = dToday.getFullYear();
      break;
    case 4:
      nMonth = theDate.substring(0, 2) - 0;
      nDay = theDate.substring(2, 4) - 0;
      nYear = dToday.getFullYear();
      break;
    case 5:
      nMonth = theDate.substring(0, 1) - 0;
      nDay = theDate.substring(1, 3) - 0;
      nYear = theDate.substring(3) - 0;
      nYear = validateYear(nYear);
      break;
    case 6:
      nMonth = theDate.substring(0, 2) - 0;
      nDay = theDate.substring(2, 4) - 0;
      nYear = theDate.substring(4) - 0;
      nYear = validateYear(nYear);
      break;
    case 7:
      nMonth = theDate.substring(0, 2) - 0;
      if(nMonth > 12)
      {
        nMonth = theDate.substring(0, 1) - 0;
        nDay = theDate.substring(1, 3) - 0;
      }
      else
      {
        nDay = theDate.substring(2, 3) - 0;
      }
      nYear = theDate.substring(3) - 0;
      nYear = validateYear(nYear);
      break;
    case 8:
      nMonth = theDate.substring(0, 2) - 0;
      nDay = theDate.substring(2, 4) - 0;
      nYear = theDate.substring(4) - 0;
      nYear = validateYear(nYear);
      break;
    }
  } 
  else // sSep <> ''
  {
    nMonth = theDate.substring(0, iPos) - 0;
    theDate = theDate.substring(iPos + 1);
    iPos = theDate.indexOf(sSep);
    if (iPos == -1) 
    {
      nDay = theDate - 0;
      nYear = dToday.getFullYear();
    }
    else
    {
      nDay = theDate.substring(0, iPos) - 0;
      if (iPos == (theDate.length - 1)) 
      {
        nYear = dToday.getFullYear();
      } 
      else
      {
        nYear = theDate.substring(iPos + 1) - 0;
        nYear = validateYear(nYear);
      }
    }
  }
  dResult = new Date(nYear, nMonth - 1, nDay);
  if (isNaN(dResult)) return '';
  if (nYear == dResult.getFullYear() && nMonth == (dResult.getMonth() + 1) && nDay == dResult.getDate()) 
    return nMonth + '/' + nDay + '/' + nYear;
  return '';
}

function validateYear(aYear)
{
  
  var nYear = toInt(aYear);
  if(nYear == '')
    return(aYear);
  nYear -= 0; 
  if(nYear < 100)
  {
    var dToday = new Date();
    var nCurrentYear = dToday.getFullYear() % 100;
    var nCent = Math.floor(dToday.getFullYear() / 100);
    if (nCurrentYear <= 50)
    {
      if(nYear >= (nCurrentYear + 50)) nCent--;
    } 
    else if (nCurrentYear > 50) 
    {
      if(nYear <= (nCurrentYear - 50)) nCent++;
    }
    nYear += nCent * 100;
  }
  if(nYear < 1753)
    nYear = 1753;
  if(nYear > 9999)
    nYear = new Date().getFullYear();
  return nYear;
}

function toInt(sParam)
{
  var sReturn = '';
  var sVal = Trim(String(sParam));
  var ch = '';
  for(var i = 0; i < sVal.length; i++)
  {
    ch = sVal.substring(i, i + 1);
    if(ch >= '0' && ch <= '9')
      sReturn += ch;
    else
      break;
  }
  return sReturn;
}

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);
}

// *** end new date routines ***


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 jValPhone(oField,sName)
{
  var pn = "";
  var phn = "";
  var jch = "";
  var jpos = 0;
  var jpre = "";
  var jarea = "";
  var jstart = 0;

  var sVar = new String;  
  sVar = oField.value;

  var jlen = sVar.length;
  
  for (var j = 0 ; j < jlen; j++)
  {
    jch = sVar.substring(j, j+1);
    if (jch >= "0" && jch <= "9")
     { phn = phn + jch; }
  }

  jlen = phn.length;
  if (jlen <=6)
  {
    sVar = phn;
  }
  else
  {
    if (jlen <=7)
    {
      pn = phn.substring(0,3) + "-" + phn.substring(3,7); 
      sVar = pn;
    }
    else
    {
      if (jlen <=8)
      {
        pn = "(" + phn.substring(0,1) + ") " + phn.substring(1,4) + "-" + phn.substring(4,8);
        sVar = pn;
      }
      else
      {
        if (jlen <=9)
        {
          pn = "(" + phn.substring(0,2) + ") " + phn.substring(1,4) + "-" + phn.substring(4,8);
          sVar = pn;
        }
        else
        {
          if (jlen <=10)
          {
            pn = "(" + phn.substring(0,3) + ") " + phn.substring(3,6) + "-" + phn.substring(6,10);
            sVar = pn;
          }
          else
          {
            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) + "-";
            sVar = jpre+jarea+pn;
          }
        }
      }
    }
  }
  oField.value = sVar;
}

function jValSSN(oField,sName)
{
 var sVar = new String;  
 sVar = oField.value;

 if (sVar != '')
 {
  var ss = "";
  var ssn = "";
  var jch = "";

  var jlen = sVar.length;
  
  for (var j = 0 ; j < jlen; j++)
  {
    jch = sVar.substring(j, j+1);
    if (jch >= "0" && jch <= "9")
     { ssn = ssn + jch; }
  }
  
  if (ssn.length == 9)
  {
        ss = ssn.substring(0,3) + "-" + ssn.substring(3,5) + "-" + ssn.substring(5,9);
        oField.value = ss;
  }
  else
  {
        alert(sName + ' is not a valid Social Security Number.');
        oField.focus();
        oField.select();
  }
 }
}

function jValNumber(mVar,mDec,mDollar,mName,zero,Max)
{

  if (mVar.value == '' && zero != 1) { return true;}
  var tVar = NumbConvert(mVar.value,mDec);
  if ((tVar > 0 && tVar <= Max) || (tVar == 0 && zero == 1))
  {
    mVar.value = tVar.toFixed(mDec);
    if (mDollar != 0) { formatNumber(mVar, mDec, mDollar); }
    return true;
  }
  else
  {
    alert (mName + ' is not a valid.');
    mVar.focus();
    mVar.select();
   
    return false;
  }
  return true;
}