var packageidno = "10948";
var packageidyes = "10750";


$('#customer_info').hide();
$('#load_indicator').hide();
$("#legend").hide();
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 getUrlParam(param) {
	param = param.replace(/([\[\](){}*?+^$.\\|])/g, "\\$1");
	var regex = new RegExp("[?&]" + param + "=([^&#]*)");
	var url   = decodeURIComponent(window.location.href);
	var match = regex.exec(url);
	return match ? match[1] : "";
}
param = 2;
param2 = 0;
bodates = new Array();
pkgInfo = '';
returndata = '';
function getBlackoutData(packageNum, nights, arrivalDate) {
	if(!isRunning) {
		isRunning = 1;
		bodates.length = 0;
		$.get("/reservations/getBlackOutData.php", {
			pkg: packageNum,
			additional_nights: nights,
			arrivalDate: arrivalDate
			}, function(data) {
			$.each(data.info, function(n,object) {
				$.each(object, function(key,val) {
					pkgInfo += key + '=' + val + '&';
					$('#' + key).text(val);
				});
			});
			$.each(data.dates, function(key, value) {
				bodates[key] = value;
				//var tempDate = Date(value).toString("mm/dd/yy");
				//var selectedDate = Date($("#Checkin").val()).toString("mm/dd/yy");
				var pickedDate= $("#Checkin").val();
				var pickedDateSplit = pickedDate.split("/");
				pickedDate = pickedDateSplit[2] + pickedDateSplit[0] + pickedDateSplit[1];
				if(value == pickedDate && $("#Checkin").val() != ""){
					alert("The date you have chosen is not available with your current package");
					$("#Checkin").val('');
				}
			});
			if(bodates.length >= 120) {
				$('#customer_info').html("<div class=\"packageError\">We're sorry, it appears that this package is not currently available. Please try another package or call 1-888-923-3378 for further avaliablity.</div>");
			}
			$('#customer_info').show();
			$('#retail').html(data.retailNightPrice);
			custPrice = $('#price').html();
			$('#discount').html(data.retailNightPrice - custPrice);
			returndata = data;
		}, "json");
		isRunning = 0;
	}
}

//make sure packageid is set before calling this function!
function toIqware (packageid,indate,outdate) {
	var resurl = "http://search.iqrez.com/reservations/FestivaResortsBlueridgeVillage/search/";
	//  FestivaResortsBlueridgeVillage   BlueRidgeTours
	resurl += packageid + "/";
	resurl += "?Checkin=" + indate;
	resurl += "&Checkout=" + outdate;
	resurl += "&Rooms=1";
	resurl += "&Adults=" + $("#Adults").val();
	resurl += "&Children=" + $("#Children").val();
	resurl += "&lockDates=1";
	window.location = resurl;
}
$(document).ready( function() {
	$("#legend").hide();
	$("#ui-datepicker-div").live('mouseover', function(){
		$("#legend").position({
				of: $("#ui-datepicker-div"),
				my: "center top",
				at: "center bottom"
		});
		$("#legend").css({
			"z-index": "1000",
			"width": "326px",
			"height": "30px",
			"text-align": "center",
			"line-height": "15px",
			"margin-top": "0px",
			"padding-top": "0px",
			"padding-left": "10px",
			"padding-right": "10px",
			"vertical-align": "baseline",
			"margin-bottom": "0px",
			"padding-bottom": "0px",
			"display": "inline-block",
			"background-color": "#FFFFFF",
			"-moz-border-radius": "5px",
			"border-radius": "5px",
			"border": "1px solid #aaa"
		})
		$("#legend").slideDown();
	});
	$("#ui-datepicker-div").live('mouseleave', function(){
		$("#legend").slideUp();
	});
	$('#inform').keydown(function(event) {
		if (event.keyCode == '13') {
			event.preventDefault();
		}
	});
	
	// capture the click of the reservation form, and prepare to submit to iqware
	$('#submitBtn').click(function(event) {
		event.preventDefault();
		if ( $('#Checkin').val() == '' ) {
			alert ('You must pick an arrival date.');
			return false;
		}
		
		//prep all the date crap
		var numnights = returndata.info[0].nights;
		var indate = $("#Checkin").val();
		indatedate = new Date(indate);
		indate = ( indatedate.getMonth()+1 )  + "/" + indatedate.getDate() + "/" + indatedate.getFullYear();
		var outdatedate = new Date(indate);
		outdatedate = outdatedate.setDate(outdatedate.getDate()+numnights);
		outdatedate = new Date(outdatedate);
		var outdate = (outdatedate.getMonth()+1) + "/" + outdatedate.getDate() + "/" + outdatedate.getFullYear();

		//pop up the tour choice dialog.
		$('.grey').css({
			'display':'block',
			'background-image':'url(/reservations/js/10x10_50opac.png)',
			'height':'100%',
			'width':'100%',
			'position':'absolute',
			'top':'0',
			'left':'0',
			'z-index':'4999'
		}); 
		$('#agreement').css({
			'display':'block',
			'z-index':'6000'
		});
		
		// handle the tour no/yes choice
		$('#agreebutton').click(function(event) {
			var packageid = packageidno;
			var termstate = "no";
			var agreestate = $('input:radio[name=agreed]:checked').val();
			if (  $('input:checkbox[name=termsConditions]').is(':checked') ) {
				termstate = 'yes';
			}
			if ( agreestate == 'yes' && termstate == 'no') {
				alert("If you would like to attend the presentation and receive the gift card, you must agree to the Terms and Conditions.");
				return false;
			} 
			if ( agreestate == 'yes' && termstate == 'yes' ) {
				packageid = packageidyes  //if they pick yes, we alter the package id
			}
			toIqware(packageid,indate,outdate);
		});

		$('input:radio[name=agreed]').change(function(event){
			var agreestate = $('input:radio[name=agreed]:checked').val();
			if ( agreestate == 'no' ) {
				$('#termsSpan').hide();
			}
			if ( agreestate == 'yes' ) {
				$('#termsSpan').show();
			}
		});
		
		//handle the skip this offer choice.
		$('#skipoffer').click(function(event) {
			event.preventDefault();
			var packageid = packageidno;
			toIqware(packageid,indate,outdate);
		});
		
		//handle cancelling the offer box
		$('#canceloffer').click(function(event) {
			event.preventDefault();
			$('#agreement').css('display','none');
			$('.grey').css('display','none');
			return false;
		});
	});
	$('#load_indicator').ajaxStart(function(){
		$(this).css('display','block');
	});
	$('#load_indicator').ajaxStop(function(){
		$(this).css('display','none');
	});
	isRunning = 0;
	getBlackoutData(param, 2, "start");
	$("#package").bind('change', function() {
		var pack = 2;
		var nights = $("select#additional_nights>option:selected").val();
		var pickedDate= $("#Checkin").val();
		if(pickedDate != ""){
			var pickedDateSplit = pickedDate.split("/");
			pickedDate = pickedDateSplit[2] + pickedDateSplit[0] + pickedDateSplit[1];
		}
		else{
			pickedDate = "start";
		}
		getBlackoutData(pack, nights, pickedDate);
	});
	$("#additional_nights").bind('change', function() {
		var pack = 2;
		var nights = $("select#additional_nights>option:selected").val();
		var pickedDate= $("#Checkin").val();
		if(pickedDate != ""){
			var pickedDateSplit = pickedDate.split("/");
			pickedDate = pickedDateSplit[2] + pickedDateSplit[0] + pickedDateSplit[1];
		}
		else{
			pickedDate = "start";
		}
		getBlackoutData(pack, nights, pickedDate);
	});
	// Fire up the date picker.
	$("#Checkin").datepicker({
		showOn: "button",
		buttonImage: "/reservations/js/calendar.gif",
		buttonImageOnly: true,
		minDate: +6,
		maxDate: +120,
		defaultDate: +6,
		numberOfMonths: [2,2],
		showOn: 'both',
		beforeShowDay: function(date) {
			var tf = 1;
			var dat = $.datepicker.formatDate("yymmdd", date);
			$(bodates).each( function(index,bodate) {
				if ( bodate == dat ) {
					tf = 0;
				}
			});
			if ( tf == 0 ) {
				return [false, "bodate"];
			} else {
				return [true, ""];
			}
			
		}
	});
	$("#Checkin").bind('change', function() {
		if($(this).val() != ""){
			var pack = 2;
			var nights = $("select#additional_nights>option:selected").val();
			var pickedDate= $("#Checkin").val();
			if(pickedDate != ""){
				var pickedDateSplit = pickedDate.split("/");
				pickedDate = pickedDateSplit[2] + pickedDateSplit[0] + pickedDateSplit[1];
			}
			else{
				pickedDate = "start";
			}
			getBlackoutData(pack, nights, pickedDate);
		}
	});
	
});

