function trim(stringToTrim) 
{
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function ltrim(stringToTrim) 
{
	return stringToTrim.replace(/^\s+/,"");
}

function rtrim(stringToTrim) 
{
	return stringToTrim.replace(/\s+$/,"");
}

function onLoadFunctions() 
{
//	alert('onloadfunctions');
}

function setErrorColor (what)
{
  what.style.background='#FF0000';
}

function setFocusColor (what)
{
  what.style.background='#FFFFFF';
}

function setNofocusColor (what)
{
  what.style.background='#EEFFEE';
}

function setModifiedColor (what)
{
  what.style.background='#E8EBBC';
}

function checkTime (str)
{
  if (str.match ("^[0-9]{1,2}\:[0-9]{2}$") == null &&
      str.match ("^[0-9]{3,4}$")           == null)
    return false;

  var hh;
  var mm;

  if (str.length == 3)
    hh = str.match("^[0-9]");
  else
    hh = str.match("^[0-9]{1,2}");

  mm = str.match("[0-9]{2}$");

  if (hh < 0 || hh > 23 ||
      mm < 0 || mm > 59)
    return false;

  if (hh < 10)
    hh = "0" + (hh * 1);

  return (hh + ":" + mm);
}


function checkDate (str)
{
  var yy;
  var mm;
  var dd;

  var today = new Date ();

  if (str.match ("^[0-9]{4}[ -][0-9]{2}[ -][0-9]{2}$") != null)
    {
    yy = str.substr (0, 4);
    mm = str.substr (5, 2);
    dd = str.substr (8, 2);
    }

  else if (str.match ("^[0-9]{2}[ -][0-9]{2}[ -][0-9]{2}$") != null)
    {
    yy = (parseInt (str.substr (0, 2), 10) + 
          (parseInt (today.getFullYear () / 100, 10) * 100));
    mm = str.substr (3, 2);
    dd = str.substr (6, 2);
    }

  else if (str.match ("^[0-9]{1,2}$") != null)
    {
    yy = today.getFullYear ();
    mm = today.getMonth () + 1;
    dd = str;
    }

  else if (str.match ("^[0-9]{4}$") != null)
    {
    yy = today.getFullYear ();
    mm = str.substr (0, 2);
    dd = str.substr (2, 2);
    }

  else if (str.match ("^[0-9]{2}[ -][0-9]{2}$") != null)
    {
    yy = today.getFullYear ();
    mm = str.substr (0, 2);
    dd = str.substr (3, 2);
    }

  else if (str.match ("^[0-9]{6}$") != null)
    {
    yy = (parseInt (str.substr (0, 2), 10) + 
          (parseInt (today.getFullYear () / 100, 10) * 100));
    mm = str.substr (2, 2);
    dd = str.substr (4, 2);
    }

  else if (str.match ("^[0-9]{8}$") != null)
    {
    yy = str.substr (0, 4);
    mm = str.substr (4, 2);
    dd = str.substr (6, 2);
    }

  else 
    return false;

  yy = String (yy);
  mm = String (mm);
  dd = String (dd);

  while (yy.length < 4) yy = '0' + yy;
  while (mm.length < 2) mm = '0' + mm;
  while (dd.length < 2) dd = '0' + dd;

  if (parseInt (yy, 10) < 1900 || parseInt (yy, 10) > 9999 ||
      parseInt (mm, 10) <    1 || parseInt (mm, 10) >   12 ||
      parseInt (dd, 10) <    1 || parseInt (dd, 10) >   31)
    return false;

  var dt = new Date ();
  dt.setFullYear (parseInt (yy, 10));
  dt.setMonth (parseInt (mm, 10) - 1);
  dt.setDate (parseInt (dd, 10));

  if (dt.getDate () != parseInt (dd, 10))
    return false;

  return (yy + '-' + mm + '-' + dd);
}


function infocus(what) 
{
  setFocusColor (what);
}

function lostfocus(what) 
{
  setNofocusColor (what);
}

function lostfocusModified(what)
{
  var modified=false;

  switch (what.type)
    {
    case 'select-one':
      if (!what.options [what.selectedIndex].defaultSelected)
        modified=true;
      break;

    default:
      if (what.value != what.defaultValue)
        modified=true;
      break;
    }

  if (modified)
    setModifiedColor (what);
  else
    setNofocusColor (what);
}

function lostfocusCheckTime(what) 
{
  var str = what.value.replace(/^ */,"").replace(/ *$/,"");

  if (str.length > 0)
    {
    newval = checkTime (str);

    if (newval === false)
      {
      setErrorColor (what);
      return;
      }

    what.value = newval;

    lostfocusModified (what);
    return;
    }

  what.value = str;
  lostfocus(what);
}


function lostfocusCheckDate (what)
{
  var str = what.value.replace(/^ */,"").replace(/ *$/,"");

  if (str.length > 0)
    {
    newval = checkDate (str);

    if (newval === false)
      {
      setErrorColor (what);
      return;
      }

    what.value = newval;

    lostfocusModified (what);
    return;
    }

  what.value = str;
  lostfocus (what);
}

