// Copyright Doug Ashbaugh 2009 All Rights Reserved
/* myComputeAgeFields - Convert CtlBrnL and CtlBrnH fields to age in years - run onLoad*/
function myComputeAgeFields(){
	try {
		var step = 0;
		
		// get born date low
		var myCtlBrnL = document.getElementById('CtlBrnL').value; // datetime string format
		var myCtlBrnH = document.getElementById('CtlBrnH').value;
		
		if ( myCtlBrnL == 'VAR_CTLBRNL' ) {
			myCtlBrnL = '';
		}
		if ( myCtlBrnH == 'VAR_CTLBRNH' ) {
			myCtlBrnH = '';
		}

		step = 1;		
		var date = new Date();
		var curYear = date.getFullYear();
		
		step = 2;
		var yearPat = /^\d{4}/;
		var yearBrnL = parseInt(myCtlBrnL.match(yearPat));
		var yearBrnH = parseInt(myCtlBrnH.match(yearPat));
		
		// alert('Current Year:' + curYear + ', yearBrnL:' + yearBrnL + ', yearBrnH:' + yearBrnH);
		
		step = 3;
		var maxAge;
		if ( ! isNaN(yearBrnL) ) {
			maxAge = curYear - yearBrnL;
			document.getElementById('myMaxAge').value = maxAge;
		} else {
			document.getElementById('myMaxAge').value = '';
			document.getElementById('CtlBrnH').value = '';
		}
		
		step = 4;
		var minAge;
		if ( ! isNaN(yearBrnH) ) {
			var minAge = curYear - yearBrnH;
			document.getElementById('myMinAge').value = minAge;
		} else {
			document.getElementById('myMinAge').value = '';
			document.getElementById('CtlBrnL').value = '';
		}

	} catch(e) {
		alert("Error occurred during myComputeAgeFields() at step: " + step);
	}	
}

/* myComputeBornDates - Convert ages in years to CtlBrnH and CtlBrnL post vars */
function myComputeBornDates(){
	try {
		var step = 0;
		
		var minAge = document.getElementById('myMinAge').value;
		var myMinAge = parseInt(minAge);
		if ( minAge != '' && isNaN(minAge) ) {
			alert('Please correct the Minimum Age field. Enter numbers only.');
			document.getElementById('myMinAge').value = '';
			document.getElementById('CtlBrnL').value = '';
			return(false);
		}
		
		var maxAge = document.getElementById('myMaxAge').value;
		var myMaxAge = parseInt(maxAge);
		if ( maxAge != '' && isNaN(maxAge) ) {
			alert('Please correct the Maximum Age field. Enter numbers only.');
			document.getElementById('myMaxAge').value = '';
			document.getElementById('CtlBrnH').value = '';
			return(false);
		}
		
		// compute year based on age entered.
		step = 1;
		var date = new Date();
		var year = date.getFullYear(); // YYYY
		
		step = 2;
		var bornDateH = year - myMinAge;
		var bornDateL = year - myMaxAge;
		
		step = 3;
		if ( bornDateL > bornDateH ){
			alert('Please ensure maximum age is larger than minimum age.');
			document.getElementById('myMaxAge').value = '';
			document.getElementById('CtlBrnH').value = '';
			return(false);
		}
		
		step = 30;
		if ( ! isNaN(bornDateL) ) {
			var month = (date.getMonth()).toString();
			if ( month.length == 1 ) {
				month = '0' + month;
			}
			bornDateL = bornDateL + '-' + month + '-' + date.getDate();
			document.getElementById('CtlBrnL').value = bornDateL;
		} else {
			document.getElementById('CtlBrnL').value = '';
		}
		
		step = 40;
		if ( ! isNaN(bornDateH) ) {
			var month = (date.getMonth()).toString();
			//alert(month.length);
			if ( month.length == 1 ) {
				month = '0' + month;
			}
			bornDateH = bornDateH + '-' + month + '-' + date.getDate();
			document.getElementById('CtlBrnH').value = bornDateH;
		} else {
			document.getElementById('CtlBrnH').value = '';
		}
		
 	} catch(e) {
		alert("Error occurred during myComputeBornDates() at step: " + step);
	}	
}

/* compute the CtlBrnL and CtlBrnH fields to presentation years - run onLoad. */
function myComputeYearFields(){
	try {
		var step = 0;
		
		// get born date low
		var myCtlBrnL = document.getElementById('CtlBrnL').value; // datetime string format
		var myCtlBrnH = document.getElementById('CtlBrnH').value;

		step = 1;
		myCtlBrnL = Trim(myCtlBrnL);
		myCtlBrnH = Trim(myCtlBrnH);
		
		step = 2;
		if ( myCtlBrnL == 'VAR_CTLBRNL' ) {
			myCtlBrnL = '';
		}
		if ( myCtlBrnH == 'VAR_CTLBRNH' ) {
			myCtlBrnH = '';
		}
		
		step = 3;
		if ( myCtlBrnL == '') {
			document.getElementById('myMinAge').value = '';
			document.getElementById('CtlBrnL').value = '';
		} else {
			var minYear = myCtlBrnL.substr(0,4);
			document.getElementById('myMinAge').value = minYear;
		}
		
		step = 4;
		if ( myCtlBrnH == '') {
			myCtlBrnH = '2099-01-01 00:00:00';
			document.getElementById('myMaxAge').value = '';
			document.getElementById('CtlBrnH').value = '';
		} else {
			var maxYear = myCtlBrnH.substr(0,4);
			document.getElementById('myMaxAge').value = maxYear;
		}
		
	} catch(e) {
		alert("Error occurred during myComputeYearFields() at step: " + step);
	}	
}

//myComputerBornDatesFromYears() converts years to posted vars w sanity checks
function myComputerBornDatesFromYears(){

	try {
	
		var step = 0;
		var bornDateL = document.getElementById('myMinAge').value;
		var bornDateH = document.getElementById('myMaxAge').value;
		
		step = 1;
		bornDateL = Trim(bornDateL);
		bornDateH = Trim(bornDateH);
		
		step = 2;
		var lowCheck = parseInt(bornDateL);
		if ( isNaN( lowCheck ) ) {
			bornDateL = '';
			document.getElementById('myMinAge').value = bornDateL;
		}
		
		step = 3;
		lowCheck = parseInt(bornDateL);
		if ( ! isNaN( lowCheck ) ) {
			if ( lowCheck < 1900 ) {
				bornDateL = '1900';
				document.getElementById('myMinAge').value = bornDateL;
			}
		}

		step = 4;
		var hiCheck = parseInt(bornDateH);
		if ( isNaN( hiCheck ) ) {
			bornDateH = '';
			document.getElementById('myMaxAge').value = bornDateH;
		}
		
		step = 5;
		hiCheck = parseInt(bornDateH);
		if ( ! isNaN( hiCheck ) ) {
			if ( hiCheck > 2099 ) {
				bornDateH = '2099';
				document.getElementById('myMaxAge').value = bornDateH;
			}
		}
		
		step = 5;
		lowCheck = parseInt(bornDateL);
		hiCheck = parseInt(bornDateH);
	
		// Numbers entered. Sanity check range.
		if ( ! isNaN( lowCheck ) && ! isNaN( hiCheck ) ) {
			if ( lowCheck > hiCheck || lowCheck < 1900 ) {
				bornDateL = '1900';
				document.getElementById('myMinAge').value = bornDateL;
			}
			if ( hiCheck < lowCheck || hiCheck > 2099) {
				bornDateH = '2099';
				document.getElementById('myMaxAge').value = bornDateH;
			}
		}
		
		step = 6;
		if ( ! isNaN( lowCheck ) ) {
			bornDateL = bornDateL + '-01-01 00:00:00';
			document.getElementById('CtlBrnL').value = bornDateL;
		} else {
			document.getElementById('myMinAge').value = '';
			document.getElementById('CtlBrnL').value = '';
		}
		
		step = 7;
		if ( ! isNaN( hiCheck ) ) {
			bornDateH = bornDateH + '-12-31 23:59:59';
			document.getElementById('CtlBrnH').value = bornDateH;
		}  else {
			document.getElementById('myMaxAge').value = '';
			document.getElementById('CtlBrnH').value = '';
		}
			
	} catch(e) {
		alert("Error occurred during myComputerBornDatesFromYears() at step: " + step);
	}
}

