function trackCharterBehaviour(nTrackingElementId,sTrackingValue)
{
	nCharterTrackingStepCounter = nCharterTrackingStepCounter +1;
	
		
	new Ajax.Request(sAjaxUrl, 
		{ 
			method:'post', 
			parameters: 
			{
				action: "trackUser",
				sSession: sClientSession,
				nSupplierID: nSupplierID,
				nTrackingElementId: nTrackingElementId,
				nTrackingStep: nCharterTrackingStepCounter,
				sTrackingValue: sTrackingValue,
				uniqueValue: makeUniqueValue()
			}
			,
			onSuccess: function(transport) 
			{ 
				// Success
					var response = transport.responseText || "no response text"; 
				
			}
		}
	);
}

function checkForHungRequests()
{

	if(bRunningFullRequest)
	{
		bRunningFullRequest = 0;
		if(bItem1Running)
		{
			/*alert("1 running");*/
			bItem1Running = false;
			doAjaxUpdate(1);
		}
		if(bItem2Running)
		{
			/*alert("2 running");*/
			bItem2Running = false;
			doAjaxUpdate(1);
		}
		if(bItem3Running)
		{
			/*alert("3 running");*/
			bItem3Running = false;
			doAjaxUpdate(1);
		}
		if(bItem4Running)
		{
			/*alert("4 running");*/
			bItem4Running = false;
			doAjaxUpdate(1);
		}
		
		
	}
	
}


function doAjaxUpdate(actionID)
{
	var action = "";
	var updateElement = "";
	var hidebutton = 0;
	
	try
	{
	  	var tm_number = tmNumber;
	}
	catch(err)
	{
	  	var tm_number = -1;
  	}
	
	
	
	
	switch(actionID)
	{
		case 0:
		action = "getDepartureAirports";
		updateElement = "departure_select_container";
		if(nCharterStep == 1)
		{
			$('charter_quick_search_button').disabled = true;
			$('charter_quick_search_button').hide();
		}
		else if(nCharterStep == 2)
		{
			$('filter_search_button').disabled = true;
			$('filter_search_button').hide();
		}
		
		
		
		break;
		
		
		case 1:
		action = "getDestinationDropDown";
		updateElement = "destination_select_container";
		if(nCharterStep == 1)
		{
			$('charter_quick_search_button').disabled = true;
			$('charter_quick_search_button').hide();
		}
		else if(nCharterStep == 2)
		{
			$('filter_search_button').disabled = true;
			$('filter_search_button').hide();
		}
		
		
		bItem1Running = true;
		
		break;
			
		case 2:
		action = "getAreaDropDown";
		updateElement = "area_select_container";
		if(nCharterStep == 1)
		{
			$('charter_quick_search_button').disabled = true;
			$('charter_quick_search_button').hide();
		}
		else if(nCharterStep == 2)
		{
			$('filter_search_button').disabled = true;
			$('filter_search_button').hide();
		}
		bItem2Running = true;
		break;
		
		case 3:
		action = "getDurationDropDown";
		updateElement = "duration_select_container";
		if(nCharterStep == 1)
		{
			$('charter_quick_search_button').disabled = true;
			$('charter_quick_search_button').hide();
		}
		else if(nCharterStep == 2)
		{
			$('filter_search_button').disabled = true;
			$('filter_search_button').hide();
		}
		bItem3Running = true;
		break;
		
		case 4:
		action = "getSpecificationsDropDown";
		updateElement = "specification_select_container";
		if(nCharterStep == 1)
		{
			$('charter_quick_search_button').disabled = true;
			$('charter_quick_search_button').hide();
		}
		else if(nCharterStep == 2)
		{
			$('filter_search_button').disabled = true;
			$('filter_search_button').hide();
		}
		bItem4Running = true;
		break;
		/*
		case 5:
		action = "getDurations";
		updateElement = "destination_select_container";
		$('charter_quick_search_button').disabled = true;
		$('charter_quick_search_button').hide();
		break;
		*/
		
		default:
		{
			alert("no action found");
			action = "";
			updateElement = "";
		}	
	}
	
	if (actionID == 1 && bRunningFullRequest) {
		
		/*alert('full request is running - please wait');*/
		/*setTimeout("checkForHungRequests()",5000);*/
	}
	else 
	{
		if (actionID == 1)
		{
			/*bRunningFullRequest = 1;*/
			setTimeout("checkForHungRequests()",5000);
		}
		new Ajax.Request(sAjaxUrl, {
			method: 'post',
			parameters: {
				action: action,
				nSupplierID: nSupplierID,
				sDepartureID: $('departure_code').value,
				sDestinationID: $('destination_code').value,
				sAreaId: $("area_code").value,
				dDepartureDate: $("departure_date").value,
				nflexDays: $("flex_days").value,
				nDuration: $("nDuration").value,
				nSpecification: $("nSpecification").value,
				nCharterStep: nCharterStep,
				tm_number: tm_number,
				uniqueValue: makeUniqueValue()
			},
			onLoading: function(){
				switch (actionID) {
					case 0:
						if($(updateElement))
						{
							$(updateElement).update(getDestionationOnLoading);
							
						}
						break;
					case 1:
						$(updateElement).update(getDestionationOnLoading);
						$('area_select_container').update(getAreasOnLoading);
						$('duration_select_container').update(getDurationsOnLoading);
						$('specification_select_container').update(getSpecificationsOnLoading);
						break;
					case 2:
						$(updateElement).update(getAreasOnLoading);
						$('duration_select_container').update(getDurationsOnLoading);
						$('specification_select_container').update(getSpecificationsOnLoading);
						break;
					case 3:
						$(updateElement).update(getDurationsOnLoading);
						$('specification_select_container').update(getSpecificationsOnLoading);
						break;
					case 4:
						$(updateElement).update(getSpecificationsOnLoading);
						break;
				}
			},
			onSuccess: function(transport){
				// Success
				var response = transport.responseText || "no response text";
				
			/*	if (updateElement != "") {
					$(updateElement).update(response);
				}*/
				
				
				
				switch (actionID) {
					case 0:
					if($(updateElement))
						{
							$(updateElement).update(response);	
						}
						hidebutton = 1;
						doAjaxUpdate(1);
						break;
					case 1:
						/*doAjaxUpdate(2);*/
						bItem1Running = false;
						
							var splitArray = response.split("[TM_SPLIT]", 5)
							$('destination_select_container').update(splitArray[0]);
							$('area_select_container').update(splitArray[1]);
							$('duration_select_container').update(splitArray[2]);
							$('specification_select_container').update(splitArray[3]);
				
						if(parseInt(splitArray[4]) == 1)
						{
							hidebutton = 0;
						}
						else
						{
							hidebutton = 1;
						}
						
						break;
						
						
					case 2:
						/*doAjaxUpdate(3);*/
						bItem2Running = false;
						
							var splitArray = response.split("[TM_SPLIT]", 4)
						
							$('area_select_container').update(splitArray[0]);
							$('duration_select_container').update(splitArray[1]);
							$('specification_select_container').update(splitArray[2]);
				
						if(parseInt(splitArray[3]) == 1)
						{
							hidebutton = 0;
						}
						else
						{
							hidebutton = 1;
						}
						
						break;
					case 3:
						/*doAjaxUpdate(4);*/
						bItem3Running = false;
						var splitArray = response.split("[TM_SPLIT]", 3)
						$('duration_select_container').update(splitArray[0]);
						$('specification_select_container').update(splitArray[1]);
						
							
						if(parseInt(splitArray[2]) == 1)
						{
							hidebutton = 0;
						}
						else
						{
							hidebutton = 1;
						}
						
				
						break;
					case 4:
						
						var splitArray = response.split("[TM_SPLIT]", 2)
						
						$('specification_select_container').update(splitArray[0]);
						
						
						if(parseInt(splitArray[1]) == 1)
						{
							hidebutton = 0;
						}
						else
						{
							hidebutton = 1;
						}
						
										
						bItem4Running = false;
						bRunningFullRequest = 0;
						break;
					default:
						{
						
						}
				}
				
				if(nCharterStep == 1)
				{
					$('charter_quick_search_button').disabled = false;
					if(hidebutton || actionID == 0)
					{
						$('charter_quick_search_button').hide();
					}
					else
					{
						$('charter_quick_search_button').show();
					}
					
				}
				else if(nCharterStep == 2 || actionID == 0)
				{
					$('filter_search_button').disabled = false;
					if (hidebutton) 
					{
						$('filter_search_button').hide();
					}
					else
					{
						$('filter_search_button').show();
					}
					
				}
				
			}
		});
	}
}	
	

