
function to_from_calendar(fromInput,fromDiv,fromDisplayer,toInput,toDiv,toDisplayer,fromInitObj,toInitObj,initOptions){this.hasToCal=(typeof(toInput)!='undefined');this.fromInitObj=(typeof(fromInitObj)=='undefined')?new Object():fromInitObj;this.toInitObj=(typeof(toInitObj)=='undefined')?new Object():toInitObj;this.opts=(typeof(initOptions)=='undefined')?new Object():initOptions;this.fromRenderRequired=true;this.toRenderRequired=true;this.showFromCalendar=function(event,obj){if(typeof(obj)=='undefined')obj=this;if(obj.fromRenderRequired){obj.fromCal.render();obj.fromRenderRequired=false;}
obj.fromCal.show();if(obj.hasToCal)obj.toCal.hide();}
if(this.hasToCal)
this.showToCalendar=function(event,obj){if(obj.toRenderRequired){obj.toCal.render();obj.toRenderRequired=false;}
obj.fromCal.hide();obj.toCal.show();}
this.setFromDate=function(str){var date=JS_UTIL.parseDate(str);if(typeof(date)!='undefined'){this.fromCal.select(date);var selMonth=date.getMonth()+1;var selYear=date.getFullYear();this.fromCal.cfg.setProperty("pagedate",selMonth+'/'+selYear);}}
if(this.hasToCal)
this.setToDate=function(str){var date=JS_UTIL.parseDate(str);if(typeof(date)!='undefined'){this.toCal.select(date);var selMonth=date.getMonth()+1;var selYear=date.getFullYear();this.toCal.cfg.setProperty("pagedate",selMonth+'/'+selYear);}}
this.fromDateSelected=function(event,args,obj){this.setFromField();this.fromCal.hide();if(this.hasToCal)this.adjustToDate();}
if(this.hasToCal)
this.toDateSelected=function(event,args,obj){this.setToField();this.toCal.hide();this.adjustToDate();}
if(this.hasToCal)
this.setToField=function(){var dates=this.toCal.getSelectedDates();if(dates.length==1)
this.to_field.value=this.formattedDate(dates[0].getDate(),dates[0].getMonth()+1,dates[0].getFullYear());}
if(this.hasToCal)
this.adjustToDate=function(){var fromDate=this.fromCal.getSelectedDates()[0];var toDate=this.toCal.getSelectedDates()[0];if(typeof(fromDate)!='undefined'){var selMonth=fromDate.getMonth()+1;var selYear=fromDate.getFullYear();if((fromDate>toDate)||(typeof(toDate)=='undefined')){if(fromDate>toDate)
this.toCal.select(fromDate);this.toCal.cfg.setProperty("pagedate",selMonth+'/'+selYear);}
this.toCal.cfg.setProperty("mindate",selMonth+'/'+fromDate.getDate()+'/'+selYear);this.toRenderRequired=true;}}
this.setFromField=function(){var dates=this.fromCal.getSelectedDates();if(dates.length==1)
this.from_field.value=this.formattedDate(dates[0].getDate(),dates[0].getMonth()+1,dates[0].getFullYear());}
this.formattedDate=function(day,month,year){return JS_UTIL.leadingZeros(day,2)+JS_UTIL.dateSeparator+JS_UTIL.leadingZeros(month,2)+JS_UTIL.dateSeparator+JS_UTIL.leadingZeros(year,4);}
this._setExtraCalOptionsIfNull=function(option,value){if(typeof(this.fromInitObj[option])=='undefined'){this.fromInitObj[option]=value;}
if((this.hasToCal)&&typeof(this.toInitObj[option])=='undefined'){this.toInitObj[option]=value;}}
this._setDefaults=function(){var currDate=SERVER_VARS.currentDate;if(typeof(this.opts.mindate)=='undefined'){this.opts.mindate=currDate.getMonth()+1;this.opts.mindate+='/'+currDate.getDate()+'/'+currDate.getFullYear();}
this.opts.PAGES=(typeof(this.opts.PAGES)=='undefined')?1:this.opts.PAGES;this.opts.iframe=true;}
this.from_field=fromInput;if(this.hasToCal)
this.to_field=toInput;this._setDefaults();for(key in this.opts){this._setExtraCalOptionsIfNull(key,this.opts[key]);}
this.initialized=false;this.initEvent=new YAHOO.util.CustomEvent("fromToCalInit",this);this.initialize=function(){var overrideFromDate,overrideToDate;if(typeof(JS_UTIL.parseDate(this.from_field.value))!='undefined'){overrideFromDate=this.from_field.value;}
if((this.hasToCal)&&typeof(this.to_field)!='undefined'&&typeof(JS_UTIL.parseDate(this.to_field.value))!='undefined'){overrideToDate=this.to_field.value;}
this.fromCal=new YAHOO.widget.CalendarGroup(YAHOO.util.Dom.generateId(null,"ft_cal"),fromDiv,this.fromInitObj);if(this.hasToCal)this.toCal=new YAHOO.widget.CalendarGroup(YAHOO.util.Dom.generateId(null,"ft_cal"),toDiv,this.toInitObj);if(this.hasToCal)this.toCal.cfg.setProperty("close",true);this.fromCal.cfg.setProperty("close",true);YAHOO.util.Event.addListener(fromDisplayer,"click",this.showFromCalendar,this,true);YAHOO.util.Event.addListener(fromInput,"click",this.showFromCalendar,this,true);YAHOO.util.Event.addListener(fromInput,"focus",this.showFromCalendar,this,true);if(this.hasToCal){YAHOO.util.Event.addListener(toDisplayer,"click",this.showToCalendar,this,true);YAHOO.util.Event.addListener(toInput,"click",this.showToCalendar,this,true);YAHOO.util.Event.addListener(toInput,"focus",this.showToCalendar,this,true);}
this.fromCal.selectEvent.subscribe(this.fromDateSelected,this,true);if(this.hasToCal)this.toCal.selectEvent.subscribe(this.toDateSelected,this,true);this.setFromField();if(this.hasToCal)this.setToField();this.setFromDate(overrideFromDate);if(this.hasToCal)this.setToDate(overrideToDate);if(YAHOO.lang.trim(this.from_field.value)==''){this.from_field.value='-Select-';}
if(this.hasToCal&&YAHOO.lang.trim(this.to_field.value)==''){this.to_field.value='-Select-';}
this.initEvent.fire();this.initialized=true;}
this.initializeElements=function(){this.cal_Obj.initialize();}
this.init=function(){var loader=new YAHOO.util.YUILoader({require:["calendar"],skin:JS_UTIL.YUI_SKIN,base:'/static/js/yui/2_5_1/',onSuccess:this.initializeElements,loadOptional:false,onFailure:function(o){alert("error: "+YAHOO.lang.dump(o));}});loader.cal_Obj=this;loader.insert();}
if(this.opts.deferLoad!=true)
this.init();}