function _calendar(_obj, _callBG) {var obj = $(_obj);var calendar = $("#calendar");var calendarBG = $("#calendarBG");var arrVal = obj.val().split("-");var yy, mm, dd;function _setCalendar(_yy, _mm, _dd, _function) {var prevYY, prevMM, nextYY, nextMM;var nextDD = 1, dd = 1;var lastDDs = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];if(((_yy % 4 == 0) && (_yy % 100 != 0)) || (_yy % 400 == 0)) {lastDDs[1] = 29;}var weekNMs = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];var firstDD = new Date(_yy, _mm - 1, 1);var firstWK = firstDD.getDay();var lastDD = lastDDs[_mm - 1];var p, a, span, i, table, colgroup, col, thead, tbody, tr, th, td, ddVal, wd, pd;if(calendar[0]) {calendar[0].innerHTML = "";}switch(eval(_mm)) {case 1 :prevYY = eval(_yy) - 1;prevMM = 12;nextYY = eval(_yy);nextMM = eval(_mm) + 1;break;case 12 :prevYY = eval(_yy);prevMM = eval(_mm) - 1;nextYY = eval(_yy) + 1;nextMM = 1;break;default :prevYY = eval(_yy);prevMM = eval(_mm) - 1;nextYY = eval(_yy);nextMM = eval(_mm) + 1;break;}p = $(doc.createElement("p"));a = $(doc.createElement("a"));a.attr({"href": "javascript:void(0);"});a.click(function() {_setCalendar(prevYY, prevMM, _dd);});i = $(doc.createElement("i"));i.attr({"class": "fa fa-chevron-left"});a.append(i);p.append(a);span = $(doc.createElement("span"));var spanYY, spanMM;spanYY = $(doc.createElement("span"));spanYY.text(_yy);spanYY.bind("mousewheel", {"this": this}, function(_e) {if(_e.originalEvent.wheelDelta > 0) {_setCalendar(eval(_yy) + 1, _mm, _dd);}else {_setCalendar(eval(_yy) - 1, _mm, _dd);}_e.preventDefault();return false;});span.append(spanYY);span.append(doc.createTextNode(". "));spanMM = $(doc.createElement("span"));spanMM.text(_mm);spanMM.bind("mousewheel", {"this": this}, function(_e) {if(_e.originalEvent.wheelDelta > 0) {_setCalendar(nextYY, nextMM, _dd);}else {_setCalendar(prevYY, prevMM, _dd);}_e.preventDefault();return false;});span.append(spanMM);p.append(span);a = $(doc.createElement("a"));a.attr({"href": "javascript:void(0);"});a.click(function() {_setCalendar(nextYY, nextMM, _dd);});i = $(doc.createElement("i"));i.attr({"class": "fa fa-chevron-right"});a.append(i);p.append(a);a = $(doc.createElement("a"));a.attr({"href": "javascript:void(0);","class": "close"});a.click(function() {_hideCalendar();});i = $(doc.createElement("i"));i.attr({"class": "fa fa-close"});a.append(i);p.append(a);calendar.append(p);table = $(doc.createElement("table"));colgroup = $(doc.createElement("colgroup"));for(var idx in weekNMs) {col = $(doc.createElement("col"));colgroup.append(col);}table.append(colgroup);thead = $(doc.createElement("thead"));tr = $(doc.createElement("tr"));for(var idx in weekNMs) {th = $(doc.createElement("th"));th.attr({"scope": "col"});th.html(weekNMs[idx]);tr.append(th);}thead.append(tr);table.append(thead);tbody = $(doc.createElement("tbody"));while(dd <= lastDD) {tr = $(doc.createElement("tr"));for(var i = 0; i < 7; i++) {if(firstWK > 0) {ddVal = lastDDs[prevMM - 1] - firstWK + 1;td = $(doc.createElement("td"));a = $(doc.createElement("a"));a.attr({"href": "javascript:void(0);","title": prevYY + "-" + (prevMM < 10 ? "0" + prevMM : prevMM) + "-" + (ddVal < 1 ? "0" + ddVal : ddVal),"class": "other"});a.click(function() {_setDate(obj, this.title);});a.html(ddVal);td.append(a);tr.append(td);firstWK--;}else {if(dd > lastDD) {td = $(doc.createElement("td"));a = $(doc.createElement("a"));a.attr({"href": "javascript:void(0);","title": nextYY + "-" + (nextMM < 10 ? "0" + nextMM : nextMM) + "-" + (nextDD < 10 ? "0" + nextDD : nextDD),"class": "other"});a.click(function() {_setDate(obj, this.title);});a.html(nextDD);td.append(a);tr.append(td);nextDD++;}else {td = $(doc.createElement("td"));a = $(doc.createElement("a"));a.attr({"href": "javascript:void(0);","title": _yy + "-" + (eval(_mm) < 10 ? "0" + eval(_mm) : _mm) + "-" + (dd < 10 ? "0" + dd : dd),"class": (yy == _yy && mm == _mm && dd == _dd ? "today" : "")});a.click(function() {_setDate(obj, this.title);});a.html(dd);td.append(a);tr.append(td);}dd++;}tbody.append(tr);}}table.append(tbody);calendar.append(table);if(typeof(_function) == "function") {_function();}}if(calendar[0]) {calendar.remove();calendarBG.remove();}calendar = $(doc.createElement("div"));calendar.attr({"id": "calendar"});if(obj.val().length == 10 && arrVal.length == 3) {yy = arrVal[0];mm = arrVal[1];dd = arrVal[2];}else {var now = new Date();yy = now.getFullYear();mm = now.getMonth() + 1;dd = now.getDate();}_setCalendar(yy, mm, dd, function() {content.append(calendar);if(_callBG) {var background;background = $(doc.createElement("div"));background.attr({"id": "calendarBG"});background.css({"height": _scrollHeight() + "px"});}content.append(background);setTimeout(function() {var tp, lt, rt;tp = obj.offset().top + obj.height();lt = obj.offset().left;if((lt + calendar.outerWidth()) > $(win).width()) {lt -= (lt + calendar.outerWidth()) - $(win).width();lt -= eval(content.css("padding-right").replace("px", ""));}calendar.css({"top": tp + "px","left": lt + "px"});calendar.slideDown(animationSpeed);}, 10);});}function _hideCalendar() {var calendar = $("#calendar");var calendarBG = $("#calendarBG");if(calendar[0]) {calendar.slideUp(animationSpeed, function() {calendar.remove();calendarBG.remove();});}}function _setDate(_obj, _date) {_obj.val(_date);_hideCalendar();}