From 10f12e8f150d73ead2104c574713d84506c19275 Mon Sep 17 00:00:00 2001 From: Daniel Quathamer Date: Sat, 5 Sep 2026 10:33:03 +0200 Subject: [PATCH] =?UTF-8?q?GANG=20Men=C3=BCbaum=20ohne=20dynapi=20#354822?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- superx/WEB-INF/lib/superx6.0.jar | Bin 8138038 -> 8138133 bytes superx/style/superx.css | 68 ++ superx/xml/dynapi/api/dyndocument.js | 276 ------- superx/xml/dynapi/api/dynlayer_base.js | 396 --------- superx/xml/dynapi/api/dynlayer_dom.js | 149 ---- superx/xml/dynapi/api/dynlayer_ie.js | 180 ---- superx/xml/dynapi/api/dynlayer_ns4.js | 308 ------- superx/xml/dynapi/api/dynlayer_opera.js | 145 ---- superx/xml/dynapi/api/event.js | 348 -------- superx/xml/dynapi/api/ext/dragevent.js | 306 ------- superx/xml/dynapi/api/ext/dynkeyevent.js | 238 ------ superx/xml/dynapi/api/ext/dynlayer.inline.js | 124 --- superx/xml/dynapi/api/mouse_dom.js | 135 --- superx/xml/dynapi/api/mouse_ie.js | 124 --- superx/xml/dynapi/api/mouse_ns4.js | 1 - superx/xml/dynapi/dynapi.js | 434 ---------- superx/xml/dynapi/ext/blueprint.html | 27 - superx/xml/dynapi/ext/debug.html | 1 - superx/xml/dynapi/ext/debug.js | 1 - superx/xml/dynapi/ext/functions.color.js | 94 --- superx/xml/dynapi/ext/functions.date.js | 126 --- superx/xml/dynapi/ext/functions.image.js | 124 --- superx/xml/dynapi/ext/functions.math.js | 85 -- superx/xml/dynapi/ext/functions.numeric.js | 78 -- superx/xml/dynapi/ext/functions.string.js | 52 -- superx/xml/dynapi/ext/functions.system.js | 87 -- superx/xml/dynapi/ext/images/debug_icon.gif | Bin 267 -> 0 bytes .../xml/dynapi/ext/images/debug_imgclear.gif | Bin 489 -> 0 bytes .../dynapi/ext/images/debug_imgclear_on.gif | Bin 514 -> 0 bytes .../xml/dynapi/ext/images/debug_imgeval.gif | Bin 714 -> 0 bytes .../dynapi/ext/images/debug_imgeval_on.gif | Bin 795 -> 0 bytes .../xml/dynapi/ext/images/debug_imghelp.gif | Bin 1043 -> 0 bytes .../dynapi/ext/images/debug_imghelp_down.gif | Bin 950 -> 0 bytes .../dynapi/ext/images/debug_imghelp_on.gif | Bin 1070 -> 0 bytes .../dynapi/ext/images/debug_imginspect.gif | Bin 615 -> 0 bytes .../dynapi/ext/images/debug_imginspect_on.gif | Bin 667 -> 0 bytes .../xml/dynapi/ext/images/debug_imgnext.gif | Bin 406 -> 0 bytes .../dynapi/ext/images/debug_imgnext_on.gif | Bin 421 -> 0 bytes .../xml/dynapi/ext/images/debug_imgnormal.gif | Bin 1032 -> 0 bytes .../ext/images/debug_imgnormal_down.gif | Bin 940 -> 0 bytes .../dynapi/ext/images/debug_imgnormal_on.gif | Bin 1054 -> 0 bytes .../xml/dynapi/ext/images/debug_imgprev.gif | Bin 408 -> 0 bytes .../dynapi/ext/images/debug_imgprev_on.gif | Bin 426 -> 0 bytes .../xml/dynapi/ext/images/debug_imgreload.gif | Bin 444 -> 0 bytes .../dynapi/ext/images/debug_imgreload_on.gif | Bin 454 -> 0 bytes .../xml/dynapi/ext/images/debug_imgwatch.gif | Bin 1052 -> 0 bytes .../dynapi/ext/images/debug_imgwatch_down.gif | Bin 962 -> 0 bytes .../dynapi/ext/images/debug_imgwatch_on.gif | Bin 1076 -> 0 bytes superx/xml/dynapi/ext/library.html | 3 - superx/xml/dynapi/ext/library.js | 232 ------ superx/xml/dynapi/ext/packages.js | 146 ---- superx/xml/dynapi/fx/bezier.js | 75 -- superx/xml/dynapi/fx/circleanim.js | 91 -- superx/xml/dynapi/fx/fader.js | 69 -- superx/xml/dynapi/fx/fsound.js | 300 ------- superx/xml/dynapi/fx/glideanim.js | 82 -- superx/xml/dynapi/fx/hoveranim.js | 63 -- superx/xml/dynapi/fx/imganim.js | 102 --- superx/xml/dynapi/fx/motionx.js | 120 --- superx/xml/dynapi/fx/pathanim.js | 96 --- superx/xml/dynapi/fx/slideanim.js | 42 - superx/xml/dynapi/fx/snapx.js | 780 ------------------ superx/xml/dynapi/fx/swiper.js | 182 ---- superx/xml/dynapi/fx/textanim.js | 293 ------- superx/xml/dynapi/fx/thread.js | 64 -- superx/xml/dynapi/fx/timerx.js | 44 - superx/xml/dynapi/gui/bordermanager.js | 196 ----- superx/xml/dynapi/gui/button.flatstyle.js | 95 --- superx/xml/dynapi/gui/button.imagestyle.js | 114 --- superx/xml/dynapi/gui/button.js | 49 -- superx/xml/dynapi/gui/button.style.js | 100 --- superx/xml/dynapi/gui/checkbox.js | 59 -- superx/xml/dynapi/gui/checkbox.style.js | 49 -- superx/xml/dynapi/gui/dynimage.js | 54 -- superx/xml/dynapi/gui/explorer.block.style.js | 78 -- superx/xml/dynapi/gui/explorer.js | 112 --- superx/xml/dynapi/gui/explorer.style.js | 133 --- superx/xml/dynapi/gui/focusmanager.js | 77 -- superx/xml/dynapi/gui/frame.js | 129 --- superx/xml/dynapi/gui/graphics.js | 347 -------- superx/xml/dynapi/gui/groupmanager.js | 249 ------ superx/xml/dynapi/gui/highlighter.js | 67 -- superx/xml/dynapi/gui/htmlbutton.js | 58 -- superx/xml/dynapi/gui/htmlcalendar.js | 223 ----- superx/xml/dynapi/gui/htmlcheckbox.js | 76 -- superx/xml/dynapi/gui/htmlclock.js | 129 --- superx/xml/dynapi/gui/htmlcolorpicker.js | 68 -- superx/xml/dynapi/gui/htmlcomponent.js | 185 ----- superx/xml/dynapi/gui/htmlcontainer.js | 132 --- superx/xml/dynapi/gui/htmldatepicker.js | 124 --- superx/xml/dynapi/gui/htmldropdownmenu.js | 25 - superx/xml/dynapi/gui/htmlfile.js | 59 -- superx/xml/dynapi/gui/htmlhyperlink.js | 83 -- superx/xml/dynapi/gui/htmllistbox.js | 188 ----- superx/xml/dynapi/gui/htmlmenu.js | 362 -------- superx/xml/dynapi/gui/htmlprogressbar.js | 92 --- superx/xml/dynapi/gui/htmlradiobutton.js | 84 -- superx/xml/dynapi/gui/htmlrollover.js | 50 -- superx/xml/dynapi/gui/htmltextarea.js | 99 --- superx/xml/dynapi/gui/htmltextbox.js | 77 -- superx/xml/dynapi/gui/imageclip.js | 171 ---- superx/xml/dynapi/gui/images/arr_down.gif | Bin 55 -> 0 bytes superx/xml/dynapi/gui/images/arr_left.gif | Bin 58 -> 0 bytes superx/xml/dynapi/gui/images/arr_right.gif | Bin 58 -> 0 bytes superx/xml/dynapi/gui/images/arr_up.gif | Bin 55 -> 0 bytes superx/xml/dynapi/gui/images/btn_off.gif | Bin 225 -> 0 bytes superx/xml/dynapi/gui/images/btn_on.gif | Bin 226 -> 0 bytes superx/xml/dynapi/gui/images/check_off.gif | Bin 196 -> 0 bytes superx/xml/dynapi/gui/images/check_on.gif | Bin 210 -> 0 bytes superx/xml/dynapi/gui/images/corner.gif | Bin 360 -> 0 bytes superx/xml/dynapi/gui/images/file.gif | Bin 247 -> 0 bytes superx/xml/dynapi/gui/images/menuarrow.gif | Bin 65 -> 0 bytes superx/xml/dynapi/gui/images/pixel.gif | Bin 62 -> 0 bytes superx/xml/dynapi/gui/images/radio_off.gif | Bin 219 -> 0 bytes superx/xml/dynapi/gui/images/radio_on.gif | Bin 337 -> 0 bytes superx/xml/dynapi/gui/images/sbarbg.gif | Bin 75 -> 0 bytes superx/xml/dynapi/gui/images/today.gif | Bin 253 -> 0 bytes superx/xml/dynapi/gui/images/tvw_close.gif | Bin 84 -> 0 bytes .../xml/dynapi/gui/images/tvw_closelast.gif | Bin 82 -> 0 bytes superx/xml/dynapi/gui/images/tvw_collapse.gif | Bin 91 -> 0 bytes superx/xml/dynapi/gui/images/tvw_expand.gif | Bin 97 -> 0 bytes superx/xml/dynapi/gui/images/tvw_file.gif | Bin 89 -> 0 bytes .../xml/dynapi/gui/images/tvw_foldclose.gif | Bin 130 -> 0 bytes superx/xml/dynapi/gui/images/tvw_foldopen.gif | Bin 126 -> 0 bytes superx/xml/dynapi/gui/images/tvw_line.gif | Bin 70 -> 0 bytes .../xml/dynapi/gui/images/tvw_nochildren.gif | Bin 72 -> 0 bytes .../dynapi/gui/images/tvw_nochildrenlast.gif | Bin 67 -> 0 bytes superx/xml/dynapi/gui/images/tvw_open.gif | Bin 86 -> 0 bytes superx/xml/dynapi/gui/images/tvw_openlast.gif | Bin 85 -> 0 bytes superx/xml/dynapi/gui/images/tvw_white.gif | Bin 61 -> 0 bytes superx/xml/dynapi/gui/knob.js | 27 - superx/xml/dynapi/gui/knob.style.js | 39 - superx/xml/dynapi/gui/label.js | 134 --- superx/xml/dynapi/gui/list.js | 178 ---- superx/xml/dynapi/gui/listbox.js | 357 -------- superx/xml/dynapi/gui/listbox.style.js | 41 - superx/xml/dynapi/gui/loadpanel.js | 145 ---- superx/xml/dynapi/gui/marquee.js | 89 -- superx/xml/dynapi/gui/marquee.style.js | 37 - superx/xml/dynapi/gui/nodeitem.js | 122 --- superx/xml/dynapi/gui/panelbar.js | 139 ---- superx/xml/dynapi/gui/progressbar.js | 45 - superx/xml/dynapi/gui/progressbar.style.js | 49 -- superx/xml/dynapi/gui/radiobutton.js | 69 -- superx/xml/dynapi/gui/radiobutton.style.js | 50 -- superx/xml/dynapi/gui/scrollbar.js | 250 ------ superx/xml/dynapi/gui/scrollbar.style.js | 65 -- superx/xml/dynapi/gui/stacker.js | 132 --- superx/xml/dynapi/gui/stylemanager.js | 186 ----- superx/xml/dynapi/gui/templmngr.js | 216 ----- superx/xml/dynapi/gui/tree.js | 505 ------------ superx/xml/dynapi/gui/viewpane.js | 78 -- superx/xml/dynapi/gui/viewpane.style.js | 79 -- superx/xml/dynapi/util/cookie.js | 172 ---- superx/xml/dynapi/util/datasource.js | 600 -------------- superx/xml/dynapi/util/filereader.js | 22 - superx/xml/dynapi/util/ioelement.js | 401 --------- superx/xml/dynapi/util/ioelement.soda.js | 332 -------- superx/xml/dynapi/util/ioelement.sync.js | 153 ---- superx/xml/dynapi/util/poolmanager.js | 36 - superx/xml/dynapi/util/stringbuffer.js | 26 - superx/xml/dynapi/util/url.java | 39 - superx/xml/dynapi/version.xml | 5 - superx/xml/js/memtext/sx_functions.js | 134 +++ 164 files changed, 202 insertions(+), 15634 deletions(-) delete mode 100644 superx/xml/dynapi/api/dyndocument.js delete mode 100644 superx/xml/dynapi/api/dynlayer_base.js delete mode 100644 superx/xml/dynapi/api/dynlayer_dom.js delete mode 100644 superx/xml/dynapi/api/dynlayer_ie.js delete mode 100644 superx/xml/dynapi/api/dynlayer_ns4.js delete mode 100644 superx/xml/dynapi/api/dynlayer_opera.js delete mode 100644 superx/xml/dynapi/api/event.js delete mode 100644 superx/xml/dynapi/api/ext/dragevent.js delete mode 100644 superx/xml/dynapi/api/ext/dynkeyevent.js delete mode 100644 superx/xml/dynapi/api/ext/dynlayer.inline.js delete mode 100644 superx/xml/dynapi/api/mouse_dom.js delete mode 100644 superx/xml/dynapi/api/mouse_ie.js delete mode 100644 superx/xml/dynapi/api/mouse_ns4.js delete mode 100644 superx/xml/dynapi/dynapi.js delete mode 100644 superx/xml/dynapi/ext/blueprint.html delete mode 100644 superx/xml/dynapi/ext/debug.html delete mode 100644 superx/xml/dynapi/ext/debug.js delete mode 100644 superx/xml/dynapi/ext/functions.color.js delete mode 100644 superx/xml/dynapi/ext/functions.date.js delete mode 100644 superx/xml/dynapi/ext/functions.image.js delete mode 100644 superx/xml/dynapi/ext/functions.math.js delete mode 100644 superx/xml/dynapi/ext/functions.numeric.js delete mode 100644 superx/xml/dynapi/ext/functions.string.js delete mode 100644 superx/xml/dynapi/ext/functions.system.js delete mode 100644 superx/xml/dynapi/ext/images/debug_icon.gif delete mode 100644 superx/xml/dynapi/ext/images/debug_imgclear.gif delete mode 100644 superx/xml/dynapi/ext/images/debug_imgclear_on.gif delete mode 100644 superx/xml/dynapi/ext/images/debug_imgeval.gif delete mode 100644 superx/xml/dynapi/ext/images/debug_imgeval_on.gif delete mode 100644 superx/xml/dynapi/ext/images/debug_imghelp.gif delete mode 100644 superx/xml/dynapi/ext/images/debug_imghelp_down.gif delete mode 100644 superx/xml/dynapi/ext/images/debug_imghelp_on.gif delete mode 100644 superx/xml/dynapi/ext/images/debug_imginspect.gif delete mode 100644 superx/xml/dynapi/ext/images/debug_imginspect_on.gif delete mode 100644 superx/xml/dynapi/ext/images/debug_imgnext.gif delete mode 100644 superx/xml/dynapi/ext/images/debug_imgnext_on.gif delete mode 100644 superx/xml/dynapi/ext/images/debug_imgnormal.gif delete mode 100644 superx/xml/dynapi/ext/images/debug_imgnormal_down.gif delete mode 100644 superx/xml/dynapi/ext/images/debug_imgnormal_on.gif delete mode 100644 superx/xml/dynapi/ext/images/debug_imgprev.gif delete mode 100644 superx/xml/dynapi/ext/images/debug_imgprev_on.gif delete mode 100644 superx/xml/dynapi/ext/images/debug_imgreload.gif delete mode 100644 superx/xml/dynapi/ext/images/debug_imgreload_on.gif delete mode 100644 superx/xml/dynapi/ext/images/debug_imgwatch.gif delete mode 100644 superx/xml/dynapi/ext/images/debug_imgwatch_down.gif delete mode 100644 superx/xml/dynapi/ext/images/debug_imgwatch_on.gif delete mode 100644 superx/xml/dynapi/ext/library.html delete mode 100644 superx/xml/dynapi/ext/library.js delete mode 100644 superx/xml/dynapi/ext/packages.js delete mode 100644 superx/xml/dynapi/fx/bezier.js delete mode 100644 superx/xml/dynapi/fx/circleanim.js delete mode 100644 superx/xml/dynapi/fx/fader.js delete mode 100644 superx/xml/dynapi/fx/fsound.js delete mode 100644 superx/xml/dynapi/fx/glideanim.js delete mode 100644 superx/xml/dynapi/fx/hoveranim.js delete mode 100644 superx/xml/dynapi/fx/imganim.js delete mode 100644 superx/xml/dynapi/fx/motionx.js delete mode 100644 superx/xml/dynapi/fx/pathanim.js delete mode 100644 superx/xml/dynapi/fx/slideanim.js delete mode 100644 superx/xml/dynapi/fx/snapx.js delete mode 100644 superx/xml/dynapi/fx/swiper.js delete mode 100644 superx/xml/dynapi/fx/textanim.js delete mode 100644 superx/xml/dynapi/fx/thread.js delete mode 100644 superx/xml/dynapi/fx/timerx.js delete mode 100644 superx/xml/dynapi/gui/bordermanager.js delete mode 100644 superx/xml/dynapi/gui/button.flatstyle.js delete mode 100644 superx/xml/dynapi/gui/button.imagestyle.js delete mode 100644 superx/xml/dynapi/gui/button.js delete mode 100644 superx/xml/dynapi/gui/button.style.js delete mode 100644 superx/xml/dynapi/gui/checkbox.js delete mode 100644 superx/xml/dynapi/gui/checkbox.style.js delete mode 100644 superx/xml/dynapi/gui/dynimage.js delete mode 100644 superx/xml/dynapi/gui/explorer.block.style.js delete mode 100644 superx/xml/dynapi/gui/explorer.js delete mode 100644 superx/xml/dynapi/gui/explorer.style.js delete mode 100644 superx/xml/dynapi/gui/focusmanager.js delete mode 100644 superx/xml/dynapi/gui/frame.js delete mode 100644 superx/xml/dynapi/gui/graphics.js delete mode 100644 superx/xml/dynapi/gui/groupmanager.js delete mode 100644 superx/xml/dynapi/gui/highlighter.js delete mode 100644 superx/xml/dynapi/gui/htmlbutton.js delete mode 100644 superx/xml/dynapi/gui/htmlcalendar.js delete mode 100644 superx/xml/dynapi/gui/htmlcheckbox.js delete mode 100644 superx/xml/dynapi/gui/htmlclock.js delete mode 100644 superx/xml/dynapi/gui/htmlcolorpicker.js delete mode 100644 superx/xml/dynapi/gui/htmlcomponent.js delete mode 100644 superx/xml/dynapi/gui/htmlcontainer.js delete mode 100644 superx/xml/dynapi/gui/htmldatepicker.js delete mode 100644 superx/xml/dynapi/gui/htmldropdownmenu.js delete mode 100644 superx/xml/dynapi/gui/htmlfile.js delete mode 100644 superx/xml/dynapi/gui/htmlhyperlink.js delete mode 100644 superx/xml/dynapi/gui/htmllistbox.js delete mode 100644 superx/xml/dynapi/gui/htmlmenu.js delete mode 100644 superx/xml/dynapi/gui/htmlprogressbar.js delete mode 100644 superx/xml/dynapi/gui/htmlradiobutton.js delete mode 100644 superx/xml/dynapi/gui/htmlrollover.js delete mode 100644 superx/xml/dynapi/gui/htmltextarea.js delete mode 100644 superx/xml/dynapi/gui/htmltextbox.js delete mode 100644 superx/xml/dynapi/gui/imageclip.js delete mode 100644 superx/xml/dynapi/gui/images/arr_down.gif delete mode 100644 superx/xml/dynapi/gui/images/arr_left.gif delete mode 100644 superx/xml/dynapi/gui/images/arr_right.gif delete mode 100644 superx/xml/dynapi/gui/images/arr_up.gif delete mode 100644 superx/xml/dynapi/gui/images/btn_off.gif delete mode 100644 superx/xml/dynapi/gui/images/btn_on.gif delete mode 100644 superx/xml/dynapi/gui/images/check_off.gif delete mode 100644 superx/xml/dynapi/gui/images/check_on.gif delete mode 100644 superx/xml/dynapi/gui/images/corner.gif delete mode 100644 superx/xml/dynapi/gui/images/file.gif delete mode 100644 superx/xml/dynapi/gui/images/menuarrow.gif delete mode 100644 superx/xml/dynapi/gui/images/pixel.gif delete mode 100644 superx/xml/dynapi/gui/images/radio_off.gif delete mode 100644 superx/xml/dynapi/gui/images/radio_on.gif delete mode 100644 superx/xml/dynapi/gui/images/sbarbg.gif delete mode 100644 superx/xml/dynapi/gui/images/today.gif delete mode 100644 superx/xml/dynapi/gui/images/tvw_close.gif delete mode 100644 superx/xml/dynapi/gui/images/tvw_closelast.gif delete mode 100644 superx/xml/dynapi/gui/images/tvw_collapse.gif delete mode 100644 superx/xml/dynapi/gui/images/tvw_expand.gif delete mode 100644 superx/xml/dynapi/gui/images/tvw_file.gif delete mode 100644 superx/xml/dynapi/gui/images/tvw_foldclose.gif delete mode 100644 superx/xml/dynapi/gui/images/tvw_foldopen.gif delete mode 100644 superx/xml/dynapi/gui/images/tvw_line.gif delete mode 100644 superx/xml/dynapi/gui/images/tvw_nochildren.gif delete mode 100644 superx/xml/dynapi/gui/images/tvw_nochildrenlast.gif delete mode 100644 superx/xml/dynapi/gui/images/tvw_open.gif delete mode 100644 superx/xml/dynapi/gui/images/tvw_openlast.gif delete mode 100644 superx/xml/dynapi/gui/images/tvw_white.gif delete mode 100644 superx/xml/dynapi/gui/knob.js delete mode 100644 superx/xml/dynapi/gui/knob.style.js delete mode 100644 superx/xml/dynapi/gui/label.js delete mode 100644 superx/xml/dynapi/gui/list.js delete mode 100644 superx/xml/dynapi/gui/listbox.js delete mode 100644 superx/xml/dynapi/gui/listbox.style.js delete mode 100644 superx/xml/dynapi/gui/loadpanel.js delete mode 100644 superx/xml/dynapi/gui/marquee.js delete mode 100644 superx/xml/dynapi/gui/marquee.style.js delete mode 100644 superx/xml/dynapi/gui/nodeitem.js delete mode 100644 superx/xml/dynapi/gui/panelbar.js delete mode 100644 superx/xml/dynapi/gui/progressbar.js delete mode 100644 superx/xml/dynapi/gui/progressbar.style.js delete mode 100644 superx/xml/dynapi/gui/radiobutton.js delete mode 100644 superx/xml/dynapi/gui/radiobutton.style.js delete mode 100644 superx/xml/dynapi/gui/scrollbar.js delete mode 100644 superx/xml/dynapi/gui/scrollbar.style.js delete mode 100644 superx/xml/dynapi/gui/stacker.js delete mode 100644 superx/xml/dynapi/gui/stylemanager.js delete mode 100644 superx/xml/dynapi/gui/templmngr.js delete mode 100644 superx/xml/dynapi/gui/tree.js delete mode 100644 superx/xml/dynapi/gui/viewpane.js delete mode 100644 superx/xml/dynapi/gui/viewpane.style.js delete mode 100644 superx/xml/dynapi/util/cookie.js delete mode 100644 superx/xml/dynapi/util/datasource.js delete mode 100644 superx/xml/dynapi/util/filereader.js delete mode 100644 superx/xml/dynapi/util/ioelement.js delete mode 100644 superx/xml/dynapi/util/ioelement.soda.js delete mode 100644 superx/xml/dynapi/util/ioelement.sync.js delete mode 100644 superx/xml/dynapi/util/poolmanager.js delete mode 100644 superx/xml/dynapi/util/stringbuffer.js delete mode 100644 superx/xml/dynapi/util/url.java delete mode 100644 superx/xml/dynapi/version.xml diff --git a/superx/WEB-INF/lib/superx6.0.jar b/superx/WEB-INF/lib/superx6.0.jar index e6b94c018ebd1db29324eeacd4b20c21e1a76ffa..0e9ebbfce065b71ff85308bdddfbf913479e7e2c 100644 GIT binary patch delta 108443 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%0D4T2mG!lRF2-9_~@E-er1yoXlS=D8D#^ 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 G(EkS&MshCz delta 108502 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 z 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

N5r(mnDf`l0+9{aSvV{(mfQrdQ>y z^tRkBa^*M01o>?-TizxX$=gMR{H~~$-xD?R4$&z0h&Fkb2*~e?emN+1$bI5GxnF!r z4vXvL0dbSON8BlYAnub7h^OU);u-mncu77g{wW`mhJ0M+$|vLu`6GF({INVe{z1MYUxLN?7iGx5LZ7~>eDZH!O%gp1T|H^2Vx!hbqrkX=Dbm;_^d8r@*o`3XS8Tr&&$0(pl zs>VDX)|>(!cbX^YAi~>nlX)WR8Q^fae3cCkU~sBgg(r{rlz7x!i6^hPPkh#_##64m zoE|n;;mIezLpPhN@suZ@q>Igy@MLM7(?c^4f=IM~4YyfV36H$RW1g%7mT!?Iy+=)W zhZ^4{zjmxM)1#2)6o0=<^YvRT(xpq6zDx7Q03N*+EzQi_`{VD_yBg&#*9vJlpc=OB zQ|tGt#v#?hR-x^Kscp^WL#qFdX1$N6b`Gm^S$Lkeo2HIreUykTU2z9G znGAh?6ude9U92w1bS9NaxhjVyD=*Ddxq$M~(JGJ1)kHvAv;=awMorGxwJ^r=X|J?fGn_307cPcO9sS3uqPp+Cx0Ayq;0HGin1D5Q!gs*cI9M*1^$XiQT6 zlDSmKUody~%)aHW>(}+3)daRG)RnL*?i^B|(PQ`m@l>uU9a3N1T%c|!P&e|^kowAy z`syQ;i_~$f9-$d!1?uMg>J~}&t8X$reA_is)Eyv&A+-n3rNip`dP_~`4?25mjrwJ{ z6vTn%V1FSwjmWA-^m=z{?1nHE~992&9 zRRvY3N|4NAI!P_1TD6Q?F!R&Ya%xvAXtO$=KB87qm#PNRR?&bu8Lh9T^VLaonOZ~F zs9L&SokBONI{Gpc&eznsbZoSR40FBN2<*+FGk?t{O;{(Ta(gtEfjTm`fLpb@>oplmALuO1V$Up*;^-4E?`tS)z)4)t`EQ3el0 z{fu9p8C1XGmtXVCbA#%6j-IREb1+@~VOYJ4#&#dPuWVTT5l>|!zKKKYm%;I&*qSEj{UDSWPt=6@zl&Ovjto|ysHb&I(b*vg}==IJcpv{%CO zci_(ej01J1JO4&9-lrKJ^*GA|dF??up7$wdr!ze2X+9H?iZYKYQ|SopTNr&Vf8X0( zwRIeW(W}O64bzO%n}^k(Tw7+8Z=t@3Szkxf)b$zMJl#CYbyv>L;u)z+#&|~RMt}5w zuN-jK@C#UJ4(oq`-N!|6AHmswfhdB~d9`UbP0;ZO^$%FR1?peTrR4=G$GAuRd#fr? z|7{yoZ{4qQbfiSR_Z4a_EieQC1`Wm8Fz=Cl1C=7%tyI=FXm~g8rV{PCz;A&~XIR>( z-c1F7n~(|Tu=iA&q5e*1&~}QX*?;>~P%){SFq50X+P8p)zX_;Yp&fS9Jaro#3-7#I zeFtjpd(@`x0A1{%?GO?XHAwwxA6(7FJ zz`TFYJqUuzN#|)|$-zHuc}#tqCZUf{WDCh%Iwm9s*7i|T8nVWvr2LHq_9!?X{L@3N2s6Q^IxCYq2Xj(2#<7Lweeeb~Wf}|13k(dFPaJVnopn$gP0;Xhg1dVN z?(S}Z!-BiJ1`ZDAkOYDg+}+(>gC)4TyL)iR%L8xK_kLCPN7rokbWiVGZSU;vZ-QFO z89MaI9f{ZnPZJx}laDQ~wwR8c1MDK?rnQ6kDM<^ey~lZddGdCJI9mt9Hsb>omm|X% zfiifH%59-x^{t%Mtd1_#eG-Bp1VdWTuA2MiB73ViSTmurQ`8Encdq=^iQKziKZ40J zKY_@+^Tux>QPNW;#vi_*a78)%CR`e)%OzS|=j8N=nqarGn@n9&Kc9kKWNpaVc%m0R zQ|Fc9K~|_tCE2vjtWVw5s8;AkUGZ=j{Z<0?tfuwV(EkF%0AY&~UkueKd{974mqBa^ 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%0DF0-w?O(-cXeO6k>l~c9& z&H$f1J;39mSVw~Ssxh7`pAYl>Po6F0{Tk<@r+_Q>$op!@S$njyY8;cyezM0|H+xm* z^k?RDrnAkqwRh>cP*LQ_Q|JU)sdXyIr|A>zuPe`6cZ|GV$RU+!X?oZt)31l0?L4t= z@IH%m%KsSIA5p^47(9zQ{2B0Z?Er98p!LP>>CbPi?buHtxp+T-ohE~$)M zVYA_H8dpM{#D*j_>U%|Qs1*$H;?edz5Y|xHbY$-?Kx$-JIK6!<;+S}Q!x>8eqNwh8oXqELjk3{Vwa_X4#+gu~{#s?x!t-y0Msc*<=wq>+n@o;UJ zbjuybX8LV}D1@qNejELTBa@`yJ$9k{QLa!}@efygMWD>LhMR?Y!$u*_r#r+s{p^}@ zKR%noK9ZSBxt1>X*lI?GHIfE=C{%lx=c2(=&oS}fRpUc_F|!ZEcL_ueqVo;7be}gn ztx}e74ZIvmH~v~=@>?>hL!}}>&z>uKBCy_uZhe6A+>x&+Y3F3#%b|O-Qwsuke-O3r zVgqi3pjNHE>2f)$PXrqKe2Ns-F=6>dq2B+_ZN>okilLI`s)O*MpEaxg3Q*}NJz?Ba z?@t^zOY;2v*&#tTm!nvlRs7h{d#|R&jPpT;p&5s%@m=E_TN=V;vWm*}QqhX6*|_7w zDW=qiccZj9XLL^%%(!p!+V8$6S>5P(UE-PVidz}Lb=;tAO)YZhV=Gt z{wewg$cMr+PiwQLBQ8w8r-@E@F#UlmkZ)GjVvCXnyZo2-`-ycA=MPC(u~NM}#Oc(i z`El3pp1Iqq?{v#tbX~n`sK30gHN17GeQ{%A+xv15rxW9*+*LAmQC^RQ^AeS9Q`^)D z13Zn0pz>1#9zh9)A6o(OK3@!L8oDejZ0hazE^fV#%jHUqB^H zS*Q<*9L(C&IkpH>x9fZE+ICX5^8xul<=0(dgRmw7-SOly5>@d-QLziIvw;) zu8EBSIj83S)n+VCS5ALl;Ma0Zfhs=9)HnRlA1t*whbg%DB>krudrhhL&u;A4tqXbI z#yh2&6S9%nEtt=z?1`C>51g@l;wNN@-N<*|ba`fcV`{f8FabdPEO9McSDG7Ulg3V3 zIv3}U#bfk_JZD%$_GZ@|*{lRSbM|*AKiXZlYv7key%tXuBj@;Ll!6&OD}-hU)pbq` z=yLZwL^8L^z8_3^bl6eXrRXEE?uTR?7OZ-02V=F-ta$;Cl1dfd6rMiNi$WktJG4Q4V*fl%3#crh-$BFcx@J*T84=`#HkgN(i;PukBb_K4pkmwY$oD@i@HqldL) zQ|?kYrC&Bb&^dHLVmhj)4v>p}sdDwBL-Mx_X=}+h%dLwyfiK22@fX?xKFlm%Pd+8D zn=KJuBoHtwj>%JZ3-rI3|DfgV@67S5Hu2oDNU4zeN9}q2^DWe_i2|%6a@MlLI@8I8 zPr#q3i-ZbxKR5X*hm&lrjQ>Ql@R=F&w}V<`X7k5ADI&?D6t}Y!tZr2c>ko2ptuOW+ z2gNDmmL|UhPb@yzbzfcg-4(O5%TK0RU*tFrdZJ)kkZiuO2!yuZV1E9&=i9-qMrgYw z^IhcUp2_`P($IDt=Ix=L#N(hm1%>?Nt>YJ#%*`8%5}_d$%*>yAW;YfWkB{yvD3l}* zNG*naq5Da6e3YVarp0VG)HAlfOA;EQ!#q3G6L_#IbbQpQ5SE|JEZy+yZNaD6gI%J~ z6C>uA5`Rh}`8mahB!0}|N1aCwCJ~q%Fwcs7r5ad>d5~q>10>T;@HzF^45-}^KN^&mQ6Ld&>p}<#Do-Pj z3`v`$lulK2|6*PEJqcxYnoHMlE)n3A$c*Q(t4fG|*mPH^_)=*G{-@yz(D;QaXVhl$8uRRi_TXdD+py?FY0H4#s# z-(85UB(DySmR46fy-FtW_kuODO(btg*x0KcS7}mZ&&ZJ+XNFKZG{v!z_!`J*Xs~^M zENA(~>-b|VIj5?JNpf3s(M@I4{9b6hqaS@zzT2QphpN6o2qO4LteHpk*Jn?@C}&*P zK$>3BH7vBRu2C%*+`cq6RHat7wI5gYi=H~Rsy%j^A(^h4m72!Qf}Pqq%k0f($6B3~ zT|v#{_Z_L?*=&dRv_8y|3}0j=DRX#m@7ECN<;vIB)EGs-XEvn|hxq$y;EETo7DRpU zYK;>W<5zFFmo9ofA1A3mGppS(g}vbBgS*Sf;ydr&e7gOn2&De$A45QPInp z-(OiANyx6Nt<{P@F?IXct5H>P-^~8J^BMCd+lHB|MWQGb|Au(Bpz2z>V6K_|pr7`q zsMljI7V-6T7vK2hev11rVqj*U$nyM)L8L#S-X4x@?NGo5omP{27Z0}%#fWQd#rZG6 z^b$ydXDSYj-HEYJb;=%`{&*YK5sg=?cz5$`MZsRY$Zqg6QR@$Jca_w8A=|qCxYuzZM>MfIs;Yg;Dzd;il4)I&Q49sYe)`qmPzpj#~9~w@B|W)ppx&cd#YUwfK5~&2-+bdqJ^Oh2Glx-A!+1dJ8^Ai*kHKCrw^4G6zu7HroDlq}S!K<~ z6Wfj+mK$oQq`3rX&z6LAor21>!Hd{A3W~TH_rhKMCkR)PBr3+V-7*?!R9|1FvLXKV zX!;%Ulw8%#>Z5IgCc#8yf#$V7`;Bou;ku4nI{XxEY$S)}=^oQb)6WCnTD+Px-E^#? z8=uT{!d?^CctA|BDP=u`mAcq3@9v%}i;uYXH5r@g?uZwiptER}h8?d}Nq)t%s#(7) z(*i(y0_$9D+K}rlx`|s~zH^dS-W~Jes5Z)_2vYb^ZJcys?U)nCNe6oYjvF zS$GC%U)Y*?+ugKzK97gZ&Nea7>e1!#kt-M#jeDJ1ou4e`@*lhH zHNaq8lXY^CiNp9-(?qV^{vuiJGkx{~hPDH>%G%j<&nXV6%U^Z~6y7D&F8OHvs(WBx zwXo=}nYsjAjPbJQDw1LgcarDRGjB^;Nac+dlS3vsI(i0Q#{O`>R_JLwTb6`(;01=9 z!JYea{a=a#Rml3qB zmgq$2uUm^QW7qd*fj#`mkAgaZsic-o$uI8}FVi7eEhJq>E{d34fALWFld)oAW$!3= zCiuTg!535m*`^o5$ZLv4^>ZmzUO$sCPu{QTJvKv%D$dA}QBZI&i4@Fq(9?@ga+Ps<_X2(}3VM20AzTp0~Yb1wqp; z?-JfBy%7h3v3OGwS{ATG{oe~vbh-Ov(4`E>>F#||cQ{*h>2&5Q;Jq%EQfP`}tQOu~C92(bJs6jd&Lf%ea4RyeqnuKZu?tZl^Go$qUvI9vJ^5Yh-N@9j zh%gZN{=!n*h{@iAiwB#%9`4@a!AE350aXF9O-S$<#*AoPJ~2jf)8L>7G(5E@OOr_-SyPs;Zp(lF1)k z=nwR#OOnEFXEr=sU?evOrH8mnsuyLkTDkcFotz!`WEbHz;w< z=PeCy6_+2)8di!b3%?QP^Zi1(9&<(U0ynh~^BY%2l()4vG2eN&CN-*Ap;wlEQ}iF- z+@SPUU@KtfC^%>L2KC^N`}@xh%Y50Prnx(Jva7nsJ2$V3e2*1$BAe%D1qfD;QtCCd zs*&@)OoZh@tgBZdOg4262VeF#(hmo(O}=wIylq$SJ2E$BSP!^;QTntY;<7T{pSn-d zFX5EdFoQD5(lDanuu;;YF)|tv;}CaBGg;Mf)4k$K#9^bRWyRyFgQqo+nA*TY<>0+b zW|c$~qQzjvo2Q|-Y;QMre$mkpzv!ET_9U`TZC0QpO71MJ;rvl)8Z~=&^Nz=Yq7dJM zy|^REP1f%X`QnlLL_ONGa<<1MYM*&JBEJq159jG`8Zniptx83Ee2y4?CCaUEFWx-+l~p*awTRS-TkqKLt9fPq>i*p?t=*aHpB$Bt zuKgDQz7lGl8fkr&&eTcLqt9tUZWlSaK8B{Wh^_KC?7dPh)f1;^ViG*QwLpm5u)wa+ z7JM_6vcs<;%IK@^PN=R?Oy3uMK@@9RG2(Y`DBX2`>0i(1HpHhoF5$k2OFweU7`#)m zE1}GBsuIGic=IC3pwmnOrxx9QICH7PAyT!}ky_u2DeP^dd+s9r`a-zaUP$@#LhEir zpruAneYG&PyFS)wD}iBPQRtyX5P!hAQ!3RLg&X!fQJ14A*-i}mXSL7z=kG?!aTbLH zFMC_(M0GiYlqt@vC2t@0SVhTzetHuB1X0_YBM{7VeUkReG1A+O=_?L_H4GpF7NPe-zln zub9+E*-$N&gikpYk&_)_A~vD=IbyR>n#!kHrde!kR)|J4Pf5Tud4Zw?TOoSqD-!|U zmla~Rz@3BD)s?9WRdr%sj6L-=jyng)$aIx~@KN7Jxt}(2U*x&FIyP~C7LfmRl)apv zi~ppBY%fJRmf&)s2AOEW#dyyv~EcNVmCcRw24Umz;6Bjb@~(0=gxWuY90d7tr~;W6I- zUa_N}Ri97H*ieCuh1G`JY-tp@g$+HqT+1X-6!VaEq($H=2D#b;tM~ zfRBmiML)wlHJ_3I)kzdW-fVL-Fa+}q_$m9qYRt(AiFX1YQA6(uSnmZs#JneHxF0Bt zL2J>01pE;9M_u3s=Be>>ZGlUecM(1Pfkv1k0vJCB4q%>l{~i1{L(G|0%qxMwxXLePBI zAxIZK}wi~k;Mk(V;;C)7awGfIY^7RBcG4l_FRPlkR8q!3YeE zmnFCi<872bSReK)9ZZVxCMg?ifjL$zMJX7}2D%!Gs==mAkT=xLU>}S(V&~vGOom?H z4Q|530;B|kkMc*qsXUh+OpD<%=LFkfG$M+EIWgRdl3))Em%ci<6vORm2!z+&B0jM%KLasFT^aP7wT%7a;U&bgf zeF}EN94iqw6O4~Js3C1FSQo=x{1z;XDHhE^FnG=fI`|K#!88!JaT##I9HV0hOo* za6vO+U2rz62Jk~OY;`~Z0)MW9WE*whGBi^%0%uRu0X}F}YXi;})B$E_HmC*8m^A=a zXjXtWZmR*X{co20cZRJA@@6yu7KjJVWd8yN)D2C56$cD1R1;7}pSyy3tqI7X31CDF z&GgrRtJt`#;Pko{5Do#*tsHt`C}lIyDz7#G9o~SNNBj5C26!MIw73RsaB*l!r5hmc zOdE)RX7_XeQwU7x049H>H6gHV3<_rG0#~6~pDv(}A?t%=iR%C_Gy@}HK!sfg1fW^< zbwCdSVB(}90OiF@56lbNH#AHCJA*Pfst0Be%{$b?)CeW44=DaM!hlNB2iE>KOEUm# zftH5WG-v>?37sAky&-S~;z8NBG6b`amJBxpU}ZJ_ zXSUb~HVX-T|0@KgSi~4k@isaQ{>E?`63|KQFb0GmD`4hyAb{?lW(yPG3Uq_Ogz&`l z{~y8^Q@{lh1+6RnFN8cZI0UGY>t=8zA*WZ(VW(iC7*Ijx06U}y^;N4m;0VpY_Ev!a z)WYEwVA{Zag#uF}4*}4w8U&z{s9M4Wf_B9{OK?}9rJ;uJu>>0)J%dVp@dj9Gh<5|f zf&jR5Z3sXm*}nk>4)YmM3RZyk|9GFQVBU!p@D(CMtJ|{%SBF-C8cx~> zh%)5?hbrj_I6;(LPrw!ee>?#j2-w{PJRvZ67wl@ZWmzx483H9=I9>m{aPdp9!J8KSN>8Y?!(y#zYnNGtLVKC z%TPzb@i;`ml$t2m>A7g|&V*jF*c z)UTz$aVVt1DSPx6ETzKRNk0v4shTw4HWVRUIxOs-4llL+FNG`vZZgjdcXioz59GltmV8+2 zZa$o`ulaDs_zK|QBMac*#|r=>^h*VSLckI|#uftl=yALdHo{#5>mrH(b2MkP2(B=9 zF>oDC2rLGW=<%o+utJZfCBRMe*j$1!O;if#q32emfCYMNECo!^BT*S)r=bim zMAPxh0R!}CSq|u+$I@~@7d`I7bd9H&c^W(}JOzx=e8~!o{QU~d5nwFa8B$O<qAASHfCmJU zn_;cFX0Q>^EYTORO!x~}ec%PmVrv0g7%dal0$vZ$;C%~tuR#OWR&bM{LBL<|p%v^w zh}8yzz`x*A8`!647DqdLHHvJ9Z}(H}VEdt2S3AJ#6B^v>fQ2VI;HJLX3GcS}PIybL zcEVvOyu>6m5gw;rVv@!G3fy66Yrre;_KgNhui${CU&FV{hp*un*3kehqw)rDg+TQi zn1bI028?Fi>Vnl-CH=S3*DH#<a1Y>$9_4#6TME^Skzeb@*j4Vsv`%&(c+o+7{?&(J z7`?~zRt-2p*D$gVn5%xX{Re=b6m2tk9Ed@Wv=hJs^jI_j0O*l<5{N*Lg_D@=e`N|Y zFP#E>&~*A~AQ(NSPXoi~(RBt$K#xCXfF$%7GmFt9m;<8G^M`Z5ee_5@kD2Gr1A*u{ z%>obxj?JhA-~%?A;IsrhLXSU}fDH7QybQ#lM}`%QV$lkag`O*|0%_>+%PL0Rbq&Mc zT>}!)^zd~c3O(X)0P*NCZ3B3S9yz~Z7Fzoa6R7ega1TxI-h=`{sc!+P==sDJW55 zGWUU42yh$#Nf2l{0PaIT{t!rk!0;ig<@6I~eftSSLM-ni-~j|qkAQ3lWdDNg2pq$f zUmU}}^nU|!kj&I?AO-@rPk;mn9Grk}y3v6JodVGiz&?Xx4nKpnNdCZDs6QB1IyC}; zmQ7DXL_j*U*a*z3o?|00R-|wc7`tsa2#hCfT*N&{cmNl%486~9K8HX-!0&`xiWAz~r0LxxC#K*UAFeFzYcBc4E@m>gD@ zz67g(xCF}>QNXNK3PdC%>_Lfm0D)hW@RA=>!IpWbVP6f@h&Z%NvoZ|=`~($^UeO|O zFdve1(}Af+ho(x8xB-EDdW0ba_URF(5YT0SK`{fu5uy+>!W0Kagat(DU_=-};1UzU z7y>R#pg}g!ayJvg90JUj5jGG&UWSE7FC)w#VF6|Y=7W{{%%Eko))X^rM}!4*fu*M+wHgdL_F zup`_diW3LytCIs^4^h}S5q1!`&xvq=z&a-a^YMfU7s4B&^m4%l1-TKoAqt8cHi*ZA zxCK!>d0>OXJg|%`FTw+2Rr11VImZVV#hwqQwDN)8(e+~FhbjL2V4~2$f8d7;$1DI> zCr|*+YQF%Sx+{XGCjuKZ5rvoBE{gDnWW>baTBM1=#oZQzvuY>~SLcN| zD1&xED*=O`zu>C`TwDoBICXiFh?|gQ94UA?u2Kk3h%zAsv*e`_cOXioG^|A_1IG+L z)*I6#12S;Ad1Mio59t6|*wU_Rjdp@zVGbS9+^w_lPv z9Q=$rtj?za3x{eTbRicXHQ?n?X~Ir#YQkDIns7GGG!d$hu-Y}S!_lpka}8#Fy9QrU zu4%zniF_?M!VN9hvZyxfG)fy@&KGUi1*Z;N+;AP(V80F=2AwV(^KD&Nt63MejC~z8 zXnY;kD!2~!{CPciT_$?q)75xW@zx zVPT{pyi;Zk;Wkz=f;;@F5uEuyMsT7mjA7vy#xRT21O`qfaOz&0!0E*|g?rx76kchS zDZKVGQ#hXMX7DPWn88<)oxecS9KNJvo5LIA*c?nI`lX_}1sEzClv}{7IJSV(Vq%HV zy8tH2W^ar)ffL1i6G4S~Wr>hSi)Y+`eVE^XO+Wh!u&of#8yY(+1oXzP3Lbx3fuTb# zt>MHywuURQX$`lCnhh8PS|-B=OaU7FumQI{8W`Eal;^fEh13pA3Yz6+2Wz$4!HJ{0 z30|tuEWewu<&QVv407AU>jdoKb&lG@@o+i7tY8ONYsdj)q3y6c!ohnwf_;FdG&{lt zAaH`?adrYPi|CJS`kcT@pk=6T!IoYAg0@?5gtWK8yrE@0Zo@8K-3B`q^5qQX77Y-8 z!LT!!C^UuB1uQli_`ASby?+6NE9}(S6>j2YS6GY44b(yhcEb(c73FSl7h>N5SAjNY zbO)rMLFFA#9Swfpfx|Fz2eW}zuW$!hXmE@M=q;q}fq>rpXL=x@H}k9TDCUWoN5Esh z=ij}17j75Ny9isz#K2v+>p8sOn8Li^at?aImwX{_SnIww!W3#rju!Gaey9a+genWV zLsdUtz2!#^eieNMJZ&B8e}BahRUW7UZv+Ku(!+%u<@N_b49Snhm@(LcU-o{Y#=_$I zpEy==ggp`?pNw>&Ms@lih@o73@c zkPj_MC}_%m5VUnh27WpI--58fw5FkU0}!&15urfPNcEThjF6-5*u!N}?IID=2M?UD z1xv&CkG|#XfAV;!hqGWUNgBaipnGrImJ!3af2sPk5B%2)Ky9Y8^*e}ouO zo}f+0Nlq}BWg%2cFhUHP@1WX@Y^<`*I*0N`bs1c9J~eDfecGC4a; zwniXmS<$_>e>hF31^$Y`koW(F@SD>WMZ@LFgxWfW^ZOb!fgOgLMj$ZX1(Jn;Ib>Bv z%^(o;D2))f^{hZDwj?Sr1b(5@3C?kw3|&#mo~{C@KZdS&D6&x4;^k0~M`;Q3Y%E<# zPz*|N8CEQx7QO_tdma3Jxa2>J?LZZT!uQ|}w1FW9*noH#yzz9xKys-QOx|{Ky@1LK zgMC(`c~j01PY`t+hQNI5%76sP9G(za2}O*A86D1#xz(|i2JG*D_mvD2M&6aljR^g%387%s&x5K@~*8FOjy;`axnC{mb_em@n*=?t|1M3pAAq)oI~&32F$a z$_`!IyidS2E`t|qj(@BQqn_VKh(XD)sJ6JI0Vcy34+~4;A0ZNNHx!Szn37*KQ1;l|(Q_ z-2d4?ceelvBYG1B=3KWFz}%#_WDMKxfWI%(1$F+tK_)#x%hRDeW5I2Nz6T_L07pIx zLwyqq->#<7)WvKJl_m$YjlO|G_0*-4@>2xuE`YK8d#8GUGI#*rsgfRm`j-mO`t&Hx z0U9Ay9X^j{eXGZ?m>b-PQBpB*UJ~E5r*na^r+`lW?M2lW7KVD&|T(80MDm{Ud z$95$H@Bj;QnJH(3S0b4Am(S zZaOx;&SwbFLm(JC`#J&$o?esh2Gxi_zyD^( z47Hnx5QBmvS+_<-g2A1FJN4gIv>p5Z+PV(#9(3HJ+upQ}vmexT@56CZHED3FtUH@D@9j zRsFLDEU`ioQOk>y|1r`a+LV}L$4PVYI_=pG_uhvUY8nZ;B}jwQWrTN2M_ZrV5zvWu z##N(?bgA41hB|kTp;}T|x}2@z_c_iT1G%h#>7qE*n;Om1`tv;2B0OsPZy<^VQLsXE z@98*t+%LtMyq=A7q3LflD^IxGe`~KFGokQB@Tgr~N+z@AwAE%d0_z&?9={$JL^~4Y zjF*$qBIyO1m)M1xBZiZ${j|5Rt6A^Xwnw@?)mu<^Gl zbvO;5Bg@_;bHE=_$-wyMEj3uvV{GPaUAu zBmAk7d)N#5X>(=#X3vF`EC&I-F;}a{1;ka^I@=M<&+v!&-1u9S>h2^+yU)|Sxq(sh zAmBS^0bM&!tIMIq40;PU;h1t>E>bx@uCpgtt#F21KbYRkD4C^FGwM5EE{ZPPk8Z#$ za0XFhg(%uh2t6@h^W(Zc@&2T!7D$6Zs#aZpxf@B%$=1W*#686I8$!@8)KlOmcpALR zo%h7|L~&opTLXDbm8M5~3HlP!YI9S<3zA|6g0$qLrp+mAfh_obS%9Xt_zKp$z6Q5) zE$%Utmp?sTqg?QljNX&77is?7n6W+1+t`ED0i^2C?L&_iX`Q*eYF$T6{r@{} zdyr`VVUWS4+>AvTP|drcFn&NogGV{4jG=xF7O0ksHF5cGQZzZ77AqEFRvNNNlOXa%mSB7sHV#NCk z+t`Lhy=6c-x1%M?FkO#WhB=l&Cjn|wLW`Ga4NdWQ1do;f*Udo7yBUH+v5OszVI6QxmJ_Se=GQsf!t+jE&hdLnqzKJ z=dGWq{c>41-|Cw_`x-oQ6dqAiX4WVJ{W;1|p9+`DK0CG?4g5`amTThTs>cdEx1?4p zp6k)iE3^hYeII`HdB{!3F8)ZiX{>=fVeoinnrSBHWI%Ir&$&Ym~rG;WjQ;YTmiPUHniivkC<+SrWd)UA@_+$de z)k*m^1+S9j^HSRup^wq-Y%DnZl&H#`XrRLr4gTc0B1J4@8vb=^BCFq~L7>|9)gKI0 z`h&rfTIR?(;;7$~8Ofk+h&jSnkvoJuS8I)VudP0GuyRWX>j7iD6(R?US}i@Dxf&5L zb-IBXO))sq?&$_gicXWBd;pxuFtS*qeZmC}3>dL_AzJN(R@L-xK_k{+7nRkmnQOrG zkP6ml!JKK--K624LyLuQfsdlabh210`@ij4FnQ9TwOT#SG<#!Bmow-y1AOPHFzuz~ zYh_TZ&)L}FGpOSV>8gFFHXG>CW`hseu9K_8DMM^iD}nAJ282pGcpIm6rSxqEa~l4h zVe7d;JFk9PsZvf}MGY40;tVddYMmS|JJ(^9ZZ)N-^$3uM>oj|A!(WdIW>rIz?O?cS z!)fwauZhdpeb>Wq7m9rUyadmtZLOK8TD$=s!kJIw3+urhzvE9GTH~5W(A4G;^(lCR z?6h_pAmLmKs+ol)Y4ir!&C3~dYbztviY{-Ef&6Et>C`$9ybXVDimwNgZI)c!x6K0o z&h~;oDogX>NpOd|W%uLgfprK7e}%QEGns7Eyy#e#^hVy%#G=~h%~>C%kmC6pwWeI$ z>0wRh+=RHDABk((Lx|hgLbK!Q_qJhF-?ss?;f25wtEV!jD&ooYs)^d;NP@b(KZ9osk1&ef)3_J z1W?Z$*_}gkSa+(I+L)s`@Yr(v{X)NZED*XlRh)go=yHzMh5IPKh1ZBrp-vyW zN|o9w%~U_m+7Qpo} zxe(IS1=eSv=hUUZQu;nm6R!&F%>!%Ihm5rrwRsrfh?-Yg>6#Bzk0%1vJ74qX25c;y zRBI2U`XPb&C<+aENnx8%9OdOBh}kAV-t~f%GYFkSA1N@9uI6K_lM!_Y@3=M|MAbp0 z=CAK4bQAIytDnE$1XbFa(DDM!nbO`ySkSMVG_i_VIBDkNuQ5t$Lk3={GX7SjUaleN z%{FUJJUqNML&_v80o`U5X-(Cgby2UxFjO5|ff{NXX;;2<@LK)rg0pB~EsR!|@aO63 zW-Q^^?C-S&{H6AS|8qR>24fjC#7jU|Z;@*3VbJH^0vhNO=_dA=nHcx2Kv~ums6Jc4 zz@TFp^htdIU9uJXDu51a)9~=DS1@`H9Oq{=n+5F3AVGR>tLDn}sJ;yXE(8l`+ikMM z8Oor}O$9W4n@oO13_9u)0bTG(q~-kWG9GNU15@Kuf$6wiE}yqOTNk<;YAk{pYDRt6 zRggk}*k#IL0-pB}(7>LN4t$BrWA)o8YQpN2IV`diW2TbN4y_3fy|&A%cVrtiZ1tda zb#5Oabm|VxiIYC*QQv$VNE1M+Ccy#y1nG=^kv9B9fVbbgm0zwYXurYSpw=Umspd|t zJrC7jzi~r;fpUfTQ$w{s#qN|-ZT?OeS$}|NWW<0-R3|&71Fd!eb!DItWktPq$p!XU zhN?Zxh%%>DyQG6BJhBVA1+}s;;MDlLH2eelccAB;?Xer8Y`G8kCEu5PSB~2((5_%f0g??ok#52HX7!eqeXRn z{P|?c`xU1chF|3p&u09lqIVE=6Xx|$#8sx;U*(Ck)gBmTn8sL}(9k`yT8L%P6*DNT zQ1hovd*nzx%%E%21=O-o=J`3VI_IoKGiD!oaW#b&%6-=4La@$WL?(NYv9b%bIy@{h zN;9@}#SB&m*Qs8?_8&-bow-P^eY_uk<9;5#VY`_16=Sm22~tCmT-K)*p{-*Zj8IED zUL@-X&ue}izk{y(;6Zhv`1kz1a-Fy%rS0S@pgD$?RHfE#5;8Asigf4aMBIq4vfP^W zgYA)0*&17qbtR6z>sG%l+7o zXfip)o~OI2U$pz$2~wUy%T|h%sJ%w|U@oQIen>gL-w4IKaQme$?JnEiISnaek*(A< zc83>&KJ#^?Go`CFl>DVkpo+>OJ<0udnI{5&#~_R_jiSB#wT6`VyF7N9!N5OMmEaRqqs-~bdzOa` zx1gHDh5R8|`u+iMkfj7K0ho`wo`ZL`{snq2$Kh9);>%5R{116K!RJr#E_9H*5B}6F zDDh7%fEP;-oBuZ358dgD16Z|+sp4ABAo7vb0j9P$2RESO-ce?h_L;OalHnq{bDTS^ z>mKDmyAMd*A%=T7G>RVYL64Lj(ENGROa5+P&*R<{YIz5C`MBe8fuJrQq4p1YQfM$&?{_m6pff1 zJ3GC4y#4{NRYaGRJie*6#6I|F~}1bclBg&)Blgy&rNl(oo>*txRzNfwCb;G{Z= zy(?+>5v@6QO5F2d!-7C`2BRrJAv#M@^opYD(ZwTDp?gQ5P&cY}RBOnmhE_+R`VaI^# zS}0K87e-n0BSqfoEQadypJ;XRe^Ji7M&=$m^Y6ZPQ_yXz&~54zk#bMae_u7a2JN^P zWlPf{-yfemiyu>lu;`DlP~)g)Rmwk(letM%qit!>XlYu(-8at7FbAcg5cgL+HiPnx z%f(WmUCn1JAn+iT0P32svON>(K+Y#L@vd##6R_u=hk!<%&>C}7+&86Nm;nKQ;LuzZ zu(-bVtI@abN9=HF_^ZteKg$n|0v|u`%C+THyz#O$;E|mQ4xHqZnXb2 zU6AgW9_>P&eWd{ff58A2Ow2j=|B}}Us-Fb(ztsZT`lKdaf*#JG0oejN^CULj*xp7i zgL)?@HyKWWb;=FFy7-hoep(t8#n9WVXx85-Ps&bfRq3Hsj5GCo zpA?QTe6XVtFA}Ba-+<0+#Gr0;piztsSp~`9Yj!*N>uPDrd9Gk&}!ct(Nx|)nzt7?+wcEp`yeQE263VmKG)|8N{@Llt`yY;DT8g^Hr=qV zLlJ0iAv)CaDjXDZBS2q`jx9vjO**Gpu{PHGA4@&nwNj=3sN(p_SZ?Gor=#a&f#SL| zxQZ7XwF7#!Q-*H#T|qzML5vlR+bZ9t?{yxA1w1gK>_vuSj#+xaEP4Wl;#N3ZO^aks zu@~U;beC8&I&B_n!_zGHe%vgti+eH52Z2cqqJb_(CQH6>=HBmUy8GX;@W&$L5Our{ zp_mIeSYzJLz5peyT9eO3%yyr(jq6F-WVjVDRENO=r4RlP<#7q9``-#w-7&Gw;+`E7s56vbfsiiGN1`R325$5u@Vd#j^L+CqMkX6ER$2S4ub}<9tH|dn)+gE(Bt!;X#-Py! z3|gBu6~sF5&gXu;F?iHBQJAj2gl1~t-;cbnqVi{|@1OgpPbOxXMhFkJ8g{rZnp%Gq z$J4B-LswD9m{lH6vDae#sK&oIMJA4A&N_Nq9gxFhd%lb<}6QBu!1m**L7MvXY3w)J&+O4RT=z$JEZb86PK zr||1?$v%-mQ|kz5?se(%6Ab#WbsVLJ#s!kg4GC_21K?4i9Nd_vL2l;IeUNbPKk!wtL?KD(#sO<;}x2Z0uLr{i|21 z6vCoW=_DsAyoJ3=#%gjKh3HQ5xQ+dDE(*_;FAR*QtHa~%@gkmv4?)9(>%n(J(lM^q zBKFkDa{q8nTbJ(MmfiG*i6nBmgPW{OWRE*|eokZV;7%obUdEoIX!jlL?y%>#c&;2h zKb~gHk8eN`mNJX&?tjoT0$$q=ucPDJmqf!Z@oBq#Pnm{|03og zK6_zXySZxmc20}qn|nB#?064H$V`WE_aNup{&HL$4nD}h{>A0sDm1(}-h~QKL~w$@ z`ye=b@Ls6u=56WY8!Y{GNj#%$9HJ%OJSFpuwAz#?$NDyPjUMX z3J&|M)^n%9C}NwS3Rcrf@r!bX8Z`NV=E-}%)1v#)DV4EHfyq@pxBZTa9^h=AnO*%M zl3kCgwD*DLLsP3JI8pdxsZ0bz&9@V%@7pGr(|NlDTN?II;!iOAA&(F6Hl7Lg9MALM z4)1%Djw1S&K;aOj3wHV#nW|BlPl7|a(9A~=dO6UDx1d{(a8ZM)YVjDT_HB(QXQ3*q zR-+i|%4Y)Q*%ej{#2pjPRm@PAy9$)e6P#%qIZHbSC-75YM!PJ!vy%Vr?SjyJAF&{x5%BTkkU!9xnP7K&3uY8OV*#W zPucXnjqW*s2=Azny3nJiT0dTJPaf@HR)oUE88X$f?JFAjOzXhaj*Y%vxB#7e4dX=J zH;9j-SD{O16`(Gz3fiu&vEsV`RxK@ zwVKRW{ix^U1WX$U2hJb4ZcIQMXmJB|i|V{g8u>!LIJN!-_#5F;-z%J3g}ub?$AcGg z18`T-#;@C={f?+xf)s!JOFl1gBEZ@Ye+mAvs|5d|ms(>EJ;tELYZ$aCdA`Da40G_O zz9&01gzuh1XqY1K5cPSb_2$02F!VvQ4(Ns5C>uf*qAxcJd22Q%SkHegW8UU9T6&(# zFimLqYm}F)rDZc`emez1f?>YeQd*%Cn_qF$PPfEx5pj@r!w->qwoKJJFV?W2e?vG{<#m&F8M-aZeGul96x>4WyW zeAGV5!7{uu!}L!sL!$$08ilyiHky zQ_+;_=QK|vulc+bou{~Yi*+~C7T)Cuiu9fkz$ZlBsD%meg8~@djXId<;yQXXgKiHL zP+L==CRNeJ+3_p)lf6pdn(-J@Y6||Vg^^zDKeY#=Y27wPs2eR?hHlObH}qu%Ba%Dk9TnKc?K@Zqr&tf{E7 zZ0|Tj<;Mxs?YIf9<$IWossOcr0Yfz{x7FlFr<)59&V)gzp6QOv5Tt?ccZo}wfZodl z)MzH(X(83ZJMB%pxu%yjVv>Kn$|C7-c2`M`y2>KkqjRFks|g?n}9C%B2teV~Rt zYdEAayE-!r5uo;dwev=LU-|{Fs&Ly^AM17}6eDQVhKgNy?xK<2mHJ!gcD%fCfBE&L zzp)g)9Z+#YET&;1U0r}agFs9~aAgNh>~=(Dc9a-iH77=UVlHZM#vH>|FU*?LfQ z-L3NcjuJexOQHp3RM#E266OCKLB%y+NSAU3TWWYf-p#IV0b&34mAIsSiLU%28SkQT z40rK!iHrLp(M!ZCbMy&@vmYpN>j#3*xU1f{25_ZAC2njD-IcE%ly9smnQ2?Nq{RnU z#p>Y_6A?4A99)BZEOoI`YHbOek0Fs7|BzURCR&PYL75D^HI;)y_`wSI$b^&5jf#KUF-i`x$*nsbcbBPpuBe5R)%Bq-{HZbt!>l_?R zy1gz|Nhinjx7m)Gy(VgQwb&VTUyA5ytBd`t-JjI!d9qdFbOkUE$OV`48QBNz^B*JMXlXvW_ojWQS(P=h%G+jZ&j)@zUVi||d7V_9Mo&$#rN^$it7+#FfjeE2WGlcO+yHJ=Ccs5y zNfz{-8+_FT@38JIK@aY6)0r`mbB1a58|ErMQXk56R^EA!a?n*r&h@nZJjLM#^Zik^7>JnIR<+_ti;p+D7B+t z4?T#xXt)P5SQw>v=q-5*Id1=~8;KOO0&7-PuRUJLRN$KIO@qCYEvd{y_OG=k1dO5j zp1SxB>0msY?rKSip1SyM=mrKj+?xLM)WsWr3odQ!!CvC9f+1==*9l9e-W}0I3oi^7 zmXLaSVW^$#z`=E>_xnaO0X7Mw0xvn-9F zX7u9gtjm0$g5%0$nuTvX^Gyui?`iv2BYtvzyw4={+pD1Kll5+yo8r!1IXws>eIPPS5jm13`Rihd zS^ib(iU%UK{$zr^$)>jM%~c$D%4I?}*(T}xzp>w+<;q*wJBYwql?YO zw+xzi*9fgfXD7>*?}K5%i+e)ZB#f7?io#jX7`+>1*45kap?0}0A|kvrnMMTYKIDo2 zaJ?>W>g4DK_dT_!=$&L59-z19c0LOBb$^R|X^*~FXZveasW3pc@Gbx?1XfF-5oRe) z^lP;gKYr7dzOqhnK(LD6s?;}Dlv+=3Ychfg+5cuxX+7PS>r%ACq;eZ%BnQmN>d>^I zcJ=iZT$e`8@3;5~j{MRMmGyh6`2VWZbYJoc)O*n&zm%GMsm+BZjt=l^gzLez=!1NAtQnN&MS?`YDG#s=x_O7=np6WFK@>7azp!=F-bx47P{{v1vs}TSI diff --git a/superx/style/superx.css b/superx/style/superx.css index 181b7cf..6efb11b 100644 --- a/superx/style/superx.css +++ b/superx/style/superx.css @@ -617,3 +617,71 @@ thead { top: 68px; } +/* Styles für Javascript Baum, z.B. GANG Studiengang-Menü: */ + + +ul, #treeUL { + list-style-type: none; +} + +#treeUL { + margin-left: 1em; + padding: 0; +} + +ul.treeChildUL +{ + padding-left:0.3em; +} + +.treeCaret { + cursor: pointer; + -webkit-user-select: none; /* Safari 3.1+ */ + -moz-user-select: none; /* Firefox 2+ */ + -ms-user-select: none; /* IE 10+ */ + user-select: none; +} + +.treeCaret::before { + content: "\25B6"; + color: #014A7B; + display: inline-block; + margin-right: 0px; +} + +.treeCaret-down::before { + -ms-transform: rotate(90deg); /* IE 9 */ + -webkit-transform: rotate(90deg); /* Safari */' + transform: rotate(90deg); +} + +.treeNested { + display: none; + margin-right: 0px; + padding-left: 13px; +} + +.treeActive { + display: block; + margin-right: 0px; + padding-left: 13px; + +} +.treeSpacer +{ +padding-left: 10px; +} +.treeLink +{ +text-decoration: none; /* keine Unterstreichung für links */ +list-style-type: none; +} +.treeLinkWithSpace +{ +text-decoration: none; /* keine Unterstreichung für links */ + margin-left:10px; + box-decoration-break: clone; + -webkit-box-decoration-break: clone; + list-style-type: none; +} + diff --git a/superx/xml/dynapi/api/dyndocument.js b/superx/xml/dynapi/api/dyndocument.js deleted file mode 100644 index 79c4bae..0000000 --- a/superx/xml/dynapi/api/dyndocument.js +++ /dev/null @@ -1,276 +0,0 @@ -/* - DynAPI Distribution - DynDocument Class - - The DynAPI Distribution is distributed under the terms of the GNU LGPL license. - - requires: dynapi.api.DynElement -*/ - -function DynDocument(frame) { - this.DynElement = DynElement; - this.DynElement(); - this.frame = frame; - this.doc = this.frame.document; - this._dyndoc = this; - this.x = 0; - this.y = 0; - this.w = 0; - this.h = 0; - this._topZIndex = 10000; - var o = this; - this.frame.onresize = function() {o._handleResize()}; - this.onResizeNS4 = "reload"; // or "redraw" - this._created = false; -}; -var p = dynapi.setPrototype('DynDocument','DynElement'); -p._remove = function() { - this.elm=null; - this.doc=null; - this.frame=null; -}; -p.getBgColor = function() { - return this.bgColor; -}; -p.getX = p.getY = p.getPageX = p.getPageY = dynapi.functions.Zero; -p.getWidth = function() { - if (!this.w) this.findDimensions(); - return this.w; -}; -p.getHeight = function() { - if (!this.h) this.findDimensions(); - return this.h; -}; -p.findDimensions = function() { - this.w=(dynapi.ua.ns||dynapi.ua.opera)? this.frame.innerWidth : this.elm.clientWidth; - this.h=(dynapi.ua.ns||dynapi.ua.opera)? this.frame.innerHeight : this.elm.clientHeight; -}; -p.setBgColor = function(color) { - if (color == null) color=''; - if (dynapi.ua.ns4 && color == '') color = '#ffffff'; - this.bgColor = color; - this.doc.bgColor = color; -}; -p.setFgColor = function(color) { - if (color == null) color=''; - if (dynapi.ua.ns4 && color == '') color='#ffffff'; - this.fgColor = color; - this.doc.fgColor = color; -}; -p.insertChild = function(c,pos,usebp) { // Blueprint Enabled - if (c && !c.isInline && c.parent == this) { - if(pos) c.setPosition(pos); - DynElement._flagPreCreate(c); - if(usebp) c.isInline=c._noInlineValues=true; - else { - this.doc.write(c.getOuterHTML()); - c._inserted = true; - } - } -}; -p.insertAllChildren = function(usebp,bpSrc) { // Blueprint Enabled - var i,c,str =['']; - var ch=this.children; - for(i=0;i<\/script>'); - } - else { - this.doc.write(str.join('\n')); - this.doc.close(); - } -}; - -p._create = function() { - var ua=dynapi.ua; - this._created = true; - if (ua.ns4) { - this.css = this.doc; - this.elm = this.doc; - } - else { - this.elm = this.frame.document.body; - this.css = this.frame.document.body.style; - if (ua.ie) { - this._overflow = this.css.overflow || ''; - } - if (this._cursor) this.css.cursor = this._cursor; - } - this.elm._dynobj = this; - this.doc._dynobj = this; // DynKeyEvent needs this! - this.findDimensions(); - - this.fgColor = this.doc.fgColor||''; - this.bgColor = this.doc.bgColor||''; - - var divs; - // create divs object - speeds up DOM browsers on Win32. Linux & Mac? - if (ua.ie||ua.dom) { - divs={}; - var dv,all=(ua.ie||ua.opera)? document.all.tags('div') : document.getElementsByTagName('div'); - var i=0,l=all.length; // very important! - while (i'; - if(!this._created) hbuf[cnt]=html; - else { - elm=new Layer(0,this.frame); - elm.left=elm.top=0; - var doc=elm.document; - elm.clip.width=dynapi.document.w; - elm.clip.height=dynapi.document.h; - doc.open();doc.write(html);doc.close(); - elm.visibility = 'inherit'; - } - } - else { - var pelm=this.elm; - if(!this._created) hbuf[cnt]=html; - else { - if(ua.ie){ - pelm.insertAdjacentHTML("beforeEnd",html); - elm = pelm.children[pelm.children.length-1]; - } - else{ - var r = pelm.ownerDocument.createRange(); - r.setStartBefore(pelm); - var ptxt = r.createContextualFragment(html); - pelm.appendChild(ptxt); - elm = pelm.lastChild; - } - } - } -}; - -function main() { - if (dynapi.document==null) { - dynapi.document = new DynDocument(dynapi.frame); - if (dynapi.loaded) dynapi.document._create(); - else dynapi.onLoad(function() { - dynapi.document._create(); - }); - } -}; -if (!dynapi.loaded) main(); - diff --git a/superx/xml/dynapi/api/dynlayer_base.js b/superx/xml/dynapi/api/dynlayer_base.js deleted file mode 100644 index 62dc426..0000000 --- a/superx/xml/dynapi/api/dynlayer_base.js +++ /dev/null @@ -1,396 +0,0 @@ -/* - DynAPI Distribution - DynLayer Base/Common Class - - The DynAPI Distribution is distributed under the terms of the GNU LGPL license. - - requires: dynapi.api.DynDocument -*/ - -var DynLayerBase = {}; // used by library -function DynLayer(html,x,y,w,h,color,image) { - this.DynElement = DynElement; - this.DynElement(); - - if (html && typeof(html)=='object'){ // typeof more stable than constructor when creating layers from another frame - var args=html; // dictionary input - html=args.html; - x = args.x; - y = args.y; - w = args.w; - h = args.h; - color = args.color; - image = args.image; - this.z = (args.zIndex||1); - this._saveAnchor = args.anchor; - this.visible = (args.visible==false)? false:true; - this._textSelectable = (args.textSelectable==false)?false:true; - if (args.id) this.setID(args.id,true); - } - else { - this.visible = true; - this.z = 1; - this._saveAnchor = false; - this._textSelectable = true; - } - - this.x = x||0; - this.y = y||0; - this.w = w; - this.h = h; - this.bgColor = color; - this.bgImage = image; - this.html = (html!=null)? html+'':null; // convert html to string - this.elm = null; - this.doc = null; - this.css = null; -}; -var p = dynapi.setPrototype('DynLayer','DynElement'); -p._cssBorder = ''; -p._fixBw = 0; -p._fixBh = 0; -p._adjustSize=function(){ - var aw=this._aSzW; - var ah=this._aSzH; - if(this._created && (aw||ah)) { - var i,c,w=0,h=0; - // get furthest child - for (i=0;i'+this.getInnerHTML()+''; - else { - var s,clip='',bgimage=' background-image:none;'; - if(this.bgImage!=null) bgimage=' background-image:url('+this.bgImage+');'; - if (this.clip) clip=' clip:rect('+this.clip[0]+'px '+this.clip[1]+'px '+this.clip[2]+'px '+this.clip[3]+'px);'; - else if (this.w!=null && this.h!=null) clip=' clip:rect(0px '+(this.w+fixBw)+'px '+(this.h+fixBh)+'px 0px);'; - // modify box fix values - if (!dynapi.ua.ie && !dynapi.ua.opera) fixBw = 0; - if (!dynapi.ua.ie) fixBh = 0; - return [ - '\n

', - this.getInnerHTML(), - '
' - ].join(''); - } -}; -p.getInnerHTML=function() { //! Overwritten by NS4 - var s = ''; - var i,ch=this.children; - if (this.html!=null) s+=this.html; - if (this._blkBoardElm) s=('
'+s+'
'); - if(ch.length<50) for (i=0;ithis._maxW) w=this._maxW; - if (this._maxH && h>this._maxH) h=this._maxH; - } - var cw = (w!=null && w!=this.w); - var ch = (h!=null && h!=this.h); - if (cw) this.w = w<0? 0 : w; - if (ch) this.h = h<0? 0 : h; - if (cw||ch) { - if (this._hasAnchor) this.updateAnchor(); // update this anchor - if (this._hasChildAnchors) this._updateAnchors(); // update child anchors - if (this.css) { - if (cw) this.css.width = this.w||0; - if (ch) this.css.height = this.h||0; - if (cw || ch) { - if(this._needBoxFix) BorderManager.FixBoxModel(this,true); - else this.css.clip = 'rect(0px '+(this.w||0)+'px '+(this.h||0)+'px 0px)'; - // adjust parent size after being sized - if(this.parent._aSz) this.parent._adjustSize(); - } - if (this.updateLayout) this.updateLayout(); // what's this? - } - } - if(this._hasResizeEvents) this.invokeEvent('resize'); - return (cw||ch); -}; -p.setMaximumSize = function(w,h){ - this._maxW=w; this._maxH=h; - this._useMaxSize=(w!=h!=null); - w=(this.w>w)?w:this.w; - h=(this.h>h)? h:this.h; - this.setSize(this.w,this.h); -}; -p.setMinimumSize = function(w,h){ - this._minW=w; this._minH=h; - this._useMinSize=(w!=h!=null); - this.setSize(this.w,this.h); -}; - -p._position = 'absolute'; -p._cssPosition = ' position:absolute'; -p.setPosition = function(p){ - if(p!='relative' && p!='fixed' && p!='absolute') p='absolute'; - this._position=p; - if (this.css) this.css.position=p; - else this._cssPosition = ' position:'+p; -}; - -p._overflow='hidden'; -p._cssOverflow =' overflow:hidden;'; -p.getOverflow = function(){return this._overflow}; -p.setOverflow = function(s){ - if(!s) s='default'; - this._overflow=s; - if(this.css) this.css.overflow=s; - else this._cssOverflow=' overflow:'+s+';'; -}; - -p.getAnchor = function(){ - if(!this.parent) return this._saveAnchors; - else if (this.parent._childAnchors) { - return this.parent._childAnchors[this.id]; - } -}; -p.setAnchor = function(anchor) { - if (anchor == null) { - delete this._saveAnchor; - if (this.parent && this.parent._childAnchors && this.parent._childAnchors[this.id]) delete this.parent._childAnchors[this.id]; - this._hasAnchor = false; - } - else if (this.parent) { - if (!this.parent._childAnchors) this.parent._childAnchors = {}; - var a = this.parent._childAnchors; - a[this.id] = anchor; - this.parent._updateAnchor(this.id); - this._hasAnchor = this.parent._hasChildAnchors = true; - } - else this._saveAnchor = anchor; -}; -p.setX=function(x) {this.setLocation(x,null)}; -p.setY=function(y) {this.setLocation(null,y)}; -p.getX=function() {return this.x||0}; -p.getY=function() {return this.y||0}; -p.setPageX = function(x) {this.setPageLocation(x,null)}; -p.setPageY = function(y) {this.setPageLocation(null,y)}; -p.getVisible=function() {return this.visible}; -p.getZIndex=function() {return this.z}; -p.setZIndex=function(z) { - if (typeof(z)=="object") { - if (z.above) this.z = z.above.z + 1; - else if (z.below) this.z = z.below.z - 1; - else if (z.topmost && !this.parent) this.z = (DynLayer._z)? (DynLayer._z++):(DynLayer._z=1000); - else if (z.topmost) { - var topZ=10000,ch=this.parent.children; - for(var i=0;itopZ) topZ=ch[i].z; - this.parent._topZ = topZ+2; - this.z = this.parent._topZ; - } - } - else this.z = z; - if (this.css) this.css.zIndex = this.z; -}; -p.getHTML = function() {return this.html}; -p.setWidth=function(w) {this.setSize(w,null)}; -p.setHeight=function(h) {this.setSize(null,h)}; -p.getWidth=function() {return this.w||0}; -p.getHeight=function() {return this.h||0}; -p.getBgImage=function() {return this.bgImage}; -p.getBgColor=function() {return this.bgColor}; -p.setBgColor=function(c) { //! Overwritten by NS4 - if (c==null) c = 'transparent'; - this.bgColor = c; - if (this.css) this.css.backgroundColor = c; -}; -p.setBgImage=function(path) { //! Overwritten by NS4 - this.bgImage=path; - if (this.css) this.css.backgroundImage='url('+path+')'; -}; -p.setClip=function(clip) { //! Overwritten by NS4 - var cc=this.getClip(); - for (var i=0;i-1) { - c=c.split("rect(")[1].split(")")[0]; - c=c.replace(/(\D+)/g,',').split(","); - for (var i=0;i'+h+''); - elm.appendChild(ptxt); - this._blkBoardElm = elm.lastChild; - } -}; -p.setLocation=function(x,y) { - var cx = (x!=null && x!=this.x); - var cy = (y!=null && y!=this.y); - if (cx) this.x = x||0; - if (cy) this.y = y||0; - if (this.css!=null) { - if (cx) this.css.left = this.x+"px"; - if (cy) this.css.top = this.y+"px"; - // adjust parent size after being moved - if((cx||cy) && this.parent._aSz) this.parent._adjustSize(); - } - if(this._hasLocationEvents) this.invokeEvent('locationchange'); - return (cx||cy); -}; -p.setPageLocation = function(x,y) { - if (this.isChild) { - if (x!=null) x = x - this.parent.getPageX(); - if (y!=null) y = y - this.parent.getPageY(); - } - return this.setLocation(x,y); -}; -p.setHTML = function(html) { - if (html!=this.html) { - this.html = html; - if (this.css) { - var elm = (this._blkBoardElm)? this._blkBoardElm:this.elm; - elm.innerHTML = html; - var sTmp=(this.w==null)?''+this.html+'':this.html; - while (elm.hasChildNodes()) elm.removeChild(elm.firstChild); - var r=elm.ownerDocument.createRange(); - r.selectNodeContents(elm); - r.collapse(true); - var df=r.createContextualFragment(sTmp); - elm.appendChild(df); - this._adjustSize(); - } - } - if(this._hasContentEvents) this.invokeEvent('contentchange'); -}; -p.setTextSelectable=function(b) { - this._textSelectable = b; - if(!this._hasMouseEvents) this.captureMouseEvents(); - if (!b) this.setCursor('default'); -}; -p.getCursor = function() {return (this._cursor=='pointer')? 'hand':this._cursor}; -p.setCursor = function(c) { - if (!c) c = 'default'; - else c=(c+'').toLowerCase(); - if (c=='hand') c='pointer'; - if (this._cursor!=c) { - this._cursor = c; - if (this.css) this.css.cursor = c; - } -}; -p.getContentWidth=function() { - if (this.elm==null) return 0; - else { - var p = this.parent; - var tw = this.elm.style.width; - this.css.width = "auto"; - var w = this.elm.offsetWidth; - this.css.width = tw; - return w; - }; -}; -p.getContentHeight=function() { - if (this.elm==null) return 0; - else { - var th = this.css.height; - this.elm.style.height = "auto"; - var h = this.elm.offsetHeight; - this.css.height = th; - return h; - } -}; diff --git a/superx/xml/dynapi/api/dynlayer_ie.js b/superx/xml/dynapi/api/dynlayer_ie.js deleted file mode 100644 index b6e2c41..0000000 --- a/superx/xml/dynapi/api/dynlayer_ie.js +++ /dev/null @@ -1,180 +0,0 @@ -/* - DynAPI Distribution - DynLayer IE Specific Functions - - The DynAPI Distribution is distributed under the terms of the GNU LGPL license. - - requires: dynapi.api.DynLayerBase -*/ - -p = DynLayer.prototype; -p._create = function() { - if (this.parent && !this.elm) { - DynElement._flagPreCreate(this); - var elm, parentElement; - parentElement = this.parent.elm; - if(dynapi.ua.v<5){ - parentElement.insertAdjacentHTML("beforeEnd",this.getOuterHTML()); - elm = parentElement.children[parentElement.children.length-1]; - } - else { - // this method is more efficient for ie5+. any comment? - elm=document.createElement('DIV'); - elm.id=this.id; - if(this._className) elm.className=this._className; - if(!this._noStyle) { - var css = elm.style; - css.position=(this._position||'absolute'); - css.pixelLeft=(this.x||0); - css.pixelTop=(this.y||0); - if(this.w!=null) css.width = this.w; - if(this.h!=null) css.height = this.h; - css.backgroundColor=(this.bgColor||'transparent'); - css.zIndex=(this.z||1); - css.cursor=(this._cursor||'auto'); - css.overflow=(this._overflow||''); - if(this.bgImage!=null) css.backgroundImage='url('+this.bgImage+')'; - if (this.bgImage==null && this.html==null) css.backgroundImage='none'; - if (this.clip) css.clip='rect('+this.clip[0]+'px '+this.clip[1]+'px '+this.clip[2]+'px '+this.clip[3]+'px)'; - else if (this.w!=null && this.h!=null) css.clip='rect(0px '+this.w+'px '+this.h+'px 0px)'; - css.visibility=(this.visible==false)? 'hidden':'inherit'; - // border - set by BorderManager - if(this._cssBorTop){ - css.borderTop = this._cssBorTop||''; - css.borderRight = this._cssBorRight||''; - css.borderBottom = this._cssBorBottom||''; - css.borderLeft = this._cssBorLeft||''; - } - } - elm.innerHTML = this.getInnerHTML(); - parentElement.appendChild(elm); - } - DynLayer._assignElement(this,elm); - DynElement._flagCreate(this); - } -}; -DynLayer._assignElement = function(dlyr,elm,divs) { - if (!elm ) { - elm = (divs)? divs[dlyr.id] : dlyr.parent.elm.all[dlyr.id]; - if (!elm){ - if(dlyr.isInline) dlyr._create(); // force create() for missing inline layer - return; - } - } - dlyr.elm = elm; - dlyr.css = elm.style; - dlyr.doc = dlyr.parent.doc; - dlyr.elm._dynobj = dlyr; - dlyr._dyndoc = dlyr.parent._dyndoc; - if(dlyr._blkBoardElm) dlyr._blkBoardElm = (divs)? divs[dlyr.id+'_blkboard'] : dlyr.parent.elm.all[dlyr.id+'_blkboard']; - - if (dlyr.html!=null && dlyr.html!='' && (dlyr.w==null || dlyr.h==null)) { - var cw = (dlyr.w==null)? dlyr.getContentWidth() : null; - var ch = (dlyr.h==null)? dlyr.getContentHeight() : null; - dlyr.setSize(cw,ch); - } - - var i,ch=dlyr.children; - for (i=0;i'+h+''); - this._blkBoardElm = elm.children[elm.children.length-1]; - } -}; -p.setLocation=function(x,y) { - var cx = (x!=null && x!=this.x); - var cy = (y!=null && y!=this.y); - if (cx) this.x = x||0; - if (cy) this.y = y||0; - if (this.css!=null) { - if (cx) this.css.pixelLeft = this.x; - if (cy) this.css.pixelTop = this.y; - // adjust parent size after being moved - if((cx||cy) && this.parent._aSz) this.parent._adjustSize(); - } - if(this._hasLocationEvents) this.invokeEvent('locationchange'); - return (cx||cy); -}; -// this method was breaking in IE saying cx was not defined. -// fixed by davesag 21.jan.2004 -p.setPageLocation = function(x,y) { - var cx = (x!=null && x!=this.x); - var cy = (y!=null && y!=this.y); - if (cx) this.x = x||0; - if (cy) this.y = y||0; - if (this.css!=null) { - if (this.isChild) { - if (dynapi.ua.v>=5) { - if (cx) this.css.pixelLeft = this.x; - if (cy) this.css.pixelTop = this.y; - } - else { - if (cx) this.css.left = this.x+"px"; - if (cy) this.css.top = this.y+"px"; - } - } - } - return this.setLocation(x,y); -}; -p.setHTML = function(html) { - if (html!=this.html) { - this.html = html; - if (this.css) { - var elm = (this._blkBoardElm)? this._blkBoardElm:this.elm; - elm.innerHTML = html; - this._adjustSize(); - } - } - if(this._hasContentEvents) this.invokeEvent('contentchange'); -}; -p.setTextSelectable=function(b) { - this._textSelectable = b; - if (this.elm) this.elm.onselectstart = b? dynapi.functions.Allow : dynapi.functions.Deny; - if (!b) this.setCursor('default'); - // && this.captureMouseEvents && !this._hasMouseEvents) this.captureMouseEvents(); -}; -p.getCursor = function() {return this._cursor}; -p.setCursor = function(c) { - if (!c) c = 'default'; - else c=(c+'').toLowerCase(); - if (this._cursor!=c) { - this._cursor = c; - if (this.css) this.css.cursor = c; - } -}; -p.getContentWidth=function() { - if (this.elm==null) return 0; - else { - var w,tw = this.css.width; - this.css.width='auto'; // force ie to get width - if (dynapi.ua.platform=="mac") w = this.elm.offsetWidth; - else w = parseInt(this.elm.scrollWidth); - this.css.width=tw; - return w; - }; -}; -p.getContentHeight=function() { - if (this.elm==null) return 0; - else { - if (dynapi.ua.platform=="mac") return this.elm.offsetHeight; - return parseInt(this.elm.scrollHeight); - - } -}; diff --git a/superx/xml/dynapi/api/dynlayer_ns4.js b/superx/xml/dynapi/api/dynlayer_ns4.js deleted file mode 100644 index 7fe718f..0000000 --- a/superx/xml/dynapi/api/dynlayer_ns4.js +++ /dev/null @@ -1,308 +0,0 @@ -/* - DynAPI Distribution - DynLayer NS4 Specific Functions - - The DynAPI Distribution is distributed under the terms of the GNU LGPL license. - - requires: dynapi.api.DynLayerBase -*/ - -p = DynLayer.prototype; -p._ns4IPad = ''; // used with blackboard -p._remove = function() { - if (this.elm) { - var p = this.parent; - if (p && this._alias) p[this._alias]=null; - if (!p.doc.recycled) p.doc.recycled=[]; - p.doc.recycled[p.doc.recycled.length]=this.elm; - this.elm.visibility="hide"; - this.elm = null; - if (this.releaseMouseEvents) this.releaseMouseEvents(); - if (this.releaseKeyEvents) this.releaseKeyEvents(); - } - /*this.frame = null; - this.bgImage = null; - this.bgColor = null; - this.html = null; - this.z = null; - this.w = null; - this.h = null; - this.elm = null; - this.doc = null; - this.css = null;*/ -}; -p._create = function() { - if (this.parent && !this.elm) { - DynElement._flagPreCreate(this); - var parentElement = this.parent.isClass('DynLayer')? this.parent.elm : this.parent.frame; - var elm = new Layer(this.w||0, parentElement); - if(this._className) elm.className=this._className; // does this work in ns4? - if(!this._noStyle) { - if (this.w) elm.clip.width = this.w+this._fixBw; - if (this.h) elm.clip.height = this.h+this._fixBh; - if (this.x && this.y) elm.moveTo(this.x,this.y); - else if (this.x) elm.left = this.x; - else if (this.y) elm.top = this.y; - if (this.bgColor!=null) elm.document.bgColor = this.bgColor; - if (this.clip) { - var c = elm.clip, cl = this.clip; - c.top=cl[0], c.right=cl[1], c.bottom=cl[2], c.left=cl[3]; - } - if (this.z) elm.zIndex = this.z; - if (this.visible) elm.visibility = 'inherit'; - } - if (this.children.length || (this.html!=null && this.html!='')) { - elm.document.write(this.getInnerHTML()); - elm.document.close(); - } - DynLayer._assignElement(this,elm); - DynElement._flagCreate(this); - } -}; -DynLayer._getLayerById = function(id,pElm){ - var i,lyrs,elm; - pElm = (pElm)? pElm:document; - lyrs = pElm.layers; - for (i=0;i, images, links, etc - } - dlyr.elm._dynobj = dlyr.doc._dynobj = dlyr; - dlyr._dyndoc = dlyr.parent._dyndoc; - - if (dlyr.html!=null && dlyr.html!='' && (dlyr.w==null || dlyr.h==null)) { - var cw = (dlyr.w==null)? dlyr.getContentWidth() : null; - var ch = (dlyr.h==null)? dlyr.getContentHeight() : null; - //var cw = (dlyr.w==null)? dlyr.getElmWidth() : null; - //var ch = (dlyr.h==null)? dlyr.getElmHeight() : null; - dlyr.setSize(cw,ch); - } - if (dlyr.bgImage!=null) dlyr.setBgImage(dlyr.bgImage); - - var i,ch=dlyr.children; - for (i=0;i'+this.getInnerHTML()+''; - else { - if (this.clip) clip=' clip="'+this.clip[3]+','+this.clip[0]+','+this.clip[1]+','+this.clip[2]+'"'; - else clip=' clip="0,0,'+((this.w>=0)? this.w+fixBw:0)+','+((this.h>=0)? this.h+fixBh:0)+'"'; - return [ - '\n<'+tag+' ',this._cssClass,' id="'+this.id+'"', - ' left=',(this.x!=null? this.x : 0), - ' top=',(this.y!=null? this.y : 0), - ((this.visible)? ' visibility="inherit"':' visibility="hide"'), - ((this.w!=null)? ' width='+(this.w+fixBw):''), - ((this.h!=null)? ' height='+(this.h+fixBw):''), - ((this.z)? ' zindex='+this.z:''), - ((this.bgColor!=null)? ' bgcolor="'+this.bgColor+'"':''), - ((this.bgImage!=null)? ' background="'+this.bgImage+'"':''), - clip,'>',this.getInnerHTML(),'' - ].join(''); - } -}; -p.getInnerHTML = function() { - var i,s = '',ch=this.children; - if (this.html!=null) { - if (this.w==null) s += ''+this.html+''; - else s+=this.html; - } - if (this._blkBoardElm) s=''+this._ns4IPad+s+''; - if(ch.length<50) for (i=0;ithis._maxW) w=this._maxW; - if (this._maxH && h>this._maxH) h=this._maxH; - } - var cw = (w!=null && w!=this.w); - var ch = (h!=null && h!=this.h); - if (cw) this.w = w<0? 0 : w; - if (ch) this.h = h<0? 0 : h; - if (cw||ch) { - if (this._hasAnchor) this.updateAnchor(); // update this anchor - if (this._hasChildAnchors) this._updateAnchors(); // update child anchors - if (this.css) { - if (cw) this.css.clip.width = (this.w || 0)+this._fixBw; - if (ch) this.css.clip.height = (this.h || 0)+this._fixBh; - // adjust parent size after being sized - if((cw||ch) && this.parent._aSz) this.parent._adjustSize(); - if (this.updateLayout) this.updateLayout(); - } - } - if(this._hasResizeEvents) this.invokeEvent('resize'); - return (cw||ch); -}; -p.setHTML=function(html) { - var ch = (html!=null && html!=this.html); - if (ch) { - this.html = html; - if (this.css) { - var i, doc = this.doc; - var html=(!this._blkBoardElm)? this.html:this._ns4IPad+this.html; // don't ask why! See HTMLContainer - doc.open(); doc.write(html); doc.close(); - for (i=0;i'+h+''); - this._blkBoardElm = elm.children[elm.children.length-1]; - } -}; -p.setLocation=function(x,y) { - var cx = (x!=null && x!=this.x); - var cy = (y!=null && y!=this.y); - if (cx) this.x = x||0; - if (cy) this.y = y||0; - if (this.css!=null) { - if (cx) this.css.pixelLeft = this.x; - if (cy) this.css.pixelTop = this.y; - // adjust parent size after being sized - if((cx||cy) && this.parent._aSz) this.parent._adjustSize(); - } - if(this._hasLocationEvents) this.invokeEvent('locationchange'); - return (cx||cy); -}; -p.setPageLocation = function(x,y) { - if (this.isChild) { - if (dynapi.ua.v>=5) { - if (cx) this.css.pixelLeft = this.x; - if (cy) this.css.pixelTop = this.y; - } - else { - if (cx) this.css.left = this.x+"px"; - if (cy) this.css.top = this.y+"px"; - } - } - return this.setLocation(x,y); -}; -p.setHTML = function(html) { - if (html!=this.html) { - this.html = html; - if (this.css) { - var elm = (this._blkBoardElm)? this._blkBoardElm:this.elm; - elm.innerHTML = html; - this._adjustSize(); - } - } - if(this._hasContentEvents) this.invokeEvent('contentchange'); -}; -p.setTextSelectable=function(b) { - this._textSelectable = b; - if (this.elm) this.elm.onselectstart = b? dynapi.functions.Allow : dynapi.functions.Deny; - if (!b) this.setCursor('default'); - // && this.captureMouseEvents && !this._hasMouseEvents) this.captureMouseEvents(); -}; -p.getCursor = function() {return this._cursor}; -p.setCursor = function(c) { - if (!c) c = 'default'; - else c=(c+'').toLowerCase(); - if (this._cursor!=c) { - this._cursor = c; - if (this.css) this.css.cursor = c; - } -}; -p.getContentWidth=function() { - if (this.elm==null) return 0; - else { - var tw=this.css.width; - var w,to = this.css.overflow; - this.css.width='auto'; - this.css.overflow='auto'; - w = parseInt(this.elm.scrollWidth); - this.css.width=tw; - this.css.overflow=to; - return w; - - }; -}; -p.getContentHeight=function() { - if (this.elm==null) return 0; - else { - if (dynapi.ua.platform=="mac") return this.elm.offsetHeight; - return parseInt(this.elm.scrollHeight); - } -}; diff --git a/superx/xml/dynapi/api/event.js b/superx/xml/dynapi/api/event.js deleted file mode 100644 index 2de9371..0000000 --- a/superx/xml/dynapi/api/event.js +++ /dev/null @@ -1,348 +0,0 @@ -/* - DynAPI Distribution - DynEvent, EventObject, DynElement Classes - - The DynAPI Distribution is distributed under the terms of the GNU LGPL license. -*/ - -function DynEvent(type,src) { - this.type = type; - this.src = src; - this.origin = src; - this.propagate = true; - this.bubble = false; - this.bubbleChild = null; - this.defaultValue = true; -}; -var p = DynEvent.prototype; -p.getType = function() {return this.type}; -p.getSource = function() {return this.src}; -p.getOrigin=function() {return this.origin}; -p.stopPropagation = function() {this.propagate = false}; -p.preventBubble = function() {this.bubble = false}; -p.preventDefault = function() {this.defaultValue = false}; -p.getBubbleChild = function() {return this.bubbleChild}; - -function EventObject() { - this.DynObject = DynObject; - this.DynObject(); - this._listeners = []; -}; -EventObject._SubClass={}; - -p = dynapi.setPrototype('EventObject','DynObject'); -p.addEventListener = function(el) { - if (el) { - for (var i=0;i=ch.length) break; - } - }; - ch.length = 0; - this._aSz = aSz; - if(this._aSz) this._adjustSize(); // adjust size if necessary -}; -p.deleteChild = function(c) { // removes & destroy child - var l = this.children.length; - for (var i=0;i0 && a.left && typeof(a.left)=='string')? tw*(parseInt(a.left)/100):a.left; - var aright=(tw>0 && a.right && typeof(a.right)=='string')? tw*(parseInt(a.right)/100):a.right; - var atop=(th>0 && a.top && typeof(a.top)=='string')? th*(parseInt(a.top)/100):a.top; - var abottom=(th>0 && a.bottom && typeof(a.bottom)=='string')? th*(parseInt(a.bottom)/100):a.bottom; - var x = aleft; - var y = atop; - var w = null; - var h = null; - var dlyrWidth=dlyr.getWidth(); - var dlyrHeight=dlyr.getHeight(); - if (a.stretchH!=null) { - if(typeof(a.stretchH)!='string') w=a.stretchH; - else { - if(a.stretchH=='*') w = tw - ((aleft!=null)? aleft:0); - else w = tw*(parseInt(a.stretchH)/100); - } - dlyrWidth=w; - } - if (a.centerH!=null) { - x = Math.ceil(tw/2 - dlyrWidth/2 + a.centerH); - }else if (aright!=null) { - if (aleft!=null) w = (tw - aright) - aleft; - else x = (tw - dlyrWidth) - aright; - if(tw<=0 && x<0) x=null; // ns4 needs x>=0 - } - if (a.stretchV!=null) { - if(typeof(a.stretchV)!='string') h=a.stretchV; - else { - if(a.stretchV=='*') h = th - ((atop!=null)? atop:0); - else h = th*(parseInt(a.stretchV)/100); - } - dlyrHeight=h; - } - if (a.centerV!=null) { - y = Math.ceil(th/2 - dlyrHeight/2 + a.centerV); - }else if (abottom!=null) { - if (atop!=null) h = (th - abottom) - atop; - else y = (th - dlyrHeight) - abottom; - if(th<=0 && y<0) y=null; // ns4 needs y>=0 - } - if(padX) {x=(x)? x:0;x+=padX} - if(padY) {y=(y)? y:0;y+=padY} - - var tmp=dlyr._hasAnchor; - dlyr._hasAnchor=false; // ignore anchor updates of this layer - if(x!=null||y!=null) dlyr.setLocation(x,y); - if(w!=null||h!=null) dlyr.setSize(w,h); - dlyr._hasAnchor = tmp; // useful for preventing stack overflow -}; -p._updateAnchors = function() { - var tw = this.w; - var th = this.h; - if (tw==null && th==null) return; - for (id in this._childAnchors) this._updateAnchor(id); -}; - - -// Bandwidth timer stop -var ua=dynapi.ua; ua._bwe=new Date; -ua.broadband=((ua._bwe-ua._bws)<=1500)? true:false; diff --git a/superx/xml/dynapi/api/ext/dragevent.js b/superx/xml/dynapi/api/ext/dragevent.js deleted file mode 100644 index 7f3f2cb..0000000 --- a/superx/xml/dynapi/api/ext/dragevent.js +++ /dev/null @@ -1,306 +0,0 @@ -/* - DynAPI Distribution - DragEvent Class - - The DynAPI Distribution is distributed under the terms of the GNU LGPL license. -*/ - -// DragEvent object -function DragEvent(type,src) { - this.MouseEvent = MouseEvent; - this.MouseEvent(); - this.DynEvent(); - this.isDragging = false; -}; -var p = dynapi.setPrototype('DragEvent','MouseEvent'); -p.getX=function() {return this.x}; -p.getY=function() {return this.y}; -p.getPageX=function() {return this.pageX}; -p.getPageY=function() {return this.pageY}; -p.cancelDrag=function() {this.isDragging=false}; - -//DragEvent.dragPlay=0; - -DragEvent.dragevent = new DragEvent(); - -DragEvent.lyrListener = { - onmousedown : function(e) { - var ic,o = e.getSource(); - //setup drag icon - if(o._useDragIcon && o._dragIcon) { - ic=o._dragIcon; - ic._dragOrg = o; - ic.setLocation(o.getPageX(),o.getPageY()); - ic.setSize(o.w,o.h); - // if icon is fixed width then center at pointer - if(ic.w!=o.w||ic.h!=o.h) ic.setLocation(e.getPageX()-(ic.w/2),e.getPageY()-(ic.h/2)); - } - DragEvent.startDrag(e,ic); - //e.preventDefault(); - } -}; - -DragEvent.startDrag = function(e,dlyr) { - var origdlyr = dlyr; - if (!dlyr) dlyr = e.getSource(); - - if (dynapi.ua.dom) { - dlyr.elm.ondragstart = function() { return false; }; - dlyr.elm.onselectstart = function() { return false; }; - } - - // Initialize dragEvent object - var de=DragEvent.dragevent; - //de.bubble = true; - de.src = dlyr; - de.origin = (origdlyr)? e.origin : dlyr; - de.x = e.getPageX()-dlyr.getPageX(); - de.y = e.getPageY()-dlyr.getPageY(); - de.pageX = e.getPageX(); - de.pageY = e.getPageY(); - de.parentPageX = dlyr.parent.getPageX(); - de.parentPageY = dlyr.parent.getPageY(); - de._mouseEvent = e._mouseEvent; - de._browserEvent = e._browserEvent; // ns4 only - - de.isDragging = true; - - e.preventDefault(); - e.preventBubble(); - - //dlyr._dyndoc.addEventListener(DragEvent.docListener); - - dlyr.invokeEvent("dragstart",de); - if(dlyr._dragOrg) { - dlyr.setVisible(true); - dlyr._dragOrg.invokeEvent("dragstart",e); - } -}; - -DragEvent.docListener = { - onmousemove : function(e) { - //var x = e.getPageX(); - //var y = e.getPageY(); - //dynapi.debug.status('drag move '+e.x+' '+e.y); - - var de = DragEvent.dragevent; - if (de && de.isDragging) { - - - var lyr = de.src; - if (!lyr) return; - - // DS: what is this? - // Detect if we should start the drag - /*if(DragEvent.dragPlay==0 || (Math.abs(de.pageX-e.getPageX())-DragEvent.dragPlay>0) || (Math.abs(de.pageY-e.getPageY())-DragEvent.dragPlay>0)) { - de.isDragging=true; - de.src.invokeEvent("dragstart",de); - e.setBubble(de.bubble); - } - */ - /*else if (!de.dragEnabled) { - // This allows 'cancelDrag' method to fire the mouseUp as if had been released by the user - lyr.invokeEvent("mouseup"); - return; - }*/ - - // Properties - de.type="dragmove"; - de.pageX=e.getPageX(); - de.pageY=e.getPageY(); - de._mouseEvent = e._mouseEvent; - de._browserEvent = e._browserEvent; // ns4 only - - /*if (DragEvent.stopAtDocumentEdge) { - if (de.pageX<0) de.pageX = 0; - if (de.pageY<0) de.pageY = 0; - if (de.pageX>DynAPI.document.w) de.pageX = DynAPI.document.w; - if (de.pageY>DynAPI.document.h) de.pageY = DynAPI.document.h; - }*/ - - var x=de.pageX-de.parentPageX-de.x; - var y=de.pageY-de.parentPageY-de.y; - - // Respect boundary, if any - if (lyr._dragBoundary) { - var dB = lyr._dragBoundary; - var t = dB.top; - var r = dB.right; - var b = dB.bottom; - var l = dB.left; - // prevent choppy dragging if child is greater than parent - var pw = (lyr.parent.w>lyr.w)? lyr.parent.w-lyr.w:lyr.x; - var ph = (lyr.parent.h>lyr.h)? lyr.parent.h-lyr.h:lyr.y; - if (xpw-r) x = pw-r; - if (yph-b) y = ph-b; - } - else if (lyr._dragBoundaryA) { - var dB = lyr._dragBoundaryA; - var b=dB[2]; - var r=dB[1]; - var l=dB[3]; - var t=dB[0]; - var w=lyr.w; - var h=lyr.h; - if (xr) x=r-w; - if (yb) y=b-h; - } - // Move dragged layer - lyr.setLocation(x,y); - lyr.invokeEvent("dragmove",de); - // drag icon - if(lyr._dragOrg) { - lyr._dragOrg.invokeEvent("dragmove",e); - } - - - if (lyr._dragStealth==false && lyr.parent.DragOver) { - lyr.parent.DragOver(lyr,e.getPageX(),e.getPageY()); - } - - e.preventDefault(); - e.preventBubble(); - } - }, - onmouseup : function(e) { - // Get, if any, the currently drag in process and the layer. If none, return - var de=DragEvent.dragevent; - //de.bubble = true; - if (!de) return; - var lyr=de.src; - if (!lyr) return; - - if (!de.isDragging) { - de.type="dragend"; - de.src=null; - //e.setBubble(true); - return; - } - if (dynapi.ua.ie) lyr.doc.body.onselectstart = null; - - // Avoid click for the dragged layer ( with MouseEvent addition ) - if (dynapi.ua.def) dynapi.wasDragging=true; - if (lyr.parent.DragDrop) lyr.parent.DragDrop(lyr,e.getPageX(),e.getPageY()); - - // Properties for the event - de.type="dragend"; - de.isDragging=false; - lyr.invokeEvent("dragend",de); - // drag icon - if(lyr._dragOrg) { - lyr.setVisible(false); - lyr._dragOrg.invokeEvent("dragend",de); - } - - - // Clean drag stuff - de.src=null; - //e.preventDefault(); - e.preventBubble(); - - //lyr._dyndoc.removeEventListener(DragEvent.docListener); - } -}; -DragEvent.stopAtDocumentEdge = true; -DragEvent.setDragBoundary=function(lyr,t,r,b,l) { - if (!lyr) {dynapi.debug.print("Error: no object passed to DragEvent.setDragBoundary()"); return;} - var a=arguments; - if (a.length==0) return; - if (a.length==1) { - lyr._dragBoundary = {left:0,right:0,top:0,bottom:0}; - } - if (a.length==2) { - lyr._dragBoundary = arguments[1]; - } - else if (a.length==5) lyr._dragBoundaryA = [t,r,b,l]; -}; -DragEvent.enableDragEvents=function() { - for (var i=0;isX+s.w && chYsY+s.h) { - if ((mX>=chX && mX<=chX+ch.w) && (mY>=chY && mY<=chY+ch.h)) { - if (ch.DragDrop(s,mX,mY)) return true; - ch.invokeEvent("drop",null,s); - return true; - } - } - } - return false; -}; - -// Enable ondragover event -DynElement.prototype.DragOver=function(s,mX,mY){ - if (!this.children.length) return false; - var ch,chX,sX,sY; - for (var i in this.children) { - ch=this.children[i]; - if (!ch._hasDragEvents) ch.DragOver(s,mX,mY); - else { - chX=ch.getPageX(); - chY=ch.getPageY(); - if ((mX>=chX && mX<=chX+ch.w) && (mY>=chY && mY<=chY+ch.h)) { - if (ch.DragOver(s,mX,mY)) return true; - ch._isDragOver=true; - ch.invokeEvent("dragover",null,s); - return true; - }else if (ch._isDragOver) { - ch._isDragOver=false; - ch.invokeEvent("dragout",null,s); - } - } - } - return false; -}; - diff --git a/superx/xml/dynapi/api/ext/dynkeyevent.js b/superx/xml/dynapi/api/ext/dynkeyevent.js deleted file mode 100644 index c482303..0000000 --- a/superx/xml/dynapi/api/ext/dynkeyevent.js +++ /dev/null @@ -1,238 +0,0 @@ -/* - DynAPI Distribution - DynKeyEvent Extensions - - The DynAPI Distribution is distributed under the terms of the GNU LGPL license. - - Requirements: - dynapi.api -*/ -function DynKeyEvent(type,src) { - this.DynEvent = DynEvent; - this.DynEvent(type,src); - this.charKey=null; -}; -var p=dynapi.setPrototype('DynKeyEvent','DynEvent'); -p.getKey=function() { - return this.charKey; -}; -DynKeyEvent._keyEventListener=function(e) { - var dynobj=this._dynobj; - if(!dynobj) return true; - var dyndoc=dynobj.doc._dynobj; - if(!dyndoc) return true; - if(!e) var e=dyndoc.frame.event; - - var evt=new DynKeyEvent(e.type,dynobj); - evt.which=(e.keyCode)?e.keyCode:e.which; - var key=String.fromCharCode(evt.which).toLowerCase(); - if((key>='a'&&key<='z')||(key>='0'&&key<='9')) evt.charKey=key; - evt.spaceKey=(evt.which==32); - evt.enterKey=(evt.which==13); - evt.tabKey=(evt.which==9||evt.which==65289); - evt.leftKey=(evt.which==37||evt.which==52||evt.which==100||evt.which==65460); - evt.rightKey=(evt.which==39||evt.which==54||evt.which==102||evt.which==65462); - evt.upKey=(evt.which==38||evt.which==56||evt.which==104||evt.which==65464); - evt.downKey=(evt.which==40||evt.which==50||evt.which==98||evt.which==65458); - evt.altKey=(e.modifiers)?false:(e.altKey||e.altLeft||evt.which==18||evt.which==57388); - evt.ctrlKey=(e.modifiers)?(e.modifiers&Event.CONTROL_MASK):(e.ctrlKey||e.ctrlLeft||evt.which==17||evt.which==57391); - evt.shiftKey=(e.modifiers)?(e.modifiers&Event.SHIFT_MASK):(e.shiftKey||e.shiftLeft||evt.which==16||evt.which==57390); - - dynobj.invokeEvent(evt.type,evt); - if(evt.defaultValue==false) { - if(e.cancelBubble) e.cancelBubble=true; - if(e.stopPropagation) e.stopPropagation(); - } - return evt.defaultValue; -}; - -TabManager={}; -TabManager._c=0; // Current tab manager index. -TabManager._all=[]; -TabManager._active=false; -TabManager._activeTimeout=function() { // Prevent duplcate keydown events in NS4. - TabManager._active=true; - setTimeout('TabManager._active=false;',25); -}; -TabManager._getForm=null; -TabManager.getForm=function(p) { // Prevent default tab focus in Mozilla. - if(TabManager._getForm) return; - TabManager._getForm=p; - var html='
'; - return p.addChild(new DynLayer(html),'__lyr'); -}; -TabManager._grabFocus=function() { - var form=TabManager._getForm.__lyr; - setTimeout(form+'.doc.forms.__frm.__tab.focus();',0); -}; -TabManager._el={}; -TabManager._el.onkeydown=function(e) { - if(TabManager._getForm) { // User must have inserted TabManager form. - if(TabManager._active) return; - TabManager._activeTimeout(); - } - var i1,o1,l1,i2,o2,l2; - var nextKey=(e.tabKey||e.rightKey); - var prevKey=((e.shiftKey&&e.tabKey)||e.leftKey); - var submitKey=(e.enterKey||e.spaceKey); - i1=TabManager._c; o1=TabManager._all[i1]; l1=TabManager._all.length; - i2=o1._tabGroup._c; o2=o1._tabGroup._all[i2]; l2=o1._tabGroup._all.length; - if(nextKey||prevKey) { // Cycle group. - if(o2._hasFocusEvents) o2.setFocus(false,o2._focusBubble); - else o2.invokeEvent('blur'); - if(prevKey) i2=(i2==0)?l2-1:i2-1; - else i2=(i2==l2-1)?0:i2+1; - o2=o1._tabGroup._all[i2]; o1._tabGroup._c=i2; - if(o2._hasFocusEvents) o2.setFocus(true,o2._focusBubble); - else o2.invokeEvent('focus'); - } - else if(e.upKey||e.downKey) { // Cycle manager. - if(o2._hasFocusEvents) o2.setFocus(false,o2._focusBubble); - else o2.invokeEvent('blur'); - if(e.upKey) i1=(i1==0)?l1-1:i1-1; - else i1=(i1==l1-1)?0:i1+1; - o1=TabManager._all[i1]; TabManager._c=i1; - i2=o1._tabGroup._c; - o2=o1._tabGroup._all[i2]; - if(o2._hasFocusEvents) o2.setFocus(true,o2._focusBubble); - else o2.invokeEvent('focus'); - } else if(submitKey) { - o2.invokeEvent('submit'); - } - e.preventDefault(); - if(TabManager._getForm) TabManager._grabFocus(); -}; -DynElement.prototype.createTabManager=function() { - var p=this, c=p.children; if(!c) return; - var args=(arguments.length)?arguments:c; - var l=args.length, s; if(!l) return; - if(p._tabGroup) delete p._tabGroup; - p._tabGroup={ _c:0, _all:[] }; - for(var i=0;i) to be clicked if ((e.target+'')=='[object Image]') { me.defaultValue = true; } // allow form elements to be selected var t = (e.target.type+'').toLowerCase(); if (t=='button'||t=='checkbox'||t=='radio') { me.defaultValue=true; } } return me.defaultValue; }; DynElement.prototype.disableContextMenu = function(){ this._noContextMenu = true; // can this be done in ns? }; DynElement.prototype.captureMouseEvents = function() { this._hasMouseEvents = true; var elm = this.elm; if (elm) { elm.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP | Event.DBLCLICK); elm.onmousedown = elm.onmouseup = elm.ondblclick = MouseEvent._eventHandler; if (this.getClassName()=='DynDocument') { // move/over/out events are generated from the document this.doc.captureEvents(Event.MOUSEMOVE); elm.onmousemove = MouseEvent._docMoveHandler; } elm._dynobj = this; this.doc._dynobj = this; if(this._blkBoardElm) this.elm.document._dynobj = this; for (var i=0;i-1; // always check for safari & opera - this.opera = ua.indexOf("opera")>-1; // before ns or ie - this.ns = !this.opera && !this.safari && (b=="Netscape"); - this.ie = !this.opera && (b=="Microsoft Internet Explorer"); - this.gecko = ua.indexOf('gecko')>-1; // check for gecko engine - if (this.ns) { - this.ns4 = (this.v==4); - this.ns6 = (this.v>=5); - this.b = "Netscape"; - }else if (this.ie) { - this.ie4 = this.ie5 = this.ie55 = this.ie6 = false; - if (v.indexOf('MSIE 4')>0) {this.ie4 = true; this.v = 4;} - else if (v.indexOf('MSIE 5')>0) {this.ie5 = true; this.v = 5;} - else if (v.indexOf('MSIE 5.5')>0) {this.ie55 = true; this.v = 5.5;} - else if (v.indexOf('MSIE 6')>0) {this.ie6 = true; this.v = 6;} - this.b = "MSIE"; - }else if (this.opera) { - this.v=parseInt(ua.substr(ua.indexOf("opera")+6,1)); // set opera version - this.opera6=(this.v>=6); - this.opera7=(this.v>=7); - this.b = "Opera"; - }else if (this.safari) { - this.ns6 = (this.v>=5); // ns6 compatible correct? - this.b = "Safari"; - } - this.dom = (document.createElement && document.appendChild && document.getElementsByTagName)? true : false; - this.def = (this.ie||this.dom); - this.win32 = ua.indexOf("win")>-1; - this.mac = ua.indexOf("mac")>-1; - this.other = (!this.win32 && !this.mac); - this.supported = (this.def||this.ns4||this.ns6||this.opera)? true:false; - this.broadband=false; - this._bws=new Date; // bandwidth timer start -}; - -function DynAPIObject() { - this.DynObject = DynObject; - this.DynObject(); - - this.version = '3.0.0-beta2'; - this.loaded = false; - - this.ua = new _UserAgent(); - - this._loadfn = []; - this._unloadfn = []; - var f = this.frame = window; - - var url = f.document.location.href; - url = url.substring(0,url.lastIndexOf('/')+1); - this.documentPath = url; - - var o = this; - - this.library = {}; - this.library.setPath = function(p) {o.library.path = p}; - - f.onload = function() { - o.loaded = true; - if (!o.ua.supported) return alert('Unsupported Browser. Exiting.'); - if (o.library._create) o.library._create(); // calls dynapi._onLoad() after loading necessary files - else setTimeout(o+'._onLoad()',1); - }; - f.onunload = function() { - for (var i=0;i'; - return t; -}; - -dynapi.functions = { - removeFromArray : function(array, index, id) { - var which=(typeof(index)=="object")?index:array[index]; - if (id) delete array[which.id]; - else for (var i=0; i<\/script>'; - document.write(s); -}; - -// adds package(s) to the library -p.addPackage = function(pkg, path) { - var ps; - if (pkg.indexOf('.')) ps = pkg.split('.'); - else ps = [pkg]; - - var p = dynapi.frame; - for (var i=0;i tag for the object -p.include = function() { - var a = arguments; - if (a[0]==true) a=a[1]; // arguments used ONLY by packages.js - // buffer includes until packages(.js) are loaded - if (!this._pakLoaded) { - if(!this._buffer) this._buffer=[]; - this._buffer[this._buffer.length]=a; - return; - } - if (dynapi.loaded) this.load(a); - else { - var list = this._queue(a); - var src; - for (var i=0;i<\/script>'); - } - } -}; -p.load = p.reload = p.loadScript = p.reloadScript = function(n) { - dynapi.debug.print('Warning: dynapi.library load extensions not included'); -}; -dynapi.library = new DynAPILibrary(); - -// deprecated -var DynAPI = dynapi; diff --git a/superx/xml/dynapi/ext/blueprint.html b/superx/xml/dynapi/ext/blueprint.html deleted file mode 100644 index 005a416..0000000 --- a/superx/xml/dynapi/ext/blueprint.html +++ /dev/null @@ -1,27 +0,0 @@ - - -Blueprint Output - - - -
-
-
- - - - - - - - - - -
DynAPI - Blueprint
-
-
-
- - - diff --git a/superx/xml/dynapi/ext/debug.html b/superx/xml/dynapi/ext/debug.html deleted file mode 100644 index 6e9d494..0000000 --- a/superx/xml/dynapi/ext/debug.html +++ /dev/null @@ -1 +0,0 @@ - DynAPI Debugger \ No newline at end of file diff --git a/superx/xml/dynapi/ext/debug.js b/superx/xml/dynapi/ext/debug.js deleted file mode 100644 index cbbf294..0000000 --- a/superx/xml/dynapi/ext/debug.js +++ /dev/null @@ -1 +0,0 @@ -/* DynAPI Distribution Debugger The DynAPI Distribution is distributed under the terms of the GNU LGPL license. */ // Note: Debugger does not have to be a DynObject - very important for blueprinted layers function Debugger() { this._mode='normal'; this.win = null; this._watch={}; this._evalBuffer=''; this._buffer = dynapi._debugBuffer; dynapi._debugBuffer = ''; // close the debug window on unload this.closeOnUnLoad = false; dynapi.onUnload(function() { if (dynapi.debug.closeOnUnLoad) dynapi.debug.close(); }); this.open(); } var p = Debugger.prototype; //dynapi.setPrototype('Debugger','DynObject'); p.close = function() { if (this.isLoaded()) { this.win.close(); this.win = null; } }; // error - output a browser generated error to the debug window p.error = function(msg, url, lno) { if (url && url.indexOf(dynapi.documentPath)==0) { url = url.substring(dynapi.documentPath.length); } this.print('Error:'+ (lno? ' Line '+lno : '') +' ['+url+']\n '+msg); }; // evaluates an expression in the scope of the main dynapi window p.evaluate = function(str) { dynapi.frame.eval(str); this.setEvalHistory(str); }; // get evaluation history p.getEvalHistory=function(n){ if(!this.isLoaded()) return; var t,f=this.win.document.debugform; if(n>=1) { var lim=this.win.evalHistory.length-1; this.win.evalIndex++; if (this.win.evalIndex>lim) this.win.evalIndex=(lim<0)?0:lim; t=this.win.evalHistory[this.win.evalIndex]; if(t)f.eval.value=t; }else if(n<=0){ this.win.evalIndex--; if(this.win.evalIndex<0) this.win.evalIndex=0; t=this.win.evalHistory[this.win.evalIndex]; if(t)f.eval.value=t; } }; // lists all known properties of an object p.inspect = function(obj,showFunctions) { this.print('Inspecting:'); var v; if (typeof(obj)=='string') obj=eval(obj); if (typeof(obj)=='object') { for (var i in obj) { if (obj[i]==null) v = 'null' else if (typeof(obj[i])=='undefined') v = 'null'; else if (typeof(obj[i])=='function') { if (showFunctions==false) continue; else v = '[Function]'; } else if (typeof(obj[i])=='object' && typeof(obj[i].length)!='undefined') v = 'Array';// ['+obj[i]+']'; else if (typeof(obj[i])=='object') v = '[Object]'; else v = obj[i]; this.print(' '+i+' = '+v); } } else this.print(' undefined'); }; p.isLoaded = function() { return (this.win!=null && this.win.document && typeof(this.win.document.debugform)=="object"); }; // opens the debugger window p.open = function() { var p = dynapi.library.path; if (!this.isLoaded() && p) { var url = dynapi.documentPath+p+'ext/debug.html#'; var w = (dynapi.ua.def||dynapi.ua.dom)? 350:355 //dynapi.ua.mac? (dynapi.ua.ie?330:300) : 350; var h = (dynapi.ua.def||dynapi.ua.dom)? 432:485 //dynapi.ua.mac? (dynapi.ua.ie?405:365) : (dynapi.ua.def||dynapi.ua.dom)? 420:476; this.win = window.open(url,'debugwin','width='+w+',height='+h+',scrollbars=no,status=no,toolbar=no'); //,resizable=no this.win.opener=window; this.win.evalHistory=[]; this.win.evalIndex=0; this.print(); /* dynapi.frame.onerror = function(msg, url, lno) { dynapi.debug.error(msg, url, lno); }; */ } }; // output text to the debug window p.print = function(s) { if (s==null) s = ''; else s = s + '\n'; if (this.isLoaded()) { this.switchMode('normal'); if (this._buffer != '') { // dump buffer s = this._buffer + s; this._buffer = ''; } this.win.document.debugform.print.value += s; this._normalModeData = this.win.document.debugform.print.value; // Does mozilla has something like this? if (dynapi.ua.ie) { var po = this.win.document.debugform.print; po.scrollTop = po.scrollHeight; var range = po.createTextRange(); range.collapse(false); range.select(); } } else this._buffer += s; }; // reloads selected javascripts, packages or html pages p.reload=function(t){ if (!this.isLoaded) return; t=t+''; if(t.substr(0,3).toLowerCase()=='go:') { t=t.substr(3).replace(/\\/g,'/'); dynapi.frame.location.href=t; return; } var i,f=t.split(';'); for(i=0;i1) this._watch[name]=value; else if(dynapi.frame.eval(name)) this._watch[name]='_watch object_'; else this._watch[name]='_watch object_'; }; p._disableWatch = function(){ this._oldWatchSrc=''; if(this._timerWatch) { window.clearTimeout(this._timerWatch); this._timerWatch=0; } }; p._enableWatch = function(){ if(this._mode!='watch') return; var src,row,v; src='Name\t \t \t Value\n---------------------------------------\n'; for(i in this._watch){ if(this._watch[i]=='_watch object_') v=dynapi.frame.eval(i); else v=this._watch[i]; if(v==null) v='null'; if(typeof(v)=='string') v=v.replace(/\n/g,' '); src+=(i+' ').substr(0,22)+'\t '+v+'\n'; } if(src!=this._oldWatchSrc){ this.win.document.debugform.print.value=this._oldWatchSrc=src; } if(this._timerWatch) window.clearTimeout(this._timerWatch); this._timerWatch=window.setTimeout(this+'._enableWatch()',200); }; dynapi.debug = new Debugger(); var t='------------------------------\n' +'Click "?" for help\n' +'------------------------------\n'; dynapi.debug.print(t); \ No newline at end of file diff --git a/superx/xml/dynapi/ext/functions.color.js b/superx/xml/dynapi/ext/functions.color.js deleted file mode 100644 index 15926d6..0000000 --- a/superx/xml/dynapi/ext/functions.color.js +++ /dev/null @@ -1,94 +0,0 @@ -/* - DynAPI Distribution - dynapi.functions.Color extension -*/ - -var f = dynapi.functions; -f.Color = Color = {}; // used by dynapi.library - -// Color Functions --------------------------- - -f.DecToHex = function(val){ - lo=val%16; - val-=lo; - lo+=48; - if (lo>57) lo+=7; - hi=val/16; - hi+=48; - if (hi>57) hi+=7; - return String.fromCharCode(hi,lo); -}; -f.getColor = function(r,g,b) { - return '#'+dynapi.functions.DecToHex(r)+dynapi.functions.DecToHex(g)+dynapi.functions.DecToHex(b); -}; -f.getRandomColor = function() { - var s = ''; - for (var i=0;i<3;i++) s += dynapi.functions.DecToHex(Math.floor(255*Math.random())); - return s; -}; -f.createRedPal = function(pal) { - var r=g=b=0; - for (var i=0; i<256; i++){ - pal[i]=dynapi.functions.getColor(r,g,b); - r+=8; - if (r>255) { r=255; g+=6; b+=2; } - if (g>255) { g=255; b+=2; } - if (b>255) { b=255; } - } -}; -f.createGrayPal = function(pal) { - var r=0; - for (var i=0; i<256; i++){ - pal[i]=dynapi.functions.getColor(r,r,r); - r+=4; - if (r>255) { r=255; } - } -}; -f.createBluePal = function(pal){ - var r=g=b=0; - for (var i=0; i<256; i++){ - pal[i]=dynapi.functions.getColor(r,g,b); - b+=6; - if (b>255) { b=255; g+=2; } - if (g>255) { g=255; r+=2; } - } -}; -f.createGreenPal = function(pal) { - var r=g=b=0; - for (var i=0; i<256; i++){ - pal[i]=dynapi.functions.getColor(r,g,b); - g+=6; - if (g>255) { g=255; b+=2; } - if (b>255) { b=255; r+=2; } - } -}; -f.fadeColor = function(from, to, percent){ - if(!from || !to) return; - if(percent<0) return from; - else if(percent>100) to; - - if(from.substring(0,1)!='#') from='#'+from; - if(to.substring(0,1)!='#') to='#'+to; - - from = { - red:parseInt(from.substring(1,3),16), - green:parseInt(from.substring(3,5),16), - blue:parseInt(from.substring(5,7),16) - } - - to = { - red:parseInt(to.substring(1,3),16), - green:parseInt(to.substring(3,5),16), - blue:parseInt(to.substring(5,7),16) - } - - var r=from.red+Math.round((percent/100)*(to.red-from.red)); - var g=from.green+Math.round((percent/100)*(to.green-from.green)); - var b=from.blue+Math.round((percent/100)*(to.blue-from.blue)); - - r = (r < 16 ? '0' : '') + r.toString(16); - g = (g < 16 ? '0' : '') + g.toString(16); - b = (b < 16 ? '0' : '') + b.toString(16); - - return '#' + r + g + b; -}; diff --git a/superx/xml/dynapi/ext/functions.date.js b/superx/xml/dynapi/ext/functions.date.js deleted file mode 100644 index 7a25a45..0000000 --- a/superx/xml/dynapi/ext/functions.date.js +++ /dev/null @@ -1,126 +0,0 @@ -/* - DynAPI Distribution - dynapi.functions.Date extension -*/ - -var f = dynapi.functions; -f.Date = {}; // used by dynapi.library - -// Date Functions -------------------------------------- - -f.dateAdd = function(interval,n,dt){ - if(!interval||!n||!dt) return; - var s=1,m=1,h=1,dd=1,i=interval; - if(i=='month'||i=='year'){ - dt=new Date(dt); - if(i=='month') dt.setMonth(dt.getMonth()+n); - if(i=='year') dt.setFullYear(dt.getFullYear()+n); - }else if (i=='second'||i=='minute'||i=='hour'||i=='day'){ - dt=Date.parse(dt); - if(isNaN(dt)) return; - if(i=='second') s=n; - if(i=='minute'){s=60;m=n} - if(i=='hour'){s=60;m=60;h=n}; - if(i=='day'){s=60;m=60;h=24;dd=n}; - dt+=((((1000*s)*m)*h)*dd); - dt=new Date(dt); - } - return dt; -}; -f.dateDiff=function(interval,dt1,dt2){ - if(!interval||!dt1||!dt2) return; - var v,s=1,m=1,h=1,dd=1,i=interval; - if(i=='month'||i=='year'){ - dt1=new Date(dt1); - dt2=new Date(dt2); - years=dt2.getFullYear()-dt1.getFullYear(); - if (i=='year') v=years; - else if(i=='month') { - v=(dt2.getMonth()+1)-(dt1.getMonth()+1); - if(years!=0) v+=(years*12); - } - }else if (i=='second'||i=='minute'||i=='hour'||i=='day'){ - dt1=Date.parse(dt1); - dt2=Date.parse(dt2); - if(isNaN(dt1)||isNaN(dt2)) return; - v=dt2-dt1; - if(i=='second') s=1000; - if(i=='minute') s=60000; - if(i=='hour'){s=60000;m=60}; - if(i=='day'){s=60000;m=60;h=24;}; - v=((((v/s)/m)/h)/dd); - } - return v; -}; -f.formatDate = function(date,format){ - if(!date) return ''; - var dt=new Date(date); - var mm=dt.getMonth(); - var dd=dt.getDate(); - var day=dt.getDay(); - var yyyy=dt.getFullYear(); - var hh=dt.getHours(); - var nn=dt.getMinutes(); - var ss=dt.getSeconds(); - var ampm; - - var days=['Sunday','Monday','Teusday','Wednesday','Thursday','Friday','Saturday']; - var months=['January','February','March','April','May','June','July','August','September','October','November','December']; - - format=(format)? (format+'').toLowerCase():'dddd, mmmm dd, yyyy hh:nn:ss ampm'; - format=format.replace('mmmm',months[mm]); - format=format.replace('mmm',months[mm].substr(0,3)); - format=format.replace('mm',mm+1); - format=format.replace('dddd',days[day]); - format=format.replace('ddd',days[day].substr(0,3)); - format=format.replace('dd',dd); - format=format.replace('yyyy',yyyy); - if(format.indexOf('ampm')>0){ - if(hh>12) hh=hh-12; - if(hh<12) ampm='AM'; - else ampm='PM'; - format=format.replace('ampm',ampm); - } - format=format.replace('hh',hh); - format=format.replace('nn',nn); - format=format.replace('ss',ss); - - return format; -}; -f.getDayOfYear = function(dt){ - dt = new Date(dt); - if(isNaN(dt)) dt = new Date(); - var yr = new Date(dt.getFullYear(),0,1); - yr = yr.getTime() - (yr.getDay()-1)*(24*60*60*1000); - return(Math.ceil((dt.getTime() - yr)/(24*60*60*1000))); -}; -f.isDate = function(dt,format){ - if (!dt) return false; - var dd,mm,yyyy; - var isLeapYear,st=true,delim='/'; - dt+='';format=(format)? format+'':''; - if(dt.indexOf('/')>=0) delim='/'; - else if(dt.indexOf('-')>=0) delim='-'; - else if(dt.indexOf(' ')>=0) delim=' '; - dt=dt.split(delim); - if(format) format=format.replace(/\W/g,'/'); - else { - if (dt[0]>=1000) format='yyyy/mm/dd'; - else if (dt[0]>=12 && dt[1]<=12) format='dd/mm/yyyy'; - else if (dt[0]<=12 && dt[1]>=12) format='mm/dd/yyyy'; - }; - if(format=='yyyy/mm/dd'){yyyy=dt[0];mm=dt[1];dd=dt[2];} - else if(format=='mm/dd/yyyy'){mm=dt[0];dd=dt[1];yyyy=dt[2];} - else if(format=='dd/mm/yyyy'){dd=dt[0];mm=dt[1];yyyy=dt[2];} - if(isNaN(dd)||isNaN(mm)||isNaN(yyyy)) st=false; - else if(dd<1 || dd>31) st=false; - else if(yyyy>9999) st=false; - else if (mm < 1 || mm > 12) st=false; - else if((mm==4 || mm==6 || mm==9 || mm==11) && dd==31) st=false; - else if(mm==2) { // check for leap year and february 29th - isLeapYear = (yyyy % 4 == 0 && (yyyy % 100 != 0 || yyyy % 400 == 0)); - if (dd > 29 || (dd==29 && !isLeapYear)) st=false; - } - return st; -}; - diff --git a/superx/xml/dynapi/ext/functions.image.js b/superx/xml/dynapi/ext/functions.image.js deleted file mode 100644 index 9eece60..0000000 --- a/superx/xml/dynapi/ext/functions.image.js +++ /dev/null @@ -1,124 +0,0 @@ -/* - DynAPI Distribution - dynapi.functions.Image extension -*/ - -var f = dynapi.functions; -f.Image = {}; // used by dynapi.library - -// Image Functions --------------------------- - -f._imgTTL = 30000; // Image Time To Load (ms) -f.getImage = function(src,w,h,params) { - var img,name,p=params; - if(!p) name=src; - else name=(!p.alias)? src:p.alias; - img = dynapi.ximages[name]; - if(!img || (img && img.params!=params)){ // if user enters a new set of params then create a new image object - img=dynapi.ximages[name] = (w!=null&&h!=null)? new Image(w,h) : new Image(); - img.w=w||null; - img.h=h||null; - img.src=src;img.params=p; - img.getHTML=dynapi._imageGetHTML; - img.reload=dynapi._imageReload; - img.dtStart=new Date(); - if(p) { - var f=dynapi.functions; - if(p.oversrc) f.getImage(p.oversrc); - if(p.downsrc) f.getImage(p.downsrc); - } - if(!this._imgTmr && this._imgProgFn) this._imageProgress(); - } - return img; -}; -f.getFailedImages = function(){ - var ar=[]; - for(i in dynapi.ximages){ - img=dynapi.ximages[i]; - if(img && img.failed) ar[ar.length]=img; - } - return ar; -}; -f.captureImageProgress=function(fn){ //fn = fn(completed,failed,total); - this._imgProgFn=fn; - this._imageProgress(); -}; -f._imageProgress = function(){ - var i,c=0,f=0,t=0; - var img,dtEnd = new Date; - var fn=this._imgProgFn; - for(i in dynapi.ximages){ - img=dynapi.ximages[i]; - if(img && img.complete!=null){ - t++; - img.failed=(!img.complete && (dtEnd-img.dtStart)>this._imgTTL)? true:false; - if (img.complete) c++; - else if(img.failed) f++; - } - } - if(fn) fn(c,f,t); - if(c+f'+t; - else if (dir=='S') t=t+'
'+text; - else if (dir=='E') t=t+text; - else if (dir=='W') t=text+t; - } - if(p.link) t='
'+t+''; - if(xtags && p.name) dynapi._imageHookArray[p.name]=p; - return t; -}; diff --git a/superx/xml/dynapi/ext/functions.math.js b/superx/xml/dynapi/ext/functions.math.js deleted file mode 100644 index a58cd9f..0000000 --- a/superx/xml/dynapi/ext/functions.math.js +++ /dev/null @@ -1,85 +0,0 @@ -/* - DynAPI Distribution - dynapi.functions.Math extension - - Math and Path functions -*/ - -var f = dynapi.functions; -f.Math = {}; // used by dynapi.library - -// Math Functions -------------------------- - -f.radianToDegree = function(radian) { - return radian*180/Math.PI; -}; -f.degreeToRadian = function(degree) { - return degree*Math.PI/180; -}; -f.sintable = function(lsin) { - for (var i=0; i<361; i+=1) lsin[i]=Math.sin((i/180)*Math.PI); -}; -f.costable = function(lcos) { - for (var i=0; i<361; i+=1) lcos[i]=Math.cos((i/180)*Math.PI); -}; -f.getRandomNumber = function(n) { - var t=new Date(); - n=(n)? n: parseInt(Math.random()*10000); - return Math.round((Math.abs(Math.sin(t.getTime()))*(Math.random()*1000)))%n+1; -}; -f.getGUID = function() { // Globally Unique ID - var n1,n2,n3,n4; - var l,r,m,c=Math.random()+''; - c=c.substr(c.indexOf('.')+1); - m=(c.length-1)/2; - l=c.substr(0,m); r=c.substr(m); - n1=this.getRandomNumber(1000); - n2=this.getRandomNumber(255);n3=this.getRandomNumber(255);n4=this.getRandomNumber(255); - n2 = (n2 < 16 ? '0' : '') + n2.toString(16); - n3 = (n3 < 16 ? '0' : '') + n3.toString(16); - n4 = (n4 < 16 ? '0' : '') + n4.toString(16); - return (n1+n2+'-'+l+'-'+n3+n4+'-'+r).toUpperCase(); -}; - -// Path Functions ------------------------ - -// Combines separate [x1,x2],[y1,y2] arrays into a path array [x1,y1,x2,y2] -f.interlacePaths = function (x,y) { - var l = Math.max(x.length,y.length); - var a = new Array(l*2); - for (var i=0; i=0) comma=','; - if(format.indexOf('$')>=0) symbol='$'; - else if(format.indexOf('%')>=0) symbol='%'; - s=format.split('.'); - fInt=((s[0]==''||s[0]==null||s[0]=='undefinded')? '':s[0]); - fInt=fInt.split('').reverse().join(''); - fDec=(s[1]==''||s[1]==null||s[1]=='undefinded')? '':s[1]; - s=n.split('.'); - nInt=((s[0]==''||s[0]==null||s[0]=='undefinded')? '':s[0]); - nInt=nInt.split('').reverse().join('');; - nDec=(s[1]==''||s[1]==null||s[1]=='undefinded')? '':s[1]; - if (nInt) len=nInt.length; - if (fInt.length>len) len=fInt.length; - for(i=0;i=0) return true; - else return false; -}; -f.isInteger=function(n){ - if(typeof(n)=='number' && (n+'').indexOf('.')<0) return true; - else return false;; -}; -f.toInteger=function(dt){ - var vl; - if(!dt) return 0; - if(isNaN(dt)) vl=parseInt((dt+'').replace(/\,/g,'')); - else vl= parseInt(dt); - if (isNaN(vl)) vl = 0; - return vl; -}; -f.toFloat=function(dt){ - var vl; - if(!dt) return 0; - if(isNaN(dt)) vl=parseFloat((dt+'').replace(/\,/g,'')); - else vl = parseFloat(dt); - if (isNaN(vl)) vl = 0; - return vl; -}; -f.toBoolean = function(dt) { - return (dt=='true'||dt>=1)? true:false; -}; diff --git a/superx/xml/dynapi/ext/functions.string.js b/superx/xml/dynapi/ext/functions.string.js deleted file mode 100644 index 73f5aa5..0000000 --- a/superx/xml/dynapi/ext/functions.string.js +++ /dev/null @@ -1,52 +0,0 @@ -/* - DynAPI Distribution - dynapi.functions.String extension -*/ - -var f = dynapi.functions; -f.String = {}; // used by dynapi.library - - -// String Functions -------------------------------- - -f.sprintf = function(t){ - var ar = arguments; - var i=1,inx = t.indexOf("%s"); - while(inx>=0){ - t = t.substr(0, inx) + ar[i++] + t.substr(inx+2); - inx = t.indexOf("%s"); - } - return t; -}; -f.strRepeat = function(s,n) { - if(!s) return ''; - var i,a=[]; - for(i=1;i<=n;i++){ - a[a.length]=s; - } - return a.join(''); -}; -f.strReverse = function(s) { - if(!s) return ''; - var a=(s+'').split(''); - a.reverse(); - return a.join(''); -}; -f.strStuff = function(s,v,index) { - if(!s) return ''; - if (index==null) s=s+v+''; - else { - var t1=t2=s+''; - s=t1.substr(0,index)+v+t2.substr(index,t2.length-index); - } - return s; -}; -f.trim = function(s,dir){ - if(!s) return; - else s+=''; // make sure s is a string - dir=(dir)? dir:'<>'; - if(dir=='<'||dir=='<>') s=s.replace(/^(\s+)/g,''); - if(dir=='>'||dir=='<>') s=s.replace(/(\s+)$/g,''); - return s; - -}; \ No newline at end of file diff --git a/superx/xml/dynapi/ext/functions.system.js b/superx/xml/dynapi/ext/functions.system.js deleted file mode 100644 index ee39a58..0000000 --- a/superx/xml/dynapi/ext/functions.system.js +++ /dev/null @@ -1,87 +0,0 @@ -/* - DynAPI Distribution - dynapi.functions.System extension -*/ - -var f = dynapi.functions; -f.System = System = {}; // used by dynapi.library - -// System Functions --------------------------------- - -f.coalesce=function(){ - var a,i; - for(i=0;arguments.length;i++){ - a=arguments[i]; - if(a!=null && a!='' && a!=undefined) return a; - } -} -f.choose = function(index){ - if(isNaN(index)) return; - if (arguments.length>index) return arguments[index+1]; -}; -f.cloneObject = function(src) { - if(!src) return; - var i,tar; - if(typeof(src)!='object') return src; - else { - if((src.constructor+'')==(Array+'')) tar=[]; - else if((src.constructor+'')==(Date+'')) return src; - else tar={}; - }; - for(i in src) { - if(typeof(src[i])!='object') tar[i]=src[i]; - else tar[i]=this.cloneObject(src[i]); - } - return tar; -}; -f.copyObject = function(from,to,noclone) { - var i; - if (to && !noclone) to=this.cloneObject(to); - else if(to && noclone) to=to; - else { - if(typeof(from)=='object') { - if((from.constructor+'')==(Array+'')) to=[]; - else if((from.constructor+'')==(Date+'')) return from; - else to={}; - }; - } - for(i in from) { - if(typeof(from[i])!='object') to[i]=from[i]; - else to[i]=this.copyObject(from[i],to[i],true); - } - return to; -}; -f.getElementById = function(id,parentLyr){ - if (document.all) return document.all[id]; - else if(document.getElementById) return document.getElementById(id); - else if(document.layers){ - var i,nLayers,layer; - parentLyr = (parentLyr)? parentLyr:document; - nLayers = parentLyr.layers; - for (i=0;iRI>tvZQWvXCU+B9z;X+7teA>HC~xycTKrETtWm-O;15?-~qVWpQ< zjb>Sm((!lNH%S7-z44?cCFO6iMw;dD%%MURYW5V PXHANl#ozD9$zTltTXkeD diff --git a/superx/xml/dynapi/ext/images/debug_imgclear.gif b/superx/xml/dynapi/ext/images/debug_imgclear.gif deleted file mode 100644 index 3c401162c943e2d650a7e7df3871ba1ba88ee00e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 489 zcmZ?wbhEHb)MF51xcZ;LJ-dJZ>FeijKWDJcmk+M@ub$8EUGARWAKyGby?uW9z%ca?Z~2CfXt%$j|*X!$k0qa|8Z=U!~7I-9pzTi#F5 zb^Y!4KlaGk>!lfGX=XPy$+b3Swzg-8t1xr0^Gi*hGIiSY88fFS2{CZ8@Cq+lykzOJ z)oWK| zl$p6$8CTwaaG!~li}~U67mGDSTxH+Af4}eJhc92hy%X8GeQnZ)znd98-|RZ%A0}qV z9v>?Bc%hSI(@r+V&s$&5SZI2fP2_RuM&%9tV$GF18X9NJo~+?-b$Q07rKj7@@i<60 iZeDhFwng!)Et!fgEPTw;G6IQCTQr23d5l;X8LR=-7uh%f diff --git a/superx/xml/dynapi/ext/images/debug_imgclear_on.gif b/superx/xml/dynapi/ext/images/debug_imgclear_on.gif deleted file mode 100644 index 52721f6f6188f84cb18dda5c054e7285e7e65e51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 514 zcmZ?wbhEHb)MF51xcZ;r|NsBLzkm4s0f-)ce-1>KzCXP5{l=xwAawZirNf_30nxU1 zKy-N9yS*!30nz$7&mW(Ew)fJr6%(E^A{|fBPyjLrz+O4YV{g1m+*v$s0~}ThD>n{ zYANjQ&FtUXwLj)S2`lF`^~tR<6WG&_6kP1=FDP^6x_OKH*4>+T?moD8@4+KJesx); zm22L<6IPN{fA{4bi!1ZbU%!t0`Td`P`I+=$1#un2%>uWgJT5#CZQZ=;#3YH;T@og# ziv$)ZcPdLIMOS$Ke$f_W6o2WK%Og|GNnX=RgiIv1oQ^naQZ!96`SP<{o$BVQrMIqV pZaLeSt!7{oacaxT%gX~6TlG#j*uui+G9%;esUt1yoQ@0()&MG1-w6N! diff --git a/superx/xml/dynapi/ext/images/debug_imgeval.gif b/superx/xml/dynapi/ext/images/debug_imgeval.gif deleted file mode 100644 index 3d44859e3c1156c5ff854f0994fcfff2aa89d761..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 714 zcmZ?wbhEHbOkogXxcZ;LJ-dJZ>FeijKWDJcmk+M@ub$8EUGARWAKyGby?uW9z&!j0_C&3_2ivAU`><{Xfv(WS}9{e_~0|$sDWs0gDqI zr2^JPobCEtR2sAH?6PLv>50#@f30cTx$(8BDqs2W`^D8&^}Z{+lp33wq*|KWJ370% zdwTo2MU@p?b*4_6Dm889%;|II&0nx^(c&cwL^NF`C7WdRWu&6?^!0UHdkwmG>}cG* zXP?sE-G`bFAL#E8*I?#g=a)Nw;o_ysSFT>We&gn?^J+p2oGiS;kDok!_WZ@mSFhi^ zefNylr6wvqR=Osw=*REkAHOpH|5z$$xah=GN9nZO3kO`U>4^7K$#SWk=$joc())2! z$HW^OQyTb6GXzgei+&Q^<`T6Jb9h$jhy|!fd z3#hYcXb3!*dwF@l;(fva4hI>^q?TmeJyj~h&E@LUA-md9XN`dLnZDT5VN0dA6+ArD zpPx# diff --git a/superx/xml/dynapi/ext/images/debug_imgeval_on.gif b/superx/xml/dynapi/ext/images/debug_imgeval_on.gif deleted file mode 100644 index ce7c8755e4f61421992aae04bd3bd4314f01d1ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 795 zcmZ?wbhEHbOkogXxcZ;rKL}|4{{G?j2OxU*{W%a_`u_0J_Zyc!gV5p6mkxhE1w`B4 z0ny=Y@Aj^E1w`xTJb!%t+1^XfR!n%dXu^{vns*m%y8%Sg=3K3?E>q7Gu`J^oJNLi@KHOC`mj!R0fO-h?#V4H4Wqo81fw1cgfg#-fw1D_#~AQk9< zG=Ti#!1n)uXU0=4ss0m7icaQO%@0ssZBi(@?gm4{m7v;?Ri~de>rRhh5jq?Vi#%b;8t^iOtg|b8z#!GA&-R zm~qMS9glAUcP$$=ItXfX-y?|M>Z9iG)i{RQ#@(2gz=H z2b+sIq2OLp^To+pNrFM7=TQt|1r8Z+0f zod?Wb9AW3h1Vg@E}=lYgCA!YRE%iCe-Y)?n(Y&{aW8!;V&M zT^+hMesvb>>#1+9ZcN<1>a5pSMiy~Jzbm)hx39Y!A>!9kAn1Md?*4{kQ4OaB8y+&W zRtoNzaAU*cFetJ=n6Y@$^FGJKGD)_*nlgjMZpZ&(EMS>tDj;w9BbCSQ7OmgLap{ zKNq!a%C+K2+j5O8^Dd+|T%Wf{k9Fy!yWTS+B2IKjcV*mbWt(&(QPF?n w0!9{-YZ;GwEuO7-+-LLc#p8Z6uLF$S!VL~CA|7fhpG*qapm2!Ak%7S)0EUBcwEzGB diff --git a/superx/xml/dynapi/ext/images/debug_imghelp.gif b/superx/xml/dynapi/ext/images/debug_imghelp.gif deleted file mode 100644 index cdff0980ab13d26ae79ea08a0e3c93eaddaf84c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1043 zcmZ?wbhEHblw=TN_|5X}nKW$B!?Yu9dF zyLRu^t;ddSJ$G&IxohXn?LBwz`L%1uuH8F#4}`7(dCx)U-t+fB^!z;#eFviV-$Cg6 z_y6Dj|7ZCBU*i8L7!85J6aqS+901A-4jexim~|8s7A!c}%)!s+A>eSJoljn=Ov8c6 zp^;z2T||T7<3nd&R_hKKOQXkblax#|b_5u-oSv>{eoBYo^V7oR`DPbvh7 z^~|`cSPB^YPvT5Pnbw_Vbe&o4RB4fI$<0G?EJ9F>)-C3cS ho;{6OE+XRGo}HhciE3C#C`?E=^qPayfQN&@8UXj>M|uDN diff --git a/superx/xml/dynapi/ext/images/debug_imghelp_down.gif b/superx/xml/dynapi/ext/images/debug_imghelp_down.gif deleted file mode 100644 index f55f4f32283c22f77eea3fba4b62e52a2b879df5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 950 zcmZ?wbhEHblw=TN_|5-ru|T z|Nr~{K)?W{LF`d58UjN;1av?-0F)OPIA$|&sz?YdSa7hJgP+Sm;e$gnhk&xz9E*zJ*IACngHFs`3NP-S-mZV2l}&=r$HU?wLmML_gEat{vnCb* diff --git a/superx/xml/dynapi/ext/images/debug_imghelp_on.gif b/superx/xml/dynapi/ext/images/debug_imghelp_on.gif deleted file mode 100644 index 34c29180791e64db98516d6310c923d1355a408b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1070 zcmZ?wbhEHblw=TN_|5r=PU&*qa>VK1O!?PgL*8J=XfPA^-5kFm3^+b`dW4M zwVsxHQ|8=Ty7l?mDbM#_d%t$h`@L)5AKUu=+}7_vbnV#pdq8yU`*R?A{{K4=egFTT z;r}QY4S~TO0y>}^0Llvv9RC`Tk_n!h4%;H#K6ifS26dD=^;i|Mvd%yyA;)q%u6xu za+3~Rb9$SsqSW4wi;r$>wD(^AEqdDGBNKCEyIi7*wt6gb(SD-GX`$)5zo3!d+%qWS z{!Y)Ylh!a8I}|T*$v<{>c4JioBcGZ`hrIv3no15{HV%~;8*C3Ta1Tr?G#)Kn<~uv`(#9Px6V=c6%y($!lC3I^vDCU-v~2Q$w%I$DKbRAzn6CFS zNZ0pt!p&2rz7p$V4}02{H}VBJ{GN6$dAfnZs?yazHnK+ei#0k{xg@?lzAZnd{==<* zufMA|w^c9uBxrXeqTuoIaO8-|xm(V6*Or%;S9m827(Qg^ VVt1K$VxI5rZ4;S!%~%*2tN}H|B$@yK diff --git a/superx/xml/dynapi/ext/images/debug_imginspect_on.gif b/superx/xml/dynapi/ext/images/debug_imginspect_on.gif deleted file mode 100644 index baccab89c66031a96cbb982179ffb6800c5aa314..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 667 zcmZ?wbhEHb3}6srxcZ;r|NsBLzkm4s0f-)ce-1>KzCXP5{l=xwAawZirNf_30nxTk z|Np-`we8*EZSVH3cm+i3=RALW{@LD3&sI!$wrIlLMceL9oOol=wj0ytT<&VQTvvIr zxN?i5DoX$M;|3kE(z28RC(6aXENUXWiL z*!~~j+32IsKF^Se+kW%>#Q+pW~kCuv>tmv`hCr+L^edg@B^QXmR)D<-JJ{m%{k9>k11VJbV5k{v``5muu**&5vR?lyBSq<7?yky?;KgZ;=r75b$X|5Lx}J zB7!+!f^MY1@i$S;$N8KiMBd7lgskjfV&xY3lK63>%87nO=Xp9SC#jyAZVa>+YH)zPT5ATxyB`{53*9y` zmxgTIb$+4yy88Saj~8aC@y9-v_$*{>`uzODV(FeijKWDJcmk+M@ub$8EUGARWAKyGby?uW9Twm@1KAF`uX$6_rHJt&OkBH z0hs{uiv!zkhsjL_8dCiy7AFcy1pcqE$`7_0$e CkF+`f diff --git a/superx/xml/dynapi/ext/images/debug_imgnext_on.gif b/superx/xml/dynapi/ext/images/debug_imgnext_on.gif deleted file mode 100644 index d5f90975242a9044116e8e8aced07e502d693d3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421 zcmZ?wbhEHblw=TNxcZ;rKL{}V{{G?j2OxU*{W%a_`u_0J_Zyc!gV5p6mkxhE1w`B4 z0ny=Y@Aj^E1w`xTJb!%t+1^XfR!n%dXu{n^+in2Sv^kf%S}xaBo-D3h7nQdzG;fhl z$|8@HIY8u+(rc5_W*FF}8yF$&U@K<9z-P!n4WI)u1mqV7wo?Z>kGE(^^`CgGY2qk4 zFCar}LRXYv&!U43H_CQuuB+&A(2;X(tU8;wo15cp*q^yJ;+$Ah9bW$K2x2u1Aa#=+R8&{1+Y1-?(|}27Unz zIpvV+?%A~8Ws_K=o*ms9E9#Ye-A{@-viNiAbS5DguZ|O z|NZ|c7!83z83H<>901A-4jgY8m^Bm>7A!c}%)!s+AmGrz&c|=dAi$Wgh@(qXv+Bl) zM(4IBS?4Yp&mw0wZdS(?F()@IJ>9Ng-Lj=(W1266l5v7S!-4}%91hJ~vRYFd8Ch5q z8aOs?(Y(CeZ?TiYi9%)H+2*UObWUu19J)rN_??KsC+)B~ivD6}4s2U{dwYRyh`@pa z4M8g^7CTK%aA<5;)-aPTOfzCbdy~A7`nnT443m%Y+gsiFabb-wgP?NpQXRoJPdj9M zibO397eC&Rd3@T@j){h^`Xu!lRNn3=^P7_5`ATnPSwl0|fo5)by*YNo>=H@6yx4W2)zX!lUSFFiwY=%5mD!qx_Ec57gbf=S cn%D~-pPH*(?#S52Ed0t>gMqQJfq}sq0040$=l}o! diff --git a/superx/xml/dynapi/ext/images/debug_imgnormal_on.gif b/superx/xml/dynapi/ext/images/debug_imgnormal_on.gif deleted file mode 100644 index aea632a8a27144802405fa81668b9a359c688691..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1054 zcmZ?wbhEHblw=TN_|5r=PU&*qa>VKG=o|UgL*8J=Qt(L@k(CmmAp16du>$q zx#H?;)z#N}TJBAmb8qR^=S!zNUpwXb-fQpI&UwFg?fYX}-=Ew19fXd3zjo~VJs`UF z{W%al|Nk9`zW*NuqaiRTLqG?V13-Dff#V+otB!)ef&~YgIr#ZJ6ci4$^UKLG2{0xs z;^-39wCma7=^W!4_`3z2z z?ldSmFfsG0XvCh{q8ZH2CM3`iFnQV4RSHT1Eju>fumLnFIlbjmfk16q|koY~1wpl(c=x z2ajpmcjhzfSodefPvZ+60_Ng(Jc^Qzoz8sT7kW}y`PiwXKFeijKWDJcmk+M@ub$8EUGARWAKyGby?uW9Twm@1KAF`uX$6_rHJt&OkBH z0hs{uiv!zUhsjL_8dCiy7AFcy18Ic3h2G0$y`s77+>0$$zLuiK zGe3kl^XBU>WqkDE#*hCEjrGbx44f>y!d=}xy?wkcVUt8cC(A3i`WKaymQ_TR#m`Ml zaaCBpV&$sUvMS76tc-n|`RN%Up|W|39`xXxp@BbV3SDUU}CTa E0J?Ls8~^|S diff --git a/superx/xml/dynapi/ext/images/debug_imgprev_on.gif b/superx/xml/dynapi/ext/images/debug_imgprev_on.gif deleted file mode 100644 index ab8290cb152ddde2d06e936b77b1bae3e9abab24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 426 zcmZ?wbhEHblw=TNxcZ;rKL{}V{{G?j2OxU*{W%a_`u_0J_Zyc!gV5p6mkxhE1w`B4 z0ny=Y@Aj^E1w`xTJb!%t+1^XfR!n%dXu{n^+in2Sv^kf%S}xaBo-D3h7nQdzG;fhl z$|8@HIY8u+(rc5_W*FF}8yF$&U@K<9z-P!n4WI)u1mqV7w(|!%kGE(^^`CgGY2qk4 z??Q&wgf2J19;HJGH}ZBr5RvF{(2;X(tU8;wo4Z44`klFKD@r~rY80AiA==o~+|nc_ zttzi3p4Zza?h-bMHFPo?x2u0~d|5?Id^A^$#)9I+ilx!%uH4)_YuBz{zhUFLwfq7a za>_k@`z}U!3aWQj49wt{8t$b9T zRLQ}`SCsrP`s&N+85*CG=U2{OtuCp+A>*+j!I4wS&*z1MN~g1mx}6UP6N5DXzCf$r diff --git a/superx/xml/dynapi/ext/images/debug_imgreload.gif b/superx/xml/dynapi/ext/images/debug_imgreload.gif deleted file mode 100644 index 69248fdd235787850e504bc512554401683c3f7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmZ?wbhEHblw=TNxcZ;LJ-dJZ>FeijKWDJcmk+M@ub$8EUGARWAKyGby?uW9)qE)r;!TPD8yv^G3 zeuhW$makc1ar*7D8C^4ZX2`rheO69fg_(n$U#g?CtGiQ4h=G%ZS9r?QY13!$x&+P% z(<+)HA}8D=LV(Q-9wnOod?899`dyykcmE@~AJKzCXP5{l=xwAawZirNf_30nxU1 zKy-N9yS*!30nz$7&mW(Ew)fJr6%(EOZ0ErQ#_#@4|Afg22*MvY}r#XvlFTe7L@9l^EasFOCm2*zSF35OoMY`nbi}utx9l z|I+j(c1|8mWmOrG?w;Ph9#LsE1$D9V=`#w%Tmt8YiI>i0VdZl5Z(AgFZ zOZ^rFJ=iffd)cB@AxG9lEsuE{zp~-y&J|p3n!D!bv3d!sIX2s-bFiH$<-az|?EjSm mN^JboB;quTY;K&`xY)g4&}6}c2aO(+CVK=lOb}pUum%8;IlAQl diff --git a/superx/xml/dynapi/ext/images/debug_imgwatch.gif b/superx/xml/dynapi/ext/images/debug_imgwatch.gif deleted file mode 100644 index cafb82f872630ea2a5b0389132d1e491f433eb1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1052 zcmZ?wbhEHblw=TN_|5xvTX?J5jEPAn8z~6q2=cbYf2IiD!ExOgZ{)`HV`{&vgJDls6G1;;;QY`J` o&cm)+|2;0LFmgyN@}BQk`-_#EpMyhX#s+IACN3r>78V9;0AznfVgLXD diff --git a/superx/xml/dynapi/ext/images/debug_imgwatch_down.gif b/superx/xml/dynapi/ext/images/debug_imgwatch_down.gif deleted file mode 100644 index 18624e546f1591a8b2c562db06986424b3d6e9af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 962 zcmZ?wbhEHblw=TN_|5-ru|T|Nna+_zwhN0>l^vqaiSaLqG?V13-C!fnzxXr-p>Uf&~YgIrzC86h0hi z<`hu&nq%?tzyS^s^W=8IU^xp@sHIPBQ)@Nk>7M1qCE!pAL4LINBd G4Aua*uql85 diff --git a/superx/xml/dynapi/ext/images/debug_imgwatch_on.gif b/superx/xml/dynapi/ext/images/debug_imgwatch_on.gif deleted file mode 100644 index 8341dce795ec73da1e465c621bdcc9026ac64dc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1076 zcmZ?wbhEHblw=TN_|5r=NSI~w-m69l5lF#3~Dh9>ak3o4bKySVcyfYV7#qXKhsq3`){Hlfo}T>fxPa`FsuvFuo!bw$vzHspvG|a{E6HTw z;IMGj)0N@^CL9GjjeVyHxMysw2wW82m$E->$%(70UAyFR*b2_>`f~l2E&Jrw7mNoO z=2n^hle=Ji_>{Xx0+7YPU=08+MMr!9 diff --git a/superx/xml/dynapi/ext/library.html b/superx/xml/dynapi/ext/library.html deleted file mode 100644 index 506ec77..0000000 --- a/superx/xml/dynapi/ext/library.html +++ /dev/null @@ -1,3 +0,0 @@ - \ No newline at end of file diff --git a/superx/xml/dynapi/ext/library.js b/superx/xml/dynapi/ext/library.js deleted file mode 100644 index 36217d3..0000000 --- a/superx/xml/dynapi/ext/library.js +++ /dev/null @@ -1,232 +0,0 @@ -/* - DynAPI Distribution - Dynamic Loading extension to dynapi.library - - The DynAPI Distribution is distributed under the terms of the GNU LGPL license. -*/ - -// begin loading the object -DynAPILibrary.prototype.load = function(n,fn) { - var list = this._queue(n,null,arguments[2]); - //return dynapi.debug.print('going to load: '+list); - if (list.length) { - var s,src; - for (var i=0;i<\/script>'); - this._export(src); - } - else { - var elm = s.elm = dynapi.frame.document.createElement('script'); - elm.src = rsrc; - elm.type = 'text/javascript'; - elm.defer = true; - if (dynapi.ua.ie) { - elm.C = 0; - var o = this; - elm.onreadystatechange = function() { - elm.C++; - if (elm.C==2 || elm.readyState=="complete") { // use 2nd statechange for onload - o._export(src); - } - } - } - dynapi.frame.document.getElementsByTagName('head')[0].appendChild(elm); - - // I could not find way to know when the script is complete in Moz v0.9.3 - if (dynapi.ua.ns6) setTimeout(this+'._export("'+src+'")',100); - } - } - } -}; - -// executed after a script is finished loading, run main() functions -DynAPILibrary.prototype._export = function(src) { - var src = this.loadList[this.loadIndex]; - var s = this.scripts[src]; - if (s) { - this._register(s); - - // run elm.main)() before global main() - if (dynapi.ua.ns4 && typeof(this.elm.main)=="function") { - this.elm.main(); - this.elm.main = null; - } - - // run global main() if available - if (typeof(main)=="function") { - main(); - main = null; - } - - // clear out all functions in the layer's scope - if (dynapi.ua.ns4) { - for (var i in this.elm) { - if (typeof(this.elm[i])=="function") delete this.elm[i]; - } - } - this.busy = false; - - // load next file - this._load(); - } - //else return alert('Library Error: unknown script '+src); -}; - -// registers the script as loaded, exports the objects -DynAPILibrary.prototype._register = function(s) { - //dynapi.debug.print('loaded "'+s.src+'"'); - s.loaded = true; - s.queued = false; - if (!s.unnamed) { - var n,found; - // loop through each object that the script contains - for (var i=0;i0) { - var ns = n.split('.'), o = dynapi.frame, b = false; - for (var j=0;j, NS4 only -DynAPILibrary.prototype._handleLoad = function(elm) { - var args = dynapi.functions.getURLArguments(elm.src); - var js = args["js"]; - if (js) { - js=js.replace(/\+/g,'/'); // convert + to / - if (js.indexOf('http')!=0) { - var l = dynapi.frame.document.location; - if (js.substr(0,1)=='/') js = l.port+'//'+host+src; - else js = dynapi.documentPath+js; - } - elm.document.write(' -*/ - -function IOElement(hiddenThreads,useXFrames) { - this.DynLayer = DynLayer; - this.DynLayer(); - - this._elmID = this.id+'elm'; - this._requests = {}; // [url,data,fn,method,elmThread,timer,cargo] - this._cargoID=''; - this._requestList = []; - this._requestIndex = -1; - this._retryID=null; - this._transactions = {}; - - this._singleThread=false; - this._elmBusy=[]; - this._elmThread=null; - this._maxThreads=(hiddenThreads>=1 && hiddenThreads<=8)? hiddenThreads : 1; - this._hidden = (hiddenThreads)? true : false; - - this.isSync=false; - this.failTime = 50000; - - // create XFrame window - if(useXFrames && dynapi.ua.ns4) { - this._winXFrames=window.open("about:blank",null,'left=3000,top=3000,width=100,height=100,scrollbars=no,status=no,toolbar=no'); - this._winXFrames.blur(); // hide the new window - var wxf=this._winXFrames; - dynapi.onUnload(function() { // tidy up - if(wxf.open && !wxf.closed) wxf.close(); - }); - } - - if (this._hidden) { - var o = this; - o.setLocation(1,1);// Strange! ns4 requires that the x,y be set in order to load the java applet inside the layer - o.setVisible(false); - dynapi.document.addChild(o); - } - - this.onPreCreate(IOElement.fnPrecreate); - this.onCreate(IOElement.fnCreate); -}; - -IOElement.fnPrecreate = function() { - var t,r=['*'],html=[]; - if (this._hidden) { - if (this._winXFrames) html = ['']; - else if (dynapi.ua.ns4) html = ['']; - else { - // Opera v7.11 requires an IFrame's src to be set before it's accessible - pixel.gif is a 1x1 transparent gif - html = ['']; - } - t=html.join(''); - this._elmThread=this._elmID; - this._elmBusy[this._elmID]=false; - for(var i=1;i'; - else if (dynapi.ua.ns4) t = ''; - else t = ''; - this._elmThread=this._elmID; this._elmBusy[this._elmID]=false; - } - - if (!this._winXFrames) this.html=t; - else{ - var src='DynAPI XFrame\n' - +'\n'+t - +'\n' - this._winXFrames.document.open(); - this._winXFrames.document.write(src); - this._winXFrames.document.close(); - this._winXFrames.top.dynapi=dynapi; - this._winXFrames.top.IOElement=IOElement; - } -}; -IOElement.fnCreate = function() { - if (this._SyncFn) window.setTimeout(this+'._initSync()',100); - if (this.getScope()) { - if (this._requestList.length>0) { - this._setRequestTimeout(100); - } - } -}; - -var p = dynapi.setPrototype('IOElement','DynLayer'); -p.execInParent = function(fn){ // Executes javascript codes within the parent element - if(typeof(fn)=='function') eval('fn='+fn); - else eval('fn=function(){'+fn+'}'); - fn(); -}; -p.getVariable = function(name) { - var v=this.getScope()[name]; - if (IOElement.SODA) v=IOElement.ws_SODA2Var(v); - return v; -}; -p.getScope = function(thread) { - var scope; - if (!thread) thread=this._elmThread; - if (this._winXFrames && this._winXFrames.top) scope = this._winXFrames.top.frames[thread]; - else if (dynapi.ua.ns4) scope = this.doc.layers[thread]; - else scope = window.frames[thread]; - if (!scope) return alert('IOElement Error: no load element'); - else return scope; -}; -p.getCargoID=function(){return this._cargoID} -p.getCargo=function(dontRemove){ - if(!this._cargoID) return null; - var c=this._requests[this._cargoID][6]; - if(!dontRemove) { - // normal cargo are removed from storage - this._requests[this._cargoID][6]=null; - } - return c; -}; -p.isBusy = function(){ - for (var i in this._elmBusy){ - if (this._elmBusy[i]==false) return false; - };return true; -}; -p.cancel= function(id){ - id=(id)? id:this._retryID; - var req=this._requests[id]; - if(req){ - this._elmBusy[req[4]]=false; - delete this._requests[id]; - this._clearScope(); - return true; - } -}; -p.cancelAll=function(){ - this._requests={}; - for (var i in this._elmBusy){ - this.elmThread=i; - this._clearScope(); - } -}; -p.retry=function(id){ - id=this._retryID=((id)? id:this._retryID); - var req=this._requests[id]; - if(req) { - this._setRequestTimeout(50,id); - return true; - } -}; -p.setTimeout = function(ms){ - if(!isNaN(ms))this.failTime=ms; -} -p.useSingleThread = function(b){ - this._singleThread=b; -}; -p.get = function(url,data,fn,cargo) { - if(fn==false && this.isSync) return this._syncRequest(url,data,'get'); - else return this._asyncRequest(url,data,fn,'get',cargo); -}; -p.post = function(url,data,fn,cargo) { - if(fn==false && this.isSync) return this._syncRequest(url,data,'post'); - return this._asyncRequest(url,data,fn,'post',cargo); -}; -p.upload=function(url,form,fn,cargo){ // file upload - return this._asyncRequest(url,form,fn,'upload',cargo); -}; -p._asyncRequest = function(url,data,fn,method,cargo) { - var i,l,src; - var id = this._getRandomID(); // create random load ID to ensure no caching - dynapi.debug.print("IOElement "+method+" request"); - if (typeof(url)=="string") this._requests[id] = [url,data,fn,method,null,null,cargo]; - else if (method=="get") { - for (i=0;i'; - if (data) { - for (i in data) { - if(i) str += ''; - } - } - str += ''; - - elm.document.open(); - elm.document.write(str); - elm.document.close(); - - var f = elm.document.forms['ioDataForm']; - if (!f) return alert("IOElement Error: no form element found"); - if (f && data) { - for (i in data) { - if(i) f[i].value = data[i]; - } - } - f.submit(); - } - - // begin transaction - data sent but awaiting reply - // to-do work on a way to detech if caller is in the same domain as - if(!dynapi.ua.ns4) { - elm.document._tranState="begin"; - this._monitorTransactions(); - } - this.invokeEvent("request"); - } - } -}; -p._clearScope=function(){ - var doc=this.getScope().document; - if(doc){doc.open();doc.write('');doc.close()} -}; -p._getFreeElm= function(){ - for (var i in this._elmBusy){ - if (this._elmBusy[i]==false){ - this._elmThread=i;this._elmBusy[i]=true; - return this.getScope(); - }else if(this._singleThread) break; - } -}; -p._getRandomID = function(){ - var id = Math.random()+''; - return 'io'+id.substring(2); -}; -p._monitorTransactions = function(){ - var c,r,tr,id,elm; - for (id in this._transactions){ - r=this._requests[id]; - tr=this._transactions[id]; - if(r && this._elmBusy[r[4]]) { - elm=this.getScope(r[4]); - if(elm && elm.document && !elm.document._tranState){ - // document completed without proper response from server - tr[0]+=1; // counter. - if(tr[0]>=3){ - //three strikes and you're out! - eval(tr[1]); - } - } - } - } - if(id) window.setTimeout(this+'._monitorTransactions()',1000); -}; -p._notify = function(id, url, success) { - var fn,req=this._requests[id]; if(!req)return; - var s = (success!=null)? success : true; - // delete transaction record - delete this._transactions[id]; - if (!this._elmBusy[req[4]] && success) { - dynapi.debug.print('IOElement Error: '+id+' '+this._elmID+' '+url); - return; - } - clearTimeout(req[5]); - this._elmThread=req[4]; - fn = req[2]; // callback function - if(!s) this._retryID=id; else this._retryID=''; - this._cargoID=id; - if (fn) { - var r,e = new DynEvent("load",this); - if(typeof(fn)=='function') r=fn(e, s); - else r=eval(fn); - // cancels server response and preserve request object - if(r==false) { - s=false; - this._retryID=id; - } - }else{ - this.invokeEvent("response",null,s); - } - this._cargoID=''; - if(s && id!=this._retryID) delete this._requests[id]; - else if(this._hidden) this._clearScope(); - this._elmBusy[req[4]] = false; - // release document - prevent incomplete progressbar in ie - if(dynapi.ua.ie) location.href = "javascript:void (document.close())"; - this._doRequest(); -}; -p._setRequestTimeout=function(interval,id){ - var evl=this+'._doRequest('+((id)? "'"+id+"'":'')+')'; - return window.setTimeout(evl,interval); -}; -// Helper Methods ------------------------- -IOElement.getSharedIO=function(useXFrames){ // Returns a Shared instance of the IOElement object - if(!IOElement.ShareIO) IOElement.ShareIO=new IOElement(1,useXFrames); - return IOElement.ShareIO; -}; -IOElement.notify = function(elm, fn, success) { // ds: added success parameter to nicely relay server generated error messages - if (elm) { - var url, id; - if (dynapi.ua.ns4 && elm.src) url = elm.src; - else if (dynapi.ua.ns4 && elm.location) url = elm.location.href; - else url = elm.document.location.href; - if (url) { - elm.args = dynapi.functions.getURLArguments(url); - var id = elm.args["IORequestID"]; - var obj = DynObject.all[elm.args["IOElementID"]]; - if (obj!=null && id!=null) { - // transaction completed - server has respond sucessfully - elm.document._tranState="complete"; - elm.onload = function() { - if (fn) fn(obj); // send obj fn - rmo - obj._notify(id,url, success); // ds: success - }; - return obj; - } - else { - return false; - } - } - } - return null; -}; -IOElement.URLEncode = function (d){ - d=d.replace(/\s/g,'+').replace(/\%/g,'%25').replace(/\=/g,'%3D'); - d=d.replace(/\&/g,'%26').replace(/\n/g,'%0A').replace(/\r/g,'%0D'); - d=d.replace(/\#/g,'%23').replace(/\\/g,'%5C'); - return d; -}; diff --git a/superx/xml/dynapi/util/ioelement.soda.js b/superx/xml/dynapi/util/ioelement.soda.js deleted file mode 100644 index 376d343..0000000 --- a/superx/xml/dynapi/util/ioelement.soda.js +++ /dev/null @@ -1,332 +0,0 @@ -/* - DynAPI Distribution - IOElement SODA add-on - - The DynAPI Distribution is distributed under the terms of the GNU LGPL license. - - requires: Math, IOElement -*/ - -IOElementSoda={}; // used by dynapi.library -IOElement.SODA=true; - -var p=IOElement.prototype; - -p.createWebService = function(name,url,fn,useSync,uid,pwd,method){ - var o,IOE=IOElement; - if(typeof(fn)!='function') { - alert('Missing or invalid Callback Function'); - return; - } - - useSync=(IOElement.SYNC)? useSync:false; - o=this[name]={}; - method=(method+'').toLowerCase(); - o.sid=dynapi.functions.getGUID(); - o._callback=fn; - o._name=name; - o._useSync=useSync; - o._method=(method=='post'||method=='get')? method:'post'; - o._src=this; o._url=url; o._uid=uid; o._pwd=pwd; - o._iSysCall=IOE.ws_iSysCall; - o._iSysManager=IOE.ws_iSysManager; - o._iSysConnect=IOE.ws_iSysConnect; - - o.isConnected=false; - o.call=IOE.ws_callSrv; - o.getWebName=IOE.ws_getWebName; - o.getWebComment=IOE.ws_getWebComment; - o.importWebMethods=IOE.ws_importWebMethods; - - if(!useSync || (useSync && this.isSync)) o._iSysManager("connect"); - else this.activateSyncMode(this+'.'+name+'._iSysManager("connect")'); -}; -p.disconnectWebService = function(name,fn){ - var o=this[name]; - if(o && o._src==this && o.isConnected==true){ - o._callback=fn; - o._iSysManager("disconnect"); - }; -}; -p.getResponse = function(){ - var cargo=this.getCargo(true); - var retry=(this._retryID==this._cargoID)?true:false; - var response=IOElement.ws_SODAParser(this.getVariable('wsSODAResponse')); - if(retry) response.error={code:0,text:'Request Timeout'}; - if(response.error) this._retryID=this._cargoID; - if(cargo) response.serviceName=cargo.DynAPIWSName; - return response; -}; - -// WS Object Functions -IOElement.wsError='Error occurred while parsing SODA Envelope'; -IOElement.ws_iSysManager = function(sys){ - var s,r; - - this.isSync = (this._useSync && this._src.isSync)? true:false;; - - if(sys=='connect') mn='SYS:WebServiceConnect'; - else if(sys=='disconnect') mn='SYS:WebServiceDisconnect'; - - if(this.isSync) { - // use sync login/logout - r=this._iSysCall(mn); - o=r.value; - if(o && typeof(o)=='object' && o.SYSCall==true) { - o.error=r.error; - r=o;s=true; - }; - this._iSysConnect(r,s); - }else { - // use async login/logout - var cargo={wsObject:this,DynAPIWSName:this._name} - this._iSysCall(mn,null,this._iSysConnect,cargo); - } -}; -IOElement.ws_iSysConnect = function(e,s){ - var o,r,c,ws,et; - - if(!e||(e && e.constructor!=DynEvent)) { - // sync - o=ws=this; - if(!e.error) c=e; - else if(e.error) et= ((e.error.code)? e.error.code+':':'')+e.error.text; - else if(!s) et='Connection Failed'; - }else{ - // async - o=e.getSource(); - r=o.getResponse(); - c=o.getCargo(!s||!r.value); - o=ws=c.wsObject; - c=r.value; - if(r.error) et=r.error.text; - } - o.isConnected=false; - if(!et && c && (c.logout||c.login)=='failed') et='Login failed'; - s=(!et && c && (c.logout||c.login)=='ok')? true:false; // web service must return a login/logout state - if(s && c.logout) { - delete o._src[o._name]; - o.call=dynapi.functions.Null; - }else if(s && c.login){ - o._iWSName = c.name; - o._iWSComment = c.comment; - o._iWSMethodNames = (c.methodNames)? c.methodNames:''; - o.isConnected=s; - } - if (o._callback) o._callback(ws,s,et); -}; - -IOElement.ws_iSysCall=function(name,params,fn,cargo){ // used to make async/sync system call to the service - var r,o,data={}; - if(this.isSync) fn=false; - data.IOResponse=(fn)? 'text/html':'text/xml'; - data.IOEnvelope=IOElement.ws_createSODAEnvelope(name,params,null,null,this.sid,this._uid,this._pwd); - if(this._method=='get') r=this._src.get(this._url,data,fn,cargo); - else r=this._src.post(this._url,data,fn,cargo); - if(this.isSync) { - // convert SODA text returned from get() or post() into response object - if(!r.error) r=IOElement.ws_SODAParser(r.value); - } - return r; -}; - -IOElement.ws_callSrv=function(name,params,fn,cargo){ - var rt,data={IOResponse:'text/html'},cargo=(cargo)? cargo:{}; - var mod=this._method; - var sync=(fn==false && this.isSync); - if(typeof(name)!='string'){ - var i,o=name; - var na=[],pa=[]; - for(i in o){ - na[na.length]=i; - pa[pa.length]=o[i]; - } - name=na.join(','); - params=pa; - } - if(typeof(params)!='object'||params==null) params=[params]; - else if((params.constructor+'')!= (Array+'')) params=[params]; - IOElement.ws_setStringEncFormat('xml'); - cargo.DynAPIWSName=this._name; - data.IOEnvelope=IOElement.ws_createSODAEnvelope(name,params,null,null,this.sid); - if(sync) data.IOResponse = 'text/xml'; // Returned Content Format - if (mod=='get') rt=this._src.get(this._url,data,fn,cargo); - else rt=this._src.post(this._url,data,fn,cargo); - if(sync) { - // convert SODA text returned from get() or post() into response object - if(!rt.error) rt = IOElement.ws_SODAParser(rt.value); - rt.serviceName=this._name; - } - return rt; -}; -IOElement.ws_createSODAEnvelope = function(method,body,ecode,etext,sid,uid,pwd){ - return '' - +((sid)? ''+ sid +'':'') - +((ecode||etext)? ''+ IOElement.ws_SODAStringEncode(ecode+'|'+etext) +'':'') - +((uid)? ''+uid+'':'') - +((pwd)? ''+pwd+'':'') - +''+ IOElement.ws_SODAStringEncode(method) +'' - +''+ IOElement.ws_Var2SODA(body) +'' - +''; -}; -IOElement.ws_getWebName= function(){ - return this._iWSName; -}; -IOElement.ws_getWebComment= function(){ - return this._iWSComment; -}; -IOElement.ws_importWebMethods = function(){ - if(!this.isSync) return false; - var fn,rt=this._iWSMethodNames; - if(rt) { - rt=rt.split(','); - for(var i=0;i=0) lvl++; - else lvl=0; - - if(vtype=="number") { - if((v+'').indexOf('.')>=0) data=''+v+''; - else data=''+v+''; - }else if(vtype=="boolean") { - if(v==true) data='true'; - else data='false'; - }else if(vtype=="string") { - data=''+this.ws_SODAStringEncode(v)+''; - }else if(vtype=="object" && v!=null) { - if((v.constructor+'')==(Array+'')){ - data=''; - for (i=0;i0)? ''+this.ws_Var2SODA(v[i],lvl):this.ws_Var2SODA(v[i],lvl); - } - data+=''; - }else if((v.constructor+'')==(Date+'')){ - //Date format: mm/dd/yyyy hh:nn:ss - v=((v.getMonth()+1)+'/'+v.getDate()+'/'+v.getFullYear()+' '+v.getHours()+':'+v.getMinutes()+':'+v.getSeconds()); - data=''+v+''; - }else { - var keys=[],values=[]; - for(var key in v){ - values[values.length]=v[key]; - if (key.indexOf('|')>=0) key=key.replace(/\|/g,'&s;'); - keys[keys.length]=key; - } - v=[keys.join('|'),values]; - data=''+this.ws_Var2SODA(v,lvl)+''; - }; - }else data='0'; - if (lvl==0) data=''+data+''; - return data; -}; -IOElement.ws_SODA2Var=function(t,lvl){ - var i,tag,data,elms; - var tagType,tagIndex; - - if (lvl>=0)lvl++; - else lvl=0; - - if(lvl==0) { - if((t+'').substr(0,6)!='') return t; - tag=IOElement.ws_getSODATag(t,'soda'); - t=tag.content; - } - - tag=this.ws_getSODATag(t); - tagType=tag.name.substr(0,1); - tagIndex=tag.name.substr(1); - if(tagType=='i') data=parseInt(tag.content); - else if(tagType=='f') data=parseFloat(tag.content); - else if(tagType=='b') data=(tag.content=='true')?true:false; - else if(tagType=='s') data=IOElement.ws_SODAStringDecode(tag.content+''); - else if(tagType=='d') data= new Date(tag.content); - else if(tagType=='a') { - data=[]; - if(tag.content){ - elms=tag.content.split(''); - for (i=0;i=0) key=key.replace(/\&s\;/g,'|'); - data[key]=values[i]; - } - }else if(tagType=='u') data=null; - return data; -}; -IOElement.ws_SODAStringEncode=function (text){ - if (!text) return ''; - // encode string for use with html/javascript - if(this._strEncFormat=='html'){ - text=text.replace(/\\/g,"\\\\"); // \ -> \\ - text=text.replace(/\'/g,"\\'"); // ' -> \' " - text=text.replace(/\n/g,"\\n"); - text=text.replace(/\r/g,"\\r"); - } - // encode string for use with xml/html - text=text.replace(/\&/g,"&"); - text=text.replace(//g,">"); - return text; -}; -IOElement.ws_SODAStringDecode=function (text){ - if (!text) return ''; - text=text.replace(/\&\;/g,"&"); - text=text.replace(/\<\;/g,"<"); - text=text.replace(/\>\;/g,">"); - return text; -}; -IOElement.ws_setStringEncFormat = function(t){ - this._strEncFormat=(t=='xml')? 'xml':'html'; -}; -IOElement.ws_getSODATag=function(t,n){ - var st,et,tag,con; - if(!t) return {}; - n=(n)?n:''; - st=t.indexOf('<'+n); - et=t.indexOf('>',st); - if(st || et) { - tag=t.substr(st+1,(et-1)-st); - st=et+1; - et=t.indexOf(''); - con=t.substr(st,et-st); - - } - return {name:tag,content:con}; -}; -IOElement.ws_SODAParser=function(envelope){ - var r={ - error:IOElement.ws_SODAStringDecode(IOElement.ws_getSODATag(envelope,'err').content), - methodName:IOElement.ws_SODAStringDecode(IOElement.ws_getSODATag(envelope,'method').content), - value:IOElement.ws_SODA2Var(IOElement.ws_getSODATag(envelope,'body').content) - }; - if(r.error) { - var ea=r.error.split('|'); - r.error={code:ea[0],text:ea[1]}; - }else if((envelope+'').indexOf('')!=0){ - r.error={code:'E3',text:IOElement.wsError+':\n\n'+envelope}; - }; - return r; -}; diff --git a/superx/xml/dynapi/util/ioelement.sync.js b/superx/xml/dynapi/util/ioelement.sync.js deleted file mode 100644 index 726b6c1..0000000 --- a/superx/xml/dynapi/util/ioelement.sync.js +++ /dev/null @@ -1,153 +0,0 @@ -/* - DynAPI Distribution - IOElement SYNChronous add-on - - The DynAPI Distribution is distributed under the terms of the GNU LGPL license. - - requires: dynapi.util.IOElement -*/ - -IOElementSync={} -IOElement.SYNC=true; - -var p=IOElement.prototype; - -p.activateSyncMode = function(fn,useJava){ - this._SyncFn=fn; - this._useJava=useJava; - this._hasXMLHttp=(this._hasXMLHttp==null)? IOElement._hasXMLHttp():this._hasXMLHttp; - if (!this.isSync && this._created) { - window.setTimeout(this+'._initSync()',100); - } -}; -p._syncRequest = function(url,data,method){ - var dataBody; - var i,mode,rq,rt={value:''},nv=[]; - var id = this._getRandomID(); // create random load ID to ensure no caching - if(!this.isSync) return; - method=(method+'').toLowerCase(); - mod=(method=='post'||method=='get')? method:'get'; - url=IOElement.getAbsoluteUrl(url); - url += ((url.indexOf('?')==-1)? '?' : '&')+'IORequestID='+id+'&IOMethod='+mod; - for (i in data) { - nv[nv.length]=i+'='+((mod!='get')? data[i]:IOElement.URLEncode(data[i])); - }; - dataBody = nv.join('&'); - if(data && mod=='get') {url+='&'+dataBody;dataBody=null} - // get HTTP Request Object - if(!this._hReq) this._hReq=IOElement._getHttpReq(this._jApplet); - rq=this._hReq; rq.open(mod,url,false); - if (mod=='post') rq.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); - if(dynapi.ua.ns4) { - rq.send(dataBody); rt.value=rq.responseText; - }else { - eval('try {' - +' rq.send(dataBody); rt.value=rq.responseText;' - +'} catch(e) {}'); - } - if(rq.status!=200) rt.error={code:rq.status,text:'Connection Error : '+rq.statusText}; - return rt; -}; -p._initApplet = function(){ - var isJava,doc,scope=this.getScope(this._elmID+'Sync'); - doc=scope.document; - this._jApplet=doc.applets['loadApplet']; - isJava = !(navigator.javaEnabled() && this._jApplet); - if(isJava) alert('IOElement Error: Java Applet not loaded. Java is not enabled on this browser'); - else{ - this.isSync=true; - if (typeof(this._SyncFn)=='function') this._SyncFn(); - else eval(this._SyncFn); - } -}; -p._initSync = function(){ - var evl,ua=dynapi.ua; - if (this._hasXMLHttp && !this._useJava ) { - this.isSync=true; - if (typeof(this._SyncFn)=='function') this._SyncFn(); - else eval(this._SyncFn); - }else { - var t,url,doc; - var scope=this.getScope(this._elmID+'Sync'); - if(!scope) return; - url=dynapi.library.path+'util/'; - t=''; - doc=scope.document; - doc.open();doc.write(t);doc.close(); - window.setTimeout(this+'._initApplet()',1000); // Allow applet to initialize - } -}; -IOElement._getHttpReq = function(jApplet){ - var o,ua=dynapi.ua; - if (jApplet) o = new JavaHttpRequest(jApplet); - else if(IOElement._hasXMLHttp()){ - if (ua.ns) o = new XMLHttpRequest(); - else if (ua.ie) { - var t='try {o = new ActiveXObject("Microsoft.XMLHTTP");}' - +'catch(e){o = new ActiveXObject("MSXML2.XMLHTTP");}' - eval(t); - } - - } - return o; -}; -IOElement._hasXMLHttp = function(){ - var state,ua=dynapi.ua; - // ie for mac,ie4, ns4, ns6.1,x, does not support xmlhttprequest - // while ns 6.2.x (based on gecko 0.9.4) supports xmlhttprequest but - // it does not support sending string via send() - only gecko 0.9.7+ can send string - // netscape 6.x needs the Java-Plugin to support java applets :( - if(ua.ns && navigator.vendor=='Netscape6') state=false; - else if(ua.v>4 && (ua.ns||(ua.ie && ua.win32))) state=true; - return state; -}; - -// GetAbsoluteURL -IOElement.getAbsoluteUrl=function(url, docUrl) { // inspired by afroAPI urlToAbs() - if(url && url.indexOf('://')>0) return url; - docUrl=(docUrl)? docUrl.substring(0,docUrl.lastIndexOf('/')+1):dynapi.documentPath; - url=url.replace(/^(.\/)*/,''); - docUrl=docUrl.replace(/(\?.*)$/,'').replace(/(#.*)*$/,'').replace(/[^\/]*$/,''); - if (url.indexOf('/')==0) return docUrl.substring(0,docUrl.indexOf('/',docUrl.indexOf('//')+2))+url; - else while(url.indexOf('../')==0){ - url=url.replace(/^..\//,''); - docUrl=docUrl.replace(/([^\/]+[\/][^\/]*)$/,''); - }; - return docUrl+url; -}; - -// Java Base HttpRequest -JavaHttpRequest = function(jApplet){ - this.applet=jApplet; - this.url = ""; - this.responseText = ""; - this.status=200;this.statusText=""; -}; -var jhr = JavaHttpRequest.prototype; -jhr.setRequestHeader = function(){}; //dummy -jhr.open = function(method,url){ - this.url = url; - this.method = (method||'get'); -}; -jhr.send = function(data){ - var r,url=this.url; - if (url=="") return false; - - this.responseText = ""; - if (this.applet){ - this.status=200;this.statusText=""; - if(!url.indexOf('file:///') && url.indexOf('file://')) url='file:///'+url.substr(7); - r=this.applet.readURL(url, true, data||"", dynapi.documentPath); - if(r) { - r=new String(r); - r=r.replace(/\n$/,''); - if(r.indexOf('Error: ')==0) { - this.status='403'; - this.statusText=r.substr(7); - } - this.responseText=r; - } - return true; - } -}; - diff --git a/superx/xml/dynapi/util/poolmanager.js b/superx/xml/dynapi/util/poolmanager.js deleted file mode 100644 index c5d64fc..0000000 --- a/superx/xml/dynapi/util/poolmanager.js +++ /dev/null @@ -1,36 +0,0 @@ -/* - DynAPI Distribution - PoolManager Class by Raymond Irving (http://dyntools.shorturl.com) - - The DynAPI Distribution is distributed under the terms of the GNU LGPL license. - - Note: pObj (Parent Object) must implement _CreatePoolObject() and _ResetPoolObject() functions - -*/ - -function PoolManager(pObj){ - this._pool={}; - this._cnt=0; - this._pobj=pObj; -}; -var p = PoolManager.prototype; -p.getObject=function(){ - var o,ob; - // check pool for free object - for(o in this._pool) { - ob=this._pool[o]; - this._pool[o] = null; - delete this._pool[o]; - return ob; - } - // call parent object to create new object - if(this._pobj._CreatePoolObject){ - return this._pobj._CreatePoolObject(); - } -}; -p.storeObject=function(o){ - this._cnt++; - // reset object via _ResetPoolObject - o=this._pobj._ResetPoolObject(o); - this._pool['S'+this._cnt]=o; -}; diff --git a/superx/xml/dynapi/util/stringbuffer.js b/superx/xml/dynapi/util/stringbuffer.js deleted file mode 100644 index 18f41ea..0000000 --- a/superx/xml/dynapi/util/stringbuffer.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - DynAPI Distribution - StringBuffer Class - - The DynAPI Distribution is distributed under the terms of the GNU LGPL license. - -*/ - -function StringBuffer(){ - this.buffer=[]; -}; -var p = StringBuffer.prototype; -p.add=function(src){ - this.buffer[this.buffer.length]=src; -}; -p.flush=function(){ - this.buffer.length=0; -}; -p.getLength=function(){ - return this.buffer.join('').length; -}; -p.toString=function(delim){ - return this.buffer.join(delim||''); -}; - -// More features can be added such as indexOf(), charAt(), etc diff --git a/superx/xml/dynapi/util/url.java b/superx/xml/dynapi/util/url.java deleted file mode 100644 index d86bb19..0000000 --- a/superx/xml/dynapi/util/url.java +++ /dev/null @@ -1,39 +0,0 @@ -import java.applet.Applet; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.InputStreamReader; -import java.io.BufferedReader; -import java.net.URL; -import java.net.URLConnection; - -public class url extends Applet { - private static String auth_cookie = null; - private static StringBuffer c; - public String readURL( String urlStr, boolean cache, String data, String referer) { - c = new StringBuffer(8192); - try { - if ( cache == false ) urlStr.concat((urlStr.indexOf('?')==-1)?"&":"?").concat("stopCache=").concat(Long.toString(System.currentTimeMillis())); - URLConnection uc = new URL( urlStr ).openConnection(); - int len = data.length(); - if (len>0) uc.setDoInput( true ); - uc.setDoOutput( true ); - uc.setRequestProperty( "Referer", referer ); - if ( cache == false ) uc.setUseCaches( false ); - if (len>0) { - byte[] contentBytes = data.getBytes(); - uc.setRequestProperty( "Content-length", Integer.toString( len ) ); - uc.setRequestProperty( "Content-type", "application/x-www-form-urlencoded" ); - OutputStream os = uc.getOutputStream(); - os.write( contentBytes ); - os.flush(); - }; - InputStream is = uc.getInputStream(); - BufferedReader buffer = new BufferedReader(new InputStreamReader(is)); - String line; - while ((line = buffer.readLine())!=null) c.append(line+"\n"); - } catch ( Exception e ) { - c.append("Error: " + e); - }; - return c.toString(); - }; -}; \ No newline at end of file diff --git a/superx/xml/dynapi/version.xml b/superx/xml/dynapi/version.xml deleted file mode 100644 index c1e82e0..0000000 --- a/superx/xml/dynapi/version.xml +++ /dev/null @@ -1,5 +0,0 @@ - - 3 - 0 - 0 - diff --git a/superx/xml/js/memtext/sx_functions.js b/superx/xml/js/memtext/sx_functions.js index 47b1066..75451d7 100644 --- a/superx/xml/js/memtext/sx_functions.js +++ b/superx/xml/js/memtext/sx_functions.js @@ -2118,3 +2118,137 @@ function validiereNeueMaskennr(frm,platform) return true; } } + + +/* Funktionen für Javascript Baum, z.B. GANG Studiengang-Menü: */ +function srcUrl(url,targetElem) + { +this.url=url; +this.targetElem=targetElem; +} + +function treeNode(name,apnr,parent,level,nodeattrib,linkUrl,linkTarget,onClickHandler,isFolder) + { +this.name=name; +this.apnr=apnr; +this.parent=parent; +this.level=level; +this.nodeattrib=nodeattrib; +this.linkUrl=linkUrl; +this.linkTarget=linkTarget; +this.onClickHandler=onClickHandler; +this.isFolder=isFolder; + +} + +function renderTree(treeNodes,targetDiv) +{ +var zs=""; +var zeilenanzahl=treeNodes.length-1; + +//first establish isFolder: +for (var i=0;i <=zeilenanzahl;i++) +{ + if(treeNodeHasChildren(treeNodes,treeNodes[i].apnr)) + treeNodes[i].isFolder=true; +} +zs +="
    "; +for (var i=0;i <=zeilenanzahl;i++) +{ + var myNode=treeNodes[i]; + if(myNode.level==1) //ebene 1 + { + zs+=renderTreeNode(treeNodes,myNode); + } +} +zs+="
"; +document.getElementById(targetDiv).innerHTML=zs; +} +function renderTreeChildNodes(treeNodes,nodeId,spanElem) +{ +var childrenHTML=""; +var childUlId="childOf"+nodeId; +spanElem.classList.toggle("treeCaret-down"); + +if(document.getElementById(childUlId)) +{ + //Kind existiert bereits, wird nur unsichtbar: + document.getElementById(childUlId).classList.toggle("treeNested"); +} +else +{ +//Kind existiert noch nicht: +const childUL=document.createElement("ul"); +childUL.id=childUlId; +childUL.classList.add("treeChildUL"); +spanElem.parentElement.appendChild(childUL); + +var url="";//../../servlet/SuperXmlMaske?tid="+maskentid+"&getJSON_"+fname+"="+nodeId; //xxxxxx-xxxxxx@"; +var suburl=url //+"&"+fname+"="+nodeId; +var ret; + var children=getTreeChildNodes(treeNodes,nodeId); + if(children && children.length >0) + { + for(var j=0;j < children.length;j++) + { + var node=children[j]; + childrenHTML +=renderTreeNode(treeNodes,node); + } + } + childUL.innerHTML=childrenHTML; + + } + + +} + +function getTreeChildNodes(treeNodes,nodeId) +{ + var children=new Array(); + for(i=0;i"; + //hat Element kinder? + if(myNode.isFolder) + { + ret+=" "; + } + if(myNode.onClickHandler !="" && !myNode.isFolder) + { + ret+=""; + + } + else if(myNode.linkUrl!="") + { + ret+=""; + } + ret+= myNode.name; + if(myNode.linkUrl!="") + { + ret+=""; + } + ret+=""; + return ret; +} +function treeNodeHasChildren(treeNodes,nodeId) +{ + var hasChildren=false; + for(i=0;i