Sea.util.hook
From WoWWiki
This article is a part of the documentation of the Sea function library
--
-- hook( string originalFunctionName, string newFunction, string hooktype )
--
-- Hooks a function.
--
-- Example:
-- hook("some_blizzard_function","my_function","before|after|hide|replace");
--
-- Calls "my_function" before/after "some_blizzard_function".
-- If type is "hide", calls "my_function" before all
-- others, and only continues if it returns true.
-- If type is "replace", calls "my_function" instead of the
-- original function, but will also call the original function
-- afterwards if it returns true.
-- You can also return a list of values to be returned,
-- but only if you don't return true as the first return.
-- Ex. return false, { val1, val2 };
-- This method is used so the hook can be later undone without
-- screwing up someone else's later hook.
--
Originally coded by Thott, Updated by Mugendai
