(function($) { "use strict"; $(document).ready(function() { var status1 = $("#callback-page1"); var status2 = $("#callback-page2"); var status3 = $("#callback-page3"); function callback1(event) { var items = event.item.count; var item = event.item.index +1; updateResult1(".currentItem", item ); updateResult1(".owlItems", items); } function callback2(event) { var items = event.item.count; var item = event.item.index +1; updateResult2(".currentItem", item ); updateResult2(".owlItems", items); } function callback3(event) { var items = event.item.count; var item = event.item.index +1; updateResult3(".currentItem", item ); updateResult3(".owlItems", items); } function updateResult1(pos,value){ status1.find(pos).find(".result").text(value); } function updateResult2(pos,value){ status2.find(pos).find(".result").text(value); } function updateResult3(pos,value){ status3.find(pos).find(".result").text(value); } $(".cms-rtl .owl-carousel").each(function(index, el) { var config = $(this).data(); config.navText = ['','']; config.smartSpeed="800"; config.rtl="true"; if($(this).hasClass('dotsData')){ config.dotsData="true"; } if($(this).hasClass('callback-page1')){ config.onChanged=callback1; } if($(this).hasClass('callback-page2')){ config.onChanged=callback2; } if($(this).hasClass('callback-page3')){ config.onChanged=callback3; } $(this).owlCarousel(config); }); $(".owl-carousel").each(function(index, el) { var config = $(this).data(); config.navText = ['','']; config.smartSpeed="800"; if($(this).hasClass('dotsData')){ config.dotsData="true"; } if($(this).hasClass('callback-page1')){ config.onChanged=callback1; } if($(this).hasClass('callback-page2')){ config.onChanged=callback2; } if($(this).hasClass('callback-page3')){ config.onChanged=callback3; } $(this).owlCarousel(config); }); /* [Top Search ] ------------------------------*/ $('.frm_quick_search').each(function(){ var searchForm = eval($(this)); var url = searchForm.attr('action')+lang+'/search/'; searchForm.validate({ submitHandler: function(form){ var para = searchForm.serializeArray(); var p; for(p in para){ if(para[p].name == 'query'){ var query = para[p].value; } } if(query.indexOf('%') !== -1){ var split_q = query.split("%"); query = split_q.join('%25'); } window.open(url+query,'_self'); return false; } }); $(this).find('button.btn-search').click(function(){ searchForm.submit(); }); }); /* [Mobile Search ] - - - - - - - - - - - - - - - - - - - - */ $(".block-search .block-title").on( 'click', function() { $( this ).parent().toggleClass('active'); return false; }); /* [Mobile menu ] - - - - - - - - - - - - - - - - - - - - */ $(".ui-menu .toggle-submenu").on( 'click', function() { $( this ).parent().toggleClass('open-submenu'); return false; }) ; $("[data-action='toggle-nav']").on( 'click', function() { $( this ).toggleClass('active'); $(".block-nav-menu").toggleClass("has-open"); $("body").toggleClass("menu-open"); return false; }) ; /* [Mobile categori ] - - - - - - - - - - - - - - - - - - - - */ $(".block-nav-categori .block-title").on( 'click', function() { $( this ).toggleClass('active'); $( this ).parent().toggleClass('has-open'); $("body").toggleClass("categori-open"); return false; }) ; $(".ui-categori .toggle-submenu").on( 'click', function() { $( this ).parent().toggleClass('open-submenu'); return false; }) ; /* [Mobile click service ] - - - - - - - - - - - - - - - - - - - - */ $(".service-opt-1 .block-title").on( 'click', function() { $( this ).parent().toggleClass('active'); return false; }) ; /* [animate click -floor ] - - - - - - - - - - - - - - - - - - - - */ $(".block-title .action ").on('click', function(e) { // prevent default anchor click behavior e.preventDefault(); // store hash var hash = this.hash; // animate $('html, body').animate({ scrollTop: $(hash).offset().top }, 500, function(){ // when done, add hash to url // (default click behaviour) window.location.hash = hash; }); }); /* [COUNT DOWN ] - - - - - - - - - - - - - - - - - - - - */ $('[data-countdown]').each(function() { var $this = $(this), finalDate = $(this).data('countdown'); $this.countdown(finalDate, function(event) { var fomat ='
'+str+'').addClass('orange').slideDown(500); //$.scrollTo({top:msgPos, left:0}, 300); }else{ alert(str); } //SysMsg('
'+str.toString()+'','',0); break; } $(form).find('.field').removeAttr('readonly'); $(form).find('.btn').removeAttr('disabled'); if(typeof(str[2]) != "undefined" && str[2] !== null) { if(str[2] == 'refresh'){ location.reload(); }else if(str[2] == 'delayRefresh'){ setTimeout(function(){ location.reload(); },5000); }else{ setTimeout(function(){ window.open(urlRelative+lang+'/'+str[2],'_self'); },1000); } return; } }, error:function(response){ var msg = 0; if($(form).find('div.message p').length > 0){ var msgPos = $(form).find('div.message').offset(); var msgPos = msgPos.top - 150; msgPos = (msgPos < 0) ? 0:msgPos; msg = 1; } var str = 'Failed to load resources.'; if(msg == 1){ $(form).find('div.message p').html(str).addClass('red').slideDown(500); //$.scrollTo({top:msgPos, left:0}, 300); }else{ alert(str); } } }); } //member form checker function checkSignup(form){ var form = eval(form); //loginname if(form.find('input[name=loginname]').length > 0){ var loginname = eval(form.find('input[name=loginname]')); loginname.after(''); var loginname_checker = eval(form.find('#loginname_checker')); loginname.bind("keyup change",function(){ var ln = loginname.val(); if(ln.length >= 6){ $.ajax({ url: urlRelative+'methods/check.loginname.php?mode=check.loginname&loginname='+$(this).val() }).done(function(data){ loginname_checker.removeClass("icon_tick icon_cross"); switch(data){ case 'pass': loginname_checker.addClass('icon_tick').attr('title','Pass'); break; case 'fail': default: loginname_checker.addClass('icon_withtext'); loginname_checker.addClass('icon_cross').attr('title','登錄名稱已有其他用戶登記'); loginname_checker.html('登錄名稱已有其他用戶登記'); break; case 'short': loginname_checker.addClass('icon_withtext'); loginname_checker.addClass('icon_cross').attr('title','登錄名稱必須最小6個字'); loginname_checker.html('登錄名稱必須最小6個字'); break; } signupIconChecker(form); }); }else{ loginname_checker.addClass('icon_withtext'); loginname_checker.addClass('icon_cross').attr('title','登錄名稱必須最小6個字'); loginname_checker.html('登錄名稱必須最小6個字'); } }); } if(form.find('input[name=password]').length > 0){ var password = eval(form.find('input[name=password]')); password.after(''); var password_checker = eval(form.find('#password_checker')); password.bind("keyup change",function(){ password_checker.removeClass('icon_tick icon_cross'); var pw = password.val(); if(pw.length >= 6){ password_checker.addClass('icon_tick').attr('title','Pass'); }else{ password_checker.addClass('icon_withtext'); password_checker.addClass('icon_cross').attr('title','密碼必須最小6個字'); password_checker.html('密碼必須最小6個字'); } signupIconChecker(form); }); } } function signupIconChecker(form){ var form = eval(form); var btn_submit = eval(form.find('input[type=submit]')); var count = form.find('.icon-checker').length; var check = 0; form.find('.icon-checker').each(function(){ if($(this).hasClass('icon_tick')){ check++; } }); if(check >= count){ btn_submit.removeAttr('disabled'); }else{ btn_submit.attr('disabled','disabled'); } } //cart function submitCartAction(action){ $('input#mode').val(action); $('#frm_cart').submit(); } //wishlist function checkWishlist(){ $.ajax({ url: urlRelative+'methods/get.cart.php?mode=do.wishlist.count' }).done(function(data){ $('.wishlist-count').text(data); }); } function updateCartItem(id,id_attribute,qty,stock){ var thisQtyField = $('#qty_'+id); var minQty = parseInt(thisQtyField.attr('min')); if( qty < minQty ){ alert('最少購買 '+minQty+'件。'); qty = minQty; thisQtyField.val(minQty); } $.ajax({ url: urlRelative+'methods/order.php?mode=update.cart.item&qty='+qty+'&id='+id+'&id_attribute='+id_attribute+'&stock='+stock }).done(function(data){ var data = data.split('|'); if(data[0] == 'success'){ var data = $.parseJSON(data[1]); $('table.cart tbody tr[data-id='+id+'-'+id_attribute+']').each(function(){ $(this).find('.qty').val(qty); //if(data.original_price != ''){ // $(this).find('.unitprice').html(data.unitprice+''+data.original_price+''); // }else{ $(this).find('.unitprice').text(data.unitprice); // } $(this).find('.subtotal').text(data.subtotal); console.log(data.has_stock); if(data.has_stock == '0'){ $(this).find('.value').html('沒有存貨'); $(this).find('.value').addClass('red_text'); }else{ $(this).find('.value').html('有貨'); $(this).find('.value').removeClass('red_text'); } }); //console.log(data.productprice); $('span.productprice').attr('data-price', data.simple_productprice); $('span.productprice').text(data.productprice); //checkAddtoCart(); }else{ alert('Fail to update product from your shopping cart.'); } }); } function removeCartItem(id,id_attribute){ if(confirm('Are you sure to remove this product from your shopping cart?')){ $.ajax({ url: urlRelative+'methods/order.php?mode=remove.cart.item&id='+id }).done(function(data){ //alert(data); var data = data.split('|'); if(data[0] == 'success'){ var data = $.parseJSON(data[1]); if(data.countProducts > 0){ $('table.cart tbody tr[data-id='+id+'-'+id_attribute+']').remove(); $('table.cart tfoot tr td.productprice').text(data.productprice); checkAddtoCart(); }else{ location.reload(); } }else{ alert('Fail to update product from your shopping cart.'); } }); } } //checkout function sameAddress(checked){ if(checked == 1){ $('#frm_checkout .delivery-info .field').not(':checkbox').bind('keyup change',function(){ var id = $(this).attr('id').replace('delivery_',''); $('#frm_checkout .billing-info #billing_'+id).val($(this).val()); }).each(function(){ var id = $(this).attr('id').replace('delivery_',''); $('#frm_checkout .billing-info #billing_'+id).val($(this).val()); }); $('#frm_checkout .billing-info .field').attr('disabled','disabled'); }else{ $('#frm_checkout .delivery-info .field').not(':checkbox').unbind('keyup change'); $('#frm_checkout .billing-info .field').removeAttr('disabled'); } } function updateShippingCost(id_country){ $('#frm_checkout input[type=submit],#frm_checkout input[type=button]').attr('disabled','disabled'); $('.shippingcost').text('Retrieving...'); $('tr.row-shippingcost td span.remark').text(''); $('tr.row-shippingcost td.price').text('Loading'); $.ajax({ url: urlRelative+'methods/order.php?mode=update.shipping.cost&id_country='+id_country }).done(function(data){ var data = data.split('|'); if(data[0] == 'success'){ var data = $.parseJSON(data[1]); $('.shippingcost').text(data.txt_shippingcost); $('.shippingname').text(data.name+' ('+data.weight+')'); if (data.shippinggroup_1 >= 1){ $('.baseprice_1').text(data.firstpricegroup_1 + ' X ' + 1); if(data.shippinggroup_1 > 6){ $('.addedprice_1').text(data.addedpricegroup_1 + ' X ' + (data.shippinggroup_1 - 6)); }else{ $('.addedprice_1').text(data.addedpricegroup_1 + ' X ' + 0); } }else{ $('.baseprice_1').text(data.firstpricegroup_1 + ' X ' + 0); $('.addedprice_1').text(data.addedpricegroup_1 + ' X ' + 0); } if (data.shippinggroup_2 >= 1){ $('.baseprice_2').text(data.firstpricegroup_2 + ' X ' + 1); if(data.shippinggroup_2 > 6){ $('.addedprice_2').text(data.addedpricegroup_2 + ' X ' + (data.shippinggroup_2 - 6)); }else{ $('.addedprice_2').text(data.addedpricegroup_2 + ' X ' + 0); } }else{ $('.baseprice_2').text(data.firstpricegroup_2 + ' X ' + 0); $('.addedprice_2').text(data.addedpricegroup_2 + ' X ' + 0); } if (data.shippinggroup_3 >= 1){ $('.baseprice_3').text(data.firstpricegroup_3 + ' X ' + 1); if(data.shippinggroup_3 > 6){ $('.addedprice_3').text(data.addedpricegroup_3 + ' X ' + (data.shippinggroup_3 - 6)); }else{ $('.addedprice_3').text(data.addedpricegroup_3 + ' X ' + 0); } }else{ $('.baseprice_3').text(data.firstpricegroup_3 + ' X ' + 0); $('.addedprice_3').text(data.addedpricegroup_3 + ' X ' + 0); } $('.shippingname').text(data.name+' ('+data.weight+')'); $('tr.row-shippingcost td span.remark').text(' ('+data.weight+')'); $('tr.row-shippingcost td.price').text(data.txt_shippingcost).attr('data-price',data.shippingcost); updateOrderTotalPrice(); }else{ alert('Fail to update shipping cost.'); $('tr.row-shippingcost td.price,.shippingcost').html('Error'); } $('#frm_checkout input[type=submit],#frm_checkout input[type=button]').removeAttr('disabled'); }); } function updateOrderTotalPrice(){ var orderTotal = 0; $('table.price-table tbody tr td.price').each(function(){ var price = $(this).attr('data-price'); orderTotal += parseFloat(price); }); $('table.price-table tfoot tr.totalprice td.totalprice').text('HKD '+number_format(orderTotal,2)); } function getPromotionalCode(form){ var form = eval($(form)); $(form).find('p.promotion-msg').text('').removeClass('red').hide(); if($(form).find('#promotionalcode').val().length >= 6){ $.ajax({ //url: urlRelative+'admin.sys/promotionalcodes/get.promotecode.php?mode=get.promotcode&code='+$(form).find('#promotionalcode').val() url: urlRelative+'admin.sys/promotionalcodes/get.promotecode.php?mode=get.promotcode&code='+$(form).find('#promotionalcode').val()+'&productprice='+$(form).find('table.price-table tbody tr.row-producttotal td.price').attr('data-price') }).done(function(data){ var data = data.split('|'); switch(data[0]){ case 'success': var data = $.parseJSON(data[1]); $(form).find('p.promotion-msg').html(''+data.name+'