	function createBox(beforeTr, file, folder, js, css, parameter, type)
	{
		if(beforeTr.tagName == undefined)
			beforeTr = document.getElementById(beforeTr);

		var trElement = document.createElement("tr");
		var tdElement = document.createElement("td");
		var divElement = document.createElement("div");

		divElement.setAttribute("id", file+"Div");
		trElement.setAttribute("id", file+"Tr");
		trElement.setAttribute("objName", file);
		trElement.setAttribute("objFolder", folder);
		trElement.style.display = "none";

		trElement.appendChild(tdElement);
		tdElement.appendChild(divElement);

		if(beforeTr.tagName == "TABLE")
		{
			if(beforeTr.firstChild.tagName != "TBODY")
			{
				var tbodyElement = document.createElement("tbody");
				beforeTr.insertBefore(tbodyElement, beforeTr.firstChild);
			}

			beforeTr.firstChild.insertBefore(trElement, beforeTr.firstChild.firstChild);
		}
		else beforeTr.parentNode.insertBefore(trElement, beforeTr.nextSibling);

		lastObj.setObj(divElement);

		loadBox(divElement, file, folder, js, css, parameter, type);
	}

	function loadOnceBox(insertDiv, file, folder, js, css, parameter, type)
	{
		var loadObj = new loadClass(insertDiv, file, folder, js, css, parameter);
		loadObj.slideShow = true;
		loadObj.checkHide = true;
		if(type != undefined)
			loadObj.type = type;

		boxLoader.AddBox(loadObj);
	}

	function loadBox(insertDiv, file, folder, js, css, parameter, type)
	{
		var loadObj = new loadClass(insertDiv, file, folder, js, css, parameter);
		loadObj.slideShow = true;
		if(type != undefined)
			loadObj.type = type;

		boxLoader.AddBox(loadObj);
	}

	function loadBoxKeng(insertDiv, file, folder, js, css, parameter, type)
	{
		var loadObj = new loadClass(insertDiv, file, folder, js, css, parameter);
		if(type != undefined)
			loadObj.type = type;

		boxLoader.AddBox(loadObj);
	}

	function loadClass(insertDiv, file, folder, js, css, parameter)
	{
		if(insertDiv.tagName == undefined)
			this.insertDiv = document.getElementById(insertDiv);
		else this.insertDiv = insertDiv;

		this.file = file;
		this.folder = folder;

		if(js == true)
			this.js = true;
		else this.js = false;

		if(css == true)
			this.css = true;
		else this.css = false;

		if(parameter == undefined)
			this.parameter  = "";
		else this.parameter = "&"+parameter;

		this.slideShow = false;
		this.reverseObj = false;
		this.floatBox = false;

		this.checkHide = false;

		this.type = "box";
		this.method = "GET";
	}

	var boxLoader = new Object();
	boxLoader.IsLoading = false;
	boxLoader.Queue = new Array();
	boxLoader.AddBox = function(box)
	{
		boxLoader.Queue[boxLoader.Queue.length] = box;
		if (!this.IsLoading)
			this.CheckQueue();
	}
	boxLoader.CheckQueue = function()
	{
		if(this.Queue.length > 0)
		{
			this.IsLoading = true;
			this.LoadBox(this.Queue[0]);
		}
		else
		{
			this.IsLoading = false;
		}
	}
	boxLoader.LoadBox = function(box)
	{
		if(box.checkHide)
		{
			try
			{
				if(box.insertDiv.parentNode.parentNode.style.display != "none")
				{
					minimize.reverseObj(box.insertDiv);
					boxLoader.RemoveBox();
					return;
				}
			}
			catch (e){}
		}

		if(box.js) {
			scriptLoader.AddScript(objects_path+box.folder+"script."+box.file+".js");
			box.js = false;
		}
		if(box.css) {
			scriptLoader.AddScript(objects_path+box.folder+"style."+box.file+".css");
			box.css = false;
		}

		if(!box.js && !box.css) {
			if(box.method == "GET") {
				makeHttpRequest("/ajax/"+box.type+".php?file="+box.file+"&folder="+box.folder+box.parameter, "boxLoader.OnLoad", false);
			} else {
				makeHttpRequest("/ajax/"+box.type+".php?file="+box.file+"&folder="+box.folder, "boxLoader.OnLoad", false, "POST", box.parameter);
			}
		}
	}
	boxLoader.RemoveBox = function()
	{
		var newQueue = new Array();
		for(i=1;i<this.Queue.length;i++)
			newQueue[i-1] = this.Queue[i];
		this.Queue = newQueue;

		setTimeout("boxLoader.CheckQueue()",10);
	}
	boxLoader.OnLoad = function(responseText)
	{
		if(this.Queue[0].slideShow || this.Queue[0].reverseObj)
		{
			var parentNode	= this.Queue[0].insertDiv.parentNode;
			var nextSibling	= this.Queue[0].insertDiv.nextSibling;
			var divElement	= parentNode.removeChild(this.Queue[0].insertDiv);

			divElement.style.position	= "static";
			divElement.style.overflow	= "hidden";
			divElement.style.scroll		= "no";
			divElement.style.display	= "";
			//divElement.style.height	= "1px";

			divElement.innerHTML	= responseText;

			parentNode.insertBefore(divElement, nextSibling);
		}

		if(this.Queue[0].floatBox)
		{
			setFloatBox();
		}

		if(this.Queue[0].slideShow)
		{
			//minimize.showObj(this.Queue[0].insertDiv);
			alpha.showObj(this.Queue[0].insertDiv);
		}
		else if(this.Queue[0].reverseObj)
		{
			minimize.reverseObjOne(this.Queue[0].insertDiv);
		}
		else
		{
			this.Queue[0].insertDiv.innerHTML = responseText;
		}

		try
		{
			eval(this.Queue[0].file+"_init();");
		}
		catch (e){}

		try
		{
			templateNewBox(this.Queue[0].insertDiv);
		}
		catch (e){}

		boxLoader.RemoveBox();
	}

	var scriptLoader = new Object();
	scriptLoader.IsLoading = false;
	scriptLoader.Queue = new Array();
	scriptLoader.AddScript = function(A)
	{
		var e = document.getElementsByTagName("head")[0].firstChild;
		while(e != null)
		{
			if(e.tagName == "LINK")
			{
				if(e.href == A)
					return;
			}
			else if(e.tagName == "SCRIPT")
			{
				if(e.src == A)
					return;
			}

			e = e.nextSibling;
		}

		scriptLoader.Queue[scriptLoader.Queue.length] = A;
		if (!this.IsLoading)
			this.CheckQueue();
	}
	scriptLoader.CheckQueue = function()
	{
		if(this.Queue.length > 0)
		{
			this.IsLoading = true;
			var A = this.Queue[0];
			var B = new Array();
			for(i=1;i<this.Queue.length;i++)
				B[i-1] = this.Queue[i];
			this.Queue = B;
			this.LoadFile(A);
		}
		else
		{
			this.IsLoading = false;
			if(this.OnEmpty)
				this.OnEmpty();
			boxLoader.CheckQueue();
		}
	}
	scriptLoader.LoadFile = function(A)
	{
		var e;
		if(A.lastIndexOf('.css') > 0)
		{
			e = document.createElement('LINK');
			e.rel = 'stylesheet';
			e.type = 'text/css';
		}
		else
		{
			e = document.createElement("script");
			e.type = "text/javascript";
		}
		document.getElementsByTagName("head")[0].appendChild(e);
		if(e.tagName == 'LINK')
		{
			if(!firefox) 
				e.onload = scriptLoader_OnLoad;
			else scriptLoader.CheckQueue();
			e.href = A;
		}
		else
		{
			e.onload = e.onreadystatechange=scriptLoader_OnLoad;
			e.src = A;
		}
	}
	function scriptLoader_OnLoad()
	{
		if (this.tagName == 'LINK' || !this.readyState || this.readyState == 'loaded') 
			scriptLoader.CheckQueue();
	}