//
//  +===========================+
//  |   Author: Veryazov Sergey |  
//==|   E-mail: verser@inbox.ru |
//==|  Created: 26 Aug 1999     |
//  | Мodified:  8 Oct 1999     |
//  +===========================+
//

function trim(field) {
var value = " "+field.value;
  while (value.charAt(0)==' ') { value = value.substring(1, value.length); };
  while (value.length>0 && value.charAt(value.length-1)==' ') { value = value.substring(0, value.length-1); };
  field.value = value;
};

function haveSymbols(value,symbols) {
  if (value.length==0) return false;
  for(var i=0; i<symbols.length; i++) if ( value.indexOf( symbols.charAt(i), 0)>=0) return true;
  return false;
};

function haveOtherSymbols(value,symbols) {
  if (value.length==0) return false;
  for(var i=0; i<value.length; i++) if ( symbols.indexOf( value.charAt(i), 0)<0) return true;
  return false;
};

var numChars = "0123456789";

function alertFocus(field, message) { alert (message); field.select(); field.focus();};

clickCount = 0;

function testForm(formIndex,specFields,specTest,specFunc) {
var result = true;
  with (document.forms[formIndex]) 
  for (i=0; i<length; i++) if (elements[i].type=="text" || elements[i].type=="password" || elements[i].type=="textarea" || elements[i].type=="file") {
    field = elements[i];
    if (field.type=="file") with (field) { blur(); focus(); blur(); };
    trim(field);
    //if (haveSymbols(field.value, "<>")) { result=false; alertFocus(field, "Обнаружены некорректные символы!\n\nИсправте, пожалуйста."); break; };
    if (specFields.indexOf("|"+field.name+"|")>=0 && field.value=="") { result=false; alertFocus(field, "Вы забыли ввести об\язательное значение ["+field.name+"] !\n\nВведите, пожалуйста."); break; };
    if (specFields.indexOf("%"+field.name+"%")>=0 && haveOtherSymbols(field.value,numChars)) { result=false; alertFocus(field, "Некорректное числовое значение ["+field.name+"] !\n\nВведите, пожалуйста."); break; };
    if (specFields.indexOf("?"+field.name+"?")>=0 && field.value!="" && !eval(specTest+'(field)')) { result=false; break; };
  };
  if (result) {
    if (clickCount>0) {
      alert("Нужно жать только ОДИН раз!\n\n(В следующий раз произойдет повторна\я отправка формы, но это может вызвать ошибку)");
      clickCount=0;
      result = false;
    } else clickCount++;
  };
  return result;
};

function testEmail(field) {
  var result = (field.value.length>5 && field.value.indexOf('@')>0 && field.value.indexOf('.')>0 && !haveSymbols(field.value,"<>+=\\|/^&*#$%!?,`:;()[]{}\"'")) ? true : false;
  if (!result) alertFocus(field, 'Некорректная запись e-mail адреса!');
  return(result);
}

function confirm_reset() {
  return(confirm('\nВы уверены, что хотите вернуть все пол\я формы в исходное состо\яние?'));
};

var dc = document.cookie;

function getCookie(name) {
  var index = dc.indexOf(name + "="); if (index == -1) return null;
  index += (name+"=").length;
  var endstr = dc.indexOf(";", index); if (endstr == -1) endstr = dc.length;
  return unescape(dc.substring(index, endstr));
}

var today  = new Date();
var expiry = new Date(today.getTime() + 60 * 24 * 60 * 60 * 1000);

function setCookie(name, value) {
  if (value != null && value != "") document.cookie=name + "=" + escape(value) + "; expires=" + expiry.toGMTString();
  dc = document.cookie; 
}

function formUpdateData(formIndex,cookiePrefix,cookieFields,cookieLoad) {
  cookieFields = "/"+cookieFields+"/";
  with (document.forms[formIndex])
  for (i=0; i<length; i++) {
    field = elements[i];
    var cookieName = cookiePrefix+field.name;
    if (cookieFields.indexOf("/"+field.name+"/")>=0) {
      if (cookieLoad) {
        var value = ""+getCookie(cookieName);
        if (field.type=="text") field.value = value; else
        if (field.type=="checkbox") { field.checked = (value=="1"); };
      } else {
        if (field.type=="text")
          setCookie(cookiePrefix+field.name, field.value); else
        if (field.type=="checkbox") {
          if (field.checked) setCookie(cookieName, "1"); else setCookie(cookieName, "0");
        };
      };

    };

  };
};
