
// проверка нажатых клаыиш в форме для цифровых полей (разрешаем только цифры одну точку если ужже введены каие то цифры и один минус если еще не введена ни одна цифра)

function pressed_number(e) {
                key=e.which;
//              alert(key);
                if (((key >= 48) && (key <= 57)) || (key==45) || (key==46) || (key==8)  || (key==0)) {
                        return true;
                }
                else{
                        return false;
                }
}

function check_keycode(field)
{
if(navigator.appName == "Netscape")     {
        window.captureEvents(Event.KEYPRESS);
        window.onkeypress = pressed_number;
 }
 if(( navigator.appName == "Microsoft Internet Explorer") || (navigator.appName== "Opera"))     {
        if ((window.event.keyCode >= 48 && window.event.keyCode <= 57))  {
        return true;
        }
        else {
                if ((window.event.keyCode == 46) && (field.value.search(/\./) == -1) &&  (field.value.length > 0))
                return true;
        else
                if ((window.event.keyCode == 45) && (field.value.search(/\-/) == -1) &&  (field.value.length == 0))
                        return true;
                else
                        return false;
  }
 }
}

// то же плюс запрещен ввод  точки

function pressed_digit(e) {
                key=e.which;
//              alert(key);
                if (((key >= 48) && (key <= 57)) || (key==45) || (key==8)  || (key==0)) {
                        return true;
                }
                else{
                        return false;
                }
}

function check_keycode_digit(field)
{
 if(navigator.appName == "Netscape")    {
        window.captureEvents(Event.KEYPRESS);
        window.onkeypress = pressed_digit;
 }
 if(( navigator.appName == "Microsoft Internet Explorer") || (navigator.appName== "Opera"))     {
        if ((window.event.keyCode >= 48 &&
        window.event.keyCode <= 57))  {
        return true;
        }
        else {
                if ((window.event.keyCode == 45)  &&  (field.value.length == 0))
                return true;
        else
                return false;
        }
 }
 else{
  return true;
 }
}




// проверка соотвествия типов вводмых данных в формах

function correct_Fill_count(form, errMessage, errMessag_1, errMessag_2, errMessag_3, errMessag_4, errMessag_5, errMessag_6)
{
types = new Array();      // массив типов данных в поле
// types["number"] = "^-?[\.0-9]*$";
types["number"] = "^-?[0-9]*\.?[0-9]*$";
types["digit"] = "^-?[0-9]*$";
types["string"] = "^[ \.\,\/:;\?!\"\'\=\$\&\+\(\)\%\*\@\«\»\©\®\§№а-яА-Яa-zA-Z0-9_-]*$";

descr = new Array();      // массив "человеческих" названий
                          // типов данных в поле с теми же ключами
descr["number"] = "число";
descr["digit"] = "цифры без знаков";
descr["string"] = "строка без цифр";

el_num = 0;

error_message = "";

  while (element = form.elements[el_num++])  {
        if (element.type == "text")  {                                                                                                          // нас интересуют только текстовые поля
                element.style.background = "white";
                
                if (element.getAttribute("description") != null) {
                        description_message=element.getAttribute("description");
                }
                else{
                        description_message=" ";
                }
                
                if (element.value.search(types[element.getAttribute("valuetype")]) == -1)       {       // значение поля не соотвествуют типу
                        error_message += "• " + errMessag_1 + " [" + description_message + "] "+ errMessag_3 + "\n";
                        element.style.background = "#FDBD23";
        }
        else {
                if (element.value == "")  {
                         if (element.getAttribute("required") != null) {                          // не введено обязательное поле
                                error_message += "• " +  errMessag_2 + " [" +  description_message + "]\n";
                                element.style.background = "#8080FF";
                         }
                }
                else{
                        check_value=eval(element.value);
                        if (element.getAttribute("min") != null) {
                                check_min=eval(element.getAttribute("min"));
                                  if(check_min>check_value) {
                                                error_message += "• " +  errMessag_1 + " ["  +  description_message + "] " + errMessag_4 + check_min +"\n";
                                                element.style.background = "#FD6523";
                                  }
                        }
                        if (element.getAttribute("max") != null) {
                                check_max=eval(element.getAttribute("max"));
                                  if(check_max<check_value) {
                                                error_message += "• " +  errMessag_1 + " [" +  description_message + "] " + errMessag_5 + check_max +"\n";
                                                element.style.background = "#FD6523";
                                  }
                        }
                                if (element.getAttribute("zero") != null) {
                                        if (element.getAttribute("zero") == "not") {
                                  if(check_value == 0) {
                                                error_message += "• " +  errMessag_1 + " ["+  description_message + "] "+ errMessag_6 +"\n";
                                                element.style.background = "#FD6523";
                                  }
                                        }
                        }
                }
        }
   }
 }
 
  if (error_message.length > 0) {
//     alert(errMessage);
     alert(error_message);
     
//    showModalDialog("tips.html", "", "dialogWidth=350px, dialogHeight=200px");
     num = 0;
     return false;
  }
  return true;
}

// проверка вводимых параметров (широте должна быть в диапазоне от -90 до +90 градусов)


function check_latitude_degree_place(thisValue, thisErrMessage) {
        thisValue=parseInt(thisValue)
        if (!isNaN(thisValue)) {
            if (( thisValue > 90)  || ( thisValue< -90 )){
                alert(thisErrMessage)
                return false;
            }
        }
        else{
          alert(thisErrMessage)
          return false;
        }
        return true;
}

// проверка вводимых параметров (минуты не должны превышеть 60)

function check_minute(thisValue, thisErrMessage) {
        thisValue=parseInt(thisValue)
        if (!isNaN(thisValue)) {
            if ((thisValue>60) || (thisValue<0)){
                alert(thisErrMessage)
                return false;
            }
        }
        else{
          alert(thisErrMessage)
          return false;
        }
        return true;
}

//------------------------------------------------------------------------------------------------------------------


// проверка правильности заполнения формы обратноя связи


function correct_feedback_Fill(form, errMessage,errMessage1,errMessage2,errMessage3)
{
types = new Array();      // массив типов данных в поле
types["number"] = "^[\.0-9-]*$";
types["phone"] = "^[ \.\(\)\+0-9-]*$";
types["string"] = "^[ \.\,\/:;\?!\"\'\=\$\&\+\(\)\%\*\@\«\»\©\®\§№а-яА-Яa-zA-Z0-9_-]*$";
types["email"] = "^[\.\@a-z0-9_-]*$";
types["url"] = "^[\.\/:a-zA-Z_-]*$";

descr = new Array();      // массив "человеческих" названий
                          // типов данных в поле с теми же ключами
descr["number"] = "число";
descr["phone"] = "телефон";
descr["string"] = "строка";
descr["email"] = "адрес email";
descr["url"] = "адрес сайта";

el_num = 0;
error_message = "";
error_code = 0;

 while (element = form.elements[el_num++])
  {
   if  ((element.type == "text") || (element.type == "textarea")) // нас интересуют только
                               // текстовые поля
   {
        if (element.getAttribute("description") != null) {
                        description_message=element.getAttribute("description");
                }
                else{
                        description_message=" ";
                }
        
        
         element.style.background = "white";
     if (element.value.search(types[element.getAttribute("valuetype")]) == -1)  {

                error_code=1;
        error_message += "• " + errMessage1 + " [" + description_message + "] " + errMessage2 + ".\n";
        element.style.background = "#FF8080";
     }
     else
        if (element.value == "")  {
                if (element.getAttribute("required") == "yes") {
                        error_code=2;
                        error_message += "• "+errMessage3+" [" +  description_message  + "].\n";
                        element.style.background = "#8080FF";
                }
        }
   }
  }

  if (error_code > 0)
  {
//     alert(errMessage);
     alert(error_message);
     return false;
  }
  return true;
}
