function SetFocus(TargetFormName)
{
    var target = 0;
    if (TargetFormName != "")
    {
        for (i = 0; i < document.forms.length; ++i)
        {
            if (document.forms[i].name == TargetFormName)
            {
                target = i;
                break;
            }
        }
    }

    var TargetForm = document.forms[target];
    
    for (i = 0; i < TargetForm.length; ++i)
    {
        if ((TargetForm.elements[i].type != "image") &&
            (TargetForm.elements[i].type != "hidden") &&
            (TargetForm.elements[i].type != "reset") && (TargetForm.elements[i].type != "submit") )
        {
            TargetForm.elements[i].focus();

            if ((TargetForm.elements[i].type == "text") || (TargetForm.elements[i].type == "password"))
                TargetForm.elements[i].select();

            break;
        }
    }
}

function RemoveFormatString(TargetElement, FormatString)
{
    if (TargetElement.value == FormatString)
        TargetElement.value = "";

    TargetElement.select();
}

function CheckDateRange(from, to)
{
  if (Date.parse(from.value) <= Date.parse(to.value))
      return true;
  else
      return false;
}

function IsValidDate(DateToCheck, FormatString)
{
    var strDateToCheck;
    var strDateToCheckArray;
    var strFormatArray;
    var strFormatString;
    var strDay;
    var strMonth;
    var strYear;
    var intday;
    var intMonth;
    var intYear;
    var intDateSeparatorIdx = -1;
    var intFormatSeparatorIdx = -1;
    var strSeparatorArray = new Array("-"," ","/",".");
    var strMonthArray = new Array("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec");
    var intDaysArray = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

    strDateToCheck = DateToCheck.toLowerCase();
    strFormatString = FormatString.toLowerCase();
  
    if (strDateToCheck.length != strFormatString.length)
        return false;

    for (i = 0; i < strSeparatorArray.length; ++i)
    {
        if (strFormatString.indexOf(strSeparatorArray[i]) != -1)
        {
            intFormatSeparatorIdx = i;
            break;
        }
    }

    for (i = 0; i < strSeparatorArray.length; ++i)
    {
        if (strDateToCheck.indexOf(strSeparatorArray[i]) != -1)
        {
            intDateSeparatorIdx = i;
            break;
        }
    }

    if (intDateSeparatorIdx != intFormatSeparatorIdx)
        return false;

    if (intDateSeparatorIdx != -1)
    {
        strFormatArray = strFormatString.split(strSeparatorArray[intFormatSeparatorIdx]);
        if (strFormatArray.length != 3)
            return false;

        strDateToCheckArray = strDateToCheck.split(strSeparatorArray[intDateSeparatorIdx]);
        if (strDateToCheckArray.length != 3)
            return false;

        for (i = 0; i < strFormatArray.length; ++i)
        {
            if (strFormatArray[i] == 'mm' || strFormatArray[i] == 'mmm')
                strMonth = strDateToCheckArray[i];

            if (strFormatArray[i] == 'dd')
                strDay = strDateToCheckArray[i];

            if (strFormatArray[i] == 'yyyy')
                strYear = strDateToCheckArray[i];
        }
    }
    else
    {
        if (FormatString.length > 7)
        {
            if (strFormatString.indexOf('mmm') == -1)
                strMonth = strDateToCheck.substring(strFormatString.indexOf('mm'), 2);
            else
                strMonth = strDateToCheck.substring(strFormatString.indexOf('mmm'), 3);
    
            strDay = strDateToCheck.substring(strFormatString.indexOf('dd'), 2);
            strYear = strDateToCheck.substring(strFormatString.indexOf('yyyy'), 2);
        }
        else
        {
            return false;
        }
    }

    if (strYear.length != 4)
        return false;

    intday = parseInt(strDay, 10);
    if (isNaN(intday))
        return false;

    if (intday < 1)
        return false;

    intMonth = parseInt(strMonth, 10);
    if (isNaN(intMonth))
    {
        for (i = 0; i < strMonthArray.length; ++i)
        {
            if (strMonth == strMonthArray[i])
            {
                intMonth = i+1;
                break;
            }
        }

        if (isNaN(intMonth))
            return false;
    }

    if (intMonth > 12 || intMonth < 1)
        return false;

    intYear = parseInt(strYear, 10);
    if (isNaN(intYear))
        return false;

    if (IsLeapYear(intYear) == true)
        intDaysArray[1] = 29;

    if (intday > intDaysArray[intMonth - 1])
        return false;
  
    return true;
}

function IsLeapYear(intYear)
{
    if (intYear % 100 == 0)
    {
        if (intYear % 400 == 0)
            return true;
    }
    else
    {
        if ((intYear % 4) == 0)
            return true;
    }

    return false;
}

function rowOverEffect(object)
{
//alert(object.className);
    //if (object.className == 'moduleRow')
    //    object.className = 'moduleRowOver';

    if ((object != null) && (object.className != null))
    {
        var size = object.className.length;
        if (size > 3)
        {
            if ((object.className.indexOf("Selected") == -1) && (object.className.indexOf("Over") == -1))
                object.className += "Over";
        }
    }
}

function rowOutEffect(object)
{
    //if (object.className == 'moduleRowOver')
    //    object.className = 'moduleRow';

    if ((object != null) && (object.className != null))
    {
        var size = object.className.length;
        if (size > 3)
        {
            if ((object.className.indexOf("Selected") == -1) && (object.className.indexOf("Over") == (size - 4)))
                object.className = object.className.substr(0, (size - 4));
        }
    }
}

function trim(str, chars)
{
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars)
{
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars)
{
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function isNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber = true;
   var Char;
   var str = trim(sText);
   var i = 0;

   for (i = 0; i < str.length && IsNumber == true; i++) 
   { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         IsNumber = false;
   }

   return IsNumber;
}

