function validate(form){
    var error = "";
    //for each form element
    for(var i=0; i<form.length; i++){
	var element = form[i];
	//if required
	if(element.getAttribute("required") == "yes"){
	    //if form element if empty
	    if(!valid(element.value,element.getAttribute("validate"),element))
		error += element.getAttribute("message") + "\r\n";	
	}
    }
    if(error != ""){
	alert(error);
	document.formSubmit = false;
    }
    else
	document.formSubmit = true;
}	

function valid(value,type,element){
    if(value == "")
	return false;
	
    switch(type){
	case "int":
	    if(isNaN(parseInt(value)))
		return false;
	    break;
	case "float":
	    if(isNaN(parseFloat(value)))
		return false;
	    break;
	case "email":
	    var p = value.indexOf('@');
	    if(p<1 || p==(value.length-1))
		return false;
	    break;
	case "checked":
	    if(!element.checked)
		return false;
	    break;
	default://string
	    break;
    }
    return true;
}	

