/**
 * doijs package
 * 
 * @author donna iwan setiawan
 * @version 0.1 
 * copyright - (c) 2007 - 2008 donna iwan setiawan
 * license - GPL version 3 or any later version <http://www.gnu.org/licenses/gpl-3.0.txt>
 */
doi.widget.datetime=function(){doi.widget.base.apply(this);var _items=[];this.doidatetime=[];this.draw=function(){doi.event.addEventListener(doi,'load',this.toString()+'.render()');};this.render=function(){var items=document.getElementsByTagName('input');var ix=0;for(var i=0;i < items.length;i++){var doiAtt=items[i].getAttribute('title');if(doiAtt && doiAtt.match(/doidatetime/i)){this.doidatetime[ix]=new doi.widget.datetimepicker(items[i]);var attribute=this.parseAttribute(items[i].getAttribute('title'));this.doidatetime[ix].className=items[i].getAttribute('class')|| items[i].className || 'dt';var zIndex=doi.dom.parseInt(attribute.zIndex);if(zIndex <=0){zIndex=1000;}this.doidatetime[ix].zIndex=zIndex;this.doidatetime[ix].draw();ix++;}}};this.scan=function(){this.draw();};};doi.widget.datetimepicker=function(_convertThis){doi.widget.base.apply(this);var _availableFormat='dmyhis';var _now=new Date();var _onLoadCalled=false;this.className='dt';this.data={day:['','Mon','Tue','Wed','Thu','Fri','Sat','Sun'],month:['','January','February','March','April','May','June','July','August','September','October','November','December']};this.data.date=[];this.data.date[0]='';for(var i=1;i <=31;i++){this.data.date[i]=i;};this.day=_now.getDay();this.date=_now.getDate();this.disabled=false;this.element=null;this.format='mdy';this.month=_now.getMonth();this.parentElement=null;this.shadow=false;this.value='';this.year=_now.getFullYear();this.zIndex=500;this._dayBegin=(new Date(this.year,this.month,1)).getDay();this._dayEnd=0;this._dateBegin=1;this._dateEnd=31;this._weekCount=0;this._yearBegin=1900;this._yearEnd=this.year+10;this._calculate=function(){var tmp=new Date(this.year,this.month,31);if(tmp.getMonth()!=this.month){this._dateEnd=31-tmp.getDate();}else{this._dateEnd=31;}this._dayBegin=(new Date(this.year,this.month,1)).getDay();var tmpDayBegin=(this._dayBegin==0)? tmpDayBegin=7:tmpDayBegin=this._dayBegin;this._weekCount=Math.ceil((this._dateEnd+tmpDayBegin-1)/7);this._dayEnd=(this._dateEnd % 7)+tmpDayBegin-1;this._dayEnd=(this._dayEnd==7)? this._dayEnd=0:this._dayEnd;if(this._dateEnd < this.date){this.date=this._dateEnd;this.comboDate.setValue(this.date);}};this._calculate();this._drawSection=function(section){var o='';switch(section){case 'd':o=this.comboDate.render();break;case 'm':o=this.comboMonth.render();break;case 'y':o=this.comboYear.render();break;case 'h':o=this.inputHour.render();break;case 'i':o=':'+this.inputMinute.render();break;case 's':o=':'+this.inputSecond.render();break;}return o;};this._formatValue=function(){this.value=this.year+'-';var month=(this.month+1).toString();if(month.length < 2){month='0'+month;}this.value+=month+'-';var date=(this.date).toString();if(date.length < 2){date='0'+date;}this.value+=date;if(this.format.indexOf('h')!=-1){var hour=(this.inputHour.value).toString();if(hour.length < 2){hour='0'+hour;}this.value+=' '+hour;var minute=(this.inputMinute.value).toString();if(minute.length < 2){minute='0'+minute;}this.value+=':'+minute;var second=(this.inputSecond.value).toString();if(second.length < 2){second='0'+second;}this.value+=':'+second;}if(this.element){this.element.value=this.value;}};this._render=function(){if(!doi.widget.datetimepickerInstanceNumber){doi.widget.datetimepickerInstanceNumber=0;}doi.widget.datetimepickerInstanceNumber++;this.zIndex-=doi.widget.datetimepickerInstanceNumber;if(this.zIndex <=0){this.zIndex=1000;}var o='<div style="position:relative;z-index:'+this.zIndex+'"><table border="0" cellpadding="0" cellspacing="0" onclick="doi.event.stopPropagation(event)"><tr>';o+='<td><input type="hidden" name="'+this.name+'" id="'+this.id+'" value=""/>';for(var i=0;i < this.format.length;i++){o+=this._drawSection(this.format.charAt(i))+'</td><td>';}o+=this.caller.render()+'</td>';o+='</tr></table>';o+='<div style="position:relative;">'+this.calendar.render()+'</div></div>';return o;};this.draw=function(buffer){doi.message.catchMessage('DOIDATETIME_CHANGED',this.toString()+'.onValueChanged');if(buffer){return this._render();}else{if(_convertThis){this.render();}else{document.write(this._render());this.init();}}};this.init=function(){var element=null;if(element=doi.dom.getElementById(this.id)){this.element=element;this.parentElement=element.parentNode.parentNode.parentNode.parentNode.parentNode;this.comboDate.element=doi.dom.getElementById(this.id+'_date');this.comboMonth.element=doi.dom.getElementById(this.id+'_month');this.comboYear.element=doi.dom.getElementById(this.id+'_year');this.inputHour.element=doi.dom.getElementById(this.id+'_hour');this.inputMinute.element=doi.dom.getElementById(this.id+'_minute');this.inputSecond.element=doi.dom.getElementById(this.id+'_second');this.caller.element=doi.dom.getElementById(this.id+'_caller');this.calendar.element=doi.dom.getElementById(this.id+'_calendar');this.calendar.containerElement[0]=doi.dom.getElementById(this.id+'_calendar_1');this.calendar.containerElement[1]=doi.dom.getElementById(this.id+'_calendar_2');this.calendar.containerElement[2]=doi.dom.getElementById(this.id+'_calendar_3');if(this.element){this.element.value=this.value;}};};this.onValueChanged=function(){var section=doi.message.data.section;var sender=doi.message.data.instance;switch(section){case 'date':case 'month':case 'year':this.setValue(this.comboDate.value,this.comboMonth.value,this.comboYear.value);this.calendar.renderButton();this.calendar.renderCalendar();break;case 'today':this.setToday();this.calendar.renderButton();this.calendar.renderCalendar();break;case 'clear':this.setClear();this.calendar.renderButton();this.calendar.renderCalendar();break;case 'next':case 'prev':this.calendar.renderButton();this.calendar.renderCalendar();break;case 'hour':case 'minute':case 'second':this._formatValue();break;}};this.render=function(){if(_convertThis){var validElement=null;if(_convertThis.tagName && _convertThis.tagName=='INPUT'){validElement=_convertThis;}else{var tmp=doi.dom.getElementById(_convertThis);if(tmp && tmp.tagName && tmp.tagName=='INPUT'){validElement=tmp;}}if(validElement){var attribute=this.parseAttribute(validElement.getAttribute('title'));validElement.setAttribute('title','');var name=validElement.getAttribute('name');var value=validElement.getAttribute('value');var format=attribute.format;var shadow=!!attribute.shadow;this.setName(name);this.setFormat(format);this.setFormattedValue(value);this.setShadow(shadow);var div=document.createElement('div');div.innerHTML=this._render();if(validElement.parentNode){var parentNode=validElement.parentNode;parentNode.replaceChild(div,validElement);this.init();}}else if(!_onLoadCalled){doi.event.addEventListener(window,'load',this.toString()+'.render()');_onloadCalled=true;}}};this.setClear=function(){this.setValue(0,0,0);this.inputHour.setValue(0);this.inputMinute.setValue(0);this.inputSecond.setValue(0);this.value='';if(this.element){this.element.value=this.value;}};this.setEnabled=function(enable){if(this.disabled==!enable){return;}this.disabled=!enable;this.comboDate.setEnabled(enable);this.comboMonth.setEnabled(enable);this.comboYear.setEnabled(enable);this.inputHour.setEnabled(enable);this.inputMinute.setEnabled(enable);this.inputSecond.setEnabled(enable);this.caller.setEnabled(enable);};this.setFormat=function(format){if(!format){return;}var tmp=format.toLowerCase();var lenTmp=format.length;var allowedFormat='';for(var i=0;i < lenTmp;i++){if(_availableFormat.indexOf(tmp.charAt(i))!=-1){if(allowedFormat.indexOf(tmp.charAt(i))==-1){allowedFormat+=tmp.charAt(i);}}};if(allowedFormat !=''){this.format=allowedFormat;this.caller.setVisibility((this.format.indexOf('d')!=-1 && this.format.indexOf('m')!=-1 && this.format.indexOf('y')!=-1));}};this.setFormattedValue=function(formattedValue){if(!formattedValue || !formattedValue.split){return;}var pattern=/^(\d{4,})\-(\d{1,2})\-(\d{1,2})(\s.*){0,1}/;var match=formattedValue.match(pattern);if(!match){return;}var y=doi.dom.parseInt(match[1]);var m=doi.dom.parseInt(match[2]);var d=doi.dom.parseInt(match[3]);var time=match[4];if(time && time.split){var values=time.split(':');var h=doi.dom.parseInt(values[0]);var i=doi.dom.parseInt(values[1]);var s=doi.dom.parseInt(values[2]);this.inputHour.setValue(h);this.inputMinute.setValue(i);this.inputSecond.setValue(s);}this.setValue(d,m,y);};this.setShadow=function(shadow){this.shadow=shadow;};this.setToday=function(){_now=new Date();this.setValue(_now.getDate(),_now.getMonth()+1,_now.getFullYear());};this.setValue=function(d,m,y){d=doi.dom.parseInt(d);if(d <=0){this.comboDate.setValue(0);}else{this.date=d;this.comboDate.setValue(d);}m=doi.dom.parseInt(m);if(m <=0 || m > 12){this.comboMonth.setValue(0);}else{this.month=m-1;this.comboMonth.setValue(m);}y=doi.dom.parseInt(y);maxY=Math.max(this._yearBegin,this._yearEnd);if(y <=0){this.comboYear.setValue(0);}else{if(y > maxY){y=maxY;}this.year=y;this.comboYear.setValue(y);}this._calculate();this._formatValue();};this.setYearRange=function(from,to){this._yearBegin=doi.dom.parseInt(from);this._yearEnd=doi.dom.parseInt(to);if(this._yearBegin < this._yearEnd){if(this.year < this._yearBegin){this.year=this._yearBegin;}else{this.year=Math.min(this._yearEnd,this.year);}}else{if(this.year < this._yearEnd){this.year=this._yearEnd;}else{this.year=Math.min(this._yearBegin,this.year);}}};this.comboDate=new function(){this.element=null;this.disabled=false;this.parent=null;this.value=0;this.onChange=function(event,element){this.setValue(element.value);doi.message.throwMessage('DOIDATETIME_CHANGED',{instance:this,'section':'date'});};this.setEnabled=function(enable){this.disabled=!enable;if(this.element){this.element.disabled=this.disabled;}};this.setSelected=function(value){this.value=value;if(this.element){this.element.value=this.value;}};this.setValue=function(value){this.setSelected(value);};};this.comboDate.parent=this;this.comboDate.render=function(){var id=this.parent.id+'_date';var name=this.parent.name+'_date';var className=this.parent.className+'_date';var o='<select name="'+name+'" id="'+id+'" className="'+className+'" onchange="'+this.parent.toString()+'.comboDate.onChange(event,this)"';if(this.disabled){o+=' disabled ';}o+='>';for(var i=0;i <=31;i++){var date=this.parent.data.date[i];o+='<option value="'+i+'"';if(date==this.value){o+=' selected ';}o+='>';o+=date;o+='</option>';}o+='</select>';return o;};this.comboMonth=new function(){this.element=null;this.disabled=false;this.parent=null;this.value=0;this.onChange=function(event,element){this.setValue(element.value);doi.message.throwMessage('DOIDATETIME_CHANGED',{instance:this,'section':'month'});};this.setEnabled=function(enable){this.disabled=!enable;if(this.element){this.element.disabled=this.disabled;}};this.setSelected=function(value){this.value=value;if(this.element){this.element.value=this.value;}};this.setValue=function(value){this.setSelected(value);};};this.comboMonth.parent=this;this.comboMonth.render=function(){var id=this.parent.id+'_month';var name=this.parent.name+'_month';var className=this.parent.className+'_month';var o='<select name="'+name+'" id="'+id+'" className="'+className+'" onchange="'+this.parent.toString()+'.comboMonth.onChange(event,this)"';if(this.disabled){o+=' disabled ';}o+='>';for(var i=0;i < this.parent.data.month.length;i++){var month=this.parent.data.month[i];o+='<option value="'+i+'"';if(i==this.value){o+=' selected ';}o+='>';o+=month;o+='</option>';}o+='</select>';return o;};this.comboYear=new function(){this.element=null;this.disabled=false;this.parent=null;this.value=0;this.onChange=function(event,element){this.setValue(element.value);doi.message.throwMessage('DOIDATETIME_CHANGED',{instance:this,'section':'year'});};this.setEnabled=function(enable){this.disabled=!enable;if(this.element){this.element.disabled=this.disabled;}};this.setSelected=function(value){this.value=value;if(this.element){this.element.value=this.value;}};this.setValue=function(value){this.setSelected(value);};};this.comboYear.parent=this;this.comboYear.render=function(){var id=this.parent.id+'_year';var name=this.parent.name+'_year';var className=this.parent.className+'_year';var o='<select name="'+name+'" id="'+id+'" className="'+className+'" onchange="'+this.parent.toString()+'.comboYear.onChange(event,this)"';if(this.disabled){o+=' disabled ';}o+='><option value="0"></option>';var yearBegin=this.parent._yearBegin;var yearEnd=this.parent._yearEnd;if(yearBegin > yearEnd){for(var year=yearEnd;year >=yearBegin;year--){o+='<option value="'+year+'"';if(year==this.value){o+=' selected ';}o+='>'+year+'</option>';}}else{for(var year=yearBegin;year <=yearEnd;year++){o+='<option value="'+year+'"';if(year==this.value){o+=' selected ';}o+='>'+year+'</option>';}}o+='</select>';return o;};this.inputHour=new function(){this.element=null;this.disabled=false;this.parent=null;this.value=0;this.onChange=function(event,element){this.setValue(element.value);doi.message.throwMessage('DOIDATETIME_CHANGED',{instance:this,'section':'hour'});};this.setEnabled=function(enable){this.disabled=!enable;if(this.element){this.element.disabled=this.disabled;}};this.setValue=function(value){value=doi.dom.parseInt(value);if(value >=24 || value < 0){this.value=0;}else{this.value=value;}if(this.element){this.element.value=this.value;}};};this.inputHour.parent=this;this.inputHour.render=function(){var id=this.parent.id+'_hour';var name=this.parent.name+'_hour';var className=this.parent.className+'_hour';var o='<select name="'+name+'" id="'+id+'" class="'+className+'"';if(this.disabled){o+=' disabled ';}o+=' onchange="'+this.parent.toString()+'.inputHour.onChange(event,this)">';for(var i=0;i <=23;i++){o+='<option value="'+i+'"';if(i==this.value){o+=' selected ';}o+='>'+i+'</option>';}o+='</select>';return o;};this.inputMinute=new function(){this.element=null;this.disabled=false;this.parent=null;this.value=0;this.onChange=function(event,element){this.setValue(element.value);doi.message.throwMessage('DOIDATETIME_CHANGED',{instance:this,'section':'minute'});};this.setEnabled=function(enable){this.disabled=!enable;if(this.element){this.element.disabled=this.disabled;}};this.setValue=function(value){value=doi.dom.parseInt(value);if(value >=60 || value < 0){this.value=0;}else{this.value=value;}if(this.element){this.element.value=this.value;}};};this.inputMinute.parent=this;this.inputMinute.render=function(){var id=this.parent.id+'_minute';var name=this.parent.name+'_minute';var className=this.parent.className+'_minute';var o='<select name="'+name+'" id="'+id+'" class="'+className+'"';if(this.disabled){o+=' disabled ';}o+=' onchange="'+this.parent.toString()+'.inputMinute.onChange(event,this)">';for(var i=0;i <=59;i++){o+='<option value="'+i+'"';if(i==this.value){o+=' selected ';}o+='>'+i+'</option>';}o+='</select>';return o;};this.inputSecond=new function(){this.element=null;this.disabled=false;this.parent=null;this.value=0;this.onChange=function(event,element){this.setValue(element.value);doi.message.throwMessage('DOIDATETIME_CHANGED',{instance:this,'section':'second'});};this.setEnabled=function(enable){this.disabled=!enable;if(this.element){this.element.disabled=this.disabled;}};this.setValue=function(value){value=doi.dom.parseInt(value);if(value >=60 || value < 0){this.value=0;}else{this.value=value;}if(this.element){this.element.value=this.value;}};};this.inputSecond.parent=this;this.inputSecond.render=function(){var id=this.parent.id+'_second';var name=this.parent.name+'_second';var className=this.parent.className+'_second';var o='<select name="'+name+'" id="'+id+'" class="'+className+'"';if(this.disabled){o+=' disabled ';}o+=' onchange="'+this.parent.toString()+'.inputSecond.onChange(event,this)">';for(var i=0;i <=59;i++){o+='<option value="'+i+'"';if(i==this.value){o+=' selected ';}o+='>'+i+'</option>';}o+='</select>';return o;};this.caller=new function(){this.parent=null;this.element=null;this.disabled=false;this.visibility=true;this.setEnabled=function(enable){this.disabled=!enable;if(this.element){if(enable){this.element.className=this.parent.className+'_caller';}else{this.element.className=this.parent.className+'_caller_disabled';}}};this.setVisibility=function(visible){this.visibility=!!visible;};};this.caller.parent=this;this.caller.onClick=function(event,element){doi.event.stopPropagation(event);if(this.disabled){return;}this.parent.calendar.toggle();};this.caller.onMouseOut=function(event,element){doi.event.setEvent(event);doi.event.stopPropagation();if(this.disabled){return;}var reltg=doi.event.toTarget;if(!reltg){return;}while((reltg !=element)&&(reltg.nodeName !='BODY')&&(reltg.nodeName !='HTML')){reltg=reltg.parentNode;}if(reltg==element){return;}element.className=this.parent.className+'_caller';};this.caller.onMouseOver=function(event,element){doi.event.stopPropagation(event);if(this.disabled){return;}element.className=this.parent.className+'_caller_hover';};this.caller.render=function(){var id=this.parent.id+'_caller';var className=this.parent.className+'_caller';if(!this.visibility){return '';}var o='<div id="'+id+'" class="'+className+'"';o+=' onmouseover="'+this.parent.toString()+'.caller.onMouseOver(event,this)" ';o+=' onmouseout="'+this.parent.toString()+'.caller.onMouseOut(event,this)" ';o+=' onclick="'+this.parent.toString()+'.caller.onClick(event,this)"';o+='>&#9660;</div>';return o;};this.calendar=new function(){this._lastCell={element:null,row:0,col:0};this._selectedCounter='year';this.parent=null;this.frame=null;this.element=null;this.containerElement=[];};this.calendar.parent=this;this.calendar.findDateCell=function(date){for(var i=1;i <=this.parent._weekCount;i++){for(var j=0;j < 7;j++){var elm=this.containerElement[1].childNodes[0].childNodes[0].rows[i].childNodes[j];if(elm.innerHTML==date){return {element:elm,row:i,col:j};}}}return {element:null,row:0,col:0};};this.calendar.onCellClick=function(event,element,val,week,day){var lastDate=this.parent.date;this.parent.setValue(val,this.parent.month+1,this.parent.year);var className=this.parent.className+'_cal';if(!this._lastCell.element){this._lastCell=this.findDateCell(lastDate);}if(this._lastCell.element){var elm=element.parentNode.parentNode.rows[this._lastCell.row].childNodes[this._lastCell.col];if(this._lastCell.col==(day-1)){elm.className=className+'_hover';}else{elm.className=className;}}this._lastCell={row:week,col:day-1,element:element};element.className=className+'_selected';};this.calendar.onCellMouseOut=function(event,element,cellDate,week,day){doi.event.setEvent(event);var reltg=doi.event.toTarget;if(!reltg){return;}while((reltg !=element)&&(reltg.nodeName !='BODY')&&(reltg.nodeName !='HTML')){reltg=reltg.parentNode;}if(reltg==element){return;}var className=this.parent.className+'_cal';element.parentNode.parentNode.rows[0].childNodes[day-1].className=className+'_day';for(var i=1;i <=week;i++){var elm=element.parentNode.parentNode.rows[i].childNodes[day-1];if(this.parent.date==elm.innerHTML){elm.className=className+'_selected';}else{elm.className=className;}}for(var i=week+1;i <=this.parent._weekCount;i++){var elm=element.parentNode.parentNode.rows[i].childNodes[day-1];if(this.parent.date==elm.innerHTML){elm.className=className+'_selected';}else{elm.className=className;}}element.parentNode.className=className;if(cellDate==this.parent.date){element.className=className+'_selected';}else{element.className=className;}};this.calendar.onCellMouseOver=function(event,element,week,day){doi.event.setEvent(event);var className=this.parent.className+'_cal';element.parentNode.parentNode.rows[0].childNodes[day-1].className=className+'_day_hover';for(var i=1;i <=week;i++){var elm=element.parentNode.parentNode.rows[i].childNodes[day-1];if(this.parent.date==elm.innerHTML){elm.className=className+'_selected';}else{elm.className=className+'_hover';}}for(var i=week+1;i <=this.parent._weekCount;i++){var elm=element.parentNode.parentNode.rows[i].childNodes[day-1];if(this.parent.date==elm.innerHTML){elm.className=className+'_selected';}else{elm.className=className+'_hover';}}element.className=className+'_cell_hover';element.parentNode.className=className+'_hover';};this.calendar.render=function(){var id=this.parent.id+'_calendar';var className=this.parent.className+'_calendar';var o='<table class="'+className+'" border="0" cellpadding="0" cellspacing="0">';o+='<tr><td id="'+id+'">';o+='<div id="'+id+'_1" class="'+className+'_1">'+this.renderButton()+'</div>';o+='<div id="'+id+'_2" class="'+className+'_2">'+this.renderCalendar()+'</div>';o+='<div id="'+id+'_3" class="'+className+'_3">'+this.renderOthers()+'</div>';o+='</td></tr></table>';if(this.frame){this.frame.setContent(o);}else{this.frame=new doi.widget.frame(o,{id:id+'_frame',className:className+'_frame',zIndex:this.parent.zIndex});this.frame.setShadow(this.parent.shadow);this.frame.setTimerTimeout(0);return this.frame.draw(true);}};this.calendar.renderButton=function(){var o='<table width="100%" border="0"><tr>';o+='<td>'+this.parent.prevButton.render()+'</td>';o+='<td align="center">'+this.parent.monthYearDisplay.render()+'</td>';o+='<td align="right">'+this.parent.nextButton.render()+'</td>';o+='</tr></table>';if(this.parent.calendar.containerElement[0]){var div=document.createElement('DIV');div.innerHTML=o;var tmpE=this.parent.calendar.containerElement[0];tmpE.replaceChild(div.firstChild,tmpE.firstChild);return;}return o;};this.calendar.renderCalendar=function(){var counterDate=0;var id=this.parent.id+'_cal';var className=this.parent.className+'_cal';var o='<table class="'+className+'" border="0" cellpadding="0" cellspacing="0">';o+='<tr class="'+className+'_day">';for(var i=1;i <=this.parent.data.day.length-1;i++){o+='<td class="'+className+'_day">'+this.parent.data.day[i]+'</td>';}o+='</tr>';var dayBegin=(this.parent._dayBegin==0)? dayBegin=7:dayBegin=this.parent._dayBegin;for(var i=1;i <=this.parent._weekCount;i++){o+='<tr class="'+className+'">';for(var j=1;j <=7;j++){if(i==1 && j < dayBegin){o+='<td class="'+className+'">&nbsp;';}else{counterDate++;if(counterDate <=this.parent._dateEnd){o+='<td onclick="'+this.parent.toString()+'.calendar.onCellClick(event,this,'+counterDate+','+i+','+j+')"';if(counterDate==this.parent.date){o+=' class="'+className+'_selected"';this._lastCell.row=i+1;this._lastCell.col=j-1;}else{o+=' class="'+className+'"';}o+=' onmouseover="'+this.parent.toString()+'.calendar.onCellMouseOver(event,this,'+i+','+j+')" ';o+=' onmouseout="'+this.parent.toString()+'.calendar.onCellMouseOut(event,this,'+counterDate+','+i+','+j+')" style="cursor:pointer;">'+counterDate;}else{o+='<td class="'+className+'">&nbsp;';}}o+='</td>';}o+='</tr>';}o+='</table>';if(this.containerElement[1]){var div=document.createElement('DIV');div.innerHTML=o;var tmpE=this.containerElement[1];tmpE.replaceChild(div.firstChild,tmpE.firstChild);this._lastCell=this.findDateCell(this.parent.date);this.frame.resize();return;}return o;};this.calendar.renderOthers=function(){var className=this.parent.className;var o='<table width="100%"><tr>';o+='<td align="center"><div class="'+className+'_today"';o+=' onclick="'+this.parent.toString()+'.calendar.setToday(event)" style="cursor:pointer"';o+=' onmouseover="this.className=\''+className+'_today_hover\'"';o+=' onmouseout="this.className=\''+className+'_today\'" ';o+='>Today</div></td>';o+='<td align="center"><div class="'+className+'_clear"';o+=' onclick="'+this.parent.toString()+'.calendar.setClear(event)" style="cursor:pointer"';o+=' onmouseover="this.className=\''+className+'_clear_hover\'"';o+=' onmouseout="this.className=\''+className+'_clear\'" ';o+='>Clear</div></td>';o+='</tr></table>';return o;};this.calendar.setClear=function(event){doi.message.throwMessage('DOIDATETIME_CHANGED',{instance:this,'section':'clear'});};this.calendar.setToday=function(event){doi.message.throwMessage('DOIDATETIME_CHANGED',{instance:this,'section':'today'});};this.calendar.toggle=function(){if(!this.frame || this.disabled){return;}if(!this.frame.visible){var cd=doi.dom.getClientDimension();var scr=doi.dom.getBodyScroll();this.frame.show(0,0);if(cd.height+scr.scrollTop < this.frame.top+this.frame.height){this.frame.moveTo(0,-this.parent.parentElement.offsetHeight-this.frame.height);}}else{this.frame.hide();}};this.nextButton=new function(){this.parent=null;this.onClick=function(event,element){if(this.parent.calendar._selectedCounter=='year'){if(this.parent._yearBegin < this.parent._yearEnd){if(this.parent.year < this.parent._yearEnd){this.parent.year++;this.parent.setValue(this.parent.date,this.parent.month+1,this.parent.year);doi.message.throwMessage('DOIDATETIME_CHANGED',{instance:this,'section':'next'});}}else{if(this.parent.year > this.parent._yearEnd){this.parent.year--;this.parent.setValue(this.parent.date,this.parent.month+1,this.parent.year);doi.message.throwMessage('DOIDATETIME_CHANGED',{instance:this,'section':'next'});}}}else{if(this.parent.month < 11){this.parent.month++;this.parent.setValue(this.parent.date,this.parent.month+1,this.parent.year);doi.message.throwMessage('DOIDATETIME_CHANGED',{instance:this,'section':'next'});}}};this.onMouseOver=function(event,element){doi.event.setEvent(event);doi.event.stopPropagation();element.className=this.parent.className+'_next_hover';};this.onMouseOut=function(event,element){doi.event.setEvent(event);doi.event.stopPropagation();var reltg=doi.event.toTarget;if(!reltg){return;}while((reltg !=element)&&(reltg.nodeName !='BODY')&&(reltg.nodeName !='HTML')){reltg=reltg.parentNode;}if(reltg==element){return;}element.className=this.parent.className+'_next';};this.render=function(){var className=this.parent.className+'_next';var o='<div class="'+className+'"';o+=' onclick="'+this.parent.toString()+'.nextButton.onClick(event,this)"';o+=' onmouseover="'+this.parent.toString()+'.nextButton.onMouseOver(event,this)"';o+=' onmouseout="'+this.parent.toString()+'.nextButton.onMouseOut(event,this)"';o+=' style="cursor:pointer;">&raquo;</div>';return o;};};this.nextButton.parent=this;this.prevButton=new function(){this.parent=null;this.onClick=function(event,element){if(this.parent.calendar._selectedCounter=='year'){if(this.parent._yearBegin < this.parent._yearEnd){if(this.parent._yearBegin < this.parent.year){this.parent.year--;this.parent.setValue(this.parent.date,this.parent.month+1,this.parent.year);doi.message.throwMessage('DOIDATETIME_CHANGED',{instance:this,'section':'prev'});}}else{if(this.parent._yearBegin > this.parent.year){this.parent.year++;this.parent.setValue(this.parent.date,this.parent.month+1,this.parent.year);doi.message.throwMessage('DOIDATETIME_CHANGED',{instance:this,'section':'prev'});}}}else{if(this.parent.month > 0){this.parent.month--;this.parent.setValue(this.parent.date,this.parent.month+1,this.parent.year);doi.message.throwMessage('DOIDATETIME_CHANGED',{instance:this,'section':'prev'});}}};this.onMouseOver=function(event,element){doi.event.setEvent(event);doi.event.stopPropagation();element.className=this.parent.className+'_prev_hover';};this.onMouseOut=function(event,element){doi.event.setEvent(event);doi.event.stopPropagation();var reltg=doi.event.toTarget;if(!reltg){return;}while((reltg !=element)&&(reltg.nodeName !='BODY')&&(reltg.nodeName !='HTML')){reltg=reltg.parentNode;}if(reltg==element){return;}element.className=this.parent.className+'_prev';};this.render=function(){var className=this.parent.className+'_prev';var o='<div class="'+className+'"';o+=' onclick="'+this.parent.toString()+'.prevButton.onClick(event,this)"';o+=' onmouseover="'+this.parent.toString()+'.prevButton.onMouseOver(event,this)"';o+=' onmouseout="'+this.parent.toString()+'.prevButton.onMouseOut(event,this)"';o+=' style="cursor:pointer;">&laquo;</div>';return o;};};this.prevButton.parent=this;this.monthYearDisplay=new function(){this.parent=null;this.onClick=function(event){doi.event.stopPropagation(event);if(this.parent.calendar._selectedCounter=='year'){this.parent.calendar._selectedCounter='month';}else{this.parent.calendar._selectedCounter='year';}this.parent.calendar.renderButton();};this.render=function(){var className=this.parent.className+'_info';var o='<div class="'+className+'">';if(this.parent.calendar._selectedCounter=='year'){o+='<a class="'+className+'" href="#"';o+=' onclick="'+this.parent.toString()+'.monthYearDisplay.onClick(event);return false;">';o+=this.parent.data.month[this.parent.month+1]+'</a>';o+=',[ '+this.parent.year+' ]';}else{o+='[ '+this.parent.data.month[this.parent.month+1]+' ]';o+=',<a class="'+className+'" href="#"';o+=' onclick="'+this.parent.toString()+'.monthYearDisplay.onClick(event);return false;">';o+=this.parent.year+'</a>';}o+='</div>';return o;};};this.monthYearDisplay.parent=this;};
