function iDeal(seq, id, name, desc, maxQty) {
  this.init(seq, id, name, desc, maxQty);
}
iDeal.prototype.init = function(seq, id, name, desc, maxQty) {
  this.seq = seq;
  this.id = id;
  this.name = name;
  this.desc = desc;
  this.maxQty = maxQty;
}
function iProduct(seq, id, name, desc, qty) {
  this.init(seq, id, name, desc, qty);
}
iProduct.prototype.init = function(seq, id, name, desc, qty) {
  this.seq = seq;
  this.id = id;
  this.name = name;
  this.desc = desc;
  this.qty = qty;
}
var deals=[];
var products=[];
var curDeal;
var curDealIdx;
var curRecurIdx;
var lastDealIdx = -1;

function selectDeal(dealIdx) {
  for (var i=0; i<deals.length; i++) {
    var obj = document.getElementById("deal"+i);
    obj.className = (i === dealIdx ? "sel" : "unsel");
    obj = document.getElementById("mdeal"+i);
    obj.className = (i === dealIdx ? "msel" : "munsel");
  }
  curDealIdx = dealIdx;
  curDeal = deals[curDealIdx];
  setMaxQty(curDeal.maxQty);
  
  obj = document.getElementById("deal_id");
  obj.value = curDeal.id;
}
function selectDealInt(dealIdx) {
  // Highlight
  var obj;
  if (lastDealIdx != -1) {
    obj = document.getElementById("relatedQty_"+lastDealIdx);
    obj.className = "relatedQtyCls_Normal";
  }
  obj = document.getElementById("relatedQty_"+dealIdx);
  obj.className = "relatedQtyCls_Sel";
  lastDealIdx = dealIdx;
  // Rest Product qty
  reset();
//  for (var i=0; i<deals.length; i++) {
//    var obj = document.getElementById("deal"+i);
//    obj.className = (i === dealIdx ? "sel" : "unsel");
//    obj = document.getElementById("mdeal"+i);
//    obj.className = (i === dealIdx ? "msel" : "munsel");
//  }
  curDealIdx = dealIdx;
  curDeal = deals[curDealIdx];
//  console.log("curDeal %o", curDeal);
//  setMaxQty(curDeal.maxQty);

//  obj = document.getElementById("deal_id");
//  obj.value = curDeal.id;
  show("type_prod");
}
function addProd(prodIdx) {
    updateSecProd(prodIdx, 1);
}
function removeProd(prodIdx) {
    updateSecProd(prodIdx, -1);
}
function addDiet(prodIdx) {
    updateSecProd(prodIdx, 1);
}
function removeDiet(prodIdx) {
    updateSecProd(prodIdx, -1);
}
function updateSecProd(prodIdx, val) {
    var product = products[prodIdx];
//    console.log("product %o", product);
    var obj = document.getElementById("item_"+product.id+"_qty");
//    console.log("obj qty %o", obj);
    //var obj = document.getElementById("secProdQty"+prodIdx);
    var newQty = products[prodIdx].qty + val;
//    console.log("new qty %o", newQty);
    var curTotal = calcTotalQty(prodIdx)+newQty;
//    console.log("curTotal %o", curTotal);
    if (curDeal == 0 || (newQty >= 0 && curTotal <= curDeal.maxQty)) {
        products[prodIdx].qty = newQty;
        obj.value = newQty;
        document.getElementById("qtySelected").innerHTML = curTotal;
    }
}
function selectRecurInt(recurDealIdx) {
    curRecurIdx = recurDealIdx;
}
function calcTotalQty(prodIdx) {
    var total = 0;
    for (var i=0; i<products.length; i++) {
      if (i != prodIdx)
        total = total + products[i].qty;
    }
    return total;
}
function reset() {
    for (var i=0; i<products.length; i++) {
      var product = products[i];
      product.qty = 0;
      var obj = document.getElementById("item_"+product.id+"_qty");
      //var obj = document.getElementById("secProdQty"+i);
      //obj.innerHTML = 0;
      if (obj!=null)
          obj.value = 0;
    }
    document.getElementById("qtySelected").innerHTML = 0;
}
function setMaxQty(val) {
    document.getElementById("maxQty").innerHTML = val;
    reset();
}

function objectExists(objId) {
	return (document.getElementById(objId) != null);
}

function show(objId) {
	if(objectExists(objId)) {
		var o = document.getElementById(objId);
		o.style.display = "";
	}
}

function hide(objId) {
	if(objectExists(objId)) {
		var o = document.getElementById(objId);
		o.style.display = "none";
	}
}
