Slideshow.KenBurns = new Class({Extends: Slideshow,options:{pan: [100,100],zoom:[50,50]},initialize: function(el, data, options){options.overlap = true;options.resize = true;['pan', 'zoom'].each(function(p){if($chk(this[p])){if ($type(this[p]) != 'array') this[p] = [this[p], this[p]];
this[p].map(function(n){return (n.toInt()||0).limit(0,100);});}}, options);this.parent(el, data, options);},_show: function(fast){if (!this.image.retrieve('morph')){['a', 'b'].each(function(image){this[image].set('tween',{'duration':this.options.duration,'link':'cancel','onStart':this._start.bind(this),'onComplete':this._complete.bind(this),'property': 'opacity'}
).get('morph',{'duration':(this.options.delay+this.options.duration * 2),'link': 'cancel','transition':$arguments(0)}
);},this);}this.image.set('styles',{'bottom':'auto','left':'auto','right':'auto','top':'auto'});var props=['top left','top right','bottom left','bottom right'][this.counter % 4].split(' ');props.each(function(prop){this.image.setStyle(prop, 0);},this);dh=this.height/this.preloader.height;dw=this.width/this.preloader.width;delta=(dw>dh)?dw:dh;var values={};var zoom=($random.run(this.options.zoom)/100.0)+1;
var pan=Math.abs(($random.run(this.options.pan)/100.0)-1);['height', 'width'].each(function(prop,i){var e=Math.ceil(this.preloader[prop]*delta);var s=(e*zoom).toInt();values[prop]=[s,e];if(dw>dh||i){e=(this[prop]-this.image[prop]);s=(e*pan).toInt();values[props[i]]=[s, e];}},this);var paused=(this.firstrun&&this.options.paused);if(fast||paused){this._center(this.image);this.image.get('morph').cancel();if (paused)this.image.get('tween').cancel().set(0).start(1);else this.image.get('tween').cancel().set(1);}else{this.image.get('morph').start(values);this.image.get('tween').set(0).start(1);}}});