commit 08c0b77a1df0709fe551c0b8ece27e1cbf1192f1 Author: rbuissonramey@openstudio.fr <> Date: Mon Apr 23 15:53:02 2012 +0000 Ajout du squelette Leadescent (fonctionnant avec le thème associé) diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..4c1a4f7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,14 @@ +* text=auto !eol +contenu/page-sommaire.html -text +css/style_leadescent.css -text +img/bg-slideshow.png -text +img/button-carousel-next.png -text +img/button-carousel-prev.png -text +img/button-slideshow-pages.png -text +/inc-theme-head.html -text +js/jquery.cycle.js -text +js/jquery.jcarousel.js -text +js/slider.js -text +/plugin.xml -text +/squelette_leadescent_pipelines.php -text +/vignette.jpg -text diff --git a/contenu/page-sommaire.html b/contenu/page-sommaire.html new file mode 100644 index 0000000..24db6e6 --- /dev/null +++ b/contenu/page-sommaire.html @@ -0,0 +1,138 @@ + + + + + Slideshow + + + + + + + [(#LOGO_ARTICLE|image_reduire{940,312})] + + + + + + + + + + [(#LOGO_ARTICLE|image_reduire{940,312})] + + + + + + /B_articles> + + + + + + + + Nos Services + + + + [(#LOGO_ARTICLE|image_reduire{32,34})] + + #TITRE + + [(#TEXTE|couper{150})] + + Lire la suite + + + + + + + + + + + Actualites + + + + + + + + + + + [(#LOGO_ARTICLE|image_recadre{302,302,center}|image_reduire{151,151})] + + + + + + + + + + + + + + + + + + Derniers articles + + + + + [(#LOGO_ARTICLE|image_recadre{302,302,center}|image_reduire{73,72})] + + + #TITRE_ARTICLE + + [(#TEXTE|couper{180})] + + Lire la suite + + + + + + + + + + + Articles populaires + + + + + [(#LOGO_ARTICLE|image_recadre{302,302,center}|image_reduire{73,72})] + + + #TITRE_ARTICLE + + [(#TEXTE|couper{180})] + + Lire la suite + + + + + + + + + #FORMULAIRE_INSCRIPTION + + + + + + + +/B_testsommaire> \ No newline at end of file diff --git a/css/style_leadescent.css b/css/style_leadescent.css new file mode 100644 index 0000000..fdb450f --- /dev/null +++ b/css/style_leadescent.css @@ -0,0 +1,216 @@ +div#slideshow-wrap{ + margin:0; +} +#slideshow-wrap { + margin: 0 0 10px; +} +#slideshow { + background: url("../img/bg-slideshow.png") no-repeat scroll center top transparent; + height: 353px; + margin: 0 auto; + padding: 5px; + width: 940px; +} +#slideshow h2 { + display: none; +} +#slideshow-box { + height: 353px; + position: relative; +} +#slideshow-box .list { + height: 312px; + overflow: hidden; +} +#slideshow-box .item { + height: 312px; + width: 940px; +} +#slideshow img { + border: 0 none; + margin: 0; + padding: 0; +} +#slideshow-controller { + bottom: 10px; + left: 0; + position: absolute; + text-align: center; + width: 940px; + z-index: 99999; +} +#slideshow-controller span { + display: block; +} +#slideshow-controller button { + background: url("../img/button-slideshow-pages.png") no-repeat scroll right top transparent; + border: 0 none; + height: 9px; + margin: 0 1px; + padding: 0; + width: 9px; +} +#slideshow-controller button span { + display: none; +} +#slideshow-controller button.jqc-active { + background-position: left top; +} +.jcarousel-container { + position: relative; +} +.jcarousel-clip { + margin: 0; + overflow: hidden; + padding: 0; + position: relative; + z-index: 2; +} +.jcarousel-list { + left: 0; + margin: 0; + overflow: hidden; + padding: 0; + position: relative; + top: 0; + z-index: 1; +} +.jcarousel-list li, .jcarousel-item { + float: left; + list-style: none outside none; + margin: 0 15px 0 0; +} +.jcarousel-next { + display: none; + z-index: 3; +} +.jcarousel-prev { + display: none; + z-index: 3; +} +.jcarousel-container-horizontal { + height: 161px; + padding: 41px 0 0; + width: 950px; +} +.jcarousel-clip-horizontal { + height: 161px; + margin: 0 0 0 42px; + width: 866px; +} +.jcarousel-item a, .jcarousel-item a:visited { + display: block; + float: left; + height: 161px; + width: 161px; +} +.jcarousel-next-horizontal { + background: url("../img/button-carousel-next.png") no-repeat scroll left top transparent !important; + cursor: pointer; + height: 25px; + position: absolute; + right: 10px; + top: 107px; + width: 25px; +} +.jcarousel-next-disabled-horizontal, .jcarousel-next-disabled-horizontal:hover, .jcarousel-next-disabled-horizontal:active { + cursor: default; +} +.jcarousel-prev-horizontal { + background: url("../img/button-carousel-prev.png") no-repeat scroll 0 0 transparent !important; + cursor: pointer; + height: 25px; + left: 10px; + position: absolute; + top: 107px; + width: 25px; +} +.jcarousel-prev-disabled-horizontal, .jcarousel-prev-disabled-horizontal:hover, .jcarousel-prev-disabled-horizontal:active { + cursor: default; +} +.widget_special { + color: #979797; + line-height: 16px; + margin: 0 0 10px; +} +.widget_special p { + background: url("../img/bg-widget-special.png") repeat-x scroll left bottom transparent; + height: 78px; +} +.widget_special .read-more { + background: none repeat scroll 0 50% transparent; + display: block; + height: 19px; + margin-bottom: 0; + padding: 0; +} +.widget_special .read-more a { + background: none repeat scroll 0 0 #9F9F9F; + border-radius: 3px 3px 3px 3px; + color: #FFFFFF; + display: block; + float: left; + font: 11px/19px 'Lora',serif; + height: 19px; + text-align: center; + text-decoration: none; + text-transform: lowercase; + width: 68px; +} +.widget_special .read-more a:hover { + text-decoration: underline; +} +#footbar a { + color: #736E6E; + text-decoration: none; +} +#footbar a:hover { + text-decoration: underline; +} +#footbar .bar { + float: left; + margin: 0 30px 0 0; +} +#footbar .bar-1 { + width: 315px; +} +#footbar .bar-2 { + width: 315px; +} +#footbar .bar-3 { + margin: 0; + width: 260px; +} +#footbar .title { + color: #000000; + display: block; + font: bold 16px/20px 'Lora',serif; + margin: 0 0 10px; + padding: 0; + text-transform: uppercase; +} +#footbar .widget { + line-height: 16px; +} +#footbar .widget ul { + display: block; + margin: 0; + padding: 0; +} +#footbar .widget li { + display: block; + margin: 0; + padding: 0 0 20px; +} +#footbar .widget_tweets a { + color: #397EC2; + font-style: italic; + text-decoration: none; +} +#footbar .widget_tweets a:hover { + text-decoration: underline; +} +#footbar .widget_ads .title { + border: 0 none; + margin: 0; +} diff --git a/img/bg-slideshow.png b/img/bg-slideshow.png new file mode 100644 index 0000000..9784321 Binary files /dev/null and b/img/bg-slideshow.png differ diff --git a/img/button-carousel-next.png b/img/button-carousel-next.png new file mode 100644 index 0000000..b24ddb4 Binary files /dev/null and b/img/button-carousel-next.png differ diff --git a/img/button-carousel-prev.png b/img/button-carousel-prev.png new file mode 100644 index 0000000..55d77e7 Binary files /dev/null and b/img/button-carousel-prev.png differ diff --git a/img/button-slideshow-pages.png b/img/button-slideshow-pages.png new file mode 100644 index 0000000..3f4c065 Binary files /dev/null and b/img/button-slideshow-pages.png differ diff --git a/inc-theme-head.html b/inc-theme-head.html new file mode 100644 index 0000000..a8bc8e4 --- /dev/null +++ b/inc-theme-head.html @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/js/jquery.cycle.js b/js/jquery.cycle.js new file mode 100644 index 0000000..24fed30 --- /dev/null +++ b/js/jquery.cycle.js @@ -0,0 +1,22 @@ +/* + * jQuery Cycle Plugin (with Transition Definitions) + * Examples and documentation at: http://jquery.malsup.com/cycle/ + * Copyright (c) 2007-2010 M. Alsup + * Version: 2.86 (05-APR-2010) + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * Requires: jQuery v1.2.6 or later + */ +(function($){var ver="2.86";if($.support==undefined){$.support={opacity:!($.browser.msie)};}function debug(s){if($.fn.cycle.debug){log(s);}}function log(){if(window.console&&window.console.log){window.console.log("[cycle] "+Array.prototype.join.call(arguments," "));}}$.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(opts2.currSlide,opts2.nextSlide,opts2,!opts2.rev);if(startTime){startTime+=(opts2.delay||0);if(startTime<10){startTime=10;}debug("first timeout: "+startTime);this.cycleTimeout=setTimeout(function(){go(els,opts2,0,!opts2.rev);},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,1);}}}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]:[];opts.after.unshift(function(){opts.busy=0;});if(!$.support.opacity&&opts.cleartype){opts.after.push(function(){removeFilter(this,opts);});}if(opts.continuous){opts.after.push(function(){go(els,opts,0,!opts.rev);});}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);}if(opts.random){opts.randomMap=[];for(var i=0;i=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=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;jmaxw?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.animIn=opts.animIn||{};opts.animOut=opts.animOut||{};$slides.not(":eq("+first+")").css(opts.cssBefore);if(opts.cssFirst){$($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=="shuffle"?500:250;while((opts.timeout-opts.speed)=(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>1){opts.after[1].apply(e0,[e0,e0,opts,true]);}if(opts.next){$(opts.next).bind(opts.prevNextEvent,function(){return advance(opts,opts.rev?-1:1);});}if(opts.prev){$(opts.prev).bind(opts.prevNextEvent,function(){return advance(opts,opts.rev?1:-1);});}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){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(){$.each(opts.after,function(i,o){if(p.cycleStop!=opts.stopCount){return;}o.apply(next,[curr,next,opts,fwd]);});};debug("tx firing; 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{var roll=(opts.nextSlide+1)==els.length;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(curr,next,opts,fwd);}else{if(opts.continuous&&p.cyclePause){ms=10;}}if(ms>0){p.cycleTimeout=setTimeout(function(){go(els,opts,0,!opts.rev);},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(curr,next,opts,fwd);while((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,opts.rev?-1:1);};$.fn.cycle.prev=function(opts){advance(opts,opts.rev?1:-1);};function advance(opts,val){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,val>=0);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=''+(i+1)+"";}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.currSlidel?c-l:opts.slideCount-l;}else{hops=c=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();opts.cssBefore.opacity=1;opts.cssBefore.display="block";if(w!==false&&next.cycleW>0){opts.cssBefore.width=next.cycleW;}if(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,cb);};$l.animate(opts.animOut,speedOut,easeOut,function(){if(opts.cssAfter){$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={fx:"fade",timeout:4000,timeoutFn:null,continuous:0,speed:1000,speedIn:null,speedOut:null,next:null,prev:null,onPrevNextEvent:null,prevNextEvent:"click.cycle",pager:null,onPagerEvent:null,pagerEvent:"click.cycle",allowPagerClickBubble:false,pagerAnchorBuilder:null,before:null,after:null,end:null,easing:null,easeIn:null,easeOut:null,shuffle:null,animIn:null,animOut:null,cssBefore:null,cssAfter:null,fxFn:null,height:"auto",startingSlide:0,sync:1,random:0,fit:0,containerResize:1,pause:0,pauseOnPagerHover:0,autostop:0,autostopCount:0,delay:0,slideExpr:null,cleartype:!$.support.opacity,cleartypeNoBg:false,nowrap:0,fastOnEvent:0,randomizeEffects:1,rev:0,manualTrump:true,requeueOnImageNotLoaded:true,requeueTimeout:250,activePagerClass:"activeSlide",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-2008 M. Alsup + * Version: 2.72 + * 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.scrollUp=function($cont,$slides,opts){$cont.css("overflow","hidden");opts.before.push($.fn.cycle.commonReset);var h=$cont.height();opts.cssBefore={top:h,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,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,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,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){$.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){$.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,top:0,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,top:0,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', + buttonPrevHTML: '', + buttonNextEvent: 'click', + buttonPrevEvent: 'click', + buttonNextCallback: null, + buttonPrevCallback: null, + itemFallbackDimension: null + }, windowLoaded = false; + + $(window).bind('load.jcarousel', function() { windowLoaded = true; }); + + /** + * The jCarousel object. + * + * @constructor + * @class jcarousel + * @param e {HTMLElement} The element to create the carousel for. + * @param o {Object} A set of key/value pairs to set as configuration properties. + * @cat Plugins/jCarousel + */ + $.jcarousel = function(e, o) { + this.options = $.extend({}, defaults, o || {}); + + this.locked = false; + this.autoStopped = false; + + this.container = null; + this.clip = null; + this.list = null; + this.buttonNext = null; + this.buttonPrev = null; + this.buttonNextState = null; + this.buttonPrevState = null; + + // Only set if not explicitly passed as option + if (!o || o.rtl === undefined) { + this.options.rtl = ($(e).attr('dir') || $('html').attr('dir') || '').toLowerCase() == 'rtl'; + } + + this.wh = !this.options.vertical ? 'width' : 'height'; + this.lt = !this.options.vertical ? (this.options.rtl ? 'right' : 'left') : 'top'; + + // Extract skin class + var skin = '', split = e.className.split(' '); + + for (var i = 0; i < split.length; i++) { + if (split[i].indexOf('jcarousel-skin') != -1) { + $(e).removeClass(split[i]); + skin = split[i]; + break; + } + } + + if (e.nodeName.toUpperCase() == 'UL' || e.nodeName.toUpperCase() == 'OL') { + this.list = $(e); + this.clip = this.list.parents('.jcarousel-clip'); + this.container = this.list.parents('.jcarousel-container'); + } else { + this.container = $(e); + this.list = this.container.find('ul,ol').eq(0); + this.clip = this.container.find('.jcarousel-clip'); + } + + if (this.clip.size() === 0) { + this.clip = this.list.wrap('').parent(); + } + + if (this.container.size() === 0) { + this.container = this.clip.wrap('').parent(); + } + + if (skin !== '' && this.container.parent()[0].className.indexOf('jcarousel-skin') == -1) { + this.container.wrap(''); + } + + this.buttonPrev = $('.jcarousel-prev', this.container); + + if (this.buttonPrev.size() === 0 && this.options.buttonPrevHTML !== null) { + this.buttonPrev = $(this.options.buttonPrevHTML).appendTo(this.container); + } + + this.buttonPrev.addClass(this.className('jcarousel-prev')); + + this.buttonNext = $('.jcarousel-next', this.container); + + if (this.buttonNext.size() === 0 && this.options.buttonNextHTML !== null) { + this.buttonNext = $(this.options.buttonNextHTML).appendTo(this.container); + } + + this.buttonNext.addClass(this.className('jcarousel-next')); + + this.clip.addClass(this.className('jcarousel-clip')).css({ + position: 'relative' + }); + + this.list.addClass(this.className('jcarousel-list')).css({ + overflow: 'hidden', + position: 'relative', + top: 0, + margin: 0, + padding: 0 + }).css((this.options.rtl ? 'right' : 'left'), 0); + + this.container.addClass(this.className('jcarousel-container')).css({ + position: 'relative' + }); + + if (!this.options.vertical && this.options.rtl) { + this.container.addClass('jcarousel-direction-rtl').attr('dir', 'rtl'); + } + + var di = this.options.visible !== null ? Math.ceil(this.clipping() / this.options.visible) : null; + var li = this.list.children('li'); + + var self = this; + + if (li.size() > 0) { + var wh = 0, j = this.options.offset; + li.each(function() { + self.format(this, j++); + wh += self.dimension(this, di); + }); + + this.list.css(this.wh, (wh + 100) + 'px'); + + // Only set if not explicitly passed as option + if (!o || o.size === undefined) { + this.options.size = li.size(); + } + } + + // For whatever reason, .show() does not work in Safari... + this.container.css('display', 'block'); + this.buttonNext.css('display', 'block'); + this.buttonPrev.css('display', 'block'); + + this.funcNext = function() { self.next(); }; + this.funcPrev = function() { self.prev(); }; + this.funcResize = function() { + if (self.resizeTimer) { + clearTimeout(self.resizeTimer); + } + + self.resizeTimer = setTimeout(function() { + self.reload(); + }, 100); + }; + + if (this.options.initCallback !== null) { + this.options.initCallback(this, 'init'); + } + + if (!windowLoaded && $.browser.safari) { + this.buttons(false, false); + $(window).bind('load.jcarousel', function() { self.setup(); }); + } else { + this.setup(); + } + }; + + // Create shortcut for internal use + var $jc = $.jcarousel; + + $jc.fn = $jc.prototype = { + jcarousel: '0.2.8' + }; + + $jc.fn.extend = $jc.extend = $.extend; + + $jc.fn.extend({ + /** + * Setups the carousel. + * + * @method setup + * @return undefined + */ + setup: function() { + this.first = null; + this.last = null; + this.prevFirst = null; + this.prevLast = null; + this.animating = false; + this.timer = null; + this.resizeTimer = null; + this.tail = null; + this.inTail = false; + + if (this.locked) { + return; + } + + this.list.css(this.lt, this.pos(this.options.offset) + 'px'); + var p = this.pos(this.options.start, true); + this.prevFirst = this.prevLast = null; + this.animate(p, false); + + $(window).unbind('resize.jcarousel', this.funcResize).bind('resize.jcarousel', this.funcResize); + + if (this.options.setupCallback !== null) { + this.options.setupCallback(this); + } + }, + + /** + * Clears the list and resets the carousel. + * + * @method reset + * @return undefined + */ + reset: function() { + this.list.empty(); + + this.list.css(this.lt, '0px'); + this.list.css(this.wh, '10px'); + + if (this.options.initCallback !== null) { + this.options.initCallback(this, 'reset'); + } + + this.setup(); + }, + + /** + * Reloads the carousel and adjusts positions. + * + * @method reload + * @return undefined + */ + reload: function() { + if (this.tail !== null && this.inTail) { + this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) + this.tail); + } + + this.tail = null; + this.inTail = false; + + if (this.options.reloadCallback !== null) { + this.options.reloadCallback(this); + } + + if (this.options.visible !== null) { + var self = this; + var di = Math.ceil(this.clipping() / this.options.visible), wh = 0, lt = 0; + this.list.children('li').each(function(i) { + wh += self.dimension(this, di); + if (i + 1 < self.first) { + lt = wh; + } + }); + + this.list.css(this.wh, wh + 'px'); + this.list.css(this.lt, -lt + 'px'); + } + + this.scroll(this.first, false); + }, + + /** + * Locks the carousel. + * + * @method lock + * @return undefined + */ + lock: function() { + this.locked = true; + this.buttons(); + }, + + /** + * Unlocks the carousel. + * + * @method unlock + * @return undefined + */ + unlock: function() { + this.locked = false; + this.buttons(); + }, + + /** + * Sets the size of the carousel. + * + * @method size + * @return undefined + * @param s {Number} The size of the carousel. + */ + size: function(s) { + if (s !== undefined) { + this.options.size = s; + if (!this.locked) { + this.buttons(); + } + } + + return this.options.size; + }, + + /** + * Checks whether a list element exists for the given index (or index range). + * + * @method get + * @return bool + * @param i {Number} The index of the (first) element. + * @param i2 {Number} The index of the last element. + */ + has: function(i, i2) { + if (i2 === undefined || !i2) { + i2 = i; + } + + if (this.options.size !== null && i2 > this.options.size) { + i2 = this.options.size; + } + + for (var j = i; j <= i2; j++) { + var e = this.get(j); + if (!e.length || e.hasClass('jcarousel-item-placeholder')) { + return false; + } + } + + return true; + }, + + /** + * Returns a jQuery object with list element for the given index. + * + * @method get + * @return jQuery + * @param i {Number} The index of the element. + */ + get: function(i) { + return $('>.jcarousel-item-' + i, this.list); + }, + + /** + * Adds an element for the given index to the list. + * If the element already exists, it updates the inner html. + * Returns the created element as jQuery object. + * + * @method add + * @return jQuery + * @param i {Number} The index of the element. + * @param s {String} The innerHTML of the element. + */ + add: function(i, s) { + var e = this.get(i), old = 0, n = $(s); + + if (e.length === 0) { + var c, j = $jc.intval(i); + e = this.create(i); + while (true) { + c = this.get(--j); + if (j <= 0 || c.length) { + if (j <= 0) { + this.list.prepend(e); + } else { + c.after(e); + } + break; + } + } + } else { + old = this.dimension(e); + } + + if (n.get(0).nodeName.toUpperCase() == 'LI') { + e.replaceWith(n); + e = n; + } else { + e.empty().append(s); + } + + this.format(e.removeClass(this.className('jcarousel-item-placeholder')), i); + + var di = this.options.visible !== null ? Math.ceil(this.clipping() / this.options.visible) : null; + var wh = this.dimension(e, di) - old; + + if (i > 0 && i < this.first) { + this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) - wh + 'px'); + } + + this.list.css(this.wh, $jc.intval(this.list.css(this.wh)) + wh + 'px'); + + return e; + }, + + /** + * Removes an element for the given index from the list. + * + * @method remove + * @return undefined + * @param i {Number} The index of the element. + */ + remove: function(i) { + var e = this.get(i); + + // Check if item exists and is not currently visible + if (!e.length || (i >= this.first && i <= this.last)) { + return; + } + + var d = this.dimension(e); + + if (i < this.first) { + this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) + d + 'px'); + } + + e.remove(); + + this.list.css(this.wh, $jc.intval(this.list.css(this.wh)) - d + 'px'); + }, + + /** + * Moves the carousel forwards. + * + * @method next + * @return undefined + */ + next: function() { + if (this.tail !== null && !this.inTail) { + this.scrollTail(false); + } else { + this.scroll(((this.options.wrap == 'both' || this.options.wrap == 'last') && this.options.size !== null && this.last == this.options.size) ? 1 : this.first + this.options.scroll); + } + }, + + /** + * Moves the carousel backwards. + * + * @method prev + * @return undefined + */ + prev: function() { + if (this.tail !== null && this.inTail) { + this.scrollTail(true); + } else { + this.scroll(((this.options.wrap == 'both' || this.options.wrap == 'first') && this.options.size !== null && this.first == 1) ? this.options.size : this.first - this.options.scroll); + } + }, + + /** + * Scrolls the tail of the carousel. + * + * @method scrollTail + * @return undefined + * @param b {Boolean} Whether scroll the tail back or forward. + */ + scrollTail: function(b) { + if (this.locked || this.animating || !this.tail) { + return; + } + + this.pauseAuto(); + + var pos = $jc.intval(this.list.css(this.lt)); + + pos = !b ? pos - this.tail : pos + this.tail; + this.inTail = !b; + + // Save for callbacks + this.prevFirst = this.first; + this.prevLast = this.last; + + this.animate(pos); + }, + + /** + * Scrolls the carousel to a certain position. + * + * @method scroll + * @return undefined + * @param i {Number} The index of the element to scoll to. + * @param a {Boolean} Flag indicating whether to perform animation. + */ + scroll: function(i, a) { + if (this.locked || this.animating) { + return; + } + + this.pauseAuto(); + this.animate(this.pos(i), a); + }, + + /** + * Prepares the carousel and return the position for a certian index. + * + * @method pos + * @return {Number} + * @param i {Number} The index of the element to scoll to. + * @param fv {Boolean} Whether to force last item to be visible. + */ + pos: function(i, fv) { + var pos = $jc.intval(this.list.css(this.lt)); + + if (this.locked || this.animating) { + return pos; + } + + if (this.options.wrap != 'circular') { + i = i < 1 ? 1 : (this.options.size && i > this.options.size ? this.options.size : i); + } + + var back = this.first > i; + + // Create placeholders, new list width/height + // and new list position + var f = this.options.wrap != 'circular' && this.first <= 1 ? 1 : this.first; + var c = back ? this.get(f) : this.get(this.last); + var j = back ? f : f - 1; + var e = null, l = 0, p = false, d = 0, g; + + while (back ? --j >= i : ++j < i) { + e = this.get(j); + p = !e.length; + if (e.length === 0) { + e = this.create(j).addClass(this.className('jcarousel-item-placeholder')); + c[back ? 'before' : 'after' ](e); + + if (this.first !== null && this.options.wrap == 'circular' && this.options.size !== null && (j <= 0 || j > this.options.size)) { + g = this.get(this.index(j)); + if (g.length) { + e = this.add(j, g.clone(true)); + } + } + } + + c = e; + d = this.dimension(e); + + if (p) { + l += d; + } + + if (this.first !== null && (this.options.wrap == 'circular' || (j >= 1 && (this.options.size === null || j <= this.options.size)))) { + pos = back ? pos + d : pos - d; + } + } + + // Calculate visible items + var clipping = this.clipping(), cache = [], visible = 0, v = 0; + c = this.get(i - 1); + j = i; + + while (++visible) { + e = this.get(j); + p = !e.length; + if (e.length === 0) { + e = this.create(j).addClass(this.className('jcarousel-item-placeholder')); + // This should only happen on a next scroll + if (c.length === 0) { + this.list.prepend(e); + } else { + c[back ? 'before' : 'after' ](e); + } + + if (this.first !== null && this.options.wrap == 'circular' && this.options.size !== null && (j <= 0 || j > this.options.size)) { + g = this.get(this.index(j)); + if (g.length) { + e = this.add(j, g.clone(true)); + } + } + } + + c = e; + d = this.dimension(e); + if (d === 0) { + throw new Error('jCarousel: No width/height set for items. This will cause an infinite loop. Aborting...'); + } + + if (this.options.wrap != 'circular' && this.options.size !== null && j > this.options.size) { + cache.push(e); + } else if (p) { + l += d; + } + + v += d; + + if (v >= clipping) { + break; + } + + j++; + } + + // Remove out-of-range placeholders + for (var x = 0; x < cache.length; x++) { + cache[x].remove(); + } + + // Resize list + if (l > 0) { + this.list.css(this.wh, this.dimension(this.list) + l + 'px'); + + if (back) { + pos -= l; + this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) - l + 'px'); + } + } + + // Calculate first and last item + var last = i + visible - 1; + if (this.options.wrap != 'circular' && this.options.size && last > this.options.size) { + last = this.options.size; + } + + if (j > last) { + visible = 0; + j = last; + v = 0; + while (++visible) { + e = this.get(j--); + if (!e.length) { + break; + } + v += this.dimension(e); + if (v >= clipping) { + break; + } + } + } + + var first = last - visible + 1; + if (this.options.wrap != 'circular' && first < 1) { + first = 1; + } + + if (this.inTail && back) { + pos += this.tail; + this.inTail = false; + } + + this.tail = null; + if (this.options.wrap != 'circular' && last == this.options.size && (last - visible + 1) >= 1) { + var m = $jc.intval(this.get(last).css(!this.options.vertical ? 'marginRight' : 'marginBottom')); + if ((v - m) > clipping) { + this.tail = v - clipping - m; + } + } + + if (fv && i === this.options.size && this.tail) { + pos -= this.tail; + this.inTail = true; + } + + // Adjust position + while (i-- > first) { + pos += this.dimension(this.get(i)); + } + + // Save visible item range + this.prevFirst = this.first; + this.prevLast = this.last; + this.first = first; + this.last = last; + + return pos; + }, + + /** + * Animates the carousel to a certain position. + * + * @method animate + * @return undefined + * @param p {Number} Position to scroll to. + * @param a {Boolean} Flag indicating whether to perform animation. + */ + animate: function(p, a) { + if (this.locked || this.animating) { + return; + } + + this.animating = true; + + var self = this; + var scrolled = function() { + self.animating = false; + + if (p === 0) { + self.list.css(self.lt, 0); + } + + if (!self.autoStopped && (self.options.wrap == 'circular' || self.options.wrap == 'both' || self.options.wrap == 'last' || self.options.size === null || self.last < self.options.size || (self.last == self.options.size && self.tail !== null && !self.inTail))) { + self.startAuto(); + } + + self.buttons(); + self.notify('onAfterAnimation'); + + // This function removes items which are appended automatically for circulation. + // This prevents the list from growing infinitely. + if (self.options.wrap == 'circular' && self.options.size !== null) { + for (var i = self.prevFirst; i <= self.prevLast; i++) { + if (i !== null && !(i >= self.first && i <= self.last) && (i < 1 || i > self.options.size)) { + self.remove(i); + } + } + } + }; + + this.notify('onBeforeAnimation'); + + // Animate + if (!this.options.animation || a === false) { + this.list.css(this.lt, p + 'px'); + scrolled(); + } else { + var o = !this.options.vertical ? (this.options.rtl ? {'right': p} : {'left': p}) : {'top': p}; + // Define animation settings. + var settings = { + duration: this.options.animation, + easing: this.options.easing, + complete: scrolled + }; + // If we have a step callback, specify it as well. + if ($.isFunction(this.options.animationStepCallback)) { + settings.step = this.options.animationStepCallback; + } + // Start the animation. + this.list.animate(o, settings); + } + }, + + /** + * Starts autoscrolling. + * + * @method auto + * @return undefined + * @param s {Number} Seconds to periodically autoscroll the content. + */ + startAuto: function(s) { + if (s !== undefined) { + this.options.auto = s; + } + + if (this.options.auto === 0) { + return this.stopAuto(); + } + + if (this.timer !== null) { + return; + } + + this.autoStopped = false; + + var self = this; + this.timer = window.setTimeout(function() { self.next(); }, this.options.auto * 1000); + }, + + /** + * Stops autoscrolling. + * + * @method stopAuto + * @return undefined + */ + stopAuto: function() { + this.pauseAuto(); + this.autoStopped = true; + }, + + /** + * Pauses autoscrolling. + * + * @method pauseAuto + * @return undefined + */ + pauseAuto: function() { + if (this.timer === null) { + return; + } + + window.clearTimeout(this.timer); + this.timer = null; + }, + + /** + * Sets the states of the prev/next buttons. + * + * @method buttons + * @return undefined + */ + buttons: function(n, p) { + if (n == null) { + n = !this.locked && this.options.size !== 0 && ((this.options.wrap && this.options.wrap != 'first') || this.options.size === null || this.last < this.options.size); + if (!this.locked && (!this.options.wrap || this.options.wrap == 'first') && this.options.size !== null && this.last >= this.options.size) { + n = this.tail !== null && !this.inTail; + } + } + + if (p == null) { + p = !this.locked && this.options.size !== 0 && ((this.options.wrap && this.options.wrap != 'last') || this.first > 1); + if (!this.locked && (!this.options.wrap || this.options.wrap == 'last') && this.options.size !== null && this.first == 1) { + p = this.tail !== null && this.inTail; + } + } + + var self = this; + + if (this.buttonNext.size() > 0) { + this.buttonNext.unbind(this.options.buttonNextEvent + '.jcarousel', this.funcNext); + + if (n) { + this.buttonNext.bind(this.options.buttonNextEvent + '.jcarousel', this.funcNext); + } + + this.buttonNext[n ? 'removeClass' : 'addClass'](this.className('jcarousel-next-disabled')).attr('disabled', n ? false : true); + + if (this.options.buttonNextCallback !== null && this.buttonNext.data('jcarouselstate') != n) { + this.buttonNext.each(function() { self.options.buttonNextCallback(self, this, n); }).data('jcarouselstate', n); + } + } else { + if (this.options.buttonNextCallback !== null && this.buttonNextState != n) { + this.options.buttonNextCallback(self, null, n); + } + } + + if (this.buttonPrev.size() > 0) { + this.buttonPrev.unbind(this.options.buttonPrevEvent + '.jcarousel', this.funcPrev); + + if (p) { + this.buttonPrev.bind(this.options.buttonPrevEvent + '.jcarousel', this.funcPrev); + } + + this.buttonPrev[p ? 'removeClass' : 'addClass'](this.className('jcarousel-prev-disabled')).attr('disabled', p ? false : true); + + if (this.options.buttonPrevCallback !== null && this.buttonPrev.data('jcarouselstate') != p) { + this.buttonPrev.each(function() { self.options.buttonPrevCallback(self, this, p); }).data('jcarouselstate', p); + } + } else { + if (this.options.buttonPrevCallback !== null && this.buttonPrevState != p) { + this.options.buttonPrevCallback(self, null, p); + } + } + + this.buttonNextState = n; + this.buttonPrevState = p; + }, + + /** + * Notify callback of a specified event. + * + * @method notify + * @return undefined + * @param evt {String} The event name + */ + notify: function(evt) { + var state = this.prevFirst === null ? 'init' : (this.prevFirst < this.first ? 'next' : 'prev'); + + // Load items + this.callback('itemLoadCallback', evt, state); + + if (this.prevFirst !== this.first) { + this.callback('itemFirstInCallback', evt, state, this.first); + this.callback('itemFirstOutCallback', evt, state, this.prevFirst); + } + + if (this.prevLast !== this.last) { + this.callback('itemLastInCallback', evt, state, this.last); + this.callback('itemLastOutCallback', evt, state, this.prevLast); + } + + this.callback('itemVisibleInCallback', evt, state, this.first, this.last, this.prevFirst, this.prevLast); + this.callback('itemVisibleOutCallback', evt, state, this.prevFirst, this.prevLast, this.first, this.last); + }, + + callback: function(cb, evt, state, i1, i2, i3, i4) { + if (this.options[cb] == null || (typeof this.options[cb] != 'object' && evt != 'onAfterAnimation')) { + return; + } + + var callback = typeof this.options[cb] == 'object' ? this.options[cb][evt] : this.options[cb]; + + if (!$.isFunction(callback)) { + return; + } + + var self = this; + + if (i1 === undefined) { + callback(self, state, evt); + } else if (i2 === undefined) { + this.get(i1).each(function() { callback(self, this, i1, state, evt); }); + } else { + var call = function(i) { + self.get(i).each(function() { callback(self, this, i, state, evt); }); + }; + for (var i = i1; i <= i2; i++) { + if (i !== null && !(i >= i3 && i <= i4)) { + call(i); + } + } + } + }, + + create: function(i) { + return this.format('', i); + }, + + format: function(e, i) { + e = $(e); + var split = e.get(0).className.split(' '); + for (var j = 0; j < split.length; j++) { + if (split[j].indexOf('jcarousel-') != -1) { + e.removeClass(split[j]); + } + } + e.addClass(this.className('jcarousel-item')).addClass(this.className('jcarousel-item-' + i)).css({ + 'float': (this.options.rtl ? 'right' : 'left'), + 'list-style': 'none' + }).attr('jcarouselindex', i); + return e; + }, + + className: function(c) { + return c + ' ' + c + (!this.options.vertical ? '-horizontal' : '-vertical'); + }, + + dimension: function(e, d) { + var el = $(e); + + if (d == null) { + return !this.options.vertical ? + (el.outerWidth(true) || $jc.intval(this.options.itemFallbackDimension)) : + (el.outerHeight(true) || $jc.intval(this.options.itemFallbackDimension)); + } else { + var w = !this.options.vertical ? + d - $jc.intval(el.css('marginLeft')) - $jc.intval(el.css('marginRight')) : + d - $jc.intval(el.css('marginTop')) - $jc.intval(el.css('marginBottom')); + + $(el).css(this.wh, w + 'px'); + + return this.dimension(el); + } + }, + + clipping: function() { + return !this.options.vertical ? + this.clip[0].offsetWidth - $jc.intval(this.clip.css('borderLeftWidth')) - $jc.intval(this.clip.css('borderRightWidth')) : + this.clip[0].offsetHeight - $jc.intval(this.clip.css('borderTopWidth')) - $jc.intval(this.clip.css('borderBottomWidth')); + }, + + index: function(i, s) { + if (s == null) { + s = this.options.size; + } + + return Math.round((((i-1) / s) - Math.floor((i-1) / s)) * s) + 1; + } + }); + + $jc.extend({ + /** + * Gets/Sets the global default configuration properties. + * + * @method defaults + * @return {Object} + * @param d {Object} A set of key/value pairs to set as configuration properties. + */ + defaults: function(d) { + return $.extend(defaults, d || {}); + }, + + intval: function(v) { + v = parseInt(v, 10); + return isNaN(v) ? 0 : v; + }, + + windowLoaded: function() { + windowLoaded = true; + } + }); + + /** + * Creates a carousel for all matched elements. + * + * @example $("#mycarousel").jcarousel(); + * @before First itemSecond item + * @result + * + * + * + * + * + * First item + * Second item + * + * + * + * + * + * + * + * @method jcarousel + * @return jQuery + * @param o {Hash|String} A set of key/value pairs to set as configuration properties or a method name to call on a formerly created instance. + */ + $.fn.jcarousel = function(o) { + if (typeof o == 'string') { + var instance = $(this).data('jcarousel'), args = Array.prototype.slice.call(arguments, 1); + return instance[o].apply(instance, args); + } else { + return this.each(function() { + var instance = $(this).data('jcarousel'); + if (instance) { + if (o) { + $.extend(instance.options, o); + } + instance.reload(); + } else { + $(this).data('jcarousel', new $jc(this, o)); + } + }); + } + }; + +})(jQuery); diff --git a/js/slider.js b/js/slider.js new file mode 100644 index 0000000..38ec72b --- /dev/null +++ b/js/slider.js @@ -0,0 +1,49 @@ +function padd_create_slideshow() { + jQuery('div#slideshow-box').append(''); + jQuery('div#slideshow-box div.list').cycle({ + fx : 'fade', + speed : 1000, + timeout : 3000, + cleartypeNoBg : true, + activePagerClass: 'jqc-active', + pager: '#jqc-pages', + prev: '#jqc-prev', + next: '#jqc-next', + pagerAnchorBuilder: function (index,elem) { + return '' + (index+1) + ''; + } + }); +} + +function padd_jcarousel_init(carousel) { +// Disable autoscrolling if the user clicks the prev or next button. + carousel.buttonNext.bind('click', function() { + carousel.startAuto(0); + }); + + carousel.buttonPrev.bind('click', function() { + carousel.startAuto(0); + }); + + // Pause autoscrolling if the user moves with the cursor over the clip. + carousel.clip.hover( + function() { + carousel.stopAuto(); + }, + function() { + carousel.startAuto(); + } + ); +} + +jQuery(document).ready(function() { + jQuery.noConflict(); + + padd_create_slideshow(); + + jQuery('ul#featured-projects').jcarousel({ + auto: 5, + wrap: 'last', + initCallback: padd_jcarousel_init + }); +}); \ No newline at end of file diff --git a/plugin.xml b/plugin.xml new file mode 100644 index 0000000..8ff3b74 --- /dev/null +++ b/plugin.xml @@ -0,0 +1,22 @@ + + Squelette Leadescent + Sites de type blog + 1.0.0 + stable + [Romaric Buisson-Ramey(OpenStudio)->http://www.openstudio.fr/], [d'après le thème leadescent->http://www.paddsolutions.com/wordpress-theme-leadescent//], [Padd Solutions->http://www.paddsolutions.com/] + GNU/GPL + + Squelette avec slider, fonctionnant avec le thème du même nom. + + + vignette.jpg + squelette_leadescent + squelette + + + + insert_head + insertion_in_head + squelette_leadescent_pipelines.php + + diff --git a/squelette_leadescent_pipelines.php b/squelette_leadescent_pipelines.php new file mode 100644 index 0000000..52e77e5 --- /dev/null +++ b/squelette_leadescent_pipelines.php @@ -0,0 +1,11 @@ + + "; + $flux .= " + "; + $flux .= " + "; + return $flux; + } +?> \ No newline at end of file diff --git a/vignette.jpg b/vignette.jpg new file mode 100644 index 0000000..bb06f0a Binary files /dev/null and b/vignette.jpg differ
+ Lire la suite +