/*	
 *	jQuery carouFredSel 2.0.3
 *	Demo's and documentation:
 *	caroufredsel.frebsite.nl
 *	
 *	Copyright (c) 2010 Fred Heusschen
 *	www.frebsite.nl
 *
 *	Licensed under the MIT license.
 *	http://www.opensource.org/licenses/mit-license.php
 */
(function(f){f.fn.carouFredSel=function(e){return this.each(function(){var a=f.extend(true,{},f.fn.carouFredSel.defaults,e),c=f(this),k=f("> *",c),h=k.length,n=k.outerWidth(true),o=k.outerHeight(true),j=0,s=null,m=a.direction=="up"||a.direction=="left"?"next":"prev";if(a.scroll.items==0||a.scroll.items==null)a.scroll.items=a.visibleItems;a.auto=f.fn.carouFredSel.getNaviObject(a.auto,false,true);a.prev=f.fn.carouFredSel.getNaviObject(a.prev);a.next=f.fn.carouFredSel.getNaviObject(a.next);a.pagination= f.fn.carouFredSel.getNaviObject(a.pagination,true);a.auto=f.extend({},a.scroll,a.auto);a.prev=f.extend({},a.scroll,a.prev);a.next=f.extend({},a.scroll,a.next);a.pagination=f.extend({},a.scroll,a.pagination);if(typeof a.pagination.anchorBuilder!="function")a.pagination.anchorBuilder=f.fn.carouFredSel.pageAnchorBuilder;if(typeof a.pagination.keys!="boolean")a.pagination.keys=false;if(typeof a.auto.play!="boolean")a.auto.play=true;if(typeof a.auto.nap!="boolean")a.auto.nap=true;if(typeof a.auto.delay!= "number")a.auto.delay=0;if(typeof a.auto.pauseDuration!="number")a.auto.pauseDuration=a.auto.duration*6;a.auto.pauseDuration==a.auto.duration&&a.auto.duration--;a.prev.name="prev";a.next.name="next";a.pagination.name="pagination";if(a.visibleItems>=h){f.fn.carouFredSel.log("Not enough items: terminating");a.prev.button&&a.prev.button.hide();a.next.button&&a.next.button.hide();a.pagination.container&&a.pagination.container.hide()}else{if(a.direction=="right"||a.direction=="left")var l=["width",n*2], t={width:a.width||n*a.visibleItems,height:a.height||o};else{l=["height",o*2];t={height:a.height||o*a.visibleItems,width:a.width||n}}c.css(l[0],l[1]*h).css({position:"absolute"}).wrap('<div class="caroufredsel_wrapper" />').parent().css(t).css({position:"relative",overflow:"hidden"});c.bind("pause",function(){s!=null&&clearTimeout(s)}).bind("play",function(g,b,d){if(a.auto.play){if(typeof b=="undefined")b=m;if(typeof d=="undefined")d=0;s=setTimeout(function(){c.is(":animated")?c.trigger("pause").trigger("play", b):c.trigger(b,a.auto)},a.auto.pauseDuration+d)}}).bind("prev",function(g,b,d){if(!c.is(":animated"))if(!(a.visibleItems>=h)){if(typeof b=="number")d=b;if(typeof b!="object")b=a.prev;if(typeof d!="number")d=b.items;if(!d||typeof d!="number")f.fn.carouFredSel.log("Not a valid number.");else{c.find("> *:gt("+(h-d-1)+")").prependTo(c);h<a.visibleItems+d&&c.find("> *:lt("+(a.visibleItems+d-h)+")").clone(true).appendTo(c);j-=d;if(j<0)j+=h;g=f.fn.carouFredSel.getCurrentItems(c,a,d);if(a.direction=="right"|| a.direction=="left")var i="left",p=n;else{i="top";p=o}var q={},r={};q[i]=-(p*d);r[i]=0;b.onBefore&&b.onBefore(g[1],g[0],b.name);c.data("numItems",d).data("sliderObj",b).data("oldItems",g[1]).data("newItems",g[0]).css(q).animate(r,{duration:b.duration,easing:b.easing,complete:function(){h<a.visibleItems+c.data("numItems")&&c.find("> *:gt("+(h-1)+")").remove();c.data("sliderObj").onAfter&&c.data("sliderObj").onAfter(c.data("oldItems"),c.data("newItems"),c.data("sliderObj").name)}});c.trigger("updatePageStatus").trigger("pause").trigger("play", "prev")}}}).bind("next",function(g,b,d){if(!c.is(":animated"))if(!(a.visibleItems>=h)){if(typeof b=="number")d=b;if(typeof b!="object")b=a.next;if(typeof d!="number")d=b.items;if(!d||typeof d!="number")f.fn.carouFredSel.log("Not a valid number.");else{h<a.visibleItems+d&&c.find("> *:lt("+(a.visibleItems+d-h)+")").clone(true).appendTo(c);j+=d;if(j>=h)j-=h;g=f.fn.carouFredSel.getCurrentItems(c,a,d);if(a.direction=="right"||a.direction=="left")var i="left",p=n;else{i="top";p=o}var q={},r={};q[i]=-(p* d);r[i]=0;b.onBefore&&b.onBefore(g[0],g[1],b.name);c.data("numItems",d).data("sliderObj",b).data("oldItems",g[0]).data("newItems",g[1]).animate(q,{duration:b.duration,easing:b.easing,complete:function(){c.data("sliderObj").onAfter&&c.data("sliderObj").onAfter(c.data("oldItems"),c.data("newItems"),c.data("sliderObj").name);h<a.visibleItems+c.data("numItems")&&c.find("> *:gt("+(h-1)+")").remove();c.css(r).find("> *:lt("+c.data("numItems")+")").appendTo(c)}});c.trigger("updatePageStatus").trigger("pause").trigger("play", "next")}}}).bind("scrollTo",function(g,b,d,i){if(!c.is(":animated")){if(typeof b=="string")b=parseInt(b);if(typeof b=="object")b=c.find("> *").index(b);else if(typeof b=="number"){b+=-j+h;if(b>=h)b-=h}if(typeof b!="number"||b==-1)f.fn.carouFredSel.log("Not a valid number.");else{if(typeof d=="string")d=parseInt(d);if(typeof d!="number")d=0;if(typeof i!="object")i=false;b+=d;if(b<0)b+=h;if(b>=h)b-=h;if(b!=0)b<h/2?c.trigger("next",[i,b]):c.trigger("prev",[i,h-b])}}}).bind("slideTo",function(g,b,d,i){c.trigger("scrollTo", [b,d,i])}).bind("insertItem",function(g,b,d){if(typeof b=="string")b=f(b);if(typeof b!="object"||typeof b.jquery=="undefined"||b.length==0)f.fn.carouFredSel.log("Not a valid object.");else{if(typeof d=="undefined")d="after";if(typeof d=="number")d-=1;if(typeof d=="string")d=d=="before"?h-1:d=="after"?a.visibleItems-1:d=="end"?h-j-1:f(d);if(typeof d=="object")d=c.find("> *").index(d)-1;if(typeof d!="number")f.fn.carouFredSel.log("Not a valid number.");else{g=h-j;if(g>=h)g-=h;if(d>=g&&g>0)j+=b.length; g=c.find("> *");if(g.length<2)d==-1?c.prepend(b):c.append(b);else d==-1?g.filter(":nth(0)").before(b):g.filter(":nth("+d+")").after(b);k=c.find("> *");h=k.length;c.css(l[0],l[1]*h).trigger("updatePageStatus",true)}}}).bind("removeItem",function(g,b){if(typeof b=="object"&&typeof b.jquery=="undefined")b=f(b);if(typeof b=="string")b=f(b);if(typeof b=="number")b=c.find("> *:nth("+b+")");if(typeof b!="object"||typeof b.jquery=="undefined"||b.length==0)f.fn.carouFredSel.log("Not a valid object.");else{var d= c.find("> *").index(b),i=h-j;if(i>=h)i-=h;if(d>=i&&i>0)j-=b.length;else if(i-b.length==0)j=0;b.remove();k=c.find("> *");h=k.length;c.css(l[0],l[1]*h).trigger("updatePageStatus",true)}}).bind("updatePageStatus",function(g,b){if(a.pagination.container==null||a.pagination.container.length==0)return false;if(typeof b=="boolean"&&b){a.pagination.container.find("> *").remove();for(var d=0;d<Math.ceil(h/a.visibleItems);d++)a.pagination.container.append(a.pagination.anchorBuilder(d+1));a.pagination.container.find("> *").each(function(i){f(this).unbind("click").click(function(){c.trigger("scrollTo", [i*a.visibleItems,0,a.pagination]);return false})})}d=Math.round(j/a.visibleItems);a.pagination.container.find("> *").removeClass("selected").filter(":nth("+d+")").addClass("selected")});a.auto.pauseOnHover&&a.auto.play&&c.hover(function(){c.trigger("pause")},function(){c.trigger("play",m)});if(a.prev.button!=null&&a.prev.button.length){a.prev.button.click(function(){c.trigger("prev");return false});a.prev.pauseOnHover&&a.auto.play&&a.prev.button.hover(function(){c.trigger("pause")},function(){c.trigger("play", m)})}if(a.next.button!=null&&a.next.button.length){a.next.button.click(function(){c.trigger("next");return false});a.next.pauseOnHover&&a.auto.play&&a.next.button.hover(function(){c.trigger("pause")},function(){c.trigger("play",m)})}if(a.pagination.container!=null&&a.pagination.container.length){c.trigger("updatePageStatus",true);a.pagination.pauseOnHover&&a.auto.play&&a.pagination.container.hover(function(){c.trigger("pause")},function(){c.trigger("play",m)})}if(a.next.key||a.prev.key)f(document).keyup(function(g){g= g.keyCode;g==a.next.key&&c.trigger("next");g==a.prev.key&&c.trigger("prev")});a.pagination.keys&&f(document).keyup(function(g){g=g.keyCode;if(g>=49&&g<58){g=(g-49)*a.visibleItems;g<=h&&c.trigger("scrollTo",[g,0,a.pagination])}});if(a.auto.play){c.trigger("play",[m,a.auto.delay]);f.fn.nap&&a.auto.nap&&c.nap("pause","play")}}})};f.fn.carouFredSel.defaults={height:null,width:null,visibleItems:5,direction:"left",scroll:{items:null,easing:"swing",duration:500,pauseOnHover:false,onBefore:null,onAfter:null}}; f.fn.carouFredSel.getKeyCode=function(e){if(e=="right")return 39;if(e=="left")return 37;if(e=="up")return 38;if(e=="down")return 40;return-1};f.fn.carouFredSel.getNaviObject=function(e,a,c){if(typeof a!="boolean")a=false;if(typeof c!="boolean")c=false;if(typeof e=="undefined")e={};if(typeof e=="string"){var k=f.fn.carouFredSel.getKeyCode(e);e=k==-1?f(e):k}if(a){if(typeof e.jquery!="undefined")e={container:e};if(typeof e=="boolean")e={keys:e};if(typeof e.container=="string")e.container=f(e.container)}else if(c){if(typeof e== "boolean")e={play:e};if(typeof e=="number")e={pauseDuration:e}}else{if(typeof e.jquery!="undefined")e={button:e};if(typeof e=="number")e={key:e};if(typeof e.button=="string")e.button=f(e.button);if(typeof e.key=="string")e.key=f.fn.carouFredSel.getKeyCode(e.key)}return e};f.fn.carouFredSel.getCurrentItems=function(e,a,c){var k=e.find("> *:lt("+a.visibleItems+")");e=e.find("> *:lt("+(a.visibleItems+c)+"):gt("+(c-1)+")");return[k,e]};f.fn.carouFredSel.log=function(e){try{console.log("carouFredSel: "+ e)}catch(a){}};f.fn.carouFredSel.pageAnchorBuilder=function(e){return'<a href="#"><span>'+e+"</span></a>"}})(jQuery);
