/* calendar dynlite module */
/* @version: 2.2.0.1/2004-12-13 */
/* @requires: table.js */

setdate=function(e)
{	var el=(ns6)?e.target:event.srcElement;
	var ob='dyn_'+el.getAttribute('obj');
	window[ob].setDate(el);
}
dyncalendar=function(id)
{	this.id=id;
	this.clsName=obj(id).className;
/* data initialisation */
	//english
		//this.mon=['January','February','March','April','May','June','July','August','September','October','November','December'];
		//this.week=['Mon','Tue','Wed','Thu','Fri','Sat','Sun'];
	//italian
		//this.mon=['gennaio','febbraio','marzo','aprile','maggio','giugno','luglio','agosto','settembre','ottobre','novembre','dicembre'];
		//this.week=['lun','mar','mer','gio','ven','sab','dom'];
	//spanish
		this.mon=['enero','febrero','marzo','abril','mayo','junio','julio','agosto','septiembre','octubre','noviembre','diciembre'];
		this.week=['lun','mar','mié','jue','ver','sáb','dom'];
	//deutsch
		//this.mon=['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'];
		//this.week=['Mo','Di','Mi','Do','Fr','Sa','So'];
	this.wstart=1;
/* data processing */
	this.year=obj(id).getAttribute('year');
	this.month=obj(id).getAttribute('month');
	this.day=obj(id).getAttribute('day');
	this.inDate();
	this.render();
window['dyn_'+this.id]=this;
}
_dp=dyncalendar.prototype;
_dp.inDate=function(date)
{	this.date=(this.year&&this.month&&this.day)? new Date(this.year,this.month-1,this.day):new Date();
}
_dp.setDate=function(date)
{	if(this.dateob) this.dateob.className=this.clsName;//this.id;
	this.dateob=date;
	this.dateob.className+=' selected';
	this.date.setDate(this.dateob.innerHTML);
/*
//by boyan for the cannarybynight search
//	alert(this.date.getDate()+'.'+(parseInt(this.date.getMonth())+1)+'.'+this.date.getFullYear());
	if(this.date.getFullYear()==obj('searchFrm').elements['blogYear'].value && (parseInt(this.date.getMonth())+1)==obj('search').elements['blogMonth'].value)
		obj(this.id).style.display="none";

	obj('y').innerHTML=obj('searchFrm').elements['blogYear'].value=this.date.getFullYear();
	obj('m').innerHTML=obj('searchFrm').elements['blogMonth'].value=parseInt(this.date.getMonth())+1;
	obj('d').innerHTML=obj('searchFrm').elements['blogDay'].value=this.date.getDate();
*/
/* MSS2008-03-21 start: */
	var setDateWhere=obj(this.id).getAttribute('where');
	/* Format the date - dd/mm/yyyy */
	var valDay=(this.date.getDate()<10)?'0'+this.date.getDate():this.date.getDate();
	var valMonth=((parseInt(this.date.getMonth())+1)<10)?'0'+(parseInt(this.date.getMonth())+1):(parseInt(this.date.getMonth())+1);
	var valYear=(this.date.getFullYear()<10)?'0'+this.date.getFullYear():this.date.getFullYear();
	/* The 't'-element has a value current date. */
	var currDate=obj('search').elements[setDateWhere].value;
	if (currDate==''){currDate=obj('search').elements['t'].value}
	/* Hide calendar when select date and don't hide when select month or year */
	if (currDate.substr(3) == (valMonth+'/'+valYear))
		obj(this.id).style.display="none";
	/* Set date to input by name */
	obj('search').elements[setDateWhere].value=valDay+'/'+valMonth+'/'+valYear;
/* MSS2008-03-21 end. */
}
_dp.outDate=function()
{ 	alert(this.date.getDate()+'.'+(parseInt(this.date.getMonth())+1)+'.'+this.date.getFullYear());
}
_dp.render=function()
{	this.idate=new Date(this.date.toString());
	this.idate.setDate(1);
	this.idate.setDate(0-(7+this.idate.getDay()-this.wstart)%7);
	if(this.tbl) this.tbl.tbl.parentNode.removeChild(this.tbl.tbl);
	this.tbl=new dyntbl(this.clsName,this.mon[this.date.getMonth()]+' '+this.date.getFullYear(),obj(this.id));
	this.head=this.tbl.tbl.firstChild.firstChild.firstChild;
	this.head.innerHTML='<a href="javascript:dyn_'+this.id+'.prevYear()" class="'+this.clsName+'" onfocus="this.blur()">&lt;&lt;</a>'+
						'<a href="javascript:dyn_'+this.id+'.prevMonth()" class="'+this.clsName+'" onfocus="this.blur()">&lt;</a>'+
						'<b class="calendar">'+this.head.innerHTML+'</b>'+
						'<a href="javascript:dyn_'+this.id+'.nextMonth()" class="'+this.clsName+'" onfocus="this.blur()">&gt;</a>'+
						'<a href="javascript:dyn_'+this.id+'.nextYear()" class="'+this.clsName+'" onfocus="this.blur()">&gt;&gt;</a>';
	this.tbl.addRow();
/* generating days labels */
	for (day in this.week)
		if(this.week.hasOwnProperty(day)) /* MSS2008-03-24 start: hack for Sfari */
			this.tbl.addCell(this.week[day],'header');
/* generating days */
	for(i=0;i<42;i++)
	{	if(i%7==0)	this.tbl.addRow();
		this.idate.setDate(this.idate.getDate()+1);
		if(this.idate.getMonth()!=this.date.getMonth())
			this.tbl.addCell('');
		else
		{	var cl=this.tbl.addCell(this.idate.getDate(this.idate));
				attr(cl,'obj',this.id);
				evt(cl,'click',setdate);
				if(this.date.getDate()==this.idate.getDate())	this.setDate(cl);
		}
	}
	this.foot=this.tbl.tbl.lastChild.lastChild.lastChild;
	this.foot.setAttribute('onclick','obj(\''+this.id+'\').off()');
	this.foot.innerHTML='<img src="/img/buttonClose.gif" class="calendar" onclick="obj(\''+this.id+'\').off();" />';
}
_dp.prevMonth=function()
{	this.date.setMonth(this.date.getMonth()-1);
	this.render();
}
_dp.nextMonth=function()
{	this.date.setMonth(this.date.getMonth()+1);
	this.render();
}
_dp.prevYear=function()
{	this.date.setYear(this.date.getFullYear()-1);
	this.render();
}
_dp.nextYear=function()
{	this.date.setYear(this.date.getFullYear()+1);
	this.render();
}