$(document).ready(function() {
	$("body").append('<div id="loading" ></div>');

// front search
	var $searchForm = $('#formSearchBox');
	var initialAction = $searchForm.attr('action');
	
	var searchResults = function(responseText, statusText, xhr, form) {
		var currentAction = $searchForm.attr('action');
		// second part of search results returned, which is v3
		if(currentAction.match("type=v3")) {
			$("#v3Loading").slideUp('fast', function(){$("#v3Loading").remove();});
			$('div.featuredBox').append(responseText);
			$searchForm.attr('action', initialAction);
	        loadCalendar();
		} 
		// first step - roamfree results
		else {
			$('div.featuredBox').html(responseText);
			$searchForm.attr('action', initialAction+'&type=v3');
			$searchForm.submit();
		}
    };

// V3Travel 
    /*var searchResults = function(responseText, statusText, xhr, form) {
        
    };*/
    
// #43 From search - have information in modal
    // load calendar for each accommodation
    var loadCalendar = function() {
    	var requestParams = [];
    	$("div.featuredBox div.feature-data").each(function(idx, el) {
        	var params = [];
        	params.push('exl_psn='+$(el).children('div.providername').html());
        	params.push('day='+$('#commencingDayAccomm').val());
        	params.push('month='+$('#commencingMonthAccomm').val());
        	params.push('nights='+$('#nightsAccomm').val());
        	params.push('adults='+$('#adultsAccomm').val());
        	params.push('children='+$('#childrenAccomm').val());
        	params.push('concessions='+$('#concessionsAccomm').val());
        	requestParams.push(params.join(','));
        });	
    	var postParams = requestParams.join(';');
      // get calendar for each item in one single request
    	$("div.celendarSection").addClass('divloading').html('Checking Availability...');
    	$.post(
			'/proxy/v3calendar', {
				requestStr: postParams
			}, showCalendar, 'json');
    };
    var showCalendar = function(data) {
		if (data.success == true) {
			$("div.celendarSection").each(function(idx, el) {
				$(el).removeClass('divloading').html(data.result[idx]);
			});
		}
	};
  	
  	$('#availabilityForm').submit(function() {
  	   $(this).ajaxSubmit({
  	       success: function(responseText){
  	           $('#txacalendar').html(responseText);
  	           }
  	       });
  	       return false;
  	});
	
	$('a#ucDiscoveryBodySection_ucSearchResults_btnBuy').live('click', function(){
		var bookingParams = $("input[type=radio]:checked").val().split('|');
 		var isAccommPage = ($('#availabilityForm').length)?true:false;
		$.post(
				'/proxy/booking-injection', {
					commencing1: bookingParams[1],
					concluding1: bookingParams[2],
					nights: bookingParams[4],
 					exl_psn:    $(this).next().val(),
 					adults1: (isAccommPage)?$('#adults1').val():$('#adultsAccomm').val(),
 					children1: (isAccommPage)?$('#children1').val():$('#childrenAccomm').val(),
 					concessions1: (isAccommPage)?$('#concessions1').val():$('#concessionsAccomm').val(),
					product_id1: bookingParams[0]
				}, bookingInjection, 'json');
		return false;
	});
	var bookingInjection = function(data) {
		//console.log(data.url);
		window.location = data.url;
	};
	
	$popupWindow = false;
	
	$('a.roompopupwindow').live('click', function(){
		if($popupWindow != false)
			$popupWindow.fadeOut('fast');
 		$popupWindow = $(this).parent().next();
		$popupWindow.fadeIn('slow');
		return false;
	});
	
	$('div.pob_product_details').live('click', function(){
		if($popupWindow != false)
			$popupWindow.fadeOut('fast');
		$popupWindow = false;
		return false;
	});

   	$('.expand').live('click', function(){
   		var $altResultBox = $(this).parent().next();
   		$altResultBox.slideToggle();
   		var $bookBtn = $altResultBox.parent().next().children();
   		if($bookBtn.hasClass('noresultsBookBtn'))
	   		if($bookBtn.css('display') == 'none')
	   			$bookBtn.css('display', 'block');
	   		else
	   			$bookBtn.css('display', 'none');
   		return false;
   	});
	
// SEARCHBOX

    $('#formSearchBox').submit(function() {
        $(this).ajaxSubmit({
            success:       searchResults
        });
        //console.log('request sent');
        return false;
    });
    $('#datepickerimg')
	.datePicker({createButton:false})
	.bind(
		'click',
		function()
		{
			$(this).dpDisplay();
			this.blur();
			return false;
		}
	)
	.bind(
		'dateSelected',
		function(e, selectedDate, td)
		{
			var monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
			var currentDate = new Date();
			$("#commencingDayAccomm").val(selectedDate.getDate());
			var selected = monthNames[selectedDate.getMonth()]+' '+selectedDate.getFullYear();
			//console.log(selected);
			$("#commencingMonthAccomm").val(selected);
		}
	);
    
// THIS WEEKEND
    if($("#thisweekendPage").length) {
    	$('#formSearchBox').append('<input type=\"hidden\" name=\"weekendVacancies\" value=\"1\" />');
    	$('#advancedSearch').click(function(){ $('#formSearchBox').slideToggle();return false;});
    	$('#formSearchBox').submit();
    }
    
// ROAMFREE
    var roamfreeResults = function(responseText, statusText, xhr, form) {
        //console.log('results reseived. '+'status: ' + statusText);
    	//$('#left-sidebar').css('display', 'none');
    	$('#right-sidebar').css('display', 'none');
    	$('#main').css('width', '754px');
        $('div#roamfree-results').html(responseText);
    };

    $('#formRoamfree').submit(function() {
        $(this).ajaxSubmit({
            success:       roamfreeResults
        });
        //console.log('request sent');
        return false;
    });
    $('#roamfreedatepickerimg').click(function(){$('#sDate').focus();});
    
    // shift dates
    $("a.shiftDatesRight").live('click', function(){
    	$('div#roamfree-results').load($(this).attr('href'));
    	return false;
    });
    $("a.shiftDatesLeft").live('click', function(){
    	$('div#roamfree-results').load($(this).attr('href'));
    	return false;
    });
});
$(document).ajaxStart(function() {
    $('#loading').fadeIn();
    $("#wrapper").fadeTo(0, 0.6);
});
$(document).ajaxComplete(function() {
    $('#loading').fadeOut('fast');
    $("#wrapper").fadeTo(0, 1);
});