var _whitespace = ' \n\r\t';var _digits = '0123456789';var _hexDigits = '0123456789ABCDEF';var _smallChars = 'abcdefghijklmnopqrstuvwxyz';var _capChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';var _chars = _smallChars + _capChars;
function isEntered(value) {if (value.length == 0) return false;if (trim(value).length == 0) return false;return true;}
function trim(value) {var i = 0;while(isspace(value.charAt(i))) i++;if (i == value.length) return new String('');var j = value.length - 1;while(isspace(value.charAt(j))) j--;return value.substring(i, j + 1);}
function isspace(ch) {if (ch == ' ') return true;if (ch == '\n') return true;return false;}
function isEmail(t) {t = trim(t);i = getValidCharsLength (t, _smallChars + _capChars + _digits + '._-', 0);if (i < 1) return false;if (getValidCharsLength (t, '@', i) != 1) return false;dots = -1;do {len = getValidCharsLength (t, _smallChars + _capChars + _digits + '_-', ++i);if ((len < 2) || (len > 64)) return false;i += len;dots++;} while (getValidCharsLength (t, '.', i) == 1)return ((len < 6) && (len > 1) && (i >= t.length) && (dots > 0));}
function getValidCharsLength (t, chars, startAt) {for(var i = startAt; i < t.length; i++)if (chars.indexOf(t.charAt(i)) == -1)break;return (i - startAt);}
function isNum(s) {var v = trim(s);var i, c, we_had_dot = false;for(i = 0; i < v.length; i++) {	c = v.charAt(i);if (i == 0) if ((c == '-')||(c == '+')) continue;if ((c == '.')&&(we_had_dot == false)) {we_had_dot = true;continue;}if ((c < '0') || (c > '9')) return false;}return true;}

//deselect options
window.onload = function() {
	if (document.getElementsByTagName) {
  		var s = document.getElementsByTagName("select");
  		if (s.length > 0) {
  			window.select_current = new Array();
  			for (var i=0, select; select = s[i]; i++) {
  				select.onfocus = function(){ window.select_current[this.id] = this.selectedIndex; }
  				select.onclick = function(){ restore(this); }
  				emulate(select);
  			}
  		}
  	}
}

function restore(e) {
	if (e.options[e.selectedIndex].disabled) {
 		e.selectedIndex = window.select_current[e.id];
 	}
}

function emulate(e) {
	for (var i=0, option; option = e.options[i]; i++) {
 		if (option.disabled) {
 			option.style.color = "graytext";
		} else {
 			option.style.color = "menutext";
 		}
 	}
}

function createDate(outfield, day, month, year) {
	outfield.value = '9999-01-01 00:00:00';
	if (!isEntered(day.value) && !isEntered(month.value) && !isEntered(year.value)) return true;

	// alert(day.value + '-' + month.value + '-' + year.value);

	if (verifyDate(day, month, year) == false) return false;

	var _day = parseInt(day.value, 10);
	var _month = parseInt(month.value, 10);
	var _year = parseInt(year.value, 10);

	var mzero = '';
	var dzero = '';

	if (_month < 10) mzero = '0';
	if (_day < 10) dzero = '0';

	outfield.value = '' + _year + '-' + mzero + _month + '-' + dzero + _day;

	return true;
}

function verifyDate(day, month, year) {
	if ( !isEntered(day.value) || !isEntered(month.value) || !isEntered(year.value) )
		return false;

	var _day = parseInt(day.value, 10);
	var _month = parseInt(month.value, 10);
	var _year = parseInt(year.value, 10);

	// alert('[verifyDate checkpoint 1] ' + _day + '-' + _month + '-' + _year);

	if (isNaN(_day) || isNaN(_month) || isNaN(_year))
		return false;

	if ((_month < 1) || (_month > 12)) return false;

	var max_day_count;
	switch(_month) {
		case  1 :
		case  3 :
		case  5 :
		case  7 :
		case  8 :
		case 10 :
		case 12 :
			max_day_count = 31;
			break;

		case  2 :
			if ((_year % 4) == 0) max_day_count = 29;
			else max_day_count = 28;
			break;

		default :
			max_day_count = 30;
	}

	if ((_day < 1) || (_day > max_day_count)) return false;
	return true;
}

