﻿function ACCDetailedPropManager(selectorManager, strRole, strManagerType)
{
	this.arrRadioSettings = new Array();
	this.arrCheckSettings = new Array();
	this.strRole = strRole;
	this.strManagerType = strManagerType;
	this.selectorManager = selectorManager;

	var me = this;
	
	this.AddRadioSetting = function(radioSetting)
	{
		me.arrRadioSettings[me.arrRadioSettings.length]=radioSetting;
		
		var rad = radioSetting.GetMainInput();
		AddEvent(rad, "click", me.SelectedValueChanged);
	}
	
	this.AddCheckSetting = function(checkSetting)
	{
		me.arrCheckSettings[me.arrCheckSettings.length]=checkSetting;
		
		var chk = checkSetting.GetMainInput();
		AddEvent(chk, "click", me.SelectedValueChanged);
	}
	
	this.GetArray = function()
	{
		if (me.arrRadioSettings.length > 0)
			return me.arrRadioSettings;
		if (me.arrCheckSettings.length > 0)
			return me.arrCheckSettings;
	}
	
	this.SetSelectedValue = function(value)
	{
		var arr = me.GetArray();
		var val = value;
		for (i = 0; i < arr.length; i++)
		{
			var rad = arr[i];
			var inp = rad.GetMainInput();
			if (me.arrRadioSettings.length > 0)		//rádiógombos manager
			{
				if (inp.value == value)
					rad.SetChecked(true);
				else	
					rad.SetChecked(false);
			}
			else									//checkboxos manager
			{
				if ( (val % 2) == 1 )
					rad.SetChecked(true);
				else	
					rad.SetChecked(false);
				val = Math.floor(val / 2);
			}
		}
	}
	
	this.GetSelectedValue = function()
	{
		var arr = me.GetArray();
		var ret = 0;
		for (i = 0; i < arr.length; i++)
		{
			var rad = arr[i].GetMainInput();
			if (me.arrRadioSettings.length > 0)		//rádiógombos manager
			{
				if (rad.checked)
					return rad.value;
			}
			else									//checkboxos manager
			{
				if (rad.checked)
					ret += Math.pow(2,i);
			}
		}
		return ret;
	}
	
	this.SetSelectedId = function(id)				//csak rádiógombnál
	{
		var arr = me.GetArray();
		for (i = 0; i < arr.length; i++)
		{
			var rad = arr[i];
			var inp = rad.GetMainInput();
			if (inp.id == id)
				rad.SetChecked(true);
			else 
				radSetChecked(false);
		}
	}
	
	this.GetSelectedId = function()					//csak rádiógombnál
	{
		var arr = me.GetArray();
		for (i = 0; i < arr.length; i++)
		{
			var rad = arr.GetMainInput();
			if (rad.checked)
				return rad.id;
		}
	}
	
	this.SetPedSettingValue = function(pedSetting)
	{
		me.SetSelectedValue(pedSetting[me.strRole]);
	}
	
	this.SelectedValueChanged = function()
	{
		me.selectorManager.ManagerValueChanged(me.strRole, me.GetSelectedValue());
	}
	
	this.Init = function()
	{
		me.selectorManager.AddDetailedManager(me);
	}
	
	me.Init();
}