
function checkField(form,elem,msg) {
	if (!elem)
		return true;
	
	var name = elem.name;
	var value = elem.value;
	var type = elem.type;
	var xtype = elem.getAttribute('ajax:xtype');
	if (!xtype)
		xtype = type;
	
	var b = true;
	if (xtype == "email") {
		b = isEmail(value); 
	} else if (xtype == "int") {
		b = isInt(value); 
	} else if (xtype == "look-for-confirm") {
		var c = form[name+"-confirm"];
		b = (c && value == c.value);
	} else {
		b = !isEmpty(value);
	}
	if (msg && !b) {
		window.alert(msg);
	}
	return b;
}//checkField()

function isInt(par) {
	var f = par;
	var pattern = /^[\+|\-]?[0-9]*$/;
	if(f == pattern.exec(f)) {
		par = f;
	} else {
		return false;
	}
	return true;
}//isInt()

function checkInt(tf) {
	var par = tf.value;
	if (isInt(par))
		return;
	while (!isInt(par))
		par = par.substring(0,par.length-1);
	tf.value = par;
}//checkInt()

function checkAbs(tf) {
	checkInt(tf);
	if (tf.value != '') {
		var a = Math.abs(tf.value);
		if (!isNaN(a))
			tf.value = a;
	}
}//checkAbs()

function isEmpty(s) {
	if (s != null)
		s = s.replace(/^\s*/, '').replace(/\s*$/, '');
	return (s == null || s == '');
}//isEmpty()

function selectListValue(s) {
	for (var i = 0; i < s.options.length; i++)
		if (s.options[i].selected)
			return s.options[i].value;
	return '';
}//selectListValue()

function setSelectListValue(s,v) {
	for (var i = 0; i < s.options.length; i++) {
		if (s.options[i].value == v) {
			s.options[i].selected = true;
			break;
		}
	}
}//setSelectListValue()

function isEmail(par) {
	var e = par;
	e = e.replace(/^\s*(\S*)\s*$/, "$1");
	var pattern = /^[A-Za-z0-9_.-]+@[A-Za-z0-9_.-]+\.[A-Za-z]{2,}$/;
	if (e == pattern.exec(e)) {
		par = e;
	} else {
		return false;
	}
	return true;
}//isEmail()

