function DoLoad ()
{
  if ("function" == typeof (inputFocus))
    inputFocus();
}

function DoUnLoad ()
{
  DefaultDoUnLoad ();
}

function DefaultDoUnLoad ()
{
  if ("function" == typeof (closeHelp))
    closeHelp ();
  if ("function" == typeof (closeCalendar))
    closeCalendar ();
  if ("function" == typeof (closeDdi))
    closeDdi ();
  if ("function" == typeof (closeInfo))
    closeInfo ();
  if ("function" == typeof (closeDataXInfo))
    closeDataXInfo ();
}

function forceLogOut (uri)
{
  //if msie and user press close, doesn't handle entries typed into address bar
  if (window.event.clientX < 0 && window.event.clientY < 0)
  {
    self.location = (null != uri) ? uri : '/webportal3/logout';
  }
  //TODO howto replicate in mozilla, opera??
}

function DoUnLoad_Popup ()
{
    //This function will be used by the pop up windows
    //where we dont want to close the user session

    if ("function" == typeof (closeHelp))
      closeHelp ();
    if ("function" == typeof (closeCalendar))
      closeCalendar ();
    if ("function" == typeof (closeDdi))
      closeDdi ();
    if ("function" == typeof (closeInfo))
      closeInfo ();
    if ("function" == typeof (closeDataXInfo))
      closeDataXInfo ();
}

function setFormFieldEditable ()
{
  var len = arguments.length;
  if (2 == len)
  {
    setFormFieldDisplay2 (arguments[0], -1, arguments[1]);
  }
  else if (3 == len)
  {
    setFormFieldDisplay2 (arguments[0], arguments[1], arguments[2]);
  }
  else
  {
    alert ("Unsupported");
  }
}

//dont call directly
function setFormFieldDisplay2 (fieldName, index, visible)
{
  if (-1 == Number(index))
  {
    if (document.getElementById && document.getElementById (fieldName))
    {
      field = document.getElementById (fieldName);
      if (visible)
      {
        field.disabled=false;
        if ("checkbox" == field.type)
        {
          field.style.background=bgColor1;
        }
        else
        {
          field.style.background=bgColor2;
        }
      }
      else
      {
        field.disabled=true;
        field.style.background=disabledColor;
      }
    }
  }
  else
  {
    if (document.getElementsByName && document.getElementsByName (fieldName)[index])
    {
      field = document.getElementsByName (fieldName)[index];
      if (visible)
      {
        field.disabled=false;
        if ("checkbox" == field.type)
        {
          field.style.background=bgColor1;
        }
        else
        {
          field.style.background=bgColor2;
        }
      }
      else
      {
        field.disabled=true;
        field.style.background=disabledColor;
      }
    }
  }
}

function getFieldValue ()
{
  var len = arguments.length;
  if (2 == len)
  {
    return getFieldValue2 (arguments[0], -1 , arguments[1]);
  }
  else if (3 == len)
  {
    return getFieldValue2 (arguments[0], arguments[1], arguments[2]);
  }
  else
  {
    alert("Unsupported");
  }
}

//dont call directly
function getFieldValue2 (fieldName, index, defaultVal)
{
  if (-1 == Number(index))
  {
    if (document.getElementById && document.getElementById (fieldName))
		{
		  return getFormFieldValue (document.getElementById (fieldName), defaultVal);
		}
		else
		{
		  return defaultVal;
		}
  }
  else
  {
    if (document.getElementsByName && document.getElementsByName (fieldName)[index])
    {
      return getFormFieldValue (document.getElementsByName (fieldName)[index], defaultVal);
    }
    else
    {
      return defaultVal;
    }
  }
}

//dont call directly
function getFormFieldValue (field, defaultVal)
{
    if (field.disabled)
      return defaultVal;

    var type = field.type;
    if (type.indexOf("select") >= 0)
    {
      if (-1 != field.selectedIndex)
      {
        //user has interacted with control
        return field.options[field.selectedIndex].value;
      }
      else
      {
        var defaultIndex = -1;
        for (var i=0; i< field.options.length; ++i)
        {
          if ((true == field.options[i].defaultSelected) ||
              (true == field.options[i].selected))
          {
            defaultIndex = i;
            break;
          }
        }
        if (-1 != defaultIndex)
        {
          return field.options[defaultIndex].value
        }
        else
        {
          return defaultVal;
        }
      }
    }
    else if ("checkbox" == type)
    {
      if (field.checked)
      {
        return "true";
      }
      else
      {
        return "false";
      }
    }
    else
    {
      return field.value;
    }
}

function getFieldValNum (fieldName, index, defaultVal)
{
  if (-1 == index)
  {
    return Number (getFieldValue2 (fieldName, -1, defaultVal));
  }
  else
  {
    return Number (getFieldValue2 (fieldName, index, defaultVal));
  }
}

function getFieldValBool (fieldName, index, defaultVal)
{
  if (-1 == index)
  {
    //Boolean("false") is true - weird documented design behaviour
    if ("true" == getFieldValue2 (fieldName, -1, defaultVal))
      return Boolean (true);
    else
      return Boolean (false);
  }
  else
  {
    if ("true" == getFieldValue2 (fieldName, defaultVal))
      return Boolean (true);
    else
      return Boolean (false);
  }
}

function setFormFieldWriteable ()
{
  var len = arguments.length;
  if (2 == len)
  {
    setFormFieldWriteable2 (arguments[0], -1, arguments[1]);
  }
  else if (3 == len)
  {
    setFormFieldWriteable2 (arguments[0], arguments[1], arguments[2]);
  }
  else
  {
    alert ("Unsupported");
  }
}

//dont call directly
function setFormFieldWriteable2 (fieldName, index, writeable)
{
  if (-1 == Number(index))
  {
    if (document.getElementById && document.getElementById (fieldName))
    {
      field = document.getElementById (fieldName);
      if (writeable)
      {
        field.disabled=false;
        if ("checkbox" == field.type)
        {
          field.style.background=bgColor1;
        }
        else
        {
          field.style.background=bgColor2;
        }
      }
      else
      {
        field.disabled=false;
        field.style.background=disabledColor;
      }
      if ("text" == field.type || "password" == field.type || "textarea" == field.type)
      {
        field.readOnly= !writeable;
      }
    }
  }
  else
  {
    if (document.getElementsByName && document.getElementsByName (fieldName)[index])
    {
      field = document.getElementsByName (fieldName)[index];
      if (writeable)
      {
        field.disabled=false;
        if ("checkbox" == field.type)
        {
          field.style.background=bgColor1;
        }
        else
        {
          field.style.background=bgColor2;
        }
      }
      else
      {
        field.disabled=false;
        field.style.background=disabledColor;
      }
      if ("text" == field.type || "password" == field.type || "textarea" == field.type)
      {
        field.readOnly= !writeable;
      }
    }
  }
}