Array.prototype.in_array = function(p_val)
{
  for (var i=0,l=this.length;i<l;i++)
  {
    if(this[i] == p_val)
    {
      return true;
    }
  }

  return false;
}

function shoutout_refreshForm(objId)
{
  var formObj = document.getElementById(objId);

  formObj.elements['form_domain'].value = '';
  formObj.elements['form_action'].value = '';

  formObj.submit();
}

function shoutout_nextField(thisField,nextFieldId,length)
{
  if (thisField.value.length == length)
  {
    document.getElementById(nextFieldId).focus();
  }
}

function shoutout_validateFormInput(formId)
{
  var formObj = document.getElementById(formId);

  var reqdFields = formObj.elements['required'].value.split(',');
  var attnFields = new Array();

  for (i=0; i<reqdFields.length; i++)
  {
    var fieldObj = formObj.elements['value_' + reqdFields[i]];

    switch(fieldObj.type)
    {
      default :

        var fieldObjId = fieldObj.id;

        break;
    }

    var fieldLabel = document.getElementById('label_' + fieldObjId).innerHTML;

    if (!attnFields.in_array(fieldLabel))
    {
      with(fieldObj)
      {
        switch (type)
        {
          case 'checkbox' :

            if (length > 0)
            {
              var checkedCount = 0;

              for (j=0; j<length; j++)
              {
                if (fieldObj[j].checked == true)
                {
                  checkedCount++;
                }
              }

              if (checkedCount < length)
              {
                attnFields[attnFields.length] = fieldLabel;
              }
            }
            else if (checked == false)
            {
              attnFields[attnFields.length] = fieldLabel;
            }

            break;

          default :

            if (value == null || value == '')
            {
              attnFields[attnFields.length] = fieldLabel;
            }

            break;

        }
      }
    }
  }

  if (attnFields.length > 0)
  {
    alertMsg = 'Please complete the following fields:' + "\n";

    for (i=0; i<attnFields.length; i++)
    {
      alertMsg += "\n" + '- ' + attnFields[i];
    }

    alert(alertMsg);

    return false;
  }
  else
  {
    formObj.submit();
  }
}

function validateFormInput(formId,submit)
{
	if (!submit)
	{
		var submit = 1;
	}
	
  var formObj = document.getElementById(formId);

  if (!formObj.elements['required'] || !formObj.elements['required'].value)
  {
    formObj.submit();
  }

  var reqdFields = formObj.elements['required'].value.split(',');
  
  var attnFields = new Array();

  if (reqdFields.length > 0)
  {
    for (i=0; i<reqdFields.length; i++)
    {
      var fieldObj = formObj.elements[reqdFields[i]];
     
      if (fieldObj.length > 0)
      {
      	var fieldObjType = fieldObj[0].type;
      }
      else
      {
      	var fieldObjType = fieldObj.type;
      }
      
      switch(fieldObjType)
      {
      	case 'checkbox' :

      		if (fieldObj.length > 0)
      		{
      			var fieldObjId = fieldObj[0].id;
      		}
      		else
      		{
      			var fieldObjId = fieldObj.id;
      		}
      	
      		break;
      	
        default :

          var fieldObjId = fieldObj.id;

          break;
      }

      var fieldLabel = document.getElementById('label_' + fieldObjId).innerHTML;

      if (!attnFields.in_array(fieldLabel))
      {
        with(fieldObj)
        {
          switch (fieldObjType)
          {
            case 'checkbox' :

              if (length > 0)
              {
                var checkedCount = 0;

                for (j=0; j<length; j++)
                {
                  if (fieldObj[j].checked == true)
                  {
                    checkedCount++;
                  }
                }

                if (checkedCount < 1)
                {
                  attnFields[attnFields.length] = fieldLabel;
                }
              }
              else if (checked == false)
              {
                attnFields[attnFields.length] = fieldLabel;
              }

              break;

            default :

              if (value == null || value == '')
              {
                attnFields[attnFields.length] = fieldLabel;
              }

              break;
          }
        }
      }
    }
  }

  if (attnFields.length > 0)
  {
    alertMsg = 'Please complete the following fields:' + "\n";

    for (i=0; i<attnFields.length; i++)
    {
      alertMsg += "\n" + '- ' + attnFields[i];
    }

    alert(alertMsg);

    return false;
  }
  else
  {
  	if (submit == 1)
  	{
    	formObj.submit();
  	}
  }
}
