var _tq=new Number(0);var _tp=new Number(0);var _ccs;var _cn;var _avs;
var _mcid=new Number(0);var _mid=new Number(0);var _cid=new Number(0);
var _gtprice=new Number(0);var _recQty=new Number(0);
function iproduct(){isize();izip();}
function getShipping()
{
  if(_tq==0){shipMsg("A quantity greater than zero (0) is required.<br /><br />",true);return;}
  if(!new RegExp("(^\\d{5}$)|(^\\d{5}-\\d{4}$)").test(el("shipzip").value))
  {
    shipMsg("Please enter a valid zip code.",true);el("shipzip").focus();return;
  }
  var cmd=new Command("getshipping",dship);
  cmd.addParameter(_mid);
  cmd.addParameter(_tq);
  cmd.addParameter(el("shipzip").value);
  cmd.dialog=new Dlg("Calculate Shipping","getShipping",300,100);
  cmd.dialog.hasStatusBar=true;
  cmd.dialog.msg="Downloading shipping rates.";
  window.commandQueue.add(cmd);
}
function dship(result,dlg)
{
  if(result.success=="success")
  {
    shipMsg(result.data,false);
    utot(false);
    var d = new Date();
    if( new Date() <= new Date("5/31/2006") && _tq >= 36)
    {
      var amt = el("ship03");
      amt.innerHTML = "FREE!";
      amt.style.color = "#ff0000";
      amt.style.fontSize="1.4em";
    }
  }
  else
  {
    shipMsg(result.data,true);
  }
  dlg.hide();
}
function shipMsg(msg,isError)
{
  var div=el("shipOptionsDiv");
  div.innerHTML=msg;
  if(isError){div.style.color="#f00";div.style.fontSize="1em";}
  else{div.style.color="#000";div.style.fontSize=".8em";}
}
function setColor(modelColorId,modelId,colorId,colorName)
{
  cerr();
  _mid=modelId
  _mcid=modelColorId;
  _cid=colorId;
  _cn=colorName;
  retrieveSizes(modelColorId);
}
function retrieveSizes(modelColorId)
{
  var cmd=new Command("getmodelcolorsizes",dsizes);
  cmd.addParameter(modelColorId);
  cmd.dialog=new Dlg("Refresh Sizes","getSizes",300,100);
  cmd.dialog.hasStatusBar=true;
  cmd.dialog.msg="Downloading available sizes."; 
  window.commandQueue.add(cmd);
}
function dsizes(result,dlg)
{
  _avs=result.data;
  var sizeSelector=el("sizeSelector");
  var sizes=gsbs();
  sizeSelector.style.color="#000000";
  for (var i=0;i<sizes.length;i++)
  {
    var size=sizes[i];
    if(_avs[size.id]!=undefined)
    {
      size.parentNode.style.color="#000";
      size.readOnly=false;
      var price=new Number(_avs[size.id].unitPrice);
      size.setAttribute("title",_avs[size.id].name+" ($ "+price.toFixed(2)+")");
    }
    else{size.parentNode.style.color="#a0a0a0";size.value="";size.readOnly=true;}
  }
  rimg(_mid,_cid);hcol(_mcid);utot(true);dlg.hide();
}
function submitForm()
{
  if(_mcid=='undefined'||_mcid==0){derr("You must select a color before submitting the form.");return false;}
  var sizes=gsbs();

  var sizeData = new Array();
  for (var i=0;i<sizes.length;i++)
  {
    if(!sizes[i].readOnly)
      sizeData.push({sizeId:sizes[i].id.substr("sizeId".length),quantity:sizes[i].value});
  }
  var data = {product:{sizes:{size:sizeData},modelId:el("modelId").value,modelColorId:_mcid}};

  if(window.pageTracker) {
    pageTracker._trackPageview('/addProductToStudio.aspx');
  }

  var cmd=new Command("addproducttostudio",udlg);
  cmd.verb="POST";
  cmd.setData(data);
  cmd.dialog=new Dlg("Add Product","addProduct",355,150);
  cmd.dialog.hasStatusBar=true;
  cmd.dialog.msg="Adding Product to the Design Studio.";
  window.commandQueue.add(cmd);
  
  return false; 
}
function udlg(result,dlg)
{
  dlg.clrSbar();
  dlg.setMsg(result.data);
}
function utot(showShipMsg)
{
  cerr();
  var szs=gsbs();
  var count=new Number(0);
  _gtprice=new Number(0);
  for (var i=0;i<szs.length;i++)
  {
    var sz=szs[i];
    if(sz.value.length>0){count+=Number(sz.value);_gtprice+=Number(sz.value)*Number(_avs[sz.id].unitPrice);}
  }
  _tq=count;_tp=getTotPrice(_gtprice,_tq);

  var up = _tq > 0 ? new Number( _tp/_tq ) : 0;

  el("summary").style.display="block";
//  if(showShipMsg)shipMsg("Free shipping on orders greater than 36 pieces until May 31, 2006.",true);
  el("colorName").innerHTML=_cn;
  el("totalQuantity").innerHTML=_tq;
  el("unitPrice").innerHTML="$ "+up.toFixed(2);
  el("totalPrice").innerHTML="$ "+_tp.toFixed(2);

  writeSaveMsg();
}
function getTotPrice(gprice,qty)
{
  if(qty==0)return 0;
  var front = new Number(el("frontColors").value);
  var back = new Number(el("backColors").value);
  var colors = front > back ? front : back;
  var frontPrintPrice = getPrintPrice(front,qty);
  var backPrintPrice = getPrintPrice(back,qty);
  var artPrice = new Number(0);
  if ( back > 0 ) artPrice += parseFloat(_stockArtPrice);
  if ( front > 0 ) artPrice += parseFloat(_stockArtPrice);
  var unitPrice = frontPrintPrice + backPrintPrice
  var screenPrice = colors * 18;
  return gprice + ( qty * unitPrice ) + screenPrice + artPrice;  
}
function getPrintPrice(count,qty)
{
  if (count==0) return 0;
  if (qty==0) return 0;
  if (qty<parseInt(_quantities[0][0])) return 0;
  
  for ( var i=0;i<_quantities.length;i++)
  {
    if (parseInt(_quantities[i][0])==qty)
    {
      return parseFloat(_quantities[i][count]);
    }
    else if (parseInt(_quantities[i][0])<qty && i+1 < _quantities.length && parseInt(_quantities[i+1][0])>qty)
    {
      return parseFloat(_quantities[i][count]);
    }
    
  }
  
  return parseFloat(_quantities[_quantities.length-1][count]);
}
function cerr(){el("errMsg").style.display="none";}
function derr(msg){var msgBox=el("errMsg");msgBox.innerHTML=msg;msgBox.style.display="block";}
function gsbs(){return el("sizeSelectorTable").getElementsByTagName("input");}
function rimg(modelId,colorId)
{
  var imgn='model'+modelId+'_'+colorId+'.jpg';
  el('productThumbnail').setAttribute('src','/productThumbnails/'+imgn);
  el('thumbnail').setAttribute('href','/productImages/'+imgn);
  el('thumbnailCaption').setAttribute('href','/productImages/'+imgn);
}
function hcol(modelColorId)
{
  if(null != _ccs)_ccs.setAttribute('src','/Images/Spacer.gif');
  _ccs=el('img'+modelColorId);
  _ccs.setAttribute('src','/Images/SelectedColor.gif');
}
function isSaveMsgNeeded()
{
  if ( _tq == 0 ) return false;
  if ( _tq<12) return true;
  
  for (var i=0;i<_quantities.length;i++)
  {
    if ( parseInt(_quantities[i][0])<=_tq && i+1 < _quantities.length && parseInt(_quantities[i+1][0])>_tq)
    {
      _recQty = parseInt(_quantities[i+1][0]);
      return (_tq>=(parseInt(_quantities[i][0]) + parseInt(_quantities[i+1][0]))/2);
    }
  }
  return false;
}
function writeSaveMsg()
{
  if(!isSaveMsgNeeded())
  {
    el("saveMsg").innerHTML="";
    el("saveMsgLbl").innerHTML="";
    return;
  } 
  
  var msg = "";
  var msgHdr = "";
  if (_tq>=12)
  {
    var recPrice = getTotPrice(_gtprice/_tq*_recQty,_recQty)/_recQty;
    
    if (recPrice.toFixed(2)<(_tq>0?new Number(_tp/_tq):0).toFixed(2))
    {
      msgHdr = "Save Money!";
      msg = "If you order " + _recQty + " garments, your per garment cost will be $" + recPrice.toFixed(2);
    }
  }
  else
  {
    msg = "Minimun order size is 12 garments."
  }
  el("saveMsg").innerHTML=msg;
  el("saveMsgLbl").innerHTML=msgHdr;
}
function izip()
{
  el("shipzip").onkeypress=function(h)
  {
    if(!h && window.event)h=window.event;
    var code=0;
    if(h.which){code=h.which;}else{code=h.keyCode;}
    if(code==13){el("updateShipping").focus();getShipping();}
  };
}
function isize()
{
  var flds=gsbs();
  for (var i=0;i<flds.length;i++){var f=flds[i];f.onkeydown=sfkp;f.onkeyup=sfku;f.readOnly=true;f.value="";}
}
function sfkp(h)
{
  if(!h&&window.event)h=window.event;
  var code=0;
  if(h.which){code=h.which;}else{code=h.keyCode;}
  if( ( code<48||code>57 ) && ( code<96||code>105 ) )
  {
    switch(code)
    {
      case 8:case 9:case 33:case 34:case 35:case 35:case 36:case 37:case 39:case 45:case 46:
        h.returnValue=true;
        return true;
      case 13:
          h.keyCode=9;
          h.returnValue=true;
          return true;
      default:
        h.cancelBubble=true;
        h.returnValue=false;
        return false;
    }
  }
  else return true;
}
function sfku(h){utot(true);}