﻿/*
VERSION:
11/3/2008		1.0.3	Updated function `selectOption`, using try clause to validate an input.
6/17/2008		1.0.2	Added function `zebraStripe`.
			1.0.1	The validateField method was deprecated. This function can be found in the lib_validate.js file.
			1.0.0	Begin versioning.
*/
//-----------------------------------------------------------------------------------------
function hiliteInput(inputRef, color) {
var clr = (!isNothing(color) ? color : "red");
inputRef.style.borderColor = clr;
inputRef.style.backgroundColor = "yellow";
inputRef.style.color = "#b50000";
};
//-----------------------------------------------------------------------------------------
function clearHilite(inputRef) {
inputRef.style.borderColor = '';
inputRef.style.backgroundColor = '';
inputRef.style.color = '';
};
//-----------------------------------------------------------------------------------------
function clearAllHilites(formRef) {
for(var i = formRef.elements.length-1; i >= 0; i--) {
	formRef.elements[i].style.borderColor = '';
	formRef.elements[i].style.backgroundColor = '';
	formRef.elements[i].style.color = '';
}
};
//-----------------------------------------------------------------------------------------
//this function should be called from the onkeyup event
//will finish the date string with the current year after the second slash (/)
function completeDate(dateStr) {
var objRegExp1 = /^\d{1,2}\/\d{1,2}\/\d{1,}$/;
var objRegExp2 = /^\d{1,2}\/\d{1,2}\/$/;
if(dateStr.search(objRegExp1) > -1) {
	return dateStr;
} else if(dateStr.search(objRegExp2) > -1) {
	var yr = new Date(); yr = yr.getFullYear();
	return dateStr + yr;
}
return dateStr;

};
//-----------------------------------------------------------------------------------------
function selectOption(inputRef, optValue, defaultSelected) {
try {
var i = inputRef.options.length-1;
while(i >= 0) {
	if(inputRef[i].value == optValue) {
		inputRef.selectedIndex = i;
		inputRef.options[i].selected = true;
		if(defaultSelected) { inputRef.options[i].defaultSelected = true; }
		return true;
		break;
	}
	i--;
}
} catch(e) {};
return false;
};
//-----------------------------------------------------------------------------------------
function zebraStripe(elemsArray) {
//prototype only
elemsArray.each(function(s, i) {
	if(i % 2 == 0) { elemsArray[i].addClassName('alt'); }
});
};
//	FUNCTION GROUP TO DEAL WITH MULTIPLE CHECK BOXES
//----------------------------------------------------------------------------------------
function selectAll(ref) {
if(ref.options === undefined) {
	return false;
}
for(var i = ref.options.length-1; i >= 0; i--) {
	ref.options[i].selected = true;
}
};

function checkBoxes(inputRef, arrayValues) {
	var success = false;
	if(inputRef['length'] !== undefined) {
		for(var i = inputRef.length-1; i >= 0; i--) {
			if(inArray(arrayValues, inputRef[i].value) > -1) {
				inputRef[i].checked = true; inputRef[i].defaultChecked = true;
				success = true;
			}
		}
	} else {
		if(inArray(arrayValues, inputRef.value) > -1) {
			inputRef.checked = true; inputRef.defaultChecked = true;
			success = true;
		}
	}
	return success;
};

function checkRadio(inputRef, value) {
	if(inputRef['length'] !== undefined) {
		for(var i = inputRef.length-1; i >= 0; i--) {
			if(value == inputRef[i].value) {
				inputRef[i].checked = true; inputRef[i].defaultChecked = true;
				return true;
			}
		}
	} else {
		if(value == inputRef.value) {
			inputRef.checked = true; inputRef.defaultChecked = true;
		}
	}
};
/**** RETURNS FALSE IF NO BOXES ARE CHECKED, TRUE OTHERWISE ****/
function checkAny(checkBoxGroup) {
if(checkBoxGroup === undefined) { return false; }
if(checkBoxGroup.length === undefined) {
	return checkBoxGroup.checked;
} else {
	var n = checkBoxGroup.length-1;
	var i = 0;
	for(i = n; i >= 0; i--) {
		if(checkBoxGroup[i].checked == true) {
			return true;
		}
	}
}
return false;
};
/**** SELECTS ALL CHECK BOXES ****/
function checkAll(checkBoxGroup) {
if(checkBoxGroup === undefined) { return false; }
if(checkBoxGroup.length === undefined) {
	checkBoxGroup.checked = true;
} else {
	var n = checkBoxGroup.length-1;
	var i = 0;
	for(i = n; i >= 0; i--) {
		checkBoxGroup[i].checked = true;
	}
}
};
/**** DESELECTS ALL CHECK BOXES ****/
function checkNone(checkBoxGroup) {
if(checkBoxGroup === undefined) { return false; }
if(checkBoxGroup.length === undefined) {
	checkBoxGroup.checked = false;
} else {
	var n = checkBoxGroup.length-1;
	var i = 0;
	for(i = n; i >= 0; i--) {
		checkBoxGroup[i].checked = false;
	}
}
};

//return select index for an array of Radios (and checkboxes, but pretty useless)
function getSelectedIndex(radioGroup) {
var i = radioGroup.length-1;
while(i >= 0) {
	if(radioGroup[i].checked == true) {
		return i;
	}
	i--;
}
return -1;
};
