function inArray(needle) { // emulation of php's in_array()
  for (i=0; i<this.length; i++) {
    if (needle == this[i]) {
      return i;
    }
  }
  return -1;
}
Array.prototype.inArray = inArray;

// Warning! The function is dangerous because it cannot check regular expressions.
// It is recommended to use it only for administering, not for user-submitted forms.
function validate(form_name, req_fields, req_fields_rus, button) { // russian words must be in accusative
  position = -1;
  new_req_fields = new Array;
  new_req_fields_rus = new Array;
  for (var j=0; j<document.forms[form_name].elements.length; j++) {
    if (document.forms[form_name].elements[j].name.indexOf('[') != -1) {
      position = req_fields.inArray(document.forms[form_name].elements[j].name.substr(0, document.forms[form_name].elements[j].name.indexOf('[')));
      if (position != -1) {
        new_req_fields.push(document.forms[form_name].elements[j].name);
        new_req_fields_rus.push(req_fields_rus[position]);
      }
    } else {  // too bad there are no elseifs in Javascript
      if (req_fields.inArray(document.forms[form_name].elements[j].name) != -1) {
        break; // this means that the `elements` array is one-dimensional
      }
    }
  }
  if (new_req_fields.length) {
    req_fields = new_req_fields;
    req_fields_rus = new_req_fields_rus;
  }
  for (var i=0; i<req_fields.length; i++) {
    if (req_fields[i].indexOf('&&') != -1) {   // now works for two fields only
      fields_tmp = req_fields[i].split('&&');
      if (!document.forms[form_name].elements[fields_tmp[0]].value && !document.forms[form_name].elements[fields_tmp[1]].value) {
        alert('Введите '+req_fields_rus[i]+'!');
        if (button) {
          document.forms[form_name].elements[button].disabled=false;
        }
        return false;
      }
    } else {
      if (!document.forms[form_name].elements[req_fields[i]].value) {
        alert('Введите '+req_fields_rus[i]+'!');
        if (button) {
          document.forms[form_name].elements[button].disabled=false;
        }
        return false;
      }
    }
  } 
  if (button) {
    document.forms[form_name].elements[button].disabled=true;
  }
  return true;
}

function show_mail(email){
        email=email.replace("#","&#64;");
        document.write("<a class='mailto' href='mailto:"+email+"'>");
        return null;
}

function redirect(){
        setTimeout('location.href="/"',3000)
}
/*
function validate(){
        if (!(document.forms[0].author.value)){
                alert("Не введено имя");
                return false;
        }
        if (!(document.forms[0].message.value)){
                alert("Не введен текст сообщения");
                return false;
        }
        return true;
} */

function search_limit(){
        if (!(document.search.author.value) && !(document.search.word.value)){
                alert("Все поля пусты!");
                return false;
        }
        if (document.search.author.value && document.search.author.value.length < 2){
                alert("Это поле не может содержать меньше 2 символов!");
                return false;
        }
        if (document.search.word.value && document.search.word.value.length < 4){
                alert("Это поле не может содержать меньше 4 символов!");
                return false;
        }
        return true;
}
