
var Fx=fx={};Fx.Base=function(){};Fx.Base.prototype={setOptions:function(options){this.options=Object.extend({onStart:function(){},onComplete:function(){},transition:Fx.Transitions.sineInOut,duration:500,unit:'px',wait:true,fps:50},options||{});},step:function(){var time=new Date().getTime();if(time<this.time+this.options.duration){this.cTime=time-this.time;this.setNow();}else{setTimeout(this.options.onComplete.bind(this,this.element),10);this.clearTimer();this.now=this.to;}
this.increase();},setNow:function(){this.now=this.compute(this.from,this.to);},compute:function(from,to){var change=to-from;return this.options.transition(this.cTime,from,change,this.options.duration);},clearTimer:function(){clearInterval(this.timer);this.timer=null;return this;},_start:function(from,to){if(!this.options.wait)this.clearTimer();if(this.timer)return;setTimeout(this.options.onStart.bind(this,this.element),10);this.from=from;this.to=to;this.time=new Date().getTime();this.timer=setInterval(this.step.bind(this),Math.round(1000/this.options.fps));return this;},custom:function(from,to){return this._start(from,to);},set:function(to){this.now=to;this.increase();return this;},hide:function(){return this.set(0);},setStyle:function(e,p,v){if(p=='opacity'){if(v==0&&e.style.visibility!="hidden")e.style.visibility="hidden";else if(e.style.visibility!="visible")e.style.visibility="visible";if(window.ActiveXObject)e.style.filter="alpha(opacity="+v*100+")";e.style.opacity=v;}else e.style[p]=v+this.options.unit;}};Fx.Style=Class.create();Fx.Style.prototype=Object.extend(new Fx.Base(),{initialize:function(el,property,options){this.element=$(el);this.setOptions(options);this.property=property.camelize();},increase:function(){this.setStyle(this.element,this.property,this.now);}});Fx.Styles=Class.create();Fx.Styles.prototype=Object.extend(new Fx.Base(),{initialize:function(el,options){this.element=$(el);this.setOptions(options);this.now={};},setNow:function(){for(p in this.from)this.now[p]=this.compute(this.from[p],this.to[p]);},custom:function(obj){if(this.timer&&this.options.wait)return;var from={};var to={};for(p in obj){from[p]=obj[p][0];to[p]=obj[p][1];}
return this._start(from,to);},increase:function(){for(var p in this.now)this.setStyle(this.element,p,this.now[p]);}});Fx.Transitions={linear:function(t,b,c,d){return c*t/d+b;},sineInOut:function(t,b,c,d){return-c/2*(Math.cos(Math.PI*t/d)-1)+b;}};Fx.Scroll=Class.create();Fx.Scroll.prototype=Object.extend(new Fx.Base(),{initialize:function(el,options){this.element=$(el);this.setOptions(options);this.element.style.overflow='hidden';},down:function(){return this.custom(this.element.scrollTop,this.element.scrollHeight-this.element.offsetHeight);},up:function(){return this.custom(this.element.scrollTop,0);},increase:function(){this.element.scrollTop=this.now;}});Fx.Color=Class.create();Fx.Color.prototype=Object.extend(new Fx.Base(),{initialize:function(el,property,options){this.element=$(el);this.setOptions(options);this.property=property.camelize();this.now=[];},custom:function(from,to){return this._start(from.hexToRgb(true),to.hexToRgb(true));},setNow:function(){[0,1,2].each(function(i){this.now[i]=Math.round(this.compute(this.from[i],this.to[i]));}.bind(this));},increase:function(){this.element.style[this.property]="rgb("+this.now[0]+","+this.now[1]+","+this.now[2]+")";}});Object.extend(String.prototype,{rgbToHex:function(array){var rgb=this.match(new RegExp('([\\d]{1,3})','g'));if(rgb[3]==0)return'transparent';var hex=[];for(var i=0;i<3;i++){var bit=(rgb[i]-0).toString(16);hex.push(bit.length==1?'0'+bit:bit);}
var hexText='#'+hex.join('');if(array)return hex;else return hexText;},hexToRgb:function(array){var hex=this.match(new RegExp('^[#]{0,1}([\\w]{1,2})([\\w]{1,2})([\\w]{1,2})$'));var rgb=[];for(var i=1;i<hex.length;i++){if(hex[i].length==1)hex[i]+=hex[i];rgb.push(parseInt(hex[i],16));}
var rgbText='rgb('+rgb.join(',')+')';if(array)return rgb;else return rgbText;}});Fx.Height=Class.create();Fx.Height.prototype=Object.extend(new Fx.Base(),{initialize:function(el,options){this.element=$(el);this.setOptions(options);this.element.style.overflow='hidden';},toggle:function(){if(this.element.offsetHeight>0)return this.custom(this.element.offsetHeight,0);else return this.custom(0,this.element.scrollHeight);},show:function(){return this.set(this.element.scrollHeight);},increase:function(){this.setStyle(this.element,'height',this.now);}});Fx.Width=Class.create();Fx.Width.prototype=Object.extend(new Fx.Base(),{initialize:function(el,options){this.element=$(el);this.setOptions(options);this.element.style.overflow='hidden';this.iniWidth=this.element.offsetWidth;},toggle:function(){if(this.element.offsetWidth>0)return this.custom(this.element.offsetWidth,0);else return this.custom(0,this.iniWidth);},show:function(){return this.set(this.iniWidth);},increase:function(){this.setStyle(this.element,'width',this.now);}});Fx.Opacity=Class.create();Fx.Opacity.prototype=Object.extend(new Fx.Base(),{initialize:function(el,options){this.element=$(el);this.setOptions(options);this.now=1;},toggle:function(){if(this.now>0)return this.custom(1,0);else return this.custom(0,1);},show:function(){return this.set(1);},increase:function(){this.setStyle(this.element,'opacity',this.now);}});Fx.Transitions={linear:function(t,b,c,d){return c*t/d+b;},quadIn:function(t,b,c,d){return c*(t/=d)*t+b;},quadOut:function(t,b,c,d){return-c*(t/=d)*(t-2)+b;},quadInOut:function(t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b;},cubicIn:function(t,b,c,d){return c*(t/=d)*t*t+b;},cubicOut:function(t,b,c,d){return c*((t=t/d-1)*t*t+1)+b;},cubicInOut:function(t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t+b;return c/2*((t-=2)*t*t+2)+b;},quartIn:function(t,b,c,d){return c*(t/=d)*t*t*t+b;},quartOut:function(t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b;},quartInOut:function(t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t+b;return-c/2*((t-=2)*t*t*t-2)+b;},quintIn:function(t,b,c,d){return c*(t/=d)*t*t*t*t+b;},quintOut:function(t,b,c,d){return c*((t=t/d-1)*t*t*t*t+1)+b;},quintInOut: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;},sineIn:function(t,b,c,d){return-c*Math.cos(t/d*(Math.PI/2))+c+b;},sineOut:function(t,b,c,d){return c*Math.sin(t/d*(Math.PI/2))+b;},sineInOut:function(t,b,c,d){return-c/2*(Math.cos(Math.PI*t/d)-1)+b;},expoIn:function(t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b;},expoOut:function(t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b;},expoInOut:function(t,b,c,d){if(t==0)return b;if(t==d)return b+c;if((t/=d/2)<1)return c/2*Math.pow(2,10*(t-1))+b;return c/2*(-Math.pow(2,-10*--t)+2)+b;},circIn:function(t,b,c,d){return-c*(Math.sqrt(1-(t/=d)*t)-1)+b;},circOut:function(t,b,c,d){return c*Math.sqrt(1-(t=t/d-1)*t)+b;},circInOut:function(t,b,c,d){if((t/=d/2)<1)return-c/2*(Math.sqrt(1-t*t)-1)+b;return c/2*(Math.sqrt(1-(t-=2)*t)+1)+b;},elasticIn: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=1;if(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;},elasticOut: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=1;if(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;},elasticInOut:function(t,b,c,d,a,p){if(t==0)return b;if((t/=d/2)==2)return b+c;if(!p)p=d*(.3*1.5);if(!a)a=1;if(a<Math.abs(c)){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;},backIn:function(t,b,c,d,s){if(!s)s=1.70158;return c*(t/=d)*t*((s+1)*t-s)+b;},backOut:function(t,b,c,d,s){if(!s)s=1.70158;return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b;},backInOut:function(t,b,c,d,s){if(!s)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;},bounceIn:function(t,b,c,d){return c-Fx.Transitions.bounceOut(d-t,0,c,d)+b;},bounceOut: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;}},bounceInOut:function(t,b,c,d){if(t<d/2)return Fx.Transitions.bounceIn(t*2,0,c,d)*.5+b;return Fx.Transitions.bounceOut(t*2-d,0,c,d)*.5+c*.5+b;}};var detect=navigator.userAgent.toLowerCase();var OS,browser,version,total,thestring;function getBrowserInfo(){if(checkIt('konqueror')){browser="Konqueror";OS="Linux";}
else if(checkIt('safari'))browser="Safari"
else if(checkIt('omniweb'))browser="OmniWeb"
else if(checkIt('opera'))browser="Opera"
else if(checkIt('webtv'))browser="WebTV";else if(checkIt('icab'))browser="iCab"
else if(checkIt('msie'))browser="Internet Explorer"
else if(!checkIt('compatible')){browser="Netscape Navigator"
version=detect.charAt(8);}
else browser="An unknown browser";if(!version)version=detect.charAt(place+thestring.length);if(!OS){if(checkIt('linux'))OS="Linux";else if(checkIt('x11'))OS="Unix";else if(checkIt('mac'))OS="Mac"
else if(checkIt('win'))OS="Windows"
else OS="an unknown operating system";}}
function checkIt(string){place=detect.indexOf(string)+1;thestring=string;return place;}
Event.observe(window,'load',initialize,false);Event.observe(window,'load',getBrowserInfo,false);Event.observe(window,'unload',Event.unloadCache,false);var lightbox=Class.create();lightbox.prototype={yPos:0,xPos:0,initialize:function(ctrl){if(ctrl){this.content=ctrl.rel;this.displayDiv=ctrl.rel;Event.observe(ctrl,'click',this.activate.bindAsEventListener(this),false);ctrl.onclick=function(){return false;};}},initCallable:function(rel){this.content=rel;this.displayDiv=rel},activate:function(){if(browser=='Internet Explorer'){this.getScroll();this.prepareIE('100%','hidden');this.setScroll(0,0);this.hideSelects('hidden');}
this.displayLightbox("block");},prepareIE:function(height,overflow){bod=document.getElementsByTagName('body')[0];bod.style.height=height;bod.style.overflow=overflow;htm=document.getElementsByTagName('html')[0];htm.style.height=height;htm.style.overflow=overflow;},hideSelects:function(visibility){selects=document.getElementsByTagName('select');for(i=0;i<selects.length;i++){selects[i].style.visibility=visibility;}},getScroll:function(){if(self.pageYOffset){this.yPos=self.pageYOffset;}else if(document.documentElement&&document.documentElement.scrollTop){this.yPos=document.documentElement.scrollTop;}else if(document.body){this.yPos=document.body.scrollTop;}},setScroll:function(x,y){window.scrollTo(x,y);},displayLightbox:function(display){if(this.content!="shazamWait"){$('overlay').style.display=display;}
$('lightbox').style.display=display;if(display!='none')this.loadInfo();},loadInfo:function(){divbox=document.getElementById(this.displayDiv);info="<div id='lbContent'>"+divbox.innerHTML+"</div>";new Insertion.Before($('lbLoadMessage'),info)
$('lightbox').className="done";this.actions();},processInfo:function(response){info="<div id='lbContent'>"+response.responseText+"</div>";new Insertion.Before($('lbLoadMessage'),info)
$('lightbox').className="done";this.actions();},actions:function(){lbActions=document.getElementsByClassName('lbAction');for(i=0;i<lbActions.length;i++){Event.observe(lbActions[i],'click',this[lbActions[i].rel].bindAsEventListener(this),false);lbActions[i].onclick=function(){return false;};}},insert:function(e){link=Event.element(e).parentNode;Element.remove($('lbContent'));var myAjax=new Ajax.Request(link.href,{method:'post',parameters:"",onComplete:this.processInfo.bindAsEventListener(this)});},deactivate:function(){Element.remove($('lbContent'));if(browser=="Internet Explorer"){this.setScroll(0,this.yPos);this.prepareIE("auto","auto");this.hideSelects("visible");}
this.displayLightbox("none");}}
function initialize(){addLightboxMarkup();lbox=document.getElementsByClassName('lbOn');for(i=0;i<lbox.length;i++){valid=new lightbox(lbox[i]);}}
function addLightboxMarkup(){bod=document.getElementsByTagName('body')[0];overlay=document.createElement('div');overlay.id='overlay';lb=document.createElement('div');lb.id='lightbox';lb.className='loading';lb.innerHTML='<div id="lbLoadMessage">'+''+'</div>';bod.appendChild(overlay);bod.appendChild(lb);}
