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