function dump(arr,level) {
	var dumped_text = "";
	if(!level) level = 0;
	
	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += "    ";
	
	if(typeof(arr) == 'object') { //Array/Hashes/Objects 
		for(var item in arr) {
			var value = arr[item];
			
			if(typeof(value) == 'object') { //If it is an array,
				dumped_text += level_padding + "'" + item + "' ...\n";
				dumped_text += dump(value,level+1);
			} else {
				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
			}
		}
	} else { //Stings/Chars/Numbers etc.
		dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
	}
	return dumped_text;
}

$(function() {
		var blackoutDate = new Array(
									new Date(2010,11,22), 
									new Date(2010,11,23), 
									new Date(2010,11,24), 
									new Date(2010,11,25), 
									new Date(2010,11,26), 
									new Date(2010,11,27), 
									new Date(2010,11,28)
								   );
		var dates = $('#from, #to').datepicker({
			changeMonth: true,
			numberOfMonths: 1,
			onSelect: function(selectedDate, inst) {
				var option = this.id == "from" ? "minDate" : "maxDate";
				var instance = $(this).data("datepicker");
				var date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
				dates.not(this).datepicker("option", option, date);
				var minDate = $(this).datepicker("option","minDate");
				var maxDate = $(this).datepicker("option","maxDate");
				var currDate = $(this).datepicker("getDate");
				if(minDate != "" && minDate != null &&
					minDate.getTime() < blackoutDate[0].getTime() && 
					currDate.getTime() > blackoutDate[6].getTime()) 
					{
						alert("Due to the high volume of holiday travel, we are not accepting reservations from December 22nd-28th");
				   		window.location.reload();
				} else if(maxDate != "" && maxDate != null &&
					currDate.getTime() < blackoutDate[0].getTime() && 
					maxDate.getTime() > blackoutDate[6].getTime()) 
					{
						//alert("2 - "+minDate+" : "+maxDate);
						alert("Due to the high volume of holiday travel, we are not accepting reservations from December 22nd-28th");
				   		window.location.reload();
				}
				
			},
			beforeShowDay: function(date){
				for(var d in blackoutDate){
					if(blackoutDate[d].getTime() == date.getTime()){
						return [false, 'ui-state-error'];
					}
				}
				return[true,''];
			}
		});
		
	});
	
	
	
	function validateReservation()
	{
		
		var to = $('input#to').val();
		var from = $('input#from').val();
		
		var valid=true;	
			
		var date_pattern = new RegExp("^[01]?[0-9]\/[0-3]?[0-9]\/20[1-9][0-9]$");
		
		if(!date_pattern.test(to)|| !date_pattern.test(from)) {
			alert("You must enter a valid date! (mm/dd/yyyy)");
			valid = false;
		}
				
		return valid;
	}
	function validateResForm()
	{
		var error = false;
		$('input[type=text]').each( function() {
			var name = $(this).attr("name");
			var name_pattern = new RegExp("^[a-zA-Z]{1,21}$");
			var phone_pattern = new RegExp("^([0-9]{3})?[0-9]{7}$");
			var email_pattern = new RegExp("^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
			var field_error=false;
						
			switch(name)
			{
				case "first":
				case "last":
					if(!name_pattern.test($(this).val())) {
						field_error = true;
						error=true;
					}
					break;
				case "phone":
					var phoneNum = $(this).val();
					phoneNum = phoneNum.split(' ').join('');
					while(phoneNum.indexOf("-")>=0||phoneNum.indexOf(".")>=0||phoneNum.indexOf("(")>=0||phoneNum.indexOf(")")>=0)
					{
						phoneNum = phoneNum.replace("-","");
						phoneNum = phoneNum.replace(".","");
						phoneNum = phoneNum.replace("(","");
						phoneNum = phoneNum.replace(")","");
					}
					if(!phone_pattern.test(phoneNum)) {
						field_error = true;
						 error=true;
					}
					break;
				case "email":
					if(!email_pattern.test($(this).val())) {
						field_error = true;
						 error=true;
					}
					break;
			}
			if(field_error) {
				$(this).css("background-color","#e35d3d");
				$(this).css("border","1px solid #5f2323");
			} else {
				$(this).css("background-color","#FFF");
				$(this).css("border","1px solid #b2b2b2");
				
			}
		});
		if(error) {
			$("#error_msg").html("<b class='ui-state-error error'>**Please Correct the highlighted fields**</b>");
		} else {
			$("#error_msg").html("");
		}
		return !error;
	}
