//jQuery plugin - FoxNews Carousel. last updated: 08/03/2010
//Dependencies: jQuery
(function(j){function z(){this._speed="slow";this._scrollTo=this._scroll=1;this._scrollType="relative";this._rotate=true;this._auto={set:false,resume:false,speed:5E3};this._focus={item:0,animate:false};this._slide=this._show=null;this.cloneClass="item-clone";this.isAutoScroll=this._auto.set;this.isAutoScrollResume=this._auto.resume;this.autoSpeed=this._auto.speed;this.minAutoSpeed=3E3;this.targetItem=this.currentCount=0;this.scrollBatch=1;this.timeout=null;this.triggered=this.isItemCountOK=this.isLastBatch= false;this._eventCallback=function(){};this.carouselInfoObj={}}function A(){}function B(a){typeof window.console==="object"&&console.log(a)}function C(){B("[init] error initializing carousel.");return false}if(typeof jQuery.fn.jfoxCarousel!=="undefined"){B("[jfoxCarousel] Already initialized.");return false}jQuery.fn.jfoxCarousel=function(a){if(!a)return false;if(!a.slide||!a.show)return false;return this.each(function(){var b=new z;b.init(j(this),a);return b})};var x={holder:"slideshow",control:"controls"}; z.prototype={init:function(a,b){function l(m){var e,h,g,f,k,q=0;r.find("ul:first").children().each(function(){var n=j(this),t=s.getCSSDimension("margin",this,true),v=s.getCSSDimension("padding",this,true),u=s.getCSSDimension("border",this,true);e=s.format(s.getCSSDimension(m,this));if(m==="width"){h=t.Left+t.Right;g=v.Left+v.Right;f=u.Left+u.Right;k=n.outerWidth(true)}else{h=t.Top+t.Bottom;g=v.Top+v.Bottom;f=u.Top+u.Bottom;k=n.outerHeight(true)}n=e+h+g+f;n=k>n?k:n;if(n>q)q=n});return q}for(i in b)if(i=== "auto"||i==="focus"){var o=b[i];for(p in this["_"+i])if(o[p])this["_"+i][p]=o[p]}else if(i==="identifier")for(c in x){if(b[i][c])x[c]=b[i][c]}else this["_"+i]=b[i];this.obj=a;this.slideshowObj=j(this.obj).find("div."+x.holder);this.controlObj=j(this.obj).find("[class*='"+x.control+"']");var r=this.slideshowObj;if(j(this.slideshowObj).size()<1||this._slide!=="vertical"&&this._slide!=="horizontal"){C();return false}r.scrollLeft(0).scrollTop(0);this.holder={width:s.format(r.css("width")),height:s.format(r.css("height")), item:{count:r.find("ul:first").children().size(),width:l("width"),height:l("height")}};if(this.holder.item.count===0||this._slide==="horizontal"&&this.holder.item.width<=0||this._slide==="vertical"&&this.holder.item.height<=0){C();return false}else this.isItemCountOK=true;if(this._scrollType==="absolute"){o=this.holder.item.count%this._scroll;if(o>0){var d=this._scroll-o;this.holder.item.count+=d;r.find("ul:first").each(function(){for(var m=[],e=j("<span></span>"),h=0;h<d;h++)m.push("<li>&nbsp;</li>"); e.append(m.join(""));e.children().each(function(){j(this).css("visibility","hidden")});j(this).append(e.children())})}}o=Math.ceil((this.holder.item.count-this._show)/this._scroll)+(this.holder.item.count-this._show%this._scroll>0?1:0);this.maxBatch=o<1?1:o;if(typeof this._speed==="string")this._speed=j.fx.speeds[this._speed]?j.fx.speeds[this._speed]:j.fx.speeds.slow;if(this._auto.set)this.isAutoScroll=s.checkBoolean(this._auto.set);if(this._auto.resume)this.isAutoScrollResume=s.checkBoolean(this._auto.resume); if(!isNaN(this._auto.speed))this.autoSpeed=this._auto.speed<this.minAutoSpeed?this.minAutoSpeed:this._auto.speed;this.autoSpeed+=this._speed;this._focus.item>0&&this.slide("scrollToItem",this._focus.item,this._focus.animate);this.setListeners()},setListeners:function(){var a=this;this._eventCallback(this.carouselInfoObj={event:"init",items:this.holder.item.count,target:0,scroll:this._scroll,start:1,end:this._show>this.holder.item.count?this.holder.item.count:this._show,batch:{current:1,max:this.maxBatch}}); if(this._controlsCallback){this.externalControls=new A;this.externalControls.init(this);this._controlsCallback(this.externalControls)}else{this.isAutoScroll=this._auto.set?this._auto.set:true;this.isAutoScrollResume=this._auto.resume?this._auto.resume:true}this.externalControls.scrollToItem(1);if(this.isAutoScroll&&this.isItemCountOK){this.slideshowObj.hover(function(){if(a.isAutoScroll){a.autoScroll.stop(a.timeout);a.isAutoScroll=false;a.carouselInfoObj.event="autoScrollStop";a._eventCallback(a.carouselInfoObj)}}, function(){if(a.isAutoScrollResume){a.autoScroll.play(a);a.isAutoScroll=true;a.carouselInfoObj.event="autoScrollPlay";a._eventCallback(a.carouselInfoObj)}});this.autoScroll.play(a)}},slide:function(a,b,l){function o(){q.find("> li:last").each(function(){var u=j(this),y=q.find("> li:first").clone().addClass(n).removeClass("first");j("<ul></ul>").html(y).each(function(){for(var w=2;w<=h;w++)j(this).append(q.find("> li:nth-child("+w+")").clone().addClass(n));u.after(j(this).children())})});var v=d._slide=== "vertical"?{scrollTop:k.scrollTop()+h*e.height}:{scrollLeft:k.scrollLeft()+h*e.width};k.animate(v,d._speed,"swing",function(){d._slide==="vertical"?k.scrollTop(0):k.scrollLeft(0);q.find("[class*='"+n+"']").remove();d.triggered=false});d.currentCount=0;d.scrollBatch=1;d.isLastBatch=false;d._eventCallback(d.carouselInfoObj={event:"scrollToFirst",items:e.count,target:0,scroll:d._scroll,start:1,end:d._show>e.count?e.count:d._show,batch:{current:1,max:d.maxBatch}})}function r(){q.find("> li:first").removeClass("first").each(function(){var v= j(this),u=e.count-d._show+1,y=q.find("> li:nth-child("+u+")").clone().addClass(n+" first");j("<ul></ul>").html(y).each(function(){for(var w=u+1;w<=e.count;w++)j(this).append(q.find("> li:nth-child("+w+")").clone().addClass("item-clone"));v.before(j(this).children());d._slide==="vertical"?k.scrollTop(h*e.height):k.scrollLeft(h*e.width)})});k.animate(d._slide==="vertical"?{scrollTop:0}:{scrollLeft:0},d._speed,"swing",function(){q.find("[class*='"+n+"']").remove();q.find(":first").addClass("first"); d._slide==="vertical"?k.scrollTop((e.count-h)*e.height):k.scrollLeft((e.count-h)*e.width);d.triggered=false});d.currentCount=e.count-h;d.scrollBatch=d.maxBatch;d.isLastBatch=true;d._eventCallback(d.carouselInfoObj={event:"scrollToLast",items:e.count,target:0,scroll:d._scroll,start:e.count-h,end:e.count,batch:{current:d.maxBatch,max:d.maxBatch}})}b=b||false;l=typeof l==="undefined"||l===null?true:l;this.triggered=true;var d=this,m=this._scroll,e=this.holder.item,h=this._show,g=this.currentCount,f= this.scrollBatch,k=this.slideshowObj,q=j("ul:first",k),n=this.cloneClass,t=0;if(a==="scrollToBatch"){if(!b||isNaN(b))return;if(b<=1){f=1;g=0;this.isLastBatch=false}else if(b>=this.maxBatch){f=this.maxBatch;g=e.count-h;this.isLastBatch=true}else{f=b;g=m*(b-1)}if(g===this.currentCount&&f===this.scrollBatch)return}else if(a==="scrollToItem"){if(!b||isNaN(b))return;if(b<=1){f=1;g=0;t=1;this.isLastBatch=false}else if(b>=e.count){f=this.maxBatch;g=e.count-h;t=e.count;this.isLastBatch=true}else{f=Math.ceil(b/ m);if(f>=this.maxBatch){f=this.maxBatch;g=e.count-h;this.isLastBatch=true}else{f=f;g=m*(f-1)}t=b}if(g===this.currentCount&&f===this.scrollBatch&&this.carouselInfoObj.target===b)return}else if(a==="next"){b=g+m;if(b+h>e.count){if(g+h===e.count&&this._rotate){o();return}g=e.count-h;this.isLastBatch=true;f++;f=f>this.maxBatch?this.maxBatch:f}else{g=b;f++}}else if(a==="prev"){b=g-m;if(b<0){g=0;f--;if(f<1&&this._rotate){r();return}else if(f<1)f=1}else{g=b;f--}}this.scrollBatch=f;this.currentCount=g;this._eventCallback(this.carouselInfoObj= {event:a,items:e.count,target:t,scroll:this._scroll,start:g+1,end:g+h>e.count?e.count:g+h,batch:{current:this.scrollBatch,max:this.maxBatch}});a=g*(this._slide==="vertical"?e.height:e.width);if(l)k.animate(this._slide==="vertical"?{scrollTop:a}:{scrollLeft:a},d._speed,"swing",function(){d.triggered=false});else{this._slide==="vertical"?k.scrollTop(a):k.scrollLeft(a);d.triggered=false}},autoScroll:{play:function(a){a.timeout=setInterval(function(){a.slide("next")},a.autoSpeed)},stop:function(a){clearInterval(a)}}}; A.prototype={init:function(a){this.root=a},scrollToBatch:function(){var a=arguments,b,l=true;if(typeof a[0]==="object"){b=a[0].batch;l=a[0].animate}else b=a[0];this.root.slide("scrollToBatch",b,l)},scrollToItem:function(){var a=arguments,b,l=true;if(typeof a[0]==="object"){b=a[0].item;l=a[0].animate}else b=a[0];this.root.slide("scrollToItem",b,l)},slide:function(a){if(this.root.isItemCountOK)this.root.triggered||this.root.slide(a)},stopAutoScroll:function(){this.root.isAutoScrollResume=false;this.root.autoScroll.stop(this.root.timeout)}, startAutoScroll:function(){this.root.autoScroll.play(this.root)}};var s={format:function(a){a=parseInt(a.replace(/[a-zA-z]/gi,""),10);return isNaN(a)?0:a},checkBoolean:function(a){var b=false;if(typeof a==="string"&&a==="true")b=true;else if(typeof a==="boolean")b=a;return b},getCSSDimension:function(a,b,l){if(!a)return false;var o=["Top","Right","Bottom","Left"],r={};if(a==="margin"||a==="padding"||a==="border"){for(var d=0;d<o.length;d++){var m=j(b).css(a+o[d]);r[o[d]]=typeof m!=="undefined"?l? this.format(m):m:0}return r}return j(b).css(a)}}})(jQuery);

//jQuery plugin - FoxNews Accordion. last updated: 04/11/2010
//Dependencies: jQuery
(function(b){function j(){this._speed="normal";this._listInitOpen=1;this._activeClass="";this._duration=800;this.contentHeight=this.contentOpen=this.contentOpenTitle=this.currentOpen=this.triggered=this.timeout=null;this.speedType={slow:100,normal:30,fast:10}}function k(a){var c=b(a).outerHeight();if(c>0)a=c;else{c=g(b(a).css("marginTop"))+g(b(a).css("marginBottom"));var f=g(b(a).css("paddingTop"))+g(b(a).css("paddingBottom"));a=g(b(a).css("height"))+c+f}return a}function g(a){a=parseInt(a.replace(/[a-zA-z]/gi, ""),10);return isNaN(a)?0:a}jQuery.fn.jfoxAccordion=function(a){return this.each(function(){var c=new j;c.init(b(this),a);return c})};j.prototype={init:function(a,c){if(c)for(i in c)if(i==="speed")this.setSpeed(c[i]);else this["_"+i]=c[i];this.obj=a;this.setListeners()},setListeners:function(){var a=this,c=b(this.obj).children();b(c).each(function(f){var d=b(this).find("> div.content"),e=b(this).find("> h2.title");b(d).css("overflow","hidden");if(f==a._listInitOpen-1){a.currentOpen=f;b(d).show(); a.contentHeight=k(d);a.contentOpen=b(d);a.contentOpenTitle=b(e);b(d).css("height",a.contentHeight);b(e).addClass(a._activeClass)}else{b(e).removeClass(a._activeClass);b(d).css({height:"0px",opacity:"0"}).show()}b(e).click(function(){if(f==a.currentOpen)return;if(!a.triggered){b(a.contentOpenTitle).removeClass(a._activeClass);b(e).addClass(a._activeClass);a.triggered=true;a.fnAnimate(b(d),b(e),f)}})});b(this.obj).css("height",k(b(this.obj))+"px")},setSpeed:function(a){if(isNaN(a)){if(typeof a=== "string"){a=a.toLowerCase();for(i in this.speedType){if(i===a){this._speed=a;return}this._speed="normal"}}}else if(a>1E3)this._speed("fast");else a<1E3&&a>=500?this._speed("normal"):this._speed("slow")},fnAnimate:function(a,c,f){var d=this,e=this.contentOpen;a.animate({height:this.contentHeight+"px"},{step:function(h){h=d.contentHeight-h;if(b.browser.msie||b.browser.opera)h=Math.ceil(h);e.css("height",h)},duration:d._duration,easing:"swing",complete:function(){d.contentOpen=a;d.currentOpen=f;d.triggered= false;e.css("opacity","0")}});b(a).css("opacity","1");d.contentOpenTitle=c}}})(jQuery);

