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 _5b8=Figment.DOM.getElementsByClassName("calendarWidget");var _5b9=_5b8.length;var i=0;var _5bb;var _5bc,targetElement;for(i=0;i<_5b9;i++){_5bc=_5b8[i];targetElement=document.getElementById(_5bc.id.substring(0,_5bc.id.indexOf("_cal")));if(targetElement!==null){_5bb=Disney.WDPRO.UI.Widgets.Calendar.createCalendar(_5bc.id+"_widget",targetElement,_5bc);Figment.EventHandler.addEvent(_5bc,"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 _5bb;delete _5b8;},findCalendar:function(_5bd){var id;var _5bf;var _5c0;var _5c1=null;var i;var div;if(_5bd!==null&&_5bd.nodeType===1){while(_5bd.nodeName.toLowerCase()!=="table"){_5bd=_5bd.parentNode;if(_5bd!==null){if(_5bd.nodeName.toLowerCase()==="body"){_5bd=null;break;}}else{break;}}if(_5bd!==null){div=_5bd.parentNode;_5bf=Disney.WDPRO.UI.Widgets.Calendar.containers;for(i=0;i<_5bf.length;i++){_5c0=_5bf[i];if(_5c0!==null){if(_5c0.getId()===div.id){_5c1=_5c0;break;}}}}}delete div;delete _5c0;delete _5bf;return _5c1;},getAssociatedCalendar:function(_5c4){var _5c5;var i;var _5c7;var _5c8=null;if(_5c4!==null){_5c7=document.getElementById(_5c4.id.substring(0,_5c4.id.indexOf("_cal")));}if(_5c7!==null){_5c5=Disney.WDPRO.UI.Widgets.Calendar.containers;for(i=0;i<_5c5.length;i++){_5c8=_5c5[i];if(_5c8!==null){if(_5c8.getTarget()===_5c7){break;}}}}delete _5c7;delete _5c5;return _5c8;},hideAll:function(){var _5c9;var _5ca;_5c9=Disney.WDPRO.UI.Widgets.Calendar.containers;for(i=0;i<_5c9.length;i++){_5ca=_5c9[i];if(_5ca!==null){_5ca.hide();}}delete _5ca;delete _5c9;},EVENT_calendarForward_onClick:function(evt){var _5cc=Figment.EventHandler.getEvent(evt);var _5cd=_5cc.element;var _5ce;var date;_5ce=Disney.WDPRO.UI.Widgets.Calendar.findCalendar(_5cd);if(_5ce!==null){date=_5ce.getCurrentMonth();_5ce.goToMonth(Figment.Date.add(date,"M",1));}_5cc.stopEvents();delete date;delete _5cc.element;delete _5cc.targetElement;delete _5cd;delete _5cc;delete _5ce;},EVENT_calendarBack_onClick:function(evt){var _5d1=Figment.EventHandler.getEvent(evt);var _5d2=_5d1.element;var _5d3;var date;_5d3=Disney.WDPRO.UI.Widgets.Calendar.findCalendar(_5d2);if(_5d3!==null){date=_5d3.getCurrentMonth();_5d3.goToMonth(Figment.Date.subtract(date,"M",1));}_5d1.stopEvents();delete date;delete _5d1.element;delete _5d1.targetElement;delete _5d2;delete _5d1;delete _5d3;},EVENT_inputField_onFocus:function(evt){var _5d6=Figment.EventHandler.getEvent(evt);var _5d7=_5d6.element;var _5d8;Disney.WDPRO.UI.Widgets.Calendar.hideAll();_5d8=Disney.WDPRO.UI.Widgets.Calendar.getAssociatedCalendar(Figment.DOM.getNextSibling(_5d7));if(_5d8!==null){_5d8.show();}_5d6.preventDefault();_5d6.stopEvents();delete _5d6.element;delete _5d6.targetElement;delete _5d7;delete _5d6;},EVENT_calendarIcon_onClick:function(evt){var _5da=Figment.EventHandler.getEvent(evt);var _5db=_5da.element;var _5dc;Disney.WDPRO.UI.Widgets.Calendar.hideAll();_5dc=Disney.WDPRO.UI.Widgets.Calendar.getAssociatedCalendar(_5db);if(_5dc!==null){_5dc.show();}_5da.preventDefault();_5da.stopEvents();delete _5da.element;delete _5da.targetElement;delete _5db;delete _5da;},EVENT_document_onClick:function(evt){var _5de=Figment.EventHandler.getEvent(evt);var _5df=_5de.targetElement;var _5e0;var _5e1;var _5e2;_5e2=Disney.WDPRO.UI.Widgets.Calendar.findCalendar(_5df);if(_5e2===null){Disney.WDPRO.UI.Widgets.Calendar.hideAll();}delete _5de.element;delete _5de.targetElement;delete _5df;delete _5de;delete _5e1;delete _5e2;},createCalendar:function(id,_5e4,_5e5){var _5e6=new Disney.WDPRO.UI.Widgets.Calendar.Container(id,_5e4,_5e5);Disney.WDPRO.UI.Widgets.Calendar.containers.push(_5e6);return _5e6;}};Disney.WDPRO.UI.Widgets.Calendar.Container=Figment.Class();Disney.WDPRO.UI.Widgets.Calendar.Container.prototype={initialize:function(id,_5e8,_5e9){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=_5e8;this.launcher=_5e9;this.calendarOptions={};this.defaultAction=function(evt){var _5eb=Figment.EventHandler.getEvent(evt);var _5ec=_5eb.element;var _5ed=Disney.WDPRO.UI.Widgets.Calendar.findCalendar(_5ec);var _5ee=null;var _5ef;if(_5ed!==null){_5ee=_5ed.getTarget();if(_5ee!==null&&_5ee.nodeName.toLowerCase()==="input"&&_5ee.getAttribute("type")==="text"){_5ef=_5ec.parentNode.title;_5ee.value=_5ef;_5ed.hide();Figment.EventHandler.fireEvent(_5ee,"change");Figment.EventHandler.fireEvent(_5ee,"blur");}_5eb.preventDefault();_5eb.stopEvents();}Figment.EventHandler.cleanUp(_5eb);delete _5ec;delete _5ee;delete _5ed;};},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(_5f0){var cell;cell=this.getTodaysCell();if(cell!==null){cell.addClassName(_5f0);}this.todayClass=_5f0;},getTodayClass:function(){return this.todayClass;},createShell:function(){var _5f2;var _5f3;var _5f4;var div;div=document.createElement("div");div.className=Disney.WDPRO.UI.Widgets.Calendar.CONST_CALENDAR_DIV_CONTAINER_CLASSNAME;div.id=this.id;_5f2=document.createElement("table");_5f4=document.createElement("thead");_5f2.appendChild(_5f4);_5f3=document.createElement("tbody");_5f2.appendChild(_5f3);div.appendChild(_5f2);Figment.DOM.addClassName(_5f2,Disney.WDPRO.UI.Widgets.Calendar.CONST_CALENDAR_CONTAINER_CLASSNAME);if(this.getLauncher()){this.getLauncher().appendChild(div);}delete _5f4;delete _5f3;delete _5f2;},getId:function(){return this.id;},changeDefaultAction:function(_5f6){var cell;var i;for(i=0;i<this.cells.length;i++){cell=this.cells[i];if(cell.action===this.defaultAction){cell.action=_5f6;renderCell(cell);}}this.defaultAction=_5f6;delete cell;},renderTitleBar:function(){var _5f9;var row;var th;var _5fc;var _5fd;var div;div=document.getElementById(this.id);if(div!==null){_5f9=div.firstChild.firstChild;if(_5f9==null||_5f9.rows.length==0){if(_5f9==null){_5f9=div.firstChild.createTHead();}row=document.createElement("tr");th=document.createElement("th");_5fc=Figment.Date.subtract(this.currentMonth,"M",1);th.setAttribute("title","Go to "+Figment.Date.dateToString(_5fc,"MMMM yyyy"));_5fd=document.createElement("div");Figment.DOM.addClassName(_5fd,"backArrow");_5fd.appendChild(document.createTextNode("\xab"));Figment.EventHandler.addEvent(_5fd,"click",Disney.WDPRO.UI.Widgets.Calendar.EVENT_calendarBack_onClick);th.appendChild(_5fd);row.appendChild(th);th=document.createElement("th");th.setAttribute("title",Figment.Date.dateToString(this.currentMonth,"MMMM yyyy"));th.setAttribute("colSpan","5");_5fd=document.createElement("div");_5fd.appendChild(document.createTextNode(Figment.Date.dateToString(this.currentMonth,"MMMM yyyy")));th.appendChild(_5fd);row.appendChild(th);th=document.createElement("th");_5fc=Figment.Date.add(this.currentMonth,"M",1);th.setAttribute("title","Go to "+Figment.Date.dateToString(_5fc,"MMMM yyyy"));_5fd=document.createElement("div");Figment.DOM.addClassName(_5fd,"forwardArrow");_5fd.appendChild(document.createTextNode("\xbb"));Figment.EventHandler.addEvent(_5fd,"click",Disney.WDPRO.UI.Widgets.Calendar.EVENT_calendarForward_onClick);th.appendChild(_5fd);row.appendChild(th);_5f9.appendChild(row);row=document.createElement("tr");for(i=0;i<Figment.Date.CONST_WEEKDAYS_SHORT.length;i++){th=document.createElement("th");_5fd=document.createElement("div");Figment.DOM.addClassName(_5fd,"dayHeader");_5fd.appendChild(document.createTextNode(Figment.Date.CONST_WEEKDAYS_SHORT[i]));th.appendChild(_5fd);row.appendChild(th);}_5f9.appendChild(row);}else{th=_5f9.rows[0].firstChild;_5fc=Figment.Date.subtract(this.currentMonth,"M",1);th.setAttribute("title","Go to "+Figment.Date.dateToString(_5fc,"MMMM yyyy"));th=_5f9.rows[0].childNodes[1];th.setAttribute("title",Figment.Date.dateToString(this.currentMonth,"MMMM yyyy"));th.firstChild.firstChild.nodeValue=th.getAttribute("title");th=_5f9.rows[0].lastChild;_5fc=Figment.Date.add(this.currentMonth,"M",1);th.setAttribute("title","Go to "+Figment.Date.dateToString(_5fc,"MMMM yyyy"));}}div=null;},getCurrentMonth:function(){return this.currentMonth;},goToMonth:function(date){this.currentMonth=Figment.Date.findMonthStart(date);this.refresh();},getTodaysCell:function(){var _600;var _601;var cell;if(this.currentMonth===Figment.Date.findMonthStart(new Date())){_600=Figment.Date.findMonthStart(this.currentMonth).getDay();_601=_600+new Date().getDate();cell=this.cells[_601];}return cell;},render:function(){var cell;var i;var row;var num;var _607;var _608;var _609;var _60a=null;var _60b=null;var _60c=null;_60c=document.getElementById(this.id);if(_60c===null){this.createShell();_60c=document.getElementById(this.id);}_607=_60c.firstChild.tBodies[0];this.renderTitleBar();this.cells.clear();if(_607.childNodes.length>0){while(_607.hasChildNodes()){_607.removeChild(_607.firstChild);}}_608=Figment.Date.findMonthStart(this.currentMonth).getDay();_609=Figment.Date.findMonthEnd(this.currentMonth).getDate();for(i=0;i<42;i++){if(i<_608){this.cells.push(new Disney.WDPRO.UI.Widgets.Calendar.Cell());}else{if(i<(_608+_609)){this.cells.push(new Disney.WDPRO.UI.Widgets.Calendar.Cell(Figment.Date.add(this.currentMonth,"D",i-_608)));}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>=_607.rows.length){row=document.createElement("tr");_60c.firstChild.tBodies[0].appendChild(row);}else{row=_607.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 _60c;delete _60a;delete _60b;delete row;delete cell;delete _607;},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 _610=null;var _611=null;var day=null;var i=null;var row=null;_611=document.createElement("td");if(cell.date!==null){_611.setAttribute("id","date_"+Figment.Date.dateToString(cell.date,"M_d_yyyy")+"for"+this.id);_611.setAttribute("title",Figment.Date.dateToString(cell.date,"M/d/yyyy"));}else{Figment.DOM.addClassName(_611,"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"));}_611.appendChild(day);if(cell.date!==null){_610=document.getElementById(Figment.Date.dateToString(cell.date,"M_d_yyyy")+"for"+this.id);}if(_610!==null){_610.parentNode.replaceChild(_611,_610);}else{if(arguments.length>1){row=arguments[1];if(row!==null){row.appendChild(_611);}}}delete _610;delete day;delete _611;delete row;},show:function(){var _615=this.getTarget();var _616;var _617;try{if(_615!==null){_616=Figment.Date.correctYear(_615.value);_616=new Date(_616);if(_616!==null&&!isNaN(_616.getTime())){this.currentMonth=Figment.Date.findMonthStart(_616);}}this.render();_617=document.getElementById(this.id);if(_617!==null){if(!Figment.DOM.hasClassName(_617,Disney.WDPRO.UI.Widgets.Calendar.CONST_SHOW_CALENDAR_CLASSNAME)){Figment.DOM.addClassName(_617,Disney.WDPRO.UI.Widgets.Calendar.CONST_SHOW_CALENDAR_CLASSNAME);Disney.WDPRO.UI.Widgets.Calendar.Container.prototype.toggleSelectBoxes();}}}catch(error){alert(error);}finally{delete _616;delete _615;delete _617;}},hide:function(){var _618=document.getElementById(this.id);if(_618!==null){if(Figment.DOM.hasClassName(_618,Disney.WDPRO.UI.Widgets.Calendar.CONST_SHOW_CALENDAR_CLASSNAME)){Figment.DOM.removeClassName(_618,Disney.WDPRO.UI.Widgets.Calendar.CONST_SHOW_CALENDAR_CLASSNAME);Disney.WDPRO.UI.Widgets.Calendar.Container.prototype.toggleSelectBoxes();}}delete _618;},toggleSelectBoxes:function(){var _619=Figment.DOM.getElementsByTagName("body")[0];if(Figment.DOM.hasClassName(_619,"hideSelects")){Figment.DOM.removeClassName(_619,"hideSelects");}else{Figment.DOM.addClassName(_619,"hideSelects");}delete _619;},isRestrictedDate:function(_61a){if(this.calendarOptions.minDate){if(_61a.getTime()<this.calendarOptions.minDate.getTime()){return true;}}if(this.calendarOptions.maxDate){if(_61a.getTime()>this.calendarOptions.maxDate.getTime()){return true;}}return false;},setOptions:function(_61b){if(_61b){if(_61b["minDate"]){_61b.minDate.setHours(0,0,0,0);}if(_61b["maxDate"]){_61b.maxDate.setHours(0,0,0,0);}this.calendarOptions=_61b;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(_61d){this.action=_61d;},getDate:function(){return this.date;},addClassName:function(_61e){this.classes.push(_61e);},changeClassName:function(_61f,_620){this.removeClassName(_61f);this.addClassName(_620);},removeClassName:function(_621){return this.classes.remove(_621);}};Figment.EntryPoint.add(Disney.WDPRO.UI.Widgets.Calendar);
