// This script requires jDate
var jCalendar = {
	
	Version:'2.00',
	nightly:'20090309',
	
	create:function(id,o){
		
		o=o||{}
		o.lang=o.lang||'it';
		if(typeof o.date=="undefined"){
			o.date=new Date();
			o.date=[o.date.getFullYear(),o.date.getMonth()+1,o.date.getDate()];
		}
		this.myDate=new jDate(o.lang,o.date[0],o.date[1],o.date[2]);
		
		var i,j;
		var table = document.createElement('table');
		table.id=id+"-jCalendar-"+(o.date[0]*1)+"-"+(o.date[1]*1);
		table.className="jCalendar";
		table.summary=this.myDate.lngStr.current.labels[2]+" "+this.myDate.F+" "+this.myDate.Y;
		table.cellSpacing=0;
		// Controls
		var tr = document.createElement('tr');
		tr.className="cControl";
		
		var td = document.createElement('td');
		var a = document.createElement('a');
		
		var prevMonth=new jDate(o.date[0],o.date[1],o.date[2]);
		prevMonth=prevMonth.now.addMonth(-1);
		var nextMonth=new jDate(o.date[0],o.date[1],o.date[2]);
		nextMonth=nextMonth.now.addMonth(+1);
		
		a.href="javascript:jCalendar.changeMonth('"+id+"',{lang:'"+o.lang+"',date:["+prevMonth.getFullYear()+","+(prevMonth.getMonth()+1)+","+prevMonth.getDate()+"]},-1)";
		a.title=this.myDate.lngStr.current.labels[0];
		a.innerHTML = "&#171;";
		td.appendChild(a);
		tr.appendChild(td);
		
		var td = document.createElement('td');
		td.colSpan="5";
		td.innerHTML = this.myDate.F + " " + this.myDate.Y;
		tr.appendChild(td);
		
		var td = document.createElement('td');
		var a = document.createElement('a');
		a.title=this.myDate.lngStr.current.labels[1];
		a.href="javascript:jCalendar.changeMonth('"+id+"',{lang:'"+o.lang+"',date:["+nextMonth.getFullYear()+","+(nextMonth.getMonth()+1)+","+nextMonth.getDate()+"]},+1)";
		a.innerHTML = "&#187;";
		td.appendChild(a);
		tr.appendChild(td);
		
		table.appendChild(tr);
		// Headers
		var tr = document.createElement('tr');
		for(i=0;i<7;i++){
			var th = document.createElement('th');
			var dayName=this.myDate.lngStr.current.dayName[i];
			dayName=dayName.substring(0,2);
			th.innerHTML=dayName;
			tr.appendChild(th);
		}
		table.appendChild(tr);
		// Days
		var g=1;
		var paz=this.myDate.now;paz.setDate(g);
		var today=new Date();
		var mm=this.myDate.n,aaaa=this.myDate.Y,start=false,end=false;
		
		var gg=this.myDate.t
		
		for (j=0;j<6;j++){
			var tr=document.createElement('tr');
			tr.className="cRow";
			for (i=this.myDate.firstDay;i<7+this.myDate.firstDay;i++){
				var td=document.createElement('td');
				if (paz.getDay()==i||(paz.getDay()==0&&j==0&&i==7))start=true;
				if (start && g<=gg){
					td.className="c"+g;
					if ( g==today.getDate() && this.myDate.n==today.getMonth()+1 && this.myDate.Y==today.getFullYear() )td.className+=" today";
					if ( g==this.myDate.j ) td.className+=" sel";
					var span=document.createElement('span');
					span.innerHTML = g;
					td.appendChild(span);
					if(g==this.myDate.t)end=true;
					g++;
				}else{
					td.className="cEmpty";
					var span=document.createElement('span');
					span.innerHTML = " ";
					td.appendChild(span);
				}
				tr.appendChild(td);
			}
			table.appendChild(tr);
			if(end)break;
		}
		//
//		return table;
//		console.log(table)
		var div=$(id);
		var jCal=div.select('.jCalendar');
		if(jCal.length==0)div.insert(!is.IE?table:table.outerHTML);
		else jCal.first().replace(!is.IE?table:table.outerHTML);
	},
	addEvent:function(myId,Y,n,j,c,h,t){
		// myId = calendar's id
		// Y,n,j = year,month,day
		// c = category
		// h = link's href
		// t = link's title
		var rightMonth=$(myId+"-jCalendar-"+(Y*1)+"-"+(n*1));
		if(rightMonth){
			var TDs=rightMonth.select("td");
			for(var i=0;i<TDs.length;i++){
				td=TDs[i];
				if( td.className=="c"+j || td.className.indexOf("c"+j+" ")==0 ){
					td.className+=' jCategory'+c;
					td.innerHTML='<a href="'+h+'" title="'+t+'">'+j+'</a>';
					break;
				}
			}
		}
		jCalendar.onAddEvent(myId);
	},
	onAddEvent:function(myId){
		// 
	},
	changeMonth:function(myId,o,q){
		jCalendar.create(myId,o);
		var a=$$("#"+myId+" a");
		if(q<0)a[0].focus();else if(q>0)a[1].focus();
		jCalendar.onChangeMonth(myId);
	},
	onChangeMonth:function(myId){
		// jCalendar.addEvent();
	}
}
