var cf_translate=Array();


function translation(what){
	if (cf_translate[what]) return cf_translate[what];
	return what;
}
function validate(where){
	for (var i=0;i<where.elements.length;i++){
		if (where.elements[i].name.length>4){
			var fname=where.elements[i].name;
			var it=where.elements[fname];
			var name=fname.substr(4).toLowerCase();
			var typ=fname.substr(0,3).toLowerCase();
			var mandatory=fname.substr(3,1).toLowerCase();
			var ok=true;
			switch(typ){
				case "sel":
					if (mandatory=="m"){
						var chkok=true;
						if (it.selectedIndex==-1) chkok=false;
						else{
							if (it.options[it.selectedIndex].value=="") chkok=false;
						}
						if (!chkok){
							ok=false;
							error=cf_checkone+translation(name);
						}
					}
				break;
				case "chk":
					if (mandatory=="m"){
						if (!it.length){
							if (it.checked!=true) {
								ok=false;
								error=cf_checkit+translation(name);
							}
						}else{
							var chkok=false;
							for (var j=0;j<it.length;j++){
								if (it[j].checked==true) chkok=true;
							}
							if (!chkok){
								ok=false;
								error=cf_checkone+translation(name);
							}
						}
					}
				break;
				default:
					if (mandatory=="m"){
						if ((!it.value)||(it.value.length==0)){
							ok=false;
							error=cf_notempty+translation(name);
						}
					}
					if (ok){
						switch(typ){
							case "eml":
								if (it.value!=""){
									var emailRegxp = /^([a-z0-9._\-]+)(.[\w]+)*@([a-z0-9\-]+)(.[a-z]{2,3}){1,2}$/i;
									if (!emailRegxp.test(it.value)){
										ok=false;
										error=cf_wrongemail;
									}
								}
							break;
							case "int":
								if (it.value!=""){
									var emailRegxp = /^[0-9]*$/i;
									if (!emailRegxp.test(it.value)){
										ok=false;
										error=cf_wrongnumber;
									}
								}
							break;
							case "dat":
								if (it.value!=""){
									var chkok=true;
									var datRegxp = /^(31|30|[12][0-9]|0[1-9])\.(12|11|10|0[1-9])\.(19|20)\d{2}$/i;
									if (!datRegxp.test(it.value)) chkok=false;
									else{
										datval=it.value.split(".");
										dattest=new Date();
										dattest.setDate(datval[0]);
										dattest.setMonth(datval[1]-1);
										dattest.setYear(datval[2]);
										if ((dattest.getYear()%100)!=datval[2]%100) chkok=false;
										if (dattest.getMonth()!=(datval[1]-1)) chkok=false;
										if (dattest.getDate()!=datval[0]) chkok=false;
									}
									if (!chkok){
										ok=false;
										error=cf_wrongdate;
									}
								}
							break;
						}
					}
			}
			if (!ok) {
				where.elements[i].focus();
				alert(error);
				return false;
			}
		}
	}
	return true;
}