/*
 * jQuery Cycle Plugin (with Transition Definitions)
 * Examples and documentation at: http://jquery.malsup.com/cycle/
 * Copyright (c) 2007-2010 M. Alsup
 * Version: 2.99 (12-MAR-2011)
 * Dual licensed under the MIT and GPL licenses.
 * http://jquery.malsup.com/license.html
 * Requires: jQuery v1.3.2 or later
 */
(function($){
	var ver="2.99";
	if($.support==undefined){
		$.support={
			opacity:!($.browser.msie)
			};

}
function debug(s){
	$.fn.cycle.debug&&log(s);
}
function log(){
	window.console&&console.log&&console.log("[cycle] "+Array.prototype.join.call(arguments," "));
}
$.expr[":"].paused=function(el){
	return el.cyclePause;
};

$.fn.cycle=function(options,arg2){
	var o={
		s:this.selector,
		c:this.context
		};

	if(this.length===0&&options!="stop"){
		if(!$.isReady&&o.s){
			log("DOM not ready, queuing slideshow");
			$(function(){
				$(o.s,o.c).cycle(options,arg2);
			});
			return this;
		}
		log("terminating; zero elements found by selector"+($.isReady?"":" (DOM not ready)"));
		return this;
	}
	return this.each(function(){
		var opts=handleArguments(this,options,arg2);
		if(opts===false){
			return;
		}
		opts.updateActivePagerLink=opts.updateActivePagerLink||$.fn.cycle.updateActivePagerLink;
		if(this.cycleTimeout){
			clearTimeout(this.cycleTimeout);
		}
		this.cycleTimeout=this.cyclePause=0;
		var $cont=$(this);
		var $slides=opts.slideExpr?$(opts.slideExpr,this):$cont.children();
		var els=$slides.get();
		if(els.length<2){
			log("terminating; too few slides: "+els.length);
			return;
		}
		var opts2=buildOptions($cont,$slides,els,opts,o);
		if(opts2===false){
			return;
		}
		var startTime=opts2.continuous?10:getTimeout(els[opts2.currSlide],els[opts2.nextSlide],opts2,!opts2.backwards);
		if(startTime){
			startTime+=(opts2.delay||0);
			if(startTime<10){
				startTime=10;
			}
			debug("first timeout: "+startTime);
			this.cycleTimeout=setTimeout(function(){
				go(els,opts2,0,!opts.backwards);
			},startTime);
		}
	});
};

function handleArguments(cont,options,arg2){
	if(cont.cycleStop==undefined){
		cont.cycleStop=0;
	}
	if(options===undefined||options===null){
		options={};

}
if(options.constructor==String){
	switch(options){
		case"destroy":case"stop":
			var opts=$(cont).data("cycle.opts");
			if(!opts){
			return false;
		}
		cont.cycleStop++;
		if(cont.cycleTimeout){
			clearTimeout(cont.cycleTimeout);
		}
		cont.cycleTimeout=0;
		$(cont).removeData("cycle.opts");
			if(options=="destroy"){
			destroy(opts);
		}
		return false;
		case"toggle":
			cont.cyclePause=(cont.cyclePause===1)?0:1;
			checkInstantResume(cont.cyclePause,arg2,cont);
			return false;
		case"pause":
			cont.cyclePause=1;
			return false;
		case"resume":
			cont.cyclePause=0;
			checkInstantResume(false,arg2,cont);
			return false;
		case"prev":case"next":
			var opts=$(cont).data("cycle.opts");
			if(!opts){
			log('options not found, "prev/next" ignored');
			return false;
		}
		$.fn.cycle[options](opts);
			return false;
		default:
			options={
			fx:options
		};

}
return options;
}else{
	if(options.constructor==Number){
		var num=options;
		options=$(cont).data("cycle.opts");
		if(!options){
			log("options not found, can not advance slide");
			return false;
		}
		if(num<0||num>=options.elements.length){
			log("invalid slide index: "+num);
			return false;
		}
		options.nextSlide=num;
		if(cont.cycleTimeout){
			clearTimeout(cont.cycleTimeout);
			cont.cycleTimeout=0;
		}
		if(typeof arg2=="string"){
			options.oneTimeFx=arg2;
		}
		go(options.elements,options,1,num>=options.currSlide);
		return false;
	}
}
return options;
function checkInstantResume(isPaused,arg2,cont){
	if(!isPaused&&arg2===true){
		var options=$(cont).data("cycle.opts");
		if(!options){
			log("options not found, can not resume");
			return false;
		}
		if(cont.cycleTimeout){
			clearTimeout(cont.cycleTimeout);
			cont.cycleTimeout=0;
		}
		go(options.elements,options,1,!options.backwards);
	}
}
}
function removeFilter(el,opts){
	if(!$.support.opacity&&opts.cleartype&&el.style.filter){
		try{
			el.style.removeAttribute("filter");
		}catch(smother){}
	}
}
function destroy(opts){
	if(opts.next){
		$(opts.next).unbind(opts.prevNextEvent);
	}
	if(opts.prev){
		$(opts.prev).unbind(opts.prevNextEvent);
	}
	if(opts.pager||opts.pagerAnchorBuilder){
		$.each(opts.pagerAnchors||[],function(){
			this.unbind().remove();
		});
	}
	opts.pagerAnchors=null;
	if(opts.destroy){
		opts.destroy(opts);
	}
}
function buildOptions($cont,$slides,els,options,o){
	var opts=$.extend({},$.fn.cycle.defaults,options||{},$.metadata?$cont.metadata():$.meta?$cont.data():{});
	if(opts.autostop){
		opts.countdown=opts.autostopCount||els.length;
	}
	var cont=$cont[0];
	$cont.data("cycle.opts",opts);
	opts.$cont=$cont;
	opts.stopCount=cont.cycleStop;
	opts.elements=els;
	opts.before=opts.before?[opts.before]:[];
	opts.after=opts.after?[opts.after]:[];
	if(!$.support.opacity&&opts.cleartype){
		opts.after.push(function(){
			removeFilter(this,opts);
		});
	}
	if(opts.continuous){
		opts.after.push(function(){
			go(els,opts,0,!opts.backwards);
		});
	}
	saveOriginalOpts(opts);
	if(!$.support.opacity&&opts.cleartype&&!opts.cleartypeNoBg){
		clearTypeFix($slides);
	}
	if($cont.css("position")=="static"){
		$cont.css("position","relative");
	}
	if(opts.width){
		$cont.width(opts.width);
	}
	if(opts.height&&opts.height!="auto"){
		$cont.height(opts.height);
	}
	if(opts.startingSlide){
		opts.startingSlide=parseInt(opts.startingSlide);
	}else{
		if(opts.backwards){
			opts.startingSlide=els.length-1;
		}
	}
	if(opts.random){
	opts.randomMap=[];
	for(var i=0;i<els.length;i++){
		opts.randomMap.push(i);
	}
	opts.randomMap.sort(function(a,b){
		return Math.random()-0.5;
	});
	opts.randomIndex=1;
	opts.startingSlide=opts.randomMap[1];
}else{
	if(opts.startingSlide>=els.length){
		opts.startingSlide=0;
	}
}
opts.currSlide=opts.startingSlide||0;
var first=opts.startingSlide;
$slides.css({
	position:"absolute",
	top:0,
	left:0
}).hide().each(function(i){
	var z;
	if(opts.backwards){
		z=first?i<=first?els.length+(i-first):first-i:els.length-i;
	}else{
		z=first?i>=first?els.length-(i-first):first-i:els.length-i;
	}
	$(this).css("z-index",z);
});
$(els[first]).css("opacity",1).show();
removeFilter(els[first],opts);
if(opts.fit&&opts.width){
	$slides.width(opts.width);
}
if(opts.fit&&opts.height&&opts.height!="auto"){
	$slides.height(opts.height);
}
var reshape=opts.containerResize&&!$cont.innerHeight();
if(reshape){
	var maxw=0,maxh=0;
	for(var j=0;j<els.length;j++){
		var $e=$(els[j]),e=$e[0],w=$e.outerWidth(),h=$e.outerHeight();
		if(!w){
			w=e.offsetWidth||e.width||$e.attr("width");
		}
		if(!h){
			h=e.offsetHeight||e.height||$e.attr("height");
		}
		maxw=w>maxw?w:maxw;
		maxh=h>maxh?h:maxh;
	}
	if(maxw>0&&maxh>0){
		$cont.css({
			width:maxw+"px",
			height:maxh+"px"
			});
	}
}
if(opts.pause){
	$cont.hover(function(){
		this.cyclePause++;
	},function(){
		this.cyclePause--;
	});
}
if(supportMultiTransitions(opts)===false){
	return false;
}
var requeue=false;
options.requeueAttempts=options.requeueAttempts||0;
$slides.each(function(){
	var $el=$(this);
	this.cycleH=(opts.fit&&opts.height)?opts.height:($el.height()||this.offsetHeight||this.height||$el.attr("height")||0);
	this.cycleW=(opts.fit&&opts.width)?opts.width:($el.width()||this.offsetWidth||this.width||$el.attr("width")||0);
	if($el.is("img")){
		var loadingIE=($.browser.msie&&this.cycleW==28&&this.cycleH==30&&!this.complete);
		var loadingFF=($.browser.mozilla&&this.cycleW==34&&this.cycleH==19&&!this.complete);
		var loadingOp=($.browser.opera&&((this.cycleW==42&&this.cycleH==19)||(this.cycleW==37&&this.cycleH==17))&&!this.complete);
		var loadingOther=(this.cycleH==0&&this.cycleW==0&&!this.complete);
		if(loadingIE||loadingFF||loadingOp||loadingOther){
			if(o.s&&opts.requeueOnImageNotLoaded&&++options.requeueAttempts<100){
				log(options.requeueAttempts," - img slide not loaded, requeuing slideshow: ",this.src,this.cycleW,this.cycleH);
				setTimeout(function(){
					$(o.s,o.c).cycle(options);
				},opts.requeueTimeout);
				requeue=true;
				return false;
			}else{
				log("could not determine size of image: "+this.src,this.cycleW,this.cycleH);
			}
		}
	}
return true;
});
if(requeue){
	return false;
}
opts.cssBefore=opts.cssBefore||{};

opts.cssAfter=opts.cssAfter||{};

opts.cssFirst=opts.cssFirst||{};

opts.animIn=opts.animIn||{};

opts.animOut=opts.animOut||{};

$slides.not(":eq("+first+")").css(opts.cssBefore);
$($slides[first]).css(opts.cssFirst);
if(opts.timeout){
	opts.timeout=parseInt(opts.timeout);
	if(opts.speed.constructor==String){
		opts.speed=$.fx.speeds[opts.speed]||parseInt(opts.speed);
	}
	if(!opts.sync){
		opts.speed=opts.speed/2;
	}
	var buffer=opts.fx=="none"?0:opts.fx=="shuffle"?500:250;
	while((opts.timeout-opts.speed)<buffer){
		opts.timeout+=opts.speed;
	}
}
if(opts.easing){
	opts.easeIn=opts.easeOut=opts.easing;
}
if(!opts.speedIn){
	opts.speedIn=opts.speed;
}
if(!opts.speedOut){
	opts.speedOut=opts.speed;
}
opts.slideCount=els.length;
opts.currSlide=opts.lastSlide=first;
if(opts.random){
	if(++opts.randomIndex==els.length){
		opts.randomIndex=0;
	}
	opts.nextSlide=opts.randomMap[opts.randomIndex];
}else{
	if(opts.backwards){
		opts.nextSlide=opts.startingSlide==0?(els.length-1):opts.startingSlide-1;
	}else{
		opts.nextSlide=opts.startingSlide>=(els.length-1)?0:opts.startingSlide+1;
	}
}
if(!opts.multiFx){
	var init=$.fn.cycle.transitions[opts.fx];
	if($.isFunction(init)){
		init($cont,$slides,opts);
	}else{
		if(opts.fx!="custom"&&!opts.multiFx){
			log("unknown transition: "+opts.fx,"; slideshow terminating");
			return false;
		}
	}
}
var e0=$slides[first];
if(opts.before.length){
	opts.before[0].apply(e0,[e0,e0,opts,true]);
}
if(opts.after.length){
	opts.after[0].apply(e0,[e0,e0,opts,true]);
}
if(opts.next){
	$(opts.next).bind(opts.prevNextEvent,function(){
		return advance(opts,1);
	});
}
if(opts.prev){
	$(opts.prev).bind(opts.prevNextEvent,function(){
		return advance(opts,0);
	});
}
if(opts.pager||opts.pagerAnchorBuilder){
	buildPager(els,opts);
}
exposeAddSlide(opts,els);
return opts;
}
function saveOriginalOpts(opts){
	opts.original={
		before:[],
		after:[]
	};

	opts.original.cssBefore=$.extend({},opts.cssBefore);
	opts.original.cssAfter=$.extend({},opts.cssAfter);
	opts.original.animIn=$.extend({},opts.animIn);
	opts.original.animOut=$.extend({},opts.animOut);
	$.each(opts.before,function(){
		opts.original.before.push(this);
	});
	$.each(opts.after,function(){
		opts.original.after.push(this);
	});
}
function supportMultiTransitions(opts){
	var i,tx,txs=$.fn.cycle.transitions;
	if(opts.fx.indexOf(",")>0){
		opts.multiFx=true;
		opts.fxs=opts.fx.replace(/\s*/g,"").split(",");
		for(i=0;i<opts.fxs.length;i++){
			var fx=opts.fxs[i];
			tx=txs[fx];
			if(!tx||!txs.hasOwnProperty(fx)||!$.isFunction(tx)){
				log("discarding unknown transition: ",fx);
				opts.fxs.splice(i,1);
				i--;
			}
		}
		if(!opts.fxs.length){
		log("No valid transitions named; slideshow terminating.");
		return false;
	}
}else{
	if(opts.fx=="all"){
		opts.multiFx=true;
		opts.fxs=[];
		for(p in txs){
			tx=txs[p];
			if(txs.hasOwnProperty(p)&&$.isFunction(tx)){
				opts.fxs.push(p);
			}
		}
		}
	}
if(opts.multiFx&&opts.randomizeEffects){
	var r1=Math.floor(Math.random()*20)+30;
	for(i=0;i<r1;i++){
		var r2=Math.floor(Math.random()*opts.fxs.length);
		opts.fxs.push(opts.fxs.splice(r2,1)[0]);
	}
	debug("randomized fx sequence: ",opts.fxs);
}
return true;
}
function exposeAddSlide(opts,els){
	opts.addSlide=function(newSlide,prepend){
		var $s=$(newSlide),s=$s[0];
		if(!opts.autostopCount){
			opts.countdown++;
		}
		els[prepend?"unshift":"push"](s);
		if(opts.els){
			opts.els[prepend?"unshift":"push"](s);
		}
		opts.slideCount=els.length;
		$s.css("position","absolute");
		$s[prepend?"prependTo":"appendTo"](opts.$cont);
		if(prepend){
			opts.currSlide++;
			opts.nextSlide++;
		}
		if(!$.support.opacity&&opts.cleartype&&!opts.cleartypeNoBg){
			clearTypeFix($s);
		}
		if(opts.fit&&opts.width){
			$s.width(opts.width);
		}
		if(opts.fit&&opts.height&&opts.height!="auto"){
			$s.height(opts.height);
		}
		s.cycleH=(opts.fit&&opts.height)?opts.height:$s.height();
		s.cycleW=(opts.fit&&opts.width)?opts.width:$s.width();
		$s.css(opts.cssBefore);
		if(opts.pager||opts.pagerAnchorBuilder){
			$.fn.cycle.createPagerAnchor(els.length-1,s,$(opts.pager),els,opts);
		}
		if($.isFunction(opts.onAddSlide)){
			opts.onAddSlide($s);
		}else{
			$s.hide();
		}
	};

}
$.fn.cycle.resetState=function(opts,fx){
	fx=fx||opts.fx;
	opts.before=[];
	opts.after=[];
	opts.cssBefore=$.extend({},opts.original.cssBefore);
	opts.cssAfter=$.extend({},opts.original.cssAfter);
	opts.animIn=$.extend({},opts.original.animIn);
	opts.animOut=$.extend({},opts.original.animOut);
	opts.fxFn=null;
	$.each(opts.original.before,function(){
		opts.before.push(this);
	});
	$.each(opts.original.after,function(){
		opts.after.push(this);
	});
	var init=$.fn.cycle.transitions[fx];
	if($.isFunction(init)){
		init(opts.$cont,$(opts.elements),opts);
	}
};

function go(els,opts,manual,fwd){
	if(manual&&opts.busy&&opts.manualTrump){
		debug("manualTrump in go(), stopping active transition");
		$(els).stop(true,true);
		opts.busy=0;
	}
	if(opts.busy){
		debug("transition active, ignoring new tx request");
		return;
	}
	var p=opts.$cont[0],curr=els[opts.currSlide],next=els[opts.nextSlide];
	if(p.cycleStop!=opts.stopCount||p.cycleTimeout===0&&!manual){
		return;
	}
	if(!manual&&!p.cyclePause&&!opts.bounce&&((opts.autostop&&(--opts.countdown<=0))||(opts.nowrap&&!opts.random&&opts.nextSlide<opts.currSlide))){
		if(opts.end){
			opts.end(opts);
		}
		return;
	}
	var changed=false;
	if((manual||!p.cyclePause)&&(opts.nextSlide!=opts.currSlide)){
		changed=true;
		var fx=opts.fx;
		curr.cycleH=curr.cycleH||$(curr).height();
		curr.cycleW=curr.cycleW||$(curr).width();
		next.cycleH=next.cycleH||$(next).height();
		next.cycleW=next.cycleW||$(next).width();
		if(opts.multiFx){
			if(opts.lastFx==undefined||++opts.lastFx>=opts.fxs.length){
				opts.lastFx=0;
			}
			fx=opts.fxs[opts.lastFx];
			opts.currFx=fx;
		}
		if(opts.oneTimeFx){
			fx=opts.oneTimeFx;
			opts.oneTimeFx=null;
		}
		$.fn.cycle.resetState(opts,fx);
		if(opts.before.length){
			$.each(opts.before,function(i,o){
				if(p.cycleStop!=opts.stopCount){
					return;
				}
				o.apply(next,[curr,next,opts,fwd]);
			});
		}
		var after=function(){
			opts.busy=0;
			$.each(opts.after,function(i,o){
				if(p.cycleStop!=opts.stopCount){
					return;
				}
				o.apply(next,[curr,next,opts,fwd]);
			});
		};

		debug("tx firing("+fx+"); currSlide: "+opts.currSlide+"; nextSlide: "+opts.nextSlide);
		opts.busy=1;
		if(opts.fxFn){
			opts.fxFn(curr,next,opts,after,fwd,manual&&opts.fastOnEvent);
		}else{
			if($.isFunction($.fn.cycle[opts.fx])){
				$.fn.cycle[opts.fx](curr,next,opts,after,fwd,manual&&opts.fastOnEvent);
			}else{
				$.fn.cycle.custom(curr,next,opts,after,fwd,manual&&opts.fastOnEvent);
			}
		}
	}
if(changed||opts.nextSlide==opts.currSlide){
	opts.lastSlide=opts.currSlide;
	if(opts.random){
		opts.currSlide=opts.nextSlide;
		if(++opts.randomIndex==els.length){
			opts.randomIndex=0;
		}
		opts.nextSlide=opts.randomMap[opts.randomIndex];
		if(opts.nextSlide==opts.currSlide){
			opts.nextSlide=(opts.currSlide==opts.slideCount-1)?0:opts.currSlide+1;
		}
	}else{
	if(opts.backwards){
		var roll=(opts.nextSlide-1)<0;
		if(roll&&opts.bounce){
			opts.backwards=!opts.backwards;
			opts.nextSlide=1;
			opts.currSlide=0;
		}else{
			opts.nextSlide=roll?(els.length-1):opts.nextSlide-1;
			opts.currSlide=roll?0:opts.nextSlide+1;
		}
	}else{
	var roll=(opts.nextSlide+1)==els.length;
	if(roll&&opts.bounce){
		opts.backwards=!opts.backwards;
		opts.nextSlide=els.length-2;
		opts.currSlide=els.length-1;
	}else{
		opts.nextSlide=roll?0:opts.nextSlide+1;
		opts.currSlide=roll?els.length-1:opts.nextSlide-1;
	}
}
}
}
if(changed&&opts.pager){
	opts.updateActivePagerLink(opts.pager,opts.currSlide,opts.activePagerClass);
}
var ms=0;
if(opts.timeout&&!opts.continuous){
	ms=getTimeout(els[opts.currSlide],els[opts.nextSlide],opts,fwd);
}else{
	if(opts.continuous&&p.cyclePause){
		ms=10;
	}
}
if(ms>0){
	p.cycleTimeout=setTimeout(function(){
		go(els,opts,0,!opts.backwards);
	},ms);
}
}
$.fn.cycle.updateActivePagerLink=function(pager,currSlide,clsName){
	$(pager).each(function(){
		$(this).children().removeClass(clsName).eq(currSlide).addClass(clsName);
	});
};

function getTimeout(curr,next,opts,fwd){
	if(opts.timeoutFn){
		var t=opts.timeoutFn.call(curr,curr,next,opts,fwd);
		while(opts.fx!="none"&&(t-opts.speed)<250){
			t+=opts.speed;
		}
		debug("calculated timeout: "+t+"; speed: "+opts.speed);
		if(t!==false){
			return t;
		}
	}
	return opts.timeout;
}
$.fn.cycle.next=function(opts){
	advance(opts,1);
};

$.fn.cycle.prev=function(opts){
	advance(opts,0);
};

function advance(opts,moveForward){
	var val=moveForward?1:-1;
	var els=opts.elements;
	var p=opts.$cont[0],timeout=p.cycleTimeout;
	if(timeout){
		clearTimeout(timeout);
		p.cycleTimeout=0;
	}
	if(opts.random&&val<0){
		opts.randomIndex--;
		if(--opts.randomIndex==-2){
			opts.randomIndex=els.length-2;
		}else{
			if(opts.randomIndex==-1){
				opts.randomIndex=els.length-1;
			}
		}
		opts.nextSlide=opts.randomMap[opts.randomIndex];
}else{
	if(opts.random){
		opts.nextSlide=opts.randomMap[opts.randomIndex];
	}else{
		opts.nextSlide=opts.currSlide+val;
		if(opts.nextSlide<0){
			if(opts.nowrap){
				return false;
			}
			opts.nextSlide=els.length-1;
		}else{
			if(opts.nextSlide>=els.length){
				if(opts.nowrap){
					return false;
				}
				opts.nextSlide=0;
			}
		}
	}
}
var cb=opts.onPrevNextEvent||opts.prevNextClick;
if($.isFunction(cb)){
	cb(val>0,opts.nextSlide,els[opts.nextSlide]);
}
go(els,opts,1,moveForward);
return false;
}
function buildPager(els,opts){
	var $p=$(opts.pager);
	$.each(els,function(i,o){
		$.fn.cycle.createPagerAnchor(i,o,$p,els,opts);
	});
	opts.updateActivePagerLink(opts.pager,opts.startingSlide,opts.activePagerClass);
}
$.fn.cycle.createPagerAnchor=function(i,el,$p,els,opts){
	var a;
	if($.isFunction(opts.pagerAnchorBuilder)){
		a=opts.pagerAnchorBuilder(i,el);
		debug("pagerAnchorBuilder("+i+", el) returned: "+a);
	}else{
		a='<a href="#">'+(i+1)+"</a>";
	}
	if(!a){
		return;
	}
	var $a=$(a);
	if($a.parents("body").length===0){
		var arr=[];
		if($p.length>1){
			$p.each(function(){
				var $clone=$a.clone(true);
				$(this).append($clone);
				arr.push($clone[0]);
			});
			$a=$(arr);
		}else{
			$a.appendTo($p);
		}
	}
	opts.pagerAnchors=opts.pagerAnchors||[];
opts.pagerAnchors.push($a);
$a.bind(opts.pagerEvent,function(e){
	e.preventDefault();
	opts.nextSlide=i;
	var p=opts.$cont[0],timeout=p.cycleTimeout;
	if(timeout){
		clearTimeout(timeout);
		p.cycleTimeout=0;
	}
	var cb=opts.onPagerEvent||opts.pagerClick;
	if($.isFunction(cb)){
		cb(opts.nextSlide,els[opts.nextSlide]);
	}
	go(els,opts,1,opts.currSlide<i);
});
if(!/^click/.test(opts.pagerEvent)&&!opts.allowPagerClickBubble){
	$a.bind("click.cycle",function(){
		return false;
	});
}
if(opts.pauseOnPagerHover){
	$a.hover(function(){
		opts.$cont[0].cyclePause++;
	},function(){
		opts.$cont[0].cyclePause--;
	});
}
};

$.fn.cycle.hopsFromLast=function(opts,fwd){
	var hops,l=opts.lastSlide,c=opts.currSlide;
	if(fwd){
		hops=c>l?c-l:opts.slideCount-l;
	}else{
		hops=c<l?l-c:l+opts.slideCount-c;
	}
	return hops;
};

function clearTypeFix($slides){
	debug("applying clearType background-color hack");
	function hex(s){
		s=parseInt(s).toString(16);
		return s.length<2?"0"+s:s;
	}
	function getBg(e){
		for(;e&&e.nodeName.toLowerCase()!="html";e=e.parentNode){
			var v=$.css(e,"background-color");
			if(v&&v.indexOf("rgb")>=0){
				var rgb=v.match(/\d+/g);
				return"#"+hex(rgb[0])+hex(rgb[1])+hex(rgb[2]);
			}
			if(v&&v!="transparent"){
				return v;
			}
		}
		return"#ffffff";
}
$slides.each(function(){
	$(this).css("background-color",getBg(this));
});
}
$.fn.cycle.commonReset=function(curr,next,opts,w,h,rev){
	$(opts.elements).not(curr).hide();
	if(typeof opts.cssBefore.opacity=="undefined"){
		opts.cssBefore.opacity=1;
	}
	opts.cssBefore.display="block";
	if(opts.slideResize&&w!==false&&next.cycleW>0){
		opts.cssBefore.width=next.cycleW;
	}
	if(opts.slideResize&&h!==false&&next.cycleH>0){
		opts.cssBefore.height=next.cycleH;
	}
	opts.cssAfter=opts.cssAfter||{};

	opts.cssAfter.display="none";
	$(curr).css("zIndex",opts.slideCount+(rev===true?1:0));
	$(next).css("zIndex",opts.slideCount+(rev===true?0:1));
};

$.fn.cycle.custom=function(curr,next,opts,cb,fwd,speedOverride){
	var $l=$(curr),$n=$(next);
	var speedIn=opts.speedIn,speedOut=opts.speedOut,easeIn=opts.easeIn,easeOut=opts.easeOut;
	$n.css(opts.cssBefore);
	if(speedOverride){
		if(typeof speedOverride=="number"){
			speedIn=speedOut=speedOverride;
		}else{
			speedIn=speedOut=1;
		}
		easeIn=easeOut=null;
	}
	var fn=function(){
		$n.animate(opts.animIn,speedIn,easeIn,function(){
			cb();
		});
	};

	$l.animate(opts.animOut,speedOut,easeOut,function(){
		$l.css(opts.cssAfter);
		if(!opts.sync){
			fn();
		}
	});
if(opts.sync){
	fn();
}
};

$.fn.cycle.transitions={
	fade:function($cont,$slides,opts){
		$slides.not(":eq("+opts.currSlide+")").css("opacity",0);
		opts.before.push(function(curr,next,opts){
			$.fn.cycle.commonReset(curr,next,opts);
			opts.cssBefore.opacity=0;
		});
		opts.animIn={
			opacity:1
		};

		opts.animOut={
			opacity:0
		};

		opts.cssBefore={
			top:0,
			left:0
		};

}
};

$.fn.cycle.ver=function(){
	return ver;
};

$.fn.cycle.defaults={
	activePagerClass:"activeSlide",
	after:null,
	allowPagerClickBubble:false,
	animIn:null,
	animOut:null,
	autostop:0,
	autostopCount:0,
	backwards:false,
	before:null,
	cleartype:!$.support.opacity,
	cleartypeNoBg:false,
	containerResize:1,
	continuous:0,
	cssAfter:null,
	cssBefore:null,
	delay:0,
	easeIn:null,
	easeOut:null,
	easing:null,
	end:null,
	fastOnEvent:0,
	fit:0,
	fx:"fade",
	fxFn:null,
	height:"auto",
	manualTrump:true,
	next:null,
	nowrap:0,
	onPagerEvent:null,
	onPrevNextEvent:null,
	pager:null,
	pagerAnchorBuilder:null,
	pagerEvent:"click.cycle",
	pause:0,
	pauseOnPagerHover:0,
	prev:null,
	prevNextEvent:"click.cycle",
	random:0,
	randomizeEffects:1,
	requeueOnImageNotLoaded:true,
	requeueTimeout:250,
	rev:0,
	shuffle:null,
	slideExpr:null,
	slideResize:1,
	speed:1000,
	speedIn:null,
	speedOut:null,
	startingSlide:0,
	sync:1,
	timeout:4000,
	timeoutFn:null,
	updateActivePagerLink:null
};

})(jQuery);
/*
 * jQuery Cycle Plugin Transition Definitions
 * This script is a plugin for the jQuery Cycle Plugin
 * Examples and documentation at: http://malsup.com/jquery/cycle/
 * Copyright (c) 2007-2010 M. Alsup
 * Version:	 2.73
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 */
(function($){
	$.fn.cycle.transitions.none=function($cont,$slides,opts){
		opts.fxFn=function(curr,next,opts,after){
			$(next).show();
			$(curr).hide();
			after();
		};

};

$.fn.cycle.transitions.fadeout=function($cont,$slides,opts){
	$slides.not(":eq("+opts.currSlide+")").css({
		display:"block",
		opacity:1
	});
	opts.before.push(function(curr,next,opts,w,h,rev){
		$(curr).css("zIndex",opts.slideCount+(!rev===true?1:0));
		$(next).css("zIndex",opts.slideCount+(!rev===true?0:1));
	});
	opts.animIn.opacity=1;
	opts.animOut.opacity=0;
	opts.cssBefore.opacity=1;
	opts.cssBefore.display="block";
	opts.cssAfter.zIndex=0;
};

$.fn.cycle.transitions.scrollUp=function($cont,$slides,opts){
	$cont.css("overflow","hidden");
	opts.before.push($.fn.cycle.commonReset);
	var h=$cont.height();
	opts.cssBefore.top=h;
	opts.cssBefore.left=0;
	opts.cssFirst.top=0;
	opts.animIn.top=0;
	opts.animOut.top=-h;
};

$.fn.cycle.transitions.scrollDown=function($cont,$slides,opts){
	$cont.css("overflow","hidden");
	opts.before.push($.fn.cycle.commonReset);
	var h=$cont.height();
	opts.cssFirst.top=0;
	opts.cssBefore.top=-h;
	opts.cssBefore.left=0;
	opts.animIn.top=0;
	opts.animOut.top=h;
};

$.fn.cycle.transitions.scrollLeft=function($cont,$slides,opts){
	$cont.css("overflow","hidden");
	opts.before.push($.fn.cycle.commonReset);
	var w=$cont.width();
	opts.cssFirst.left=0;
	opts.cssBefore.left=w;
	opts.cssBefore.top=0;
	opts.animIn.left=0;
	opts.animOut.left=0-w;
};

$.fn.cycle.transitions.scrollRight=function($cont,$slides,opts){
	$cont.css("overflow","hidden");
	opts.before.push($.fn.cycle.commonReset);
	var w=$cont.width();
	opts.cssFirst.left=0;
	opts.cssBefore.left=-w;
	opts.cssBefore.top=0;
	opts.animIn.left=0;
	opts.animOut.left=w;
};

$.fn.cycle.transitions.scrollHorz=function($cont,$slides,opts){
	$cont.css("overflow","hidden").width();
	opts.before.push(function(curr,next,opts,fwd){
		if(opts.rev){
			fwd=!fwd;
		}
		$.fn.cycle.commonReset(curr,next,opts);
		opts.cssBefore.left=fwd?(next.cycleW-1):(1-next.cycleW);
		opts.animOut.left=fwd?-curr.cycleW:curr.cycleW;
	});
	opts.cssFirst.left=0;
	opts.cssBefore.top=0;
	opts.animIn.left=0;
	opts.animOut.top=0;
};

$.fn.cycle.transitions.scrollVert=function($cont,$slides,opts){
	$cont.css("overflow","hidden");
	opts.before.push(function(curr,next,opts,fwd){
		if(opts.rev){
			fwd=!fwd;
		}
		$.fn.cycle.commonReset(curr,next,opts);
		opts.cssBefore.top=fwd?(1-next.cycleH):(next.cycleH-1);
		opts.animOut.top=fwd?curr.cycleH:-curr.cycleH;
	});
	opts.cssFirst.top=0;
	opts.cssBefore.left=0;
	opts.animIn.top=0;
	opts.animOut.left=0;
};

$.fn.cycle.transitions.slideX=function($cont,$slides,opts){
	opts.before.push(function(curr,next,opts){
		$(opts.elements).not(curr).hide();
		$.fn.cycle.commonReset(curr,next,opts,false,true);
		opts.animIn.width=next.cycleW;
	});
	opts.cssBefore.left=0;
	opts.cssBefore.top=0;
	opts.cssBefore.width=0;
	opts.animIn.width="show";
	opts.animOut.width=0;
};

$.fn.cycle.transitions.slideY=function($cont,$slides,opts){
	opts.before.push(function(curr,next,opts){
		$(opts.elements).not(curr).hide();
		$.fn.cycle.commonReset(curr,next,opts,true,false);
		opts.animIn.height=next.cycleH;
	});
	opts.cssBefore.left=0;
	opts.cssBefore.top=0;
	opts.cssBefore.height=0;
	opts.animIn.height="show";
	opts.animOut.height=0;
};

$.fn.cycle.transitions.shuffle=function($cont,$slides,opts){
	var i,w=$cont.css("overflow","visible").width();
	$slides.css({
		left:0,
		top:0
	});
	opts.before.push(function(curr,next,opts){
		$.fn.cycle.commonReset(curr,next,opts,true,true,true);
	});
	if(!opts.speedAdjusted){
		opts.speed=opts.speed/2;
		opts.speedAdjusted=true;
	}
	opts.random=0;
	opts.shuffle=opts.shuffle||{
		left:-w,
		top:15
	};

	opts.els=[];
	for(i=0;i<$slides.length;i++){
		opts.els.push($slides[i]);
	}
	for(i=0;i<opts.currSlide;i++){
		opts.els.push(opts.els.shift());
	}
	opts.fxFn=function(curr,next,opts,cb,fwd){
		if(opts.rev){
			fwd=!fwd;
		}
		var $el=fwd?$(curr):$(next);
		$(next).css(opts.cssBefore);
		var count=opts.slideCount;
		$el.animate(opts.shuffle,opts.speedIn,opts.easeIn,function(){
			var hops=$.fn.cycle.hopsFromLast(opts,fwd);
			for(var k=0;k<hops;k++){
				fwd?opts.els.push(opts.els.shift()):opts.els.unshift(opts.els.pop());
			}
			if(fwd){
				for(var i=0,len=opts.els.length;i<len;i++){
					$(opts.els[i]).css("z-index",len-i+count);
				}
				}else{
			var z=$(curr).css("z-index");
			$el.css("z-index",parseInt(z)+1+count);
		}
		$el.animate({
			left:0,
			top:0
		},opts.speedOut,opts.easeOut,function(){
			$(fwd?this:curr).hide();
			if(cb){
				cb();
			}
		});
	});
};

$.extend(opts.cssBefore,{
	display:"block",
	opacity:1,
	top:0,
	left:0
});
};

$.fn.cycle.transitions.turnUp=function($cont,$slides,opts){
	opts.before.push(function(curr,next,opts){
		$.fn.cycle.commonReset(curr,next,opts,true,false);
		opts.cssBefore.top=next.cycleH;
		opts.animIn.height=next.cycleH;
		opts.animOut.width=next.cycleW;
	});
	opts.cssFirst.top=0;
	opts.cssBefore.left=0;
	opts.cssBefore.height=0;
	opts.animIn.top=0;
	opts.animOut.height=0;
};

$.fn.cycle.transitions.turnDown=function($cont,$slides,opts){
	opts.before.push(function(curr,next,opts){
		$.fn.cycle.commonReset(curr,next,opts,true,false);
		opts.animIn.height=next.cycleH;
		opts.animOut.top=curr.cycleH;
	});
	opts.cssFirst.top=0;
	opts.cssBefore.left=0;
	opts.cssBefore.top=0;
	opts.cssBefore.height=0;
	opts.animOut.height=0;
};

$.fn.cycle.transitions.turnLeft=function($cont,$slides,opts){
	opts.before.push(function(curr,next,opts){
		$.fn.cycle.commonReset(curr,next,opts,false,true);
		opts.cssBefore.left=next.cycleW;
		opts.animIn.width=next.cycleW;
	});
	opts.cssBefore.top=0;
	opts.cssBefore.width=0;
	opts.animIn.left=0;
	opts.animOut.width=0;
};

$.fn.cycle.transitions.turnRight=function($cont,$slides,opts){
	opts.before.push(function(curr,next,opts){
		$.fn.cycle.commonReset(curr,next,opts,false,true);
		opts.animIn.width=next.cycleW;
		opts.animOut.left=curr.cycleW;
	});
	$.extend(opts.cssBefore,{
		top:0,
		left:0,
		width:0
	});
	opts.animIn.left=0;
	opts.animOut.width=0;
};

$.fn.cycle.transitions.zoom=function($cont,$slides,opts){
	opts.before.push(function(curr,next,opts){
		$.fn.cycle.commonReset(curr,next,opts,false,false,true);
		opts.cssBefore.top=next.cycleH/2;
		opts.cssBefore.left=next.cycleW/2;
		$.extend(opts.animIn,{
			top:0,
			left:0,
			width:next.cycleW,
			height:next.cycleH
			});
		$.extend(opts.animOut,{
			width:0,
			height:0,
			top:curr.cycleH/2,
			left:curr.cycleW/2
			});
	});
	opts.cssFirst.top=0;
	opts.cssFirst.left=0;
	opts.cssBefore.width=0;
	opts.cssBefore.height=0;
};

$.fn.cycle.transitions.fadeZoom=function($cont,$slides,opts){
	opts.before.push(function(curr,next,opts){
		$.fn.cycle.commonReset(curr,next,opts,false,false);
		opts.cssBefore.left=next.cycleW/2;
		opts.cssBefore.top=next.cycleH/2;
		$.extend(opts.animIn,{
			top:0,
			left:0,
			width:next.cycleW,
			height:next.cycleH
			});
	});
	opts.cssBefore.width=0;
	opts.cssBefore.height=0;
	opts.animOut.opacity=0;
};

$.fn.cycle.transitions.blindX=function($cont,$slides,opts){
	var w=$cont.css("overflow","hidden").width();
	opts.before.push(function(curr,next,opts){
		$.fn.cycle.commonReset(curr,next,opts);
		opts.animIn.width=next.cycleW;
		opts.animOut.left=curr.cycleW;
	});
	opts.cssBefore.left=w;
	opts.cssBefore.top=0;
	opts.animIn.left=0;
	opts.animOut.left=w;
};

$.fn.cycle.transitions.blindY=function($cont,$slides,opts){
	var h=$cont.css("overflow","hidden").height();
	opts.before.push(function(curr,next,opts){
		$.fn.cycle.commonReset(curr,next,opts);
		opts.animIn.height=next.cycleH;
		opts.animOut.top=curr.cycleH;
	});
	opts.cssBefore.top=h;
	opts.cssBefore.left=0;
	opts.animIn.top=0;
	opts.animOut.top=h;
};

$.fn.cycle.transitions.blindZ=function($cont,$slides,opts){
	var h=$cont.css("overflow","hidden").height();
	var w=$cont.width();
	opts.before.push(function(curr,next,opts){
		$.fn.cycle.commonReset(curr,next,opts);
		opts.animIn.height=next.cycleH;
		opts.animOut.top=curr.cycleH;
	});
	opts.cssBefore.top=h;
	opts.cssBefore.left=w;
	opts.animIn.top=0;
	opts.animIn.left=0;
	opts.animOut.top=h;
	opts.animOut.left=w;
};

$.fn.cycle.transitions.growX=function($cont,$slides,opts){
	opts.before.push(function(curr,next,opts){
		$.fn.cycle.commonReset(curr,next,opts,false,true);
		opts.cssBefore.left=this.cycleW/2;
		opts.animIn.left=0;
		opts.animIn.width=this.cycleW;
		opts.animOut.left=0;
	});
	opts.cssBefore.top=0;
	opts.cssBefore.width=0;
};

$.fn.cycle.transitions.growY=function($cont,$slides,opts){
	opts.before.push(function(curr,next,opts){
		$.fn.cycle.commonReset(curr,next,opts,true,false);
		opts.cssBefore.top=this.cycleH/2;
		opts.animIn.top=0;
		opts.animIn.height=this.cycleH;
		opts.animOut.top=0;
	});
	opts.cssBefore.height=0;
	opts.cssBefore.left=0;
};

$.fn.cycle.transitions.curtainX=function($cont,$slides,opts){
	opts.before.push(function(curr,next,opts){
		$.fn.cycle.commonReset(curr,next,opts,false,true,true);
		opts.cssBefore.left=next.cycleW/2;
		opts.animIn.left=0;
		opts.animIn.width=this.cycleW;
		opts.animOut.left=curr.cycleW/2;
		opts.animOut.width=0;
	});
	opts.cssBefore.top=0;
	opts.cssBefore.width=0;
};

$.fn.cycle.transitions.curtainY=function($cont,$slides,opts){
	opts.before.push(function(curr,next,opts){
		$.fn.cycle.commonReset(curr,next,opts,true,false,true);
		opts.cssBefore.top=next.cycleH/2;
		opts.animIn.top=0;
		opts.animIn.height=next.cycleH;
		opts.animOut.top=curr.cycleH/2;
		opts.animOut.height=0;
	});
	opts.cssBefore.height=0;
	opts.cssBefore.left=0;
};

$.fn.cycle.transitions.cover=function($cont,$slides,opts){
	var d=opts.direction||"left";
	var w=$cont.css("overflow","hidden").width();
	var h=$cont.height();
	opts.before.push(function(curr,next,opts){
		$.fn.cycle.commonReset(curr,next,opts);
		if(d=="right"){
			opts.cssBefore.left=-w;
		}else{
			if(d=="up"){
				opts.cssBefore.top=h;
			}else{
				if(d=="down"){
					opts.cssBefore.top=-h;
				}else{
					opts.cssBefore.left=w;
				}
			}
		}
	});
opts.animIn.left=0;
opts.animIn.top=0;
opts.cssBefore.top=0;
opts.cssBefore.left=0;
};

$.fn.cycle.transitions.uncover=function($cont,$slides,opts){
	var d=opts.direction||"left";
	var w=$cont.css("overflow","hidden").width();
	var h=$cont.height();
	opts.before.push(function(curr,next,opts){
		$.fn.cycle.commonReset(curr,next,opts,true,true,true);
		if(d=="right"){
			opts.animOut.left=w;
		}else{
			if(d=="up"){
				opts.animOut.top=-h;
			}else{
				if(d=="down"){
					opts.animOut.top=h;
				}else{
					opts.animOut.left=-w;
				}
			}
		}
	});
opts.animIn.left=0;
opts.animIn.top=0;
opts.cssBefore.top=0;
opts.cssBefore.left=0;
};

$.fn.cycle.transitions.toss=function($cont,$slides,opts){
	var w=$cont.css("overflow","visible").width();
	var h=$cont.height();
	opts.before.push(function(curr,next,opts){
		$.fn.cycle.commonReset(curr,next,opts,true,true,true);
		if(!opts.animOut.left&&!opts.animOut.top){
			$.extend(opts.animOut,{
				left:w*2,
				top:-h/2,
				opacity:0
			});
		}else{
			opts.animOut.opacity=0;
		}
	});
opts.cssBefore.left=0;
opts.cssBefore.top=0;
opts.animIn.left=0;
};

$.fn.cycle.transitions.wipe=function($cont,$slides,opts){
	var w=$cont.css("overflow","hidden").width();
	var h=$cont.height();
	opts.cssBefore=opts.cssBefore||{};

	var clip;
	if(opts.clip){
		if(/l2r/.test(opts.clip)){
			clip="rect(0px 0px "+h+"px 0px)";
		}else{
			if(/r2l/.test(opts.clip)){
				clip="rect(0px "+w+"px "+h+"px "+w+"px)";
			}else{
				if(/t2b/.test(opts.clip)){
					clip="rect(0px "+w+"px 0px 0px)";
				}else{
					if(/b2t/.test(opts.clip)){
						clip="rect("+h+"px "+w+"px "+h+"px 0px)";
					}else{
						if(/zoom/.test(opts.clip)){
							var top=parseInt(h/2);
							var left=parseInt(w/2);
							clip="rect("+top+"px "+left+"px "+top+"px "+left+"px)";
						}
					}
				}
		}
}
}
opts.cssBefore.clip=opts.cssBefore.clip||clip||"rect(0px 0px 0px 0px)";
var d=opts.cssBefore.clip.match(/(\d+)/g);
var t=parseInt(d[0]),r=parseInt(d[1]),b=parseInt(d[2]),l=parseInt(d[3]);
opts.before.push(function(curr,next,opts){
	if(curr==next){
		return;
	}
	var $curr=$(curr),$next=$(next);
	$.fn.cycle.commonReset(curr,next,opts,true,true,false);
	opts.cssAfter.display="block";
	var step=1,count=parseInt((opts.speedIn/13))-1;
	(function f(){
		var tt=t?t-parseInt(step*(t/count)):0;
		var ll=l?l-parseInt(step*(l/count)):0;
		var bb=b<h?b+parseInt(step*((h-b)/count||1)):h;
		var rr=r<w?r+parseInt(step*((w-r)/count||1)):w;
		$next.css({
			clip:"rect("+tt+"px "+rr+"px "+bb+"px "+ll+"px)"
			});
		(step++<=count)?setTimeout(f,13):$curr.css("display","none");
	})();
});
$.extend(opts.cssBefore,{
	display:"block",
	opacity:1,
	top:0,
	left:0
});
opts.animIn={
	left:0
};

opts.animOut={
	left:0
};

};

})(jQuery);
