﻿// id,value option pairs
var mainOptions = [ 'hot,Hotel', 'car,Car', 'flt,Flight', 'cru,Cruise' ];
var packageOptions = [ 'flthot,Flight + Hotel', 'fltcar,Flight + Car', 'flthotcar,Flight + Hotel + Car', 'hotcar,Hotel + Car' ];
var instantiatedOptions = [ ];

function InitializeControl(optionsPanelId, viewPanelId)
{
	var date = new Date();
	var calendarStart = document.getElementById('CalS');
	
	if (calendarStart)
	{
		calendarStart.value = (date.getMonth() + 1) + '/' + date.getDate() + '/' + date.getFullYear();
	}
	
	calendarStart = null;
	
	var calendarEnd = document.getElementById('CalE');
	
	if (calendarEnd)
	{
		calendarEnd.value = (date.getMonth() + 1) + '/' + date.getDate() + '/' + (date.getFullYear() + 3);
	}
	
	calendarEnd = null;

	// clear any instantiated options
	instantiatedOptions.length = 0;
	if (optionsPanelId)
	{
		CreateOptions();
		var element = document.getElementById(optionsPanelId);
		
		if (element)
		{
			// render the options in the html
			element.innerHTML = RenderOptions(instantiatedOptions, viewPanelId);
			document.getElementById(viewPanelId).innerHTML = instantiatedOptions[0][0].get_View();
		}
		else
		{
			alert('Cannot find element');
		}
	}
	else
	{
		alert('elementId is null or undefined');
	}
}

function RenderOptions(options, viewPanelId)
{
	var renderedOptions = '';
	for (var i = 0; i < options.length; i++)
	{
		var divId = 'div_option_' + i;
		renderedOptions += '<div id="' + divId + '">';
		
		for (var k = 0; k < options[i].length; k++)
		{
			var optionId = 'input_option_' + i + '_' + k;
			var labelId = 'label_option_' + i + '_' + k;
			var checked = (k == 0 && i == 0) ? ' checked' : '';
			
			renderedOptions += '<div>';
			
			renderedOptions += CreateRadioButton(optionId, options[i][k].get_Value(), 'srch', checked, 'document.getElementById(\'' + viewPanelId + '\').innerHTML = FindOptionByValue(this.value).get_View();');
			renderedOptions += CreateLabel(options[i][k].get_OptionName(),null,labelId,optionId); 
			
			renderedOptions += '</div>';
		}
		
		renderedOptions += '</div>';
	}
	renderedOptions += '';
	
	return renderedOptions;
}

function CreateOptions()
{
	InstantiateOptions(mainOptions);
	InstantiateOptions(packageOptions);
}

function InstantiateOptions(optionsArray)
{
	var finalArray = [ ];
	for (var i = 0; i < optionsArray.length; i++)
	{
		var optionValues = optionsArray[i].split(',');
		finalArray.push(new Option(optionValues[0], optionValues[1]));
	}
	
	instantiatedOptions.push(finalArray);
}

function FindOptionByValue(value)
{
	for (var i = 0; i < instantiatedOptions.length; i++)
	{
		for (var k = 0; k < instantiatedOptions[i].length; k++)
		{
			if (instantiatedOptions[i][k].get_Value() == value)
			{
				return instantiatedOptions[i][k];
			}
		}
	}
}

function addLoadEvent(func)
{
	var oldonload = window.onload;  

	if (typeof window.onload != 'function')  
	{
	window.onload = func;
	}
	else 
	{
		window.onload = function()  
		{
			oldonload(); func()
		} 
	} 
	return false;
}