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();
	
	if($defined($$('#frmsearch')[0])) {
		var loadValues = $$('input[name=units]:checked').map(function(e) { return e.id; });
		hideShowRadios(loadValues);
			
		$$('#frmsearch input[type=radio]').addEvent('click', function(evt){
			var values = $$('input[name=units]:checked').map(function(e) { return e.id; });
			hideShowRadios(values);
		});
	}
	
	// Toggles select boxes on deals search
	function hideShowRadios(values){
		$$('#sizes select').each(function(el) {
			if(el.name==values){
				el.setStyle('display', 'block');
			}else{
				el.setStyle('display', 'none');
			}
		});
	}
	
	// Deals Print Results
	if($defined($$('#Deals_Results')[0])) {
		$$('#Deals_Results')[0].addEvent('click', function(evt){
			evt.stop()
			var bChecked = false;
			var list = '';
			$$('#search_results input[type=checkbox]').each(function(el) {
				if(el.checked==true){
					bChecked=true;
					list = list + el.value + ',';
				}
			});
			
			// Call print function
			if (bChecked==false){
				alert('You must select at least one deal to be printed.');
			}else{
				popUp('Deals_Print_Preview.aspx?printlist=' + list, 900, 800);
			}
		});
		
		// Open popup window
		function popUp(page, width, height){
			win = eval('window.open("' + page + '","popup","width='+width+',height='+height+', location=yes, menubar=yes, resizable, scrollbars=yes, toolbar=yes")');
			win.focus();
		}
	}
	
});

(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], #bespoke_footer_3 h2, #bespoke_footer_3 .sleeve, #footer_sleeve').ifixpng();
		}
		
		// focus states on form fields
		$('#content :text, #content :password, #content textarea').css({backgroundColor:'#FFF', color:'#333'})
			.focus(function() {
				$(this).css({backgroundColor:'#FFFFB7', color:'#000', borderColor:'#000'}); })
			.blur(function() {
				$(this).css({backgroundColor:'#FFF', color:'#333', borderColor:'#BAB9BF'});
		});

		// 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);
	});
	
	function checkDatesFrom(){
		datechange('fromdate', 'frmsearch', 0);
	}
	function checkDatesTo(){
		datechange('todate', 'frmsearch', 0); 
	}

	$(function(){
		if($('#frmsearch').length != 0){
			$('#searchDayFrom, #searchMonthFrom, #searchYearFrom').change(checkDatesFrom);
			$('#searchDayTo, #searchMonthTo, #searchYearTo').change(checkDatesTo);
			checkDatesFrom();
			checkDatesTo();
		}
	});
})(jQuery);
