var lenMSIE, isMSIE, mdy;
lenMSIE = navigator.appVersion.indexOf('MSIE');
if(lenMSIE > -1) { isMSIE = true } else { isMSIE = false }
mdy = "mm\/dd\/yyyy";
	
function isDate(txtDate) {
	var	objDate,  // date object initialized from the txtDate string
		mSeconds, // txtDate in milliseconds
		day,      // day
		month,    // month
		year;     // year
	// date length should be 10 characters (no more no less)
	if (txtDate.length !== 10) {
		return false;
	}
	// third and sixth character should be '/'
	if (txtDate.substring(2, 3) !== '/' || txtDate.substring(5, 6) !== '/') {
		return false;
	}
	// extract month, day and year from the txtDate (expected format is mm/dd/yyyy)
	// subtraction will cast variables to integer implicitly (needed
	// for !== comparing)
	month = txtDate.substring(0, 2) - 1; // because months in JS start from 0
	day = txtDate.substring(3, 5) - 0;
	year = txtDate.substring(6, 10) - 0;
	// test year range
	if (year < 1000 || year > 3000) {
		return false;
	}
	// convert txtDate to milliseconds
	mSeconds = (new Date(year, month, day)).getTime();
	// initialize Date() object from calculated milliseconds
	objDate = new Date();
	objDate.setTime(mSeconds);
	// compare input date and parts from Date() object
	// if difference exists then date isn't valid
	if (objDate.getFullYear() !== year ||
		objDate.getMonth() !== month ||
		objDate.getDate() !== day) {
			return false;
		}     // otherwise return true
	return true;
}

function checkDate(fld) {
	// define date string to test
	var txtDate = document.getElementById(fld).value;
	// check date and print message
	if (isDate(txtDate)) {
		//alert('OK');
		return true;
	} else {
		//alert('Invalid date format in ' + fld.replace("_", " ") + ' field!');
		return false;
	}
}

function dtComp() {
	var StartDate = new Date(document.getElementById("StartDate").value);
	var EndDate = new Date(document.getElementById("EndDate").value);
	if(StartDate > EndDate) {
		alert("From Date is later than To Date\nPlease correct and resubmit your search.");
		document.getElementById('StartDate').style.borderColor = '#F00';
		document.getElementById('EndDate').style.borderColor = '#F00';
		return false;
	}
	return true;
}

function frmValid() {
	var mdy = "mm\/dd\/yyyy";
	
	if(document.getElementById('StartDate').value == mdy) { document.getElementById('StartDate').value = ''; }
	if(document.getElementById('EndDate').value == mdy) { document.getElementById('EndDate').value = ''; }
	
	if(document.getElementById('StartDate').value != '') {
		//alert('StartDate = ' + document.getElementById('StartDate').value);
		if(!checkDate('StartDate')) {
			alert('Invalid "From" Date (' + document.getElementById('StartDate').value + ').\nPlease re-enter in mm\/dd\/yyyy format.');
			//document.getElementById('StartDate').focus();
			document.getElementById('StartDate').style.borderColor = '#F00';
			return false;
		}
	}
	if(document.getElementById('EndDate').value != '') {
		//alert('EndDate = ' + document.getElementById('EndDate').value);
		if(!checkDate('EndDate')) {
			alert('Invalid "To" Date (' + document.getElementById('EndDate').value + ').\nPlease re-enter in mm\/dd\/yyyy format.');
			//document.getElementById('EndDate').focus();
			document.getElementById('EndDate').style.borderColor = '#F00';
			return false;
		}
	}
	if(!dtComp()) { return false } else { return true }
	alert('Form is valid');
	return true;
}




function MSIEPlc() {
	if(isMSIE == true) {
		document.getElementById('StartDate').value = mdy;
		document.getElementById('EndDate').value = mdy;
		//document.getElementById('StartDate').style.color = '#CCC';
		//document.getElementById('EndDate').style.color = '#CCC';
		document.getElementById('FullText').focus();
	}
}

function clrPlc(thisDt) {
	if(isMSIE == true) {
		if(document.getElementById(thisDt).value == mdy) {
			document.getElementById(thisDt).value = '';
			//document.getElementById(thisDt).style.color = '#000';
			document.getElementById(thisDt).style.borderColor = '#999';
		}
	}
}
	
function resetPlc(thisDt) {
	if(isMSIE == true) {
		if(document.getElementById(thisDt).value == '') {
			document.getElementById(thisDt).value = mdy;
			//document.getElementById(thisDt).style.color = '#CCC';
			document.getElementById(thisDt).style.borderColor = '#999';
		}
	}
}
	
function plc(thisDt, tp) {
	var mdy = 'mm\/dd\/yyyy';
	var tElem = document.getElementById(thisDt);
	if(isMSIE == true) {
		switch(tp) {
			case 'clear':
				tElem.value = '';
				//tElem.style.color = '#000';
				tElem.style.borderColor = '#999';
				break;
			case 'reset':
				if(tElem.value == '') {
					tElem.value = mdy;
					//tElem.style.color = '#CCC';
					tElem.style.borderColor = '#999';
				}
				break;
			case 'focus':
				if(tElem.value == mdy) {
					tElem.value = '';
					//tElem.style.color = '#000';
					tElem.style.borderColor = '#999';
				}
				break;
			default:
		}
	}
}

function resetFrm() {
	document.getElementById('oForm').reset();
	if(isMSIE == true) {
		plc('StartDate', 'reset');
		plc('EndDate', 'reset');
	}
}

function showForm(id, span) { 
	if(document.getElementById(id).style.display == 'block') {
		document.getElementById(id).style.display = 'none';
		document.getElementById(span).innerHTML = '+ Show search form';
	} else {	
		document.getElementById(id).style.display = 'block';
		document.getElementById(span).innerHTML = '- Hide search form';
	}
}
