/*
this file contains the airport definitions. The airports variable
is an array of objects, hashed by the iata value. So you can access them like an array:

airports[0].name			// "Glasgow"

or via an IATA code:

airports["MAN"].multiclass	// "MBB"

Alternatively, use the getAirportName() or getAirportProperty() functions (from VBScript or JScript):
getAirportName() accepts an IATA code (any class) and an optional name type to look for (the default
is the standard name, which will be returned should the requested name type not exist).

getAirportProperty() accepts an IATA code (any class) and a required property name, returning an
empty string if the property does not exist.

*/

var airports=(function(){

	var self=[
		{iata:'GLA',name:'Glasgow',business:'GLB',multiclass:'GGG',area:'UK'},
		{iata:'EDI',name:'Edinburgh',business:'EDB',multiclass:'EEE',area:'UK'},
		{iata:'ABZ',name:'Aberdeen',area:'UK'},
		{iata:'BRS',name:'Bristol',business:'BRB',multiclass:'BBC',area:'UK'},
		{iata:'BFS',name:'Belfast',business:'BFB',multiclass:'UUU',area:'UK'},
		{iata:'DUB',name:'Dublin',business:'DBB',multiclass:'DDD',area:'UK'},
		{iata:'MAN',name:'Manchester',business:'MBB',multiclass:'MMM',area:'UK'},
		{iata:'MME',name:'Durham Tees',area:'UK'},
		{iata:'LGW',name:'London Gatwick',business:'LGB',multiclass:'LLL',area:'UK'},
		{iata:'CWL',name:'Cardiff',business:'CWB',multiclass:'CCC',area:'UK'},
		{iata:'BHX',name:'Birmingham',area:'UK'},
	
		{iata:'SFB',name:'Orlando Sanford',longName:'Orlando Sanford (Florida)',shortName:'Florida',area:'US',resort:'Florida'},
	
		{iata:'YHM',name:'Toronto (Hamilton Intl)',shortName:'Toronto',area:'CA'},
		{iata:'YVR',name:'Vancouver',area:'CA'},
		{iata:'YYC',name:'Calgary',area:'CA'},
		{iata:'YHZ',name:'Halifax (Nova Scotia)',area:'CA'},		
	
		{iata:'ALC',name:'Alicante',longName:'Alicante (Benidorm)',area:'EU',resort:'Benidorm'},
		{iata:'BCN',name:'Barcelona',longName:'Barcelona (Costa Brava/Dorada)',shortName:'Barcelona',area:'EU',resort:'Brava/Dorada'},
		{iata:'PFO',name:'Paphos',longName:'Cyprus (Paphos)',shortName:'Cyprus',area:'EU',resort:'Cyprus'},
		{iata:'DBV',name:'Dubrovnik',longName:'Croatia (Dubrovnik)',area:'EU',resort:'Dubrovnik'},
		{iata:'FAO',name:'Faro',longName:'Faro (Algarve)',area:'EU',resort:'Algarve'},
		{iata:'GVA',name:'Geneva',area:'EU',resort:'Geneva'},
		{iata:'LPA',name:'Gran Canaria',longName:'Gran Canaria (Las Palmas)',area:'EU',resort:'Gran Canaria'},
		{iata:'IBZ',name:'Ibiza',area:'EU',resort:'Ibiza'},
		{iata:'ACE',name:'Lanzarote',longName:'Lanzarote (Arrecife)',area:'EU',resort:'Lanzarote'},
		{iata:'JER',name:'Jersey',area:'EU',resort:'Jersey'},
		{iata:'FNC',name:'Madeira',longName:'Madeira (Funchal)',area:'EU',resort:'Madeira'},
		{iata:'AGP',name:'Malaga',longName:'Malaga (Costa Del Sol)',area:'EU',resort:'Costa Del Sol'},
		{iata:'NCE',name:'Nice',area:'EU',resort:'Nice'},
		{iata:'PMI',name:'Palma',longName:'Palma (Majorca)',area:'EU',resort:'Majorca'},
		{iata:'PUY',name:'Pula',longName:'Croatia (Pula)',area:'EU',resort:'Pula'},
		{iata:'FCO',name:'Rome',area:'EU',resort:'Rome'},
		{iata:'SSH',name:'Sharm el Sheikh',longName:'Sharm el Sheikh (Egypt)',shortName:'Sharm el Sheikh',area:'EU',resort:'Egypt',holidayGrid:'Sharm el Sheikh'},
		{iata:'TFS',name:'Tenerife',area:'EU',resort:'Tenerife'},
		{iata:'HRG',name:'Hurghada',longName:'Hurghada (Egypt)',shortName:'Hurghada',area:'EU',resort:'Egypt',holidayGrid:'Hurghada'},
		{iata:'DLM',name:'Dalaman',longName:'Dalaman (Turkey)',area:'EU',resort:'Turkey'},
		
		{iata:'ATQ',name:'Amritsar (Raja Sansi)',area:'IN'}
		];

	var l=self.length-1;
	for (var i=l;i>=0;i--) self[self[i]['iata']]=self[i];
	return self;
	
	})();
	
var getAirportName=function(code,n){
	code=(code+"").toUpperCase();
	n=n || 'name';
	if (airports[code]) return airports[code][n] ? airports[code][n] : airports[code].name;
	else{
		for (var i=0;i<airports.length;i++){
			if ((airports[i].business && airports[i].business==code) || (airports[i].multiclass && airports[i].multiclass==code)) return airports[i][n] ? airports[i][n] : airports[i].name;
			}
		}
	return '';
	};
	
var getAirportProperty=function(code,p){
	code=(code+"").toUpperCase();
	if (airports[code]) return airports[code][p] ? airports[code][p] : '';
	else{
		for (var i=0;i<airports.length;i++){
			if ((airports[i].business && airports[i].business==code) || (airports[i].multiclass && airports[i].multiclass==code)) return airports[i][p] ? airports[i][p] : '';
			}
		}
	return '';
	};