$j(document).ready(function() {
  
  /**
   * join free
   */
  var joinFreeBTN = $j('#joinFree');
  joinFreeBTN.click(function() {
    joinFreeBTN.attr('disabled', true);
    $j.ajax( {
      url : '/login/joinFree.do',
      data : {
        'adId' : $j('#adId').val()
      },
      type : 'post',
      beforeSend : function() {
      },
      dataType : 'json',
      success : function(response, status) {
        var resultCode = response.result;
        var resultMsg = response.msg;
        
        if (resultCode == 1) {
          popupAlertWithMsg("加入成功 !" + resultMsg);
        } else if (resultCode == -1) {
          if (resultMsg == 'applied') {
            popupAlertWithMsg("您已加入 !")
          } else if (resultMsg == 'login') {
            popupAlertWithMsg("還不去登入再來");
          } else if (resultMsg == 'auth') {
            popupAlertWithMsg("手機搞一搞再來");
          } else if (resultMsg == 'paramError') {
            popupAlertWithMsg("操作有問題!");
          } else if (resultMsg == 'wait') {
            popupAlertWithMsg("還沒開始唷!");
          } else if (resultMsg == 'close') {
            popupAlertWithMsg("活動已結束!");
          } else if (resultMsg == 'fullQuota') {
            popupAlertWithMsg("活動己額滿!");
          } else {
            popupAlertWithMsg("error");
          }
        } else {
          popupAlertWithMsg("error");
        }
        
        joinFreeBTN.removeAttr('disabled');
      },
      error : function(xtl) {
        popupAlertWithMsg("oh! no  error");
        joinFreeBTN.removeAttr('disabled');
      }
    });
  });    
});

// for join free page
function addToCartForFree(productId) {
  // send to cart
  var url = "/cart.do?tab=addOneProductToCart";
  var formId = "pickForm" + productId;
  var quantity = $j("form[name='" + formId + "'] input[name='quantity']");
  if (jQuery.trim(quantity.val()).length == 0) {
    quantity.val(1);
  }

  var params = $j('#' + formId).serialize();
  $j.ajax( {
        type : "post",
        url : url,
        data : params,
        dataType : 'html',
        success : function(responseText) {
          var result = responseText.split(',');
          if (result[0] == 'success') {
            var storeId = $j("form[name='insertDeliverForm'] input[name='storeId']").val();
            var freeId = $j("form[name='insertDeliverForm'] input[name='freeId']").val();
            updateSrcContent(storeId, freeId);
            changeProductStatus(productId);
          }
        },
        error : function(error) {
          alert(error);
        }
      }); // end ajax
}

function updateSrcContent(storeId, freeId) {
  var urlB = "/login/deliverPayment.do?tab=prepareDeliverPayment&storeId="
      + storeId + "&mode=update&freeId=" + freeId;
  $j('#cartSummary').load(urlB);
  alert(1);

}

function changeProductStatus(productId) {
  postAddToDeliverResponse(productId);
}

function deleteProductFromCart(cartId) {
  popupConfirm('delCart(' + cartId + ')', 'msg.deleteThisConfirm', 400, 100);
}

function delCart(cartId) {
  var url = '/cart.do?tab=deleteOneProductToCart&cartId=' + cartId;
  $j.get(url, function(data) {
        if (data.indexOf("success") != -1) {
          var storeId = $j("form[name='insertDeliverForm'] input[name='storeId']").val();
          var freeId = $j("form[name='insertDeliverForm'] input[name='freeId']").val();
          updateSrcContent(storeId, freeId);
        } else {
          alert('error');
        }
      });// end ajax
}

function changeQuantityForFree(cartId, quantityValue, errMsg) {
  var textId = "text" + cartId;
  var quantityId = "quantity" + cartId;
  var textObj = $(textId);
  textObj.innerHTML = '';
  var el = document.createElement('input');
  el.className = 'box_xs';
  el.type = 'text';
  el.value = quantityValue;
  el.onblur = function() {
    executeChangeForFree(this, cartId, errMsg);
  };
  el.onkeydown = function(event) {
    getEnterAndTriggerEvent(this, event);
  };
  textObj.appendChild(el);
  el.select();
}

function executeChangeForFree(obj, cartId, errMsg) {
  if (!isNumber(obj.value)) {
    obj.select();
  } else {
    var urlPath = '/login/deliverPayment.do?tab=changeCartQuantity&quantity='
        + obj.value + '&cartId=' + cartId;
    $j.get(urlPath, function() {
      var storeId = $j("form[name='insertDeliverForm'] input[name='storeId']").val();
      var freeId = $j("form[name='insertDeliverForm'] input[name='freeId']").val();
      updateSrcContent(storeId, freeId);
    });
  }
}

function insertFreeToDeliver(mode) {
  if (isLock) {
    return;
  } else {
    isLock = true;
  }
  var insertDeliverAlert = $('insertDeliverAlert');
  insertDeliverAlert.style.display = 'none';
  var alertStr = '';
  if (mode == 0) {// general case
    alertStr = checkInsertDeliver(document.insertDeliverForm, false);
  } else if (mode == 2) {
    alertStr = checkInsertDeliver(document.insertDeliverForm, true);
  }
  alertStr += check_store_restrict();
  if (alertStr.length > 0) {
    insertDeliverAlert.innerHTML = alertStr;
    insertDeliverAlert.style.display = '';
    scrollToEl(insertDeliverAlert);
    isLock = false;
  } else {
    if (mode == 11) {
      document.insertDeliverForm.action = document.insertDeliverForm.action
      + '&type=' + TYPE_FREE;
    }
    if ($('deliverId')) {
      var deliverId = $('deliverId').innerHTML;
      document.insertDeliverForm.action = document.insertDeliverForm.action
          + '&deliverId=' + deliverId;
    }
    if ($('eventId')) {
      var eventId = document.insertDeliverForm.eventId.value;
      document.insertDeliverForm.action = document.insertDeliverForm.action
          + '&eventId=' + eventId;
    }
    var phone = '';
    if (document.insertDeliverForm.phone.value.length > 0
        && document.insertDeliverForm.phone.value.split(',').length > 1) {
      // ingnore;
    } else {
      var phone = document.insertDeliverForm.mobile.value;
      if (document.insertDeliverForm.phone.value.length > 0) {
        phone += ', ' + document.insertDeliverForm.phone.value;
      }
      document.insertDeliverForm.phone.value = phone;
    }

    var address = document.insertDeliverForm.address.value;
    if (address.length > 0 && address.split(',').length > 1) {
      // ingnore;
    } else {
      if (document.insertDeliverForm.zip.value.length > 0) {
        address = document.insertDeliverForm.zip.value + ', ' + address;
        document.insertDeliverForm.address.value = address;
      }
    }
    var formname = "#insertDeliverForm";
    $j(formname).ajaxSubmit(function(responseText) {
      insertFreeToDeliverResponse(responseText);
    });
    if ($('insertEventDeliverDiv')) {
      $('insertDeliverDiv').style.display = 'none';
      $('insertDeliverLoadingDiv').innerHTML = loadingStr;
      $('insertDeliverLoadingDiv').style.display = '';
    } else {
      showPopup();
    }
  }
}

function insertFreeToDeliverResponse(responseText) {
  var resText = responseText.split(',');
  if(resText[0] == 'success'){
    if(resText[1] == 'update'){
      location.reload(true);
    } else {
      var task = 'window.location=\'/mails/'+resText[2]+'/no'+resText[3]+'\'';
      popupInfo(task, 'text.deliver', 550, 200);
    }
  } else if(resText[0] == 'emptyItem'){
    closePopup();
    var insertDeliverAlert = $('insertDeliverAlert');
    insertDeliverAlert.innerHTML = $('deliverItemMsg').innerHTML;
    insertDeliverAlert.style.display = '';
    scrollToEl(insertDeliverAlert); 
    
  } else if(resText[0] == 'wrongDate'){
    closePopup();
    var insertDeliverAlert = $('insertDeliverAlert');
    insertDeliverAlert.innerHTML = $('deliverDateMsg').innerHTML;
    insertDeliverAlert.style.display = '';
    scrollToEl(insertDeliverAlert);
  } else if(resText[0] == 'emptyInventory'){
    location.reload(true);
  } else if(resText[0] == 'wrongSerial'){
    closePopup();
    var insertDeliverAlert = $('insertDeliverAlert');
    insertDeliverAlert.innerHTML = $('wrongSerialMsg').innerHTML;
    insertDeliverAlert.style.display = '';
    scrollToEl(insertDeliverAlert); 
    
  } else if(resText[0] == 'useddSerial'){
    closePopup();
    var insertDeliverAlert = $('insertDeliverAlert');
    insertDeliverAlert.innerHTML = $('useddSerialMsg').innerHTML;
    insertDeliverAlert.style.display = '';
    scrollToEl(insertDeliverAlert); 
    
  } else if(resText[0] == 'dbError'){
    responseDbError();
  } else if(resText[0] == 'error'){
    responseError();
  }
  isLock = false;
}

function modifyFreeToDeliver (mode) {
  insertFreeToDeliver(mode);
}

/**
 * free list
 */
var isLockJoinForFree = false;
function confirmJoinForFree(id) {
  if (isLockJoinForFree) {
    return;
  }
  
  // check first
  $j.ajax({
    url : '/joinFree.do',
    data : {
      'adId' : id,
      'action' : 'check'
    },
    type : 'post',
    beforeSend : function() {
      isLockJoinForFree = true;
    },
    dataType : 'json',
    success : function(response, status) {
      isLockJoinForFree = false;
      var resultCode = response.result;
      var resultMsg = response.msg;
      if (resultCode == 1) {
        /*
        if (freeRestrictHidden == 1) {
          var methodName = 'joinForFree(' + id + ')';
          var dollar = $j('#spanStoreRestrictPrice').html();
          popupConfirm(methodName, 'text.free.join.restrict', '300', '150', dollar, id);
        } else {
          if ($j('#f_banner').val() == 'banner') {
            var ajaxUserInfoMsg1 = response.ajaxUserInfo1;
            var ajaxUserInfoMsg2 = response.ajaxUserInfo2;
            var ajaxUserInfoMsg3 = response.ajaxUserInfo3;
            $j('#spanAjaxUserInfo1').html(ajaxUserInfoMsg1);
            $j('#spanAjaxUserInfo2').html(ajaxUserInfoMsg2);
            $j('#spanAjaxUserInfo3').html(ajaxUserInfoMsg3);
            $j('#divAjaxUserInfo').fadeIn();
          }
          $j('#current' + id).text(resultMsg);
          var p_reload = $j('#p_reload').val();
          var urlForShowPopup = '/free/freeAlert.jsp?alertFlag=1&adId=' + id + '&storeId=' + $j('#storeText' + id).val() + '&p_reload=' + p_reload;
          showPopup(urlForShowPopup);
        }
        */
        var freeRestrictHidden = $j('#freeRestrictHidden' + id);
        if (freeRestrictHidden.val() == 1) {
          var dollarHTML = freeRestrictHidden.parent().find('span');
          var dollar = 0;
          dollarHTML.each(function(index) {
            if ($j(this).attr('id') == 'spanStoreRestrictPrice') {
              dollar = $j(this).html();
              return;
            }
          });
          if (dollar == 0) {
            joinForFree(id);
          } else {
            var methodName = 'joinForFree(' + id + ')';
            popupConfirm(methodName, 'text.free.join.restrict', '300', '150', dollar, id);
          }
        } else {
          joinForFree(id);
        }
      } else if (resultCode == -1) {
        if (resultMsg == 'applied') {
          popupAlertWithMsg("您已加入 !");
        } else if (resultMsg == 'login') {
          popupLogin();
          return false;
        } else if (resultMsg == 'auth') {
          var method = "authMobile('" + response.account + "')";
          popupConfirm(method, 'text.free.checkUserMobile', 400, 150);
        } else if (resultMsg == 'paramError') {
          popupAlertWithMsg("操作有問題!");
        } else if (resultMsg == 'wait') {
          popupAlertWithMsg("活動尚未開始!");
        } else if (resultMsg == 'close') {
          popupAlertWithMsg("活動已結束!");
        } else if (resultMsg == 'fullQuota') {
          popupAlertWithMsg("人數己額滿!");
        } else if (resultMsg == 'deliver') {
          var urlForShowPopup = '/free/freeAlert.jsp?alertFlag=2&deliverUrl='
              + encodeURIComponent(response.deliverUrl + '');
          showPopup(urlForShowPopup);
          return false;
        } else {
          popupAlertWithMsg("error");
        }
      } else {
        popupAlertWithMsg("error");
      }
    },
    error : function(xtl) {
      popupAlertWithMsg("oh! no error");
      isLockJoinForFree = false;
    }
  });
}

function joinFree(adId) {
	$j('#divJoinFree').hide();
	
	$j.ajax({
    url : '/joinFree.do',
    data : {
      'adId' : adId,
      'action' : 'join'
    },
    type : 'post',   
    dataType : 'json',
    success : function(response, status) {    
    	var msg = '';
      var resultCode = response.result;
      var resultMsg = response.msg;
      if (resultCode == 1) {
        if ($j('#f_banner').val() == 'banner') {
          var ajaxUserInfoMsg1 = response.ajaxUserInfo1;
          var ajaxUserInfoMsg2 = response.ajaxUserInfo2;
          var ajaxUserInfoMsg3 = response.ajaxUserInfo3;
          var userInfoSmallPic = response.userInfoSmallPic;
          $j('#spanAjaxUserInfo1').html(ajaxUserInfoMsg1);
          $j('#spanAjaxUserInfo2').html(ajaxUserInfoMsg2);
          $j('#spanAjaxUserInfo3').html(ajaxUserInfoMsg3);
          $j('#divAjaxUserInfo').fadeIn();
          $j('#divTempJoin').html(userInfoSmallPic);
          $j('#divTempJoin').fadeIn();
        }
        $j('#current' + adId).text(resultMsg);

//        var p_reload = $j('#p_reload').val();
//        var urlForShowPopup = '/free/freeAlert.jsp?alertFlag=1&adId=' + id
//            + '&storeId=' + $j('#storeText' + id).val() + '&p_reload='
//            + p_reload;
//        showPopup(urlForShowPopup);        
        msg = '成功參加免費索取 !';
      } else if (resultCode == -1) {
        if (resultMsg == 'applied') {
        	msg = '您已參加過此免費索取 !'
        } else if (resultMsg == 'login') {
        	msg = '參加失敗，請先登入ihergo後再按一次「讚」';
          popupLogin();          
        } else if (resultMsg == 'auth') {
          var method = "authMobile('" + response.account + "')";
          popupConfirm(method, 'text.free.checkUserMobile', 400, 150);
          msg = '請完成手機認證後再按一次「讚」';
        } else if (resultMsg == 'paramError') {
        	msg = '操作有問題!';
        } else if (resultMsg == 'wait') {
          msg = '活動尚未開始!';
        } else if (resultMsg == 'close') {
          msg = '活動已結束!';
        } else if (resultMsg == 'deliver') {
        	popupConfirm('window.location.href="/mails/' + $j('#userAccount').val() + '/deliver"', 
        			'msg.free.notCommented', 400, 120);
        	msg = '參加失敗';        
        } else {
          msg = 'error';
        }
      } else {
      	msg = 'error';
      }
      
      $j('#divJoinFree').html('<p>' + msg + '</p>');
      $j('#divJoinFree').show();
    },
    error : function(xtl) {
  	 $j('#divJoinFree').html('<p>' + msg + '</p>');
     $j('#divJoinFree').show();
    }
  });
}

function joinForFree(id) {
  $j.ajax({
    url : '/joinFree.do',
    data : {
      'adId' : id,
      'action' : 'join'
    },
    type : 'post',
    beforeSend : function() {
      isLockJoinForFree = true;
    },
    dataType : 'json',
    success : function(response, status) {
      isLockJoinForFree = false;
      var resultCode = response.result;
      var resultMsg = response.msg;
      if (resultCode == 1) {
        if ($j('#f_banner').val() == 'banner') {
          var ajaxUserInfoMsg1 = response.ajaxUserInfo1;
          var ajaxUserInfoMsg2 = response.ajaxUserInfo2;
          var ajaxUserInfoMsg3 = response.ajaxUserInfo3;
          var userInfoSmallPic = response.userInfoSmallPic;
          $j('#spanAjaxUserInfo1').html(ajaxUserInfoMsg1);
          $j('#spanAjaxUserInfo2').html(ajaxUserInfoMsg2);
          $j('#spanAjaxUserInfo3').html(ajaxUserInfoMsg3);
          $j('#divAjaxUserInfo').fadeIn();
          $j('#divTempJoin').html(userInfoSmallPic);
          $j('#divTempJoin').fadeIn();
        }
        $j('#current' + id).text(resultMsg);

        var p_reload = $j('#p_reload').val();
        var urlForShowPopup = '/free/freeAlert.jsp?alertFlag=1&adId=' + id
            + '&storeId=' + $j('#storeText' + id).val() + '&p_reload='
            + p_reload;
        showPopup(urlForShowPopup);
      } else if (resultCode == -1) {
        if (resultMsg == 'applied') {
          popupAlertWithMsg("您已加入 !");
        } else if (resultMsg == 'login') {
          popupLogin();
          return false;
        } else if (resultMsg == 'auth') {
          var method = "authMobile('" + response.account + "')";
          popupConfirm(method, 'text.free.checkUserMobile', 400, 150);
        } else if (resultMsg == 'paramError') {
          popupAlertWithMsg("操作有問題!");
        } else if (resultMsg == 'wait') {
          popupAlertWithMsg("活動尚未開始!");
        } else if (resultMsg == 'close') {
          popupAlertWithMsg("活動已結束!");
        } else if (resultMsg == 'fullQuota') {
          popupAlertWithMsg("人數己額滿!");
        } else if (resultMsg == 'deliver') {
          var urlForShowPopup = '/free/freeAlert.jsp?alertFlag=2&deliverUrl='
              + encodeURIComponent(response.deliverUrl + '');
          showPopup(urlForShowPopup);
          return false;
        } else {
          popupAlertWithMsg("error");
        }
      } else {
        popupAlertWithMsg("error");
      }
    },
    error : function(xtl) {
      popupAlertWithMsg("oh! no error");
      isLockJoinForFree = false;
    }
  });
} // end joinForFree(id);

function authMobile(account) {
  window.location = '/userManage/' + account + '/setAccount#UserMobile';
  return false;
}


// function flagClick(adId) {
function flagClick(storeId, adId) {
  var url = '/login/deleteWant.do';
  if ($j('#freeFans').attr('checked')) {
    url = '/login/insertWant.do';
  }
  $j.ajax({
    url : url,
    data : {
      // 'storeId' : $j('#storeText' + adId).val()
      'storeId' : storeId
    },
    type : 'post',
    dataType : 'html',
    success : function(response, status) {
      var action = $j('#p_reload').val();
      if (action == 1) {
        //location.reload(true);
        //return false;
        closePopup();
      } else if (action == 0) {
        closePopup();
      }
    },
    error : function(xtl) {
      popupAlertWithMsg("oh! no error");
    }
  });
}
