
function checkRequired(inputArray, msg) {
	var error = '';
	for(var i = 0; i < inputArray.length; i++) {
		if( inputArray[i][0] == '' )
		error += inputArray[i][1] + '\n';
	}
	if (error != '') {
		error += msg + '\n';
		alert(error);
		return false;
	}
	else {
		return true;
	}
}
function checkEmail(email, msg) {
	var url_patern = /^[\w-_\.]+@([\w-_]+\.)+([\w-_]+)$/;
	if (!url_patern.test(email)) {
		alert(msg);
		return false;
	}
	return true;
}
function checkInteger(i, msg) {
	if (isNaN(i)) {
		// not a number
		alert(msg);
		return false;
	} else {
		// be a float
		i2 = parseInt(i);
		if (i != i2) {
			alert(msg);
			return false;
		}
	}
	return true;
}
function checkDouble(d, msg) {
	if (isNaN(d)) {
		alert(msg);
		return false;
	}
	return true;
}
function checkPositiveInteger(i, msg) {
	if (checkInteger(i, msg)) {
		if (i >= 0) {
			return true;
		}
		alert(msg);
	}
	return false;
}
function checkDate(dateStr, size, msg) {
	if (!checkInteger(dateStr, msg)) {
		return false;
	}
	if (dateStr.length != size) {
		alert(msg);
		return false;
	}
	var year = parseInt(dateStr.substring(0,4), 10);
	var month = parseInt(dateStr.substring(4,6), 10);
	var day = parseInt(dateStr.substring(6,8), 10);
	if( month < 1 || month > 12 ) {
		alert(msg);
		return false;
	}
	if ( day < 1 ) {
		alert(msg);
		return false;
	}
	switch(month) {
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12: {
			if ( day > 31 ) {
				alert(msg);
				return false;
			}
			break;
		}
		case 4:
		case 6:
		case 9:
		case 11: {
			if ( day > 30 ) {
				alert(msg);
				return false;
			}
			break;
		}
		case 2: {
			if ( (year%4 == 0) && (day > 29) ) {
      	alert(msg);
      	return false;
      }
      else if ( (year%4 != 0) && (day > 28) ) {
      	alert(msg);
      	return false;
			}
			break;
		}
	}
	// ??d?u??B?!v?C
	if (size == 12) {
		var hour = parseInt(dateStr.substring(8, 10), 10);
		var minute = parseInt(dateStr.substring(10, 12), 10);
		if ( hour > 23 ) {
			alert(msg);
      return false;
		}
		if ( minute > 59 ) {
			alert(msg);
			return false;
		}
	}
	return true;
}
function checkMaxLength(text, size, msg) {
	if (text.length > size) {
		alert(msg);
		return false;
	}
	return true;
}
function checkURL(url, msg) {
	var url_patern = /^([hH][tT][tT][pP]\:\/\/([\w-_]+\.)+([\w-_]+))/;
	if (!url_patern.test(url)) {
		alert(msg);
		return false;
	}
	return true;
}
function checkLength(data, length, msg) {
	if (data.length > length) {
		alert(msg);
		return false;
	}
	return true;
}

// 20050629 Neil - for Web side
function clearDefaultValue(field) {
	var value = field.value;
	if (value == dateFormat) {
		field.value = '';
	}
}

// 20051012 Neil - for Web side
function checkWebDate(language, date) {
	var pattern;
	var dates;
	if (language == 1) {
		// YYYY-MM-DD
		pattern = /\d{4}-\d{1,2}-\d{1,2}/;
		dates = date.split('-');
	} else if (language == 0 ) {
		// DD/MM/YYYY
		pattern = /\d{1,2}\/\d{1,2}\/\d{4}/;
		dates = date.split('/');
	} else {
		alert('Can\'t find the language variable!');
		return false;
	}
	// Format check
	if (pattern.test(date)) {
		// Data check
		var jDate = getDate(language, date);
		// ??????????????????????
		if (jDate.getMonth() != (dates[1] - 1)) {
			return false;
		}
		return true;
	} else {
		return false;
	}
}

function checkStartEnd(language, from, to) {
	if (from == '' && to != '') {
		return false;
	} else if (from != '' && to == '') {
		return true;
	} else if (from == '' && to == '') {
		return true;
	}
	if (language == 1) {
		var fromDate = getDate(language, from);
		var toDate = getDate(language, to);
		return fromDate.getTime() <= toDate.getTime();
	} else if (language == 0 ) {
		var fromDate = getDate(language, from);
		var toDate = getDate(language, to);
		return fromDate.getTime() <= toDate.getTime();
	} else {
		alert('Can\'t find the language variable!');
		return false;
	}
}

function getDate(language, date) {
	if (language == 1) {
		var dates = date.split('-');
		return new Date(dates[0], dates[1] - 1, dates[2]);
	} else if (language == 0 ) {
		var dates = date.split('/');
		return new Date(dates[2], dates[1] - 1, dates[0]);
	} else {
		alert('Can\'t find the language variable!');
		return false;
	}
}