var LoadingBlock;
var CurElem;
var ProductLoop=0;

$(document).ready(function() {	
	$('#CheckAvailability').click(
		function(){
			if(!$(this).hasClass('On')){
				$(this).addClass('On');
				$(this).fadeOut(200,
					function(){
						$(this).css('backgroundImage','url(/Images/Framework/Loading1.gif)');
						$(this).fadeIn(200);
					}
				)
				if(AvailabilityMode=='Favourites'){
					$('.Faces').fadeOut(10,function(){
						$('.Faces').css('backgroundImage','url(/Images/Framework/Loading1.gif)');
						$('.Faces').css('backgroundPosition','50% 50%');
						$('.Faces').fadeIn(100);
					});
					$('.Availability').slideUp(100);
					$('.ShowHideAvailability').removeClass('On')
						.removeClass('Off')
						.slideUp(100);	
				}
				else{
					$('.Faces').fadeOut(10,function(){
						$('.Faces').css('backgroundImage','url(/Images/Framework/Loading1.gif)');
						$('.Faces').css('backgroundPosition','50% 50%');
						$('.Faces').fadeIn(100);
					});
					$('.Availability').slideUp(100);
				}
				ProductLoop=0;
				CheckAvailability();
			}
		}
	)
	
	$('.ShowHideAvailability').click(
		function(){
			var temp=$(this).attr('rel');
			if($(this).hasClass('Off')){
				$(this).removeClass('Off');
				$(this).addClass('On');
				$('#Availability_'+temp).slideDown(500);
			}
			else{
				$(this).removeClass('On');
				$(this).addClass('Off');
				$('#Availability_'+temp).slideUp(500);
			}
		}
	)
});

function CheckAvailability(){
	if(AvailabilityMode=='Favourites'){
		var ProductCode=ProductArray[ProductLoop];
	}
	else{
		var ProductCode=ProductCodes;
	}
	var Adults=$('#BookingAdults').val();
	var Children=$('#BookingChildren').val();
	var Infants=$('#BookingInfants').val();
	var PetCount=$('#BookingPetCount').val();
	var Duration=$('#BookingDuration').val();
	var Month=$('#BookingDateMonth').val();
	var Year=$('#BookingDateYear').val();
	var PostData='PID='+ProductCode+'&Adults='+Adults+'&Children='+Children+'&Infants='+Infants+'&PetCount='+PetCount+'&Duration='+Duration+'&Month='+Month+'&Year='+Year;
	AjaxPost('/Includes/AJAX-Calls/AJAX-CheckAvailability.asp',PostData,'HandleCheckAvailability','');	
}

function HandleCheckAvailability(){
	var CData=CheckStatus();
	if (CData){		
		var IncomingLength=CData.incoming.response.length;
		if (IncomingLength>0) {			
			if  (CData.incoming.response[0].status=='Ok'){
				$('#Availability_'+CData.incoming.response[2].Code).html(CData.incoming.response[1].Booking);
				$('#ShowHideAvailability_'+CData.incoming.response[2].Code).addClass('Off');
				$('#ShowHideAvailability_'+CData.incoming.response[2].Code).slideDown(500);
				$('#Face_'+CData.incoming.response[2].Code).fadeOut(200,function(){
					$('#Face_'+CData.incoming.response[2].Code).css('backgroundImage','url(/Images/Framework/AvailabilityFaces.png)');
					$('#Face_'+CData.incoming.response[2].Code).css('background-position','0px 0px');
					$('#Face_'+CData.incoming.response[2].Code).fadeIn(200);
				})
				$('#Face_'+CData.incoming.response[2].Code).fadeIn(500);
				if (ProductLoop<ProductCount && ProductCount>1){
					ProductLoop++;
					CheckAvailability();
				}
				else {
					ProductLoop=0;
					$('#CheckAvailability').fadeOut(200,
						function(){
							$('#CheckAvailability').css('backgroundImage','url(/Images/Framework/Button_CheckAvailability.png)');
							$('#CheckAvailability').fadeIn(200);							
							$('#CheckAvailability').removeClass('On');
						}
					)
					$('.ShowHideAvailability').click();
				}
			}
			else if  (CData.incoming.response[0].status=='PAST'){
				$('#Availability_'+CData.incoming.response[1].Code).html('<div class="AvailableDates"><ul class="Content"><li class="Past">The dates you entered are in the past. Please choose another date.</li></ul></div>');
				$('.Faces').fadeOut(100);
				$('#ShowHideAvailability_'+CData.incoming.response[1].Code).addClass('On');
				$('#ShowHideAvailability_'+CData.incoming.response[1].Code).slideDown(500);
				$('#Availability_'+CData.incoming.response[1].Code).slideDown(500);
				setTimeout('BringBackButton()',300);
			}
			else if  (CData.incoming.response[0].status=='Fail' && AvailabilityMode=='Single'){
				$('#CheckAvailability').fadeOut(200,
						function(){
							$('#CheckAvailability').css('backgroundImage','url(/Images/Framework/Button_CheckAvailability.png)');
							$('#CheckAvailability').fadeIn(200);
							$('#CheckAvailability').removeClass('On');
						}
					)
				$('#Availability_'+CData.incoming.response[1].Code).html('<div class="AvailableDates"><ul class="Content"><li class="Past">Either the dates you entered are not available or the party is too large for the property. Please check or choose another date.</li></ul></div>');
				$('.Faces').fadeOut(100);
				$('#ShowHideAvailability_'+CData.incoming.response[1].Code).addClass('On');
				$('#ShowHideAvailability_'+CData.incoming.response[1].Code).slideDown(500);
				$('#Availability_'+CData.incoming.response[1].Code).slideDown(500);
			}
			else{
				$('#Face_'+CData.incoming.response[1].Code).css('backgroundImage','url(/Images/Framework/AvailabilityFaces.png)');
				$('#Face_'+CData.incoming.response[1].Code).css('background-position','0px -75px');
				$('#Face_'+CData.incoming.response[1].Code).fadeIn(500);
				if (ProductLoop<ProductCount && ProductCount>1){				
					ProductLoop++;
					CheckAvailability();
				}
				else {
					ProductLoop=0;
					$('#CheckAvailability').fadeOut(200,
						function(){
							$('#CheckAvailability').css('backgroundImage','url(/Images/Framework/Button_CheckAvailability.png)');
							$('#CheckAvailability').fadeIn(200);
							$('#CheckAvailability').removeClass('On');
						}
					)
				}
			}
			$('.Book a').click(
				function(){
					var FowardingURL=$(this).attr('href');
					OpenContinueWindow(FowardingURL);
					return false;
				}
			)
		}
	}
}

function BringBackButton(){
	$('#CheckAvailability').fadeOut(300,
		function(){
			$('#CheckAvailability').css('backgroundImage','url(/Images/Framework/Button_CheckAvailability.png)');
			$('#CheckAvailability').fadeIn(200);
			$('#CheckAvailability').removeClass('On');
		}
	);
}