/*
==================================================================
Auto-generated on: Thu Sep 9 8:17:57 UTC 2010 
From cache: yes 
Cache key: benalman.com/code/php/multi_file.php?m=benalman_js/91 
==================================================================
*/




/* http://benalman.com/code/projects/javascript-debug/ba-debug.min.js */

/*
 * JavaScript Debug - v0.4 - 6/22/2010
 * http://benalman.com/projects/javascript-debug-console-log/
 * 
 * Copyright (c) 2010 "Cowboy" Ben Alman
 * Dual licensed under the MIT and GPL licenses.
 * http://benalman.com/about/license/
 * 
 * With lots of help from Paul Irish!
 * http://paulirish.com/
 */
window.debug=(function(){var i=this,b=Array.prototype.slice,d=i.console,h={},f,g,m=9,c=["error","warn","info","debug","log"],l="assert clear count dir dirxml exception group groupCollapsed groupEnd profile profileEnd table time timeEnd trace".split(" "),j=l.length,a=[];while(--j>=0){(function(n){h[n]=function(){m!==0&&d&&d[n]&&d[n].apply(d,arguments)}})(l[j])}j=c.length;while(--j>=0){(function(n,o){h[o]=function(){var q=b.call(arguments),p=[o].concat(q);a.push(p);e(p);if(!d||!k(n)){return}d.firebug?d[o].apply(i,q):d[o]?d[o](q):d.log(q)}})(j,c[j])}function e(n){if(f&&(g||!d||!d.log)){f.apply(i,n)}}h.setLevel=function(n){m=typeof n==="number"?n:9};function k(n){return m>0?m>n:c.length+m<=n}h.setCallback=function(){var o=b.call(arguments),n=a.length,p=n;f=o.shift()||null;g=typeof o[0]==="boolean"?o.shift():false;p-=typeof o[0]==="number"?o.shift():n;while(p<n){e(a[p++])}};return h})();


/* http://benalman.com/code/projects/jquery-bbq/jquery.ba-bbq.min.js */

/*
 * jQuery BBQ: Back Button & Query Library - v1.2.1 - 2/17/2010
 * http://benalman.com/projects/jquery-bbq-plugin/
 * 
 * Copyright (c) 2010 "Cowboy" Ben Alman
 * Dual licensed under the MIT and GPL licenses.
 * http://benalman.com/about/license/
 */
(function($,p){var i,m=Array.prototype.slice,r=decodeURIComponent,a=$.param,c,l,v,b=$.bbq=$.bbq||{},q,u,j,e=$.event.special,d="hashchange",A="querystring",D="fragment",y="elemUrlAttr",g="location",k="href",t="src",x=/^.*\?|#.*$/g,w=/^.*\#/,h,C={};function E(F){return typeof F==="string"}function B(G){var F=m.call(arguments,1);return function(){return G.apply(this,F.concat(m.call(arguments)))}}function n(F){return F.replace(/^[^#]*#?(.*)$/,"$1")}function o(F){return F.replace(/(?:^[^?#]*\?([^#]*).*$)?.*/,"$1")}function f(H,M,F,I,G){var O,L,K,N,J;if(I!==i){K=F.match(H?/^([^#]*)\#?(.*)$/:/^([^#?]*)\??([^#]*)(#?.*)/);J=K[3]||"";if(G===2&&E(I)){L=I.replace(H?w:x,"")}else{N=l(K[2]);I=E(I)?l[H?D:A](I):I;L=G===2?I:G===1?$.extend({},I,N):$.extend({},N,I);L=a(L);if(H){L=L.replace(h,r)}}O=K[1]+(H?"#":L||!K[1]?"?":"")+L+J}else{O=M(F!==i?F:p[g][k])}return O}a[A]=B(f,0,o);a[D]=c=B(f,1,n);c.noEscape=function(G){G=G||"";var F=$.map(G.split(""),encodeURIComponent);h=new RegExp(F.join("|"),"g")};c.noEscape(",/");$.deparam=l=function(I,F){var H={},G={"true":!0,"false":!1,"null":null};$.each(I.replace(/\+/g," ").split("&"),function(L,Q){var K=Q.split("="),P=r(K[0]),J,O=H,M=0,R=P.split("]["),N=R.length-1;if(/\[/.test(R[0])&&/\]$/.test(R[N])){R[N]=R[N].replace(/\]$/,"");R=R.shift().split("[").concat(R);N=R.length-1}else{N=0}if(K.length===2){J=r(K[1]);if(F){J=J&&!isNaN(J)?+J:J==="undefined"?i:G[J]!==i?G[J]:J}if(N){for(;M<=N;M++){P=R[M]===""?O.length:R[M];O=O[P]=M<N?O[P]||(R[M+1]&&isNaN(R[M+1])?{}:[]):J}}else{if($.isArray(H[P])){H[P].push(J)}else{if(H[P]!==i){H[P]=[H[P],J]}else{H[P]=J}}}}else{if(P){H[P]=F?i:""}}});return H};function z(H,F,G){if(F===i||typeof F==="boolean"){G=F;F=a[H?D:A]()}else{F=E(F)?F.replace(H?w:x,""):F}return l(F,G)}l[A]=B(z,0);l[D]=v=B(z,1);$[y]||($[y]=function(F){return $.extend(C,F)})({a:k,base:k,iframe:t,img:t,input:t,form:"action",link:k,script:t});j=$[y];function s(I,G,H,F){if(!E(H)&&typeof H!=="object"){F=H;H=G;G=i}return this.each(function(){var L=$(this),J=G||j()[(this.nodeName||"").toLowerCase()]||"",K=J&&L.attr(J)||"";L.attr(J,a[I](K,H,F))})}$.fn[A]=B(s,A);$.fn[D]=B(s,D);b.pushState=q=function(I,F){if(E(I)&&/^#/.test(I)&&F===i){F=2}var H=I!==i,G=c(p[g][k],H?I:{},H?F:2);p[g][k]=G+(/#/.test(G)?"":"#")};b.getState=u=function(F,G){return F===i||typeof F==="boolean"?v(F):v(G)[F]};b.removeState=function(F){var G={};if(F!==i){G=u();$.each($.isArray(F)?F:arguments,function(I,H){delete G[H]})}q(G,2)};e[d]=$.extend(e[d],{add:function(F){var H;function G(J){var I=J[D]=c();J.getState=function(K,L){return K===i||typeof K==="boolean"?l(I,K):l(I,L)[K]};H.apply(this,arguments)}if($.isFunction(F)){H=F;return G}else{H=F.handler;F.handler=G}}})})(jQuery,this);
/*
 * jQuery hashchange event - v1.2 - 2/11/2010
 * http://benalman.com/projects/jquery-hashchange-plugin/
 * 
 * Copyright (c) 2010 "Cowboy" Ben Alman
 * Dual licensed under the MIT and GPL licenses.
 * http://benalman.com/about/license/
 */
(function($,i,b){var j,k=$.event.special,c="location",d="hashchange",l="href",f=$.browser,g=document.documentMode,h=f.msie&&(g===b||g<8),e="on"+d in i&&!h;function a(m){m=m||i[c][l];return m.replace(/^[^#]*#?(.*)$/,"$1")}$[d+"Delay"]=100;k[d]=$.extend(k[d],{setup:function(){if(e){return false}$(j.start)},teardown:function(){if(e){return false}$(j.stop)}});j=(function(){var m={},r,n,o,q;function p(){o=q=function(s){return s};if(h){n=$('<iframe src="javascript:0"/>').hide().insertAfter("body")[0].contentWindow;q=function(){return a(n.document[c][l])};o=function(u,s){if(u!==s){var t=n.document;t.open().close();t[c].hash="#"+u}};o(a())}}m.start=function(){if(r){return}var t=a();o||p();(function s(){var v=a(),u=q(t);if(v!==t){o(t=v,u);$(i).trigger(d)}else{if(u!==t){i[c][l]=i[c][l].replace(/#.*/,"")+"#"+u}}r=setTimeout(s,$[d+"Delay"])})()};m.stop=function(){if(!n){r&&clearTimeout(r);r=0}};return m})()})(jQuery,this);


/* http://benalman.com/code/projects/jquery-urlinternal/jquery.ba-urlinternal.min.js */

/*
 * urlInternal - v1.0 - 10/7/2009
 * http://benalman.com/projects/jquery-urlinternal-plugin/
 * 
 * Copyright (c) 2009 "Cowboy" Ben Alman
 * Dual licensed under the MIT and GPL licenses.
 * http://benalman.com/about/license/
 */
(function($){var g,i=!0,r=!1,m=window.location,h=Array.prototype.slice,b=m.href.match(/^((https?:\/\/.*?\/)?[^#]*)#?.*$/),u=b[1]+"#",t=b[2],e,l,f,q,c,j,x="elemUrlAttr",k="href",y="src",p="urlInternal",d="urlExternal",n="urlFragment",a,s={};function w(A){var z=h.call(arguments,1);return function(){return A.apply(this,z.concat(h.call(arguments)))}}$.isUrlInternal=q=function(z){if(!z||j(z)){return g}if(a.test(z)){return i}if(/^(?:https?:)?\/\//i.test(z)){return r}if(/^[a-z\d.-]+:/i.test(z)){return g}return i};$.isUrlExternal=c=function(z){var A=q(z);return typeof A==="boolean"?!A:A};$.isUrlFragment=j=function(z){var A=(z||"").match(/^([^#]?)([^#]*#).*$/);return !!A&&(A[2]==="#"||z.indexOf(u)===0||(A[1]==="/"?t+A[2]===u:!/^https?:\/\//i.test(z)&&$('<a href="'+z+'"/>')[0].href.indexOf(u)===0))};function v(A,z){return this.filter(":"+A+(z?"("+z+")":""))}$.fn[p]=w(v,p);$.fn[d]=w(v,d);$.fn[n]=w(v,n);function o(D,C,B,A){var z=A[3]||e()[(C.nodeName||"").toLowerCase()]||"";return z?!!D(C.getAttribute(z)):r}$.expr[":"][p]=w(o,q);$.expr[":"][d]=w(o,c);$.expr[":"][n]=w(o,j);$[x]||($[x]=function(z){return $.extend(s,z)})({a:k,base:k,iframe:y,img:y,input:y,form:"action",link:k,script:y});e=$[x];$.urlInternalHost=l=function(B){B=B?"(?:(?:"+Array.prototype.join.call(arguments,"|")+")\\.)?":"";var A=new RegExp("^"+B+"(.*)","i"),z="^(?:"+m.protocol+")?//"+m.hostname.replace(A,B+"$1").replace(/\\?\./g,"\\.")+(m.port?":"+m.port:"")+"/";return f(z)};$.urlInternalRegExp=f=function(z){if(z){a=typeof z==="string"?new RegExp(z,"i"):z}return a};l("www")})(jQuery);


/* http://benalman.com/code/projects/jquery-dotimeout/jquery.ba-dotimeout.min.js */

/*
 * jQuery doTimeout: Like setTimeout, but better! - v1.0 - 3/3/2010
 * http://benalman.com/projects/jquery-dotimeout-plugin/
 * 
 * Copyright (c) 2010 "Cowboy" Ben Alman
 * Dual licensed under the MIT and GPL licenses.
 * http://benalman.com/about/license/
 */
(function($){var a={},c="doTimeout",d=Array.prototype.slice;$[c]=function(){return b.apply(window,[0].concat(d.call(arguments)))};$.fn[c]=function(){var f=d.call(arguments),e=b.apply(this,[c+f[0]].concat(f));return typeof f[0]==="number"||typeof f[1]==="number"?this:e};function b(l){var m=this,h,k={},g=l?$.fn:$,n=arguments,i=4,f=n[1],j=n[2],p=n[3];if(typeof f!=="string"){i--;f=l=0;j=n[1];p=n[2]}if(l){h=m.eq(0);h.data(l,k=h.data(l)||{})}else{if(f){k=a[f]||(a[f]={})}}k.id&&clearTimeout(k.id);delete k.id;function e(){if(l){h.removeData(l)}else{if(f){delete a[f]}}}function o(){k.id=setTimeout(function(){k.fn()},j)}if(p){k.fn=function(q){if(typeof p==="string"){p=g[p]}p.apply(m,d.call(n,i))===true&&!q?o():e()};o()}else{if(k.fn){j===undefined?e():k.fn(j===false);return true}else{e()}}}})(jQuery);


/* http://benalman.com/code/projects/jquery-untils/jquery.ba-untils.min.js */

/*
 * jQuery Untils - v1.1 - 2/18/2010
 * http://benalman.com/projects/jquery-untils-plugin/
 * 
 * Copyright (c) 2010 "Cowboy" Ben Alman
 * Dual licensed under the MIT and GPL licenses.
 * http://benalman.com/about/license/
 */
(function($){$.each({nextUntil:"nextAll",prevUntil:"prevAll",parentsUntil:"parents"},function(a,b){$.fn[a]=function(e,f){var c=$([]),d=this.get();if(a.indexOf("p")===0&&d.length>1){d=d.reverse()}$.each(d,function(){$(this)[b]().each(function(){var g=$(this);if(g.is(e)){return false}else{if(!f||g.is(f)){c=c.add(this)}}})});return this.pushStack(c,a,e+(f?","+f:""))}})})(jQuery);


/* http://benalman.com/code/javascript/jquery/jquery.ba-iff.min.js */

/*
 * iff - v0.2 - 6/3/2009
 * http://benalman.com/projects/jquery-iff-plugin/
 * 
 * Copyright (c) 2009 "Cowboy" Ben Alman
 * Licensed under the MIT license
 * http://benalman.com/about/license/
 */
(function($){$.fn.iff=function(b){var a=!b||$.isFunction(b)&&!b.apply(this,Array.prototype.slice.call(arguments,1))?[]:this;return this.pushStack(a,"iff",b)}})(jQuery);


/* http://benalman.com/code/javascript/jquery/jquery.ba-cond.min.js */

/*
 * cond - v0.1 - 6/10/2009
 * http://benalman.com/projects/jquery-cond-plugin/
 * 
 * Copyright (c) 2009 "Cowboy" Ben Alman
 * Licensed under the MIT license
 * http://benalman.com/about/license/
 * 
 * Based on suggestions and sample code by Stephen Band and DBJDBJ in the
 * jquery-dev Google group: http://bit.ly/jqba1
 */
(function($){$.fn.cond=function(){var e,a=arguments,b=0,f,d,c;while(!f&&b<a.length){f=a[b++];d=a[b++];f=$.isFunction(f)?f.call(this):f;c=!d?f:f?d.call(this,f):e}return c!==e?c:this}})(jQuery);


/* http://benalman.com/code/javascript/jquery/jquery.ba-roundborder.min.js */

(function(a){a.fn.roundBorder=function(c,b,d){if(c==undefined){c=10}return this.each(function(){border_color=b!=undefined?b:a(this).css("borderTopColor");bg_color=d!=undefined?d:a(this).css("backgroundColor");if(a.browser.mozilla){a(this).css("-moz-border-radius",c+"px")}else{if(a.browser.safari){a(this).css("-webkit-border-radius",c+"px")}else{var v=a('<div class="curved_border-inner"/>');var q=a('<div class="curved_border-cap">');var o=q.clone();a(this).wrapInner(v).prepend(q).append(o);v=a(this).find("div.curved_border-inner");var l=a(this).css("position");a(this).css({position:"relative"});var u=parseInt(a(this).css("paddingTop"));var f=parseInt(a(this).css("paddingBottom"));u=Math.max(0,u-c+1);f=Math.max(0,f-c+1);a(this).css({position:l});v.css({zoom:1,background:bg_color,borderLeft:"1px solid "+border_color,borderRight:"1px solid "+border_color,paddingLeft:a(this).css("paddingLeft")||0,paddingRight:a(this).css("paddingRight")||0,paddingTop:u+"px",paddingBottom:f+"px"});a(this).addClass("curved_border").css({zoom:1,border:"none",background:"none",padding:"0"});var g,t=[];for(var j=0;j<c;j++){g=Math.round(c*(1-Math.cos(Math.asin(j/c))));p=t[t.length-1]||{};if(g==p.m){p.h++}else{var s={m:g,w:1,h:1};if(g>p.m+1){p.w=g-p.m}t.push(s)}}for(var j=0;j<t.length;j++){var g=t[j].m;var r=t[j].w;var k=t[j].h;var e=a("<div/>");q.prepend(e);var n={zoom:1,overflow:"hidden",fontSize:"1px",background:bg_color,margin:"0 "+g+"px",borderLeft:r+"px solid "+border_color,borderRight:r+"px solid "+border_color,height:k+"px"};if(j==t.length-1){n.background=border_color}e.css(n);o.append(e.clone())}}}})}})(jQuery);


/* http://benalman.com/code/javascript/jquery/jquery.ba-utility.min.js */

/*
 * nth-last-child - v0.1 - 5/5/2009
 * http://benalman.com/
 * 
 * Copyright (c) 2009 "Cowboy" Ben Alman
 * Licensed under the MIT license
 * http://benalman.com/about/license/
 */
(function($){$.expr[":"]["nth-last-child"]=function(e,b,a){var d=0,c=e.parentNode.firstChild;if(e.nodeIndex){d=$.sibling(c,e).length}else{do{if(c&&c.nodeType===1){c.nodeIndex=++d}}while(c=c.nextSibling)}return e.nodeIndex===d+2-(a[3]||0)}})(jQuery);
/*
 * getClassData - v1.1 - 3/30/2009
 * http://benalman.com/
 * 
 * Copyright (c) 2009 "Cowboy" Ben Alman
 * Licensed under the MIT license
 * http://benalman.com/about/license/
 */
(function($){var b,a="getClassData";$[a]=b=function(h,d,f){var e,c,g=[];f=f||"-";e=new RegExp("(?:^|\\s)"+d+f+"(\\S+)","g");while(c=e.exec(h)){g.push(c[1])}return g.join(" ")};$.fn[a]=function(c,d){return b($(this).attr("class"),c,d)}})(jQuery);
/*
 * defaultText - v1.0 - 2/21/2009
 * http://benalman.com/
 * 
 * Copyright (c) 2009 "Cowboy" Ben Alman
 * Licensed under the MIT license
 * http://benalman.com/about/license/
 */
(function($){var a="default",c,b="defaultText";$.defaultTextClass=c=function(d){a=d};$.fn[b]=function(e){var f="."+b,d="focus"+f,g="blur"+f;return this.each(function(){if(e){$(this).unbind(f).bind(d,function(){var h=$(this);if(h.val()===e){h.val("").removeClass(a)}}).bind(g,function(){var h=$(this);if($.trim(h.val())===""||h.val()===e){h.addClass(a).val(e)}}).trigger(g)}else{$(this).trigger(d).unbind(f)}})}})(jQuery);
/*
 * unwrap - v1.0 - 1/13/2009
 * http://benalman.com/
 * 
 * Copyright (c) 2009 "Cowboy" Ben Alman
 * Licensed under the MIT license
 * http://benalman.com/about/license/
 */
(function($){$.fn.unwrap=function(){return this.each(function(){$(this).parent().replaceWith(this)})}})(jQuery);
/*
 * getUniqueClass - v1.0 - 1/27/2009
 * http://benalman.com/
 * 
 * Copyright (c) 2009 "Cowboy" Ben Alman
 * Licensed under the MIT license
 * http://benalman.com/about/license/
 */
(function($){$.getUniqueClass=function(){var a,b=0;while($("."+(a="BA-"+(+new Date)+(b++))).length){}return a}})(jQuery);
/*
 * emailSpammerize - v1.1 - 3/14/2009
 * http://benalman.com/
 * 
 * Copyright (c) 2009 "Cowboy" Ben Alman
 * Licensed under the MIT license
 * http://benalman.com/about/license/
 */
(function($){var a="emailSpammerize",b={at:"@",dot:".",plus:"+",dash:"-",underscore:"_",bang:"!",hash:"#",dollar:"$",percent:"%",ampersand:"&",quote:"'",asterisk:"*",slash:"/",equals:"=",question:"?",caret:"^",backtick:"`",pipe:"|",tilde:"~"};$[a]=function(c,e){var d;$.each(b,function(g,f){d=new RegExp("\\s+"+g+"\\s+","gi");c=c.replace(d,f)});c=c.replace(/(\s+|\[|\])/g,"");c=$.map(c,function(f){return"&#"+f.charCodeAt()+";"}).join("");if(e){c='<a href="mailto:'+c+'">'+c+"</a>"}return c};$.fn[a]=function(c){return this.each(function(){var d=$(this).text();$(this).html($[a](d,c))})}})(jQuery);


/* http://benalman.com/code/javascript/jquery/jquery.ba-object.min.js */

/*
 * Object Utils - v0.91 - 3/28/2009
 * http://benalman.com/
 * 
 * Copyright (c) 2009 "Cowboy" Ben Alman
 * Licensed under the MIT license
 * http://benalman.com/about/license/
 * 
 * Note: the setObject, getObject, and exists methods were inspired by Dojo,
 * which is Copyright (c) 2005-2009, The Dojo Foundation.
 */
(function($){$.setObject=function(){var f=b(arguments),h=f.parts.pop(),g=e(f.context,f.parts,true);return g&&typeof g==="object"&&h?(g[h]=f.remain):undefined};$.getObject=function(){var f,g=arguments;if(!g.length||typeof g[0]==="number"){return c(g[0])}else{f=b(g);return f.callback?a(f):e(f.context,f.parts,f.remain)}};var d=[];function c(g){var f=typeof g==="number"&&d[g-1];if(f&&f.timeout_id){clearTimeout(f.timeout_id);f.timeout_id=null;return true}return false}function a(f){var g,i,h={};return(function(){g=e(f.context,$.extend([],f.parts));if(g===undefined){h.timeout_id=setTimeout(arguments.callee,f.delay);return i=i||d.push(h)}else{h.timeout_id=null;f.callback.call(f.context,g);return}})()}$.exists=function(){var f=b(arguments);return e(f.context,f.parts)!==undefined};function e(i,h,f){var g;while(i&&h.length){g=h.shift();if(!i[g]&&f){i[g]={}}i=i[g]}return i}function b(g){var f={};g=Array.prototype.slice.call(g);f.callback=$.isFunction(g[0])?g.shift():null;f.delay=f.callback&&typeof g[0]==="number"?Math.max(g.shift(),0):50;f.context=typeof g[0]!=="string"?g.shift():window;f.parts=g.shift().split(".");f.remain=g.shift();return f}})(jQuery);


/* http://benalman.com/code/javascript/jquery/jquery.ba-showone.min.js */

(function(b){var a={};b.showOne=function(g,f,e,d){if(!a[g]){a[g]={elems:[],timeout_id:null}}if(f!==undefined){a[g].delay=f}if(e){a[g].show_func=e}if(d){a[g].hide_func=d}};b.showOne.getCurrent=function(d){return b(a[d]&&a[d].elems[a[d].elems.length-1])};b.fn.showOne=function(i,g,d){var f,e=this,h=a[i];if(h){if(g===false){c(h,function(){if(h.elems.shift()===e){h.hide_func?h.hide_func.call(e,h.elems):e.hide()}},d)}else{c(h);if(e!==h.elems[0]){while((f=h.elems.shift())&&f!==e){h.hide_func?h.hide_func.call(f):f.hide()}if(d){e.unbind(".showOne").bind("mouseenter.showOne",function(){e.showOne(i,true)}).bind("mouseleave.showOne",function(){e.showOne(i,false)})}h.show_func?h.show_func.call(e):e.show();h.elems.push(e)}}}return this};function c(f,e,d){if(typeof f.timeout_id==="number"){clearTimeout(f.timeout_id);f.timeout_id=null}if(e){d=typeof d==="number"?d:f.delay;if(typeof d==="number"){f.timeout_id=setTimeout(e,d)}else{e()}}}})(jQuery);


/* http://benalman.com/code/javascript/jquery/jquery.ba-qq.min.js */

/*
 * qq - v1.3 - 3/12/2009
 * http://benalman.com/
 * 
 * Copyright (c) 2009 "Cowboy" Ben Alman
 * Licensed under the MIT license
 * http://benalman.com/about/license/
 */
(function(f){var c=[],e=Array.prototype.slice,d,b;f.qq=function(k,j){var i,h;if(typeof k!=="number"){j=k;k=null}if(k){f.extend(a(k),j)}else{h={delay:0,queue:[],oneach:null,ondone:null,paused:false,id:c.length+1,running:false,timeout_id:null};i=f.extend({},h,j);k=c.push(i);if(!i.paused){d(k)}}return k};f.qqAdd=b=function(){var h=e.call(arguments),j=h.shift(),i=a(j);if(i){i.queue=i.queue.concat(h);if(!i.paused){d(j)}return j}return false};f.fn.qqAdd=function(h){b(h,this.get());return this};f.fn.qqAddEach=function(h){b.apply(f,[h].concat(this.get()));return this};f.qqPause=function(i){var h=a(i);if(h){g(h);h.paused=true;return i}return false};f.qqStart=d=function(j){var h,i=a(j);if(i){i.paused=false;if(!i.queue.length){return j}if(!i.running){i.running=true;(function(){if(!i.queue.length){g(i);i.ondone&&i.ondone();return}h=i.queue.shift();if(i.oneach&&i.oneach(h)===false){i.queue.unshift(h)}if(typeof i.delay==="number"&&i.delay>=0){i.timeout_id=setTimeout(arguments.callee,i.delay)}})()}return j}return false};f.qqClear=function(i){var h=a(i);if(h){g(h);h.queue=[];return i}return false};f.qqNext=function(j,h){var i=a(j);if(i){if(i.paused){return false}if(h){i.queue.unshift(h)}i.running=false;if(!i.queue.length){g(i);i.ondone&&i.ondone()}return d(j)}return false};function a(h){return typeof h==="number"&&c[h-1]}function g(h){h.timeout_id&&clearTimeout(h.timeout_id);h.timeout_id=null;h.running=false}})(jQuery);


/* http://benalman.com/code/javascript/jquery/jquery.ba-scrollvisible.min.js */

(function(f){var a=f([]);var d;var k;var i,e=false;f.fn.scrollVisible=function(n,m){var l=a.length;if(arguments[0]===false){this.unbind(".scrollVisible").removeData("scrollVisible");a=a.not(this);e=this.index(i)===-1}else{a=a.add(this);this.each(function(){var o=f(this);o.unbind(".scrollVisible").data("scrollVisible",{mode:m?"in-out":"in"});if(f.isFunction(n)){o.bind("scrollIn.scrollVisible",n)}if(f.isFunction(m)){o.bind("scrollOut.scrollVisible",m)}});f.scrollVisibleUpdate(this)}if(!e){f.fn.scrollVisibleSentry(false)}if(a.length!==l){h()}return this};f.scrollVisibleUpdate=function(l){k=f(window).height();(l||a).each(function(){var m=f(this),n=m.data("scrollVisible");n.top=m.offset().top;n.bot=n.top+m.outerHeight()});j()};f.fn.scrollVisibleSentry=function(l){if(l===false){i=a.length&&a.eq(a.length-1);e=false}else{i=this.eq(this.length-1);e=true}return this};f.scrollVisibleOffset=function(l){d=l};f.scrollVisibleOffset(0);f.scrollVisibleDelay=function(l){c=Math.max(1,l)};f.scrollVisibleDelay(1);function h(){f(window).unbind(".scrollVisible");if(a.length){f(window).bind("scroll.scrollVisible",function(){b(j)}).bind("resize.scrollVisible",function(){f.scrollVisibleUpdate()})}}function j(){if(i&&i.length&&i.offset().top!==i.data("scrollVisible").top){return f.scrollVisibleUpdate()}b();var l=d+(document.documentElement.scrollTop||document.body.scrollTop);var m=l+k;a.filter(":visible").each(function(){var o=f(this),p=o.data("scrollVisible");p.statePrev=p.state;var n=p.mode==="in";if(m>p.bot&&(n||l<p.top)){if(p.state!=="scrollIn.scrollVisible"){o.trigger(p.state="scrollIn.scrollVisible");if(n){o.scrollVisible(false)}}}else{if(m>p.top&&(n||l<p.bot)){if(p.state!=="scrollVisible_Partial"){p.state="scrollVisible_Partial";o.trigger(p.statePrev==="scrollIn.scrollVisible"?"scrollOut.scrollVisible":"scrollIn.scrollVisible",true)}}else{if(!n&&(m<p.top||l>p.bot)){if(p.state!=="scrollOut.scrollVisible"){o.trigger(p.state="scrollOut.scrollVisible")}}}}})}var c,g;function b(l){if(typeof g==="number"){clearTimeout(g);g=null}if(l){g=setTimeout(l,c)}}})(jQuery);


/* http://benalman.com/code/javascript/jquery/jquery.ba-flickr.min.js */

(function(f){var e="http://api.flickr.com/services/rest/",b={},d={},a,c={};f.flickr=function(h,o,g){h=f.isArray(h)?h:[h];var k,p,j,l={},m=h.length;function n(i){f.extend(l,i);if(!--m){o(l)}}function q(r){var s,i=[];f.each(r,function(u,t){i.push(u+"="+t)});return i.sort().join("&")}f.each(h,function(s,r){j=f.extend({},b,r);j.format="json";p=q(j);if(c[p]&&!g){n(c[p])}else{(function(i){f.ajax({cache:true,data:j,dataType:"jsonp",jsonp:"jsoncallback",success:function(t){if(t.stat==="ok"){c[i]=t}n(t)},url:e})})(p)}})};f.fn.flickrPhoto=function(h){var g=new RegExp("^http://farm.[.]static[.]flickr[.]com/[^/]+/([^_]+)_([^_.]+).*[.].*$","i");return this.each(function(){var i=f(this).attr("src").match(g);if(i){f.flickr.photo(h,i[1],i[2])}})};f.flickr.photo=function(i,g,h){f.flickr(f.map(a,function(j,k){var l={method:"flickr.photos."+j,photo_id:g};if(h){l.secret=h}return l}),i)};f.flickr.photoMethods=function(g){a=typeof g==="string"?g.split(/\s*,\s*/):f.extend([],g)};f.flickr.photoMethods("getInfo, getAllContexts, getSizes, getContext, comments.getList");f.flickr.getImg=function(k,q,i){if(f.isFunction(q)){i=q;q=null}if(k.stat&&k.stat!=="ok"){i&&i(false);return f()}q=typeof q==="number"?q:3;var h=k.photo||k,p="stmdbo".split("")[q],r=k.sizes&&k.sizes.size&&k.sizes.size[q],l={photo:h,size:q,suffix:p},n,m,o,g="http://farm"+h.farm+".static.flickr.com/"+h.server+"/"+h.id+"_"+h.secret+(p?"_"+p:"")+".jpg",j=f("<img/>").data("flickr",l).load(i||null);if(r){o={w:parseInt(r.width),h:parseInt(r.height)}}else{if(h.o_width&&h.o_height){n=[75,100,240,500,1024,99999][q];m=Math.max(h.o_width,h.o_height)/n;o=q===0?{w:75,h:75}:{w:Math.round(h.o_width/m),h:Math.round(h.o_height/m)}}}if(o){j.width(o.w).height(o.h);l.width=o.w;l.height=o.h}setTimeout(function(){j.attr({alt:h.title._content||h.title,src:g})},100);return j};f.flickr.defaultParams=function(g){f.extend(b,g)};f.flickr.isOwner=function(h,g){return h&&g&&h.owner&&(h.owner===g||h.owner.nsid===g)};f.flickr.getDate=function(o){var i,n,p,l,k,g,j;if(Object.prototype.toString.call(o)==="[object Date]"){return o}i=(o||"").split(/\D/);if(i.length===1&&i[0].length>4){return new Date(parseInt(i[0]*1000))}else{n=i[0];p=i[1]?i[1]-1:0;l=i[2]||1;k=i[3]||null;g=i[4]||null;j=i[5]||null;return new Date(n,p,l,k,g,j)}};f.flickr.getYYYY_MM_DD=function(g){return[g.getFullYear(),g.getMonth()+1,g.getDate()].join("-").replace(/-(\d)(?=-|$)/g,"-0$1")};f.flickr.photoHover=function(i,h,g){d={over:i,data:h,out:g}};f("img[src*=static.flickr.com/]").live("mouseover",function(){d.over&&d.over.call(this);var g=this;d.data&&f(g).flickrPhoto(function(h){d.data.call(g,h)})});f("img[src*=static.flickr.com/]").live("mouseout",function(){d.out&&d.out.call(this)})})(jQuery);


/* ../../../shared/js/ifixpng/jquery.ifixpng.min.js */

(function(b){b.ifixpng=function(c){b.ifixpng.pixel=c};b.ifixpng.getPixel=function(){return b.ifixpng.pixel||"images/pixel.gif"};var a={ltie7:b.browser.msie&&b.browser.version<7,filter:function(c){return"progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,sizingMethod=crop,src='"+c+"')"}};b.fn.ifixpng=a.ltie7?function(){return this.each(function(){var d=b(this);var e=b("base").attr("href");if(e){e=e.replace(/\/[^\/]+$/,"/")}if(d.is("img")||d.is("input")){if(d.attr("src")){if(d.attr("src").match(/.*\.png([?].*)?$/i)){var c=(e&&d.attr("src").search(/^(\/|http:)/i))?e+d.attr("src"):d.attr("src");d.css({filter:a.filter(c),width:d.width(),height:d.height()}).attr({src:b.ifixpng.getPixel()}).positionFix()}}}else{var f=d.css("backgroundImage");if(f.match(/^url\(["']?(.*\.png([?].*)?)["']?\)$/i)){f=RegExp.$1;f=(e&&f.substring(0,1)!="/")?e+f:f;d.css({backgroundImage:"none",filter:a.filter(f)}).children().children().positionFix()}}})}:function(){return this};b.fn.iunfixpng=a.ltie7?function(){return this.each(function(){var c=b(this);var d=c.css("filter");if(d.match(/src=["']?(.*\.png([?].*)?)["']?/i)){d=RegExp.$1;if(c.is("img")||c.is("input")){c.attr({src:d}).css({filter:""})}else{c.css({filter:"",background:"url("+d+")"})}}})}:function(){return this};b.fn.positionFix=function(){return this.each(function(){var d=b(this);var c=d.css("position");if(c!="absolute"&&c!="relative"){d.css({position:"relative"})}})}})(jQuery);


/* ../../../shared/js/swfobject/jquery.swfobject.1-0-9.min.js */

(function(F,C){var D=function(H){var G,I=[];for(G in H){if(/string|number/.test(typeof H[G])&&H[G]!==""){I.push(G+'="'+H[G]+'"')}}return I[A]("")},E=function(I){var G,K,J=[],H;if(typeof I=="object"){for(G in I){if(typeof I[G]=="object"){H=[];for(K in I[G]){H.push([K,"=",encodeURIComponent(I[G][K])][A](""))}I[G]=H[A]("&amp;")}if(I[G]){J.push(['<param name="',G,'" value="',I[G],'" />'][A](""))}}I=J[A]("")}return I},B=false,A="join";F[C]=(function(){try{var G="0,0,0",H=navigator.plugins["Shockwave Flash"]||ActiveXObject;G=H.description||(function(){try{return(new H("ShockwaveFlash.ShockwaveFlash")).GetVariable("$version")}catch(J){}}())}catch(I){}G=G.match(/^[A-Za-z\s]*?(\d+)[\.|,](\d+)(?:\s+[d|r]|,)(\d+)/);return{available:G[1]>0,activeX:H&&!H.name,version:{major:G[1]*1,minor:G[2]*1,release:G[3]*1},hasVersion:function(K){var N=this.version,L="major",M="minor",J="release";K=(/string|number/.test(typeof K))?K.toString().split("."):K||[0,0,0];K=[K[L]||K[0]||N[L],K[M]||K[1]||N[M],K[J]||K[2]||N[J]];return(K[0]<N[L])||(K[0]==N[L]&&K[1]<N[M])||(K[0]==N[L]&&K[1]==N[M]&&K[2]<=N[J])},expressInstall:"expressInstall.swf",create:function(J){if(!F[C].available||B||!typeof J=="object"||!J.swf){return false}if(J.hasVersion&&!F[C].hasVersion(J.hasVersion)){J={swf:J.expressInstall||F[C].expressInstall,attrs:{id:J.id||"SWFObjectExprInst",name:J.name,height:Math.max(J.height||137),width:Math.max(J.width||214)},params:{flashvars:{MMredirectURL:location.href,MMplayerType:(F[C].activeX)?"ActiveX":"PlugIn",MMdoctitle:document.title.slice(0,47)+" - Flash Player Installation"}}};B=true}else{J=F.extend(true,{attrs:{id:J.id,name:J.name,height:J.height||180,width:J.width||320},params:{wmode:J.wmode||"opaque",flashvars:J.flashvars}},J)}if(F[C].activeX){J.attrs.classid=J.attrs.classid||"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000";J.params.movie=J.params.movie||J.swf}else{J.attrs.type=J.attrs.classid||"application/x-shockwave-flash";J.attrs.data=J.attrs.data||J.swf}return["<object ",D(J.attrs),">",E(J.params),"</object>"][A]("")}}}());F.fn[C]=function(G){if(typeof G=="object"){this.each(function(){var I=document.createElement(C);var H=F[C].create(G);if(H){I.innerHTML=H;if(I.childNodes[0]){this.appendChild(I.childNodes[0])}}})}else{if(typeof G=="function"){this.find("object").andSelf().filter("object").each(function(){var I=this,H="jsInteractionTimeoutMs";I[H]=I[H]||0;if(I[H]<660){if(I.clientWidth||I.clientHeight){G.call(this)}else{setTimeout(function(){F(I)[C](G)},I[H]+66)}}})}}return this}}(jQuery,"flash"));


/* http://twitterjs.googlecode.com/svn/trunk/src/twitter.min.js */

/***
 * Twitter JS v1.13.3
 * http://code.google.com/p/twitterjs/
 * Copyright (c) 2009 Remy Sharp / MIT License
 * $Date$
 */
 /*
  MIT (MIT-LICENSE.txt)
 */
 typeof renderTwitters!="function"&&function(){function v(a){var c;for(c in a.user)a["user_"+c]=a.user[c];a.time=s(a.created_at);return a}function w(a){t?a.call():u.push(a)}function q(){t=true;for(var a;a=u.shift();)a.call()}function x(){if(document.addEventListener&&!r.webkit)document.addEventListener("DOMContentLoaded",q,false);else if(r.msie){document.write("<script id=__ie_init defer=true src=//:><\/script>");var a=document.getElementById("__ie_init");if(a)a.onreadystatechange=function(){if(this.readyState==
 "complete"){this.parentNode.removeChild(this);q.call()}};a=null}else if(r.webkit)var c=setInterval(function(){if(document.readyState=="loaded"||document.readyState=="complete"){clearInterval(c);c=null;q.call()}},10)}function s(a){function c(d){var h=d.getHours();d=d.getMinutes()+"";var f="AM";if(h==0)h=12;else if(h==12)f="PM";else if(h>12){h-=12;f="PM"}if(d.length==1)d="0"+d;return h+":"+d+" "+f}function g(d){d.toDateString().split(/ /);var h=y[d.getMonth()],f=d.getDate()+"",i=parseInt(f);d=d.getFullYear();
 var n=(new Date).getFullYear(),l="th";if(i%10==1&&f.substr(0,1)!="1")l="st";else if(i%10==2&&f.substr(0,1)!="1")l="nd";else if(i%10==3&&f.substr(0,1)!="1")l="rd";if(f.substr(0,1)=="0")f=f.substr(1);return h+" "+f+l+(n!=d?", "+d:"")}var b=a.split(" "),e=Date.parse(b[1]+" "+b[2]+", "+b[5]+" "+b[3]);b=new Date(e);var j=arguments.length>1?arguments[1]:new Date;e=parseInt((j.getTime()-e)/1E3);var m="";e+=j.getTimezoneOffset()*60;return m=e<5?"less than 5 seconds ago":e<30?"half a minute ago":e<60?"less than a minute ago":
 e<120?"1 minute ago":e<2700?parseInt(e/60).toString()+" minutes ago":e<10800?"about 1 hour ago":e<86400?"about "+parseInt(e/3600).toString()+" hours ago":e<172800?c(b)+" yesterday":c(b)+" "+g(b)}var r=function(){var a=navigator.userAgent.toLowerCase();return{webkit:/(webkit|khtml)/.test(a),opera:/opera/.test(a),msie:/msie/.test(a)&&!/opera/.test(a),mozilla:/mozilla/.test(a)&&!/(compatible|webkit)/.test(a)}}(),o=0,u=[],t=false,y=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
 window.ify=function(){return{link:function(a){return a.replace(/[a-z]+:\/\/[a-z0-9-_]+\.[a-z0-9-_:~%&\?#\/.=]+[^:\.,\)\s*$]/ig,function(c){return'<a href="'+c+'">'+(c.length>25?c.substr(0,24)+"...":c)+"</a>"})},at:function(a){return a.replace(/(^|[^\w]+)\@([a-zA-Z0-9_]{1,15}(\/[a-zA-Z0-9-_]+)*)/g,function(c,g,b){return g+'@<a href="http://twitter.com/'+b+'">'+b+"</a>"})},hash:function(a){return a.replace(/(^|[^&\w'"]+)\#([a-zA-Z0-9_]+)/g,function(c,g,b){return g+'#<a href="http://search.twitter.com/search?q=%23'+
 b+'">'+b+"</a>"})},clean:function(a){return this.hash(this.at(this.link(a)))}}}();window.renderTwitters=function(a,c){function g(k){return document.createElement(k)}function b(k){return document.createTextNode(k)}var e=document.getElementById(c.twitterTarget),j=null,m=g("ul"),d,h,f,i,n=a.length>c.count?c.count:a.length;for(i=0;i<n&&a[i];i++){j=v(a[i]);if(c.ignoreReplies&&a[i].text.substr(0,1)=="@")n++;else{d=g("li");if(c.template)d.innerHTML=c.template.replace(/%([a-z_\-\.]*)%/ig,function(k,p){k=
 j[p]+""||"";if(p=="text"&&c.enableLinks)k=ify.clean(k);return k});else{h=g("span");h.className="twitterStatus";f=g("span");f.className="twitterTime";h.innerHTML=a[i].text;if(c.enableLinks==true)h.innerHTML=ify.clean(h.innerHTML);f.innerHTML=s(a[i].created_at);if(c.prefix){var l=g("span");l.className="twitterPrefix";l.innerHTML=c.prefix.replace(/%(.*?)%/g,function(k,p){return a[i].user[p]});d.appendChild(l);d.appendChild(b(" "))}d.appendChild(h);d.appendChild(b(" "));d.appendChild(f)}if(c.newwindow)d.innerHTML=
 d.innerHTML.replace(/<a href/gi,'<a target="_blank" href');m.appendChild(d)}}if(c.clearContents)for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(m);typeof c.callback=="function"&&c.callback()};window.getTwitters=function(a,c,g,b){o++;if(typeof c=="object"){b=c;c=b.id;g=b.count}g||(g=1);if(b)b.count=g;else b={};if(!b.timeout&&typeof b.onTimeout=="function")b.timeout=10;if(typeof b.clearContents=="undefined")b.clearContents=true;if(b.withFriends)b.withFriends=false;b.twitterTarget=a;if(typeof b.enableLinks==
 "undefined")b.enableLinks=true;window["twitterCallback"+o]=function(e){b.timeout&&clearTimeout(window["twitterTimeout"+o]);renderTwitters(e,b)};w(function(e,j){return function(){if(document.getElementById(e.twitterTarget)){var m="http://www.twitter.com/statuses/"+(e.withFriends?"friends_timeline":"user_timeline")+"/"+c+".json?callback=twitterCallback"+j+"&count=20&cb="+Math.random();if(e.timeout)window["twitterTimeout"+j]=setTimeout(function(){if(e.onTimeoutCancel)window["twitterCallback"+j]=function(){};
 e.onTimeout.call(document.getElementById(e.twitterTarget))},e.timeout*1E3);var d=document.createElement("script");d.setAttribute("src",m);document.getElementsByTagName("head")[0].appendChild(d)}}}(b,o))};x()}();


/* http://addthis.com/code/cache?version=200&pub=benalman */

/* (c) 2008, 2009, 2010 Add This, LLC */
var addthis_conf={ver:200};function addthis_invoke(e,c,d,f){addthis_config.username=f||_ate.pub();addthis_share.url=(c||b.addthis_url);addthis_share.title=(d||b.addthis_title);var b=window,g=addthis_share.url.toLowerCase(),a=addthis_share.title.toLowerCase();if(g===""||g==="[url]"){addthis_share.url=location.href}if(a===""||a==="[title]"){addthis_share.title=document.title}_ate.as(e);return false};if(!window._ate){var _atd="www.addthis.com/",_atr="//s7.addthis.com/",_atn="//l.addthiscdn.com/",_euc=encodeURIComponent,_duc=decodeURIComponent,_atc={dr:0,ver:250,loc:0,enote:"",cwait:500,tamp:-1,xamp:0,camp:1,vamp:1,famp:0.02,pamp:0.2,damp:0.5,abf:!!window.addthis_do_ab};(function(){try{var F=window.location;if(F.protocol.indexOf("file")===0){_atr="http:"+_atr}if(F.hostname.indexOf("localhost")!=-1){_atc.loc=1}}catch(L){}var J=navigator.userAgent.toLowerCase(),M=document,t=window,H=M.location,O={win:/windows/.test(J),xp:/windows nt 5.1/.test(J)||/windows nt 5.2/.test(J),chr:/chrome/.test(J),iph:/iphone/.test(J),ipa:/ipad/.test(J),saf:/safari/.test(J),web:/webkit/.test(J),opr:/opera/.test(J),msi:(/msie/.test(J))&&!(/opera/.test(J)),ffx:/firefox/.test(J),ff2:/firefox\/2/.test(J),ie6:/msie 6.0/.test(J),ie7:/msie 7.0/.test(J),mod:-1},f={vst:[],rev:"78108",bro:O,show:1,dl:H,upm:!!t.postMessage&&(""+t.postMessage).toLowerCase().indexOf("[native code]")!==-1,camp:_atc.camp-Math.random(),xamp:_atc.xamp-Math.random(),vamp:_atc.vamp-Math.random(),pamp:_atc.pamp-Math.random(),afamp:_atc.afamp-Math.random(),ab:"-",seq:1,inst:1,wait:500,tmo:null,cvt:[],avt:null,sttm:new Date().getTime(),max:4294967295,sid:0,sub:!!window.at_sub,dbm:0,uid:null,spt:"static/r07/widget19.png",api:{},imgz:[],hash:window.location.hash};M.ce=M.createElement;M.gn=M.getElementsByTagName;window._ate=f;var u=function(r,p,q,d){if(!r){return q}if(r instanceof Array||(r.length&&(typeof r!=="function"))){for(var l=0,a=r.length,b=r[0];l<a;b=r[++l]){q=p.call(d||r,q,b,l,r)}}else{for(var e in r){q=p.call(d||r,q,r[e],e,r)}}return q},A=Array.prototype.slice,C=function(b){return A.apply(b,A.call(arguments,1))},B=function(a){return(""+a).replace(/(^\s+|\s+$)/g,"")},K=function(a,b){return u(C(arguments,1),function(e,d){return u(d,function(p,l,i){p[i]=l;return p},e)},a)},m=function(b,a){return u(b,function(i,e,d){d=B(d);if(d){i.push(_euc(d)+"="+_euc(B(e)))}return i},[]).join(a||"&")},j=function(b,a){return u((b||"").split(a||"&"),function(p,r){try{var l=r.split("="),i=B(_duc(l[0])),d=B(_duc(l.slice(1).join("=")));if(i){p[i]=d}}catch(q){}return p},{})},Q=function(){var a=C(arguments,0),d=a.shift(),b=a.shift();return function(){return d.apply(b,a.concat(C(arguments,0)))}},G=function(b,e,a,d){if(!e){return}if(we){e[(b?"detach":"attach")+"Event"]("on"+a,d)}else{e[(b?"remove":"add")+"EventListener"](a,d,false)}},k=function(d,a,b){G(0,d,a,b)},g=function(d,a,b){G(1,d,a,b)},c={reduce:u,slice:C,strip:B,extend:K,toKV:m,fromKV:j,bind:Q,listen:k,unlisten:g};f.util=c;K(f,c);(function(p,r,s){var i,R=p.util;function q(U,T,W,S,V){this.type=U;this.triggerType=T||U;this.target=W||S;this.triggerTarget=S||W;this.data=V||{}}R.extend(q.prototype,{constructor:q,bubbles:false,preventDefault:R.noop,stopPropagation:R.noop,clone:function(){return new this.constructor(this.type,this.triggerType,this.target,this.triggerTarget,R.extend({},this.data))}});function e(S,T){this.target=S;this.queues={};this.defaultEventType=T||q}function a(S){var T=this.queues;if(!T[S]){T[S]=[]}return T[S]}function l(S,T){this.getQueue(S).push(T)}function d(T,U){var V=this.getQueue(T),S=V.indexOf(U);if(S!==-1){V.splice(S,1)}}function b(S,W,V,U){var T=this;if(!U){setTimeout(function(){T.dispatchEvent(new T.defaultEventType(S,S,W,T.target,V))},10)}else{T.dispatchEvent(new T.defaultEventType(S,S,W,T.target,V))}}function w(T){for(var U=0,W=T.target,V=this.getQueue(T.type),S=V.length;U<S;U++){V[U].call(W,T.clone())}}R.extend(e.prototype,{constructor:e,getQueue:a,addEventListener:l,removeEventListener:d,dispatchEvent:w,fire:b});p.event={PolyEvent:q,EventDispatcher:e}})(f,f.api,f);f.ed=new f.event.EventDispatcher(f);var o={isBound:0,isReady:0,readyList:[],onReady:function(){if(!o.isReady){o.isReady=1;var a=o.readyList.concat(window.addthis_onload||[]);for(var b=0;b<a.length;b++){a[b].call(window)}o.readyList=[]}},addLoad:function(a){var b=t.onload;if(typeof t.onload!="function"){t.onload=a}else{t.onload=function(){if(b){b()}a()}}},bindReady:function(){if(x.isBound||_atc.xol){return}x.isBound=1;if(M.addEventListener&&!O.opr){M.addEventListener("DOMContentLoaded",x.onReady,false)}var a=window.addthis_product;if(a&&a.indexOf("f")>-1){x.onReady();return}if(O.msi&&window==top){(function(){if(x.isReady){return}try{M.documentElement.doScroll("left")}catch(d){setTimeout(arguments.callee,0);return}x.onReady()})()}if(O.opr){M.addEventListener("DOMContentLoaded",function(){if(x.isReady){return}for(var d=0;d<M.styleSheets.length;d++){if(M.styleSheets[d].disabled){setTimeout(arguments.callee,0);return}}x.onReady()},false)}if(O.saf){var b;(function(){if(x.isReady){return}if(M.readyState!="loaded"&&M.readyState!="complete"){setTimeout(arguments.callee,0);return}if(b===undefined){var d=M.gn("link");for(var e=0;e<d.length;e++){if(d[e].getAttribute("rel")=="stylesheet"){b++}}var l=M.gn("style");b+=l.length}if(M.styleSheets.length!=b){setTimeout(arguments.callee,0);return}x.onReady()})()}x.addLoad(x.onReady)},append:function(b,a){x.bindReady();if(x.isReady){b.call(window,[])}else{x.readyList.push(function(){return b.call(window,[])})}}},x=o,P=f;K(f,{plo:[],lad:function(a){f.plo.push(a)}});K(f,{pub:function(){return _euc((window.addthis_config||{}).username||window.addthis_pub||"")},igv:function(a,b){if(!t.addthis_share){t.addthis_share={}}if(!addthis_share.url){addthis_share.url=(t.addthis_url||a||"").split("#{").shift()}if(!addthis_share.title){addthis_share.title=(t.addthis_title||b||"").split("#{").shift()}if(!t.addthis_config){t.addthis_config={username:t.addthis_pub}}else{if(addthis_config.data_use_cookies===false){_atc.xck=1}}}});if(!_atc.ost){if(!t.addthis_conf){t.addthis_conf={}}for(var I in addthis_conf){_atc[I]=addthis_conf[I]}_atc.ost=1}(function(b,l,e){var q,p=document,a=b.util;b.ckv=a.fromKV(p.cookie,";");function i(d){return a.fromKV(p.cookie,";")[d]}if(!b.cookie){b.cookie={}}b.cookie.rck=i})(f,f.api,f);K(f,{qtp:[],xtp:function(){var b=f,d;while(d=b.qtp.pop()){b.trk(d)}},gat:function(){},atf:null,get_atssh:function(){var e=document,b=f,i=e.getElementById("_atssh");if(!i){i=e.ce("div");i.style.visibility="hidden";i.id="_atssh";b.opp(i.style);e.body.insertBefore(i,e.body.firstChild)}return i},ctf:function(i){var p=document,e=window,b=f,q,l=Math.floor(Math.random()*1000);div=b.get_atssh();if(!b.bro.msi){q=p.ce("iframe");q.id="_atssh"+l}else{if(b.bro.ie6&&!i&&p.location.protocol.indexOf("https")==0){i="javascript:''"}div.innerHTML='<iframe id="_atssh'+l+'" width="1" height="1" name="_atssh'+l+'" '+(i?'src="'+i+'"':"")+">";q=p.getElementById("_atssh"+l)}b.opp(q.style);q.frameborder=q.style.border=0;q.style.top=q.style.left=0;return q},off:function(){return Math.floor((new Date().getTime()-f.sttm)/100).toString(16)},oms:function(d){var b=f;if(d&&d.data&&d.data.service){if(!b.upm){if(b.dcp){return}b.dcp=1}b.trk({gen:300,sh:d.data.service})}},omp:function(b,d,e){var a={};if(b){a.sh=b}if(d){a.cm=d}if(e){a.cs=e}f.img("sh","3",null,a)},trk:function(e){var d=f,i=d.dr,b=(d.rev||"");if(!e){return}if(i){i=i.split("http://").pop()}e.xck=_atc.xck?1:0;e.xxl=1;e.sid=d.ssid();e.pub=d.pub();e.ssl=d.ssl||0;e.du=d.tru(d.du||d.dl.href);if(d.dt){e.dt=d.dt}if(d.cb){e.cb=d.cb}e.lng=d.lng();e.ver=_atc.ver;if(!d.upm&&d.uid){e.uid=d.uid}e.pc=window.addthis_product||"men-"+_atc.ver;if(i){e.dr=d.tru(i)}if(d.dh){e.dh=d.dh}if(b){e.rev=b}if(d.xfr){if(d.upm){if(d.atf){d.atf.contentWindow.postMessage(m(e),"*")}}else{var l=d.get_atssh();base="static/r07/sh18.html"+(false?"?t="+new Date().getTime():"");if(d.atf){l.removeChild(l.firstChild)}d.atf=d.ctf();d.atf.src=_atr+base+"#"+m(e);l.appendChild(d.atf)}}else{f.qtp.push(e)}},img:function(l,r,b,p,q){if(!window.at_sub&&!_atc.xtr){var d=f,e=p||{};e.evt=l;if(b){e.ext=b}d.avt=e;if(q===1){d.xmi(true)}else{d.sxm(true)}}},cuid:function(){return((f.sttm/1000)&f.max).toString(16)+("00000000"+(Math.floor(Math.random()*(f.max+1))).toString(16)).slice(-8)},ssid:function(){if(f.sid===0){f.sid=f.cuid()}return f.sid},sta:function(){var b=f;return"AT-"+(b.pub()?b.pub():"unknown")+"/-/"+b.ab+"/"+b.ssid()+"/"+(b.seq++)+(b.uid!==null?"/"+b.uid:"")},cst:function(a){return"CXNID=2000001.521545608054043907"+(a||2)+"NXC"},fcv:function(b,a){return _euc(b)+"="+_euc(a)+";"+f.off()},cev:function(b,a){f.cvt.push(f.fcv(b,a));f.sxm(true)},sxm:function(a){if(f.tmo!==null){clearTimeout(f.tmo)}if(a){f.tmo=f.sto("_ate.xmi(false)",f.wait)}},xmi:function(r){var b=f,p=b.dl?b.dl.hostname:"";if(b.cvt.length>0||b.avt){b.sxm(false);if(_atc.xtr){return}var l=b.avt||{};l.ce=b.cvt.join(",");b.cvt=[];b.avt=null;b.trk(l);if(r){var q=document,e=q.ce("iframe");e.id="_atf";f.opp(e.style);q.body.appendChild(e);e=q.getElementById("_atf")}}}});K(f,{_rec:[],rec:function(e){if(!e){return}var q=j(e),b=f,d=b.atf,l=b._rec,w;if(q.ssh){b.ssh(q.ssh)}if(q.uid){b.uid=q.uid}if(q.dbm){b.dbm=q.dbm}if(q.rdy){b.xfr=1;b.xtp();return}for(var R=0;R<l.length;R++){l[R](q)}},xfr:!f.upm||!f.bro.ffx,ssh:function(b){f.gssh=1;var a=window.addthis_ssh=_duc(b);f._ssh=a.split(",")},com:function(a){if(window.parent&&window.postMessage){window.parent.postMessage(a,"*")}else{f.ifm(a)}},ifm:function(b){if(addthis_wpl){var d=(addthis_wpl.split("#"))[0];window.parent.location.href=d+"#at"+b}return false},pmh:function(a){if(a.origin.slice(-12)==".addthis.com"){f.rec(a.data)}}});K(f,{lng:function(){return window.addthis_language||(window.addthis_config||{}).ui_language||(f.bro.msi?navigator.userLanguage:navigator.language)},iwb:function(a){var b={th:1,pl:1,sl:1,gl:1,hu:1,is:1,nb:1};return !!b[a]},ivl:function(a){var b={af:1,afr:"af",ar:1,ara:"ar",az:1,aze:"az",be:1,bye:"be",bg:1,bul:"bg",bn:1,ben:"bn",bs:1,bos:"bs",ca:1,cat:"ca",cs:1,ces:"cs",cze:"cs",cy:1,cym:"cy",da:1,dan:"da",de:1,deu:"de",ger:"de",el:1,gre:"el",ell:"ell",es:1,esl:"es",spa:"spa",et:1,est:"et",fa:1,fas:"fa",per:"fa",fi:1,fin:"fi",fo:1,fao:"fo",fr:1,fra:"fr",fre:"fr",ga:1,gae:"ga",gdh:"ga",gl:1,glg:"gl",he:1,heb:"he",hi:1,hin:"hin",hr:1,cro:"hr",hu:1,hun:"hu",id:1,ind:"id",is:1,ice:"is",it:1,ita:"it",ja:1,jpn:"ja",ko:1,kor:"ko",ku:1,lb:1,ltz:"lb",lt:1,lit:"lt",lv:1,lav:"lv",mk:1,mac:"mk",mak:"mk",ms:1,msa:"ms",may:"ms",nb:1,nl:1,nla:"nl",dut:"nl",no:1,nn:1,nno:"no",oc:1,oci:"oc",pl:1,pol:"pl",pt:1,por:"pt",ro:1,ron:"ro",rum:"ro",ru:1,rus:"ru",sk:1,slk:"sk",slo:"sk",sl:1,slv:"sl",sq:1,alb:"sq",sr:1,ser:"sr",sv:1,sve:"sv",sw:1,swe:"sv",ta:1,tam:"ta",te:1,teg:"te",th:1,tha:"th",tl:1,tgl:"tl",tr:1,tur:"tr",uk:1,ukr:"uk",ur:1,urd:"ur",vi:1,vie:"vi","zh-hk":1,"chi-hk":"zh-hk","zho-hk":"zh-hk","zh-tr":1,"chi-tr":"zh-tr","zho-tr":"zh-tr","zh-tw":1,"chi-tw":"zh-tw","zho-tw":"zh-tw",zh:1,chi:"zh",zho:"zh"};if(b[a]){return b[a]}a=a.split("-").shift();if(b[a]){if(b[a]===1){return a}else{return b[a]}}return 0},gvl:function(a){var b=f.ivl(a)||"en";if(b===1){b=a}return b},alg:function(e,d){var a=(e||f.lng()||"en").toLowerCase(),b=f.ivl(a);if(a.indexOf("en")!==0&&(!f.pll||d)){if(b){if(b!==1){a=b}f.pll=f.ajs("static/r07/lang01/"+a+".js")}}}});K(f,{trim:function(a,b){try{a=a.replace(/^[\s\u3000]+|[\s\u3000]+$/g,"");if(b){a=_euc(a)}}catch(b){}return a},trl:[],tru:function(b,a){var d="";if(b){d=b.substr(0,300);if(d!=b){f.trl.push(a)}}return d},sto:function(b,a){return setTimeout(b,a)},opp:function(a){a.width=a.height="1px";a.position="absolute";a.zIndex=100000},jlr:{},ajs:function(a){if(!f.jlr[a]){var b=M.ce("script");b.src=_atr+a;M.gn("head")[0].appendChild(b);f.jlr[a]=1;return b}return 1},jlo:function(){try{var q=document,b=f,p=b.lng(),i=function(d){var a=new Image();f.imgz.push(a);a.src=d};b.alg(p);if(!b.pld){if(b.bro.ie6){i(_atr+b.spt);i(_atr+"static/t00/logo1414.gif");i(_atr+"static/t00/logo88.gif");if(window.addthis_feed){i("static/r05/feed00.gif",1)}}if(b.pll&&!window.addthis_translations){b.sto(function(){b.pld=b.ajs("static/r07/menu54.js")},10)}else{b.pld=b.ajs("static/r07/menu54.js")}}}catch(l){}},ao:function(b,l,i,d,e,a){f.lad(["open",b,l,i,d,e,a]);f.jlo();return false},ac:function(){},as:function(b,d,a){f.lad(["send",b,d,a]);f.jlo()}});(function(e,p,i){var r=document,q=1,a=[" porn "," xxx "," milf "," cum "];function l(w){var S=0,R;for(var d=0;d<a.length;d++){R=a[d];if(w==R.replace(/ /g,"")||w.indexOf(R)>-1||w.indexOf(R.replace(/^ /g,""))===0){S|=q}}return S}function b(){var S=(t.addthis_title||r.title||"").toLowerCase(),s=l(S),R=r.all?r.all.tags("META"):r.getElementsByTagName?r.getElementsByTagName("META"):new Array();if(R&&R.length){for(var w=0;w<R.length;w++){var d=R[w]||{},U=(d.name||"").toLowerCase(),T=(d.content||"").toLowerCase();if(U=="description"||U=="keywords"){s|=l(T)}}}return s}if(!e.ad){e.ad={}}e.ad.cla=b})(f,f.api,f);var t=window,N=t.addthis_config||{};function n(){var a=M.ce("link");a.rel="stylesheet";a.type="text/css";a.href=_atr+"static/r07/widget38.css";a.media="all";M.gn("head")[0].appendChild(a)}function h(){try{if(_atc.xol&&!_atc.xcs){n()}var ae=f,q=ae.bro.msi,b=0,T=M.title,U=M.referer||M.referrer||"",S=H?H.href:null,r=S,ab=H.hostname,ad=S?S.indexOf("sms_ss"):-1,X=(f.lng().split("-")).shift(),p=(H.href.indexOf(_atr)==-1&&!ae.sub),Y=M.gn("link"),d=_atr+"static/r07/sh18.html#",V=S&&S.indexOf("https")===0?1:0,s,af,R=function(){af.pc=window.addthis_product||"men"+_atc.ver};for(var Z=0;Z<Y.length;Z++){var W=Y[Z];if(W.rel&&W.rel=="canonical"&&W.href){r=W.href}}r=r.split("#{").shift();ae.igv(r,M.title||"");ae.dr=ae.tru(U,"fr");ae.du=ae.tru(r,"fp");ae.dt=T=t.addthis_share.title;ae.cb=ae.ad.cla();ae.dh=H.hostname;ae.ssl=V;af={cb:ae.cb,ab:ae.ab,dh:ae.dh,dr:ae.dr,du:ae.du,dt:T,inst:ae.inst,lng:ae.lng(),pc:t.addthis_product||"men",pub:ae.pub(),ssl:V,sid:f.ssid(),srd:_atc.damp,srf:_atc.famp,srp:_atc.pamp,srx:_atc.xamp,ver:_atc.ver,xck:_atc.xck||0};if(ae.trl.length){af.trl=ae.trl.join(",")}if(ae.rev){af.rev=ae.rev}if(ad>-1&&S.indexOf(_atd+"book")==-1){var w=[];var aa=S.substr(ad);aa=aa.split("&").shift().split("#").shift().split("=").pop();af.sr=aa;if(ae.vamp>=0&&!ae.sub&&aa.length){w.push(ae.fcv("plv",Math.round(1/_atc.vamp)));w.push(ae.fcv("rsc",aa));af.ce=w.join(",")}}if(ae.upm){af.xd=1;if(f.bro.ffx){af.xld=1}}if(p){if(ae.upm){if(q){f.sto(function(){R();ae.atf=s=ae.ctf(d+m(af))},f.wait);t.attachEvent("onmessage",ae.pmh)}else{s=ae.ctf();t.addEventListener("message",ae.pmh,false)}if(f.bro.ffx){s.src=d;f.qtp.push(af)}else{if(!q){f.sto(function(){R();s.src=d+m(af)},f.wait)}}}else{s=ae.ctf();f.sto(function(){R();s.src=d+m(af)},f.wait)}if(s){ae.atf=s=ae.get_atssh().appendChild(s)}}if(t.addthis_language||N.ui_language){ae.alg()}if(ae.plo.length>0){ae.jlo()}}catch(ac){}}f.ed.addEventListener("addthis.menu.share",f.oms);t._ate=P;t._adr=x;try{var E=M.gn("script"),v=E[E.length-1],y=v.src.indexOf("#")>-1?v.src.replace(/^[^\#]+\#?/,""):v.src.replace(/^[^\?]+\??/,""),z=j(y);if(z.pub||z.username){t.addthis_pub=_duc(z.pub?z.pub:z.username)}if(t.addthis_pub&&t.addthis_config){t.addthis_config.username=t.addthis_pub}if(z.domready){_atc.dr=1}if(z.async){_atc.xol=1}if(_atc.ver===120){var D="atb"+f.cuid();M.write('<span id="'+D+'"></span>');f.igv();f.lad(["span",D,addthis_share.url||"[url]",addthis_share.title||"[title]"])}if(t.addthis_clickout){f.lad(["cout"])}if(!_atc.xol&&!_atc.xcs&&N.ui_use_css!==false){n()}}catch(L){}o.bindReady();o.append(h)})();function addthis_open(){if(typeof iconf=="string"){iconf=null}return _ate.ao.apply(_ate,arguments)}function addthis_close(){_ate.ac()}function addthis_sendto(){_ate.as.apply(_ate,arguments);return false}if(_atc.dr){_adr.onReady()}}else{_ate.inst++}if(_atc.abf){addthis_open(document.getElementById("ab"),"emailab",window.addthis_url||"[URL]",window.addthis_title||"[TITLE]")};


/* ../../../shared/js/sh/shCore.js */

/**
 * SyntaxHighlighter
 * http://alexgorbatchev.com/
 *
 * SyntaxHighlighter is donationware. If you are using it, please donate.
 * http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
 *
 * @version
 * 2.0.320 (May 03 2009)
 * 
 * @copyright
 * Copyright (C) 2004-2009 Alex Gorbatchev.
 *
 * @license
 * This file is part of SyntaxHighlighter.
 * 
 * SyntaxHighlighter is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * SyntaxHighlighter is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with SyntaxHighlighter.  If not, see <http://www.gnu.org/copyleft/lesser.html>.
 */
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('f(!1q.2E){l 2E=h(){l p={77:{"1e-1f":"","79-2P":1,"1I":u,"6V-70":U,"1C-2A":4,"5f":N,"4Z":U,"1z":U,"56":N,"7G-7F":U,"6Z":N,"4S-1m":U},M:{52:u,5P:16,5S:16,8k:N,8l:N,83:"4R",1k:{3Y:"97 1c",41:"9b 1c",5U:"9O 93 7A",6t:"9B I 9E 23 8w 7A 8o",34:"34",6P:"?",1v:"2E\\n\\n",6F:"8p\'t 8I 87 D: ",7X:"8V 8v\'t bD D 2u-2c bf: ",6H:"<!be 2u aV \\"-//9V//6U bz 1.0 bx//bI\\" \\"2g://6D.6v.6m/bi/7c/6U/7c-a4.aw\\"><2u ay=\\"2g://6D.6v.6m/as/8r\\"><6l><8T 2g-92=\\"8P-8L\\" 5B=\\"2d/2u; 8E=8s-8\\" /><3B>8C 2E</3B></6l><2L 1n=\\"3N-8x:8Z,9y,9H,9I-9Q;9S-4v:#9K;4v:#9J;3N-2A:9L;2d-6k:6i;\\"><A 1n=\\"2d-6k:6i;5D-43:99;\\"><A 1n=\\"3N-2A:9p-9o;\\">2E</A><A 1n=\\"3N-2A:.9m;5D-9l:9k;\\"><A>6f 2.0.9j (9n 9s 6n)</A><A><a 2q=\\"2g://6j.4U\\" 9r=\\"57\\" 1n=\\"4v:#9h;2d-9g:98;\\">2g://6j.4U</a></A></A><A>96 I 94 95.</A><A>9f 9e-6n 9c 9t.</A></A></2L></2u>"},6T:N},1t:{4D:u,3k:u,3P:u,5K:{}},2B:{},85:{9u:/\\/\\*[\\s\\S]*?\\*\\//4k,9N:/\\/\\/.*$/4k,9M:/#.*$/4k,9P:/"(?:\\.|(\\\\\\")|[^\\""\\n])*"/g,9T:/\'(?:\\.|(\\\\\\\')|[^\\\'\'\\n])*\'/g,9R:/"(?:\\.|(\\\\\\")|[^\\""])*"/g,9z:/\'(?:\\.|(\\\\\\\')|[^\\\'\'])*\'/g,3p:/\\w+:\\/\\/[\\w-.\\/?%&=]*/g,9x:{E:/(&1F;|<)\\?=?/g,13:/\\?(&2o;|>)/g},9v:{E:/(&1F;|<)%=?/g,13:/%(&2o;|>)/g},9w:{E:/(&1F;|<)\\s*2c.*?(&2o;|>)/4x,13:/(&1F;|<)\\/\\s*2c\\s*(&2o;|>)/4x}},1z:{12:h(3s){l 3y=L.1s("3j"),4o=p.1z.65;3y.J="1z";D(l 2Y 23 4o){l 6o=4o[2Y],4J=T 6o(3s),28=4J.12();3s.5I[2Y]=4J;f(28==u){1H}f(9G(28)=="9F"){28=p.1z.6s(28,3s.1g,2Y)}28.J+="5k "+2Y;3y.1G(28)}q 3y},6s:h(4A,6r,4h){l a=L.1s("a"),4Q=a.1n,4P=p.M,4F=4P.5P,48=4P.5S;a.2q="#"+4h;a.3B=4A;a.5M=6r;a.6q=4h;a.1x=4A;f(55(4F)==N){4Q.1S=4F+"5x"}f(55(48)==N){4Q.2t=48+"5x"}a.8t=h(e){8D{p.1z.6p(c,e||1q.6w,c.5M,c.6q)}8m(e){p.B.1v(e.6u)}q N};q a},6p:h(69,68,6h,6g,67){l 3U=p.1t.5K[6h],3X;f(3U==u||(3X=3U.5I[6g])==u){q u}q 3X.2h(69,68,67)},65:{3Y:h(4b){c.12=h(){f(4b.V("56")!=U){q}q p.M.1k.3Y};c.2h=h(42,8X,91){l A=4b.A;42.7T.5a(42);A.J=A.J.C("51","")}},41:h(66){c.12=h(){q p.M.1k.41};c.2h=h(8R,8Q,8J){l 3Q=p.B.3G(66.4W).C(/</g,"&1F;"),2i=p.B.54("","57",8H,8G,"8K=0, 8O=1, 8N=0, 6O=1");3Q=p.B.2D(3Q);2i.L.3h("<4R>"+3Q+"</4R>");2i.L.5O()}},5U:h(5e){l 3S,8F,5L=5e.1g;c.12=h(){l 2S=p.M;f(2S.52==u){q u}h 1A(5E){l 5s="";D(l 5y 23 5E){5s+="<8S 1f=\'"+5y+"\' 1U=\'"+5E[5y]+"\'/>"}q 5s};h 2v(5t){l 5Q="";D(l 5w 23 5t){5Q+=" "+5w+"=\'"+5t[5w]+"\'"}q 5Q};l 5m={1S:2S.5P,2t:2S.5S,1g:5L+"b8",6N:"b7/x-6a-6b",3B:p.M.1k.5U},5h={b6:"b4",b5:"b9",ba:"5M="+5L,bd:"N"},5g=2S.52,3H;f(/bb/i.1R(5Z.5W)){3H="<6e"+2v({bc:"b3:b2-aU-aT-aS-aQ",aR:"2g://aW.b1.4U/b0/6a/aX/6b/bg.bh#6f=9,0,0,0"})+2v(5m)+">"+1A(5h)+1A({bB:5g})+"</6e>"}F{3H="<bA"+2v(5m)+2v(5h)+2v({bC:5g})+"/>"}3S=L.1s("A");3S.1x=3H;q 3S};c.2h=h(bH,bG,5T){l 6d=5T.bE;6z(6d){2N"7u":l 53=p.B.2D(p.B.3G(5e.4W).C(/&1F;/g,"<").C(/&2o;/g,">").C(/&bw;/g,"&"));f(1q.6c){1q.6c.bm("2d",53)}F{q p.B.2D(53)}2N"bk":p.B.1v(p.M.1k.6t);2m;2N"bj":p.B.1v(5T.6u);2m}}},bo:h(58){c.12=h(){q p.M.1k.34};c.2h=h(bu,bt,bs){l 1W=L.1s("bp"),1O=u;f(p.1t.3P!=u){L.2L.5a(p.1t.3P)}p.1t.3P=1W;1W.1n.bq="aP:aO;1S:6L;2t:6L;E:-6K;43:-6K;";L.2L.1G(1W);1O=1W.5c.L;6J(1O,1q.L);1O.3h("<A 1e=\\""+58.A.J.C("51","")+" ae\\">"+58.A.1x+"</A>");1O.5O();1W.5c.4d();1W.5c.34();h 6J(6M,64){l 2F=64.82("4Y");D(l i=0;i<2F.v;i++){f(2F[i].6R.ac()=="6Q"&&/aa\\.19$/.1R(2F[i].2q)){6M.3h("<4Y 6N=\\"2d/19\\" 6R=\\"6Q\\" 2q=\\""+2F[i].2q+"\\"></4Y>")}}}}},af:h(ag){c.12=h(){q p.M.1k.6P};c.2h=h(aj,ah){l 2i=p.B.54("","57",ai,a9,"6O=0"),1O=2i.L;1O.3h(p.M.1k.6H);1O.5O();2i.4d()}}}},B:{5H:h(6G){q 6G+3J.9Y(3J.9W()*9X).2r()},5o:h(5R,5G){l 3m={},1T;D(1T 23 5R){3m[1T]=5R[1T]}D(1T 23 5G){3m[1T]=5G[1T]}q 3m},8d:h(5z){6z(5z){2N"U":q U;2N"N":q N}q 5z},54:h(3p,6x,44,4c,2J){l x=(6y.1S-44)/2,y=(6y.2t-4c)/2;2J+=", E="+x+", 43="+y+", 1S="+44+", 2t="+4c;2J=2J.C(/^,/,"");l 49=1q.a5(3p,6x,2J);49.4d();q 49},7Q:h(1M,25,24){f(1M.6A){1M["e"+25+24]=24;1M[25+24]=h(){1M["e"+25+24](1q.6w)};1M.6A("an"+25,1M[25+24])}F{1M.aG(25,24,N)}},1v:h(z){1v(p.M.1k.1v+z)},4l:h(4M,6B){l 2k=p.1t.4D,3b=u;f(2k==u){2k={};D(l 4G 23 p.2B){l 37=p.2B[4G].aF;f(37==u){1H}D(l i=0;i<37.v;i++){2k[37[i]]=4G}}p.1t.4D=2k}3b=p.2B[2k[4M]];f(3b==u&&6B!=N){p.B.1v(p.M.1k.6F+4M)}q 3b},4n:h(z,6E){l 2U=z.1P("\\n");D(l i=0;i<2U.v;i++){2U[i]=6E(2U[i])}q 2U.5u("\\n")},74:h(){l A=L.1s("A"),3e=L.1s("A"),6C=10,i=1;29(i<=aD){f(i%6C===0){A.1x+=i;i+=(i+"").v}F{A.1x+="&aI;";i++}}3e.J="5f 2P";3e.1G(A);q 3e},6W:h(z){q z.C(/^[ ]*[\\n]+|[\\n]*[ ]*$/g,"")},84:h(z){l 3d,4u={},4p=T R("^\\\\[(?<4q>(.*?))\\\\]$"),6S=T R("(?<1f>[\\\\w-]+)"+"\\\\s*:\\\\s*"+"(?<1U>"+"[\\\\w-%#]+|"+"\\\\[.*?\\\\]|"+"\\".*?\\"|"+"\'.*?\'"+")\\\\s*;?","g");29((3d=6S.Q(z))!=u){l 2f=3d.1U.C(/^[\'"]|[\'"]$/g,"");f(2f!=u&&4p.1R(2f)){l m=4p.Q(2f);2f=m.4q.v>0?m.4q.1P(/\\s*,\\s*/):[]}4u[3d.1f]=2f}q 4u},7g:h(z,19){f(z==u||z.v==0||z=="\\n"){q z}z=z.C(/</g,"&1F;");z=z.C(/ {2,}/g,h(m){l 4r="";D(l i=0;i<m.v-1;i++){4r+="&1X;"}q 4r+" "});f(19!=u){z=p.B.4n(z,h(2s){f(2s.v==0){q""}l 3c="";2s=2s.C(/^(&1X;| )+/,h(s){3c=s;q""});f(2s.v==0){q 3c}q 3c+"<I 1e=\\""+19+"\\">"+2s+"</I>"})}q z},7a:h(61,62){l 2I=61.2r();29(2I.v<62){2I="0"+2I}q 2I},5p:h(){l 3x=L.1s("A"),35,3r=0,5i=L.2L,1g=p.B.5H("5p"),2Q="<A 1e=\\"",2V="</A>",4H="</1V>";3x.1x=2Q+"7P\\">"+2Q+"1m\\">"+2Q+"2P\\">"+2Q+"5B"+"\\"><1V 1e=\\"7i\\"><1V 1g=\\""+1g+"\\">&1X;"+4H+4H+2V+2V+2V+2V;5i.1G(3x);35=L.ar(1g);f(/aq/i.1R(5Z.5W)){l 63=1q.ao(35,u);3r=7b(63.ap("1S"))}F{3r=35.at}5i.5a(3x);q 3r},76:h(5Y,60){l 1C="";D(l i=0;i<60;i++){1C+=" "}q 5Y.C(/\\t/g,1C)},71:h(2C,4w){l az=2C.1P("\\n"),1C="\\t",40="";D(l i=0;i<50;i++){40+="                    "}h 6I(3z,18,5X){q 3z.1Q(0,18)+40.1Q(0,5X)+3z.1Q(18+1,3z.v)};2C=p.B.4n(2C,h(2a){f(2a.1i(1C)==-1){q 2a}l 18=0;29((18=2a.1i(1C))!=-1){l 7r=4w-18%4w;2a=6I(2a,18,7r)}q 2a});q 2C},3G:h(z){l br=/<br\\s*\\/?>|&1F;br\\s*\\/?&2o;/4x;f(p.M.8k==U){z=z.C(br,"\\n")}f(p.M.8l==U){z=z.C(br,"")}q z},33:h(z){q z.C(/\\s*$/g,"").C(/^\\s*/,"")},2D:h(z){l 21=p.B.3G(z).1P("\\n"),av=T 5V(),8a=/^\\s*/,1Z=ax;D(l i=0;i<21.v&&1Z>0;i++){l 3V=21[i];f(p.B.33(3V).v==0){1H}l 3W=8a.Q(3V);f(3W==u){q z}1Z=3J.1Z(3W[0].v,1Z)}f(1Z>0){D(l i=0;i<21.v;i++){21[i]=21[i].1Q(1Z)}}q 21.5u("\\n")},7d:h(2K,2O){f(2K.G<2O.G){q-1}F{f(2K.G>2O.G){q 1}F{f(2K.v<2O.v){q-1}F{f(2K.v>2O.v){q 1}}}}q 0},30:h(7S,2H){h 7R(4V,7Y){q[T p.4i(4V[0],4V.G,7Y.19)]};l au=0,5N=u,39=[],7Z=2H.4L?2H.4L:7R;29((5N=2H.3q.Q(7S))!=u){39=39.31(7Z(5N,2H))}q 39},7C:h(86){q 86.C(p.85.3p,h(m){q"<a 2q=\\""+m+"\\">"+m+"</a>"})}},1I:h(88,4T){h 81(5j){l 59=[];D(l i=0;i<5j.v;i++){59.K(5j[i])}q 59};l 3g=4T?[4T]:81(L.82(p.M.83)),80="1x",2e=u;f(3g.v===0){q}D(l i=0;i<3g.v;i++){l 2G=3g[i],2l=p.B.84(2G.J),32;2l=p.B.5o(88,2l);32=2l["87"];f(32==u){1H}f(2l["2u-2c"]=="U"){2e=T p.4B(32)}F{l 4O=p.B.4l(32);f(4O){2e=T 4O()}F{1H}}2e.1I(2G[80],2l);l 2p=2e.A;f(p.M.6T){2p=L.1s("aA");2p.1U=2e.A.1x;2p.1n.1S="aB";2p.1n.2t="aK"}2G.7T.aJ(2p,2G)}},aL:h(7U){p.B.7Q(1q,"aM",h(){p.1I(7U)})}};p.4i=h(4j,7V,19){c.1U=4j;c.G=7V;c.v=4j.v;c.19=19};p.4i.Y.2r=h(){q c.1U};p.4B=h(4y){l 1J=p.B.4l(4y),4z=T p.2B.aN(),aH=u;f(1J==u){q}1J=T 1J();c.4E=4z;f(1J.3O==u){p.B.1v(p.M.1k.7X+4y);q}4z.5n.K({3q:1J.3O.I,4L:89});h 3a(4K,7W){D(l j=0;j<4K.v;j++){4K[j].G+=7W}};h 89(17,aC){l 8f=17.I,1L=[],4N=1J.5n,8e=17.G+17.E.v,2Z=1J.3O,1l;D(l i=0;i<4N.v;i++){1l=p.B.30(8f,4N[i]);3a(1l,8e);1L=1L.31(1l)}f(2Z.E!=u&&17.E!=u){1l=p.B.30(17.E,2Z.E);3a(1l,17.G);1L=1L.31(1l)}f(2Z.13!=u&&17.13!=u){1l=p.B.30(17.13,2Z.13);3a(1l,17.G+17[0].aE(17.13));1L=1L.31(1l)}q 1L}};p.4B.Y.1I=h(8h,8i){c.4E.1I(8h,8i);c.A=c.4E.A};p.8b=h(){};p.8b.Y={V:h(8c,8g){l 3Z=c.1A[8c];q p.B.8d(3Z==u?8g:3Z)},12:h(8j){q L.1s(8j)},72:h(38,7O){l 2w=[];f(38!=u){D(l i=0;i<38.v;i++){2w=2w.31(p.B.30(7O,38[i]))}}2w=2w.am(p.B.7d);q 2w},73:h(){l 26=c.2R;D(l i=0;i<26.v;i++){f(26[i]===u){1H}l 2x=26[i],45=2x.G+2x.v;D(l j=i+1;j<26.v&&26[i]!==u;j++){l 20=26[j];f(20===u){1H}F{f(20.G>45){2m}F{f(20.G==2x.G&&20.v>2x.v){c.2R[i]=u}F{f(20.G>=2x.G&&20.G<45){c.2R[j]=u}}}}}}},7m:h(2M){l 36=2M.1P(/\\n/g),3f=7b(c.V("79-2P")),7e=(3f+36.v).2r().v,7f=c.V("1I",[]);2M="";D(l i=0;i<36.v;i++){l 1r=36[i],2y=/^(&1X;|\\s)+/.Q(1r),5A="2P a3"+(i%2==0?1:2),7j=p.B.7a(3f+i,7e),7k=7f.1i((3f+i).2r())!=-1,1E=u;f(2y!=u){1E=2y[0].2r();1r=1r.1Q(1E.v);1E=1E.C(/&1X;/g," ");2y=p.1t.3k*1E.v}F{2y=0}1r=p.B.33(1r);f(1r.v==0){1r="&1X;"}f(7k){5A+=" a6"}2M+="<A 1e=\\""+5A+"\\">"+"<I 1e=\\"a7\\">"+7j+".</I>"+"<1V 1e=\\"5B\\">"+(1E!=u?"<I 1e=\\"a2\\">"+1E.C(/\\s/g,"&1X;")+"</I>":"")+"<1V 1e=\\"7i\\" 1n=\\"5D-E: "+2y+"5x !78;\\">"+1r+"</1V>"+"</1V>"+"</A>"}q 2M},7l:h(5v,5r){l 18=0,3o="",3n=p.B.7g;D(l i=0;i<5r.v;i++){l 1N=5r[i];f(1N===u||1N.v===0){1H}3o+=3n(5v.1Q(18,1N.G-18),"7h")+3n(1N.1U,1N.19);18=1N.G+1N.v}3o+=3n(5v.1Q(18),"7h");q 3o},1I:h(1j,6Y){l a1=p.M,3l=p.1t,A,9Z,3i,a0="78";c.1A={};c.A=u;c.1m=u;c.I=u;c.1h=u;c.5I={};c.1g=p.B.5H("a8");3l.5K[c.1g]=c;f(1j===u){1j=""}f(3l.3k===u){3l.3k=p.B.5p()}c.1A=p.B.5o(p.77,6Y||{});f(c.V("6Z")==U){c.1A.1z=c.1A.4Z=N}c.A=A=c.12("3j");c.1m=c.12("3j");c.1m.J="1m";J="7P";A.1g=c.1g;f(c.V("56")){J+=" 51"}f(c.V("4Z")==N){J+=" ak"}f(c.V("4S-1m")==N){c.1m.J+=" al-4S"}J+=" "+c.V("1e-1f");A.J=J;c.4W=1j;c.I=p.B.6W(1j).C(/\\r/g," ");3i=c.V("1C-2A");c.I=c.V("6V-70")==U?p.B.71(c.I,3i):p.B.76(c.I,3i);c.I=p.B.2D(c.I);f(c.V("1z")){c.1h=c.12("3j");c.1h.J="1h";c.1h.1G(p.1z.12(c));A.1G(c.1h);l 1h=c.1h;h 5d(){1h.J=1h.J.C("75","")};A.ab=h(){5d();1h.J+=" 75"};A.ad=h(){5d()}}f(c.V("5f")){A.1G(p.B.74())}A.1G(c.1m);c.2R=c.72(c.5n,c.I);c.73();1j=c.7l(c.I,c.2R);1j=c.7m(p.B.33(1j));f(c.V("7G-7F")){1j=p.B.7C(1j)}c.1m.1x=1j},bn:h(z){z=z.C(/^\\s+|\\s+$/g,"").C(/\\s+/g,"\\\\b|\\\\b");q"\\\\b"+z+"\\\\b"},bl:h(2W){c.3O={E:{3q:2W.E,19:"2c"},13:{3q:2W.13,19:"2c"},I:T R("(?<E>"+2W.E.1c+")"+"(?<I>.*?)"+"(?<13>"+2W.13.1c+")","bv")}}};q p}()}f(!5V.1i){5V.Y.1i=h(7M,3R){3R=3J.bF(3R||0,0);D(l i=3R;i<c.v;i++){f(c[i]==7M){q i}}q-1}}f(!1q.R){(h(){l 2z={Q:11.Y.Q,7K:5b.Y.7K,C:5b.Y.C,1P:5b.Y.1P},1K={W:/(?:[^\\\\([#\\s.]+|\\\\(?!k<[\\w$]+>|[7B]{[^}]+})[\\S\\s]?|\\((?=\\?(?!#|<[\\w$]+>)))+|(\\()(?:\\?(?:(#)[^)]*\\)|<([$\\w]+)>))?|\\\\(?:k<([\\w$]+)>|[7B]{([^}]+)})|(\\[\\^?)|([\\S\\s])/g,by:/(?:[^$]+|\\$(?![1-9$&`\']|{[$\\w]+}))+|\\$(?:([1-9]\\d*|[$&`\'])|{([$\\w]+)})/g,3M:/^(?:\\s+|#.*)+/,5F:/^(?:[?*+]|{\\d+(?:,\\d*)?})/,7x:/&&\\[\\^?/g,7v:/]/g},7n=h(5l,5k,4X){D(l i=4X||0;i<5l.v;i++){f(5l[i]===5k){q i}}q-1},7y=/()??/.Q("")[1]!==3K,3w={};R=h(1d,1Y){f(1d 3T 11){f(1Y!==3K){3L 7N("4C\'t 4I bJ 7H aY 7J 11 4X aZ")}q 1d.3C()}l 1Y=1Y||"",7w=1Y.1i("s")>-1,6X=1Y.1i("x")>-1,5q=N,3u=[],14=[],W=1K.W,H,3D,3F,3E,3v;W.O=0;29(H=2z.Q.2n(W,1d)){f(H[2]){f(!1K.5F.1R(1d.15(W.O))){14.K("(?:)")}}F{f(H[1]){3u.K(H[3]||u);f(H[3]){5q=U}14.K("(")}F{f(H[4]){3E=7n(3u,H[4]);14.K(3E>-1?"\\\\"+(3E+1)+(55(1d.5J(W.O))?"":"(?:)"):H[0])}F{f(H[5]){14.K(3w.7t?3w.7t.7u(H[5],H[0].5J(1)==="P"):H[0])}F{f(H[6]){f(1d.5J(W.O)==="]"){14.K(H[6]==="["?"(?!)":"[\\\\S\\\\s]");W.O++}F{3D=R.7q("&&"+1d.15(H.G),1K.7x,1K.7v,"",{7s:"\\\\"})[0];14.K(H[6]+3D+"]");W.O+=3D.v+1}}F{f(H[7]){f(7w&&H[7]==="."){14.K("[\\\\S\\\\s]")}F{f(6X&&1K.3M.1R(H[7])){3F=2z.Q.2n(1K.3M,1d.15(W.O-1))[0].v;f(!1K.5F.1R(1d.15(W.O-1+3F))){14.K("(?:)")}W.O+=3F-1}F{14.K(H[7])}}}F{14.K(H[0])}}}}}}}3v=11(14.5u(""),2z.C.2n(1Y,/[8y]+/g,""));3v.1u={1c:1d,2j:5q?3u:u};q 3v};R.8B=h(1f,o){3w[1f]=o};11.Y.Q=h(z){l 1b=2z.Q.2n(c,z),1f,i,5C;f(1b){f(7y&&1b.v>1){5C=T 11("^"+c.1c+"$(?!\\\\s)",c.4a());2z.C.2n(1b[0],5C,h(){D(i=1;i<7z.v-2;i++){f(7z[i]===3K){1b[i]=3K}}})}f(c.1u&&c.1u.2j){D(i=1;i<1b.v;i++){1f=c.1u.2j[i-1];f(1f){1b[1f]=1b[i]}}}f(c.3A&&c.O>(1b.G+1b[0].v)){c.O--}}q 1b}})()}11.Y.4a=h(){q(c.3A?"g":"")+(c.8M?"i":"")+(c.7D?"m":"")+(c.3M?"x":"")+(c.8Y?"y":"")};11.Y.3C=h(7o){l 4g=T R(c.1c,(7o||"")+c.4a());f(c.1u){4g.1u={1c:c.1u.1c,2j:c.1u.2j?c.1u.2j.15(0):u}}q 4g};11.Y.2n=h(90,z){q c.Q(z)};11.Y.8W=h(8U,7p){q c.Q(7p[0])};R.47=h(4f,4e){l 46="/"+4f+"/"+(4e||"");q R.47[46]||(R.47[46]=T R(4f,4e))};R.3t=h(z){q z.C(/[-[\\]{}()*+?.\\\\^$|,#\\s]/g,"\\\\$&")};R.7q=h(z,E,Z,1a,2T){l 2T=2T||{},2X=2T.7s,X=2T.8A,1a=1a||"",4s=1a.1i("g")>-1,7E=1a.1i("i")>-1,7L=1a.1i("m")>-1,4t=1a.1i("y")>-1,1a=1a.C(/y/g,""),E=E 3T 11?(E.3A?E:E.3C("g")):T R(E,"g"+1a),Z=Z 3T 11?(Z.3A?Z:Z.3C("g")):T R(Z,"g"+1a),1D=[],2b=0,1o=0,1p=0,1y=0,27,22,1w,1B,3I,4m;f(2X){f(2X.v>1){3L 8n("4C\'t 4I 8q 8z 7J 3t 7I")}f(7L){3L 7N("4C\'t 4I 3t 7I 7H 9U 9D 7D 9C")}3I=R.3t(2X);4m=T 11("^(?:"+3I+"[\\\\S\\\\s]|(?:(?!"+E.1c+"|"+Z.1c+")[^"+3I+"])+)+",7E?"i":"")}29(U){E.O=Z.O=1p+(2X?(4m.Q(z.15(1p))||[""])[0].v:0);1w=E.Q(z);1B=Z.Q(z);f(1w&&1B){f(1w.G<=1B.G){1B=u}F{1w=u}}f(1w||1B){1o=(1w||1B).G;1p=(1w?E:Z).O}F{f(!2b){2m}}f(4t&&!2b&&1o>1y){2m}f(1w){f(!2b++){27=1o;22=1p}}F{f(1B&&2b){f(!--2b){f(X){f(X[0]&&27>1y){1D.K([X[0],z.15(1y,27),1y,27])}f(X[1]){1D.K([X[1],z.15(27,22),27,22])}f(X[2]){1D.K([X[2],z.15(22,1o),22,1o])}f(X[3]){1D.K([X[3],z.15(1o,1p),1o,1p])}}F{1D.K(z.15(22,1o))}1y=1p;f(!4s){2m}}}F{E.O=Z.O=0;3L 9q("9A 9i 9a 9d 8u")}}f(1o===1p){1p++}}f(4s&&!4t&&X&&X[0]&&z.v>1y){1D.K([X[0],z.15(1y),1y,z.v])}E.O=Z.O=0;q 1D};',62,728,'||||||||||||this|||if||function||||var||||sh|return||||null|length||||str|div|utils|replace|for|left|else|index|_10f|code|className|push|document|config|false|lastIndex||exec|XRegExp||new|true|getParam|part|vN|prototype|_127||RegExp|create|right|_10d|slice||_c4|pos|css|_128|_117|source|_107|class|name|id|bar|indexOf|_f0|strings|_cb|lines|style|_132|_133|window|_e3|createElement|vars|_x|alert|_137|innerHTML|_134|toolbar|params|_138|tab|_130|_e8|lt|appendChild|continue|highlight|_be|lib|_c7|obj|_ef|doc|split|substr|test|width|_4b|value|span|_3c|nbsp|_108|min|_dc|_98|_136|in|_57|_56|_d7|_135|_8|while|_91|_131|script|text|_b2|_6e|http|execute|wnd|captureNames|_5b|_b5|break|call|gt|_b8|href|toString|_75|height|html|attributes|_d5|_d9|_e4|_fe|size|brushes|_88|unindent|SyntaxHighlighter|_40|_b4|_a2|_7a|_51|m1|body|_dd|case|m2|line|_80|matches|_28|_129|_62|_81|_fa|_12a|_5|_ca|getMatches|concat|_b6|trim|print|_7c|_de|_5e|_d3|_a7|offsetMatches|_5c|_76|_6a|_65|_df|_b0|write|_f6|DIV|spaceWidth|_f3|_4a|_ed|_ec|url|regex|_7d|_2|escape|_10c|_113|_106|_7b|_3|_8e|global|title|addFlags|cc|_112|len|fixInputString|_32|_139|Math|undefined|throw|extended|font|htmlScript|printFrame|_22|_fc|_25|instanceof|_17|_9d|_9e|_18|expandSource|_d1|_8c|viewSource|_1a|top|_4f|_da|key|cache|_10|win|getNativeFlags|_19|_50|focus|_122|_121|_11c|_b|Match|_ba|gm|findBrush|esc|eachLine|_4|_6c|values|_73|_12c|_12f|_6b|color|_89|gi|_bd|_bf|_9|HtmlScript|can|discoveredBrushes|xmlBrush|_f|_5d|_82|supply|_7|_c1|func|_59|_c8|_b7|_e|_d|pre|wrap|_ac|com|_a3|originalCode|from|link|gutter||collapsed|clipboardSwf|_37|popup|isNaN|collapse|_blank|_38|_ae|removeChild|String|contentWindow|hide|_24|ruler|swf|_30|_7e|_ad|item|_101|_2f|regexList|merge|measureSpace|_10b|_ea|_2a|_2c|join|_e9|_2e|px|_2b|_4c|_e5|content|r2|margin|_29|quantifier|_49|guid|toolbarCommands|charAt|highlighters|_27|highlighterId|_a6|close|toolbarItemWidth|_2d|_48|toolbarItemHeight|_35|copyToClipboard|Array|userAgent|_90|_84|navigator|_85|_78|_79|_83|_3f|items|_1e|_16|_13|_12|shockwave|flash|clipboardData|_36|object|version|_15|_14|center|alexgorbatchev|align|head|org|2009|_6|executeCommand|commandName|_a|createButton|copyToClipboardConfirmation|message|w3|event|_4e|screen|switch|attachEvent|_5a|_66|www|_61|noBrush|_47|aboutDialog|insertSpaces|copyStyles|500px|0px|_3e|type|scrollbars|help|stylesheet|rel|_6d|debug|DTD|smart|trimFirstAndLastLines|_10a|_f1|light|tabs|processSmartTabs|findMatches|removeNestedMatches|createRuler|show|processTabs|defaults|important|first|padNumber|parseInt|xhtml1|matchesSortCallback|_e0|_e1|decorate|plain|block|_e6|_e7|processMatches|createDisplayLines|_100|_11b|args|matchRecursive|_93|escapeChar|unicode|get|classRight|_109|classLeft|_105|arguments|clipboard|pP|processUrls|multiline|_12d|links|auto|when|character|one|match|_12e|_fb|TypeError|_d4|syntaxhighlighter|addEvent|defaultAdd|_a1|parentNode|_b9|_bb|_c2|brushNotHtmlScript|_a4|_a8|_b1|toArray|getElementsByTagName|tagName|parseParams|regexLib|_a9|brush|_ab|process|_9a|Highlighter|_cf|toBoolean|_c9|_c6|_d0|_cd|_ce|_d2|bloggerMode|stripBrs|catch|SyntaxError|now|Can|more|xhtml|utf|onclick|delimiters|wasn|your|family|sx|than|valueNames|addPlugin|About|try|charset|_26|400|750|find|_21|location|Type|ignoreCase|menubar|resizable|Content|_20|_1f|param|meta|_11f|Brush|apply|_1b|sticky|Geneva|_11d|_1c|equiv|to|syntax|highlighter|JavaScript|expand|none|3em|contains|view|Alex|unbalanced|2004|Copyright|decoration|0099FF|data|320|4em|bottom|75em|May|large|xx|Error|target|03|Gorbatchev|multiLineCComments|aspScriptTags|scriptScriptTags|phpScriptTags|Arial|multiLineSingleQuotedString|subject|The|flag|the|is|string|typeof|Helvetica|sans|000|fff|1em|singleLinePerlComments|singleLineCComments|copy|doubleQuotedString|serif|multiLineDoubleQuotedString|background|singleQuotedString|using|W3C|random|1000000|round|_f5|_f7|_f2|spaces|alt|transitional|open|highlighted|number|highlighter_|250|shCore|onmouseover|toLowerCase|onmouseout|printing|about|_42|_44|500|_43|nogutter|no|sort|on|getComputedStyle|getPropertyValue|opera|getElementById|1999|offsetWidth|_a5|_99|dtd|1000|xmlns|_8a|textarea|70em|_c5|150|lastIndexOf|aliases|addEventListener|_c0|middot|replaceChild|30em|all|load|Xml|absolute|position|444553540000|codebase|96b8|11cf|ae6d|PUBLIC|download|cabs|constructing|another|pub|macromedia|d27cdb6e|clsid|always|wmode|allowScriptAccess|application|_clipboard|transparent|flashVars|msie|classid|menu|DOCTYPE|option|swflash|cab|TR|error|ok|forHtmlScript|setData|getKeywords|printSource|IFRAME|cssText||_3b|_3a|_39|sgi|amp|Transitional|replaceVar|XHTML|embed|movie|src|configured|command|max|_34|_33|EN|flags'.split('|'),0,{}))



/* ../../../shared/js/sh/shBrushJScript.js */

/**
 * SyntaxHighlighter
 * http://alexgorbatchev.com/
 *
 * SyntaxHighlighter is donationware. If you are using it, please donate.
 * http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
 *
 * @version
 * 2.0.320 (May 03 2009)
 * 
 * @copyright
 * Copyright (C) 2004-2009 Alex Gorbatchev.
 *
 * @license
 * This file is part of SyntaxHighlighter.
 * 
 * SyntaxHighlighter is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * SyntaxHighlighter is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with SyntaxHighlighter.  If not, see <http://www.gnu.org/copyleft/lesser.html>.
 */
SyntaxHighlighter.brushes.JScript = function()
{
	var keywords =	'break case catch continue ' +
					'default delete do else false  ' +
					'for function if in instanceof ' +
					'new null return super switch ' +
					'this throw true try typeof var while with'
					;

	this.regexList = [
		{ regex: SyntaxHighlighter.regexLib.singleLineCComments,	css: 'comments' },			// one line comments
		{ regex: SyntaxHighlighter.regexLib.multiLineCComments,		css: 'comments' },			// multiline comments
		{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },			// double quoted strings
		{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },			// single quoted strings
		{ regex: /\s*#.*/gm,										css: 'preprocessor' },		// preprocessor tags like #region and #endregion
		{ regex: new RegExp(this.getKeywords(keywords), 'gm'),		css: 'keyword' }			// keywords
		];
	
	this.forHtmlScript(SyntaxHighlighter.regexLib.scriptScriptTags);
};

SyntaxHighlighter.brushes.JScript.prototype	= new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.JScript.aliases	= ['js', 'jscript', 'javascript'];



/* ../../../shared/js/sh/shBrushCss.js */

/**
 * SyntaxHighlighter
 * http://alexgorbatchev.com/
 *
 * SyntaxHighlighter is donationware. If you are using it, please donate.
 * http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
 *
 * @version
 * 2.0.320 (May 03 2009)
 * 
 * @copyright
 * Copyright (C) 2004-2009 Alex Gorbatchev.
 *
 * @license
 * This file is part of SyntaxHighlighter.
 * 
 * SyntaxHighlighter is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * SyntaxHighlighter is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with SyntaxHighlighter.  If not, see <http://www.gnu.org/copyleft/lesser.html>.
 */
SyntaxHighlighter.brushes.CSS = function()
{
	function getKeywordsCSS(str)
	{
		return '\\b([a-z_]|)' + str.replace(/ /g, '(?=:)\\b|\\b([a-z_\\*]|\\*|)') + '(?=:)\\b';
	};
	
	function getValuesCSS(str)
	{
		return '\\b' + str.replace(/ /g, '(?!-)(?!:)\\b|\\b()') + '\:\\b';
	};

	var keywords =	'ascent azimuth background-attachment background-color background-image background-position ' +
					'background-repeat background baseline bbox border-collapse border-color border-spacing border-style border-top ' +
					'border-right border-bottom border-left border-top-color border-right-color border-bottom-color border-left-color ' +
					'border-top-style border-right-style border-bottom-style border-left-style border-top-width border-right-width ' +
					'border-bottom-width border-left-width border-width border bottom cap-height caption-side centerline clear clip color ' +
					'content counter-increment counter-reset cue-after cue-before cue cursor definition-src descent direction display ' +
					'elevation empty-cells float font-size-adjust font-family font-size font-stretch font-style font-variant font-weight font ' +
					'height left letter-spacing line-height list-style-image list-style-position list-style-type list-style margin-top ' +
					'margin-right margin-bottom margin-left margin marker-offset marks mathline max-height max-width min-height min-width orphans ' +
					'outline-color outline-style outline-width outline overflow padding-top padding-right padding-bottom padding-left padding page ' +
					'page-break-after page-break-before page-break-inside pause pause-after pause-before pitch pitch-range play-during position ' +
					'quotes right richness size slope src speak-header speak-numeral speak-punctuation speak speech-rate stemh stemv stress ' +
					'table-layout text-align top text-decoration text-indent text-shadow text-transform unicode-bidi unicode-range units-per-em ' +
					'vertical-align visibility voice-family volume white-space widows width widths word-spacing x-height z-index';

	var values =	'above absolute all always aqua armenian attr aural auto avoid baseline behind below bidi-override black blink block blue bold bolder '+
					'both bottom braille capitalize caption center center-left center-right circle close-quote code collapse compact condensed '+
					'continuous counter counters crop cross crosshair cursive dashed decimal decimal-leading-zero default digits disc dotted double '+
					'embed embossed e-resize expanded extra-condensed extra-expanded fantasy far-left far-right fast faster fixed format fuchsia '+
					'gray green groove handheld hebrew help hidden hide high higher icon inline-table inline inset inside invert italic '+
					'justify landscape large larger left-side left leftwards level lighter lime line-through list-item local loud lower-alpha '+
					'lowercase lower-greek lower-latin lower-roman lower low ltr marker maroon medium message-box middle mix move narrower '+
					'navy ne-resize no-close-quote none no-open-quote no-repeat normal nowrap n-resize nw-resize oblique olive once open-quote outset '+
					'outside overline pointer portrait pre print projection purple red relative repeat repeat-x repeat-y rgb ridge right right-side '+
					'rightwards rtl run-in screen scroll semi-condensed semi-expanded separate se-resize show silent silver slower slow '+
					'small small-caps small-caption smaller soft solid speech spell-out square s-resize static status-bar sub super sw-resize '+
					'table-caption table-cell table-column table-column-group table-footer-group table-header-group table-row table-row-group teal '+
					'text-bottom text-top thick thin top transparent tty tv ultra-condensed ultra-expanded underline upper-alpha uppercase upper-latin '+
					'upper-roman url visible wait white wider w-resize x-fast x-high x-large x-loud x-low x-slow x-small x-soft xx-large xx-small yellow';

	var fonts =		'[mM]onospace [tT]ahoma [vV]erdana [aA]rial [hH]elvetica [sS]ans-serif [sS]erif [cC]ourier mono sans serif';
	
	this.regexList = [
		{ regex: SyntaxHighlighter.regexLib.multiLineCComments,		css: 'comments' },	// multiline comments
		{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },	// double quoted strings
		{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },	// single quoted strings
		{ regex: /\#[a-fA-F0-9]{3,6}/g,								css: 'value' },		// html colors
		{ regex: /(-?\d+)(\.\d+)?(px|em|pt|\:|\%|)/g,				css: 'value' },		// sizes
		{ regex: /!important/g,										css: 'color3' },	// !important
		{ regex: new RegExp(getKeywordsCSS(keywords), 'gm'),		css: 'keyword' },	// keywords
		{ regex: new RegExp(getValuesCSS(values), 'g'),				css: 'value' },		// values
		{ regex: new RegExp(this.getKeywords(fonts), 'g'),			css: 'color1' }		// fonts
		];

	this.forHtmlScript({ 
		left: /(&lt;|<)\s*style.*?(&gt;|>)/gi, 
		right: /(&lt;|<)\/\s*style\s*(&gt;|>)/gi 
		});
};

SyntaxHighlighter.brushes.CSS.prototype	= new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.CSS.aliases	= ['css'];



/* ../../../shared/js/sh/shBrushPhp.js */

/**
 * SyntaxHighlighter
 * http://alexgorbatchev.com/
 *
 * SyntaxHighlighter is donationware. If you are using it, please donate.
 * http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
 *
 * @version
 * 2.0.320 (May 03 2009)
 * 
 * @copyright
 * Copyright (C) 2004-2009 Alex Gorbatchev.
 *
 * @license
 * This file is part of SyntaxHighlighter.
 * 
 * SyntaxHighlighter is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * SyntaxHighlighter is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with SyntaxHighlighter.  If not, see <http://www.gnu.org/copyleft/lesser.html>.
 */
SyntaxHighlighter.brushes.Php = function()
{
	var funcs	=	'abs acos acosh addcslashes addslashes ' +
					'array_change_key_case array_chunk array_combine array_count_values array_diff '+
					'array_diff_assoc array_diff_key array_diff_uassoc array_diff_ukey array_fill '+
					'array_filter array_flip array_intersect array_intersect_assoc array_intersect_key '+
					'array_intersect_uassoc array_intersect_ukey array_key_exists array_keys array_map '+
					'array_merge array_merge_recursive array_multisort array_pad array_pop array_product '+
					'array_push array_rand array_reduce array_reverse array_search array_shift '+
					'array_slice array_splice array_sum array_udiff array_udiff_assoc '+
					'array_udiff_uassoc array_uintersect array_uintersect_assoc '+
					'array_uintersect_uassoc array_unique array_unshift array_values array_walk '+
					'array_walk_recursive atan atan2 atanh base64_decode base64_encode base_convert '+
					'basename bcadd bccomp bcdiv bcmod bcmul bindec bindtextdomain bzclose bzcompress '+
					'bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite ceil chdir '+
					'checkdate checkdnsrr chgrp chmod chop chown chr chroot chunk_split class_exists '+
					'closedir closelog copy cos cosh count count_chars date decbin dechex decoct '+
					'deg2rad delete ebcdic2ascii echo empty end ereg ereg_replace eregi eregi_replace error_log '+
					'error_reporting escapeshellarg escapeshellcmd eval exec exit exp explode extension_loaded '+
					'feof fflush fgetc fgetcsv fgets fgetss file_exists file_get_contents file_put_contents '+
					'fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype '+
					'floatval flock floor flush fmod fnmatch fopen fpassthru fprintf fputcsv fputs fread fscanf '+
					'fseek fsockopen fstat ftell ftok getallheaders getcwd getdate getenv gethostbyaddr gethostbyname '+
					'gethostbynamel getimagesize getlastmod getmxrr getmygid getmyinode getmypid getmyuid getopt '+
					'getprotobyname getprotobynumber getrandmax getrusage getservbyname getservbyport gettext '+
					'gettimeofday gettype glob gmdate gmmktime ini_alter ini_get ini_get_all ini_restore ini_set '+
					'interface_exists intval ip2long is_a is_array is_bool is_callable is_dir is_double '+
					'is_executable is_file is_finite is_float is_infinite is_int is_integer is_link is_long '+
					'is_nan is_null is_numeric is_object is_readable is_real is_resource is_scalar is_soap_fault '+
					'is_string is_subclass_of is_uploaded_file is_writable is_writeable mkdir mktime nl2br '+
					'parse_ini_file parse_str parse_url passthru pathinfo readlink realpath rewind rewinddir rmdir '+
					'round str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split '+
					'str_word_count strcasecmp strchr strcmp strcoll strcspn strftime strip_tags stripcslashes '+
					'stripos stripslashes stristr strlen strnatcasecmp strnatcmp strncasecmp strncmp strpbrk '+
					'strpos strptime strrchr strrev strripos strrpos strspn strstr strtok strtolower strtotime '+
					'strtoupper strtr strval substr substr_compare';

	var keywords =	'and or xor array as break case ' +
					'cfunction class const continue declare default die do else ' +
					'elseif enddeclare endfor endforeach endif endswitch endwhile ' +
					'extends for foreach function include include_once global if ' +
					'new old_function return static switch use require require_once ' +
					'var while abstract interface public implements extends private protected throw';
	
	var constants	= '__FILE__ __LINE__ __METHOD__ __FUNCTION__ __CLASS__';

	this.regexList = [
		{ regex: SyntaxHighlighter.regexLib.singleLineCComments,	css: 'comments' },			// one line comments
		{ regex: SyntaxHighlighter.regexLib.multiLineCComments,		css: 'comments' },			// multiline comments
		{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },			// double quoted strings
		{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },			// single quoted strings
		{ regex: /\$\w+/g,											css: 'variable' },			// variables
		{ regex: new RegExp(this.getKeywords(funcs), 'gmi'),		css: 'functions' },			// common functions
		{ regex: new RegExp(this.getKeywords(constants), 'gmi'),	css: 'constants' },			// constants
		{ regex: new RegExp(this.getKeywords(keywords), 'gm'),		css: 'keyword' }			// keyword
		];

	this.forHtmlScript(SyntaxHighlighter.regexLib.phpScriptTags);
};

SyntaxHighlighter.brushes.Php.prototype	= new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Php.aliases	= ['php'];



/* ../../../shared/js/sh/shBrushPlain.js */

/**
 * SyntaxHighlighter
 * http://alexgorbatchev.com/
 *
 * SyntaxHighlighter is donationware. If you are using it, please donate.
 * http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
 *
 * @version
 * 2.0.320 (May 03 2009)
 * 
 * @copyright
 * Copyright (C) 2004-2009 Alex Gorbatchev.
 *
 * @license
 * This file is part of SyntaxHighlighter.
 * 
 * SyntaxHighlighter is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * SyntaxHighlighter is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with SyntaxHighlighter.  If not, see <http://www.gnu.org/copyleft/lesser.html>.
 */
SyntaxHighlighter.brushes.Plain = function()
{
};

SyntaxHighlighter.brushes.Plain.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Plain.aliases = ['text', 'plain'];



/* ../../../shared/js/sh/shBrushBash.js */

/**
 * SyntaxHighlighter
 * http://alexgorbatchev.com/
 *
 * SyntaxHighlighter is donationware. If you are using it, please donate.
 * http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
 *
 * @version
 * 2.0.320 (May 03 2009)
 * 
 * @copyright
 * Copyright (C) 2004-2009 Alex Gorbatchev.
 *
 * @license
 * This file is part of SyntaxHighlighter.
 * 
 * SyntaxHighlighter is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * SyntaxHighlighter is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with SyntaxHighlighter.  If not, see <http://www.gnu.org/copyleft/lesser.html>.
 */
SyntaxHighlighter.brushes.Bash = function()
{
	var keywords =	'if fi then elif else for do done until while break continue case function return in eq ne gt lt ge le';
	var commands =  'alias apropos awk bash bc bg builtin bzip2 cal cat cd cfdisk chgrp chmod chown chroot' +
					'cksum clear cmp comm command cp cron crontab csplit cut date dc dd ddrescue declare df ' +
					'diff diff3 dig dir dircolors dirname dirs du echo egrep eject enable env ethtool eval ' +
					'exec exit expand export expr false fdformat fdisk fg fgrep file find fmt fold format ' +
					'free fsck ftp gawk getopts grep groups gzip hash head history hostname id ifconfig ' +
					'import install join kill less let ln local locate logname logout look lpc lpr lprint ' +
					'lprintd lprintq lprm ls lsof make man mkdir mkfifo mkisofs mknod more mount mtools ' +
					'mv netstat nice nl nohup nslookup open op passwd paste pathchk ping popd pr printcap ' +
					'printenv printf ps pushd pwd quota quotacheck quotactl ram rcp read readonly renice ' +
					'remsync rm rmdir rsync screen scp sdiff sed select seq set sftp shift shopt shutdown ' +
					'sleep sort source split ssh strace su sudo sum symlink sync tail tar tee test time ' +
					'times touch top traceroute trap tr true tsort tty type ulimit umask umount unalias ' +
					'uname unexpand uniq units unset unshar useradd usermod users uuencode uudecode v vdir ' +
					'vi watch wc whereis which who whoami Wget xargs yes'
					;
    
	this.regexList = [
		{ regex: SyntaxHighlighter.regexLib.singleLinePerlComments,		css: 'comments' },		// one line comments
		{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,			css: 'string' },		// double quoted strings
		{ regex: new RegExp(this.getKeywords(keywords), 'gm'),			css: 'keyword' },		// keywords
		{ regex: new RegExp(this.getKeywords(commands), 'gm'),			css: 'functions' }		// commands
		];
}

SyntaxHighlighter.brushes.Bash.prototype	= new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Bash.aliases		= ['bash', 'shell'];




/* ../../../shared/js/sh/shBrushRuby.js */

/**
 * SyntaxHighlighter
 * http://alexgorbatchev.com/
 *
 * SyntaxHighlighter is donationware. If you are using it, please donate.
 * http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
 *
 * @version
 * 2.0.320 (May 03 2009)
 * 
 * @copyright
 * Copyright (C) 2004-2009 Alex Gorbatchev.
 *
 * @license
 * This file is part of SyntaxHighlighter.
 * 
 * SyntaxHighlighter is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * SyntaxHighlighter is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with SyntaxHighlighter.  If not, see <http://www.gnu.org/copyleft/lesser.html>.
 */
SyntaxHighlighter.brushes.Ruby = function()
{
	// Contributed by Erik Peterson.
	
	var keywords =	'alias and BEGIN begin break case class def define_method defined do each else elsif ' +
					'END end ensure false for if in module new next nil not or raise redo rescue retry return ' +
					'self super then throw true undef unless until when while yield';

	var builtins =	'Array Bignum Binding Class Continuation Dir Exception FalseClass File::Stat File Fixnum Fload ' +
					'Hash Integer IO MatchData Method Module NilClass Numeric Object Proc Range Regexp String Struct::TMS Symbol ' +
					'ThreadGroup Thread Time TrueClass';

	this.regexList = [
		{ regex: SyntaxHighlighter.regexLib.singleLinePerlComments,	css: 'comments' },		// one line comments
		{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },		// double quoted strings
		{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },		// single quoted strings
		{ regex: /\b[A-Z0-9_]+\b/g,									css: 'constants' },		// constants
		{ regex: /:[a-z][A-Za-z0-9_]*/g,							css: 'color2' },		// symbols
		{ regex: /(\$|@@|@)\w+/g,									css: 'variable bold' },	// $global, @instance, and @@class variables
		{ regex: new RegExp(this.getKeywords(keywords), 'gm'),		css: 'keyword' },		// keywords
		{ regex: new RegExp(this.getKeywords(builtins), 'gm'),		css: 'color1' }			// builtins
		];

	this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
};

SyntaxHighlighter.brushes.Ruby.prototype	= new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Ruby.aliases		= ['ruby', 'rails', 'ror'];



/* ../../../shared/js/sh/shBrushXml.js */

/**
 * SyntaxHighlighter
 * http://alexgorbatchev.com/
 *
 * SyntaxHighlighter is donationware. If you are using it, please donate.
 * http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
 *
 * @version
 * 2.0.320 (May 03 2009)
 * 
 * @copyright
 * Copyright (C) 2004-2009 Alex Gorbatchev.
 *
 * @license
 * This file is part of SyntaxHighlighter.
 * 
 * SyntaxHighlighter is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * SyntaxHighlighter is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with SyntaxHighlighter.  If not, see <http://www.gnu.org/copyleft/lesser.html>.
 */
SyntaxHighlighter.brushes.Xml = function()
{
	function process(match, regexInfo)
	{
		var constructor = SyntaxHighlighter.Match,
			code = match[0],
			tag = new XRegExp('(&lt;|<)[\\s\\/\\?]*(?<name>[:\\w-\\.]+)', 'xg').exec(code),
			result = []
			;
		
		if (match.attributes != null) 
		{
			var attributes,
				regex = new XRegExp('(?<name> [\\w:\\-\\.]+)' +
									'\\s*=\\s*' +
									'(?<value> ".*?"|\'.*?\'|\\w+)',
									'xg');

			while ((attributes = regex.exec(code)) != null) 
			{
				result.push(new constructor(attributes.name, match.index + attributes.index, 'color1'));
				result.push(new constructor(attributes.value, match.index + attributes.index + attributes[0].indexOf(attributes.value), 'string'));
			}
		}

		if (tag != null)
			result.push(
				new constructor(tag.name, match.index + tag[0].indexOf(tag.name), 'keyword')
			);

		return result;
	}
	
	this.regexList = [
		{ regex: new XRegExp('(\\&lt;|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\\&gt;|>)', 'gm'),			css: 'color2' },	// <![ ... [ ... ]]>
		{ regex: new XRegExp('(\\&lt;|<)!--\\s*.*?\\s*--(\\&gt;|>)', 'gm'),								css: 'comments' },	// <!-- ... -->
		{ regex: new XRegExp('(&lt;|<)[\\s\\/\\?]*(\\w+)(?<attributes>.*?)[\\s\\/\\?]*(&gt;|>)', 'sg'), func: process }
	];
};

SyntaxHighlighter.brushes.Xml.prototype	= new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Xml.aliases	= ['xml', 'xhtml', 'xslt', 'html', 'xhtml'];



/* ../../../shared/js/sh/shBrushAppleScript.js */

/*
 * AppleScript brush for SyntaxHighlighter
 *
 * SyntaxHighlighter by Alex Gorbatchev
 * http://alexgorbatchev.com/
 *
 * AppleScript brush by David Chambers
 * http://davidchambersdesign.com/
 * { last updated: 10 August 2009 }
 */

SyntaxHighlighter.brushes.AppleScript = function ()
{
	var keywords, ordinals, specials;
	keywords = 'after before beginning continue copy each end every from return get global in local named of set some that the then times to where whose with without';
	ordinals = 'first second third fourth fifth sixth seventh eighth ninth tenth last front back middle';
	specials = 'activate add alias AppleScript ask attachment boolean class constant delete duplicate empty exists false id integer list make message modal modified new no paragraph pi properties quit real record remove rest result reveal reverse run running save string true word yes';

	this.regexList = [

		{ regex: /(--|#).*$/gm,
		    css: 'comments' },

		{ regex: /\(\*(?:[\s\S]*?\(\*[\s\S]*?\*\))*[\s\S]*?\*\)/gm, // support nested comments
		    css: 'comments' },

		{ regex: /"[\s\S]*?"/gm,
		    css: 'string' },

		{ regex: /(?:,|:|¬|'s\b|\(|\)|\{|\}|«|\b\w*»)/g,
		    css: 'standard' },

		{ regex: /(-)?(\d)+(\.(\d)?)?(E\+(\d)+)?/g, // numbers
		    css: 'standard' },

		{ regex: /(?:&(amp;|gt;|lt;)?|=|≠|>|<|≥|>=|≤|<=|\*|\+|-|\/|÷|\^)/g,
		    css: 'operator' },

		{ regex: /\b(?:and|as|div|mod|not|or|return(?!\s&)(ing)?|equals|(is(n't| not)? )?equal( to)?|does(n't| not) equal|(is(n't| not)? )?(greater|less) than( or equal( to)?)?|(comes|does(n't| not) come) (after|before)|is(n't| not)?( in)? (back|front) of|is(n't| not)? behind|is(n't| not)?( (in|contained by))?|does(n't| not) contain|contain(s)?|(start|begin|end)(s)? with|((but|end) )?(consider|ignor)ing|prop(erty)?|(a )?ref(erence)?( to)?|repeat (until|while|with)|((end|exit) )?repeat|((else|end) )?if|else|(end )?(script|tell|try)|(on )?error|(put )?into|(of )?(it|me)|its|my|with (timeout( of)?|transaction)|end (timeout|transaction))\b/g,
		    css: 'keyword' },

		{ regex: /\b\d+(st|nd|rd|th)\b/g, // ordinals
		    css: 'keyword' },

		{ regex: /\b(?:about|above|against|around|at|below|beneath|beside|between|by|(apart|aside) from|(instead|out) of|into|on(to)?|over|since|thr(ough|u)|under)\b/g,
		    css: 'special' },

		{ regex: /\b(?:adding folder items to|after receiving|choose( ((remote )?application|color|folder|from list|URL))?|clipboard info|set the clipboard to|(the )?clipboard|entire contents|display(ing| (alert|dialog|mode))?|document( (edited|file|nib name))?|file( (name|type))?|(info )?for|giving up after|(name )?extension|quoted form|return(ed)?|second(?! item)(s)?|list (disks|folder)|text item(s| delimiters)?|(Unicode )?text|(disk )?item(s)?|((current|list) )?view|((container|key) )?window|with (data|icon( (caution|note|stop))?|parameter(s)?|prompt|properties|seed|title)|case|diacriticals|hyphens|numeric strings|punctuation|white space|folder creation|application(s( folder)?| (processes|scripts position|support))?|((desktop )?(pictures )?|(documents|downloads|favorites|home|keychain|library|movies|music|public|scripts|sites|system|users|utilities|workflows) )folder|desktop|Folder Action scripts|font(s| panel)?|help|internet plugins|modem scripts|(system )?preferences|printer descriptions|scripting (additions|components)|shared (documents|libraries)|startup (disk|items)|temporary items|trash|on server|in AppleTalk zone|((as|long|short) )?user name|user (ID|locale)|(with )?password|in (bundle( with identifier)?|directory)|(close|open for) access|read|write( permission)?|(g|s)et eof|using( delimiters)?|starting at|default (answer|button|color|country code|entr(y|ies)|identifiers|items|name|location|script editor)|hidden( answer)?|open(ed| (location|untitled))?|error (handling|reporting)|(do( shell)?|load|run|store) script|administrator privileges|altering line endings|get volume settings|(alert|boot|input|mount|output|set) volume|output muted|(fax|random )?number|round(ing)?|up|down|toward zero|to nearest|as taught in school|system (attribute|info)|((AppleScript( Studio)?|system) )?version|(home )?directory|(IPv4|primary Ethernet) address|CPU (type|speed)|physical memory|time (stamp|to GMT)|replacing|ASCII (character|number)|localized string|from table|offset|summarize|beep|delay|say|(empty|multiple) selections allowed|(of|preferred) type|invisibles|showing( package contents)?|editable URL|(File|FTP|News|Media|Web) [Ss]ervers|Telnet hosts|Directory services|Remote applications|waiting until completion|saving( (in|to))?|path (for|to( (((current|frontmost) )?application|resource))?)|POSIX (file|path)|(background|RGB) color|(OK|cancel) button name|cancel button|button(s)?|cubic ((centi)?met(re|er)s|yards|feet|inches)|square ((kilo)?met(re|er)s|miles|yards|feet)|(centi|kilo)?met(re|er)s|miles|yards|feet|inches|lit(re|er)s|gallons|quarts|(kilo)?grams|ounces|pounds|degrees (Celsius|Fahrenheit|Kelvin)|print( (dialog|settings))?|clos(e(able)?|ing)|(de)?miniaturized|miniaturizable|zoom(ed|able)|attribute run|action (method|property|title)|phone|email|((start|end)ing|home) page|((birth|creation|current|custom|modification) )?date|((((phonetic )?(first|last|middle))|computer|host|maiden|related) |nick)?name|aim|icq|jabber|msn|yahoo|address(es)?|save addressbook|should enable action|city|country( code)?|formatte(r|d address)|(palette )?label|state|street|zip|AIM [Hh]andle(s)?|my card|select(ion| all)?|unsaved|(alpha )?value|entr(y|ies)|group|(ICQ|Jabber|MSN) handle|person|people|company|department|icon image|job title|note|organization|suffix|vcard|url|copies|collating|pages (across|down)|request print time|target( printer)?|((GUI Scripting|Script menu) )?enabled|show Computer scripts|(de)?activated|awake from nib|became (key|main)|call method|of (class|object)|center|clicked toolbar item|closed|for document|exposed|(can )?hide|idle|keyboard (down|up)|event( (number|type))?|launch(ed)?|load (image|movie|nib|sound)|owner|log|mouse (down|dragged|entered|exited|moved|up)|move|column|localization|resource|script|register|drag (info|types)|resigned (active|key|main)|resiz(e(d)?|able)|right mouse (down|dragged|up)|scroll wheel|(at )?index|should (close|open( untitled)?|quit( after last window closed)?|zoom)|((proposed|screen) )?bounds|show(n)?|behind|in front of|size (mode|to fit)|update(d| toolbar item)?|was (hidden|miniaturized)|will (become active|close|finish launching|hide|miniaturize|move|open|quit|(resign )?active|((maximum|minimum|proposed) )?size|show|zoom)|bundle|data source|movie|pasteboard|sound|tool(bar| tip)|(color|open|save) panel|coordinate system|frontmost|main( (bundle|menu|window))?|((services|(excluded from )?windows) )?menu|((executable|frameworks|resource|scripts|shared (frameworks|support)) )?path|(selected item )?identifier|data|content(s| view)?|character(s)?|click count|(command|control|option|shift) key down|context|delta (x|y|z)|key( code)?|location|pressure|unmodified characters|types|(first )?responder|playing|(allowed|selectable) identifiers|allows customization|(auto saves )?configuration|visible|image( name)?|menu form representation|tag|user(-| )defaults|associated file name|(auto|needs) display|current field editor|floating|has (resize indicator|shadow)|hides when deactivated|level|minimized (image|title)|opaque|position|release when closed|sheet|title(d)?)\b/g,
		    css: 'special' },

		{ regex: new RegExp(this.getKeywords(specials), 'gm'), css: 'special' },
		{ regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' },
		{ regex: new RegExp(this.getKeywords(ordinals), 'gm'), css: 'keyword' },

		{ regex: /\b\w+\b/g,
		    css: 'userdef' }
	];
};

SyntaxHighlighter.brushes.AppleScript.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.AppleScript.aliases = ['applescript'];



/* ../../../shared/js/global.js */


/* COOKIES (thx quirksmode) */

function createCookie(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 = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(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;
}

function eraseCookie(name) {
  createCookie(name,"",-1);
}



/* ../../shell/js/site.js */


// ie6 bg image caching
try {
  $.browser.msie && $.browser.version < 7
    && document.execCommand( 'BackgroundImageCache', false, true );
} catch(e) { };

// Debug logging
//debug.setLevel( 0 );

// Disqus remapped URLs.
/*
$.each({
  'http://benalman.com/projects/jquery-outside-events-plugin/': 'http://benalman.com/projects/jquery-clickoutside-plugin/'
}, function( new_url, orig_url ){
  if ( location.href.indexOf( new_url ) === 0 ) {
    window.disqus_url = orig_url;
  }
});
*/

$(function(){
  
  // Rounded borders
  $('.sidebar_body, li.comment, .nav-prev_next').roundBorder(10);
  
  // Email de-obfuscation, take that spammars!
  $('.email-js').emailSpammerize(true);
  
  // Default text on search box
  $('#search').defaultText('robot monkeys');
  
  // Expand inline article flickr photos to be "bigger"
  $('body.type-entry .asset-body .photo img').each(function(){
    var that = $(this),
      src = that.attr( 'src' );
    
    if ( /\.static\.flickr\.com\//i.test( src ) ) {
      that.attr( 'src', src.replace( /_t\.([^$]+)$/i, '_m.$1' ) );
    }
  });
  
  // Do things in the body of project pages.
  $('body.type-entry.category-82 .asset-body').each(function() {
    var project_body = $(this);
    
    // Add AppleScript "open in Script Editor" link.
    project_body.find('pre.brush\\:applescript').each(function(){
      var pre = $(this);

      project_body.find('ul:first').each(function(){
        var href = 'applescript://com.apple.scripteditor?action=new&script='
          + encodeURIComponent( pre.text().replace( /\+/g, '%20' ) );

        $('<li><a/></li>')
          .appendTo( this )
          .prepend( 'Open this AppleScript in Script Editor by clicking ' )
          .find('a')
            .text( $('h1').text() )
            .attr( 'href', href );
        
        $('.applescript-open').wrapInner('<a href="' + href + '"/>');
        
      });
    });
    
    /*
    // This was BarelyFitz's idea, let's give it a shot. All links in the first
    // UL on a project page that have a target set will now alert when clicked.
    // Begging will only happen once per page.
    var demeaned_myself_yet;
    
    //project_body.find('ul:first a').live( 'click', function(e){
    $('body.type-entry.category-82 .asset-body ul:first a').live( 'click', function(e){
      var a = $(e.target),
        href = a.attr( 'href' ),
        beg_worthy = /(?:^(?:applescript:)|github\.com)/.test( href );
      
      if ( !demeaned_myself_yet && beg_worthy ) {
        demeaned_myself_yet = true;
        alert( 'Please consider a donation if you find this open-source software useful!' );
      }
    });
    */
    
  });
  
  // Update links ending in #disqus_thread with the proper Disqus comments count.
  var params = {},
    disqus_comment_links = $('a[href$=#disqus_thread]');
  
  if ( disqus_comment_links.length ) {
    disqus_comment_links.each(function(i){
      params[ 'url' + i ] = $(this).attr( 'href' );
    });
    
    // Fetch the Disqus "comments" script.
    $.getScript( $.param.querystring( 'http://disqus.com/forums/benalman/get_num_replies.js', params ), function(){
      
      // For my site, I need to shorten the Disqus text if the link is
      // inside a ul.entries container.
      disqus_comment_links.each(function(){
        var link = $(this),
          txt = link.text();
        
        if ( link.closest( 'ul.entries' ).length ) {
          link.attr( 'title', txt );
          link.text( txt.replace( / .*$/, '' ) );
        }
      });
    });
  }
  
  // Fix Disqus craptacular markup.
  $('#disqus_thread').doTimeout( 250, function(){
    var that = $(this),
      html = that.html(),
      comment,
      comments,
      data;
    
    // Get element data store.
    that.data( 'disqus', data = that.data( 'disqus' ) || {} );
    
    // Only if HTML has changed and it's reaady to be adjusted.
    if ( html !== data.html && ( comments = that.find( '.dsq-comment .dsq-comment-message' ) ).length ) {
      
      comments.each(function(){
        var that = $(this),
          html;
        
        if ( !that.children('.dsq-comment-message-replaced').length ) {
          that.wrapInner( '<div class="dsq-comment-message-replaced"/>' );
          
          // Unescape HTML tags that shouldn't be escaped.
          html = that.html();
          html = html.replace( /&lt;(\/?(?:ul|ol|li))&gt;/gi, '<$1>' );
          that.html( html );
          
          that.find('ul, ol')
            // Remove any <BR> tags that are direct children of <UL> or <OL>.
            .children('br')
              .remove()
              .end()
            // Remove any <BR> tags directly preceding a <UL> or <OL> or <P>.
            .add( 'p' )
              .prevUntil( ':not(br)', 'br' )
                .remove();
          
          // Unwrap any <P> text followed by a <BR>.
          that.find('p + br').each(function() {
            var p = $(this).prev();
            p.replaceWith( p.html() );
          });
          
          // Unwrap last-child <P> text.
          that.find('p:last-child').each(function() {
            var p = $(this);
            p.replaceWith( p.html() );
          });
          
          // Find all <PRE>
          that.find('pre')
            // Convert <BR> to \n
            .each(function() {
              var pre = $(this);
              pre.html( pre.html().replace( /<br>/gi, "\n" ) );
            })
            // Remove any <BR> immediately following <PRE>
            .next( 'br' )
              .remove();
        }
      });
      
      // Syntax highlighter.
      SyntaxHighlighter.highlight();
      
      // Attempt to work around WebKit's inability to stay scrolled to a
      // location.hash comment ID element on page load (most likely due to
      // the Iframe). As soon as Disqus HTML has rendered, if location.hash
      // has a Disqus comment reference..
      if ( html !== '' && !data.scroll && /^#comment-\d+$/.test( location.hash ) ) {
        
        // Find that comment, if possible.
        comment = that.find( location.hash );
        
        // Scroll to that comment, if found.
        if ( comment.length ) {
          // Only the first time!
          data.scroll = true;
          
          // Delay an arbitrary time. This works, sometimes. Suck.
          $.doTimeout( 500, function(){
            $('body').scrollTop( comment.offset().top );
          })
        }
      }
      
      data.html = html;
    }
    
    // Poll.
    return true;
  });
  
  // Syntax highlighter.
  SyntaxHighlighter.highlight();
  
  // Open external links in a new window.
  $.urlInternalHost( 'stage' );
  $('a:urlExternal:not([target])').attr( 'target', 'benalman2' );
  
  // Hide Captcha box before comment is previewed.
  //$('body.comment').length || $('body').addClass( 'hide-captcha' );

  // /photo/ links on the /photo/ page
  /*
  if ( document.location.pathname === '/photo/' ) {
    $('a:urlInternal').each(function(){
      var that = $(this),
        url = that.attr( 'href' );
      
      if ( /\/photo\/?$/.test( url ) ) {
        that.fragment( '' );
      }
    });
  }
  */
  
  // SoundCloud
  
  $('.soundcloud').each(function(){
    var that = $(this),
      url = that.find('a').attr( 'href' ),
      height = /\/(?:sets|groups)\//i.test( url ) ? 185 : 81,
      params = {
        url: url, 
        show_comments: false, 
        auto_play: false, 
        show_playcount: true,
        show_artwork: true,
        color: 'ff7700'
      };
    
    that.empty().flash({
      swf: $.param.querystring( 'http://player.soundcloud.com/player.swf', params ),
      width: '100%',
      height: height
    });
    
  });
  
});

// ========================================================================== //
// FORM BUTTONS
// ========================================================================== //

$(function(){
  
  $('#comment-preview, #comment-submit, #comment-cancel, .button-search')
    .each(function(){
      var that = $(this).hide();
      var val = ( that.val() || that.text() ).toLowerCase();
      $('<a href="#"/>')
        .html(that.val() + '<span class="bgfx1">&nbsp;</span>')
        .addClass('bgfx button-img button-' + val)
        .bind('disable', function(){
          $(this)
            .addClass('button-disabled button-' + val + '-disabled')
            .data('disabled', true);
        })
        .bind('enable', function(){
          $(this)
            .removeClass('button-disabled button-' + val + '-disabled')
            .removeData('disabled');
        })
        .click(function(){
          if (!$(this).data('disabled')) {
            that.click();
          }
          $(this).blur();
          return false;
        })
        .insertAfter( that );
    });
  
  $('<div class="clear"/>').appendTo('#comments-open-footer');
  
  if (!is_preview) {
    var pw_count = 0;
    $('a.button-submit')
      .click(function(){
        if (++pw_count > 2) { pw_count = 0; }
        $('.preview-warn').attr('class' , 'preview-warn preview-warn-' + pw_count);
        return false;
      })
      .trigger('disable');
  }
  
});

// ========================================================================== //
// SIDEBAR POSITIONING
// ========================================================================== //

$(function(){
  
  var sidebar = $('#content_body1-inner'),
    sidebar_top = sidebar.offset().top,
    timeout_id;
  
  function set_position() {
    clearTimeout( timeout_id );
    
    var window_height = $(window).height(),
      v_top = document.documentElement.scrollTop || document.body.scrollTop,
      sidebar_height = sidebar.outerHeight();
    
    if ( window_height > sidebar_top + sidebar_height ) {
      sidebar
        .css({ top: sidebar_top })
        .addClass( 'fixed' )
        .iff( sidebar.css( 'position' ) != 'fixed' )
          .css({ top: sidebar_top + v_top });
    } else {
      sidebar
        .removeClass( 'fixed' )
        .css({ top: sidebar_top });
    }
    
    timeout_id = setTimeout( arguments.callee, 250 );
  }
  
  $(window)
    .scroll(set_position)
    .resize(set_position);
  
  set_position();
});

// ========================================================================== //
// TOOLTIPS
// ========================================================================== //

$(function(){
  
  // Create a new tooltip from an existing element.
  $.fn.createTooltip = function( relativeTo ) {
    return $( ''
        + '<div class="tooltip">'
        + '  <div class="tooltip-inner">'
        + '    <div class="sidebar_body">'
        + '      <div class="tooltip-body"/>'
        + '      <div class="tooltip-shim"/>'
        + '    </div>'
        + '  </div>'
        + '  <div class="tooltip-caret"/>'
        + '</div>'
      )
      .find( '.tooltip-body' )
        .html( this.eq(0) )
        .end()
      
      .data( 'relativeTo', relativeTo )
      .hide()
      .appendTo( '#content_body1' )
      
      .find( 'div.box' )
        .roundBorder( 10 )
        .end()
      .find( '.sidebar_body' )
        .roundBorder( 10 )
        .end();
  };
  
  // Create a new, empty tooltip.
  $.createTooltip = function( relativeTo ) {
    return $( ''
        + '<div>'
        + '  <div class="loading"/>'
        + '</div>'
      )
      .createTooltip( relativeTo );
  };
  
  // Update an existing tooltip.
  $.fn.updateTooltip = function( html ) {
    var set_pos,
      that = this.eq(0);
    
    if ( html ) {
      that
        .find( '.tooltip-body' )
        .html( html )
        .find( 'div.box' )
          .roundBorder( 10 );
    }
    
    (set_pos = function(){
      var y_pos = that.data('relativeTo');
      if (y_pos !== undefined) {
        var v_pad = 5;
        var tt_pad = 32;
        
        var v_top = $('html').scrollTop() || document.body.scrollTop; // webkit
        var v_bot = v_top + $(window).height();
        var tt_h = that.outerHeight();
        var c_off, c_pos = 0;
        
        if (y_pos.length) {
          y_pos = y_pos.offset().top + (y_pos.outerHeight() / 2);
        }
        
        y_pos -= tt_h / 2;
        
        if ((c_off = y_pos - v_top) < v_pad) {
          y_pos = v_top + v_pad;
          c_pos = Math.max((tt_pad - tt_h) / 2, c_off - v_pad);
        } else if ((c_off = y_pos + tt_h - v_bot) > v_pad) {
          y_pos = v_bot - tt_h - v_pad;
          c_pos = Math.min((tt_h - tt_pad) / 2, c_off + v_pad);
        }
        
        that
          .css({ top: y_pos })
          .find('.tooltip-caret')
            .height(tt_h)           // ie
            .css({ top: c_pos });
      }
    })();
    setTimeout(set_pos, 0); // ie
    
    return this;
  };
  
  // ie and chrome don't like to fade transparent pngs
  if ( $.browser.msie || navigator.userAgent.match('Chrome') ) {
    $('body').addClass( 'nopngshadow' );
  }
  
  // init tooltip event handlers
  $.showOne('tooltip', 250, function(){
    $('body')
      .addClass('tooltip')
    
    $(this)
      .updateTooltip()
      .css({ left: '-5px', right: '5px', opacity: 0 })
      .show()
      .stop()
      .animate({ left: 0, right: 0, opacity: 1 }, 'fast', function(){
        $('body').addClass('tooltip');
      });
    
  }, function(last){
    if (last) {
      $(this)
        .show()
        .stop()
        .animate({ left: '5px', right: '-5px', opacity: 0 }, 'fast', function(){
          $(this).hide();
          if (!last.length) {
            $('body').removeClass('tooltip');
          }
        });
    } else {
      $(this)
        .stop()
        .hide();
    }
  });
  
  // probably unnecessary, but i'm a completist
  $(window).scroll(function(){
    $.showOne.getCurrent('tooltip').updateTooltip();
  });
  
  // portfolio tooltips
  $('.portfolio .project').each(function(){
    var that = $(this), tooltip;
    that.hover(
      function(){
        that.addClass('project-hover');
        var project = that.closest('.project');
        if (!tooltip && project.find('.description').length) {
          tooltip = project.find('.description')
            .prepend('<h4/>')
            .find('h4')
              .html(project.find('dt').html())
              .append(' (')
              .append(project.find('span.year'))
              .append(')')
            .end()
            .createTooltip(that);
        }
        tooltip && tooltip.showOne('tooltip');
      },
      function(){
        that.removeClass('project-hover');
        tooltip && tooltip.showOne('tooltip', false);
      }
    );
  });
  
  
  // Flickr tooltips (this is a mess right now and will be cleaned up soon)
  
  $.flickr.defaultParams({
    api_key: '7da14e8ed41b36e2a5bdba1993480300',
    user_id: '8395214@N06'
  });
  
  $.flickr.photoHover(
    function(){
      var that = $(this), tooltip = that.data('gFlickr-tt');
      if (!tooltip) {
        that.data('gFlickr-tt', tooltip = $.createTooltip(that));
      }
      tooltip && tooltip.showOne( 'tooltip', true, true );
    },
    function(data){
      debug.log( data );
      var that = $(this), tooltip = that.data('gFlickr-tt');
      var html = flickr_tooltip_html(data, that);
      tooltip && tooltip.updateTooltip(html).data('gFlickr-photo_id', data.photo.id);
    },
    function(){
      var that = $(this), tooltip = that.data('gFlickr-tt');
      tooltip && tooltip.showOne('tooltip', false, 2000);
    }
  );
  
  function pretty_date( d, is_title ) {
    var pretty,
      granularity = typeof d === 'string'
        ? d.split('-').length
        : 3,
      str = {
        month: 'January February March April May June July August September October November December'.split(' '),
        day: 'Sunday Monday Tuesday Wednesday Thursday Friday Saturday'.split(' '),
        date: [
          'in {year}',
          'in {month} {year}', 
          'on {day}, {month} {date}, {year}',
          '{day}, {month} {date}, {year}'
        ]
      };
    
    d = $.flickr.getDate( d );
    
    pretty = str['date'][ is_title ? 3 : granularity - 1 ]
      .replace( /{year}/g,  d.getFullYear() )
      .replace( /{month}/g, str['month'][d.getMonth()] )
      .replace( /{day}/g,   str['day'][d.getDay()] )
      .replace( /{date}/g,  d.getDate() );
    
    return pretty;
  };
  
  function flickr_tooltip_html(data, elem) {
    debug.log(data);
    var photo = data.photo;
    
    var photo_url = '/photo/' + photo.id + '/';
    
    var html = $('<div/>');
    
    var photoset = elem.closest( '.photoset' );
    if ( !elem.closest( '.selected_photo' ).length ) {
      html.append( $('<h4/>').append(photo.title._content) );
      
      var p = photo.description._content.split(/[\r\n]+/)
      html.append('<p>' + p.join('</p><p>') + '</p>');
    }
    
    var can_interact = !elem.closest( '.flickr_ajax.page' ).length;
    
    var dl = $('<dl/>');
    function dl_add(dt, dd) {
      dl.append('<dt>' + dt + ':</dt><dd>' + dd + '</dd>');
    }
    
    dl_add('By', photo.owner.username);
    
    var taken = $.flickr.getDate(photo.dates.taken);
    dl_add('Taken', '<a href="' + photo_url + 'in/taken-on-' + $.flickr.getYYYY_MM_DD(taken) + '/">' + pretty_date(taken, 1) + '</a>');
    
    var posted = $.flickr.getDate(photo.dates.posted);
    dl_add('Posted', '<a href="' + photo_url + 'in/posted-on-' + $.flickr.getYYYY_MM_DD(posted) + '/">' + pretty_date(posted, 1) + '</a>');
    
    if (data.set) {
      for (var i = 0, set, sets = []; i < data.set.length; i++) {
        set = data.set[i];
        sets.push('<a href="' + photo_url + 'in/set-' + set.id + '/">' + set.title + '</a>');
      }
      dl_add('Sets', sets.join(', '));
    }
    
    for (var i = 0, tag, tags = []; i < photo.tags.tag.length; i++) {
      tag = photo.tags.tag[i];
      tags.push('<a href="' + photo_url + 'in/tag-' + tag._content + '/">' + tag.raw + '</a>');
    }
    dl_add('Tags', tags.join(', '));
    
    if (photo.comments._content !== '0') {
      dl_add('Comments', photo.comments._content);
    }
    
    if (photo.notes.note.length) {
      dl_add('Notes', photo.notes.note.length);
    }
    
    html.append(dl);
    html.find('dl').wrap('<div class="box"/>');
    html.find('dl dd:not(:last)').append('<div class="shim"/>');
    
    if ( can_interact ) {
      dl.after('<div class="meta">Click on links for related photos.</div>');
    } else {
      html.addClass( 'no_links' );
    }
    
    debug.log( html );
    return html;
  };
  
});

// ========================================================================== //
// PORTFOLIO
// ========================================================================== //

function portfolio_draw_flash(swf, w, h, bgcolor) {
  var params = {}, flashvars = {}, attributes = {};
  
  params = {
    base: swf.replace(/(.*)[/].*/, '$1'),
    scale: 'noscale',
    menu: 'none'
  };
  
  var qs = $.deparam.querystring();
  
  for (var p in qs) {
    flashvars[p] = qs[p];
  }
  
  if (qs.X_id) {
    flashvars.id = qs.X_id;
  }
  
  attributes.bgcolor = bgcolor;
  attributes.id = 'flash_movie_swf';
  
  swfobject.embedSWF(swf, 'flash_movie', w, h, '8', null, flashvars, params, attributes);
}

/*function popup(id, w, h) {
  alert(id);
}*/


// ========================================================================== //
// TWITTER (HOME PAGE)
// ========================================================================== //

$(function(){
  var elem = $('#recent-tweets');
  if ( !elem.length ) { return; }
  
  var is_home = $('body.type-home').length;
  
  getTwitters('recent-tweets', { 
    id: 'cowboy',
    count: is_home ? 5 : 15,
    enableLinks: true,
    ignoreReplies: true,
    newwindow: true,
    template: '<div class="text">%text%</div> <div class="meta"><a href="http://twitter.com/%user_screen_name%/statuses/%id%/">%time%</a></div>',
    callback: function(){
      $( is_home ? '<h2/>' : '<h3/>' ).html('Recent <span class="normal">Tweets</span>').prependTo( elem );
      is_home && $('<div class="more more-twitter"><a href="http://twitter.com/cowboy" target="_blank">Follow @cowboy on Twitter</a></div>').appendTo( elem );
      elem.find( 'li' ).addClass( 'icon icon-twitter' );
      elem.find( 'li:not(:first)' ).addClass( 'border' );
    }
  });
  
  
});