


function class__GravinessSystem__(window)
{
	var classId = "GravinessSystem";

	var F = window[classId] = function() {};

	window.errorMessage = function(){return window.location.protocol!="file:"?function(message){window.alert(message);}:function(message){return;};}();

	F.createRandomId = function(){var c="";for(var i=0;i<=0xff;i++){switch(i){case 0x00:case 0x08:case 0x09:case 0x0a:case 0x0d:case 0x20:break;default:c+=String.fromCharCode(i);}}var k=c.length;return function(){var n=arguments.length==0?8+Math.floor(9*Math.random()):arguments[0];var r="";for(var i=0;i<n;i++)r+=c.charAt(Math.floor(k*Math.random()));return r;};}();

	{ // Onloadリスナー生成
		var $onload_vars = F.createRandomId();
		var $loaded = F.createRandomId();
		var $onloadListeners = F.createRandomId();

		F[$onload_vars] = new Object();
		F[$onload_vars][$loaded] = false;
		F[$onload_vars][$onloadListeners] = new Array();

		/**
		 * 
		 */
		window.isLoaded = function() {
			return F[$onload_vars][$loaded];
		};

		/**
		 * 
		 */
		window.addOnloadListener = function(listener) {
			if (typeof listener !== "function") {
				window.errorMessage(
					"IllegalArgumentsException@window.addOnloadListener");
				return void 0;
			}

			F[$onload_vars][$onloadListeners].push(listener);
		};

		/**
		 * 
		 */
		window.removeOnloadListener = function(listener) {
			if (typeof listener !== "function") {
				window.errorMessage(
					"IllegalArgumentsException@window.removeOnloadListener");
				return void 0;
			}

			var ls = F[$onload_vars][$onloadListeners];
			for (var i = 0; i < ls.length; i++) {
				if (ls[i] == listener) {
					ls[i] = null;
					return true;
				}
			}

			return false;
		};

		window.onload = function() {
			F[$onload_vars][$loaded] = true;

			var ls = F[$onload_vars][$onloadListeners];
			for (var i = 0; i < ls.length; i++)
				if (ls[i] != null)
					ls[i]();
		};
	}
} class__GravinessSystem__(window);




