var Script = {
    includeJS : function (sId, fileUrl, source) 
    { 
        if(source != null)
        {
            if(!document.getElementById(sId))
            { 
                var oHead = document.getElementsByTagName('HEAD').item(0); 
                var oScript = document.createElement( "script" ); 
                oScript.language = "javascript"; 
                oScript.type = "text/javascript"; 
                oScript.id = sId; 
                oScript.defer = true; 
                oScript.text = source; 
                oHead.appendChild(oScript); 
            }else{
                document.getElementById(sId).text = source;
            }
        } 
    },
	_getHttpRequest : function() 
	{ 
		if ( window.XMLHttpRequest ) // Gecko 
			return new XMLHttpRequest() ; 
		else if ( window.ActiveXObject ) // IE 
		{
		    try{return new ActiveXObject("Msxml2.XMLHTTP");}
		    catch(e){return new ActiveXObject('Microsoft.XMLHTTP');}
	    }
	},
    load : function(sId, url)
    { 
        var parent = this;
        var oXmlHttp = parent._getHttpRequest() ; 
        oXmlHttp.OnReadyStateChange = function()  
        { 
            if ( oXmlHttp.readyState == 4 ) 
            {
                if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 ) 
                {
                    parent.includeJS( sId, url, oXmlHttp.responseText );
                } 
                else 
                { 
                    alert( 'XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')' ) ; 
                } 
            }
        }
        oXmlHttp.open('GET', url, false); 
        oXmlHttp.send(null); 
    } 
};