/** homepage masthead carousel */
$(window).load(function()
{
        /* path to the images */
        var pathToImages = '/assets/img/mastheads/rotating/';
       
        /* get the existing wrapper */
        var wrapper = $('#outer_wrapper');
       
        var containerHeight = $('body').height();
       
        /* apply a zIndex (to the original wrapper) of greater than that of the new element */
        wrapper
                .css({
                        zIndex: 3
                });

        /* create the new background wrapper */
        var i = $('<div />')
                .attr('id', 'backgroundContainer')
                .insertBefore(wrapper);
               
        /* set position and dimensions for the new element */
        i.css({
                height: containerHeight,
                position: 'absolute',
                zIndex: 1,
                width: 'auto',
                top: '-5000px', // position off page
                left: '50%',
                overflow: 'hidden' /* required to prevent scrollbars kicking in */
        });

        /* add a list element to contain all the images */
        var ul = $('<ul />')
                .appendTo(i)
                .css({
                        height: containerHeight,
                        display: 'block',
                        margin: 0,
                        padding: 0
                });
       
        var img;
        /* loop through each of the backgrounds and create list element for them */
        for(j=0;j<backgroundImages.length;j++)
        {      
                /* create the image element */
                img = $('<img />')
                        .attr('src', pathToImages + backgroundImages[j])
                        .css({
                                display: 'block'
                        });
               
                /* create the list element and append the image to it */
                var li = $('<li />')
                        .append(img)
                        .appendTo(ul)
                        .css({
                                height: containerHeight,
                                margin: 0,
                                padding: 0,
                                display: 'block',
                                width: '100%',
                                listStyle: 'none'
                        });
        }

        i.find('img').batchImageLoad({
			loadingCompleteCallback: function()
			{
        		var wi = parseInt(img.width()) > 0 ? img.width() : img.attr('width');
        		
	        	ul.width(wi);
	        	
	        	ul.find('li').width(wi);
	            
	            i.css({
	                    marginLeft: ((wi / 2) * -1) + 'px',
	                    width: wi + 'px'
	            });
	            
	            i.css({ top: 0 }); // move onto viewport
	            
	            /* start rotating through the images */
	            ul.cycle(
	            {
	                    timeout:       5000,  // milliseconds between slide transitions (0 to disable auto advance)
	                    speed:         1000,  // speed of the transition (any valid fx speed value)
	                    before:        function() { pCarousel.stopAuto(); },  // transition callback (scope set to element to be shown)
	                    after:         function() { pCarousel.startAuto(); },  // transition callback (scope set to element that was shown)
	                    height:       'auto', // container height
	                    sync:          1,     // true if in/out transitions should occur simultaneously
	                    fit:           0,     // force slides to fit container
	                    pause:         0,     // true to enable "pause on hover"
	                    delay:         0,     // additional delay (in ms) for first transition (hint: can be negative)
	                    slideExpr:     null   // expression for selecting slides (if something other than all children is required)
	            });

		    	$('body>div')
		    		.not(i)
		    		.css({position: 'relative', zIndex: 2});

		    	$(window).resize();
			}//,
			//imageLoadedCallback: imageLoaded
		});
});


$(window).resize(function()
{
  $('body').css('overflow-x', ($('body').width() <= 960 ? 'visible' : 'hidden'));
});

/* jQuery.cycle(lite) */
(function(D){var A="Lite-1.0";D.fn.cycle=function(E){return this.each(function(){E=E||{};if(this.cycleTimeout){clearTimeout(this.cycleTimeout)}this.cycleTimeout=0;this.cyclePause=0;var I=D(this);var J=E.slideExpr?D(E.slideExpr,this):I.children();var G=J.get();if(G.length<2){if(window.console&&window.console.log){window.console.log("terminating; too few slides: "+G.length)}return }var H=D.extend({},D.fn.cycle.defaults,E||{},D.metadata?I.metadata():D.meta?I.data():{});H.before=H.before?[H.before]:[];H.after=H.after?[H.after]:[];H.after.unshift(function(){H.busy=0});var F=this.className;H.width=parseInt((F.match(/w:(\d+)/)||[])[1])||H.width;H.height=parseInt((F.match(/h:(\d+)/)||[])[1])||H.height;H.timeout=parseInt((F.match(/t:(\d+)/)||[])[1])||H.timeout;if(I.css("position")=="static"){I.css("position","relative")}if(H.width){I.width(H.width)}if(H.height&&H.height!="auto"){I.height(H.height)}var K=0;J.css({position:"absolute",top:0,left:0}).hide().each(function(M){D(this).css("z-index",G.length-M)});D(G[K]).css("opacity",1).show();if(D.browser.msie){G[K].style.removeAttribute("filter")}if(H.fit&&H.width){J.width(H.width)}if(H.fit&&H.height&&H.height!="auto"){J.height(H.height)}if(H.pause){I.hover(function(){this.cyclePause=1},function(){this.cyclePause=0})}D.fn.cycle.transitions.fade(I,J,H);J.each(function(){var M=D(this);this.cycleH=(H.fit&&H.height)?H.height:M.height();this.cycleW=(H.fit&&H.width)?H.width:M.width()});J.not(":eq("+K+")").css({opacity:0});if(H.cssFirst){D(J[K]).css(H.cssFirst)}if(H.timeout){if(H.speed.constructor==String){H.speed={slow:600,fast:200}[H.speed]||400}if(!H.sync){H.speed=H.speed/2}while((H.timeout-H.speed)<250){H.timeout+=H.speed}}H.speedIn=H.speed;H.speedOut=H.speed;H.slideCount=G.length;H.currSlide=K;H.nextSlide=1;var L=J[K];if(H.before.length){H.before[0].apply(L,[L,L,H,true])}if(H.after.length>1){H.after[1].apply(L,[L,L,H,true])}if(H.click&&!H.next){H.next=H.click}if(H.next){D(H.next).bind("click",function(){return C(G,H,H.rev?-1:1)})}if(H.prev){D(H.prev).bind("click",function(){return C(G,H,H.rev?1:-1)})}if(H.timeout){this.cycleTimeout=setTimeout(function(){B(G,H,0,!H.rev)},H.timeout+(H.delay||0))}})};function B(J,E,I,K){if(E.busy){return }var H=J[0].parentNode,M=J[E.currSlide],L=J[E.nextSlide];if(H.cycleTimeout===0&&!I){return }if(I||!H.cyclePause){if(E.before.length){D.each(E.before,function(N,O){O.apply(L,[M,L,E,K])})}var F=function(){if(D.browser.msie){this.style.removeAttribute("filter")}D.each(E.after,function(N,O){O.apply(L,[M,L,E,K])})};if(E.nextSlide!=E.currSlide){E.busy=1;D.fn.cycle.custom(M,L,E,F)}var G=(E.nextSlide+1)==J.length;E.nextSlide=G?0:E.nextSlide+1;E.currSlide=G?J.length-1:E.nextSlide-1}if(E.timeout){H.cycleTimeout=setTimeout(function(){B(J,E,0,!E.rev)},E.timeout)}}function C(E,F,I){var H=E[0].parentNode,G=H.cycleTimeout;if(G){clearTimeout(G);H.cycleTimeout=0}F.nextSlide=F.currSlide+I;if(F.nextSlide<0){F.nextSlide=E.length-1}else{if(F.nextSlide>=E.length){F.nextSlide=0}}B(E,F,1,I>=0);return false}D.fn.cycle.custom=function(K,H,I,E){var J=D(K),G=D(H);G.css({opacity:0});var F=function(){G.animate({opacity:1},I.speedIn,I.easeIn,E)};J.animate({opacity:0},I.speedOut,I.easeOut,function(){J.css({display:"none"});if(!I.sync){F()}});if(I.sync){F()}};D.fn.cycle.transitions={fade:function(F,G,E){G.not(":eq(0)").css("opacity",0);E.before.push(function(){D(this).show()})}};D.fn.cycle.ver=function(){return A};D.fn.cycle.defaults={timeout:4000,speed:1000,next:null,prev:null,before:null,after:null,height:"auto",sync:1,fit:0,pause:0,delay:0,slideExpr:null}})(jQuery);

/* script to execute callback when images load (http://plugins.jquery.com/project/BatchImagesLoad) */
(function($){$.fn.batchImageLoad=function(a){var b=$(this);var c=b.size();var d=c;var e=0;$.fn.batchImageLoad.defaults={loadingCompleteCallback:null,imageLoadedCallback:null};var f=$.extend({},$.fn.batchImageLoad.defaults,a);b.each(function(){if($(this)[0].complete){d--;if(f.imageLoadedCallback)f.imageLoadedCallback(e,c)}else{$(this).load(function(){e++;if(f.imageLoadedCallback)f.imageLoadedCallback(e,c);if(e>=d){if(f.loadingCompleteCallback)f.loadingCompleteCallback()}});$(this).error(function(){e++;if(f.imageLoadedCallback)f.imageLoadedCallback(e,c);if(e>=d){if(f.loadingCompleteCallback)f.loadingCompleteCallback()}})}});if(d<=0)if(f.loadingCompleteCallback)f.loadingCompleteCallback()}})(jQuery);
