// verifies that non-empty string s contains only digits and at most one decimal point
function ff(){document.homeloan.loantype.focus();}
function isValidMoneyChars(s)
{
   var i = 0
   var c = ''
   var numOfDecimals = 0
   var validMoneyChars = "0123456789."

   for (i = 0; i < s.length; i++)
   {   
      c = s.charAt(i);

      if (validMoneyChars.indexOf(c) == -1)
         return false
      else
      if (c == '.')
         numOfDecimals++
   }

   if (numOfDecimals <= 1)
      return true

   return false
}

// Auto-Tab Function
var phone_field_length=0;
function TabNext(obj,event,len,next_field){if(event == "down"){phone_field_length=obj.value.length;}else if(event == "up"){if(obj.value.length != phone_field_length){phone_field_length=obj.value.length;if(phone_field_length == len){next_field.focus();}}}}

// removes commas, whitespace, and dollar signs from a non-empty string s
function stripExtraneousChars(s, keepDecimal)
{
   var i = 0
   var returnString = ""
   var c = ''
   var charsToKeep = "0123456789"
   
   if (keepDecimal) charsToKeep = charsToKeep + "."

   // Strip beginning 0's.
   while (s.charAt(i) == '0' || charsToKeep.indexOf(i) == -1)
      i++
   
   for (i; i < s.length; i++)
   {   
      c = s.charAt(i)
      if (charsToKeep.indexOf(c) >= 0) returnString += c
   }

   return returnString
}

// Validate a money field.  (Commas are removed when this function is done.)
function checkMoney(theField, nameOfField, emptyOK)
{
   var normalizedMoney = 0

   if (isEmpty(theField.value))
      if (emptyOK)
      {
         return true
      }
      else
      {
         warnEmpty(theField, "Please enter a value for " + nameOfField + ".")
         return false
      }

   // Remove all commas.
   var normalizedMoney = stripExtraneousChars(theField.value, true) 

   // Verify that it only contains digits and at most one decimal point.
   if (!isValidMoneyChars(normalizedMoney)) 
   {
      warnInvalid(theField, "Invalid format -\nPlease enter " +
                  nameOfField + "\nin the format 9999999.99.")
      return false
   }

   theField.value = normalizedMoney
   
   return true
}

// Add commas while the user is typing.  This function needs to be called
// every time a key is pressed.
// !!!!!This does not work in Netscape because Netscape will put the cursor
// !!!!!back at the beginning of the text box after the user hits each key.
function addCommas(theField, useDecimal)
{
  if (navigator.appName.toLowerCase().indexOf("microsoft") > -1)
  {
  	if ((event != null && (event.keyCode > 31 || event.keyCode == 8)) || event == null)
    {
      var str = stripExtraneousChars(theField.value, false)
      var i = 0
      
      if (str.length > 2)
      {
        if (useDecimal)
        {
          // Add decimal.
          i = str.length - 2
          str = str.substring(0, i) + "." + str.substring(i)
        }
        else
        {
          i = str.length
        }
        
        // Add commas.
        i = i - 3
        while (i > 0)
        {
           str = str.substring(0, i) + "," + str.substring(i)
           i = i - 3
        }
      }
      
      theField.value = str
    }
  }
}
function SubDisable(dform) {
  if (document.getElementById) {
   for (var sch = 0; sch < dform.length; sch++) {
    if (dform.elements[sch].type.toLowerCase() == "submit") dform.elements[sch].disabled = true;
   }
 }
return true;
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.0
  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 && document.getElementById) x=document.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

if(window.event + "" == "undefined") event = null;
function HM_f_PopUp(){return false};
function HM_f_PopDown(){return false};
popUp = HM_f_PopUp;
popDown = HM_f_PopDown;

HM_PG_MenuWidth = 150;
HM_PG_FontFamily = "Arial,sans-serif";
HM_PG_FontSize = 10;
HM_PG_FontBold = 0;
HM_PG_FontItalic = 0;
HM_PG_FontColor = "blue";
HM_PG_FontColorOver = "white";
HM_PG_BGColor = "#DDDDDD";
HM_PG_BGColorOver = "#FFCCCC";
HM_PG_ItemPadding = 2;
HM_PG_BorderWidth = 1;
HM_PG_BorderColor = "black";
HM_PG_BorderStyle = "solid";
HM_PG_SeparatorSize = 1;
HM_PG_SeparatorColor = "#d0ff00";
HM_PG_ImageSrc = "HM_More_black_right.gif";
HM_PG_ImageSrcLeft = "HM_More_black_left.gif";
HM_PG_ImageSrcOver = "HM_More_white_right.gif";
HM_PG_ImageSrcLeftOver = "HM_More_white_left.gif";
HM_PG_ImageSize = 5;
HM_PG_ImageHorizSpace = 0;
HM_PG_ImageVertSpace = 2;
HM_PG_KeepHilite = true; 
HM_PG_ClickStart = 0;
HM_PG_ClickKill = false;
HM_PG_ChildOverlap = 20;
HM_PG_ChildOffset = 10;
HM_PG_ChildPerCentOver = null;
HM_PG_TopSecondsVisible = .5;
HM_PG_ChildSecondsVisible = .3;
HM_PG_StatusDisplayBuild =1;
HM_PG_StatusDisplayLink = 1;
HM_PG_UponDisplay = null;
HM_PG_UponHide = null;
HM_PG_RightToLeft = false;
HM_PG_CreateTopOnly = 1;
HM_PG_ShowLinkCursor = 1;
HM_PG_NSFontOver = true;
HM_PG_ScrollEnabled = true;
HM_PG_ScrollBarHeight = 14;
HM_PG_ScrollBarColor = "lightgrey";
HM_PG_ScrollImgSrcTop = "HM_More_black_top.gif";
HM_PG_ScrollImgSrcBot = "HM_More_black_bot.gif";
HM_PG_ScrollImgWidth = 9;
HM_PG_ScrollImgHeight = 5;
HM_PG_ScrollBothBars = true;
//HM_a_TreesToBuild = [1,2];