function maxDays(mm, yyyy){
  if(mm == 3 || mm == 5 || mm == 8 || mm == 10){
    return 30;
  } else if (mm == 1) {
    return ((yyyy%4)!= 0) ? 28 : 29;
  } else {
    return 31;
  }
}
function writeCalendar(curD, curM, curY){
var startY = 2007;
var dd = curD;
var mm = (curM - 1);
var yyyy = curY;
var arrM = new Array("январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь");
var arrD = new Array("Пн","Вт","Ср","Чт","Пт","Сб","Вс")
var arrY = new Array()
for (ii=0;ii<=(yyyy-startY);ii++) arrY[ii] = startY + ii;

var text = ""
text = "<form name=calForm>"
text += "<table border=0 width=90%>"
text += "<tr><td>"
text += "<table width=100%><tr>"
text += "<td align=center>"
text += "<select name=selMonth onChange='changeCal()'>"

for (ii=0;ii<=11;ii++){
	if (archArgs.y && archArgs.m && archArgs.d) {
		if (ii == (archArgs.m - 1)) {
			if (ii==mm) {
				text += "<option value= " + ii + " selected style=\'background: #edede3\'>" + arrM[ii] + "</option>";
			} else {
				text += "<option value= " + ii + " selected style=\'background: #eaeaea; color: #0065b2;\'>" + arrM[ii] + "</option>";
			}
		} else if (ii==mm) {
			text += "<option value= " + ii + " style=\'background: #edede3\'>" + arrM[ii] + "</option>";
		} else {
			text += "<option value= " + ii + ">" + arrM[ii] + "</option>";
		}
	} else {
		if (ii==mm) {
			text += "<option value= " + ii + " selected style=\'background: #edede3\'>" + arrM[ii] + "</option>";
		} else {
			text += "<option value= " + ii + ">" + arrM[ii] + "</option>";
		}
	}
}
text += "</select>"
text += "</td>"
text += "<td align=right>"
text += "<select name=selYear onChange='changeCal()'>"

for (ii=0;ii<=(yyyy-startY);ii++){
        if (archArgs.y && archArgs.m && archArgs.d) {
		if (curY == archArgs.y) {
			if (arrY[ii]== yyyy) {
				text += "<option value= " + arrY[ii] + " selected style=\'background: #edede3\'>" + arrY[ii] + "</option>";
			} else {
				text += "<option value= " + arrY[ii] + " selected style=\'background: #eaeaea; color: #0065b2;\'>" + arrY[ii] + "</option>";
			}
		} else if (arrY[ii]== yyyy) {
			text += "<option value= " + arrY[ii] + " style=\'background: #edede3\'>" + arrY[ii] + "</option>";
                } else {
                        text += "<option value= " + arrY[ii] + ">" + arrY[ii] + "</option>";
                }
       } else {
		if (arrY[ii]==yyyy){
			text += "<option value= " + arrY[ii] + " selected style=\'background: #edede3\'>" + arrY[ii] + "</option>";
		} else {
			text += "<option value= " + arrY[ii] + ">" + arrY[ii] + "</option>";
		}
	}
}
text += "</select>"
text += "</td>"
text += "</tr></table>"
text += "</td></tr>"
text += "<tr><td align=center width=100%>"
text += "<table border=0 cellpadding=0 cellspacing=0 width=100%>"
text += "<tr>"
	for (ii=0;ii<=6;ii++){
		text += "<td align=right>" + arrD[ii] + "</td>"

	}
text += "</tr>"


aa = 0
	for (kk=0;kk<=5;kk++){
		text += "<tr>"
		for (ii=0;ii<=6;ii++,aa++) {
			text += "<td align=right><span id=sp" + aa + "></span></td>"
		}
		text += "</tr>"
	}
text += "</table>"
text += "</td></tr>"
text += "</table>"
text += "</form>"
document.write(text)
changeCal(curD, curM, curY)
}
function changeCal(curD, curM, curY){
var startY = 2007;
var dd = curD;
var mm = curM - 1;
var yyyy = curY;
var currM = parseInt(document.calForm.selMonth.value)
var prevM = (currM!=0) ? (currM - 1) : 11;
var currY = parseInt(document.calForm.selYear.value)
var mmyyyy = new Date()
mmyyyy.setFullYear(currY)
mmyyyy.setMonth(currM)
mmyyyy.setDate(0)
var day1 = mmyyyy.getDay()
var arrN = new Array(36)
var aa
	for (ii=0;ii<day1;ii++){
		arrN[ii] = maxDays(prevM,currY) - day1 + ii + 1;
	}
	aa = 1
 for (ii=day1;ii<=day1+maxDays(currM,currY)-1;ii++, aa++) {

if (    (aa > dd && currM == mm && currY == yyyy) ||
	(currM > mm && currY == yyyy) )
{
		arrN[ii] = aa;
		if ((ii-5)%7 == 0 || (ii-6)%7 == 0) {
			document.getElementById("sp"+ii).className = "c5"
		} else {
			document.getElementById("sp"+ii).className = "c4"
		}
} else if (aa == dd && mm == currM && yyyy == currY) {
	if ((ii-5)%7 == 0 || (ii-6)%7 == 0) {
		arrN[ii] = "<a href=\'" + archArgs.__path + "/" + currY + "/" + (currM+1) + "/" + aa +"/\' class=c2_background><b>" + aa + "</b></a>";
	} else {
		arrN[ii] = "<a href=\'" + archArgs.__path + "/" + currY + "/" + (currM+1) + "/" + aa +"/\' class=c1_background><b>" + aa + "</b></a>";
	}
} else if (aa == archArgs.d && currM == (archArgs.m - 1) && currY == archArgs.y) {
		arrN[ii] = "<a href=\'" + archArgs.__path + "/" + currY + "/" + (currM+1) + "/" + aa +"/\' class=today title='Просмотр архива'><b>" + aa + "</b></a>";
} else {
	if ((ii-5)%7 == 0 || (ii-6)%7 == 0) {
		arrN[ii] = "<a href=\'" + archArgs.__path + "/" + currY + "/" + (currM+1) + "/" + aa +"/\' class=c2>" + aa + "</a>"
	} else {
		arrN[ii] = "<a href=\'" + archArgs.__path + "/" + currY + "/" + (currM+1) + "/" + aa +"/\' class=c1>" + aa + "</a>"
	}
}
}
        for (ii=day1+maxDays(currM,currY);ii<=36;ii++)
          arrN[ii] = '';
	for (ii=0;ii<=36;ii++){
                var xII = document.getElementById("sp"+ii);
                xII.innerHTML = arrN[ii];
		if ((ii<7 && arrN[ii]>20)||(ii>27 && arrN[ii]<20))
			xII.className = "c3"
	}
}