function DropDownSelected(element) {
	if (element.selectedIndex == 0) {
	 return false;
	 } else {
	 return true;
	 }
}

function validTime(strTime) {
	if (strTime.length != 5) return false;
	if (isNaN(strTime.substr(0, 2)))  return false;
	if (isNaN(strTime.substr(3, 2)))  return false;
	if (strTime.substr(2, 1) != ':')  return false;
	if (parseInt(strTime.substr(0, 2)) < 0)  return false;
	if (parseInt(strTime.substr(0, 2)) > 23)  return false;
	if (parseInt(strTime.substr(3, 2)) < 0)  return false;
	if (parseInt(strTime.substr(3, 2)) > 59)  return false;
	return true;
}

function validYear(strYear, bMayBeInPast, bMayBeInFuture) {
	if (strYear == '') { return true; }
	
	if (isNaN(strYear)) { return false; }
	if (strYear.length != 4) { return false; }
	var tmpDate = new Date();
	if (!bMayBeInPast) {
		if (parseFloat(strYear) < tmpDate.getUTCFullYear()) { return false; }
	}
	if (!bMayBeInFuture) {
		if (parseFloat(strYear) > tmpDate.getUTCFullYear()) { return false; }
	}
	
	return true;
}

function urlEncode(strURL) {
	var strReturn = '';
	
	for (var i=0; i<strURL.length; i++) {
		if (strURL.substr(i, 1) == '?')
			strReturn += '%3F';
		else if (strURL.substr(i, 1) == '&')
			strReturn += '%26';
		else if (strURL.substr(i, 1) == '=')
			strReturn += '%3D';
		else
			strReturn += strURL.substr(i, 1);
	}
	
	return strReturn;
}

function validDate(strDate, strDateFormat) {
	if (strDate == '') { return true; }
	if (strDateFormat) {
		if (strDateFormat == '') { strDateFormat = 'YYYY-MM-DD'; }
	} else {
		strDateFormat = 'YYYY-MM-DD';
	}
	
	var intYear = -1;
	var intMonth = -1;
	var intDay = -1;
	var strSep1 = '';
	var strSep2 = '';
	var intSep1 = -1;
	var intSep2 = -1;
	
	for (var i=0; i<strDateFormat.length; i++) {
		if (strDateFormat.substr(i, 4) == 'YYYY') {
			intYear = i;
		} else if (strDateFormat.substr(i, 2) == 'MM') {
			intMonth = i;
		} else if (strDateFormat.substr(i, 2) == 'DD') {
			intDay = i;
		} else if (strDateFormat.substr(i, 1) != 'Y' && strDateFormat.substr(i, 1) != 'M' && strDateFormat.substr(i, 1) != 'D') {
			if (intSep1 == -1) {
				intSep1 = i;
				strSep1 = strDateFormat.substr(i, 1);
			} else {
				intSep2 = i;
				strSep2 = strDateFormat.substr(i, 1);
			}
		}
	}
	
	// Now, validate the date according to the given format
	if (strDate.length != 10) { return false; }
    if (strDate.substr(intSep1, 1) != strSep1) { return false; }
	if (strDate.substr(intSep2, 1) != strSep2) { return false; }
    	
	var strYear=strDate.substr(intYear, 4);
    var strMonth=strDate.substr(intMonth, 2);
	var strDay=strDate.substr(intDay, 2);
	if (strMonth.substr(0, 1) == '0') strMonth = strMonth.substr(1, 1);
	if (strDay.substr(0, 1) == '0') strDay = strDay.substr(1, 1);
  
	if (isNaN(strYear) || isNaN(strMonth) || isNaN(strDay)) { return false; }
	if (parseInt(strMonth) < 1 || parseInt(strMonth) > 12) { return false; }
    
//			document.write(parseInt(strDay));
	var intCheckDay = 1;
	
	if (parseInt(strMonth) == 1 || parseInt(strMonth) == 3 || parseInt(strMonth) == 5 || parseInt(strMonth) == 7 || parseInt(strMonth) == 8 || parseInt(strMonth) == 10 || parseInt(strMonth) == 12) {
		intDayMax = 31;
	} else if (parseInt(strMonth) == 4 || parseInt(strMonth) == 6 || parseInt(strMonth) == 9 || parseInt(strMonth) == 11) {
		intDayMax = 30;
	} else if (parseInt(strMonth) == 2) {
		if (isLeapYear(strYear)) {
			intDayMax = 29;
		} else {
			intDayMax = 28;
		}
	}
	
	if (parseInt(strDay) < 1 || parseInt(strDay) > intDayMax) { return false; }

	return true;
}

function isLeapYear(strYear) {
	if (strYear == '') { return false; }
	if (strYear.length != 4) { return false; }
	if (isNaN(strYear)) { return false; }
	
	var fltBy4 = (parseInt(strYear) / 4) - parseInt(parseInt(strYear) / 4);
	var fltBy100 = (parseInt(strYear) / 100) - parseInt(parseInt(strYear) / 100);
	var fltBy400 = (parseInt(strYear) / 400) - parseInt(parseInt(strYear) / 400);
	
	if (fltBy4 == 0) {
		if (fltBy100 == 0) {
			if (fltBy400 == 0) {
				return true;
			} else {
				return false;
			}
		} else {
			return true;
		}
	} else {
		return false;
	}
}

function blankString(strString) {
	strString = String(strString);
	
	if (strString == '') { return true; }
	
	for (var i=0; i<strString.length; i++) {
		if (strString.charCodeAt(i) != 10 && strString.charCodeAt(i) != 13 && strString.charCodeAt(i) != 32) { 
			return false;
		}
	}
	
	return true;
}

function validEMail(strEMail) {
	var fFoundAt = false;
	var fFoundDot = false;
	
	strEMail = String(strEMail);
	
	if (strEMail == '') { return true; }
	if (strEMail.length < 8) { return false; }
	
	for (var i=0; i<strEMail.length; i++) {
		//  . = 46 and @ = 64
		if (strEMail.charCodeAt(i) == 64) {
			if (fFoundAt) { return false; }
			fFoundAt = true;
		} else if (strEMail.charCodeAt(i) == 46) {
			if (fFoundAt) {
				fFoundDot = true;
				break;
			}
		}
	}
	
	if (!fFoundAt || !fFoundDot) { return false; }
	
	return true;
}

function validPhone(str) 
{
	var phone2 = /([0-9\+ ])/;
	if (str.match(phone2)) {
   		return true;
 	} else {
 		return false;
 	}
}

function validMoney(strAmount) {
	var fFoundDecimalPoint = false;
	var lngDecimalCnt = 0;
	
	for (var i=0; i<strAmount.length; i++) {
		if (strAmount.substr(i, 1) == '.') {
			if (fFoundDecimalPoint) return false;
			fFoundDecimalPoint = true;
		} else {
			if (isNaN(strAmount.substr(i, 1)) || strAmount.substr(i, 1) == ' ') return false;
			if (fFoundDecimalPoint) {
				if (lngDecimalCnt >= 2) return false;
				lngDecimalCnt++;
			}
		}
	}
	return true;
}

function validURL(strURL) {
	if (strURL.length <= 10) return false;
	if (strURL.substr(0, 7).toLowerCase() != 'http://' && strURL.substr(0, 8).toLowerCase() != 'https://') return false;
	return true;
}

function getStringLength(strData) {
	return strData.length;
}

function moreThanMaxLength(strData, lngMaxLength) {
	if (strData.length > lngMaxLength) {
		return true;
	} else {
		return false;
	}
}

function showError(objControl, strMessage) {
	alert(strMessage);
	if (objControl.focus) objControl.focus();
	if (objControl.select) objControl.select();
}

function showWindow(strURL, strName, lngWidth, lngHeight, fScrollbars) {
	if (!lngWidth) lngWidth = -1;
	if (lngWidth <= 0) lngWidth = 640;
	if (!lngHeight) lngHeight = -1;
	if (lngHeight <= 0) lngHeight = 530;
	if (!fScrollbars) fScrollbars = false;
	
	var strScrolling = 'resizable=no,scrollbars=no,';
	if (fScrollbars) strScrolling = 'resizable=yes,scrollbars=yes,';
	
	var hWin = window.open(strURL, strName, 'width=' + lngWidth + ',height=' + lngHeight + ',left=' + ((screen.width - lngWidth) / 2) + ',top=' + ((screen.height - lngHeight) / 2) + ',location=no,menubar=no,status=no,' + strScrolling + 'toolbar=no');
	if (hWin.focus) { hWin.focus(); }
}

function changeImage(strName, strSrc) {
	if (document.images) document.images[strName].src = strSrc;
}

	
var lngLastAt=0;
function getElement(frmElement, strElementName) {
	for (var i=lngLastAt; i<frmElement.elements.length; i++) {
		if (frmElement.elements[i].name == strElementName) {
			lngLastAt = i;
			return frmElement.elements[i];
		}
	}
	
	for (var i=0; i<lngLastAt; i++) {
		if (frmElement.elements[i].name == strElementName) {
			lngLastAt = i;
			return frmElement.elements[i];
		}
	}
	
	return null;
}

var currTxtControl = null;
function showCalender(txtControl) {
	showWindow('/calender.cfm?Date=' + txtControl.value, 'Calender', 174, 268);
	currTxtControl = txtControl;
}

function saveCalenderValue(strValue) {
	if (!currTxtControl) return;
	if (currTxtControl == null) return;
	
	currTxtControl.value = strValue;
	currTxtControl = null;
}

function replaceInStr(strString, strFind, strReplace) {
	if (strString.length < strFind.length) return strString;
	
	var strReturn = '';
	for (var i=0; i<=(strString.length - strFind.length); i++) {
		if (strString.substr(i, strFind.length).toLowerCase() == strFind.toLowerCase()) {
			strReturn += strReplace;
			i+=(strFind.length - 1);
		} else {
			strReturn += strString.substr(i, 1);
		}
	}
	
	for (var j=i; i<strString.length; i++) {
		strReturn += strString.substr(i, 1);
	}
	
	return strReturn;
}

function createDate(strDate) {
	var strYear = '20' + strDate.substr(6, 2);
	var strMonth = strDate.substr(3, 2);
	var strDay = strDate.substr(0, 2);
	
	var returnDate = new Date();
	if (strMonth.indexOf("0") == 0) strMonth = strMonth.substr(1, 1);
	if (strDay.indexOf("0") == 0) strDay = strDay.substr(1, 1);
	returnDate = new Date(parseInt(strYear), parseInt(strMonth), parseInt(strDay), 0, 0, 0);
	
	return returnDate;
}

// radio button functions

function getSelectedRadio(buttonGroup) {
   // returns the array number of the selected radio button or -1 if no button is selected
   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            return i
         }
      }
   } else {
      if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
   }
   // if we get to this point, no radio button is selected
   return -1;
} // Ends the "getSelectedRadio" function

function getSelectedRadioValue(buttonGroup) {
   // returns the value of the selected radio button or "" if no button is selected
   var i = getSelectedRadio(buttonGroup);
   if (i == -1) {
      return "";
   } else {
      if (buttonGroup[i]) { // Make sure the button group is an array (not just one button)
         return buttonGroup[i].value;
      } else { // The button group is just the one button, and it is checked
         return buttonGroup.value;
      }
   }
} // Ends the "getSelectedRadioValue" function

function getSelectedCheckbox(buttonGroup) {
   // Go through all the check boxes. return an array of all the ones
   // that are selected (their position numbers). if no boxes were checked,
   // returned array will be empty (length will be zero)
   var retArr = new Array();
   var lastElement = 0;
   if (buttonGroup[0]) { // if the button group is an array (one check box is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            retArr.length = lastElement;
            retArr[lastElement] = i;
            lastElement++;
         }
      }
   } else { // There is only one check box (it's not an array)
      if (buttonGroup.checked) { // if the one check box is checked
         retArr.length = lastElement;
         retArr[lastElement] = 0; // return zero as the only array value
      }
   }
   return retArr;
} // Ends the "getSelectedCheckbox" function

function getSelectedCheckboxValue(buttonGroup) {
   // return an array of values selected in the check box group. if no boxes
   // were checked, returned array will be empty (length will be zero)
   var retArr = new Array(); // set up empty array for the return values
   var selectedItems = getSelectedCheckbox(buttonGroup);
   if (selectedItems.length != 0) { // if there was something selected
      retArr.length = selectedItems.length;
      for (var i=0; i<selectedItems.length; i++) {
         if (buttonGroup[selectedItems[i]]) { // Make sure it's an array
            retArr[i] = buttonGroup[selectedItems[i]].value;
         } else { // It's not an array (there's just one check box and it's selected)
            retArr[i] = buttonGroup.value;// return that value
         }
      }
   }
   return retArr;
} // Ends the "getSelectedCheckBoxValue" function

// end radio button functions, taken from http://www.breakingpar.com/bkp/home.nsf/Doc?OpenNavigator&U=CA99375CC06FB52687256AFB0013E5E9