function valid_string(v) {
	if (!v.value.length > 0) {
		simg_er(v.name);
		v.focus();
		return(false);
	}
	simg_ok(v.name);
	return(true);
}

function valid_number(v,len) {

	if (v.value.length != len || isNaN(parseInt(v.value)) ) {
		simg_er(v.name);
		v.focus();
		return(false);
	}
	simg_ok(v.name);
	return(true);
}

function valid_email(v) {
	var pattern = /^[^ \r\t\n\f]+@[\d\w\._\-]+\.[\d\w\._]+/;
	if (v.value.match(pattern) != v.value) {
		simg_er(v.name);
		v.focus();
		return(false);
	}
	simg_ok(v.name);
	return true;
}

function valid_radio(v) {
	retval = false;
	for (i=0 ; i<v.length ; i++) {
		retval = retval || v[i].checked;
	}
	if(!retval) {
		simg_er(v[0].name);
		v[0].focus();
	} else {
		simg_ok(v[0].name);
	}
	return(retval); 
}

function valid_dropdown(v) {
	if (v.selectedIndex < 1) {
		simg_er(v.name);
		v.focus();
		return(false);
	}
	simg_ok(v.name);
	return(true);
}

function count_checked_in_group(form,group) {
	var found = 0;
	for(var i=0; i<form.elements.length; i++) 
		if (form.elements[i].name.indexOf(group)==0 && form.elements[i].checked) found++;
	return found;
}

function simg_ok (v) {
	var o;
	if( o = document.getElementById(v))                  o.className = "valid";
	for(var i=1; o = document.getElementById(v+i); i++)  o.className = "valid";
}

function simg_er (v) {
	var o;
	if( o = document.getElementById(v))                  o.className = "invalid";
	for(var i=1; o = document.getElementById(v+i); i++)  o.className = "invalid";  
}
