jQuery.noConflict()var stepcarousel={ajaxloadingmsg:'<div style="margin: 1em; font-weight: bold"><img src="ajaxloadr.gif" style="vertical-align: middle" /> Fetching Content. Please wait...</div>',defaultbuttonsfade:0.4,configholder:{},getCSSValue:function(val){return(val=="auto")?0:parseInt(val)},getremotepanels:function($,config){config.$belt.html(this.ajaxloadingmsg)$.ajax({url:config.contenttype[1],async:true,error:function(ajaxrequest){config.$belt.html('Error fetching content.<br />Server Response: '+ajaxrequest.responseText)},success:function(content){config.$belt.html(content)config.$panels=config.$gallery.find('.'+config.panelclass)stepcarousel.alignpanels($,config)}})},getoffset:function(what,offsettype){return(what.offsetParent)?what[offsettype]+this.getoffset(what.offsetParent,offsettype):what[offsettype]},getCookie:function(Name){var re=new RegExp(Name+"=[^;]+","i");if(document.cookie.match(re))return document.cookie.match(re)[0].split("=")[1]return null},setCookie:function(name,value){document.cookie=name+"="+value},fadebuttons:function(config,currentpanel){config.$leftnavbutton.fadeTo('fast',currentpanel==0?this.defaultbuttonsfade:1)config.$rightnavbutton.fadeTo('fast',currentpanel==config.lastvisiblepanel?this.defaultbuttonsfade:1)if(currentpanel==config.lastvisiblepanel){stepcarousel.stopautostep(config)}},addnavbuttons:function($,config,currentpanel){config.$leftnavbutton=$('<img src="'+config.defaultbuttons.leftnav[0]+'">').css({zIndex:50,position:'absolute',left:config.offsets.left+config.defaultbuttons.leftnav[1]+'px',top:config.offsets.top+config.defaultbuttons.leftnav[2]+'px',cursor:'hand',cursor:'pointer'}).attr({title:'Back '+config.defaultbuttons.moveby+' panels'}).appendTo('body')config.$rightnavbutton=$('<img src="'+config.defaultbuttons.rightnav[0]+'">').css({zIndex:50,position:'absolute',left:config.offsets.left+config.$gallery.get(0).offsetWidth+config.defaultbuttons.rightnav[1]+'px',top:config.offsets.top+config.defaultbuttons.rightnav[2]+'px',cursor:'hand',cursor:'pointer'}).attr({title:'Forward '+config.defaultbuttons.moveby+' panels'}).appendTo('body')config.$leftnavbutton.bind('click',function(){stepcarousel.stepBy(config.galleryid,-config.defaultbuttons.moveby)})config.$rightnavbutton.bind('click',function(){stepcarousel.stepBy(config.galleryid,config.defaultbuttons.moveby)})if(config.panelbehavior.wraparound==false){this.fadebuttons(config,currentpanel)};return config.$leftnavbutton.add(config.$rightnavbutton)},alignpanels:function($,config){var paneloffset=0 config.paneloffsets=[paneloffset]config.panelwidths=[]config.$panels.each(function(index){var $currentpanel=$(this)$currentpanel.css({float:'none',position:'absolute',left:paneloffset+'px'})$currentpanel.bind('click',function(e){return config.onpanelclick(e.target)})paneloffset+=stepcarousel.getCSSValue($currentpanel.css('marginRight'))+parseInt($currentpanel.get(0).offsetWidth||$currentpanel.css('width'))config.paneloffsets.push(paneloffset)config.panelwidths.push(paneloffset-config.paneloffsets[config.paneloffsets.length-2])})config.paneloffsets.pop()var addpanelwidths=0 var lastpanelindex=config.$panels.length-1 config.lastvisiblepanel=lastpanelindex for(var i=config.$panels.length-1;i>=0;i--){addpanelwidths+=(i==lastpanelindex?config.panelwidths[lastpanelindex]:config.paneloffsets[i+1]-config.paneloffsets[i])if(config.gallerywidth>addpanelwidths){config.lastvisiblepanel=i}};config.$belt.css({width:paneloffset+'px'})config.currentpanel=(config.panelbehavior.persist)?parseInt(this.getCookie(config.galleryid+"persist")):0config.currentpanel=(typeof config.currentpanel=="number"&&config.currentpanel<config.$panels.length)?config.currentpanel:0 var endpoint=config.paneloffsets[config.currentpanel]+(config.currentpanel==0?0:config.beltoffset)config.$belt.css({left:-endpoint+'px'})if(config.defaultbuttons.enable==true){var $navbuttons=this.addnavbuttons($,config,config.currentpanel)$(window).bind("load resize",function(){config.offsets={left:stepcarousel.getoffset(config.$gallery.get(0),"offsetLeft"),top:stepcarousel.getoffset(config.$gallery.get(0),"offsetTop")};config.$leftnavbutton.css({left:config.offsets.left+config.defaultbuttons.leftnav[1]+'px',top:config.offsets.top+config.defaultbuttons.leftnav[2]+'px'})config.$rightnavbutton.css({left:config.offsets.left+config.$gallery.get(0).offsetWidth+config.defaultbuttons.rightnav[1]+'px',top:config.offsets.top+config.defaultbuttons.rightnav[2]+'px'})})};if(config.autostep&&config.autostep.enable){var $carouselparts=config.$gallery.add(typeof $navbuttons!="undefined"?$navbuttons:null)$carouselparts.bind('click',function(){config.autostep.status="stopped"stepcarousel.stopautostep(config)})$carouselparts.hover(function(){stepcarousel.stopautostep(config)config.autostep.hoverstate="over"},function(){if(config.steptimer&&config.autostep.hoverstate=="over"&&config.autostep.status!="stopped"){config.steptimer=setInterval(function(){stepcarousel.autorotate(config.galleryid)},config.autostep.pause)config.autostep.hoverstate="out"}})config.steptimer=setInterval(function(){stepcarousel.autorotate(config.galleryid)},config.autostep.pause)};this.createpaginate($,config)this.statusreport(config.galleryid)config.oninit()config.onslideaction(this)},stepTo:function(galleryid,pindex){var config=stepcarousel.configholder[galleryid]if(typeof config=="undefined"){return};stepcarousel.stopautostep(config)var pindex=Math.min(pindex-1,config.paneloffsets.length-1)var endpoint=config.paneloffsets[pindex]+(pindex==0?0:config.beltoffset)if(config.panelbehavior.wraparound==false&&config.defaultbuttons.enable==true){this.fadebuttons(config,pindex)};config.$belt.animate({left:-endpoint+'px'},config.panelbehavior.speed,function(){config.onslideaction(this)})config.currentpanel=pindex this.statusreport(galleryid)},stepBy:function(galleryid,steps,isauto){var config=stepcarousel.configholder[galleryid]if(typeof config=="undefined"){return};if(!isauto)stepcarousel.stopautostep(config)var direction=(steps>0)?'forward':'back'var pindex=config.currentpanel+stepsif(config.panelbehavior.wraparound==false){pindex=(direction=="back"&&pindex<=0)?0:(direction=="forward")?Math.min(pindex,config.lastvisiblepanel):pindex if(config.defaultbuttons.enable==true){stepcarousel.fadebuttons(config,pindex)}}else{if(pindex>config.lastvisiblepanel&&direction=="forward"){pindex=(config.currentpanel<config.lastvisiblepanel)?config.lastvisiblepanel:0}else if(pindex<0&&direction=="back"){pindex=(config.currentpanel>0)?0:config.lastvisiblepanel}};var endpoint=config.paneloffsets[pindex]+(pindex==0?0:config.beltoffset)if(config.panelbehavior.wraparound==true&&config.panelbehavior.wrapbehavior=="pushpull"&&(pindex==0&&direction=='forward'||config.currentpanel==0&&direction=='back')){config.$belt.animate({left:-config.paneloffsets[config.currentpanel]-(direction=='forward'?100:-30)+'px'},'normal',function(){config.$belt.animate({left:-endpoint+'px'},config.panelbehavior.speed,function(){config.onslideaction(this)})})}else config.$belt.animate({left:-endpoint+'px'},config.panelbehavior.speed,function(){config.onslideaction(this)})config.currentpanel=pindex this.statusreport(galleryid)},autorotate:function(galleryid){var config=stepcarousel.configholder[galleryid]config.$belt.stop(true,true)this.stepBy(galleryid,config.autostep.moveby,true)},stopautostep:function(config){clearTimeout(config.steptimer)},statusreport:function(galleryid){var config=stepcarousel.configholder[galleryid]if(config.statusvars.length==3){var startpoint=config.currentpanelvar visiblewidth=0 for(var endpoint=startpoint;endpoint<config.paneloffsets.length;endpoint++){visiblewidth+=config.panelwidths[endpoint]if(visiblewidth>config.gallerywidth){break}};startpoint+=1endpoint=(endpoint+1==startpoint)?startpoint:endpointvar valuearray=[startpoint,endpoint,config.panelwidths.length]for(var i=0;i<config.statusvars.length;i++){window[config.statusvars[i]]=valuearray[i]config.$statusobjs[i].text(valuearray[i]+" ")}};stepcarousel.selectpaginate(jQuery,galleryid)},createpaginate:function($,config){if(config.$paginatediv.length==1){var $templateimg=config.$paginatediv.find('img["data-over"]:eq(0)')var controlpoints=[],controlsrc=[],imgarray=[],moveby=$templateimg.attr("data-moveby")||1 var asize=(moveby==1?0:1)+Math.floor((config.lastvisiblepanel+1)/ moveby) //calculate#of pagination links to create var imghtml=$('<div>').append($templateimg.clone()).html()srcs=[$templateimg.attr('src'),$templateimg.attr('data-over'),$templateimg.attr('data-select')]for(var i=0;i<asize;i++){var moveto=Math.min(i*moveby,config.lastvisiblepanel)imgarray.push(imghtml.replace(/>$/,' data-index="'+i+'" data-moveto="'+moveto+'" title="Move to Panel '+(moveto+1)+'">')+'\n')controlpoints.push(moveto)};var $controls=$('<span></span>').replaceAll($templateimg).append(imgarray.join('')).find('img')$controls.css({cursor:'pointer'})config.$paginatediv.bind('click',function(e){var $target=$(e.target)if($target.is('img')&&$target.attr('data-over')){stepcarousel.stepTo(config.galleryid,parseInt($target.attr('data-moveto'))+1)}})config.$paginatediv.bind('mouseover mouseout',function(e){var $target=$(e.target)if($target.is('img')&&$target.attr('data-over')){if(parseInt($target.attr('data-index'))!=config.pageinfo.curselected)$target.attr('src',srcs[(e.type=="mouseover")?1:0])}})config.pageinfo={controlpoints:controlpoints,$controls:$controls,srcs:srcs,prevselected:null,curselected:null}}},selectpaginate:function($,galleryid){var config=stepcarousel.configholder[galleryid]if(config.$paginatediv.length==1){for(var i=0;i<config.pageinfo.controlpoints.length;i++){if(config.pageinfo.controlpoints[i]<=config.currentpanel)config.pageinfo.curselected=i};if(typeof config.pageinfo.prevselected!=null)config.pageinfo.$controls.eq(config.pageinfo.prevselected).attr('src',config.pageinfo.srcs[0])config.pageinfo.$controls.eq(config.pageinfo.curselected).attr('src',config.pageinfo.srcs[2])config.pageinfo.prevselected=config.pageinfo.curselected}},loadcontent:function(galleryid,url){var config=stepcarousel.configholder[galleryid]config.contenttype=['ajax',url]stepcarousel.stopautostep(config)stepcarousel.resetsettings($,config)stepcarousel.init(jQuery,config)},init:function($,config){config.gallerywidth=config.$gallery.width()config.offsets={left:stepcarousel.getoffset(config.$gallery.get(0),"offsetLeft"),top:stepcarousel.getoffset(config.$gallery.get(0),"offsetTop")};config.$belt=config.$gallery.find('.'+config.beltclass)config.$panels=config.$gallery.find('.'+config.panelclass)config.panelbehavior.wrapbehavior=config.panelbehavior.wrapbehavior||"pushpull"config.$paginatediv=$('#'+config.galleryid+'-paginate')if(config.autostep)config.autostep.pause+=config.panelbehavior.speed config.onpanelclick=(typeof config.onpanelclick=="undefined")?function(target){}:config.onpanelclickconfig.onslideaction=(typeof config.onslide=="undefined")?function(){}:function(beltobj){$(beltobj).stop();config.onslide()};config.oninit=(typeof config.oninit=="undefined")?function(){}:config.oninitconfig.beltoffset=stepcarousel.getCSSValue(config.$belt.css('marginLeft'))config.statusvars=config.statusvars||[]config.$statusobjs=[$('#'+config.statusvars[0]),$('#'+config.statusvars[1]),$('#'+config.statusvars[2])]config.currentpanel=0 stepcarousel.configholder[config.galleryid]=configif(config.contenttype[0]=="ajax"&&typeof config.contenttype[1]!="undefined")stepcarousel.getremotepanels($,config)else stepcarousel.alignpanels($,config)},resetsettings:function($,config){config.$gallery.unbind()config.$belt.stop()config.$panels.remove()if(config.$leftnavbutton){config.$leftnavbutton.remove()config.$rightnavbutton.remove()};if(config.$paginatediv.length==1){config.$paginatediv.unbind()config.pageinfo.$controls.eq(0).attr('src',config.pageinfo.srcs[0]).removeAttr('data-index').removeAttr('data-moveto').removeAttr('title').end().slice(1).remove()};if(config.autostep)config.autostep.status=null if(config.panelbehavior.persist){stepcarousel.setCookie(window[config.galleryid+"persist"],0)}},setup:function(config){document.write('<style type="text/css">\n#'+config.galleryid+'{overflow: hidden;}\n</style>')jQuery(document).ready(function($){config.$gallery=$('#'+config.galleryid)stepcarousel.init($,config)})jQuery(window).bind('unload',function(){stepcarousel.resetsettings($,config)if(config.panelbehavior.persist)stepcarousel.setCookie(config.galleryid+"persist",config.currentpanel)jQuery.each(config,function(ai,oi){oi=null})config=null})}}
