function gsc(c_y, c_m, dst)
{while (c_m < 0)   { c_m += 12; c_y--; }
while (c_m > 11)  { c_m -= 12; c_y++; }
if (c_y < 2006) { c_y = 2006; }
if (c_y > 2006) { c_y = 2007; }
var buf; var date = new Date(c_y, c_m, 1); var month = date.getMonth(); var year = date.getYear(); var day = date.getDay();
var td = new Date(); var today = td.getDate(); var today_month = td.getMonth(); var today_year = td.getYear();
if (day == 0) day = 7;
var days;
buf="<div id=\"calendar_div_"+dst+"\">";
buf+="<table width=141 border=0 cellspacing=0 cellpadding=1><tr><td bgcolor=blue>";
buf+="<table  style='font-size:11px' width=100% border=0 cellpadding=0 cellspacing=1 bgcolor=#FFFFFF><tr bgcolor=navy align=center>";
buf+="<td height=17><a style='font-size:9px; color:white; text-decoration:none' href=left onclick=\"c_c(" + c_y + "," + (c_m - 1) + ",'" +dst+ "'); return false;\"><<</a></td>";
buf+="<td colspan=5 style='color:white'>" + get_month_name(c_m) + " " + c_y + "</td>";
buf+="<td><a style='font-size:9px; color:white; text-decoration:none' href=right onclick=\"c_c(" + c_y + "," + (c_m + 1) + ",'" +dst+ "'); return false;\">>></a></td>";
buf+="</tr>";
buf+="<tr align=right style='color=blue'>";
buf+="<td width=20 height=14>Пн</td><td width=20>Вт</td><td width=20>Ср</td><td width=20>Чт</td><td width=20>Пт</td><td width=20>Сб</td>";
buf+="<td width=20 style='color=red'>Вс</td></tr>";
buf+="<tr><td colspan=7 bgcolor=blue><img height=1 width=1></td></tr>";
switch (month){case 0:days = 31; break;case 1:days = (year % 4 == 0) ? 29 : 28; break;case 2:days = 31; break;case 3:days = 30; break;case 4:days = 31; break;case 5:days = 30; break;case 6:days = 31; break;case 7:days = 31; break;case 8:days = 30; break;case 9:days = 31; break;case 10:days = 30; break;case 11:days = 31; break;default:days = 0; abort("Incorrect month!");}
var td_buf="";
for (var i = 2 - day; i <= days; i++)
{
buf+="<tr align=right>";
for (; (i + day - 1) % 7 > 0; i++)
{
if(i==today && c_m==today_month && c_y==today_year) td_buf=" bgcolor=#FFA500"; else td_buf="";
if (i <= 0 || i > days)
buf+="<td></td>";
else
buf+="<td"+td_buf+"><a href=s onclick=\"select_day(" + c_y + "," + c_m + "," + i + ",'" +dst+ "'); return false;\" style='color:black'>" + i + "</a></td>";
}
if(i==today && c_m==today_month && c_y==today_year) td_buf=" bgcolor=#FFA500"; else td_buf="";
if (i > 0 && i <= days)
buf+="<td"+td_buf+"><a href=s onclick=\"select_day(" + c_y + "," + c_m + "," + i + ",'" +dst+ "'); return false;\" style='color:red'>" + i + "</a></td>";
buf+="</tr>";
}
buf+="<tr><td align=center colspan=7 bgcolor=navy style='color:white'> </td></tr>";
buf+="</table></td></tr></table>";
buf+="</div>";
return buf;
}
function get_calendar(c_y, c_m, dst)
{var date = new Date();var year = date.getYear();var month = date.getMonth();year = (c_y) ? c_y : year;month = (c_m) ? c_m - 1 : month;return gsc(year, month, dst);}
function get_month_name(month)
{switch (month){case 0 : return "январь";case 1 : return "февраль";case 2 : return "март";case 3 : return "апрель";case 4 : return "май";case 5 : return "июнь";case 6 : return "июль";case 7 : return "август";case 8 : return "сентябрь";case 9 : return "октябрь";case 10: return "ноябрь";case 11: return "декабрь";default: abort("Incorrect month!"); return "???";}}
function c_c(c_y, c_m, dst)
{var divElem = document.getElementById("calendar_div_"+dst); divElem.innerHTML = gsc(c_y, c_m, dst);}
function select_day(year, month, day, dst)
{month = (++month < 10) ? "0" + month : month.toString();day = (day < 10) ? "0" + day : day.toString();year = year.toString();var location = document.getElementById(dst);location.value = day + "-" + month + "-" + year;}
function findObj(n, d) {
var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function Snap() {
var x,y,ox,bx,oy,p,tx,a,b,k,d,da,e,el,args=Snap.arguments;a=parseInt(a);
for (k=0; k<(args.length-3); k+=4)
if ((g=findObj(args[k]))!=null) {
el=eval(findObj(args[k+1]));
a=parseInt(args[k+2]);b=parseInt(args[k+3]);
x=0;y=0;ox=0;oy=0;p="";tx=1;da="document.all['"+args[k]+"']";
if(document.getElementById) {
d="document.getElementsByName('"+args[k]+"')[0]";
if(!eval(d)) {d="document.getElementById('"+args[k]+"')";if(!eval(d)) {d=da;}}
}else if(document.all) {d=da;}
if (document.all || document.getElementById) {
while (tx==1) {p+=".offsetParent";
if(eval(d+p)) {x+=parseInt(eval(d+p+".offsetLeft"));y+=parseInt(eval(d+p+".offsetTop"));
}else{tx=0;}}
ox=parseInt(g.offsetLeft);oy=parseInt(g.offsetTop);var tw=x+ox+y+oy;
if(tw==0 || (navigator.appVersion.indexOf("MSIE 4")>-1 && navigator.appVersion.indexOf("Mac")>-1)) {
ox=0;oy=0;if(g.style.left){x=parseInt(g.style.left);y=parseInt(g.style.top);
}else{var w1=parseInt(el.style.width);bx=(a<0)?-5-w1:-10;
a=(Math.abs(a)<1000)?0:a;b=(Math.abs(b)<1000)?0:b;
x=document.body.scrollLeft + event.clientX + bx;
y=document.body.scrollTop + event.clientY;}}
}else if (document.layers) {x=g.x;y=g.y;var q0=document.layers,dd="";
for(var s=0;s<q0.length;s++) {dd='document.'+q0[s].name;
if(eval(dd+'.document.'+args[k])) {x+=eval(dd+'.left');y+=eval(dd+'.top');break;}}}
if(el) {e=(document.layers)?el:el.style;
var xx=parseInt(x+ox+a),yy=parseInt(y+oy+b);
if(navigator.appName=="Netscape" && parseInt(navigator.appVersion)>4){xx+="px";yy+="px";}
if(navigator.appVersion.indexOf("MSIE 5")>-1 && navigator.appVersion.indexOf("Mac")>-1){
xx+=parseInt(document.body.leftMargin);yy+=parseInt(document.body.topMargin);
xx+="px";yy+="px";}e.left=xx;e.top=yy;}}
}
function ShowHide(){
var i,p,v,obj,args=ShowHide.arguments;
for (i=0; i<(args.length-2); i+=3) if ((obj=findObj(args[i]))!=null) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
obj.visibility=v;}
}

