//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// J's handy common javascript library.
// http://jl.sg | j@jl.sg
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


// START
initialise();

function addResizeEvent(func)
{
	addResizeEventToWindow(window, func);
}
function addResizeEventToWindow(win, func)
{
	var old = win.onresize;
	if (typeof win.onresize != 'function')
	{
		win.onresize = func;
	}
	else
	{
		win.onresize = function() {
			if (old)
			{
				old();
			}
			func();
    	}
  	}
}

function addLoadEvent(func)
{
	addLoadEventToWindow(window, func);
}
function addLoadEventToWindow(win, func)
{
	var old = win.onload;
	if (typeof win.onload != 'function')
	{
		win.onload = func;
	}
	else
	{
		win.onload = function() {
			if (old)
			{
				old();
			}
			func();
    	}
  	}
}

// LOAD/INIT
function initialise()
{
	try
	{
		
		addLoadEvent(startLoad);
		addResizeEvent(OnResize);
		addStartHook();
		
		OnInitialisation();
	}
	catch(ex)
	{
		throw ex;
	}
}
var started = false;
function start()
{
	if (!started)
	{
		try
		{
			OnLoad();
		}
		catch(ex)
		{
		}
		started = true;
	}
}
function startLoad()
{
	try
	{
		start();
	}
	catch(ex)
	{
		throw ex;
	}
}
function addStartHook()
{
	if (document.addEventListener)
	{
		document.addEventListener("DOMContentLoaded", start, false);
	}
	/*@cc_on @*/
	/*@if (@_win32)
	document.write('<script defer type="text\/javascript" src="ie_onload.js"><\/script>');
	/*@end @*/
}

