
/*** ANIMATING WHATS ON RESULTS ***/

var animateWhatsOn = function(){
	var elWhatsOnItem = $$('div.section-whats_on a.event-tile');

	$$('div.section-whats_on a.event-tile span.event-details').invoke('hide');

	elWhatsOnItem.invoke('observe', 'mouseenter', function(e){
		var elAnchor = Event.findElement(e, 'a'),
			elDetails = elAnchor.down('span.event-details');

		$$('div.section-whats_on a.event-tile span.event-details').invoke('hide');

		this.appearDelay = setTimeout(function(){
			elDetails.appear({ duration: 0.25 });
		}.bind(this), 250);
	}).invoke('observe', 'mouseleave', function(e){
		var elAnchor = Event.findElement(e, 'a'),
			elDetails = elAnchor.down('span.event-details');

		clearTimeout(this.appearDelay);

		$$('div.section-whats_on a.event-tile span.event-details').invoke('hide');
	});
}

var selectAllTypes = function(){
	var elEventType = $$('div.section-whats_on table.check-box-list input[type=checkbox]'),
		elAllEvents;

	for(var i=0; i<elEventType.length; i++){
		var elInputClass = elEventType[i].adjacent('label')[0].innerHTML.replace(/\s+/g, '-').toLowerCase();

		elEventType[i].addClassName(elInputClass);

		if(elEventType[i].hasClassName('all')){
			elAllEvents = elEventType[i];
		}
	}

	elEventType.invoke('observe', 'click', function(e){
		var el = e.findElement('input');

		if(el == elAllEvents){
			elEventType.without(el).each(function(i){
				i.checked = false;
			});
		}else{
			elAllEvents.checked = false;
		}
	});
}

document.observe('dom:loaded', function(){


	/*** YACAL INITIALIZATION ***/

	dateInput1 = new DateInput($('ctl00_ContentPlaceHolder1_uxWhatsOnSearchForm_uxFromDate'), {
		valueFormat: 'd/m/Y',
		trigger: $('calendarFromDate'),
		useEffects: true,
		effects: {
			openEffectType: Effect.Appear,
			openEffectOptions: {duration:0.2},
			closeEffectType: Effect.Fade,
			closeEffectOptions: {duration: 0.1}
		}
	});

	dateInput2 = new DateInput($('ctl00_ContentPlaceHolder1_uxWhatsOnSearchForm_uxToDate'), {
		valueFormat: 'd/m/Y',
		trigger: $('calendarToDate'),
		useEffects: true,
		effects: {
			openEffectType: Effect.Appear,
			openEffectOptions: {duration:0.2},
			closeEffectType: Effect.Fade,
			closeEffectOptions: {duration: 0.1}
		}
	});


	/*** ANIMATING WHATS ON RESULTS ***/

	animateWhatsOn();
	selectAllTypes();
});
