$(document).ready(function(){
var FEEDBACK_GENERAL_ERROR = "feedback-general-error";
var FEEDBACK_LOGIN_REQUIRED = "feedback-login-required";
var FEEDBACK_ADD_CART_SUCCESS = "feedback-add-cart-success";
var FEEDBACK_REMOVE_CART_SUCCESS = "feedback-remove-cart-success";
var FEEDBACK_UPDATE_CART_SUCCESS = "feedback-update-cart-success";
var FEEDBACK_ADD_WISHLIST_SUCCESS = "feedback-add-wishlist-success";
var FEEDBACK_REMOVE_WISHLIST_SUCCESS = "feedback-remove-wishlist-success";
var FEEDBACK_UPDATE_CART_QTY_SUCCESS = "feedback-update-cart-qty-success";
var FEEDBACK_MYCART_UPDATE_ERROR = "feedback-mycart-update-error";
var FEEDBACK_WISHLIST_UPDATE_ERROR = "feedback-wishlist-update-error";
var FEEDBACK_MYPURCHASE_CANCEL_ORDER_SUCCESS = "feedback-mypurchase-cancel-order-success";
var SHOW_LOADING_DELAY = 1000;
var $html = $("html");
var $body = $("body");
var $headerBar = $("#header-bar");
function ajaxPost(url, data, success, error){
ajaxSend("POST", url, data, success, error);
}
function ajaxGet (url, data, success, error){
ajaxSend("GET" , url, data, success, error);
}
function ajaxSend(method, url, data, success, error){
$.ajax({
type : method,
url : url,
data : data,
success : success,
dataType: "text"
}).fail(error);
}
function addHeaderCartCounter(value){
addHeaderCounter("mycart", value);
}
function updateHeaderCartCounter(value){
updateHeaderCounter("mycart", value);
}
function getHeaderCounter(key){
var $item = $headerBar.find(".header-bar-item-"+key);
var $num = $item.find(".header-bar-item-button-num");
if($num.length == 0){
return 0;
}
return parseInt($num.find(".header-bar-item-button-num-wrapper").text());
}
function addHeaderCounter(key, num){
var counter = getHeaderCounter(key);
updateHeaderCounter(key, counter + num);
}
function updateHeaderCounter(key, num){
var $item = $headerBar.find(".header-bar-item-"+key);
var $num = $item.find(".header-bar-item-button-num");
if(num == 0){
$num.remove();
}else{
if($num.length == 0){
$num = $("
");
var $wrapper = $("");
$wrapper.text(num);
$num.append($wrapper);
$item.find(".header-bar-item-button").append($num);
}else{
$num.find(".header-bar-item-button-num-wrapper").text(num);
}
}
}
function appendLoading($parent){
var spinner = $parent.data("spinner");
if(spinner == null){
var opt = {
color : "#e18078",
//color: "#ffffff",
zIndex: "auto"
//shadow: true
};
spinner = new Spinner(opt).spin();
$parent.data("spinner",spinner);
$parent.append($(spinner.el));
}else{
spinner.spin();
}
}
function removeLoading($parent){
var spinner = $parent.data("spinner");
if(spinner == null) return;
spinner.stop();
}
function isLogged(){
return $body.hasClass("logged");
}
function productAction(url, data, successFeedback, errorFeedback, successCallback, errorCallback){
function success(response){
if(response == "1"){
log("success");
hideModalLoading();
if(isBlank(successFeedback)){
if(successCallback != null){
successCallback(response);
}
}else{
feedback(successFeedback, function(){
if(successCallback != null){
successCallback(response);
}
});
}
}else{
error(response);
}
}
function error(response){
log("error");
log(response);
hideModalLoading();
if(isBlank(errorFeedback)){
if(errorCallback != null){
errorCallback(response);
}
}else{
feedback(errorFeedback, function(){
if(errorCallback != null){
errorCallback(response);
}
});
}
}
showModalLoading();
//return;
if(SHOW_LOADING_DELAY>0){
setTimeout(function(){
ajaxPost(url, data, success, error);
}, SHOW_LOADING_DELAY);
}else{
ajaxPost(url, data, success, error);
}
}
function myAjaxPost(url, data, success, error){
if(SHOW_LOADING_DELAY>0){
setTimeout(function(){
ajaxPost(url, data, success, error);
}, SHOW_LOADING_DELAY);
}else{
ajaxPost(url, data, success, error);
}
}
// call from product
function removeProductFromWishlistByProductId(product_id, successCallback, errorCallback){
log("removeProductFromWishlist");
var url = "xml/removeProductFromWishlist.php";
var data = {product_id:product_id};
productAction(url, data, "", "", successCallback, errorCallback);
}
function removeProductFromWishlistById(id, successCallback, errorCallback){
log("removeProductFromWishlist");
var url = "xml/removeProductFromWishlist.php";
var data = {id:id};
productAction(url, data, "", "", successCallback, errorCallback);
}
function addProductToWishlistByProductId(product_id, successCallback, errorCallback){
log("addProductToWishlist");
var url = "xml/addProductToWishlist.php";
var data = {product_id:product_id};
productAction(url, data, "", FEEDBACK_GENERAL_ERROR, successCallback, errorCallback);
}
function addProductToCart(productID, colorID, sizeID, successCallback, errorCallback){
log("addProductToCart");
var url = "xml/addProductToCart.php";
var data = {id:productID, color:colorID, size:sizeID};
productAction(url, data, "", FEEDBACK_GENERAL_ERROR, successCallback, errorCallback);
}
function updateCart(cartItemID, productID, colorID, sizeID, qty,successCallback, errorCallback){
log("updateCart");
var url = "xml/updateProductToCart.php";
var data = {id:productID, cart_id:cartItemID, color:colorID, size:sizeID, qty:qty};
productAction(url, data, "", FEEDBACK_GENERAL_ERROR, successCallback, errorCallback);
}
// call from mycart
function removeProductFromCart(cartItemID, successCallback, errorCallback){
log("removeProductFromCart");
var url = "xml/removeProductFromCart.php";
var data = {cart_id:cartItemID};
productAction(url, data, "", "", successCallback, errorCallback);
}
function updateCartQty(cartItemID, qty, successCallback, errorCallback){
log("updateCartQty");
var url = "xml/updateCartQty.php";
var data = {cart_id:cartItemID, qty:qty};
productAction(url, data, "", "", successCallback, errorCallback);
}
function getMemberDiscount(amount, success, error){
var url = "xml/getMemberDiscount.php";
var data = {amount:amount};
if(SHOW_LOADING_DELAY > 0){
setTimeout(function(){
ajaxPost(url, data, success, error);
}, SHOW_LOADING_DELAY);
}else{
ajaxPost(url, data, success, error);
}
}
function showModalLoading(){
var $loading = $("");
var options = {
noClose : true,
noPadding : true,
noBoxShadow : true,
noBackground: true
};
overlay($loading);
appendLoading($loading);
/*
var $loading = $("");
var options = {noClose:true, noPadding:true};
lightbox($loading, options);
*/
}
function hideModalLoading(){
removeLoading($("#modal-loading"));
unmodal();
}
function modal(){
var $modal = $("");
$body.append($modal).addClass("modal");
return $modal;
/*
var $clickable = $("");
$modal.append($clickable).append($stuff);
$body.append($modal).addClass("modal");
if(click != null){
$clickable.click(click);
} */
}
function unmodal(callback){
$("#modal").remove();
$body.removeClass("modal");
if(callback != null){
callback();
}
}
function overlay($panel){
lightbox($panel, false, false, false);
}
function lightboxFrame($panel, afterClosed){
lightbox($panel, false, false, true, afterClosed);
}
function lightboxWindow($panel, afterClosed){
lightbox($panel, true, true, true, afterClosed);
}
function lightboxMessageNoClose($panel){
lightbox($panel, true, false, false);
}
function lightboxMessage($panel, afterClosed){
lightbox($panel, true, false, true, afterClosed);
}
function lightbox($panel, withStyle, withPadding, withClose, afterClosed){
function onClose(){
lightbox_close(afterClosed);
}
var $modal = modal();
var $table = $("");
$table.hide();
var $cell = $("");
var $win = $("");
$win.append($panel);
if(withStyle == true){
$win.addClass("lightbox-window-with-style");
}
if(withPadding == true){
$win.addClass("lightbox-window-with-padding");
}
$cell.append($win);
$table.append($cell);
$modal.append($table);
//
if(withClose == true){
var $close = get_lightbox_close_button();
$close.click(onClose);
if(withPadding == true){
$win.addClass("lightbox-window-with-close-button");
}
$win.append($close);
var $clickable1 = $("");
var $clickable2 = $("");
$clickable1.click(onClose);
$clickable2.click(onClose);
$modal.prepend($clickable1);
$cell.prepend($clickable2);
}
//
$table.fadeIn();
}
/*
function lightbox($panel, options, afterClosed){
function onClose(){
lightbox_close(afterClosed);
}
var $modal = modal();
var $table = $("");
$table.hide();
var $cell = $("");
var $win = $("");
$win.append($panel);
if(options){
if(options.noPadding){
$win.addClass("lightbox-window-no-padding");
}
if(options.noBoxShadow){
$win.addClass("lightbox-window-no-box-shadow");
}
if(options.noBackground){
$win.addClass("lightbox-window-no-background");
}
}
if(options && options.noClose){
}else{
var $close = get_lightbox_close_button();
$close.click(onClose);
$win.addClass("lightbox-window-with-close-button").append($close);
var $clickable1 = $("");
var $clickable2 = $("");
$clickable1.click(onClose);
$clickable2.click(onClose);
$modal.append($clickable1);
$cell.append($clickable2);
}
$cell.append($win);
$table.append($cell);
$modal.append($table);
$table.fadeIn();
}*/
function get_lightbox_close_button(){
return $("");
}
function lightbox_close(callback){
var $modal = $("#modal");
if($modal.length == 0) {
if(callback != null){
callback();
}
return;
}
$modal.find(".lightbox-table").fadeOut("fast", function(){
unmodal(callback);
});
}
function getFeedbackMessagePanel(text){
var $wrapper = $("");
var $div = $("");
$wrapper.append($div);
$div.text(text);
return $wrapper;
}
function getFeedbackMessage(key){
return $("#"+key).text();
}
function feedback(key, afterClosed){
feedbackMessage(getFeedbackMessage(key), afterClosed);
}
function feedbackMessage(text, afterClosed){
//var $wrapper = $("");
//var $div = $("");
//$wrapper.append($div);
//$div.text(text);
lightboxMessage(getFeedbackMessagePanel(text), afterClosed);
}
function requireLogin(){
var text = $("#"+FEEDBACK_LOGIN_REQUIRED).text();
var $wrapper = $("");
var $div = $("");
$wrapper.append($div);
$div.text(text);
var $button = $("");
$button.text("login");
$div.append($button);
lightboxMessage($wrapper);
}
function isCanvasSupported(){
var elem = document.createElement('canvas');
return !!(elem.getContext && elem.getContext('2d'));
}function initForm(){
log("initForm()");
function initCommonForm(){
var $form = $("form.common-form");
if($form.length == 0) return;
log("initCommonForm()");
var $submit = $form.find(".form-input-submit");
//
function onsubmit(){
log("onsubmit()");
$form[0].submit();
}
//
if($submit.is("input[type='submit']")){
$form.bind("submit", function(e){
e.preventDefault();
if($submit.hasClass("common-button-disabled")) return;
onsubmit();
});
}else{
$submit.click(function(){
if($submit.hasClass("common-button-disabled")) return;
onsubmit();
});
}
$form.bind("submit", function(e){
e.preventDefault();
if($submit.hasClass("common-button-disabled")) return;
onsubmit()
});
/*
$submit.click(function(){
if($(this).hasClass("common-button-disabled")) return;
onsubmit();
});*/
SimpleForm_initForm($form, $submit);
}
/*
function isInputText($input){
return $input.hasClass("form-input-text");
}
function isInputTextarea($input){
return $input.hasClass("form-input-textarea");
}
function isInputSelect($input){
return $input.hasClass("form-input-select");
}
function isInputEmail($input){
return $input.hasClass("form-input-email");
}
function isInputPassword($input){
return $input.hasClass("form-input-password");
}
function isInputConfirmPassword($input){
return $input.hasClass("form-input-confirm-password");
}
function initCommonForm(){
//
function submitForm($form){
//alert("submit");
log(".submit()");
$form[0].submit();
}
function validateElement($element){
clearElementError($element);
var $input = $element.find(".form-input");
var skip_validate = ($input.attr("data-validate")=="false");
//
function validateRequired(){
//$element.removeClass("form-element-validate-error-required");
if(!$element.hasClass("form-element-required")) return true;
if(isInputText($input) || isInputTextarea($input) || isInputEmail($input) || isInputPassword($input) || isInputConfirmPassword($input)){
return !isBlank($input.val());
}else if(isInputSelect($input)){
return ($input[0].selectedIndex != 0);
}
return false;
}
function isValidPassword(password){
var regExp = new RegExp(/^.{6,8}$/);
return regExp.test(password);
}
function validateEmail(){
//$element.removeClass("form-element-validate-error-email");
if(!isInputEmail($input)) return true;
return isValidEmail($input.val());
}
function validatePassword(){
if( (!isInputPassword($input)) && (!isInputConfirmPassword($input)) ) return true;
//if(!isInputPassword($input)) return true;
return isValidPassword($input.val());
}
function validateConfirmPassword(){
if(!isInputConfirmPassword($input)) return true;
var password = $input.closest("form").find(".form-input-password").val();
var confpswd = $input.val();
return (password==confpswd);
}
//
//log("validateElement " + $input.attr("name"));
if(!validateRequired()) {
if(!skip_validate){
addElementValidateError($element, "required");
}
return false;
}
//
if(skip_validate) return true;
//
if(!validateEmail()){
addElementValidateError($element, "email");
return false;
}
if(!validatePassword()){
addElementValidateError($element, "password");
return false;
}
if(!validateConfirmPassword()){
addElementValidateError($element, "confirm-password");
return false;
}
//
return true;
}
function validateForm($form){//return true;
var result = true;
$form.find(".form-element").each(function(){
if(!validateElement($(this))){
result = false;
}
});
return result;
}
function addElementValidateError($element, error){
$element.addClass("form-element-error");
var errorClass = "form-element-validate-error-" + error;
var errorData = $element.data("validateError");
if(errorData == null){
errorData = [];
}
errorData.push(errorClass);
$element.data("validateError", errorData);
$element.addClass(errorClass);
}
function clearElementError($element){
$element.removeClass("form-element-error");
var errorData = $element.data("validateError");
if(errorData == null) return;
for(var i=0;i");
//$image.append($div);
appendLoading($image);
$image.attr("data-status", "loading");
var $img = $image.find(".product-detail-image-img");
var src = $img.attr("data-src");
$img.load(function(){
$img.unbind("load");
log(src + " loaded");
removeLoading($image);
$image.attr("data-status", "show");
//$div.remove();
$img.fadeIn("fast", function(){
$image.find(".product-detail-image-tn").remove()
});
});
//return;
setTimeout(function(){
$img.attr("src",src);
}, SHOW_LOADING_DELAY);
log(src + " loading");
//$img.attr("src",src);
}
//
if(status == ""){
do_load();
}
}
function init_more_photos(){
var $wrapper = $main.find(".product-detail-more-photos-wrapper");
if($wrapper.length == 0) return;
var $prev = $wrapper.find(".product-detail-image-prev-button");
var $next = $wrapper.find(".product-detail-image-next-button");
var $imageViewer = $main.find(".product-detail-image-viewer");
var $thumbnails = $main.find(".product-detail-thumbnail");
var dur = 400;
var easing = "easeOutQuad";
function update_nav($set, index){
var $p = $set.find(".product-detail-image-prev-button");
var $n = $set.find(".product-detail-image-next-button");
if(index > 0){
$p.addClass("product-detail-image-nav-button-active");
}else{
$p.removeClass("product-detail-image-nav-button-active");
}
var count = parseInt($set.attr("data-count"));
if(index == (count-1)){
$n.removeClass("product-detail-image-nav-button-active");
}else{
$n.addClass("product-detail-image-nav-button-active");
}
$set.find(".product-detail-image-count-value").text(index+1);
}
function nav($set, dir){
var index = parseInt($set.attr("data-index"));
index = index + dir;
$set.attr("data-index", index);
// viewer
var $viewer = $viewers.eq($sets.index($set));
var left = -400 * index;
$viewer.animate({left:left}, dur, easing);
// nav
var $tn_wrapper = $set.find(".product-detail-thumbnails-wrapper");
var tn_left = -120 * (index+1);
$tn_wrapper.animate({left:tn_left}, dur, easing);
//
load_image($viewer, index)
update_nav($set, index);
}
function prev($set){
nav($set, -1);
}
function next($set){
nav($set, 1);
}
$prev.click(function(){
var $this = $(this);
if(!$this.hasClass("product-detail-image-nav-button-active")) return;
prev($this.closest(".product-detail-more-photos-set"));
});
$next.click(function(){
var $this = $(this);
if(!$this.hasClass("product-detail-image-nav-button-active")) return;
next($this.closest(".product-detail-more-photos-set"));
});
$thumbnails.click(function(){
var $this = $(this);
var $set = $this.closest(".product-detail-more-photos-set");
var current = parseInt($set.attr("data-index"));
var index = $set.find(".product-detail-thumbnail").index($this);
nav($set, index - current);
});
}
function selection_change(){
//log("selection_change");
$detail.trigger(CHANGE);
//$info.trigger(CHANGE);
}
function on_change(){
log("on_change");
update_action_button();
change_detail_main();
}
function get_size_value(){
return $info.find(".product-detail-size-select").val();
}
function get_size_label(){
return $info.find(".product-detail-size-select option:selected").text();
}
function get_color_index(){
return $grids.index($grids.filter(".product-detail-color-grid-selected"));
}
function get_color_value(){
return $info.find(".product-detail-color-grid-selected").attr("data-id");
}
function get_qty_value(){
var $select = $(".product-detail-quantity-select");
if($select.length == 0) return "1";
return $select.val();
}
function get_qty_label(){
var $select = $(".product-detail-quantity-select");
if($select.length == 0) return "1";
return $select.find("option:selected").text();
}
function update_action_button(){
if($action_buttons.hasClass("product-detail-action-button-unavailable")){
return;
}
var color_selected = ($info.find(".product-detail-color-grid-selected").length==1);
var size_selected = (get_size_value()!="");
if(color_selected && size_selected){
$action_buttons.addClass("product-detail-action-button-ready");
$update_button.removeClass("common-button-disabled");
}else{
$action_buttons.removeClass("product-detail-action-button-ready");
$update_button.addClass("common-button-disabled");
}
/*
var add_button_exist = ($add_button.length==1);
if(color_selected && size_selected && add_button_exist){
$add_button.addClass("product-detail-action-button-add-ready");
}else{
$add_button.removeClass("product-detail-action-button-add-ready");
}*/
}
function init_size(){
$info.find(".product-detail-size-select").bind("change", selection_change);
}
function get_feedback_panel(type){
var button_title = "";
var button_href = "";
var header = "";
if(type=="add-cart"){
header = "已加至購物車 Item is added to cart";
button_title = "查看購物車view cart / 結算checkout";
button_href = $detail.attr("data-mycart");
}else if(type=="add-wishlist"){
header = "已加至心商單清單Item is added to wish list";
button_title = "查看心水商品清單 view wish list";
button_href = $detail.attr("data-wishlist");
}else if(type=="update-cart"){
header = "購物車已更新 Cart is updated";
button_title = "返回購物車 Back to cart";
button_href = $detail.attr("data-mycart");
}
var $panel = $("");
var $header = $("");
$header.text(header);
var $content = $("");
//
var $img = $("
");
var src = $viewers.filter(":visible").attr("data-theme-tn");
$img.attr("src", src);
var $img_cell = $("");
$img_cell.append($img);
//
var $info_wrapper = $("");
var $info_block = $("");
//
var $fb_title = $("");
$fb_title.text($info.find(".product-detail-title").text())
$info_block.append($fb_title);
//
var heels = $info.find(".product-detail-heels").text();
if(!isBlank(heels)){
var $fb_heels = $("");
$fb_heels.text(heels);
$info_block.append($fb_heels);
}
//
if((type=="add-cart") || (type=="update-cart")){
var $fb_color = $("");
var $color_title = $("");
$color_title.text($info.find(".product-detail-color-title-selected").text());
var $color_grid = $("");
$color_grid.append($info.find(".product-detail-color-grid-selected").clone());
$fb_color.append($color_title).append($color_grid);
//
//$fb_color.text($info.find(".product-detail-info-header-color").text()+": " + $info.find(".product-detail-color-title-selected").text());
//
$info_block.append($fb_color);
//
var $fb_size = $("");
$fb_size.text($info.find(".product-detail-info-header-size").text()+": " + get_size_label());
$info_block.append($fb_size);
//
if(type=="update-cart"){
var $fb_qty = $("");
$fb_qty.text($info.find(".product-detail-info-header-quantity").text()+": " + get_qty_label());
$info_block.append($fb_qty);
}
//
var $fb_selling = $("");
$fb_selling.html($info.find(".product-detail-info-header-price").text()+": " + $info.find(".product-detail-selling").text()) + "";
$info_block.append($fb_selling);
}
//
var $button = $("");
$button.text(button_title);
$button.attr("href", button_href);
//
$info_wrapper.append($info_block);
$content.append($img_cell);
$content.append($info_wrapper);
$panel.append($header);
$panel.append($content);
$panel.append($button);
return $panel;
}
function init_action(){
function add_to_cart(){
function success(response){
log("add_to_cart success");
var $panel = get_feedback_panel("add-cart");
lightboxMessage($panel);
addHeaderCartCounter(1);
}
function error(response){
log("add_to_cart error");
log(response);
}
addProductToCart(pid, get_color_value(), get_size_value(), success, error);
}
//
$add_button.click(function(){
if(!$add_button.hasClass("product-detail-action-button-ready")) return;
add_to_cart();
});
//$update_button.click(function(){
// if(!$update_button.hasClass("product-detail-action-button-ready")) return;
// update_cart();
//});
update_action_button();
}
function init_enlarge(){
function enlarge(){
function close(){
lightbox_close();
}
var index = parseInt($main.find(".product-detail-more-photos-set").filter(":visible").attr("data-index"));
var $wrapper = $("");
$wrapper.attr("data-index", index);
var $imgs = $viewers.filter(":visible").find(".product-detail-image-img");
var img_w;
$imgs.each(function(i){
var src = $(this).attr("data-src");
var $img = $("
");
if(i == index){
$img.attr("src", src);
$img.addClass("product-detail-enlarge-img-visible");
}else{
$img.attr("data-src", src);
}
var $img_wrapper = $("");
$img_wrapper.append($img);
$wrapper.append($img_wrapper);
});
var $lightbox = $("");
var $window = $("");
$window.append($wrapper);
if($imgs.length>1){
var $prev = $("");
var $next = $("");
$lightbox.append($prev).append($next);
if(index > 0){
$prev.addClass("product-detail-enlarge-nav-button-active");
}
if(index != ($imgs.length-1)){
$next.addClass("product-detail-enlarge-nav-button-active");
}
function load_img(index){
var $img = $enlarges.eq(index);
if($img.hasClass("product-detail-enlarge-img-visible")) return;
//var $loading = $("");
//$img.closest(".product-detail-enlarge-img-wrapper").append($loading);
var $loadingParent = $img.closest(".product-detail-enlarge-img-wrapper");
appendLoading($loadingParent);
$img.load(function(){
log(src + " loaded");
//$loading.remove();
removeLoading($loadingParent);
$img.addClass("product-detail-enlarge-img-visible");
$img.hide();
$img.fadeIn();
});
//return;
var src = $img.attr("data-src");
setTimeout(function(){
$img.attr("src",src);
}, SHOW_LOADING_DELAY);
log(src + " loading");
// $img.attr("src",src);
}
function nav_enlarge(dir){
var dur = 500;
var easing = "easeOutQuad";
var index = parseInt($wrapper.attr("data-index"));
index = index + dir;
$wrapper.attr("data-index", index);
var left = index * img_w * (-1);
load_img(index);
$wrapper.animate({left:left}, dur, easing);
if(index > 0){
$prev.addClass("product-detail-enlarge-nav-button-active");
}else{
$prev.removeClass("product-detail-enlarge-nav-button-active");
}
if(index != ($imgs.length-1)){
$next.addClass("product-detail-enlarge-nav-button-active");
}else{
$next.removeClass("product-detail-enlarge-nav-button-active");
}
}
function prev_enlarge(){
nav_enlarge(-1);
}
function next_enlarge(){
nav_enlarge(1);
}
$prev.click(function(){
if(!$(this).hasClass("product-detail-enlarge-nav-button-active")) return;
prev_enlarge();
});
$next.click(function(){
if(!$(this).hasClass("product-detail-enlarge-nav-button-active")) return;
next_enlarge();
});
}
$lightbox.append($window);
lightboxFrame($lightbox);
//lightbox($lightbox, {noPadding:true, noBoxShadow:true});
/*
$lightbox.append($window);
var $close = get_lightbox_close_button();
$close.click(close);
$lightbox.append($close);
lightbox($lightbox, close);
*/
// in DOM, size ready
var $enlarges = $wrapper.find(".product-detail-enlarge-img");
img_w = $enlarges.width();
var left = index * img_w * (-1);
$wrapper.css({left:left});
}
$main.find(".product-detail-images-wrapper, .product-detail-enlarge-button").click(enlarge);
}
function init_more_products(){
var $prev = $main.find(".product-detail-more-products-prev-button");
var $next = $main.find(".product-detail-more-products-next-button");
if($prev.length==0)return;
log("init_more_products");
var dur = 400;
var easing = "easeOutQuad";
var $wrapper = $main.find(".product-detail-more-products-items-wrapper");
var length = $wrapper.find(".product-detail-more-products-item-wrapper").length;
var size = parseInt($wrapper.attr("data-size"));
function nav_more(dir){
var index = parseInt($wrapper.attr("data-index")) + dir;
var step = $wrapper.find(".product-detail-more-products-item").width() + parseInt($wrapper.find(".product-detail-more-products-item-wrapper").css("padding-right"))
log(step);
var left = index * (-step);
$wrapper.attr("data-index", index);
$wrapper.animate({left:left}, dur, easing);
if(index > 0){
$prev.addClass("product-detail-more-products-nav-button-active");
}else{
$prev.removeClass("product-detail-more-products-nav-button-active");
}
if(index < (length-size)){
$next.addClass("product-detail-more-products-nav-button-active");
}else{
$next.removeClass("product-detail-more-products-nav-button-active");
}
}
function prev_more(){
nav_more(-1);
}
function next_more(){
nav_more(1);
}
$prev.click(function(){
if(!$(this).hasClass("product-detail-more-products-nav-button-active")) return;
prev_more();
});
$next.click(function(){
if(!$(this).hasClass("product-detail-more-products-nav-button-active")) return;
next_more();
});
}
function init_updating(){
function update_cart(){
function success(response){
log("update_cart success");
log(response);
var $panel = get_feedback_panel("update-cart");
lightboxMessageNoClose($panel);
}
function error(response){
log("update_cart error");
log(response);
}
var cart_id = $detail.attr("data-cart-id");
updateCart(cart_id, pid, get_color_value(), get_size_value(), get_qty_value(), success, error);
}
$main.find(".product-detail-update-footer-button").click(function(e){
e.preventDefault();
if($(this).hasClass("common-button-disabled")) return;
update_cart();
});
}
function init_main_sidebar_buttons(){
function sizeguide(){
var $lightbox = $("#size-guide").children().clone();
//lightbox($lightbox);
lightboxWindow($lightbox);
}
function add_to_wishlist(){
function success(response){
log("add_to_wishlist success");
log(response);
$detail.addClass("product-in-wishlist");
var $panel = get_feedback_panel("add-wishlist");
lightboxMessage($panel);
}
function error(response){
log("add_to_wishlist error");
log(response);
}
addProductToWishlistByProductId(pid, success, error);
}
function remove_from_wishlist(){
function success(response){
log("remove_from_wishlist success");
log(response);
$detail.removeClass("product-in-wishlist");
}
function error(response){
log("remove_from_wishlist error");
log(response);
}
removeProductFromWishlistByProductId(pid, success, error);
}
//
$main.find(".product-detail-main-sidebar-button").click(function(){
var action = $(this).attr("data-action");
if(action == "sizeguide"){
sizeguide();
}else if (action == "add"){
if(isLogged()){
add_to_wishlist();
}else{
requireLogin();
//feedback(FEEDBACK_LOGIN_REQUIRED);
}
}else if(action == "remove"){
remove_from_wishlist();
}
});
}
//////////
init_colors();
init_more_photos();
init_size();
init_action();
init_enlarge();
init_main_sidebar_buttons();
init_more_products();
init_updating();
$detail.bind(CHANGE, on_change);
}
initInfo();
}
initProduct();
});