/*****************************************************************************************************

* type = { int, float, text, email, url, null=string }
validate(form,fieldname:type:minlen)
					    {string}
onClick="validate('f1','comment::5','fname:email:5'); return document.formSubmit;">
******************************************************************************************************/
			
	function validate(){
		var arr;
		var args = validate.arguments;
		var error = "";
		var f = args[0]; // get the form
		 
		   for(i = 1; i < args.length; i++) {
			arr = args[i].split(":");
			
			var element = document.forms[f].elements[arr[0]];
			var type = arr[1];
			var len = arr[2];
			
				if(!valid(element.value,type,element,len)){
					error += 'Unvalid ' + element.name;
					if(len>0)
						error += ', min length: ' + len;
					error += "\r\n";
				}
			}
		if(error != ""){
			alert(error);
			document.formSubmit = false;
		}
		else
			document.formSubmit = true;
		
	}
		
	
	function valid(value,type,element,len){
		
		if(value == "")
			return false;
			
		if(len > 0 &&  value.length < len)
			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 valid_mail = /^[a-z0-9._-]+@[a-z0-9äöüÄÖÜ.-]+\.[a-z]{2,4}$/i;
				if(value.search(valid_mail) == -1)
					return false;
				break;
			case "url":
				var valid_url = /^(https?|ftp):\/\/([a-z0-9._-]+:[a-z0-9._-]+@)?[a-z0-9äöüÄÖÜ#._\/~% -]+(\?([a-z0-9_-]+(=[a-zA-Z0-99äöüÄÖÜß+%?_-]+&?)?)*)?$/i;
				if(value.search(valid_url)== -1)
					return false;
				break;	
			case "checked":
				if(!element.checked)
					return false;
				break;
		}
		return true;
	}	

