(function($){var instances=[];$.tools=$.tools||{};$.tools.tooltip={version:'1.1.2',conf:{effect:'toggle',fadeOutSpeed:"fast",tip:null,predelay:0,delay:30,opacity:1,lazy:undefined,position:['top','center'],offset:[0,0],cancelDefault:true,relative:false,oneInstance:true,events:{def:"mouseover,mouseout",input:"focus,blur",widget:"focus mouseover,blur mouseout",tooltip:"mouseover,mouseout"
},api:false
},addEffect:function(name,loadFn,hideFn){effects[name]=[loadFn,hideFn];}
};var effects={toggle:[function(done){var conf=this.getConf(),tip=this.getTip(),o=conf.opacity;if(o<1){tip.css({opacity:o});}
tip.show();done.call();},function(done){this.getTip().hide();done.call();}
],fade:[function(done){this.getTip().fadeIn(this.getConf().fadeInSpeed,done);},function(done){this.getTip().fadeOut(this.getConf().fadeOutSpeed,done);}
]
};function Tooltip(trigger,conf){var self=this,$self=$(this);trigger.data("tooltip",self);var tip=trigger.next();if(conf.tip){tip=$(conf.tip);if(tip.length>1){tip=trigger.nextAll(conf.tip).eq(0);if(!tip.length){tip=trigger.parent().nextAll(conf.tip).eq(0);}
}
}
function getPosition(e){var top=conf.relative?trigger.position().top:trigger.offset().top,left=conf.relative?trigger.position().left:trigger.offset().left,pos=conf.position[0];top-=tip.outerHeight()-conf.offset[0];left+=trigger.outerWidth()+conf.offset[1];var height=tip.outerHeight()+trigger.outerHeight();if(pos=='center'){top+=height/2;}
if(pos=='bottom'){top+=height;}
pos=conf.position[1];var width=tip.outerWidth()+trigger.outerWidth();if(pos=='center'){left-=width/2;}
if(pos=='left'){left-=width;}
return{top:top,left:left};}
var isInput=trigger.is(":input"),isWidget=isInput&&trigger.is(":checkbox, :radio, select, :button"),type=trigger.attr("type"),evt=conf.events[type]||conf.events[isInput?(isWidget?'widget':'input'):'def'];evt=evt.split(/,\s*/);if(evt.length!=2){throw"Tooltip: bad events configuration for "+type;}
trigger.bind(evt[0],function(e){if(conf.oneInstance){$.each(instances,function(){this.hide();});}
var t=tip.data("trigger");if(t&&t[0]!=this){tip.hide().stop(true,true);}
e.target=this;self.show(e);evt=conf.events.tooltip.split(/,\s*/);tip.bind(evt[0],function(){self.show(e);});if(evt[1]){tip.bind(evt[1],function(){self.hide(e);});}
});trigger.bind(evt[1],function(e){self.hide(e);});if(!$.browser.msie&&!isInput&&!conf.predelay){trigger.mousemove(function(){if(!self.isShown()){trigger.triggerHandler("mouseover");}
});}
if(conf.opacity<1){tip.css("opacity",conf.opacity);}
var pretimer=0,title=trigger.attr("title");if(title&&conf.cancelDefault){trigger.removeAttr("title");trigger.data("title",title);}
$.extend(self,{show:function(e){if(e){trigger=$(e.target);}
clearTimeout(tip.data("timer"));if(tip.is(":animated")||tip.is(":visible")){return self;}
function show(){tip.data("trigger",trigger);var pos=getPosition(e);if(conf.tip&&title){tip.html(trigger.data("title"));}
e=e||$.Event();e.type="onBeforeShow";$self.trigger(e,[pos]);if(e.isDefaultPrevented()){return self;}
pos=getPosition(e);tip.css({position:'absolute',top:pos.top,left:pos.left});var eff=effects[conf.effect];if(!eff){throw"Nonexistent effect \""+conf.effect+"\"";}
eff[0].call(self,function(){e.type="onShow";$self.trigger(e);});}
if(conf.predelay){clearTimeout(pretimer);pretimer=setTimeout(show,conf.predelay);}else{show();}
return self;},hide:function(e){clearTimeout(tip.data("timer"));clearTimeout(pretimer);if(!tip.is(":visible")){return;}
function hide(){e=e||$.Event();e.type="onBeforeHide";$self.trigger(e);if(e.isDefaultPrevented()){return;}
effects[conf.effect][1].call(self,function(){e.type="onHide";$self.trigger(e);});}
if(conf.delay&&e){tip.data("timer",setTimeout(hide,conf.delay));}else{hide();}
return self;},isShown:function(){return tip.is(":visible, :animated");},getConf:function(){return conf;},getTip:function(){return tip;},getTrigger:function(){return trigger;},bind:function(name,fn){$self.bind(name,fn);return self;},onHide:function(fn){return this.bind("onHide",fn);},onBeforeShow:function(fn){return this.bind("onBeforeShow",fn);},onShow:function(fn){return this.bind("onShow",fn);},onBeforeHide:function(fn){return this.bind("onBeforeHide",fn);},unbind:function(name){$self.unbind(name);return self;}
});$.each(conf,function(name,fn){if($.isFunction(fn)){self.bind(name,fn);}
});}
$.prototype.tooltip=function(conf){var api=this.eq(typeof conf=='number'?conf:0).data("tooltip");if(api){return api;}
var globals=$.extend(true,{},$.tools.tooltip.conf);if($.isFunction(conf)){conf={onBeforeShow:conf};}else if(typeof conf=='string'){conf={tip:conf};}
conf=$.extend(true,globals,conf);if(typeof conf.position=='string'){conf.position=conf.position.split(/,?\s/);}
if(conf.lazy!==false&&(conf.lazy===true||this.length>20)){this.one("mouseover",function(e){api=new Tooltip($(this),conf);api.show(e);instances.push(api);});}else{this.each(function(){api=new Tooltip($(this),conf);instances.push(api);});}
return conf.api?api:this;};})(jQuery);
(function($){$.fn.example=function(text,args){var isCallback=$.isFunction(text);var options=$.extend({},args,{example:text});return this.each(function(){var $this=$(this);if($.metadata){var o=$.extend({},$.fn.example.defaults,$this.metadata(),options);}else{var o=$.extend({},$.fn.example.defaults,options);}
if(!$.fn.example.boundClassNames[o.className]){$(window).unload(function(){$('.'+o.className).val('');});$('form').submit(function(){$(this).find('.'+o.className).val('');});$.fn.example.boundClassNames[o.className]=true;}
if($.browser.msie&&!$this.attr('defaultValue')&&(isCallback||$this.val()==o.example))
$this.val('');if($this.val()==''&&this!=document.activeElement){$this.addClass(o.className);$this.val(isCallback?o.example.call(this):o.example);}
$this.focus(function(){if($(this).is('.'+o.className)){$(this).val('');$(this).removeClass(o.className);}
});$this.change(function(){if($(this).is('.'+o.className)){$(this).removeClass(o.className);}
});$this.blur(function(){if($(this).val()==''){$(this).addClass(o.className);$(this).val(isCallback?o.example.call(this):o.example);}
});});};$.fn.example.defaults={className:'example'
};$.fn.example.boundClassNames=[];})(jQuery);
function LinkCreator(){$("form").submit(LinkCreator.on_submit);$("#i").example("Shorten URL");$("h1").click(function(){window.location.href="/";});$("#toggleInfo").click(function(){$("#infoBox").toggle(400);});LinkCreator.changed=true;LinkCreator.set_tooltips();}
LinkCreator.set_tooltips=function(){$(".comingsoon").tooltip({tip:'#weltip',effect:'fade',events:{def:'click, mouseout',},onBeforeShow:function(){this.getTip().addClass("comingsoon");}
});$("a[href='#top10']").tooltip({tip:'#weltip_top',effect:'fade',events:{def:'click, mouseout'
},onBeforeShow:function(){var $tip=this.getTip();if(!$tip.data('wel_init')){$tip.find('li a')
.click(LinkCreator.on_top_link_clicked)
.eq(0).click();$tip.data('wel_init',true);}
}
});};LinkCreator.on_top_link_clicked=function(){var $this,$tip,id;$this=$(this);$tip=$this.closest('div');id=$this.attr('href').split('range:')[1];$tip.find("a").removeClass("active");$this.addClass("active");$tip.find("div")
.empty()
.addClass('loading')
.load('/ajax/top/'+id,function(){$(this).removeClass('loading');});return false;}
LinkCreator.on_submit=function(){if(LinkCreator.changed){LinkCreator.changed=false;$("#i").unbind("keyup");LinkCreator.switch_icon('loading');$.post('/ajax/create',$(this).serialize(),LinkCreator.on_success,'json');}
return false;};LinkCreator.on_error=function(){LinkCreator.switch_icon('error');LinkCreator.changed=true;};LinkCreator.switch_icon=function(cls){$(".icon")
.stop()
.removeClass("error")
.removeClass("loading")
.animate({opacity:0},function(){$(this)
.addClass(cls)
.animate({opacity:0.5});});};LinkCreator.on_success=function(data,status,next){LinkCreator.switch_icon();if('form_errors'in data){LinkCreator.on_error();}else{$("#i").val(data['result']['shortUrl']);}
$("#i").bind('keyup',function(event){if(event.keyCode!=13){LinkCreator.changed=true;}
}).one('click',function(){$(this).select();});};
