$.blockUI.defaults.overlayCSS.backgroundColor = '#E2E6F2';
// $.blockUI.defaults.css.top = '25%';
$.blockUI.defaults.css = {};
$.datepicker.setDefaults({
	dateFormat:'dd/mm/yy',
	minDate: '+1'
});
var weekday=new Array(7);
weekday[0]="sunday";
weekday[1]="monday";
weekday[2]="tuesday";
weekday[3]="wednesday";
weekday[4]="thursday";
weekday[5]="friday";
weekday[6]="saturday";

var eventDays = {};

function nextPhoto(urlname,photoindex) {
	$.post('/events/photos/',{'eventName':urlname,'photo_index':photoindex},function(res) {
		$('#photo-container').html(res);
	});
	return false;
}

function playAudioCaptcha(surl) {
	document.getElementById("hidden_audio_captcha").innerHTML="<embed src='"+surl+"' hidden=true autostart=true loop=false>";
	
	return false;
}

$.fn.tabs = function(defaultTab) {
	var tabContainer = this;
	$('.tab-navigation ul li a',tabContainer).click(function() {
		$(".tab-content > div",tabContainer).hide().filter(this.hash).show();
		$(this).parent().addClass('selected').siblings().removeClass('selected');
		return false;
	}).filter('[href=#'+defaultTab+']').click();
};

$(document).ready(function() {
	$('li.expandable-list:not(.open) ul').hide();
	$('li.expandable-list > a').click(function() {
		$(this).parent('li').toggleClass('open');
		$(this).next('ul').slideToggle('fast');
	});
	$('.rolldown-closed .rolldown-inner').slideUp('fast');
	$('.rolldown-control').click(function(e){
		e.preventDefault();	
		outer = $(this).closest('.rolldown-outer');
		if ($(outer).find('.rolldown-inner').is(':hidden')) {
			$(outer).removeClass('rolldown-closed').find('.rolldown-inner').slideDown('fast');
		} else {
			$(outer).addClass('rolldown-closed').find('.rolldown-inner').slideUp('fast');
		}
	});
	$('#timer_help_text').hide();
	$('#timer_help a').click(function(e){
		e.preventDefault();
		$('#timer_help_text').slideToggle('6000');
	});
	$('#booking_login form#logIn').submit(function(e){
		var form = $(this);
		form.block({message: '<p>Please wait...</p>'});
		$().ajaxComplete(form.unblock());
		$.post('/mytickets/ajaxlogin/',{'email':$('#email',this).val(),'password':$('#password',this).val(),'rememberme':$('#rememberme',this).is(':checked')},function(data) {
			if (data.valid == false) {
				if ($('div.error',form).size() > 0) {
  					$('div.error',form).replaceWith($(data.errorsHTML));
				} else {
					$(data.errorsHTML).hide().prependTo(form).slideDown();
				}
			} else {
				$('.login-container').html('<div><div class="confirmation">You are now logged in.</div></div>');
				$('.userLoginListener').trigger('userLogin');
			}				
		});
		e.preventDefault();
	});
	if ($('body.status-confirm').length) {
		$.blockUI({message : standardWaitingMessageBlock('<p>Sorry, this is taking longer than expected.  Please be patient, we are processing your booking...</p><p><strong>Please refresh this page if your booking is not confirmed within 3 minutes.</strong></p>')});
		processConfirmStatus();
	}
	$('form#payment').submit(function(e) {
		if ($('input#terms_accept:checked').val() !== undefined) {
			$.blockUI({message : standardWaitingMessageBlock("<p>Your purchase is being processed</p>")});
			return true;
		} else {
			if ($('div.terms_accept_error').length == 0) {
				$('input#terms_accept').before("<div class='terms_accept_error' style='display:none'><p class='error_text'>Please accept the above terms and conditions before continuing.</p></div>");				
			}
			$('div.terms_accept_error').slideDown();		
			e.preventDefault();			
		}
	})
	$('#booking_costs').click(function(e){
		var target = $(e.target);
		
		if (target.hasClass('toggleInsuranceLink')) {
			updateBookingCosts('/book/payment/?removeFlexiTicket=1');
			return false;				
		}
		return true;
	}).bind('userLogin',function(){
		updateBookingCosts('/book/payment/');
	});	
	
	$('input#postage_select').change(function(){
		if ($('input#postage_select:checked').val() !== undefined) {
			updateBookingCosts('/book/payment/?postage_select=1');
		} else {
			updateBookingCosts('/book/payment/?postage_select=0');
		}
	});
	
	$('select#country').change(function(){
		if ($('option:selected',this).val() == "UK|GBR|United Kingdom") {
			updateBookingCosts('/book/payment/?overseas=0');
		} else {
			updateBookingCosts('/book/payment/?overseas=1');
		}
	});
		
	$('.blockui-close').click(function(){$.unblockUI();return false;});
	
	$('#payment-form').bind('userLogin',function(){
		$().ajaxStop($('#payment-form').unblock);
		$('#payment-form').block({message: '<p>Please wait...</p>'});
		$.get('/book/payment/?updateForm=1',null,function(res) {
			$('#payment-form').html(res);
		});		
	});
	
	$('#bookingProcessContinueSubmit').click(function(e){
		if ($('input#terms_accept:checked').val() !== undefined) {
			return true;
		} else {
			if ($('div.terms_accept_error').length == 0) {
				$('div#booking_terms div.input_checkbox').before("<div class='terms_accept_error' style='display:none'><p class='error_text'>Please accept the above terms and conditions before continuing.</p></div>");				
			}
			$('div.terms_accept_error').slideDown();		
			e.preventDefault();			
		}		
	});
	$('input#terms_accept').click(function(){
		if ($('input#terms_accept:checked').val() !== undefined) {
			$('div.terms_accept_error').slideUp();
		}
	});	
	$('.bubbleInfo').each(function(){$(this).bubble()});
	$("#whats-on-when-calendar-box").datepicker({
		firstDay:1,
		minDate:"-0d",
		maxDate:"+1y",
		altField:'#selectedDate',
		dateFormat:'yy/mm/dd',
		onSelect:function(dateText,inst) { window.location.href = "/whatson/when/"+dateText+"/"}		
	});	
	$('form#select-offers').on('click','a.show-extra-details',function(e){
		e.preventDefault();
		var parent = $(this).parents('.attraction');
		if ($('.attraction-extra-details',parent).is(':visible')) {
			$(this).html('show details');
		} else {
			$(this).html('hide details');
		}
		$('.attraction-extra-details',parent).slideToggle('fast','swing');	
	});
	if (jQuery().Watermark) {
	$('#form_quickbook #elt_date').Watermark('dd/mm/yyyy')
		.datepicker({showOn:'focus',beforeShowDay:function(d){
			return {0:weekday[d.getDay()] in eventDays};
		}});
	}
	$('#form_quickbook #elt_event').change(function(){
		$('#form_quickbook').ajaxStop(function(){$('#form_quickbook').unblock();}).block({message: 'Please wait...'});
		$.post('/index/quickbookeventdata/',{'id':$(this).val()},function(data) {
			eventDays = data.days;
			if ('end_date' in data) {
				$('#form_quickbook #elt_date').datepicker('option','maxDate',new Date(data.end_date));
			}
			if ('start_date' in data && new Date(data.start_date) > new Date()) {
				$('#form_quickbook #elt_date').datepicker('option','minDate',new Date(data.start_date));
			}
			if ($('#form_quickbook #elt_event option:selected').val() == '') {
				$('#form_quickbook #elt_submit, #form_quickbook #elt_date').attr('disabled', 'disabled');
			} else {
				$('#form_quickbook #elt_submit, #form_quickbook #elt_date').removeAttr('disabled');
			};
		});
	}).change();
	$('#newsletter-form').submit(function(e) {
		e.preventDefault();
		$.post('/index/newslettersubscribeajax/',{'email':$('#email',this).val()},function(data) {
			if (data.valid == false) {
				$('div.feedback-success:visible').slideUp()
				$('div.feedback-error:hidden').slideDown();
			} else {
				$('div.feedback-error:visible').slideUp();
				$('div.feedback-success:hidden').slideDown();
				$('form#newsletter-form').fadeTo(0.2,0.6).find('input').attr('disabled','disabled');
			}				
		});
	});
	$('div.feedback-error, div.feedback-success').hide();
	$('div.scrollableContent').jScrollPane({showArrows: true, animateScroll: true, animateDuration: 500, arrowButtonSpeed: 187});

	$("div.card_types input").change(function(){
		if ($(this).val() == 'AMEX') {
			$('input#cardverificationcode + p.field-hint').text('The 4 digit code above the card number on the front of your card.');
		} else {
			$('input#cardverificationcode + p.field-hint').text('The last 3 digits on the signature strip.');
		}		
	});
		
	$(".ts-and-cs-popup").click(function(e) {
		e.preventDefault();
		$.blockUI({
			message:$('div#terms-popup'),
			css:{ width:'70%', left: '15%', top: '15%', textAlign:'left'}});
	});
	
	
});

function infoPopUp(heading,text,url,linkText) {
	var content = '<h1>'+heading+'</h1><p>'+text+'</p>';
	
	if (url == null) {		
		content += '<a href="#" onClick="$.unblockUI();return false;" title="'+linkText+'">'+linkText+'</a>';
	} else {
		content += '<a href="'+url+'" title="'+linkText+'">'+linkText+'</a>';		
	}
	$.blockUI({message : content});
}
function updateBookingCosts(url) {
	$().ajaxStop($('#booking_costs').unblock);
	$('#booking_costs').block({message: '<p>Please wait...</p>'});
	$.get(url,null,function(res) {
		$('div#booking_costs').html(res);
		$('#total_price_charged').html($('#booking_costs tfoot tr#total td.cost').html());
		$('.bubbleInfo').each(function(){$(this).bubble()});
	});
}

function processConfirmStatus() {
	$.getJSON('/book/confirmstatusajax/',function(data){
		if (data.confirmStatus == 'not-complete') {
			setTimeout('processConfirmStatus()',5000);
		} else {
			window.location.replace("/book/payment/");
		}
	});
}

function doConfirmStatusAjax() {

	$.getJSON("/book/confirmstatusajax/",function(res){
		alert(res);
	});
}

function standardWaitingMessageBlock(text) {
  var imageSrc = 'https://'+$(location).attr('host')+"/assets/stylesheet-images/waiting.gif";
  return '<h1>UKTickets</h1><div class="message">'+text+'</div><p>Please wait...</p><img src="'+imageSrc+'" height="19" width="220" alt="Please wait" />';
}
