// JavaScript Document

function validate_form(formObj) {
	var hasError=false;
	var focused=false;
	for(var i=0;i<formObj.length;i++) {
		var f=formObj.elements[i];
		switch(f.type) {
		case "text":
		case "password":
		case "textarea":
			var regex = _getAttr(f, "regex");
			if(regex!=null) {
				_clearError(f);
				var reg = new RegExp(regex);
				if(!reg.test(f.value)) {
					hasError=true;
					_showError(f);
				}
			}
			var equals = _getAttr(f, "equals");
			if(equals!=null) {
				_clearError(f);
				var eobj = document.getElementById(equals);
				if(eobj!=null) {
					if(eobj.value!=f.value) {
						hasError=true;
						_showError(f);
					}
				}
			}
			var notempty = _getAttr(f, "notempty");
			if(notempty!=null) {
				_clearError(f);
				if(f.value.replace(/[ ]+/,"")==""){
					hasError=true;
					_showError(f);
				}
			}
			break;
		case "select-one":
			if(f.value=="-"){
				var msg=_getAttr(f,"msg");
				if(msg!=null){
					hasError=true;
					alert(msg);
				}
			}
			break;
		}
		if(hasError && !focused){
			focused=true;
			f.focus();
		}
	}
	return !hasError;
}

function _getAttr(f, attrName) {
	var attrs = f.attributes;
	for(var i=0; i<attrs.length; i++) {
		var attr = attrs[i];
		if(attr.name==attrName) {
			return attr.value;
		}
	}
	return null;
}

function _clearError(f) {
	var lbl = document.getElementById(f.id+"_msg");
	if(lbl!=null) {
		lbl.innerHTML="";
	}
}

function _showError(f) {
	var msg = _getAttr(f, "msg");
	if(msg!=null) {
		var lbl = document.getElementById(f.id+"_msg");
		if(lbl!=null) {
			lbl.innerHTML=msg;
		}
	}
}
