function NavigationItem($element)
{if(typeof NavigationItem.COUNT=='undefined'){NavigationItem.COUNT=0;}
else{NavigationItem.COUNT++;}
var me=this;var callback;var disabled=false;var $clone;var index=NavigationItem.COUNT;var original_index = index;var $el=$element;var $overlay=m('div',{'class':'selection'});$overlay.css('display','none');$element.mouseenter(function(){if(disabled){return;}
me.select();});$element.mouseleave(function(){if(disabled){return;}
me.deselect();});function init(){$element.click(function(){if(!disabled&&callback&&callback.call){callback.call(me);}});}
function cloneIt(){$clone=$element.clone();$clone.mouseenter(function(){if(disabled){return;}
me.select();});$clone.mouseleave(function(){if(disabled){return;}
me.deselect();})
$clone.append($overlay);$element.parent().append($clone);}
function decloneIt(){$element.remove();$element=$clone;$clone=null;init();}
this.select=function(){$overlay.stop(true);$overlay.fadeTo(NavigationItem.FADE_SPEED,0.3);}
this.deselect=function(){$overlay.stop(true);$overlay.fadeOut(NavigationItem.FADE_SPEED);}
this.disable=function(){disabled=true;$element.css('cursor','default');}
this.enable=function(){disabled=false;$element.css('cursor','pointer');}
this.click=function(call){callback=call;}
this.index=function(){return index;}
this.original=function(){return original_index};
this.slideUp=function(fn){$element.animate({'height':'50'},NavigationItem.SLIDE_SPEED,fn);}
this.drop=function(){$element.css('height','700px');}
this.slideDown=function(fn){$element.animate({'height':'700px'},NavigationItem.SLIDE_SPEED,fn);}
this.raise=function(){$element.css('height','50px');}
this.slide=function(ix,fn){var new_index=index-ix;var old_index=index;if(new_index<0){new_index+=NavigationItem.COUNT+1;cloneIt();}
index=new_index;$element.animate({'left':(-10*ix+'%')},NavigationItem.SWITCH_STEP_SPEED*ix,fn);if($clone){$clone.animate({'left':(-10*ix+'%')},NavigationItem.SWITCH_STEP_SPEED*ix,function(){decloneIt();});}}
this.reset=function(){$element.css('left','0');}
this.page=function(){return $element.text();}
this.quickNav=function(ix){var new_index=index-ix;$element.stop(true);if(new_index<0){new_index+=NavigationItem.COUNT+1;cloneIt();decloneIt();}
index=new_index;if(index==0){this.drop();}
else{this.raise();}
init();}
this.element=function(){return $element;}
this.slideDown(init);$element.append($overlay);}
NavigationItem.FADE_SPEED=300;NavigationItem.SLIDE_SPEED=1000;NavigationItem.SWITCH_STEP_SPEED=300;function Navigation(links){var me=this;var items=[];var pageIndex=0;var spinning=false;var callback;var spun_callback;var first_time=true;var page;$(links).each(function(){var it=new NavigationItem($(this));it.click(loadPage);items.push(it);});function loadPage(){Navigator.spinner(true);location.hash='#'+this.element().attr('id').substr(0, this.element().attr('id').length - 5);pageIndex=this.index();if(pageIndex==0&&!first_time)return;first_time=false;if(callback&&callback.call){callback.call(me);}
each(function(last){this.disable();if(this.index()!=pageIndex){this.slideUp(spin);}
else{page=this.page();this.slideDown(spin);this.deselect();}});}
function spin(){if(spinning){return;}
spinning=true;each(function(last){this.slide(pageIndex,last?reset:null);});}
function reset(){spinning=false;if(spun_callback&&spun_callback.call){spun_callback.call(me);}
var new_items=[];each(function(last){this.reset();new_items[this.index()]=this;});items=new_items;}
function each(fn){if(!fn||!fn.call){return;}
for(var i=0;i<items.length;i++){fn.call(items[i],i+1==items.length);};}
this.loading=function(fn){callback=fn;}
this.enable=function(){each(function(){if(this.index()!=0)
this.enable();});}
this.spun=function(fn){spun_callback=fn;}
this.page=function(){return page.toLowerCase();}
this.quickNav=function(original){var index = 0;var k = 0; each(function(){if(items[k].original() == original) index = items[k].index(); k++;});var i=0;var new_items=[];each(function(){items[i].disable();items[i].quickNav(index);new_items[items[i].index()]=items[i];i++;});items=new_items;this.enable();}}
function ContentMask($content){var TOTAL=20;var bars=[];for(var i=0;i<TOTAL;i++){var bar=m('div',{'class':'mask'});bar.css('top',(95/TOTAL)*i+'%');bar.css('height',(200/TOTAL)+'%');var back='100% '+-((1/TOTAL)*i*600)+'px';bar.css('background-position',back);bars[i]=bar;$content.append(bar);}
this.mask=function(fn){var i=0;function ma(index){if(i>=TOTAL)return;bars[i].animate({'right':'0%'},ContentMask.MASK_SPEED,i+1==TOTAL?fn:null);i++;setTimeout(ma,ContentMask.MASK_INTERVAL);}
ma(0);}
this.unmask=function(fn){var i=0;function ma(index){if(i>=TOTAL)return;bars[i].animate({'right':'-101%'},ContentMask.MASK_SPEED,i+1==TOTAL?fn:null);i++;setTimeout(ma,ContentMask.MASK_INTERVAL);}
ma(0);}
ContentMask.instance=this;}
ContentMask.MASK_INTERVAL=50;ContentMask.MASK_SPEED=500;function Loader($content){var $element=m('div',{'id':'loader'});$element.css('display','none');$element.append(m('img',{'src':Navigator.theme()+'/images/loading.gif','alt':'Loading...'}));$content.append($element);this.show=function(fn,instant){if(typeof instant!='undefined'){$element.fadeIn(0);}
else{$element.fadeIn(Loader.FADE_SPEED,fn);}}
this.hide=function(fn,instant){if(typeof instant!='undefined'){$element.fadeOut(0);}
else{$element.fadeOut(Loader.FADE_SPEED,fn);}}
Loader.instance=this;}
Loader.FADE_SPEED=300;function m(tag,attr){var $el=$(document.createElement(tag));for(var o in attr){if(o=='text'){$el.text(attr[o]);}
else{$el.attr(o,attr[o]);}}
return $el;}
var Navigator={};(function(){var spinner = false;Navigator.spinner=function(spun){var sp = spinner;spinner = !!spun;return sp};var base;var theme_base;Navigator.base=function(b){if(base)return base;base=b;}
Navigator.theme=function(b){if(theme_base)return theme_base;theme_base=b;}})();Navigator.footLink=function(){$('#footer a').attr('href', Navigator.base() + '/' + window.location.hash.substr(1))};
