var newDayCalendar = null; //\u0413\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0439 \u043E\u0431\u044A\u0435\u043A\u0442 - \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C. \u0422\u0430\u043A \u043A\u0430\u043A \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043E\u0431\u0449\u0438\u043C//\u041E\u0431\u0449\u0438\u0439 \u043C\u0435\u0442\u043E\u0434, \u0441\u043E\u0437\u0434\u0430\u0435\u0442 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439 \u0443\u0437\u0435\u043B \u0438 \u043F\u0440\u0438\u0431\u0430\u0432\u043B\u044F\u0435\u0442 \u0435\u0433\u043E \u043A \u043F\u0435\u0440\u0435\u0434\u0430\u043D\u043D\u043E\u043C\u0443 \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044E \u0438 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0435\u0433\u043Efunction cATN(parNode, appendingValue){    var tNode = document.createTextNode(appendingValue);        return parNode.appendChild(tNode);}//\u041E\u0431\u0449\u0438\u0439 \u043C\u0435\u0442\u043E\u0434, \u0441\u043E\u0437\u0434\u0430\u0435\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u0441 \u0437\u0430\u0434\u0430\u043D\u043D\u044B\u043C \u0438\u043C\u0435\u043D\u0435\u043C (aName) \u0438 \u043F\u0440\u0438\u0431\u0430\u0432\u043B\u044F\u0435\u0442 \u0435\u0433\u043E \u043A \u043F\u0435\u0440\u0435\u0434\u0430\u043D\u043D\u043E\u043C\u0443 \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044E \u0441 \u0437\u0430\u0434\u0430\u043D\u043D\u044B\u043C \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u043C (aValue)function cAAN(parNode, aName, aValue){    var aNode = document.createAttribute(aName);                    aNode.nodeValue = aValue;    parNode.setAttributeNode(aNode);}//\u041E\u0431\u044A\u0435\u043A\u0442 - \u043F\u0430\u043D\u0435\u043B\u044C \u0437\u0430\u0445\u0432\u0430\u0442\u0430//--------------------------------------------------------------//CCapPanel = function(parent){    this.m_destObj = document.createElement("DIV");    this.m_destObj.className = "capture_header";    this.m_destObj.onmouseover = function(){this.style.cursor = "move";};    this.m_destObj.m_parent = this;    this.m_parent = parent; //\u0420\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u043E\u0431\u044A\u0435\u043A\u0442 (\u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C)    this.m_classFamily = "CCalendar";        //\u041C\u0435\u0442\u043E\u0434 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0446\u0435\u043B\u0435\u0432\u043E\u0439 \u043E\u0431\u044A\u0435\u043A\u0442 (DIV)    this.GetDestObj = CCapPanel_GetDestObj;    this.GetParentObj = CCapPanel_GetParentObj;    this.GetFamilyName = CCapPanel_GetFamilyName;        //\u041E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0438.    //\u0412\u044B\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u043F\u0440\u0438 \u043D\u0430\u0436\u0430\u0442\u0438\u0438 \u043C\u044B\u0448\u043A\u043E\u0439 \u043F\u043E \u043F\u0430\u043D\u0435\u043B\u0438 \u0437\u0430\u0445\u0432\u0430\u0442\u0430. \u0424\u0438\u043A\u0441\u0438\u0440\u0443\u0435\u0442 \u043D\u0430\u0447\u0430\u043B\u043E \u0434\u0432\u0438\u0436\u0435\u043D\u0438\u044F \u0438 \u043A\u043E\u043E\u0440\u0434\u0438\u043D\u0430\u0442\u044B \u043C\u044B\u0448\u043A\u0438 \u0432 \u0434\u0430\u043D\u043D\u044B\u0439 \u043C\u043E\u043C\u0435\u043D\u0442    this.CapPanelMDown = CCapPanel_CapPanelMDown;}function CCapPanel_GetFamilyName(){	return this.m_classFamily;}function CCapPanel_GetParentObj(){    return this.m_parent;}function CCapPanel_CapPanelMDown(e){    var ev = e || window.event;        //\u0424\u0438\u043A\u0441\u0438\u0440\u0443\u0435\u043C \u043D\u0430\u0447\u0430\u043B\u043E \u0434\u0432\u0438\u0436\u0435\u043D\u0438\u044F.    //\u0418\u0437 \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u043E\u0431\u044A\u0435\u043A\u0442\u0430 \u0432\u044B\u0437\u0432\u0430\u0432\u0448\u0435\u0433\u043E \u0441\u043E\u0431\u044B\u0442\u0438\u0435 (this - \u044D\u0442\u043E div) \u043F\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u043C \u043A \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u043C\u0443 \u043E\u0431\u044A\u0435\u043A\u0442\u0443 \u043F\u0430\u043D\u0435\u043B\u0438 (this.m_parent),    //\u0430 \u043E\u0442\u0442\u0443\u0434\u0430 \u0443\u0436\u0435 \u0438 \u043A \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044E this.m_parent.GetParentObj()    this.m_parent.GetParentObj().CalendarSetMove(true);        //\u0424\u0438\u043A\u0441\u0438\u0440\u0443\u0435\u043C \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0435 \u043A\u043E\u043E\u0440\u0434\u0438\u043D\u0430\u0442\u044B \u043A\u0443\u0440\u0441\u043E\u0440\u0430    //this.m_parent.GetParentObj().SetBeginCoords(ev.screenX, ev.screenY);    this.m_parent.GetParentObj().SetBeginCoords(ev.clientX, ev.clientY);}function CCapPanel_GetDestObj(){    return this.m_destObj;}//--------------------------------------------------------------////\u041E\u0431\u044A\u0435\u043A\u0442 - \u043F\u0430\u043D\u0435\u043B\u044C \u043F\u043E\u043B\u0435\u0439 \u0432\u044B\u0431\u043E\u0440\u0430 \u0433\u043E\u0434\u0430 \u0438 \u043C\u0435\u0441\u044F\u0446\u0430//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//CSelPanel = function(parent){    this.m_destObj = document.createElement("DIV");    this.m_destObj.className = "date_selector";    this.m_destObj.m_parent = this;    this.selYearObj = document.createElement("SELECT");    this.selMonthObj = document.createElement("SELECT");    this.selYearObj.name = "SelYear";    this.selMonthObj.name = "SelMonth";    this.m_parent = parent; //\u0420\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u043E\u0431\u044A\u0435\u043A\u0442 (\u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C)    this.selYearObj.m_parent = this;    this.selMonthObj.m_parent = this;    this.m_classFamily = "CCalendar";        //\u041C\u0435\u0442\u043E\u0434 \u0437\u0430\u043F\u043E\u043B\u043D\u044F\u0435\u0442 \u043F\u043E\u043B\u044F \u0432\u044B\u0431\u043E\u0440\u0430 \u0433\u043E\u0434\u0430 \u0438 \u043C\u0435\u0441\u044F\u0446\u0430.    //\u041F\u0440\u0438\u043D\u0438\u043C\u0430\u0435\u0442 \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u0443\u044E \u0438 \u043A\u043E\u043D\u0435\u0447\u043D\u0443\u044E \u0434\u0430\u0442\u044B, \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u0440\u043E\u043A.    this.FlushSelFields = CSelPanel_FlushSelFields;        //\u041C\u0435\u0442\u043E\u0434 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0446\u0435\u043B\u0435\u0432\u043E\u0439 \u043E\u0431\u044A\u0435\u043A\u0442 (DIV)    this.GetDestObj = CSelPanel_GetDestObj;    this.GetParentObj = CSelPanel_GetParentObj;    this.GetSelYearObj = CSelPanel_GetSelYearObj;    this.GetSelMonthObj = CSelPanel_GetSelMonthObj;    this.GetFamilyName = CSelPanel_GetFamilyName;        //\u041E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0438.    //\u0412\u044B\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u043F\u0440\u0438 \u0432\u044B\u0431\u043E\u0440\u0435 \u0433\u043E\u0434\u0430 \u0438\u0437 \u0441\u043F\u0438\u0441\u043A\u0430    this.SelPanelYearChange = CSelPanel_SelPanelYearChange;        //\u0412\u044B\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u043F\u0440\u0438 \u0432\u044B\u0431\u043E\u0440\u0435 \u043C\u0435\u0441\u044F\u0446\u0430 \u0438\u0437 \u0441\u043F\u0438\u0441\u043A\u0430    this.SelPanelMonthChange = CSelPanel_SelPanelMonthChange;}function CSelPanel_GetFamilyName(){	return this.m_classFamily;}function CSelPanel_GetSelYearObj(){    return this.selYearObj;}function CSelPanel_GetSelMonthObj(){    return this.selMonthObj;}function CSelPanel_SelPanelYearChange(){    //\u0423\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u043C \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0439 \u0433\u043E\u0434    this.m_parent.GetParentObj().SetSelYear(this.options[this.selectedIndex].value);        //\u041E\u0431\u043D\u043E\u0432\u043B\u044F\u0435\u043C \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u043D\u0443\u044E \u0441\u0435\u0442\u043A\u0443    this.m_parent.GetParentObj().RefreshCalendarGrid();}function CSelPanel_SelPanelMonthChange(){    //\u0423\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u043C \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0439 \u043C\u0435\u0441\u044F\u0446    //this.m_parent.GetParentObj().SetSelMonth(parseInt(this.options[this.selectedIndex].value) - 1);    if(this.options[this.selectedIndex].value.substr(0, 1) == "0")    		this.m_parent.GetParentObj().SetSelMonth(this.options[this.selectedIndex].value.substr(1, this.options[this.selectedIndex].value.length) - 1);    else		this.m_parent.GetParentObj().SetSelMonth(this.options[this.selectedIndex].value - 1);		        //\u041E\u0431\u043D\u043E\u0432\u043B\u044F\u0435\u043C \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u043D\u0443\u044E \u0441\u0435\u0442\u043A\u0443    this.m_parent.GetParentObj().RefreshCalendarGrid();}function CSelPanel_GetParentObj(){    return this.m_parent;}//\u041C\u0435\u0442\u043E\u0434 \u0437\u0430\u043F\u043E\u043B\u043D\u044F\u0435\u0442 \u043F\u043E\u043B\u044F \u0432\u044B\u0431\u043E\u0440\u0430 \u0433\u043E\u0434\u0430 \u0438 \u043C\u0435\u0441\u044F\u0446\u0430 \u0438 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0435\u0442 \u0438\u0445 \u043A \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0439 \u043F\u0430\u043D\u0435\u043B\u0438function CSelPanel_FlushSelFields(dateBegin, dateEnd){    var nowDate = new Date();    var beginYear = parseInt(dateBegin.split(".")[2]);    var endYear = parseInt(dateEnd.split(".")[2]);    var endDateObj = new Date(this.GetParentObj().GetEndYear(), this.GetParentObj().GetEndMonth() - 1, this.GetParentObj().GetEndDate());    var prevYear = endYear - 1;    var optionObj = null;        //\u041F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0435\u043C \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0438    this.selYearObj.onchange = this.SelPanelYearChange;    this.selMonthObj.onchange = this.SelPanelMonthChange;        //\u041F\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u043C \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D \u0433\u043E\u0434\u043E\u0432 \u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u043C \u0432 SELECT    optionObj = document.createElement("OPTION");    optionObj.value = endYear;    optionObj.m_parent = this;    cATN(optionObj, endYear);         this.selYearObj.appendChild(optionObj);             while(prevYear >= beginYear)        {        optionObj = document.createElement("OPTION");        optionObj.value = prevYear;        optionObj.m_parent = this;        cATN(optionObj, prevYear);            this.selYearObj.appendChild(optionObj);            prevYear--;    }        this.m_destObj.appendChild(this.selYearObj);        //\u0417\u0430\u043F\u043E\u043B\u043D\u044F\u0435\u043C \u043C\u0435\u0441\u044F\u0446\u044B    for(var i=0; i<12; i++)    {        optionObj = document.createElement("OPTION");        optionObj.value = i + 1;        optionObj.m_parent = this;                            switch(i)        {            case 0:                if(i == endDateObj.getMonth())                    cAAN(optionObj, "selected", true);                 			if(this.m_parent.GetLanguage() == "RU")           	                cATN(optionObj, "\u042F\u043D\u0432\u0430\u0440\u044C");	          else				cATN(optionObj, "January");				                  break;                                    case 1:                if(i == endDateObj.getMonth())                    cAAN(optionObj, "selected", true);                			if(this.m_parent.GetLanguage() == "RU")            	                cATN(optionObj, "\u0424\u0435\u0432\u0440\u0430\u043B\u044C"); 	          else				cATN(optionObj, "February");                                  break;                                    case 2:                if(i == endDateObj.getMonth())                    cAAN(optionObj, "selected", true);                			 if(this.m_parent.GetLanguage() == "RU")            	                cATN(optionObj, "\u041C\u0430\u0440\u0442");	           else				cATN(optionObj, "March");                                 break;                                    case 3:                if(i == endDateObj.getMonth())                    cAAN(optionObj, "selected", true);                			if(this.m_parent.GetLanguage() == "RU")            	                cATN(optionObj, "\u0410\u043F\u0440\u0435\u043B\u044C");	          else				cATN(optionObj, "April");                                  break;                                    case 4:                if(i == endDateObj.getMonth())                    cAAN(optionObj, "selected", true);                			if(this.m_parent.GetLanguage() == "RU")            	                cATN(optionObj, "\u041C\u0430\u0439");	           else				cATN(optionObj, "May");                                 break;                                    case 5:                if(i == endDateObj.getMonth())                    cAAN(optionObj, "selected", true);                			if(this.m_parent.GetLanguage() == "RU")            	                cATN(optionObj, "\u0418\u044E\u043D\u044C");	          else				cATN(optionObj, "June");                                  break;                                    case 6:                if(i == endDateObj.getMonth())                    cAAN(optionObj, "selected", true);                			if(this.m_parent.GetLanguage() == "RU")            	                cATN(optionObj, "\u0418\u044E\u043B\u044C");	          else 				cATN(optionObj, "July");                                 break;                                    case 7:                if(i == endDateObj.getMonth())                    cAAN(optionObj, "selected", true);                			if(this.m_parent.GetLanguage() == "RU")             	                cATN(optionObj, "\u0410\u0432\u0433\u0443\u0441\u0442");	          else				cATN(optionObj, "August");                                  break;                                    case 8:                if(i == endDateObj.getMonth())                    cAAN(optionObj, "selected", true);                			if(this.m_parent.GetLanguage() == "RU")                	                cATN(optionObj, "\u0421\u0435\u043D\u0442\u044F\u0431\u0440\u044C");	          else				cATN(optionObj, "September");                                  break;                                    case 9:                if(i == endDateObj.getMonth())                    cAAN(optionObj, "selected", true);                			if(this.m_parent.GetLanguage() == "RU")            	                cATN(optionObj, "\u041E\u043A\u0442\u044F\u0431\u0440\u044C");	          else				cATN(optionObj, "October");                                  break;                                    case 10:                if(i == endDateObj.getMonth())                    cAAN(optionObj, "selected", true);                			if(this.m_parent.GetLanguage() == "RU")                        	                cATN(optionObj, "\u041D\u043E\u044F\u0431\u0440\u044C");	          else				cATN(optionObj, "November");                                  break;                                    case 11:                if(i == endDateObj.getMonth())                    cAAN(optionObj, "selected", true);                			if(this.m_parent.GetLanguage() == "RU")            	                cATN(optionObj, "\u0414\u0435\u043A\u0430\u0431\u0440\u044C");	          else				cATN(optionObj, "December");                                  break;        }                            this.selMonthObj.appendChild(optionObj);    }        this.m_destObj.appendChild(this.selMonthObj);}function CSelPanel_GetDestObj(){    return this.m_destObj;}//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!////\u041E\u0431\u044A\u0435\u043A\u0442 - \u044F\u0447\u0435\u0439\u043A\u0430 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u043D\u043E\u0439 \u0441\u0435\u0442\u043A\u0438//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//CCalGridCell = function(cellClassName, cellValue, parent){    this.m_destObj = document.createElement("DIV");    this.m_destObj.className = cellClassName;    this.m_destObj.innerHTML = cellValue;    this.m_parent = parent; //\u0421\u0432\u044F\u0437\u043A\u0430 \u0441 \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u043C \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u043C    this.m_destObj.m_parent = this;    this.m_classFamily = "CCalendar";        //\u041C\u0435\u0442\u043E\u0434\u044B.    //\u0412\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0446\u0435\u043B\u0435\u0432\u043E\u0439 \u043E\u0431\u044A\u0435\u043A\u0442 (DIV)    this.GetDestObj = CCalGridCell_GetDestObj;    this.GetParentObj = CCalGridCell_GetParentObj;    this.SetCellValue = CCalGridCell_SetCellValue;    this.SetCellClass = CCalGridCell_SetCellClass;    this.GetValue = CCalGridCell_GetValue;    this.GetFamilyName = CCalGridCell_GetFamilyName;        //\u041E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0438.    //\u0412\u044B\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u043F\u0440\u0438 \u043A\u043B\u0438\u043A\u0435 \u043F\u043E \u044F\u0447\u0435\u0439\u043A\u0435 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u043D\u043E\u0439 \u0441\u0435\u0442\u043A\u0438, \u0434\u043B\u044F \u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0434\u0430\u0442\u044B, \u043A\u043E\u0442\u043E\u0440\u0443\u044E \u0432\u044B\u0431\u0440\u0430\u043B\u0438    this.CellMClick = CCalGridCell_CellMClick;}function CCalGridCell_GetFamilyName(){	return this.m_classFamily;}function CCalGridCell_GetParentObj(){    return this.m_parent;}function CCalGridCell_GetValue(){    return this.m_destObj.innerHTML;}function CCalGridCell_CellMClick(e){    if(this.m_parent.GetValue() != "" && this.className != "unproc_date_cell")    {        //CCalGridCell.CCalGridRow.CCalendar        this.m_parent.GetParentObj().GetParentObj().SetSelDate(this.m_parent.GetValue());                //\u041E\u0431\u043D\u043E\u0432\u043B\u044F\u0435\u043C \u0434\u0430\u0442\u0443 \u0432 \u043F\u043E\u043B\u0435 - \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u0435 \u0438 \u0440\u0430\u0437\u0440\u0443\u0448\u0430\u0435\u043C \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C        this.m_parent.GetParentObj().GetParentObj().SetDateToDateField();        	  document.body.removeChild(newDayCalendar.GetDestObj());       newDayCalendar = null;    }    }function CCalGridCell_GetDestObj(){    return this.m_destObj;}function CCalGridCell_SetCellValue(cellValue){    this.m_destObj.innerHTML = cellValue;}function CCalGridCell_SetCellClass(cellClassName){    this.m_destObj.className = cellClassName;}//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^////\u041E\u0431\u044A\u0435\u043A\u0442 - \u0441\u0442\u0440\u043E\u043A\u0430 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u043D\u043E\u0439 \u0441\u0435\u0442\u043A\u0438//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//CCalGridRow = function(parent){    this.m_destObj = document.createElement("DIV");    this.m_destObj.className = "row";    this.m_destObj.m_parent = this;    this.m_cellsArr = []; //\u041C\u0430\u0441\u0441\u0438\u0432 \u044F\u0447\u0435\u0435\u043A \u0432 \u0434\u0430\u043D\u043D\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0435    this.m_parent = parent; //\u0420\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u043E\u0431\u044A\u0435\u043A\u0442 (\u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C)    this.m_classFamily = "CCalendar";        //\u041C\u0435\u0442\u043E\u0434\u044B.    //\u0421\u043E\u0437\u0434\u0430\u0435\u0442 \u044F\u0447\u0435\u0439\u043A\u0443 \u0434\u043B\u044F \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u043D\u043E\u0439 \u0441\u0435\u0442\u043A\u0438 \u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442 \u0435\u0435 \u0432 \u043C\u0430\u0441\u0441\u0438\u0432 \u044F\u0447\u0435\u0435\u043A \u0434\u0430\u043D\u043D\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438    this.AppendCell = CCalGridRow_AppendCell;        //\u041C\u0435\u0442\u043E\u0434 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0446\u0435\u043B\u0435\u0432\u043E\u0439 \u043E\u0431\u044A\u0435\u043A\u0442 (DIV)    this.GetDestObj = CCalGridRow_GetDestObj;    this.GetParentObj = CCalGridRow_GetParentObj;    this.GetFamilyName = CCalGridRow_GetFamilyName;}function CCalGridRow_GetFamilyName(){	return this.m_classFamily;}function CCalGridRow_GetParentObj(){    return this.m_parent;}function CCalGridRow_AppendCell(cellClassName, cellValue, appendEvent){    var newCell = new CCalGridCell(cellClassName, cellValue, this);        if(appendEvent)        newCell.GetDestObj().onclick = newCell.CellMClick;        this.m_destObj.appendChild(newCell.GetDestObj());    this.m_cellsArr.push(newCell);}function CCalGridRow_GetDestObj(){    return this.m_destObj;}//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&////\u041E\u0431\u044A\u0435\u043A\u0442, \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C//*************************************************************//CCalendar = function(beginDate, endDate, dateField, lang){    //\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440    this.m_beginYear = beginDate.split(".")[2];    this.m_endYear = endDate.split(".")[2];    this.m_beginMonth = beginDate.split(".")[1];    this.m_endMonth = endDate.split(".")[1];    this.m_beginDate = beginDate.split(".")[0];    this.m_endDate = endDate.split(".")[0];    this.m_capPanel = new CCapPanel(this); //\u041F\u0430\u043D\u0435\u043B\u044C \u0437\u0430\u0445\u0432\u0430\u0442\u0430    this.m_selPanel = new CSelPanel(this); //\u041F\u0430\u043D\u0435\u043B\u044C \u0432\u044B\u0431\u043E\u0440\u0430 \u0433\u043E\u0434\u0430 \u0438 \u043C\u0435\u0441\u044F\u0446\u0430    this.m_dateField = dateField; //\u041F\u043E\u043B\u0435, \u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443    this.m_isCalendarMove = false; //\u041F\u0440\u0438\u0437\u043D\u0430\u043A \u0442\u043E\u0433\u043E \u0434\u0432\u0438\u0433\u0430\u0435\u0442\u0441\u044F \u043B\u0438 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C \u0432 \u0434\u0430\u043D\u043D\u044B\u0439 \u043C\u043E\u043C\u0435\u043D\u0442    this.m_rowsCount = 0;    this.m_calGrid = []; //\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u043D\u0430\u044F \u0441\u0435\u0442\u043A\u0430    this.m_classFamily = "CCalendar";    this.m_lang = lang;        if(newDayCalendar != null)    {        //\u0423\u0434\u0430\u043B\u044F\u0435\u043C \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0438\u0439 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C        document.body.removeChild(newDayCalendar.GetDestObj());        newDayCalendar = null;    }            this.m_destObj = document.createElement("DIV");    this.m_destObj.className = "CCalendar";    this.m_destObj.id = "id_calendar";    this.m_destObj.m_parent = this; //\u0421\u0432\u044F\u0437\u044B\u0432\u0430\u0435\u043C \u043E\u0431\u044A\u0435\u043A\u0442 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F \u0441 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u043C \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F (DIV)    this.m_begin_x = 0; //\u041D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0435 \u043A\u043E\u043E\u0440\u0434\u0438\u043D\u0430\u0442\u044B \u043A\u0443\u0440\u0441\u043E\u0440\u0430    this.m_begin_y = 0;    this.m_selDate = ""; //\u0412\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E;    this.m_selMonth = ""; //\u0412\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0439 \u043C\u0435\u0441\u044F\u0446;    this.m_selYear = ""; //\u0412\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0439 \u0433\u043E\u0434;        document.m_calendar = this; //\u0421\u043E\u0445\u0440\u0430\u043D\u044F\u0435\u043C \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C \u0432 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442, \u0434\u043B\u044F \u043F\u0440\u044F\u043C\u043E\u0433\u043E \u0434\u043E\u0441\u0442\u0443\u043F\u0430        //\u041C\u0435\u0442\u043E\u0434\u044B    this.SetDate = CCalendar_SetDate;    this.InitCalendar = CCalendar_InitCalendar;    this.GetLanguage = CCalendar_GetLanguage;        //\u041C\u0435\u0442\u043E\u0434 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0446\u0435\u043B\u0435\u0432\u043E\u0439 \u043E\u0431\u044A\u0435\u043A\u0442 (DIV)    this.GetDestObj = CCalendar_GetDestObj;        //\u041C\u0435\u0442\u043E\u0434 \u0437\u0430\u043F\u043E\u043B\u043D\u044F\u0435\u0442 \u0441\u0442\u0440\u043E\u043A\u0438 \u0432 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u043D\u043E\u0439 \u0441\u0435\u0442\u043A\u0435    this.FlushCalRows = CCalendar_FlushCalRows;        //\u0424\u0438\u043A\u0441\u0438\u0440\u0443\u0435\u0442 \u043D\u0430\u0447\u0430\u043B\u043E/\u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u0435 \u0434\u0432\u0438\u0436\u0435\u043D\u0438\u044F \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F    this.CalendarSetMove = CCalendar_CalendarSetMove;        //\u0412\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 \u0434\u0432\u0438\u0436\u0435\u043D\u0438\u044F \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F    this.calendarIsMove = CCalendar_calendarIsMove;    this.SetBeginCoords = CCalendar_SetBeginCoords;    this.SetSelDate = CCalendar_SetSelDate;    this.SetSelMonth = CCalendar_SetSelMonth;    this.SetSelYear = CCalendar_SetSelYear;    this.SetDateField = CCalendar_SetDateField;    this.GetSelDate = CCalendar_GetSelDate;    this.GetSelMonth = CCalendar_GetSelMonth;    this.GetSelYear = CCalendar_GetSelYear;    this.GetBeginYear = CCalendar_GetBeginYear;    this.GetEndYear = CCalendar_GetEndYear;    this.GetBeginMonth = CCalendar_GetBeginMonth;    this.GetEndMonth = CCalendar_GetEndMonth;    this.GetBeginDate = CCalendar_GetBeginDate;    this.GetEndDate = CCalendar_GetEndDate;    this.GetBeginX = CCalendar_GetBeginX;    this.GetBeginY = CCalendar_GetBeginY;    this.GetFamilyName = CCalendar_GetFamilyName;    this.RefreshCalendarGrid = CCalendar_RefreshCalendarGrid;    this.SetDateToDateField = CCalendar_SetDateToDateField;    this.HasCalendarElement = CCalendar_HasCalendarElement;        //\u041E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0438.    //\u0412\u044B\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u043A\u0443\u0440\u0441\u043E\u0440\u0430 \u0432 \u043E\u0431\u043B\u0430\u0441\u0442\u044C \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F.    //\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F \u043F\u043E\u0434\u0441\u0432\u0435\u0442\u043A\u0438 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0439 \u044F\u0447\u0435\u0439\u043A\u0438 \u0441 \u0434\u0430\u0442\u043E\u0439    this.FlushDay = CCalendar_FlushDay;        //\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F \u0441\u043D\u044F\u0442\u0438\u044F \u043F\u043E\u0434\u0441\u0432\u0435\u0442\u043A\u0438 \u0441 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0439 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u043D\u043E\u0439 \u044F\u0447\u0435\u0439\u043A\u0438    this.UnFlushDay = CCalendar_UnFlushDay;        //\u0412\u044B\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u043F\u0440\u0438 \u043E\u0442\u043F\u0443\u0441\u043A\u0430\u043D\u0438\u0438 \u043D\u0430\u0436\u0430\u0442\u043E\u0439 \u043A\u043D\u043E\u043F\u043A\u0438 \u043C\u044B\u0448\u043A\u0438. \u0414\u043B\u044F \u043F\u0440\u0435\u043A\u0440\u0430\u0449\u0435\u043D\u0438\u044F \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u044F \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F    this.CalendarMUp = CCalendar_CalendarMUp;        //\u0412\u044B\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u043F\u0440\u0438 \u0434\u0432\u0438\u0436\u0435\u043D\u0438\u0438 \u043A\u0443\u0440\u0441\u043E\u0440\u0430. \u0414\u043B\u044F \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u044F \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F    this.CalendarMMove = CCalendar_CalendarMMove;        //\u0412\u044B\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u043F\u0440\u0438 \u043A\u043B\u0438\u043A\u0435 \u043F\u043E \u043E\u0431\u043B\u0430\u0441\u0442\u0438 \u043D\u0435 \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u044E\u0449\u0435\u0439 \u0441 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u0435\u043C (\u043C\u0438\u043C\u043E \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F). \u0414\u043B\u044F \u0443\u043D\u0438\u0447\u0442\u043E\u0436\u0435\u043D\u0438\u044F \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F.    this.CalendarMClick = CCalendar_CalendarMClick;}function CCalendar_GetLanguage(){	return this.m_lang;}function CCalendar_GetBeginYear(){	return this.m_beginYear;}function CCalendar_GetEndYear(){	return this.m_endYear;}function CCalendar_GetBeginMonth(){	return this.m_beginMonth;}function CCalendar_GetEndMonth(){	return this.m_endMonth;}function CCalendar_GetBeginDate(){	return this.m_beginDate;}function CCalendar_GetEndDate(){	return this.m_endDate;}function CCalendar_GetFamilyName(){	return this.m_classFamily;}function CCalendar_SetDateField(dateField){	this.m_dateField = dateField;}function CCalendar_HasCalendarElement(checkingElem){	var parObj = checkingElem.m_parent;	if(parObj == null)	{		//\u041D\u0435\u0442 \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u0435\u0439 - \u043D\u0435 \u0440\u043E\u0434\u043D\u043E\u0439 \u044D\u043B\u0435\u043C\u0435\u043D\u0442		return false;	}		else	{		//\u041F\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u043C \u0432\u0441\u0435\u0445 \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u0435\u0439 \u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0435\u043C \u043F\u0440\u0438\u043D\u0430\u0434\u043B\u0435\u0436\u043D\u043E\u0441\u0442\u044C \u0438\u0445 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044E		if(parObj.GetFamilyName() == "CCalendar")			return true;		else				return false;	}}function CCalendar_CalendarMClick(e){	var ev = e || window.event;	var clickedObj = ev.srcElement || ev.target;	if(newDayCalendar != null)		if(!newDayCalendar.HasCalendarElement(clickedObj) && (clickedObj.tagName.toLowerCase() != "input" || clickedObj.type.toLowerCase() != "button"))		{			document.body.removeChild(newDayCalendar.GetDestObj());			newDayCalendar = null;		}}function CCalendar_SetDateToDateField(){    /*var resDate = this.m_selDate;    var resMonth = this.m_selMonth;    var resYear = this.m_selYear;        if(parseInt(resDate) <= 9)        this.m_dateField.value = "0" + resDate;    else        this.m_dateField.value = resDate;                if(parseInt(resMonth) <= 9)        this.m_dateField.value += ".0" + (parseInt(resMonth) + 1);    else        this.m_dateField.value += "." + (parseInt(resMonth) + 1);                this.m_dateField.value += "." + resYear;    */    var resDate = this.m_selDate;    var resMonth = this.m_selMonth;    var resYear = this.m_selYear;        if(parseInt(resDate) <= 9)    {        this.m_dateField.value = "0" + resDate;    }        else    {        this.m_dateField.value = resDate;        }                if(parseInt(resMonth) < 9)    {        this.m_dateField.value += ".0" + (resMonth + 1);    }       else    {        this.m_dateField.value += "." + (resMonth + 1);        }                this.m_dateField.value += "." + resYear; }function CCalendar_RefreshCalendarGrid(){	var nowDateObj = new Date();    var beginDateObj = new Date(this.m_beginYear, (this.m_beginMonth.substr(0, 1) == "0" ?  this.m_beginMonth.substr(1, this.m_beginMonth.length) : this.m_beginMonth) - 1, this.m_beginDate); //\u041D\u0430\u0447\u0430\u043B\u044C\u043D\u0430\u044F \u0434\u0430\u0442\u0430    var endDateObj = new Date(this.m_endYear, (this.m_endMonth.substr(0, 1) == "0" ? this.m_endMonth.substr(1, this.m_endMonth.length) : this.m_endMonth) - 1, this.m_endDate); //\u041A\u043E\u043D\u0435\u0447\u043D\u0430\u044F \u0434\u0430\u0442\u0430    var dateObj = new Date(this.m_selYear, this.m_selMonth, 1); //\u0423\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u043C \u0434\u0430\u0442\u0443 \u043F\u043E \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u043C \u0434\u0430\u043D\u043D\u044B\u043C    var curDate = 1;    var curDay = 1;    var beginDay = 0;    var curMonth = dateObj.getMonth();    var nowMonth = nowDateObj.getMonth();    var nowDate = nowDateObj.getDate();    var nowYear = nowDateObj.getFullYear();    //\u041E\u0431\u043D\u043E\u0432\u043B\u044F\u0435\u043C \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u043D\u0443\u044E \u0441\u0435\u0442\u043A\u0443    dateObj.setDate(curDate);                    beginDay = dateObj.getDay();        //\u0422\u0430\u043A \u043A\u0430\u043A \u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A - \u044D\u0442\u043E \u044F\u0447\u0435\u0439\u043A\u0430 \u0441 \u043D\u043E\u043C\u0435\u0440\u043E\u043C 0, \u0442\u043E \u0434\u043B\u044F \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0432\u0438\u044F,    //\u043F\u0440\u0438 \u0442\u0435\u043A\u0443\u0449\u0435\u043C \u0434\u043D\u0435 \u0441 \u043D\u043E\u043C\u0435\u0440\u043E\u043C 0 (\u044D\u0442\u043E \u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435), \u0434\u0435\u043B\u0430\u0435\u043C \u0441\u0434\u0432\u0438\u0433 \u043D\u0430 6 \u0434\u043D\u0435\u0439    if(beginDay == 0)        curDay = -6;            for(var i=0; i<this.m_calGrid.length; i++)    {        for(var j=0; j<this.m_calGrid[i].m_cellsArr.length; j++)        {            //\u041F\u043E\u043A\u0430 \u043D\u0435 \u0432\u044B\u0448\u043B\u0438 \u0438\u0437 \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u043C\u0435\u0441\u044F\u0446\u0430 \u043F\u0440\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u043C \u0447\u0438\u0441\u043B\u0430            if(curMonth == dateObj.getMonth())            {                        if(curDay >= beginDay)                {                	if(dateObj.getTime() >= beginDateObj.getTime() && dateObj.getTime() <= endDateObj.getTime())                	{	                    if(curDate == nowDate && nowMonth == dateObj.getMonth() && nowYear == dateObj.getFullYear())     	               {          	              this.m_calGrid[i].m_cellsArr[j].SetCellClass("cur_date_cell"); //\u041F\u043E\u043F\u0430\u043B\u0438 \u0432 \u0442\u0435\u043A\u0443\u0449\u0435\u0435 \u0447\u0438\u0441\u043B\u043E, \u043E\u0442\u043C\u0435\u0447\u0430\u0435\u043C               	         this.m_calGrid[i].m_cellsArr[j].SetCellValue(curDate);                    	}    	                    else     	               {          	              this.m_calGrid[i].m_cellsArr[j].SetCellClass("unsel_cell");               	         this.m_calGrid[i].m_cellsArr[j].SetCellValue(curDate);                    	}                        }				else					{					this.m_calGrid[i].m_cellsArr[j].SetCellClass("unproc_date_cell");               	     this.m_calGrid[i].m_cellsArr[j].SetCellValue(curDate);				}                                            dateObj.setDate(++curDate);                    }                    else                {                    this.m_calGrid[i].m_cellsArr[j].SetCellClass("unsel_cell");                    this.m_calGrid[i].m_cellsArr[j].SetCellValue("");                }                                            curDay++;            }            else            {                this.m_calGrid[i].m_cellsArr[j].SetCellClass("unsel_cell");                this.m_calGrid[i].m_cellsArr[j].SetCellValue("");            }        }    }}function CCalendar_GetSelYear(){    return this.m_selYear;}function CCalendar_GetSelMonth(){    return this.m_selMonth;}function CCalendar_GetSelDate(){    return this.m_selDate;}function CCalendar_SetSelDate(selDate){    this.m_selDate = selDate;}function CCalendar_SetSelMonth(selMonth){    this.m_selMonth = selMonth;}function CCalendar_SetSelYear(selYear){    this.m_selYear = selYear;}function CCalendar_GetDestObj(){    return this.m_destObj;}function CCalendar_GetBeginX(){    return this.m_begin_x;}function CCalendar_GetBeginY(){    return this.m_begin_y;}function CCalendar_SetBeginCoords(x, y){    this.m_begin_x = x;    this.m_begin_y = y;}function CCalendar_CalendarMMove(e){    var ev = e || window.event;        if(this.m_calendar.calendarIsMove())    {        //\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C \u0437\u0430\u0445\u0432\u0430\u0447\u0435\u043D - \u0434\u0432\u0438\u0433\u0430\u0435\u043C \u0435\u0433\u043E \u0437\u0430 \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u043C        //this.m_calendar.GetDestObj().style.left = (parseInt(this.m_calendar.GetDestObj().style.left) + ev.screenX - this.m_calendar.GetBeginX()) + "px";        //this.m_calendar.GetDestObj().style.top = (parseInt(this.m_calendar.GetDestObj().style.top) + ev.screenY - this.m_calendar.GetBeginY()) + "px";        this.m_calendar.GetDestObj().style.left = (parseInt(this.m_calendar.GetDestObj().style.left) + ev.clientX - this.m_calendar.GetBeginX()) + "px";        this.m_calendar.GetDestObj().style.top = (parseInt(this.m_calendar.GetDestObj().style.top) + ev.clientY - this.m_calendar.GetBeginY()) + "px";                //\u0424\u0438\u043A\u0441\u0438\u0440\u0443\u0435\u043C \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0435 \u043A\u043E\u043E\u0440\u0434\u0438\u043D\u0430\u0442\u044B        //this.m_calendar.SetBeginCoords(ev.screenX, ev.screenY);        this.m_calendar.SetBeginCoords(ev.clientX, ev.clientY);    }}function CCalendar_CalendarMUp(e){    var ev = e || window.event;        //\u0424\u0438\u043A\u0441\u0438\u0440\u0443\u0435\u043C \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0443 \u0434\u0432\u0438\u0436\u0435\u043D\u0438\u044F    this.m_calendar.CalendarSetMove(false);}function CCalendar_calendarIsMove(){    return this.m_isCalendarMove;}function CCalendar_CalendarSetMove(isMove){    this.m_isCalendarMove = isMove;}function CCalendar_FlushDay(e){    var ev = e || window.event;    var clickedObj = ev.srcElement || ev.target;                    if(clickedObj.className == "unsel_cell" && clickedObj.innerHTML != "")        clickedObj.className = "sel_cell";}function CCalendar_UnFlushDay(e){    var ev = e || window.event;    var clickedObj = ev.srcElement || ev.target;                    if(clickedObj.className == "sel_cell")        clickedObj.className = "unsel_cell";}//\u0423\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442 \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0439 \u0438 \u043A\u043E\u043D\u0435\u0447\u043D\u044B\u0439 \u0433\u043E\u0434\u0430function CCalendar_SetDate(beginYear, endYear){    this.m_beginYear = beginYear;    this.m_endYear = endYear;}//\u041F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0435\u0442 \u043F\u0430\u043D\u0435\u043B\u0438 \u043A \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044E.function CCalendar_InitCalendar(e){    var ev = e || window.event;    this.m_destObj.appendChild(this.m_capPanel.GetDestObj());    this.m_selPanel.FlushSelFields("01.01." + this.m_beginYear, "01.01." + this.m_endYear)    this.m_destObj.appendChild(this.m_selPanel.GetDestObj());    this.m_selMonth = this.m_selPanel.GetSelMonthObj().options[this.m_selPanel.GetSelMonthObj().selectedIndex].value - 1;    this.m_selYear = this.m_selPanel.GetSelYearObj().options[this.m_selPanel.GetSelYearObj().selectedIndex].value;    this.m_destObj.style.left = ev.clientX + defScroll().x + "px";    this.m_destObj.style.top = ev.clientY + defScroll().y + "px";    this.FlushCalRows(6, 7); //\u0417\u0430\u043F\u043E\u043B\u043D\u044F\u0435\u043C \u0434\u043D\u044F\u043C\u0438 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u043D\u0443\u044E \u0441\u0435\u0442\u043A\u0443        //\u0426\u0435\u043F\u043B\u044F\u0435\u043C \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0438 \u0441\u043E\u0431\u044B\u0442\u0438\u0439    this.m_destObj.onmouseover = this.FlushDay;    this.m_destObj.onmouseout = this.UnFlushDay;    this.m_capPanel.GetDestObj().onmousedown = this.m_capPanel.CapPanelMDown;        document.onmouseup = this.CalendarMUp;    document.onmousemove = this.CalendarMMove;    document.onclick = this.CalendarMClick;}function CCalendar_FlushCalRows(rowsCount, cellsCount){    var newCalRow = null;    var nowDateObj = new Date();    var beginDateObj = new Date(this.m_beginYear, (this.m_beginMonth.substr(0, 1) == "0" ?  this.m_beginMonth.substr(1, this.m_beginMonth.length) : this.m_beginMonth) - 1, this.m_beginDate); //\u041D\u0430\u0447\u0430\u043B\u044C\u043D\u0430\u044F \u0434\u0430\u0442\u0430    var endDateObj = new Date(this.m_endYear, (this.m_endMonth.substr(0, 1) == "0" ? this.m_endMonth.substr(1, this.m_endMonth.length) : this.m_endMonth) - 1, this.m_endDate); //\u041A\u043E\u043D\u0435\u0447\u043D\u0430\u044F \u0434\u0430\u0442\u0430    var dateObj = new Date(this.m_endYear, (this.m_endMonth.substr(0, 1) == "0" ? this.m_endMonth.substr(1, this.m_endMonth.length) : this.m_endMonth) - 1, 1); //\u0423\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u043C \u0434\u0430\u0442\u0443 \u043F\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u043C\u0443 \u0433\u043E\u0434\u0443    var curDate = 1;    var curDay = 1;    var beginDay = 0;    var curMonth = dateObj.getMonth();    var nowMonth = nowDateObj.getMonth();    var nowDate = nowDateObj.getDate();    var nowYear = nowDateObj.getFullYear();        this.m_rowsCount = rowsCount;        //\u0417\u0430\u043F\u043E\u043B\u043D\u044F\u0435\u043C \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u043D\u043E\u0439 \u0441\u0435\u0442\u043A\u0438 (\u0434\u043D\u0438)    newCalRow = new CCalGridRow(this);            for(var j=0; j<7; j++)    {                switch(j)        {            case 0:            	if(this.GetLanguage() == "RU")	                newCalRow.AppendCell("day_head_cell", "\u041F\u043D", false);	          else				newCalRow.AppendCell("day_head_cell", "Mn", false);                                  break;                                    case 1:            	if(this.GetLanguage() == "RU")	                newCalRow.AppendCell("day_head_cell", "\u0412\u0442", false);	          else				newCalRow.AppendCell("day_head_cell", "Tu", false);                                  break;                                    case 2:            	if(this.GetLanguage() == "RU")	                newCalRow.AppendCell("day_head_cell", "\u0421\u0440", false);	          else				newCalRow.AppendCell("day_head_cell", "Wd", false);                                  break;                                    case 3:            	if(this.GetLanguage() == "RU")	                newCalRow.AppendCell("day_head_cell", "\u0427\u0442", false);	          else				newCalRow.AppendCell("day_head_cell", "Th", false);                                  break;                                    case 4:            	if(this.GetLanguage() == "RU")	                newCalRow.AppendCell("day_head_cell", "\u041F\u0442", false);	          else				newCalRow.AppendCell("day_head_cell", "Fr", false);                                  break;                                    case 5:            	if(this.GetLanguage() == "RU")	                newCalRow.AppendCell("day_head_cell", "\u0421\u0431", false);	           else				newCalRow.AppendCell("day_head_cell", "St", false);                                 break;                                    case 6:            	if(this.GetLanguage() == "RU")	                newCalRow.AppendCell("day_head_cell", "\u0412\u0441", false);	          else				newCalRow.AppendCell("day_head_cell", "Sn", false);                                  break;        }    }            //\u041F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0435\u043C \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044F \u043A \u0441\u0430\u043C\u043E\u043C\u0443 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044E    this.m_destObj.appendChild(newCalRow.GetDestObj());        dateObj.setDate(curDate);                    beginDay = dateObj.getDay();        //\u0422\u0430\u043A \u043A\u0430\u043A \u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A - \u044D\u0442\u043E \u044F\u0447\u0435\u0439\u043A\u0430 \u0441 \u043D\u043E\u043C\u0435\u0440\u043E\u043C 0, \u0442\u043E \u0434\u043B\u044F \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0432\u0438\u044F,    //\u043F\u0440\u0438 \u0442\u0435\u043A\u0443\u0449\u0435\u043C \u0434\u043D\u0435 \u0441 \u043D\u043E\u043C\u0435\u0440\u043E\u043C 0 (\u044D\u0442\u043E \u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435), \u0434\u0435\u043B\u0430\u0435\u043C \u0441\u0434\u0432\u0438\u0433 \u043D\u0430 6 \u0434\u043D\u0435\u0439    if(beginDay == 0)        curDay = -6;        //\u0417\u0430\u043F\u043E\u043B\u043D\u044F\u0435\u043C \u0432\u0441\u0435 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u043D\u044B\u0435 \u044F\u0447\u0435\u0439\u043A\u0438.    for(var i=0; i<rowsCount; i++)    {        newCalRow = new CCalGridRow(this);            for(var j=0; j<7; j++)        {            //\u041F\u043E\u043A\u0430 \u043D\u0435 \u0432\u044B\u0448\u043B\u0438 \u0438\u0437 \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u043C\u0435\u0441\u044F\u0446\u0430 \u043F\u0440\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u043C \u0447\u0438\u0441\u043B\u0430            if(curMonth == dateObj.getMonth())            {                                        if(curDay >= beginDay)                {                	if(dateObj.getTime() >= beginDateObj.getTime() && dateObj.getTime() <= endDateObj.getTime())                	{	                    if(curDate == nowDate && nowMonth == dateObj.getMonth() && nowYear == dateObj.getFullYear())     	                   newCalRow.AppendCell("cur_date_cell", curDate, true); //\u041F\u043E\u043F\u0430\u043B\u0438 \u0432 \u0442\u0435\u043A\u0443\u0449\u0435\u0435 \u0447\u0438\u0441\u043B\u043E, \u043E\u0442\u043C\u0435\u0447\u0430\u0435\u043C          	          else               	         newCalRow.AppendCell("unsel_cell", curDate, true);               	}                        	else               	{						newCalRow.AppendCell("unproc_date_cell", curDate, true);         				}		                                            dateObj.setDate(++curDate);                    }                    else                {                    newCalRow.AppendCell("unsel_cell", "", true);                }                                            curDay++;            }            else            {                newCalRow.AppendCell("unsel_cell", "", true);            }        }                //\u041F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0435\u043C \u043E\u0447\u0435\u0440\u0435\u0434\u043D\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u043D\u043E\u0439 \u0441\u0435\u0442\u043A\u0438 \u043A \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044E \u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043C \u0435\u0451 \u0432 \u043C\u0430\u0441\u0441\u0438\u0432        this.m_destObj.appendChild(newCalRow.GetDestObj());        this.m_calGrid.push(newCalRow);    }}//*************************************************************////\u041E\u0431\u0435\u043A\u0442 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0439 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043D\u044B\u0439 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u043E\u043C \u0434\u0430\u0442. \u041D\u0430\u0441\u043B\u0435\u0434\u0443\u0435\u0442\u0441\u044F \u043E\u0442 \u043E\u0431\u044A\u0435\u043A\u0442\u0430 CCalendar//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@////CDateRangeCalendar = function(dateBegin, dateEnd, dateField)//{	//\u0423\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u043C \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445 \u043C\u0435\u0442\u043E\u0434\u043E\u0432 CCalendar//	this.SetDate(dateBegin.split(".")[2], dateEnd.split(".")[2]);//	this.SetDateField(dateField);//}//\u041D\u0430\u0441\u043B\u0435\u0434\u0443\u0435\u043C\u0441\u044F \u043E\u0442 \u0433\u043B\u0430\u0432\u043D\u043E\u0433\u043E \u043E\u0431\u044A\u0435\u043A\u0442\u0430 CCalendar//CDateRangeCalendar.prototype = new CCalendar();//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@//
