var Months = new Array("Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь");
var selmonth = null;

var segnow   = new Date();
var segday   = segnow.getDate();
var segmonth = segnow.getMonth();
var segyear  = segnow.getFullYear();

function setToday() {
    var now   = new Date();
    var day   = now.getDate();
    var month = now.getMonth();
    var year  = now.getFullYear();    
    if (year < 100) { year += 1900; }

    this.focusDay = day;
    selmonth = month;
    document.getElementById("emonth").value = Months[month];    
    document.getElementById("eyear").value = year;    
    if (day < 10){
        slcday = "0"+day;
    } else {
        slcday = day;
    }
    //document.getElementById(polevvoda).value = 
    outmonth = month+1;
    document.getElementById(polevvoda).value = slcday+".";
    if (outmonth<10) document.getElementById(polevvoda).value += "0";
    document.getElementById(polevvoda).value += outmonth+"."+document.getElementById("eyear").value;
    displayCalendar(month, year);    
}

function isFourDigitYear(year) {
    if (year.length != 4) {
        alert ("Sorry, the year must be four-digits in length.");
        document.calControl.year.select();
        document.calControl.year.focus();
    } else { return true; }
}

function selectDate() {
    var year  = document.getElementById("eyear").value;
    if (isFourDigitYear(year)) {
        var day   = 0;
        var month = selmonth;
        displayCalendar(month, year);
    }
}

function setPreviousYear() {
    var year  = document.getElementById("eyear").value;
    if (isFourDigitYear(year)) {
        var day   = 0;
        var month = selmonth;
        year--;
        document.getElementById("eyear").value = year;
        displayCalendar(month, year);
   }
}
function setPreviousMonth() {
    var year  = document.getElementById("eyear").value;
    if (isFourDigitYear(year)) {
        var day   = 0;
        var month = selmonth;
        if (month == 0) {
            month = 11;
            if (year > 1000) {
                year--;
                document.getElementById("eyear").value = year;
            }
        } else { month--; }
        document.getElementById("emonth").value = Months[month];
        document.getElementById("eyear").value = year;        
        selmonth = month;
        displayCalendar(month, year);
   }
}

function setNextMonth() {
    var year  = document.getElementById("eyear").value;
    if (isFourDigitYear(year)) {
        var day   = 0;
        var month = selmonth;
        if (month == 11) {
            month = 0;
            year++;
            document.getElementById("eyear").value = year;
        } else { month++; }
            document.getElementById("emonth").value = Months[month];
            document.getElementById("eyear").value = year;            
            selmonth = month;
            displayCalendar(month, year);
        }
}

function setNextYear() {
    var year = document.getElementById("eyear").value;
    if (isFourDigitYear(year)) {
        var day = 0;
        var month = selmonth;
        year++;
        document.getElementById("eyear").value = year;
        displayCalendar(month, year);
    }
}

function displayCalendar(month, year) {
    ResetArea();
month = parseInt(month);
year = parseInt(year);
var i = 0;
var days = getDaysInMonth(month+1,year);
var firstOfMonth = new Date (year, month, 1);
var startingPos = firstOfMonth.getDay();
days += startingPos;
for (i = startingPos; i < days; i++) {
inde = i+1;
inday = i-startingPos+1;
elmnt = "d"+inde;
if (i-startingPos+1 < 10) document.getElementById(elmnt).value += "0";
document.getElementById(elmnt).value += i-startingPos+1;
document.getElementById(elmnt).style.visibility="visible";
if (month==segmonth && year==segyear && inday==segday) document.getElementById(elmnt).style.color="red";
}
}

function getDaysInMonth(month,year)  {
    var days;
    if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)  days=31;
    else if (month==4 || month==6 || month==9 || month==11) days=30;
    else if (month==2)  {
        if (isLeapYear(year)) { days=29; }
        else { days=28; }
    }
    return (days);
}

function isLeapYear (Year) {
    if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) {
        return (true);
    } else { return (false); }
}

function ResetArea(){
   for (i=1; i<43; i++) {
        elmnt="d"+i;
        document.getElementById(elmnt).style.visibility="hidden";
        document.getElementById(elmnt).disabled = false;
        document.getElementById(elmnt).style.color="black";
        document.getElementById(elmnt).value = "";
   }
}

function ClickDay(btnday){
         //slcday = document.getElementById(btnday).value;         
         slcday = document.getElementById(btnday).value;
         outmonth = selmonth+1;
         document.getElementById(polevvoda).value = slcday+".";
         if (outmonth<10) document.getElementById(polevvoda).value += "0";
         document.getElementById(polevvoda).value += outmonth+"."+document.getElementById("eyear").value;
}