var FocusFieldName = '';

// Default onSubmit handler
function FormSubmit()
{
   return true;
}

// Logout Confirmation Prompt 
function ConfirmLogout()
{
   return confirm('Are you sure you want to logout ?');
}

// Function to submit all defined forms
function SubmitAllForms()
{
   for (j = 0; j < document.forms.length; j++)
   {
      document.forms[j].submit();
   }
}   

// Retrieve a Form Field value by its Name
function GetFormFieldValue(formname, fieldname, defaultval)
{
   var fieldval = "";
   
   for (j = 0; j < document.forms.length; j++)
   {
      if (document.forms[j].name == formname)
      {
         for (i = 0; i < document.forms[j].elements.length; i++)
         {
            if (document.forms[j].elements[i].name == fieldname)
            {
               if (document.forms[j].elements[i].value.length == 0)
                  fieldval = "";
               else
                  fieldval = document.forms[j].elements[i].value;
               break;
            }
         }
         break;
      }
   }
   
   return fieldval;
}

// Set a Form Field value by its Name
function SetFormFieldValue(formname, fieldname, newval)
{
   for (j = 0; j < document.forms.length; j++)
   {
      if (document.forms[j].name == formname)
      {
         for (i = 0; i < document.forms[j].elements.length; i++)
         {
            if (document.forms[j].elements[i].name == fieldname)
            {
               document.forms[j].elements[i].value = newval;
               break;
            }
         }
         break;
      }
   }
}

// Reset all Form Fields to their default values
function ResetAllFields()
{
   for (j = 0; j < document.forms.length; j++)
   {
      for (i = 0; i < document.forms[j].elements.length; i++)
      {
         switch (document.forms[j].elements[i].type)
         {
            case 'select-one':
               var defaultIndex = -1;
               for (k = 0; k < document.forms[j].elements[i].options.length; k++)
               {
                  if (document.forms[j].elements[i].options[k].defaultSelected)
                  {
                     defaultIndex = k;
                     break;
                  }
               }
               if (defaultIndex != -1)
                  document.forms[j].elements[i].selectedIndex = defaultIndex;
               break;

            case 'image':
               break;

            default:
               document.forms[j].elements[i].value = document.forms[j].elements[i].defaultValue;
               break;
         }
      }
   }
   FormLoad();
}

// Perform regular expression pattern matching
function IsValueOfPattern(value, pattern)
{
   return pattern.test(value);
}

// Clone Form Field to behave the same
function SetupFormFields(likefieldname)
{
   for (j = 0; j < document.forms.length; j++)
   {
      var likefieldindex = -1;
      for (i = 0; i < document.forms[j].elements.length; i++)
      {
         if (document.forms[j].elements[i].name == likefieldname)
         {
            likefieldindex = i;
            break;
         }
      }
      if (likefieldindex != -1)
      {
         for (i = 0; i < document.forms[j].elements.length; i++)
         {
            if (document.forms[j].elements[i].name != likefieldname)
            {
               document.forms[j].elements[i].onfocus = document.forms[j].elements[likefieldindex].onfocus;
               document.forms[j].elements[i].onblur  = document.forms[j].elements[likefieldindex].onblur;
               document.forms[j].elements[i].onFocus();
            }
         }
      }
   }
}

// Set the Focus through all Form Fields
function FocusAllFields()
{
   for (j = 0; j < document.forms.length; j++)
   {
      for (i = 0; i < document.forms[j].elements.length; i++)
      {
         document.forms[j].elements[i].focus();
      }
   }
}

// Default onFocus Handler
function field_GotFocus(field)
{
   field.style.backgroundColor = '#00CCCC';
   if (FocusFieldName != field.name)
      field.select();
   FocusFieldName = field.name;
}

// Default onBlur Handler
function field_LostFocus(field)
{
   // Mozilla
   if (document.selection)
   {
      document.selection.empty();
   }
   // IE
   else if (window.getSelection)
   {
      window.getSelection().removeAllRanges();
   }
   // Opera, and others...
   else
   {
      var val = field.value;
      field.value = '';
      field.value = val;
   }
   field.style.backgroundColor = '#FFFFFF';
}

// Select all the text in a field
function selectText(field)
{
   field.select();
}

// Set the Focus to a field
function focusField(field)
{
   if (field.onFocus)
      field.onFocus(field);
   field.focus();
}

