function each(collection, iterator){
  for(var i=0; i<collection.length; i++)
    iterator(collection[i]);
}

function soloCaratteri(stringa){
    // elimina i caratteri di controllo e gli spazi da una stringa
    var l = stringa.length;
    var nuovaStringa="";
    for (i=0; i<=l ; i++){
      c = stringa.charCodeAt(i);
      if (c>32 && c<127){
       nuovaStringa=nuovaStringa+stringa.substring(i,i+1);
      }
    }
    return nuovaStringa;
}    
    
    
function trim(stringa){
    // elimina gli spazi in testa e in coda in una stringa
    while (stringa.substring(0,1) == ' '){
        stringa = stringa.substring(1, stringa.length);
    }
    while (stringa.substring(stringa.length-1, stringa.length) == ' '){
        stringa = stringa.substring(0,stringa.length-1);
    }
    return stringa;
}

// lz=leading zero number
function lz(numero, cifre) {
	n = String(numero);
	while (n.length<cifre) { 
		n="0"+n 
	}
	return n;
}

function consolePrint(txt){
  
  outBox=$('console');
  
  if (outBox==null){
    // manca finestra di output
    return;
  }
  
  var dd = new Date();
  
  var msg = lz(dd.getDate(),2)+"/";
  msg = msg+lz(dd.getMonth()+1,2)+"/";
  msg = msg+lz(dd.getFullYear()+1,2)+" ";
  msg = msg+lz(dd.getHours(),2)+":";
  msg = msg+lz(dd.getMinutes(),2)+":";
  msg = msg+lz(dd.getSeconds(),2)+" - "+txt;

  outBox.innerHTML=outBox.innerHTML+'<br />'+msg;
  outBox.scrollTop=0; 
	outBox.scrollTop=outBox.scrollHeight;	
}


function goTo(ogg){
  
  var tipo=ogg.tagName;
  switch (tipo){
    case 'SELECT':
      location.href=$F(ogg);
    break;
    default:
      alert('Non Implementato');    
      return;
    break;
  }  




}



function valiData(stringa){

  ss=stringa.split(/[/\-.:]/);
  
  if(ss[0]==undefined) ss[0]='a';
  if(ss[1]==undefined) ss[1]='a';
  if(ss[2]==undefined) ss[2]='a';
  
  gg = parseInt(ss[0].replace(/^[0]+/g,""));
  mm = parseInt(ss[1].replace(/^[0]+/g,""));
  aa = parseInt(ss[2].replace(/^[0]+/g,""));
  
  var oggi = new Date();

  if (isNaN(gg)){
    gg=oggi.getDate();
  }

  if (isNaN(mm)){
    mm=(oggi.getMonth());
  } else {
    mm=mm-1;
  }

  if (isNaN(aa)){
    aa=(oggi.getFullYear());
  }

  var giorno = new Date(aa, mm, gg);  
  
  var gx = new String('00'+giorno.getDate());
  gx=gx.substr(gx.length-2);
  var mx = new String('00'+(giorno.getMonth()+1));
  mx=mx.substr(mx.length-2);
  var ax=giorno.getFullYear();
  var strGiorno=gx+"/"+mx+"/"+ax;
  
  return strGiorno;
}

function verOrdineDate(dataA, dataB){
  // le date devono essere in formato gg/mm/aaaa
  ss = dataA.split(/[/\-.:]/);

  var d1 = new Date(ss[2], ss[1]-1, ss[0]);
  
  ss = dataB.split(/[/\-.:]/);
  var d2 = new Date(ss[2], ss[1]-1, ss[0]);

  if (d1.getTime() > d2.getTime()){
    return false;
  } else {
    return true;
  } 
}


