Figment.Import("Figment.Date",Figment.getJSRoot()+"_framework/");Figment.Import("Figment.DOM",Figment.getJSRoot()+"_framework/");Figment.Import("Figment.EventHandler",Figment.getJSRoot()+"_framework/");Figment.Namespace("Disney.WDPRO.UI.Widgets.Calendar");Disney.WDPRO.UI.Widgets.Calendar={containers:[],CONST_SHOW_CALENDAR_CLASSNAME:"calendarShow",CONST_CALENDAR_CONTAINER_CLASSNAME:"calendarContainer",CONST_CALENDAR_DIV_CONTAINER_CLASSNAME:"calendarTableContainer",main:function(){Disney.WDPRO.UI.Widgets.Calendar.createCalendars();},createCalendars:function(){var _5ba=Figment.DOM.getElementsByClassName("calendarWidget");var _5bb=_5ba.length;var i=0;var _5bd;var _5be,targetElement;for(i=0;i<_5bb;i++){_5be=_5ba[i];targetElement=document.getElementById(_5be.id.substring(0,_5be.id.indexOf("_cal")));if(targetElement!==null){_5bd=Disney.WDPRO.UI.Widgets.Calendar.createCalendar(_5be.id+"_widget",targetElement,_5be);Figment.EventHandler.addEvent(_5be,"click",Disney.WDPRO.UI.Widgets.Calendar.EVENT_calendarIcon_onClick);Figment.EventHandler.addEvent(targetElement,"click",Disney.WDPRO.UI.Widgets.Calendar.EVENT_inputField_onFocus);Figment.EventHandler.addEvent(targetElement,"keyup",Disney.WDPRO.UI.Widgets.Calendar.EVENT_inputField_onFocus);}}Figment.EventHandler.addEvent(document,"click",Disney.WDPRO.UI.Widgets.Calendar.EVENT_document_onClick);Figment.EventHandler.addEvent(document,"keyup",Disney.WDPRO.UI.Widgets.Calendar.EVENT_document_onClick);delete _5bd;delete _5ba;},findCalendar:function(_5bf){var id;var _5c1;var _5c2;var _5c3=null;var i;var div;if(_5bf!==null&&_5bf.nodeType===1){while(_5bf.nodeName.toLowerCase()!=="table"){_5bf=_5bf.parentNode;if(_5bf!==null){if(_5bf.nodeName.toLowerCase()==="body"){_5bf=null;break;}}else{break;}}if(_5bf!==null){div=_5bf.parentNode;_5c1=Disney.WDPRO.UI.Widgets.Calendar.containers;for(i=0;i<_5c1.length;i++){_5c2=_5c1[i];if(_5c2!==null){if(_5c2.getId()===div.id){_5c3=_5c2;break;}}}}}delete div;delete _5c2;delete _5c1;return _5c3;},getAssociatedCalendar:function(_5c6){var _5c7;var i;var _5c9;var _5ca=null;if(_5c6!==null){_5c9=document.getElementById(_5c6.id.substring(0,_5c6.id.indexOf("_cal")));}if(_5c9!==null){_5c7=Disney.WDPRO.UI.Widgets.Calendar.containers;for(i=0;i<_5c7.length;i++){_5ca=_5c7[i];if(_5ca!==null){if(_5ca.getTarget()===_5c9){break;}}}}delete _5c9;delete _5c7;return _5ca;},hideAll:function(){var _5cb;var _5cc;_5cb=Disney.WDPRO.UI.Widgets.Calendar.containers;for(i=0;i<_5cb.length;i++){_5cc=_5cb[i];if(_5cc!==null){_5cc.hide();}}delete _5cc;delete _5cb;},EVENT_calendarForward_onClick:function(evt){var _5ce=Figment.EventHandler.getEvent(evt);var _5cf=_5ce.element;var _5d0;var date;_5d0=Disney.WDPRO.UI.Widgets.Calendar.findCalendar(_5cf);if(_5d0!==null){date=_5d0.getCurrentMonth();_5d0.goToMonth(Figment.Date.add(date,"M",1));}_5ce.stopEvents();delete date;delete _5ce.element;delete _5ce.targetElement;delete _5cf;delete _5ce;delete _5d0;},EVENT_calendarBack_onClick:function(evt){var _5d3=Figment.EventHandler.getEvent(evt);var _5d4=_5d3.element;var _5d5;var date;_5d5=Disney.WDPRO.UI.Widgets.Calendar.findCalendar(_5d4);if(_5d5!==null){date=_5d5.getCurrentMonth();_5d5.goToMonth(Figment.Date.subtract(date,"M",1));}_5d3.stopEvents();delete date;delete _5d3.element;delete _5d3.targetElement;delete _5d4;delete _5d3;delete _5d5;},EVENT_inputField_onFocus:function(evt){var _5d8=Figment.EventHandler.getEvent(evt);var _5d9=_5d8.element;var _5da;Disney.WDPRO.UI.Widgets.Calendar.hideAll();_5da=Disney.WDPRO.UI.Widgets.Calendar.getAssociatedCalendar(Figment.DOM.getNextSibling(_5d9));if(_5da!==null){_5da.show();}_5d8.preventDefault();_5d8.stopEvents();delete _5d8.element;delete _5d8.targetElement;delete _5d9;delete _5d8;},EVENT_calendarIcon_onClick:function(evt){var _5dc=Figment.EventHandler.getEvent(evt);var _5dd=_5dc.element;var _5de;Disney.WDPRO.UI.Widgets.Calendar.hideAll();_5de=Disney.WDPRO.UI.Widgets.Calendar.getAssociatedCalendar(_5dd);if(_5de!==null){_5de.show();}_5dc.preventDefault();_5dc.stopEvents();delete _5dc.element;delete _5dc.targetElement;delete _5dd;delete _5dc;},EVENT_document_onClick:function(evt){var _5e0=Figment.EventHandler.getEvent(evt);var _5e1=_5e0.targetElement;var _5e2;var _5e3;var _5e4;_5e4=Disney.WDPRO.UI.Widgets.Calendar.findCalendar(_5e1);if(_5e4===null){Disney.WDPRO.UI.Widgets.Calendar.hideAll();}delete _5e0.element;delete _5e0.targetElement;delete _5e1;delete _5e0;delete _5e3;delete _5e4;},createCalendar:function(id,_5e6,_5e7){var _5e8=new Disney.WDPRO.UI.Widgets.Calendar.Container(id,_5e6,_5e7);Disney.WDPRO.UI.Widgets.Calendar.containers.push(_5e8);return _5e8;}};Disney.WDPRO.UI.Widgets.Calendar.Container=Figment.Class();Disney.WDPRO.UI.Widgets.Calendar.Container.prototype={initialize:function(id,_5ea,_5eb){this.id=id;this.cells=[];this.currentMonth=Figment.Date.findMonthStart(new Date());this.selectedDays=[];this.todayClass="today";this.pastDayClass="dayInPast";this.dayNotAvailableClass="dayNotAvailable";this.target=_5ea;this.launcher=_5eb;this.calendarOptions={};this.defaultAction=function(evt){var _5ed=Figment.EventHandler.getEvent(evt);var _5ee=_5ed.element;var _5ef=Disney.WDPRO.UI.Widgets.Calendar.findCalendar(_5ee);var _5f0=null;var _5f1;if(_5ef!==null){_5f0=_5ef.getTarget();if(_5f0!==null&&_5f0.nodeName.toLowerCase()==="input"&&_5f0.getAttribute("type")==="text"){_5f1=_5ee.parentNode.title;_5f0.value=_5f1;_5ef.hide();Figment.EventHandler.fireEvent(_5f0,"change");Figment.EventHandler.fireEvent(_5f0,"blur");}_5ed.preventDefault();_5ed.stopEvents();}Figment.EventHandler.cleanUp(_5ed);delete _5ee;delete _5f0;delete _5ef;};},getTarget:function(){if(typeof this.target==="undefined"){this.target=null;}return this.target;},getLauncher:function(){if(typeof this.launcher==="undefined"){this.launcher=null;}return this.launcher;},setTodayClass:function(_5f2){var cell;cell=this.getTodaysCell();if(cell!==null){cell.addClassName(_5f2);}this.todayClass=_5f2;},getTodayClass:function(){return this.todayClass;},createShell:function(){var _5f4;var _5f5;var _5f6;var div;div=document.createElement("div");div.className=Disney.WDPRO.UI.Widgets.Calendar.CONST_CALENDAR_DIV_CONTAINER_CLASSNAME;div.id=this.id;_5f4=document.createElement("table");_5f6=document.createElement("thead");_5f4.appendChild(_5f6);_5f5=document.createElement("tbody");_5f4.appendChild(_5f5);div.appendChild(_5f4);Figment.DOM.addClassName(_5f4,Disney.WDPRO.UI.Widgets.Calendar.CONST_CALENDAR_CONTAINER_CLASSNAME);if(this.getLauncher()){this.getLauncher().appendChild(div);}delete _5f6;delete _5f5;delete _5f4;},getId:function(){return this.id;},changeDefaultAction:function(_5f8){var cell;var i;for(i=0;i<this.cells.length;i++){cell=this.cells[i];if(cell.action===this.defaultAction){cell.action=_5f8;renderCell(cell);}}this.defaultAction=_5f8;delete cell;},renderTitleBar:function(){var _5fb;var row;var th;var _5fe;var _5ff;var div;div=document.getElementById(this.id);if(div!==null){_5fb=div.firstChild.firstChild;if(_5fb==null||_5fb.rows.length==0){if(_5fb==null){_5fb=div.firstChild.createTHead();}row=document.createElement("tr");th=document.createElement("th");_5fe=Figment.Date.subtract(this.currentMonth,"M",1);th.setAttribute("title","Go to "+Figment.Date.dateToString(_5fe,"MMMM yyyy"));_5ff=document.createElement("div");Figment.DOM.addClassName(_5ff,"backArrow");_5ff.appendChild(document.createTextNode("\xab"));Figment.EventHandler.addEvent(_5ff,"click",Disney.WDPRO.UI.Widgets.Calendar.EVENT_calendarBack_onClick);th.appendChild(_5ff);row.appendChild(th);th=document.createElement("th");th.setAttribute("title",Figment.Date.dateToString(this.currentMonth,"MMMM yyyy"));th.setAttribute("colSpan","5");_5ff=document.createElement("div");_5ff.appendChild(document.createTextNode(Figment.Date.dateToString(this.currentMonth,"MMMM yyyy")));th.appendChild(_5ff);row.appendChild(th);th=document.createElement("th");_5fe=Figment.Date.add(this.currentMonth,"M",1);th.setAttribute("title","Go to "+Figment.Date.dateToString(_5fe,"MMMM yyyy"));_5ff=document.createElement("div");Figment.DOM.addClassName(_5ff,"forwardArrow");_5ff.appendChild(document.createTextNode("\xbb"));Figment.EventHandler.addEvent(_5ff,"click",Disney.WDPRO.UI.Widgets.Calendar.EVENT_calendarForward_onClick);th.appendChild(_5ff);row.appendChild(th);_5fb.appendChild(row);row=document.createElement("tr");for(i=0;i<Figment.Date.CONST_WEEKDAYS_SHORT.length;i++){th=document.createElement("th");_5ff=document.createElement("div");Figment.DOM.addClassName(_5ff,"dayHeader");_5ff.appendChild(document.createTextNode(Figment.Date.CONST_WEEKDAYS_SHORT[i]));th.appendChild(_5ff);row.appendChild(th);}_5fb.appendChild(row);}else{th=_5fb.rows[0].firstChild;_5fe=Figment.Date.subtract(this.currentMonth,"M",1);th.setAttribute("title","Go to "+Figment.Date.dateToString(_5fe,"MMMM yyyy"));th=_5fb.rows[0].childNodes[1];th.setAttribute("title",Figment.Date.dateToString(this.currentMonth,"MMMM yyyy"));th.firstChild.firstChild.nodeValue=th.getAttribute("title");th=_5fb.rows[0].lastChild;_5fe=Figment.Date.add(this.currentMonth,"M",1);th.setAttribute("title","Go to "+Figment.Date.dateToString(_5fe,"MMMM yyyy"));}}div=null;},getCurrentMonth:function(){return this.currentMonth;},goToMonth:function(date){this.currentMonth=Figment.Date.findMonthStart(date);this.refresh();},getTodaysCell:function(){var _602;var _603;var cell;if(this.currentMonth===Figment.Date.findMonthStart(new Date())){_602=Figment.Date.findMonthStart(this.currentMonth).getDay();_603=_602+new Date().getDate();cell=this.cells[_603];}return cell;},render:function(){var cell;var i;var row;var num;var _609;var _60a;var _60b;var _60c=null;var _60d=null;var _60e=null;_60e=document.getElementById(this.id);if(_60e===null){this.createShell();_60e=document.getElementById(this.id);}_609=_60e.firstChild.tBodies[0];this.renderTitleBar();this.cells.clear();if(_609.childNodes.length>0){while(_609.hasChildNodes()){_609.removeChild(_609.firstChild);}}_60a=Figment.Date.findMonthStart(this.currentMonth).getDay();_60b=Figment.Date.findMonthEnd(this.currentMonth).getDate();for(i=0;i<42;i++){if(i<_60a){this.cells.push(new Disney.WDPRO.UI.Widgets.Calendar.Cell());}else{if(i<(_60a+_60b)){this.cells.push(new Disney.WDPRO.UI.Widgets.Calendar.Cell(Figment.Date.add(this.currentMonth,"D",i-_60a)));}else{this.cells.push(new Disney.WDPRO.UI.Widgets.Calendar.Cell());}}}num=0;for(i=0;i<this.cells.length;i++){cell=this.cells[i];if((i>6)&&(i%7)===0){num+=1;}if(num>=_609.rows.length){row=document.createElement("tr");_60e.firstChild.tBodies[0].appendChild(row);}else{row=_609.rows[num];}if(cell.date!==null){cell.action=this.defaultAction;if(this.isRestrictedDate(cell.date)){cell.addClassName(this.pastDayClass);cell.action=null;}else{if(Figment.Date.compare(cell.date,new Date())){cell.addClassName(this.todayClass);}else{if(Figment.Date.before(cell.date,new Date())){cell.addClassName(this.pastDayClass);cell.action=null;}}}}this.renderCell(cell,row);}delete _60e;delete _60c;delete _60d;delete row;delete cell;delete _609;},refresh:function(){this.render();},changeCell:function(cell){var i;for(i=0;i<this.cells.length;i++){switch(this.cells[i].date){case cell.date:this.cells[i]=cell;renderCell(cell);return;}}},renderCell:function(cell){var _612=null;var _613=null;var day=null;var i=null;var row=null;_613=document.createElement("td");if(cell.date!==null){_613.setAttribute("id","date_"+Figment.Date.dateToString(cell.date,"M_d_yyyy")+"for"+this.id);_613.setAttribute("title",Figment.Date.dateToString(cell.date,"M/d/yyyy"));}else{Figment.DOM.addClassName(_613,"blankCell");}day=document.createElement("div");for(i=0;i<cell.classes.length;i++){Figment.DOM.addClassName(day,cell.classes[i]);}if(cell.action!==null){Figment.EventHandler.addEvent(day,"click",cell.action);}if(cell.date!==null){day.appendChild(document.createTextNode(cell.date.getDate()));}else{day.appendChild(document.createTextNode("\xa0"));}_613.appendChild(day);if(cell.date!==null){_612=document.getElementById(Figment.Date.dateToString(cell.date,"M_d_yyyy")+"for"+this.id);}if(_612!==null){_612.parentNode.replaceChild(_613,_612);}else{if(arguments.length>1){row=arguments[1];if(row!==null){row.appendChild(_613);}}}delete _612;delete day;delete _613;delete row;},show:function(){var _617=this.getTarget();var _618;var _619;try{if(_617!==null){_618=Figment.Date.createDate(_617.value);if(_618!==null&&!isNaN(_618.getTime())){_618=Figment.Date.subtract(_618,"M",1);this.currentMonth=Figment.Date.findMonthStart(_618);}}this.render();_619=document.getElementById(this.id);if(_619!==null){if(!Figment.DOM.hasClassName(_619,Disney.WDPRO.UI.Widgets.Calendar.CONST_SHOW_CALENDAR_CLASSNAME)){Figment.DOM.addClassName(_619,Disney.WDPRO.UI.Widgets.Calendar.CONST_SHOW_CALENDAR_CLASSNAME);Disney.WDPRO.UI.Widgets.Calendar.Container.prototype.toggleSelectBoxes();}}}catch(error){alert(error);}finally{delete _618;delete _617;delete _619;}},hide:function(){var _61a=document.getElementById(this.id);if(_61a!==null){if(Figment.DOM.hasClassName(_61a,Disney.WDPRO.UI.Widgets.Calendar.CONST_SHOW_CALENDAR_CLASSNAME)){Figment.DOM.removeClassName(_61a,Disney.WDPRO.UI.Widgets.Calendar.CONST_SHOW_CALENDAR_CLASSNAME);Disney.WDPRO.UI.Widgets.Calendar.Container.prototype.toggleSelectBoxes();}}delete _61a;},toggleSelectBoxes:function(){var _61b=Figment.DOM.getElementsByTagName("body")[0];if(Figment.DOM.hasClassName(_61b,"hideSelects")){Figment.DOM.removeClassName(_61b,"hideSelects");}else{Figment.DOM.addClassName(_61b,"hideSelects");}delete _61b;},isRestrictedDate:function(_61c){if(this.calendarOptions.minDate){if(_61c.getTime()<this.calendarOptions.minDate.getTime()){return true;}}if(this.calendarOptions.maxDate){if(_61c.getTime()>this.calendarOptions.maxDate.getTime()){return true;}}return false;},setOptions:function(_61d){if(_61d){if(_61d["minDate"]){_61d.minDate.setHours(0,0,0,0);}if(_61d["maxDate"]){_61d.maxDate.setHours(0,0,0,0);}this.calendarOptions=_61d;this.refresh();}}};Disney.WDPRO.UI.Widgets.Calendar.Cell=Figment.Class();Disney.WDPRO.UI.Widgets.Calendar.Cell.prototype={initialize:function(date){if(arguments.length===0){date=null;}this.action=null;this.date=date;this.classes=[];},setAction:function(_61f){this.action=_61f;},getDate:function(){return this.date;},addClassName:function(_620){this.classes.push(_620);},changeClassName:function(_621,_622){this.removeClassName(_621);this.addClassName(_622);},removeClassName:function(_623){return this.classes.remove(_623);}};Figment.EntryPoint.add(Disney.WDPRO.UI.Widgets.Calendar);