/*
	Copyright 2001-2003 B2S di Stenio Brunetta.
	Vietata la riproduzione, l'uso o la modifica senza autorizzazione.
	Per informazioni: info@b2s.it
*/
function is_txt(str){
	if(!str || str == "") return false;
	if(str.search(/[a-zA-Z0-9]/) == -1) return false;
	return true;
}
function is_int(str, min, max){
	if(!str || str == "") return false;
	if(str.search(/^(\+|-)?[0-9]+$/) == -1) return false;
	var n = parseInt(str, 10);
	if(!isFinite(n)) return false;
	if(arguments.length == 3 && (n < min || n > max)) return false;
	if(arguments.length == 2 && n < min) return false;
	return true;
}
function is_float(str, sep, min, max){
	if(!str || str == "") return false;
	if(arguments.length == 1) sep = '\\.';
    var pattern = new RegExp('^(\\+|-)?[0-9]*(' + sep + ')?[0-9]*$');
    
	 if(str.search(pattern) == -1) return false;
	/* if(str.search(/^(\+|-)?[0-9]*(.|,)?[0-9]*$/) == -1) return false;*/
	str = str.replace(/,/, ".");
	var f = parseFloat(str, 10);
	if(!isFinite(f)) return false;
	if(arguments.length == 4 && (f < min || f > max)) return false;
	if(arguments.length == 3 && f < min) return false;
	return true;
}
function is_email(str){
	if(!str || str == "") return false;
	if(str.search("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-.]?[0-9a-zA-Z])*\\.[a-zA-Z]{2,}$") == -1) return false;
	return true;
}
/*
    exts = stringa separata da spazi con estensioni senza punto
*/
function is_file(str, exts){
	if(!str || str == "") return false;
    var vexts = exts.split(" "); 
    for(var i=0; i<vexts.length; i++)
        if(str.search(new RegExp("\." + vexts[i] + "$", "i")) != -1) return true;
}
/*
    va chiamata con chk_mfield
    assume che i pulldown si chiamino campo[giorno], campo[mese], campo[anno]
    
*/
function is_date(obj, campo, obb){
    var obj_g = obj.form.elements[campo + '[giorno]'];
    var obj_m = obj.form.elements[campo + '[mese]'];
    var obj_a = obj.form.elements[campo + '[anno]'];
    var g = obj_g.options[obj_g.selectedIndex].value;
    var m = obj_m.options[obj_m.selectedIndex].value;
    var a = obj_a.options[obj_a.selectedIndex].value;
    var trovati = 0;
    if(g != '') trovati++;
    if(m != '') trovati++;
    if(a != '') trovati++;
    if(trovati == 0 && !obb) return true;
    if(trovati != 3) return false;
	var giorni = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)[m-1];
	if ((m == 2) && (a % 4 == 0 && a % 100 != 0 || a % 400 == 0)) giorni++;
	if (g > giorni)
        return false;
    else
        return true;

}
function or_empty(str, fun){
	if(!str || str == "") return true;
	var fun_args = new Array();
	fun_args.push(str);
	for(var i=2; i<arguments.length; i++)
		fun_args.push(arguments[i]);
	return fun.apply(null, fun_args);
}
function chk_field(obj, msg, fun){
	var fun_args = new Array();
	fun_args.push(obj.value);
	for(var i=3; i<arguments.length; i++)
		fun_args.push(arguments[i]);
	if(!fun.apply(null, fun_args)){
		alert(msg);
		obj.focus();
		return false;
	}
	return true;
}
function chk_mfield(obj, msg, fun){
	var fun_args = new Array();
	fun_args.push(obj);
	for(var i=3; i<arguments.length; i++)
		fun_args.push(arguments[i]);
	if(!fun.apply(null, fun_args)){
		alert(msg);
		obj.focus();
		return false;
	}
	return true;
}
