/*ADOBE SYSTEMS INCORPORATED
Copyright 2007 Adobe Systems Incorporated
All Rights Reserved.

NOTICE:  Adobe permits you to use, modify, and distribute this file in accordance with the
terms of the Adobe license agreement accompanying it.  If you have received this file from a
source other than Adobe, then your use, modification, or distribution of it requires the prior
written permission of Adobe.*/
if(!ColdFusion.Calendar){
ColdFusion.Calendar={};
}
ColdFusion.Calendar.monthNamesShort=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
ColdFusion.Calendar.monthNamesLong=new Array("January","February","March","April","May","June","July","August","September","October","November","December");
ColdFusion.Calendar.dayNamesShort=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
ColdFusion.Calendar.dayNamesLong=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
ColdFusion.Calendar.calTableIdCounter=0;
if(navigator.userAgent.toLowerCase().indexOf("safari")>-1){
var set_month=Date.prototype.setMonth;
Date.prototype.setMonth=function(num){
if(num<=-1){
var n=Math.ceil(-num);
var _34c=Math.ceil(n/12);
var _34d=(n%12)?12-n%12:0;
this.setFullYear(this.getFullYear()-_34c);
return set_month.call(this,_34d);
}else{
return set_month.apply(this,arguments);
}
};
}
if(!String.escape){
String.escape=function(_34e){
return _34e.replace(/('|\\)/g,"\\$1");
};
}
ColdFusion.Calendar.setUpCalendar=function(_34f,mask,_351,_352,_353,_354,_355){
var _356=ColdFusion.DOM.getElement(_34f+_354+"_cf_button",_354);
var _357=ColdFusion.DOM.getElement(_34f,_354);
var _358=null;
var _359=null;
if(_357.value!=""){
_358=_357.value;
_359=_358.split("/");
}
var _35a=_34f+"_cf_calendar"+ColdFusion.Calendar.calTableIdCounter;
ColdFusion.Calendar.calTableIdCounter++;
var _35b=ColdFusion.DOM.getElement(_34f+_354+"_cf_container",_354);
var _35c=_357.offsetLeft;
ColdFusion.DOM.getElement(_34f+_354+"_cf_container",_354).style.left=_35c;
YAHOO.widget.Calendar.IMG_ROOT=_cf_ajaxscriptsrc+"/resources/yui/";
var _35d;
if(_359&&_359[0]&&_359[2]){
_35d=new YAHOO.widget.Calendar(_35a,_34f+_354+"_cf_container",{close:true,pagedate:_359[0]+"/"+_359[2]});
}else{
_35d=new YAHOO.widget.Calendar(_35a,_34f+_354+"_cf_container",{close:true});
}
_35d.calendarinputid=_34f;
_35d.calendarinput=_357;
_35d.mask=mask;
_35d.formname=_354;
_35d.cfg.setProperty("MONTHS_LONG",_353);
_35d.cfg.setProperty("WEEKDAYS_SHORT",_352);
_35d.cfg.setProperty("START_WEEKDAY",_351);
ColdFusion.objectCache[_35a+_354]=_35d;
_35d.select(_358);
_35d.render();
_35d.hide();
_35d.selectEvent.subscribe(ColdFusion.Calendar.handleDateSelect,_35d,true);
YAHOO.util.Event.addListener(_34f+_354+"_cf_button","click",ColdFusion.Calendar.handleCalendarLinkClick,_35d,true);
if(_355!=null){
var year=_355.year;
var _35f=_355.month;
var day=_355.day;
var _361=new Date(year,_35f.valueOf()-1,day);
_357.value=ColdFusion.Calendar.createFormattedOutput(_34f,mask,year,_35f,day,_361);
}
};
ColdFusion.Calendar.openedCalendarInstance=null;
ColdFusion.Calendar.handleCalendarLinkClick=function(type,args){
var _364=args;
if(ColdFusion.Calendar.openedCalendarInstance){
ColdFusion.Calendar.openedCalendarInstance.hide();
}
if(!_364.extMask){
var _365=ColdFusion.Calendar.convertToExtMask(_364.mask);
_364.extMask=_365;
}
var _366=ColdFusion.DOM.getElement(args.calendarinputid,_364.formname).value;
var _367=null;
if(typeof (_366)!="undefined"&&ColdFusion.trim(_366)!=""){
_367=Date.parseDate(_366,_364.extMask);
}
if(_367!=null){
_364.setMonth(_367.getMonth());
_364.setYear(_367.getFullYear());
_364.select(_367);
_364.render();
}
ColdFusion.Calendar.openedCalendarInstance=_364;
_364.show();
};
ColdFusion.Calendar.handleDateSelect=function(type,args,_36a){
var _36b=args[0];
var date=_36b[0];
var year=date[0],month=date[1],day=date[2];
var _36e=new Date(year,month.valueOf()-1,day);
_36a.calendarinput.value=ColdFusion.Calendar.createFormattedOutput(_36a.calendarinputid,_36a.mask,year,month,day,_36e);
ColdFusion.Event.callBindHandlers(_36a.calendarinputid,null,"change");
_36a.hide();
};
ColdFusion.Calendar.convertToExtMask=function(mask){
mask=mask.toUpperCase();
if(mask.indexOf("DD")!=-1){
mask=mask.replace(/DD/g,"d");
}
if(mask.indexOf("D")!=-1){
mask=mask.replace(/D/g,"d");
}
if(mask.indexOf("MMMM")!=-1){
mask=mask.replace(/MMMM/g,"F");
}else{
if(mask.indexOf("MMM")!=-1){
mask=mask.replace(/MMM/g,"M");
}else{
if(mask.indexOf("MM")!=-1){
mask=mask.replace(/MM/g,"m");
}else{
if(mask.indexOf("M")!=-1){
mask=mask.replace(/M/g,"m");
}
}
}
}
if(mask.indexOf("YYYY")!=-1){
mask=mask.replace(/YYYY/g,"Y");
}
if(mask.indexOf("YY")!=-1){
mask=mask.replace(/YY/g,"y");
}
if(mask.indexOf("EEEE")!=-1){
mask=mask.replace(/EEEE/g,"l");
}
if(mask.indexOf("EEE")!=-1){
mask=mask.replace(/EEE/g,"D");
}
if(mask.indexOf("E")!=-1){
mask=mask.replace(/E/g,"w");
}
return mask;
};
ColdFusion.Calendar.createFormattedOutput=function(_370,mask,year,_373,day,date){
mask=mask.toUpperCase();
year=new String(year);
_373=new String(_373);
day=new String(day);
var _376=date.getDay();
if(mask.indexOf("DD")!=-1){
if(day.length==1){
day="0"+day;
}
mask=mask.replace(/DD/g,day);
}
if(mask.indexOf("D"!=-1)){
if(day.length!=-1&&day.charAt(0)=="0"){
day=day.charAt(1);
}
mask=mask.replace(/D/g,day);
}
if(mask.indexOf("MMMM")!=-1){
_373=ColdFusion.Calendar.monthNamesLong[_373.valueOf()-1];
mask=mask.replace(/MMMM/g,_373);
}else{
if(mask.indexOf("MMM")!=-1){
_373=ColdFusion.Calendar.monthNamesShort[_373.valueOf()-1];
mask=mask.replace(/MMM/g,_373);
}else{
if(mask.indexOf("MM")!=-1){
if(_373.length==1){
_373="0"+_373;
}
mask=mask.replace(/MM/g,_373);
}else{
if(mask.indexOf("M")!=-1){
if(_373.length!=-1&&_373.charAt(0)=="0"){
_373=_373.charAt(1);
}
mask=mask.replace(/M/g,_373);
}
}
}
}
if(mask.indexOf("YYYY")!=-1){
mask=mask.replace(/YYYY/g,year);
}
if(mask.indexOf("YY")!=-1){
year=year.substring(2);
mask=mask.replace(/YY/g,year);
}
if(mask.indexOf("EEEE")!=-1){
_376=ColdFusion.Calendar.dayNamesLong[_376.valueOf()];
mask=mask.replace(/EEEE/g,_376);
}
if(mask.indexOf("EEE")!=-1){
_376=ColdFusion.Calendar.dayNamesShort[_376.valueOf()];
mask=mask.replace(/EEE/g,_376);
}
if(mask.indexOf("E")!=-1){
_376=_376.valueOf();
_376=new String(_376);
if(_376.length!=-1&&_376.charAt(0)=="0"&&_376.charAt(1)){
_376=_376.charAt(1);
}
mask=mask.replace(/E/g,_376);
}
return mask;
};
