var aqty = new Array ();  // amount qty breakpoint
var aamt = new Array ();  // amount to charge
var an   = 0;             // number of discount brkpts

var hqty = new Array ();  // handling qty breakpoints
var hamt = new Array ();  // amount charged
var hn   = 0;             // number of handling brkpts

var qqty = new Array ();  // quantity discount breakpoints
var qamt = new Array ();  // amount of discount
var qd   = 0;             // number of qty breakpoints

var sqty = new Array ();  // shipping qty breakpoints
var samt = new Array ();  // amount charged
var sn   = 0;             // number of shipping brkpts
var stxt = "";            // shipping type text


function doDescriptionChange(val){
  var myRe = /([\d\.]+)\#(?:(\d\d?\/\d\d?\/\d\d)\#([\d\.]+)|([\d\.]+)\#([\d\.]+)\#([\d\.]+))\#([^\#]*)/g;
  var myArray = myRe.exec(val);
  if(myArray){
  var price = myArray[1]||0;
  var ddate = myArray[2];
  var discount = myArray[3]||0;
  var shipca = myArray[4]||0;
  var shipus = myArray[5]||0;
  var shipwo = myArray[6]||0;
  var desc = myArray[7];
  //alert( "price:"+ price + " ddate:" + ddate + " discount:" + discount + " shipca:" + shipca + " shipus:" + shipus + " shipwo:" + shipwo + " description:" + desc );

    document.getElementById('basedes').value=desc;


  //set price
  if(price==0){
    document.getElementById('amountfield').style.display="block";
    document.getElementById('baseamt').value=0;
  }
  else {
    document.getElementById('amountfield').style.display="none";
    //calculate discount
    if(discount>0){
      var myRe = /(\d\d?)\/(\d\d?)\/0?(\d\d?)/;
      var myDate = myRe(ddate);
      var year = parseInt(myDate[3])+2000;
      var month = parseInt(myDate[1])-1;
      var day = parseInt(myDate[2])+1;
      var d1 = new Date(year, month, day);  
      var d2 = new Date();
      var milli_d1 = d1.getTime();
      var milli_d2 = d2.getTime();
      var diff = milli_d1 - milli_d2;
      //alert("year:"+year+" ddate:"+ ddate+ " d1:"+d1+" d2:"+d2+"diff:"+diff);
      if(diff>0){
        price = price - (price * discount);
      }
    }
    document.getElementById('baseamt').value=price;
  }

  //show shipping
  if(shipca>0){
    document.getElementById('shipfield').style.display="block";
    document.getElementById('shipdest').value="none";
    document.getElementById('shipca').value=shipca;
    document.getElementById('shipus').value=shipus;
    document.getElementById('shipwo').value=shipwo;
  }
  else {
    document.getElementById('shipfield').style.display="none";
  }

  } else {
  alert( 'error in description setup codes' );
  }
}

function ClearAll () {
  sn = 0;  // reset shipping indicator
}

function Dollar (val) {  // force to valid dollar amount
var str,pos,rnd=0;
  if (val < 1) rnd = 1;
  str = escape (val*1.0 + 0.005001 + rnd);  // float, round, escape
  pos = str.indexOf (".");
  if (pos > 0) str = str.substring (rnd, pos + 3);
  return str;
}

function Process (obj1) {      // process the form, but no submit
  var i,j,obj,bqty,bamt,btxt,tdis,thnd,tshp,ttax,val,pos,bshp;
  var taxrate = 0;
  var shiprate = 0;

  //alert('shipdest: ' + obj1.shipdest.value);


  if(obj1.shipca.value > 0 && obj1.shipdest.value == 'none'){
    alert("Please select a shipping destination (it is just above the Buy Now button).");
    return false;
  }
  if(obj1.shipdest.value == 'ca'){
    taxrate = 9.00; // changed on Apr 24, 2009
      if(!obj1.shipca){
        shiprate = 5.00;
      } else {
        shiprate = obj1.shipca.value;
      }
  }
  if(obj1.shipdest.value == 'us'){
      taxrate = 0;
      if(!obj1.shipus){
        shiprate = 5.00;
      } else {
        shiprate = obj1.shipus.value;
      }
  }
  if(obj1.shipdest.value == 'wo' || obj1.shipdest.value == 'world'){
      taxrate = 0;
      if(!obj1.shipwo){
        shiprate = 12.00;
      } else {
        shiprate = obj1.shipwo.value;
      }
  }

  bshp = shiprate*1.0; // set the base shipping cost based on destination

  if (!obj1.quantity) {
    alert ("HTML must have quantity field!");
    return false;
  }
  if (!obj1.basedes) {
    alert ("HTML must have basedes field!");
    return false;
  }
  if (!obj1.baseamt) {
    alert ("HTML must have baseamt field!");
    return false;
  }

  btxt = obj1.basedes.value;          // reload desc
  bamt = obj1.baseamt.value*1.0;      //  and amount
  bqty = obj1.quantity.value;         // selected quantity
  if (isNaN(bqty) || bqty == "" || bqty < 1) {
    // alert ("You have not entered a Quantity. Assuming you would like one.");
    bqty = 1;
    obj1.quantity.value = "1";
  }
  
  tshp = 0;                           // shipping charges (only for products)
  bqty = bqty*1.0;                    // float that sucker
  if (btxt=="Degriefing Manual") {
	tshp=bshp+(2.0*(bqty-1));          //shipping = $5 plus $2 for each additional
    if (bqty <=11) {              // discount after 12
      //bamt = bqty*bamt;          // set extended price
    } else {
      //bamt = bqty*bamt* .90;     //apply 10% discount
      bamt=bamt*.90;
    }
  }
  
 if (btxt.substring(0,14)=="5 day National") {
    now = new Date();
    eventDate = new Date();
    diff  = new Date();
    eventDatetemp = new Date(obj1.eventdate.value) // + " " + dateform.secondtime.value);
    eventDate.setTime(eventDatetemp.getTime());
    diff.setTime(Math.abs(now.getTime() - eventDate.getTime()));
    timediff = diff.getTime();
    weeks = Math.floor(timediff / (1000 * 60 * 60 * 24 * 7));
    //if (weeks>=6) {
    //	     bamt=bamt*.90
    //}
    if (weeks>=4) {
    	     bamt=bamt - 100.00;
    }
  }

  
 obj1.tax.value = Dollar (bamt * (taxrate / 100.0));
  obj1.shipping.value = Dollar (tshp);
  obj1.amount.value = Dollar (bamt);  // plug amount
  obj1.item_name.value = btxt;        // and descriptiuon
}


function SetSH (q1, s1) {      // set shipping breakpoints
var i;
  sn = 0;                      // count of breakpoints
  for (i=0; i<arguments.length; i=i+2) {
    sqty[sn] = arguments[i];   // price breakpoint
    samt[sn] = arguments[i+1]; // shipping charge
    sn = sn + 1;               // number of bkpts
  }
}

