var fields_value_min_length = 2;
var fields_pass_value_min_length = 3;
var filter_mail       = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
var alert_string      = "Не все обязательные поля заполнены";
var alert_mail        = "Mail адрес введен не верно.";
var alert_wrong_pass  = "Пароли не совпадают.";
var alert_little_pass = "Длинна пароля должна быть не меньше "+fields_pass_value_min_length+" смволов.";
var confirm_delete    = "Уверены?";
var temp_color        = ""; //переменная испольуется для запоминания колора под мышкой чтоб вернуть его когда мышка уйдет

function check_mandatory_fields(sender)
{
  radio_grp     = new Array;
  radio_grp_ct  = 0;
  for (i = 0; i < sender.elements.length; i++)
  {
    if (((sender.elements[i].className == 'field_zirka') || (sender.elements[i].className.indexOf('field_zirka') >= 0) || (sender.elements[i].id.indexOf('field_zirka') >= 0)) && (sender.elements[i].disabled==false))
    {
      /* смотрим не сгрупирован ли обьект если так проверяем согрупника */
      //todo:
//      if (sender.elements[i].className. indexOf('group_or_') >= 0)
//      {
//        // находим элементы находящиеся в группе
//        for (k = 0; k < sender.elements.length; i++)
//        alert('qwe');
//        //continue;
//      }
      /* checkbox */
      if (sender.elements[i].type == 'checkbox' && !sender.elements[i].checked)
      {
        alert (alert_string);
        sender.elements[i].focus();
        return false;
      }
      /* text, file, textarea */
      if (sender.elements[i].value.length < fields_value_min_length)
      {
        alert (alert_string);
        sender.elements[i].focus();
        return false;
      }
      /* mail (text) */

      if ((sender.elements[i].name == 'mail') || (sender.elements[i].name == 'user[mail]') || (sender.elements[i].name == 'agent[mail]') || (sender.elements[i].name == 'forgot_pass_field'))
      {
        if (!filter_mail.test(sender.elements[i].value))
        {
          alert(alert_mail);
          sender.elements[i].focus();
          return false;
        }
      }
      /* password */
      if ((sender.elements[i].type == 'password') || (sender.elements[i].type == 'new_password') || (sender.elements[i].type == 'pass'))
      {
        if (sender.elements[i].value.length < fields_pass_value_min_length)
        {
          alert(alert_little_pass);
          sender.elements[i].focus();
          return false;
        }
        if (sender.confirm_password)
        {
          if (sender.confirm_password.value != sender.elements[i].value)
          {
            alert(alert_wrong_pass);
            sender.confirm_password.focus();
            return false;
          }
        }
      }
      /* сбор имен груп радио боксов для проверки */
      if (sender.elements[i].type == 'radio')
      {
        new_grp = true;
        for (k = 0; k<radio_grp_ct; k++)
        {
          if (radio_grp[k] == sender.elements[i].name)
          new_grp = false;
          break;
        }
        if (new_grp == true)
        {
          radio_grp[radio_grp_ct] = sender.elements[i].name;
          radio_grp_ct++;
        }
      }
    }
  }
  /* проверка радио боксов на наличие в каждой группе выделенного варианта */
  for (i = 0; i<radio_grp_ct; i++)
  {
    filed = false;
    for (k = 0; k < sender.elements.length; k++)
    {
      if (sender.elements[k].type == 'radio' && sender.elements[k].checked == true)
      {
        filed = true;
        break;
      }
    }
    if (filed == false)
    {
      alert (alert_string);
      sender.elements[i].focus();
      return false;
    }
  }

  return true;
}
