function isValidDate(myDate) 
{
	var mo, day, yr;
	var entry = myDate;
	var re = /\b\d{1,2}[\.-]\d{1,2}[\.-]\d{4}\b/;
	
  if (re.test(entry)) 
  {
  	var delimChar = (entry.indexOf(".") != -1) ? "." : "-";
  	var delim1 = entry.indexOf(delimChar);
  	var delim2 = entry.lastIndexOf(delimChar);
  	day = parseInt(entry.substring(0, delim1), 10);
  	mo = parseInt(entry.substring(delim1+1, delim2), 10);
  	yr = parseInt(entry.substring(delim2+1), 10);
  	var testDate = new Date(yr, mo-1, day);

  	if (testDate.getDate() == day) 
  	{
  		if (testDate.getMonth() + 1 == mo) 
  		{
  			if (testDate.getFullYear() == yr) 
  			{
  				return true;
  			} 
  			else 
  			{
  				reason = "Дата введена с ошибкой";
  			}
  		} 
  		else 
  		{
  			reason = "Месяц записан с ошибкой";
  		}
  	} 
  	else 
  	{
  		reason = "Число указано с ошибкой";
  	}
  } 
  else 
  {
  	reason = "Неправильный формат даты";
  }
  return false;
}

function isValidValueDate(myDate)
{
	var mo, day, yr;
 	var delimChar = (myDate.indexOf(".") != -1) ? "." : "-";
 	var delim1 = myDate.indexOf(delimChar);
 	var delim2 = myDate.lastIndexOf(delimChar);
	
  var currentdate = new Date();
  var currenttime = Date.UTC(currentdate.getYear(),currentdate.getMonth(),currentdate.getDate(),0,0,0);

  day = parseInt(myDate.substring(0, delim1), 10);
  mo = parseInt(myDate.substring(delim1+1, delim2), 10);
  yr = parseInt(myDate.substring(delim2+1), 10);
  var testDate = new Date(yr, mo, day);	
  var testtime=Date.UTC(testDate.getYear(),testDate.getMonth()-1,testDate.getDate(),0,0,0);
	if (testtime>currenttime)
	{
		reason = "Дата не может быть в будущем";
		return false;
	}
	return true;
}
	
function trim(str)
{  
	while (str.length > 0 && str.charAt(str.length - 1) == ' '){str = str.slice(0, str.length - 1);}    	
	while (str.length > 0 && str.charAt(0) == ' '){str = str.slice(1, str.length);}  
	return str;  
}

function filtery(pattern,list)
{		
	pattern = new RegExp('^'+pattern,"i"); 
	i=0;
	sel=0;		
	while(i<list.options.length)
	{				
		if(pattern.test(list.options[i].text)){sel=i;break}
		i++;
	}			
	list.options.selectedIndex=sel;
}
