// JS for RouteNgItemInput
var g_RouteLocationNgItemInputs = new Array();

function RLI_NgItem_Find(ngItemInputId)
{
	return g_RouteLocationNgItemInputs[ngItemInputId];
}

function RLI_NgItem_Add(ngItemInput)
{
	g_RouteLocationNgItemInputs[ngItemInput.Id] = ngItemInput;
}

function RouteNgItemInput_State()
{
	this.Value='';
	this.Text='';
}

function RouteNgItemInput()
{
	// extends base:
	this._base = RouteInputBase;
	this._base();

	// member variables:
	var Id;
	var State;
	var Map;

	// methods:
	this.SetState = SetState;
	this.GetState = GetState;
	this.GetAsb = GetAsb;
	this.GetSelectedRecordId = GetSelectedRecordId;
	this.IsValid = IsValid;
	this.CreateSelectedSite = CreateSelectedSite;
	this.SetSite = SetSite;
	this.AttachToChildControlEvents = AttachToChildControlEvents;
	this.Clear = Clear;

	// overrides base:
	this.Validate = Validate;
	this.GetLocation = GetLocation;
		
	// single-cast events:
	this.OnBlur = function(){};
	this.OnFocus = function(){};
	
	// init members:
	this.State = new RouteNgItemInput_State();
	
	// attach to child control events when document has loaded:
	var othis = this;
	mapa_AttachEvent(window,'load',function()
	{
		othis.AttachToChildControlEvents();
	});
	
	// method bodies:
	function Clear()
	{
		var cleanState=  new RouteNgItemInput_State();
		this.SetState(cleanState);
	}
	
	function AttachToChildControlEvents()
	{
		var oAsb = this.GetAsb();
		var othis = this;
		oAsb.OnAsbBlurred = function(){othis.OnBlur();};
		oAsb.OnAsbFocused = function(){othis.OnFocus();};
	}
	
	function CreateSelectedSite(fOnAfterCreated)
	{
		var asb = this.GetAsb();
		var selectedRecordId = asb.GetSelectedValue();
		var selectedRecordName = asb.GetTextBoxValue();
		
		MapSites.Create.NgItem.ByIdAndName(fOnAfterCreated,selectedRecordId,selectedRecordName);
	}

	function SetSite(oSite)
	{
		var state = new RouteNgItemInput_State();

		state.Text = oSite.NgItemHebName;
		state.Value = oSite.NgItemRecordId;

		this.SetState(state);		
	}
	
	

	function GetSelectedRecordId()
	{
		var asb = this.GetAsb();
		return asb.GetSelectedValue();
	}

	function GetAsb()
	{
		var asb = asbGetObj(this.Id + '_txtNgItem');
		return asb;
	}	
	
	function IsValid()
	{
		var recordId = this.GetSelectedRecordId();
		return (recordId != '');
	}		

	function Validate()
	{
		if (this.IsValid()) return true;
		
		alert('יש לבחור רשומה');
		return false;
	}
	

	function GetLocation()
	{
		var recordId = this.GetSelectedRecordId();
		return new NgRecordLocation(recordId);
	}

	function GetState()
	{
		// build state:
		var state = this.State;
		var asb = this.GetAsb();
		state.Value = asb.GetSelectedValue();
		state.Text = asb.GetTextBoxValue();
		
		return state;
	}
	
	function SetState(state)
	{
		var asb = this.GetAsb();
		asb.GetTextBoxCtrl().value=state.Text;
		asb.SetSelectedValue(state.Value);
	}


}
