

var _$elemCache = new Object();
function $(id, reload) {if(!_$elemCache[id]||reload){var e = document.getElementById(id);_$elemCache[id] = e;return e;} else return _$elemCache[id];}
function x$(id){_$elemCache[id]=null;}
function $$(id){return $(id,true)}
function _pos(e,m){e=_c(e);if(!m)m={x:0,y:0};var x=0,y=0;while(e){x+=e.offsetLeft;y+=e.offsetTop;try{e=e.offsetParent;}catch(ex){e=null;}}return{x:x+m.x,y:y+m.y};}
function _modpos(p,t) {return {x:p.x+t.x,y:p.y+t.y};}
function _cpos(d) {var vp = _vp();return {x:((vp.w/2)-((d.w)/2)+vp.x), y:((vp.h/2)-((d.h)/2)+vp.y),w:d.w,h:d.h};}
function _dim(e){e=_c(e);return (!e||!e.offsetWidth)?{w:0,h:0}:{w:e.offsetWidth,h:e.offsetHeight};};
function _absolute(e){e=_c(e);if(e.style.position=='absolute')return;var p=_pos(e);var w=e.clientWidth;var h=e.clientHeight;e.style.position='absolute';e.style.left=(document.all?p.x+1:p.x)+'px';e.style.top=(document.all?p.y+1:p.y)+'px';}

/* Object convenience */
function _inject(d,s){for(var p in s)d[p]=s[p];return d;}
function _extend(d,s){for(var p in s)if(!d[p])d[p]=s[p];return d;}

var $obj = _inject(new Object(),{
	count: 0,
	ects: new Object(),
	timeout: function(o,f,t){var id=$chr.fromNum(this.count++);this.ects[id]=o;setTimeout('$obj.cb("'+id+'","'+f+'")',t);},
	cb:  function(i,f){var o=$obj.ects[i];if(o!=null){o[f]();this.ects[i]=null;}}
});

var $try = _inject(new Object(),{these: function(){for(var i=0,a=arguments;i<a.length;i++){try{return(a[i])();}catch(e){}}return null;}});

var $chr = _inject(new Object(),{
	chrs:'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',
	fromNum: function(n){return this.base(n,10)},
	toNum: function(s){return this.from(s,10)},
	base: function(n,b){var s='';while(n>=b){s=this.chrs.charAt(n%b)+s;n=Math.floor(n/b);}return this.chrs.charAt(n)+s;},
	from: function(s,b){if(!this.revc){this.revc=new Object();for(var i=0;i<this.chrs.length;i++)this.revc[this.chrs.charAt(i)]=i;}
		var r=0,i=0;for(var p=0;i=s.length-p-1,p<s.length;p++)r+=this.revc[s.charAt(p)]*(i>0?Math.pow(b,i):1);return r;
	},
	guid: function(){return this.base(new Date().getTime(),62)+$rnd.str(8);}
});

var $rnd = _inject(new Object(),{
	num: function(x,y){return(Math.floor(Math.random()*(y-x)))+x;},
	str: function(len){var s='';while(s.length<len)s+=$chr.chrs.charAt(this.num(0,62));return s;}
});

/* misc? */
function _time(){return(new Date()).getTime();}

/* Collections */
var $a = {
	add: function(a,o){a[a.length]=o;},
	addAll: function(a,a2){if(a)for(var i=0;i<a2.length;i++)a[a.length]=a2[i];},
	insert: function(a,p,o) {if(p<0)p=0;if(p>a.length)p=a.length;for(var i=a.length;i>p;i--)a[i]=a[i-1];a[p]=o;},
	removeAt: function(a,p) {if(p==-1||!a||a.length<=0)return null;var tmp=a[p];for(var i=p+1;i<a.length;i++)a[i-1]=a[i];a.length=a.length-1;return tmp;},
	remove: function(a,o) {return $a.removeAt(a,$a.indexOf(a,o));},
	indexOf: function(a,tst) {for(var i=0;i<a.length;i++)if(a[i]==tst)return i;return -1;},
	call: function(a,f){if(a&&a.length>0)for(var i in a)f(a[i]);},
	runAll: function(a,f) {for(var i=0;i<a.length;i++)f(a[i])}
}


/* ajax */
var $ajax= _inject(new Object(),{
	handlers: ['','onLoading','onLoaded','onInteractive','onComplete'],
	jsonGet: function(u,ha,he){if(!ha.jcb){ha.jcb=ha.callback;ha.callback=function(c){var s=c.responseText; this.jcb(s && s.length>0? $json.parse(s):"")}};this.get(u,ha,he);},
	jsonPost: function(u,d,ha,he){if(!ha.jcb){ha.jcb=ha.callback;ha.callback=function(c){var s=c.responseText; this.jcb(s && s.length>0? $json.parse(s):"")}};this.post(u,$json.toString(d),ha,he);},
	get: function(u,ha,he){return $xhr.doRequest('GET',this.wipeIEsButt(u),'',he,ha);},
	post: function(u,d,ha,he){return $xhr.doRequest('POST',this.wipeIEsButt(u),d,he,ha);},
	successCode: function(r){return r.status==undefined||r.status==0||(r.status>=200&&r.status<300);},
	wipeIEsButt: function(u){var tmp=document.location +'';return tmp.substring(0,tmp.indexOf('/',10))+u;},

	count: 1,
	asy: new Object(),
	prime: function(o){var id=$chr.fromNum(this.count++);this.asy[id]=o;return id;},
	callback: function(id,c){if(o=this.asy[id]){o.callback(c);this.asy[id]=null;}},
	newId: function(){return $chr.fromNum(this.count++);},
	handle: function(i,h,c){return $try.these(function(){h[this.handlers[i]](c);})},
	error: function(h,e,c,i){return $try.these(function(){h['onException'](e,c,i);})}
});



var $xhr = {
ti:[],
testInject: function(us,fr) {this.ti[$ajax.wipeIEsButt(us)] = fr;},
transport:null,
getHTTP: function(){
	return $try.these(
		function(){ return new XMLHttpRequest() },
		function(){ return new ActiveXObject("Msxml2.XMLHTTP") },
		function(){ return new ActiveXObject("MSXML2.XMLHTTP") },
		function(){ return new ActiveXObject("microsoft.XMLHTTP") },
		function(){ return new ActiveXObject("Microsoft.XMLHTTP") },
		function(){ return new ActiveXObject("Msxml2.XMLHTTP.4.0") },
		function(){ return new ActiveXObject("MSXML2.XMLHTTP.4.0") },
		function(){ return new ASVRequest() });
},
doRequest: function(m,u,d,he,ha) {
	if (this.ti[u]) {ha.callback({responseText:this.ti[u](u,d,he,ha)});return;}
	he=(he!=null)?he:[];
	var async=(ha&&ha.callback);
	var id=$ajax.prime(ha);
	var c=this.getHTTP();

	// open the connection first to retain the session properly
	try{c.open(m,u,async);} catch(e){ $ajax.error(ha, e, c,-1); return null; }
	if(ha) {
		c.onreadystatechange =function(){
			if(c.readyState>0)$ajax.handle(c.readyState,ha,c);
			if (c.readyState==4) {
				$ajax.callback(id,c);
				/* Avoid memory leak in MSIE: clean up the oncomplete event handler */
				c.onreadystatechange = function(){};
				c=null;
			}
		}
	}

	for(var i=0;i<he.length;i++){c.setRequestHeader(he[i][0], he[i][1]);}
	c.setRequestHeader('x-ajax-reqid', $ajax.newId());
	if (m=='POST') {
		c.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
		// mozilla can chop two chars, so adding two spaces to the post
		d += "  ";
	}
	try {c.send(d);} catch(e){$ajax.error(ha,e,c,-1);}
	return c;
}}



function _vp() {
        var w=window,d=document;
        var ox=0,oy=0;
        if(typeof(w.pageYOffset)=='number') {
                //Netscape compliant
                oy = w.pageYOffset;
                ox = w.pageXOffset;
        } else if( d.body && ( d.body.scrollLeft || d.body.scrollTop ) ) {
                //DOM compliant
                oy = d.body.scrollTop;
                ox = d.body.scrollLeft;
        } else if( d.documentElement && ( d.documentElement.scrollLeft || d.documentElement.scrollTop ) ) {
                //IE6 standards compliant mode
                oy = d.documentElement.scrollTop;
                ox = d.documentElement.scrollLeft;
        }

        return {w:(w.innerWidth || (d.documentElement.clientWidth || d.body.clientWidth)),
                        h:(w.innerHeight || (d.documentElement.clientHeight || d.body.clientHeight)),
                        x:ox,y:oy};
}


function _create(id, cname) {
	var e = document.createElement('div');
	_absolute(e);
	_hide(e);
	if (cname) {e.className = cname;}
	if (id) {e.id = id;}
	document.body.insertBefore(e,document.body.childNodes[0]);
	return e;
}





var vp = _vp();
document.writeln('<style type="text/css">\n'
+ 'a.stickmen {text-decoration:none;color:#005;}\n'
+ 'a.stickmen:hover {text-decoration:underline;color:#005;}\n'
+ 'a.stickmen:visited {text-decoration:none;color:#005;}\n'
+ '.stickmen {color:#005;padding-left:20px;padding-right:20px;} \n</style>');
document.writeln('<div style="position:absolute;top:165px;left:' + ((vp.w/2)-491) + 'px;z-index:2000;text-align:center;width:967px;height:45px;'
+ 'background-image:url(http://keyboardmonkey.com/therightstick/menu-backing.jpg);"><table width=967 height=45 cellpadding=0 cellspacing=0><tr><td '
+ 'valign=middel align=center style="font-size:17px;color:#005">'
+ '<a href="http://keyboardmonkey.com/therightstick/huh.html" class="stickmen">HUH?</a>'
+ '<a href="http://therightstick.com/categories/Podcast.aspx" class="stickmen">EPISODE GUIDE</a>'
+ '<a href="http://therightstick.com/categories/coolstuff.aspx" class="stickmen">COOL STUFF</a>'
+ '<a href="http://keyboardmonkey.com/therightstick/hosts.html" class="stickmen">THE HOSTS</a>'
+ '</td></tr></table></div>');

function endsWith(v,s) {
        if (!v || !s || v.length == 0 || s.length == 0) return false;
        return v.length == v.indexOf(s) + s.length;
}

var loc = document.location + '';
var isBlog = null;

if (endsWith(loc, '/theKM.aspx')) {
  isBlog = 'thekm';
}
if (endsWith(loc, '/Tram.aspx')) {
  isBlog = 'tram';
}

var linkers = {};

window.onload = function() {
  if (isBlog) {

var divs = document.getElementsByTagName("DIV");
for (i in divs) {
  if (divs[i].className == 'sf_blog_content') {
    var dee = document.createElement("div");
    dee.innerHTML = isBlog == 'tram' ? 'TRAM\s BLOG' : 'theKM\s BLOG';
    divs[i].insertBefore(dee, divs[i].childNodes[0]);
    break;
  }
}



    for (i in document.links) {
      var lnk = document.links[i];
      if (lnk.parentNode && lnk.parentNode.className == 'sf_blog_posttitle') {
        var h = lnk.href;
        h = h.substring(h.indexOf('/',8));
        linkers[h] = lnk;
        lnk.href = 'javascript:blogLink("' + h + '");';
      }
    }
  }
}

var toke1 = '<div class="sf_blog_post single-post">';
var toke2 = '<div id="divline">';
function blogLink(lnk) {
//  alert(lnk + '\n' + linkers[lnk]);
  $ajax.get(lnk,{anch:linkers[lnk],callback:function (c) {
    var t = c.responseText;
//    alert(t);
    var p1 = t.indexOf(toke1);
    var p2 = t.indexOf(toke2,p1);
    t = t.substring(p1 + toke1.length, p2);
    t = t.substring(0, t.lastIndexOf('</div>') + '</div>'.length);
    this.anch.parentNode.parentNode.innerHTML = t;
  }});
}

      function getElementsByClassName(classname, node) {
      if(!node) node = document.getElementsByTagName("body")[0];
      var a = [];
      var re = new RegExp('\\b' + classname + '\\b');
      var els = node.getElementsByTagName("*");
      for(var i=0,j=els.length; i<j; i++)
      if(re.test(els[i].className))a.push(els[i]);
      return a;
      }

function preBlog(e) {
	var d = document.createElement('div');
	e.insertBefore(d,e.childNodes[0]);
	d.innerHTML = '' //<a href="http://therightstick.com/2009/05/06/episode-13.aspx"><img src="http://keyboardmonkey.com/therightstick/contest-edge.jpg" border=0></a><br>'
                + '<a href="http://therightstick.com/2009/07/06/episode-15.aspx"><img src="http://keyboardmonkey.com/therightstick/current-jesky.jpg" border=0></a><br>'
//                + '<img src="http://keyboardmonkey.com/therightstick/coming-jesky.jpg" border=0 style="position:relative;top:-10px;"><br>'
//		+ '<img src="http://keyboardmonkey.com/therightstick/stick-line.gif"><br>'
//		+'<a href="http://therightstick.com/2009/04/01/episode-11.aspx" target="offsite"><img src="http://keyboardmonkey.com/therightstick/current-episode11.jpg" border=0></a><br>'
//		+'<img src="http://keyboardmonkey.com/therightstick/stick-line.gif"><br><br>'
                +'<img src="http://keyboardmonkey.com/therightstick/stick-line.gif">';
}
function launchPreBlog() {
	var es = getElementsByClassName('sf_blog_content');
	if (!es || es.length <= 0) setTimeout(launchPreBlog,100);
	else preBlog(es[0]);
}

var loc = document.location + '';
if (loc.indexOf('/huh.') < 0 && loc.indexOf('/hosts.') < 0) launchPreBlog();
//if (loc.indexOf('/huh.') < 0 && loc.indexOf('/hosts.') < 0 && loc.indexOf('episode-10.') < 0) launchPreBlog();



var h = getElementsByClassName('customheader')[0];
h.parentNode.removeChild(h);
var li = getElementsByClassName('listitemcontent')[0];
li.className = '';
li.innerHTML = '<center><br><a href="javascript:window.open(\'http://www.therightstick.com/MediaPlayers/player.aspx?mediaid=0\',\'_player\', \'height=320,width=530,status=no,scrollbars=no,toolbar=no,menubar=no,location=no\'); window.location.top=window.location.top;"><img src="http://keyboardmonkey.com/therightstick/player-button.jpg" border=0></a>(will launch a flash player with complete playlist of episodes)</center>';

        //var di = document.createElement('div');

       // li.insertBefore(di,li.childNodes[0]);
       // di.innerHTML = '<img src="http://keyboardmonkey.com/therightstick/now-playing.gif" border=0 align=center>';
getElementsByClassName('sf_blog_extra1')[0].innerHTML = '<span style="padding-left:25px;line-height:25px;letter-spacing:1px;color:#999">podcast (internet radio) for the radio control enthusiast</span>';

