

var selectedShipping = null;
var selectedPayment  = null;
var selectedPack     = null;
var selectedCard     = null;
var selectedSurplus  = '';
var selectedBonus    = 0;
var selectedIntegral = 0;
var selectedOOS      = null;
var alertedSurplus   = false;

var groupBuyShipping = null;
var groupBuyPayment  = null;


/**
 * 改變商品數量
 */
function setCartNumber(obj, recId)
{
		var goodsNumber = obj.options[obj.selectedIndex].value;
		Ajax.call('flow.php?step=update_cart', 'rec_id=' + recId + "&goods_number=" + goodsNumber, changeNumberResponse, 'GET', 'JSON');
}

function dropGoods(recId)
{
		Ajax.call('flow.php?step=drop_goods', 'rec_id=' + recId , changeNumberResponse, 'GET', 'JSON');
}

/* *
 * 
 */
function changeNumberResponse(result)
{

  if (result.error > 0)
  {
    alert(result.message);
  }

	try
  {
    if (document.getElementById('GRS_ORDERCART') != undefined)
    {
      document.getElementById('GRS_ORDERCART').innerHTML = result.content;
    }
  }
  catch (ex)
  {
    alert(ex.message);
  }
}

function selectShipping(obj)
{
  if (selectedShipping == obj)
  {
    return;
  }
  else
  {
    selectedShipping = obj;
  }

  var supportCod = obj.attributes['supportCod'].value + 0;
  var theForm = obj.form;

  for (i = 0; i < theForm.elements.length; i ++ )
  {
    if (theForm.elements[i].name == 'payment' && theForm.elements[i].attributes['isCod'].value == '1')
    {
      if (supportCod == 0)
      {
        theForm.elements[i].checked = false;
        theForm.elements[i].disabled = true;
      }
      else
      {
        theForm.elements[i].disabled = false;
      }
    }
  }

  if (obj.attributes['insure'].value + 0 == 0)
  {
    document.getElementById('GRS_NEEDINSURE').checked = false;
    document.getElementById('GRS_NEEDINSURE').disabled = true;
  }
  else
  {
    document.getElementById('GRS_NEEDINSURE').checked = false;
    document.getElementById('GRS_NEEDINSURE').disabled = false;
  }

  var now = new Date();
  Ajax.call('flow.php?step=select_shipping', 'shipping=' + obj.value, orderShippingSelectedResponse, 'GET', 'JSON');
}

function orderShippingSelectedResponse(result)
{
  if (result.need_insure)
  {
    try
    {
      document.getElementById('GRS_NEEDINSURE').checked = true;
    }
    catch (ex)
    {
      alert(ex.message);
    }
  }

  try
  {
    if (document.getElementById('GRS_CODFEE') != undefined)
    {
      document.getElementById('GRS_CODFEE').innerHTML = result.cod_fee;
    }
  }
  catch (ex)
  {
    alert(ex.message);
  }

  orderSelectedResponse(result);
}

function selectPayment(obj)
{
  if (selectedPayment == obj)
  {
    return;
  }
  else
  {
    selectedPayment = obj;
  }

  Ajax.call('flow.php?step=select_payment', 'payment=' + obj.value, orderSelectedResponse, 'GET', 'JSON');
}

function handleGroupBuyShipping(obj)
{
  if (groupBuyShipping == obj)
  {
    return;
  }
  else
  {
    groupBuyShipping = obj;
  }

  var supportCod = obj.attributes['supportCod'].value + 0;
  var theForm = obj.form;

  for (i = 0; i < theForm.elements.length; i ++ )
  {
    if (theForm.elements[i].name == 'payment' && theForm.elements[i].attributes['isCod'].value == '1')
    {
      if (supportCod == 0)
      {
        theForm.elements[i].checked = false;
        theForm.elements[i].disabled = true;
      }
      else
      {
        theForm.elements[i].disabled = false;
      }
    }
  }

  if (obj.attributes['insure'].value + 0 == 0)
  {
    document.getElementById('GRS_NEEDINSURE').checked = false;
    document.getElementById('GRS_NEEDINSURE').disabled = true;
  }
  else
  {
    document.getElementById('GRS_NEEDINSURE').checked = false;
    document.getElementById('GRS_NEEDINSURE').disabled = false;
  }

  Ajax.call('group_buy.php?act=select_shipping', 'shipping=' + obj.value, orderSelectedResponse, 'GET');
}


function handleGroupBuyPayment(obj)
{
  if (groupBuyPayment == obj)
  {
    return;
  }
  else
  {
    groupBuyPayment = obj;
  }

  Ajax.call('group_buy.php?act=select_payment', 'payment=' + obj.value, orderSelectedResponse, 'GET');
}


function selectInsure(needInsure)
{
  needInsure = needInsure ? 1 : 0;

  Ajax.call('flow.php?step=select_insure', 'insure=' + needInsure, orderSelectedResponse, 'GET', 'JSON');
}


function handleGroupBuyInsure(needInsure)
{
  needInsure = needInsure ? 1 : 0;

  Ajax.call('group_buy.php?act=select_insure', 'insure=' + needInsure, orderSelectedResponse, 'GET', 'JSON');
}


function orderSelectedResponse(result)
{

  if (result.error)
  {
    alert(result.error);
    location.href = './';
  }

  try
  {
    var layer = document.getElementById("GRS_ORDERTOTAL");

    layer.innerHTML = (typeof result == "object") ? result.content : result;
    
    if (result.payment != undefined)
    {
      var surplusObj = document.forms['theForm'].elements['surplus'];
      if (surplusObj != undefined)
      {
        surplusObj.disabled = result.pay_code == 'balance';
      }
    }
  }
  catch (ex) { }
}

function changeSurplus(val)
{
  if (selectedSurplus == val)
  {
    return;
  }
  else
  {
    selectedSurplus = val;
  }

  Ajax.call('flow.php?step=change_surplus', 'surplus=' + val, changeSurplusResponse, 'GET', 'JSON');
}

function changeSurplusResponse(obj)
{
  if (obj.error)
  {
    try
    {
      document.getElementById("GRS_SURPLUS_NOTICE").innerHTML = obj.error;
      document.getElementById('GRS_SURPLUS').value = '0';
      document.getElementById('GRS_SURPLUS').focus();
    }
    catch (ex) { }
  }
  else
  {
    try
    {
      document.getElementById("GRS_SURPLUS_NOTICE").innerHTML = '';
    }
    catch (ex) { }
    orderSelectedResponse(obj.content);
  }
}

function changeIntegral(val)
{
  if (selectedIntegral == val)
  {
    return;
  }
  else
  {
    selectedIntegral = val;
  }

  Ajax.call('flow.php?step=change_integral', 'points=' + val, changeIntegralResponse, 'GET', 'JSON');
}

function changeIntegralResponse(obj)
{
  if (obj.error)
  {
    try
    {
      document.getElementById('GRS_INTEGRAL_NOTICE').innerHTML = obj.error;
      document.getElementById('GRS_INTEGRAL').value = '0';
      document.getElementById('GRS_INTEGRAL').focus();
    }
    catch (ex) { }
  }
  else
  {
    try
    {
      document.getElementById('GRS_INTEGRAL_NOTICE').innerHTML = '';
    }
    catch (ex) { }
    orderSelectedResponse(obj.content);
  }
}

function changeNeedInv()
{
  var obj        = document.getElementById('GRS_NEEDINV');
  var objType    = document.getElementById('GRS_INVTYPE');
  var objPayee   = document.getElementById('GRS_INVPAYEE');
	var objNumber  = document.getElementById('GRS_INVNUMBER');
  var objContent = document.getElementById('GRS_INVCONTENT');
  var needInv    = obj.checked ? 1 : 0;
  var invType    = obj.checked ? (objType != undefined ? objType.value : '') : '';
  var invPayee   = obj.checked ? objPayee.value : '';
	var invNumber  = obj.checked ? objNumber.value : '';
  var invContent = obj.checked ? objContent.value : '';
  objType.disabled = objPayee.disabled = objNumber.disabled = objContent.disabled = ! obj.checked;

  Ajax.call('flow.php?step=change_needinv', 'need_inv=' + needInv + '&inv_type=' + invType + '&inv_payee=' + invPayee + '&inv_Number=' + invNumber + '&inv_content=' + invContent, orderSelectedResponse, 'GET');
}

function groupBuyChangeNeedInv()
{
  var obj        = document.getElementById('GRS_NEEDINV');
  var objPayee   = document.getElementById('GRS_INVPAYEE');
	var objNumber  = document.getElementById('GRS_INVNUMBER');
  var objContent = document.getElementById('GRS_INVCONTENT');
  var needInv    = obj.checked ? 1 : 0;
  var invPayee   = obj.checked ? objPayee.value : '';
	var invNumber  = obj.checked ? objNumber.value : '';
  var invContent = obj.checked ? objContent.value : '';
  objPayee.disabled = objNumber.disabled = objContent.disabled = ! obj.checked;

  Ajax.call('group_buy.php?act=change_needinv', 'need_idv=' + needInv + '&amp;payee=' + invPayee + '&amp;number=' + invNumber + '&amp;content=' + invContent, null, 'GET');
}


function changeOOS(obj)
{
  if (selectedOOS == obj)
  {
    return;
  }
  else
  {
    selectedOOS = obj;
  }

  Ajax.call('flow.php?step=change_oos', 'oos=' + obj.value, null, 'GET');
}

function checkOrderForm(frm)
{
  var paymentSelected = false;
  var shippingSelected = false;

  // 检查是否选择了支付配送方式
  for (i = 0; i < frm.elements.length; i ++ )
  {
    if (frm.elements[i].name == 'shipping' && frm.elements[i].checked)
    {
      shippingSelected = true;
    }

    if (frm.elements[i].name == 'payment' && frm.elements[i].checked)
    {
      paymentSelected = true;
    }
  }

  if ( ! shippingSelected)
  {
    alert(flow_no_shipping);
    return false;
  }

  if ( ! paymentSelected)
  {
    alert(flow_no_payment);
    return false;
  }

  // 检查用户输入的余额
  if (document.getElementById("GRS_SURPLUS"))
  {
    var surplus = document.getElementById("GRS_SURPLUS").value;
    var error   = Ajax.call('flow.php?step=check_surplus', 'surplus=' + surplus, null, 'GET', 'TEXT', false);

    if (error)
    {
      try
      {
        document.getElementById("GRS_SURPLUS_NOTICE").innerHTML = error;
      }
      catch (ex)
      {
      }
      return false;
    }
  }

  // 检查用户输入的积分
  if (document.getElementById("GRS_INTEGRAL"))
  {
    var integral = document.getElementById("GRS_INTEGRAL").value;
    var error    = Ajax.call('flow.php?step=check_integral', 'integral=' + integral, null, 'GET', 'TEXT', false);

    if (error)
    {
      return false;
      try
      {
        document.getElementById("GRS_INTEGRAL_NOTICE").innerHTML = error;
      }
      catch (ex)
      {
      }
    }
  }

  return true;
}


function checkConsignee(frm)
{
  var msg = new Array();
  var err = false;

  if (frm.elements['country'].value == 0)
  {
    msg.push(country_not_null);
    err = true;
  }

  if (frm.elements['province'].value == 0 && frm.elements['province'].length > 1)
  {
    err = true;
    msg.push(province_not_null);
  }

  if (frm.elements['city'].value == 0 && frm.elements['city'].length > 1)
  {
    err = true;
    msg.push(city_not_null);
  }

  if (frm.elements['district'].length > 1)
  {
    if (frm.elements['district'].value == 0)
    {
      err = true;
      msg.push(district_not_null);
    }
  }

  if (Utils.isEmpty(frm.elements['consignee'].value))
  {
    err = true;
    msg.push(consignee_not_null);
  }

  if ( ! Utils.isEmail(frm.elements['email'].value))
  {
    err = true;
    msg.push(invalid_email);
  }

  if (Utils.isEmpty(frm.elements['address'].value))
  {
    err = true;
    msg.push(address_not_null);
  }
	
	if (Utils.isEmpty(frm.elements['mobile'].value))
  {
    err = true;
    msg.push(mobile_not_null);
  }

  if (err)
  {
    message = msg.join("\n");
    alert(message);
  }
  return ! err;
}
