/*
 * 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);
