function getJSObject(objID, pDocument)
{
    var pDoc = document;
    if (pDocument != null && pDocument != "undefined")
    {
        pDoc = pDocument;
    }

    var myObj;
    if(pDoc.getElementById)
    {
        myObj = pDoc.getElementById(objID);
    }
    else if (pDoc.layers)
    {
        myObj = pDoc.layers[objID];
    }
    else if (pDoc.all)
    {
        myObj = pDoc.all(objID);
    }
    return(myObj);
}

function __GetObject(pObject, pDocument)
{
	var pRetVal;
	var t = typeof(pObject);
	if (t == "string")
	{
		pRetVal = getJSObject(pObject, pDocument); 
	}
	else
	{
		pRetVal = pObject;
	}
	return pRetVal;
}

function __GetObjectParent(child)
{
    var pControl = __GetObject(child);
    if (pControl.parentElement)
    {
        return pControl.parentElement;
    }
    else if (pControl.parentNode)
    {
        return pControl.parentNode;
    }
    else
    {
        return null;
    }
}

//remove object from its parents child list
function __RemoveObject(pObject)
{
	var pControl = __GetObject(pObject);
	if (pControl != null)
	{
		pControl.parentNode.removeChild(pControl);
	}	
}

// position an object at a specific pixel coordinate
function __MoveObject(obj, x, y)
{
	obj = __GetObject(obj);
	try
	{
		if (
			typeof x != "undefined" && 
			typeof y != "undefined")
		{
			if (obj.style.moveTo) 
			{
				obj.style.moveTo(x,y)
			} 
			else if (typeof obj.style.left != "undefined") 
			{
				obj.style.left = x;
				obj.style.top = y;
			}
		}
	}
	catch(e)
	{
		alert(e);
	}
}

function __GetEvent(evt)
{
	evt = (evt) ? evt : event;
	return evt;
}

function __StopEvent(evt)
{
    __GetEvent(evt).cancelBubble = true;
}

function __CancelEvent(evt)
{
    __GetEvent(evt).returnValue = false;
}

function __OutputProperties(ctl, bAlertOneAtATime)
{
    var pControl = __GetObject(ctl);
    
    var str = ""; 
    var propertyname;
    for (var propertyname in pControl) 
    {
        if (bAlertOneAtATime == true)
        {
            alert(propertyname + ": " + pControl[propertyname]);
        }
        else
        {
            str += propertyname + ": " + pControl[propertyname];
        }
    }
    return str; 



}