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 "newselect":
				if(!element.selectedIndex)
					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;
	}	
