var inlineRange = null;

var inlineFrom = null;

var inlineTo = null;



$(document).ready(function () {

	$('#alt').attr({ 'disabled':'disabled' });

	tabs.init();

	// Restore default language after loading French localisation

	popUpCal.setDefaults(popUpCal.regional['']);

	// Set calendar global defaults - invoke via focus and image button

	popUpCal.setDefaults({autoPopUp: 'both', buttonImageOnly: true,

		buttonImage: 'calendar.gif', buttonText: 'Calendar'});

	// Defaults

	$('#defaultFocus').calendar({autoPopUp: 'focus'});

	// Invocation

	$('#invokeFocus').calendar({autoPopUp: 'focus', yearRange: '-5:+5'});

	$('#invokeButton').calendar({autoPopUp: 'button', buttonImageOnly: false,

		buttonImage: '', buttonText: '...', yearRange: '-7:+7'});

	$('.invokeBoth').calendar(); // Also Keystrokes

	$('#enableFocus').toggle(

		function () { this.value = 'Enable'; return popUpCal.disableFor($('#invokeFocus')); },

		function () { this.value = 'Disable'; return popUpCal.enableFor($('#invokeFocus')); });

	$('#enableButton').toggle(

		function () { this.value = 'Enable'; return popUpCal.disableFor($('#invokeButton')); },

		function () { this.value = 'Disable'; return popUpCal.enableFor($('#invokeButton')); });

	$('#enableBoth').toggle(

		function () { this.value = 'Enable'; return popUpCal.disableFor($('.invokeBoth')[0]); },

		function () { this.value = 'Disable'; return popUpCal.enableFor($('.invokeBoth')[0]); });

	// Restricting

	$('#restrictControls').calendar({firstDay: 1, changeFirstDay: false,

		changeMonth: false, changeYear: false});

	$('#restrictDates').calendar({minDate: new Date(2007, 1 - 1, 26),

		maxDate: new Date(2007, 1 - 1, 26)});

	// Customise

	$('#noWeekends').calendar({customDate: popUpCal.noWeekends});

	$('#nationalDays').calendar({customDate: nationalDays, dateFormat: 'MDY/'});

	$('#admission').calendar({customDate: admissionDays, dateFormat: 'MDY/'});
	
	$('#admissionweekend').calendar({customDate: admissionWeekend, dateFormat: 'MDY/'});

	// Localisation

	$('#isoFormat').calendar({dateFormat: 'YMD-'});

	$('#frenchCalendar').calendar(popUpCal.regional['fr']);

	// Date range

	$('.calendarRange').calendar({fieldSettings: customRange});

	// Miscellaneous

	$('#addSettings').calendar({closeAtTop: false,

		showOtherMonths: true, onSelect: alertDate});

	$('#reconfigureCal').calendar();

	$('.inlineConfig').calendar();

	// Inline

	$('.calendarInline').calendar({onSelect: updateInlineRange});

	inlineRange = $('#inlineRange');

	inlineFrom = $('#inlineFrom');

	inlineTo = $('#inlineTo');

	updateInlineRange();

	// Stylesheets

	$('#altStyle').calendar();

	$('#button1').click(function() { 

		popUpCal.showFor($('#invokeFocus')[0]);

	});

	$('#button2').click(function() { 

		popUpCal.dialogCalendar($('#invokeDialog').val(),

		setDateFromDialog, {prompt: 'Choose a date', speed: ''});

	});

	$('#button3').click(function() { 

		popUpCal.dialogCalendar($('#altDialog').val(),

		setAltDateFromDialog, {prompt: 'Choose a date', speed: ''});

	});



});



function setSpeed(select) {

	popUpCal.reconfigureFor($('#reconfigureCal')[0],

		{speed: select.options[select.selectedIndex].value});

}



function setDateFromDialog(date) {

	$('#invokeDialog').val(date);

}



function setAltDateFromDialog(date) {

	$('#altDialog').val(date);

}



var natDays = [[1, 26, 'au'], [2, 6, 'nz'], [3, 17, 'ie'], [4, 27, 'za'], [5, 25, 'ar'], [6, 6, 'se'],

	[7, 4, 'us'], [8, 17, 'id'], [9, 7, 'br'], [10, 1, 'cn'], [11, 22, 'lb'], [12, 12, 'ke'], [10, 17, 'us']];

function nationalDays(date) {

	for (i = 0; i < natDays.length; i++) {

		if (date.getMonth() == natDays[i][0] - 1 && date.getDate() == natDays[i][1]) {

			return [false, natDays[i][2] + '_day'];

		}

	}

	return [true, ''];

}





var admitDays = [[12, 04, 'us'], [12, 05, 'us'], [12, 06, 'us'], [12, 12, 'us'], [12, 13, 'us'], [12, 19, 'us'], [12, 20, 'us'], [12, 24, 'us'], [12, 25, 'us'], [12, 26, 'us'], [12, 27, 'us'], [12, 31, 'us'], 
																																  
																																  [01, 01, 'us'], [01, 02, 'us'], [01, 03, 'us'], [01, 04, 'us'], [01, 05, 'us'], [01, 06, 'us'],[01, 07, 'us'],[01, 08, 'us'],[01, 09, 'us'],[01, 10, 'us'],[01, 11, 'us'], [01, 12, 'us'], [01, 13, 'us'], [01, 14, 'us'], [01, 15, 'us'], [01, 16, 'us'], [01, 17, 'us'], [01, 18, 'us'], [01, 19, 'us'], [01, 24, 'us'], [01, 25, 'us'], [01, 30, 'us'],[01, 31, 'us'],
																																  
																																  [02, 01, 'us'], [02, 07, 'us'], [02, 08, 'us'], [02, 14, 'us'],  [02, 15, 'us'], [02, 16, 'us'], [02, 21, 'us'], [02, 22, 'us'], [02, 27, 'us'], [02, 28, 'us'], 
																																  
																																  [03, 01, 'us'], [03, 06, 'us'], [03, 07, 'us'], [03, 08, 'us'], [03, 09, 'us'],[03, 10, 'us'], [03, 11, 'us'], [03, 12, 'us'], [03, 13, 'us'], [03, 14, 'us'],[03, 15, 'us'], [03, 21, 'us'], [03, 22, 'us'], [03, 23, 'us'], [03, 25, 'us'], [03, 27, 'us'],[03, 28, 'us'],[03, 29, 'us'], [03, 30, 'us'], 
																																  
																																  [04, 04, 'us'], [04, 05, 'us'], [04, 09, 'us'], [04, 10, 'us'], [04, 11, 'us'], [04, 12, 'us'], [04, 17, 'us'], [04, 18, 'us'], [04, 19, 'us'], [04, 25, 'us'], [04, 26, 'us'], 
																																  
																																  [05, 03, 'us'], [05, 04, 'us'], [05, 08, 'us'], [05, 09, 'us'], [05, 10, 'us'], [05, 11, 'us'], [05, 12, 'us'], [05, 17, 'us'], [05, 18, 'us'], [05, 24, 'us'], [05, 25, 'us'],[05, 26, 'us'], [05, 31, 'us'], 
																																  
																																  [06, 01, 'us'], [06, 07, 'us'], [06, 08, 'us'], [06, 12, 'us'],[06, 13, 'us'], [06, 14, 'us'], [06, 16, 'us'], [06, 19, 'us'], [06, 20, 'us'], [06, 21, 'us'], [06, 22, 'us'], [06, 26, 'us'], [06, 27, 'us'], [06, 28, 'us'], 
																																  
																																  [07, 03, 'us'], [07, 04, 'us'], [07, 05, 'us'], [07, 11, 'us'], [07, 12, 'us'], [07, 18, 'us'], [07, 19, 'us'], [07, 25, 'us'], [07, 26, 'us'],  
																																  
																																  [08, 01, 'us'], [08, 02, 'us'], [08, 05, 'us'], [08, 06, 'us'],[08, 07, 'us'],[08, 08, 'us'], [08, 09, 'us'],  [08, 10, 'us'], [08, 11, 'us'], [08, 12, 'us'],  [08, 13, 'us'], [08, 14, 'us'], [08, 15, 'us'],[08, 16, 'us'], [08, 17, 'us'], [08, 18, 'us'], [08, 19, 'us'], [08, 20, 'us'], [08, 21, 'us'], [08, 2, 'us'], [08, 22, 'us'], [08, 23, 'us'], [08, 24, 'us'],[08, 25, 'us'], [08, 26, 'us'], [08, 27, 'us'], [08, 28, 'us'], [08, 29, 'us'], [08, 30, 'us'], [08, 31, 'us'], 
																																  
																																  [09, 01, 'us'], [09, 05, 'us'], [09, 06, 'us'], [09, 07, 'us'], [09, 12, 'us'], [09, 13, 'us'], [09, 19, 'us'], [09, 20, 'us'], [09, 26, 'us'], [09, 27, 'us'], [09, 28, 'us'],
																																  
																																  [10, 03, 'us'], [10, 04, 'us'], [10, 11, 'us'], [10, 12, 'us'], [10, 10, 'us'], [10, 16, 'us'], [10, 17, 'us'], [10, 18, 'us'], [10, 19, 'us'],[10, 14, 'us'], [10, 20, 'us'], [10, 24, 'us'], [10, 25, 'us'], [10, 31, 'us'],
																																  
																																  [11, 01, 'us'], [11, 07, 'us'], [11, 08, 'us'], [11, 14, 'us'], [11, 15, 'us'], [11, 21, 'us'], [11, 22, 'us'], [11, 25, 'us'], [11, 26, 'us'], [11, 27, 'us'], [11, 28, 'us'], [11, 29, 'us']];

function admissionDays(date) {

	for (i = 0; i < admitDays.length; i++) {

		if (date.getMonth() == admitDays[i][0] - 1 && date.getDate() == admitDays[i][1]) {

			return [false, admitDays[i][2] + '_day'];

		}

	}

	return [true, ''];

}

var admitWeekend = [[12, 01, 'us'], [12, 02, 'us'], [12, 03, 'us'], [12, 04, 'us'], [12, 06, 'us'], [12, 07, 'us'], [12, 08, 'us'], [12, 09, 'us'], [12, 10, 'us'], [12, 11, 'us'], [12, 12, 'us'],  [12, 13, 'us'], [12, 14, 'us'], [12, 15, 'us'], [12, 16, 'us'], [12, 17, 'us'], [12, 18, 'us'], [12, 19, 'us'], [12, 20, 'us'], [12, 21, 'us'], [12, 22, 'us'], [12, 23, 'us'], [12, 24, 'us'], [12, 25, 'us'], [12, 26, 'us'], [12, 27, 'us'], [12, 28, 'us'], [12, 29, 'us'], [12, 30, 'us'], [12, 31, 'us'],
																																	 
																																	 [01, 01, 'us'], [01, 02, 'us'], [01, 03, 'us'], [01, 04, 'us'], [01, 05, 'us'], [01, 06, 'us'], [01, 07, 'us'], [01, 08, 'us'], [01, 09, 'us'], [01, 10, 'us'], [01, 11, 'us'], [01, 12, 'us'], [01, 13, 'us'], [01, 14, 'us'], [01, 15, 'us'], [01, 16, 'us'], [01, 17, 'us'], [01, 18, 'us'], [01, 19, 'us'], [01, 20, 'us'], [01, 20, 'us'], [01, 21, 'us'], [01, 22, 'us'], [01, 23, 'us'], [01, 25, 'us'], [01, 26, 'us'], [01, 27, 'us'], [01, 28, 'us'], [01, 29, 'us'], [01, 30, 'us'],  
																																	 [02, 01, 'us'], [02, 02, 'us'], [02, 03, 'us'], [02, 04, 'us'], [02, 05, 'us'],  [02, 06, 'us'], [02, 07, 'us'], [02, 08, 'us'], [02, 09, 'us'], [02, 10, 'us'], [02, 11, 'us'], [02, 12, 'us'], [02, 13, 'us'], [02, 15, 'us'], [02, 16, 'us'], [02, 17, 'us'], [02, 18, 'us'], [02, 19, 'us'], [02, 20, 'us'], [02, 22, 'us'], [02, 23, 'us'], [02, 24, 'us'], [02, 25, 'us'], [02, 26, 'us'], [02, 27, 'us'], [02, 29, 'us'], 
																																	 
																																	 [03, 01, 'us'], [03, 02, 'us'], [03, 03, 'us'], [03, 04, 'us'], [03, 05, 'us'],[03, 06, 'us'], [03, 07, 'us'], [03, 08, 'us'], [03, 09, 'us'], [03, 10, 'us'],[03, 11, 'us'], [03, 12, 'us'], [03, 13, 'us'], [03, 14, 'us'], [03, 15, 'us'], [03, 16, 'us'], [03, 17, 'us'], [03, 18, 'us'], [03, 19, 'us'], [03, 20, 'us'], [03, 22, 'us'], [03, 23, 'us'], [03, 24, 'us'], [03, 25, 'us'], [03, 26, 'us'], [03, 27, 'us'], [03, 29, 'us'], [03, 30, 'us'], [03, 31, 'us'], 
																																	 
																																	 [04, 01, 'us'], [04, 02, 'us'], [04, 03, 'us'], [04, 04, 'us'], [04, 05, 'us'], [04, 06, 'us'], [04, 07, 'us'], [04, 08, 'us'], [04, 09, 'us'], [04, 10, 'us'], [04, 11, 'us'], [04, 12, 'us'], [04, 13, 'us'], [04, 14, 'us'], [04, 15, 'us'], [04, 16, 'us'], [04, 17, 'us'], [04, 19, 'us'], [04, 20, 'us'], [04, 21, 'us'], [04, 22, 'us'], [04, 23, 'us'], [04, 24, 'us'], [04, 26, 'us'], [04, 27, 'us'], [04, 28, 'us'], [04, 29, 'us'], [04, 30, 'us'], 
																																	 
																																	 [05, 01, 'us'], [05, 02, 'us'], [05, 03, 'us'], [05, 04, 'us'], [05, 05, 'us'], [05, 06, 'us'], [05, 07, 'us'], [05, 08, 'us'], [05, 09, 'us'], [05, 10, 'us'], [05, 11, 'us'], [05, 12, 'us'], [05, 13, 'us'], [05, 14, 'us'], [05, 15, 'us'], [05, 16, 'us'], [05, 17, 'us'], [05, 18, 'us'], [05, 19, 'us'], [05, 20, 'us'], [05, 21, 'us'], [05, 22, 'us'], [05, 23, 'us'], [05, 24, 'us'], [05, 25, 'us'], [05, 26, 'us'], [05, 27, 'us'], [05, 28, 'us'], [05, 29, 'us'], [05, 30, 'us'], [05, 31, 'us'], 
																																	 
																																	 [06, 01, 'us'], [06, 02, 'us'], [06, 03, 'us'], [06, 04, 'us'], [06, 05, 'us'], [06, 06, 'us'], [06, 07, 'us'], [06, 08, 'us'], [06, 09, 'us'], [06, 10, 'us'], [06, 11, 'us'], [06, 12, 'us'], [06, 13, 'us'], [06, 14, 'us'], [06, 15, 'us'], [06, 16, 'us'], [06, 17, 'us'], [06, 18, 'us'], [06, 19, 'us'], [06, 20, 'us'], [06, 21, 'us'], [06, 22, 'us'], [06, 23, 'us'], [06, 24, 'us'], [06, 25, 'us'], [06, 26, 'us'], [06, 27, 'us'], [06, 28, 'us'], [06, 29, 'us'], [06, 30, 'us'], 
																																	 
																																	 
																																	 
																																	 [07, 01, 'us'], [07, 02, 'us'], [07, 03, 'us'], [07, 04, 'us'], [07, 05, 'us'], [07, 06, 'us'], [07, 07, 'us'], [07, 08, 'us'], [07, 09, 'us'], [07, 10, 'us'], [07, 11, 'us'], [07, 12, 'us'], [07, 13, 'us'], [07, 14, 'us'], [07, 15, 'us'], [07, 16, 'us'], [07, 17, 'us'], [07, 18, 'us'], [07, 19, 'us'], [07, 20, 'us'], [07, 21, 'us'], [07, 22, 'us'], [07, 23, 'us'], [07, 24, 'us'], [07, 25, 'us'], [07, 26, 'us'], [07, 27, 'us'], [07, 28, 'us'], [07, 29, 'us'], [07, 30, 'us'], [07, 31, 'us'], 
																																	[08, 01, 'us'], [08, 02, 'us'], [08, 03, 'us'], [08, 04, 'us'], [08, 05, 'us'], [08, 06, 'us'], [08, 07, 'us'], [08, 08, 'us'], [08, 09, 'us'], [08, 10, 'us'], [08, 11, 'us'], [08, 12, 'us'], [08, 13, 'us'], [08, 14, 'us'], [08, 15, 'us'], [08, 16, 'us'], [08, 17, 'us'], [08, 18, 'us'], [08, 19, 'us'], [08, 20, 'us'], [08, 21, 'us'], [08, 22, 'us'], [08, 23, 'us'], [08, 24, 'us'], [08, 25, 'us'], [08, 26, 'us'], [08, 27, 'us'], [08, 28, 'us'], [08, 29, 'us'], [08, 30, 'us'], [08, 31, 'us'], 
																																	[09, 01, 'us'], [09, 02, 'us'], [09, 03, 'us'], [09, 04, 'us'], [09, 05, 'us'],  [09, 06, 'us'], [09, 07, 'us'], [09, 08, 'us'], [09, 09, 'us'], [09, 10, 'us'], [09, 11, 'us'], [09, 13, 'us'], [09, 14, 'us'], [09, 15, 'us'], [09, 16, 'us'], [09, 17, 'us'], [09, 18, 'us'], [09, 20, 'us'], [09, 21, 'us'], [09, 22, 'us'], [09, 23, 'us'], [09, 24, 'us'], [09, 25, 'us'], [09, 26, 'us'], [09, 27, 'us'], [09, 28, 'us'], [09, 29, 'us'], [09, 30, 'us'],
																																	
																																	[10, 01, 'us'], [10, 02, 'us'], [10, 03, 'us'], [10, 04, 'us'], [10, 05, 'us'], [10, 06, 'us'], [10, 07, 'us'], [10, 08, 'us'], [10, 09, 'us'], [10, 11, 'us'], [10, 12, 'us'], [10, 13, 'us'], [10, 14, 'us'], [10, 15, 'us'], [10, 16, 'us'], [10, 17, 'us'], [10, 18, 'us'], [10, 19, 'us'], [10, 20, 'us'], [10, 21, 'us'], [10, 22, 'us'], [10, 23, 'us'], [10, 24, 'us'], [10, 25, 'us'], [10, 26, 'us'], [10, 27, 'us'], [10, 28, 'us'], [10, 29, 'us'], [10, 30, 'us'], [10, 31, 'us'], 
																																	 [11, 01, 'us'], [11, 02, 'us'], [11, 03, 'us'], [11, 04, 'us'], [11, 05, 'us'], [11, 06, 'us'], [11, 08, 'us'], [11, 09, 'us'], [11, 10, 'us'], [11, 11, 'us'], [11, 12, 'us'], [11, 13, 'us'], [11, 14, 'us'], [11, 15, 'us'], [11, 16, 'us'], [11, 17, 'us'], [11, 18, 'us'], [11, 19, 'us'], [11, 20, 'us'], [11, 22, 'us'], [11, 23, 'us'], [11, 24, 'us'], [11, 25, 'us'], [11, 26, 'us'], [11, 27, 'us'], [11, 28, 'us'], [11, 29, 'us'], [11, 30, 'us']];

function admissionWeekend(date) {

	for (i = 0; i < admitWeekend.length; i++) {

		if (date.getMonth() == admitWeekend[i][0] - 1 && date.getDate() == admitWeekend[i][1]) {

			return [false, admitWeekend[i][2] + '_day'];

		}

	}

	return [true, ''];

}




function customRange(input) {

	return {minDate: (input.id == 'dTo' ? getDate($('#dFrom').val()) : null),

		maxDate: (input.id == 'dFrom' ? getDate($('#dTo').val()) : null)};

}



function getDate(value) {

	fields = value.split('/');

	return (fields.length < 3 ? null :

		new Date(parseInt(fields[2], 10), parseInt(fields[1], 10) - 1, parseInt(fields[0], 10)));

}



function alertDate(date) {

	alert('The date is ' + date);

}



var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];

function showDay(input) {

	var date = getDate(input.value);

	$('#inlineDay').empty().html(date ? days[date.getDay()] : 'blank');

}



function updateInlineRange() {

	var dateFrom = popUpCal.getDateFor(inlineFrom[0]);

	var dateTo = popUpCal.getDateFor(inlineTo[0]);

	inlineRange.val(formatDate(dateFrom) + ' to ' + formatDate(dateTo));

	popUpCal.reconfigureFor(inlineFrom[0], {maxDate: dateTo});

	popUpCal.reconfigureFor(inlineTo[0], {minDate: dateFrom});

}



function formatDate(date) {

	var day = date.getDate();

	var month = date.getMonth() + 1;

	return (day < 10 ? '0' : '') + day + '/' +

		(month < 10 ? '0' : '') + month + '/' + date.getFullYear();

}



// Custom Tabs written by Marc Grabanski

var tabs = 

{

	init : function () 

	{

		// Setup tabs

		var nextHTML = '<div class="nextFeature"><a href="#">Continue to next section &gt;&gt;</a></div>';

		//var backHTML

		$("div[@class^=tab_group]").hide().append(nextHTML);

		var tabCount = $("ul[@id^=tab_menu] a").size();

		

		// Get all of the IDs from the hrefs

		tabs.IDs = [];

		for (var i=0;i<tabCount;i++) {

			tabs.IDs[i] = $("ul[@id^=tab_menu] a:eq(" + i + ")").attr("href").replace("#","");

		}

		

		// Set starting content

		var url = window.location.href;

		var loc = url.indexOf("#");

		var tabID = url.substr(loc+1);

		if (loc > -1) {

			$("#" + tabID).show();

			for (var i=0; i<tabs.IDs.length;i++) {

				if (tabs.IDs[i] == tabID) {

					$("ul[@id^=tab_menu] a:eq(" + i + ")").addClass('over');

				}

			}

		} else {

			$("div[@class^=tab_group]:first").show().id;

			$("ul[@id^=tab_menu] a:eq(0)").addClass('over');

		}



		// Slide visible up and clicked one down

		$("ul[@id^=tab_menu] a").each(function(i){

			$(this).click(function () {

				$('.over').removeClass('over');

				$(this).addClass('over');

				$("div[@class^=tab_group]:visible").slideUp("fast", function() { 

					$("#" + tabs.IDs[i]).slideDown();

				});

				tabs.stylesheet = (tabs.IDs[i] == 'styles') ? 'alt' : 'default';

				$('link').each(function() {

					this.disabled = (this.title != '' && this.title != tabs.stylesheet);

				});

				return false;

			});

		});

		

		$("div[@class^=tab_group] .nextFeature a").each(function(i){

			$(this).click(function() { 

				$("div[@class^=tab_group]:visible").slideUp("fast", function() { 

					if (tabs.IDs.length > (i+1) ) {

						$("#" + tabs.IDs[i+1]).slideDown();

						$('.over').removeClass('over');

						$("ul[@id^=tab_menu] a:eq(" + (i+1) + ")").addClass('over');

					} else {

						$("#" + tabs.IDs[0]).slideDown();

						$('.over').removeClass('over');

						$("ul[@id^=tab_menu] a:eq(0)").addClass('over');

					}

				});

				return false;

			});

		});

	}

}

