LibraryManager={path:null,isgenerated:false,loadEvents:[],requiredScripts:[],pageClass:null,pageId:null,init:function(){this.calculatePath();this.addLoadEvent(function(){LibraryManager.calculatePageDetails();});},calculatePath:function(){if(this.path==null){var libman=document.getElementById("librarymanager");if(!libman)return false;if(libman.src.indexOf('librarymanager.js')!=-1){this.path="/_includes/js/";}else{this.isgenerated=true;this.path=libman.src;}}},calculatePageDetails:function(){this.pageId=document.getElementsByTagName("body")[0].id;document.getElementsByTagName("body")[0].className+=" jsenabled";this.pageClass=document.getElementsByTagName("body")[0].className;},require:function(libraryfile){var requiredFiles=[];if(typeof libraryfile=="string"){requiredFiles.push(libraryfile);}else{requiredFiles=libraryfile;}
for(var i=0;i<requiredFiles.length;i++){var pattern=/^http:\/\//;if(pattern.test(requiredFiles[i])){document.write('<script type="text/javascript" src="'+requiredFiles[i]+'"></script>');}else{document.write('<script type="text/javascript" src="'+this.path+requiredFiles[i]+'"></script>');}};},getElementsByClass:function(className,parent){var parentElement;if(typeof parent=="string"){parentElement=document.getElementById(parent);}else if(typeof parent=="object"){parentElement=parent;}else{parentElement=document.body;}
var elements=[];var children=parentElement.getElementsByTagName('*');for(var x=0;x<children.length;x++){if(children[x].className.match(new RegExp("(^|\\s)"+className+"(\\s|$)"))){elements.push(children[x]);}}
return elements;},addLoadEvent:function(func){this.loadEvents[this.loadEvents.length]=func;if(this.loadEvents.length==1){var domLoadSupported=false;if(document.addEventListener){document.addEventListener("DOMContentLoaded",this.onDomLoaded,null);domLoadSupported=true;}
if(/KHTML|WebKit/i.test(navigator.userAgent)){var _timer=setInterval(function(){if(/loaded|complete/.test(document.readyState)){clearInterval(_timer);delete _timer;LibraryManager.onDomLoaded();}},10);domLoadSupported=true;}/*@cc_on @*//*@if (@_win32)
   var proto = "javascript:void(0)";
   if (location.protocol == "https:") proto = "src=//0";
   document.write("<scr"+"ipt id=__ie_onload defer src=" + proto + "><\/scr"+"ipt>");
   var script = document.getElementById("__ie_onload");
   script.onreadystatechange = function() {
       if (this.readyState == "complete") {
           LibraryManager.onDomLoaded();
       }
   };
   domLoadSupported = true;
   /*@end @*/if(!domLoadSupported){this.addEvent(window,'load',this.onDomLoaded);}}},addEvent:function(obj,type,fn){if(obj.attachEvent){obj['e'+type+fn]=fn;obj[type+fn]=function(){obj['e'+type+fn](window.event);}
obj.attachEvent('on'+type,obj[type+fn]);}else if(obj.addEventListener){obj.addEventListener(type,fn,false);}else{var oldfn=obj['on'+type];if(typeof obj['on'+type]!='function'){obj['on'+type]=fn;}else{obj['on'+type]=function(){oldfn();fn();};}}},removeEvent:function(obj,type,fn){if(obj.detachEvent){obj.detachEvent('on'+type,obj[type+fn]);obj[type+fn]=null;}else{obj.removeEventListener(type,fn,false);}},onDomLoaded:function(){if(arguments.callee.done)return;arguments.callee.done=true;for(var i=0;i<LibraryManager.loadEvents.length;i++){LibraryManager.loadEvents[i]();}}}
try{document.execCommand('BackgroundImageCache',false,true);}catch(e){}
LibraryManager.init();;var arrayFunctions={arrayContainsValue:function(arrayName,value){for(x=0;x<arrayName.length;x++)
if(arrayName[x]==value)return x;return false;},createUniqueArray:function(originalArray){var uniqueArray=new Array();for(i=0;i<originalArray.length;i++){if((this.arrayContainsValue(uniqueArray,originalArray[i]))===false){uniqueArray.push(originalArray[i]);}}
return uniqueArray;}};var links={newWin:function(){if(!document.getElementsByTagName)return false;var linkArray=document.getElementsByTagName("a");for(var i=0;i<linkArray.length;i++){if(linkArray[i].rel.indexOf("external")!=-1){linkArray[i].onclick=function(){window.open(this.href,"newwin");return false;}}}},sizedWin:function(linkid,winWidth,winHeight,scrollbars,status){var link=$(linkid);if(link){link.onclick=function(){window.open(this.href,this.innerHTML,'width='+winWidth+',height='+winHeight+',scrollbars='+scrollbars+',status='+status);return false;}}}};var printFootnoteLinks={init:function(containerID,targetID){if(!document.getElementById(containerID)||!document.getElementById(targetID))return false;var container=document.getElementById(containerID);var linkArray=container.getElementsByTagName('a');var uniqueLinkArray=[];var ol=document.createElement('ol');for(var i=0;i<linkArray.length;i++){var validlink=this.testLinkValidity(linkArray[i]);if(validlink){this.addLink(linkArray[i],uniqueLinkArray,ol);}}
this.printLinks(ol,targetID);},testLinkValidity:function(currentLink){if(currentLink.getAttribute('href')==false||currentLink.getAttribute('cite')==false||currentLink.className.indexOf("ignore")!=-1){return false;}
if(currentLink.parentNode.className.indexOf('hideforprint')!=-1){return false;}
var thisLink=currentLink.getAttribute('href')?currentLink.href:currentLink.cite;var currentURL=document.location.href;if(thisLink.indexOf("#")!=-1){var thisLinkURL=thisLink.split('#');if(thisLinkURL[0]==currentURL)return false}
return true;},addLink:function(currentLink,uniqueLinkArray,ol){var thisLink=currentLink.href;if(currentLink.href.indexOf("mailto:")!=-1){thisLink="Email: "+thisLink.substring(7);}
var note=document.createElement('span');note.className="printonly";var linkExists=arrayFunctions.arrayContainsValue(uniqueLinkArray,thisLink);if(linkExists===false){var li=document.createElement('li');var li_txt=document.createTextNode(thisLink);li.appendChild(li_txt);ol.appendChild(li);uniqueLinkArray.push(thisLink);var note_txt=document.createTextNode(uniqueLinkArray.length);}else{var note_txt=document.createTextNode(linkExists+1);}
note.appendChild(note_txt);currentLink.appendChild(note);},printLinks:function(ol,targetID){var opendiv=document.createElement('div');opendiv.className='printonly listlinks clearfix';var target=document.getElementById(targetID);target.appendChild(opendiv);var h2=document.createElement('h2');var h2_txt=document.createTextNode('Links');h2.appendChild(h2_txt);opendiv.appendChild(h2);opendiv.appendChild(ol);}};function Delegate(){}
Delegate.create=function(o,f){var a=new Array();var l=arguments.length;for(var i=2;i<l;i++)a[i-2]=arguments[i];return function(){var aP=[].concat(arguments,a);f.apply(o,aP);}}
Tween=function(obj,prop,func,begin,finish,duration,suffixe){this.init(obj,prop,func,begin,finish,duration,suffixe)}
var t=Tween.prototype;t.obj=new Object();t.prop='';t.func=function(t,b,c,d){return c*t/d+b;};t.begin=0;t.change=0;t.prevTime=0;t.prevPos=0;t.looping=false;t._duration=0;t._time=0;t._pos=0;t._position=0;t._startTime=0;t._finish=0;t.name='';t.suffixe='';t._listeners=new Array();t.setTime=function(t){this.prevTime=this._time;if(t>this.getDuration()){if(this.looping){this.rewind(t-this._duration);this.update();this.broadcastMessage('onMotionLooped',{target:this,type:'onMotionLooped'});}else{this._time=this._duration;this.update();this.stop();this.broadcastMessage('onMotionFinished',{target:this,type:'onMotionFinished'});}}else if(t<0){this.rewind();this.update();}else{this._time=t;this.update();}}
t.getTime=function(){return this._time;}
t.setDuration=function(d){this._duration=(d==null||d<=0)?100000:d;}
t.getDuration=function(){return this._duration;}
t.setPosition=function(p){this.prevPos=this._pos;var a=this.suffixe!=''?this.suffixe:'';this.obj[this.prop]=Math.round(p)+a;this._pos=p;this.broadcastMessage('onMotionChanged',{target:this,type:'onMotionChanged'});}
t.getPosition=function(t){if(t==undefined)t=this._time;return this.func(t,this.begin,this.change,this._duration);};t.setFinish=function(f){this.change=f-this.begin;};t.geFinish=function(){return this.begin+this.change;};t.init=function(obj,prop,func,begin,finish,duration,suffixe){if(!arguments.length)return;this._listeners=new Array();this.addListener(this);if(suffixe)this.suffixe=suffixe;this.obj=obj;this.prop=prop;this.begin=begin;this._pos=begin;this.setDuration(duration);if(func!=null&&func!=''){this.func=func;}
this.setFinish(finish);}
t.start=function(){this.rewind();this.startEnterFrame();this.broadcastMessage('onMotionStarted',{target:this,type:'onMotionStarted'});}
t.rewind=function(t){this.stop();this._time=(t==undefined)?0:t;this.fixTime();this.update();}
t.fforward=function(){this._time=this._duration;this.fixTime();this.update();}
t.update=function(){this.setPosition(this.getPosition(this._time));}
t.startEnterFrame=function(){this.stopEnterFrame();this.isPlaying=true;this.onEnterFrame();}
t.onEnterFrame=function(){if(this.isPlaying){this.nextFrame();setTimeout(Delegate.create(this,this.onEnterFrame),0);}}
t.nextFrame=function(){this.setTime((this.getTimer()-this._startTime)/1000);}
t.stop=function(){this.stopEnterFrame();this.broadcastMessage('onMotionStopped',{target:this,type:'onMotionStopped'});}
t.stopEnterFrame=function(){this.isPlaying=false;}
t.continueTo=function(finish,duration){this.begin=this._pos;this.setFinish(finish);if(this._duration!=undefined)
this.setDuration(duration);this.start();}
t.resume=function(){this.fixTime();this.startEnterFrame();this.broadcastMessage('onMotionResumed',{target:this,type:'onMotionResumed'});}
t.yoyo=function(){this.continueTo(this.begin,this._time);}
t.addListener=function(o){this.removeListener(o);return this._listeners.push(o);}
t.removeListener=function(o){var a=this._listeners;var i=a.length;while(i--){if(a[i]==o){a.splice(i,1);return true;}}
return false;}
t.broadcastMessage=function(){var arr=new Array();for(var i=0;i<arguments.length;i++){arr.push(arguments[i])}
var e=arr.shift();var a=this._listeners;var l=a.length;for(var i=0;i<l;i++){if(a[i][e])
a[i][e].apply(a[i],arr);}}
t.fixTime=function(){this._startTime=this.getTimer()-this._time*1000;}
t.getTimer=function(){return new Date().getTime()-this._time;}
Tween.backEaseIn=function(t,b,c,d,a,p){if(s==undefined)var s=1.70158;return c*(t/=d)*t*((s+1)*t-s)+b;}
Tween.backEaseOut=function(t,b,c,d,a,p){if(s==undefined)var s=1.70158;return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b;}
Tween.backEaseInOut=function(t,b,c,d,a,p){if(s==undefined)var s=1.70158;if((t/=d/2)<1)return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b;}
Tween.elasticEaseIn=function(t,b,c,d,a,p){if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(!a||a<Math.abs(c)){a=c;var s=p/4;}
else
var s=p/(2*Math.PI)*Math.asin(c/a);return-(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;}
Tween.elasticEaseOut=function(t,b,c,d,a,p){if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(!a||a<Math.abs(c)){a=c;var s=p/4;}
else var s=p/(2*Math.PI)*Math.asin(c/a);return(a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b);}
Tween.elasticEaseInOut=function(t,b,c,d,a,p){if(t==0)return b;if((t/=d/2)==2)return b+c;if(!p)var p=d*(.3*1.5);if(!a||a<Math.abs(c)){var a=c;var s=p/4;}
else var s=p/(2*Math.PI)*Math.asin(c/a);if(t<1)return-.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b;}
Tween.bounceEaseOut=function(t,b,c,d){if((t/=d)<(1/2.75)){return c*(7.5625*t*t)+b;}else if(t<(2/2.75)){return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b;}else if(t<(2.5/2.75)){return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b;}else{return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b;}}
Tween.bounceEaseIn=function(t,b,c,d){return c-Tween.bounceEaseOut(d-t,0,c,d)+b;}
Tween.bounceEaseInOut=function(t,b,c,d){if(t<d/2)return Tween.bounceEaseIn(t*2,0,c,d)*.5+b;else return Tween.bounceEaseOut(t*2-d,0,c,d)*.5+c*.5+b;}
Tween.strongEaseInOut=function(t,b,c,d){return c*(t/=d)*t*t*t*t+b;}
Tween.regularEaseIn=function(t,b,c,d){return c*(t/=d)*t+b;}
Tween.regularEaseOut=function(t,b,c,d){return-c*(t/=d)*(t-2)+b;}
Tween.regularEaseInOut=function(t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b;}
Tween.strongEaseIn=function(t,b,c,d){return c*(t/=d)*t*t*t*t+b;}
Tween.strongEaseOut=function(t,b,c,d){return c*((t=t/d-1)*t*t*t*t+1)+b;}
Tween.strongEaseInOut=function(t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t*t+b;return c/2*((t-=2)*t*t*t*t+2)+b;};function Delegate(){}
Delegate.create=function(o,f){var a=new Array();var l=arguments.length;for(var i=2;i<l;i++)a[i-2]=arguments[i];return function(){var aP=[].concat(arguments,a);f.apply(o,aP);}}
function Sequence(){this.children=new Array();this.currentChildIndex=0;this._listeners=new Array();this.nextObject=new Object();this.addListener(this);}
var s=Sequence.prototype;s.addChild=function(tween){this.children.push(tween)}
s.removeChild=function(tween){var a=this.children;var i=a.length;while(i--){if(a[i]==tween){a.splice(i,1);return true;}}
return false;}
s.start=function(){this.rewind();this.play();this.broadcastMessage('onMotionStarted',{target:this,type:'onMotionStarted'});}
s.next=function(){this.children[this.currentChildIndex].removeListener(this.nextObject);if(this.currentChildIndex<this.children.length-1){this.currentChildIndex++;this.play();}
else{this.stop();this.broadcastMessage('onMotionFinished',{target:this,type:'onMotionFinished'});}}
s.play=function(){this.nextObject=new Object();this.nextObject.onMotionFinished=Delegate.create(this,this.next);this.children[this.currentChildIndex].addListener(this.nextObject);this.children[this.currentChildIndex].start();}
s.stop=function(){this.children[this.currentChildIndex].stop();this.broadcastMessage('onMotionStopped',{target:this,type:'onMotionStopped'});}
s.rewind=function(){this.children[this.currentChildIndex].removeListener(this.nextObject);this.currentChildIndex=0;for(var i=0;i<this.children.length;i++){this.children[i].rewind();}}
s.fforward=function(){this.children[this.currentChildIndex].removeListener(this.nextObject);for(var i=0;i<this.children.length;i++){this.children[i].fforward();}
this.currentChildIndex=this.children.length-1;}
s.resume=function(){this.children[this.currentChildIndex].resume();this.broadcastMessage('onMotionResumed',{target:this,type:'onMotionStopped'});}
s.addListener=function(o){this.removeListener(o);return this._listeners.push(o);}
s.removeListener=function(o){var a=this._listeners;var i=a.length;while(i--){if(a[i]==o){a.splice(i,1);return true;}}
return false;}
s.broadcastMessage=function(){var arr=new Array();for(var i=0;i<arguments.length;i++){arr.push(arguments[i])}
var e=arr.shift();var a=this._listeners;var l=a.length;for(var i=0;i<l;i++){if(a[i][e])
a[i][e].apply(a[i],arr);}};var cookie={set:function(name,value,expires,path,domain,secure){var today=new Date();today.setTime(today.getTime());if(expires){expires=expires*1000*60*60*24;}
var expires_date=new Date(today.getTime()+(expires));document.cookie=name+"="+escape(value)+
((expires)?";expires="+expires_date.toGMTString():"")+
((path)?";path="+path:"")+
((domain)?";domain="+domain:"")+
((secure)?";secure":"");},get:function(name){var start=document.cookie.indexOf(name+"=");var len=start+name.length+1;if((!start)&&(name!=document.cookie.substring(0,name.length))){return null;}
if(start==-1)return null;var end=document.cookie.indexOf(";",len);if(end==-1)end=document.cookie.length;return unescape(document.cookie.substring(len,end));},getAll:function(){var cookies={};var name,value;var beginning=0;var middle,end;while(beginning<document.cookie.length){middle=document.cookie.indexOf('=',beginning);end=document.cookie.indexOf(';',beginning);if(end==-1){end=document.cookie.length;}
if((middle>end)||(middle==-1)){name=document.cookie.substring(beginning,end);value="";}else{name=document.cookie.substring(beginning,middle);value=document.cookie.substring(middle+1,end);}
cookies[name]=unescape(value);beginning=end+2;}
return cookies;},remove:function(name,path,domain){if(this.get(name))document.cookie=name+"="+
((path)?";path="+path:"")+
((domain)?";domain="+domain:"")+";expires=Thu, 01-Jan-1970 00:00:01 GMT";},removeAll:function(){var name;var beginning=0;while(beginning<document.cookie.length){var middle=document.cookie.indexOf('=',beginning);if(middle==-1){middle=document.cookie.length;}else{name=document.cookie.substring(beginning,middle);}
this.remove(name);beginning=0;}},count:function(){var count=0;var beginning=0;while(beginning<document.cookie.length){var middle=document.cookie.indexOf('=',beginning);if(middle==-1){middle=document.cookie.length;}else{count++;}
beginning=middle+2;}
return count;}};var Konami=function(){var konami={addEvent:function(obj,type,fn,ref_obj)
{if(obj.addEventListener)
obj.addEventListener(type,fn,false);else if(obj.attachEvent)
{obj["e"+type+fn]=fn;obj[type+fn]=function(){obj["e"+type+fn](window.event,ref_obj);}
obj.attachEvent("on"+type,obj[type+fn]);}},input:"",pattern:"3838404037393739666513",load:function(link){this.addEvent(document,"keydown",function(e,ref_obj){if(ref_obj)konami=ref_obj;konami.input+=e?e.keyCode:event.keyCode;if(konami.input.length>konami.pattern.length)konami.input=konami.input.substr((konami.input.length-konami.pattern.length));if(konami.input==konami.pattern){konami.code(link);konami.input="";return;}},this);this.iphone.load(link)},code:function(link){window.location=link},iphone:{start_x:0,start_y:0,stop_x:0,stop_y:0,tap:false,capture:false,orig_keys:"",keys:["UP","UP","DOWN","DOWN","LEFT","RIGHT","LEFT","RIGHT","TAP","TAP","TAP"],code:function(link){konami.code(link);},load:function(link){orig_keys=this.keys;konami.addEvent(document,"touchmove",function(e){if(e.touches.length==1&&konami.iphone.capture==true){var touch=e.touches[0];konami.iphone.stop_x=touch.pageX;konami.iphone.stop_y=touch.pageY;konami.iphone.tap=false;konami.iphone.capture=false;konami.iphone.check_direction();}});konami.addEvent(document,"touchend",function(evt){if(konami.iphone.tap==true)konami.iphone.check_direction(link);},false);konami.addEvent(document,"touchstart",function(evt){konami.iphone.start_x=evt.changedTouches[0].pageX
konami.iphone.start_y=evt.changedTouches[0].pageY
konami.iphone.tap=true
konami.iphone.capture=true});},check_direction:function(link){x_magnitude=Math.abs(this.start_x-this.stop_x)
y_magnitude=Math.abs(this.start_y-this.stop_y)
x=((this.start_x-this.stop_x)<0)?"RIGHT":"LEFT";y=((this.start_y-this.stop_y)<0)?"DOWN":"UP";result=(x_magnitude>y_magnitude)?x:y;result=(this.tap==true)?"TAP":result;if(result==this.keys[0])this.keys=this.keys.slice(1,this.keys.length)
if(this.keys.length==0){this.keys=this.orig_keys;this.code(link)}}}}
return konami;};(function(d,l){function w(){}function Q(a){p=[a]}function g(a,h,i){return a&&a.apply(h.context||h,i)}function x(a){function h(b){!j++&&l(function(){m();n&&(q[c]={s:[b]});y&&(b=y.apply(a,[b]));g(a.success,a,[b,z]);g(A,a,[a,z])},0)}function i(b){!j++&&l(function(){m();n&&b!=B&&(q[c]=b);g(a.error,a,[a,b]);g(A,a,[a,b])},0)}a=d.extend({},C,a);var A=a.complete,y=a.dataFilter,D=a.callbackParameter,E=a.callback,R=a.cache,n=a.pageCache,F=a.charset,c=a.url,e=a.data,G=a.timeout,o,j=0,m=w;a.abort=function(){!j++&&m()};if(g(a.beforeSend,a,[a])===false||j)return a;c=c||r;e=e?typeof e=="string"?e:d.param(e,a.traditional):r;c+=e?(/\?/.test(c)?"&":"?")+e:r;D&&(c+=(/\?/.test(c)?"&":"?")+escape(D)+"=?");!R&&!n&&(c+=(/\?/.test(c)?"&":"?")+"_"+(new Date).getTime()+"=");c=c.replace(/=\?(&|$)/,"="+E+"$1");n&&(o=q[c])?o.s?h(o.s[0]):i(o):l(function(b,k,s){if(!j){s=G>0&&l(function(){i(B)},G);m=function(){s&&clearTimeout(s);b[H]=b[t]=b[I]=b[u]=null;f[J](b);k&&f[J](k)};window[E]=Q;b=d(K)[0];b.id=L+S++;if(F)b[T]=F;var N=function(v){(b[t]||w)();v=p;p=undefined;v?h(v[0]):i(M)};if(O.msie){b.event=t;b.htmlFor=b.id;b[H]=function(){b.readyState=="loaded"&&N()}}else{b[u]=b[I]=N;O.opera?(k=d(K)[0]).text="jQuery('#"+b.id+"')[0]."+u+"()":b[P]=P}b.src=c;f.insertBefore(b,f.firstChild);k&&f.insertBefore(k,f.firstChild)}},0);return a}var P="async",T="charset",r="",M="error",L="_jqjsp",t="onclick",u="on"+M,I="onload",H="onreadystatechange",J="removeChild",K="<script/>",z="success",B="timeout",O=d.browser,f=d("head")[0]||document.documentElement,q={},S=0,p,C={callback:L,url:location.href};x.setup=function(a){d.extend(C,a)};d.jsonp=x})(jQuery,setTimeout);jQuery.getImageData=function(args){if(args.url){var is_secure=args.url.indexOf('https:');var remote_url=is_secure==0||location.protocol==="https:"?"https://img-to-json.appspot":"http://img-to-json.maxnov";remote_url+=".com/?callback=?";$.jsonp({url:remote_url,data:{url:escape(args.url)},dataType:'jsonp',timeout:10000,success:function(data,status){var return_image=new Image();$(return_image).load(function(){this.width=data.width;this.height=data.height;if(typeof(args.success)==typeof(Function)){args.success(this);}}).attr('src',data.data);},error:function(xhr,text_status){if(typeof(args.error)==typeof(Function)){args.error(xhr,text_status);}}});}else{if(typeof(args.error)==typeof(Function)){args.error(null,"no_url");}}};var greyscale=function(){var greyscaleImageCache=[];var init=false;var isGreyscale=false;var imgData=null;var showGreyscaleImages=function(){isGreyscale=true;if(init){if(greyscaleImageCache.length>0){$(greyscaleImageCache).each(function(counter){showGreyscaleImage(this);});}}else{$('img:not(.exclude)').each(function(counter){initGreyscaleImage(this);});init=true;}};var preloadGreyscaleImage=function(img){if(init){$.getImageData({url:img.src,success:function(image){imgData=image;},error:function(xhr,text_status){console.log('ERROR: '+text_status);}});}};var addGreyscaleImage=function(img){if(init){initGreyscaleImage(img,true);}};var hideGreyscaleImages=function(){isGreyscale=false;if(greyscaleImageCache.length>0){$(greyscaleImageCache).each(function(counter){hideGreyscaleImage(this);});}};var showGreyscaleImage=function(imgWrap){$(imgWrap).find("img.bw").css({opacity:0}).animate({opacity:1},1000,function(){hideLoader(imgWrap);});};var hideGreyscaleImage=function(imgWrap){$(imgWrap).find("img.bw").css({opacity:1}).animate({opacity:0},1000);};var initGreyscaleImage=function(img,preloaded){if($(img).parent().hasClass('bw-wrap')){$(img).siblings().remove();$(img).unwrap();}
var imgWrap=wrapImg(img);greyscaleImageCache.push(imgWrap);if(preloaded){var greyImg=createGreyscaleImage(imgData);embedGreyscaleImage(greyImg,imgWrap);if(isGreyscale){showLoader(imgWrap);showGreyscaleImage(imgWrap);}}else{try{var greyImg=createGreyscaleImage(img);embedGreyscaleImage(greyImg,imgWrap);if(isGreyscale){showLoader(imgWrap);showGreyscaleImage(imgWrap);}}catch(e){try{$.getImageData({url:img.src,success:function(image){var greyImg=createGreyscaleImage(image);embedGreyscaleImage(greyImg,imgWrap);if(isGreyscale){showLoader(imgWrap);showGreyscaleImage(imgWrap);}},error:function(xhr,text_status){console.log('ERROR: '+text_status);}});}catch(e2){}}}};var wrapImg=function(img){$(img).addClass('original').wrap('<span class="bw-wrap" />');$wrap=$(img).parent();$wrap.height($(img).height());return $wrap;};var showLoader=function(imgWrap){var loader=$(imgWrap).find('span.loader');if(loader.length<1){loader=$("<span/>").attr('class','loader').prependTo(imgWrap).css({height:$(imgWrap).height()});}};var hideLoader=function(imgWrap){var loader=$(imgWrap).find('span.loader');if(loader.length>0){loader.animate({opacity:0},250);}};var createGreyscaleImage=function(imgObj){var canvas=document.createElement('canvas');var canvasContext=canvas.getContext('2d');var imgW=imgObj.width;var imgH=imgObj.height;canvas.width=imgW;canvas.height=imgH;canvasContext.drawImage(imgObj,0,0);var imgPixels=canvasContext.getImageData(0,0,imgW,imgH);for(var y=0;y<imgPixels.height;y++){for(var x=0;x<imgPixels.width;x++){var i=(y*4)*imgPixels.width+x*4;var avg=(imgPixels.data[i]+imgPixels.data[i+1]+imgPixels.data[i+2])/3;imgPixels.data[i]=avg;imgPixels.data[i+1]=avg;imgPixels.data[i+2]=avg;}}
canvasContext.putImageData(imgPixels,0,0,0,0,imgPixels.width,imgPixels.height);return canvas.toDataURL();};var embedGreyscaleImage=function(imgsrc,imgWrap){var img=$("<img />").attr('src',imgsrc).attr('class','bw');imgWrap.append(img);if(!isGreyscale){$(img).css({opacity:0});}};return{hideGreyscaleImages:hideGreyscaleImages,showGreyscaleImages:showGreyscaleImages,addGreyscaleImage:addGreyscaleImage,preloadGreyscaleImage:preloadGreyscaleImage};}();;var tabScroller={tweenType:Tween.strongEaseOut,tweenTime:1,tweenLeft:[],tweenRight:[],scrollLeftTo:0,scrollRightTo:0,lastTween:[],tabContainer:null,tabs:null,ieCheck:false,init:function(){this.tabContainer=document.getElementById('header');this.ieCheck=this.checkIE();if(this.ieCheck){}
this.tabs=this.tabContainer.getElementsByTagName("a");this.scrollLeftTo=0-this.tabs[0].offsetWidth;for(var x=0;x<this.tabs.length;x++){this.tabs[x].removeAttribute("title");var tabcontainer=document.createElement('span');tabcontainer.className="tabcontainer";tabcontainer.style.left="0px";this.tabs[x].parentNode.appendChild(tabcontainer);var tabOff=document.createElement('span');tabOff.className="taboff";tabcontainer.appendChild(tabOff);var tabOn=document.createElement('span');tabOn.className="tabon";tabcontainer.appendChild(tabOn);var areaName="nav-"+LibraryManager.pageId;var tabName=this.tabs[x].parentNode.id;if(areaName.indexOf(tabName)==-1){LibraryManager.addEvent(this.tabs[x],'mouseover',tabScroller.scrollLeft);LibraryManager.addEvent(this.tabs[x],'mouseout',tabScroller.scrollRight);this.tabs[x].x=x;}else{if(this.ieCheck){this.tabs[x].nextSibling.nextSibling.style.left=this.scrollLeftTo+"px";}else{this.tabs[x].nextSibling.style.left=this.scrollLeftTo+"px";}}}},scrollLeft:function(){var x=this.x;if(tabScroller.tweenRight[x]!=null){tabScroller.tweenRight[x].stop();}
if(tabScroller.lastTween[x]!="left"){if(tabScroller.ieCheck){var tweenFrom=parseInt(this.nextSibling.nextSibling.style.left.split("px")[0]);}else{var tweenFrom=parseInt(this.nextSibling.style.left.split("px")[0]);}
var tweenTo=tabScroller.scrollLeftTo;if(tabScroller.ieCheck){tabScroller.tweenLeft[x]=new Tween(this.nextSibling.nextSibling.style,'left',tabScroller.tweenType,tweenFrom,tweenTo,tabScroller.tweenTime,'px');}else{tabScroller.tweenLeft[x]=new Tween(this.nextSibling.style,'left',tabScroller.tweenType,tweenFrom,tweenTo,tabScroller.tweenTime,'px');}
tabScroller.tweenLeft[x].onMotionFinished=function(){this.onMotionFinished=undefined;};tabScroller.tweenLeft[x].start();tabScroller.lastTween[x]="left";}},scrollRight:function(){var x=this.x;if(tabScroller.tweenLeft[x]!==null){tabScroller.tweenLeft[x].stop();}
if(tabScroller.lastTween[x]!="right"){if(tabScroller.ieCheck){var tweenFrom=parseInt(this.nextSibling.nextSibling.style.left.split("px")[0]);}else{var tweenFrom=parseInt(this.nextSibling.style.left.split("px")[0]);}
var tweenTo=tabScroller.scrollRightTo;if(tabScroller.ieCheck){tabScroller.tweenRight[x]=new Tween(this.nextSibling.nextSibling.style,'left',tabScroller.tweenType,tweenFrom,tweenTo,tabScroller.tweenTime,'px');}else{tabScroller.tweenRight[x]=new Tween(this.nextSibling.style,'left',tabScroller.tweenType,tweenFrom,tweenTo,tabScroller.tweenTime,'px');}
tabScroller.tweenRight[x].onMotionFinished=function(){this.onMotionFinished=undefined;};tabScroller.tweenRight[x].start();tabScroller.lastTween[x]="right";}},checkIE:function(){if(navigator.platform=="Win32"&&navigator.appName=="Microsoft Internet Explorer"&&window.attachEvent){var ieVersion=navigator.appVersion.match(/MSIE (\d+\.\d+)/,'');if(ieVersion!=null&&Number(ieVersion[1])>7){return false;}else{return true;}}else{return false;}}};var expand={tweenType:Tween.strongEaseOut,tweenTime:1,tweenUp:[],tweenDown:[],projects:{},expandableAreas:{},expandableLinks:{},init:function(){this.expandableAreas=LibraryManager.getElementsByClass("expand");this.expandableLinks=LibraryManager.getElementsByClass("expandlink");for(var x=0;x<this.expandableAreas.length;x++){this.expandableAreas[x].style.overflow="hidden";if(this.expandableAreas[x].className.indexOf("open")==-1){this.expandableAreas[x].style.height="0px";this.expandableAreas[x].collapsed=true;}else{this.expandableAreas[x].style.height=this.expandableAreas[x].offsetHeight+"px";this.expandableAreas[x].collapsed=false;}
LibraryManager.addEvent(this.expandableLinks[x],'click',expand.expandCollapse);this.expandableLinks[x].x=x;this.expandableAreas[x].x=x;this.expandableLinks[x].onclick=function(){return false};}},expandCollapse:function(){var x=this.x;if(expand.expandableAreas[x].collapsed===true){expand.expandableAreas[x].collapsed=false;if(expand.tweenUp[x]!=null){expand.tweenUp[x].stop();}
var tweenFrom=parseInt(expand.expandableAreas[x].style.height.split("px")[0]);var tweenTo=expand.expandableAreas[x].scrollHeight;expand.tweenDown[x]=new Tween(expand.expandableAreas[x].style,'height',expand.tweenType,tweenFrom,tweenTo,expand.tweenTime,'px');expand.tweenDown[x].onMotionFinished=function(){this.onMotionFinished=undefined;var recaptchaField=LibraryManager.getElementsByClass("recaptcha_input_area");if(recaptchaField.length>0){recaptchaField[0].style.display="block";}};expand.tweenDown[x].start();}else{expand.expandableAreas[x].collapsed=true;if(expand.tweenDown[x]!=null){expand.tweenDown[x].stop();}
var recaptchaField=LibraryManager.getElementsByClass("recaptcha_input_area");if(recaptchaField.length>0){recaptchaField[0].style.display="none";}
var tweenFrom=parseInt(expand.expandableAreas[x].style.height.split("px")[0]);var tweenTo=0;expand.tweenUp[x]=new Tween(expand.expandableAreas[x].style,'height',expand.tweenType,tweenFrom,tweenTo,expand.tweenTime,'px');expand.tweenUp[x].onMotionFinished=function(){this.onMotionFinished=undefined;};expand.tweenUp[x].start();}}};var areaFader={fadeInterval:null,fadeAreaContainer:null,fadeAreas:null,currentActiveAreaNo:0,currentlyRunning:false,currentlyFading:false,changePause:5000,changeSpeed:10,slideshownav:null,backbtn:null,nextbtn:null,currentlyShowingText:null,init:function(changePause,changeSpeed,initPause){if(changePause!=""){this.changePause=changePause;}
if(changeSpeed!=""){this.changeSpeed=changeSpeed;}
this.fadeAreaContainer=document.getElementById('slideshow');if(!this.fadeAreaContainer)return false;this.fadeAreas=this.fadeAreaContainer.getElementsByTagName('div');this.activeFadeAreaCount=this.fadeAreas.length;this.fadeAreaContainer.style.position="relative";for(var z=0;z<this.fadeAreas.length;z++){this.fadeAreas[z].style.position="absolute";this.fadeAreas[z].style.left="0px";this.fadeAreas[z].style.top="0px";this.fadeAreas[z].xOpacity=0;this.fadeAreas[z].disabled=false;this.fadeAreas[z].style.display="none";}
this.fadeAreas[0].style.display='block';this.fadeAreas[0].xOpacity=0.99;if(initPause.indexOf("paused")==-1){LibraryManager.addEvent(window,'load',this.initfade);}
this.setNavLinks();this.createCurrentlyShowingText();},initfade:function(){areaFader.fadeInterval=setInterval("areaFader.updatearea();",areaFader.changePause);areaFader.currentlyRunning=true;},pausefade:function(){clearInterval(areaFader.fadeInterval);areaFader.currentlyRunning=false;},updatearea:function(direction,fadeOnce,nextArea){if(areaFader.activeFadeAreaCount<2&&!fadeOnce)return false;areaFader.currentlyFading=true;if(!direction){direction='next';}
if(!nextArea){var areaCount=areaFader.fadeAreas.length;if(direction=='back'){for(var x=areaFader.currentActiveAreaNo;x>0;x--){if(areaFader.fadeAreas[x-1].disabled!==true){nextArea=x;break;}}
if(!nextArea){for(var y=(areaCount-1);y>areaFader.currentActiveAreaNo;y--){if(areaFader.fadeAreas[y].disabled!==true){nextArea=y+1;break;}}}
nextArea--;}else{for(var x=areaFader.currentActiveAreaNo;x<(areaCount-1);x++){if(areaFader.fadeAreas[x+1].disabled!==true){nextArea=x+1;break;}}
if(!nextArea){for(var y=0;y<areaFader.currentActiveAreaNo;y++){if(areaFader.fadeAreas[y].disabled!==true){nextArea=y;break;}}}}}else{nextArea--;}
areaFader.fadeAreas[nextArea].style.display='block';areaFader.initAreaFadeInOut(nextArea);if(areaFader.currentlyRunning){areaFader.pausefade();areaFader.initfade();}},initAreaFadeInOut:function(nextArea){var currentOpacity=areaFader.fadeAreas[areaFader.currentActiveAreaNo].xOpacity;var nextOpacity=areaFader.fadeAreas[nextArea].xOpacity;currentOpacity-=0.05;nextOpacity+=0.05;areaFader.fadeAreas[areaFader.currentActiveAreaNo].xOpacity=currentOpacity;areaFader.fadeAreas[nextArea].xOpacity=nextOpacity;areaFader.areaFadeInOut(areaFader.fadeAreas[areaFader.currentActiveAreaNo]);areaFader.areaFadeInOut(areaFader.fadeAreas[nextArea]);if(currentOpacity<=0){areaFader.fadeAreas[areaFader.currentActiveAreaNo].style.display="none";areaFader.currentActiveAreaNo=nextArea;areaFader.currentlyFading=false;areaFader.updateCurrentlyShowingText();}else{setTimeout('areaFader.initAreaFadeInOut('+nextArea+')',areaFader.changeSpeed);}},areaFadeInOut:function(areaObject){if(areaObject.xOpacity<0.99){areaObject.style.opacity=areaObject.xOpacity;areaObject.style.MozOpacity=areaObject.xOpacity;areaObject.style.KhtmlOpacity=areaObject.xOpacity;if(window.attachEvent){areaObject.style.filter="alpha(opacity="+(areaObject.xOpacity*100)+")";}}},playPause:function(){if(!areaFader.currentlyRunning){areaFader.initfade();}else{areaFader.pausefade();}},setNavLinks:function(){this.slideshownav=document.createElement('span');this.slideshownav.id="slideshownav";this.fadeAreaContainer.appendChild(this.slideshownav);var nexttext=document.createTextNode('>');this.nextbtn=document.createElement('a');this.nextbtn.id="slidenext";this.nextbtn.style.display="block";this.nextbtn.appendChild(nexttext);this.slideshownav.appendChild(this.nextbtn);LibraryManager.addEvent(this.nextbtn,'click',areaFader.slideNext);var backtext=document.createTextNode('<');this.backbtn=document.createElement('a');this.backbtn.id="slideback";this.backbtn.style.display="block";this.backbtn.appendChild(backtext);this.slideshownav.appendChild(this.backbtn);LibraryManager.addEvent(this.backbtn,'click',areaFader.slideBack);},slideBack:function(){if(!areaFader.currentlyFading&&areaFader.activeFadeAreaCount>1){areaFader.updatearea('back');}},slideNext:function(){if(!areaFader.currentlyFading&&areaFader.activeFadeAreaCount>1){areaFader.updatearea('next');}},createCurrentlyShowingText:function(){areaFader.currentlyShowingText=document.createElement('p');areaFader.currentlyShowingText.id="currentlyshowing";var currentlyShowingString=(areaFader.currentActiveAreaNo+1)+' / '+areaFader.activeFadeAreaCount;var currentlyShowingTxt=document.createTextNode(currentlyShowingString);areaFader.currentlyShowingText.appendChild(currentlyShowingTxt);},updateCurrentlyShowingText:function(){var currentlyShowingString=(areaFader.currentActiveAreaNo+1)+' / '+areaFader.activeFadeAreaCount;areaFader.currentlyShowingText.innerHTML=currentlyShowingString;}};var portfolioMoreInfo={tweenType:Tween.strongEaseOut,tweenTime:1,tweenUp:[],tweenDown:[],scrollUpTo:{},scrollDownTo:-4,lastTween:[],projects:{},moreinfoAreas:{},expandableLinks:{},init:function(){this.projects=LibraryManager.getElementsByClass("project");this.moreinfoAreas=LibraryManager.getElementsByClass("moreinfo");for(var x=0;x<this.moreinfoAreas.length;x++){this.moreinfoAreas[x].collapsed=true;this.addMoreInfoLink(x);this.scrollUpTo[x]=-3-this.moreinfoAreas[x].offsetHeight;this.moreinfoAreas[x].style.marginTop=this.scrollDownTo+"px";LibraryManager.addEvent(this.expandableLinks[x],'click',portfolioMoreInfo.expandCollapse);this.expandableLinks[x].onclick=function(){return false};this.expandableLinks[x].x=x;this.moreinfoAreas[x].x=x;this.expandableLinks[x].onclick=function(){return false};}},expandCollapse:function(){var x=this.x;if(portfolioMoreInfo.lastTween[x]=="down"||portfolioMoreInfo.lastTween[x]==undefined){if(portfolioMoreInfo.tweenDown[x]!=null){portfolioMoreInfo.tweenDown[x].stop();}
portfolioMoreInfo.expandableLinks[x].innerHTML="Less information";portfolioMoreInfo.expandableLinks[x].parentNode.className="down";var tweenFrom=parseInt(portfolioMoreInfo.moreinfoAreas[x].style.marginTop.split("px")[0]);var tweenTo=portfolioMoreInfo.scrollUpTo[x];portfolioMoreInfo.tweenUp[x]=new Tween(portfolioMoreInfo.moreinfoAreas[x].style,'marginTop',portfolioMoreInfo.tweenType,tweenFrom,tweenTo,portfolioMoreInfo.tweenTime,'px');portfolioMoreInfo.tweenUp[x].onMotionFinished=function(){this.onMotionFinished=undefined;};portfolioMoreInfo.tweenUp[x].start();portfolioMoreInfo.lastTween[x]="up";}else{if(portfolioMoreInfo.tweenUp[x]!=null){portfolioMoreInfo.tweenUp[x].stop();}
portfolioMoreInfo.expandableLinks[x].innerHTML="More information";portfolioMoreInfo.expandableLinks[x].parentNode.className="up";var tweenFrom=parseInt(portfolioMoreInfo.moreinfoAreas[x].style.marginTop.split("px")[0]);var tweenTo=portfolioMoreInfo.scrollDownTo;portfolioMoreInfo.tweenDown[x]=new Tween(portfolioMoreInfo.moreinfoAreas[x].style,'marginTop',portfolioMoreInfo.tweenType,tweenFrom,tweenTo,portfolioMoreInfo.tweenTime,'px');portfolioMoreInfo.tweenDown[x].onMotionFinished=function(){this.onMotionFinished=undefined;};portfolioMoreInfo.tweenDown[x].start();portfolioMoreInfo.lastTween[x]="down";}},addMoreInfoLink:function(x){var li=document.createElement('li');var a=document.createElement('a');a.href="#";a.className="up";this.expandableLinks[x]=document.createElement('span');var spantext=document.createTextNode('More information');li.appendChild(a);a.appendChild(this.expandableLinks[x]);this.expandableLinks[x].appendChild(spantext);var actionnav=LibraryManager.getElementsByClass("actionnav");actionnav[x].appendChild(li);}};var barTimer={tweenType:Tween.strongEaseOut,requestUpdateTime:15000,timeInterval:20,timeElapsed:0,barTimerInterval:null,waitingTweenTime:3,barWidth:null,barHeight:null,leftPos:null,rightPos:null,bar:null,barFiller:null,newContentReady:false,newContent:null,artist:null,song:null,lastplayed:null,init:function(barWidth,barHeight,parentId){this.barWidth=barWidth;this.barHeight=barHeight;this.leftPos=this.barWidth;this.rightPos=0-this.barHeight;this.bar=this.createbar(parentId);this.barInterval=setInterval('barTimer.startBarTimer()',this.timeInterval);},createbar:function(parentId){this.bar=document.createElement("div");this.bar.id="bartimer";this.bar.style.width=this.barWidth+"px";this.bar.style.height=this.barHeight+"px";this.barFiller=document.createElement("div");this.barFiller.id="filler";this.barFiller.style.width=0+"px";this.barFiller.style.height=this.barHeight+"px";var parent=document.getElementById(parentId);var h2=parent.getElementsByTagName("h2")[0];parent.insertBefore(this.bar,h2);this.bar.appendChild(this.barFiller);},startBarTimer:function(){if(this.timeElapsed>=(this.requestUpdateTime)){clearInterval(this.barInterval);this.timeElapsed=0;this.newContentReady=false;this.retrieveNewContent();this.startBarShrinking();}else{this.barFiller.style.width=((this.timeElapsed/this.requestUpdateTime)*100)+"%";this.timeElapsed=this.timeElapsed+this.timeInterval;}},startBarShrinking:function(){var barFilling=new Tween(barTimer.barFiller.style,'left',barTimer.tweenType,0,barTimer.barWidth,barTimer.waitingTweenTime,'px');barFilling.onMotionFinished=function(){barTimer.barFiller.style.width=barTimer.barHeight+"px";barTimer.startBarWaiting();this.onMotionFinished=undefined;}
barFilling.start();},startBarWaiting:function(){if(this.newContentReady===true){barTimer.resetBarTimer();}else{var barSequence=new Sequence();barSequence.addChild(new Tween(barTimer.barFiller.style,'left',barTimer.tweenType,barTimer.leftPos,barTimer.rightPos,barTimer.waitingTweenTime,'px'));barSequence.addChild(new Tween(barTimer.barFiller.style,'left',barTimer.tweenType,barTimer.rightPos,barTimer.leftPos,barTimer.waitingTweenTime,'px'));barSequence.onMotionFinished=function(){barTimer.startBarWaiting();this.onMotionFinished=undefined;}
barSequence.start();}},retrieveNewContent:function(){barTimer.artist=$("#artist");barTimer.song=$("#song");barTimer.lastplayed=$("#lastplayed");var artistText=barTimer.artist.html().slice(0,-3);artistText=encodeURIComponent(artistText);var songText=encodeURIComponent(barTimer.song.html());var lastplayedText=encodeURIComponent(barTimer.lastplayed.html());$.ajax({type:"POST",url:"./_includes/php/site/ajax/Lastfm.php",data:"artist="+artistText+"&song="+songText+"&lastplayed="+lastplayedText,success:function(response){eval("barTimer.newContent = "+response);barTimer.newContentReady=true;if(barTimer.newContent['artistimg']){var fakeImage=new Image();fakeImage.src=barTimer.newContent['artistimg'];greyscale.preloadGreyscaleImage(fakeImage);}}});},resetBarTimer:function(){var barReset=new Tween(barTimer.barFiller.style,'left',barTimer.tweenType,barTimer.leftPos,barTimer.rightPos,barTimer.waitingTweenTime,'px');barReset.onMotionFinished=function(){if(barTimer.newContent['lastplayed']){$(barTimer.lastplayed).fadeOut(1000,function(){$(barTimer.lastplayed).html(barTimer.newContent['lastplayed']).fadeIn(1000);});}
if(barTimer.newContent['song']){barTimer.song.fadeOut(1000,function(){barTimer.song.text(barTimer.newContent['song']).fadeIn(1000);});}
if(barTimer.newContent['artist']){var jscript/*@cc_on=@_jscript_version@*/;if(jscript==5.5||jscript==5.6){$('#home #featured ul.actionnav').fadeOut(500);$('#home #featured p#poweredby').fadeOut(500);}
barTimer.artist.fadeOut(1000,function(){barTimer.artist.html(barTimer.newContent['artist']+' &ndash; ').fadeIn(1000);});var artisttext=$("#artisttext");artisttext.fadeOut(1000,function(){barTimer.newContent['artisttext']=barTimer.newContent['artisttext'].replace('http://ws.audioscrobbler.com/music/','http://www.last.fm/music/');artisttext.html(barTimer.newContent['artisttext']+'<a href="'+barTimer.newContent['artisturl']+'" rel="external">(read more)</a>').fadeIn(500);});var artistimg=$("#artistimg img");artistimg.fadeOut(1000,function(){greyscale.addGreyscaleImage(this);artistimg.attr({src:barTimer.newContent['artistimg'],alt:barTimer.newContent['artist'],title:barTimer.newContent['artist']});artistimg.fadeIn(1000);});$('#artisttext a').click(function(e){e.preventDefault();window.open($(this).attr('href'),"_blank");});}
barTimer.barFiller.style.width="0px";barTimer.barFiller.style.left="0px";barTimer.barInterval=setInterval('barTimer.startBarTimer()',barTimer.timeInterval);this.onMotionFinished=undefined;}
barReset.start();}};var CodeHighlighter={styleSets:new Array};CodeHighlighter.addStyle=function(name,rules){if([].push)this.styleSets.push({name:name,rules:rules,ignoreCase:arguments[2]||false})
function setEvent(){var old=window.onload;if(typeof window.onload!='function'){window.onload=function(){CodeHighlighter.init()}}else{window.onload=function(){old();CodeHighlighter.init();}}}
if(this.styleSets.length==1)setEvent();}
CodeHighlighter.init=function(){if(!document.getElementsByTagName)return;if("a".replace(/a/,function(){return"b"})!="b")return;var codeEls=document.getElementsByTagName("CODE");codeEls.filter=function(f){var a=new Array;for(var i=0;i<this.length;i++)if(f(this[i]))a[a.length]=this[i];return a;}
var rules=new Array;rules.toString=function(){var exps=new Array;for(var i=0;i<this.length;i++)exps.push(this[i].exp);return exps.join("|");}
function addRule(className,rule){var exp=(typeof rule.exp!="string")?String(rule.exp).substr(1,String(rule.exp).length-2):rule.exp;rules.push({className:className,exp:"("+exp+")",length:(exp.match(/(^|[^\\])\([^?]/g)||"").length+1,replacement:rule.replacement||null});}
function parse(text,ignoreCase){return text.replace(new RegExp(rules,(ignoreCase)?"gi":"g"),function(){var i=0,j=1,rule;while(rule=rules[i++]){if(arguments[j]){if(!rule.replacement)return"<span class=\""+rule.className+"\">"+arguments[0]+"</span>";else{var str=rule.replacement.replace("$0",rule.className);for(var k=1;k<=rule.length-1;k++)str=str.replace("$"+k,arguments[j+k]);return str;}}else j+=rule.length;}});}
function highlightCode(styleSet){var parsed;rules.length=0;var stylableEls=codeEls.filter(function(item){return(item.className.indexOf(styleSet.name)>=0)});for(var className in styleSet.rules)addRule(className,styleSet.rules[className]);for(var i=0;i<stylableEls.length;i++){if(/MSIE/.test(navigator.appVersion)&&stylableEls[i].parentNode.nodeName=='PRE'){stylableEls[i]=stylableEls[i].parentNode;parsed=stylableEls[i].innerHTML.replace(/(<code[^>]*>)([^<]*)<\/code>/i,function(){return arguments[1]+parse(arguments[2],styleSet.ignoreCase)+"</code>"});parsed=parsed.replace(/\n( *)/g,function(){var spaces="";for(var i=0;i<arguments[1].length;i++)spaces+=" ";return"\n"+spaces;});parsed=parsed.replace(/\t/g,"    ");parsed=parsed.replace(/\n(<\/\w+>)?/g,"<br />$1").replace(/<br \/>[\n\r\s]*<br \/>/g,"<p><br></p>");}else parsed=parse(stylableEls[i].innerHTML,styleSet.ignoreCase);stylableEls[i].innerHTML=parsed;}}
for(var i in this.styleSets)highlightCode(this.styleSets[i]);}
CodeHighlighter.addStyle("css",{comment:{exp:/\/\*[^*]*\*+([^\/][^*]*\*+)*\//},keyword:{exp:/@\w[\w\s]*/},selector:{exp:"([\\w-:\\[.#][^{};>]*)(?={)"},property:{exp:"([\\w-]+)(?=\\s*:)"},unit:{exp:/([0-9])(em|en|px|%|pt)\b/,replacement:"$1<span class=\"$0\">$2</span>"},url:{exp:/url\([^\)]*\)/}});CodeHighlighter.addStyle("html",{comment:{},tag:{exp:/(<\/?)([a-zA-Z]+\s?)/,replacement:"$1<span class=\"$0\">$2</span>"},string:{exp:/'[^']*'|"[^"]*"/},attribute:{exp:/\b([a-zA-Z-:]+)(=)/,replacement:"<span class=\"$0\">$1</span>$2"},doctype:{exp:/<!DOCTYPE([^&]|&[^g]|&g[^t])*>/}});CodeHighlighter.addStyle("javascript",{comment:{exp:/(\/\/[^\n]*\n)|(\/\*[^*]*\*+([^\/][^*]*\*+)*\/)/},brackets:{exp:/\(|\)/},string:{exp:/'[^']*'|"[^"]*"/},keywords:{exp:/\b(arguments|break|case|continue|default|delete|do|else|false|for|function|if|in|instanceof|new|null|return|switch|this|true|typeof|var|void|while|with)\b/},global:{exp:/\b(toString|valueOf|window|element|prototype|constructor|document|escape|unescape|parseInt|parseFloat|setTimeout|clearTimeout|setInterval|clearInterval|NaN|isNaN|Infinity)\b/}});CodeHighlighter.addStyle("php",{comment:{exp:/(\/\/[^\n]*\n)|(\/\*[^*]*\*+([^\/][^*]*\*+)*\/)/},brackets:{exp:/\(|\)/},string:{exp:/'[^']*'|"[^"]*"/},keywords:{exp:/\b(arguments|break|case|continue|default|delete|do|else|false|for|function|if|in|instanceof|new|null|return|switch|this|true|typeof|var|void|while|with)\b/},global:{exp:/\b(toString|valueOf|window|element|prototype|constructor|document|escape|unescape|parseInt|parseFloat|setTimeout|clearTimeout|setInterval|clearInterval|NaN|isNaN|Infinity)\b/}});;var tooltip=function(){var helper={};var currentTooltip=null;var timeout=null;var options={pause:250,transitionTime:100,className:"tooltip-block"};var init=function(){createTooltip();var tooltips=$('.tooltip');$(tooltips).each(function(counter){this.tooltipText=this.title;$(this).removeAttr("title");this.alt="";$(this).find('img').removeAttr('alt').removeAttr('title');$(this).bind('mouseover',function(e){save(this);});$(this).bind('mouseout',function(e){hide();});$(this).bind('click',function(e){hide();});});};var createTooltip=function(){helper.parent=$('<div class="'+options.className+'"><div class="inner"><h3></h3></div>').appendTo(document.body).hide();helper.title=$('h3',helper.parent);};var save=function(tipParent){if(tipParent==currentTooltip){return;}
currentTooltip=tipParent;timeout=setTimeout(show,options.pause);};var show=function(){timeout=null;title=currentTooltip.tooltipText;helper.title.html(title).show();helper.parent.removeClass("right").removeClass("bottom");var offset=$(currentTooltip).offset();var position=$(currentTooltip).position();var left=Math.round(offset.left-3);var top=Math.round(offset.top-helper.parent.height()-8);helper.parent.css({left:left,top:top});var v=viewport();var h=$(helper.parent[0]);if(offset.left>800){left-=Math.ceil(h.width()/2.1);helper.parent.css({left:left+'px'}).addClass("right");}
helper.parent.css({marginTop:"-10px",opacity:0,display:"block"}).animate({marginTop:0,opacity:1},options.transitionTime);};var viewport=function(){return{x:$(window).scrollLeft(),y:$(window).scrollTop(),cx:$(window).width(),cy:$(window).height()};};var hide=function(){if(timeout){clearTimeout(timeout);}
currentTooltip=null;helper.parent.stop().animate({marginTop:"-10px",opacity:0},options.transitionTime,function(){helper.parent.hide().css("opacity","");});};return{init:init};}();;var requiredFiles=['lib/array/array.js','lib/links/newwin.js','lib/print/printlinks.js','lib/tween/tween.js','lib/tween/sequence.js','lib/jquery/jquery-1.2.3.min.js','site/tabscroller.js','site/expand.js','site/areafader.js','site/portfoliomoreinfo.js','site/bartimer.js','lib/codehighlight/codehighlighter.js'];LibraryManager.addLoadEvent(function(){links.newWin();tabScroller.init();expand.init();printFootnoteLinks.init("content","footer-wrap");if(LibraryManager.pageId=="portfolio"){portfolioMoreInfo.init();}
if(LibraryManager.pageId=="home"){barTimer.init(150,5,"featured");}
var slideshow=document.getElementById('slideshow');if(slideshow){areaFader.init(5000,10,slideshow.className);}
tooltip.init({pause:500,transitionTime:100,className:"tooltip-block"});konami=new Konami();konami.code=function(){if(cookie.get('konami')){cookie.remove('konami','/');$('#bw').remove();if(!$.browser.msie){greyscale.hideGreyscaleImages();}}else{cookie.set('konami',true,0,'/');$('<link />').attr('id',"bw").attr('rel',"stylesheet").attr('type',"text/css").attr('media',"screen").attr('href',"/_includes/css/site/bw.css").appendTo('head');if(!$.browser.msie){greyscale.showGreyscaleImages();}}};konami.load();});$(window).load(function(){if(cookie.get('konami')){if(!$.browser.msie){greyscale.showGreyscaleImages();}}});
