/*
Abstract 
onchange
updateQty
updateSubtotal
onsubmit
initQty
*/

function OIRDesignForm(name)
{
  if (name != null)
  {
    OIRDesignForm.init(this, name);
  }
}
new OIRDesignForm(null);

OIRDesignForm.init = function(thisObj, name)
{
  thisObj.pricer = null;
  thisObj.name = name;

  thisObj.els = new Array();
  thisObj.elIdx = new Array();
  
  thisObj.resets = new Array();
  thisObj.grpEls = new Array();

  thisObj.formOK = true;
  thisObj.subtotal = 0;
}


OIRDesignForm.prototype.register = function(el, group)
{
  var obj, name;
  if ((!el.name) && (el.length))
  {
    if (el[0].type == "radio")
    {
      name = el[0].name;
    }
  }
  else
  {
    name = el.name;
  }
  
  if ((obj = this.elIdx[el.name]) == null)
  {
    obj = new Object();
    obj.el = el;
    obj.cacheVal = this.getElVal(el);
    this.els[this.els.length] = obj;
    this.elIdx[name] = obj;
    this.grpEls[group] = obj;
  }
}


OIRDesignForm.prototype.cache = function()
{
  var i, j, obj;
  for (i = 0; i < this.els.length; i++)
  {
    obj = this.els[i];
    obj.cacheVal = this.getElVal(obj.el);
  }
}

OIRDesignForm.prototype.setElVal = function(el, val)
{
  var i, j;
  
  if ((!el.name) && (el.length))
  {
    if (el[0].type == "radio")
    {
      this.setElValRadio(el, val);
      return;
    }
  }
  
  switch (el.type)
  {
    case "text":
    case "hidden":
    case "file":
      el.value = val;
      break;
    case "select-one":
    case "select":
      for (j = 0; j < el.options.length; j++)
      {
        if (el.options[j].value == val)
        {
          el.options[j].selected = true;
          break;
        }
      }
      break;
  }
}

OIRDesignForm.prototype.getElVal = function(el)
{
  var i, j;

  if ((!el.name) && (el.length))
  {
    if (el[0].type == "radio")
    {
      return this.getElValRadio(el);
    }
  }

  switch (el.type)
  {
    case "text":
    case "hidden":
    case "file":
      return el.value;
      break;
    case "select-one":
    case "select":
      for (j = 0; j < el.options.length; j++)
      {
        if (el.options[j].selected)
        {
          return el.options[j].value;
          break;
        }
      }
      break;
  }
  return "";
}

OIRDesignForm.prototype.setElValRadio = function(el, val)
{
  var j;
  if (el.length)
  {
    for (j = 0; j < el.length; j++)
    {
      if (el[j].value == val)
      {
        el[j].checked = true;
      }
    }
  }
  else
  {
    if (el.value == val)
    {
      el.checked = true;
    }
  }
}

OIRDesignForm.prototype.getElValRadio = function(el)
{
  var j;
  if (el.length)
  {
    for (j = 0; j < el.length; j++)
    {
      if (el[j].checked)
      {
        return el[j].value;
      }
    }
  }
  else
  {
    if (el.checked)
    {
      return el.value;
    }
  }
  return "";
}

OIRDesignForm.prototype.fmtMoney = OIRDesignForms.prototype.fmtMoney;

