var viewCalendar; var hideCalendar; function calendar(params) { var _C_CalendarParams = function() { var mydata = new Object(); var ctrl; var $alert; this.data = access; this.check = testif; this.dump = print_r; function access(mode,value,type) { /* anz=2 % 0 */ if (typeof(type) != "undefined") { var pointer; if (typeof(mydata[mode]) == "object" && mydata[mode] == null) { mydata[mode] = new Array(); } if (value === true) { pointer = mydata[mode].length; } else { pointer = type; } mydata[mode][pointer] = value; } /* anz=2 % 0 */ else if (typeof(value) != "undefined") { var old = mydata[mode]; mydata[mode] = value; return old; } /* anz=2 % 0 */ else if (typeof(mode) != "undefined") { if (typeof(mydata[mode]) != "undefined") { return mydata[mode]; } else { alert("error 125 -- access to undefined data "+mode); return null; } } else { return mydata; } } function testif(key) { return (typeof(mydata[key]) != "undefined") ? true : false; } function print_r(a) { var $argv = arguments; var dumproot; if ($argv.length > 0) { if (typeof(mydata[a]) == "undefined" || mydata[a] == null) return; else dumproot = mydata[a]; } else { dumproot = mydata; } $alert = ""; if (dumproot.length && dumproot.length > 0) { $alert += "count of elements: " + dumproot.length + "\n"; for (var i=0; i < dumproot.length; i++) { $alert += i+" = "+ typeof(dumproot[i])+" "+dumproot[i]+"\n"; } } else { for (var e in dumproot) { $alert += e+" = "+ typeof(dumproot[e])+" "+ dumproot[e]+"\n"; } } } }; var _C_val2digits = function(n) { if (n < 10) { return "0"+parseInt(n,10); } else { return n; } }; var _C_GetCellCoordinates = function(e) { var col = 0, row = 0; var tagName = e.tagName.toUpperCase(); if (e.tagName.toUpperCase() == "TD") { var my_tr = e.parentNode; for (var i=0; i < my_tr.childNodes.length; i++) { if (my_tr.childNodes[i] == e) { col = i; break; } } var my_tbody = my_tr.parentNode; for (var i=0; i < my_tbody.childNodes.length; i++) { if (my_tbody.childNodes[i] == my_tr) { row = i; break; } } } else { } var addr = ""+row+"."+col; return {row:row,col:col,addr:addr,tagName:tagName}; }; var _C_ChangeDate = function(addr,value) { var m,y, mn,yn; if (addr == "month") { var nm = ctrl(addr)+value; if (nm > 11) { m = ctrl("month",nm % 12); y = ctrl("year",ctrl("year") + 1); } else if (nm < 0) { m = ctrl("month",(nm+12) % 12); y = ctrl("year",ctrl("year") - 1); } else { m = ctrl("month",nm % 12); y = ctrl("year"); } } else if (addr == "year") { y = ctrl(addr,ctrl(addr)+value); m = ctrl("month"); } if (ctrl("datecontrol") !== null) { yn = ctrl("year"); mn = ctrl("month"); var today = new Date(); if (ctrl("datecontrol") == "future") { var newdate = new Date( yn,mn,today.getDate(),23,59,59); if (Number(newdate) < Number(today)) { ctrl("year",y); ctrl("month",m); return false; } } else if (ctrl("datecontrol") == "past") { var newdate = new Date( yn,mn,today.getDate(),0,0,0); if (Number(newdate) > Number(today)) { ctrl("year",y); ctrl("month",m); return false; } } } return 0; }; var _C_changeDecade = function(e) { var rewe = e.previousSibling; var forw = e.nextSibling; var value = null; if (rewe) { value = parseInt(rewe.firstChild.nodeValue,10); } else if (forw) { value = parseInt(forw.firstChild.nodeValue,10); value -= 11; } var div = e.parentNode; for (var i=1; i<11;i++) { div.childNodes[i].firstChild.nodeValue = value+i; } }; var _C_setYearTo = function(e) { var value = parseInt(e.firstChild.nodeValue,10); ctrl("year",value); var pd = e.parentNode; var root = ctrl("root"); root.removeChild(pd); _C_fillCalendarPage(); }; var _C_choiseYear = function() { var div = document.createElement("div"); if (ctrl("stylesheet") == false) { div.style.position = "absolute"; div.style.top = "-50px"; div.style.left = "150px"; div.style.backgroundColor = "rgb(192,192,192)"; div.style.fontFamily = "Arial"; div.style.fontWeight = "bold"; div.style.padding = "8px"; div.style.cursor = "default"; div.style.border = "outset 2px rgb(192,192,192)"; div.style.borderRadius = "10px"; div.style.boxShadow = "10px 10px 5px 2px rgba(127,127,127,0.5)"; } else { div.className = "choiseyear"; } { var indiv = document.createElement("div"); if (ctrl("stylesheet") == false) { indiv.style.textAlign = "center"; indiv.style.border = "outset 2px rgb(192,192,192)"; } else { indiv.className = "yes1"; } indiv.onclick = new Function ("_C_changeDecade(this);"); var text = document.createTextNode(String.fromCharCode(8657)); indiv.appendChild(text); div.appendChild(indiv); for (var i=ctrl("year") - 5; i < ctrl("year") + 5;i++) { var indiv = document.createElement("div"); if (ctrl("stylesheet") == false) { indiv.style.border = "outset 2px #c0c0c0"; indiv.style.fontWeight = "bold"; } else { indiv.className = "yes1"; } indiv.onclick = new Function ("_C_setYearTo(this);"); var text = document.createTextNode(i); indiv.appendChild(text); div.appendChild(indiv); } var indiv = document.createElement("div"); if (ctrl("stylesheet") == false) { indiv.style.border = "outset 2px #c0c0c0"; indiv.style.textAlign = "center"; } else { indiv.className = "yes1"; } indiv.onclick = new Function ("_C_changeDecade(this);"); var text = document.createTextNode(String.fromCharCode(8659)); indiv.appendChild(text); div.appendChild(indiv); } var root = ctrl("root"); root.appendChild(div); }; var _C_updateRoot = function(bit) { var c = ctrl("root"); if (bit&1) c.style.left = ctrl("cal_left") + "px"; if (bit&2)c.style.top = ctrl("cal_top") + "px"; if (bit&4)c.style.width = ctrl("cal_width") + "px"; if (bit&8)c.style.height = ctrl("cal_height") + "px"; }; var _C_onFocusCallback = function(e) { var elem, evt = e ? e:event; if (evt.srcElement) { elem = evt.srcElement } else if (evt.target) { elem = evt.target } ctrl("element",elem); _C_viewCalendar(); }; var _C_onMouseWheelCallback = function(e) { var elem, evt = e ? e:event; var delta; if (evt.srcElement) { elem = evt.srcElement } else if (evt.target) { elem = evt.target } var cell = _C_GetCellCoordinates(elem); var v = (elem.firstChild.nodeValue) ? (elem.firstChild.nodeValue) : "--"; if (evt.wheelDelta) { delta = evt.wheelDelta/120; if (window.opera) {delta = -delta;} } else if (evt.detail) { delta = evt.detail/ (-3); } var retvalue = 0; if (delta > 0) { if (cell.col == 1) retvalue = _C_ChangeDate("month",-1); if (cell.col == 2 || retvalue == -1) _C_ChangeDate("year",-1); } else if (delta < 0) { if (cell.col == 1) retvalue = _C_ChangeDate("month",1); if (cell.col == 2 || retvalue == 1) _C_ChangeDate("year",1); } _C_fillCalendarPage(); evt.preventDefault ? evt.preventDefault():""; return false; }; var _C_onMouseClickCallback = function(e) { var elem, evt = e ? e:event; var m,y,retvalue; if (evt.srcElement) { elem = evt.srcElement } else if (evt.target) { elem = evt.target } var cell = _C_GetCellCoordinates(elem); var value = null; if (elem.firstChild && elem.firstChild.nodeValue) { value = (elem.firstChild.nodeValue.charCodeAt(0) == 160) ? "":elem.firstChild.nodeValue; } if (cell.tagName == "TD") { switch (cell.addr) { /* anz=2 % 0 */ case "0.0": { retvalue = _C_ChangeDate("month",-1); if (retvalue < 0) _C_ChangeDate("year",-1); _C_fillCalendarPage(); } break; /* anz=2 % 0 */ case "0.3": { retvalue = _C_ChangeDate("month",1); if (retvalue > 0) _C_ChangeDate("year",1); _C_fillCalendarPage(); } break; /* anz=2 % 0 */ case "0.1": {} break; /* anz=2 % 0 */ case "0.2": { _C_choiseYear(); } break; default: { if (value != "" && ctrl("datecontrol") !== null) { y = ctrl("year"); m = ctrl("month"); var today = new Date(); if (ctrl("datecontrol") == "future") { var newdate = new Date( y,m,value,23,59,59); if (Number(newdate) < Number(today)) { return false; } } else if (ctrl("datecontrol") == "past") { var newdate = new Date( y,m,value,0,0,0); if (Number(newdate) > Number(today)) { return false; } } } if (value != "") { var z; if (ctrl("result") == "readable") { if (ctrl("format") != null) { if (typeof(strftime) == 'function') { var zz = Date.UTC(ctrl("year"),ctrl("month"),value) / 1000; z = strftime(ctrl("format"),zz); } else { z = _C_val2digits(value) + "." + _C_val2digits(1+ctrl("month"))+"."+ctrl("year"); } } else { z = _C_val2digits(value) + "." + _C_val2digits(1+ctrl("month"))+"."+ctrl("year"); } } else if (ctrl("result") == "unixtime") { z = Date.UTC(ctrl("year"),ctrl("month"),value) / 1000; } if (ctrl("onclick") != null) { var anz = ctrl("onclick").length; if (anz == 2) { ctrl("onclick")(z,ctrl("element")); } else { ctrl("onclick")(z); } return; } else if (ctrl("init") == "indirect") { var addr = ctrl("element").value; var ele = document.getElementsByName(addr)[0]; if (ele) ele.value = z; } else { ctrl("element").value = z; if (ctrl("touch") === true) { ctrl("element").focus(); ctrl("element").blur(); } } hideCalendar(); } } break; } } else if (cell.tagName == "DIV") { var pDiv = elem.parentNode; var o = ctrl("root"); var po = o.parentNode; if (pDiv == o) { po.removeChild(o); _C_addMouseMove(document,false); } } }; var _C_onDblClickCallback = function(e) { }; var _C_onMouseMoveCallback = function(e) { var elem, evt = e ? e:event; if (evt.srcElement) { elem = evt.srcElement } else if (evt.target) { elem = evt.target } ctrl("mouse_position_left",((evt.pageX) ? evt.pageX : ((evt.clientX) ? evt.clientX:0))); ctrl("mouse_position_top",((evt.pageY) ? evt.pageY : ((evt.clientY) ? evt.clientY:0))); var verti = "--"; if (test("cal_top")) { inner = (ctrl("mouse_position_top") > ctrl("cal_top")) ? true:false; inner = (ctrl("mouse_position_top") < ctrl("cal_top")+ctrl("cal_height"))?inner:false; inner = (ctrl("mouse_position_left") > ctrl("cal_left")) ? inner:false; inner = (ctrl("mouse_position_left") < ctrl("cal_left")+ctrl("cal_width"))?inner:false; if (inner) { if (evt.ctrlKey == true) { if (test("ctrlKey")==false || ctrl("ctrlKey") == false) { var a = new Array(ctrl("mouse_position_left"),ctrl("mouse_position_top"),ctrl("cal_left"),ctrl("cal_top")); ctrl("save",a); } ctrl("ctrlKey",true); var xWay = ctrl("mouse_position_left") - ctrl("save")[0]; var yWay = ctrl("mouse_position_top") - ctrl("save")[1]; ctrl("cal_left",ctrl("save")[2] + xWay); ctrl("cal_top", ctrl("save")[3] + yWay); _C_updateRoot(0x3); } else { ctrl("ctrlKey",false); } } else { ctrl("ctrlKey",false); } } else { } }; var _C_addMouseWheel = function(element) { if (element.addEventListener) element.addEventListener("DOMMouseScroll", _C_onMouseWheelCallback, false); else if (element.attachEvent) element.attachEvent("onmousewheel", _C_onMouseWheelCallback); }; var _C_addMouseClick = function(element) { if (element.addEventListener) element.addEventListener("click", _C_onMouseClickCallback, false); else if (element.attachEvent) element.attachEvent("onclick", _C_onMouseClickCallback); }; var _C_addMouseDblClick = function(element) { if (element.addEventListener) element.addEventListener("dblclick", _C_onDblClickCallback, false); else if (element.attachEvent) element.attachEvent("ondblclick", _C_onDblClickCallback); }; var _C_addMouseMove = function(element,ctrl) { if (element.addEventListener) { if (typeof(ctrl) == true) { element.addEventListener("mousemove", _C_onMouseMoveCallback, false); } else { element.removeEventListener("mousemove", _C_onMouseMoveCallback, false); } } else if (element.attachEvent) { if (typeof(ctrl) == true) { element.attachEvent("onmousemove", _C_onMouseMoveCallback); } else { element.detachEvent("onmousemove", _C_onMouseMoveCallback); } } }; var _C_makeCalendarPage = function() { var calendar_root = ctrl("root"); if(calendar_root.childNodes.length > 0) { var table = calendar_root.firstChild; if (table.tagName.toUpperCase() == "TABLE") { return; } else { alert("error 788 -- filling calenderpage failed"); } } var table = document.createElement("table"); if (ctrl("stylesheet") == false) { table.border = 0; table.cellPadding = "0"; table.cellSpacing = "1"; table.width = "280px"; table.style.fontFamily = "Arial"; table.style.fontWeight = "bold"; table.style.margin = "10px"; } else { table.className = "calendarFrame"; } var tbody = document.createElement("tbody"); tbody.id="calendarPage"; var tr = document.createElement("tr"); var td = document.createElement("td"); { var Text = document.createTextNode(String.fromCharCode(8656)); _C_addMouseClick(td); _C_addMouseDblClick(td); if (ctrl("stylesheet") == false) { td.style.textAlign = "center"; td.style.border = "outset 2px #C0C0C0"; td.style.borderRadius = "5px"; td.style.cursor = "pointer"; } else { td.className = "link"; } td.appendChild(Text); } tr.appendChild(td); var td = document.createElement("td"); { _C_addMouseWheel(td); _C_addMouseClick(td); if (ctrl("stylesheet") == false) { td.style.border = "outset 2px #C0C0C0"; td.style.borderRadius = "5px"; td.style.cursor = "n-resize"; } else { td.className = "roll"; } td.colSpan=3; var Text = document.createTextNode("."); td.appendChild(Text); } tr.appendChild(td); var td = document.createElement("td"); { _C_addMouseWheel(td); _C_addMouseClick(td); if (ctrl("stylesheet") == false) { td.style.border = "outset 2px #C0C0C0"; td.style.borderRadius = "5px"; td.style.cursor = "n-resize"; td.style.textAlign="center"; } else { td.className = "click_roll"; } td.colSpan=2; var Text = document.createTextNode("."); td.appendChild(Text); } tr.appendChild(td); var td = document.createElement("td"); { _C_addMouseClick(td); _C_addMouseDblClick(td); if (ctrl("stylesheet") == false) { td.style.border = "outset 2px #C0C0C0"; td.style.borderRadius = "5px"; td.style.textAlign = "center"; td.style.cursor = "pointer"; } else { td.className = "link"; } var Text = document.createTextNode(String.fromCharCode(8658)); td.appendChild(Text); } tr.appendChild(td); tbody.appendChild(tr); var tr = document.createElement("tr"); for (var j=0;j<7;j++) { var td = document.createElement("td"); if (ctrl("stylesheet") == false) { td.style.cursor = "default"; td.style.textAlign = "center"; td.style.minWidth = "40px"; td.style.width = "40px"; } else { td.className = "no0"; } if (j==6) { td.style.color="red"; } var Text = document.createTextNode(ctrl("days")[j]); td.appendChild(Text); tr.appendChild(td); } tbody.appendChild(tr); for (var row=0; row<6; row++) { var tr = document.createElement("tr"); for (var col=0; col<7; col++) { var td = document.createElement("td"); if (ctrl("stylesheet") == false) { td.style.textAlign = "center"; td.style.height = "26px"; } _C_addMouseClick(td); if (col == 6) { td.style.color = "red"; } var Text = document.createTextNode("."); td.appendChild(Text); tr.appendChild(td); } tbody.appendChild(tr); } table.appendChild(tbody); calendar_root.appendChild(table); if (ctrl("exit") == true) { var ex = document.createElement("div"); var txt = document.createTextNode("X"); ex.appendChild(txt); ex.style.position = "absolute"; ex.style.display = "block"; ex.style.top = "-20px"; ex.style.left = "200px"; ex.style.height = "18px"; ex.style.width = "18px"; ex.style.border = "outset 2px #C0C0C0"; ex.style.borderRadius="10px"; ex.style.color = "#FFFFFF"; ex.style.backgroundColor = "#FF0000"; ex.style.fontFamily = "Arial"; ex.style.fontSize = "14px"; ex.style.fontWeight = "bold"; ex.style.cursor = "pointer"; ex.style.overflow = "hidden"; ex.style.textAlign = "center"; _C_addMouseClick(ex); calendar_root.appendChild(ex); } }; var _C_makeCalendarCell = function(root,i,j,z,f) { var zeile = i + 2; var lineElement = root.childNodes[zeile]; var colElement = lineElement.childNodes[j]; var pp = (z == 0) ? String.fromCharCode(160):z; var cc = (z == 0) ? "no" : "yes"; cc += f; colElement.firstChild.nodeValue = pp; if (ctrl("stylesheet") == true) { colElement.className = cc; } else { colElement.style.cursor = "default"; if (z == 0) { colElement.style.border = "solid 2px transparent"; colElement.style.backgroundColor = "rgb(192,192,192)"; } else { colElement.style.border = "outset 2px rgb(192,192,192)"; colElement.style.borderRadius = "5px"; if (f==0) colElement.style.backgroundColor = "rgb(192,192,192)"; else if (f==1) colElement.style.backgroundColor = "rgb(224,224,224)"; else colElement.style.backgroundColor = "rgb(255,224,224)"; } } }; var _C_fillCalendarPage = function() { var Jahr = ctrl("year"); var month_nr = ctrl("month"); var Zeit = new Date(Jahr,month_nr,1); var Start = Zeit.getDay(); if (Start > 0) {Start--;} else {Start = 6;} var Stop = 31; if (month_nr==3 || month_nr==5 || month_nr==8 || month_nr==10) {--Stop;} if(month_nr==1) { Stop = Stop - 3; if(Jahr%4==0) {Stop++;} if(Jahr%100==0) {Stop--;} if(Jahr%400==0) {Stop++;} } if (typeof(ctrl("root")) == "object") { var tbody = ctrl("root").firstChild.firstChild; tbody.firstChild.childNodes[1].firstChild.nodeValue = ctrl("months_names")[month_nr]; tbody.firstChild.childNodes[2].firstChild.nodeValue = Jahr; var Tageszahl = 1; for (var i=0; i<=5; i++) { for (var j=0; j<=6; j++) { if ((i==0) && (j < Start)) { _C_makeCalendarCell(tbody,i,j,0,0); } else { if (Tageszahl > Stop) { _C_makeCalendarCell(tbody,i,j,0,0); } else { var form = 0; if ((ctrl("year") == ctrl("today")[2]) && (ctrl("today")[1] == ctrl("month")) && (ctrl("today")[0] == Tageszahl)) { form++; } _C_makeCalendarCell(tbody,i,j,Tageszahl,form); } Tageszahl++; } } } var root = ctrl("root"); var table = ctrl("root").firstChild; var w = table.clientWidth; var h = table.clientHeight; var ol = (table.offsetLeft) ? table.offsetLeft : 0; var ot = (table.offsetTop) ? table.offsetTop : 0; ctrl("cal_width",w+ol+ol); ctrl("cal_height",h+ot+ot); _C_updateRoot(0xC); var ex = root.childNodes[1]; if (ex) { ex.style.left = ctrl("cal_width") + "px"; } } else { alert("error 1090 -- HTML-Element id=root not found"); } if (!ctrl("visibility") && ctrl("position") == "center") { var av_width = ctrl("cal_width"); var av_height = ctrl("cal_height"); if (window.innerHeight) { av_width = window.innerWidth; av_height = window.innerHeight; } else if (document.body.clientWidth) { av_width = document.body.clientWidth; av_height = document.body.clientHeight; } else if (document.body.offsetHeight) { av_width = document.body.offsetWidth; av_height = document.body.offsetHeight; } else { alert("1014"); } var left = (av_width - ctrl("cal_width")) / 2; ctrl("cal_left",left); var top = (av_height - ctrl("cal_height")) / 2; ctrl("cal_top",top); _C_updateRoot(0x3); } ctrl("visibility",true); }; var _C_viewCalendar = function() { ctrl("visibility",false); var doc = ctrl("parent"); var calendar_root = null; if (document.getElementById("calendar_root")) { calendar_root = document.getElementById("calendar_root"); } else { calendar_root = document.createElement("div"); calendar_root.id = "calendar_root"; if (ctrl("stylesheet") == false) { calendar_root.style.position = "absolute"; calendar_root.style.display = "block"; calendar_root.style.border = "outset 2px rgb(192,192,192)"; calendar_root.style.borderRadius = "10px"; calendar_root.style.boxShadow = "10px 10px 5px 2px rgba(127,127,127,0.5)"; calendar_root.style.backgroundColor = "rgb(192,192,192)"; } else { calendar_root.className = "calendarpage"; } calendar_root.style.width = "100px"; calendar_root.style.height = "100px"; if (doc.childNodes.length > 0) { doc.insertBefore(calendar_root,doc.firstChild); } else { doc.appendChild(calendar_root); } } ctrl("root",calendar_root); calendar_root.style.visibility = "visible"; ctrl("obj_right",0); ctrl("obj_bottom",0); if (ctrl("position") == "cursor") { if (test("mouse_position_left")) { ctrl("obj_right",ctrl("mouse_position_left")); ctrl("obj_bottom",ctrl("mouse_position_top")); } } else if (ctrl("position") == "element") { var obj = ctrl("element"); var p = obj.getBoundingClientRect(); for (var v in p) { ctrl("obj_"+v, p[v]); } } if (ctrl("top") != 0) { var top = ctrl("obj_bottom") + ctrl("top"); ctrl("obj_bottom",top); } if (ctrl("left") != 0) { var left = ctrl("obj_right") + ctrl("left"); ctrl("obj_right",left); } ctrl("scrollLeft", (document.body.scrollLeft ? document.body.scrollLeft : document.body.scrollLeft)); ctrl("scrollTop", (document.body.scrollTop ? document.body.scrollTop : document.body.scrollTop)); ctrl("cal_top",ctrl("obj_bottom")); ctrl("cal_left",ctrl("obj_right")); _C_updateRoot(0x3); if (ctrl("zindex") != null) { /* anz=4 % 0 */ if (ctrl("zindex") == "auto") { var zi=0, ziparsed; var obj = ctrl("element"); var comp; while (obj.tagName != "BODY") { comp = obj.currentStyle ? obj.currentStyle : getComputedStyle(obj, null); ziparsed = parseInt(comp.zIndex); ziparsed = isNaN(ziparsed) ? 0 : ziparsed; zi += ziparsed + 1; obj = obj.parentNode; } calendar_root.style.zIndex = zi; } else { calendar_root.style.zIndex = ctrl("zindex"); } } var jetzt = new Date(); if (ctrl("timezone") == "UTC") { ctrl("day", jetzt.getUTCDate()); ctrl("month", jetzt.getUTCMonth()); ctrl("year", jetzt.getUTCFullYear()); } else { ctrl("day", jetzt.getDate()); ctrl("month", jetzt.getMonth()); ctrl("year", jetzt.getFullYear()); } ctrl("today", [ctrl("day"),ctrl("month"),ctrl("year")]); var startvalue = ""; if (ctrl("init") == "element") { startvalue = ctrl("element").value; } else if (ctrl("init") == "indirect") { var addr = ctrl("element").value; if (addr != "") { var ele = document.getElementsByName(addr)[0]; if (ele) startvalue = ele.value; } } if (startvalue != "") { var zz = startvalue.split("."); if ( zz.length == 3 && !isNaN(zz[2]) && !isNaN(zz[1]) && !isNaN(zz[0]) ) { ctrl("day", parseInt(zz[0],10)); ctrl("month", parseInt(zz[1],10)-1); ctrl("year", parseInt(zz[2],10)); } } _C_addMouseMove(document,true); _C_makeCalendarPage(); _C_fillCalendarPage(); }; var defaults = { elements : null, onclick : null, result : "readable", format : null, position : "element", init : "element", closed : null, left : 0, top : 0, touch : false, stylesheet : false, exit : null, zindex : null, timezone : "localtime", datecontrol : null, parent : document.body, months_names : ["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"], days : ["Mo","Di","Mi","Do","Fr","Sa","So"] }; var _C_strg = new _C_CalendarParams(); var ctrl = _C_strg.data; var test = _C_strg.check; var _dump_ = _C_strg.dump; if (typeof(params) == "undefined") params = {}; for (var key in defaults) { ctrl(key,(params[key] ? params[key] : defaults[key])); } if (ctrl("elements") != null) { var params = new Array(); if (typeof(ctrl("elements")) == "string") { var e = document.getElementById(ctrl("elements")); if (e == null) { e = document.getElementsByName(ctrl("elements"))[0]; } if (e != null) { ctrl("elements",e,0); } } /* anz=2 % 0 */ else if (ctrl("elements").length) { for (var i=0; i < ctrl("elements").length; i++) { var e = ctrl("elements")[i]; if (typeof(e) == "string") { var ee = document.getElementById(e); if (ee == null) { ee = document.getElementsByName(e)[0]; } ctrl("elements",ee,i); } } } else { alert("error 1366 -- Object type " + typeof(ctrl("elements"))); } } if (ctrl("elements") != null && ctrl("elements").length > 0) { for (var i=0; i < ctrl("elements").length; i++) { var input = ctrl("elements")[i]; if (input && input.tagName && input.tagName == "button") { } if (input.addEventListener) { input.addEventListener ("focus", _C_onFocusCallback, false); } else if (input.attachEvent) { input.attachEvent("onfocus",_C_onFocusCallback); } else { input.onfocus = _C_onFocusCallback; } } } hideCalendar = function (arg) { var cmd = (typeof(arg) == "undefined") ? ctrl("closed") : arg; _C_addMouseMove(document,false); if (cmd == "hidden") { ctrl("root").style.visibility = "hidden"; } else if (cmd == "remove") { var o = ctrl("root"); var po = o.parentNode; po.removeChild(o); } }; viewCalendar = function(txt) { var e = txt; if (typeof(txt) == "string") { /* anz=2 % 0 */ if (txt.indexOf(":") > 0) { var info = txt.split(":"); e = document.forms[info[0]].elements[info[1]]; } else { e = document.getElementById(txt); { if (!e) { e = document.getElementsByName(txt)[0]; } } } } else if (typeof(txt) == "undefined") { hideCalendar(); e = false; } if (e) { ctrl("element",e); _dump_(); _C_viewCalendar(); } }; }