	var weekInitials = new Array('H', 'K', 'Sz', 'Cs', 'P', 'Sz', 'V')
	var months = new Array('Janu&aacute;r', 
						   'Febru&aacute;r',
						   'M&aacute;rcius',
						   '&Aacute;prilis',
						   'M&aacute;jus',
						   'J&uacute;nius',
						   'J&uacute;lius',
						   'Augusztus',
						   'Szeptember',
						   'Okt&oacute;ber',
						   'November',
						   'December');
               
	function PutCalendar(strName, imgPath)
	{		  
    document.write('<a id="anchor'+strName+'" href="javascript:;" onClick="CreateCalendar(\''+strName+'\')" >');
		document.write('<img id="img'+strName+'" src="' + imgPath + '" alt="Click to select" border="0" />');
		document.write('</a>');
    
	}
	
	function CreateCalendar(strName)
	{				
		var dtDate = new Date();
		
		if ( document.getElementById(strName) )
		{
			return;
		}
		
		var calendar = document.createElement('div');
		calendar.id = strName;
		calendar.innerHTML = CreateCalendarContent(dtDate, strName);
		calendar.style.position = 'absolute';
		var parentNode = document.getElementById('anchor'+strName).parentNode;
		parentNode.appendChild(calendar);
		
		reGenerateDays(strName);
	}
	
	function RemoveCalendar(strName)
	{
		var calendar = document.getElementById(strName);
		var parentNode = document.getElementById('anchor'+strName).parentNode;
		parentNode.removeChild(calendar);
		delete calendar;
	}
	
	function CreateCalendarContent(dtDate, strName)
	{
		var strContent = '<table class="calendar">';
		
		var year = 2009;
		var month = 0;
		
		var yearSelector = document.getElementById(strName+'Year');
		if (yearSelector)
		{
			year = yearSelector.value;
		}
		var monthSelector = document.getElementById(strName+'Month');
		if ( monthSelector)
		{
			month = monthSelector.value - 1;
		}
		
		for (var i=0;i<9;i++)
		{
			strContent += '<tr>';
			switch ( i )
			{
			case 0:
				strContent += '<td class="calendarYear">';
				strContent += '<input type="button" class="calendarArrowB" value="&laquo;" onClick="DecreaseYear(\''+strName+'\')" />';
				strContent += '</td>';
				strContent += '<td colspan="5" class="calendarYear">';
				strContent += '<input type="hidden" id="'+strName+'_year" value="'+year+'" />';
				strContent += '<div id="'+strName+'_year_div">'+year+'</div>';
				strContent += '</td>';
				strContent += '<td class="calendarYear">';
				strContent += '<input type="button" class="calendarArrowB" value="&raquo;" onClick="IncreaseYear(\''+strName+'\')" />';					
				strContent += '</td>';
			break;
			
			case 1:
				strContent += '<td class="calendarMonth">';
				strContent += '<input type="button" class="calendarArrowB" value="&laquo;" onClick="DecreaseMonth(\''+strName+'\')" />';
				strContent += '</td>';
				strContent += '<td colspan="5" class="calendarMonth">';
				strContent += '<input type="hidden" id="'+strName+'_month" value="'+month+'" />';	
				strContent += '<div id="'+strName+'_month_div">'+months[month]+'</div>';
				strContent += '</td>';
				strContent += '<td class="calendarMonth">';
				strContent += '<input type="button" class="calendarArrowB" value="&raquo;" onClick="IncreaseMonth(\''+strName+'\')" />';
				strContent += '</td>';
			break;
			
			default:
				for (var j=0;j<7;j++)
				{
					switch ( i )
					{
						case 2:
							strContent += '<td class="weekInitials">';
							strContent += weekInitials[j];
						break;
						
						default:
							if ( ( j != 5 ) && ( j != 6) )
							{
								strContent += '<td class="calendarDay">';
							}
							else
							{
								strContent += '<td class="calendarHoliday">';
							}
							strContent += '<input class="calendarDayB" type="button" id="'+strName+'_day_'+(i-3)+'_'+j+'" onClick="selectDay(\''+strName+'\',this.value)" value=""/>';
					}
					strContent += '</td>';
				}
			}
			strContent += '</tr>';
		}
		strContent += '</table>';
		
		return strContent;
	}
	
	function DecreaseYear(strName)
	{
		var yearHolder = document.getElementById(strName+'_year');
		var yearDisplay = document.getElementById(strName+'_year_div');
		var year = yearHolder.value;
		year--;
		yearHolder.value = year;
		yearDisplay.innerHTML = year;
		
		reGenerateDays(strName);
	}
	
	function IncreaseYear(strName)
	{
		var yearHolder = document.getElementById(strName+'_year');
		var yearDisplay = document.getElementById(strName+'_year_div');
		var year = yearHolder.value;
		year++;
		yearHolder.value = year;
		yearDisplay.innerHTML = year;
		
		reGenerateDays(strName);
	}

	function DecreaseMonth(strName)
	{
		var monthHolder = document.getElementById(strName+'_month');
		var monthDisplay = document.getElementById(strName+'_month_div');
		var month = monthHolder.value;
		month--; 
		if ( month < 0 ) 
		{
			DecreaseYear(strName);
			month = 11;
		}
		monthHolder.value = month;
		monthDisplay.innerHTML = months[month];
		
		reGenerateDays(strName);
	}
	
	function IncreaseMonth(strName)
	{
		var monthHolder = document.getElementById(strName+'_month');
		var monthDisplay = document.getElementById(strName+'_month_div');
		var month = monthHolder.value;
		month++; 
		if ( month > 11 ) 
		{
			IncreaseYear(strName);
			month = 0;
		}
		monthHolder.value = month;
		monthDisplay.innerHTML = months[month];
		
		reGenerateDays(strName);
	}		
		
	function reGenerateDays(strName)
	{			
		var year = document.getElementById(strName+'_year').value;
		var month = document.getElementById(strName+'_month').value;
		
		var date = new Date(year, month, 1);
		var date2 = new Date(year, (month*1+1), 0);
		
		var daysInMonth = date2.getDate();
		var startGrid = date.getDay() - 1;
		if (startGrid == -1 ) startGrid = 6;
		
		var crtDate = 1;
		
		clearDays(strName);
		
		for (var k=startGrid; k<=startGrid+daysInMonth-1; k++)
		{
			i = Math.floor( k / 7 );
			j = k%7;
			document.getElementById(strName+'_day_'+i+'_'+j).value = k - startGrid + 1;
		}
	}
	
	function clearDays(strName)
	{
		for (var i=0;i<6;i++)
		{
			for (var j=0;j<7;j++)
			{
				document.getElementById(strName+'_day_'+i+'_'+j).value = "";
			}
		}
	}
	
	function selectDay(strName, date)
	{
		var year = document.getElementById(strName+'_year').value;
		var month = document.getElementById(strName+'_month').value;
		
		var yearSelector = document.getElementById(strName+'Year');
		if (yearSelector)
		{
			yearSelector.value = year;
		}
		var monthSelector = document.getElementById(strName+'Month');
		if ( monthSelector)
		{
			monthSelector.value = month*1 + 1;
		}			
		var daySelector = document.getElementById(strName+'Day');
		if ( daySelector)
		{
			daySelector.value = date;
		}		
		
		RemoveCalendar(strName);
	}

	function cleanOptions(object)
	{
		while (object.length > 0 )
		{
			object.remove(object.length-1);
		}
	}
	
	function addOptions(object, maxNo, day)
	{
		for (i=1; i<=maxNo; i++)
		{
			var option = document.createElement('option');
			option.text = i;
			option.value = i;
			if ( i==day)
			{
				option.selected = true;
			}
			
			try
			{
				object.add(option, null);
			}
			catch (ex)
			{
				object.add(option);
			}
		}
	}
	
	function checkDate(controlStr)
	{ 
    dayBox = document.getElementById(controlStr+'Day');
		
		year = document.getElementById(controlStr+'Year').value;
		month = document.getElementById(controlStr+'Month').value;
		day = dayBox.value;
		
		if (( month==1)||
			( month==3)||
			( month==5)||
			( month==7)||
			( month==8)||
			( month==10)||
			( month==12))
		{
			if ( dayBox != 31)
			{
				cleanOptions(dayBox);
				addOptions(dayBox, 31, day);
			}
		}
		else if ( month != 2)
		{
			if ( dayBox != 30)
			{			
				cleanOptions(dayBox);
				addOptions(dayBox, 30, day);
			}
		}
		else
		{
			if ( year%4==0)//	szokooev, ez nam biztos (mintha meg voot valami)
			{
				if ( dayBox != 29)
				{				
					cleanOptions(dayBox);
					addOptions(dayBox, 29, day);
				}
			}
			else//	nam szaokooev
			{
				if ( dayBox != 28)
				{				
					cleanOptions(dayBox);
					addOptions(dayBox, 28, day);
				}
			}
		}
	}
