var div_show_to = '';
var obj_result_to = '';
function show_calendar(show_to, result_to)
{
	div_show_to = show_to;
	obj_result_to = result_to;
	init();
	generate();
}

function hide_calendar()
{
	//document.getElementById(div_show_to).outerHTML = '<div id="'+div_show_to+'" style="display:none;"></div>';
	document.getElementById(div_show_to).innerHTML = '';
	document.getElementById(div_show_to).style.display = 'none';
}

function init()
{
	dbdate = new Array
	(
		31,28,31,30,31,30,31,31,30,31,30,31
	);

	dbdays = new Array(
		'пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс'
	);	
	
	dbmonth = new Array
	(
		'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь',
		'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'
	);
	
	dbmonth1 = new Array
	(
		'01', '02', '03', '04', '05', '06',
		'07', '08', '09', '10', '11', '12'
	);													

	d	= new Date();
	t_day	= d.getUTCDate();
	t_date	= d.getTime();
	t_month	= d.getUTCMonth();
	t_year	= d.getUTCFullYear();
	curr_day	= 0;
	curr_month	= 0;
	curr_year	= 0;
	
	c_month	= 0;
	c_year	= 1980;
	c_date	= 1;
	d.setUTCDate(c_date);
	d.setUTCMonth(c_month);
	d.setUTCFullYear(c_year);
	c_day = d.getUTCDay();
	s_day = 0;
}

function onchange_ ()
{

	if (c_month == -1)
	{
		c_year -= 1;
		c_month = 11;
	}
	if (c_month == 12)
	{
		c_year += 1;
		
		c_month = 0;
	}

	d.setUTCDate (c_date);
	d.setUTCMonth (c_month);
	d.setUTCFullYear (c_year);
	c_day = d.getUTCDay();
	if (Math.round(c_year / 4) == (c_year / 4))
	{
			dbdate[1] = 29;
	}
	else
	{
		dbdate[1] = 28;
	}
	generate();
}
function changem ()
{
	c_month = eval(document.getElementById('sel_month').value)*1;
	onchange_();
}
function changey ()
{
	c_year = eval(document.getElementById('sel_year').value)*1;
	onchange_();
}

function generate()
{
	//s = '<div id="'+div_show_to+'" style="position:absolute;"><table cellpading="0" cellspacing="0" border="0" bgcolor="#ffffff"><tr><td>';
	s = '<table cellpading="0" cellspacing="0" border="0" bgcolor="#ffffff"><tr><td>';
	s += '<table cellpadding="0" cellspacing="0" border="0" width="100%"><tr>';
	s += '<td><select name="month" id="sel_month" onchange="changem();">';
	for (i = 0; i < 12; i++)
	{
		s += '<option value="'+i+'"';
		if (i == c_month)
		{
			s +=(' selected');
		}
		s += '>'+dbmonth[i];
	}
	s += '</select></td>';
	s += '<td align="right"><select name="year" id="sel_year" onchange="changey();">';
	for (i = 1926; i < 1996; i++)
	{
		s += '<option value="'+i+'"';
		if (i == c_year)
		{
			s += ' selected';
		}
		s += '>'+i;	
	}
	s += '</select></td><td><input type="button" onclick="hide_calendar();" value="закрыть"></td></tr></table></td></tr>';
	s += '<tr><td><table cellpadding="3" cellspacing="0" class="c2" width="100%" border="1"><tr>';
	s += '<td class="c">'+dbdays[0]+'</td><td class="c">'+dbdays[1]+'</td><td class="c">'+dbdays[2]+'</td><td class="c">'+dbdays[3]+'</td><td class="c">'+dbdays[4]+'</td><td class="c">'+dbdays[5]+'</td><td class="c">'+dbdays[6]+'</td></tr>';
	for (i = 2 - c_day, j=0; ((i <= dbdate[c_month]) || (Math.round((j)/7) != ((j)/7))); i++, j++)
	{
		if (Math.round(j/7) == (j/7))
		{
			 s += '<tr>';
		}
		
		s += '';
		
		if ((i > 0) && (i <= dbdate[c_month]))
		{
			d.setUTCDate(i);
				s += '<td class="cell" onmouseout="mouseout_();" onmouseover="hover_('+i+');" onclick="select_('+i+');" id="day_' + i + '">' + i  + '</td>';
			d.setUTCDate(c_date);
		}
		
		else
		{
			s += '<td class="d">&nbsp;</td>';
		}
		
		if (Math.round((j+1)/7) == ((j+1)/7))
		{
			 s += '</tr>';
		}
	}
	//s += '</table></div>';
	s += '</table>';
	//document.getElementById(div_show_to).outerHTML = s;
	document.getElementById(div_show_to).innerHTML = s;
	document.getElementById(div_show_to).style.position = 'absolute';
	document.getElementById(div_show_to).style.display = 'inline';
}

function hover_(n_day)
{	
	document.getElementById('day_'+n_day).style.cursor = 'hand';
	document.getElementById('day_'+n_day).style.textDecoration = 'underline';

	s_day = n_day;
}

function mouseout_()
{
	if ((s_day != 0) &&((s_day != curr_day) || (c_month != curr_month) || (c_year != curr_year)))
	{
		d.setUTCDate(s_day);
		s_time = d.getTime();
		
		document.getElementById('day_'+s_day).style.textDecoration = 'none';
	}
}


function select_(n_day)
{
	if (s_day != 0)
	{
		d.setUTCDate(s_day);
		s_time = d.getTime();		
	}
	
	s_day = n_day;
	c1_date = n_day;
	d.setUTCDate(n_day);
	if (c1_date < 10)
	{
		day = '0' + c1_date;
	}
	else
	{
		day = '' + c1_date;
	}
	
	document.getElementById(obj_result_to).value = day + '.' + dbmonth1[c_month] + '.' + c_year;
	hide_calendar();
}