
var numb = '0123456789';
var lwr = 'abcdefghijklmnopqrstuvwxyz';
var upr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var dd = '0123456789/-';

function isValid(parm,val) {
		if (parm == "") return true;
		for (i=0; i<parm.length; i++) {
			if (val.indexOf(parm.charAt(i),0) == -1) return false;
		}
	return true;
}


function epuraCampo(parm,val) {
	var temp='';
	if (parm == "") return temp;
		for (i=0; i<parm.length; i++) {
			if (!(val.indexOf(parm.charAt(i),0) == -1)) {temp=temp+parm.charAt(i);}
		}
	return temp;
}



function epuraisNumber(parm) {return epuraCampo(parm,numb);}
function epuraisLower(parm) {return epuraCampo(parm,lwr);}
function epuraisUpper(parm) {return epuraCampo(parm,upr);}
function epuraisAlpha(parm) {return epuraCampo(parm,lwr+upr);}
function epuraisDate(parm) {return epuraCampo(parm,dd);}
function epuraisAlphanum(parm) {return epuraCampo(parm,lwr+upr+numb);} 


function isNumber(parm) {return isValid(parm,numb);}
function isLower(parm) {return isValid(parm,lwr);}
function isUpper(parm) {return isValid(parm,upr);}
function isAlpha(parm) {return isValid(parm,lwr+upr);}
function isDate(parm) {return isValid(parm,dd);}
function isAlphanum(parm) {return isValid(parm,lwr+upr+numb);} 



// ora controllo tutti i campi con caratteri particolari (apostrofi, ecc.) 
function codificaCaratteri(stringa) {
                             var str;
                             str=stringa.replace('\'','\'\'');
                             return str;
}
                            
// questo invece mi codifica un campo di tipo Data "aggiustando" i caratteri strani        
function codificaData(stringa) {
                             var str;
                             str=stringa.replace('-','/');
                             str=str.replace('\\','/');
                             if (!(isDate(stringa))) {str=epuraisDate(str);alert('Attenzione, Carattere non ammesso');}
                             return str;
}


function urlencode (str) {
	str = escape(str);
	var a = str.replace(/[*+\/@]|%20/g,
		function (s) {
		switch (s) {
			case "*": s = "%2A"; break;
			case "+": s = "%2B"; break;
			case "/": s = "%2F"; break;
			case "@": s = "%40"; break;
			case "%20": s = "+"; break;
			}			
		return s;
		}
		);
	return a;
}



function filesize(file, id) {

    var xmlHttpObj = null;
    var size = null;
    var risposta = null;
   
    if (typeof XMLHttpRequest != "undefined") {
        xmlHttpObj = new XMLHttpRequest();
    }
    else {
        try {
            xmlHttpObj = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlHttpObj = new ActiveXObject("Microsoft.XMLHTTP");
            } 
            catch (e) {
                xmlHttpObj = null;
            }
        }
    }


    xmlHttpObj.open("HEAD", file, true);
         
    xmlHttpObj.onreadystatechange = function() {
        if (xmlHttpObj.readyState == 4) {
            switch(xmlHttpObj.status) {
            
                case 200: // Page found
                case 304: // Status Code on Opera when page reload
                     size = xmlHttpObj.getResponseHeader("Content-Length");
		     if (size<1001){
		     	risposta="&#160; ("+size+" byte)";
		     	document.getElementById(id).innerHTML = risposta;
			} 
			else
			{
			risposta="&#160; ("+Math.round(size / 1000)+" Kb)";
			document.getElementById(id).innerHTML = risposta;
			}
                     return;
                     break;
                     
                case 0: // Worong protocol
                    //alert("Can't load file using 'file://' protocol")
                    return;
                    break;
                    
                case 404: // Page not found
                    //alert("File not found: "+file);
                    return;
                    break;
                    
                default:
                    //alert("Unrecognized status code: ["+xmlHttpObj.status+"]")
                    return;
                    break;
            }
        }            
    }          
    xmlHttpObj.send(null); 
    delete xmlHttpObj;
    

}

