OLSON.namespace("OLSON.cardstack.rotator");if(typeof(OLSON.cardstack.stack)=="undefined"){console.warn("OLSON.cardstack.rotator requires OLSON.cardstack.stack");}if(typeof(OLSON.util.rotator)=="undefined"){console.warn("OLSON.cardstack.rotator requires OLSON.util.rotator");}$(document).ready(function(){OLSON.cardstack.rotator.initialize();
});OLSON.cardstack.rotator={animateCardStacks:true,isAnimatingTheStack:false,AUTOMATED_EVENT:"automatedClick",ROTATE_INTERVAL:7500,ACTIVE_STACK_Z_INDEX:100,STACK_CARD_ANIMATION_GUTTER:15,CLASSES:{AUTOROTATE:"autorotate",BACK_BUTTON:"btn-back",FORWARD_BUTTON:"btn-forward"},IDS:{},initialize:function(){$("."+OLSON.cardstack.stack.CLASSES.STACK).each(OLSON.cardstack.rotator.initializeStack);
OLSON.cardstack.rotator.attachListeners();},initializeStack:function(a,b){b=$(b);b.data("activeIndex",OLSON.cardstack.stack._getCurrentCardIndex(b));if(b.hasClass(OLSON.cardstack.rotator.CLASSES.AUTOROTATE)){b.data("rotateTimeout",setTimeout(OLSON.cardstack.rotator.rotateStack,OLSON.cardstack.rotator.ROTATE_INTERVAL));
}b.bind("OLSON.cardstack.expander.expandStack",OLSON.cardstack.rotator._stopRotation);b.bind("OLSON.feature.rotator.loadRequested",OLSON.cardstack.rotator._stopRotation);OLSON.util.rotator.restackSeriesToShowIndex(b.find(".card"),OLSON.cardstack.stack._getCurrentCardIndex(b));},attachListeners:function(){$("."+OLSON.cardstack.stack.CLASSES.STACK+" ."+OLSON.cardstack.rotator.CLASSES.FORWARD_BUTTON+", ."+OLSON.cardstack.stack.CLASSES.STACK+" ."+OLSON.cardstack.rotator.CLASSES.BACK_BUTTON).click(OLSON.cardstack.rotator.changeCard);
$("."+OLSON.cardstack.stack.CLASSES.STACK+" ."+OLSON.cardstack.rotator.CLASSES.FORWARD_BUTTON+", ."+OLSON.cardstack.stack.CLASSES.STACK+" ."+OLSON.cardstack.rotator.CLASSES.BACK_BUTTON).bind(OLSON.cardstack.rotator.AUTOMATED_EVENT,OLSON.cardstack.rotator.changeCard);},changeCard:function(k){k.preventDefault();
$(window).trigger("OLSON.cardstack.rotator.changeCard",[k]);var c=$(k.target);var g=OLSON.cardstack.stack._getStack(k);var f=OLSON.cardstack.stack._getCurrentCardIndex(g);var a=g.children(OLSON.cardstack.stack.TAGS.CARD+"."+OLSON.cardstack.stack.CLASSES.CARD);var b=a.length;var h=0;var l=1;var j=f+l;
var e=1;var d=f;if(!g||b<2||OLSON.cardstack.rotator.isAnimatingTheStack){return false;}OLSON.cardstack.rotator._stopRotation(k);if(c.get()&&c.hasClass(OLSON.cardstack.rotator.CLASSES.BACK_BUTTON)){l=-1;j=f+l;h=b-1;d=j;}if(!$(a).get(j)){j=h;if(l<0){d=h;}}if($($(a).get(f)).offset().left>=$(window).width()/2){e=-1;
}g.css("zIndex",OLSON.cardstack.rotator.ACTIVE_STACK_Z_INDEX);$($(a).get(j)).removeClass(OLSON.cardstack.stack.CLASSES.INACTIVE).addClass(OLSON.cardstack.stack.CLASSES.ACTIVE);if(OLSON.cardstack.rotator.animateCardStacks){OLSON.cardstack.rotator.isAnimatingTheStack=true;var i=g.width()+OLSON.cardstack.rotator.STACK_CARD_ANIMATION_GUTTER;
$($(a).get(d)).animate({"left":i*e+"px"},500,"easeInOutCubic",function(){OLSON.util.rotator.restackSeriesToShowIndex(a,j);}).animate({"left":"0px"},500,"easeInOutCubic",function(){$($(a).get(f)).removeClass(OLSON.cardstack.stack.CLASSES.ACTIVE).addClass(OLSON.cardstack.stack.CLASSES.INACTIVE);OLSON.cardstack.rotator.isAnimatingTheStack=false;
g.css("zIndex",0);});}else{OLSON.util.rotator.restackSeriesToShowIndex(a,j);$($(a).get(f)).removeClass(OLSON.cardstack.stack.CLASSES.ACTIVE).addClass(OLSON.cardstack.stack.CLASSES.INACTIVE);}},rotateStack:function(){var b=OLSON.cardstack.stack._getStack();var a=b.find("."+OLSON.cardstack.stack.CLASSES.CARD+"."+OLSON.cardstack.stack.CLASSES.INACTIVE).next(OLSON.cardstack.stack.TAGS.CARD+"."+OLSON.cardstack.stack.CLASSES.CARD);
if(!a.length){a=$(b.find("."+OLSON.cardstack.stack.CLASSES.CARD).get(0));}b.find("."+OLSON.cardstack.stack.CLASSES.CARD+"."+OLSON.cardstack.stack.CLASSES.ACTIVE+" ."+OLSON.cardstack.rotator.CLASSES.FORWARD_BUTTON).trigger(OLSON.cardstack.rotator.AUTOMATED_EVENT);b.data("rotateTimeout",setTimeout(OLSON.cardstack.rotator.rotateStack,OLSON.cardstack.rotator.ROTATE_INTERVAL));
},_stopRotation:function(a){var b=OLSON.cardstack.stack._getStack(a);if(a.type!==OLSON.cardstack.rotator.AUTOMATED_EVENT&&b.data("rotateTimeout")){clearTimeout(b.data("rotateTimeout"));}}};