//file FlightFinder.js used for common FlightFinderTab JavaScript function

function GetCitySpellingSuggestions(cityName, onSuccess, onError) {
    $.ajax({ type: "POST",
    	url: "content/searchforms/CitySelectionService.asmx/CheckCitySpelling",
        data: "{'cityName': '" + cityName + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (json) { onSuccess(json); },
        error: function (err) { onError(err); }
    });

}

function UpdateNextDepartureDates(containerPrefix, nRow, nTotalRows)
{
	var sIDprefix = containerPrefix + nRow + '_MultiDepartureDate' + nRow;
	var departureDayIndex = document.getElementById(sIDprefix + '_day').selectedIndex;
	var departureMonthYearIndex = document.getElementById(sIDprefix + '_month').selectedIndex;

	for (var i = nRow + 1; i < nTotalRows; i++)
	{
		sIDprefix = containerPrefix + i + '_MultiDepartureDate' + i;
		if (document.getElementById(sIDprefix + '_day') != undefined
            && document.getElementById(sIDprefix + '_month') != undefined)
		{
			var nextDayIndex = document.getElementById(sIDprefix + '_day').selectedIndex;
			var nextMonthYearIndex = document.getElementById(sIDprefix + '_month').selectedIndex;
			var day = departureMonthYearIndex * 100 + departureDayIndex;
			var next = nextMonthYearIndex * 100 + nextDayIndex;
			if (day > next)
			{
				var sFuncName = "setSelectedIndexes_MultiDepartureDate" + i;
				//from http://www.thescripts.com/forum/thread494600.html 
				window[sFuncName](departureDayIndex, departureMonthYearIndex);
			}
		}
	}
}

function activateProcessImage()
{
	oImgProc = document.getElementById('imgProcess');
	//oTextProc = document.getElementById('textProcess');

	if (oImgProc != undefined)
	{
		oImgProc.style.display = '';
		document.location.href = "#top"
	}
}
function showMDFTab(param)
{
	HideFaresAndResults();
	imgTabMDFGrid = document.getElementById("tabMDFGrid");
	imgTabMDFGraph = document.getElementById("tabMDFGraph");
	//oMatrixTitleImg = document.getElementById("title_mdf_img");
	if (imgTabMDFGrid != undefined)//&& imgTabMDFGraph != undefined
	{
		if (param == "GRID")//show
		{
			document.getElementById("mi_matix_graph_1").style.display = "none";
			document.getElementById("mi_matix").style.display = "";
			document.getElementById("mi_toplegend").style.display = "";
			document.getElementById("mdf_bottomtext").style.display = "";
			document.getElementById("mdf_bottomtext_NA").style.display = "";
			// oMatrixTitleImg.src="Images/title_grid_view.jpg";
			imgTabMDFGrid.src = "Images/tabs/tab_dealfindergrid_on.jpg";
			if (imgTabMDFGraph != undefined)
			{
				imgTabMDFGrid.src = "Images/tabs/tab_dealfindergrid_on.jpg";
				imgTabMDFGraph.src = "Images/tabs/tab_dealfinderchart_off.jpg";
			}
			else//only GRID is visible
			{
				imgTabMDFGrid.src = "Images/tabs/tab_dealfinder_on.jpg";
			}
			document.getElementById("mdf14_top_text_col2_Day").style.display = "";
			document.getElementById("mdf14_top_text_col2_Chart").style.display = "none";
			document.getElementById("mdf28_top_text_col2_Day").style.display = "";
			document.getElementById("mdf28_top_text_col2_Chart").style.display = "none";
		}
		else if (param == "GRAPH")
		{
			document.getElementById("mi_matix_graph_1").style.display = "";
			document.getElementById("mi_matix").style.display = "none";
			document.getElementById("mi_toplegend").style.display = "none";
			document.getElementById("mdf_bottomtext").style.display = "none";
			document.getElementById("mdf_bottomtext_NA").style.display = "none";
			// oMatrixTitleImg.src="Images/title_chart_view.jpg";
			imgTabMDFGrid.src = "Images/tabs/tab_dealfindergrid_off.jpg";
			imgTabMDFGraph.src = "Images/tabs/tab_dealfinderchart_on.jpg";

			document.getElementById("mdf14_top_text_col2_Day").style.display = "none";
			document.getElementById("mdf14_top_text_col2_Chart").style.display = "";
			document.getElementById("mdf28_top_text_col2_Day").style.display = "none";
			document.getElementById("mdf28_top_text_col2_Chart").style.display = "";
		}
		else
		{
			//debugger;
		}
	}
	ShowMdf14Or28Spans();
}
function showSearchResults()
{
	HideMDFSpans();
	ShowMdfTabs();
}
function HideMDFSpans()
{
	ToggleMdfResults("none");
	var tabSearchResults = document.getElementById("tabSearchResults");
	tabSearchResults.src = "Images/tabs/tab_searchresults_on.jpg";
}
function HideFaresAndResults()
{
	ToggleMdfResults("");
	var tabSearchResults = document.getElementById("tabSearchResults");
	tabSearchResults.src = "Images/tabs/tab_searchresults_off.jpg";
}
function ToggleMdfResults(MdfDisplay)
{
	var ResultsDisplay = (MdfDisplay == "none") ? "" : "none";
	document.getElementById("mi_matix").style.display = MdfDisplay;
	document.getElementById("mi_matix_graph_1").style.display = MdfDisplay;
	var pnlFares = document.getElementById("mi_fares");
	if (pnlFares != undefined)
	{
		pnlFares.style.display = ResultsDisplay;
	}
	document.getElementById("mi_results").style.display = ResultsDisplay;
	document.getElementById("mi_toplegend").style.display = MdfDisplay;
	document.getElementById("mi_toptext_matrix").style.display = MdfDisplay;
	document.getElementById("mdf_bottomtext").style.display = MdfDisplay;
	document.getElementById("mi_toptext_matrix_off").style.display = ResultsDisplay;
	document.getElementById("mi_toptext_off").style.display = ResultsDisplay;
	document.getElementById("spnContinue").style.display = ResultsDisplay;
}
function ShowMdfTabs()
{
	var imgTabMDFGrid = document.getElementById("tabMDFGrid");
	var imgTabMDFGraph = document.getElementById("tabMDFGraph");
	var matrixType = DefineMDFType(); //14 or 28
	if (matrixType == '14')//Two sections, no chart support at the moment
	{
		imgTabMDFGraph.style.display = "none";
		imgTabMDFGrid.src = "Images/tabs/tab_dealfinder_off.jpg";
	}
	else
	{
		imgTabMDFGraph.style.display = ""; //show
		imgTabMDFGraph.src = "Images/tabs/tab_dealfinderchart_off.jpg";
		imgTabMDFGrid.src = "Images/tabs/tab_dealfindergrid_off.jpg";
	}

}
function ShowMdf14Or28Spans()
{
	var matrixType = DefineMDFType(); //14 or 28
	if (matrixType == '14')
	{
		document.getElementById("mi_toptext_matrix_14").style.display = "";
		document.getElementById("mi_toptext_matrix_28").style.display = "none";
	}
	else
	{
		document.getElementById("mi_toptext_matrix_14").style.display = "none";
		document.getElementById("mi_toptext_matrix_28").style.display = "";
	}
	oDestinationCity = document.getElementById('ContentView_PageLayout_FlightFinderTab_ctlDestinationFinderMatrix_city');
	oDepartureCity = document.getElementById('ContentView_PageLayout_FlightFinderTab_ctlDepartingMatrix');

	if ((oDestinationCity != undefined) && (oDepartureCity != undefined))
	{
	    _gaq.push(['_trackPageview', '/clicks/magicdealfinder' + matrixType + "_" + oDepartureCity.value + "_" + oDestinationCity.value]);
	}
	else
	{
	    _gaq.push(['_trackPageview', '/clicks/magicdealfinder' + matrixType]);
	}
}
function DefineMDFType()//14 or 28
{
	var matrixType = "28";
	var pnlFares = document.getElementById("mi_fares");
	if (pnlFares != undefined)
	{//Combined(AKA 28)
		matrixType = "28";
	}
	else//split            
	{
		matrixType = "14";
	}
	return matrixType;
}

function updateDepartureDateMatrix(dayIndex, monthYearIndex, codeCarrier)
{
	oDepDateMatrix_Day = document.getElementById('ContentView_PageLayout_FlightFinderTab_ctlDepartureDateMatrix_day');
	oDepDateMatrix_Month = document.getElementById('ContentView_PageLayout_FlightFinderTab_ctlDepartureDateMatrix_month');
	oAirlines = document.getElementById('ContentView_PageLayout_FlightFinderTab_ctlAirline1Matrix');

	oCellSelected = document.getElementById('cellSelected_dep');
	oCellSelectedColor = document.getElementById('cellSelected_Color_dep');

	cellName = 'ContentView_PageLayout_FlightFinderTab_ctlMatrixInt_cell' + dayIndex + monthYearIndex.replace("/", "") + codeCarrier;
	oSell = document.getElementById(cellName);

	if (oDepDateMatrix_Day != undefined && oDepDateMatrix_Month != undefined && oAirlines != undefined)
	{
		oDepDateMatrix_Day.selectedIndex = dayIndex;
		for (var i = 0; i < 12; i++)
		{
			oDepDateMatrix_Month.selectedIndex = i;
			if (oDepDateMatrix_Month.value == monthYearIndex)
			{
				break;
			}
		}

		if (oSell != undefined)
		{
			oSellPrev = document.getElementById(oCellSelected.value);

			if (oSellPrev != undefined)
			{
				oSellPrev.style.backgroundColor = oCellSelectedColor.value;
			}
			oCellSelected.value = cellName;
			oCellSelectedColor.value = oSell.style.backgroundColor;

			oSell.style.backgroundColor = "#b3f6b3";
			showSeachDownButton();
		}
		processGraphPriceSelect(dayIndex, monthYearIndex);
	}

	oTripType = document.getElementById('ContentView_PageLayout_FlightFinderTab_lblTripTypeMatrix');
	oCmd = document.getElementById('ContentView_PageLayout_FlightFinderTab_btnSearchMatrix');

	if (oTripType != undefined && oTripType.innerHTML == FlightFinderResource.OneWay)
	{

		oCmd = document.getElementById('ContentView_PageLayout_FlightFinderTab_btnSearchMatrix');
		if (oCmd != undefined)
		{
			oCmd.click();
		}

	}
	else
	{
		oUpdateReturnDate = document.getElementById('lblUpdateReturnDate');
		if (oCmd != undefined && oUpdateReturnDate != undefined)
		{
			oUpdateReturnDate.style.display = "";
			var MdfSelectAlert = oSDBspan = document.getElementById('MdfSelectAlert');
			if (MdfSelectAlert != undefined)
			{
				MdfSelectAlert.style.display = "";
			}
		}
	}
}
function overGraphPriceSelect(tbl, state)
{
	if (tbl != undefined)
	{
		if (tbl.className != 'Matrix_Graphs_Price_Selected')
		{
			tbl.style.borderStyle = state;
		}
	}

}
function processGraphPriceSelect(dayIndex, monthYearIndex)
{
	oTableClicked = document.getElementById('ContentView_PageLayout_FlightFinderTab_ctlMatrixGraph_');
	tttName = 'ttt' + dayIndex + monthYearIndex.replace("/", "");
	priceName = 'price_' + tttName;
	oTTT = document.getElementById(tttName);
	oTTTSelected = document.getElementById('tttSelected');
	oPriceSelected = document.getElementById(priceName);
	oPriceLastSelected = document.getElementById('priceLastSelected');
	if (oTTT != undefined)
	{
		oTTTPrev = document.getElementById(oTTTSelected.value);

		if (oTTTPrev != undefined)
		{
			oTTTPrev.style.display = 'none';
		}
		oTTTSelected.value = tttName;

		oTTT.style.display = "";
	}

	if (oPriceSelected != undefined)
	{
		oPricePrev = document.getElementById(oPriceLastSelected.value);

		if (oPricePrev != undefined)
		{
			oPricePrev.className = 'Matrix_Graphs_Price_out';
			overGraphPriceSelect(oPricePrev, 'outset')
		}
		oPriceSelected.className = 'Matrix_Graphs_Price_Selected';

		oPriceLastSelected.value = priceName;
	}
	document.location.href = "#df_target";

}
function updateReturnDateMatrix(dayIndex, monthYearIndex, codeCarrier)
{
	oRetDateMatrix_Day = document.getElementById('ContentView_PageLayout_FlightFinderTab_ctlReturnDateMatrix_day');
	oRetDateMatrix_Month = document.getElementById('ContentView_PageLayout_FlightFinderTab_ctlReturnDateMatrix_month');
	oAirlines = document.getElementById('ContentView_PageLayout_FlightFinderTab_ctlAirline2');
	oCellSelectedRet = document.getElementById('cellSelected_ret');
	oCellSelectedColorRet = document.getElementById('cellSelected_Color_ret');

	cellNameRet = 'ContentView_PageLayout_FlightFinderTab_ctlMatrixIntInbound_cell' + dayIndex + monthYearIndex.replace("/", "") + codeCarrier;

	oSellRet = document.getElementById(cellNameRet);

	if (oRetDateMatrix_Day != undefined && oRetDateMatrix_Month != undefined)
	{
		oRetDateMatrix_Day.selectedIndex = dayIndex;
		for (var i = 0; i < 12; i++)
		{
			oRetDateMatrix_Month.selectedIndex = i;
			if (oRetDateMatrix_Month.value == monthYearIndex)
			{
				break;
			}
		}
		if (oSellRet != undefined)
		{
			oSellPrevRet = document.getElementById(oCellSelectedRet.value);

			if (oSellPrevRet != undefined)
			{
				oSellPrevRet.style.backgroundColor = oCellSelectedColorRet.value;
			}
			oCellSelectedRet.value = cellNameRet;
			oCellSelectedColorRet.value = oSellRet.style.backgroundColor;
			oSellRet.style.backgroundColor = "#b3f6b3";
			showSeachDownButton();
		}
	}
	oUpdateReturnDate = document.getElementById('lblUpdateReturnDate');
	if (oUpdateReturnDate != undefined)
	{
		oUpdateReturnDate.style.display = "none";
		hideAlert();
	}
}
function updateCarrier(carrier)
{
	oCarrier = document.getElementById('ContentView_PageLayout_FlightFinderTab_ctlAirlineMatrix');
	if (oCarrier != undefined)
	{
		for (var i = 0; i < 40; i++)
		{
			oCarrier.selectedIndex = i;
			if (oCarrier.value == carrier)
			{
				break;
			}
		}
	}
}

function updateAirline2Selection()
{
	oCarrier1 = document.getElementById('ContentView_PageLayout_FlightFinderTab_ctlAirline1');
	oCarrier2 = document.getElementById('ContentView_PageLayout_FlightFinderTab_ctlAirline2Hidden');

	if (oCarrier1 != undefined && oCarrier2 != undefined)
	{
		oCarrier2.selectedIndex = oCarrier1.selectedIndex;
	}
}

function showSeachDownButton()
{
	oSDBspan = document.getElementById('mi_matrix_search_down');
	oCellSelectedDep = document.getElementById('cellSelected_dep');
	oCellSelectedRet = document.getElementById('cellSelected_ret');
	oMatrixDays = document.getElementById("mdfDaysNumber1");

	if (oSDBspan != undefined && oCellSelectedDep.value != "dep" && oCellSelectedRet.value != "ret")
	{
		oSDBspan.style.display = "";
		document.location.href = "#df_target";
	}
	if (oMatrixDays != undefined && oMatrixDays.value == "28")
	{
		if (document.getElementById("mi_matix_graph_1").style.display == "none")
			document.location.href = "#df_target";
	}


}

function showHideReturn(key)
{
	var matrix_return_date = document.getElementById('matrix_return_date');
	if (matrix_return_date != undefined)
	{
		if (key == "oneway")
		{
			document.getElementById('matrix_return_date').display = "none";
			document.getElementById('matrix_return_label').display = "none";
		}
		else
		{
			document.getElementById('matrix_return_date').display = "";
			document.getElementById('matrix_return_label').display = "";
		}
	}
	if (key == "oneway")
	{
		$('.ReturningDate').hide();
	}
	else
	{
		$('.ReturningDate').show();
	}

}

var Timer;
function ScrollLeft()
{
	Timer = setInterval("document.getElementById('ContentView_PageLayout_FlightFinderTab_ctlFare').scrollLeft -= 2", 50);
}
function ScrollRight()
{
	Timer = setInterval("document.getElementById('ContentView_PageLayout_FlightFinderTab_ctlFare').scrollLeft += 2", 50);
}

///called when toggle button is clicked
function toggleMatrixPriceBreakup()
{
	var imgPath = $('#img_ToggleTripPrices').attr("src");
	if (imgPath.indexOf('plus') > 0)
	{
		imgPath = imgPath.replace('plus', 'minus');
		$(".flight-breakup-display-text").css('visibility', 'visible');
	}
	else
	{
		imgPath = imgPath.replace('minus', 'plus');
		$(".flight-breakup-display-text").css('visibility', 'hidden');
	}

	var toggleLinks = $(".flight-breakup-display-title");
	for (var i = 0; i < toggleLinks.length; i++)
	{
		toggleLinks[i].all[0].src = imgPath;
	}
}


///Will be called only from onload- the first time when we need to adjust visibility with toggle button
function UpdateOnLoadMatrixPriceBreakUp()
{
	var imgPath = $('#img_ToggleTripPrices').attr("src");
	if (imgPath != undefined)
	{
		if (imgPath.indexOf('plus') > 0)
		{
			$(".flight-breakup-display-text").css('visibility', 'hidden');
		}
		else
		{
			$(".flight-breakup-display-text").css('visibility', 'visible');
		}
	}
}

function closeOpenInfo()
{

	oImage = document.getElementById('PlusMinusImage');
	oStatus = document.getElementById('statusInfo');
	oDiv = document.getElementById('ContentView_PageLayout_FlightFinderTab_ctlFare');
	oStopovers = document.getElementById('StopoverHelpImage');
	if (oImage != undefined)
	{
		//alert('(oImage != undefined)');
		if (oStatus.value == '1')
		{
			//alert('(oStatus.value == "1")');	
			var sSrc = oImage.src;
			sSrc = sSrc.replace('minus', 'plus');
			oImage.src = sSrc;
			oStatus.value = "0"
			for (var i = 0; i < 36; i++)
			{
				oTabM = document.getElementById('infoTable' + i);
				if (oTabM != undefined)
				{
					//oTabM.style.display = 'none'; 

					//oTabM.style.height = '0px'; 

					oTabM.style.visibility = 'hidden';
				}
			}
			if (oDiv != undefined)
			{

				if (oStopovers != undefined)
				{
					//alert('oDiv != undefined and oStopovers != undefined');	
					oDiv.style.height = '178px';
				}
				else
				{
					//alert('oDiv != undefined and oStopovers == undefined');	
					oDiv.style.height = '158px';
				}
			}

		}
		else
		{
			//alert('(oStatus.value != "1")');	
			var sSrc = oImage.src;
			sSrc = sSrc.replace('plus', 'minus');
			oImage.src = sSrc;
			oStatus.value = "1"
			for (var i = 0; i < 36; i++)
			{
				oTabM = document.getElementById('infoTable' + i);
				if (oTabM != undefined)
				{
					//oTabM.style.display = ''; 
					oTabM.style.visibility = '';
				}
			}
			if (oDiv != undefined)
			{

				if (oStopovers != undefined)
				{
					//alert('oStatus.value == "1" && oDiv != undefined && oStopovers != undefined');	
					oDiv.style.height = '250px';
				}
				else
				{
					//alert('oStatus.value == "1" && oDiv != undefined && oStopovers == undefined');	
					oDiv.style.height = '230px';
				}
			}
		}
	}
}


