﻿var myMonth = new Array( );
	myMonth[0] = "январь";
    myMonth[1] = "февраль";
    myMonth[2] = "март";
    myMonth[3] = "апрель";
    myMonth[4] = "май";
    myMonth[5] = "июнь";
    myMonth[6] = "июль";
    myMonth[7] = "август";  
    myMonth[8] = "сентябрь";
    myMonth[9] = "октябрь";
    myMonth[10] = "ноябрь";
    myMonth[11] = "декабрь"; 
	
var myMonthNum = new Array( );
	myMonthNum[0] = "01";
    myMonthNum[1] = "02";
    myMonthNum[2] = "03";
    myMonthNum[3] = "04";
    myMonthNum[4] = "05";
    myMonthNum[5] = "06";
    myMonthNum[6] = "07";
    myMonthNum[7] = "08";  
    myMonthNum[8] = "09";
    myMonthNum[9] = "10";
    myMonthNum[10] = "11";
    myMonthNum[11] = "12"; 


function getPosition(obj) {
  var t=$(obj);
  var x=0, y=0;
  while(t) {
    x+=t.offsetLeft;
    y+=t.offsetTop;
    t=t.offsetParent;
  }
  return {x: x, y:y};  //возвращаем обьект с координатами x и y
}	
	
function getFirstDay(theYear, theMonth){
    var firstDate = new Date(this.year,this.month,1);
    return firstDate.getDay( );
}

function getMonthLen(theYear, theMonth) {
    var nextMonth = new Date(this.year, this.month + 1, 1);
    nextMonth.setHours(nextMonth.getHours( ) - 3);
    return nextMonth.getDate( );
}

function viewToggle2(tt) {
	eval($(tt).id+"JSvar"+".populateTable()");
	var idForBlock=$(tt).id + '_calendar';
	var t = $(idForBlock);	
        if (t.style.display == "none") {
			t.style.display = "block";
        } else {
            t.style.display = "none";
        }
}

function changeMonth(delta) {
	this.month=delta+parseInt(this.month);
	if (this.month>11) {
		this.month=0;
		this.year=1+parseInt(this.year);
	}
	if (this.month<0) {
		this.month=11;
		this.year=parseInt(this.year)-1;
	}
	var innerCurMonth=$(this.name+'_curmonthyear');
	innerCurMonth.innerHTML = myMonth[this.month] + " " + this.year;
	this.populateTable();
}

function populateTable() {
	var tableBody = this.name+'_tableBody';
    var theMonth = this.month;
    var theYear = this.year;
    var firstDay = this.getFirstDay(theYear, theMonth);
    var howMany = this.getMonthLen(theYear, theMonth);
    var today = new Date( );
    var dayCounter = 1;
    var TBody = $(this.name+'_tableBody');
    while (TBody.rows.length > 0) {
        TBody.deleteRow(0);
    }
    var newR, newC, dateNum;
    var done=false;
    while (!done) {
        newR = TBody.insertRow(TBody.rows.length);
        if (newR) {
            for (var i = 0; i < 7; i++) {
                newC = newR.insertCell(newR.cells.length);
                if (TBody.rows.length == 1 && i < firstDay) {
                    newC.innerHTML = "&nbsp;";
                    continue;
                }
                if (dayCounter == howMany) {
                    done = true;
                }
                if (dayCounter <= howMany) {
                    if (parseInt(theYear) == parseInt($(this.name+"_thisyear").value) &&
                        parseInt(theMonth)== parseInt($(this.name+'_thismonth').value) &&
                        parseInt(dayCounter) == parseInt($(this.name+'_thisday').value)) {
                        newC.id = "today";
                    }
					newC.innerHTML = "<a href='#' onclick='"+this.varname+".chooseDate("+dayCounter+", " + theMonth + ", " + theYear +");return false;'>" + dayCounter + "</a>";
						
                     dayCounter++;
               } else {
                    newC.innerHTML = "&nbsp;";
                }
            }
        } else {
            done = true;
        }
    }
}

function chooseDate(date, month, year) {
	var curInput = this.name;
	$(this.name+'_thisday').value=date;
	$(this.name+'_thismonth').value=month;
	$(this.name+'_thisyear').value=year;
    var monthNum=myMonthNum[month];
    if(date<10) {date='0'+date;}
	$(this.name).value=date + '.' + monthNum + '.' + year;
	this.populateTable();
	viewToggle2(this.name);
    return false;
} 

function ifdCalendar(name) {
   this.name = name;
   this.varname = name+"JSvar";
   var curdate=$(this.name).value;
   var dateArr = curdate.split(".");
   this.year = parseInt(dateArr[2]);
   this.month = parseInt(dateArr[1])-1;
   this.date = parseInt(dateArr[0]);
   var today = new Date();
   	if (this.year=="0") {
		this.year=today.getFullYear();
	}
	if (this.month=="-1") {
		this.month=today.getMonth();
	}
	if (this.date=="0") {
		this.date=today.getDate();
	}
	
   new Insertion.After(this.name, '<div id="'+this.name+'_calendar" class="dropcal" style="display: none;"><input name="'+this.name+'_thisyear" id="'+this.name+'_thisyear" value="'+this.year+'" type="hidden"><input name="'+this.name+'_thismonth" id="'+this.name+'_thismonth" value="'+this.month+'" type="hidden"><input name="'+this.name+'_thisday" id="'+this.name+'_thisday" value="'+this.date+'" type="hidden"><table border=0 cellspacing=1><tr><th style="background: #FF6347;">вс</th><th>пн</th><th>вт</th><th>ср</th><th>чт</th><th>пт</th><th style="background: #FF6347;">сб</th></tr><tbody id="'+this.name+'_tableBody"></tbody><tr><td><a href="#" onclick="'+this.varname+'.changeMonth(-1);return false;"> << </a></td><td colspan="5" id="'+this.name+'_curmonthyear">'+myMonth[this.month]+' '+this.year+'</td><td><a href="#" onclick="'+this.varname+'.changeMonth(1);return false;"> >> </a></td></tr></table></div>');
   this.getFirstDay = getFirstDay;
   this.getMonthLen = getMonthLen;
   this.populateTable = populateTable;
   this.chooseDate = chooseDate;
   this.changeMonth=changeMonth;
   var pos = getPosition(this.name);
   $(this.name+'_calendar').style.top = pos.y+$(this.name).offsetHeight+"px";
   $(this.name+'_calendar').style.left = pos.x+"px";
   //this.populateTable();
}