--Created By Valltron  21.02.2010 13:46
--Patched By EsAlexey  21.06.2010 20:02
--Patched by Wizardkir 09.09.2011 13:00
--Modyfied by Zergus 16.01.2013 10:07

--------------------------------------------------------------------------------
-- EVENT HANDLERS
--------------------------------------------------------------------------------

-- Событие обновления списка вещей у тогровца, список обновляется в том числе при выкупе серых вещей:
function OnVendorListUpdated()
	local currentBagSize = avatar.InventoryGetBaseBagSlotCount()
	for slotIndex = 0, currentBagSize - 1 do
		local itemId = avatar.GetInventoryItemId( slotIndex )
		if itemId then
			local itemInfo = avatar.GetItemInfo( itemId )
			if itemInfo.quality == ITEM_QUALITY_JUNK then
				if avatar.Sell then avatar.Sell( slotIndex, itemInfo.stackCount ) -- for older AO versions
				elseif avatar.SellItemToVendor then avatar.SellItemToVendor( itemId ) -- for AO 2.0.09+
				end
			end
		end
	end
	--автооткрытие белых сундучков в ремесленном кармане сумки
	for slotIndex=currentBagSize, currentBagSize*2-1do
		local ItemId=avatar.GetInventoryItemId( slotIndex )
		if ItemId then
			local itemInfo =avatar.GetItemInfo(ItemId) 
			if (itemInfo.boxInfo) and (itemInfo.quality==ITEM_QUALITY_GOODS) then 
				for boxIndex=1, itemInfo.stackCount do 
					avatar.OpenUnlockedBoxForItem(ItemId)
				end
			end
		end
	end
	-- Повторный вызов не нужен, иначе не получится выкупить нужные серые вещи:
	common.UnRegisterEventHandler(OnVendorListUpdated, "EVENT_VENDOR_LIST_UPDATED")
end

-- Событие начала разговора с NPC, который может быть торговцем:
function OnTalkStarted()
	-- Теперь можно начать следить за обновлением списка вещей у торговца:
	common.RegisterEventHandler(OnVendorListUpdated, "EVENT_VENDOR_LIST_UPDATED")
end

-- Событие окончания разговора с NPC, который может быть торговцем:
function OnTalkStopped()
	-- Теперь нужно прекратить следить за обновлением списка вещей у торговца, на всякий случай:
	common.UnRegisterEventHandler(OnVendorListUpdated, "EVENT_VENDOR_LIST_UPDATED")
end

--------------------------------------------------------------------------------
-- INITIALIZATION
--------------------------------------------------------------------------------
function Init()
	-- События:
	common.RegisterEventHandler(OnTalkStarted, "EVENT_TALK_STARTED")
	common.RegisterEventHandler(OnTalkStopped, "EVENT_TALK_STOPPED")
end
--------------------------------------------------------------------------------
Init()
--------------------------------------------------------------------------------