function Find(name)
{
    for (var i=0; i< document.forms[0].elements.length; i++)
    {
        if (document.forms[0].elements[i].id.indexOf(name) >= 0)
        {
          //alert(document.forms[0].elements[i].id + " = " + document.forms[0].elements[i].value)
        
          return document.forms[0].elements[i]
        }
    }
          
    return null
}

function FindTag(name)
{
    for (var i = 0; i < document.all.length; i++)
    {
        if (document.all(i).id.indexOf(name) >= 0)
          return document.all(i)
    }
    
    return null
}

// sample hide / show for 'prepage'
function HideShow() { //DOM
    if (document.getElementById){
        document.getElementById('prepage').style.visibility='hidden';
    }else{
        if (document.layers){ //NS4
            document.prepage.visibility = 'hidden';
        }
        else { //IE4
            document.all.prepage.style.visibility = 'hidden';
        }
    }
}

function SetFocus(name)
{
    var obj=Find(name);
    if (obj != null)
        obj.focus();
}

function CheckItemSelected(name, message, next)
{
  var obj=Find(name)
  var index=parseInt(obj.value)
  if (index == 0) 
  {
    alert(message)
    return null;
  }
  else if (next != null)
  {
    obj=Find(next)
    obj.focus()
  }
}

function RemoveCommas(buf) {
  var result="";
  
  for (var i=0; i<buf.length; i++)
    if (buf.charAt(i) != ',')
      result+=buf.charAt(i);
      
  return result;
}

function IsNumeric(data)
{    
  return parseFloat(data)==data;
}

function GetFloat(buf) {
  if (buf == '')
    return 0;
    
  var upos=buf.indexOf(',')
  
  // thousands?
  if (upos > 0 && buf.length > upos + 3) {
    buf=buf.substring(0, upos) + buf.substring(upos + 1)
    
    // check out millions
    upos=buf.indexOf(',')
    if (upos > 0 && buf.length > upos + 3)
      buf=buf.substring(0, upos) + buf.substring(upos + 1)
  }
  else if (upos>=0)     // french 99,99 = 99.99
    buf=buf.substring(0, upos) + "." + buf.substring(upos + 1)
    
  //alert(buf)
  
  var result="";
  for (var i=0; i<buf.length; i++)
  {
    if ( (buf.charAt(i) >= '0' && buf.charAt(i) <='9') || buf.charAt(i) == '.' || buf.charAt(i) == '+' || buf.charAt(i) == '-')
      result+=buf.charAt(i);
    else
      alert('A number cannot contain ' + buf.charAt(i))
  }
  
  if (IsNumeric(result))
    return parseFloat(result);
  else
    return 0;
}

function FormatNumber(num) {
  var Negative=false;
  if (num > - 0.005 && num < 0.005)
    return '0.00'
  else if (num <= -0.005) {
    Negative=true;
    num=-num;
  }
  
  // if num=56.076, Rounded=56
  var Rounded=Math.floor(num);
  
  // insert commas
  var sRounded=Rounded.toString()
  var buf=""
  var count=0;
  for (var i=sRounded.length - 1; i>=0; i--)
  {
    if (count == 3)
    {
      buf="," + buf
      count=0
    }

    buf=sRounded.charAt(i) + buf
    ++count
  }

  // Remainder=5608 - 5600=8
  var Remainder=Math.round(num * 100) - 100 * Rounded;
  
  // bug fixed by AEJ 28/2/7
  if (Remainder == 100)
  {
    ++Rounded;
    Remainder=0;
  }
  
  var sRemainder=Remainder.toString();
  
  //alert('num=' + num  + ' Rounded=' + Rounded + ' Remainder=' + Remainder + ' sRemainder=' + sRemainder);
  
  if (sRemainder.length < 2) sRemainder='0' + sRemainder;
  
  var sNumber=buf + '.' + sRemainder;
  if (Negative) sNumber='-' + sNumber;
  
  return sNumber;
}

   