var da_id = 0;
var da_id2 = 0;

function add_to_cart(id)
{
  var url = "/xml/add_to_cart.php";
  var query = "id="+escape(id);

  var btn = _ge("add_to_cart_btn_"+id);
  if (btn)
  {
//    btn.value = "adding to cart...";
    btn.src = '/img/addingbask.gif';
    btn.disabled = true;
  }

  da_id = id;

  diXMLRequest.post(url, query, added_to_cart);
}

function added_to_cart(xmlDoc)
{
  var btn = _ge("add_to_cart_btn_"+da_id);
  if (btn)
  {
    btn.src = '/img/addedbask.gif';
 //   btn.value = "added to cart";
  }

  refresh_cart_info();
}

function refresh_cart_info()
{
  var url = "/xml/get_cart_status.php";

  diXMLRequest.get(url, refreshed_cart_info);
}

function refreshed_cart_info(xmlDoc)
{
  var result_recs = xmlDoc.documentElement.getElementsByTagName("result");

  if (result_recs.length == 0) return null;

  var total_count = parseInt(result_recs[0].getAttribute("total_count"));
  var total_price = parseFloat(result_recs[0].getAttribute("total_price"));

//  alert('cur: '+USER_CURRENCY+' value: '+currency_rates_ar[USER_CURRENCY]);

  // to gpb
  total_price /= currency_rates_ar[USER_CURRENCY];
  total_price *= 1 - (discount_discount + referral_discount) / 100;
  total_price -= ap_uzed * artpoint_worth;
  total_price -= voucher_discount;

  if (total_price < 0) total_price = 0;

  var p = _ge("page_cart_total_price");
  if (p) p.innerHTML = Math.round(total_price);

  // to currency
  total_price *= currency_rates_ar[USER_CURRENCY];

  /*
  total_price *= 1 - (discount_discount + referral_discount) / 100;
  total_price -= voucher_discount;
  if (total_price < 0) total_price = 0;
  */

  _ge("cart_total_count").innerHTML = total_count;
  _ge("cart_total_price").innerHTML = Math.round(total_price);
}

function refresh_enhanced_cart_info()
{
  var url = "/xml/get_enhanced_cart_status.php";

  diXMLRequest.get(url, refreshed_enhanced_cart_info);
}

function refreshed_enhanced_cart_info(xmlDoc)
{
  var result_recs = xmlDoc.documentElement.getElementsByTagName("result");
  var total_result_recs = xmlDoc.documentElement.getElementsByTagName("total_result");

  var total_count = total_result_recs[0].getAttribute("total_count");
  var total_price = total_result_recs[0].getAttribute("total_price");

  // to gpb
  total_price /= currency_rates_ar[USER_CURRENCY];

  total_price *= 1 - (discount_discount + referral_discount) / 100;
  total_price -= ap_uzed * artpoint_worth;
  total_price -= voucher_discount;
  if (total_price < 0) total_price = 0;

  /*
  total_price *= 1 - (discount_discount + referral_discount) / 100;
  total_price -= voucher_discount;
  if (total_price < 0) total_price = 0;
  */

  var p = _ge("page_cart_total_price");
  if (p) p.innerHTML = Math.round(total_price);

  // to currency
  total_price *= currency_rates_ar[USER_CURRENCY];

  _ge("cart_total_count").innerHTML = total_count;
  _ge("cart_total_price").innerHTML = Math.round(total_price);

  for (var i = 0; i < result_recs.length; i++)
  {
    var id = result_recs[i].getAttribute("id");
    var price = result_recs[i].getAttribute("price");

    var p = _ge("cart_item_cost_"+id);
    if (p) p.innerHTML = price;
  }
}

var old_remove_from_cart_btn_value;

function remove_from_cart()
{
  old_remove_from_cart_btn_value = _ge("btn_remove").value;
  _ge("btn_remove").value = 'removing...';
  _ge("btn_remove").disabled = true;

  var idz_str = "";

  for (var i = 0; i < document.forms.cart_form.elements.length; i++)
  {
    var fe = document.forms.cart_form.elements[i];

    if (fe.name.substr(0,12) == 'remove_item_')
    {
      if (fe.checked)
      {
        idz_str += (idz_str.length == 0) ? '' : ',';
        idz_str += fe.name.substr(12);
      }
    }
  }

  if (!idz_str)
  {
    alert('You should select items you want to remove first.\nJust click ticks on the left of items');
    return;
  }

  var url = "/xml/remove_from_cart.php";
  var query = "idz="+escape(idz_str);

  diXMLRequest.post(url, query, removed_from_cart);
}

function removed_from_cart(xmlDoc)
{
  var result_recs = xmlDoc.documentElement.getElementsByTagName("result");

  if (result_recs.length == 0) return null;

  var idz_str = result_recs[0].getAttribute("idz");
  var idz = idz_str.split(",");

  for (var i = 0; i < idz.length; i++)
  {
    var r = _ge("cart_row_"+idz[i]);

    if (r) r.parentNode.removeChild(r);
  }

  refresh_cart_info();

  _ge("btn_remove").value = old_remove_from_cart_btn_value;
  _ge("btn_remove").disabled = false;

  window.location.reload();
}

function enter_bid(id)
{
  var url = "/xml/enter_bid.php";
  var v = _ge("bid_"+id);
  var a = ap.current_ar[id];
  var query = "id="+escape(id)+"&bid="+escape(v.value)+"&artpoints="+escape(a);

  var btn = _ge("enter_bid_btn_"+id);
  if (btn)
  {
    btn.value = "wait...";
    btn.disabled = true;
  }

  da_id = id;

  diXMLRequest.post(url, query, enter_bid_response);
}

function enter_bid_response(xmlDoc)
{
  var result_recs = xmlDoc.documentElement.getElementsByTagName("result");

  if (result_recs.length == 0) return null;

  var id = result_recs[0].getAttribute("id");
  var message = result_recs[0].getAttribute("message");
  var bid = result_recs[0].getAttribute("bid");
  var check_before = result_recs[0].getAttribute("check_before");

  var ae = _ge("auxiliary_bid_div_"+id);
  var e = _ge("cart_bid_msg_"+id);
  if (ae && e && message)
  {
    e.style.left = (getLeft(ae)-10)+"px";
    e.style.top = (getTop(ae)+10)+"px";
    e.innerHTML = message+" <a href='javascript:hide_bid("+id+");'>close</a>";
    e.style.visibility = "visible";

    var _b = _ge('is_bid_ok_'+id);

    if (bid && check_before == '0')
    {
      bid_ar[id].bid = bid;
      bid_ar[id].error_flag = 0;
      if (_b) _b.innerHTML = 'Bid accepted';
    }
    else if (bid == '0')
    {
      bid_ar[id].bid = 0;
      bid_ar[id].error_flag = 0;
      if (_b) _b.innerHTML = 'No bid entered';
    }
    else
    {
      bid_ar[id].bid = 0;
      bid_ar[id].error_flag = 1;
      if (_b) _b.innerHTML = 'Bid not accepted';
    }
  }

  able_to_click_order_button();

  var btn = _ge("enter_bid_btn_"+da_id);
  if (btn)
  {
    btn.value = "enter";
    btn.disabled = false;
  }
}

function hide_bid(id)
{
  var e = _ge("cart_bid_msg_"+id);
  if (e)
  {
    e.style.visibility = "hidden";
  }
}

function enter_artpoints_old(id)
{
  da_id2 = id;

  var inp = _ge("artpoints_"+id);

  var x = parseInt(inp.value);
  var message;

  ap.error_flag_ar[id] = 1;

  var bgcolor = '#fcc';

  // calculating
  ap.cur_amount = ap.amount;
  for (var i in ap.current_ar)
  {
    if (i == "in_array" || i == id) continue;

    ap.cur_amount -= ap.current_ar[i];
  }
  //

  var new_price_set = false;

  if (ap.limit_ar[id] || ap.limit_ar[id] == 0)
  {
    if (x > ap.cur_amount)
      message = "You don't have enough artpoints";
    else if (x > ap.limit_ar[id])
      message = "You can use max <b>"+ap.limit_ar[id]+"</b> artpoints for this item";
    else if (inp.value.length == 0)
    {
      message = "You can use max <b>"+ap.limit_ar[id]+"</b> artpoints for this item";
      ap.error_flag_ar[id] = 0;
      bgcolor = '#fff';
    }
    else if (isNaN(x))
      message = "Please enter numeric value";
    else
    {
      message = "<b>"+x+"</b> artpoints will be used for discount";
      ap.error_flag_ar[id] = 0;
      bgcolor = '#fff';

      //cart_item_price_ar[id].e.innerHTML = mysprintf(cart_item_price_ar[id].price - x * artpoint_worth, 2);
      cart_item_price_ar[id].e.innerHTML = Math.round(cart_item_price_ar[id].price - x * artpoint_worth);

      new_price_set = true;
    }
  }
  else
  {
    message = "Internal error in CART module. Please contact administrator.";
  }

  if (!new_price_set)
    //cart_item_price_ar[id].e.innerHTML = mysprintf(cart_item_price_ar[id].price, 2);
    cart_item_price_ar[id].e.innerHTML = Math.round(cart_item_price_ar[id].price);

  // total price
  var total_price = 0;
  for (var i in cart_item_price_ar)
  {
    if (i == "in_array") continue;

    var p = cart_item_price_ar[i].e.innerHTML.replace(",",".");
    p = parseFloat(p);
    total_price += p;
  }

  total_price *= 1 - (discount_discount + referral_discount) / 100;
  total_price -= voucher_discount;
  if (total_price < 0) total_price = 0;

  //page_cart_total_price.innerHTML = mysprintf(total_price, 2);
  page_cart_total_price.innerHTML = Math.round(total_price);
  //

  // putting out
  ap.current_ar[id] = (isNaN(x) || ap.error_flag_ar[id]) ? 0 : x;
  ap.cur_amount -= ap.current_ar[id];
  if (artpoints_amount) artpoints_amount.innerHTML = ap.cur_amount;
  //

  if (inp.style.backgroundColor != bgcolor) inp.style.backgroundColor = bgcolor;

  var ae = _ge("auxiliary_artpoints_div_"+id);
  var e = _ge("cart_artpoints_msg_"+id);
  if (ae && e && message)
  {
    e.style.left = (getLeft(ae) - 10)+"px";
    e.style.top = (getTop(ae) - 10)+"px";
    e.innerHTML = message+" <a href='javascript:hide_artpoints("+id+");'>close</a>";
    e.style.visibility = "visible";
  }

  able_to_click_order_button();
}

function able_to_click_order_button()
{
  var okay = true;

  for (var i in ap.error_flag_ar)
  {
    if (i == "in_array") continue;

    if (ap.error_flag_ar[i] > 0)
    {
      okay = false;
      break;
    }
  }

  for (var i in bid_ar)
  {
    if (i == "in_array") continue;

    if (bid_ar[i].error_flag != 0)
    {
      okay = false;
      break;
    }
  }

  btn_order.disabled = okay ? false : true;
}

function hide_artpoints_old(id)
{
  var e = _ge("cart_artpoints_msg_"+id);
  if (e)
  {
    e.style.visibility = "hidden";
  }

  da_id2 = 0;
}

function hide_artpoints()
{
  var e = _ge("cart_artpoints_msg");
  if (e)
  {
    e.style.visibility = "hidden";
  }

  da_id2 = 0;
}

function enter_artpoints()
{
  var inp = _ge("artpoints");

  id = 0;

  var x = parseInt(inp.value);
  var message;

  var error_flag = 1;
  var ap_current = 0;

  var bgcolor = '#fcc';

  var new_price_set = false;

  ap_uzed = 0;

  if (ap_limit || ap_limit == 0)
  {
    if (x > ap.amount)
      message = "You don't have enough artpoints";
    else if (x > ap_limit)
      message = "You can use max <b>"+ap_limit+"</b> artpoints";
    else if (inp.value.length == 0)
    {
      message = "You can use max <b>"+ap_limit+"</b> artpoints";
      error_flag = 0;
      bgcolor = '#fff';
    }
    else if (isNaN(x))
      message = "Please enter numeric value";
    else
    {
      message = "<b>"+x+"</b> artpoints will be used for discount";
      error_flag = 0;
      bgcolor = '#fff';
      ap_uzed = x;

      //cart_item_price_ar[id].e.innerHTML = mysprintf(cart_item_price_ar[id].price - x * artpoint_worth, 2);
      //cart_item_price_ar[id].e.innerHTML = Math.round(cart_item_price_ar[id].price - x * artpoint_worth);
      renew_cart_cost();
      new_price_set = true;
    }
  }
  else
  {
    message = "Internal error in CART module. Please contact administrator.";
  }

  if (!new_price_set)
    //cart_item_price_ar[id].e.innerHTML = mysprintf(cart_item_price_ar[id].price, 2);
    //cart_item_price_ar[id].e.innerHTML = Math.round(cart_item_price_ar[id].price);
    renew_cart_cost();

  // putting out
  artpoints_amount.innerHTML = ap.amount - ap_uzed;
  ap_uzed_pounds.innerHTML = Math.round(ap_uzed * artpoint_worth);
  //

  if (inp.style.backgroundColor != bgcolor) inp.style.backgroundColor = bgcolor;

  var ae = _ge("auxiliary_artpoints_div");
  var e = _ge("cart_artpoints_msg");
  if (ae && e && message)
  {
    e.style.left = (getLeft(ae) - 10)+"px";
    e.style.top = (getTop(ae) - 10)+"px";
    e.innerHTML = message+" <a href='javascript:hide_artpoints();'>close</a>";
    e.style.visibility = "visible";
  }
}

function renew_cart_cost()
{
  var total_price = cart_total_cost;

  var __discount_pounds = total_price * (discount_discount) / 100;
  var __referral_pounds = total_price * (referral_discount) / 100;
  total_price *= 1 - (discount_discount + referral_discount) / 100;
  total_price -= ap_uzed * artpoint_worth;
  total_price -= voucher_discount;
  if (total_price < 0) total_price = 0;

  //page_cart_total_price.innerHTML = mysprintf(total_price, 2);
  page_cart_total_price.innerHTML = Math.round(total_price);

  discount_pounds.innerHTML = Math.round(__discount_pounds);
  referral_pounds.innerHTML = Math.round(__referral_pounds);
  voucher_pounds.innerHTML = Math.round(voucher_discount);
  less_pounds.innerHTML = Math.round(ap_uzed * artpoint_worth + __discount_pounds + voucher_discount + __referral_pounds);
}










function order_items()
{
  var date = new Date();
  date.setDate(date.getDate() + 1);

  for (var i in ap.current_ar)
  {
    if (i == "in_array") continue;

    setCookie('tmp_artpoints['+i+']', ap.current_ar[i], date);
  }

  setCookie('ap_uzed', ap_uzed, date);

  document.location.href = 'https://'+HTTP_HOST+'/cart/user_details/';
}

function hide_voucher_msg()
{
  voucher_msg.style.visibility = 'hidden';
}

function try_voucher()
{
  var code = voucher_code.value;
  var currency = voucher_currency.value;
  var value = voucher_value.value;
  var date = voucher_date.value;

  if (code && currency && value && date)
  {
    var url = "/xml/try_voucher.php";
    var query = "code="+escape(code)+"&currency="+escape(currency)+"&value="+escape(value)+"&date="+escape(date);

    voucher_submit.disabled = true;

    diXMLRequest.post(url, query, try_voucher_response);
  }
  else
  {
  }
}

function try_voucher_response(xmlDoc)
{
  var car_ = [];
  car_["p"] = '&pound;';
  car_["d"] = '$';
  car_["e"] = '&euro;';

  var result_recs = xmlDoc.documentElement.getElementsByTagName("result");

  if (result_recs.length == 0) {alert('Error occured'); return;}

  var ok = result_recs[0].getAttribute("ok");
  var msg = result_recs[0].getAttribute("msg");
  var currency = result_recs[0].getAttribute("currency");
  var amount = parseInt(result_recs[0].getAttribute("amount"));
  var amount_pounds = parseInt(result_recs[0].getAttribute("amount_pounds"));

  if (ok && !isNaN(amount) && amount && !isNaN(amount_pounds) && amount_pounds)
  {
    voucher_discount = amount_pounds;
    voucher_orig_discount = amount;

    v_value.innerHTML = amount_pounds;
    v_currency.innerHTML = car_[currency];
    v_value_orig.innerHTML = amount;

    voucher_data.style.display = "none";
    voucher_info.style.display = "block";

    // total price
    var total_price = 0;
    for (var i in cart_item_price_ar)
    {
      if (i == "in_array") continue;

      var p = cart_item_price_ar[i].e.innerHTML.replace(",",".");
      p = parseFloat(p);
      total_price += p;
    }

    total_price *= 1 - (discount_discount + referral_discount) / 100;
    total_price -= voucher_discount;
    if (total_price < 0) total_price = 0;

    //page_cart_total_price.innerHTML = mysprintf(total_price, 2);
    page_cart_total_price.innerHTML = Math.round(total_price);
    //
  }
  else
  {
    voucher_submit.disabled = false;

    voucher_msg_text.innerHTML = msg;
    voucher_msg.style.visibility = 'visible';
  }

  renew_cart_cost();
}

/* discount */

function hide_discount_msg()
{
  discount_msg.style.visibility = 'hidden';
}

function try_discount()
{
  var code = discount_code.value;

  if (code)
  {
    var url = "/xml/try_discount.php";
    var query = "code="+escape(code);

    discount_submit.disabled = true;

    diXMLRequest.post(url, query, try_discount_response);
  }
  else
  {
  }
}

function try_discount_response(xmlDoc)
{
  var result_recs = xmlDoc.documentElement.getElementsByTagName("result");

  if (result_recs.length == 0) {alert('Error occured'); return;}

  var ok = result_recs[0].getAttribute("ok");
  var msg = result_recs[0].getAttribute("msg");
  var amount = parseInt(result_recs[0].getAttribute("amount"));

  if (ok && !isNaN(amount) && amount)
  {
    //alert('amount='+amount);
    //alert('zz= '+result_recs[0].getAttribute("zz"));

    discount_discount = amount;

    d_value2.innerHTML = discount_discount+'%';

    discount_data.style.display = "none";
    discount_info.style.display = "block";

    // total price
    var total_price = 0;
    for (var i in cart_item_price_ar)
    {
      if (i == "in_array") continue;

      var p = cart_item_price_ar[i].e.innerHTML.replace(",",".");
      p = parseFloat(p);
      total_price += p;
    }

//    d_value2.innerHTML =
    total_price *= 1 - (discount_discount + referral_discount) / 100;
    total_price -= voucher_discount;
    if (total_price < 0) total_price = 0;

    //page_cart_total_price.innerHTML = mysprintf(total_price, 2);
    page_cart_total_price.innerHTML = Math.round(total_price);
    //

    _ge("cart_total_price").innerHTML = Math.round(total_price);
  }
  else
  {
    discount_submit.disabled = false;

    discount_msg_text.innerHTML = msg;
    discount_msg.style.visibility = 'visible';
  }

  renew_cart_cost();
}
