var Configurable={setOptions:function(options){this.options={};var constructor=this.constructor;if(constructor.superclass){var chain=[],klass=constructor;while(klass=klass.superclass){chain.push(klass)}chain=chain.reverse();for(var i=0,len=chain.length;i<len;i++){Object.extend(this.options,klass.DEFAULT_OPTIONS||{})}}Object.extend(this.options,constructor.DEFAULT_OPTIONS);return Object.extend(this.options,options||{})}};var Bubble=Class.create(Configurable,{initialize:function(element,options){this.element=$(element);this.options=this.setOptions(options);this.addObservers()},addObservers:function(){this.observers={mouseOver:function(){if(!this.id){this.create()}$(this.id).show()}.bind(this),mouseOut:this.onMouseOut.bind(this)};this.element.observe("mouseover",this.observers.mouseOver);this.element.observe("mouseout",this.observers.mouseOut)},create:function(){var bubble=new Element("div",{"class":this.options.className}).update(this.options.text);bubble.clonePosition(this.element,{setWidth:false,setHeight:false,offsetTop:this.options.offsetTop,offsetRight:this.options.offsetLeft});$(document.body).appendChild(bubble);this.id=bubble.identify();bubble.observe("mouseout",this.observers.mouseOut)},onMouseOut:function(event){var element=Event.element(event);if(event.relatedTarget==this.element||$(event.relatedTarget).hasClassName("bubble")){}else{$(this.id).hide()}},destroy:function(){this.element.stopObserving("mouseover",this.observers.mouseOver);this.element.stopObserving("mouseout",this.observers.mouseOut);this.element.remove()}});Bubble.DEFAULT_OPTIONS={text:"",className:"bubble",offsetTop:17,offsetLeft:0,effects:true};var Tabs=Class.create({initialize:function(div,options){this.options=options;this.windows=$(div).select(".window");this.tabs=$(div).select(".tab");if($(div).select(".tab.selected").length==0){this.tabs[0].addClassName("selected")}this.tabs.each(function(tab){tab.observe("click",this.onClick.bindAsEventListener(this))}.bind(this));var length=0;for(var i=0;i<this.tabs.length;i++){length+=this.tabs[i].getWidth()}},onClick:function(event){var element=Event.element(event);if(!element.hasClassName("tab")){element=element.up()}this.tabs.invoke("removeClassName","selected");this.windows.invoke("hide");element.addClassName("selected");var index=0;this.tabs.each(function(tab){if(tab==element){throw $break}index++}.bind(this));this.windows[index].show();if(this.options){if(this.options.onChange){this.options.onChange(this.windows[index])}}}});var Cookie=Class.create({create:function(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString()}else{var expires=""}var domain=window.location.hostname;document.cookie=name+"="+value+expires+"; path=/;domain="+domain},erase:function(name){this.create(name,"",-1)},read:function(name){var nameEQ=name+"=";var ca=document.cookie.split(";");for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==" "){c=c.substring(1,c.length)}if(c.indexOf(nameEQ)==0){return c.substring(nameEQ.length,c.length)}}return null}});var Popup=Class.create({initialize:function(body,width){if($("popup")){return }this.body=body;if(width){this.width=width}else{this.width=500}this.build();this.center()},build:function(){var overlay=new Element("div",{"id":"overlay"});document.body.appendChild(overlay);var template=new Template('			<div class="top"> 				<div class="left"></div> 				<div class="center"></div> 				<div class="right"></div> 			</div> 			<div class="content"> 				<div class="inners"> 					<div class="body">#{body}</div> 					<div class="controls"><div class="right btn">Close</div></div> 				</div> 			</div> 			<div class="bottom"> 				<div class="left"></div> 				<div class="center"></div> 				<div class="right"></div> 			</div> 		');var popup={body:this.body};popup=template.evaluate(popup);this.pop=new Element("div",{"id":"popup"}).update(popup);this.pop.setStyle({"width":this.width+"px"});this.pop.hide();document.body.appendChild(this.pop);$("popup").select(".controls")[0].select(".btn")[0].observe("click",this.close.bindAsEventListener(this));new Effect.Appear(this.pop,{duration:0.5})},center:function(){var vo=$(document.body).viewportOffset();var vh=document.viewport.getDimensions();var height=$("popup").getHeight();var width=$("popup").getWidth();var adjustV=Math.abs(vo[1])+((vh["height"]-height)/2);var adjustH=Math.abs((vh["width"]-width)/2);if(adjustV<=0){adjustV=10}$("popup").setStyle({"top":adjustV+"px","left":adjustH+"px","margin":"0px"});var oh=$(document.body).getHeight();$("overlay").setStyle({"height":oh+"px"})},close:function(){if($("popup")){new Effect.Fade("popup",{duration:0.1,afterFinish:function(){if($("popup")){$("popup").remove();$("overlay").remove()}}})}},update:function(body){load=$("popup").select(".body")[0];load.update(body);load.setStyle({"height":"auto"});var height=load.getHeight();load.setStyle({"height":"300px"});new Effect.Morph(load,{style:{height:height+"px"},duration:0.2,afterFinish:function(){load.setStyle({"height":"auto"})}});load.removeClassName("loading");this.center();var inputs=load.select("input");if(inputs.length>0){inputs[0].focus()}},element:function(){return $("popup").select(".body")[0]}});ModalPopup=Class.create(Popup,{initialize:function($super,body,callbackOK,callbackCancel,close,width){if($("popup")){return }if(close==undefined){close=true}$super(body,width);var controls=$("popup").select(".controls")[0];controls.select(".btn")[0].hide();controls.addClassName("done");var ok=new Element("input",{"type":"button","value":"OK","class":"btn"});var cancel=new Element("div",{"class":"cancel"}).update("Cancel");var success=function(){if(callbackOK){var result=callbackOK();if(result===false){return }else{if(close){this.close()}}}else{if(close){this.close()}}}.bind(this);this.observe=function(event){if(event.keyCode==13){event.stop();Event.stopObserving(document,"keypress",this.observe);success()}}.bind(this);document.observe("keypress",this.observe);ok.observe("click",function(event){var button=Event.element(event);button.disable();button.addClassName("disable");Event.stopObserving(document,"keypress",this.observe);success()}.bindAsEventListener(this));cancel.observe("click",function(){Event.stopObserving(document,"keypress",this.observe);if(callbackCancel){callbackCancel()}this.close()}.bindAsEventListener(this));controls.appendChild(ok);controls.appendChild(cancel);if(body==""){load=$("popup").select(".body")[0];load.setStyle({"height":"300px"});load.addClassName("loading");this.center()}}});var Tjax=Class.create();Tjax.Request=Class.create(Tjax,{initialize:function(url,options,callback,failure){var defaults={onSuccess:function(transport){this.response(transport,callback,failure)}.bind(this),onFailure:function(transport){Object.extend(transport,{success:callback,failure:failure});failure(transport)}};Object.extend(options,defaults);new Ajax.Request(url,options)},response:function(transport,callback,failure){Object.extend(transport,{success:callback,failure:failure});var json=transport.responseText.evalJSON();if(json["response"]=="success"){if(callback){callback(json["data"])}}else{if(failure){failure(transport,json["data"])}else{new Popup(json["data"])}}}});LinkConfirm=Class.create({initialize:function(element,message){this.element=$(element);this.element.observe("click",function(e){e.stop();new ModalPopup(message,this.ok.bindAsEventListener(this),this.cancel.bindAsEventListener(this),false)}.bindAsEventListener(this))},ok:function(){window.location=this.element.readAttribute("href")},cancel:function(){}});Object.extend(Array.prototype,{insert:function(index){var args=Array.prototype.slice.call(arguments,1);this.length=Math.max(this.length,index);index=index<0?this.length:index;if(args.length>1){this.splice.apply(this,[index,0].concat(args))}else{this.splice(index,0,args[0])}return this}});var Admin=Class.create({initialize:function(){if($("add_channel")){$("add_channel").observe("change",this.onselected.bindAsEventListener(this));$$(".form .channel").invoke("observe","click",this.click.bindAsEventListener(this))}if($("add_category")){$("add_category").observe("change",this.onselected.bindAsEventListener(this));$$(".form .category").invoke("observe","click",this.click.bindAsEventListener(this))}var a=$("aliases").select("a");if(a.length>10){var hidden=new Element("span",{"style":"display:none;"});for(var i=10;i<a.length;i++){hidden.insert({bottom:a[i]})}$("aliases").insert({bottom:hidden});var more=new Element("span",{"class":"more"}).update("More ...");more.observe("click",function(){hidden.toggle();if(more.innerHTML=="More ..."){more.innerHTML="Less"}else{more.innerHTML="More ..."}});$("aliases").insert({bottom:more})}},onselected:function(e){var element=Event.element(e);element.childElements().each(function(e){if(e.selected){se=e.innerHTML.replace(/-/g,"")}});this.hidden=element.up().select('input[type="hidden"]')[0];if($F(this.hidden)==""){this.hidden.writeAttribute("value",$F(element))}else{var values=$F(this.hidden).split("-");for(var i=0;i<values.length;i++){if(values[i]==$F(element)){return }}this.hidden.writeAttribute("value",$F(this.hidden)+"-"+$F(element))}var selected=new Element("div",{"class":"n"+$F(element)+" channel"}).update(se);selected.observe("click",this.click.bindAsEventListener(this));element.insert({before:selected})},click:function(e){var selected=Event.element(e);if(this.hidden==undefined){this.hidden=selected.up().select('input[type="hidden"]')[0]}var id=$w(selected.className)[0].substr(1);var ids=this.hidden.readAttribute("value").split("-");var index=false;for(var i=0;i<ids.length;i++){if(ids[i]==id){index=i}}if(index!==false){ids.splice(index,1)}this.hidden.writeAttribute("value",ids.join("-"));selected.remove()}});var Comments=Class.create({initialize:function(load){if(load!==false){this.id=$("main").down().readAttribute("id").replace("s_","");this.comments=$$("li.comment");this.read();this.tabs();this.comments.each(function(item){var cobject=new Comment(item);this.data.each(function(id){if(id==item.readAttribute("id").substring(2)){cobject.disable()}});this.url_spam.each(function(id){if(id==item.readAttribute("id").substring(2)){cobject.spam()}})}.bind(this));if($("more")){$("more").observe("click",this.more.bindAsEventListener(this))}this.poll();if($("tweets")){$("tweets").select(".tweet").each(function(item){var coobject=new Comment(item)})}}},read:function(){this.data=this.cookie("tweetmeme_tweeted_comments");this.url_spam=this.cookie("tweetmeme_reported_comments")},poll:function(){if($("polling")&&$("comments")&&$("comments").firstDescendant()){var id=$("comments").firstDescendant().readAttribute("id").substr(2);var timer=function(){new Tjax.Request("/ajax/since/",{method:"post",postBody:"id="+id},function(data){if($$(".comments")[0].getStyle("display")!="none"){if($$(".btn.clicked").length==0){if(data!=0){data==1?body="There is "+data+" new comment waiting, click to refresh":body="There are "+data+" new comments waiting, click to refresh";if($("update")){$("update").update(body)}else{var update=new Element("a",{"id":"update","href":window.location.pathname}).update(body);$("comments").insert({"before":update})}}setTimeout(timer,30000)}}})};setTimeout(timer,30000)}},save:function(id,type){var cook=new Cookie();this.read();switch(type){case"tweet":this.data.push(id);cook.create("tweetmeme_tweeted_comments",this.data.join("-"),7);break;case"urls":this.url_spam.push(id);cook.create("tweetmeme_reported_comments",this.url_spam.join("-"),7);break}},cookie:function(name){var cook=new Cookie();var variable=new Array();var data=cook.read(name);if(data!=null){variable=data.split("-")}else{variable=new Array()}return variable},more:function(){$("more").addClassName("loading");this.comments=$$("#comments li.comment");var last_id=this.comments[this.comments.length-1].readAttribute("id").replace("c_","");var order=$$(".order .selected")[0].innerHTML;order=="Time"?order="created_at":order="retweets";new Tjax.Request("/ajax/morecomments",{method:"post",postBody:"url_id="+this.id+"&from_id="+last_id+"&order="+order},function(data){data.each(function(comment){$("comments").insert({bottom:comment});var children=$("comments").childElements();var item=children[children.length-1];var cobject=new Comment(item);this.data.each(function(id){if(id==item.readAttribute("id").substring(2)){cobject.disable()}});this.url_spam.each(function(id){if(id==item.readAttribute("id").substring(2)){cobject.spam()}})}.bind(this));$("more").removeClassName("loading");if(data.length==0){$("more").remove()}}.bind(this))},tabs:function(){new Tabs("s_"+this.id,{onChange:function(window){if(window.hasClassName("loading")){new Tjax.Request("/ajax/tab",{method:"post",postBody:"id="+this.id+"&tab="+$w(window.className)[1]},function(data){if(window.hasClassName("comments")){if($("reply")){window.update(data.substr(data.lastIndexOf("</form>")));$("comments").previous().insert({before:$("reply")});$("reply").show()}else{window.update(data)}}else{if(window.hasClassName("tweets")){window.update(data);$$("li.expand").each(function(item){item.observe("click",function(e){var e=Event.element(e);e.select("ul")[0].toggle();e.toggleClassName("open");calculateHeight()})})}else{window.update(data)}}window.removeClassName("loading");this.initialize();$("comments").select(".abuse").each(function(button){new Abuse_item(button)}.bind(this));calculateHeight()}.bind(this))}if(window.hasClassName("thread")){if($F("reply_to")!=""){$("thread").insert({before:$("reply")})}}else{if(window.hasClassName("comments")){if($("comments")){$("comments").previous().insert({before:$("reply")})}}}this.poll()}.bind(this)})}});var Comment=Class.create(Comments,{initialize:function(comment){this.comment=comment;var reply=this.comment.select(".reply")[0];if(reply){reply.observe("click",this.reply.bindAsEventListener(this))}var retweets=this.comment.select(".retweet");if(retweets.length>0){this.span=retweets[0];this.listener=function(e){e.stop();this.request()}.bind(this);this.span.observe("click",this.listener)}},reply:function(event){if(!User.get()){window.location="/auth/signup";return }var element=Event.element(event);var id=element.up("li").readAttribute("id").substr(2);var ids=$F("reply_to");var _ids=ids.split(":");var hasid=false;_ids.each(function(_id){if(_id==id){hasid=true;throw $break}});if(hasid){return }if(ids==""){$("reply_to").writeAttribute("value",id)}else{$("reply_to").writeAttribute("value",ids+":"+id)}var name=element.up("li").select("strong")[0].innerHTML;var close=new Element("span",{"class":"r_"+id+" close"});var span=new Element("span",{"class":"name"}).update('<div class="left">'+name+"</div>");span.insert({bottom:close});new Effect.Highlight(span,{startcolor:"#DEEFC2",keepBackgroundImage:true});close.observe("click",function(e){var element=Event.element(e);var id=$w(element.className)[0].substr(2);var ids=$F("reply_to").split(":");for(var i=0;i<ids.length;i++){if(ids[i]==id){var index=i}}ids.splice(index,1);$("reply_to").writeAttribute("value",ids.join(":"));var count=span.up().select(".name").length;if(count==1){span.up(1).hide();if($("comments")){$("comments").previous().insert({before:$("reply")})}else{if($("tweets")){$("tweets").previous(2).insert({before:$("reply")})}else{$("reply").hide()}}}span.remove()});$("to").insert({top:span});$("to").up().show();element.up("li").insert({bottom:$("reply")});$("reply").show()},spam:function(){if(this.comment.select("div.hide").length==0){var box=new Element("div",{"class":"hide"});this.comment.insert({bottom:box});this.comment.setStyle({"position":"relative"});var button=this.comment.select(".retweet")[0];button.addClassName("selected");button.update("reported")}},request:function(){if(!User.get()){window.location="/auth/signup";return }var id=this.comment.readAttribute("id").substring(2);new Tjax.Request("/ajax/retweetcomment",{method:"post",postBody:"id="+id},function(data){this.response()}.bind(this),function(transport,data){if(data=="Already retweeted."){this.disable();this.save(this.comment.readAttribute("id").substr(2),"tweet")}}.bind(this))},disable:function(){this.span.addClassName("selected");this.span.innerHTML="tweeted";Event.stopObserving(this.span,"click",this.listener)},response:function(){this.comment.removeClassName("loading");var celement=this.comment.select("span")[0];celement.innerHTML=parseInt(celement.innerHTML)+1;this.disable();this.save(this.comment.readAttribute("id").substr(2),"tweet")}});var Menu=Class.create({initialize:function(){this.root=$$(".menu li.root");this.sub=$$(".menu li.sub");this.bind()},bind:function(){this.root.each(function(li){li.observe("mouseout",this.mouseout.bindAsEventListener(this));li.down("a").observe("mouseover",this.mouseover.bindAsEventListener(this));li.down("a").observe("click",this.click.bindAsEventListener(this))}.bind(this))},mouseout:function(e){var element=Event.element(e);if(!element.hasClassName("root")){element=element.up("li.root")}if($(e.relatedTarget)){if(!$(e.relatedTarget).descendantOf(element)){if(element.next()){element.next().removeClassName("next")}if(element.down().next()){element.down().next().hide()}element.removeClassName("hover");if(element.down(1)){element.down(1).next().removeClassName("switch")}}}else{element.next().removeClassName("next")}},mouseover:function(e){var element=Event.element(e);var up=element.up("li");if(!up.hasClassName("first")&&!up.hasClassName("last")){if(element.up("li").next()){element.up("li").next().addClassName("next")}}},click:function(e){var element=Event.element(e);if(element.hasClassName("dropdown")){e.stop();var a=element.up("a");if(a.next()){if(a.next().getStyle("display")=="none"){this.root.each(function(item){if(item.down().next()){item.down().next().hide();item.down("span").removeClassName("switch")}item.removeClassName("hover")});element.addClassName("switch");a.up().addClassName("hover");var ul=a.next();var position=ul.clonePosition(a,{setWidth:false,setHeight:false,offsetTop:34});if(a.up().hasClassName("last")){var left=parseInt(ul.getStyle("left").replace("px",""));ul.setStyle({width:"368px",left:(left-287)+"px"})}else{var w=a.getWidth();if(w>ul.getWidth()){ul.setStyle({width:(w-2)+"px"})}}a.next().show()}else{a.next().hide();element.removeClassName("switch");a.up().removeClassName("hover")}}}},hideSub:function(e){var element=Event.element(e);if($(e.relatedTarget)){if($(e.relatedTarget).descendantOf(element.up("ul"))){}else{if(!this.ul.hasClassName("categories")){this.ul.hide();this.ul.up().removeClassName("hover")}}}}});var Rules=Class.create({initialize:function(){this.ns=$F("ns");if($("ns_id")){this.ns_id=$F("ns_id")}this.rule_id=$F("rule_id");this.url="/"+this.ns+"/";if(this.ns_id){this.url+=this.ns_id+"/"}this.url+=this.rule_id;this.load();$("drags").childElements().each(function(drag){new Draggable(drag,{revert:true,ghosting:true,scroll:window,onStart:function(drag,event){drag.element.setStyle({"height":"auto"})}})});document.observe("widget:deleted",this.load.bindAsEventListener(this))},load:function(){this.list={children:new Array()};var children=$("canvas").childElements();children.each(function(child){if(child.hasClassName("_rule")||child.hasClassName("join")){var dummy=this.build(child);this.list.children.push(dummy)}}.bind(this));this.reformat(this.list);Droppables.add($("canvas"),{hoverclass:"hover",onDrop:this.onDrop.bind(this)})},build:function(element){if(element.hasClassName("wrap")){var classes=$w(element.down().next().className)}else{var classes=$w(element.className)}switch(classes[0]){case"rules":var children=element.down().next().childElements();var temp=new Array();children.each(function(child){if(child.hasClassName("wrap")||child.hasClassName("join")){temp.push(this.build(child))}}.bind(this));var obj={object:new Rule({element:element,onDrop:this.onDrop.bind(this),url:this.url}),children:temp};break;case"rule":var obj={object:new Rule({element:element,onDrop:this.onDrop.bind(this),url:this.url})};break;case"join":var obj={object:new Join({element:element,onChange:this.onChange.bind(this),onDrop:this.onDrop.bind(this),url:this.url})};break}return obj},onDrop:function(drag,drop,event){var obj=function(){if($("popup")){var form=$("popup_form").serialize()}else{form=false}var success=function(data){this.popup.close();$("canvas").up().update(data["view"]);this.load()}.bind(this);var classnames=$w(drop.className);var do_switch=true;if(classnames.length>1){if(classnames[1]=="canvas"){var where="new";var pos="";do_switch=false}}if(do_switch){switch(classnames[0]){case"gap":switch(classnames[1]){case"top":var where="top";var pos=drop.next().readAttribute("id").replace("p_","");break;case"bottom":var where="bottom";var pos=drop.previous().readAttribute("id").replace("p_","");break}break;case"join":var where="bottom";var pos=drop.previous().down().next().readAttribute("id").replace("p_","");break;case"canvas":var where="new";var pos="";break;default:var where="inside";var pos=drop.readAttribute("id").replace("p_","");break}}var rule=$w($("canvas").className)[0].replace("rule_","");new Tjax.Request(this.url+"/update/insert",{method:"post",postBody:"rule="+rule+"&where="+where+"&pos="+pos+"&"+form},success);return false};this.popup=new ModalPopup("",obj.bindAsEventListener(this));new Tjax.Request(this.url+"/update/template/",{method:"post",postBody:"template="+$w(drag.className)[0]},function(data){this.popup.update(data)}.bind(this))},reformat:function(list){if(list.children){list.children.each(function(element,i){if(i!=list.children.length-1&&list.children[i+1].object.box.wrap.hasClassName("join")){element.object.box.rightGap.hide()}if(i!=0&&list.children[i-1].object.box.wrap.hasClassName("join")){element.object.box.leftGap.hide()}if(element.children){this.reformat(element)}}.bind(this))}},onChange:function(event){var but=Event.element(event);if(but.hasClassName("or")){var type="and"}else{var type="or"}var success=function(data){$("canvas").up().update(data["view"]);this.load()}.bind(this);var rule=$w($("canvas").className)[0].replace("rule_","");var id=but.up().readAttribute("id").replace("p_","");this.stopObserving(this.list);new Tjax.Request(this.url+"/update/change",{method:"post",postBody:"rule="+rule+"&pos="+id+"&type="+type},success)},stopObserving:function(list){if(list.children){list.children.each(function(element){this.stopObserving(element)}.bind(this))}if(list.object){list.object.stopObserving()}},startObserving:function(list){if(list.children){list.children.each(function(element){this.startObserving(element)}.bind(this))}if(list.object){list.object.addObservers()}}});var Box=Class.create({initialize:function(options){this.options=Object.extend(Box.DEFAULT_OPTIONS,options||{})},addObservers:function(){this.observers={onDrop:this.options.onDrop.bind(this),onDrag:this.options.onDrag.bind(this),onEdit:this.options.onEdit.bind(this),onDelete:this.options.onDelete.bind(this)};if(this.box.edit){this.box.edit.observe("click",this.observers.onEdit)}if(this.box.del){this.box.del.observe("click",this.observers.onDelete)}Droppables.add(this.box.leftGap,{hoverclass:"hover",onDrop:this.observers.onDrop});Droppables.add(this.box.rightGap,{hoverclass:"hover",onDrop:this.observers.onDrop});this.drag=new Draggable(this.box.wrap,{handle:this.box.handle,revert:true,reverteffect:function(element,top_offset,left_offset){new Effect.MoveBy(element,-top_offset,-left_offset,{duration:0})},endeffect:false,onStart:function(drag,mouse){this.observers.onDrag(drag,mouse);drag.element.setStyle({"position":"relative"})}.bind(this),scroll:window});if(this.options.type=="container"||this.options.type=="rule"){Droppables.add(this.box.type,{hoverclass:"hover",onDrop:this.observers.onDrop})}this.box.type.setStyle({"position":"static"});this.box.leftGap.setStyle({"position":"static"});this.box.rightGap.setStyle({"position":"static"});this.box.wrap.setStyle({"position":"static"})},create:function(){var name=new Element("div",{"class":"name"}).update(this.options.name);if(this.options.icon_url){var icon=new Element("img",{"src":this.options.icon_url,"alt":"*"});name.insert({top:icon})}var edit=new Element("div",{"class":"edit"}).update("Edit");var del=new Element("div",{"class":"delete"});var hand=new Element("div",{"class":"hand"});var buttons=new Element("div",{"class":"buttons"});buttons.appendChild(del);buttons.appendChild(edit);hand.appendChild(name);var handle=new Element("div",{"class":"handle"});handle.appendChild(buttons);handle.appendChild(hand);var type=new Element("div",{"class":this.options.type+" drop","id":"w_"+this.options.id});type.appendChild(handle);var leftGap=new Element("div",{"class":"gap left drop"});var rightGap=new Element("div",{"class":"gap right drop"});var wrap=new Element("div",{"class":"wrap"});wrap.appendChild(leftGap);wrap.appendChild(type);wrap.appendChild(rightGap);if(this.options.type=="container"){type.addClassName("s"+this.options.size)}if(this.options.type=="widgets"){var belly=new Element("div",{"class":"belly"});type.appendChild(belly)}this.box={wrap:wrap,leftGap:leftGap,rightGap:rightGap,type:type,handle:hand,name:name,edit:edit,del:del}},stopObserving:function(){Droppables.remove(this.box.leftGap);Droppables.remove(this.box.rightGap);Droppables.remove(this.box.type);if(this.options.type!="layout"){if(this.box.edit){Event.stopObserving(this.box.edit,"click",this.observers.onEdit)}if(this.box.del){Event.stopObserving(this.box.del,"click",this.observers.onDelete)}}}});Box.DEFAULT_OPTIONS={onDrag:Prototype.emptyFunction,onDrop:Prototype.emptyFunction,onEdit:Prototype.emptyFunction,onDelete:Prototype.emptyFunction,type:""};var Rule=Class.create(Box,{initialize:function($super,options){this.options=Object.extend({element:false,type:"rule",onDrag:Prototype.emptyFunction,onEdit:Prototype.emptyFunction,onNegative:this.onNegative,onDelete:this.onDelete,url:""},options||{});this.create();this.addObservers()},create:function(){this.box={wrap:this.options.element,leftGap:this.options.element.down(),type:this.options.element.down().next(),rightGap:this.options.element.down().next(1),neg:this.options.element.down().next().down()};if(!this.box.type.hasClassName("rules")){Object.extend(this.box,{del:this.options.element.down().next().down().next().down().next().next()})}},addObservers:function(){this.observers={onDrop:this.options.onDrop.bind(this),onDelete:this.options.onDelete.bind(this),onNegative:this.options.onNegative.bind(this)};if(this.box.del){this.box.del.observe("click",this.observers.onDelete)}if(this.box.neg){this.box.neg.observe("click",this.observers.onNegative)}Droppables.add(this.box.leftGap,{hoverclass:"hover",onDrop:this.observers.onDrop});Droppables.add(this.box.rightGap,{hoverclass:"hover",onDrop:this.observers.onDrop});Droppables.add(this.box.type,{hoverclass:"hover",onDrop:this.observers.onDrop})},stopObserving:function(){Droppables.remove(this.box.leftGap);Droppables.remove(this.box.rightGap);Droppables.remove(this.box.type);if(this.box.del){Event.stopObserving(this.box.del,"click",this.observers.onDelete)}if(this.box.neg){Event.stopObserving(this.box.neg,"click",this.observers.onNegative)}},onDelete:function(event){var element=Event.element(event);var id=element.up(1).readAttribute("id").replace("p_","");var temp=element.up(2);temp.down().next().setOpacity("0.5");var success=function(data){$("canvas").up().update(data["view"]);$(document.body).fire("widget:deleted")}.bind(this);var failure=function(data){temp.down().next().setOpacity("1");temp.fire("widget:error",{message:"An error occured, the widget wasn't deleted"})};$(document.body).fire("widget:loading");var rule=$w($("canvas").className)[0].replace("rule_","");new Tjax.Request(this.options.url+"/update/delete",{postBody:"rule="+rule+"&pos="+id,method:"post"},success,failure)},onNegative:function(event){var button=Event.element(event);var id=button.up().readAttribute("id").replace("p_","");if(button.up().hasClassName("neg")){button.up().morph("border: 1px solid #AAAAAA;");button.up().removeClassName("neg")}else{button.up().morph("border: 1px solid #C1272D;");button.up().addClassName("neg")}var success=function(data){$(document.body).fire("widget:notted")}.bind(this);var failure=function(data){button.up().toggleClassName("neg");button.fire("widget:error",{message:"An error occured "})}.bind(this);$(document.body).fire("widget:notting");var rule=$w($("canvas").className)[0].replace("rule_","");new Tjax.Request(this.options.url+"/update/not",{postBody:"rule="+rule+"&pos="+id,method:"post"},success,failure)}});var Join=Class.create(Box,{initialize:function($super,options){this.options=Object.extend({element:false,type:"join",onChange:this.onChange,onDrop:Prototype.emptyFunction},options||{});this.create();this.addObservers()},create:function(){this.box={wrap:this.options.element}},addObservers:function(){this.box.wrap.observe("click",this.options.onChange);Droppables.add(this.box.wrap,{hoverclass:"hover",onDrop:this.options.onDrop.bind(this)})},stopObserving:function(){Event.stopObserving(this.box.wrap,"click",this.options.onChange);0;Droppables.remove(this.box.wrap)}});var Abuse=Class.create({initialize:function(){$$(".abuse").each(function(button){new Abuse_item(button)}.bind(this))}});var Abuse_item=Class.create({initialize:function(button){this.type=$w(button.className)[1];if(!User.get()){button.observe("click",function(){window.location="/auth/signup"});return }if(this.type=="url"){this.root_element=button.up(".tweet")}else{if(this.type=="comment"){this.root_element=button.up(".comment")}}button.observe("mouseover",function(){button.down().next().setStyle({"visibility":"visible"})});button.observe("mouseout",function(e){var element=Event.element(e);if($("abuse_dd")){if($("abuse_dd").getStyle("display")!="none"){var id=$("abuse_dd").className;if(id!=this.root_element.readAttribute("id")){button.down().next().setStyle({"visibility":"hidden"})}}else{button.down().next().setStyle({"visibility":"hidden"})}}else{button.down().next().setStyle({"visibility":"hidden"})}}.bind(this));button.down().next().observe("click",function(){if(button.hasClassName("open")){button.removeClassName("open");$("abuse_dd").hide();return }var dropdown=this.dropdown();$("abuse_dd").show();button.addClassName("open");dropdown.clonePosition(button,{setWidth:false,setHeight:false,offsetTop:22});$("abuse_dd").writeAttribute("class",this.root_element.readAttribute("id"))}.bind(this));button.down().observe("click",this.report.bindAsEventListener(this))},dropdown:function(){if($("abuse_dd")){$("abuse_dd").remove()}var ul=new Element("ul",{"id":"abuse_dd"}).update('<li class="duplicate">Duplicate</li>'+'<li class="offensive">Offensive</li>'+'<li class="spam">Spam</li>'+'<li class="sucks">This Sucks!</li>');$(document.body).insert({bottom:ul});ul.select("li").each(function(li){li.observe("click",this.report.bindAsEventListener(this))}.bind(this));return ul},report:function(e){var element=Event.element(e);var post="type="+this.type;if(element.up("#abuse_dd")){var id=element.up("ul").className.substring(2);post+="&id="+id+"&reason="+element.className}else{var id=this.root_element.readAttribute("id").substring(2);post+="&id="+id+"&reason="}if(this.type=="comment"){$("c_"+id).select(".abuse")[0].addClassName("loading")}else{$("t_"+id).select(".abuse")[0].addClassName("loading")}this.id=id;new Tjax.Request("/ajax/report",{method:"post",postBody:post},this.success.bindAsEventListener(this),this.failure.bindAsEventListener(this))},success:function(){if($("abuse_dd")){$("abuse_dd").hide()}var box=new Element("div",{"class":"hide"});if(this.type=="url"){$("t_"+this.id).insert({bottom:box});$("t_"+this.id).setStyle({"position":"relative"});var button=$("t_"+this.id).select("a.retweet")[0];button.addClassName("selected");button.update("reported");var tweetobject=new Tweets();tweetobject.save(this.id,"urls");$("t_"+this.id).select(".abuse")[0].removeClassName("loading")}else{if(this.type=="comment"){$("c_"+this.id).insert({bottom:box});$("c_"+this.id).setStyle({"position":"relative"});var button=$("c_"+this.id).select(".retweet")[0];button.addClassName("selected");button.update("reported");var commentobject=new Comments(false);commentobject.save(this.id,"urls");$("c_"+this.id).select(".abuse")[0].removeClassName("loading")}}},failure:function(data){if(data.transport.responseText.evalJSON()["data"]=="Already reported."){this.success()}}});var Tweets=Class.create({initialize:function(){this.tweets=$$("div.tweet");this.read();this.tweets.each(function(tweet){var tobject=new Tweet(tweet);this.data.each(function(id){if(id==tweet.readAttribute("id").substring(2)){tobject.disable()}});this.url_spam.each(function(id){if(id==tweet.readAttribute("id").substring(2)){tobject.spam()}})}.bind(this))},read:function(){this.data=this.cookie("tweetmeme_tweeted");this.url_spam=this.cookie("tweetmeme_reported_urls")},save:function(id,type){var cook=new Cookie();this.read();switch(type){case"tweet":this.data.push(id);cook.create("tweetmeme_tweeted",this.data.join("-"),7);break;case"urls":this.url_spam.push(id);cook.create("tweetmeme_reported_urls",this.url_spam.join("-"),7);break}},cookie:function(name){var cook=new Cookie();var variable=new Array();var data=cook.read(name);if(data!=null){variable=data.split("-")}else{variable=new Array()}return variable}});var Tweet=Class.create(Tweets,{initialize:function(tweet){this.tweet=tweet;this.a=this.tweet.select("a.retweet")[0];var id=this.tweet.readAttribute("id");this.listener=function(e){if(!User.get()){return }e.stop();this.request()}.bind(this);this.a.observe("click",this.listener);var p=this.tweet.select("p")[0];if(p){p.observe("mouseover",this.mouseover.bindAsEventListener(this))}if(p){p.observe("mouseout",this.mouseout.bindAsEventListener(this))}},mouseover:function(e){var more=this.tweet.select("a.more")[0];if(more){more.setStyle({"visibility":"visible"})}},mouseout:function(e){var more=this.tweet.select("a.more")[0];if(more){more.setStyle({"visibility":"hidden"})}},request:function(){var id=this.tweet.readAttribute("id").substr(2);this.tweet.addClassName("loading");new Ajax.Request("/ajax/tweet",{postBody:"id="+id,onSuccess:this.response.bindAsEventListener(this)})},disable:function(){this.a.addClassName("selected");this.a.innerHTML="tweeted";Event.stopObserving(this.a,"click",this.listener);this.a.observe("click",function(e){e.stop()})},spam:function(){if(this.tweet.select("div.hide").length==0){var box=new Element("div",{"class":"hide"});this.tweet.insert({bottom:box});this.tweet.setStyle({"position":"relative"});var button=this.tweet.select("a.retweet")[0];button.addClassName("selected");button.update("reported")}},response:function(transport){this.tweet.removeClassName("loading");var data=transport.responseText.evalJSON();if(data.response!="failure"){var celement=this.tweet.select("span")[0];celement.innerHTML=parseInt(celement.innerHTML)+1;this.disable();this.save(this.tweet.readAttribute("id").substr(2),"tweet")}else{if(data.data=="Already retweeted."){this.disable();this.save(this.tweet.readAttribute("id").substr(2),"tweet")}else{new ModalPopup(data.data)}}}});var User={get:function(){var c=new Cookie();var result=c.read("user_token");if(result!==null){return true}else{return false}}};var Users=Class.create(Comments,{initialize:function(){new Tabs($("user"));this.comments=$$("li.comment");this.read();this.comments.each(function(item){var cobject=new Comment(item);this.data.each(function(id){if(id==item.readAttribute("id").substring(2)){cobject.disable()}});this.url_spam.each(function(id){if(id==item.readAttribute("id").substring(2)){cobject.spam()}})}.bind(this))}});var Widget=Class.create({initialize:function(){this.data=$H({count:$("widget_count"),media:$("widget_media"),channel:$("channel"),category:$("category"),domain:$("domain")});this.data.each(function(pair){if(pair.value.previous(1)){pair.value.previous(1).observe("click",this.render.bindAsEventListener(this));pair.value.observe("change",this.oroptions.bindAsEventListener(this))}else{pair.value.observe("change",this.render.bindAsEventListener(this))}}.bind(this));this.style=$H({width:$("widget_width"),header:$("widget_header"),border_width:$("widget_border_width"),border_color:$("widget_border_color"),link_color:$("tweetmeme_widget"),link_color_hover:$("tweetmeme_widget")});this.style.each(function(pair){pair.value.observe("change",this.update.bindAsEventListener(this))}.bind(this));this.render();this.update();this.code()},oroptions:function(e){var element=Event.element(e);if(element.previous(1)){if($F(element.previous(1))=="on"){this.render()}}},update:function(){$("tweetmeme_widget").setStyle({width:$F(this.style.get("width"))});var windows=$("tweetmeme_widget").select('ul[class~"tabs"]');if(windows){windows.each(function(item){item.setStyle({borderLeftColor:$F(this.style.get("border_color")),borderLeftWidth:$F(this.style.get("border_width")),borderRightColor:$F(this.style.get("border_color")),borderRightWidth:$F(this.style.get("border_width"))});item.select("li").each(function(li){li.setStyle({borderBottomColor:$F(this.style.get("border_color")),borderBottomWidth:$F(this.style.get("border_width"))})}.bind(this))}.bind(this))}var title=$("tweetmeme_widget").select(".title")[0];if(title){title.setStyle({backgroundColor:$F(this.style.get("header"))})}var tabs=$("tweetmeme_widget").select(".tabs")[0];if(tabs){tabs.setStyle({borderBottomColor:$F(this.style.get("border_color")),borderBottomWidth:$F(this.style.get("border_width"))})}$("tweetmeme_widget").select("ul li").each(function(item){item.setStyle({borderBottomColor:$F(this.style.get("border_color"))})}.bind(this));this.code()},render:function(){$("tweetmeme_widget").update("");$("tweetmeme_widget").addClassName("loading");var url="/widgetdata.json?count="+$F(this.data.get("count"))+"&media="+$F(this.data.get("media"));if($F("what-category")=="on"){url+="&category="+$F("category")}else{if($F("what-channel")=="on"){url+="&channel="+$F("channel")}else{if($F("what-domain")=="on"){url+="&domain="+escape($F("domain"))}}}new Ajax.Request(url,{onSuccess:function(data){var data=data.responseText.evalJSON();var tabs=new Array("Recent","Popular");var windows=new Array();var tabitems=new Array();data.each(function(tab,i){var ul=new Element("ul");ul.addClassName("w"+i);if(i!=0){ul.hide()}if(tab["stories"]){tab["stories"].each(function(item,j){var li=new Element("li");if(j==tab["stories"].length-1){li.writeAttribute("class","last")}if(item["thumbnail"]==undefined){li.update('<a class="button_square" href="http://tweetmeme.com/story.php?url='+escape(item["url"])+'"><span class="count">'+item["url_count"]+"</span></a>"+'<a target="_blank" href="http://tweetmeme.com/story.php?url='+escape(item["url"])+'">'+item["title"]+"</a>")}else{li.update('<a href="http://tweetmeme.com/story.php?url='+escape(item["url"])+'"><img src="'+item["thumbnail"]+'" alt="*" class="thumb" /></a>'+'<a class="button_square" href="http://tweetmeme.com/story.php?url='+escape(item["url"]).replace(/\+/g,"%2b")+'"><span class="count">'+item["url_count"]+"</span></a>"+'<a target="_blank" href="http://tweetmeme.com/story.php?url='+escape(item["url"])+'">'+item["title"]+"</a>")}ul.appendChild(li)});windows.push(ul)}});if($F("what-domain")=="on"){var domain=new Element("span",{"class":"domain"}).update($F(this.data.get("domain")));$("tweetmeme_widget").appendChild(domain)}var ul=new Element("ul");ul.addClassName("tabs");tabs.each(function(item,i){var li=new Element("li");li.update(item);li.addClassName("t"+i);if(i==0){li.addClassName("selected")}tabitems.push(li);li.observe("click",function(){tabitems.invoke("removeClassName","selected");windows.invoke("hide");li.addClassName("selected");var numb=li.className.substring(0,2);for(var j=0;j<windows.length;j++){if(windows[j].className.replace("w","")==numb.replace("t","")){windows[j].style.cssText="display:auto;"}}});ul.appendChild(li)});$("tweetmeme_widget").appendChild(ul);for(i=0;i<windows.length;i++){$("tweetmeme_widget").appendChild(windows[i])}$("tweetmeme_widget").removeClassName("loading");var title=new Element("a",{"href":"http://tweetmeme.com","class":"title"});$("tweetmeme_widget").appendChild(title);var h=$("sidebar").getHeight();if($("sidebar").getHeight()>$("main").getHeight()){$("main").setStyle({"height":h+"px"})}}.bind(this)});this.code()},code:function(){var code="&lt;script type=&quot;text/javascript&quot;&gt;";if($F(this.data.get("domain").previous(1))=="on"){code+="tweetmeme_domain = '"+$F(this.data.get("domain"))+"';"}else{if($F(this.data.get("category").previous(1))=="on"){code+="tweetmeme_category = '"+$F(this.data.get("category"))+"';"}else{if($F(this.data.get("channel").previous(1))=="on"){code+="tweetmeme_channel = '"+$F(this.data.get("channel"))+"';"}}}code+="tweetmeme_width = '"+$F(this.style.get("width"))+"';"+"tweetmeme_header =  '"+$F(this.style.get("header"))+"';"+"tweetmeme_border_width = '"+$F(this.style.get("border_width"))+"';"+"tweetmeme_border_color = '"+$F(this.style.get("border_color"))+"';"+"&lt;/script&gt;"+"&lt;script type=&quot;text/javascript&quot; src=&quot;http://tweetmeme.com/i/scripts/widget.js&quot;&gt;&lt;/script&gt;";$("code").update(code)}});document.observe("dom:loaded",function(){new Menu();new Abuse();new Tweets();if($$(".story").length>0){new Comments()}if($("rules")){new Rules()}if($("tweetmeme_widget")){new Widget()}if($("chicklet")){new Control.ColorPicker("colour",{IMAGE_BASE:"/images/colorpicker/"});$("refresh").observe("click",function(){var url="http://api.tweetmeme.com/domaincount.gif?domain="+$F("domain")+"&bgcolor="+$F("colour");var img=new Element("img",{"src":url,"alt":"chicklet"});var code="&lt;a href=&quot;http://tweetmeme.com/domain/"+$F("domain")+"&quot;&gt;&lt;img src=&quot;http://api.tweetmeme.com/domaincount.gif?domain="+$F("domain")+"&amp;bgcolor="+$F("colour")+"&quot; alt=&quot;TweetMeme Chicklet&quot; /&gt;&lt;/a&gt;";$("code").update(code);$("image").update().insert({top:img})})}$$("div.help").each(function(item){new Bubble(item,{text:item.innerHTML})});$$(".btn").each(function(button){button.observe("click",function(e){if(button.hasClassName("clicked")){e.stop();return }button.addClassName("clicked")})});if($("user")){new Users()}if($("admin")){new Admin()}calculateHeight()});function calculateHeight(){if($("sidebar")){var h=$("sidebar").getHeight();if($("sidebar").getHeight()>$("main").getHeight()){$("main").setStyle({"height":h+"px"})}else{$("main").setStyle({"height":"auto"})}}};
