function m5_calendarGetTempDate(obj)
{
	el = window.document.getElementById(obj+'[temp]').value;
	d = new Date(el.substring(0,4),el.substring(5,7)-1,el.substring(8,10),el.substring(11,13),el.substring(14,16), el.substring(17,19));	
	return d.toString();	
}

function m5_calendarGetCurrentDate(obj)
{
	el = window.document.getElementById(obj).value;
	var d = new Date(el.substring(0,4),el.substring(5,7)-1,el.substring(8,10),el.substring(11,13),el.substring(14,16), el.substring(17,19));	
	return d.toString();		
}

function m5_calendarSetTempFullDate(date, obj)
{
	d = new Date(date);
	el = window.document.getElementById(obj+'[temp]').value = m5_calendarAddNul(d.getFullYear())+'-'+m5_calendarAddNul(d.getMonth()+1)+'-'+m5_calendarAddNul(d.getDate())+' '+m5_calendarAddNul(d.getHours())+':'+m5_calendarAddNul(d.getMinutes())+':'+m5_calendarAddNul(d.getSeconds());
}

function m5_calendarSetTempDate(year, month, day, obj)
{
	curr = window.document.getElementById(obj+'[temp]').value+'';
	el = window.document.getElementById(obj+'[temp]').value = m5_calendarAddNul(year)+'-'+m5_calendarAddNul(month)+'-'+m5_calendarAddNul(day)+' '+curr.substring(11,19);
	m5_calendarShow(obj);
	//m5_trigger(obj+'[calendar_table]');
}

function m5_calendarSetTempHours(hours, obj)
{
	curr = window.document.getElementById(obj+'[temp]').value+'';
	el = window.document.getElementById(obj+'[temp]').value = curr.substring(0,11)+m5_calendarAddNul(hours)+curr.substring(13,19);
	m5_calendarShow(obj);
}

function m5_calendarSetTempMinutes(minutes, obj)
{
	curr = window.document.getElementById(obj+'[temp]').value+'';
	el = window.document.getElementById(obj+'[temp]').value = curr.substring(0,14)+m5_calendarAddNul(minutes)+curr.substring(16,19);
	m5_calendarShow(obj);
}

function m5_calendarAddNul(str)
{
	if((""+str).length == 1)return "0"+str;
		else return str;	
}

function m5_calendarPreviousMonth(obj)
{
	d = new Date(m5_calendarGetTempDate(obj));
	d.setMonth(d.getMonth()-1);
	m5_calendarSetTempFullDate(d.toString(), obj);
	m5_calendarShow(obj);		
}

function m5_calendarPreviousYear(obj)
{
	d = new Date(m5_calendarGetTempDate(obj));
	d.setFullYear(d.getFullYear()-1);
	m5_calendarSetTempFullDate(d.toString(), obj);
	m5_calendarShow(obj);		
}

function m5_calendarNextYear(obj)
{
	d = new Date(m5_calendarGetTempDate(obj));
	d.setFullYear(d.getFullYear()+1);
	m5_calendarSetTempFullDate(d.toString(), obj);
	m5_calendarShow(obj);		
}

function m5_calendarChangeMonth(obj)
{
	d = new Date(m5_calendarGetTempDate(obj));
	
	d.setMonth(window.document.getElementById(obj+'[sel_month]').selectedIndex);
	m5_calendarSetTempFullDate(d.toString(), obj);
	m5_calendarShow(obj);		
}

function m5_calendarNextMonth(obj)
{
	d = new Date(m5_calendarGetTempDate(obj));
	d.setMonth(d.getMonth()+1);
	m5_calendarSetTempFullDate(d.toString(), obj);
	m5_calendarShow(obj);		
}

function m5_calendarClear(obj)
{
	var row = 1;
	for(j=1;j<7;j++)
	{
		for(i=0;i<7;i++)
		{
			el = window.document.getElementById(obj+'[cell]['+j+']['+i+']');
			el.innerHTML = '';
			el.style.backgroundColor = '#FFFFFF';
			el.style.fontWeight = 'normal';
		}	
	}
}

function m5_calendarShow(obj)
{
	row = 1;
	temp_date = new Date(m5_calendarGetTempDate(obj));
	cur_date = new Date(m5_calendarGetTempDate(obj));
	month = temp_date.getMonth();
	temp_date.setDate(1);
	m5_calendarClear(obj);
	
	sel_hours = window.document.getElementById(obj+'[hours]');
	if(sel_hours.length == 0)
	{
		for(i=0;i<24;i++)sel_hours.options[i] = new Option(m5_calendarAddNul(i),i);	
	}
	sel_hours.options[temp_date.getHours()].selected = true;
	sel_minutes = window.document.getElementById(obj+'[minutes]');
	if(sel_minutes.length == 0)
	{
		for(i=0;i<60;i++)sel_minutes.options[i] = new Option(m5_calendarAddNul(i),i);	
	}
	sel_minutes.options[temp_date.getMinutes()].selected = true;
	sel_month = window.document.getElementById(obj+'[sel_month]');
	sel_month.options[temp_date.getMonth()].selected = true;
	
	view_year = window.document.getElementById(obj+'[view_year]');
	view_year.innerHTML = temp_date.getFullYear();
	
	for(i=1;i<32;i++)
	{
		temp_date.setDate(i);
		style = "";
		el = window.document.getElementById(obj+'[cell]['+row+']['+temp_date.getDay()+']');
		if(m5_calendarCheckRestDay(temp_date.toString())) style = ' calendar_rest';
		if(cur_date.toDateString() == temp_date.toDateString())el.style.backgroundColor = '#ddd';
		if(temp_date.getMonth()==month) el.innerHTML = '<a class="calendar'+style+'" href="javascript: m5_calendarSetTempDate('+temp_date.getFullYear()+', '+(temp_date.getMonth()+1)+', '+temp_date.getDate()+', \''+obj+'\')">'+i+'</a>';
		if(temp_date.getDay() == 0)row++;
	}
	curr_date = new Date(m5_calendarGetCurrentDate(obj));
	window.document.getElementById(obj+'[current]').value = curr_date.toLocaleString();	
}

function m5_calendarCheckRestDay(date)
{
	temp_date = new Date(date);
	if((temp_date.getDay()==0) | (temp_date.getDay()==6))return true;
		else return false; 		
}

function m5_calendarSetCurrentDate(obj)
{
	window.document.getElementById(obj).value = window.document.getElementById(obj+'[temp]').value;
	curr_date = new Date(m5_calendarGetTempDate(obj));
	window.document.getElementById(obj+'[current]').value = curr_date.toLocaleString();	
	m5_calendarShow(obj);
	m5_trigger(obj+'[calendar_table]');
}

function m5_calendarCancelTempDate(obj)
{
	window.document.getElementById(obj+'[temp]').value = window.document.getElementById(obj).value;
	curr_date = new Date(m5_calendarGetCurrentDate(obj));
	window.document.getElementById(obj+'[current]').value = curr_date.toLocaleString();	
	m5_calendarShow(obj);
	m5_trigger(obj+'[calendar_table]');
}

function m5_trigger(obj)
{
    div = window.document.getElementById(obj);
	if(div.style.display == 'none') div.style.display = 'block';
		else div.style.display = 'none';
}



function m5_printCalendarD(obj, val, img_dir, use)
{
	str = '<div id="calendar">'+
	'<table cellpadding="0" cellspacing="0" width="1%">'+
	'<tr><td><input type="text" id="'+obj+'[current]" value="'+val+'" disabled style="width: 200px;display:none;"></td><td nowrap>&nbsp;</td>'+
	'</tr><tr>'+
	'<td></td>'+
	'<td>'+
	'<div id="'+obj+'[calendar_table]" style="display: none; position: absolute;filter: Shadow(Color=#CCCCCC,  Direction=90, Strength=4); width: 250px; height: 400px;">'+
	'<table width="200" bgcolor="#FFFFFF"  border="0" cellspacing="0" cellpadding="5" style="border: 1px solid #777777;">'+
	'<tr bgcolor="#777777"><td colspan="6"><b style="color:#fff">Äàòà è âðåìÿ</b></td><td align="right" valign="top"><b><acronym title="Çàêðûòü"><a href="javascript: m5_trigger(\''+obj+'[calendar_table]\');" style="color:#fff">X</a><acronym></b></td></tr>'+
	'<tr><td colspan="7" align="center">'+
	'<a href="javascript: m5_calendarPreviousYear(\''+obj+'\')">-</a>&nbsp;<span id="'+obj+'[view_year]"></span>&nbsp;<a href="javascript: m5_calendarNextYear(\''+obj+'\')">+</a>'+
	'</td></tr> '+
	'<tr><td colspan="7" align="center">'+
	'<a href="javascript: m5_calendarPreviousMonth(\''+obj+'\')">-</a>'+
	'<select id="'+obj+'[sel_month]" onchange="m5_calendarChangeMonth(\''+obj+'\')">'+
	'<option value="0">ßíâàðü</option>'+
	'<option value="1">Ôåâðàëü</option>'+
	'<option value="2">Ìàðò</option>'+
	'<option value="3">Àïðåëü</option>'+
	'<option value="4">Ìàé</option>'+
	'<option value="5">Èþíü</option>'+
	'<option value="6">Èþëü</option>'+
	'<option value="7">Àâãóñò</option>'+
	'<option value="8">Ñåíòÿáðü</option>'+
	'<option value="9">Îêòÿáðü</option>'+
	'<option value="10">Íîÿáðü</option>'+
	'<option value="11">Äåêàáðü</option>'+
	'</select>'+
	'<a href="javascript: m5_calendarNextMonth(\''+obj+'\')">+</a>'+
	'</td></tr>  '+
	'<tr bgcolor="#CCCCCC">'+
	'    <td width="14%"><strong>Ï</strong></td>'+
	'    <td width="14%"><strong>Â</strong></td>'+
	'    <td width="14%"><strong>Ñ</strong></td>'+
	'    <td width="14%"><strong>×</strong></td>'+
	'    <td width="14%"><strong>Ï</strong></td>'+
	'    <td width="14%"><strong>Ñ</strong></td>'+
	'    <td width="14%"><strong>Â</strong></td>'+
	'  </tr>'+
	'  <tr>'+
	'    <td id="'+obj+'[cell][1][1]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][1][2]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][1][3]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][1][4]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][1][5]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][1][6]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][1][0]">&nbsp;</td>'+
	'  </tr>'+
	'  <tr>'+
	'    <td id="'+obj+'[cell][2][1]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][2][2]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][2][3]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][2][4]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][2][5]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][2][6]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][2][0]">&nbsp;</td>'+
	'  </tr>'+
	'  <tr>'+
	'    <td id="'+obj+'[cell][3][1]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][3][2]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][3][3]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][3][4]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][3][5]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][3][6]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][3][0]">&nbsp;</td>'+
	'  </tr>'+
	'  <tr>'+
	'    <td id="'+obj+'[cell][4][1]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][4][2]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][4][3]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][4][4]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][4][5]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][4][6]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][4][0]">&nbsp;</td>'+
	'  </tr>'+
	'  <tr>'+
	'    <td id="'+obj+'[cell][5][1]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][5][2]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][5][3]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][5][4]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][5][5]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][5][6]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][5][0]">&nbsp;</td>'+
	'  </tr>'+
	'  <tr>'+
	'    <td id="'+obj+'[cell][6][1]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][6][2]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][6][3]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][6][4]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][6][5]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][6][6]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][6][0]">&nbsp;</td>'+
	'  </tr>'+
	'  <tr><td height="1" colspan="7" style="border-top: 1px solid #ccc;"></td></tr>'+
	'  <tr>'+
	'    <td colspan="7" nowrap valign="middle"><div style="display: none; position: absolute;">Âðåìÿ: '+
	'    <select id="'+obj+'[hours]" onchange="m5_calendarSetTempHours(this.value, \''+obj+'\');">'+
	'    </select> : <select id="'+obj+'[minutes]" onchange="m5_calendarSetTempMinutes(this.value, \''+obj+'\');">'+
	'    </select></div>'+
	'    </td>'+
	'  </tr>'+
	'  <tr>'+
	'    <td height="25" colspan="7" nowrap align="center">'+
	'    <input type="button" value=" Ok " onclick="m5_calendarSetCurrentDate(\''+obj+'\');document.getElementById(\''+use+'\').checked=true;">&nbsp;&nbsp;<input type="button" value=" Îòìåíà " onclick="m5_calendarCancelTempDate(\''+obj+'\')">'+
	'    </td>'+
	'  </tr>'+
	'</table>'+
	'</div>'+
	'</td></tr></table>'+
	'</div>'+
	''+
	'<input type="hidden" id="'+obj+'[temp]" value="'+val+'">';
	document.getElementById('div_'+obj).innerHTML = str;
}
