<!--Sanderson File: v_isdate.inc 2.00-->
String.prototype.trim = function()
{
	// Use a regular expression to replace leading and trailing 
    // spaces with the empty string
    return this.replace(/(^\s*)|(\s*$)/g, "");
}
function v_isnumeric(strInput) {
	var s = new String(strInput);
	var result = true;
	for ( var i = 0; i< s.length; i++) {
		if (s.charAt(i)<"0"||s.charAt(i)>"9") {
			result = false;
			break;
		}
	}
	return result;
}

function v_isdate(strInput) {
	
	var d = new Date();
	var intdayinmonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	var intDay = d.getDate();
	var intMonth = d.getMonth()+1;
	var intYear = d.getFullYear();
	var result;
	var strReformat = "";
	var datestring = new String(strInput);
	datestring = datestring.trim();
	if (datestring.length==0) {
		result = "";
	}
 	else {
		var re = new RegExp("[\.\/\-]");
		var strPart = datestring.split(re);
		if(strPart.length==1) {
			if(v_isnumeric(strPart[0])) {
				if(strPart[0].length==8) {	// assume ddmmccyy
					intDay = strPart[0].substr(0,2);
					intMonth = strPart[0].substr(2,2);
					intYear = strPart[0].substr(4,4);
				} 
				else if(strPart[0].length==6) { // assume ddmmyy
					intDay = strPart[0].substr(0,2);
					intMonth = strPart[0].substr(2,2);
					intYear = strPart[0].substr(4,2);
					if (intYear < 50 ) {
						intYear = new Number(intYear) + 2000;
					}
					else {
						intYear = new Number(intYear) + 1900;
					}
				}
				else if(strPart[0].length==4) { // assume ddmm
					intDay = strPart[0].substr(0,2);
					intMonth = strPart[0].substr(2,2); 
				}
				else if(strPart[0].length<=2) { // assume dd
					intDay = strPart[0];
				}
				else {
					result = "";
				}
			}
			else {
				result = "";
			}
		}
		else if (strPart.length==2) { // assume dd/mm
			if (v_isnumeric(strPart[0])&&v_isnumeric(strPart[1])) {
				intDay = strPart[0];
				intMonth = strPart[1];
			}
			else {
				result = "";
			}
		}
		else if (strPart.length==3) {
			if(v_isnumeric(strPart[0])&&v_isnumeric(strPart[1])&&v_isnumeric(strPart[2])) {
				if (strPart[0] > 31 ) { // assume ccyy/mm/dd
					if(strPart[0] < 100) { // assume 19yy/mm/dd
						intDay = strPart[2];
						intMonth = strPart[1];
						intYear = strPart[0] + 1900;
					}
					else {	// assume 20yy/mm/dd
						intDay = strPart[2];
						intMonth = strPart[1];
						intYear = strPart[0];
					}
				}
				else { // assume dd/mm/ccyy
					intDay = strPart[0];
					intMonth = strPart[1];
					intYear = strPart[2];
					if (intYear < 50 ) {
						intYear = new Number(intYear) + 2000;
					} else if (intYear < 100) {
						intYear = new Number(intYear) + 1900;
					}
				}
			}
			else {
				result = "";
			}
		}
		if (result!="") {
			if (intYear < 1800 || intYear > 3000) {
				result = "";
			}
			else {
				if (intMonth < 1 || intMonth > 12 ) {
					result = "";
				}
				else if (intYear%4==0) {
					if (intYear%400!=0 || intYear == 2000) {
						intdayinmonth[1] = 29;
					}
				}
				if (intDay < 0 || intDay > intdayinmonth[intMonth-1]) {
					result = "";
				}
			}
		}
	}
	if (result!="") {
		intMonth = new Number(intMonth);
		intDay = new Number(intDay);
		result = new String();
		result = result.concat(intYear,(intMonth<10) ? "0" + intMonth: intMonth,(intDay<10) ? "0" + intDay: intDay);
	}
	return result;
}
