﻿var xmlHttp
var identifier
var loading = false;
var updatedNode
var savedInnerHTML
var mozilla = false

function GetComponentNode(htmldocument, alias) 
{
    return htmldocument.getElementById("alias:" + alias);    
}

function GetHTML(pageUrl, alias)
{ 
    identifier = alias
    updatedNode = GetComponentNode(document, alias)
    if(updatedNode != null) 
    {
        savedInnerHTML = updatedNode.innerHTML
        var url= pageUrl + "&ajax=" + alias;
        xmlHttp=GetXmlHttpObject(stateChanged)
        xmlHttp.open("GET", url , true)
        xmlHttp.send(null)
    }
} 

function stateChanged() 
{ 
    if((xmlHttp.readyState==1 || xmlHttp.readyState=="loading") && loading == false) 
    {
        loading = true;
        updatedNode.innerHTML = "<div style='position:absolute;padding:3px;'><img height='18' src='./ajax/loading.gif' /></div>" + updatedNode.innerHTML
    }  
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
    { 
        var response = xmlHttp.responseText
        if(response != null) 
        {
            if (mozilla == true)
            {
                updatedNode.nextSibling.innerHTML = ""            
            }
            updatedNode.innerHTML = response
        }
        loading = false;
    }
} 


function GetXmlHttpObject(handler)
{ 
	var objXmlHttp=null

	if (navigator.userAgent.indexOf("Opera")>=0)
	{
		alert("This example doesn't work in Opera") 
		return 
	}
	if (navigator.userAgent.indexOf("MSIE")>=0)
	{ 
		var strName="Msxml2.XMLHTTP"
		if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
		{
		    strName="Microsoft.XMLHTTP"
		} 
		try
		{ 
		    objXmlHttp=new ActiveXObject(strName)
		    objXmlHttp.onreadystatechange=handler 
		    return objXmlHttp
	    } 
	    catch(e)
	    { 
	        alert("Error. Scripting for ActiveX might be disabled") 
	        return 
	    } 
    }   
    if (navigator.userAgent.indexOf("Mozilla")>=0)
    {
        mozilla = true
        objXmlHttp=new XMLHttpRequest()
        objXmlHttp.onload=handler
        objXmlHttp.onerror=handler 
        objXmlHttp.overrideMimeType('text/xml')
        return objXmlHttp
    }
} 