caboose-cms 0.5.69 → 0.5.70
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/app/assets/javascripts/caboose/admin.js +2 -1
- data/app/assets/javascripts/caboose/admin_edit_order.js +0 -13
- data/app/assets/javascripts/caboose/admin_main.js +13 -0
- data/app/assets/javascripts/caboose/cart.js +145 -161
- data/app/assets/javascripts/caboose/cart_old.js +176 -0
- data/app/assets/javascripts/caboose/checkout.js +1 -1
- data/app/assets/javascripts/caboose/{checkout_step2.js → checkout_addresses.js} +3 -3
- data/app/assets/javascripts/caboose/checkout_gift_cards.js +47 -0
- data/app/assets/javascripts/caboose/{checkout_step1.js → checkout_login_register.js} +5 -53
- data/app/assets/javascripts/caboose/checkout_module.js +3 -4
- data/app/assets/javascripts/caboose/{checkout_step4.js → checkout_payment.js} +8 -8
- data/app/assets/javascripts/caboose/{checkout_step3.js → checkout_shipping.js} +5 -5
- data/app/assets/javascripts/caboose/imageZoom.js +66 -0
- data/app/assets/javascripts/caboose/model/attribute.js +2 -1
- data/app/assets/javascripts/caboose/model/bound_select.js +15 -6
- data/app/assets/javascripts/caboose/product.js +12 -2
- data/app/assets/stylesheets/caboose/checkout.css.scss +1 -0
- data/app/assets/templates/caboose/checkout/address.jst.ejs +1 -1
- data/app/controllers/caboose/cart_controller.rb +60 -8
- data/app/controllers/caboose/checkout_controller.rb +42 -71
- data/app/controllers/caboose/gift_cards_controller.rb +216 -0
- data/app/controllers/caboose/users_controller.rb +2 -2
- data/app/helpers/caboose/checkout_helper.rb +6 -5
- data/app/models/caboose/core_plugin.rb +2 -1
- data/app/models/caboose/discount.rb +8 -13
- data/app/models/caboose/gift_card.rb +49 -0
- data/app/models/caboose/order.rb +66 -46
- data/app/models/caboose/order_package.rb +11 -4
- data/app/models/caboose/order_package_calculator.rb +102 -0
- data/app/models/caboose/product_image.rb +10 -0
- data/app/models/caboose/schema.rb +38 -29
- data/app/models/caboose/shipping_calculator.rb +4 -2
- data/app/models/caboose/shipping_package.rb +7 -0
- data/app/views/caboose/cart/index.html.erb +12 -2
- data/app/views/caboose/checkout/#Untitled-1# +2 -0
- data/app/views/caboose/checkout/_cart.html.erb +45 -48
- data/app/views/caboose/checkout/_cart_old.html.erb +49 -0
- data/app/views/caboose/checkout/_confirm.html.erb +6 -4
- data/app/views/caboose/checkout/_confirm_table.html.erb +0 -0
- data/app/views/caboose/checkout/{step_two.html.erb → addresses.html.erb} +2 -2
- data/app/views/caboose/checkout/gift_cards.html.erb +35 -0
- data/app/views/caboose/checkout/index.html.erb +53 -42
- data/app/views/caboose/checkout/payment.html.erb +108 -75
- data/app/views/caboose/checkout/shipping.html.erb +62 -13
- data/app/views/caboose/gift_cards/admin_edit.html.erb +89 -0
- data/app/views/caboose/gift_cards/admin_index.html.erb +52 -0
- data/config/routes.rb +39 -19
- data/lib/caboose/engine.rb +1 -0
- data/lib/caboose/version.rb +1 -1
- metadata +20 -14
- data/app/assets/javascripts/caboose/cart2.js +0 -98
- data/app/views/caboose/checkout/step_four.html.erb +0 -67
- data/app/views/caboose/checkout/step_four_old.html.erb +0 -63
- data/app/views/caboose/checkout/step_one.html.erb +0 -54
- data/app/views/caboose/checkout/step_one_old.html.erb +0 -13
- data/app/views/caboose/checkout/step_three.html.erb +0 -55
- data/app/views/caboose/checkout/step_two_old.html.erb +0 -14
@@ -1,5 +1,5 @@
|
|
1
1
|
|
2
|
-
Caboose.Store.Modules.
|
2
|
+
Caboose.Store.Modules.CheckoutAddresses = (function() {
|
3
3
|
|
4
4
|
self = {};
|
5
5
|
|
@@ -22,14 +22,14 @@ Caboose.Store.Modules.CheckoutStep2 = (function() {
|
|
22
22
|
self.continue_handler = function(event) {
|
23
23
|
$('#message').html("<p class='loading'>Saving information...</p>");
|
24
24
|
$.ajax({
|
25
|
-
url: '/checkout/
|
25
|
+
url: '/checkout/addresses',
|
26
26
|
type: 'put',
|
27
27
|
data: $('#address_form').serialize(),
|
28
28
|
success: function(resp) {
|
29
29
|
if (resp.errors && resp.errors.length > 0)
|
30
30
|
$('#message').html("<p class='note error'>" + resp.errors[0] + "</p>");
|
31
31
|
else if (resp.success)
|
32
|
-
window.location = '/checkout/
|
32
|
+
window.location = '/checkout/shipping';
|
33
33
|
}
|
34
34
|
});
|
35
35
|
return false;
|
@@ -0,0 +1,47 @@
|
|
1
|
+
|
2
|
+
Caboose.Store.Modules.CheckoutGiftCards = (function() {
|
3
|
+
|
4
|
+
self = {};
|
5
|
+
|
6
|
+
self.initialize = function() {
|
7
|
+
self.bind_event_handlers();
|
8
|
+
};
|
9
|
+
|
10
|
+
self.bind_event_handlers = function() {
|
11
|
+
$("#checkout-continue button").click(self.continue_click_handler);
|
12
|
+
$('#redeem_code_btn').click(self.redeem_gift_card_handler);
|
13
|
+
};
|
14
|
+
|
15
|
+
self.redeem_gift_card_handler = function(event)
|
16
|
+
{
|
17
|
+
event.preventDefault();
|
18
|
+
self.redeem_gift_card();
|
19
|
+
};
|
20
|
+
|
21
|
+
self.redeem_gift_card = function()
|
22
|
+
{
|
23
|
+
var code = $('#code').val();
|
24
|
+
$('#message').html("<p class'loading'>Redeeming code...</p>");
|
25
|
+
$.ajax({
|
26
|
+
url: '/cart/gift-cards',
|
27
|
+
type: 'post',
|
28
|
+
data: { code: code },
|
29
|
+
success: function(resp) {
|
30
|
+
if (resp.error) $('#message').html("<p class='note error'>" + resp.error + "</p>");
|
31
|
+
if (resp.success)
|
32
|
+
{
|
33
|
+
$('#code').val('');
|
34
|
+
cart.refresh();
|
35
|
+
}
|
36
|
+
}
|
37
|
+
});
|
38
|
+
};
|
39
|
+
|
40
|
+
self.continue_click_handler = function(event) {
|
41
|
+
event.preventDefault();
|
42
|
+
window.location = '/checkout/payment';
|
43
|
+
return false;
|
44
|
+
};
|
45
|
+
|
46
|
+
return self
|
47
|
+
}).call(Caboose.Store);
|
@@ -2,7 +2,7 @@
|
|
2
2
|
// Checkout
|
3
3
|
//
|
4
4
|
|
5
|
-
Caboose.Store.Modules.
|
5
|
+
Caboose.Store.Modules.CheckoutLoginRegister = (function() {
|
6
6
|
|
7
7
|
// Steps
|
8
8
|
// Step 1: Present non-editable cart and login/register/guest buttons.
|
@@ -19,8 +19,7 @@ Caboose.Store.Modules.CheckoutStep1 = (function() {
|
|
19
19
|
|
20
20
|
self.initialize = function() {
|
21
21
|
switch (window.location.pathname.replace(/\/$/, "")) {
|
22
|
-
case '/checkout':
|
23
|
-
case '/checkout/step-one': self.step = 1; break;
|
22
|
+
case '/checkout': self.step = 1; break;
|
24
23
|
}
|
25
24
|
|
26
25
|
$('#signin_form_container' ).slideUp();
|
@@ -69,53 +68,6 @@ Caboose.Store.Modules.CheckoutStep1 = (function() {
|
|
69
68
|
self.current_form = form;
|
70
69
|
};
|
71
70
|
|
72
|
-
//self.login_submit_handler = function(event) {
|
73
|
-
// event.preventDefault();
|
74
|
-
// var $form = $(event.target);
|
75
|
-
//
|
76
|
-
// $.ajax({
|
77
|
-
// type: $form.attr('method'),
|
78
|
-
// url: $form.attr('action'),
|
79
|
-
// data: $form.serialize(),
|
80
|
-
// success: function(response) {
|
81
|
-
// if (response.error || (response.errors && response.errors.length > 0)) {
|
82
|
-
// if ($form.find('.message').length) {
|
83
|
-
// $form.find('.message').empty().addClass('error').text(response.error || response.errors[0]);
|
84
|
-
// } else {
|
85
|
-
// $form.append($('<span/>').addClass('message error').text(response.error || response.errors[0]));
|
86
|
-
// }
|
87
|
-
// } else {
|
88
|
-
// if (response.logged_in) {
|
89
|
-
// self.$login.after($('<p/>').addClass('alert').text('You are now signed in').css('text-align', 'center')).remove();
|
90
|
-
// $.post('/checkout/attach-user');
|
91
|
-
// } else {
|
92
|
-
// self.$login.after($('<p/>').addClass('alert').text('Email successfully saved').css('text-align', 'center')).remove();
|
93
|
-
// }
|
94
|
-
// }
|
95
|
-
//
|
96
|
-
// self.fetch(self.render);
|
97
|
-
// }
|
98
|
-
// });
|
99
|
-
//};
|
100
|
-
|
101
|
-
//self.continueHandler = function(event) {
|
102
|
-
// $form = self.$address.find('form');
|
103
|
-
//
|
104
|
-
// $.ajax({
|
105
|
-
// type: $form.attr('method'),
|
106
|
-
// url: $form.attr('action'),
|
107
|
-
// data: $form.serialize(),
|
108
|
-
// success: function(response) {
|
109
|
-
// if (response.success) {
|
110
|
-
// window.location = '/checkout/step-two';
|
111
|
-
// } else {
|
112
|
-
// $form.find('.message').remove();
|
113
|
-
// $form.find('#' + response.address + ' h3').append($('<span/>').addClass('message error').text(response.errors[0]));
|
114
|
-
// }
|
115
|
-
// }
|
116
|
-
// });
|
117
|
-
//};
|
118
|
-
|
119
71
|
self.login_form_submit_handler = function(event) {
|
120
72
|
$('#message').html("<p class='loading'>Logging in...</p>");
|
121
73
|
$.ajax({
|
@@ -131,7 +83,7 @@ Caboose.Store.Modules.CheckoutStep1 = (function() {
|
|
131
83
|
type: 'post',
|
132
84
|
success: function(resp2) {
|
133
85
|
if (resp2.error) $('#message').html("<p class='note error'>" + resp2.error + "</p>");
|
134
|
-
else window.location = '/checkout/
|
86
|
+
else window.location = '/checkout/addresses';
|
135
87
|
}
|
136
88
|
});
|
137
89
|
}
|
@@ -153,7 +105,7 @@ Caboose.Store.Modules.CheckoutStep1 = (function() {
|
|
153
105
|
type: 'post',
|
154
106
|
success: function(resp2) {
|
155
107
|
if (resp2.error) $('#message').html("<p class='note error'>" + resp2.error + "</p>");
|
156
|
-
else window.location = '/checkout/
|
108
|
+
else window.location = '/checkout/addresses';
|
157
109
|
}
|
158
110
|
});
|
159
111
|
}
|
@@ -169,7 +121,7 @@ Caboose.Store.Modules.CheckoutStep1 = (function() {
|
|
169
121
|
data: $('#guest_form').serialize(),
|
170
122
|
success: function(resp) {
|
171
123
|
if (resp.error) $('#message').html("<p class='note error'>" + resp.error + "</p>");
|
172
|
-
else window.location = '/checkout/
|
124
|
+
else window.location = '/checkout/addresses';
|
173
125
|
}
|
174
126
|
});
|
175
127
|
return false;
|
@@ -32,9 +32,8 @@ Caboose.Store.Modules.Checkout = (function() {
|
|
32
32
|
|
33
33
|
self.initialize = function() {
|
34
34
|
switch (window.location.pathname.replace(/\/$/, "")) {
|
35
|
-
case '/checkout':
|
36
|
-
case '/checkout/
|
37
|
-
case '/checkout/step-two': self.step = 2; break;
|
35
|
+
case '/checkout': self.step = 1; break;
|
36
|
+
case '/checkout/addresses': self.step = 2; break;
|
38
37
|
}
|
39
38
|
|
40
39
|
self.$checkout = $('#checkout')
|
@@ -150,7 +149,7 @@ Caboose.Store.Modules.Checkout = (function() {
|
|
150
149
|
data: $form.serialize(),
|
151
150
|
success: function(response) {
|
152
151
|
if (response.success) {
|
153
|
-
window.location = '/checkout/
|
152
|
+
window.location = '/checkout/addresses';
|
154
153
|
} else {
|
155
154
|
$form.find('.message').remove();
|
156
155
|
$form.find('#' + response.address + ' h3').append($('<span/>').addClass('message error').text(response.errors[0]));
|
@@ -1,23 +1,25 @@
|
|
1
1
|
|
2
|
-
Caboose.Store.Modules.
|
2
|
+
Caboose.Store.Modules.CheckoutPayment = (function() {
|
3
3
|
|
4
4
|
self = {
|
5
5
|
is_confirm: false
|
6
6
|
};
|
7
7
|
|
8
8
|
self.initialize = function() {
|
9
|
-
|
9
|
+
//$('#checkout-confirm').hide();
|
10
10
|
if (!SHOW_RELAY || SHOW_RELAY == false)
|
11
11
|
$('#relay').hide();
|
12
|
+
$('#checkout-confirm').hide();
|
12
13
|
self.bind_event_handlers();
|
13
14
|
self.expiration_change_handler();
|
14
15
|
};
|
15
16
|
|
16
17
|
self.bind_event_handlers = function() {
|
18
|
+
|
17
19
|
$('#payment select').change(self.expiration_change_handler);
|
18
20
|
$('#checkout-continue button').click(self.continue_handler);
|
19
21
|
$('#checkout-confirm #edit_payment').click(self.edit_payment_handler);
|
20
|
-
|
22
|
+
|
21
23
|
$(window).on('message', function(event) {
|
22
24
|
relay_handler(event.originalEvent.data);
|
23
25
|
});
|
@@ -40,8 +42,8 @@ Caboose.Store.Modules.CheckoutStep4 = (function() {
|
|
40
42
|
{
|
41
43
|
$('#message').empty();
|
42
44
|
$('#checkout-payment').hide();
|
43
|
-
$('#checkout-confirm').show();
|
44
|
-
$('#confirm_card_number').html("Card ending in " + cc.substr(-4));
|
45
|
+
$('#checkout-confirm').show();
|
46
|
+
$('#confirm_card_number').html("Card ending in " + cc.substr(-4));
|
45
47
|
$('#checkout-continue button').html("Confirm order");
|
46
48
|
self.is_confirm = true;
|
47
49
|
}
|
@@ -55,9 +57,7 @@ Caboose.Store.Modules.CheckoutStep4 = (function() {
|
|
55
57
|
|
56
58
|
self.edit_payment_handler = function(event) {
|
57
59
|
$('#checkout-confirm').hide();
|
58
|
-
$('#checkout-payment').show();
|
59
|
-
$('#checkout_nav4 a').removeClass('done').addClass('current');
|
60
|
-
$('#checkout_nav5 a').removeClass('current').addClass('not_done');
|
60
|
+
$('#checkout-payment').show();
|
61
61
|
$('#checkout-continue button').html("Continue");
|
62
62
|
self.is_confirm = false;
|
63
63
|
};
|
@@ -1,5 +1,5 @@
|
|
1
1
|
|
2
|
-
Caboose.Store.Modules.
|
2
|
+
Caboose.Store.Modules.CheckoutShipping = (function() {
|
3
3
|
|
4
4
|
self = {};
|
5
5
|
|
@@ -18,15 +18,15 @@ Caboose.Store.Modules.CheckoutStep3 = (function() {
|
|
18
18
|
url: '/checkout/shipping',
|
19
19
|
type: 'put',
|
20
20
|
data: {
|
21
|
-
|
22
|
-
|
23
|
-
|
21
|
+
order_package_id: $(event.target).data('order_package_id'),
|
22
|
+
shipping_method_id: $(event.target).data('shipping_method_id'),
|
23
|
+
total: $(event.target).data('total')
|
24
24
|
},
|
25
25
|
success: function(resp) {
|
26
26
|
if (resp.errors && resp.errors.length > 0)
|
27
27
|
$('#message').html("<p class='note error'>" + resp.errors[0] + "</p>");
|
28
28
|
else if (resp.success)
|
29
|
-
window.location = '/checkout/
|
29
|
+
window.location = '/checkout/gift-cards';
|
30
30
|
}
|
31
31
|
});
|
32
32
|
return false;
|
@@ -0,0 +1,66 @@
|
|
1
|
+
/* jQuery elevateZoom 3.0.8 - Demo's and documentation: - www.elevateweb.co.uk/image-zoom - Copyright (c) 2013 Andrew Eades - www.elevateweb.co.uk - Dual licensed under the LGPL licenses. - http://en.wikipedia.org/wiki/MIT_License - http://en.wikipedia.org/wiki/GNU_General_Public_License */
|
2
|
+
"function"!==typeof Object.create&&(Object.create=function(d){function h(){}h.prototype=d;return new h});
|
3
|
+
(function(d,h,l,m){var k={init:function(b,a){var c=this;c.elem=a;c.$elem=d(a);c.imageSrc=c.$elem.data("zoom-image")?c.$elem.data("zoom-image"):c.$elem.attr("src");c.options=d.extend({},d.fn.elevateZoom.options,b);c.options.tint&&(c.options.lensColour="none",c.options.lensOpacity="1");"inner"==c.options.zoomType&&(c.options.showLens=!1);c.$elem.parent().removeAttr("title").removeAttr("alt");c.zoomImage=c.imageSrc;c.refresh(1);d("#"+c.options.gallery+" a").click(function(a){c.options.galleryActiveClass&&
|
4
|
+
(d("#"+c.options.gallery+" a").removeClass(c.options.galleryActiveClass),d(this).addClass(c.options.galleryActiveClass));a.preventDefault();d(this).data("zoom-image")?c.zoomImagePre=d(this).data("zoom-image"):c.zoomImagePre=d(this).data("image");c.swaptheimage(d(this).data("image"),c.zoomImagePre);return!1})},refresh:function(b){var a=this;setTimeout(function(){a.fetch(a.imageSrc)},b||a.options.refresh)},fetch:function(b){var a=this,c=new Image;c.onload=function(){a.largeWidth=c.width;a.largeHeight=
|
5
|
+
c.height;a.startZoom();a.currentImage=a.imageSrc;a.options.onZoomedImageLoaded(a.$elem)};c.src=b},startZoom:function(){var b=this;b.nzWidth=b.$elem.width();b.nzHeight=b.$elem.height();b.isWindowActive=!1;b.isLensActive=!1;b.isTintActive=!1;b.overWindow=!1;b.options.imageCrossfade&&(b.zoomWrap=b.$elem.wrap('<div style="height:'+b.nzHeight+"px;width:"+b.nzWidth+'px;" class="zoomWrapper" />'),b.$elem.css("position","absolute"));b.zoomLock=1;b.scrollingLock=!1;b.changeBgSize=!1;b.currentZoomLevel=b.options.zoomLevel;
|
6
|
+
b.nzOffset=b.$elem.offset();b.widthRatio=b.largeWidth/b.currentZoomLevel/b.nzWidth;b.heightRatio=b.largeHeight/b.currentZoomLevel/b.nzHeight;"window"==b.options.zoomType&&(b.zoomWindowStyle="overflow: hidden;background-position: 0px 0px;text-align:center;background-color: "+String(b.options.zoomWindowBgColour)+";width: "+String(b.options.zoomWindowWidth)+"px;height: "+String(b.options.zoomWindowHeight)+"px;float: left;background-size: "+b.largeWidth/b.currentZoomLevel+"px "+b.largeHeight/b.currentZoomLevel+
|
7
|
+
"px;display: none;z-index:100;border: "+String(b.options.borderSize)+"px solid "+b.options.borderColour+";background-repeat: no-repeat;position: absolute;");if("inner"==b.options.zoomType){var a=b.$elem.css("border-left-width");b.zoomWindowStyle="overflow: hidden;margin-left: "+String(a)+";margin-top: "+String(a)+";background-position: 0px 0px;width: "+String(b.nzWidth)+"px;height: "+String(b.nzHeight)+"px;float: left;display: none;cursor:"+b.options.cursor+";px solid "+b.options.borderColour+";background-repeat: no-repeat;position: absolute;"}"window"==
|
8
|
+
b.options.zoomType&&(lensHeight=b.nzHeight<b.options.zoomWindowWidth/b.widthRatio?b.nzHeight:String(b.options.zoomWindowHeight/b.heightRatio),lensWidth=b.largeWidth<b.options.zoomWindowWidth?b.nzWidth:b.options.zoomWindowWidth/b.widthRatio,b.lensStyle="background-position: 0px 0px;width: "+String(b.options.zoomWindowWidth/b.widthRatio)+"px;height: "+String(b.options.zoomWindowHeight/b.heightRatio)+"px;float: right;display: none;overflow: hidden;z-index: 999;-webkit-transform: translateZ(0);opacity:"+
|
9
|
+
b.options.lensOpacity+";filter: alpha(opacity = "+100*b.options.lensOpacity+"); zoom:1;width:"+lensWidth+"px;height:"+lensHeight+"px;background-color:"+b.options.lensColour+";cursor:"+b.options.cursor+";border: "+b.options.lensBorderSize+"px solid "+b.options.lensBorderColour+";background-repeat: no-repeat;position: absolute;");b.tintStyle="display: block;position: absolute;background-color: "+b.options.tintColour+";filter:alpha(opacity=0);opacity: 0;width: "+b.nzWidth+"px;height: "+b.nzHeight+"px;";
|
10
|
+
b.lensRound="";"lens"==b.options.zoomType&&(b.lensStyle="background-position: 0px 0px;float: left;display: none;border: "+String(b.options.borderSize)+"px solid "+b.options.borderColour+";width:"+String(b.options.lensSize)+"px;height:"+String(b.options.lensSize)+"px;background-repeat: no-repeat;position: absolute;");"round"==b.options.lensShape&&(b.lensRound="border-top-left-radius: "+String(b.options.lensSize/2+b.options.borderSize)+"px;border-top-right-radius: "+String(b.options.lensSize/2+b.options.borderSize)+
|
11
|
+
"px;border-bottom-left-radius: "+String(b.options.lensSize/2+b.options.borderSize)+"px;border-bottom-right-radius: "+String(b.options.lensSize/2+b.options.borderSize)+"px;");b.zoomContainer=d('<div class="zoomContainer" style="-webkit-transform: translateZ(0);position:absolute;left:'+b.nzOffset.left+"px;top:"+b.nzOffset.top+"px;height:"+b.nzHeight+"px;width:"+b.nzWidth+'px;"></div>');d("body").append(b.zoomContainer);b.options.containLensZoom&&"lens"==b.options.zoomType&&b.zoomContainer.css("overflow",
|
12
|
+
"hidden");"inner"!=b.options.zoomType&&(b.zoomLens=d("<div class='zoomLens' style='"+b.lensStyle+b.lensRound+"'> </div>").appendTo(b.zoomContainer).click(function(){b.$elem.trigger("click")}),b.options.tint&&(b.tintContainer=d("<div/>").addClass("tintContainer"),b.zoomTint=d("<div class='zoomTint' style='"+b.tintStyle+"'></div>"),b.zoomLens.wrap(b.tintContainer),b.zoomTintcss=b.zoomLens.after(b.zoomTint),b.zoomTintImage=d('<img style="position: absolute; left: 0px; top: 0px; max-width: none; width: '+
|
13
|
+
b.nzWidth+"px; height: "+b.nzHeight+'px;" src="'+b.imageSrc+'">').appendTo(b.zoomLens).click(function(){b.$elem.trigger("click")})));isNaN(b.options.zoomWindowPosition)?b.zoomWindow=d("<div style='z-index:999;left:"+b.windowOffsetLeft+"px;top:"+b.windowOffsetTop+"px;"+b.zoomWindowStyle+"' class='zoomWindow'> </div>").appendTo("body").click(function(){b.$elem.trigger("click")}):b.zoomWindow=d("<div style='z-index:999;left:"+b.windowOffsetLeft+"px;top:"+b.windowOffsetTop+"px;"+b.zoomWindowStyle+
|
14
|
+
"' class='zoomWindow'> </div>").appendTo(b.zoomContainer).click(function(){b.$elem.trigger("click")});b.zoomWindowContainer=d("<div/>").addClass("zoomWindowContainer").css("width",b.options.zoomWindowWidth);b.zoomWindow.wrap(b.zoomWindowContainer);"lens"==b.options.zoomType&&b.zoomLens.css({backgroundImage:"url('"+b.imageSrc+"')"});"window"==b.options.zoomType&&b.zoomWindow.css({backgroundImage:"url('"+b.imageSrc+"')"});"inner"==b.options.zoomType&&b.zoomWindow.css({backgroundImage:"url('"+b.imageSrc+
|
15
|
+
"')"});b.$elem.bind("touchmove",function(a){a.preventDefault();b.setPosition(a.originalEvent.touches[0]||a.originalEvent.changedTouches[0])});b.zoomContainer.bind("touchmove",function(a){"inner"==b.options.zoomType&&b.showHideWindow("show");a.preventDefault();b.setPosition(a.originalEvent.touches[0]||a.originalEvent.changedTouches[0])});b.zoomContainer.bind("touchend",function(a){b.showHideWindow("hide");b.options.showLens&&b.showHideLens("hide");b.options.tint&&"inner"!=b.options.zoomType&&b.showHideTint("hide")});
|
16
|
+
b.$elem.bind("touchend",function(a){b.showHideWindow("hide");b.options.showLens&&b.showHideLens("hide");b.options.tint&&"inner"!=b.options.zoomType&&b.showHideTint("hide")});b.options.showLens&&(b.zoomLens.bind("touchmove",function(a){a.preventDefault();b.setPosition(a.originalEvent.touches[0]||a.originalEvent.changedTouches[0])}),b.zoomLens.bind("touchend",function(a){b.showHideWindow("hide");b.options.showLens&&b.showHideLens("hide");b.options.tint&&"inner"!=b.options.zoomType&&b.showHideTint("hide")}));
|
17
|
+
b.$elem.bind("mousemove",function(a){!1==b.overWindow&&b.setElements("show");if(b.lastX!==a.clientX||b.lastY!==a.clientY)b.setPosition(a),b.currentLoc=a;b.lastX=a.clientX;b.lastY=a.clientY});b.zoomContainer.bind("mousemove",function(a){!1==b.overWindow&&b.setElements("show");if(b.lastX!==a.clientX||b.lastY!==a.clientY)b.setPosition(a),b.currentLoc=a;b.lastX=a.clientX;b.lastY=a.clientY});"inner"!=b.options.zoomType&&b.zoomLens.bind("mousemove",function(a){if(b.lastX!==a.clientX||b.lastY!==a.clientY)b.setPosition(a),
|
18
|
+
b.currentLoc=a;b.lastX=a.clientX;b.lastY=a.clientY});b.options.tint&&"inner"!=b.options.zoomType&&b.zoomTint.bind("mousemove",function(a){if(b.lastX!==a.clientX||b.lastY!==a.clientY)b.setPosition(a),b.currentLoc=a;b.lastX=a.clientX;b.lastY=a.clientY});"inner"==b.options.zoomType&&b.zoomWindow.bind("mousemove",function(a){if(b.lastX!==a.clientX||b.lastY!==a.clientY)b.setPosition(a),b.currentLoc=a;b.lastX=a.clientX;b.lastY=a.clientY});b.zoomContainer.add(b.$elem).mouseenter(function(){!1==b.overWindow&&
|
19
|
+
b.setElements("show")}).mouseleave(function(){b.scrollLock||b.setElements("hide")});"inner"!=b.options.zoomType&&b.zoomWindow.mouseenter(function(){b.overWindow=!0;b.setElements("hide")}).mouseleave(function(){b.overWindow=!1});b.minZoomLevel=b.options.minZoomLevel?b.options.minZoomLevel:2*b.options.scrollZoomIncrement;b.options.scrollZoom&&b.zoomContainer.add(b.$elem).bind("mousewheel DOMMouseScroll MozMousePixelScroll",function(a){b.scrollLock=!0;clearTimeout(d.data(this,"timer"));d.data(this,"timer",
|
20
|
+
setTimeout(function(){b.scrollLock=!1},250));var e=a.originalEvent.wheelDelta||-1*a.originalEvent.detail;a.stopImmediatePropagation();a.stopPropagation();a.preventDefault();0<e/120?b.currentZoomLevel>=b.minZoomLevel&&b.changeZoomLevel(b.currentZoomLevel-b.options.scrollZoomIncrement):b.options.maxZoomLevel?b.currentZoomLevel<=b.options.maxZoomLevel&&b.changeZoomLevel(parseFloat(b.currentZoomLevel)+b.options.scrollZoomIncrement):b.changeZoomLevel(parseFloat(b.currentZoomLevel)+b.options.scrollZoomIncrement);
|
21
|
+
return!1})},setElements:function(b){if(!this.options.zoomEnabled)return!1;"show"==b&&this.isWindowSet&&("inner"==this.options.zoomType&&this.showHideWindow("show"),"window"==this.options.zoomType&&this.showHideWindow("show"),this.options.showLens&&this.showHideLens("show"),this.options.tint&&"inner"!=this.options.zoomType&&this.showHideTint("show"));"hide"==b&&("window"==this.options.zoomType&&this.showHideWindow("hide"),this.options.tint||this.showHideWindow("hide"),this.options.showLens&&this.showHideLens("hide"),
|
22
|
+
this.options.tint&&this.showHideTint("hide"))},setPosition:function(b){if(!this.options.zoomEnabled)return!1;this.nzHeight=this.$elem.height();this.nzWidth=this.$elem.width();this.nzOffset=this.$elem.offset();this.options.tint&&"inner"!=this.options.zoomType&&(this.zoomTint.css({top:0}),this.zoomTint.css({left:0}));this.options.responsive&&!this.options.scrollZoom&&this.options.showLens&&(lensHeight=this.nzHeight<this.options.zoomWindowWidth/this.widthRatio?this.nzHeight:String(this.options.zoomWindowHeight/
|
23
|
+
this.heightRatio),lensWidth=this.largeWidth<this.options.zoomWindowWidth?this.nzWidth:this.options.zoomWindowWidth/this.widthRatio,this.widthRatio=this.largeWidth/this.nzWidth,this.heightRatio=this.largeHeight/this.nzHeight,"lens"!=this.options.zoomType&&(lensHeight=this.nzHeight<this.options.zoomWindowWidth/this.widthRatio?this.nzHeight:String(this.options.zoomWindowHeight/this.heightRatio),lensWidth=this.options.zoomWindowWidth<this.options.zoomWindowWidth?this.nzWidth:this.options.zoomWindowWidth/
|
24
|
+
this.widthRatio,this.zoomLens.css("width",lensWidth),this.zoomLens.css("height",lensHeight),this.options.tint&&(this.zoomTintImage.css("width",this.nzWidth),this.zoomTintImage.css("height",this.nzHeight))),"lens"==this.options.zoomType&&this.zoomLens.css({width:String(this.options.lensSize)+"px",height:String(this.options.lensSize)+"px"}));this.zoomContainer.css({top:this.nzOffset.top});this.zoomContainer.css({left:this.nzOffset.left});this.mouseLeft=parseInt(b.pageX-this.nzOffset.left);this.mouseTop=
|
25
|
+
parseInt(b.pageY-this.nzOffset.top);"window"==this.options.zoomType&&(this.Etoppos=this.mouseTop<this.zoomLens.height()/2,this.Eboppos=this.mouseTop>this.nzHeight-this.zoomLens.height()/2-2*this.options.lensBorderSize,this.Eloppos=this.mouseLeft<0+this.zoomLens.width()/2,this.Eroppos=this.mouseLeft>this.nzWidth-this.zoomLens.width()/2-2*this.options.lensBorderSize);"inner"==this.options.zoomType&&(this.Etoppos=this.mouseTop<this.nzHeight/2/this.heightRatio,this.Eboppos=this.mouseTop>this.nzHeight-
|
26
|
+
this.nzHeight/2/this.heightRatio,this.Eloppos=this.mouseLeft<0+this.nzWidth/2/this.widthRatio,this.Eroppos=this.mouseLeft>this.nzWidth-this.nzWidth/2/this.widthRatio-2*this.options.lensBorderSize);0>=this.mouseLeft||0>this.mouseTop||this.mouseLeft>this.nzWidth||this.mouseTop>this.nzHeight?this.setElements("hide"):(this.options.showLens&&(this.lensLeftPos=String(this.mouseLeft-this.zoomLens.width()/2),this.lensTopPos=String(this.mouseTop-this.zoomLens.height()/2)),this.Etoppos&&(this.lensTopPos=0),
|
27
|
+
this.Eloppos&&(this.tintpos=this.lensLeftPos=this.windowLeftPos=0),"window"==this.options.zoomType&&(this.Eboppos&&(this.lensTopPos=Math.max(this.nzHeight-this.zoomLens.height()-2*this.options.lensBorderSize,0)),this.Eroppos&&(this.lensLeftPos=this.nzWidth-this.zoomLens.width()-2*this.options.lensBorderSize)),"inner"==this.options.zoomType&&(this.Eboppos&&(this.lensTopPos=Math.max(this.nzHeight-2*this.options.lensBorderSize,0)),this.Eroppos&&(this.lensLeftPos=this.nzWidth-this.nzWidth-2*this.options.lensBorderSize)),
|
28
|
+
"lens"==this.options.zoomType&&(this.windowLeftPos=String(-1*((b.pageX-this.nzOffset.left)*this.widthRatio-this.zoomLens.width()/2)),this.windowTopPos=String(-1*((b.pageY-this.nzOffset.top)*this.heightRatio-this.zoomLens.height()/2)),this.zoomLens.css({backgroundPosition:this.windowLeftPos+"px "+this.windowTopPos+"px"}),this.changeBgSize&&(this.nzHeight>this.nzWidth?("lens"==this.options.zoomType&&this.zoomLens.css({"background-size":this.largeWidth/this.newvalueheight+"px "+this.largeHeight/this.newvalueheight+
|
29
|
+
"px"}),this.zoomWindow.css({"background-size":this.largeWidth/this.newvalueheight+"px "+this.largeHeight/this.newvalueheight+"px"})):("lens"==this.options.zoomType&&this.zoomLens.css({"background-size":this.largeWidth/this.newvaluewidth+"px "+this.largeHeight/this.newvaluewidth+"px"}),this.zoomWindow.css({"background-size":this.largeWidth/this.newvaluewidth+"px "+this.largeHeight/this.newvaluewidth+"px"})),this.changeBgSize=!1),this.setWindowPostition(b)),this.options.tint&&"inner"!=this.options.zoomType&&
|
30
|
+
this.setTintPosition(b),"window"==this.options.zoomType&&this.setWindowPostition(b),"inner"==this.options.zoomType&&this.setWindowPostition(b),this.options.showLens&&(this.fullwidth&&"lens"!=this.options.zoomType&&(this.lensLeftPos=0),this.zoomLens.css({left:this.lensLeftPos+"px",top:this.lensTopPos+"px"})))},showHideWindow:function(b){"show"!=b||this.isWindowActive||(this.options.zoomWindowFadeIn?this.zoomWindow.stop(!0,!0,!1).fadeIn(this.options.zoomWindowFadeIn):this.zoomWindow.show(),this.isWindowActive=
|
31
|
+
!0);"hide"==b&&this.isWindowActive&&(this.options.zoomWindowFadeOut?this.zoomWindow.stop(!0,!0).fadeOut(this.options.zoomWindowFadeOut):this.zoomWindow.hide(),this.isWindowActive=!1)},showHideLens:function(b){"show"!=b||this.isLensActive||(this.options.lensFadeIn?this.zoomLens.stop(!0,!0,!1).fadeIn(this.options.lensFadeIn):this.zoomLens.show(),this.isLensActive=!0);"hide"==b&&this.isLensActive&&(this.options.lensFadeOut?this.zoomLens.stop(!0,!0).fadeOut(this.options.lensFadeOut):this.zoomLens.hide(),
|
32
|
+
this.isLensActive=!1)},showHideTint:function(b){"show"!=b||this.isTintActive||(this.options.zoomTintFadeIn?this.zoomTint.css({opacity:this.options.tintOpacity}).animate().stop(!0,!0).fadeIn("slow"):(this.zoomTint.css({opacity:this.options.tintOpacity}).animate(),this.zoomTint.show()),this.isTintActive=!0);"hide"==b&&this.isTintActive&&(this.options.zoomTintFadeOut?this.zoomTint.stop(!0,!0).fadeOut(this.options.zoomTintFadeOut):this.zoomTint.hide(),this.isTintActive=!1)},setLensPostition:function(b){},
|
33
|
+
setWindowPostition:function(b){var a=this;if(isNaN(a.options.zoomWindowPosition))a.externalContainer=d("#"+a.options.zoomWindowPosition),a.externalContainerWidth=a.externalContainer.width(),a.externalContainerHeight=a.externalContainer.height(),a.externalContainerOffset=a.externalContainer.offset(),a.windowOffsetTop=a.externalContainerOffset.top,a.windowOffsetLeft=a.externalContainerOffset.left;else switch(a.options.zoomWindowPosition){case 1:a.windowOffsetTop=a.options.zoomWindowOffety;a.windowOffsetLeft=
|
34
|
+
+a.nzWidth;break;case 2:a.options.zoomWindowHeight>a.nzHeight&&(a.windowOffsetTop=-1*(a.options.zoomWindowHeight/2-a.nzHeight/2),a.windowOffsetLeft=a.nzWidth);break;case 3:a.windowOffsetTop=a.nzHeight-a.zoomWindow.height()-2*a.options.borderSize;a.windowOffsetLeft=a.nzWidth;break;case 4:a.windowOffsetTop=a.nzHeight;a.windowOffsetLeft=a.nzWidth;break;case 5:a.windowOffsetTop=a.nzHeight;a.windowOffsetLeft=a.nzWidth-a.zoomWindow.width()-2*a.options.borderSize;break;case 6:a.options.zoomWindowHeight>
|
35
|
+
a.nzHeight&&(a.windowOffsetTop=a.nzHeight,a.windowOffsetLeft=-1*(a.options.zoomWindowWidth/2-a.nzWidth/2+2*a.options.borderSize));break;case 7:a.windowOffsetTop=a.nzHeight;a.windowOffsetLeft=0;break;case 8:a.windowOffsetTop=a.nzHeight;a.windowOffsetLeft=-1*(a.zoomWindow.width()+2*a.options.borderSize);break;case 9:a.windowOffsetTop=a.nzHeight-a.zoomWindow.height()-2*a.options.borderSize;a.windowOffsetLeft=-1*(a.zoomWindow.width()+2*a.options.borderSize);break;case 10:a.options.zoomWindowHeight>a.nzHeight&&
|
36
|
+
(a.windowOffsetTop=-1*(a.options.zoomWindowHeight/2-a.nzHeight/2),a.windowOffsetLeft=-1*(a.zoomWindow.width()+2*a.options.borderSize));break;case 11:a.windowOffsetTop=a.options.zoomWindowOffety;a.windowOffsetLeft=-1*(a.zoomWindow.width()+2*a.options.borderSize);break;case 12:a.windowOffsetTop=-1*(a.zoomWindow.height()+2*a.options.borderSize);a.windowOffsetLeft=-1*(a.zoomWindow.width()+2*a.options.borderSize);break;case 13:a.windowOffsetTop=-1*(a.zoomWindow.height()+2*a.options.borderSize);a.windowOffsetLeft=
|
37
|
+
0;break;case 14:a.options.zoomWindowHeight>a.nzHeight&&(a.windowOffsetTop=-1*(a.zoomWindow.height()+2*a.options.borderSize),a.windowOffsetLeft=-1*(a.options.zoomWindowWidth/2-a.nzWidth/2+2*a.options.borderSize));break;case 15:a.windowOffsetTop=-1*(a.zoomWindow.height()+2*a.options.borderSize);a.windowOffsetLeft=a.nzWidth-a.zoomWindow.width()-2*a.options.borderSize;break;case 16:a.windowOffsetTop=-1*(a.zoomWindow.height()+2*a.options.borderSize);a.windowOffsetLeft=a.nzWidth;break;default:a.windowOffsetTop=
|
38
|
+
a.options.zoomWindowOffety,a.windowOffsetLeft=a.nzWidth}a.isWindowSet=!0;a.windowOffsetTop+=a.options.zoomWindowOffety;a.windowOffsetLeft+=a.options.zoomWindowOffetx;a.zoomWindow.css({top:a.windowOffsetTop});a.zoomWindow.css({left:a.windowOffsetLeft});"inner"==a.options.zoomType&&(a.zoomWindow.css({top:0}),a.zoomWindow.css({left:0}));a.windowLeftPos=String(-1*((b.pageX-a.nzOffset.left)*a.widthRatio-a.zoomWindow.width()/2));a.windowTopPos=String(-1*((b.pageY-a.nzOffset.top)*a.heightRatio-a.zoomWindow.height()/
|
39
|
+
2));a.Etoppos&&(a.windowTopPos=0);a.Eloppos&&(a.windowLeftPos=0);a.Eboppos&&(a.windowTopPos=-1*(a.largeHeight/a.currentZoomLevel-a.zoomWindow.height()));a.Eroppos&&(a.windowLeftPos=-1*(a.largeWidth/a.currentZoomLevel-a.zoomWindow.width()));a.fullheight&&(a.windowTopPos=0);a.fullwidth&&(a.windowLeftPos=0);if("window"==a.options.zoomType||"inner"==a.options.zoomType)1==a.zoomLock&&(1>=a.widthRatio&&(a.windowLeftPos=0),1>=a.heightRatio&&(a.windowTopPos=0)),a.largeHeight<a.options.zoomWindowHeight&&(a.windowTopPos=
|
40
|
+
0),a.largeWidth<a.options.zoomWindowWidth&&(a.windowLeftPos=0),a.options.easing?(a.xp||(a.xp=0),a.yp||(a.yp=0),a.loop||(a.loop=setInterval(function(){a.xp+=(a.windowLeftPos-a.xp)/a.options.easingAmount;a.yp+=(a.windowTopPos-a.yp)/a.options.easingAmount;a.scrollingLock?(clearInterval(a.loop),a.xp=a.windowLeftPos,a.yp=a.windowTopPos,a.xp=-1*((b.pageX-a.nzOffset.left)*a.widthRatio-a.zoomWindow.width()/2),a.yp=-1*((b.pageY-a.nzOffset.top)*a.heightRatio-a.zoomWindow.height()/2),a.changeBgSize&&(a.nzHeight>
|
41
|
+
a.nzWidth?("lens"==a.options.zoomType&&a.zoomLens.css({"background-size":a.largeWidth/a.newvalueheight+"px "+a.largeHeight/a.newvalueheight+"px"}),a.zoomWindow.css({"background-size":a.largeWidth/a.newvalueheight+"px "+a.largeHeight/a.newvalueheight+"px"})):("lens"!=a.options.zoomType&&a.zoomLens.css({"background-size":a.largeWidth/a.newvaluewidth+"px "+a.largeHeight/a.newvalueheight+"px"}),a.zoomWindow.css({"background-size":a.largeWidth/a.newvaluewidth+"px "+a.largeHeight/a.newvaluewidth+"px"})),
|
42
|
+
a.changeBgSize=!1),a.zoomWindow.css({backgroundPosition:a.windowLeftPos+"px "+a.windowTopPos+"px"}),a.scrollingLock=!1,a.loop=!1):(a.changeBgSize&&(a.nzHeight>a.nzWidth?("lens"==a.options.zoomType&&a.zoomLens.css({"background-size":a.largeWidth/a.newvalueheight+"px "+a.largeHeight/a.newvalueheight+"px"}),a.zoomWindow.css({"background-size":a.largeWidth/a.newvalueheight+"px "+a.largeHeight/a.newvalueheight+"px"})):("lens"!=a.options.zoomType&&a.zoomLens.css({"background-size":a.largeWidth/a.newvaluewidth+
|
43
|
+
"px "+a.largeHeight/a.newvaluewidth+"px"}),a.zoomWindow.css({"background-size":a.largeWidth/a.newvaluewidth+"px "+a.largeHeight/a.newvaluewidth+"px"})),a.changeBgSize=!1),a.zoomWindow.css({backgroundPosition:a.xp+"px "+a.yp+"px"}))},16))):(a.changeBgSize&&(a.nzHeight>a.nzWidth?("lens"==a.options.zoomType&&a.zoomLens.css({"background-size":a.largeWidth/a.newvalueheight+"px "+a.largeHeight/a.newvalueheight+"px"}),a.zoomWindow.css({"background-size":a.largeWidth/a.newvalueheight+"px "+a.largeHeight/
|
44
|
+
a.newvalueheight+"px"})):("lens"==a.options.zoomType&&a.zoomLens.css({"background-size":a.largeWidth/a.newvaluewidth+"px "+a.largeHeight/a.newvaluewidth+"px"}),a.largeHeight/a.newvaluewidth<a.options.zoomWindowHeight?a.zoomWindow.css({"background-size":a.largeWidth/a.newvaluewidth+"px "+a.largeHeight/a.newvaluewidth+"px"}):a.zoomWindow.css({"background-size":a.largeWidth/a.newvalueheight+"px "+a.largeHeight/a.newvalueheight+"px"})),a.changeBgSize=!1),a.zoomWindow.css({backgroundPosition:a.windowLeftPos+
|
45
|
+
"px "+a.windowTopPos+"px"}))},setTintPosition:function(b){this.nzOffset=this.$elem.offset();this.tintpos=String(-1*(b.pageX-this.nzOffset.left-this.zoomLens.width()/2));this.tintposy=String(-1*(b.pageY-this.nzOffset.top-this.zoomLens.height()/2));this.Etoppos&&(this.tintposy=0);this.Eloppos&&(this.tintpos=0);this.Eboppos&&(this.tintposy=-1*(this.nzHeight-this.zoomLens.height()-2*this.options.lensBorderSize));this.Eroppos&&(this.tintpos=-1*(this.nzWidth-this.zoomLens.width()-2*this.options.lensBorderSize));
|
46
|
+
this.options.tint&&(this.fullheight&&(this.tintposy=0),this.fullwidth&&(this.tintpos=0),this.zoomTintImage.css({left:this.tintpos+"px"}),this.zoomTintImage.css({top:this.tintposy+"px"}))},swaptheimage:function(b,a){var c=this,e=new Image;c.options.loadingIcon&&(c.spinner=d("<div style=\"background: url('"+c.options.loadingIcon+"') no-repeat center;height:"+c.nzHeight+"px;width:"+c.nzWidth+'px;z-index: 2000;position: absolute; background-position: center center;"></div>'),c.$elem.after(c.spinner));
|
47
|
+
c.options.onImageSwap(c.$elem);e.onload=function(){c.largeWidth=e.width;c.largeHeight=e.height;c.zoomImage=a;c.zoomWindow.css({"background-size":c.largeWidth+"px "+c.largeHeight+"px"});c.zoomWindow.css({"background-size":c.largeWidth+"px "+c.largeHeight+"px"});c.swapAction(b,a)};e.src=a},swapAction:function(b,a){var c=this,e=new Image;e.onload=function(){c.nzHeight=e.height;c.nzWidth=e.width;c.options.onImageSwapComplete(c.$elem);c.doneCallback()};e.src=b;c.currentZoomLevel=c.options.zoomLevel;c.options.maxZoomLevel=
|
48
|
+
!1;"lens"==c.options.zoomType&&c.zoomLens.css({backgroundImage:"url('"+a+"')"});"window"==c.options.zoomType&&c.zoomWindow.css({backgroundImage:"url('"+a+"')"});"inner"==c.options.zoomType&&c.zoomWindow.css({backgroundImage:"url('"+a+"')"});c.currentImage=a;if(c.options.imageCrossfade){var f=c.$elem,g=f.clone();c.$elem.attr("src",b);c.$elem.after(g);g.stop(!0).fadeOut(c.options.imageCrossfade,function(){d(this).remove()});c.$elem.width("auto").removeAttr("width");c.$elem.height("auto").removeAttr("height");
|
49
|
+
f.fadeIn(c.options.imageCrossfade);c.options.tint&&"inner"!=c.options.zoomType&&(f=c.zoomTintImage,g=f.clone(),c.zoomTintImage.attr("src",a),c.zoomTintImage.after(g),g.stop(!0).fadeOut(c.options.imageCrossfade,function(){d(this).remove()}),f.fadeIn(c.options.imageCrossfade),c.zoomTint.css({height:c.$elem.height()}),c.zoomTint.css({width:c.$elem.width()}));c.zoomContainer.css("height",c.$elem.height());c.zoomContainer.css("width",c.$elem.width());"inner"!=c.options.zoomType||c.options.constrainType||
|
50
|
+
(c.zoomWrap.parent().css("height",c.$elem.height()),c.zoomWrap.parent().css("width",c.$elem.width()),c.zoomWindow.css("height",c.$elem.height()),c.zoomWindow.css("width",c.$elem.width()))}else c.$elem.attr("src",b),c.options.tint&&(c.zoomTintImage.attr("src",a),c.zoomTintImage.attr("height",c.$elem.height()),c.zoomTintImage.css({height:c.$elem.height()}),c.zoomTint.css({height:c.$elem.height()})),c.zoomContainer.css("height",c.$elem.height()),c.zoomContainer.css("width",c.$elem.width());c.options.imageCrossfade&&
|
51
|
+
(c.zoomWrap.css("height",c.$elem.height()),c.zoomWrap.css("width",c.$elem.width()));c.options.constrainType&&("height"==c.options.constrainType&&(c.zoomContainer.css("height",c.options.constrainSize),c.zoomContainer.css("width","auto"),c.options.imageCrossfade?(c.zoomWrap.css("height",c.options.constrainSize),c.zoomWrap.css("width","auto"),c.constwidth=c.zoomWrap.width()):(c.$elem.css("height",c.options.constrainSize),c.$elem.css("width","auto"),c.constwidth=c.$elem.width()),"inner"==c.options.zoomType&&
|
52
|
+
(c.zoomWrap.parent().css("height",c.options.constrainSize),c.zoomWrap.parent().css("width",c.constwidth),c.zoomWindow.css("height",c.options.constrainSize),c.zoomWindow.css("width",c.constwidth)),c.options.tint&&(c.tintContainer.css("height",c.options.constrainSize),c.tintContainer.css("width",c.constwidth),c.zoomTint.css("height",c.options.constrainSize),c.zoomTint.css("width",c.constwidth),c.zoomTintImage.css("height",c.options.constrainSize),c.zoomTintImage.css("width",c.constwidth))),"width"==
|
53
|
+
c.options.constrainType&&(c.zoomContainer.css("height","auto"),c.zoomContainer.css("width",c.options.constrainSize),c.options.imageCrossfade?(c.zoomWrap.css("height","auto"),c.zoomWrap.css("width",c.options.constrainSize),c.constheight=c.zoomWrap.height()):(c.$elem.css("height","auto"),c.$elem.css("width",c.options.constrainSize),c.constheight=c.$elem.height()),"inner"==c.options.zoomType&&(c.zoomWrap.parent().css("height",c.constheight),c.zoomWrap.parent().css("width",c.options.constrainSize),c.zoomWindow.css("height",
|
54
|
+
c.constheight),c.zoomWindow.css("width",c.options.constrainSize)),c.options.tint&&(c.tintContainer.css("height",c.constheight),c.tintContainer.css("width",c.options.constrainSize),c.zoomTint.css("height",c.constheight),c.zoomTint.css("width",c.options.constrainSize),c.zoomTintImage.css("height",c.constheight),c.zoomTintImage.css("width",c.options.constrainSize))))},doneCallback:function(){this.options.loadingIcon&&this.spinner.hide();this.nzOffset=this.$elem.offset();this.nzWidth=this.$elem.width();
|
55
|
+
this.nzHeight=this.$elem.height();this.currentZoomLevel=this.options.zoomLevel;this.widthRatio=this.largeWidth/this.nzWidth;this.heightRatio=this.largeHeight/this.nzHeight;"window"==this.options.zoomType&&(lensHeight=this.nzHeight<this.options.zoomWindowWidth/this.widthRatio?this.nzHeight:String(this.options.zoomWindowHeight/this.heightRatio),lensWidth=this.options.zoomWindowWidth<this.options.zoomWindowWidth?this.nzWidth:this.options.zoomWindowWidth/this.widthRatio,this.zoomLens&&(this.zoomLens.css("width",
|
56
|
+
lensWidth),this.zoomLens.css("height",lensHeight)))},getCurrentImage:function(){return this.zoomImage},getGalleryList:function(){var b=this;b.gallerylist=[];b.options.gallery?d("#"+b.options.gallery+" a").each(function(){var a="";d(this).data("zoom-image")?a=d(this).data("zoom-image"):d(this).data("image")&&(a=d(this).data("image"));a==b.zoomImage?b.gallerylist.unshift({href:""+a+"",title:d(this).find("img").attr("title")}):b.gallerylist.push({href:""+a+"",title:d(this).find("img").attr("title")})}):
|
57
|
+
b.gallerylist.push({href:""+b.zoomImage+"",title:d(this).find("img").attr("title")});return b.gallerylist},changeZoomLevel:function(b){this.scrollingLock=!0;this.newvalue=parseFloat(b).toFixed(2);newvalue=parseFloat(b).toFixed(2);maxheightnewvalue=this.largeHeight/(this.options.zoomWindowHeight/this.nzHeight*this.nzHeight);maxwidthtnewvalue=this.largeWidth/(this.options.zoomWindowWidth/this.nzWidth*this.nzWidth);"inner"!=this.options.zoomType&&(maxheightnewvalue<=newvalue?(this.heightRatio=this.largeHeight/
|
58
|
+
maxheightnewvalue/this.nzHeight,this.newvalueheight=maxheightnewvalue,this.fullheight=!0):(this.heightRatio=this.largeHeight/newvalue/this.nzHeight,this.newvalueheight=newvalue,this.fullheight=!1),maxwidthtnewvalue<=newvalue?(this.widthRatio=this.largeWidth/maxwidthtnewvalue/this.nzWidth,this.newvaluewidth=maxwidthtnewvalue,this.fullwidth=!0):(this.widthRatio=this.largeWidth/newvalue/this.nzWidth,this.newvaluewidth=newvalue,this.fullwidth=!1),"lens"==this.options.zoomType&&(maxheightnewvalue<=newvalue?
|
59
|
+
(this.fullwidth=!0,this.newvaluewidth=maxheightnewvalue):(this.widthRatio=this.largeWidth/newvalue/this.nzWidth,this.newvaluewidth=newvalue,this.fullwidth=!1)));"inner"==this.options.zoomType&&(maxheightnewvalue=parseFloat(this.largeHeight/this.nzHeight).toFixed(2),maxwidthtnewvalue=parseFloat(this.largeWidth/this.nzWidth).toFixed(2),newvalue>maxheightnewvalue&&(newvalue=maxheightnewvalue),newvalue>maxwidthtnewvalue&&(newvalue=maxwidthtnewvalue),maxheightnewvalue<=newvalue?(this.heightRatio=this.largeHeight/
|
60
|
+
newvalue/this.nzHeight,this.newvalueheight=newvalue>maxheightnewvalue?maxheightnewvalue:newvalue,this.fullheight=!0):(this.heightRatio=this.largeHeight/newvalue/this.nzHeight,this.newvalueheight=newvalue>maxheightnewvalue?maxheightnewvalue:newvalue,this.fullheight=!1),maxwidthtnewvalue<=newvalue?(this.widthRatio=this.largeWidth/newvalue/this.nzWidth,this.newvaluewidth=newvalue>maxwidthtnewvalue?maxwidthtnewvalue:newvalue,this.fullwidth=!0):(this.widthRatio=this.largeWidth/newvalue/this.nzWidth,this.newvaluewidth=
|
61
|
+
newvalue,this.fullwidth=!1));scrcontinue=!1;"inner"==this.options.zoomType&&(this.nzWidth>this.nzHeight&&(this.newvaluewidth<=maxwidthtnewvalue?scrcontinue=!0:(scrcontinue=!1,this.fullwidth=this.fullheight=!0)),this.nzHeight>this.nzWidth&&(this.newvaluewidth<=maxwidthtnewvalue?scrcontinue=!0:(scrcontinue=!1,this.fullwidth=this.fullheight=!0)));"inner"!=this.options.zoomType&&(scrcontinue=!0);scrcontinue&&(this.zoomLock=0,this.changeZoom=!0,this.options.zoomWindowHeight/this.heightRatio<=this.nzHeight&&
|
62
|
+
(this.currentZoomLevel=this.newvalueheight,"lens"!=this.options.zoomType&&"inner"!=this.options.zoomType&&(this.changeBgSize=!0,this.zoomLens.css({height:String(this.options.zoomWindowHeight/this.heightRatio)+"px"})),"lens"==this.options.zoomType||"inner"==this.options.zoomType)&&(this.changeBgSize=!0),this.options.zoomWindowWidth/this.widthRatio<=this.nzWidth&&("inner"!=this.options.zoomType&&this.newvaluewidth>this.newvalueheight&&(this.currentZoomLevel=this.newvaluewidth),"lens"!=this.options.zoomType&&
|
63
|
+
"inner"!=this.options.zoomType&&(this.changeBgSize=!0,this.zoomLens.css({width:String(this.options.zoomWindowWidth/this.widthRatio)+"px"})),"lens"==this.options.zoomType||"inner"==this.options.zoomType)&&(this.changeBgSize=!0),"inner"==this.options.zoomType&&(this.changeBgSize=!0,this.nzWidth>this.nzHeight&&(this.currentZoomLevel=this.newvaluewidth),this.nzHeight>this.nzWidth&&(this.currentZoomLevel=this.newvaluewidth)));this.setPosition(this.currentLoc)},closeAll:function(){self.zoomWindow&&self.zoomWindow.hide();
|
64
|
+
self.zoomLens&&self.zoomLens.hide();self.zoomTint&&self.zoomTint.hide()},changeState:function(b){"enable"==b&&(this.options.zoomEnabled=!0);"disable"==b&&(this.options.zoomEnabled=!1)}};d.fn.elevateZoom=function(b){return this.each(function(){var a=Object.create(k);a.init(b,this);d.data(this,"elevateZoom",a)})};d.fn.elevateZoom.options={zoomActivation:"hover",zoomEnabled:!0,preloading:1,zoomLevel:1,scrollZoom:!1,scrollZoomIncrement:0.1,minZoomLevel:!1,maxZoomLevel:!1,easing:!1,easingAmount:12,lensSize:200,
|
65
|
+
zoomWindowWidth:400,zoomWindowHeight:400,zoomWindowOffetx:0,zoomWindowOffety:0,zoomWindowPosition:1,zoomWindowBgColour:"#fff",lensFadeIn:!1,lensFadeOut:!1,debug:!1,zoomWindowFadeIn:!1,zoomWindowFadeOut:!1,zoomWindowAlwaysShow:!1,zoomTintFadeIn:!1,zoomTintFadeOut:!1,borderSize:4,showLens:!0,borderColour:"#888",lensBorderSize:1,lensBorderColour:"#000",lensShape:"square",zoomType:"window",containLensZoom:!1,lensColour:"white",lensOpacity:0.4,lenszoom:!1,tint:!1,tintColour:"#333",tintOpacity:0.4,gallery:!1,
|
66
|
+
galleryActiveClass:"zoomGalleryActive",imageCrossfade:!1,constrainType:!1,constrainSize:!1,loadingIcon:!1,cursor:"default",responsive:!0,onComplete:d.noop,onZoomedImageLoaded:function(){},onImageSwap:d.noop,onImageSwapComplete:d.noop}})(jQuery,window,document);
|
@@ -66,7 +66,8 @@ BoundSelect = BoundControl.extend({
|
|
66
66
|
.addClass('mb_fake')
|
67
67
|
.css('width', $('#'+this2.el).outerWidth())
|
68
68
|
.on('change', function() {
|
69
|
-
$('#'+this2.el
|
69
|
+
var v = $('#'+this2.el+'_select').val();
|
70
|
+
$('#'+this2.el).val(v);
|
70
71
|
this2.save();
|
71
72
|
});
|
72
73
|
// Make sure the existing value is in the list of options
|
@@ -78,12 +79,15 @@ BoundSelect = BoundControl.extend({
|
|
78
79
|
return false;
|
79
80
|
}
|
80
81
|
});
|
81
|
-
if (!exists)
|
82
|
+
if (!exists && !(this2.attribute.show_empty_option && (this2.attribute.value == '' || this2.attribute.value == null)))
|
83
|
+
{
|
82
84
|
this2.attribute.options.unshift({
|
83
85
|
value: this2.attribute.value,
|
84
86
|
text: this2.attribute.text
|
85
87
|
});
|
86
|
-
|
88
|
+
}
|
89
|
+
if (this2.attribute.show_empty_option)
|
90
|
+
select.append($('<option/>').val('').html('-- Empty --'));
|
87
91
|
$.each(this2.attribute.options, function(i, option) {
|
88
92
|
var opt = $('<option/>')
|
89
93
|
.val(option.value)
|
@@ -139,14 +143,19 @@ BoundSelect = BoundControl.extend({
|
|
139
143
|
|
140
144
|
save: function() {
|
141
145
|
this.attribute.value = $('#'+this.el).val();
|
142
|
-
var
|
146
|
+
var i = $('#' + this.el + "_container option[value='" + this.attribute.value + "']").index();
|
147
|
+
this.attribute.text = $('#' + this.el + " option").eq(i).text();
|
148
|
+
if (this.attribute.text == '' && this.attribute.show_empty_option)
|
149
|
+
this.attribute.text = '-- Empty --';
|
150
|
+
|
151
|
+
var this2 = this;
|
143
152
|
this.model.save(this.attribute, function(resp) {
|
144
153
|
$(this2.attribute.options).each(function(i,opt) {
|
145
154
|
if (opt.value == this2.attribute.value)
|
146
155
|
this2.attribute.text = opt.text;
|
147
|
-
});
|
156
|
+
});
|
148
157
|
if (this2.attribute.text)
|
149
|
-
$('#'+this2.el).val(this2.attribute.text);
|
158
|
+
$('#'+this2.el).val(this2.attribute.text);
|
150
159
|
$('#'+this2.el+'_check a').removeClass('loading');
|
151
160
|
if (resp.error) this2.error(resp.error);
|
152
161
|
else
|
@@ -18,7 +18,7 @@ Caboose.Store.Modules.Product = (function() {
|
|
18
18
|
self.$product = $('#product');
|
19
19
|
self.$price = self.$product.find('#product-price');
|
20
20
|
if (!self.$product.length) return false;
|
21
|
-
|
21
|
+
|
22
22
|
$.get('/products/' + self.$product.data('id') + '/info', function(response) {
|
23
23
|
self.product = response.product;
|
24
24
|
self.option1_values = response.option1_values;
|
@@ -29,6 +29,7 @@ Caboose.Store.Modules.Product = (function() {
|
|
29
29
|
self.set_variant(self.get_initial_variant());
|
30
30
|
self.set_options_from_variant(self.variant);
|
31
31
|
});
|
32
|
+
|
32
33
|
};
|
33
34
|
|
34
35
|
//
|
@@ -47,6 +48,12 @@ Caboose.Store.Modules.Product = (function() {
|
|
47
48
|
});
|
48
49
|
});
|
49
50
|
};
|
51
|
+
|
52
|
+
self.initalize_zoom = function(image_url) {
|
53
|
+
var big_image = $("#product-images").children("figure").first();
|
54
|
+
big_image.data("zoom-image",image_url);
|
55
|
+
big_image.elevateZoom();
|
56
|
+
}
|
50
57
|
|
51
58
|
self.render_images = function(callback) {
|
52
59
|
self.$images = $('#product-images', self.$product);
|
@@ -81,8 +88,8 @@ Caboose.Store.Modules.Product = (function() {
|
|
81
88
|
};
|
82
89
|
|
83
90
|
self.thumb_click_handler = function(event) {
|
84
|
-
//self.$images.children('figure').css('background-image', 'url(' + $(event.target).data('url-large') + ')');
|
85
91
|
self.$images.children('figure').css('background-image', 'url(' + $(event.target).data('url-large') + ')');
|
92
|
+
self.initalize_zoom($(event.target).data('url-large').replace('large','huge'));
|
86
93
|
};
|
87
94
|
|
88
95
|
self.image_click_handler = function(event) {
|
@@ -274,9 +281,12 @@ Caboose.Store.Modules.Product = (function() {
|
|
274
281
|
var $figure = self.$images.children('figure');
|
275
282
|
if (variant.images && variant.images.length > 0 && variant.images[0]) {
|
276
283
|
$figure.css('background-image', 'url(' + variant.images[0].urls.large + ')');
|
284
|
+
self.initalize_zoom(variant.images[0].urls.huge);
|
277
285
|
} else if ($figure.css('background-image').toLowerCase() == 'none') {
|
278
286
|
$figure.css('background-image', 'url(' + _.first(self.product.images).urls.large + ')');
|
287
|
+
self.initalize_zoom(_.first(self.product.images).urls.huge);
|
279
288
|
}
|
289
|
+
|
280
290
|
};
|
281
291
|
|
282
292
|
return self;
|