(function () {

eval( JELLY() );



///////////////////////
// Start FeatureBox
///////////////////////
(function () {

var self = JELLY.FeatureBox = {
	
	init: function () {
		withElement( 'header-panel-video-list', function ( el ) {
			self.container = el;
			self.bgs = [
				getElement( 'header-panel-video-bg' ),
				getElement( 'header-panel-video-bg2' )
			];
			self.mainLink = getElement( "header-panel-mainLink" );
			self.timer = setTimeout( self.start, self.interval );
		});
	},
	
	interval: 5000,
	
	start: function () {
		var el = self.container;
		var lis = getElements( 'li', el );
		
		if ( lis.length < 2 ) {
			return;
		}
		
		var tweenOpts = {duration: 500};
		var nextLi = lis[1];
		var nextAnch = getElements( 'a', nextLi )[0];
		var nextBg = decodeURIComponent( nextAnch.getAttribute( 'data-bg' ) );
		var nextContent = decodeURIComponent( nextAnch.getAttribute( 'data-content' ) );
		var nextLink = decodeURIComponent( nextAnch.getAttribute( 'data-link' ) );
		//log( nextBg, nextAnch );
		
		var newBgImg = 'url("' + nextBg + '")';
		self.bgs[0].style.backgroundImage = newBgImg;
		self.mainLink.href = nextLink;
		self.bgs[0].innerHTML = nextContent;
		
		new Tween( self.bgs[1], tweenOpts ).sequence(
				{opacity:0},
				function ( tween ) {
					tween.element[0].style.backgroundImage = newBgImg;
					tween.element[0].innerHTML = nextContent;
					tween.setOpacity( 1 );
				}
			);

		//var bgTween = new Tween( topLi, tweenOpts );
		//bgTween
		
		
		
		if ( lis.length < 4 ) {
			return;
		}
		var topLi = lis[0];
		var listParent = el.parentNode;
		var liTween = new Tween( topLi, tweenOpts );
		
		liTween.sequence(
			{marginTop: -topLi.offsetHeight},
			function () {
				removeElement( el );
				topLi.style.marginTop = '';
				el.appendChild( topLi );
				listParent.appendChild( el );
				self.timer = setTimeout( self.start, self.interval );
			}
		);
	},
	
	stop: function () {
		clearTimeout( self.timer );
	}
	
};

self.init();

})();
///////////////////////
// End FeatureBox
///////////////////////




	
Q('.flickr img').each( function ( el ) {
	var callback = function () {
		if (el.width > 100) {
			var pnt = el.parentNode;
			if ( el.height < pnt.offsetHeight ) {
				el.style.width = 'auto';
				el.style.height = pnt.offsetHeight + 'px';
			} 
		} 
	};
	if ( !el.width ) { 
		Load.img( el, callback);
	}
	else {
		callback.call(el);
	}
});




///////////////////////
// Start Panels
///////////////////////
(function () {
	//return
	var columnSlider = getElement( "home-column-1-slider" );
	if (!columnSlider) {
		return;
	} 
	var facebookFrame = createElement( 'div' ); 
	var sliderWidth = columnSlider.offsetWidth;
	var trigger = getElement( 'facebook-trigger' );
	var handle = Q( '.handle', trigger )[0];
	var iframe = createElement( 'iframe border:0,allowTransparency:yes,scrolling:no' );
	var iframeSrc = trigger.href;
	var handleTween = new Tween( handle, {duration:200} );
	var iframeTween = new Tween( facebookFrame );
	var sliderTween = new Tween( columnSlider );
	var facebookVisible = false;

	setStyle ( iframe, {
		width: sliderWidth + 'px',
		height: columnSlider.offsetHeight + 'px'
	})
	facebookFrame.appendChild( iframe );
	setStyle( facebookFrame, {
		width: sliderWidth+'px',
		position: 'absolute',
		top: (getFirst( trigger ).offsetHeight +1 )+'px',
		left: -sliderWidth + 'px'
	});

	var addFrame = function () {
		if ( !iframe.src ) {
			iframe.src = iframeSrc;
			getElement( "home-column-1" ).appendChild( facebookFrame );
		} 
	}
	setTimeout(addFrame, 3000); 

	addEvent( trigger, 'click', function (e) {
		e.preventDefault();
		addFrame();
		if ( !facebookVisible ) {
			handleTween.sequence(
				{'opacity': 0},
				function ( tween ) {
					removeClass( handle, 'handle-e'); 
					addClass( handle, 'handle-w'); 
					tween.start( 'opacity', 1 );
				}
			);
			iframeTween.start( {left: 0	});
			sliderTween.start( 'left', sliderWidth );
		} 
		else {

			handleTween.sequence(
				{'opacity': 0},
				function ( tween ) {
					removeClass( handle, 'handle-w'); 
					addClass( handle, 'handle-e'); 
					tween.start( 'opacity', 1 );
				}
			);
			iframeTween.start( {left: -sliderWidth});
			sliderTween.start( 'left', 0 );
		}
		facebookVisible = !facebookVisible;
	});
})();



(function () {
	//return
	var columnSlider = getElement( "twitter-slide" );
	if (!columnSlider) {
		return;
	} 
	var sliderWidth = columnSlider.offsetWidth;
	var trigger = getElement( 'twitterfeed-trigger' );
	var handle = Q( '.handle', trigger )[0];

	var handleTween = new Tween( handle, {duration:200} );
	var sliderTween = new Tween( columnSlider );
	var facebookVisible = false;

	setStyle( columnSlider, {
		width: sliderWidth+'px',
		position: 'absolute',
		top: (getFirst( trigger ).offsetHeight +1 )+'px',
		zIndex: 10,
		left: sliderWidth + 'px'
	});


	addEvent( trigger, 'click', function (e) {
		e.preventDefault();
		if ( !facebookVisible ) {
			handleTween.sequence(
				{'opacity': 0},
				function ( tween ) {
					removeClass( handle, 'handle-w'); 
					addClass( handle, 'handle-e'); 
					tween.start( 'opacity', 1 );
				}
			);
			sliderTween.start( 'left', 0 );
		} 
		else {

			handleTween.sequence(
				{'opacity': 0},
				function ( tween ) {
					removeClass( handle, 'handle-e'); 
					addClass( handle, 'handle-w'); 
					tween.start( 'opacity', 1 );
				}
			);
			sliderTween.start( 'left', sliderWidth );
		}
		facebookVisible = !facebookVisible;
	});
})();








(function () {
	//return;
	var wrapper = getElement( 'newsletter-wrapper' );
	if ( !wrapper ) {
		return;
	}
	
	var title = getElement( 'ir-newsletter-sign-up-here' );
	var content = getElement( 'content-panel-newsletter' );
	var handle = Q( '.handle', wrapper )[0];
	var handleStart;
	var handleFinish;
	var	handleTween = new Tween( handle, {duration:200} );
	var wrapperTween = new Tween( wrapper );
	var contentTween = new Tween( content );
	var panelOpen = false;

	addEvent( title, 'click', function ( e ) {
		
	
		if (!panelOpen) { 
			content.style.height = 'auto';
			var contentHeight = content.offsetHeight;
			contentHeight = 272;
			var wrapperHeight = wrapper.offsetHeight;
			content.style.height = 0;
			wrapperTween.start( {'margin-top': -contentHeight});
			contentTween.start( {'height': contentHeight});
			handleStart = 'handle-s';
			handleFinish = 'handle-n';
		}
		else {
			wrapperTween.start( {'margin-top': 0});
			contentTween.start( {'height': 0});
			handleStart = 'handle-n';
			handleFinish = 'handle-s';
		}

		handleTween.sequence({'opacity': 0},
			function ( tween ) {
				removeClass( handle, handleStart ); 
				addClass( handle, handleFinish ); 
				tween.start( {
					'delay': 250,
					'opacity': 1
				});
			}
		);
		panelOpen = !panelOpen;
	});

})();

/*

	<div id="news-wrapper" class="panel-wrapper">
		<div id="header-panel-news">
			<div class="trim">
				<h2 class="ir" id="ir-latest-news">Latest News</h2>
				<ul id="list-latest-news" class="list-teaser">
					<?php 			

					require_once 'loop-homenews.php';
				
					?>
				</ul>
				<span class="handle handle-s"></span>
			</div>
		</div><!--/ #header-panel-news -->
	</div><!--/ #news-wrapper -->



*/



(function () {
	var wrapper = getElement( 'news-wrapper' );
	if ( !wrapper ) {
		return;
	}
	var title = getElement( 'ir-latest-news' );
	var handle = Q( '.handle', wrapper )[0];
	var handleStart;
	var handleFinish;
	var	handleTween = new Tween( handle, {duration:200} );

	var distance = 160;
	var tweenOpts = {duration:500};
	var	titleTween = new Tween( title, tweenOpts );
	var	panelTween = new Tween( 'header-panel-news', tweenOpts );

	var panelOpen = false;
	
	addEvent( wrapper, 'click', function ( e ) {
		var target = e.target;
		// Check target is not child of a link
		if ( targetIsLinked( target ) ) {
			return true;
		}
		
		if (!panelOpen) { 
			titleTween.start( {'margin-top': -distance});
			handleStart = 'handle-e';
			handleFinish = 'handle-s';
		}
		else {
			titleTween.start( {'margin-top': 0});
			handleStart = 'handle-s';
			handleFinish = 'handle-e';
		}

		handleTween.sequence({'opacity': 0},
			function ( tween ) {
				removeClass( handle, handleStart ); 
				addClass( handle, handleFinish ); 
				tween.start( {
					'delay': 250,
					'opacity': 1
				});
			}
		);
		panelOpen = !panelOpen;
	});

})();



(function () {
	var outerColumn = getElement( 'home-column-4' );
	if ( !outerColumn ) {
		return;
	} 
	
	var title = getElement( 'ir-live-dates' );
	var content = getElement( 'content-panel-dates' );
	var wrapper = getElement( 'dates-wrapper' );
	var dateList = getElement( 'list-dates' );
	var handle = Q( '.handle', wrapper )[0];
	var handleStart;
	var handleFinish;
	var	handleTween = new Tween( handle, {duration:200} );
	var contentTween = new Tween( content );
	var panelOpen = false;
	var originalHeight = content.offsetHeight;
	var overflowElements;

	var extractElements = function ( animate ) {
		overflowElements = [];
		var dates = getElements( 'li', dateList );
		toArray( dates ).each(function ( el, i ) {
			if ( i > 2 ) { 
				overflowElements.push( el );
				if ( animate ) {
					var delay = [null,null,null,150,100,50][i] || 1;
					new Tween( el ).sequence({'opacity': 0, delay: delay }, 
						function() { 
							removeElement( el ); 
							setOpacity( el, 1 );
						});
				} 
				else {
					removeElement( el );
				}
			}
		});	
	};

	extractElements();

	addEvent( wrapper, 'click', function ( e ) {
		var target = e.target;
		
		if ( targetIsLinked( target ) ) {
			return true;
		}

		if (!panelOpen) { 
			overflowElements.each(function (it) {
				dateList.appendChild(it);
			});
			var difference = 
				getY( outerColumn ) + outerColumn.offsetHeight -
				getY( content ) + content.offsetHeight;
			contentTween.start( {'height': difference - originalHeight});
			handleStart = 'handle-n';
			handleFinish = 'handle-s';
		}
		else {
			extractElements( true );
			contentTween.start( {'height': originalHeight});
			handleStart = 'handle-s';
			handleFinish = 'handle-n';
		}

		handleTween.sequence({'opacity': 0},
			function ( tween ) {
				if (panelOpen) { 
					content.appendChild( handle );
				}
				else {
					wrapper.appendChild( handle );
				}
				removeClass( handle, handleStart ); 
				addClass( handle, handleFinish ); 
				tween.start( {
					'delay': 250,
					'opacity': 1
				});
			}
		);
		panelOpen = !panelOpen;
	});
})();


var targetIsLinked = function ( target ) {
	// Check target is not link or child of a link
	if ( target.nodeName.toLowerCase() === 'a' ) {
		return true;
	} 
	var parentNode = target.parentNode;
	var levels = 5;
	while ( parentNode && levels-- ) {
		if ( parentNode.nodeName.toLowerCase() === 'a' ) {
			return true;
		}
		parentNode = parentNode.parentNode;
	}
	return false;
}


///////////////////////
// End Panels
///////////////////////


})();
