﻿(function()
{
	window.getFlightInfo = function(
		evt)
	{
		if ((typeof (evt) != 'undefined') &&
			(evt != null) &&
			(typeof (evt.type) != 'undefined') &&
			(evt.type.toLowerCase() == 'click'))
		{
			BTaylorSolutionsWeb.Services.FlightTracker.GetDynamicFlightInfo(
				txtFlightIdentifier.value,
				displayDynamicFlightInfo);

			BTaylorSolutionsWeb.Services.FlightTracker.GetStaticFlightInfo(
				txtFlightIdentifier.value,
				displayStaticFlightInfo);
		}
	}

	window.displayDynamicFlightInfo = function(
		oDynamicFlightInfo)
	{
		if (oDynamicFlightInfo != null)
		{
			/*
			var oFlightInfo = Sys.Serialization.JavaScriptSerializer.deserialize(
			sFlightInfo,
			true);
			*/

			if (typeof (window.dynamicFlightInfoDiv) != 'undefined')
			{
				window.dynamicFlightInfoDiv.innerHTML = writeDynamicFlightInfo(
					oDynamicFlightInfo);
			}
		}
	}

	window.displayStaticFlightInfo = function(
		oStaticFlightInfo)
	{
		if (oStaticFlightInfo != null)
		{
			if (typeof (window.imgFlightTracker) != 'undefined')
			{
				window.imgFlightTracker.src = (
					'http://fboweb.com/f/da4.aspx?w=500&h=360&i=' +
					oStaticFlightInfo.Ident);

				window.imgFlightTracker.style.backgroundImage = (
					'url(\'http://fboweb.com/f/pm.aspx?cc=1&nt=1&w=500&h=360&d=' +
					oStaticFlightInfo.Dept +
					',' +
					oStaticFlightInfo.Dest +
					'\')');

				window.imgFlightTracker.style.display = '';
			}
		}
	}

	function writeDynamicFlightInfo(
		dynamicFlightInfo)
	{
		var dynamicFlightInfoDataHtml = [];

		for (var index = 0; index < dynamicFlightInfoPresentationFunctions.length; index++)
		{
			dynamicFlightInfoDataHtml.push(
				dynamicFlightInfoPresentationFunctions[index].call(dynamicFlightInfo));
		}

		return dynamicFlightInfoDataHtml.join('');
	}

	function writeStaticFlightInfo(
		staticFlightInfo)
	{
		var staticFlightInfoDataHtml = [];

		for (var index = 0; index < staticFlightInfoPresentationFunctions.length; index++)
		{
			staticFlightInfoDataHtml.push(
				staticFlightInfoPresentationFunctions[index].call(staticFlightInfo));
		}

		return staticFlightInfoDataHtml.join('');
	}

	function getFlightIdentifier()
	{
		return (
			'<b>Flight:</b> ' +
			this.Ident +
			'<br />');
	}

	function getFlightProgress()
	{
		return this.ProgressBar;
	}

	function getFlightAltitude()
	{
		return (
			'<b>Altitude:</b> ' +
			this.Alt +
			'<br />');
	}

	function getFlightETA()
	{
		return (
			'<b>ETA:</b> ' +
			this.ETA +
			'<br />');
	}

	function getFlightSpeed()
	{
		return (
			'<b>Speed:</b> ' +
			this.Speed +
			'<br />');
	}

	var dynamicFlightInfoPresentationFunctions = [
		getFlightProgress,
		getFlightIdentifier,
		getFlightETA,
		getFlightAltitude,
		getFlightSpeed];

	var staticFlightInfoPresentationFunctions = [
	];
})();