﻿var dbdate = new Array (31,28,31,30,31,30,31,31,30,31,30,31);
var dbmonth = new Array ('Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь');
var year,month,curr_year,curr_month,curr_day;
var field;

function InitMonth(){
    var list=$('days_list');
    while (list.hasChildNodes()) list.removeChild(list.firstChild);
    
    var d = new Date();
    d.setUTCDate (1);
    d.setUTCMonth (month);
    d.setUTCFullYear (year);
    
    $('calendar_title').innerHTML=dbmonth[month]+' '+year;
    
    if (Math.round(year / 4) == (year / 4)) dbdate[1] = 29;
    else dbdate[1] = 28;	

    var c_day=d.getUTCDay();
    var prev_month=(month==0?31:dbdate[month-1]);
    for (i = 2 - c_day, j=0; i <= dbdate[month] || (j%7); i++,j++) {
        var link='';    
        if(i>=1 && i<=dbdate[month]){
            link='<a href="javascript:void(0);" onclick="javascript:hideCalendar(),myCalendarSetValue('+i+');"'+(month==curr_month && year==curr_year && i==curr_day ? 'class="cur"' : '')+'>'+i+'</a>';
        }else link='<a href="javascript:void(0);" onclick="javascript:hideCalendar();" class="inact">'+(i<=0?i+prev_month:i-dbdate[month])+'</a>';
        
        list.innerHTML+=link;                
    }
    list.innerHTML+='<br class="clear" /><!--[if IE]><br class="clear" /><![endif]-->';
}
function ChangeMonth(add){
    month+=add;
    if(month<0) month=11,year--;
    if(month>=12) month=0,year++;
    InitMonth();
}
function myCalendarSetValue(day){$(field).value=day+'.'+(month+1)+'.'+year;}
function MyInit(tb){
    field=tb;
    var curr_val=$(tb).value;
    var num_notdig=0,num_points=0;
    for(i=0;i<curr_val.length;i++)
        if(curr_val.charAt(i)=='.') num_points++;
        else if(!(curr_val.charAt(i)>='0' && curr_val.charAt(i)<='9')) num_notdig++;
   
    if(num_notdig==0 && num_points==2){
        num_points=0;
        month=year=curr_day=0;
        for(i=0;i<curr_val.length;i++)
            if(curr_val.charAt(i)=='.') num_points++;
            else{
                if(num_points==0) curr_day=curr_day*10+(curr_val.charAt(i)-'0');
                if(num_points==1) month=month*10+(curr_val.charAt(i)-'0');
                if(num_points==2) year=year*10+(curr_val.charAt(i)-'0');                    
            }    
        month--;        
        curr_year=year,curr_month=month;    
    }else{
        curr_year=year=(new Date()).getUTCFullYear();
        curr_month=month=(new Date()).getUTCMonth();
        curr_day=(new Date()).getUTCDate();
    }   
    InitMonth();
}
