(function(){var C=YAHOO.util.Dom;var A=YAHOO.util.Event;var B=YAHOO.util.Element;var D=SODON.util.DateMath;SODON.widget.Calendar=function(G,E,F){this.init.apply(this,arguments)};SODON.widget.Calendar.cfg=function(E){SODON.widget.Calendar.cfg.superclass.constructor.apply(this,arguments)};YAHOO.extend(SODON.widget.Calendar.cfg,SODON.util.Config,{_DEFAULT_CONFIG:{TITLE:"Календарь",CURRENT_FORMAT:null,SELECTED_DATE:null,CURRENT_DATE:null,MIN_DATE:new Date(1920,0,1,0,0,0,0),MAX_DATE:new Date(2020,0,1,0,0,0,0),TODAY:null,SHOW_TITLE:false,SHOW_CLOSEBUTTON:false,SHOW_YEARMONTH:true,SHOW_WEEKDAYS:true,SHOW_DAYS:true,SHOW_SELECTBUTTON:false,SHOW_CANCELBUTTON:false,CLOSEBUTTON_CLICK:null,PREVMONTHBUTTON_CLICK:null,NEXTMONTHBUTTON_CLICK:null,DAY_CLICK:null,SELECTBUTTON_CLICK:null,CANCELBUTTON_CLICK:null,POPUPBUTTON_CLICK:null,MONTHS_SHORT:["1-р сар","2-р сар","3-р сар","4-р сар","5-р сар","6-р сар","7-р сар","8-р сар","9-р сар","10-р сар","11-р сар","12-р сар"],MONTHS_LONG:["Нэгдүгээр сар","Хоёрдугаар сар","Гуравдугаар сар","Дөрөвдүгээр сар","Тавдугаар сар","Зургадугаар сар","Долоодугаар сар","Наймдугаар сар","Есдүгээр сар","Аравдугаар сар","Арваннэгдүгээр сар","Арванхоёрдугаар сар"],CURRENT_MONTHS:null,WEEKDAYS_1CHAR:["Д","М","Л","П","Б","Б","Н"],WEEKDAYS_SHORT:["Да","Мя","Лх","Пү","Ба","Бя","Ня"],WEEKDAYS_MEDIUM:["Дав","Мяг","Лха","Пүр","Баа","Бям","Ням"],WEEKDAYS_LONG:["Даваа","Мягмар","Лхагва","Пүрэв","Баасан","Бямба","Ням"],CURRENT_WEEKDAYS:null,UNIQUE_ID:null,CLASSNAME_ID:null,POPUPBUTTON:null,ISDRAG:true,POSITION:{x:60,y:25},OUTPUT:null},setupConfig:function(){this._DEFAULT_CONFIG.CURRENT_FORMAT=SODON.widget.Calendar.cfg._CONSTANT.FORMAT_MON_MIDDLELINE;this._DEFAULT_CONFIG.CURRENT_DATE=D.clearTime(new Date());this._DEFAULT_CONFIG.TODAY=D.clearTime(new Date());this._DEFAULT_CONFIG.CURRENT_MONTHS=this._DEFAULT_CONFIG.MONTHS_SHORT;this._DEFAULT_CONFIG.CURRENT_WEEKDAYS=this._DEFAULT_CONFIG.WEEKDAYS_SHORT;var E;for(E in this._DEFAULT_CONFIG){this.owner.Config[E]=this._DEFAULT_CONFIG[E]}}});SODON.widget.Calendar.cfg._CONSTANT={FORMAT_MON_MIDDLELINE:"yyyy-mm-dd",FORMAT_ENG_MIDDLELINE:"mm-dd-yyyy",FORMAT_MON_SLASH:"yyyy/mm/dd",FORMAT_ENG_SLASH:"mm/dd/yyyy",FORMAT_MON_SHORT:"mm-dd",FORMAT_ENG_SHORT:"mm/dd"};SODON.widget.Calendar.prototype={id:null,oContainer:null,Config:null,_parseArgs:function(F){var E={id:null,container:null,config:null};if(F&&F.length&&F.length>0){switch(F.length){case 1:E.id=null;E.container=F[0];E.config=null;break;case 2:if(YAHOO.lang.isObject(F[1])&&!F[1].tagName&&!(F[1] instanceof String)){E.id=null;E.container=F[0];E.config=F[1]}else{E.id=F[0];E.container=F[1];E.config=null}break;default:E.id=F[0];E.container=F[1];E.config=F[2];break}}else{}return E},init:function(H,F,G){var E=this._parseArgs(arguments);H=E.id;F=E.container;G=E.config;this.oContainer=C.get(F);this.id=H;this.Config={};this.cfg=new SODON.widget.Calendar.cfg(this);this.cfg.setupConfig();if(G){this.cfg.setConfig(G)}C.addClass(this.oContainer,this.getClassNameId()+"cal-container")},render:function(){C.setStyle(this.oContainer,"display","");var E="";if(this.cfg.get("SHOW_TITLE")||this.cfg.get("SHOW_CLOSEBUTTON")){E+='<div id="'+this.getUniqueId()+'head" class="'+this.getClassNameId()+'cal-head">';if(this.cfg.get("SHOW_TITLE")){E+="<h1>"+this.cfg.get("TITLE")+"</h1>"}if(this.cfg.get("SHOW_CLOSEBUTTON")){E+='<a href="javascript:void(0)" onclick="'+this.id+'.closeCalendar(); return false;"></a>'}E+="</div>"}E+='<div class="'+this.getClassNameId()+'cal-body">';if(this.cfg.get("SHOW_YEARMONTH")){E+=this.renderYearMonth()}if(this.cfg.get("SHOW_WEEKDAYS")){E+=this.renderWeekDays()}if(this.cfg.get("SHOW_DAYS")){E+=this.renderDays()}E+="</div>";if(this.cfg.get("SHOW_SELECTBUTTON")||this.cfg.get("SHOW_CANCELBUTTON")){E+=this.renderFoot()}this.oContainer.innerHTML=E;this.initEvents()},renderYearMonth:function(){var E="";E+='<div class="'+this.getClassNameId()+'cal-yearmonth">';E+='<div class="'+this.getClassNameId()+'cal-yearmonth-content">';E+='<input id="'+this.getUniqueId()+'year" type="text" value="'+this.cfg.get("CURRENT_DATE").getFullYear()+'" />';E+='<span class="prevnext"><em id="'+this.getUniqueId()+'year-next" class="next"></em><em id="'+this.getUniqueId()+'year-prev" class="prev"></em></span>';E+="<span> оны </span>";E+='<select id="'+this.getUniqueId()+'month">';for(i=0;i<12;i++){if(this.cfg.get("CURRENT_DATE").getMonth()==i){E+='<option value="'+i+'" selected="selected">'+this.cfg.get("CURRENT_MONTHS")[i]+"</option>"}else{E+='<option value="'+i+'">'+this.cfg.get("CURRENT_MONTHS")[i]+"</option>"}}E+="</select>";E+="</div>";E+="</div>";return E},renderWeekDays:function(){var F="";F+='<div class="'+this.getClassNameId()+'cal-weekdays">';F+='<div class="'+this.getClassNameId()+'cal-weekdays-content">';var E=0;while(E<this.cfg.get("CURRENT_WEEKDAYS").length){F+='<div class="'+this.getClassNameId()+'cal-weekdays-day"><em>'+this.cfg.get("CURRENT_WEEKDAYS")[E]+"</em></div>";E++}F+="</div>";F+="</div>";return F},renderDays:function(){var F="",G,H,I;F+='<div class="'+this.getClassNameId()+'cal-days">';F+='<div class="'+this.getClassNameId()+'cal-days-content">';G=D.findMonthStart(this.cfg.get("CURRENT_DATE"));H=D.findMonthEnd(this.cfg.get("CURRENT_DATE"));I=this.getWorkingDateStart();var E=0;while(E<42){if(D.before(I,G)||D.after(I,H)){F+='<div class="'+this.getClassNameId()+'cal-days-other"><a id="'+this.getUniqueId()+"day-"+I.getMonth()+I.getDate()+'" href="#">'+SODON.util.Math.fixNumber(I.getDate())+"</a></div>"}else{if(D.equals(I,this.cfg.get("TODAY"))){F+='<div class="'+this.getClassNameId()+'cal-days-today"><a id="'+this.getUniqueId()+"day-"+I.getMonth()+I.getDate()+'" href="#">'+SODON.util.Math.fixNumber(I.getDate())+"</a></div>"}else{if(this.cfg.get("SELECTED_DATE")&&D.equals(I,this.cfg.get("SELECTED_DATE"))){F+='<div class="'+this.getClassNameId()+'cal-days-day-s"><a id="'+this.getUniqueId()+"day-"+I.getMonth()+I.getDate()+'" href="#">'+SODON.util.Math.fixNumber(I.getDate())+"</a></div>"}else{F+='<div class="'+this.getClassNameId()+'cal-days-day"><a id="'+this.getUniqueId()+"day-"+I.getMonth()+I.getDate()+'" href="#">'+SODON.util.Math.fixNumber(I.getDate())+"</a></div>"}}}I=D.add(I,D.DAY,1);E++}F+="</div>";F+="</div>";return F},renderFoot:function(){var E="";E+='<div class="'+this.getClassNameId()+'cal-foot">';if(this.cfg.get("SHOW_SELECTBUTTON")){E+='<input id="'+this.getUniqueId()+'cal-selectbutton" type="button" value="Сонгох" class="'+this.getClassNameId()+'cal-selectbutton" />'}if(this.cfg.get("SHOW_CANCELBUTTON")){E+='<input id="'+this.getUniqueId()+'cal-cancelbutton" type="button" value="Болих" class="'+this.getClassNameId()+'cal-cancelbutton" />'}E+="</div>";return E},initEvents:function(){var G=this;if(this.cfg.get("SHOW_CLOSEBUTTON")){A.on(this.getUniqueId()+"cal-closebutton","click",function(K){G.closeCalendar()})}if(this.cfg.get("SHOW_YEARMONTH")){A.on(this.getUniqueId()+"year-next","click",function(K){G.nextYear()});A.on(this.getUniqueId()+"year-prev","click",function(K){G.prevYear()});A.on(this.getUniqueId()+"month","change",function(K){G.cfg.get("CURRENT_DATE").setMonth(parseInt(this.value));G.render()})}if(this.cfg.get("SHOW_DAYS")){var J;J=this.getWorkingDateStart();var H=0;while(H<42){var I=function(K){G.selectThisDay(this.date);G.print2Output()};if(this.cfg.get("DAY_CLICK")!=null){I=this.cfg.get("DAY_CLICK")}A.on(this.getUniqueId()+"day-"+J.getMonth()+J.getDate(),"click",I,this,{date:J});J=D.add(J,D.DAY,1);H++}}if(this.cfg.get("SHOW_SELECTBUTTON")){var F=function(K){G.print2Output();G.closeCalendar()};if(this.cfg.get("SELECTBUTTON_CLICK")!=null){F=this.cfg.get("SELECTBUTTON_CLICK")}A.on(this.getUniqueId()+"cal-selectbutton","click",F,this)}if(this.cfg.get("SHOW_CANCELBUTTON")){var E=function(K){G.clearOutput();G.closeCalendar()};if(this.cfg.get("SELECTBUTTON_CLICK")!=null){E=this.cfg.get("CANCELBUTTON_CLICK")}A.on(this.getUniqueId()+"cal-cancelbutton","click",E,this)}},nextYear:function(){var E=D.add(this.cfg.get("CURRENT_DATE"),D.YEAR,1);this.cfg.set("CURRENT_DATE",E);this.render()},prevYear:function(){var E=D.subtract(this.cfg.get("CURRENT_DATE"),D.YEAR,1);this.cfg.set("CURRENT_DATE",E);this.render()},nextMonth:function(){var E=D.add(this.cfg.get("CURRENT_DATE"),D.MONTH,1);this.cfg.set("CURRENT_DATE",E);this.render()},prevMonth:function(){var E=D.subtract(this.cfg.get("CURRENT_DATE"),D.MONTH,1);this.cfg.set("CURRENT_DATE",E);this.render()},selectThisDay:function(E){var I,J,G,H;J=this.getWorkingDateStart();G=D.findMonthStart(this.cfg.get("CURRENT_DATE"));H=D.findMonthEnd(this.cfg.get("CURRENT_DATE"));var F=0;while(F<42){I=C.get(this.getUniqueId()+"day-"+J.getMonth()+J.getDate());if(C.hasClass(I.parentNode,this.getClassNameId()+"cal-days-day-s")){C.removeClass(I.parentNode,this.getClassNameId()+"cal-days-day-s");if(D.before(J,G)||D.after(J,H)){C.addClass(I.parentNode,this.getClassNameId()+"cal-days-other")}else{if(D.equals(J,this.cfg.get("TODAY"))){C.addClass(I.parentNode,this.getClassNameId()+"cal-days-today")}else{C.addClass(I.parentNode,this.getClassNameId()+"cal-days-day")}}}J=D.add(J,D.DAY,1);F++}this.cfg.set("SELECTED_DATE",E);I=C.get(this.getUniqueId()+"day-"+E.getMonth()+E.getDate());C.removeClass(I.parentNode,this.getClassNameId()+"cal-days-day");C.removeClass(I.parentNode,this.getClassNameId()+"cal-days-other");C.removeClass(I.parentNode,this.getClassNameId()+"cal-days-today");C.addClass(I.parentNode,this.getClassNameId()+"cal-days-day-s")},getClassNameId:function(){if(this.cfg.get("CLASSNAME_ID")!=null){return this.cfg.get("CLASSNAME_ID")+"-"}return""},getUniqueId:function(){if(this.cfg.get("UNIQUE_ID")!=null){return this.cfg.get("UNIQUE_ID")+"-"}else{return this.oContainer.id+"-"}},getDateByFormat:function(E){if(this.cfg.get("CURRENT_FORMAT")==SODON.widget.Calendar.cfg._CONSTANT.FORMAT_MON_MIDDLELINE){return E.getFullYear()+"-"+SODON.util.Math.fixNumber((E.getMonth()+1))+"-"+SODON.util.Math.fixNumber((E.getDate()))}else{if(this.cfg.get("CURRENT_FORMAT")==SODON.widget.Calendar.cfg._CONSTANT.FORMAT_ENG_MIDDLELINE){return SODON.util.Math.fixNumber((E.getMonth()+1))+"-"+SODON.util.Math.fixNumber((E.getDate()))+"-"+E.getFullYear()}else{if(this.cfg.get("CURRENT_FORMAT")==SODON.widget.Calendar.cfg._CONSTANT.FORMAT_MON_SLASH){return E.getFullYear()+"/"+SODON.util.Math.fixNumber((E.getMonth()+1))+"/"+SODON.util.Math.fixNumber((E.getDate()))}else{if(this.cfg.get("CURRENT_FORMAT")==SODON.widget.Calendar.cfg._CONSTANT.FORMAT_ENG_SLASH){return SODON.util.Math.fixNumber((E.getMonth()+1))+"/"+SODON.util.Math.fixNumber((E.getDate()))+"/"+E.getFullYear()}else{if(this.cfg.get("CURRENT_FORMAT")==SODON.widget.Calendar.cfg._CONSTANT.FORMAT_MON_SHORT){return SODON.util.Math.fixNumber((E.getMonth()+1))+"-"+SODON.util.Math.fixNumber((E.getDate()))}else{if(this.cfg.get("CURRENT_FORMAT")==SODON.widget.Calendar.cfg._CONSTANT.FORMAT_ENG_SHORT){return SODON.util.Math.fixNumber((E.getMonth()+1))+"/"+SODON.util.Math.fixNumber((E.getDate()))}}}}}}},closeCalendar:function(){C.setStyle(this.oContainer,"display","none");this.oContainer.innerHTML=""},print2Output:function(){if(this.cfg.get("SELECTED_DATE")!=null){var E=C.get(this.cfg.get("OUTPUT"));E.value=this.getDateByFormat(this.cfg.get("SELECTED_DATE"))}},clearOutput:function(){var E=C.get(this.cfg.get("OUTPUT"));E.value=""},getWorkingDateStart:function(){var E,F;E=D.findMonthStart(this.cfg.get("CURRENT_DATE"));F=D.findMonthStart(this.cfg.get("CURRENT_DATE")).getDay();if(F==0){F=7}return D.subtract(E,D.DAY,(F-1))}};SODON.widget.CalendarPopup=function(G,E,F){this.init.apply(this,arguments)};YAHOO.extend(SODON.widget.CalendarPopup,SODON.widget.Calendar,{init:function(L,F,H){var G=this;var E=this._parseArgs(arguments);L=E.id;F=E.container;H=E.config;var K=document.createElement("div");K.id=F;C.insertBefore(K,C.getFirstChild(document.getElementsByTagName("body")[0]));this.oContainer=K;this.id=L;this.Config={};this.cfg=new SODON.widget.Calendar.cfg(this);this.cfg.setupConfig();if(H){this.cfg.setConfig(H)}this.cfg.set("SHOW_TITLE",H.SHOW_TITLE===undefined?true:H.SHOW_TITLE);this.cfg.set("SHOW_CLOSEBUTTON",H.SHOW_CLOSEBUTTON===undefined?true:H.SHOW_TITLE);this.cfg.set("SHOW_SELECTBUTTON",H.SHOW_SELECTBUTTON===undefined?true:H.SHOW_TITLE);this.cfg.set("SHOW_CANCELBUTTON",H.SHOW_CANCELBUTTON===undefined?true:H.SHOW_TITLE);if(this.cfg.get("POPUPBUTTON")==null){this.cfg.set("POPUPBUTTON",this.getUniqueId()+"cal-popupbutton")}var I=C.get(this.cfg.get("POPUPBUTTON"));C.addClass(this.oContainer,this.getClassNameId()+"cal-container");C.addClass(this.oContainer,this.getClassNameId()+"cal-container-popup");C.setStyle(this.oContainer,"display","none");C.setStyle(this.oContainer,"position","absolute");C.setStyle(this.oContainer,"left",(C.getX(I)+this.cfg.get("POSITION")["x"])+"px");C.setStyle(this.oContainer,"top",(C.getY(I)+this.cfg.get("POSITION")["y"])+"px");var J=function(M){G.render();G.setDrag()};if(this.cfg.get("POPUPBUTTON_CLICK")!=null){J=this.cfg.get("POPUPBUTTON_CLICK")}A.on(I,"click",J)},setDrag:function(){if(this.cfg.get("ISDRAG")){var F=this.getUniqueId()+"head";var E=new YAHOO.util.DD(this.oContainer);E.setHandleElId(F);C.setStyle(F,"cursor","move")}}})})();