var g_objEventManager = new Array();
var g_objFGMMap = new Array();
var g_objChangeMap = new Object();

function AddInputControlListener(strEventName,CallbackFunction)
{

	AddGenericListener(strEventName,CallbackFunction);
	return;
	if (fInitBindings)
	{
		var dropDownControlName= "VID" + strControlID;
		var objControl = document.getElementsByName(dropDownControlName);
		var objEventArgs = new EventArgs(strEventName);
		if (objControl)
		{
			objEventArgs.objControl=objControl[0];
			RaiseEvent(objEventArgs);
		}
		
	}
}

function AddGenericListener(strEventName,CallbackFunction)
{
	var obj  = new Object();
	obj.strEventName=strEventName;
	obj.CallbackFunction=CallbackFunction;
	g_objEventManager[g_objEventManager.length]=obj;
}

function RaiseChangedEvent(strControlID)
{
	var objEventArgs = new EventArgs(strControlID + '_CHANGED');
	RaiseEvent(objEventArgs);
}

function RaiseEvent(EventArgs)
{

	for (var i=0;i<g_objEventManager.length;i++)
	{
		// find any matching callbacks, and then 
		// call them, with the event args as parameters
		var callback = g_objEventManager[i];
		
		if (callback.strEventName == EventArgs.strEventName)
		{
			callback.CallbackFunction(EventArgs);
		}
	}

}

function EventArgs(strEventName)
{
	this.strEventName=strEventName;
}

function AddFGM(strFGName,strFieldName,intFGMID)
{
	var obj = new Object();
	obj.strFGName=strFGName;
	obj.strFieldName=strFieldName;
	obj.intFGMID=intFGMID;
	g_objFGMMap[g_objFGMMap.length]=obj;
}

function LookupFGM(strFGName,strFieldName)
{
	var retVal=0;
	
	for (var i=0;i<g_objFGMMap.length;i++)
	{
		// find any matching callbacks, and then 
		// call them, with the event args as parameters
		var objFGM = g_objFGMMap[i];
		if (objFGM.strFGName == strFGName && objFGM.strFieldName == strFieldName)
		{
			retVal=objFGM.intFGMID;
			break;
		}
	}
	
	return retVal;

}

function HidePageLoadingMessage()
{
	var pageLoadMsg = document.getElementById('PageLoadingMessage');
	
	if (pageLoadMsg)
	{
		
		if (pageLoadMsg.innerHTML)
		{
			pageLoadMsg.innerHTML='';
		}
	
	}
}

function ShowPageLoadingMessage(strMsg)
{
	var pageLoadMsg = document.getElementById('PageLoadingMessage');
	if (pageLoadMsg)
	{
		
		pageLoadMsg.innerHTML=strMsg;
		pageLoadMsg.className='PageLoadingClass';
	}
}

function HasXmlHttp()
{
	var results;
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
       results=true;
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
         results=true;
        }
    }
	return results;


}

function loadXMLDoc(url) {
	var results;
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
      //  req.onreadystatechange = processReqChange;
        req.open("GET", url, false);
        req.send(null);
		results = req.responseText;
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            //req.onreadystatechange = processReqChange;
            req.open("GET", url, false);
            req.send();
			results = req.responseText;
        }
    }
	return results;

}

function GetArray(Results)
{
	return Results.split('|');

}
