
/*
 * Superfish v1.4.8 - jQuery menu widget
 * Copyright (c) 2008 Joel Birch
 *
 * Dual licensed under the MIT and GPL licenses:
 * 	http://www.opensource.org/licenses/mit-license.php
 * 	http://www.gnu.org/licenses/gpl.html
 *
 * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
 */

;(function($){
	$.fn.superfish = function(op){

		var sf = $.fn.superfish,
			c = sf.c,
			$arrow = $(['<span class="',c.arrowClass,'"> &#187;</span>'].join('')),
			over = function(){
				var $$ = $(this), menu = getMenu($$);
				clearTimeout(menu.sfTimer);
				$$.showSuperfishUl().siblings().hideSuperfishUl();
			},
			out = function(){
				var $$ = $(this), menu = getMenu($$), o = sf.op;
				clearTimeout(menu.sfTimer);
				menu.sfTimer=setTimeout(function(){
					o.retainPath=($.inArray($$[0],o.$path)>-1);
					$$.hideSuperfishUl();
					if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}
				},o.delay);	
			},
			getMenu = function($menu){
				var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];
				sf.op = sf.o[menu.serial];
				return menu;
			},
			addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };
			
		return this.each(function() {
			var s = this.serial = sf.o.length;
			var o = $.extend({},sf.defaults,op);
			o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){
				$(this).addClass([o.hoverClass,c.bcClass].join(' '))
					.filter('li:has(ul)').removeClass(o.pathClass);
			});
			sf.o[s] = sf.op = o;
			
			$('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {
				if (o.autoArrows) addArrow( $('>a:first-child',this) );
			})
			.not('.'+c.bcClass)
				.hideSuperfishUl();
			
			var $a = $('a',this);
			$a.each(function(i){
				var $li = $a.eq(i).parents('li');
				$a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});
			});
			o.onInit.call(this);
			
		}).each(function() {
			var menuClasses = [c.menuClass];
			if (sf.op.dropShadows  && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);
			$(this).addClass(menuClasses.join(' '));
		});
	};

	var sf = $.fn.superfish;
	sf.o = [];
	sf.op = {};
	sf.IE7fix = function(){
		var o = sf.op;
		if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined)
			this.toggleClass(sf.c.shadowClass+'-off');
		};
	sf.c = {
		bcClass     : 'menu-dropdown-breadcrumb',
		menuClass   : 'menu-dropdown-js-enabled',
		anchorClass : 'menu-dropdown-with-ul',
		arrowClass  : 'more-indicator',
		shadowClass : 'menu-dropdown-shadow'
	};
	sf.defaults = {
		hoverClass	: 'menu-dropdown-hover',
		pathClass	: 'overideThisToUse',
		pathLevels	: 1,
		delay		: 800,
		animation	: {opacity:'show'},
		speed		: 'normal',
		autoArrows	: true,
		dropShadows : true,
		disableHI	: false,		// true disables hoverIntent detection
		onInit		: function(){}, // callback functions
		onBeforeShow: function(){},
		onShow		: function(){},
		onHide		: function(){}
	};
	$.fn.extend({
		hideSuperfishUl : function(){
			var o = sf.op,
				not = (o.retainPath===true) ? o.$path : '';
			o.retainPath = false;
			var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass)
					.find('>ul').hide().css('visibility','hidden');
			o.onHide.call($ul);
			return this;
		},
		showSuperfishUl : function(){
			var o = sf.op,
				sh = sf.c.shadowClass+'-off',
				$ul = this.addClass(o.hoverClass)
					.find('>ul:hidden').css('visibility','visible');
			sf.IE7fix.call($ul);
			o.onBeforeShow.call($ul);
			$ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); });
			return this;
		}
	});

})(jQuery);
;
/*
 Copyright (c) Shareaholic Inc (www.shareaholic.com).  All rights reserved.
*/
typeof SHR4P=="undefined"&&(SHR4P={});typeof SHRSB_Globals=="undefined"&&(window.SHRSB_Globals={});if(typeof SHRSB_Globals.perfoption=="undefined")SHRSB_Globals.perfoption="1";if(typeof SHRSB_Globals.minJQueryVersion=="undefined")SHRSB_Globals.minJQueryVersion="1.5.2";
var SHR4P_init=function(){SHR4P.debug("SHR4P_init called");if(SHR4P.init)SHR4P.debug("SHR4P_init returning because already loaded");else if(SHR4P.init=!0,SHR4P.jQuery=typeof sb_dont_noConflict!="undefined"&&sb_dont_noConflict?jQuery:jQuery.noConflict(!0),SHR4P.debug("jquery version: "+SHR4P.jQuery().jquery),function(a){SHR4P.debug("initializing shareaholic_publishers plugin");a.fn.shareaholic_publishers=function(d){var b=a.extend({v:1,src:"http://www.shareaholic.com",mode:"inject",service:"",apikey:"",
link:"",title:"",notes:"",expand:!0,duration:400,rel:"nofollow",target:"_blank",twitter_template:"${title} - ${short_link} via @Shareaholic",dontShowShareCount:!1,fbLikeButton:!1,fbButtonPos:"bottom-right",tags:"",allowExternalTags:!0,designer_toolTips:!1,tip_bg_color:"black",tip_text_color:"white",category:"",ctype:"",short_link:"",shortener:"google",shortener_key:"",custom_link:{},bgimg:"",bgimg_padding:"0 0 0 0",center:!1,spaced:!1,iframe_src:"/publishers",spriteimg:"",share_src:"http://www.shareaholic.com",
localize:!1,li_margin:0,"margin-top":20,"margin-bottom":20,"margin-left":0,"bgimg-padding-top":0,"bgimg-padding-left":0,"icon-width":60,"icon-height":29,"icon-margin-top":3,"promo-height":d.shrlink?18:0,shrlink:!1,twitter_overlay:!0},d);SHR4P.debug("$.fn.shareaholic_publishers called");SHR4P.debug(b);a.browser.msie&&a.browser.version<"7.0"&&(b["icon-height"]+=4);if(!b.link)b.link=document.location.href;b.bgimg!=null&&(d=a.trim(b.bgimg_padding).split(" "),b["bgimg-padding-top"]=d[0]?Number(d[0].replace(/[a-zA-Z]+/,
"")):0,b["bgimg-padding-left"]=d[3]?Number(d[3].replace(/[a-zA-Z]+/,"")):0,b["margin-left"]=10);if(b.localize)b.iframe_src="/publishers.html";var c=function(){var d=0;if(!a.isEmptyObject(b.custom_link))d=a(b.custom_link).length;return b.service.split(",").length+d},g=function(){return b["margin-left"]+b["bgimg-padding-left"]},h=function(a){return Math.ceil(c()/Math.floor((a-g())/b["icon-width"]))},f=function(a){return b.expand?b["margin-top"]+b["bgimg-padding-top"]+b["icon-height"]+b["icon-margin-top"]+
(h(a)==1?b["promo-height"]:0):j(a)},j=function(a){return b["margin-top"]+b["bgimg-padding-top"]+(b["icon-height"]+b["icon-margin-top"])*h(a)+b["promo-height"]},k=function(a){SHR4P.debug("centering");var d=0;h(a)==1&&(SHR4P.debug("one row! do centering"),d=(a-g()-c()*b["icon-width"])/2,SHR4P.debug("returning "+d+" margin"));return d},l=function(a){SHR4P.debug("spacing");SHR4P.debug("rows: "+h(a));var d=0;h(a)==1&&(SHR4P.debug("one row! spacing icons"),d=Math.floor((a-g()-b["icon-width"]*c())/c()),
SHR4P.debug("returning "+d+" margin"));return d};this.each(function(){if(b.spaced)b.li_margin=l(a(this).width());var d={src:b.src,service:b.service,apikey:b.apikey,link:b.link,title:b.title,notes:b.notes,bgimg:b.bgimg,bgimg_padding:b.bgimg_padding,rel:b.rel,target:b.target,twitter_template:b.twitter_template,localize:b.localize,share_src:b.share_src,spriteimg:b.spriteimg,tags:b.tags,allowExternalTags:b.allowExternalTags,designer_toolTips:b.designer_toolTips,tip_bg_color:b.tip_bg_color,tip_text_color:b.tip_text_color,
category:b.category,ctype:b.ctype,custom_link:b.custom_link,li_margin:b.li_margin,short_link:b.short_link,shortener:b.shortener,shortener_key:b.shortener_key,shrlink:b.shrlink,expand:b.expand,dontShowShareCount:b.dontShowShareCount,fbLikeButton:b.fbLikeButton,fbButtonPos:b.fbButtonPos,twitter_overlay:b.twitter_overlay};b.center&&a(this).css({"margin-left":k(a(this).width())});b.mode=="inject"?a(this).shareaholic(d):a(this).append(a('<iframe frameborder="0"/>').attr({src:[b.src+b.iframe_src,a.param(d)].join("?"),
height:f(a(this).width()),width:a(this).width(),scrolling:"no","class":"share-iframe"}).css({height:j(a(this).width())}));b.expand&&(a(this).css({overflow:"hidden",height:f(a(this).width())}),a(this).hover(function(){a(this).animate({height:j(a(this).width())},{duration:b.duration,queue:!1})},function(){a(this).animate({height:f(a(this).width())},{duration:b.duration,queue:!1})}))});return this};var c=function(a,b){var c=function(){SHR4P.debug("bitly javascript loaded");var c=a.link;BitlyCB.mycallback=
function(a){SHR4P.debug("bit.ly calls back with");SHR4P.debug(a);if(a.errorCode==0)SHR4P.debug("successfully shortened, calling callback with: "),a=a.results[c].shortUrl,SHR4P.debug("short_link: "+a),SHR4P.debug("type: "+typeof a),b(a)};BitlyClient.call("shorten",{longUrl:c},"BitlyCB.mycallback")};if(typeof BitlyClient=="undefined"){SHR4P.debug("loading bit.ly");var g=document.getElementsByTagName("head")[0];if(typeof g!="undefined"){var h=a.shortener_key.split("|"),f=document.createElement("script");
f.src="http://bit.ly/javascript-api.js?version=latest&login="+h[0]+"&apiKey="+h[1];f.type="text/javascript";f.charset="utf-8";g.appendChild(f);f.onreadystatechange=function(){if(this.readyState=="complete"||this.readyState=="loaded")SHR4P.debug("bit.ly loaded with onreadystatechange, init'ing"),c()};f.onload=c}}else SHR4P.debug("bit.ly already loaded.  init'ing"),c()};SHR4P.debug("initializing shareaholic plugin");a.fn.shareaholic=function(d){var b=a.extend({service:"",rel:"nofollow",target:"_blank",
poller_timeout:200,link:"",title:"",notes:"",bgimg:"",bgimg_padding:"",twitter_template:"${title} - ${short_link}",tags:"",category:"",ctype:"",localize:!1,custom_link:{},li_margin:0,share_src:"http://www.shareaholic.com",src:"http://www.shareaholic.com",api:{share:{v:"1",url:"/api/share/",apitype:"1",source:"Shareaholic-Publishers"},sprite:{v:"2",url:"/api/sprite/"}},short_link:"",shortener:"google",shortener_key:"",shortener_services:{"bit.ly":function(a,b){c(a,b)}}},d);SHR4P.debug("$.fn.shareaholic called");
SHR4P.debug(b);a(this).addClass("shareaholic-show-on-load");if(b.localize==!0||b.localize=="true")b.localize=!0;var e=function(b,d){return[b,a.param(d)].join("?")},g=function(a){for(var b=[],d=a.length,c=0;c<d;c++){for(var e=c+1;e<d;e++)a[c]===a[e]&&(e=++c);b.push(a[c])}return b},h=function(b,d,c){var e=c.designer_toolTips?"orig_title":"title",i=c.custom_link[b+"_"+d];SHR4P.debug("adding link "+b+" "+d);return a("<li/>").addClass(i.li_class).append(a("<a/>").attr({href:i.link,rel:c.rel,target:c.target,
"class":"external"}).attr(e,i.tooltip).text(i.tooltip)).attr("style",i.style+";margin-left:"+c.li_margin+"px !important;")},d=b.localize?b.src+"/sprite.css":e(b.src+b.api.sprite.url,{v:b.api.sprite.v,apikey:b.apikey,service:g(b.service.split(",")).sort().join(",")});a("#shareaholic-publisher-css").length==0&&a("head").append(a('<link rel="stylesheet" media="screen" id="shareaholic-publisher-css" href="'+d+'"/>'));var f=a("<div/>").addClass("shr-bookmarks").append(a("<ul/>").addClass("shr-socials"));
b.shrlink&&(d=a.getBrowser(),d!=""&&(f.append(a('<div style="clear: both;"></div><div class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div><div style="clear: both;"></div>')),f.find(".shr-getshr a").text("Get Shareaholic for "+d),a(this).hover(function(){f.find(".shr-getshr").css("visibility","visible")},function(){f.find(".shr-getshr").css("visibility","hidden")})));b.bgimg!="undefined"&&b.bgimg!=
""&&f.addClass("shr-bookmarks-bg-shr").css({"margin-left":"10px",height:"100%","overflow-x":"hidden","overflow-y":"hidden",display:"block",padding:b.bgimg_padding,background:"transparent url("+b.bgimg+") no-repeat"});var j=f.find(".shr-socials");if(b.fbLikeButton){setTimeout("SHR4P.fbUtil.addFBConnect()",0);var d=a('<div class="shareaholic-like-buttons"><br/></div>'),k=a('<a class="shareaholic-fb-like" style="margin-top:5px; margin-bottom:5px;"></a>');SHR4P.fbUtil.addLikeButton(k,b.link);d.prepend(k);
b.fbButtonPos.indexOf("bottom")!=-1?d.insertAfter(this):d.insertBefore(this);b.fbButtonPos.indexOf("right")!=-1&&k.css("float","right")}a(b.service.split(",")).each(function(d,c){var f="";if(c=="7")f=b.twitter_template;b.custom_link["before_"+d]&&h("before",d,b).appendTo(j);var g=b.designer_toolTips?"orig_title":"title",i=SHR4P.utils.getBrowserLocale(),i=i.split("-")[0];if(typeof SHR4P.locales!=="undefined"&&(typeof SHR4P.locales[i]=="undefined"||!SHR4P.locales[i]))i="en";i=typeof SHR4P.locales!==
"undefined"?SHR4P.locales[i][SHR4P.tooltips_prefix_map[c]]+" "+SHR4P.tooltips_suffix[c]:"";c=="7"&&b.twitter_overlay&&!SHR4P.utils.isMobileBrowser()?a("<li/>").addClass("shr-"+c).addClass("shareaholic").append(a("<a/>").attr({rel:b.rel,target:b.target,"class":"external"}).attr(g,i).text(i).click(function(a){SHR4P.utils.showServiceLet(b,"twitter");a.preventDefault()})).attr("style","margin-left:"+b.li_margin+"px !important;").appendTo(j):a("<li/>").addClass("shr-"+c).addClass("shareaholic").append(a("<a/>").attr({href:e(b.share_src+
b.api.share.url,{title:b.title,link:b.link,notes:b.notes,short_link:b.short_link,shortener:b.shortener,shortener_key:b.shortener_key,v:b.api.share.v,apitype:b.api.share.apitype,apikey:b.apikey,source:b.api.share.source,template:f,service:c,ctype:b.ctype}),rel:b.rel,target:b.target,"class":"external"}).attr(g,i).text(i)).attr("style","margin-left:"+b.li_margin+"px !important;").appendTo(j);if(!b.dontShowShareCount&&(c==5||c==7||c==2||c==257))f=function(b){b=b.count;if(b>0){for(var d=a("<div/>").addClass("shr-count").appendTo(j.find(".shr-"+
c)),e=0;e<9;e+=1)e!=4&&d.append(a("<div>"+b+"</div>").addClass("shr-count-outline").css({left:10+e%3-1+"px",top:"-"+(11+parseInt(e/3)-1)+"px"}).attr("aria-hidden","true"));d.append(a("<div>"+b+"</div>").addClass("shr-count-center").css({left:"10px",top:"-11px"}).attr("aria-label","Number of times this webpage has been shared"))}},c==5?SHR4P.utils.getFbShrCnt(b.link,f):c==7?SHR4P.utils.getTwitShrCnt(b.link,f):c==2?SHR4P.utils.getDeliciousShrCnt(b.link,f):c==257&&SHR4P.utils.getGoogBuzzShrCnt(b.link,
f);b.custom_link["after_"+d]&&h("after",d,b).appendTo(j)});var l=function(){var b=a("<div style='position:absolute !important; background: transparent !important; z-index:101 !important;'/>"),d=a("<div class = 'shareaholic-tip-text'></div>"),c=a("<div class = 'shareaholic-arrow-down'/>");b.append(d);b.append(c);return{show:function(c){if(!a("body").find(".shareaholic-tip-text").length){var e=a(c).find("a").attr("orig_title");d.text(e);e=a(c).offset();b.appendTo(document.body);var f=b.width(),c=a(c).width();
b.css({left:e.left-f/2+c/2,top:e.top-32});b.css({opacity:0.9})}},hide:function(){b.remove()}}}();b.designer_toolTips&&(a("<style type='text/css'>.shareaholic-arrow-down{ position: absolute !important; left:45% !important; width: 0 !important; height: 0 !important; border-left: 6px solid transparent !important; border-right: 6px solid transparent !important; border-top: 6px solid "+b.tip_bg_color+" !important; }.shareaholic-tip-text{font-size:12px !important; line-height:120% !important; background: "+
b.tip_bg_color+" !important; color: "+b.tip_text_color+" !important; padding: 5px !important; border-radius: 5px !important; -webkit-border-radius:5px; !important; -moz-border-radius:5px; !important}</style>").appendTo("head"),j.find("li").mouseenter(function(a){l.show(a.currentTarget)}).mouseleave(function(a){l.hide(a.currentTarget)}));d=function(b){a(j).find("li a").each(function(){this.href=this.href+"&tags="+b})};b.allowExternalTags?SHR4P.utils.getTags(b.link,b.tags,d):d(b.tags);d=function(b){if(b.spriteimg!=
"")return b.spriteimg;else if(b.localize)return b.src+"/sprite.png";else{var d=function(a,b){return a-b},c=g(b.service.split(",")).sort(d);SHR4P.debug("checking services: ");SHR4P.debug(c);var f=[];a(SHR4P.img_group).each(function(){var b=this;SHR4P.debug("checking img_group: ");SHR4P.debug(b);a(c).each(function(){SHR4P.debug("checking service: "+this);if(a.inArray(Number(this),b)>-1)return SHR4P.debug("found! adding img_group"),a.merge(f,b),!1});SHR4P.debug("req_services so far: ");SHR4P.debug(f)});
SHR4P.debug("final req_services: ");f=f.sort(d);SHR4P.debug(f.join(","));return e(b.src+b.api.sprite.url,{v:b.api.sprite.v,apikey:b.apikey,apitype:"png",service:f.join(",")})}}(b);f.append(a('<style type="text/css">ul.shr-socials li.shareaholic{background-image:url('+d+") !important;}</style>"));f.appendTo(this);return this};a.extend({getBrowser:function(){var a=navigator.userAgent,b="";a.indexOf("MSIE")!=-1?b="Internet Explorer":a.indexOf("Firefox")!=-1?b="Firefox":a.indexOf("Flock")!=-1?b="Flock":
a.indexOf("Chrome")!=-1?b="Google Chrome":a.indexOf("Safari")!=-1?b="Safari":a.indexOf("Opera")!=-1?b="Opera":a.indexOf("Songbird")!=-1&&(b="Songbird");return b}})}(SHR4P.jQuery),SHR4P.ready=!0,typeof SHR4P.onready!="undefined")SHR4P.onready()};typeof SHR4P=="undefined"&&(SHR4P={});SHR4P.ready=!1;SHR4P.init=!1;SHR4P.params=function(){var a={},c=document.location.href.split("?");if(c.length==2)for(var c=c[1].split("&"),d=0;d<c.length;d++){var b=c[d].split("=");b.length==2&&(a[unescape(b[0])]=unescape(b[1]))}return a};
SHR4P.debug=function(a){SHR4P.debug_enabled&&(typeof console!="undefined"&&console?console.log(a):alert(a))};
SHR4P.load=function(){setTimeout("SHR4P.ga()",0);setTimeout("SHR4P.media6()",0);setTimeout("SHR4P.prefetch()",0);if(typeof jQuery!="undefined"&&jQuery){var a=jQuery().jquery;if(SHRSB_Globals.minJQueryVersion<=a){window.sb_dont_noConflict=!0;SHR4P_init();return}}SHR4P.debug("loading jquery");a=document.getElementsByTagName("head")[0];if(typeof a!="undefined"){SHR4P.params();var c=document.createElement("script");c.src=SHR4P.debug_enabled?"//ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.js":"//ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js";
c.type="text/javascript";a.appendChild(c);c.onreadystatechange=function(){if(this.readyState=="complete"||this.readyState=="loaded")SHR4P.debug("jQuery loaded with onreadystatechange, init'ing"),SHR4P_init()};c.onload=SHR4P_init}};SHR4P.onready=function(){/(loaded|complete)/.test(document.readyState)?SHR4P.readyHandler():SHR4P.jQuery(document).ready(function(){SHR4P.readyHandler()})};
SHR4P.readyHandler=function(){SHR4P.renderLikeButtons();SHR4P.jQuery.each(SHRSB_Settings,function(a){this.expand=="false"&&(this.expand=!1);SHR4P.jQuery("."+a).shareaholic_publishers(this)})};SHR4P.img_group=[];SHR4P.img_group[0]=[2,3,4,5,6,7,10,24,38,39,40,52,54,74,88,201,219,257];SHR4P.img_group[1]=[27,33,41,43,45,46,53,73,78,195,196,205,207,210,236,247,264];SHR4P.img_group[2]=[44,48,61,80,100,105,140,191,202,218,238,240,266,269,280,289];
SHR4P.img_group[3]=[1,14,21,89,98,102,106,243,267,268,277,278,283,284,285,286,288];SHR4P.img_group[4]=[20,59,92,188,190,192,204,246,263,265,279,281,282,287,290,291,292,293,294];SHR4P.wants_shortlink=[7];
SHR4P.utils={getGoogBuzzShrCnt:function(a,c){a="http://www.google.com/buzz/api/buzzThis/buzzCounter?url="+encodeURIComponent(a);SHR4P.jQuery.getJSON(a+"&callback=?",function(a){var b=0;if(typeof a!="undefined"&&a)for(var e in a){b=a[e];break}c({count:b})})},getFbShrCnt:function(a,c){a="http://api.ak.facebook.com/restserver.php?v=1.0&method=links.getStats&format=json&urls="+encodeURIComponent(a);SHR4P.jQuery.getJSON(a+"&callback=?",function(a){var b=0;if(a.length>0)b=a[0].total_count,b!=0&&b>1E3&&
(b=Math.floor(b/1E3)+"K");c({count:b})})},getTwitShrCnt:function(a,c){a="http://urls.api.twitter.com/1/urls/count.json?url="+encodeURIComponent(a);SHR4P.jQuery.getJSON(a+"&callback=?",function(a){a=a.count;a!=0&&a>1E3&&(a=Math.floor(a/1E3)+"K");c({count:a})})},getDeliciousShrCnt:function(a,c){a="http://feeds.delicious.com/v2/json/urlinfo/data?url="+encodeURIComponent(a);SHR4P.jQuery.getJSON(a+"&callback=?",function(a){var b=0;if(a.length>0)b=a[0].total_posts,b!=0&&b>1E3&&(b=Math.floor(b/1E3)+"K");
c({count:b})})},getTags:function(a,c,d){var b=1;SHR4P.utils.getDeliciousTag(a,function(a){c+=a;--b==0&&d(c)})},getDeliciousTag:function(a,c){a="http://feeds.delicious.com/v2/json/urlinfo/data?url="+encodeURIComponent(a);SHR4P.jQuery.getJSON(a+"&callback=?",function(a){if(a.length>0)top_tags=a[0].top_tags,del_tags="",SHR4P.jQuery.each(top_tags,function(a,c){del_tags+=encodeURIComponent(a)+"|"+c+"|delicious,"}),del_tags!=""&&(del_tags=del_tags.substr(0,del_tags.length-1)),c(del_tags)})},showServiceLet:function(a,
c){if(typeof c!="undefined"&&c){if(typeof SHR_config=="undefined"||!SHR_config)window.SHR_config={};window.__shr_service=c;window.__shr_log=!0;window.__shr_center=!0;SHR_config.shortener=a.shortener?a.shortener:"google";SHR_config.shortener_key=a.shortener_key?a.shortener_key:"";SHR_config.apikey=a.apikey?a.apikey:"8afa39428933be41f8afdb8ea21a495c";SHR_config.twitter_template=a.twitter_template?a.twitter_template:"${title} - ${short_link}";SHR_config.link=a.link?a.link:document.location.href;SHR_config.title=
a.title?a.title:a.link?"":document.title;SHR_config.short_link=a.short_link?a.short_link:"";if(window.SHR&&window.SHR.Servicelet)SHR.Servicelet.show();else{var d=document,b=d.createElement("script");b.setAttribute("language","javascript");b.id="shr-servicelet";b.setAttribute("src",(a.share_src?a.share_src:"http://www.shareaholic.com")+"/media/js/servicelet.min.js");d.body.appendChild(b)}}},isMobileBrowser:function(){var a=navigator.userAgent||navigator.vendor||window.opera;return/android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||
/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i.test(a.substr(0,
4))},getBrowserLocale:function(){var a="en-us";if(navigator)if(navigator.language)a=navigator.language;else if(navigator.browserLanguage)a=navigator.browserLanguage;else if(navigator.systemLanguage)a=navigator.systemLanguage;else if(navigator.userLanguage)a=navigator.userLanguage;return a.toLowerCase()}};
SHR4P.ga=function(){if(typeof SHRSB_Globals!="undefined"&&SHRSB_Globals.perfoption=="1"){if(typeof _gaq=="undefined"||!_gaq)window._gaq=[];_gaq.push(["_setAccount","UA-12964573-5"]);_gaq.push(["_trackPageview"]);(function(){var a=document.createElement("script");a.type="text/javascript";a.async=!0;a.src=("https:"==document.location.protocol?"https://ssl":"http://www")+".google-analytics.com/ga.js";var c=document.getElementsByTagName("script")[0];c.parentNode.insertBefore(a,c)})()}};
SHR4P.media6=function(){if(typeof SHRSB_Globals!="undefined"&&SHRSB_Globals.perfoption=="1"&&"https:"!=document.location.protocol)(new Image(0,0)).src="http://map.media6degrees.com/orbserv/hbpix?pixId=6237&pcv=43&curl="+encodeURIComponent(location.href)+"&cb="+Math.floor(Math.random()*9999999999)};SHR4P.prefetch=function(){if(typeof SHRSB_Globals!="undefined"&&typeof SHRSB_Globals.src!="undefined")(new Image).src=SHRSB_Globals.src+"/sprite.png"};
SHR4P.renderLikeButtons=function(){SHR4P.jQuery(".shareaholic-fblike,.shareaholic-fbsend",".shareaholic-like-buttonset").length>0&&setTimeout("SHR4P.fbUtil.addFBConnect()",0);SHR4P.jQuery(".shareaholic-googleplusone",".shareaholic-like-buttonset").length>0&&setTimeout("SHR4P.googPlusOneUtil.addGoogScript()",0)};
SHR4P.googPlusOneUtil={addGoogScript:function(){if(SHR4P.jQuery("#googplusonescript").length==0){var a=document.createElement("script");a.async=!0;a.src="https://apis.google.com/js/plusone.js";a.id="googplusonescript";a.text='{"parsetags": "explicit"}';document.getElementsByTagName("head")[0].appendChild(a);a.onreadystatechange=function(){(this.readyState=="complete"||this.readyState=="loaded")&&SHR4P.googPlusOneUtil.renderPlusOnes()};a.onload=SHR4P.googPlusOneUtil.renderPlusOnes}},renderPlusOnes:function(){SHR4P.jQuery(".shareaholic-googleplusone",
".shareaholic-like-buttonset").each(function(){var a=SHR4P.jQuery(this),c=a.attr("data-shr_href")||a.attr("shr_href"),d=a.attr("data-shr_title")||a.attr("shr_title"),b=a.attr("data-shr_size")||a.attr("shr_size"),e=a.attr("data-shr_count")||a.attr("shr_count"),g=a.attr("data-shr_annotation"),h=a.attr("data-shr_width"),f=a.attr("data-shr_expandto"),j=a.attr("data-shr_onstartinteraction"),k=a.attr("data-shr_onendinteraction");if(typeof e=="undefined"||!e)e="true";if((typeof c=="undefined"||!c)&&(typeof d==
"undefined"||!d))c=encodeURIComponent(document.location.href),d=document.title;else{if(typeof c=="undefined"||!c)c=encodeURIComponent(document.location.href);if(typeof d=="undefined"||!d)d=""}if(typeof b=="undefined"||!b)b="standard";if(typeof g=="undefined"||!g)g="inline",g=typeof e!=="undefined"&&e&&e!=="false"?"inline":"none";if(typeof h=="undefined"||!h)h="450px";if(typeof f=="undefined"||!f)f="";if(typeof j=="undefined"||!j)j="";if(typeof k=="undefined"||!k)k="";e="";b=="medium"&&(e="padding-top:1px !important;");
e=SHR4P.jQuery("<div style='float:left; "+e+" margin:0px 0px 0px 10px !important;'/>").get(0);a.replaceWith(e);SHR4P.jQuery(e).append("<div/>");e=SHR4P.jQuery(e).find(":first-child").get(0);gapi.plusone.render(e,{size:b,annotation:g,width:h,expandto:f,onstartinteraction:j,onendinteraction:k,href:decodeURIComponent(c),callback:function(a){SHR4P.googPlusOneUtil.trackPlusOneClick(a,d)}})})},trackPlusOneClick:function(a,c){a.state=="on"&&SHR4P.jQuery("<img/>").attr({src:"http://www.shareaholic.com/api/share/?v=1&apikey=172809fde4d12743cc4a1ec894142b97f&apitype=3&service=304&link="+
encodeURIComponent(a.href)+(c!==""?"&title="+c:""),width:"1",height:"1"}).appendTo("body")}};
SHR4P.fbUtil={fbConnectAdd:0,renderFBWidgetCalled:!1,likeButtonsToRender:[],hasFB:function(){return typeof window.FB=="object"&&FB.Event&&typeof FB.Event.subscribe=="function"},addLikeButton:function(a,c){if(SHR4P.fbUtil.hasFBNameSpace()){var d=SHR4P.jQuery('<fb:like href="'+c+'"layout="button_count" show_faces="true" width="60" font=""></fb:like>').appendTo(a);typeof window.FB!="undefined"&&FB.XFBML&&FB.XFBML.parse?FB.XFBML.parse(d.get(0)):SHR4P.fbUtil.likeButtonsToRender.push(d.get(0))}else SHR4P.jQuery('<iframe src="http://www.facebook.com/plugins/like.php?app_id=207766518608&amp;href='+
c+'&amp;send=false&amp;layout=button_count&amp;width=90&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:90px; height:21px;" allowTransparency="true"></iframe>').appendTo(a)},renderFBWidgets:function(){if(!SHR4P.fbUtil.renderFBWidgetCalled){setTimeout("SHR4P.fbUtil.renderFBLikeButtons()",0);setTimeout("SHR4P.fbUtil.renderFBSendButtons()",0);for(var a=0;a<SHR4P.fbUtil.likeButtonsToRender.length;++a)typeof window.FB!=
"undefined"&&FB.XFBML&&FB.XFBML.parse&&FB.XFBML.parse(SHR4P.fbUtil.likeButtonsToRender[a]);SHR4P.fbUtil.renderFBWidgetCalled=!0}},renderFBSendButtons:function(){SHR4P.jQuery(".shareaholic-fbsend",".shareaholic-like-buttonset").each(function(){if(SHR4P.fbUtil.hasFBNameSpace()){var a=SHR4P.jQuery(this),c=a.attr("data-shr_href");if(typeof c=="undefined"||!c)c=encodeURIComponent(document.location.href);var d=SHR4P.jQuery("<div style='float:left;padding-top:0px !important; margin:0px 5px !important;'/>").get(0);
a.replaceWith(d);a=SHR4P.jQuery('<fb:send href="'+c+'" width="60" font=""></fb:send>').appendTo(d);typeof window.FB!="undefined"&&FB.XFBML&&FB.XFBML.parse&&FB.XFBML.parse(a.get(0))}})},renderFBLikeButtons:function(){SHR4P.jQuery(".shareaholic-fblike",".shareaholic-like-buttonset").each(function(){var a=SHR4P.jQuery(this),c=a.attr("data-shr_href");if(typeof c=="undefined"||!c)c=encodeURIComponent(document.location.href);var d=a.attr("data-shr_layout");if(typeof d=="undefined"||!d)d="button_count";
var b=a.attr("data-shr_showfaces");if(typeof b=="undefined"||!b)b="true";var e=a.attr("data-shr_send");if(typeof e=="undefined"||!e)e="false";var g=a.attr("data-shr_action");if(typeof g=="undefined"||!g||g.toLowerCase()!="recommend"&&g.toLowerCase()!="like")g="like";var h=SHR4P.jQuery("<div style='float:left;padding-top:0px !important; margin:0px 5px !important;'/>").get(0);a.replaceWith(h);if(SHR4P.fbUtil.hasFBNameSpace())c=SHR4P.jQuery('<fb:like action="'+g+'" send = "'+e+'" href="'+c+'"layout="'+
d+'" show_faces="'+b+'" width="60" font=""></fb:like>').appendTo(h),typeof window.FB!="undefined"&&FB.XFBML&&FB.XFBML.parse&&FB.XFBML.parse(c.get(0));else{a="30";e="60";switch(d){case "button_count":e="90";a="21";break;case "box_count":e="60";a="90";break;default:e="60",a="80"}SHR4P.jQuery('<iframe src="http://www.facebook.com/plugins/like.php?app_id=207766518608&amp;href='+c+"&amp;send=false&amp;layout="+d+"&amp;width="+e+"&amp;show_faces="+b+"&amp;action="+g+"&amp;colorscheme=light&amp;font&amp;height="+
a+'" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:'+e+"px; height:"+a+'px;" allowTransparency="true"></iframe>').appendTo(h)}})},addFBConnect:function(){SHR4P.fbUtil.addFBNameSpace();if(!SHR4P.fbUtil.fbConnectAdd)SHR4P.jQuery('<div id="fb-root"></div>').appendTo("body"),window.fbAsyncInit=function(){FB.init({appId:"207766518608",status:!0,cookie:!0,xfbml:!0});SHR4P.fbUtil.tryAddFBSubscription()},SHR4P.fbUtil.renderFBWidgetHandlerAttached=!0,function(){var a=document.createElement("script");
a.async=!0;a.src=document.location.protocol+"//connect.facebook.net/en_US/all.js";a.onload=SHR4P.fbUtil.renderFBWidgets;a.onreadystatechange=function(){(this.readyState=="complete"||this.readyState=="loaded")&&SHR4P.fbUtil.renderFBWidgets()};document.getElementById("fb-root").appendChild(a)}(),SHR4P.fbUtil.fbConnectAdd=1},tryAddFBSubscription:function(){SHR4P.fbUtil.hasFB()&&FB.XFBML&&FB.XFBML.parse?SHR4P.fbUtil.addFBSubscription():setTimeout(SHR4P.fbUtil.tryAddFBSubscription,500)},addFBSubscription:function(){FB.Event.subscribe("edge.create",
function(a){SHR4P.jQuery("<img/>").attr({src:"http://www.shareaholic.com/api/share/?v=1&apikey=172809fde4d12743cc4a1ec894142b97f&apitype=3&service=303&link="+encodeURIComponent(a),width:"1",height:"1"}).appendTo("body")});FB.Event.subscribe("message.send",function(a){SHR4P.jQuery("<img/>").attr({src:"http://www.shareaholic.com/api/share/?v=1&apikey=172809fde4d12743cc4a1ec894142b97f&apitype=3&service=305&link="+encodeURIComponent(a),width:"1",height:"1"}).appendTo("body")})},addFBNameSpace:function(){var a=
SHR4P.jQuery(SHR4P.jQuery("html").get(0));if(typeof a.attr("xmlns:fb")=="undefined"&&(!SHR4P.jQuery.browser.msie||SHR4P.jQuery.browser.version>="9.0"))a.attr("xmlns:fb","http://www.facebook.com/2008/fbml"),a.attr("xmlns:og","http://opengraphprotocol.org/schema/")},hasFBNameSpace:function(){return typeof SHR4P.jQuery(SHR4P.jQuery("html").get(0)).attr("xmlns:fb")!="undefined"}};
SHR4P.tooltips_prefix_map={1:10,2:0,3:0,4:0,5:0,6:1,7:0,8:1,9:1,10:1,11:1,12:1,13:1,14:0,15:1,16:1,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:0,28:1,29:1,30:1,31:1,32:1,33:1,34:1,35:1,36:1,37:1,38:0,39:1,40:1,41:1,42:1,43:1,44:1,45:1,46:1,47:1,48:1,49:1,50:1,51:10,52:10,53:10,54:10,55:10,56:1,57:1,58:1,59:1,60:1,61:0,62:1,63:1,64:1,65:1,66:1,67:1,68:1,69:1,70:1,71:1,72:1,73:1,74:1,75:1,76:1,78:1,79:1,80:1,81:1,82:1,83:1,84:1,85:1,86:1,87:1,88:1,89:1,90:1,91:1,92:1,93:1,94:1,95:1,96:1,97:1,
98:1,99:1,100:1,101:1,102:1,103:1,104:1,105:1,106:1,107:1,108:1,109:1,110:1,111:1,112:1,113:1,114:1,115:1,116:1,117:1,118:1,119:1,120:1,121:1,122:1,123:1,124:1,125:1,126:1,127:1,128:1,129:1,130:1,131:1,132:1,133:1,134:1,135:1,136:1,137:1,138:1,139:1,140:1,141:1,142:1,143:1,144:1,145:1,146:1,147:1,148:1,149:1,150:1,151:1,152:1,153:1,154:1,155:1,156:1,157:1,158:1,159:1,160:1,161:1,162:1,163:1,164:1,165:1,166:1,167:1,168:1,169:1,170:1,171:1,172:1,173:1,174:1,175:1,176:1,177:1,178:1,179:1,180:1,181:1,
182:1,183:1,184:9,185:9,186:9,187:0,188:2,189:1,190:1,191:1,192:1,193:0,194:1,195:3,196:1,197:1,198:1,199:1,200:1,201:10,202:0,203:0,204:2,205:0,206:0,207:3,208:7,209:0,210:0,211:0,212:0,213:0,214:7,215:0,216:0,217:0,218:0,219:0,220:0,221:0,222:0,223:7,224:7,225:0,226:0,227:0,228:7,229:0,230:0,231:0,232:7,233:0,234:7,235:0,236:4,237:2,238:2,239:1,240:1,241:1,242:1,243:1,244:1,245:1,246:0,247:3,248:7,249:7,250:6,251:9,252:2,253:0,254:1,255:1,256:1,257:5,258:0,259:0,260:1,261:0,262:1,263:0,264:0,265:0,
266:0,267:0,268:0,269:0,270:1,271:1,272:1,273:1,274:1,275:1,276:1,277:0,278:0,279:0,280:0,281:0,282:3,283:0,284:2,285:0,286:0,287:0,288:0,289:0,290:0,291:0,292:0,293:0,294:6,295:11,296:11,297:11,298:1,299:1,300:1,301:1,302:1,303:11,304:11,305:11,306:11,307:11};
SHR4P.tooltips_suffix={1:"Buzzster!",2:"Delicious",3:"Digg",4:"Mixx",5:"Facebook",6:"Mister-Wong",7:"Twitter",8:"Netlog",9:"Pownce",10:"Technorati Favorites",11:"Furl",12:"Shoutwire",13:"CiteULike",14:"Jumptags",15:"Windows Live Spaces",16:"Hemidemi",17:"FunP",18:"Instapaper",19:"PhoneFavs",20:"Xerpi",21:"Netvouz",22:"Wink",23:"Ma.gnolia",24:"Diigo",25:"BibSonomy",26:"Taggly",27:"BlogMarks",28:"Tailrank",29:"StartAid",30:"Kledy",31:"Khabbr",32:"Yahoo My Web",33:"Meneame",34:"Yoolink",35:"Bookmarks.fr",
36:"Technotizie",37:"Windows Live Favorites",38:"StumbleUpon",39:"MySpace",40:"Reddit",41:"NewsVine",42:"Multiply",43:"FriendFeed",44:"Plaxo Pulse",45:"Ping",46:"Squidoo",47:"Protopage Bookmarks",48:"Blinklist",49:"Faves",50:"AIM",51:"E-mail program",52:"Gmail",53:"Hotmail",54:"Yahoo Mail",55:"AOL Mail",56:"YiGG",57:"Webnews",58:"Segnalo",59:"Pusha",60:"YouMob",61:"Slashdot",62:"Fark",63:"Allvoices",64:"Jamespot",65:"Imera Brazil",66:"Twiddla",67:"LinkaGoGo",68:"MindBodyGreen",69:"Feedmarker Bookmarks",
70:"unalog",71:"Hugg",72:"Diglog",73:"Yahoo Buzz",74:"Google Bookmarks",75:"NowPublic",76:"Yahoo Bookmarks",78:"Tumblr",79:"LiveJournal",80:"Current",81:"HelloTxt",82:"Spurl",83:"Yample",84:"Oneview",85:"Linkatopia",86:"Simpy",87:"Yahoo Messenger",88:"LinkedIn",89:"Global Grind",90:"BuddyMarks",91:"Ask.com MyStuff",92:"Viadeo",93:"Maple",94:"Wists",95:"Gravee",96:"Connotea",97:"Backflip",98:"MyLinkVault",99:"SiteJot",100:"Sphinn",101:"Health Ranker",102:"DZone",103:"Symbaloo Feeds",104:"Care2 News",
105:"Hyves",106:"Design Float",107:"Sphere",108:"Bitty Browser",109:"My Yahoo",110:"Google",111:"Excite MIX",112:"iTunes",113:"Zune",114:"FeedM8",115:"PodNova",116:"WINKsite",117:"NewsGator",118:"Hubdog",119:"BUZmob",120:"NewsIsFree",121:"KlipFolio",122:"NETime Channel",123:"Feed Mailer",124:"Symbaloo Bookmarks",125:"Rocket RSS Reader",126:"Blogger",127:"Flurry",128:"FireAnt",129:"Sofomo",130:"Netomat HUB",131:"FeedMarker",132:"FeedBucket",133:"SendMeRSS",134:"Bloglines",135:"Windows Live",136:"Protopage News Feeds",
137:"My AOL",138:"The Free Library",139:"The Free Dictionary",140:"Wikio",141:"BlogRovR",142:"Webwag",143:"Daily Rotation",144:"Outlook",145:"Google Toolbar",146:"Bitty Browser Preview",147:"RSS 2 PDF",148:"LiteFeeds",149:"Gritwire",150:"FeedLounge",151:"FeedReader",152:"FeedOnSite",153:"i metaRSS",154:"RssFwd",155:"SimplyHeadlines",156:"Zhua Xia",157:"Xian Guo",158:"mobilerss",159:"Netvibes",160:"Pageflakes",161:"My MSN",162:"Odeo",163:"AideRSS",164:"Fwicki",165:"RapidFeeds",166:"Miro",167:"Shyftr",
168:"ZapTXT",169:"Newgie",170:"NewsAlloy",171:"Plusmo",172:"Yourminis",173:"Eskobo",174:"Alesti",175:"Rasasa",176:"AvantGo",177:"FeedShow",178:"Xanga",179:"MySpace Profile",180:"Friendster",181:"Hi5",182:"FeedBlitz",183:"Gabbr",184:"MSDN",185:"Microsoft TechNet",186:"Microsoft Expression",187:"Tagza",188:"Tipd",189:"Agregator",190:"Strands",191:"Evernote",192:"Stumpedia",193:"Foxiewire",194:"Arto",195:"Netvibes",196:"Bebo",197:"Folkd",198:"VodPod",199:"NewsTrust",200:"Amazon (US) Wish List",201:"E-mail program",
202:"YC Hacker News",203:"Truemors",204:"Techmeme Tip",205:"Identi.ca",206:"SmakNews",207:"Google Reader",208:"Bit.ly",209:"Kaboodle",210:"Posterous",211:"TipJoy",212:"I Heart It",213:"Google Notebook",214:"Tr.im",215:"Streakr",216:"Twine",217:"Soup",218:"Plurk",219:"Blogger",220:"TypePad",221:"AttentionMeter",222:"Smush.it",223:"TinyURL",224:"Digg",225:"BzzScapes",226:"Tweetie",227:"Diigo",228:"Is.gd",229:"vi.sualize.us",230:"WordPress Blog",231:"Mozillaca",232:"Su.pr",233:"TBUZZ",234:"Hub.tm",235:"Followup.cc",
236:"PrintFriendly",237:"DailyMe",238:"NUjij",239:"Read It Later",240:"Box.net",241:"Balatarin",242:"Favoriten",243:"Oknotizie",244:"diHITT",245:"Svejo",246:"Hatena",247:"Orkut",248:"Clicky",249:"j.mp",250:"ReadWriteWeb",251:"Dwellicious",252:"Google Translate",253:"Yammer",254:"Yahoo Buzz India",255:"Boxee",256:"Pinboard",257:"Google Buzz",258:"Readability",259:"Social.com",260:"Google Apps Email",261:"HootSuite",262:"Google Wave",263:"iZeby",264:"Ning",265:"SpringPad",266:"BobrDobr",267:"Yandex",
268:"Moemesto",269:"Memori.ru",270:"Amazon (UK) Wish List",271:"Amazon (CA) Wish List",272:"Amazon (DE) Wish List",273:"Amazon (FR) Wish List",274:"Amazon (JP) Wish List",275:"Google Sidewiki",276:"Marginize",277:"Twittley",278:"Script & Style",279:"PFBuzz",280:"Fwisp",281:"100 bookmarks",282:"Design Bump",283:"eKudos",284:"Web Blend",285:"Wykop",286:"BlogEngage",287:"FAQpal",288:"Bitacoras",289:"N4G",290:"Kaevur",291:"Virb",292:"BonzoBox",293:"Zabox",294:"ToMuse",295:"BuzzFeed",296:"Amazon Universal Registry",
297:"TwitThat",298:"Mister-Wong DE",299:"Mister-Wong CN",300:"Mister-Wong ES",301:"Mister-Wong FR",302:"Mister-Wong RU",303:"Facebook Like",304:"Facebook Send",305:"Google +1",306:"Shareaholic More",307:"Shareaholic All"};
SHR4P.locales={en:{0:"Post to",1:"Add to",2:"Submit to",3:"Share on",4:"Print with",5:"Post on",6:"Suggest this article to",7:"Shorten URL with",8:"Push this on",9:"Bookmark on",10:"Send via",11:""},es:{0:"Publicarlo a",1:"A\u00f1adirlo a",2:"Enviar a",3:"Compartir con",4:"Imprimir con",5:"Publicarlo en",6:"Sugiere este art\u00edculo a",7:"Acortar URL con",8:"Pulse este en",9:"Agregar a marcador en",10:"Enviar via",11:""},fr:{0:"Publiez-le sur",1:"Ajoutez ce lien \u00e0",2:"Soumettez ce lien \u00e0",
3:"Partagez-le sur",4:"Imprimez-le avec",5:"Publiez-le sur",6:"Sugg\u00e9rer cet article \u00e0",7:"Raccourcir l'URL avec",8:"Poussez cet article sur",9:"Ajoutez-le \u00e0 vos favoris sur",10:"Envoyez-le avec",11:""},de:{0:"Senden an",1:"Hinzuf\u00fcgen zu",2:"\u00dcbertragen zu",3:"Teilen bei",4:"Drucken mit",5:"Ver\u00f6ffentlichen bei",6:"Empfehlen bei",7:"URL k\u00fcrzen mit",8:"Schiebe dies auf",9:"Lesezeichen speichern auf",10:"Senden mit",11:""},tr:{0:"Bunu postala:",1:"Bunu ekle:",2:"Bu makaleyi payla\u015f:",
3:"Bunu payla\u015f:",4:"Bask\u0131 ile",5:"Bunu postala:",6:"Bu makaleyi \u00f6ner:",7:"K\u0131saltmak Url ile",8:"Bunu payla\u015f:",9:"Bookmark on",10:"Send via",11:""},it:{0:"Pubblicalo su",1:"Aggiungilo a",2:"Invia questa storia a",3:"Condividi su",4:"Stampa con",5:"Pubblicalo su",6:"Suggerisci questo articolo a",7:"Accorciare URL con",8:"Sparalo in",9:"Bookmark on",10:"Send via",11:""},pt:{0:"Publicar no",1:"Adicionar ao",2:"Enviar hist\u00f3ria para o",3:"Compartilhar no",4:"Imprima com",5:"Publicar no",
6:"Sugerir este artigo para",7:"Encurtar url com",8:"Publicar no",9:"Favoritar no",10:"Enviar via",11:""},pt_BR:{0:"Postar no",1:"Adicionar ao",2:"Enviar para",3:"Compartilhar com",4:"Imprimir com",5:"Postar no",6:"Sugerir este artigo para",7:"Encurtar a URL com",8:"Enviar no",9:"Favoritar no",10:"Enviar via",11:""},et:{0:"Postita",1:"Lisa",2:"Saada",3:"Jaga",4:"Prindi",5:"Postita",6:"Soovita seda artiklit",7:"L\u00fchenda URL",8:"Sparalo in",9:"Bookmark on",10:"Send via",11:""},hu:{0:"Elk\u00fcld\u00e9s:",
1:"Hozz\u00e1ad\u00e1s:",2:"Tov\u00e1bbk\u00fcld\u00e9s:",3:"Megoszt\u00e1s:",4:"Nyomtat\u00e1s:",5:"Publik\u00e1l\u00e1s:",6:"Aj\u00e1nl\u00e1s valakinek:",7:"C\u00edm (URL) r\u00f6vid\u00edt\u00e9se:",8:"Kik\u00fcld\u00e9s:",9:"K\u00f6nyvjelz\u0151 felv\u00e9tele:",10:"K\u00fcld\u00e9s:",11:""},bg:{0:"\u041f\u0443\u0431\u043b\u0438\u043a\u0443\u0432\u0430\u0439 \u0432",1:"\u041f\u0440\u0438\u0431\u0430\u0432\u0438 \u043a\u044a\u043c",2:"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438 \u043a\u044a\u043c",
3:"\u0421\u043f\u043e\u0434\u0435\u043b\u0438 \u043f\u043e",4:"\u041f\u0440\u0438\u043d\u0442\u0438\u0440\u0430\u0439 \u0441",5:"\u041f\u0443\u0431\u043b\u0438\u043a\u0443\u0432\u0430\u0439 \u043d\u0430",6:"\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0438 \u0442\u0430\u0437\u0438 \u0441\u0442\u0430\u0442\u0438\u044f \u043d\u0430",7:"\u0421\u044a\u043a\u0440\u0430\u0442\u0435\u043d URL \u0441",8:"\u0411\u0443\u0442\u043d\u0438 \u0442\u043e\u0432\u0430 \u043a\u044a\u043c",9:"\u041e\u0442\u0431\u0435\u043b\u0435\u0436\u0438 \u0432",
10:"\u0418\u0437\u043f\u0440\u0430\u0442\u0438 \u0447\u0440\u0435\u0437",11:""},el:{0:"\u0391\u03bd\u03b1\u03c1\u03c4\u03ae\u03c3\u03c4\u03b5 \u03c3\u03c4\u03bf",1:"\u03a0\u03c1\u03bf\u03c3\u03b8\u03ad\u03c3\u03c4\u03b5 \u03c3\u03c4\u03bf",2:"\u03a5\u03c0\u03bf\u03b2\u03ac\u03bb\u03bb\u03b5\u03c4\u03b5 \u03c3\u03c4\u03bf",3:"\u039c\u03bf\u03b9\u03c1\u03b1\u03c3\u03c4\u03b5\u03af\u03c4\u03b5 \u03c3\u03c4\u03bf",4:"\u0395\u03ba\u03c4\u03c5\u03c0\u03ce\u03c3\u03c4\u03b5 \u03bc\u03b5",5:"\u0391\u03bd\u03b1\u03c1\u03c4\u03ae\u03c3\u03c4\u03b5 \u03c3\u03c4\u03bf",
6:"\u03a0\u03c1\u03bf\u03c4\u03b5\u03af\u03bd\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03ac\u03c1\u03b8\u03c1\u03bf \u03c3\u03b5",7:"\u03a3\u03c5\u03bd\u03c4\u03bf\u03bc\u03b5\u03cd\u03c3\u03c4\u03b5 \u03c4\u03bf URL \u03bc\u03b5",8:"\u03a0\u03c1\u03bf\u03c9\u03b8\u03ae\u03c3\u03c4\u03b5 \u03c3\u03c4\u03bf",9:"\u03a0\u03c1\u03bf\u03c3\u03b8\u03ad\u03c3\u03c4\u03b5 \u03c3\u03b5\u03bb\u03b9\u03b4\u03bf\u03b4\u03b5\u03af\u03ba\u03c4\u03b7 \u03c3\u03c4\u03bf",10:"\u0391\u03c0\u03bf\u03c3\u03c4\u03b5\u03af\u03bb\u03b5\u03c4\u03b5 \u03bc\u03ad\u03c3\u03c9",
11:""},lt:{0:"Paskelbti",1:"Prid\u0117ti \u012f",2:"Pateikti",3:"Dalintis",4:"Spausdinti per",5:"\u012era\u0161yti",6:"Pasi\u016blyti \u0161\u012f straipsn\u012f \u012f",7:"Trumpinti URL su",8:"Kilstel\u0117ti",9:"Pasi\u017eym\u0117ti per",10:"Si\u0173sti per",11:""},nl:{0:"Publiceer op",1:"Voeg toe aan",2:"Stuur in op",3:"Deel op",4:"Print met",5:"Publiceer op",6:"Suggereer dit artikel op",7:"Verkort de URL met",8:"Push dit op",9:"Maak een bladwijzer op",10:"Verzend met",11:""}};SHR4P.load();
;
/**
* hoverIntent is similar to jQuery's built-in "hover" function except that
* instead of firing the onMouseOver event immediately, hoverIntent checks
* to see if the user's mouse has slowed down (beneath the sensitivity
* threshold) before firing the onMouseOver event.
* 
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
* 
* hoverIntent is currently available for use in all personal or commercial 
* projects under both MIT and GPL licenses. This means that you can choose 
* the license that best suits your project, and use it accordingly.
* 
* // basic usage (just like .hover) receives onMouseOver and onMouseOut functions
* $("ul li").hoverIntent( showNav , hideNav );
* 
* // advanced usage receives configuration object only
* $("ul li").hoverIntent({
*	sensitivity: 7, // number = sensitivity threshold (must be 1 or higher)
*	interval: 100,   // number = milliseconds of polling interval
*	over: showNav,  // function = onMouseOver callback (required)
*	timeout: 0,   // number = milliseconds delay before onMouseOut function call
*	out: hideNav    // function = onMouseOut callback (required)
* });
* 
* @param  f  onMouseOver function || An object with configuration options
* @param  g  onMouseOut function  || Nothing (use configuration options object)
* @author    Brian Cherne <brian@cherne.net>
*/
(function($) {
	$.fn.hoverIntent = function(f,g) {
		// default configuration options
		var cfg = {
			sensitivity: 7,
			interval: 100,
			timeout: 0
		};
		// override configuration options with user supplied object
		cfg = $.extend(cfg, g ? { over: f, out: g } : f );

		// instantiate variables
		// cX, cY = current X and Y position of mouse, updated by mousemove event
		// pX, pY = previous X and Y position of mouse, set by mouseover and polling interval
		var cX, cY, pX, pY;

		// A private function for getting mouse position
		var track = function(ev) {
			cX = ev.pageX;
			cY = ev.pageY;
		};

		// A private function for comparing current and previous mouse position
		var compare = function(ev,ob) {
			ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
			// compare mouse positions to see if they've crossed the threshold
			if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
				$(ob).unbind("mousemove",track);
				// set hoverIntent state to true (so mouseOut can be called)
				ob.hoverIntent_s = 1;
				return cfg.over.apply(ob,[ev]);
			} else {
				// set previous coordinates for next time
				pX = cX; pY = cY;
				// use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs)
				ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval );
			}
		};

		// A private function for delaying the mouseOut function
		var delay = function(ev,ob) {
			ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
			ob.hoverIntent_s = 0;
			return cfg.out.apply(ob,[ev]);
		};

		// A private function for handling mouse 'hovering'
		var handleHover = function(e) {
			// next three lines copied from jQuery.hover, ignore children onMouseOver/onMouseOut
			var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget;
			while ( p && p != this ) { try { p = p.parentNode; } catch(e) { p = this; } }
			if ( p == this ) { return false; }

			// copy objects to be passed into t (required for event object to be passed in IE)
			var ev = jQuery.extend({},e);
			var ob = this;

			// cancel hoverIntent timer if it exists
			if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); }

			// else e.type == "onmouseover"
			if (e.type == "mouseover") {
				// set "previous" X and Y position based on initial entry point
				pX = ev.pageX; pY = ev.pageY;
				// update "current" X and Y position based on mousemove
				$(ob).bind("mousemove",track);
				// start polling interval (self-calling timeout) to compare mouse coordinates over time
				if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );}

			// else e.type == "onmouseout"
			} else {
				// unbind expensive mousemove event
				$(ob).unbind("mousemove",track);
				// if hoverIntent state is true, then call the mouseOut function after the specified delay
				if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );}
			}
		};

		// bind the function to the two event listeners
		return this.mouseover(handleHover).mouseout(handleHover);
	};
})(jQuery);;
(function ($) {

Drupal.behaviors.openid = {
  attach: function (context) {
    var loginElements = $('.form-item-name, .form-item-pass, li.openid-link');
    var openidElements = $('.form-item-openid-identifier, li.user-link');
    var cookie = $.cookie('Drupal.visitor.openid_identifier');

    // This behavior attaches by ID, so is only valid once on a page.
    if (!$('#edit-openid-identifier.openid-processed').size()) {
      if (cookie) {
        $('#edit-openid-identifier').val(cookie);
      }
      if ($('#edit-openid-identifier').val()) {
        $('#edit-openid-identifier').addClass('openid-processed');
        loginElements.hide();
        // Use .css('display', 'block') instead of .show() to  Konqueror friendly.
        openidElements.css('display', 'block');
      }
    }

    $('li.openid-link:not(.openid-processed)', context)
      .addClass('openid-processed')
      .click(function () {
         loginElements.hide();
         openidElements.css('display', 'block');
        // Remove possible error message.
        $('#edit-name, #edit-pass').removeClass('error');
        $('div.messages.error').hide();
        // Set focus on OpenID Identifier field.
        $('#edit-openid-identifier')[0].focus();
        return false;
      });
    $('li.user-link:not(.openid-processed)', context)
      .addClass('openid-processed')
      .click(function () {
         openidElements.hide();
         loginElements.css('display', 'block');
        // Clear OpenID Identifier field and remove possible error message.
        $('#edit-openid-identifier').val('').removeClass('error');
        $('div.messages.error').css('display', 'block');
        // Set focus on username field.
        $('#edit-name')[0].focus();
        return false;
      });
  }
};

})(jQuery);
;
Drupal.behaviors.mediaGalleryColorbox = {};

Drupal.behaviors.mediaGalleryColorbox.attach = function (context, settings) {
  var $ = jQuery, $galleries, $gallery, href, $links, $link, $dummyLinksPre, $dummyLinksPost, i, j;
  if ($.fn.colorbox) {
    // Add a colorbox group for each media gallery field on the page.
    $galleries = $('.field-name-media-gallery-media');
    for (i = 0; i < $galleries.length; i++) {
      $gallery = $($galleries[i]);
      $links = $('a.cbEnabled', $gallery);
      $dummyLinksPre = $gallery.parent().find('ul:has(a.colorbox-supplemental-link.pre)');
      $dummyLinksPost = $gallery.parent().find('ul:has(a.colorbox-supplemental-link.post)');
      $dummyLinksPost.appendTo($gallery);
      $links = $links.add('a', $dummyLinksPre).add('a', $dummyLinksPost);
      $links.attr('rel', 'colorbox-' + i);
      for (j = 0; j < $links.length; j++) {
        // Change the link href to point to the lightbox version of the media.
        $link = $($links[j]);
        href = $link.attr('href');
        $link.attr('href', href.replace(/\/detail\/([0-9]+)\/([0-9]+)/, '/lightbox/$1/$2'));
      }
      $links.not('.meta-wrapper').colorbox({
        slideshow: true,
        slideshowAuto: false,
        slideshowStart: Drupal.t('Slideshow'),
        slideshowStop: '[' + Drupal.t('stop slideshow') + ']',
        slideshowSpeed: 4000,
        current: Drupal.t('Item !current of !total', {'!current':'{current}', '!total':'{total}'}),
        innerWidth: 'auto',
        // If 'title' evaluates to false, Colorbox will use the title from the
        // underlying <a> element, which we don't want. Using a space is the
        // officially approved workaround. See
        // http://groups.google.com/group/colorbox/msg/7671ae69708950bf
        title: ' ',
        transition: 'fade',
        preloading: true
      });
    }
    $('a.meta-wrapper').bind('click', Drupal.mediaGalleryColorbox.metaClick);
    // Subscribe to the media_youtube module's load event, so we can pause
    // the slideshow and play the video.
    $(window).bind('media_youtube_load', Drupal.mediaGalleryColorbox.handleMediaYoutubeLoad);
  }
};

Drupal.mediaGalleryColorbox = {};

/**
 * Handles the click event on the metadata.
 */
Drupal.mediaGalleryColorbox.metaClick = function (event) {
  event.preventDefault();
  jQuery(this).prev('.media-gallery-item').find('a.cbEnabled').click();
};

/**
 * Handles the media_youtube module's load event.
 *
 * If the colorbox slideshow is playing, and it gets to a video, the video
 * should play automatically, and the slideshow should pause until it's done.
 */
Drupal.mediaGalleryColorbox.handleMediaYoutubeLoad = function (event, videoSettings) {
  var $ = jQuery;
  var slideshowOn = $('#colorbox').hasClass('cboxSlideshow_on');
  // Set a width on a wrapper for the video so that the colorbox will size properly.
  $('#colorbox .media-gallery-item').width(videoSettings.width + 'px').height(videoSettings.height + 'px');
  if (slideshowOn) {
    videoSettings.options.autoplay = 1;
    $('#cboxSlideshow')
      // Turn off the slideshow while the video is playing.
      .click() // No, there is not a better way.
      .text('[' + Drupal.t('resume slideshow') + ']');
      // TODO: If YouTube makes its JavaScript API available for iframe videos,
      // set the slideshow to restart when the video is done playing.
  }
};
;
/*jslint bitwise: true, eqeqeq: true, immed: true, newcap: true, nomen: false,
 onevar: false, plusplus: false, regexp: true, undef: true, white: true, indent: 2
 browser: true */

/*global jQuery: true Drupal: true window: true ThemeBuilder: true */

(function ($) {
  /**
   * Stop the rotation in the Rotating Banner when the ThemeBuilder is open
   */
  Drupal.behaviors.RotatingBannerInThemeBuilder = {
    attach: function (context) {
      if ($('body').hasClass('themebuilder')) {
        $('.rb-slides').each(function () {
          if ($(this).cycle) {
            $(this).cycle('stop');
          }
        });
      }
    }
  };
  /**
   * Activate Superfish Pulldown menus
   */
  Drupal.behaviors.GardensFeaturesPulldownMenus = {
    attach: function (context, settings) {
      Drupal.behaviors.GardensFeaturesPulldownMenus.settings = {
        appearance: {
          gutter: 10,
          push: 2,
          overlapOffset: 1.4545
        }
      };
      if (settings) {
        $.extend(Drupal.behaviors.GardensFeaturesPulldownMenus.settings, settings);
      }
      if ($().superfish) {
        $('.content > .menu', '#page .stack-navigation').once('pulldown', function () {
          $(this).superfish({
            hoverClass: 'menu-dropdown-hover',
            delay: 150,
            dropShadows: false,
            speed: 300,
            autoArrows: true,
            onBeforeShow: Drupal.behaviors.GardensFeaturesPulldownMenus.adjustPulldown
          });
        });
      }
    }
  };
  
  /**
   * This function is run to adjust the placement of a pulldown.
   *
   * @param {DomElement} this
   *   The pulldown (ul) that is currently being shown.
   */   
  Drupal.behaviors.GardensFeaturesPulldownMenus.adjustPulldown = function () {
    $(this).css({display: 'block', visibility: 'hidden'});
    Drupal.behaviors.GardensFeaturesPulldownMenus.adjustPulldownPlacement($(this));
    $(this).css({display: 'none', visibility: 'visible'});
  };
  
  /**
   * Progressively increases the width of the pulldown by 33% until
   * the height of each item is less than the line height 
   *
   * @param {DomElement} pulldown
   *   The pulldown (ul) to be positioned
   * @param {DomElement} item
   *   The anchor tag of an item in the list
   * @param {int} lineHeight
   *   The line height of the item's anchor tag. This is passed in 
   *   because it does not need to be calculated more than once
   * @param {int} safety
   *   A counter to prevent recursive errors. The width of the pulldown
   *   will be adjusted at most 5 times currently.
   */  
  Drupal.behaviors.GardensFeaturesPulldownMenus.adjustPulldownWidth = function (pulldown, item, lineHeight, safety) {
    var width = pulldown.width();
    var height = item.height();
    var wrapped = ((height - lineHeight) > 2) ? true : false; // Provide a little give with a 2 pixel fudge factor for IE7
    if (wrapped && (safety < 5)) {
      pulldown.animate({
          width: width * 1.2
        },
        {
          duration: 0,
          queue: true,
          complete: function () {
            safety += 1;
            Drupal.behaviors.GardensFeaturesPulldownMenus.adjustPulldownWidth(pulldown, item, lineHeight, safety);
          }
        }
      );
    }
  };
  
  /**
   * Moves a pulldown left or right, according to its alignment, after its
   * parent's width has been adjusted
   *
   * @param {DomElement} pulldown
   *   The pulldown (ul) to be positioned
   */
  Drupal.behaviors.GardensFeaturesPulldownMenus.adjustPulldownPlacement = function (element) {
    var pulldown = {};
    pulldown.el = element;
    var isRTL = ($('html').attr('dir') === 'rtl');

    // Wipe out any previous positioning
    pulldown.el.removeAttr('style');

    // Get the depth of the sub menu
    // 0 is first tier sub menu
    // 1 is second tier sub menu, etc
    var depth = pulldown.el.parentsUntil('.pulldown-processed').filter('.menu').length;
    pulldown.parent = {};
    pulldown.parent.el = element.prev('a');
    pulldown.parent.css = {
      lineHeight: Drupal.behaviors.GardensFeaturesPulldownMenus._stripPX(pulldown.parent.el.css('line-height')),
      padding: {
        top: Drupal.behaviors.GardensFeaturesPulldownMenus._stripPX(pulldown.parent.el.css('padding-top'))
      },
      margin: {
        top: Drupal.behaviors.GardensFeaturesPulldownMenus._stripPX(pulldown.parent.el.css('margin-top'))
      }
    };
    // Only consider pulldowns, not the main menu items
    // Basic placement without edge detection
    var root = {};
    root.el = pulldown.el.parents('.pulldown-processed li .menu');
    if (root.el && (root.el.length > 0)) {
      pulldown.el.css({
        left: root.el.width()
      });
    }
    // Get the viewport and scroll information
    var viewport = {};
    viewport.width = $(window).width(); // Width of the visible viewport
    viewport.height = $(window).height(); // Height of the visible viewport
    viewport.scroll = {};
    viewport.scroll.top = $(window).scrollTop();
    pulldown.pos = pulldown.el.position();
    // pushDir corresponds to the RTL setting
    var pushDir = (isRTL) ? 'right' : 'left';
    // handDir corresponds to which edge of the screen the menus might collide with. It is the opposite
    // of pushDir.
    var hangDir = (pushDir === 'right') ? 'left' : 'right';
    // Move the pulldown back to its origin if we moved it because of edge correction previously
    var prevCorrection = Drupal.behaviors.GardensFeaturesPulldownMenus._stripPX(pulldown.el.css(pushDir));
    if (prevCorrection < 0) {
      pulldown.el.css[pushDir] = pulldown.pos[pushDir] = 0;
    }
    // Now check for edge collision
    pulldown.offset = pulldown.el.offset();
    if (pulldown.offset) {
      pulldown.width = pulldown.el.outerWidth(false);
      pulldown.height = pulldown.el.outerHeight(false);
      pulldown.edge = {};
      pulldown.edge.left = pulldown.offset.left;
      pulldown.edge.right = pulldown.offset.left + pulldown.width;
      pulldown.edge.bottom = pulldown.offset.top + pulldown.height;
      pulldown.hang = {};
      pulldown.hang.left = pulldown.edge.left;
      pulldown.hang.right = viewport.width - pulldown.edge.right;
      pulldown.hang.bottom = (viewport.height + viewport.scroll.top) - pulldown.edge.bottom  - Drupal.behaviors.GardensFeaturesPulldownMenus.settings.appearance.gutter;
      pulldown.hang.bottomModified = 1;
      pulldown.correction = {};
      pulldown.correction.left = pulldown.pos.left + pulldown.hang.right - Drupal.behaviors.GardensFeaturesPulldownMenus.settings.appearance.gutter;
      pulldown.correction.right = (depth > 0) ? 
        pulldown.hang.left + pulldown.width - Drupal.behaviors.GardensFeaturesPulldownMenus.settings.appearance.gutter : 
        pulldown.hang.left - Drupal.behaviors.GardensFeaturesPulldownMenus.settings.appearance.gutter;
      
      // Move the pulldown back onto the screen
      if (pulldown.hang[hangDir] <= 0) {
        var leftVal = (pushDir === 'left') ? pulldown.correction.left : 'auto';
        var rightVal = (pushDir === 'right') ? pulldown.correction.right : 'auto';
        pulldown.el.css(
          {
            'left': leftVal,
            'right': rightVal
          }
        );
        // Push the pulldown down half a line height if it is a sub-sub menu so that sub menu items aren't completely occluded.
        if (depth > 0) {
          var top = (((pulldown.parent.css.lineHeight) / Drupal.behaviors.GardensFeaturesPulldownMenus.settings.appearance.overlapOffset) + (pulldown.parent.css.padding.top) + (pulldown.parent.css.margin.top));
          pulldown.el.css('top', top);
          pulldown.hang.bottomModified = pulldown.hang.bottom - top;
        }
      }
      // Move the pulldown up if it hangs off the bottom
      if (pulldown.hang.bottom <= 0 || pulldown.hang.bottomModified <= 0) {
        pulldown.el.css('top', (pulldown.pos.top + pulldown.hang.bottom));
      }
    }
  };
  
  /**
   * Utility function to remove 'px' from calculated values.  The function assumes that
   * that unit 'value' is pixels.
   *
   * @param {String} value
   *   The String containing the CSS value that includes px.
   * @return {int}
   *   Value stripped of 'px' and casted as a number or NaN if 'px' is not found in the string.
   */  
  Drupal.behaviors.GardensFeaturesPulldownMenus._stripPX = function (value) {
    if (value) {
      var index = value.indexOf('px');
      if (index === -1) {
        return NaN;
      }
      else {
        return Number(value.substring(0, index));
      }
    }
    else {
      return NaN;
    }
  };

  /**
   * Add a "Show/Hide disabled views" toggle link to the Views list on
   * admin/structure/views, similar to the "Show/Hide row weights" link on
   * tabledrag tables.
   */
  Drupal.behaviors.GardensFeaturesViewsListFilter = {
    attach: function (context, settings) {
      $('body.page-admin-structure-views table.#ctools-export-ui-list-items').once('gardens-features-views-list-filter', function() {
        var $table = $(this);

        // Remove any prior links created (for when table gets replaced by AJAX)
        $('.gardens-features-toggle-disabled-wrapper').remove();

        // Create the toggle link, initialized to reflect that all rows are
        // currently shown.
        var $link = $('<a href="#" class="gardens-features-toggle-disabled gardens-features-toggle-disabled-show"></a>')
          .text(Drupal.t('Hide disabled views'))
          .click(function () {
            if ($(this).hasClass('gardens-features-toggle-disabled-show')) {
              $(this).removeClass('gardens-features-toggle-disabled-show');
              $(this).addClass('gardens-features-toggle-disabled-hide');
              $('.ctools-export-ui-disabled', $table).hide();
              if ($('tbody tr', $table).length == $('.ctools-export-ui-disabled', $table).length) {
                $('tbody', $table).prepend('<tr class="gardens-features-toggle-disabled-empty odd"><td colspan="5">' + Drupal.t('No enabled views found.') + '</td></tr>');
              }
              $.cookie('Drupal.GardensFeaturesViewsListFilter.showDisabled', 0, {path: Drupal.settings.basePath, expires: 365});
              $(this).text(Drupal.t('Show disabled views'));
            }
            else {
              $(this).removeClass('gardens-features-toggle-disabled-hide');
              $(this).addClass('gardens-features-toggle-disabled-show');
              $('.ctools-export-ui-disabled', $table).show();
              $('.gardens-features-toggle-disabled-empty', $table).remove();
              $.cookie('Drupal.GardensFeaturesViewsListFilter.showDisabled', 1, {path: Drupal.settings.basePath, expires: 365});
              $(this).text(Drupal.t('Hide disabled views'));
            }
            return false;
          });

        // Add it before the table.
        $table.before($link.wrap('<div class="gardens-features-toggle-disabled-wrapper"></div>').parent());

        // Unless there's a cookie for disabled views to be shown, "click" the
        // link in order to hide them.
        if ($.cookie('Drupal.GardensFeaturesViewsListFilter.showDisabled') != 1) {
          $link.click();
        }

        // If the filter form is also active, remove the widget to filter by
        // enabled/disabled status, to not conflict with the toggle link.
        $('#ctools-export-ui-list-form .form-item-disabled').hide();
      });
    }
  };

  /**
   * Open all links to Drupal Gardens "Learn More" pages in a new window.
   */
  Drupal.behaviors.GardensFeaturesLearnMoreLinks = {
    attach: function (context, settings) {
      $('a[href^="http://www.drupalgardens.com/learnmore/"]', context).attr('target', '_blank');
    }
  };

})(jQuery);
;

