function setSelection(field, value) {
	for(var i=0;i<field.length;i++) {
		if(field.options[i].value == value) {
			field.options[i].selected = true;
			i = field.length;
		}
	}
}

function setRadio(field, value) {
	for(var i=0;i<field.length;i++) {
		if(field[i].value == value) {
			field[i].checked = true;
			i = field.length;
		}
	}
}

function FormatString(str,len) {
	var ostr = str;
	for(var i=str.length+1;i<=len;i++) {
		ostr += " ";
	}
	return ostr;
}

function isNumeric(form_field) {
    var inString = form_field.value;
	var i = 0;
	var inChar = "";
	var numbers = "0123456789";
	for(i=0;i<inString.length;i++) {
		inChar = inString.substring(i,i+1);
		if(numbers.indexOf(inChar) < 0) {
			return false;
		}
	}
	return true;
}

function isMoney(form_field) {
    var inString = form_field.value;
	var i = 0;
	var inChar = "";
	var numbers = "0123456789.";
	var dec_cnt = 0;
	for(i=0;i<inString.length;i++) {
		inChar = inString.substring(i,i+1);
		if(numbers.indexOf(inChar) < 0) {
			return false;
		}
		if(inChar == ".") {
			dec_cnt++;
			if(dec_cnt > 1) {
				return false;
			}
		}
	}
	return true;
}

function isDate(form_field) {
    var inString = form_field.value;
	var i = 0;
	var inChar = "";
	var month = "";
	var day = "";
	var year = "";
	var slash_cnt = 0;
	var numbers = "0123456789";
	for(i=0;i<inString.length;i++) {
		inChar = inString.substring(i,i+1);
		if(inChar == "/") {
			slash_cnt++;
		} else {
			if(numbers.indexOf(inChar) < 0) {
				return false;
			} else {
				if(slash_cnt < 1) {
					if(inChar != "0" || month != "") {
						month += inChar;
					}
				} else {
					if(slash_cnt < 2) {
						if(inChar != "0" || day != "") {
							day += inChar;
						}
					} else {
						if(slash_cnt > 2) {
							return false;
						} else {
							year += inChar;
						}
					}
				}
			}
		}
	}
	if(slash_cnt < 2) {
		return false;
	}
	if(year.length != 2 && year.length != 4) {
		return false;
	}
	month = parseInt(month);
	day   = parseInt(day);
	year  = parseInt(year);

	if(month < 1 || month > 12) {
		return false;
	}
	if(day < 1 || day > 31) {
		return false;
	}
	if(year < 20) {
		year = year + 2000;
	} else {
		if(year < 100) {
			year = year + 1900;
		}
	}

	if(year < 1000) {
		return false;
	}
	var fmt_date = new Date(year, month-1, day);
	var fmt_month = fmt_date.getMonth()+1;
	var fmt_day = fmt_date.getDate();
	var fmt_year = fmt_date.getYear();
	if(fmt_date.getYear() < 1000) {
		fmt_year = fmt_year + 1900;
	}

	form_field.value = fmt_month + "/" + fmt_day + "/" +fmt_year;
	return true;
}

function isMultEmail(form_field) {
	var emails = form_field.value.split(";")
	var f = new Object();
	f.value = "";
	for(var e=0;e < emails.length;e++) {
		f.value = emails[e];
		if(!isEmail(f)) {
			return false;
		}
	}
	return true;
}

function isEmail(form_field) {
	var s = form_field.value.toLowerCase();
    var i = 0;
    var sLength = s.length;
	if(sLength <= 0) {
		return false;
	}

    // no weird characters

	var validChars = "abcdefghijklmnopqrstuvwxyz0123456789_@.-";
    while ((i < sLength) && (validChars.indexOf(s.charAt(i)) >= 0)) {
		i++;
    }

    if ((i < sLength)) {
		return false;
    } else {
		i = 1;
	}

    // look for @
    while ((i < sLength) && (s.charAt(i) != "@")) {
		i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) {
		return false;
    } else {
		i += 2;
	}

    // look for .
    while ((i < sLength) && (s.charAt(i) != ".")) {
		i++
    }

    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) {
		return false;
    } else {
		return true;
	}
}

function isPhone(form_field) {
	var s = form_field.value;
    var i = 0;
    var sLength = s.length;

    // no spaces
    while ((i < sLength) && (s.charAt(i) != " ")) {
		i++
    }

    if ((i < sLength)) {
		return false;
    }

	i = 0;
	var inString = "";
    while ((i < sLength)) {
		var c = s.charAt(i);
		if(c != "(" && c != ")" && c != "-" && c != ".") {
			inString += c;
		}
		i++;
	}

	if(inString.length != 7 && inString.length != 10) {
		return false;
	}

	var numbers = "0123456789";
	for(i=0;i<inString.length;i++) {
		c = inString.substring(i,i+1);
		if(numbers.indexOf(c) < 0) {
			return false;
		}
	}

	if(inString.length == 7) {
		form_field.value = inString.substring(0,3) + "-" + inString.substring(3,7)
	} else {
		form_field.value = "(" + inString.substring(0,3) + ")" + inString.substring(3,6) + "-" + inString.substring(6,10)
	}
	return true;
}

function dump_props(obj, objName) {
	var result = "";
	for (var i in obj) {
		result += objName + "." + i + " = " + obj[i] + "\n";
	}
	return result;
}
