ValueParser.prototype = {
	Parse : function(value)
	{
		return (this.baseUrl + this.GetGoToValue(value) + this.GetParameters(value));
	},
	GetGoToValue : function(value)
	{
		switch (value)
		{
			case 'hot':
				return 'HOTSEARCH';
			case 'flt':
			case 'fltcar':
				return 'EXPFLTWIZ&LOAD=1';
			case 'car':
				return 'CARSEARCH';
			case 'cru':
				return 'CRUISESEARCH';
			case 'flthot':
			case 'flthotcar':
			case 'hotcar':
				return 'PACKAGEWIZ';
		}
	},
	GetParameters : function(value)
	{
		switch (value)
		{
			case 'hot':
				var parameters = '&SearchType=Destination&CityName=';
				parameters += document.getElementById('destination').value;
				
				var checkInDate = document.getElementById('fdt').value;
				if (checkInDate != 'mm/dd/yy')
				{
					parameters += '&InDate=';
					parameters += checkInDate;
				}
				
				var checkOutDate = document.getElementById('tdt').value;
				if (checkOutDate != 'mm/dd/yy')
				{
					parameters += '&OutDate=';
					parameters += checkOutDate;
				}
				
				var rooms = document.getElementById('rooms').value;
				parameters += '&NumRoom=';
				parameters += rooms;
				
				for (var i = 0; i < rooms; i++)
				{
					var qsIdAttr = i == 0 ? '' : i + 1;
					var idAttr = i == 0 ? '' : i;
					
					parameters += '&NumAdult' + qsIdAttr + '=';
					parameters += document.getElementById('adults' + idAttr).value;
					
					var children = document.getElementById('children' + idAttr).value;
					parameters += '&NumChild' + qsIdAttr + '=';
					parameters += children;
					
					if (children > 0)
					{
						var roomQS = i == 0 ? '' : 'Rm' + (i + 1);
						
						for (var k = 0; k < children; k++)
						{						
							parameters += '&' + roomQS + 'Child' + (k + 1) + 'Age=';
							parameters += document.getElementById('childAge' + (i + 1) + '_' + k).value;
						}
					}
				}
				
				return parameters;
			case 'flt':
				var parameters = '&TripType=Roundtrip';
				
				parameters += '&FrAirport=';
				parameters += document.getElementById('from').value;
				parameters += '&ToAirport=';
				parameters += document.getElementById('to').value;
				
				var departingDate = document.getElementById('fdt').value;
				if (departingDate != 'mm/dd/yy')
				{
					parameters += '&FromDate=';
					parameters += departingDate;
					parameters += '&FromTime=';
					parameters += document.getElementById('fromTime').value;
				}
				
				var returningDate = document.getElementById('tdt').value;
				if (returningDate != 'mm/dd/yy')
				{
					parameters += '&ToDate=';
					parameters += returningDate;
					parameters += '&ToTime=';
					parameters += document.getElementById('toTime').value;
				}
				
				parameters += '&NumAdult=';
				parameters += document.getElementById('adults').value;
				
				parameters += '&NumSenior=';
				parameters += document.getElementById('seniors').value;
			
				var children = document.getElementById('children').value;
				parameters += '&NumChild=';
				parameters += children;
				
				if (children > 0)
				{
					for (var k = 0; k < children; k++)
					{
						parameters += '&Age' + (k + 1) + '=';
						parameters += document.getElementById('childAge1_' + k).value;
					}
				}
				
				return parameters;
			case 'car':
				var parameters = '&SearchType=Airport&PickUpLoc=';
				parameters += document.getElementById('destination').value;
				
				parameters += '&Class=';
				parameters += document.getElementById('carType').value;
				
				var pickupDate = document.getElementById('fdt').value;
				if (pickupDate != 'mm/dd/yy')
				{
					parameters += '&FromDate=';
					parameters += pickupDate;
					parameters += '&PickupTime=';
					parameters += document.getElementById('fromTime').value;
				}
				
				var dropOffDate = document.getElementById('tdt').value;
				if (dropOffDate != 'mm/dd/yy')
				{
					parameters += '&ToDate=';
					parameters += dropOffDate;
					parameters += '&DropTime=';
					parameters += document.getElementById('toTime').value;
				}
				
				return parameters;
			case 'cru':
				var parameters = '&Destination=';
				parameters += document.getElementById('destination').value;
				
				parameters += '&FromDate=';
				parameters += document.getElementById('departureMonth').value;
				
				parameters += '&CruiseLine=';
				parameters += document.getElementById('cruiseLine').value;
				
				return parameters;
			case 'flthot':
				var parameters = '&PackageType=2';
				
				parameters += '&FrAirport=';
				parameters += document.getElementById('from').value;
				parameters += '&DestName=';
				parameters += document.getElementById('to').value;
				
				var departingDate = document.getElementById('fdt').value;
				if (departingDate != 'mm/dd/yy')
				{
					parameters += '&FromDate=';
					parameters += departingDate;
					parameters += '&FromTime=';
					parameters += document.getElementById('fromTime').value;
				}
				
				var returningDate = document.getElementById('tdt').value;
				if (returningDate != 'mm/dd/yy')
				{
					parameters += '&ToDate=';
					parameters += returningDate;
					parameters += '&ToTime=';
					parameters += document.getElementById('toTime').value;
				}
				
				var rooms = document.getElementById('rooms').value;
				parameters += '&NumRoom=';
				parameters += rooms;
				
				for (var i = 0; i < rooms; i++)
				{
					var qsIdAttr = i == 0 ? '' : i + 1;
					var idAttr = i == 0 ? '' : i;
					
					parameters += '&NumAdult' + qsIdAttr + '=';
					parameters += document.getElementById('adults' + idAttr).value;
					
					parameters += '&NumSenior' + qsIdAttr + '=';
					parameters += document.getElementById('seniors' + idAttr).value;
					
					var children = document.getElementById('children' + idAttr).value;
					parameters += '&NumChild' + qsIdAttr + '=';
					parameters += children;
					
					if (children > 0)
					{
						var roomQS = i == 0 ? '' : 'Rm' + (i + 1);
						
						for (var k = 0; k < children; k++)
						{						
							parameters += '&' + roomQS + 'Child' + (k + 1) + 'Age=';
							parameters += document.getElementById('childAge' + (i + 1) + '_' + k).value;
						}
					}
				}
				
				return parameters;
			case 'fltcar':
				var parameters = this.GetParameters('flt');
				
				parameters += '&BundType=5';
				parameters += '&CarClass=';
				parameters += document.getElementById('carType').value;
				
				return parameters;
			case 'flthotcar':
				var parameters = '&PackageType=1';
				
				parameters += '&FrAirport=';
				parameters += document.getElementById('from').value;
				parameters += '&DestName=';
				parameters += document.getElementById('to').value;
				
				var departingDate = document.getElementById('fdt').value;
				if (departingDate != 'mm/dd/yy')
				{
					parameters += '&FromDate=';
					parameters += departingDate;
					parameters += '&FromTime=';
					parameters += document.getElementById('fromTime').value;
				}
				
				var returningDate = document.getElementById('tdt').value;
				if (returningDate != 'mm/dd/yy')
				{
					parameters += '&ToDate=';
					parameters += returningDate;
					parameters += '&ToTime=';
					parameters += document.getElementById('toTime').value;
				}
				
				var rooms = document.getElementById('rooms').value;
				parameters += '&NumRoom=';
				parameters += rooms;
				
				for (var i = 0; i < rooms; i++)
				{
					var qsIdAttr = i == 0 ? '' : i + 1;
					var idAttr = i == 0 ? '' : i;
					
					parameters += '&NumAdult' + qsIdAttr + '=';
					parameters += document.getElementById('adults' + idAttr).value;
					
					parameters += '&NumSenior' + qsIdAttr + '=';
					parameters += document.getElementById('seniors' + idAttr).value;
					
					var children = document.getElementById('children' + idAttr).value;
					parameters += '&NumChild' + qsIdAttr + '=';
					parameters += children;
					
					if (children > 0)
					{
						var roomQS = i == 0 ? '' : 'Rm' + (i + 1);
						
						for (var k = 0; k < children; k++)
						{						
							parameters += '&' + roomQS + 'Child' + (k + 1) + 'Age=';
							parameters += document.getElementById('childAge' + (i + 1) + '_' + k).value;
						}
					}
				}
				
				return parameters;
			case 'hotcar':
				var parameters = '&PackageType=3';
				
				parameters += '&DestName=';
				parameters += document.getElementById('from').value;
				
				var checkInDate = document.getElementById('fdt').value;
				if (checkInDate != 'mm/dd/yy')
				{
					parameters += '&FromDate=';
					parameters += checkInDate;
					parameters += '&FromTime=';
					parameters += document.getElementById('fromTime').value;
				}
				
				var checkOutDate = document.getElementById('tdt').value;
				if (checkOutDate != 'mm/dd/yy')
				{
					parameters += '&ToDate=';
					parameters += checkOutDate;
					parameters += '&ToTime=';
					parameters += document.getElementById('toTime').value;
				}
				
				var rooms = document.getElementById('rooms').value;
				parameters += '&NumRoom=';
				parameters += rooms;
				
				for (var i = 0; i < rooms; i++)
				{
					var qsIdAttr = i == 0 ? '' : i + 1;
					var idAttr = i == 0 ? '' : i;
					
					parameters += '&NumAdult' + qsIdAttr + '=';
					parameters += document.getElementById('adults' + idAttr).value;
					
					var children = document.getElementById('children' + idAttr).value;
					parameters += '&NumChild' + qsIdAttr + '=';
					parameters += children;
					
					if (children > 0)
					{
						var roomQS = i == 0 ? '' : 'Rm' + (i + 1);
						
						for (var k = 0; k < children; k++)
						{						
							parameters += '&' + roomQS + 'Child' + (k + 1) + 'Age=';
							parameters += document.getElementById('childAge' + (i + 1) + '_' + k).value;
						}
					}
				}
				
				return parameters;
		}
	}
}