function TestDate2(fld)
{
    var mo, day, yr;
    var entry = fld;
    var reLong = /\b\d{1,2}[\/.]\d{1,2}[\/.]\d{4}\b/;
    var reShort = /\b\d{1,2}[\/.]\d{1,2}[\/.]\d{2}\b/;
    var valid = (reLong.test(entry)) || (reShort.test(entry));
 
	if (valid) {
        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);
        // handle two-digit year
        if (yr < 100) {
            var today = new Date();
            // get current century floor (e.g., 2000)
            var currCent = parseInt(today.getFullYear() / 100) * 100;
            // two digits up to this year + 15 expands to current century
            var threshold = (today.getFullYear() + 15) - currCent;
            if (yr > threshold) {
                yr += currCent - 100;
            } else {
                yr += currCent;
            }
        }
        var testDate = new Date(yr, mo-1, day);
        if (testDate.getDate() == day) {
            if (testDate.getMonth() + 1 == mo) {
                if (testDate.getFullYear() == yr) {
                    // fill field with database-friendly format
                    fld.value = mo + "/" + day + "/" + yr;
                    return true;
                } else {
                    alert("Неверная дата (год).");
                }
            } else {
                alert("Неверная дата (месяц).");
            }
        } else {
            alert("Неверная дата (день месяца).");
        }
    } else {
        alert("Неверная дата. Вводите как дд.мм.гггг");
    }
    return false;
}


function TestDate2x(fld)
{
    var mo, day, yr;
    var entry = fld;
    var reLong = /\b\d{1,2}[\/.]\d{1,2}[\/.]\d{4}\b/;
    var reShort = /\b\d{1,2}[\/.]\d{1,2}[\/.]\d{2}\b/;
    var valid = (reLong.test(entry)) || (reShort.test(entry));
 
	if (valid) {
        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);
        // handle two-digit year
        if (yr < 100) {
            var today = new Date();
            // get current century floor (e.g., 2000)
            var currCent = parseInt(today.getFullYear() / 100) * 100;
            // two digits up to this year + 15 expands to current century
            var threshold = (today.getFullYear() + 15) - currCent;
            if (yr > threshold) {
                yr += currCent - 100;
            } else {
                yr += currCent;
            }
        }
        var testDate = new Date(yr, mo-1, day);
        if (testDate.getDate() == day) {
            if (testDate.getMonth() + 1 == mo) {
                if (testDate.getFullYear() == yr) {
                    // fill field with database-friendly format
                    fld.value = mo + "/" + day + "/" + yr;
                    return true;
                } else {
                    //alert("Неверная дата (год).");
                }
            } else {
                //alert("Неверная дата (месяц).");
            }
        } else {
            //alert("Неверная дата (день месяца).");
        }
    } else {
        //alert("Неверная дата. Вводите как дд.мм.гггг");
    }
    return false;
}


function testcharindate(e)
{
	var keynum;
	var keychar;
	var numcheck;
	if(window.event) // IE
	{ keynum = e.keyCode; }
	else if(e.which) // Netscape/Firefox/Opera
	{ keynum = e.which; }
//alert(keynum);
	//keychar = String.fromCharCode(keynum);
//numcheck = /\d/;
//return !numcheck.test(keychar);
	if ( (keynum == 8) || (keynum == 37) || (keynum == 39)) {return true;}
	if ( (keynum < 46) || (keynum > 57) ) {return false;}
	
}

function trim(str)
{
	return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}