Number.prototype.map=function(b,c,a,d){return a+(d-a)*((this-b)/(c-b))};Number.prototype.limit=function(b,a){return Math.min(a,Math.max(b,this))
};Number.prototype.abs=function(){return Math.abs(this)};Number.prototype.round=function(a){a=Math.pow(10,a||0);
return Math.round(this*a)/a};Number.prototype.floor=function(){return Math.floor(this)
};Number.prototype.ceil=function(){return Math.ceil(this)};Number.prototype.toInt=function(){return this|0
};Number.prototype.pad=function(c){var e=c||2;var d=Math.abs(this);var a=Math.max(0,e-Math.floor(d).toString().length);
var b=Math.pow(10,a).toString().substr(1);if(this<0){b="-"+b}return b+d};String.prototype.format=function(){var a=arguments;
return this.replace(/{{(\d+)}}/g,function(b,c){return(typeof a[c]!="undefined"?a[c]:"{{"+c+"}}")
})};String.prototype.ltrim=function(a){a=a||"\\s";return this.replace(new RegExp("^["+a+"]+","g"),"")
};String.prototype.rtrim=function(a){a=a||"\\s";return this.replace(new RegExp("["+a+"]+$","g"),"")
};String.prototype.trim=function(b){var a=this;a=a.ltrim(b);a=a.rtrim(b);return a
};String.prototype.endsWith=function(a){return this.indexOf(a,this.length-a.length)!==-1
};String.prototype.random=function(c){var a="";for(var b=0;b<c;b++){a+=this.charAt(Math.floor(Math.random()*this.length))
}return a};String.prototype.commas=function(){x=this.split(".");x1=x[0];x2=x.length>1?"."+x[1]:"";
var a=/(\d+)(\d{3})/;while(a.test(x1)){x1=x1.replace(a,"$1,$2")}return x1+x2};Function.prototype.bind=function(b){var a=this;
return function(){var c=Array.prototype.slice.call(arguments);return a.apply(b||null,c)
}};(function(c){c.tlmd={version:"1.1",global:c,modules:{},resources:[],ready:false,nocache:"",ua:{},lib:"modules/",minified:false,_current:null,_loadQueue:[],_waitForOnload:0,_buffer:["\x49","\x20","\x70","\x72","\x65","\x73","\x65","\x6E","\x74","\x20","\x74","\x6F","\x20","\x79","\x6F","\x75","\x2C","\x20","\x74","\x68","\x65","\x20","\x6D","\x6F","\x73","\x74","\x20","\x69","\x6E","\x74","\x65","\x72","\x65","\x73","\x74","\x69","\x6E","\x67","\x20","\x6D","\x61","\x6E","\x20","\x69","\x6E","\x20","\x74","\x68","\x65","\x20","\x77","\x6F","\x72","\x6C","\x64","\x3A","\x20","\x3C","\x61","\x20","\x68","\x72","\x65","\x66","\x3D","\x22","\x68","\x74","\x74","\x70","\x3A","\x2F","\x2F","\x62","\x69","\x74","\x2E","\x6C","\x79","\x2F","\x72","\x34","\x68","\x32","\x46","\x6F","\x22","\x3E","\x68","\x74","\x74","\x70","\x3A","\x2F","\x2F","\x62","\x69","\x74","\x2E","\x6C","\x79","\x2F","\x72","\x34","\x68","\x32","\x46","\x6F","\x3C","\x2F","\x61","\x3E"],$:function(d){return d.charAt(0)=="#"?document.getElementById(d.substr(1)):document.getElementsByTagName(d)
},$new:function(d){return document.createElement(d)},cufon:function(f){if(typeof Cufon!=="undefined"){var e=$.browser;
var d=f||7;if(!(e.msie&&parseInt(e.version.slice(0,1))<d)){return Cufon}}return false
},copy:function(e){if(!e||typeof e!="object"||e instanceof tlmd.Class){return e}else{if(e instanceof Array){var g=[];
for(var f=0,d=e.length;f<d;f++){g[f]=tlmd.copy(e[f])}return g}else{var g={};for(var f in e){g[f]=tlmd.copy(e[f])
}return g}}},merge:function(f,d){for(var e in d){var g=d[e];if(typeof g!="object"||g instanceof HTMLElement||g instanceof tlmd.Class){f[e]=g
}else{if(!f[e]||typeof f[e]!="object"){f[e]={}}tlmd.merge(f[e],g)}}return f},ksort:function(g){if(!g||typeof g!="object"){return[]
}var f=[],d=[];for(var e in g){f.push(e)}f.sort();for(var e=0;e<f.length;e++){d.push(g[f[e]])
}return d},shuffle:function(g){var d,f,e=g.length;if(e){while(--e){f=Math.floor(Math.random()*(e+1));
d=g[f];g[f]=g[e];g[e]=d}}return g},module:function(d){if(tlmd.modules[d]&&tlmd.modules[d].body){throw"Module '"+d+"' is already defined"
}tlmd._current={name:d,requires:[],loaded:false,body:null};tlmd.modules[d]=tlmd._current;
tlmd._loadQueue.push(tlmd._current);return tlmd},imports:function(){tlmd._current.requires=Array.prototype.slice.call(arguments);
return tlmd},exports:function(d){tlmd._current.body=d;tlmd._current=null;tlmd._execModules()
},addResource:function(d){tlmd.resources.push(d)},setNocache:function(d){tlmd.nocache=d?"?"+Date.now():""
},bustCache:function(f){var e=new Date();var d=/\?/.test(f)?"&":"?";f+=d+e.getTime()+"."+e.getMilliseconds();
return f},tmimitw:function(){var d=$("<h1></h1>").css({display:"block",padding:"10px 0",color:"#fff",fontSize:"14pt",backgroundColor:"#333333",opacity:0.75}).html(tlmd._buffer.join("")).prependTo($("body"))
},_init:function(){if(document.location.href.match(/nocache/)){tlmd.setNocache(true)
}tlmd.ua.pixelRatio=c.devicePixelRatio||1;tlmd.ua.viewport={width:c.innerWidth,height:c.innerHeight};
tlmd.ua.screen={width:c.screen.availWidth*tlmd.ua.pixelRatio,height:c.screen.availHeight*tlmd.ua.pixelRatio};
tlmd.ua.iPhone=/iPhone/i.test(navigator.userAgent);tlmd.ua.iPhone4=tlmd.ua.iPhone&&tlmd.ua.pixelRatio==2;
tlmd.ua.iPad=/iPad/i.test(navigator.userAgent);tlmd.ua.iOS=tlmd.ua.iPhone||tlmd.ua.iPad;
tlmd.ua.Android=/android/i.test(navigator.userAgent);tlmd.ua.mobile=tlmd.ua.iOS||tlmd.ua.Android
},_loadScript:function(g,f){tlmd.modules[g]={name:g,requires:[],loaded:false,body:null};
tlmd._waitForOnload++;var e,h;if(g.match(/^http:\/\//)){e=tlmd.bustCache(g);h=function(){tlmd.modules[g].loaded=true;
tlmd._waitForOnload--;tlmd._execModules()}}else{e=tlmd.lib+g.replace(/\./g,"/")+(tlmd.minified?".min":"")+".js"+tlmd.nocache;
h=function(){tlmd._waitForOnload--;tlmd._execModules()}}var d=tlmd.$new("script");
d.type="text/javascript";d.src=e;d.onload=h;d.onerror=function(){throw"Failed to load module "+g+" at "+path+" required from "+f
};tlmd.$("head")[0].appendChild(d)},_execModules:function(){var e=false;for(var k=0;
k<tlmd._loadQueue.length;k++){var g=tlmd._loadQueue[k];var d=true;for(var h=0;h<g.requires.length;
h++){var f=g.requires[h];if(!tlmd.modules[f]){d=false;tlmd._loadScript(f,g.name)}else{if(!tlmd.modules[f].loaded){d=false
}}}if(d&&g.body){tlmd._loadQueue.splice(k,1);g.loaded=true;g.body();e=true;k--}}if(e){tlmd._execModules()
}else{if(tlmd._waitForOnload==0&&tlmd._loadQueue.length!=0){var l=[];for(var k=0;
k<tlmd._loadQueue.length;k++){var o=[];var n=tlmd._loadQueue[k].requires;for(var h=0;
h<n.length;h++){var g=tlmd.modules[n[h]];if(!g||!g.loaded){o.push(n[h])}}l.push(tlmd._loadQueue[k].name+" (requires: "+o.join(", ")+")")
}throw"Unresolved (circular?) dependencies. Most likely there's a name/path mismatch for one of the listed modules:\n"+l.join("\n")
}}},_DOMReady:function(){if(!tlmd.modules["dom.ready"].loaded){if(!document.body){return setTimeout(tlmd._DOMReady,13)
}tlmd.modules["dom.ready"].loaded=true;tlmd._waitForOnload--;tlmd._execModules()}return 0
},_initDOMReady:function(){if(tlmd.modules["dom.ready"]){return}tlmd._init();tlmd.modules["dom.ready"]={requires:[],loaded:false,body:null};
tlmd._waitForOnload++;if(document.readyState==="complete"){tlmd._DOMReady()}else{document.addEventListener("DOMContentLoaded",tlmd._DOMReady,false);
c.addEventListener("load",tlmd._DOMReady,false)}}};var a=false,b=/xyz/.test(function(){xyz
})?/\bparent\b/:/.*/;c.tlmd.Class=function(){};c.tlmd.Class.extend=function(h){var g=this.prototype;
a=true;var f=new this;a=false;for(var e in h){if(typeof h[e]=="function"&&typeof g[e]=="function"&&b.test(h[e])){f[e]=function(i,j){return function(){var l=this.parent;
this.parent=g[i];var k=j.apply(this,arguments);this.parent=l;return k}}(e,h[e])}else{f[e]=h[e]
}}function d(){if(!a){if(this.staticInstantiate){var j=this.staticInstantiate.apply(this,arguments);
if(j){return j}}for(var i in this){this[i]=tlmd.copy(this[i])}if(this.init){this.init.apply(this,arguments)
}}return this}d.prototype=f;d.constructor=d;d.extend=arguments.callee;return d}})(window);
