
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 checkLoginForm(frm)
{
  var username = frm.elements['username'].value;
  var password = frm.elements['password'].value;
  var msg = '';

  if (username.length == 0)
  {
    msg += '- Please enter correct account。' + '\n';
  }

  if (password.length == 0)
  {
    msg += '- Please enter correct password。' + '\n';
  }

  if (msg.length > 0)
  {
    alert(msg);
    return false;
  }
  else
  {
    return true;
  }
}

/* *
 * 更新購物車數量
 */
function changeCart(rec_id, obj)
{
	if (parseInt(rec_id) <= 0 || parseInt(obj.value) <= 0)
	{
		alert('訂購數量不可小於 0');
		return;
	}	
  new Ajax.Request('flow.php?step=update_cart', {
                   method: 'get',
                   parameters: 'rec_id=' + parseInt(rec_id) + '&goods_number=' + parseInt(obj.value),
									 onLoading: showLoader,
                   onComplete: hideLoader,
                   onSuccess: updateCartResponse});
}

/* *
 * 更新購物車數量
 */
function dropCart(rec_id)
{
	if (confirm('Are you sure to delete selected product in inquiry list？') && parseInt(rec_id) > 0)
	{
			new Ajax.Request('flow.php?step=drop_goods', {
											 method: 'get',
											 parameters: 'rec_id=' + parseInt(rec_id),
											 onLoading: showLoader,
											 onComplete: hideLoader,
											 onSuccess: updateCartResponse});		
	}
}

/* *
 * 更新購物車數回調函數
 */
function updateCartResponse(res)
{
	var res = res.responseText;
	if (!res.isJSON())
		alert(res);
	else
	{
		// 用 evalJSON()方法把服務端傳過來的字符串轉化成JSON數據對象。
		res = res.evalJSON(true);
		if (res.error)
		{
			alert(res.error);
		}
		else
		{
			try
			{
				var layer = $('GRS_CART');
				layer.innerHTML = (typeof res == "object") ? res.content : result;
			}
			catch (ex) { }		
		}		
	}
}

/* *
 * 改變配送方式
 */
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 ($('GRS_NEEDINSURE'))
	{
		if (obj.attributes['insure'].value + 0 == 0)
		{
			$('GRS_NEEDINSURE').checked = false;
			$('GRS_NEEDINSURE').disabled = true;
		}
		else
		{
			$('GRS_NEEDINSURE').checked = false;
			$('GRS_NEEDINSURE').disabled = false;
		}
	}
  var now = new Date();

  new Ajax.Request('flow.php?step=select_shipping', {
                   method: 'get',
                   parameters: 'shipping=' + obj.value,
									 onLoading: showLoader,
                   onComplete: hideLoader,									 
                   onSuccess: orderShippingSelectedResponse});
}

/**
 *
 */
function orderShippingSelectedResponse(result)
{
	res = res.responseText;
	if (!res.isJSON())
		alert(res);
	else
	{
		// 用 evalJSON()方法把服務端傳過來的字符串轉化成JSON數據對象。
		res = res.evalJSON(true);
		if (res.need_insure)
		{
			try
			{
				$('GRS_NEEDINSURE').checked = true;
			}
			catch (ex)
			{
				alert(ex.message);
			}
		}
	
		try
		{
			if ($('GRS_CODFEE') != undefined)
			{
				$('GRS_CODFEE').innerHTML = res.cod_fee;
			}
		}
		catch (ex)
		{
			alert(ex.message);
		}		
	}

  orderSelectedResponse(result);
}

/* *
 * 改變支付方式
 */
function selectPayment(obj)
{
  if (selectedPayment == obj)
  {
    return;
  }
  else
  {
    selectedPayment = obj;
  }
  new Ajax.Request('flow.php?step=select_payment', {
                   method: 'get',
                   parameters: 'payment=' + obj.value,
									 onLoading: showLoader,
                   onComplete: hideLoader,
                   onSuccess: orderSelectedResponse});
}

/* *
 * 選定了配送保價
 */
function selectInsure(needInsure)
{
  needInsure = needInsure ? 1 : 0;

  new Ajax.Request('flow.php?step=select_insure', {
                   method: 'get',
                   parameters: 'insure=' + needInsure,
									 onLoading: showLoader,
                   onComplete: hideLoader,									 
                   onSuccess: orderSelectedResponse});
}

/* *
 * 回調函數
 */
function orderSelectedResponse(res)
{
	res = res.responseText;
	if (!res.isJSON())
		alert(res);
	else
	{
		// 用 evalJSON()方法把服務端傳過來的字符串轉化成JSON數據對象。
		res = res.evalJSON(true);
		if (res.error)
		{
			alert(res.error);
			location.href = './';
		}
	
		try
		{
			var layer = $("GRS_ORDERTOTAL");
			layer.innerHTML = (typeof res == "object") ? res.content : res;
	
			if (res.payment != undefined)
			{
				var surplusObj = document.forms['theForm'].elements['surplus'];
				if (surplusObj != undefined)
				{
					surplusObj.disabled = res.pay_code == 'balance';
				}
			}
		}
		catch (ex) { }		
	}
}

function validateBonusResponse(result)
{
  alert(result);
}

/* *
 * 改變發票的方式
 */
function changeNeedInv()
{
	
  var obj        = $('GRS_NEEDINV');
	var formBuy    = document.forms['theForm'];
  var objPayee   = formBuy.elements['inv_payee'];
	var objNumber  = formBuy.elements['inv_number'];
	var objContent = formBuy.elements['inv_content'];
	var buttons    = $('theForm').getInputs('radio', 'inv_type');

  var needInv    = obj.checked ? 1 : 0;
  var invPayee   = obj.checked ? objPayee.value : '';
	var invNumber  = obj.checked ? objNumber.value : '';
	var invContent = obj.checked ? objContent.value : '';
	var invType = '';
	for (var radio in buttons)
	{
		if (buttons.hasOwnProperty(radio))
		{
			if (buttons[radio].checked)
			{
				invType = buttons[radio].value;
			}
			
			buttons[radio].disabled = ! obj.checked;
		}
	}

  objPayee.disabled = objNumber.disabled = objContent.disabled = ! obj.checked;

	new Ajax.Request('flow.php?step=change_needinv', {
                   method: 'get',
                   parameters: 'need_inv=' + needInv + '&inv_type=' + encodeURIComponent(invType) + '&inv_payee=' + encodeURIComponent(invPayee) + '&inv_content=' + encodeURIComponent(invContent) + '&inv_number=' + invNumber,
									 onLoading: showLoader,
                   onComplete: hideLoader,
                   onSuccess: orderSelectedResponse});
}

/* *
 * 檢查提交的訂單表單
 */
function checkOrderForm(frm)
{
  var msg = new Array();
  var err = false;
  return !err;
}

/* *
 * 檢查收貨地址信息表單中填寫的內容
 */
function checkConsignee(frm)
{
  var msg = new Array();
  var err = false;

  if (frm.elements['country'] && frm.elements['country'].value == 0)
  {
    msg.push('Please choose receiver’s country！');
    err = true;
  }
	
  if (frm.elements['consignee'].value.empty())
  {
    err = true;
    msg.push('收貨人姓名不能為空！');
  }

  if (frm.elements['email'].value.empty())
  {
    msg.push('Email！');
  }
  else
  {
    REstr = /([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/;
    if (!REstr.test(frm.elements['email'].value))
    {
        err = true;
        msg.push('您輸入的電子郵件信箱不是一個合法的電子郵件信箱。');
    }
  }

  if (frm.elements['address'] && frm.elements['address'].value.empty())
  {
    err = true;
    msg.push('收貨人的詳細地址不能為空！');
  }

  REstr = /^[\d|\.|,]+$/;

  if (frm.elements['zipcode'] && frm.elements['zipcode'].value.length > 0 && (!REstr.test(frm.elements['zipcode'].value)))
  {
    err = true;
    msg.push('郵政編碼只能填寫數字');
  }

  REstr = /^[\d|\-|\s|\_]+$/;
  if (frm.elements['tel'].value.empty())
  {
    err = true;
    msg.push('電話不能為空！');
  }
  else
  {
    if (!REstr.test(frm.elements['tel'].value))
    {
      err = true;
      msg.push('Phone number is not a valid number');
    }
  }

  if (frm.elements['mobile'] && frm.elements['mobile'].value.length > 0 && (!REstr.test(frm.elements['mobile'].value)))
  {
    err = true;
    msg.push('Cell Phone number is not a valid number');
  }

  if (err)
  {
    message = msg.join("\n");
    alert(message);
  }
  return !err;
}
