monthslength=new Array("","","","");
monthslength[0]=new Array(31,29,31,30,31,30,31,31,30,31,30,31);
monthslength[1]=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
monthslength[2]=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
monthslength[3]=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
week_days=new Array("Вс","Пн","Вт","Ср","Чт","Пт","Сб");
months=new Array("Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь");

var now=new Date();
var curyear=now.getFullYear();
var curmonth=now.getMonth();
var curdate=now.getDate();

function parseClick()
	{
    	Hide('cal');
		}

function showCal(eid,year,month,tid,x,y)
{
	obj=document.getElementById(eid);
	obj.style.display='block';
	obj.style.left=parseInt(x).toString()+'px';
	//if (parseInt(obj.style.left)+200>screen.width) obj.style.left=screen.width-210;
	obj.style.top=parseInt(y).toString()+'px';
	showCalendar(eid,year,month,tid,'');
	}

function getPosition(obj,pos) {
 var x=0, y=0;
 while(obj) {
    x+=obj.offsetLeft;
    y+=obj.offsetTop;
    obj=obj.offsetParent;
 }
 return (pos=='x' ? x : y);

}

function showCalendar(eid,year,month,tid)
{	var cur_val=e(tid).value.toString();
	showCalendarTrue(eid,(cur_val.toString()!='' ? parseInt(cur_val.toString().substring(0,4)) : year),(cur_val.toString()!='' ? parseInt(cur_val.toString().substring(5,7),10)-1 : month),tid);
	}

function showCalendarTrue(eid,year,month,tid)
{
   var nowdata=curyear.toString()+'.'+((curmonth+1)<10 ? '0' : '')+(curmonth+1).toString()+'.'+((curdate+1)<10 ? '0' : '')+curdate.toString();
   //alert (nowdata);
   var data=new Date(year,month,1);
   //alert(data.getTime()+60*60*24*monthlength[month]);
   pmm=month-1;
   if (pmm<0)
   	{
   		pmy=year-1;
   		pmm=11;
   		}
   		else pmy=year;

   nmm=month+1;
   if (nmm>11)
   	{
   		nmy=year+1;
   		nmm=0;
   		}
   		else nmy=year;

   pyy=year-1;pym=month;

   nyy=year+1;nym=month;

	//верстка
    var structure='<table width="100%" cellspacing="0">';
    structure+='	<td>';
    structure+='		<table width="100%" cellspacing="0" cellpadding="0" border="0">';
    structure+='			<tr class="taskbar white">';
    structure+='				<td colspan="2"><img src="./img/calendar/arrow_cal_l.gif" width="4" height="7" border="0" onClick="showCalendarTrue('+'\''+eid+'\''+','+pmy+','+pmm+',\''+tid+'\''+')" title="Предыдущий месяц" alt="Предыдущий месяц"></td>';
    structure+='				<td colspan="3">';
    structure+='					<table cellspacing="0" align="center"><td><b>'+months[month]+' '+year+'</b></td>';
    structure+='						<td width="1"><img src="./img/calendar/arrow_cal_top.gif" width="7" height="4" border="0" onClick="showCalendarTrue('+'\''+eid+'\''+','+nyy+','+nym+',\''+tid+'\''+')" title="Следующий год" alt="Следующий год">';
    structure+='						<img src="./img/calendar/arrow_cal_bot.gif" width="7" height="4" border="0" onClick="showCalendarTrue('+'\''+eid+'\''+','+pyy+','+pym+',\''+tid+'\''+')" title="Предыдущий год" alt="Предыдущий год"></td>';
    structure+='					</table>';
    structure+='				</td>';
    structure+='				<td colspan="2"><img src="./img/calendar/arrow_cal_r.gif" width="4" height="7" border="0" onClick="showCalendarTrue('+'\''+eid+'\''+','+nmy+','+nmm+',\''+tid+'\''+')" title="Следующий месяц" alt="Следующий месяц"></td>';
    structure+='			</tr>';
    structure+='		</table>';
    structure+='		<table width="100%" cellspacing="0" cellpadding="0" border="0" style="margin-bottom:5px">';
    structure+='			<tr class="calendar stripe">';
    structure+='				<td>Пн</td><td>Вт</td><td>Ср</td><td>Чт</td><td>Пт</td><td>Сб</td><td class="sunday">Вс</td>';
    structure+='			</tr>';
    structure+='			<content>';
    structure+='		</table>';
    structure+='	</td>';
    structure+='</table>';
    //конец верстки


   //теперь отображаем дни
   //strc+='<tr>';
   data.setDate(1);
   var weekDay=data.getDay();
   if (weekDay==0) weekDay=6; else weekDay--;
   str1=year.toString()+'.'+((month+1)<10 ? '0' : '')+(month+1).toString()+'.';
   var content='';
   for (i=0;i<=monthslength[year % 4][month]-1+weekDay;i++)
   	{
   		var cd=((i+1-weekDay)<10 ? '0' : '')+(i+1-weekDay).toString();
   		if ((i % 7)==0) content+='<tr class="calendar">';
   		if (i<weekDay)	content+='<td>&nbsp;</td>';
   			else content+='<td '+((i % 7)==6 ? ' class="sunday"' : '')+'style="cursor:pointer" onClick="document.getElementById(\''+tid+'\').value=\''+str1+((i+1-weekDay)<10 ? '0'+(i+1-weekDay).toString() : (i+1-weekDay).toString())+'\';parseClick()">'+(nowdata==str1+cd.toString() ? '<div class="today">'+(i+1-weekDay).toString()+'</div>' : (i+1-weekDay).toString())+'</td>';
   		if ((i % 7)==6) content+='</tr>';
   		}

   	var searchStr = "<content>";
	var re = new RegExp(searchStr , "g");
	var result = structure.replace(re, content);
   	document.getElementById(eid).innerHTML=result;
	}
