/**
 *	Parking Widget Defaults
 */
    
var parkingWidgetDateFormat = 'dd/mm/yy';


// Updated the hidden field used to identify if JavaScript is enabled.
function carParkingHiddenField() {
    $("input[id$=_hdnJavaScriptEnabled]").val('Y');
}

//	Initialise date pickers and bind exit date constraints
function carParkingDatePickers() {
	
    var minDateEval = 0;
    
    var dateNow = new Date();
    var hourNow = dateNow.getHours();
    
    if (hourNow >= 22) {
        minDateEval = +1;
    }
    
	var datepickerDefaults = {
		dateFormat: parkingWidgetDateFormat,
		firstDay: 1, /* Monday */
		minDate: minDateEval,
		maxDate: +546, /* rolling 18 months */
		//	The following locks the "exit" date to 1 day ahead of the "entry" date automatically
		onSelect: function(dateText) {
			
			var exitIndex = $(this).attr('id').indexOf('_carParkExitDate');
				
			if ( exitIndex == -1 ) {
				var entryDate = new Date( $.datepicker.parseDate(parkingWidgetDateFormat, dateText) );
				var exitDate = new Date( entryDate );
					exitDate.setDate( entryDate.getDate() );//same day exit at a minimum
				$("input[id$=_carParkExitDate]").datepicker( 'option', 'minDate', exitDate );
			}
			
		}
		
	}
	
	$(function() {
		$("input[id$=_carParkEntryDate]").datepicker( datepickerDefaults );
		$("input[id$=_carParkExitDate]").datepicker( datepickerDefaults );
	});
	
}


/**
 *	Parking Times
 *	Rudimentary function to check the exit time is at least one hour
 *	after the entry time.
 *	Last modified: 2010-06-14 {pf}
 */
function carParkingTimes() {
	
	var valid;
	
	$('#parkingWidget input[type=submit]').click( function() {
		
		var entryDate = new Date( $.datepicker.parseDate(parkingWidgetDateFormat, $("input[id$=_carParkEntryDate]").val() ) );
		var entryTime = $("select[id$=_carParkEntryTime]").val();
			entryDate.setHours(entryTime.split(':')[0]);
			entryDate.setMinutes(entryTime.split(':')[1]);
		var entryStamp = entryDate.getTime();
		
		var exitDate = new Date( $.datepicker.parseDate(parkingWidgetDateFormat, $("input[id$=_carParkExitDate]").val() ) );
		var exitTime = $("select[id$=_carParkExitTime]").val();
			exitDate.setHours(exitTime.split(':')[0]);
			exitDate.setMinutes(exitTime.split(':')[1]);
		var exitStamp = exitDate.getTime();
		
		if ( exitStamp > entryStamp ) {
			//	Exit later than entry, so pass to NCP
			valid = true;
		}
		else if ( exitStamp <= entryStamp ) {
			//	Exit is not greater than entry
			if ( !$("select[id$=_carParkEntryTime]").parent().hasClass('error') ) {
                $("select[id$=_carParkEntryTime]").wrap('<div class="error"></div>');
            }
			if ( !$("select[id$=_carParkExitTime]").parent().hasClass('error') ) {
                $("select[id$=_carParkExitTime]").wrap('<div class="error"></div>');
            }
			valid = false;
		}
		
		return valid;
		
	});
	
}


$(document).ready(function() {
    if ($('#parkingWidget').length > 0) {
        carParkingHiddenField();
        carParkingDatePickers();
        carParkingTimes();
    }
});

