var Spotlight=new Class({Implements:Options,options:{url:false,itemsPerRow:8,walkDelay:5E3},initialize:function(a,c){this.moContainer=$(a);this.setOptions(c);this.build()},build:function(){if(!(!$type(this.moContainer)||this.options.url===false)){this.maItems=$A([]);this.maItemContainers=$A([]);this.maItemIndex=$A([]);this.moCurrentItem=false;this.buildBody()}},buildBody:function(){this.moPrevious=(new Element("div",{"class":"spPrevious hidden"})).inject(this.moContainer);this.moNext=(new Element("div",
{"class":"spNext hidden"})).inject(this.moContainer);var a=new Element("div",{"class":"spPreview"});a.addEvent("mouseenter",this.stopWalking.bind(this));a.addEvent("mouseleave",this.startWalking.bind(this));this.moPreview=new Element("div",{"class":"spPreviewImage"});this.moPreview.inject(a);a.inject(this.moContainer);this.moPreview.addEvent("click",function(b){if(!(this.moPreview.hasClass("loading")||this.moCurrentItem===false))if(Browser.Platform.mac===true&&b.meta===true||!Browser.Platform.mac&&
b.control===true)window.open("/"+this.moCurrentItem.data.username);else top.location="/"+this.moCurrentItem.data.username}.bind(this));a=(new Element("div",{"class":"spCaption"})).inject(a);this.moCaption=(new Element("a")).inject(a);this.maItemContainers.include((new Element("div",{"class":"spItems"})).inject(this.moContainer));a=(new Element("div",{"class":"spItemIndexContainer"})).inject(this.moContainer);this.moIndexSubContainer=(new Element("div",{"class":"spItemIndexSubContainer"})).setStyle("width",
14).inject(a);this.maItemIndex.include((new Element("div",{"class":"spItemIndex active"})).addEvent("click",function(){this.showItem(this.maItems[0])}.bind(this)).inject(this.moIndexSubContainer));this.loadData();try{this.moContainer.getNext("div.spBottom").addEvent("dblclick",function(){this.moContainer.getElements("div.spItem").each(function(b){window.open("/"+b.data.username)})}.bind(this))}catch(c){}},loadData:function(){(new Request.JSON({url:this.options.url,method:"get",onComplete:function(a){if($type(a)!==
false){this.moContainer.removeClass("loading");a=$A(a);if(a.length===0)this.moCaption.getParent().removeClass("spCaption");else{this.moPreview.addClass("loading");a.each(this.addItem.bind(this))}}}.bind(this)})).send();return true},addItem:function(a,c){var b=new Element("div",{"class":"spItem"});c===this.options.itemsPerRow-1&&this.showNextButton();var d=Math.floor(c/this.options.itemsPerRow);if(this.maItemContainers.length<d+1){this.maItemContainers.include((new Element("div",{"class":"spItems"+
(d>0?" hidden":"")})).inject(this.maItemContainers[0],"after"));var f=(new Element("div",{"class":"spItemIndex"+(d===0?" active":"")})).addEvent("click",function(){this.showItem(this.maItems[d*this.options.itemsPerRow])}.bind(this)).inject(this.moIndexSubContainer);this.moIndexSubContainer.setStyle("width",this.moIndexSubContainer.getStyle("width").toInt()+14);this.maItemIndex.include(f)}b.inject(this.maItemContainers[d]);b.data=a;b.index=c;b.image=new GayImage({imageSource:a.image,container:b,valign:"face",
width:38,height:38,nudgeLeft:3,onComplete:function(){if(c===0){this.showNext();this.startWalking()}}.bind(this)});b.image.load();var e=this;b.addEvent("mouseenter",function(){this.addClass("active");e.stopWalking()}).addEvent("mouseleave",function(){e.startWalking();e.moCurrentItem!==this&&this.removeClass("active")}).addEvent("click",function(){e.showItem(this)});this.maItems.include(b)},showItem:function(a){this.moPreview.addClass("loading");this.moPreview.empty();(new GayImage({imageSource:a.data.original,
container:this.moPreview,valign:"face",width:232,height:140,onComplete:function(){if(Math.floor(a.index/this.options.itemsPerRow)!==this.miContainerCounter){this.miContainerCounter=Math.floor(a.index/this.options.itemsPerRow);this.maItemContainers.each(this.hideItemContainer.bind(this));this.showItemContainer()}this.moCurrentItem!==false&&this.moCurrentItem.removeClass("active");this.moCurrentItem=a;this.miItemCounter=a.index;this.moPreview.removeClass("loading");a.addClass("active");this.moCaption.set("text",
a.data.username);this.moCaption.set("href","/"+a.data.username);this.showPreviousButton();this.showNextButton()}.bind(this)})).load()},showNextButton:function(){this.moNext.removeClass("hidden");this.moNext.removeEvents();this.moNext.addEvent("click",this.showNext.bind(this));this.moNext.addEvent("mouseenter",this.stopWalking.bind(this));this.moNext.addEvent("mouseleave",this.startWalking.bind(this))},showPreviousButton:function(){this.moPrevious.removeClass("hidden");this.moPrevious.removeEvents();
this.moPrevious.addEvent("click",this.showPrevious.bind(this));this.moPrevious.addEvent("mouseenter",this.stopWalking.bind(this));this.moPrevious.addEvent("mouseleave",this.startWalking.bind(this))},hideNextButton:function(){this.moNext.addClass("hidden");this.moNext.removeEvents()},hidePreviousButton:function(){this.moPrevious.addClass("hidden");this.moPrevious.removeEvents()},showItemContainer:function(){this.maItemContainers[this.miContainerCounter].removeClass("hidden");this.maItemIndex[this.miContainerCounter].addClass("active")},
hideItemContainer:function(a,c){if(c!==this.miContainerCounter){a.addClass("hidden");this.maItemIndex[c]&&this.maItemIndex[c].removeClass("active")}},showNext:function(){if($type(this.miContainerCounter)===false||this.miContainerCounter===this.maItemContainers.length)this.miContainerCounter=0;if($type(this.miItemCounter)===false||this.miItemCounter===this.maItems.length-1)this.miItemCounter=-1;$type(this.maItems[this.miItemCounter+1])&&this.showItem(this.maItems[this.miItemCounter+1])},showPrevious:function(){if(this.miItemCounter===
0)this.miItemCounter=this.maItems.length;$type(this.maItems[this.miItemCounter-1])&&this.showItem(this.maItems[this.miItemCounter-1])},startWalking:function(){this.moWalkEvent=this.showNext.periodical(this.options.walkDelay,this)},stopWalking:function(){$clear(this.moWalkEvent)}});

