function writeLogo (includeLink) {
	var str = '<img border=0 src="assets/images/MMofNYU.gif" alt="Money Marketeers of NYU">';
	if (includeLink)
		str = '<a href="index.htm">' + str + '</a>';
	str += '<br><br><br>';
	document.write (str);
}

function writeHomeLink(admin) {
	var str = '<br><div class="centeredText">[ <a href="index.htm">' + (admin ? 'ADMIN ' : '') + 'HOME</a> ]</div>';
	document.write (str);
}

function monthName (m) {
	var a = new Array ("","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
	if (m >= 1 && m <= 12)
		return a[m];
	return "";
}

function monthLen (m) {
	var a = new Array (0,31,28,31,30,31,30,31,31,30,31,30,31);
	if (m >= 1 && m <= 12)
		return a[m];
	return 0;
}

function intVal (s) {
	if (s == "")
		return 0;
	if (s.substr(0,1) == "0") {
		if (s.length == 1)
			return 0;
		return parseInt (s.substr(1,1));
	}
	return parseInt (s);
}

function writeMonthSelector (selectedMonth) {
	selectedMonth = intVal (selectedMonth);
	for (var i = 1; i <= 12; i++)
		document.write ('<option value="' + i + '"' + (i == selectedMonth ? ' selected' : '') + '>' + monthName (i) + '</option>');
}

function writeDaySelector (selectedMonth, selectedDay, selectedYear) {
	selectedMonth = intVal (selectedMonth);
	selectedDay = intVal (selectedDay);
	selectedYear = intVal (selectedYear);
	var monthLength = (selectedMonth == 2 && selectedYear % 4 == 0) ? 29 : monthLen (selectedMonth);
	for (var i = 1; i <= monthLength; i++)
		document.write ('<option value="' + i + '"' + (i == selectedDay ? ' selected' : '') + '>' + (i < 10 ? '0' : '') + i + '</option>');
}

function updateDaySelector (m, d, y) {
	var monthLengthArray = new Array (0,31,28,31,30,31,30,31,31,30,31,30,31);
	var month = document.getElementById (m).options[document.getElementById (m).selectedIndex].value;
	var year = document.getElementById (y).options[document.getElementById (y).selectedIndex].value;
	var d2 = document.getElementById (d);
	var index = d2.selectedIndex;
	for (var i = d2.options.length - 1; i >= 28; i--)
		d2.removeChild (d2.options[i]);
	var monthLength = (month == 2 && year % 4 == 0) ? 29 : monthLen (month);
	for (var i = 28; i < monthLength; i++)
		d2.options[i] = new Option (i + 1, i + 1);
	if (index >= 0 && index < d2.options.length)
		d2.selectedIndex = index;
}

function writeYearSelector (selectedYear) {
	selectedYear = intVal (selectedYear);
	for (var i = 1960; i <= 2030; i++)
		document.write ('<option value="' + i + '"' + (i == selectedYear ? ' selected' : '') + '>' + i + '</option>');
}

function writeHourSelector (selectedHour) {
	selectedHour = intVal (selectedHour);
	for (var i = 1; i <= 12; i++)
		document.write ('<option value="' + i + '"' + (i == selectedHour ? ' selected' : '') + '>' + (i < 10 ? "0" : "") + i + '</option>');
}

function writeMinuteSelector (selectedMinute) {
	selectedMinute = intVal (selectedMinute);
	for (var i = 0; i < 60; i+= 15)
		document.write ('<option value="' + i + '"' + (i == selectedMinute ? ' selected' : '') + '>' + (i < 10 ? "0" : "") + i + '</option>');
}

function formatDate (monthDropdownName, dayDropdownName, yearDropdownName) {
	var m = document.getElementById(monthDropdownName);
	var month = m.options[m.selectedIndex].value;
	month = (month < 10 ? "0" : "") + month;
	var d = document.getElementById(dayDropdownName);
	var day = d.options[d.selectedIndex].value;
	day = (day < 10 ? "0" : "") + day;
	var y = document.getElementById(yearDropdownName);
	var year = y.options[y.selectedIndex].value;
	return month + "/" + day + "/" + year;
}

function formatTime (hourDropdownName, minuteDropdownName) {
	var h = document.getElementById(hourDropdownName);
	var hour = h.options[h.selectedIndex].value;
	hour = (hour < 10 ? "0" : "") + hour;
	var m = document.getElementById(minuteDropdownName);
	var minute = m.options[m.selectedIndex].value;
	minute = (minute < 10 ? "0" : "") + minute;
	return hour + ":" + minute;
}

function trim (s) {
	return s.replace (/^\s+|\s+$/g, "");
}

function isBlank (v) {
	return (trim (v) == "");
}

function isNumeric (v) {
	var v2 = trim (v);
	if (isBlank (v2))
		return false;
	for (var i = 0; i < v2.length; i++) {
		if (v2.charAt (i) < "0" || v2.charAt (i) > "9")
			return false;
	}
	return true;
}

function isNumericOrBlank (v) {
	return (isBlank (v) || isNumeric (v));
}

function isEmail (s) {
	if (s.indexOf ("@") < 1)
		return false;
	if (s.indexOf (".") < 1)
		return false;
	if (s.indexOf ("@") > s.lastIndexOf ("."))
		return false;
	return true;
}

function isPhone (areaCode, exchange, number, extension) {
	areaCode = trim (areaCode);
	exchange = trim (exchange);
	number = trim (number);
	extension = trim (extension);
	if (isBlank (areaCode) && isBlank (exchange) && isBlank (number) && isBlank (extension))
		return true;
	if (isBlank (areaCode) || isBlank (exchange) || isBlank (number))
		return false;
	if (!isNumericOrBlank (areaCode) || !isNumericOrBlank (exchange) || !isNumericOrBlank (number) || !isNumericOrBlank (extension))
		return false;
	if (areaCode.length != 3 || exchange.length != 3 || number.length != 4)
		return false;
	return true;
}

function isYear (s) {
	if (isBlank (s))
		return false;
	if (!isNumericOrBlank (s))
		return false;
	if (s < 1 || s > 9999)
		return false;
	return true;
}

function isYear2 (s) {
	if (!isYear (s))
		return false;
	if (s > 99)
		return false;
	return true;
}