(function(){


/*
	Nasty, old-school browser detection added here since IE8 parses the belatedPNG code 
	regardless of the fact that it's wrapped in conditional comments for IE6!
*/
if(navigator.appVersion.indexOf('MSIE 6.0') > -1){
	DD_belatedPNG.fix('.panel, .panel-inner, .panel span, .png, .rounded, .rounded .tl, .rounded .tr, .rounded .bl, .rounded .br, .intro-power-savers');
}	


/*
	Global object storing variables.
*/
G = {
	flowplayerStyles : {
		backgroundColor : '#f01b09',
		bufferColor : '#f7776c',
		progressColor : '#d41707',
		buttonColor : '#f7776c',
		buttonOverColor : '#d41707',
		timeColor : '#f57769'
	},
	addthis : {
		title : '',
		url : location.href
	}
};


$LAB
.script('/assets/js/jquery/third-party/swfobject.js')
.script('/assets/js/jquery/third-party/jquery.prettyPhoto.js')
.script('/assets/js/jquery/third-party/jquery.scrollTo-min.js')
.script('/assets/js/jquery/third-party/jquery.querystring.min.js')
.script('/assets/js/jquery/grand-union/jquery.ticker-scroll.1.0.js')
.script('/assets/js/jquery/grand-union/jquery.lightbox.1.0.js')
.script('/assets/js/jquery/grand-union/jquery.toggle-form-controls.js')
.script('/assets/js/jquery/grand-union/jquery.flash-loader.1.0.js')
.script('/assets/js/jquery/grand-union/jquery.flash-thumb-loader.1.0.js')
.script('/assets/js/jquery/grand-union/jquery.simple-carousel.js')
.script('/assets/js/jquery/grand-union/jquery.extend-label.js')
.script('/assets/js/jquery/grand-union/jquery.manual-form-validation.js')
.script('/assets/js/jquery/grand-union/jquery.simple-tabs.js')
.script('/assets/js/jquery/third-party/flowplayer-3.1.4.min.js').wait()
.script('/assets/js/jquery/third-party/flowplayer.playlist-3.0.7.min.js')
.wait(function(){
	
	$(document).ready(function(){

		
		G.addthis.title = $('head title').text();


		// Append span tags for rounded corners.
		$('.panel').append($('<span class="tl"></span><span class="tr"></span><span class="bl"></span>'));


		// Append span tags for rounded boxes (if IE).
		if($.browser.msie === true){			
			$('.rounded').append($('<span class="tl"></span><span class="tr"></span><span class="bl"></span><span class="br"></span>'));
		}


		// Initiate button styling - wrap span tags around submit buttons or links (for rounded corners/sliding doors).
		$('#content-main .submit-btn').wrap('<span class="wrap-submit-btn"></span>');
		$('#content-main .action-btn').wrap('<span class="wrap-action-btn"></span>');
		$('#content-main .btn-mirror').parent().addClass('wrap-btn-mirror');			// Add "right" CSS class to spans wrapping btn-right.
		$('#content-main .btn-back').parent().addClass('wrap-btn-back');				// Add "right" CSS class to spans wrapping btn-right.
		$('#content-main .btn-grey').parent().addClass('wrap-btn-grey');				// Add "right" CSS class to spans wrapping btn-grey.
		
		
		// Check querystring for AddThis and scroll down.
		if(location.href.indexOf('sms_ss=')>-1){
			$.scrollTo($('#addthis-btn'));
		}


		// Check querystring for jump_id (for Unsung Heroes page).
		jumpID = $.getQueryString({ID:'jump_id', URL:location.href});
		if(jumpID){
			$.scrollTo($('#'+jumpID), {
				'offset' : -100
			});
		}


		// Initiate lightbox.
		$("a[rel^='prettyPhoto'], a.overlay").prettyPhoto();


		// Ticker.
		$('#ticker').tickerScroll();
		
		
		// Initiate label extending (for competition).
		$('.competition label.extend').extendLabel({
			ancestorSelector : '.pick-prize li'
		});
		$('.step2 .ticket-details label').extendLabel({
			ancestorSelector : '.ticket-details tr'
		});
		$('.step2 .ticket-details td').click(function(){
			$('.ticket-details .wrap-submit-btn').css('visibility','hidden');
			$('.wrap-submit-btn', $(this).parent()).css('visibility','visible');
		});


		// Toggle form controls (used in register form).
		$().toggleFormControls({
			'triggers' : $('#eon-customer-yes, #eon-customer-no'),
			'elements' : $('#current-supplier')
		});
		

		// Tabbed content.
		$('.tabs-nav').simpleTabs({
			activeClass: 'active'
		});


		// Image cycle.
		$('.image-cycle').each(function(){
			$(this).find('li:gt(0)').hide();
		});
		$('.nav-cycle li a').click(function(e){
			e.preventDefault();

			var $li = $(this).parent();

			if(!$(this).hasClass('.disabled')){
			
				if($li.hasClass('next'))
				{
					var cur = $li.parent().parent().find('.image-cycle li:visible');
					
					cur.hide();
					
					if(cur.next().length > 0){
						cur.next().fadeIn('normal');
						$li.parent().find('.prev a').removeClass('disabled');
					}
					
					if(cur.next().next().length===0){
						$li.find('a').addClass('disabled');
					}
				}
				else if($li.hasClass('prev'))
				{
					var cur = $li.parent().parent().find('.image-cycle li:visible');
					
					cur.hide();
					
					if(cur.prev().length > 0){
						cur.prev().fadeIn('normal');
						$li.parent().find('.next a').removeClass('disabled');
					}
					
					if(cur.prev().prev().length===0){
						$li.find('a').addClass('disabled');
					}
				}
			
			}
		});
		
		
		// Initiate single movie Flowplayer.
		if($('.single-movie').length)
		{
			$('.single-movie').each(function(){			

				flowplayer($('.movie-container', $(this)).attr('id'), {
					src : '/flash/flowplayer/flowplayer-3.1.5.swf',
					wmode : 'transparent'
				},{
					clip : {
						url : $('.movie-url', $(this)).attr('href'),
						autoPlay: false,
						autoBuffering: true
					},
					plugins : {
						controls : G.flowplayerStyles
					}
				});
			
			});
			
			// Set addthis' global variables (for hover positioning).
			addthis_config = {
			     ui_offset_top: -230,
			     ui_offset_left: -120
			};

			
			// Manually create Addthis functionality for this page.
			$('.addthis-btn-custom').hover(
				function(){
					var jumpID 	= $(this).parents('.panel-inner').find('.movie-container').attr('id'),
						qs		= (location.href.indexOf('?') > -1) ? '&' : '?';
						
					G.addthis.url = location.href+qs+'jump_id='+jumpID;	
				
					return addthis_open(this, '', G.addthis.url, G.addthis.title);
				},
				function(){
					addthis_close();
				}
			);
		}


		// Initiate Flowplayer with playlist plugin.
		var $flowplayerPages = $('.meet-david-james2-landing, .top-10-saves, .unsung-heroes');
		if($flowplayerPages.length)
		{
			var firstMovie = ($('.movie-thumbs a.selected').length) ? $('.movie-thumbs a.selected').attr('href') : $('.movie-thumbs a:first').attr('href') ;

			// Set addthis' global variables (for hover positioning).
			addthis_config = {
			     ui_offset_top: -200,
			     ui_offset_left: -110
			};
			
			if($('#movie-container').length)
			{
				flowplayer('movie-container', '/flash/flowplayer/flowplayer-3.1.5.swf', {
					clip : {
						url : firstMovie,
						autoPlay : false,
						autoBuffering : true
					},
					plugins : {
						controls : G.flowplayerStyles
					}
				}).playlist('.movie-thumbs li', {loop:false});
			}
			
			// Add "previous" and "next" links to movie carousel.
			$('.movie', $flowplayerPages).append($('<span id="movie-nav"><a href="#" id="prev-thumb"></a><a href="#" id="next-thumb"></a></span>'));
	
			// Initiate simple carousels.
			$('.movie-thumbs').simpleCarousel({
				nextSelector : '#next-thumb',
				prevSelector : '#prev-thumb',
				orientation  : 'v',
				scrollItems  : 4
			});

			// Meet David James - Swap titles and Addthis title/url when changing movies.
			$('.meet-david-james2-landing .movie-thumbs li').click(function(){
				var title = $.trim($('a', this).text());
				$('.ambassador h3.video-title').text(title);
				
				G.addthis.title = title;
				G.addthis.url = 'http://'+location.host+'/Keepers-corner/Meet-David-James2/(video)/'+$(this).attr('id')+'/'+title;
			});

			// Manually create Addthis functionality for this page.
			$('#addthis-btn').hover(
				function(){
					return addthis_open(this, '', G.addthis.url, G.addthis.title);
				},
				function(){
					addthis_close();
				}
			);
		}


		// Initiate register/edit form validation.
		if(document.forms.Register){
		
			// Register.
			$('#register-form').manualFormValidation({
				'email' : {
					$standard : $('#email'),
					$confirm : $('#email_confirm')
				},
				'password' : {
					$standard : $('#password'),
					$confirm : $('#password-repeat')
				},
				'or' : [$('#house-number, #house-name')],
				'filetype' : [
					{
						$id : $('#pic-upload'),
						types : ['jpg','png','gif']
					}				
				],
				callback : function(msg){
					if($('.manual-validation-error').length === 0){
						$('.container').prepend($('<div class="error manual-validation-error"></div>'));
					}
					$('.manual-validation-error').html(msg);
					$(document).scrollTop(0);
				}
			});
			
			$('#register-form-te').manualFormValidation({
				'email' : {
					$standard : $('#email'),
					$confirm : $('#email_confirm')
				},
				'password' : {
					$standard : $('#password'),
					$confirm : $('#password-repeat')
				},
				callback : function(msg){
					if($('.manual-validation-error').length === 0){
						$('.container').prepend($('<div class="error manual-validation-error"></div>'));
					}
					$('.manual-validation-error').html(msg);
					$(document).scrollTop(0);
				}
			});
			
			// Edit Profile.
			if($('#profile-form').length){
				$('#profile-form').submit(function(){
					$('#display-name').attr('value', $('#email').attr('value'));
				});
			}
			
			$('#profile-form').manualFormValidation({
				'password' : {
					$standard : $('#password'),
					$confirm : $('#password-repeat')
				},
				'or' : [$('#house-number, #house-name')],
				'filetype' : [
					{
						$id : $('#pic-upload'),
						types : ['jpg','png','gif']
					}				
				],
				callback : function(msg){
					if($('.manual-validation-error').length === 0){
						$('.container').prepend($('<div class="error manual-validation-error"></div>'));
					}
					$('.manual-validation-error').html(msg);
					$(document).scrollTop(0);
				}
			});
		
		}


		// Form validation for Question of Saves.
		if($('#qos-form').length){
		
			$('#qos-form').manualFormValidation({
				'or' : [$('#house-number, #house-name')],
				callback : function(msg){
					if($('.manual-validation-error').length === 0){
						$('.input-block').prepend($('<div class="error manual-validation-error"></div>'));
					}
					$('.manual-validation-error').html(msg);
					$(document).scrollTop(0);
				}
			});
		
		}
		
		
		// Form validation for Life Between the Sticks, Unsung Heroes and Energy Diary.
		$('#upload-photo-form, #unsung-hero-form, #energy-diary-form').manualFormValidation({
			'filetype' : [
				{
					$id : $('#photo'),
					types : ['jpg','png','gif']
				}				
			],
			callback : function(msg){
				if($('.manual-validation-error').length === 0){
					$('.container').prepend($('<div class="error manual-validation-error"></div>'));
				}
				$('.manual-validation-error').html(msg);
			}
		});


		// Compare cards.
		$('.compare-scores li a').click(function(e){
			// Temporarily disabled for IE6.
			if($.browser.msie === true && $.browser.version === '6.0'){
				return;
			}
			e.preventDefault();

			$('#compare-opponent').load($(this).attr('href') + ' #compare-opponent div:first', {'the_time':''}, function(responseText, textStatus, XMLHttpRequest){
				//alert($(responseText).find('.leader').html());
			});
		});
		
		
		// Swap radio buttons with checkboxes.
		if($('#energy-diary-form').length)
		{
			// Hide all labels and radio buttons in the table and append a checkbox.
			// When the form is submitted, check the relevant radio buttons and continue.
			$('.radio-check-swap td label, .radio-check-swap td input').hide();
			$('.radio-check-swap td').append('<input type="checkbox" name="" id="" style="display:inline-block;" />');

			$('.radio-check-swap td input[type="checkbox"]').each(function(){
				if($(this).prevAll('input[value="1"]').attr('checked') === true){
					$(this).attr('checked',true);
				}
			});
			
			$('#check-all').click(function(event){
				event.preventDefault();
				$('.radio-check-swap td input[type="checkbox"]').attr('checked',true);
			});
			$('#uncheck-all').click(function(event){
				event.preventDefault();
				$('.radio-check-swap td input[type="checkbox"]').attr('checked',false);
			});
			
			$('#energy-diary-form').submit(function(){
				$('.radio-check-swap td input[type="checkbox"]').each(function(){
					if($(this).attr('checked') === true){
						$(this).prevAll('input[value="1"]').attr('checked',true);
					}
					else{
						$(this).prevAll('input[value="0"]').attr('checked',true);
					}
				});
			});			
		}
		
		
		// SHOW/HIDE EXPANDABLE	
		$('.accordian a').click(function(e){
			e.preventDefault();
			var $link = $(this);
			var $INNER = $(this).parent().siblings('.accordian-content:next');
			
			if ($INNER.is(':visible')) {
				$INNER.slideToggle();
				$link.parent().removeClass('open');
			}
			else {
				$('.accordian-content:visible')
					.slideToggle()
					.prev().removeClass('open');
				$INNER.slideToggle();
				$link.parent().addClass('open');
			}
		});


	});
});


})();