var Spotlight=new Class({Implements:Options,options:{url:false,itemsPerRow:3},initialize:function(a,d){this.moContainer=$(a);this.setOptions(d);this.build()},build:function(){if(!(!$type(this.moContainer)||this.options.url===false)){this.maItems=$A([]);this.maItemContainers=$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(["lt","rt","rb","lb"]).each(function(c){(new Element("div",{"class":"corner "+c})).inject(a)},this);this.moPreview=new Element("div",{"class":"spPreviewImage"});this.moPreview.inject(a);a.inject(this.moContainer);this.moPreview.addEvent("click",function(c){if(!(this.moPreview.hasClass("loading")||this.moCurrentItem===false))if(Browser.Platform.mac===true&&c.meta===true||!Browser.Platform.mac&&c.control===true)window.open("/"+this.moCurrentItem.data.username);
else top.location="/"+this.moCurrentItem.data.username}.bind(this));var d=(new Element("div",{"class":"spCaption"})).inject(this.moContainer);this.moCaption=(new Element("a")).inject(d);this.maItemContainers.include((new Element("div",{"class":"spItems"})).inject(this.moContainer));this.moMoreItems=(new Element("div",{"class":"spMoreItems"})).inject(this.moContainer);this.loadData();try{this.moContainer.getNext("div.spBottom").addEvent("dblclick",function(){this.moContainer.getElements("div.spItem").each(function(c){window.open("/"+
c.data.username)})}.bind(this))}catch(b){}},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,d){var b=new Element("div",{"class":"spItem"});$A(["corner lt","border top","corner rt","border left",
"border right","corner lb","border bottom","corner rb"]).each(function(f){(new Element("div",{"class":f})).inject(b)},this);d==this.options.itemsPerRow-1&&this.showNextButton();var c=Math.floor(d/this.options.itemsPerRow);if(this.maItemContainers.length<c+1){$type(this.moMoreButton)||this.addMoreButton();this.maItemContainers.include((new Element("div",{"class":"spItems"+(c==1?" border":"")})).inject(this.moMoreItems))}b.inject(this.maItemContainers[c]);b.data=a;b.index=d;b.image=new GayImage({imageSource:a.image,
container:b,valign:"face",width:45,height:30,nudgeLeft:3,onComplete:function(){d===0&&this.showItem(b)}.bind(this)});b.image.load();var e=this;b.addEvent("mouseenter",function(){this.addClass("active")}).addEvent("mouseleave",function(){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:154,height:101,onComplete:function(){a.index>this.options.itemsPerRow-1&&this.showMoreItems();this.moCurrentItem!==false&&this.moCurrentItem.removeClass("active");this.moCurrentItem=a;this.moPreview.removeClass("loading");a.addClass("active");this.moCaption.set("text",a.data.username);this.moCaption.set("href","/"+a.data.username);a.index>0&&this.showPreviousButton();a.index<this.maItems.length-1&&this.showNextButton();a.index>=this.maItems.length-1&&this.hideNextButton();a.index===
0&&this.hidePreviousButton()}.bind(this)})).load()},showNextButton:function(){this.moNext.removeClass("hidden");this.moNext.removeEvents();this.moNext.addEvent("click",this.showNext.bind(this))},showPreviousButton:function(){this.moPrevious.removeClass("hidden");this.moPrevious.removeEvents();this.moPrevious.addEvent("click",this.showPrevious.bind(this))},hideNextButton:function(){this.moNext.addClass("hidden");this.moNext.removeEvents()},hidePreviousButton:function(){this.moPrevious.addClass("hidden");
this.moPrevious.removeEvents()},addMoreButton:function(){this.moMoreButton=new Element("div",{"class":"spMore"});this.moMoreButton.addEvent("click",function(){this.toggleMoreItems()}.bind(this)).inject(this.moMoreItems,"before")},showMoreItems:function(){this.moContainer.addClass("more");this.moMoreButton.addClass("less")},toggleMoreItems:function(){if(this.moMoreButton.hasClass("less")){this.moMoreButton.removeClass("less");this.moContainer.removeClass("more");this.moCurrentItem.index>this.options.itemsPerRow-
1&&this.showItem(this.maItems[this.options.itemsPerRow-1])}else{this.moMoreButton.addClass("less");this.moContainer.addClass("more")}},showNext:function(){$type(this.maItems[this.moCurrentItem.index+1])&&this.showItem(this.maItems[this.moCurrentItem.index+1])},showPrevious:function(){$type(this.maItems[this.moCurrentItem.index-1])&&this.showItem(this.maItems[this.moCurrentItem.index-1])}});
