var g_oHandleDynamic = g_oHandleDynamic || 0;

if (g_oHandleDynamic == 0)
{
	var g_oHandleDynamic = {

		LoadExternalScript :
			function(Path)
			{
				var oHead		= document.getElementsByTagName('bead').item(0);
				
				var oNewScript	= document.createElement("script");
				oNewScript.type = "text/javascript";
				oScript.src		= Path;
				oHead.appendChild(oScript);
			},

		ReplaceInnerHTML :
			function(Object, NewHTML)
			{
				var arrElements;
				
					// Handle old
				
				arrElements = getAllChildren(Object);
				
				if (arrElements)
				{								
					for (var i = 0; i < arrElements.length; i++)
					{
						if (!arrElements[i].getAttribute)
							continue;
						
						var Onunload = arrElements[i].getAttribute("data-dynamic-onunload");
						if (Onunload)
						{						
							eval("arrElements[i].__tmpFunction = function() { " + Onunload + "; }");
							arrElements[i].__tmpFunction();
							arrElements[i].setAttribute("onunload", "0");
						}
					}
				}
				
					// Replace
				
				Object.innerHTML = NewHTML;
				
					// Handle new
				
				arrElements = getAllChildren(Object);
				
				if (arrElements)
				{
					for (var i = 0; i < arrElements.length; i++)
					{						
						if (!arrElements[i].getAttribute)
							continue;
								
						var Onload = arrElements[i].getAttribute("data-dynamic-onload");
						if (Onload)
						{
							eval("arrElements[i].__tmpFunction = function() { " + Onload + "; }");
							arrElements[i].__tmpFunction();
							arrElements[i].setAttribute("onload", "0");
						}
					
						if (arrElements[i].tagName == "SCRIPT")
						{
							var ScriptLocation = arrElements[i].src;
							if (ScriptLocation)
							{
							//	alert(ScriptLocation);
								var headID		= document.getElementsByTagName("head")[0];         
								var newScript	= document.createElement('script');
								newScript.type	= 'text/javascript';
								newScript.src	= ScriptLocation;
								headID.appendChild(newScript);
							}
							else
							{
								eval(arrElements[i].innerHTML);
							}
						}
					}
				}
				
				return 0;
			},
			
		CreateHttpObject :
			function ()
			{
				xmlhttp = new XMLHttpRequest();
				return xmlhttp;
			},
							
		LoadXMLDocument :
			function (variables)
			{					
				variables["Asynch"]		= variables["Asynch"]		|| false;
				variables["Post"]		= variables["Post"]			|| "";
				variables["onSuccess"]	= variables["onSuccess"]	|| 0;
				variables["onFailure"]	= variables["onFailure"]	|| 0;
				variables["Variable"]	= variables["Variable"]		|| 0;
				
				var xmlhttp = this.CreateHttpObject();
	
				if (variables["Asynch"])
				{
					xmlhttp.___onSuccess	= variables["onSuccess"];
					xmlhttp.___onFailure	= variables["onFailure"];
					xmlhttp.___variable		= variables["Variable"];
				
					xmlhttp.onreadystatechange = function()
					{
						if (this.readyState == 4)
						{												
							if (xmlhttp.status == 200 && this.responseXML && this.responseXML.documentElement)
							{
								eval(this.___onSuccess + '(this.responseXML.documentElement, this.___variable)');
							}
							else
							{
								eval(this.___onFailure + '(this.responseText, this.___variable)');
							}
						}
					}
				}
				
				if (variables["Post"] != "")
				{
					xmlhttp.open("POST", variables["Get"], variables["Asynch"]);
					xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
					xmlhttp.setRequestHeader("Content-length", variables["Post"].length);
					xmlhttp.setRequestHeader("Connection", "close");
					xmlhttp.send(variables["Post"]);
				}
				else
				{
					xmlhttp.open("GET", variables["Get"], variables["Asynch"]);
					xmlhttp.send(null);
				}
	
				if (!variables["Asynch"])
				{
					var giveBack = xmlhttp.responseXML;

					if (giveBack && giveBack.documentElement)
						giveBack = giveBack.documentElement;
					else
						giveBack = 0;
				
					if (callback)
						callback(giveBack, callbackVar);
						
					return giveBack;
				}
	
			return 0;
			},
			
		PageHasLoaded		: false,
		PageLoadFunctions	: [],
			
		AddLoadEvent :
			function (func)
			{
				if (this.PageHasLoaded)
				{
					func();
					return;
				}
		  
				this.PageLoadFunctions.push(func);
			},
			
		RunLoadEvents :
			function ()
			{
				this.PageHasLoaded = true;
			
				for (I = 0; I < this.PageLoadFunctions.length; I++)
				{
					this.PageLoadFunctions[I]();
				}
				
				var arrElements = getAllChildren(document);
				for (var i = 0; i < arrElements.length; i++)
				{					
					if (!arrElements[i].getAttribute)
						continue;
				
					var Onload = arrElements[i].getAttribute("data-dynamic-onload");
					
					if (Onload)
					{
						arrElements[i].setAttribute("data-dynamic-onload", "0");
						eval("arrElements[i].__tmpFunction = function() { " + Onload + "; }");
						arrElements[i].__tmpFunction();
					}
				}
			}

	};
	
	window.onload = function()
	{
		g_oHandleDynamic.RunLoadEvents();
	}
};
