window.addEvent('load', function() {
	/* Slideshow needs to be called in load event for webkit to work out heights properly */
	$$('.slideshow').each(function(e) {
		new Slideshow({slideTarget:e, hasButtons:true});
	});
});

window.addEvent('domready', function()	{
	if($defined($$('.overlay')[0])) {
		new OverlaySlide();
	}
	
	if ($defined($$('.blogArchive li'))) {
		var counter = $$('.blogArchive li');
		var flag;
		$$('.blogArchive_sleeve').setProperty('id', 'blogArchive');
		counter.each(function(el, i) {
			if (i >= 12) {
				flag = 1;
				el.addClass('hide_true');
			}
		});
		if (flag == 1) {
			var newElementVar = new Element('p', {
				'class': 'opener'
			});
			var newElementVar1 = new Element('a', {
				'href': '#',
				'text': 'More'
			});
			newElementVar.inject(document.id('blogArchive'), 'after');
			newElementVar1.inject(newElementVar);
			$$('.blogArchive .opener a').addEvent('click', function(e) {
				var hiddenElements = this.getParent('div').getElements('.hide_true');
				var shownElements = this.getParent('div').getElements('.show_me');

				(hiddenElements[0]) ? hiddenElements.addClass('show_me').removeClass('hide_true') : shownElements.addClass('hide_true').removeClass('show_me');
				if (this.get('text').match('More')) {
					this.set('text', this.get('text').replace('More', 'Less'));
					this.getParent('p').addClass('showless').removeClass('showmore');
				} else {
					this.set('text', this.get('text').replace('Less', 'More'));
					this.getParent('p').addClass('showmore').removeClass('showless');
				}

				e.stop();
			});
		}
	}
	
	$$('.make.button').makeButton();
	$$('.make.labelled').setLabel();
	$$('.make.tabs').makeTabs();
	$$('.change.into.tabs').changeIntoTabs();
	$$('.make.linked').makeAllClickable();
	$$('.make.expandable').makeExpandable();
	$$('.give.hover').giveHoverState();
	$$('INPUT[type=text], INPUT[type=password], TEXTAREA, SELECT').giveFocusClassOnSelect();
	//Customised versions of the above functions for eVision (Events)
	$$('.change.into.customtabs').customChangeIntoTabs();
	$$('.make.customExpandable').customMakeExpandable();
	
	// Style RHC email newsletter block
	if($defined($('newsletter_block'))){
		// Equalise heights of each pair of newsletter block LIs based on LABEL height
		var label = $('newsletter_block').getElements('li label');
		var heightLabel = 0;
	
		label.each(function(e,i) {
			// 1st LI of pair
			if(i%2 == 0) { 
				heightLabel = e.getSize().y; 
				e.setStyle('height', heightLabel);
			}
			// 2nd LI of pair
			else  { 
				if(e.getSize().y > heightLabel) {
					e.setStyle('height', e.getSize().y);
					heightLabel = e.getSize().y;
					e.getParent().getPrevious().getElement('label').setStyle('height', heightLabel); // now need to reset height of previous LI's LABEL
				}
				else {
					e.setStyle('height', heightLabel);
				}
			}
		});
		
		// IE6,7,8 don't understand :FOCUS or :CHECKED states on checkboxes
		if (Browser.Engine.trident) {
			var fancyCheckbox = $('newsletter_block').getElements('.checkbox');
			fancyCheckbox.each(function(e) {
				e.addClass('fancy');
				e.addEvents({
					'click': function()	{
						if (this.hasClass('checked')) this.removeClass('checked'); 
						else this.addClass('checked'); 
					},
					'focus': function()	{
						this.addClass('focus');
					},
					'blur': function()	{
						this.removeClass('focus');
					}
				});
			});
		}
	}
	
	// For IE6,7,8
	if (Browser.Engine.trident) {
		// if on story page
		var storyBody = $$('#story');
		if($defined(storyBody))
			var relatedWrapper = $$('#related_content_wrapper');
			//if right content wrapper is empty
			if(!relatedWrapper.getChildren('*')[0])
				// when no children set width to 0;
				relatedWrapper.setStyle('width','0px');
	}
});

(function($) {

	$(function(){
		$('a.thickbox').each(function()	{
			href = $(this).attr('href');
			$(this).attr('href', href.replace(/\?/, "?js=yes&"));
		});
		
		mainInit();
		
		$('div.active').makeTabs();
		
		// apply PNG fix to the following selectors
		if ($.browser.msie && $.browser.version<7) {
			$.ifixpng.pixel = '/magazine/graphics/pixel.gif';
			$('#logo img[src$=.png]').ifixpng();
		}
		
		// focus states on form fields - customised for "Building" because of coloured/rounded form fields
		$('#columns :text[id!=news_email], #columns :password, #columns textarea')
			.focus(function() {
				$(this).css({backgroundColor:'#FFFFB7', color:'#000', borderColor:'#000'}); })
			.blur(function() {
				$(this).css({backgroundColor:'#F1F1F1', color:'#474849', borderColor:'#CACBC7', borderTopColor:'#959693', borderBottomColor:'#E4E5E1'});
		});

		// write out print button for users with JS enabled
		$('.page_options li').removeClass('first');
		$('.page_options ul').prepend('<li class="first"><a href="javascript:window.print()" class="po_print">Print</a></li>');
		$('.page_options .po_print').addClass('wvTip');
		$('.paging_results').append('<span class="print"><a href="javascript:window.print()">Print</a></span>');

		// disables buttons
		$('#register .termsandconditions input.button, .myNewsletters .button, #blogPost #comments_form .button').attr('disabled','disabled').css({cursor:'default', opacity:.5});

		// toggle button style depending on checkbox state
		$('.termsandconditions .formOptions :checkbox, .newsletterformSleeve .formOptions :checkbox, #story #comments_form .note :checkbox, .uploadAgreement :checkbox, #blogPost #comments_form :checkbox').click(function(){
			if(this.checked) {$('#register .termsandconditions input.button, .myNewsletters .button, #story #comments_form .button, .uploadAgreement .button, #blogPost #comments_form .button').attr('disabled','').css({cursor:'pointer', opacity:'1'});}
			else {$('#register .termsandconditions input.button, .myNewsletters .button, #story #comments_form .button, .uploadAgreement .button, #blogPost #comments_form .button').attr('disabled','disabled').css({cursor:'default', opacity:.5});}
		});

		// newsletters box, clear text
		$('#newsletter_block #news_email').focus(function() { if($(this).val() == "Enter email address") $(this).val(''); })
										  .blur(function() { if($(this).val() == "") $(this).val("Enter email address");});
	
		//feedback button
		$('<div class="feedback_close"><a href="#">Close form overlay</a></div>').appendTo('.feedback_box .inner_sleeve');
		$('.feedback_box .feedback_close').click(function(){ $(this).parents('.feedback_box').remove(); return false;});

		//My library page - highlight correct tab depending on "?type=" in querystring		
		page = location.href;
		libraryPage = page.indexOf('?type=');
		if (libraryPage > 0) {
			var tab = (page.substr(libraryPage+6,1)).toUpperCase();
			switch(tab) {
				case 'T':
				  	$('.tab_block a:contains("Discussions")').click();
				  	break;
				case 'B':
				  	$('.tab_block a:contains("Blogs")').click();
				  	break;
			}
		}

		$('#story .relatedimages_block a.thickbox_image').each(function(){
			href = $(this).attr('href');
			// *************
			if(href.match('js=yes')) alert('js=yes still hardcoded');
			// *************
			$(this).attr('href', href.replace(/\.aspx$/g, ".aspx?js=yes&"));
		});

		// Link form behaviour in footer promo
		$('#promo_container input.button').click(function() {
			var SiteRelocate = $('#siteName option:selected').attr('value');

			if(SiteRelocate != "") {
				window.parent.location.href = SiteRelocate;
			}

			return false;
		});
		function mainInit() {
			$('#mainnav').SetupMenu();
		}

		//Center the navigation
		/*var footernav_ul_width = 0;
		$('#footernav .sleeve>ul>li').each(function(){
			footernav_ul_width += $(this).outerWidth();
		});
		$('#footernav .sleeve>ul').css('width',footernav_ul_width+3);*/

		//Center the seo navigation
		/*var footernav_ul_width = 0;
		$('#footer ul.seo_nav>li').each(function(){
			footernav_ul_width += $(this).outerWidth();
		});
		$('#footer ul.seo_nav').css('width',footernav_ul_width+3);*/
	
	});

})(jQuery);
