// Javascripts for Mootools 1.0. Copyright (c) 2008 Aeron Glemann, <http://electricprism.com/aeron>, MIT Style License.

var Popup=new Class({options:{width:400,height:500,x:'auto',y:'auto',toolbar:0,location:0,directories:0,status:0,scrollbars:'yes',resizeable:1,name:'popup'},initialize:function(rel,options){this.setOptions(options);$ES('a[rel="'+rel+'"]').each(function(a){a.onclick=function(h){this.open(h);return false;}.pass(a.href,this);},this);return this;},open:function(url){url=url||this.url;if(window.webkit)url+='?br=saf';this.window=window.open(url,this.options.name,'toolbar='+this.options.toolbar+',location='+this.options.location+',directories='+this.options.directories+',status='+this.options.status+',scrollbars='+this.options.scrollbars+',resizable='+this.options.resizeable+',width='+this.options.width+',height='+this.options.height+',top='+this.options.y+',left='+this.options.x);this.focus();return this.window;},focus:function(){this.window.focus();return this;},close:function(){this.window.close();}});Popup.implement(new Options);var Snapper=new Class({initialize:function(el){this.el=$(el);var size=this.el.getSize();this.y=size.size.y;window.addEvent('resize',this.snap.bind(this));this.snap();},snap:function(){if(window.getHeight()>=window.getScrollHeight()){this.el.addClass('snap');}else{this.el.removeClass('snap');}}});var Gallery=new Class({initialize:function(el){new Slideshow(el,{hu:'img/',images:['screen-1.jpg','screen-2.jpg','screen-3.jpg','screen-4.jpg','screen-5.jpg'],navigation:'arrows+ fast'});var ul=$E('#slideshow ul');if(ul){var fx=new Fx.Style(ul,'height',{wait:false});$('slideshow').addEvents({mouseenter:function(fx){fx.start(0,19);}.pass(fx),mouseleave:function(fx){fx.start(19,0);}.pass(fx)}).fireEvent('mouseleave');}}});var Cleaner=new Class({initialize:function(el){$(el).addEvents({focus:function(){if(!this.getProperty('default'))this.setProperty('default',this.getValue());if(this.getValue()==this.getProperty('default'))this.setProperty('value','');},blur:function(){if(this.getValue()=='')this.setProperty('value',this.getProperty('default'));}});}});var Features=new Class({options:{data:['Browse over 250,000 locations in realtime 3D','Chat live with other users around the world','Read and comment on reviews... or write your own!'],delay:2000,duration:500,transition:Fx.Transitions.Quad.easeInOut},initialize:function(el,options){this.setOptions(options);this.el=$(el);if(!this.el)return false;this.fx=new Fx.Styles(this.el,{duration:this.options.duration,onComplete:this.step.bind(this),transition:this.options.transition});this.counter=0;this.hide.delay(this.options.delay,this);},hide:function(){this.p=true;this.fx.start({'left':[0,50],'opacity':[1,0]});},show:function(){this.p=false;this.fx.start({'opacity':[0,1]});},step:function(){if(this.p){this.counter=(this.counter+1)%this.options.data.length;this.el.setHTML('<em>'+this.options.data[this.counter]+'</em>').setStyle('left',0);this.show();}else{this.hide.delay(this.options.delay,this);}}});Features.implement(new Options);var Records=new Class({options:{data:[],delay:3000,duration:750,transition:Fx.Transitions.Quad.easeInOut},initialize:function(ul,options){this.setOptions(options);this.ul=$(ul);var ul=this.ul.getSize();var li=this.ul.getElement('li').getSize();this.ul.setStyles({height:(ul.size.y+li.size.y),overflow:'hidden'});this.counter=0;this.popup=new Popup();this.insert.delay(this.options.delay,this);},insert:function(){this.p=true;this.counter=(this.counter+1)%this.options.data.length;var li=new Element('li',{styles:{opacity:0,position:'absolute',left:0,top:0}}).setHTML(this.options.data[this.counter]).injectTop(this.ul);var a=li.getElement('a');a.addEvent('click',function(e,url){e=new Event(e);e.stop();this.popup.open(url);}.create({'arguments':a.href,'bind':this,'event':true}));var size=li.getSize();li.setStyles({height:0,position:'static'}).effects({duration:this.options.duration,onComplete:this.step.bind(this),transition:this.options.transition}).start({height:[0,size.size.y]});this.ul.getElements('li').getLast().effects({duration:this.options.duration,onComplete:function(){this.element.remove();},transition:this.options.transition}).start({opacity:[1,0]});},step:function(){if(this.p){this.p=false;this.ul.getElement('li').setStyle('height','auto').effects().start({opacity:[0,1]});this.insert.delay(this.options.delay,this);}}});Records.implement(new Options);