	function isBlank(s) { 
		for(i=0;i<s.length;i++){
		c=s.charAt(i);
		if((c!=' ')&&(c!='\n')&&(c!='\t'))return false;
   		}
    	return true; 
    }
	function validEmail(email){
	
	if (email == ""){ return false; }
	
	var index     = email.indexOf('@', 0);
	var address   = "";
	var ok = true;
			
	if (index == -1){ok = false; }else{
	      var size = email.length;
	      address = email.substring(size + 1, index + 1);
	      userid =  email.substring(1, index);
	
	      if ((address.indexOf('@') != -1) || (userid.indexOf('@') != -1) ||
	          (address.indexOf('.') == -1) || (!nospace(email)) ||
	          (email.charAt(index - 1) == '.') || (email.charAt(index + 1) == '.'))
	      { ok = false; }
	   }
	      return ok;
	}
		
		
	function addBookmark(title,url) {

	if (window.sidebar) { window.sidebar.addPanel(title, url,""); 
	} else if( document.all ) { window.external.AddFavorite( url, title);
	} else if( window.opera && window.print ) { return true; }
	}
	
	
	function homepage(url) { 
		if(document.all)
		document.body.style.behavior='url(#default#homepage)';
		document.body.setHomePage(url);
	} 
	
	
	function loadXML(file) {
			var xmlDoc;
			var ie=(typeof window.ActiveXObject !='undefined');
			var moz=!ie;
			if(moz) xmlDoc=document.implementation.createDocument("","",null);
			else xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async=false;
			xmlDoc.load(file);
			return xmlDoc;
		}
	function convData(str) {
		var l=str.length;
		if(l!=10){ return "" } else {
			var ret="";
			var i=0;
			ret=str.substring(6)+str.substring(3,5)+str.substring(0,2);			
			return ret;
		}	
	}	
		
	/*** FUNZIONI GLOBALI DEL CALENDARIO ***/
	
	function getCalendarMonthName(m) {
		switch(m) {
		  case 0: return "Gennaio";break;
		  case 1: return "Febbraio";break;
		  case 2: return "Marzo";break;
		  case 3: return "Aprile";break;
		  case 4: return "Maggio";break;
		  case 5: return "Giugno";break;
		  case 6: return "Luglio";break;
		  case 7: return "Agosto";break;
		  case 8: return "Settembre";break;
		  case 9: return "Ottobre";break;
		  case 10: return "Novembre";break;
		  case 11: return "Dicembre";break;

		  default:return "?????";break;

		
		}
	}

	function getHowManyDaysForMonth(m,y) {
		if ( m == 1  ) { 
			if ( (y%400==0) || ((y%4==0) && (y%100!=0)) ) { 
		      return 29; 
		     } else { 
		       return 28;
		     } 
		} else if ( m == 2|| m == 4 || m == 6 || m == 7 || m == 9 || m == 11 ) { 
		      return 31; 
		   } else { 
		       return 30;
		   } 
	}
	
	
	function twoCyphers(n) {if (eval(n)<10) return "0"+n; else return n;}

	function convertCalendarDate(dt_val) {

		if(dt_val=="") return "";		

		var y=dt_val.substring(6);
		var m=dt_val.substring(3,5);
		var d=dt_val.substring(0,2);
		return eval(y)*10000+eval(m)*100+eval(d);
	}
	// fill the month table with column headings
	function day_title(day_name){
	     return "<td class='calendarHeaderDays'>"+day_name+"</td>";
	}
	
	
	
	function fill_table(y,m,dv,trgt,fct)
	{ 

	  year=y;
	 
	  
	  today= new Date(y,m,1);
	  start_day = today.getDay();
	  if (start_day==0) start_day=7;
	  var month_length=getHowManyDaysForMonth(m,year);
	  var month=m;
	
		
	
	  var curr_date=convertCalendarDate(document.getElementById(trgt).value);
	  var tdy=new Date();
	
	  var nwy=tdy.getYear();
	  if (eval(nwy)<1000) nwy+=1900;
	
	  var today_date=eval(nwy)*10000+eval(tdy.getMonth()+1)*100+eval(tdy.getDate());
	  
	  var t_date="";
	
		
	  day=1
	  // begin the new month table
	  var x="<table class='calendarBox' border='0' cellspacing='0' cellpadding='0'><thead><tr>";
	
	  x+="<th><a href=\"javascript:fill_table(";
	
	  if(m>0) x+=y+","+(m-1); else x+=(y-1)+",11";
	
	  x+=",'"+dv+"','"+trgt+"','"+fct+"');\">&lt;&lt;</a></th>";
	  x+="<th colspan='5'>"+getCalendarMonthName(m)+"   "+year+"";
	  x+="<th><a href=\"javascript:fill_table(";
	
	  if (m<11) x+=y+","+(m+1); else x+=(y+1)+",0";
	  x+=",'"+dv+"','"+trgt+"','"+fct+"');\">&gt;&gt;</a></th></tr></thead><tr>";
	
	  // column headings
	  x+=day_title("Lu");x+=day_title("Ma");x+=day_title("Me");x+=day_title("Gi");x+=day_title("Ve");x+=day_title("Sa");x+=day_title("Do");
	  
	  // pad cells before first day of month
	  x+="</tr><tr>";
	
	  for (var i=1;i<start_day;i++){ x+="<td>"; }
	  // fill the first week of days
	  for (var i=start_day;i<=7;i++){
	
		t_date=eval(y)*10000+eval(m+1)*100+eval(day);
			
		if(eval(t_date)<eval(today_date)) x+="<td class='calendarBoxDisabled'>"+day;
		else {
			x+="<td class=\"";
			if(t_date==curr_date) x+="calendarBoxSelected"; else x+="calendarBoxActive";
			x+="\">";
			x+="<a href=\"javascript:setCalendarDate_"+fct+"('"+dv+"','"+trgt+"',"+y+","+m+","+day+");\">";
			x+=day;
			x+="</a>";
		}
		x+="</td>";
	        day++
	  }
	  x+="<tr>";

  // fill the remaining weeks
  while (day <= month_length) {
     for (var i=1;i<=7 && day<=month_length;i++){

	t_date=eval(y)*10000+eval(m+1)*100+eval(day);


	if(eval(t_date)<eval(today_date)) x+="<td class='calendarBoxDisabled'>"+day;
	else {
		x+="<td class=\"";
		if(t_date==curr_date) x+="calendarBoxSelected"; else x+="calendarBoxActive";
		x+="\">";
		x+="<a href=\"javascript:setCalendarDate_"+fct+"('"+dv+"','"+trgt+"',"+y+","+m+","+day+");\">";
		x+=day;
		x+="</a>";
	}
	x+="</td>";
        day++
     }
     x+="</tr><tr>";
     // the first day of the next month
     start_day=i
  }
  x+="</tr>";
  x+="<tr><td colspan='7' class='calendarBoxFooter'><b><nobr>"; //<a href=\"javascript:eraseDate('"+dv+"','"+trgt+"');\">Nessuna data</a>";
  x+="<span style='width:50px'></span>";
  x+="<a href=\"javascript:calendarClose('"+dv+"');\"' >Chiudi&nbsp;[x]</a></nobr></b></td></tr></table>";
  
  document.getElementById(dv).innerHTML=x;	

}

function calendarClose(div_id){
		var div=document.getElementById(div_id);
		div.style.display= 'none';
}

function eraseDate(div_id,trgt) {
		var div=document.getElementById(div_id);
		var f=document.getElementById(trgt);
		f.value='';div.style.display= 'none';}
		
		
/***** FINE ***/		
	
	
	
	
