Calendar.setup=function(a){function b(h,i){if(typeof a[h]=="undefined"){a[h]=i}}b("inputField",null);b("displayArea",null);b("button",null);b("eventName","click");b("ifFormat","%Y/%m/%d");b("daFormat","%Y/%m/%d");b("singleClick",true);b("disableFunc",null);b("dateStatusFunc",a.disableFunc);b("dateText",null);b("firstDay",null);b("align","Br");b("range",[1900,2999]);b("weekNumbers",true);b("flat",null);b("flatCallback",null);b("onSelect",null);b("onClose",null);b("onUpdate",null);b("date",null);b("showsTime",false);b("timeFormat","24");b("electric",true);b("step",2);b("position",null);b("cache",false);b("showOthers",false);b("multiple",null);var f=["inputField","displayArea","button"];for(var d in f){if(typeof a[f[d]]=="string"){a[f[d]]=document.getElementById(a[f[d]])}}if(!(a.flat||a.multiple||a.inputField||a.displayArea||a.button)){alert("Calendar.setup:\n  Nothing to setup (no fields found).  Please check your code");return false}function g(h){var j=h.params;var i=(h.dateClicked||j.electric);if(i&&j.inputField){j.inputField.value=h.date.print(j.ifFormat);if(typeof j.inputField.onchange=="function"){j.inputField.onchange()}}if(i&&j.displayArea){j.displayArea.innerHTML=h.date.print(j.daFormat)}if(i&&typeof j.onUpdate=="function"){j.onUpdate(h)}if(i&&j.flat){if(typeof j.flatCallback=="function"){j.flatCallback(h)}}if(i&&j.singleClick&&h.dateClicked){h.callCloseHandler()}}if(a.flat!=null){if(typeof a.flat=="string"){a.flat=document.getElementById(a.flat)}if(!a.flat){alert("Calendar.setup:\n  Flat specified but can't find parent.");return false}var e=new Calendar(a.firstDay,a.date,a.onSelect||g);e.showsOtherMonths=a.showOthers;e.showsTime=a.showsTime;e.time24=(a.timeFormat=="24");e.params=a;e.weekNumbers=a.weekNumbers;e.setRange(a.range[0],a.range[1]);e.setDateStatusHandler(a.dateStatusFunc);e.getDateText=a.dateText;if(a.ifFormat){e.setDateFormat(a.ifFormat)}if(a.inputField&&typeof a.inputField.value=="string"){e.parseDate(a.inputField.value)}e.create(a.flat);e.show();return false}var c=a.button||a.displayArea||a.inputField;c["on"+a.eventName]=function(){var k=a.inputField||a.displayArea;var l=a.inputField?a.ifFormat:a.daFormat;var o=false;var h=window.calendar;if(k){a.date=Date.parseDate(k.value||k.innerHTML,l)}if(!(h&&a.cache)){window.calendar=h=new Calendar(a.firstDay,a.date,a.onSelect||g,a.onClose||function(i){i.hide()});h.showsTime=a.showsTime;h.time24=(a.timeFormat=="24");h.weekNumbers=a.weekNumbers;o=true}else{if(a.date){h.setDate(a.date)}h.hide()}if(a.multiple){h.multiple={};for(var m=a.multiple.length;--m>=0;){var j=a.multiple[m];var n=j.print("%Y%m%d");h.multiple[n]=j}}h.showsOtherMonths=a.showOthers;h.yearStep=a.step;h.setRange(a.range[0],a.range[1]);h.params=a;h.setDateStatusHandler(a.dateStatusFunc);h.getDateText=a.dateText;h.setDateFormat(l);if(o){h.create()}h.refresh();if(!a.position){h.showAtElement(a.button||a.displayArea||a.inputField,a.align)}else{h.showAt(a.position[0],a.position[1])}return false};return e};
