var hSingleWin = null;

function OpenPopupWin(strURL, iWidth, iHeight)
{
  flLeft = (screen.availWidth  / 2) - (iWidth  / 2);
  flTop  = (screen.availHeight / 2) - (iHeight / 2);
  iScreenHeight = screen.availHeight;
  if (hSingleWin)
  {
    hSingleWin.close();
    hSingleWin = null;
  }
  hSingleWin = window.open(strURL, "singlePopup", "left=" + flLeft + ",top=" + flTop + ",width=" + iWidth + ",height=" + iHeight + ",scrollbars=yes,toolbar=no,resizable=yes");
  hSingleWin.focus();
}

function GetDOMObject(strObjName, parentNode)
{
  var obj = null;
  if (parentNode)
  {
    for (var i = 0; i < parentNode.childNodes.length; i++)
    {
      if (parentNode.childNodes[i].getAttribute("id") == strObjName)
      {
        obj = parentNode.childNodes[i];
        break;
      }
    }
  }
  else
  {
    if (document.getElementById)
      obj = document.getElementById(strObjName);
    else if (document.all)
      obj = document.all[strObjName];
  }
  return obj;
}

function CreateNamedElement(type, name)
{
  var element = null;
  
  //Try the IE way; this fails on standards-compliant browsers
  try
  {
    element = document.createElement('<' + type + ' name="' + name + '">');
  }
  catch (e) {}
  
  // Non-IE browser; use canonical method to create named element
  if (!element || element.nodeName != type.toUpperCase())
  {
    element = document.createElement(type);
    element.setAttribute("name", name);
    element.setAttribute("id",   name);
    element.name = name;
    element.id   = name;
  }
  
  return element;
}

function GetIFrameWindow(strIFrameID)
{
  var w = $('#' + strIFrameID).get(0);
  return w ? (w.contentWindow ? w.contentWindow : w) : null;
}

function ClearContainer(cont)
{
  if (!cont)
    return null;
  while (cont.childNodes.length > 0)
    cont.removeChild(cont.firstChild);
}

function ClearContainerByName(strContID)
{
  ClearContainer($('#' + strContID).get(0));
}

function URLDecode(strEncoded)
{
  strDecoded = unescape(strEncoded);
  strDecoded = strDecoded.replace(/\+/g, " ");
  return strDecoded;
}

function GetPageCoordX(e)
{
  return (e.pageX ? e.pageX : e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft);
}

function GetPageCoordY(e)
{
  return (e.pageY ? e.pageY : e.clientY + document.body.scrollTop + document.documentElement.scrollTop);
}

