function CustomStxForm(name)
{
  if (name != null)
  {
    CustomStxForm.init(this, name);
  }
}
new CustomStxForm(null);
CustomStxForm.prototype = new OIRDesignForm(null);
CustomStxForm.prototype.superOnchange = OIRDesignForm.prototype.onchange;
CustomStxForm.priceGroup = 'custom_stx';
CustomStxForm.sizeID = 'custom_stx';
CustomStxForm.perSqInch = .02;
CustomStxForm.maxW = 26;
CustomStxForm.maxH = 37;

CustomStxForm.init = function(thisObj, name)
{
  OIRDesignForm.init(thisObj, name);
  /* grpEl keys
  stx_size_id
  stx_qty_id
  die_cut_width
  die_cut_height
  design_name
  
  sticker_unit
  sticker_subtotal
  */
}

CustomStxForm.prototype.dieCutSetup = function()
{
  var size = this.getElVal(this.grpEls['stx_size_id'].el);
  size = size.split(":");
  if (size[1] == "*")
  {
    this.dieCut = true;
    this.dcW = parseFloat(this.getElVal(this.grpEls['die_cut_width'].el));
    this.dcH = parseFloat(this.getElVal(this.grpEls['die_cut_height'].el));
  }
  else
  {
    this.dieCut = false;
    this.dcW = "";
    this.dcH = "";
  }
}

CustomStxForm.prototype.onchange = function()
{
  var size = this.getElVal(this.grpEls['stx_size_id'].el);
  size = size.split(":");
  
  if (this.dieCut)
  {
    if (size[1] != "*")
    {
      this.dcW = parseFloat(this.getElVal(this.grpEls['die_cut_width'].el));
      this.dcH = parseFloat(this.getElVal(this.grpEls['die_cut_height'].el));
      this.setElVal(this.grpEls['die_cut_width'].el, "");
      this.setElVal(this.grpEls['die_cut_height'].el, "");
      this.dieCut = false;
    }
  }
  else
  {
    if (size[1] == "*")
    {
      this.setElVal(this.grpEls['die_cut_width'].el, this.dcW);
      this.setElVal(this.grpEls['die_cut_height'].el, this.dcH);
      this.dieCut = true;
    }
  }
}

CustomStxForm.prototype.initQty = function()
{
}

CustomStxForm.prototype.updateQty = function()
{
}


CustomStxForm.prototype.updateSubtotal = function()
{
  var qty, size, area, h, w,
   unit_price, ext_price;

  totArea = this.pricer.getQty(CustomStxForm.priceGroup, CustomStxForm.sizeID);
  
  qty = this.getElVal(this.grpEls['stx_qty_id'].el);
  qty = parseInt(qty) * 1000;

  size = this.getElVal(this.grpEls['stx_size_id'].el);
  size = size.split(":");

  if (size[1] == "*")
  {
    w = parseFloat(this.getElVal(this.grpEls['die_cut_width'].el));
    h = parseFloat(this.getElVal(this.grpEls['die_cut_height'].el));
    
    w = isNaN(w) ? 0 : w;
    h = isNaN(h) ? 0 : h;

    area = Math.round(w * h * qty);
  }
  else
  {
    area = Math.round(parseFloat(size[1]) * qty);
  }
  ext_price = area * CustomStxForm.perSqInch;
  
  unit_price = Math.round((ext_price / qty) * 100) / 100;
  
  if (ext_price > 0)
  {
    this.setElVal(this.grpEls['sticker_unit'].el, "$"+this.fmtMoney(unit_price));
    this.setElVal(this.grpEls['sticker_subtotal'].el, "$"+this.fmtMoney(ext_price));
  }
  else
  {
    this.setElVal(this.grpEls['sticker_unit'].el, "");
    this.setElVal(this.grpEls['sticker_subtotal'].el, "");
  }
  return ext_price;
}

CustomStxForm.prototype.onsubmit = function()
{
  var size, str, obj;
  /* Check design name*/
  if (this.grpEls['stx_size_id'])
  {
    size = this.getElVal(this.grpEls['stx_size_id'].el);
    size = size.split(":");

    if (size[1] == "*")
    {
      w = parseFloat(this.getElVal(this.grpEls['die_cut_width'].el));
      h = parseFloat(this.getElVal(this.grpEls['die_cut_height'].el));
      
      if (isNaN(w) || isNaN(h))
      {
        alert("You must enter numeric width and height for die cut stickers");
        this.formOK = false;
      }
      
      if (this.formOK && ((w > CustomStxForm.maxW) || (h > CustomStxForm.maxH)))
      {
        alert("Your sticker dimensions must be less than "+CustomStxForm.maxW+"x"+CustomStxForm.maxH+".");
        this.formOK = false;
      }

      if (this.formOK && ((w <= 0) || (h <= 0)))
      {
        alert("Your sticker dimensions must be greater than zero.");
        this.formOK = false;
      }
    }
  }

  if (this.formOK && this.grpEls['design_name'])
  {
    str = this.getElVal(this.grpEls['design_name'].el);
    if (this.formOK && (!str.match(/[^ \r\t\n]/)))
    {
      alert("You must enter a design name");
      
      obj = this.grpEls['design_name'];
      this.setElVal(obj.el, obj.cacheVal);
  
      this.formOK = false;
    }
  }

  return this.formOK;
}

