(function($){
	$(document).ready(function(){
		var additional_fees = parseFloat($('#additional_fees').val());
		additional_fees = ( ! additional_fees )? 0 : additional_fees;
		$('#navigation > ul > li:last').addClass('last');
		$('.show-more-debug').click(function(){
			var dbg = $(this).attr('rel');
			$(this).parents('.sl-message').find('.' + dbg).slideToggle();
			return false;
		});

		$('.print').click(function(){
			window.print();
		})

		// Reserve a space form actions

		$('.datepicker').datepicker();

		$('#reserve_space .select-unit').click(function(){
			var unit_id = $(this).parents('tr').attr('id');
			unit_id = ( typeof(unit_id) != 'undefined' && unit_id != '' )? parseInt(unit_id.replace(/unit_/, '')) : false;
			if ( unit_id != false && $(this).parents('tr').find('.unit-info').length != 0 ) {
				$('#unit_id').val(unit_id);
				$(this).parents('.units-list').hide();
				var cloned = $(this).parents('tr').find('.unit-info').clone();
				cloned.find('input').each(function(){
					$(this).removeAttr('disabled');
				});
				cloned.insertBefore('#reserve_space .row-buttons').show();
			};
			return false;
		});

		$('#reserve_space .change-unit').live('click', function(){
			$('.units-list').show();
			$(this).parents('.unit-info').remove();
			return false;
		});
		// $('#reserve_space .button-continue').click(function(){
		// 	if ( validate_reservation_form() ) {
		// 		// $("#reserve_space > .row:not(.row-buttons), .units-list, .unit-info").hide();
		// 		// $('.reservation-summary .summary').empty();
		// 		// $("#reserve_space > .unit-info .info-row").each(function(){
		// 		// 	var cloned = $(this).clone();
		// 		// 	$(cloned).find('input').removeAttr('disabled');
		// 		// 	$(cloned).appendTo($('.reservation-summary .summary'));
		// 		// });
		// 		// $(this).hide();
		// 		// $('#reserve_space .reservation-summary .date-row .value').text($('#tn_date_needed').val());
		// 		// $('#reserve_space .reservation-summary .addr-row .value').html($('#tn_address1').val() + '<br />' + $('#tn_address2').val());
		// 		// $('#reserve_space .reservation-summary .phone-row .value').text($('#tn_phone').val());
		// 		// $('#reserve_space .reservation-summary .email-row .value').text($('#tn_email').val());
		// 		// $('#reserve_space .reservation-summary .notes-row .value').html($('#tn_questions').val().replace(/\n/g, '<br />'));

		// 		// $('#reserve_space .reservation-summary, #reserve_space .button-reserve, #reserve_space .button-edit').show();
		// 	};
		// 	// return false;
		// })
		$("#reserve_space").submit(function () {
			var result = validate_reservation_form();
			if ( result ) {
				$('.row-buttons .loading').addClass('visible');
			};
			return result;
		});

		$('#make_a_payment .button-continue').click(function(){
			if ( validate_payment_form() ) {
				$('.row-buttons .loading').addClass('visible');
				$('#payment_confirm').val('1');
				$('#make_a_payment').find('input[type="text"],input[type="radio"],input[type="checkbox"],select').each(function(){
					$(this).attr('disabled', 'disabled');
				});
				$(this).hide();
				$('#make_a_payment .button-pay').show();
				$('.row-buttons .loading').removeClass('visible');
			};
			return false;
		});
		$('#make_a_payment .button-cancel').click(function(){
			// refresh the page
			window.location = window.location;
		});
		$("#make_a_payment").submit(function () {
			if ( validate_payment_form() ) {
				$('.row-buttons .loading').addClass('visible');
				if ( $('#payment_confirm').val() != '' ) {
					$('#make_a_payment .payment-type').not(':visible').remove();
					$('#make_a_payment').find('input[type="text"],input[type="radio"],input[type="checkbox"],select').each(function(){
						$(this).removeAttr('disabled').attr('readonly', 'readonly');
					});
					return true;
				} else {
					$('#make_a_payment .button-continue').click();
				};
			};
			return false;
		});
		$('input[name="pm_type"]').change(function(){
			$('.payment-type').hide();
			$('.type-' + $(this).val()).show();
		})

		$('input[name="pm_dur"]').change(function(){
			if ( $(this).val() != 'one' ) {
				var fee = parseFloat($(this).attr('title'));
				fee = fee * ( parseInt($('#pm_months').val()) + 1 );
				fee += additional_fees;
				fee = fee.toFixed(2);
				fee = ( ! fee || typeof(fee) == 'NaN' || fee == 'NaN' )? 0 : fee;

				$('#pm_amount').val(fee);
			};
		});
		
		$('#pm_months').change(function(){
			if ( $('input[name="pm_dur"]:checked').val() == 'multiple' ) {
				var fee = parseFloat($('input[name="pm_dur"]:checked').attr('title'));
				fee = fee * ( parseInt($(this).val()) + 1 );
				fee += additional_fees;
				fee = fee.toFixed(2);
				fee = ( ! fee || typeof(fee) == 'NaN' || fee == 'NaN' )? 0 : fee;
				$('#pm_amount').val(fee);
			};
		})

		// $('#reserve_space .button-edit').click(function(){
		// 	$("#reserve_space > .row:not(.row-buttons), #reserve_space .button-continue").show();
		// 	if ( $(this).hasClass('form-reset') ) {
		// 		$('#reserve_space').resetForm($('#unit_id'));
		// 		$("#reserve_space > .row:not(.row-buttons), .units-list, #reserve_space .button-continue").show();
		// 		$('#reserve_space .units-list').show();
		// 		$("#reserve_space > .unit-info").remove();
		// 	} else {
		// 		$("#reserve_space > .unit-info").show();
		// 		$('#reserve_space .button-edit').hide();
		// 	};
		// 	$('.reservation-summary, .button-reserve').hide();
		// });
		// if ( $('#unit_id').val() != '' ) {
		// 	var id = $('#unit_id').val();
		// 	$('.units-list').find('tr#unit_' + id + ' a.select-unit').click();
		// };

		// End Reserve a space form actions
	});
	$(window).load(function(){
		if ( $('.sl-message.fadeout:not(.nofade)').length != 0 ) {
			setTimeout(function(){
				$('.sl-message.fadeout:not(.nofade)').fadeOut(1000, function(){
					$(this).remove();
				})
			}, 5000);
		};
	})
	function validate_reservation_form () {
		$('#reserve_space').find('input, select, textarea').removeClass("non-valid");
		var field = {};
		var reg = /^([A-Za-z0-9_\-\.\+])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		field = $("#reserve_space *[name='sFName']");
		if ($(field).val() == '' ) {
			alert("Please enter First Name.");
			$(field).addClass("non-valid");
			$(field).focus();
			return false;
		}
		field = $("#reserve_space *[name='sLName']");
		if ($(field).val() == '' ) {
			alert("Please enter Last Name.");
			$(field).addClass("non-valid");
			$(field).focus();
			return false;
		}
		field = $("#reserve_space *[name='sEmail']");
		if (!reg.test($(field).val())) {
			alert("Please enter a valid Email address.");
			$(field).addClass("non-valid");
			$(field).focus();
			return false;
		}
		field = $("#reserve_space *[name='sPhone']");
		if ($(field).val() == '' && $(field).parent().find('.required').length != 0) {
			alert("Please enter your Phone Number.");
			$(field).addClass("non-valid");
			$(field).focus();
			return false;
		}
		field = $("#reserve_space *[name='dNeeded']");
			if ($(field).val() == '' ) {
			alert("Please select the Date when you need the space.");
			$(field).addClass("non-valid");
			$(field).focus();
			return false;
		}
		field = $("#reserve_space *[name='sUnitID1']");
		if ($(field).val() == '' ) {
			alert("Please select a Unit.");
			$(field).addClass("non-valid");
			$(field).focus();
			return false;
		}
		return true;
	}

	function validate_payment_form() {
		var result = true;
		$('#make_a_payment .payment-type:visible').find('input[type="text"],select').each(function(){
			if ( $(this).val() == '' ) {
				var label = $('label[for="' + $(this).attr('id') + '"]');
				label = label.text().replace(':', '');
				alert('Please fill in: ' + label);
				$(this).focus();
				result = false;
				return false;
			};
		});
		return result;
	}

	jQuery.fn.resetForm = function(add_fields) {
		var fields = $(this).find('input[type="text"], textarea');
		$(fields).each(function(){
			$(this).val('');
		})
		if ( typeof(add_fields) != 'undefined' && $(add_fields).length != 0 ) {
			$(add_fields).each(function(){
				$(this).val('');
			})
		};
	}
})(jQuery)
