var QSC=QSC||{};QSC.apps=QSC.apps||{};QSC.apps.jCarousel=QSC.apps.jCarousel||{};QSC.apps.jCarousel.circularHelper=(function(){var g=function(u,s){var s=s||0,v=u.clip,k=v.find("LI"),n=v.offset().left,l=v.width(),o=(typeof(u.options.QSCconfig.buffer)!=="undefined"?u.options.QSCconfig.buffer:0.1),m=u.options.QSCconfig.items.length,r=0;cutoffIndex=null,allVisible=false;for(var q=k.length,p=s;p<q&&r<m;p++,r++){var t=k.eq(p),j=t.width();if(t.offset().left-n+j>l+Math.ceil(j*o)){cutoffIndex=r;break}}if(cutoffIndex==null){cutoffIndex=r}if(cutoffIndex>=m){allVisible=true}if(cutoffIndex==0){cutoffIndex=1}d(u,allVisible,s);u.options.scroll=cutoffIndex};var d=function(k,j,l){if(j){h(k,k.options.QSCconfig.items.length+l);k.buttonNext[0].style.display="none";k.buttonPrev[0].style.display="none"}else{k.buttonNext[0].style.display="block";k.buttonPrev[0].style.display="block"}};var h=function(k,j){k.list.find("LI:gt("+String(j-1)+")").remove()};var i=function(m,k){var j=m.options.QSCconfig.items[k],l=m.options.QSCconfig.template;l=l.replace(/\{([^}]+)\}/g,function(o,n){if(j[n]||j[n]===""){return j[n]}});l=$(l);$("a:first",l).html(m.options._imageCache[k].cloneNode(false));return l.get(0)};var a=function(n){var l=n.options.QSCconfig.items,k=n.options._imageCache=[];for(var j=l.length,m=0;m<j;m++){k[m]=b(n,l[m])}};var b=function(m,k){var j=document.createElement("img");if(!k.dimensions){j.style.display="none";return j}var l=/^width="([\d]+)" height="([\d]+)"$/.exec(k.dimensions);if(!l){j.style.display="none";return j}j.onload=function(){this.width=l[1];this.height=l[2];e(m)};j.src=k.imageURL;j.width=l[1];j.height=l[2];j.title=j.alt=k.imageAltText;return j};var c=function(l){for(var j=l.options.QSCconfig.items.length,k=0;k<j;k++){l.add(k+1,i(l,k))}};var e=function(j){j.clip.height(j.clip.find("UL:first").height())};var f=function(j){g(j)};return{setScroll:function(l,k,j){if(k==="next"){g(l,l.options.scroll)}if(k==="prev"){g(l)}},createCarouselItem:function(o,m,l,n,k){if(n==="init"){h(o,o.options.QSCconfig.items.length);return}var j=o.index(l,o.options.QSCconfig.items.length);o.add(l,i(o,j-1))},removeCarouselItem:function(n,l,k,m,j){n.remove(k)},onInit:function(k,j){a(k);c(k);e(k);f(k)}}})();