function checkText(obj, nottext, text) {
	var regExp = /^\s*$/;
	if (regExp.test(obj.value) || (obj.value == nottext)) {
		alert(text);
		obj.focus();
		return false;
	} else {
		return true;
	}
}

function checkText2(obj, nottext, text) {
	var regExp = /^\s*$/;
	if (regExp.test(obj.value) || (obj.value == nottext)) {
		alert(text);
		return false;
	} else {
		return true;
	}
}

/**
 *	Check whether email is valid or not
 *	Also show alert message
 */
function checkEmail(obj, text)
{
	var str = obj.value;
	var exclude = /[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
	var check = /@[\w\-]+\./;
	var checkend = /\.[a-zA-Z]{2,3}$/;

	// Check email format
	if (!(!exclude.test(str) && check.test(str) && checkend.test(str))) {
		alert(text);
		obj.focus();
		return false;
	} 	else {
		return true;
	}
}

/**
 *	Check password in pw and cpw are valid?
 *	Also show alert message
 */
function checkPassword(pw, cpw, text) {
	if (pw.value.length < 4 || pw.value.length > 20) {
		alert('Password must be 4-20 characters');
		pw.focus();
		return false;
	}
	var regExp = /\s/;
	if (regExp.test(pw.value)) {
		alert('Password cannot contain space characters');
		pw.focus();
		return false;
	}
	if (checkText(pw, '', text)) {
		if (pw.value == cpw.value) {
			return true;
		} else {
			alert('Your confirm password is not match your password, please retype');
			cpw.focus();
			return false;
		}
	} else {
		pw.focus();
		return false;
	}
}

/**
 *	Check if two textbox is not empty and match each other
 */
function check2Text(obj, obj2, nottext, text, notmatchtext) {
	var regExp = /^\s*$/;
	if (regExp.test(obj.value) || (obj.value == nottext)) {
		alert(text);
		obj.focus();
		return false;
	} else if (regExp.test(obj2.value) || (obj2.value == nottext)) {
		alert(text);
		obj2.focus();
		return false;
	} else if (obj.value != obj2.value) {
		alert(notmatchtext);
		obj2.focus();
		return false;
	} else {
		return true;
	}
}

function checkBox(obj, text) {
	if ((obj.length == null) && (obj.checked)) {
		return true;
	}
	for (i = 0; i < obj.length; i++) {
		if (obj[i].checked == true) {
			return true;
		}
	}
	alert(text);
	if (obj.length == null) {
		obj.focus();
	} else {
		obj[0].focus();
	}
	return false;
}

// JS Calendar
var calendar = null; // remember the calendar object so that we reuse
// it and avoid creating another

// This function gets called when an end-user clicks on some date
function selected(cal, date) {
	cal.sel.value = date; // just update the value of the input field
}

// And this gets called when the end-user clicks on the _selected_ date,
// or clicks the "Close" (X) button.  It just hides the calendar without
// destroying it.
function closeHandler(cal) {
	cal.hide();			// hide the calendar

	// don't check mousedown on document anymore (used to be able to hide the
	// calendar when someone clicks outside it, see the showCalendar function).
	Calendar.removeEvent(document, "mousedown", checkCalendar);
}

// This gets called when the user presses a mouse button anywhere in the
// document, if the calendar is shown.  If the click was outside the open
// calendar this function closes it.
function checkCalendar(ev) {
	var el = Calendar.is_ie ? Calendar.getElement(ev) : Calendar.getTargetElement(ev);
	for (; el != null; el = el.parentNode)
	// FIXME: allow end-user to click some link without closing the
	// calendar.  Good to see real-time stylesheet change :)
	if (el == calendar.element || el.tagName == "A") break;
	if (el == null) {
		// calls closeHandler which should hide the calendar.
		calendar.callCloseHandler(); Calendar.stopEvent(ev);
	}
}

// This function shows the calendar under the element having the given id.
// It takes care of catching "mousedown" signals on document and hiding the
// calendar if the click was outside.
function showCalendar(id) {
	var el = document.getElementById(id);
	if (calendar != null) {
		// we already have one created, so just update it.
		calendar.hide();		// hide the existing calendar
		calendar.parseDate(el.value); // set it to a new date
	} else {
		// first-time call, create the calendar
		var cal = new Calendar(true, null, selected, closeHandler);
		calendar = cal;		// remember the calendar in the global
		cal.setRange(1900, 2070);	// min/max year allowed
		calendar.create();		// create a popup calendar
		calendar.parseDate(el.value); // set it to a new date
	}
	calendar.sel = el;		// inform it about the input field in use
	calendar.showAtElement(el);	// show the calendar next to the input field

	// catch mousedown on the document
	Calendar.addEvent(document, "mousedown", checkCalendar);
	return false;
}

function isChecked(isitchecked){
	if (isitchecked == true){
		document.adminForm.boxchecked.value++;
	}
	else {
		document.adminForm.boxchecked.value--;
	}
}
function submitbutton(pressbutton) {
	submitform(pressbutton);
}
/**
* Submit the admin form
*/
function submitform(pressbutton){
	document.adminForm.task.value=pressbutton;
	try {
		document.adminForm.onsubmit();
		}
	catch(e){}
	document.adminForm.submit();
}

function checkAll( n, fldName ) {
  if (!fldName) {
     fldName = 'cb';
  }
	var f = document.adminForm;
	var c = f.toggle.checked;
	var n2 = 0;
	for (i=0; i < n; i++) {
		cb = eval( 'f.' + fldName + '' + i );
		if (cb) {
			cb.checked = c;
			n2++;
		}
	}
	if (c) {
		document.adminForm.boxchecked.value = n2;
	} else {
		document.adminForm.boxchecked.value = 0;
	}
}
