var formCollection = new Object();
var errorBeginComment = "<!-- Errors BEGIN -->";
var errorEndComment = "<!-- Errors END -->";


var arrivalDateArgs = {
		mandatory : true,
		changeFirstDay : false,
		constrainInput : true,
		onSelect : updateDepartureDate,
		showOn : "both",
		buttonImage : "/resources/eda49c056d/images/vrfresh/calendar-icon-small.gif",
		buttonImageOnly : true,
		yearRange : '-0:+10',
		minDate : '+0',
		maxDate : '+10y',
		prevText : ' ',
		nextText : ' '
	};	

var departureDateArgs = {
		mandatory : true,
		changeFirstDay : false,
		constrainInput : true,
		onSelect : function() {
		},
		showOn : "both",
		buttonImage : "/resources/eda49c056d/images/vrfresh/calendar-icon-small.gif",
		buttonImageOnly : true,
		yearRange : '-0:+10',
		minDate : '+1',
		maxDate : '+10y',
		prevText : ' ',
		nextText : ' '
	};

function disableSubmit() {
	var submitButton = $('#inqFormSubmit');
	submitButton.unbind('click').click(function() {return false;}).addClass('primary-button-disabled');
	submitButton.attr('title', 'Your inquiry has been submitted.');
	vrtip.readd(submitButton);

}

function disableSubmitModal() {
	var submitButton = $('#inqModalFormSubmit');
	submitButton.unbind('click').click(function() {return false;}).addClass('primary-button-disabled');
	submitButton.attr('title', 'Your inquiry has been submitted.');
	vrtip.readd(submitButton);

}

function formProc() {
	var inqForm = $('#inquiryCommand');
	inqForm.get(0).submit();
	disableSubmit();
	return false;
}
/*
 * Open Reviews ModalInquiry
 */
function getModalInquiryForm() {
	$.ajax({
		type: 'GET',
		data: $(this).serialize(),
		cache: false,
		url: $(this).attr('data-url'),
		success: handleModalInquiryForm,
		dataType: 'html'
	});
	return false;
}

/*
 * Handle the retrieve data from the AJAX post
 */
function handleModalInquiryForm(data) {
	$.facebox.loading();
	var popup = $('<div></div>');
	popup.html(data);
	$.facebox.reveal(popup, '');
	$('#inqModalFormSubmit').click(submitModalInquiryForm);
	$('#firstNameModal').focus();
	$('#arrivalStringModal').datepicker(arrivalDateArgs);
	$('#departureStringModal').datepicker(departureDateArgs);
	
	// Update the arrival and departure dates in case the user 
	// had selected a date from the availability calendar
	var arrivalString = $('#arrivalString').val();
	var departureString = $('#departureString').val();
	if (arrivalString && $.trim(arrivalString) !== '') {
		$('#arrivalStringModal').val(arrivalString);
	}
	if (departureString && $.trim(departureString) !== '') {
		$('#departureStringModal').val(departureString);
	}
	
	vrtip.retip();
	
	return false;
}

/*
 * AJAX form post function 
 */
function submitModalInquiryForm(){
	// Disable the submit so users can't repost
	var modalInqForm = $('#inquiryModalCommand');
	var submitUrl = $('#inqModalFormSubmit').attr('data-url');
	disableSubmitModal();
    
	$.ajax({
		type: 'POST',
		data: modalInqForm.serialize(),
		cache: false,
		url: submitUrl,
		success: handleModalInquiryData,
		dataType: 'html'
	});
	return false;
}

/*
 * Handle the retrieve data from the AJAX post
 */
function handleModalInquiryData(data) {
	if (data.indexOf('errorbox') > -1) {
		// error, so re-enable submit button
		var inqForm = $('#pop-inqarea');
		var inqFormHtml = inqForm.html();
		var inqModalParent = $('#pop-inqarea').parent();
		inqModalParent.html(data);
		$('#inqModalFormSubmit').click(submitModalInquiryForm);
		$('#arrivalStringModal', inqModalParent).datepicker(arrivalDateArgs);
		$('#departureStringModal', inqModalParent).datepicker(departureDateArgs);
		vrtip.retip();
	} else {
		// Submit was sucessful so redirect to the inquiry confirmation page
		window.location.href=data;
	}
	return false;
}

function updateDepartureDate(arrivalDate, datePickerControl) {
	var controlSuffix = (datePickerControl && datePickerControl.id.indexOf("Modal") >= 0) ? "Modal" : "";
	var date = $.datepicker.parseDate('mm/dd/yy', arrivalDate);
	date.setDate(date.getDate() + 1);
	var formated_date = $.datepicker.formatDate('mm/dd/yy', date);
	document.getElementById('departureString' + controlSuffix).value = formated_date;
	$('#departureString' + controlSuffix).datepicker('option', {
		minDate : $.datepicker.parseDate('mm/dd/yy', formated_date)
	});
}

$(document).ready(function() {
	$('#inqFormSubmit').click(formProc);
	$('#emailOwner1').click(getModalInquiryForm);
	$('#emailOwner2').click(getModalInquiryForm);
	$('#emailOwner3').click(getModalInquiryForm);

	$('#arrivalString').datepicker(arrivalDateArgs);
	$('#departureString').datepicker(departureDateArgs);

	$('.calendarField').each(function() {
		$(this).attr('autocomplete', 'off');
	});
});

