$(document).ready(function() {
	//hover states on the static widgets
	$('#dialog_link, ul#icons li').hover(
		function() { $(this).addClass('ui-state-hover'); }, 
		function() { $(this).removeClass('ui-state-hover'); }
	);
	$('#trainerSession select').change(function() {
		text = $('#trainerSession select option:selected').text().split(',');
		if(text[0] == 'Wet Weather Session' && confirm('Please ensure that you have confirmed this wet weather session by contacting (07) 3321 4455 before clicking the "Ok" button to proceed with your booking.') == false) {
			$('#trainerConfirmation, #trainerRegistration').slideUp('fast');			
			$('trainerPositionID').val('');
		} else {
			$('#trainerConfirmation, #trainerRegistration').slideUp('fast');
			$('#trainerPosition .msg').show().html('<em>Complete Steps 1 &amp; 2 before selecting a trainer.<em>');
			$('#trainerPosition .position').html('');
			$('trainerPositionID').val('');
			$('#trainers .item .position li a').css('background-color', '#fff').css('border-color', '#C7F1C8');
			$('#trainerConfirmation .trainerSession').html($('#trainerSession select option:selected').html());
			$('#trainerPosition .submitButton').attr('disabled', 'disabled');		
			if($('#trainerSession select option:selected').val() != 0) {
				$('#trainerPosition .msg em').text('Loading...');
				$.post(
					'/booking/trainer_ajax.php?a=position', 
					{ 'session'	: $('#trainerSession select option:selected').val(), 
					  'date'	: $('#trainerDayID input').val() }, 
					function(response) {
											$('#trainerPosition .msg').hide();
						$('#trainerPosition .position').html(response);						
						$('#trainerPosition .position li a').click(function() {
							$('#trainerPosition .position li a').each(function() { $(this).removeClass('current'); });
							$(this).addClass('current');
							$('#trainerPositionID').val($(this).text());
							if($('#trainerConfirmation').css('display') == 'none') {
								$('#trainerConfirmation .submitButton').attr('disabled', '');
							}
							$('#trainerConfirmation .trainerPosition').text($(this).text());
													$('#trainerConfirmation').slideDown('fast');
						});				
						//$('#trainerPosition').slideDown('fast');
					}
				);
			} else {
				$('#trainerConfirmation .trainerSession, #trainerConfirmation .trainerPosition').text('Not Selected');
				$('#trainerPosition .msg').show().html('<em>Complete Steps 1 &amp; 2 before selecting a trainer.<em>');
				$('#trainerPosition .position').html('');
			}
		}
	});
	$('#trainerConfirmation .submitButton').click(function() {
		$('#trainerRegistration').slideDown('fast');
		$(this).attr('disabled', 'disabled');
	});
	$('#paymentID').change(function() {
		if($(this).val() == '3') {
			$('#voucherID input').attr('disabled', '').val('');
		} else {
			$('#voucherID input').attr('disabled', 'disabled').val('');
		}
	});
	$('.subscribe').click(function() {
		if($('#nameID').val() == '' || $('#emailID').val() == '' || $('#paymentID').val() == '3' && $('#voucherID input').val() == '' || !validateEmail($('#emailID').val(), true, false)) {
			alert('Please complete the booking form correctly before continuing.');
			return false;
		}
		if($('#paymentID').val() != '3') {
			$(this).attr('disabled', 'disabled').val('Loading...');
			$.post(
				'/booking/trainer_ajax.php?a=paypal', 
				{	'session'	: $('#trainerSession select option:selected').val(),
				  	'date'		: $('#trainerDayID input').val(),
					'position'	: $('#trainerPositionID').val(),
				  	'payment'	: $('#paymentID').val(),
				  	'name'		: $('#nameID').val(),
				  	'email'		: $('#emailID').val() }, 
				function(response) {
					if(response.substr(0, 6) == 'error:') {					
						alert("Response:\n" + response);
						return false;
					} else
						window.location.href = response;
				});
			return false;
		}
		return true;	
	});
});
function runMe(y,m,d) { 
	if (window.CP_targetInput!=null) {
		var dt = new Date(y,m-1,d,0,0,0);
		if (window.CP_calendarObject!=null) { window.CP_calendarObject.copyMonthNamesToWindow(); }
		window.CP_targetInput.value = formatDate(dt,window.CP_dateFormat);
		$('#dateID').text(formatDate(dt,window.CP_dateFormat));
		$('#trainerConfirmation, #trainerRegistration').slideUp('fast');
		$('#trainerPositionID').val('');
		$('#trainers .item .position li a')
			.css('background-color', '#fff')
			.css('border-color', '#C7F1C8');
		$('#trainerConfirmation .trainerDate').html(formatDate(dt,window.CP_dateFormat));
		$('#trainerPosition .submitButton').attr('disabled', 'disabled');		
		$('#trainerPosition .msg').show().html('<em>Complete Steps 1 &amp; 2 before selecting a trainer.<em>');
		$('#trainerPosition .position').html('');
		if($('#trainerDayID input').val() != 0) {
			$('#trainerSession select').attr('disabled', 'disabled');
			$('#trainerSession select option').text('Loading...');
			$('#trainerSession select').load(
				'/booking/trainer_ajax.php?a=time', 
				{ 'date': $('#trainerDayID input').val() }, 
				function(response) {
					if(response.substr(0, 6) == 'error:') {
						alert("Response:\n" + response.substr(6));
						return false;
					} else {
						$('#trainerSession select').html(response).attr('disabled', '');
					}
				}
			);
		} else
			$('#trainerConfirmation strong').text('Not Selected');
	}
}
function validateEmail(addr,man,db) {
	if (addr == '' && man) {
	   if (db) alert('email address is mandatory');
	   return false;
	}
	if (addr == '') return true;
	var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';
	for (i=0; i<invalidChars.length; i++) {
	   if (addr.indexOf(invalidChars.charAt(i),0) > -1) {
	      if (db) alert('email address contains invalid characters');
	      return false;
	   }
	}
	for (i=0; i<addr.length; i++) {
	   if (addr.charCodeAt(i)>127) {
	      if (db) alert("email address contains non ascii characters.");
	      return false;
	   }
	}
	var atPos = addr.indexOf('@',0);
	if (atPos == -1) {
	   if (db) alert('email address must contain an @');
	   return false;
	}
	if (atPos == 0) {
	   if (db) alert('email address must not start with @');
	   return false;
	}
	if (addr.indexOf('@', atPos + 1) > - 1) {
	   if (db) alert('email address must contain only one @');
	   return false;
	}
	if (addr.indexOf('.', atPos) == -1) {
	   if (db) alert('email address must contain a period in the domain name');
	   return false;
	}
	if (addr.indexOf('@.',0) != -1) {
	   if (db) alert('period must not immediately follow @ in email address');
	   return false;
	}
	if (addr.indexOf('.@',0) != -1){
	   if (db) alert('period must not immediately precede @ in email address');
	   return false;
	}
	if (addr.indexOf('..',0) != -1) {
	   if (db) alert('two periods must not be adjacent in email address');
	   return false;
	}
	var suffix = addr.substring(addr.lastIndexOf('.')+1);
	if (suffix.length != 2 && suffix != 'com' && suffix != 'net' && suffix != 'org' && suffix != 'edu' && suffix != 'int' && suffix != 'mil' && suffix != 'gov' & suffix != 'arpa' && suffix != 'biz' && suffix != 'aero' && suffix != 'name' && suffix != 'coop' && suffix != 'info' && suffix != 'pro' && suffix != 'museum') {
	   if (db) alert('invalid primary domain in email address');
	   return false;
	}
	return true;
}