function Zegar(newName)
{
	var minutes=0;
	var hours=0;
	var obj=null;
	var timer;
	var name = newName;
	
	function init(newObj, newHours, newMinutes)
	{
		minutes=newMinutes;
		hours=newHours;
		obj = document.getElementById(newObj);
		generate()
		timer = setInterval(name+'.next()', 1000*60);
	}
	this.init = init;
	
	function generate()
	{
		obj.innerHTML=((hours<10)?'0':'')+hours+':'+((minutes<10)?'0':'')+minutes;
	}
	
	function next()
	{
		minutes++;
		if(minutes>=60)
		{
			hours++;
			minutes=0;
			if(hours>23) { hours=0; }
		}
		
		generate()
	}
	this.next = next;
}


function Calendar(newName)
{
	var name = newName;
	var names=['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec','Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'];
	var numbers=[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
	var month;
	var year;
	var day;
	var obj1;
	var defaultYear;
	var defaultMonth;
	
	function prev()
	{
		month--;
		if(month<0) { year--; month=11; }
		generate();
	}
	this.prev = prev
	
	function next()
	{
		month++;
		if(month>11) { year++; month=0; }
		generate();
	}
	this.next = next
	
	function prevYear()
	{
		year--;
		generate();
	}
	this.prevYear = prevYear
	
	function nextYear()
	{
		year++;
		generate();
	}
	this.nextYear = nextYear
	
	function generate()
	{
		var text=''
		
		var data = new Date(1970, 1, 1);
		data.setFullYear(year);
		data.setMonth(month);
		data.setDate(1);
		
		var now = data.getDay();
		
		text+='<span style="float:left;height:16px;width:'+((25*(now-1))<0?(150):(25*(now-1)))+'px"></span>';
		var nr=now;
		data.setDate(day);
		for(a=0;a<numbers[month];a++)
		{
			text+=((nr%7==0)?'<span class="nd">':'')+((nr%7==6)?'<span class="so">':'')+'<a href="#" onclick="'+name+'.setDate('+year+','+month+','+(a+1)+');return false;"'+((a==day&&year==defaultYear&&month==defaultMonth)?' class="selected"':'')+'>'+(a+1)+'</a>'+((nr%7==6||nr%7==0)?'</span>':'');
			nr++;
		}
		document.getElementById('rokDay').innerHTML=names[month]+' '+year;
		document.getElementById('days').innerHTML=text;
	}
	this.generate = generate;
	
	function setDate(newYear, newMonth, newDay)
	{
		document.getElementById('calendarDayDiv').style.display='none';
		obj1.value=((newDay<10)?'0':'')+newDay+'-'+((newMonth<9)?'0':'')+(newMonth+1)+'-'+newYear;
	}
	this.setDate = setDate;
	
	function changeDate(text, newObj1)
	{
		obj1=newObj1;
		text = text.split('-');
		if(text[2]&&text[1]&&text[0])
		{
			setDate(text[2], Number(text[1])-1, Number(text[0]));
		}
		else { obj1.value=''; }
	}
	this.changeDate = changeDate;
	
	function show(ev, newObj1)
	{
		ev=ev || event;
		document.getElementById('calendarDayDiv').style.left=ev.clientX+10+'px';
		document.getElementById('calendarDayDiv').style.top=ev.clientY-10+document.getElementsByTagName('html').item(0).scrollTop+'px';
		obj1=newObj1;
		obj = new Date();
		changeDate(obj1.value, obj1);
		text = obj1.value.split('-');
		if(text[2]&&text[1]&&text[0])
		{
			year = text[2];
			month = Number(text[1])-1;
			day = text[0];
		}
		else
		{
			year = obj.getFullYear();
			month = obj.getMonth();
			day = obj.getDate();
		}
		generate();
	}
	this.show = show;
	
	function init(id)
	{
		document.getElementById(id).innerHTML='<input type="button" onclick="calendarDay.prev();closeCalendar=false;" value="&#xab;" /><span id="rokDay"></span><input type="button" onclick="calendarDay.next();closeCalendar=false;" value="&#xbb;" /><div id="days"></div>';
		
	}
	this.init = init;
}