
// $sv_handler_js_functions

	
jQuery.fn.log = function (msg) {
	console.log("%s: %o", msg, this);
	return this;
};
	
 jQuery(document).ready( function(){
	// declare classes with rounded corners
	jQuery(".rounded").corners("10px");
	jQuery(".rounded_top").corners("10px top");
	jQuery(".rounded_bottom").corners("10px bottom");
	
	// setup for "details" div toggle
	// hide the all of the elements with class .package_fold & .f_details
	jQuery(".package_fold").hide();
	jQuery(".f_details").hide();
	// toggle the component with class .package_fold
	jQuery(".link").click(function(){
		var id = jQuery(this).attr("id"); 
		// jQuery("#pkg_" + id).slideToggle("slow"); // no callback
		jQuery("#f_detail_" + id).hide(); // hide flight details on click ... cleaner in IE
		jQuery("#pkg_" + id).slideToggle("slow", function () { // callback function to hide flight details
			jQuery("#f_detail_" + id).show();
		});
	});
	
	// close "details" div
	jQuery(".close").click(function(){
		//jQuery(this).parent().parent().parent(".package_fold").slideToggle("slow").log(parentTag);
		jQuery(this).parents(".package_fold").slideToggle("slow"); // used parents because ie/ff difference
		jQuery(this).prev(".f_details").hide();
	});			
	
	// set up search form tabs
	// .tabs({selected: 1}) // set index 1 as selected for flights pages
	// sv_handler change
	// jQuery("#sv_tabs").tabs().addClass("ui-tabs-vertical ui-helper-clearfix");
	jQuery("#sv_tabs li").removeClass("ui-corner-top").addClass("ui-corner-left");			
	

	jQuery("#sv_tabs").tabs({ cookie: { expires: 30 } });
	jQuery("#sv_tabs").tabs("option", "cookie", { expires: 30 });
	
});
 

// Form functions
function refreshCruiseShips(form) {
	cruise_line_id = jQuery(form.VendorID).val();
	
				
}

function refreshDest(form) {
	gateway_dep = jQuery(form.gateway_dep).val();
	// change duration
	jQuery(form.duration).html("");
	// change hotels
	jQuery(form.no_hotel).html('<option value="All Hotels">All Hotels</option>');
	
	// get GET variables:
	var url = "/gadgets/sv_handler/get_destinations_ajax.php";
	var params = "gateway_dep="+gateway_dep;
	jQuery.get(url+"?"+params, function(data){
		jQuery(form.dest_dep).html(data);
	});
}
function refreshHotel(form) {
	gateway_dep = jQuery(form.gateway_dep).val();
	dest_dep = jQuery(form.dest_dep).val();
	duration_sel = jQuery(form.duration).val();
	
	var durations_url = "/gadgets/sv_handler/get_durations_ajax.php";
	var hotels_url = "/gadgets/sv_handler/get_hotels_ajax.php";
	
	var params = "gateway_dep="+gateway_dep+"&dest_dep="+dest_dep+"&duration_sel="+duration_sel;

	jQuery.get(durations_url+"?"+params, function(data){
		jQuery(form.duration).html(data);
	});
	
	jQuery.get(hotels_url+"?"+params, function(data){
		jQuery(form.no_hotel).html(data);
	});
	
}

function submitNexresForm(form_id) {
	form = jQuery("#"+form_id).get(0);
	
	var departure_date = jQuery(form.date_leaving).val();
	var return_date = jQuery(form.date_return).val();
	
	var dep = new Date();
	var ret = new Date();
	
	dep.setTime(Date.parse(departure_date));
	ret.setTime(Date.parse(return_date));
	
	var dep_month = dep.getMonth() + 1;
	var dep_day = dep.getDate();
	var dep_year = dep.getFullYear();
	var ret_month = ret.getMonth() + 1;
	var ret_day = ret.getDate();
	var ret_year = ret.getFullYear();
	
	jQuery(form.dateLeavingDay).val(dep_day);
	jQuery(form.dateLeavingMonth).val(dep_month);
	jQuery(form.doa_dd).val(dep_day);
	jQuery(form.doa_mm).val(dep_month);
	jQuery(form.doa_yy).val(dep_year);
	
	jQuery(form.dateReturningDay).val(ret_day);
	jQuery(form.dateReturningMonth).val(ret_month);
	jQuery(form.dod_dd).val(ret_day);
	jQuery(form.dod_mm).val(ret_month);
	jQuery(form.dod_yy).val(ret_year);
	
	
	form.submit();

}

function submitPackageForm() {
	var pkg_form = jQuery("#pkg_frm").get(0);
	
	var gateway_dep = jQuery("#package_gateway_dep").val();
	var dest_dep = jQuery("#package_dest_dep").val();
	var date_dep = jQuery(pkg_form.date_dep).val();
	var no_hotel = jQuery("#package_no_hotel").val();
	var duration = jQuery(pkg_form.duration).val();
	var rating = jQuery(pkg_form.star).val();
	var price = jQuery(pkg_form.price_max).val();
	
	
	var all_inclusive = jQuery(pkg_form.all_inclusive).is(":checked");
	var adults_only = jQuery(pkg_form.adults_only).is(":checked");
	var beach = jQuery(pkg_form.beach).is(":checked");
	var casino = jQuery(pkg_form.casino).is(":checked");
	var family = jQuery(pkg_form.family).is(":checked");
	var golf = jQuery(pkg_form.golf).is(":checked");
	var kitchenette = jQuery(pkg_form.kitchenette).is(":checked");
	var miniclub = jQuery(pkg_form.miniclub).is(":checked");
	var oceanview = jQuery(pkg_form.oceanview).is(":checked");
	var spa = jQuery(pkg_form.spa).is(":checked");
	var weddings = jQuery(pkg_form.weddings).is(":checked");

	var save_url = "/gadgets/sv_handler/save_package_session_ajax.php";
	
	// Parameters
	var params = "gateway_dep="+gateway_dep;
	params += "&dest_dep="+dest_dep;
	params += "&date_dep="+date_dep;
	params += "&hotel="+no_hotel;
	params += "&duration="+duration;
	params += "&rating="+rating;
	params += "&price="+price;
	
	
	if (all_inclusive) {
		params += "&all_inclusive="+all_inclusive;
	}
	if (adults_only) {
		params += "&adults_only="+adults_only;
	}
	if (beach) {
		params += "&beach="+beach;
	}
	if (casino) {
		params += "&casino="+casino;
	}
	if (family) {
		params += "&family="+family;
	}
	if (golf) {
		params += "&golf="+golf;
	}
	if (kitchenette) {
		params += "&kitchenette="+kitchenette;
	}
	if (miniclub) {
		params += "&miniclub="+miniclub;
	}
	if (oceanview) {
		params += "&oceanview="+oceanview;
	}
	if (spa) {
		params += "&spa="+spa;
	}
	if (weddings) {
		params += "&weddings="+weddings;
	}
	
	//alert(params);
	jQuery.get(save_url+"?"+params, function(data){
		pkg_form.submit();
	});

}

function expand_pkg_options() {
	var selectedEffect = "slide";
			
	//most effect types need no options passed by default
	var options = {};
	
	//run the effect
	jQuery("#pkg_options").toggle(selectedEffect,options,500);
}
function expand_flight_options() {
	var selectedEffect = "slide";
			
	//most effect types need no options passed by default
	var options = {};
	
	//run the effect
	jQuery("#flight_options").toggle(selectedEffect,options,500);
}
function expand_flighthotel_options() {
	var selectedEffect = "slide";
			
	//most effect types need no options passed by default
	var options = {};
	
	//run the effect
	jQuery("#flighthotel_options").toggle(selectedEffect,options,500);
}
function expand_hotel_options() {
	var selectedEffect = "slide";
			
	//most effect types need no options passed by default
	var options = {};
	
	//run the effect
	jQuery("#hotel_options").toggle(selectedEffect,options,500);
}
function expand_cruise_options() {
	var selectedEffect = "slide";
			
	//most effect types need no options passed by default
	var options = {};
	
	//run the effect
	jQuery("#cruise_options").toggle(selectedEffect,options,500);
}
function expand_lastminutepkg_options() {
	var selectedEffect = "slide";
			
	//most effect types need no options passed by default
	var options = {};
	
	//run the effect
	jQuery("#lastminutepkg_options").toggle(selectedEffect,options,500);
}

function pad(number, length) {
   
    var str = '' + number;
    while (str.length < length) {
        str = '0' + str;
    }
   
    return str;

}
	 
	
jQuery(function() {
	// set calendar start date ... today + 2 days
	var startDate = new Date();
	var endDate = new Date();
	var lastMinuteStartDate = new Date();
	
	lastMinuteStartDate.setDate(lastMinuteStartDate.getDate() + 2);
	
	// Package
	jQuery("#package_date_dep_display").datepicker({ 
		numberOfMonths: 2, 
		minDate: startDate,

		dateFormat: "yy/mm/dd",
		altFormat: "yymmdd",
		altField: "#package_date_dep"
	});
/*
	// Flights
	jQuery("#flight_date_dep_display").datepicker({ 
		numberOfMonths: 2, 
		minDate: startDate,

		dateFormat: "yy/mm/dd",
		altFormat: "yy/mm/dd",
		altField: "#flight_date_dep"
	});
		
	jQuery("#flight_date_ret_display").datepicker({ 
		numberOfMonths: 3, 
		minDate: startDate,

		dateFormat: "yy/mm/dd",
		altFormat: "yy/mm/dd",
		altField: "#flight_date_ret"
	});
	*/
	// set calendar start date ... today + 3 days
	var startDate = new Date();
	startDate.setDate(startDate.getDate() + 3);
	
	var start_day = startDate.getDate();
	var start_month = startDate.getMonth();
	start_month++;
	var start_year = startDate.getFullYear();
	
	// set calendar return date ... today + 10 days
	var returnDate = new Date();
	returnDate.setDate(returnDate.getDate() + 10);	
	
	var return_day = returnDate.getDate();
	var return_month = returnDate.getMonth();
	return_month++;
	var return_year = returnDate.getFullYear();
		
	// set calendar end date ... today + 12 months
	var endDate = new Date();
	endDate.setMonth(endDate.getMonth() + 12);
	
	// make date fields readonly
	jQuery("#flight_date_dep_display").attr("readonly", true);
	jQuery("#flight_date_dep_display").val(start_year + '/' + pad(start_month, 2) + '/' + pad(start_day, 2));
	jQuery("#flight_date_dep").val(start_year + '/' + pad(start_month, 2) + '/' + pad(start_day, 2));
	
	jQuery("#flight_date_ret_display").attr("readonly", true);
	jQuery("#flight_date_ret_display").val(return_year + '/' + pad(return_month, 2) + '/' + pad(return_day, 2));
	jQuery("#flight_date_ret").val(return_year + '/' + pad(return_month, 2) + '/' + pad(return_day, 2));
	
	// initialize jQuery UI calendar widget
	jQuery.datepicker.setDefaults({
					dateFormat: 'yy/mm/dd', 
					altFormat: 'yy/mm/dd',
					minDate: startDate, 
					maxDate: endDate,
					numberOfMonths: 3
			});
	var dateFrom = jQuery('#flight_date_dep_display').datepicker({altField: '#flight_date_dep',
				onSelect: function(selectedDate) {
					dateTo.datepicker('option', 'minDate', dateFrom.datepicker('getDate') || startDate);
					// if dateTo is less than dateFrom, make an adjustment
					if (dateTo.datepicker("getDate") < dateFrom.datepicker("getDate")) {
						var adjustDate = new Date(dateFrom.datepicker("getDate"));
						adjustDate.setDate(adjustDate.getDate() + 7);
						jQuery('#flight_date_ret_display').datepicker("setDate", new Date(adjustDate));
						jQuery('#flight_date_ret').datepicker("setDate", new Date(adjustDate));
					}
					
			}
	});   
	var dateTo = jQuery('#flight_date_ret_display').datepicker({altField: '#flight_date_ret',
			onSelect: function(selectedDate) {
					// do I need maxDate?
					dateFrom.datepicker('option', 'maxDate', dateTo.datepicker('getDate') || endDate);
			}
	}); 

	
	
	/*		
	
	jQuery("#flight_date_dep_display, #flight_date_ret_display").datepicker({
		dateFormat: 'yy/mm/dd', 
		altFormat: 'yy/mm/dd',
		dayNamesMin: arrayDayNames,
		monthNames: arrayMonthNames
	});
	
	*/
	
	// Flight/Hotels
	jQuery("#chk_in").datepicker({ 
		numberOfMonths: 2, 
		minDate: startDate,

		dateFormat: "yy/mm/dd",
		altFormat: "yy/mm/dd",
		altField: "#fl_ho_date_leaving"
	});
		
	jQuery("#chk_out").datepicker({ 
		numberOfMonths: 2, 
		minDate: startDate,

		dateFormat: "yy/mm/dd",
		altFormat: "yy/mm/dd",
		altField: "#fl_ho_date_return"
	});
	
	// Hotels
	jQuery("#hotel_chk_in").datepicker({ 
		numberOfMonths: 2, 
		minDate: startDate,

		dateFormat: "yy/mm/dd",
		altFormat: "mm/dd/yy",
		altField: "#ho_date_leaving"
	});
		
	jQuery("#hotel_chk_out").datepicker({ 
		numberOfMonths: 2, 
		minDate: startDate,

		dateFormat: "yy/mm/dd",
		altFormat: "mm/dd/yy",
		altField: "#ho_date_return"
	});
	 
	
		
	// Cruises
	jQuery("#car_date_dep_display").datepicker({ 
		numberOfMonths: 2, 
		minDate: startDate,

		dateFormat: "yy/mm/dd",
		altFormat: "yy/mm/dd",
		altField: "#car_date_dep"
	});
		
	jQuery("#car_date_ret_display").datepicker({ 
		numberOfMonths: 2, 
		minDate: startDate,

		dateFormat: "yy/mm/dd",
		altFormat: "yy/mm/dd",
		altField: "#car_date_ret"
	});
	
	// Last Minute Package
	jQuery("#last_minute_package_date_dep_display").datepicker({ 
		numberOfMonths: 2, 
		minDate: startDate,

		dateFormat: "yy/mm/dd",
		altFormat: "yymmdd",
		altField: "#last_minute_package_date_dep"
	});
});




