---------------------------------------------------------------------------------
-- GLOBALS
---------------------------------------------------------------------------------
Global( "TimerMs", 1000 )
---------------------------------------------------------------------------------
-- ADDON FUNCTIONS
---------------------------------------------------------------------------------

function ToWS( str )
	return userMods.ToWString( str or "-" )
end

-- Разбиение входного числа на золото, серебро и медь
function ToMoney( value )
	local result = {Gold = 0, Silver = 0, Copper = 0}
	result.Gold = math.floor(value / 10000)
	value = value - result.Gold * 10000
	result.Silver = math.floor(value / 100)
	value = value - result.Silver * 100
	result.Copper = value
	return result
end

-- Собирает золото, серебро и медь в числовое значение
function FromMoney( value )
	local result =  getInt( value:GetChildChecked( "Gold" , false ):GetText() ) * 10000 +
			getInt( value:GetChildChecked( "Silver" , false ):GetText() ) * 100 +
			getInt( value:GetChildChecked( "Copper" , false ):GetText() )
	return result
end

-- Преобразование числового параметра в строку
function ItoStr( value )
	return common.FormatInt( value , "%d" )
end

-- Преобразование строчного параметра в число
function getInt( str )
	return common.GetIntFromWString( str )
end

-- Заполняет поля золото, серебро и медь виджета form данными из value [SetText]
function MoneyToFormT( form, value )
	form:GetChildChecked( "Gold" , false ):SetText( ItoStr( value.Gold ) )
	form:GetChildChecked( "Silver" , false ):SetText( ItoStr( value.Silver ) )
	form:GetChildChecked( "Copper" , false ):SetText( ItoStr( value.Copper ) )
end

-- Заполняет поля золото, серебро и медь виджета form данными из value [SetVal]
function MoneyToFormV( form, value )
	form:GetChildChecked( "Gold" , false ):SetVal( "value", ItoStr( value.Gold ) )
	form:GetChildChecked( "Silver" , false ):SetVal( "value", ItoStr( value.Silver ) )
	form:GetChildChecked( "Copper" , false ):SetVal( "value", ItoStr( value.Copper ) )
end

function OnEventEffectFinishedTimer( params )
	if params.wtOwner:IsEqual( mainForm:GetChildChecked( "bimbo" , false ) ) then
		mainForm:GetChildChecked( "bimbo" , false ):PlayFadeEffect( 0.0, 1.0, TimerMs, EA_SYMMETRIC_FLASH )
	end
end

function StartTimer( value )
	TimerMs = value
	mainForm:GetChildChecked( "bimbo" , false ):PlayFadeEffect( 0.0, 1.0, TimerMs, EA_SYMMETRIC_FLASH )
	common.RegisterEventHandler( OnEventEffectFinishedTimer, "EVENT_EFFECT_FINISHED" )
end

function StopTimer( value )
	common.UnRegisterEventHandler( OnEventEffectFinishedTimer , "EVENT_EFFECT_FINISHED" )
end