// JS functions to handle RAE stuff nicely on product_details page

function blank_flds(CheckName) {
	var f = document.forms[0];

	if (CheckName.checked == false) {
		// Assume max of 12 TFs associated with a CB
		for(i = 1; i <= 12; i++ ) {
			var theName = CheckName.name + i;
			var e = f.elements[theName];
			if( e ) {
				if (e.type == "text") {
					e.value = "";
				} else if (e.type == "select-one") {
					e.selectedIndex = 0;
				}

				// Set the correcponding leave blank checkbox
				theName = "CB_" + theName;
				e = f.elements[theName];
				if( e ) {
					e.checked = true;
				}
			} else {
				// we've finished the TFs
				break
			}
		}
	}
}

function change(CheckName, TextfieldName) {
	var f = document.forms[0]; 
	if (TextfieldName.value.length > 0) { 
		eval("f." + "elements[CheckName]" + ".checked=true");
	} else {
		// see if we can uncheck a containing CB
		// we know this one is empty, but others may not be empty

		// If last character is a digit, we are contained in a CB
		if (isNaN(TextfieldName.name.substring(TextfieldName.name.length - 1))) {
			return;
		}
		var baseName = TextfieldName.name.substring(0, TextfieldName.name.length - 1);
		if (isNaN(baseName.substring(baseName.length - 1))) {
		} else {
			baseName = baseName.substring(0, baseName.length - 1);
		}

		var allEmpty = 1;
		for(i = 1; i <= 12; i++ ) {
			var theName = baseName + i;
			var e = f.elements[theName];
			if( e ) {
				if (e.type == "text") {
					if (e.value != "") {
						allEmpty = 0;
						break;
					}
				}
			} else {
				break;
			}
		}

		if (allEmpty == 1) {
			eval("f." + "elements[CheckName]" + ".checked=false");
		}
	}
}

// check/uncheck a CB when SL changed
function changeSL(CheckName, SLname) {
}

// Has to handle TextfieldName of 'name' which does funny things
// check/uncheck a TF's Leave Blank CB when changed
function changeTF(CheckName, TextfieldName) {
}

// 2 functions for calendar date validation
function validateDate(e) {
	if (!checkDate(e)) {
		e.value = '';
		fldID = e.id;
		setTimeout("document.getElementById(fldID).focus();",1);
		setTimeout("document.getElementById(fldID).select();",1);
	}
}

// Cookbook 2.12
function checkDate(fld) {
	var mo, day, yr;
	var entry = fld.value;
	var re = /\b\d{1,2}[-]\d{1,2}[-]\d{4}\b/;
	if (re.test(entry)) {
		var delimChar = "-";
		var delim1 = entry.indexOf(delimChar);
		var delim2 = entry.lastIndexOf(delimChar);
		mo = parseInt(entry.substring(0, delim1), 10);
		day = parseInt(entry.substring(delim1+1, delim2), 10);
		yr = parseInt(entry.substring(delim2+1), 10);
		var testDate = new Date(yr, mo-1, day);
		// alert(testDate)
		if (testDate.getDate() == day) {
			if (testDate.getMonth() + 1 == mo) {
				if (testDate.getFullYear() == yr) {
					return true;
				} else {
					alert("There is a problem with the year entry.");
				}
			} else {
				alert("There is a problem with the month entry.");
			}
		} else {
			alert("There is a problem with the date entry.");
		}
	} else {
		alert("Incorrect date format. Enter as mm-dd-yyyy.");
	}
	return false;
}