// Gennady Yurkin
// $Id: GrillInfo.js,v 1.1.2.4.2.17 2007/05/11 12:31:45 akovalev Exp $

var GrillInfo = Base.extend
({
	GrillsHash : null,
	
	GrillList  : null,
	Covered    : null,
	GrillType  : null,
	Fire       : null,
	PrepTime   : null,
	GITHIS     : null,
	
	constructor : function(griilsHash, grillList, covered, grillType, fire, prepTime)
	{
		this.GrillsHash = griilsHash;
		this.GrillList  = grillList;
		this.Covered    = covered;
		this.GrillType  = grillType;
		this.Fire       = fire;
		this.PrepTime   = prepTime;
		
		GITHIS = this;
	},
	
	SetSelectedGrill : function(grill)
	{
		GITHIS.SetSelectedValue(GITHIS.GrillList, grill.AssociatedGrillId);
		GITHIS.UpdateView(grill);
	},
	
	SaveGrillInfo : function(location)
	{
			Anthem_InvokeControlMethod
			(
				"cookoutOptions:grillInfo", 
				'SaveCurrentSelectedGrill', 
				[cookoutCalculator.GetReturnState(false)], 
				function(result)
				{
					if(result.error != null) Anthem_Error(result);
					else ChangeLocation(location);
				}
			);
	},
	
	GrillChanged : function(sender)
	{
		var selectedGrill = GITHIS.GetSelectedGrill(GITHIS.GetSelectedValue(sender));
		GITHIS.UpdateView(selectedGrill);
		
		fnUpdateVirtualGrill(selectedGrill.UpdateXml);
		
		if(IsTimelineSelected) Anthem_InvokeControlMethod("cookoutOptions:grillInfo", 'SelectedGrillChanged', [ get_grillList().selectedIndex ], function(result){} );return false;
	},

	UpdateView : function(selectedGrill)
	{
		GITHIS.SetSelectedValue(GITHIS.Fire, selectedGrill.Fire.Id);
		GITHIS.SetSelectedValue(GITHIS.PrepTime, selectedGrill.PrepTime.Id);
		GITHIS.SetInput(GITHIS.Covered, selectedGrill.Covered);
		GITHIS.GrillType.innerHTML = selectedGrill.GrillType.Name;
	},
	
	CoveredChanged : function(sender)
	{
		return IsTimelineSelected;
	},
	
	FireChanged : function(sender)
	{
		if(IsTimelineSelected) Anthem_InvokeControlMethod("cookoutOptions:grillInfo", 'FireChanged', [get_fireList().selectedIndex], function(result){} );
		return IsTimelineSelected;
	},
	
	PrepTimeChanged : function(sender)
	{
		if(IsTimelineSelected) Anthem_InvokeControlMethod("cookoutOptions:grillInfo", 'PrepTimeChanged', [get_prepTimeList().selectedIndex], function(result){} );
		return IsTimelineSelected;
	},
	
	GetSelectedGrill : function(id)
	{
		for(var grillId in GITHIS.GrillsHash)
			if(GITHIS.GrillsHash[grillId].Id == id) return GITHIS.GrillsHash[grillId];
	},
	
	GetSelectedValue : function(list)
	{
		return list.options[list.selectedIndex].value;
	},
	
	SetSelectedValue : function(list, value)
	{
		for(var i = 0; i < list.length; i++)
		{
			if(list.options[i].value == value)
			{
				list.options[i].selected = true;
				break;
			}
		}
	},

	UpdateGrillInfo : function()
	{
		var selectedGrill = GITHIS.GetSelectedGrill(GITHIS.GetSelectedValue(GITHIS.GrillList));
		GITHIS.UpdateView(selectedGrill);
		
		fnUpdateVirtualGrill(selectedGrill.UpdateXml);
	},

	SetInput : function(inputContainer, strIsCovered)
	{
		var inputList = inputContainer.getElementsByTagName('input');
		var covered = new Array(2);

		if(inputList != null)
		{
			var t = 0;
			for(var i = 0; i < inputList.length; i++)
			{
				if(inputList[i].type == 'radio')
				{
					//inputList[i].checked = true;
					covered[t++]= inputList[i];
				}
			}
			
			if(strIsCovered)
			{
				covered[0].checked = true;
				covered[1].checked = false;
			}
			else
			{
				covered[0].checked = false;
				covered[1].checked = true;
			}
		}
	}
});

var grillInfo = null;

function InitGrillInfo()
{
	var grillList = get_grillList();
	var covered   = get_covered();
	var grillType = get_grillType();
	var fire      = get_fireList();
	var prepTime  = get_prepTimeList();
	
	grillInfo = new GrillInfo(grillsList, grillList, covered, grillType, fire, prepTime);
}
