;(function(global){var getSupportedStyle=function(element,supported){for(var i=supported.length-1;i>=0;i--){if(element.style[supported[i]]!==undefined){return supported[i];}};};var Transform=global.Transform=function(element,supported){this.element=element;this.style=getSupportedStyle(element,supported||['WebkitTransform','MozTransform','OTransform','msTransform']);};global.Transform.prototype={translate:function(axis,value){return this.setter(axis,value,'translate');},rotate:function(axis,value){if(typeof axis==='number')return this.add('rotate',axis);return this.setter(axis,value,'rotate');},skew:function(axis,value){return this.setter(axis,value,'skew');},scale:function(axis,value){if(typeof axis==='number')return this.add('scale',axis);this.setter(axis,value,'scale');return this;},matrix:function(){var transform=this.element.style[this.style],match=new RegExp(this.rules.matrix.regex).test(transform),shared='matrix('+Array.prototype.slice.call(arguments,0).join(',')+')';if(transform==='none')transform='';return match?this.set(transform.replace(this.rules[rule].regex,shared)):this.set(transform+' '+shared);},clear:function(){return this.set('');},set:function(def){this.element.style[this.style]=def;return this;},setter:function(a,b,method){if(typeof a==='string')return this.add(method+a.toUpperCase(),b);for(i in a)if(a.hasOwnProperty(i))this[method](i,a[i])
return this;},add:function(rule,value){var transform=this.element.style[this.style],rule=rule==='rotateZ'?'rotate':rule,match=new RegExp(this.rules[rule].regex).test(transform),unit=this.rules[rule].unit,shared=rule+'('+value+unit+')';if(transform==='none')transform='';return match?this.set(transform.replace(this.rules[rule].regex,shared)):this.set(transform+' '+shared);},remove:function(rule){return this.set(this.element.style[this.style].replace(this.rules[rule].regex,''));},rules:{'rotateX':{regex:/rotateX\((-?[0-9]+deg)\)/,unit:'deg'},'rotateY':{regex:/rotateY\((-?[0-9]+deg)\)/,unit:'deg'},'rotateZ':{regex:/rotateZ\((-?[0-9]+deg)\)/,unit:'deg'},'rotate':{regex:/rotate\((-?[0-9]+deg)\)/,unit:'deg'},'translateX':{regex:/translateX\((-?[0-9]+%)\)/,unit:'%'},'translateY':{regex:/translateY\((-?[0-9]+%)\)/,unit:'%'},'translateZ':{regex:/translateZ\((-?[0-9]+px)\)/,unit:'px'},'scale':{regex:/scale\((-?[0-9]+)\)/,unit:''},'scaleX':{regex:/scaleX\((-?[0-9]+)\)/,unit:''},'scaleY':{regex:/scaleY\((-?[0-9]+)\)/,unit:''},'skewX':{regex:/skewX\((-?[0-9]+deg)\)/,unit:'deg'},'skewY':{regex:/skewY\((-?[0-9]+deg)\)/,unit:'deg'},'scale':{regex:/scale\((-?[0-9]+\.?[0-9]+?)\)/,unit:''},'scaleX':{regex:/scaleX\((-?[0-9]+\.?[0-9]+?)\)/,unit:''},'scaleY':{regex:/scaleY\((-?[0-9]+\.?[0-9]+?)\)/,unit:''},'matrix':{regex:/matrix(.+)/,unit:''}}};var Transition=global.Transition=function(element,supported){this.element=element;this.supported=supported||{prefixes:['WebkitTransition','MozTransition','OTransition','msTransition'],transformPrefixes:['-webkit-','-moz-','-o-','-ms-']};this.style=getSupportedStyle(element,this.supported.prefixes);this.supported.index=this.supported.prefixes.indexOf(this.style);};global.Transition.prototype={map:{'duration':'Duration','property':'Property','timing-function':'TimingFunction'},set:function(property,value){if(typeof property==='string'){if(value==='transform')value=this.supported.transformPrefixes[this.supported.index]+'transform';this.element.style[this.style+this.map[property]]=value;return this;}
for(i in property)if(property.hasOwnProperty(i))this.set(i,property[i]);return this;},clear:function(rule){if(!rule){return this.set({duration:'',property:'','timing-function':''});}
return this.set(rule,'');}}})(window);Element.Properties.transform={set:function(supported){return this.store('transform',new Transform(this,supported));},get:function(){var instance=this.retrieve('transform');return instance||this.set('transform').get('transform');}};Element.Properties.transition={set:function(supported){return this.store('transition',new Transition(this,supported));},get:function(){var instance=this.retrieve('transition');return instance||this.set('transition').get('transition');}};(function(){var obj={};['translate','rotate','scale','skew','matrix'].each(function(method){obj[method]=function(){var instance=this.get('transform');instance[method].apply(instance,Array.slice(arguments,0));return this;};});obj.clearTransform=function(){this.get('transform').clear();return this;};['set','clear'].each(function(method){obj[method+'Transition']=function(){var instance=this.get('transition');instance[method].apply(instance,Array.slice(arguments,0));return this;}});Element.implement(obj);}());document.addEvent('domready',function(){var slides=$$('#gallery div'),transition={property:'transform',duration:'750ms','timing-function':'ease'},current=slides[slides.length-1].setTransition(transition);var next=function(){var last=current.setStyle('z-index',1);current=current.getNext()||slides[0];current.clearTransition().translate('y',100).setStyle('z-index',2);setTimeout(function(){last.translate('y',-100);current.setTransition(transition).translate('y',0);},0);next.delay(8000);};next.delay(5000)});
