﻿function addEvent(element, event, func, capture) {
	if (element.addEventListener) {
		element.addEventListener(event, func, capture);
		return true;
	} else if (element.attachEvent) {
		return element.attachEvent('on' + event, func);
	}
	return false;
}

function include(src, loadfunc)
{
	var scripts = document.getElementsByTagName("script");
	for (var i = 0; i != scripts.length; ++i)
	{
		if (scripts[i].src == src)
		{
			loadfunc();
			return;
		}
	}
	var script = document.createElement("script");
	script.type = "text/javascript";
	script.src = src;
	addEvent(script, "load", loadfunc, false);
	document.getElementsByTagName("head")[0].appendChild(script);
}

function chainInclude(srcs, endfunc)
{
	if (0 == srcs.length)
	{
		endfunc();
		return;
	}
	var current = srcs[0];
	srcs.shift();
	include(current, function () { chainInclude(srcs, endfunc); });
}

