$(document).ready(function(){
AntPopover._init();
});
var AntPopover = {
conf : {
'enable_delay' : 0,
'disable_delay' : 10000,
'cookie_lifetime' : 30*24*60*60,
'cart':{
'display' : 20000,
'cookie_lifetime' : 30*24*60*60
},
'customer':{
'display' : 0,
'cookie_lifetime' : 30*24*60*60
},
'product':{
'display' : 45000,
'cookie_lifetime' : 30*24*60*60,
'countdownLayout' : ''+
'{dl}'+
'{d10}'+
'{d1}'+
''+
':'+
''+
'{hl}'+
'{h10}'+
'{h1}'+
''+
':'+
''+
'{ml}'+
'{m10}'+
'{m1}'+
''
},
'concours':{
'display' : 0,
'cookie_lifetime' : 12*60*60
},
'promo':{
'display' : 3000,
'cookie_lifetime' : 24*60*60
}
},
// Global conf
overlay : $('.ap_overlay'),
popups : [$('#ANT_POPOVER_CART_YIELD'), $('#ANT_POPOVER_CUSTOMER_YIELD'), $('#ANT_POPOVER_PRODUCT_YIELD'), $('#ANT_POPOVER_CONCOURS_YIELD'), $('#ANT_POPOVER_PROMO_YIELD')],
triggered: false,
_init : function() {
/* Init popups */
var ap_intiTimer = new YTimer(function(){
AntPopover._cartYieldInit();
AntPopover._customerYieldInit();
AntPopover._productYieldInit();
AntPopover._concoursYieldInit();
AntPopover._promoYieldInit();
}, AntPopover.conf.enable_delay);
/* Init close button */
$('.ant_popover_container .close, .ant_popover_container .ap_btn').click(function(){
var container = $(this).closest('.ant_popover_container');
AntPopover.closePopup(container);
});
/* Init overlay click (temporaly close all popups) */
/*this.overlay.click(function(){AntPopover.closePopups();});*/
$('.ap_overlay').click(function(){AntPopover.closePopups();});
/* Init add to cart button click (temporaly close all popups) */
$('.ap_add_to_cart').click(function(e){
e.preventDefault();
AntPopover.addToCart();
});
// init cookie if we click on link
$('.ap_text_link').click(function(e){
e.preventDefault();
var container = $(this).closest('.ant_popover_container');
var ap_event = container.data('event');
var link = $(this).attr('href');
AntPopover._ajaxCall(ap_event, 1, 0, function(resp){
$('.ap_overlay').removeClass('shown');
container.removeClass('shown').addClass('closed');
window.location.href = link;
});
});
},
_cartYieldInit : function(){
console.log($('#ANT_POPOVER_CART_YIELD'));
console.log(AntPopover.conf.cart.cookie_lifetime);
if ($('#ANT_POPOVER_CART_YIELD').length){
// after a short delay
// AntPopover.displayOnStay('cart',$('#ANT_POPOVER_CART_YIELD'), AntPopover.conf.cart.cookie_lifetime, AntPopover.conf.disable_delay);
// mouse leave screen
AntPopover.displayOnLeave('cart', $('#ANT_POPOVER_CART_YIELD'), AntPopover.conf.cart.cookie_lifetime);
}
},
_customerYieldInit : function(){
if ($('#ANT_POPOVER_CUSTOMER_YIELD').length){
// after a short delay
AntPopover.displayOnStay('customer', $('#ANT_POPOVER_CUSTOMER_YIELD'), AntPopover.conf.customer.cookie_lifetime, AntPopover.conf.customer.display);
// mouse leave screen
// AntPopover.displayOnLeave('customer', $('#ANT_POPOVER_CUSTOMER_YIELD'), AntPopover.conf.customer.cookie_lifetime);
}
},
_productYieldInit : function(){
if ($('#ANT_POPOVER_PRODUCT_YIELD').length){
// mouse leave screen
AntPopover.displayOnLeave('product', $('#ANT_POPOVER_PRODUCT_YIELD'), AntPopover.conf.product.cookie_lifetime);
// private sale countdown
var now = new Date();
if (endofsale - now < 31536000000)
$('#ANT_POPOVER_PRODUCT_YIELD .ap_timer').countdown({serverSync:function(){return new Date();}, padZeroes: true, until: endofsale, layout: AntPopover.countdownLayout});
else
$('#ANT_POPOVER_PRODUCT_YIELD .ap_countdown_field').remove();
}
},
_concoursYieldInit : function(){
if ($('#ANT_POPOVER_CONCOURS_YIELD').length){
// after a short delay
AntPopover.displayOnStay('concours', $('#ANT_POPOVER_CONCOURS_YIELD'), AntPopover.conf.concours.cookie_lifetime, AntPopover.conf.concours.display);
// mouse leave screen
/*AntPopover.displayOnLeave('concours', $('#ANT_POPOVER_CONCOURS_YIELD'), AntPopover.conf.concours.cookie_lifetime);*/
}
},
_promoYieldInit : function(){
if ($('#ANT_POPOVER_PROMO_YIELD').length && $(window).width()>767){
// after a short delay
AntPopover.displayOnStay('promo', $('#ANT_POPOVER_PROMO_YIELD'), AntPopover.conf.promo.cookie_lifetime, AntPopover.conf.promo.display);
// mouse leave screen
/*AntPopover.displayOnLeave('promo', $('#ANT_POPOVER_PROMO_YIELD'), AntPopover.conf.promo.cookie_lifetime);*/
}
},
displayOnStay : function(event, element, cookie_lifetime, delay){
// after a short delay
var _ydost = new YTimer(function() {
AntPopover.displayPopup(event, element, cookie_lifetime, delay);
}, delay);
},
displayOnLeave : function(event, element, cookie_lifetime){
// mouse leave screen
$('body').mouseleave(function(){
AntPopover.displayPopup(event, element, cookie_lifetime, AntPopover.conf.disable_delay);
});
},
displayPopup : function(ap_event, element, cookie_lifetime, delay){
if (typeof(element)==='undefined')
return;
if (element.hasClass('closed') || element.hasClass('tmp_closed'))
return;
AntPopover._ajaxCall(ap_event, 0, cookie_lifetime, function(resp){
if (resp===true){
if (!$('input:focus').length && !$('.ant_popover_container.shown').length){
element.addClass('shown');
$('header').addClass('ap_overlay_header');
/*AntPopover.overlay.addClass('shown');*/
$('.ap_overlay').addClass('shown');
/*if(ap_event == "promo") {
AntPopover._ajaxCall(ap_event, 1, 0, function(resp){});
}*/
}
else if (typeof(delay!=='undefined') && delay){
_pdtid = new YTimer(function() {
AntPopover.displayPopup(ap_event, element, delay, cookie_lifetime);
}, delay);
}
}
});
},
closePopups : function(){
AntPopover.closePopup($('.ant_popover_container.shown'));
/*
this.overlay.removeClass('shown');
$('.ant_popover_container').removeClass('shown').addClass('tmp_closed');
var _pctid = new YTimer(function(){
$('.ant_popover_container').removeClass('tmp_closed')
}, AntPopover.conf.disable_delay);
if (typeof(_pdtid) !== 'undefined'){
_pdtid.add(AntPopover.conf.disable_delay);
}
*/
},
closePopup : function(element){
/*this.overlay.removeClass('shown');*/
$('.ap_overlay').removeClass('shown');
$('header').removeClass('ap_overlay_header');
var ap_event = element.data('event');
AntPopover._ajaxCall(ap_event, 1, 0, function(resp){});
element.removeClass('shown').addClass('closed');
},
addToCart : function(){
var add_button = $('#buy_block #add_to_cart .btn');
add_button.click();
AntPopover.closePopups();
},
_ajaxCall : function(ap_event, update, lifetime, callback){
if (typeof(update) === 'undefined')
update = 0;
if (typeof(lifetime) === 'undefined')
lifetime = AntPopover.conf.cookie_lifetime;
$.ajax({
type: "POST",
url: ap_ajax_path,
cache: false,
dataType: "json",
data : {
ajax: true,
ap_event: ap_event,
update: update,
lifetime: lifetime,
},
success : function(data)
{
callback(data);
}
});
},
__shutdown : function(){
/*this.overlay.removeClass('shown');*/
$('.ap_overlay').removeClass('shown');
if (typeof(_pctid)!=='undefined')
clearTimeout(_pctid)
if (typeof(_pytid)!=='undefined')
clearTimeout(_pytid)
if (typeof(_pdtid)!=='undefined')
clearTimeout(_pdtid)
$('.ant_popover_container').removeClass('shown').addClass('closed');
},
__restart : function(){
$('.ant_popover_container').removeClass('shown closed tmp_closed');
/*this.overlay.removeClass('shown');*/
$('.ap_overlay').removeClass('shown');
this._init();
}
}
/* TIMER */
function YTimer(callback, time) {
this.setTimeout(callback, time);
}
YTimer.prototype.setTimeout = function(callback, time) {
var self = this;
if(this.timer) {
clearTimeout(this.timer);
}
this.finished = false;
this.callback = callback;
this.time = time;
this.timer = setTimeout(function() {
self.finished = true;
callback();
}, time);
this.start = Date.now();
}
YTimer.prototype.add = function(time) {
if(!this.finished) {
// add time to time left
time = this.time - (Date.now() - this.start) + time;
this.setTimeout(this.callback, time);
}
}