

//Для отсекания ввода всех символов кроме 0..9 для ввода целых чисел. 
//Нужно вставлять в обработчик события onkeypress соответствующего текстового поля.
//Пример <input type=".." name=".." value=".." onkeypress="return numeric();">
function numeric() {
  if (48<=window.event.keyCode && window.event.keyCode<=57) {
    return true;
  } else {
    return false;
  }
}

//Для отсекания ввода всех символов кроме 0..9 и запятой для ввода дробных чисел и дат.
//Нужно вставлять в обработчик события onkeypress соответствующего текстового поля.

function only_numbs() {
  if (48<=window.event.keyCode && window.event.keyCode<=57 || window.event.keyCode==44) {
    return true;
  } else {
    return false;
  }
}

function right_date(input) {
  var arr,y,m,d;
  arr = input.split('/');
  if (arr.length==3) {
    d=CInt(arr[2]);m=CInt(arr[1]);y=CInt(arr[0]);
    if (isNaN(m) || m<1 || m>12) {alert('Неверная дата. Неверный месяц.'); return false;}
    if (isNaN(d) || d<1 || d>31) {alert('Неверная дата. Неверный день.'); return false;}
    if ((m==4 || m==6 || m==9 || m==11) && (d==31)) {alert('Неверная дата. Неверный день.'); return false;}
    if (m==2) {
     if ((y%400==0)&&(d>=30)) {alert('Неверная дата. Неверный день.'); return false;}  
     if ((y%400!=0)&&(y%100==0)&&(d>=29)) {alert('Неверная дата. Неверный день.'); return false;}   
     if ((y%4==0)&&(d>=30)) {alert('Неверная дата. Неверный день.'); return false;}   
	 if ((y%4!=0)&&(d>=29)) {alert('Неверная дата. Неверный день.'); return false;}   
    }
  } else {
     alert("Укажите корректную дату.");
     return false;
  }

  return true;
}

//удаляет пробелы слева и справа и все двойные пробелы преобразует в одинарные
function KillSpaces(str)
{
	return (str.replace(/(^\s*)|(\s*$)/g,"")).replace(/\s\s+/g," ");
}

//удаляет пробелы слева и справа - аналог одноименной функции в VBScript
function Trim1(tempStr)
{
	var Str=new String(tempStr);
	while (Str.charAt(0)==" " && Str.length>0){
		Str=Str.substr(1);
	};	
	while (Str.charAt(Str.length-1)==" " && Str.length>0){
		Str=Str.substr(0,Str.length-1);
	};
	return (Str);
}

//удаляет пробелы слева - аналог одноименной функции в VBScript
function LTrim (tempStr)
{
	var Str=new String(tempStr);
	while (Str.charAt(0)==" " && Str.length>0){
		Str=Str.substr(1);
	};	
	return (Str);
}

//удаляет пробелы справа - аналог одноименной функции в VBScript
function RTrim (tempStr)
{
	var Str=new String(tempStr);	
	while (Str.charAt(Str.length-1)==" " && Str.length>0){
		Str=Str.substr(0,Str.length-1);
	};
	return (Str);
}	

//улучшенная функция преобразования строки в Int
function CInt(tempValue)
{
	tempValue=RTrim(tempValue);
	var Value=new String(tempValue);
	if (tempValue.length==0) return (NaN);
	while ((Value.charAt(0)==" " || (Value.charAt(0)=="0" && Value.length>1)) && Value.length>0){
		Value=Value.substr(1);
	};	
	return(parseInt(Value));
}

//улучшенная функция преобразования строки в Float
function CFloat(tempValue)
{
	tempValue=RTrim(tempValue);
	var Value=new String(tempValue);
	if (tempValue.length==0) return (NaN);
	while ((Value.charAt(0)==" " || (Value.charAt(0)=="0" && Value.length>1)) && Value.length>0){
		Value=Value.substr(1);
	};	
	Value=Value.replace(",",".")
	return(parseFloat(Value));
}

//добавляет в строку str (в позицию pos) подстроку substr
function InsertSubString(str,pos,substr)
{
	if (pos==0)
		return substr+str;
	else
		return str.slice(0,pos-1)+substr+str.slice(pos-1);
}

