﻿	var fixedX = -1								// x position (-1 if to appear below control)
	var fixedY = -1								// y position (-1 if to appear below control)
	var startAt = 1								// 0 - sunday ; 1 - monday
	var showWeekNumber = 10				// 0 - don't show; 1 - show
	var showToday = 1							// 0 - don't show; 1 - show
	var imgDir = "calendar/"	// directory for images ... e.g. var imgDir="/img/"

	var gotoString = "Idź do aktualnego miesiąca"
	var todayString = "Dzisiaj:"
	var weekString = "Tydz"
	var scrollLeftMessage = "Kliknij aby przejść do poprzedniego miesiąca. Przytrzymaj klawisz myszki aby przejść automatycznie"
	var scrollRightMessage = "Kliknij aby przejść do następnego miesiąca. Przytrzymaj klawisz myszki aby przejść automatycznie"
	var selectMonthMessage = "Kliknij aby wybrać miesiąc."
	var selectYearMessage = "Kliknij aby wybrać rok."
	var selectDateMessage = "Wybierz [date]." // do not replace [date], it will be replaced by date.

	var	crossobj, crossMonthObj, crossYearObj, monthSelected, yearSelected, dateSelected, omonthSelected, oyearSelected, odateSelected, monthConstructed, yearConstructed, intervalID1, intervalID2, timeoutID1, timeoutID2, ctlToPlaceValue, ctlNow, dateFormat, nStartingYear

	var	bPageLoaded=false
	var	ie=document.all
	var	dom=document.getElementById

	var	ns4=document.layers
	var	today =	new	Date()
	var	dateNow	 = today.getDate()
	var	monthNow = today.getMonth()
	var	yearNow	 = today.getYear()
	var	imgsrc = new Array("drop1.gif","drop2.gif","left1.gif","left2.gif","right1.gif","right2.gif")
	var	img	= new Array()
	
	function HolidayRec (d, m, y, desc)
	{
		this.d = d
		this.m = m
		this.y = y
		this.desc = desc
	}

	var HolidaysCounter = 0
	var Holidays = new Array()

	function addHoliday (d, m, y, desc)
	{
		Holidays[HolidaysCounter++] = new HolidayRec ( d, m, y, desc )
	}


	function table(obj) {
		_html  = "<table border='0' cellpadding='0' cellspacing='0' style='display:inline;'>";
		_html += "	<tr>";
		_html += "		<td colspan='2' bgcolor='#92958E' align='right'><img src='images/spacer.gif' width='1' height='1' alt='' border='0'></td>";
		_html += "	</tr>";
		_html += "	<tr>";
		_html += "		<td width='1' height='20' bgcolor='#92958E' valign='bottom'><img src='images/spacer.gif' width='1' height='1' alt='' border='0'></td>";
		_html += "		<td style='border: 1px solid #FFFFFF'>"+obj+"</td>";
		_html += "	</tr>";
		_html += "</table>";
		return _html;
	}
	if (dom)
	{
		for	(i=0;i<imgsrc.length;i++)
		{
			img[i] = new Image
			img[i].src=imgDir+imgsrc[i]
		}
		document.write("<div id='calendar' style='position:absolute;z-index:10000;visibility:hidden'>")		
		
		document.write("<table width="+((showWeekNumber==1)?250:220)+" border='0' cellspacing='0' cellpadding='0' style='font-family:verdana;font-size:10px;' bgcolor='#F2F3EE'>")
		document.write("	<tr>")
		document.write("		<td bgcolor='#D6D6D5' rowspan='8'><img src='"+imgDir+"dot.gif' width='1' height='1' alt='' border='0'></td>")
		document.write("		<td style='border-top: 1px solid #D6D6D5;' bgcolor='#B2B5AB'>")
		document.write("			<table width='"+((showWeekNumber==1)?248:218)+"' height='32'>")
		document.write("				<tr>")
		document.write("					<td style='padding:2px;font-family:tahoma;font-size:10px;'><font color='#ffffff'><B><span id='caption'></span></B></font></td>")
		document.write("					<td align=right>"+table("<a href='javascript:hideCalendar()'><IMG SRC='"+imgDir+"close.gif' WIDTH='18' HEIGHT='18' BORDER='0' ALT='Zamknij'></a>")+"</td>")
		document.write("				</tr>")
		document.write("			</table>")
		document.write("		</td>")
		document.write("		<td bgcolor='#D6D6D5' rowspan='8'><img src='"+imgDir+"dot.gif' width='1' height='1' alt='' border='0'></td>")
		document.write("		<td bgcolor=#8C8C8C rowspan='8' valign='top'>")
		document.write("			<table border='0' cellpadding='0' cellspacing='0'>")
		document.write("				<tr>")
		document.write("					<td bgcolor=#FFFFFF><img src='"+imgDir+"dot.gif' width='2' height='3' alt='' border='0'></td>")
		document.write("				</tr>")
		document.write("			</table>")
		document.write("		</td>")
		document.write("	</tr>")
		document.write("	<tr>")
		document.write("		<td bgcolor=#F2F3EE background='"+imgDir+"bg2.gif'><img src='"+imgDir+"bg2.gif' width='36' height='18' alt='' border='0'></td>")
		document.write("	</tr>")
		document.write("	<tr>")
		document.write("		<td style='padding: 0 2 2 2' bgcolor=#F2F3EE><span id='content'></span></td>")
		document.write("	</tr>")
		
		var	styleAnchor="text-decoration:none;color:black;"
		var	styleLightBorder="width:20px; border-style:solid;border-width:1px;border-color:#8C8C8C;background-color:#FFFFFF;"
		
		if (showToday==1)
		{
			document.write("	<tr>")
			document.write("		<td background='"+imgDir+"bg1.gif' height='2'><img src='"+imgDir+"bg1.gif' width='100' height='2' border='0' alt=''></td>")
			document.write("	</tr>")
			document.write("	<tr bgcolor=#F2F3EE>")
			document.write("		<td style='padding:5px' align=center><span id='lblToday'></span></td>")
			document.write("	</tr>")
			
			document.write("	<tr>")
			document.write("		<td background='"+imgDir+"bg1.gif' height='2'><img src='"+imgDir+"bg1.gif' width='100' height='2' border='0' alt=''></td>")
			document.write("	</tr>")
			document.write("	<tr bgcolor=#F2F3EE>")
			document.write("		<td style='padding:5px; cursor:hand;' align=center onClick=\"dateSelected=''; closeCalendar();\">")
			document.write("			<span><a href='javascript:void(null);' style='"+styleAnchor+"'>Usuń datę</a></span>")
			document.write("		</td>")
			document.write("	</tr>")
		}
			

		document.write("	<tr>")
		document.write("		<td bgcolor='#D6D6D5'><img src='"+imgDir+"dot.gif' width='1' height='1' alt='' border='0'></td>")
		document.write("	</tr>")		
		document.write("	<tr>")
		document.write("		<td colspan='4'>")
		document.write("		<table width='100%' height='2' border='0' cellpadding='0' cellspacing='0'>")
		document.write("			<tr>")
		document.write("				<td width='3'><img src='"+imgDir+"dot.gif' width='3' height='2' alt='' border='0'></td>")
		document.write("				<td bgcolor=#8C8C8C><img src='"+imgDir+"dot.gif' width='1' height='2' alt='' border='0'></td>")
		document.write("			</tr>")
		document.write("		</table>");
		document.write("		</td>")
		document.write("	</tr>")
		document.write("</table>")

		document.write("</div>");
		document.write("<div id='selectMonth' style='position:absolute;z-index:10001;visibility:hidden;'></div>");
		document.write("<div id='selectYear'  style='position:absolute;z-index:10001;visibility:hidden;'></div>");
	}

	var	monthName =	new	Array("Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień")
	if (startAt==0)	{
		dayName = new Array	("Nie","Pon","Wto","Śro","Czw","Pią","Sob")
	} else {
		dayName = new Array	("Pon","Wto","Śro","Czw","Pią","Sob","Nie")		
	}

	function swapCalImage(srcImg, destImg){
		if (ie)	{ document.getElementById(srcImg).setAttribute("src",imgDir + destImg) }
	}

	function init()	{
		if (!ns4)
		{
			if (!ie) { yearNow += 1900	}

			crossobj=(dom) ? document.getElementById("calendar").style : ie ? document.all.calendar : document.calendar
			hideCalendar()

			crossMonthObj=(dom)?document.getElementById("selectMonth").style : ie? document.all.selectMonth	: document.selectMonth

			crossYearObj=(dom)?document.getElementById("selectYear").style : ie? document.all.selectYear : document.selectYear

			monthConstructed=false;
			yearConstructed=false;

			if (showToday==1)
			{
				document.getElementById("lblToday").innerHTML =	todayString + " <a onmousemove='window.status=\""+gotoString+"\"' onmouseout='window.status=\"\"' title='"+gotoString+"' style='"+styleAnchor+"' href='javascript:monthSelected=monthNow;yearSelected=yearNow;constructCalendar();'>"+dayName[(today.getDay()-startAt==-1)?6:(today.getDay()-startAt)]+", " + dateNow + " " + monthName[monthNow].substring(0,3)	+ "	" +	yearNow	+ "</a>"
			}

			sHTML1=table("<span id='spanLeft'	style='cursor:pointer' onmouseover='swapCalImage(\"changeLeft\",\"left2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+scrollLeftMessage+"\"' onclick='javascript:decMonth()' onmouseout='clearInterval(intervalID1);swapCalImage(\"changeLeft\",\"left1.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"' onmousedown='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"StartDecMonth()\",500)'	onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'><IMG id='changeLeft' SRC='"+imgDir+"left1.gif' width=18 height=18 BORDER=0></span>")
			sHTML1+=table("<span id='spanRight' style='cursor:pointer' onmouseover='swapCalImage(\"changeRight\",\"right2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+scrollRightMessage+"\"' onmouseout='clearInterval(intervalID1);swapCalImage(\"changeRight\",\"right1.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"' onclick='incMonth()' onmousedown='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"StartIncMonth()\",500)'	onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'><IMG id='changeRight' SRC='"+imgDir+"right1.gif'	width=18 height=18 BORDER=0></span>")
			sHTML1+=table("&nbsp;<span id='spanMonth' style='width:86px;color:#FFFFFF; font-weight:bold; cursor:pointer;' onmouseover='swapCalImage(\"changeMonth\",\"drop2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+selectMonthMessage+"\"' onmouseout='swapCalImage(\"changeMonth\",\"drop1.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"' onclick='popUpMonth()'></span>")
			sHTML1+=table("&nbsp;<span id='spanYear' style='color:#FFFFFF; font-weight: bold; cursor:pointer' onmouseover='swapCalImage(\"changeYear\",\"drop2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+selectYearMessage+"\"'	onmouseout='swapCalImage(\"changeYear\",\"drop1.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"'	onclick='popUpYear()'></span>")
			
			document.getElementById("caption").innerHTML  =	sHTML1

			bPageLoaded=true
		}
	}

	function hideCalendar()	{
		crossobj.visibility="hidden"
		if (crossMonthObj != null){crossMonthObj.visibility="hidden"}
		if (crossYearObj !=	null){crossYearObj.visibility="hidden"}
	}

	function padZero(num) {
		return (num	< 10)? '0' + num : num ;
	}

	function constructDate(d,m,y)
	{
		sTmp = dateFormat
		sTmp = sTmp.replace	("dd","<e>")
		sTmp = sTmp.replace	("d","<d>")
		sTmp = sTmp.replace	("<e>",padZero(d))
		sTmp = sTmp.replace	("<d>",d)
		sTmp = sTmp.replace	("mmm","<o>")
		sTmp = sTmp.replace	("mm","<n>")
		sTmp = sTmp.replace	("m","<m>")
		sTmp = sTmp.replace	("<m>",m+1)
		sTmp = sTmp.replace	("<n>",padZero(m+1))
		sTmp = sTmp.replace	("<o>",monthName[m])
		return sTmp.replace ("yyyy",y)
	}

	function closeCalendar() {
		var	sTmp
		
		hideCalendar();
		
		if (dateSelected==0) {
			ctlToPlaceValue.value = '';
		} else {
			ctlToPlaceValue.value =	constructDate(dateSelected,monthSelected,yearSelected);
		}
	}

	/*** Month Pulldown	***/

	function StartDecMonth()
	{
		intervalID1=setInterval("decMonth()",80)
	}

	function StartIncMonth()
	{
		intervalID1=setInterval("incMonth()",80)
	}

	function incMonth () {
		monthSelected++
		if (monthSelected>11) {
			monthSelected=0
			yearSelected++
		}
		constructCalendar()
	}

	function decMonth () {
		monthSelected--
		if (monthSelected<0) {
			monthSelected=11
			yearSelected--
		}
		constructCalendar()
	}

	function constructMonth() {
		popDownYear()
		if (!monthConstructed) {
			sHTML =	""
			for	(i=0; i<12;	i++) {
				sName =	monthName[i];
				if (i==monthSelected){
					sName =	"<B>" +	sName +	"</B>"
				}
				sHTML += "<tr><td id='m" + i + "' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick='monthConstructed=false;monthSelected=" + i + ";constructCalendar();popDownMonth();event.cancelBubble=true'>&nbsp;" + sName + "&nbsp;</td></tr>"
			}

			document.getElementById("selectMonth").innerHTML = "<table width=91	style='font-family:tahoma;font-size:10px; border-width:1px; border-style:solid; border-color:#a0a0a0;' bgcolor='#FFFFDD' cellspacing=0 onmouseover='clearTimeout(timeoutID1)'	onmouseout='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"popDownMonth()\",100);event.cancelBubble=true'>" +	sHTML +	"</table>"

			monthConstructed=true
		}
	}

	function popUpMonth() {
		constructMonth()
		crossMonthObj.visibility = (dom||ie)? "visible"	: "show"
		tmpLeft = parseInt(crossobj.left) + 48
		tmpTop = parseInt(crossobj.top) + 27
		
		crossMonthObj.left = tmpLeft + 'px';
		crossMonthObj.top = tmpTop + 'px';
	}

	function popDownMonth()	{
		crossMonthObj.visibility= "hidden"
	}

	/*** Year Pulldown ***/

	function incYear() {
		for	(i=0; i<7; i++){
			newYear	= (i+nStartingYear)+1
			if (newYear==yearSelected)
			{ txtYear =	"&nbsp;<B>"	+ newYear +	"</B>&nbsp;" }
			else
			{ txtYear =	"&nbsp;" + newYear + "&nbsp;" }
			document.getElementById("y"+i).innerHTML = txtYear
		}
		nStartingYear ++;
	}

	function decYear() {
		for	(i=0; i<7; i++){
			newYear	= (i+nStartingYear)-1
			if (newYear==yearSelected)
			{ txtYear =	"&nbsp;<B>"	+ newYear +	"</B>&nbsp;" }
			else
			{ txtYear =	"&nbsp;" + newYear + "&nbsp;" }
			document.getElementById("y"+i).innerHTML = txtYear
		}
		nStartingYear --;
	}

	function selectYear(nYear) {
		yearSelected=parseInt(nYear+nStartingYear);
		yearConstructed=false;
		constructCalendar();
		popDownYear();
	}

	function constructYear() {
		popDownMonth()
		sHTML =	""
		if (!yearConstructed) {

			sHTML =	"<tr><td align='center'	onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='clearInterval(intervalID1);this.style.backgroundColor=\"\"' style='cursor:pointer'	onmousedown='clearInterval(intervalID1);intervalID1=setInterval(\"decYear()\",30)' onmouseup='clearInterval(intervalID1)'>-</td></tr>"

			j =	0
			nStartingYear =	yearSelected-3
			for	(i=(yearSelected-3); i<=(yearSelected+3); i++) {
				sName =	i;
				if (i==yearSelected){
					sName =	"<B>" +	sName +	"</B>"
				}

				sHTML += "<tr><td id='y" + j + "' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick='selectYear("+j+");event.cancelBubble=true'>&nbsp;" + sName + "&nbsp;</td></tr>"
				j ++;
			}

			sHTML += "<tr><td align='center' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='clearInterval(intervalID2);this.style.backgroundColor=\"\"' style='cursor:pointer' onmousedown='clearInterval(intervalID2);intervalID2=setInterval(\"incYear()\",30)'	onmouseup='clearInterval(intervalID2)'>+</td></tr>"

			document.getElementById("selectYear").innerHTML	= "<table width=54 style='font-family:tahoma;font-size:10px; border-width:1px; border-style:solid; border-color:#a0a0a0;'	bgcolor='#FFFFDD' onmouseover='clearTimeout(timeoutID2)' onmouseout='clearTimeout(timeoutID2);timeoutID2=setTimeout(\"popDownYear()\",100)' cellspacing=0>"	+ sHTML	+ "</table>"

			yearConstructed	= true
		}
	}

	function popDownYear() {
		clearInterval(intervalID1)
		clearTimeout(timeoutID1)
		clearInterval(intervalID2)
		clearTimeout(timeoutID2)
		crossYearObj.visibility= "hidden"
	}

	function popUpYear() {
		var	leftOffset

		constructYear()
		crossYearObj.visibility	= (dom||ie)? "visible" : "show"
		leftOffset = parseInt(crossobj.left) + document.getElementById("spanYear").offsetLeft
		if (ie)
		{
			leftOffset += 6
		}
		tmpLeft =	leftOffset + 131
		tmpTop = parseInt(crossobj.top) +	27
		
		crossYearObj.left = tmpLeft + 'px';
		crossYearObj.top = tmpTop + 'px';
	}

	/*** calendar ***/

	function WeekNbr(n) {
		var P3D=259200000, P7D=604800000, y=n.getYear(), y=(y<1000?1900+y:y);
		var s=Math.floor((Date.UTC(y,n.getMonth(),n.getDate())+P3D)/P7D);
		tmp=new Date(s*P7D); j=tmp.getYear(); j=(j<1000?1900+j:j);
		return 1+s-Math.floor((Date.UTC(j,0,4)+P3D)/P7D)
	}


	function constructCalendar () {
		var aNumDays = Array (31,0,31,30,31,30,31,31,30,31,30,31)

		var dateMessage
		var	startDate =	new	Date (yearSelected,monthSelected,1)
		var endDate

		if (monthSelected==1)
		{
			endDate	= new Date (yearSelected,monthSelected+1,1);
			endDate	= new Date (endDate	- (24*60*60*1000));
			numDaysInMonth = endDate.getDate()
		}
		else
		{
			numDaysInMonth = aNumDays[monthSelected];
		}

		datePointer	= 0
		dayPointer = startDate.getDay() - startAt
		
		if (dayPointer<0)
		{
			dayPointer = 6
		}

		sHTML =	"<table border=0 style='font-family:tahoma;font-size:10px;'><tr>"

		if (showWeekNumber==1)
		{
			sHTML += "<td width=27><b>" + weekString + "</b></td><td width=1 rowspan=7 bgcolor='#d0d0d0' style='padding:0px'><img src='"+imgDir+"spacer.gif' width=1></td>"
		}

		for	(i=0; i<7; i++)	{
			sHTML += "<td width='27' align='right'><B>"+ dayName[i]+"</B></td>"
		}
		sHTML +="</tr><tr>"
		
		if (showWeekNumber==1)
		{
			sHTML += "<td align=right>" + WeekNbr(startDate) + "&nbsp;</td>"
		}

		for	( var i=1; i<=dayPointer;i++ )
		{
			sHTML += "<td>&nbsp;</td>"
		}
	
		for	( datePointer=1; datePointer<=numDaysInMonth; datePointer++ )
		{
			dayPointer++;
			sHTML += "<td align=right>"
			sStyle=styleAnchor
			if ((datePointer==odateSelected) &&	(monthSelected==omonthSelected)	&& (yearSelected==oyearSelected))
			{ sStyle+=styleLightBorder }

			sHint = ""
			for (k=0;k<HolidaysCounter;k++)
			{
				if ((parseInt(Holidays[k].d)==datePointer)&&(parseInt(Holidays[k].m)==(monthSelected+1)))
				{
					if ((parseInt(Holidays[k].y)==0)||((parseInt(Holidays[k].y)==yearSelected)&&(parseInt(Holidays[k].y)!=0)))
					{
						sStyle+="background-color:#FFDDDD;"
						sHint+=sHint==""?Holidays[k].desc:"\n"+Holidays[k].desc
					}
				}
			}

			var regexp= /\"/g
			sHint=sHint.replace(regexp,"&quot;")

			dateMessage = "onmousemove='window.status=\""+selectDateMessage.replace("[date]",constructDate(datePointer,monthSelected,yearSelected))+"\"' onmouseout='window.status=\"\"' "

			if ((datePointer==dateNow)&&(monthSelected==monthNow)&&(yearSelected==yearNow))
			{ sHTML += "<b><a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer+";closeCalendar();'><font color=#ff0000>&nbsp;" + datePointer + "</font>&nbsp;</a></b>"}
			else if	(dayPointer % 7 == (startAt * -1)+1)
			{ sHTML += "<a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer + ";closeCalendar();'>&nbsp;<font color=#909090>" + datePointer + "</font>&nbsp;</a>" }
			else
			{ sHTML += "<a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer + ";closeCalendar();'>&nbsp;" + datePointer + "&nbsp;</a>" }

			sHTML += ""
			if ((dayPointer+startAt) % 7 == startAt) { 
				sHTML += "</tr><tr>" 
				if ((showWeekNumber==1)&&(datePointer<numDaysInMonth))
				{
					sHTML += "<td align=right>" + (WeekNbr(new Date(yearSelected,monthSelected,datePointer+1))) + "&nbsp;</td>"
				}
			}
		}

		document.getElementById("content").innerHTML   = sHTML
		document.getElementById("spanMonth").innerHTML = "<span style='width:68px;'>&nbsp;" +	monthName[monthSelected].toLowerCase() + "</span><IMG id='changeMonth' SRC='"+imgDir+"drop1.gif' WIDTH='18' HEIGHT='10' BORDER=0>"
		document.getElementById("spanYear").innerHTML =	"&nbsp;" + yearSelected	+ "<IMG id='changeYear' SRC='"+imgDir+"drop1.gif' WIDTH='18' HEIGHT='10' BORDER='0'>"
	}

	function popUpCalendar(ctl, ctl2, format, type) {
		
		var	leftpos=0
		var	toppos=0
	
		if (bPageLoaded)
		{
			if ( crossobj.visibility ==	"hidden" ) {
				ctlToPlaceValue	= ctl2
				dateFormat=format;
			
				formatChar = " "
				aFormat	= dateFormat.split(formatChar)
				if (aFormat.length<3)
				{
					formatChar = "/"
					aFormat	= dateFormat.split(formatChar)
					if (aFormat.length<3)
					{
						formatChar = "."
						aFormat	= dateFormat.split(formatChar)
						if (aFormat.length<3)
						{
							formatChar = "-"
							aFormat	= dateFormat.split(formatChar)
							if (aFormat.length<3)
							{
								// invalid date	format
								formatChar=""
							}
						}
					}
				}

				tokensChanged =	0
				if ( formatChar	!= "" )
				{
					// use user's date
					aData =	ctl2.value.split(formatChar)

					for	(i=0;i<3;i++)
					{
						if ((aFormat[i]=="d") || (aFormat[i]=="dd"))
						{
							dateSelected = parseInt(aData[i], 10)
							tokensChanged ++
						}
						else if	((aFormat[i]=="m") || (aFormat[i]=="mm"))
						{
							monthSelected =	parseInt(aData[i], 10) - 1
							tokensChanged ++
						}
						else if	(aFormat[i]=="yyyy")
						{
							yearSelected = parseInt(aData[i], 10)
							tokensChanged ++
						}
						else if	(aFormat[i]=="mmm")
						{
							for	(j=0; j<12;	j++)
							{
								if (aData[i]==monthName[j])
								{
									monthSelected=j
									tokensChanged ++
								}
							}
						}
					}
				}

				if ((tokensChanged!=3)||isNaN(dateSelected)||isNaN(monthSelected)||isNaN(yearSelected))
				{
					dateSelected = dateNow
					monthSelected =	monthNow
					yearSelected = yearNow
				}

				odateSelected=dateSelected;
				omonthSelected=monthSelected;
				oyearSelected=yearSelected;

				aTag = ctl;
				
				

				
				// zoneD ma position:relative dlatego na sztywno jest BottomRight
				
				
				var isIE = /*@cc_on!@*/false;
				if (isIE==true) {var tag = "HTML"}
				else {var tag ="BODY"}
				
				
				do {
					aTag = aTag.offsetParent;
					leftpos	+= aTag.offsetLeft;
					toppos += aTag.offsetTop;
				} while(aTag.tagName!=tag);
				
				w = 226;
				h = 179;
			
				if (type == 'TopLeft') {
					tmpLeft = fixedX==-1 ? ctl.offsetLeft + leftpos - w - 2 : fixedX
					tmpTop = fixedY==-1 ? ctl.offsetTop +	toppos - h - 2 : fixedY	
				
				} else if (type == 'TopRight') {
					tmpLeft = fixedX==-1 ? ctl.offsetLeft + leftpos + ctl.offsetWidth + 2 : fixedX
					tmpTop = fixedY==-1 ? ctl.offsetTop +	toppos - h - 2 : fixedY	
				
				} else if (type == 'BottomLeft') {
					tmpLeft = fixedX==-1 ? ctl.offsetLeft + leftpos - w - 2 : fixedX
					tmpTop = fixedY==-1 ? ctl.offsetTop +	toppos + ctl.offsetHeight + 2 : fixedY	
				
				} else if (type == 'BottomRight') {
					tmpLeft = fixedX==-1 ? ctl.offsetLeft + leftpos + ctl.offsetWidth + 2 : fixedX
					tmpTop = fixedY==-1 ? ctl.offsetTop +	toppos + ctl.offsetHeight + 2 : fixedY	
				
				} else if (type == 'Top') {
					tmpLeft = fixedX==-1 ? ctl.offsetLeft + leftpos : fixedX
					tmpTop = fixedY==-1 ? ctl.offsetTop +	toppos - h - 2 : fixedY	
				
				} else if (type == 'Bottom') {
					tmpLeft = fixedX==-1 ? ctl.offsetLeft + leftpos : fixedX
					tmpTop = fixedY==-1 ? ctl.offsetTop +	toppos + ctl.offsetHeight + 2 : fixedY	
				
				} else if (type == 'Left') {
					tmpLeft = fixedX==-1 ? ctl.offsetLeft + leftpos - w - 2 : fixedX
					tmpTop = fixedY==-1 ? ctl.offsetTop +	toppos : fixedY
				
				} else if (type == 'Right') {
					tmpLeft = fixedX==-1 ? ctl.offsetLeft + leftpos + ctl.offsetWidth + 2 : fixedX
					tmpTop = fixedY==-1 ? ctl.offsetTop +	toppos : fixedY
				
				} else {
					tmpLeft = fixedX==-1 ? ctl.offsetLeft + leftpos : fixedX
					tmpTop = fixedY==-1 ? ctl.offsetTop +	toppos - 190 : fixedY	
				}
				
		
				
				constructCalendar (1, monthSelected, yearSelected);
				crossobj.visibility=(dom||ie)? "visible" : "show"
			}
			else
			{
				hideCalendar()
				if (ctlNow!=ctl) {popUpCalendar(ctl, ctl2, format, type)}
			}
			ctlNow = ctl
		}

	}
	window.onload=init