function CellRollover(color, backcolor, cellName, imgName)
{
  if (imgName > '') ImgRollover(imgName);
  window[cellName].style.color = color;
  window[cellName].style.backgroundColor = backcolor;
}

function detectFlash()
{
  var flashVersion = 0;
  var requiredVersion = 6;
	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;
			flashVersion = parseInt(flashDescription.charAt(flashDescription.indexOf(".") - 1));
		}
	}
	if (flashVersion < requiredVersion)
	{
	  return(false);
	}
	else
	{
	  return(true);
	}
}

function showFlash(flashurl, width, height, bgcolor, transparent, sNoFlash)
{
  var sFlashCode = '';
  if(detectFlash())
  {
    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>';
  }
  else
  {
    sFlashCode = sNoFlash;
  }
  document.write(sFlashCode);
}

function jRollover(imgName)
{
  document.images[imgName].src = (document.images[imgName].src == eval(imgName + 'on.src')) ? eval(imgName + 'off.src'): eval(imgName + 'on.src');
}

function jPhone(form, field)
{
  if (form[field].value != "")
  {
    form[field].value =  jValPhone(form[field].value);
  }
}

//*****************************************************************
// 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(bChk,field,name)
{
  if (bChk){
    if (document.form1[field].value == ""){
      alert(name + " is required.");bChk = false;
      document.form1[field].focus();}}
  return(bChk);
}

function CheckBlankDropdown(bChk,field,name)
{
  if (bChk){
    if (document.form1[field].selectedIndex == 0){
      alert(name + " is required.");bChk = false;
      document.form1[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(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 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 != "-") {
      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 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 = ConvDate(sVar.value);
  if (sDate == '')
  {
    alert("Please enter " + sName + " as mm/dd/yyyy");
    window.setTimeout("document.form1." + 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 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);
}
