From fd45f7a5b787d98c33109811f2898c63357bcbc3 Mon Sep 17 00:00:00 2001 From: JORGE LUIS CAUDILLO ESPARZA Date: Thu, 25 Feb 2021 20:33:44 -0700 Subject: [PATCH] --- AF/CatTiposServiciosMateriales.aspx.cs | 4 +- App_Code/ClsContabilidad.vb | 8 +- App_Code/ClsNominas.vb | 22 + App_Code/ClsPaginas.vb | 3 +- App_Code/Empresa.vb | 2 +- Bancos/PopIE.aspx.vb | 40 + Bancos/RepComprobaciones.aspx.cs | 2 +- Bancos/RepProgramarRecursos.aspx.vb | 2 +- Compras/CatTipoGasto.aspx.cs | 2 +- Compras/RepPagado.aspx.cs | 2 +- Compras/RepPagadoPeriodo.aspx.cs | 2 +- Contabilidad2/CatCuentasAsignaciones.aspx | 6 +- Contabilidad2/CatCuentasAsignaciones.aspx.vb | 10 +- .../RepAnexoCatalogoMensualHorizontal.aspx.vb | 24 +- .../RepAnexoCatalogoVertical.aspx.vb | 2 +- Contratos/ContratosSecciones.aspx | 6 +- Contratos/ContratosSecciones.aspx.vb | 922 ++-- GPS/CatDistribuidoresMaster.aspx.vb | 2 +- Inventarios/RecepcionAlmacen.aspx.vb | 8 +- Inventarios/RepApartados.aspx.vb | 2 +- Nomina/ConceptoNominaB.aspx.cs | 40 +- Planeacion/Sucursal.aspx.vb | 172 +- PortalGPS/WsADGPS.asmx | 1 - Prospeccion/Prospectos.aspx | 6 +- Prospeccion/Prospectos.aspx.vb | 488 +- Prospeccion/RepProspectosGIS.aspx | 4 +- Prospeccion/RepProspectosGIS.aspx.vb | 516 +- PyME/Sistemas/WizardRegistro.aspx.vb | 2 +- RH/CalculoSBC.aspx | 504 ++ RH/CalculoSBC.aspx.cs | 93 + RH/RepCumpleaneros.aspx | 2 +- RH/RepCumpleaneros.aspx.vb | 4 + Ventas/RepConciliacionEmitidosSat.aspx.cs | 5 +- .../css/default.css | 374 -- .../html/calendar.html | 21 - .../html/calendarbottom.html | 3 - .../html/calendartop.html | 3 - .../html/crystalexportdialog.htm | 77 - .../html/crystalprinthost.html | 86 - .../images/toolbar/First.gif | Bin 78 -> 0 bytes .../images/toolbar/Firstd.gif | Bin 78 -> 0 bytes .../images/toolbar/Last.gif | Bin 79 -> 0 bytes .../images/toolbar/Lastd.gif | Bin 79 -> 0 bytes .../images/toolbar/Next.gif | Bin 73 -> 0 bytes .../images/toolbar/Nextd.gif | Bin 73 -> 0 bytes .../images/toolbar/Prev.gif | Bin 73 -> 0 bytes .../images/toolbar/Prevd.gif | Bin 73 -> 0 bytes .../images/toolbar/Refresh.gif | Bin 134 -> 0 bytes .../images/toolbar/Search.gif | Bin 199 -> 0 bytes .../images/toolbar/calendar.gif | Bin 84 -> 0 bytes .../images/toolbar/crlogo.gif | Bin 1787 -> 0 bytes .../images/toolbar/export.gif | Bin 617 -> 0 bytes .../images/toolbar/export_over.gif | Bin 1244 -> 0 bytes .../images/toolbar/exportd.gif | Bin 283 -> 0 bytes .../images/toolbar/first_over.gif | Bin 1251 -> 0 bytes .../images/toolbar/gotopage.gif | Bin 595 -> 0 bytes .../images/toolbar/gotopage_over.gif | Bin 1226 -> 0 bytes .../images/toolbar/gotopaged.gif | Bin 176 -> 0 bytes .../images/toolbar/grouptree.gif | Bin 257 -> 0 bytes .../images/toolbar/grouptree_over.gif | Bin 1215 -> 0 bytes .../images/toolbar/grouptreed.gif | Bin 230 -> 0 bytes .../images/toolbar/grouptreepressed.gif | Bin 179 -> 0 bytes .../images/toolbar/last_over.gif | Bin 1251 -> 0 bytes .../images/toolbar/next_over.gif | Bin 1252 -> 0 bytes .../images/toolbar/prev_over.gif | Bin 1250 -> 0 bytes .../images/toolbar/print.gif | Bin 375 -> 0 bytes .../images/toolbar/print_over.gif | Bin 1219 -> 0 bytes .../images/toolbar/printd.gif | Bin 273 -> 0 bytes .../images/toolbar/refresh_over.gif | Bin 1236 -> 0 bytes .../images/toolbar/refreshd.gif | Bin 134 -> 0 bytes .../images/toolbar/search_over.gif | Bin 1205 -> 0 bytes .../images/toolbar/searchd.gif | Bin 274 -> 0 bytes .../images/toolbar/up.gif | Bin 122 -> 0 bytes .../images/toolbar/up_over.gif | Bin 1244 -> 0 bytes .../images/toolbar/upd.gif | Bin 898 -> 0 bytes .../images/tree/Magnify.gif | Bin 96 -> 0 bytes .../images/tree/begindots.gif | Bin 74 -> 0 bytes .../images/tree/beginminus.gif | Bin 91 -> 0 bytes .../images/tree/beginplus.gif | Bin 96 -> 0 bytes .../images/tree/blank.gif | Bin 57 -> 0 bytes .../images/tree/blankdots.gif | Bin 73 -> 0 bytes .../images/tree/dots.gif | Bin 75 -> 0 bytes .../images/tree/lastdots.gif | Bin 70 -> 0 bytes .../images/tree/lastminus.gif | Bin 93 -> 0 bytes .../images/tree/lastplus.gif | Bin 97 -> 0 bytes .../images/tree/minus.gif | Bin 95 -> 0 bytes .../images/tree/minusbox.gif | Bin 86 -> 0 bytes .../images/tree/plus.gif | Bin 98 -> 0 bytes .../images/tree/plusbox.gif | Bin 90 -> 0 bytes .../images/tree/singleminus.gif | Bin 89 -> 0 bytes .../images/tree/singleplus.gif | Bin 93 -> 0 bytes .../js/KeyDownEvent.js | 45 - .../js/calendar_param.js | 702 --- .../js/dt_param.js | 345 -- .../CrystalReportWebFormViewer4/js/export.js | 177 - .../CrystalReportWebFormViewer4/js/print.js | 56 - .../js/prompts_param.js | 1104 ---- .../js/strings_chs.js | 77 - .../js/strings_cht.js | 77 - .../js/strings_de.js | 77 - .../js/strings_en.js | 77 - .../js/strings_es.js | 77 - .../js/strings_fr.js | 77 - .../js/strings_it.js | 77 - .../js/strings_ja.js | 77 - .../js/strings_ko.js | 77 - .../ActiveXControls/PrintControl.cab | Bin 2560587 -> 0 bytes .../ActiveXControls/PrintControl_res_cs.cab | Bin 29470 -> 0 bytes .../ActiveXControls/PrintControl_res_da.cab | Bin 29356 -> 0 bytes .../ActiveXControls/PrintControl_res_de.cab | Bin 29458 -> 0 bytes .../ActiveXControls/PrintControl_res_en.cab | Bin 29305 -> 0 bytes .../ActiveXControls/PrintControl_res_es.cab | Bin 29378 -> 0 bytes .../ActiveXControls/PrintControl_res_fi.cab | Bin 29411 -> 0 bytes .../ActiveXControls/PrintControl_res_fr.cab | Bin 29520 -> 0 bytes .../ActiveXControls/PrintControl_res_hu.cab | Bin 29412 -> 0 bytes .../ActiveXControls/PrintControl_res_it.cab | Bin 29372 -> 0 bytes .../ActiveXControls/PrintControl_res_ja.cab | Bin 29146 -> 0 bytes .../ActiveXControls/PrintControl_res_ko.cab | Bin 29120 -> 0 bytes .../ActiveXControls/PrintControl_res_nb.cab | Bin 29329 -> 0 bytes .../ActiveXControls/PrintControl_res_nl.cab | Bin 29437 -> 0 bytes .../ActiveXControls/PrintControl_res_pl.cab | Bin 29456 -> 0 bytes .../ActiveXControls/PrintControl_res_pt.cab | Bin 29380 -> 0 bytes .../ActiveXControls/PrintControl_res_ru.cab | Bin 29646 -> 0 bytes .../ActiveXControls/PrintControl_res_sk.cab | Bin 29486 -> 0 bytes .../ActiveXControls/PrintControl_res_sv.cab | Bin 29329 -> 0 bytes .../ActiveXControls/PrintControl_res_th.cab | Bin 29392 -> 0 bytes .../ActiveXControls/PrintControl_res_tr.cab | Bin 29352 -> 0 bytes .../PrintControl_res_zh_CN.cab | Bin 28972 -> 0 bytes .../PrintControl_res_zh_TW.cab | Bin 28993 -> 0 bytes .../crystalreportviewers13/allInOne.js | 12 - .../crystalreportviewers13/allStrings_cs.js | 359 -- .../crystalreportviewers13/allStrings_da.js | 359 -- .../crystalreportviewers13/allStrings_de.js | 359 -- .../crystalreportviewers13/allStrings_en.js | 359 -- .../crystalreportviewers13/allStrings_es.js | 359 -- .../crystalreportviewers13/allStrings_fi.js | 359 -- .../crystalreportviewers13/allStrings_fr.js | 359 -- .../crystalreportviewers13/allStrings_hu.js | 359 -- .../crystalreportviewers13/allStrings_it.js | 359 -- .../crystalreportviewers13/allStrings_ja.js | 359 -- .../crystalreportviewers13/allStrings_ko.js | 359 -- .../crystalreportviewers13/allStrings_nb.js | 359 -- .../crystalreportviewers13/allStrings_nl.js | 359 -- .../crystalreportviewers13/allStrings_pl.js | 359 -- .../crystalreportviewers13/allStrings_pt.js | 359 -- .../crystalreportviewers13/allStrings_ru.js | 359 -- .../crystalreportviewers13/allStrings_sk.js | 359 -- .../crystalreportviewers13/allStrings_sv.js | 359 -- .../crystalreportviewers13/allStrings_th.js | 359 -- .../crystalreportviewers13/allStrings_tr.js | 359 -- .../allStrings_zh_CN.js | 359 -- .../allStrings_zh_TW.js | 359 -- .../crystalreportviewers13/css/cedefault.css | 96 - .../crystalreportviewers13/css/default.css | 652 --- .../crystalreportviewers13/css/exception.css | 26 - .../crystalreportviewers13/css/prompting.css | 103 - .../crystalreportviewers13/html/calendar.html | 21 - .../html/calendarbottom.html | 10 - .../html/calendartop.html | 10 - .../crystalreportviewers13/images/buttonl.gif | Bin 351 -> 0 bytes .../crystalreportviewers13/images/buttonm.gif | Bin 168 -> 0 bytes .../crystalreportviewers13/images/buttonr.gif | Bin 350 -> 0 bytes .../images/isort/DownArrowSortActive100.gif | Bin 977 -> 0 bytes .../images/isort/DownArrowSortActive150.gif | Bin 1159 -> 0 bytes .../images/isort/DownArrowSortActive200.gif | Bin 849 -> 0 bytes .../images/isort/DownArrowSortActive250.gif | Bin 995 -> 0 bytes .../images/isort/DownArrowSortActive300.gif | Bin 1623 -> 0 bytes .../images/isort/DownArrowSortActive350.gif | Bin 1734 -> 0 bytes .../images/isort/DownArrowSortActive400.gif | Bin 1993 -> 0 bytes .../images/isort/DownArrowSortActive50.gif | Bin 271 -> 0 bytes .../images/isort/DownArrowSortHover100.gif | Bin 971 -> 0 bytes .../images/isort/DownArrowSortHover150.gif | Bin 1121 -> 0 bytes .../images/isort/DownArrowSortHover200.gif | Bin 780 -> 0 bytes .../images/isort/DownArrowSortHover250.gif | Bin 880 -> 0 bytes .../images/isort/DownArrowSortHover300.gif | Bin 1054 -> 0 bytes .../images/isort/DownArrowSortHover350.gif | Bin 1227 -> 0 bytes .../images/isort/DownArrowSortHover400.gif | Bin 1370 -> 0 bytes .../images/isort/DownArrowSortHover50.gif | Bin 271 -> 0 bytes .../images/isort/DownArrowSortInactive100.gif | Bin 973 -> 0 bytes .../images/isort/DownArrowSortInactive150.gif | Bin 1161 -> 0 bytes .../images/isort/DownArrowSortInactive200.gif | Bin 829 -> 0 bytes .../images/isort/DownArrowSortInactive250.gif | Bin 1017 -> 0 bytes .../images/isort/DownArrowSortInactive300.gif | Bin 1207 -> 0 bytes .../images/isort/DownArrowSortInactive400.gif | Bin 1598 -> 0 bytes .../images/isort/DownArrowSortInactive50.gif | Bin 271 -> 0 bytes .../images/isort/UpArrowSortActive100.gif | Bin 583 -> 0 bytes .../images/isort/UpArrowSortActive150.gif | Bin 1143 -> 0 bytes .../images/isort/UpArrowSortActive200.gif | Bin 845 -> 0 bytes .../images/isort/UpArrowSortActive250.gif | Bin 971 -> 0 bytes .../images/isort/UpArrowSortActive300.gif | Bin 1575 -> 0 bytes .../images/isort/UpArrowSortActive350.gif | Bin 1777 -> 0 bytes .../images/isort/UpArrowSortActive400.gif | Bin 1477 -> 0 bytes .../images/isort/UpArrowSortActive50.gif | Bin 290 -> 0 bytes .../images/isort/UpArrowSortHover100.gif | Bin 584 -> 0 bytes .../images/isort/UpArrowSortHover150.gif | Bin 1118 -> 0 bytes .../images/isort/UpArrowSortHover200.gif | Bin 780 -> 0 bytes .../images/isort/UpArrowSortHover250.gif | Bin 868 -> 0 bytes .../images/isort/UpArrowSortHover300.gif | Bin 991 -> 0 bytes .../images/isort/UpArrowSortHover350.gif | Bin 1195 -> 0 bytes .../images/isort/UpArrowSortHover400.gif | Bin 1317 -> 0 bytes .../images/isort/UpArrowSortHover50.gif | Bin 290 -> 0 bytes .../images/isort/UpArrowSortInactive100.gif | Bin 584 -> 0 bytes .../images/isort/UpArrowSortInactive150.gif | Bin 1155 -> 0 bytes .../images/isort/UpArrowSortInactive200.gif | Bin 851 -> 0 bytes .../images/isort/UpArrowSortInactive250.gif | Bin 1004 -> 0 bytes .../images/isort/UpArrowSortInactive300.gif | Bin 1161 -> 0 bytes .../images/isort/UpArrowSortInactive400.gif | Bin 1518 -> 0 bytes .../images/isort/UpArrowSortInactive50.gif | Bin 290 -> 0 bytes .../js/FlexParameterBridge.js | 336 -- .../crystalreportviewers13/js/KeyDownEvent.js | 44 - .../js/MochiKit/3rdParty.txt | 66 - .../js/MochiKit/Async.js | 602 -- .../js/MochiKit/Base.js | 1259 ----- .../js/MochiKit/Color.js | 845 --- .../js/MochiKit/Controls.js | 1284 ----- .../crystalreportviewers13/js/MochiKit/DOM.js | 926 ---- .../js/MochiKit/DateTime.js | 208 - .../js/MochiKit/DragAndDrop.js | 774 --- .../js/MochiKit/Format.js | 294 - .../js/MochiKit/Iter.js | 807 --- .../js/MochiKit/License.js | 9 - .../js/MochiKit/Logging.js | 299 - .../js/MochiKit/LoggingPane.js | 356 -- .../js/MochiKit/MochiKit.js | 149 - .../js/MochiKit/MockDOM.js | 88 - .../crystalreportviewers13/js/MochiKit/New.js | 365 -- .../js/MochiKit/Signal.js | 712 --- .../js/MochiKit/Sortable.js | 531 -- .../js/MochiKit/Style.js | 374 -- .../js/MochiKit/Test.js | 181 - .../js/MochiKit/Visual.js | 1735 ------ .../js/MochiKit/__package__.js | 19 - .../crystalreportviewers13/js/calendar.js | 695 --- .../js/calendar_param.js | 704 --- .../js/crviewer/ArgumentNormalizer.js | 126 - .../js/crviewer/ButtonList.js | 244 - .../js/crviewer/Calendar.js | 539 -- .../js/crviewer/Colors.js | 8 - .../js/crviewer/Dialogs.js | 933 ---- .../js/crviewer/GroupTree.js | 270 - .../js/crviewer/GroupTreeListener.js | 165 - .../js/crviewer/GroupTreeNode.js | 203 - .../js/crviewer/IOAdapters.js | 599 -- .../js/crviewer/ImageSprites.js | 37 - .../js/crviewer/LeftPanel.js | 289 - .../js/crviewer/OptionalParameterUI.js | 35 - .../js/crviewer/OptionalParameterValueRow.js | 143 - .../js/crviewer/PanelHeader.js | 99 - .../js/crviewer/PanelNavigator.js | 124 - .../js/crviewer/PanelNavigatorItem.js | 105 - .../js/crviewer/Parameter.js | 511 -- .../js/crviewer/ParameterController.js | 1203 ---- .../js/crviewer/ParameterDialog.js | 170 - .../js/crviewer/ParameterInfoRow.js | 88 - .../js/crviewer/ParameterPanel.js | 277 - .../js/crviewer/ParameterPanelToolbar.js | 104 - .../js/crviewer/ParameterUI.js | 404 -- .../js/crviewer/ParameterValueRow.js | 505 -- .../js/crviewer/PromptPage.js | 295 - .../js/crviewer/RangeField.js | 215 - .../js/crviewer/ReportAlbum.js | 335 -- .../js/crviewer/ReportPage.js | 280 - .../js/crviewer/ReportView.js | 156 - .../js/crviewer/Separator.js | 71 - .../js/crviewer/SharedWidgetHolder.js | 183 - .../js/crviewer/SignalDisposer.js | 38 - .../js/crviewer/StackedPanel.js | 160 - .../js/crviewer/StackedTab.js | 230 - .../js/crviewer/StateManager.js | 86 - .../js/crviewer/Statusbar.js | 257 - .../js/crviewer/TextCombo.js | 377 -- .../js/crviewer/TextField.js | 151 - .../js/crviewer/ToolPanel.js | 295 - .../js/crviewer/Toolbar.js | 1213 ----- .../js/crviewer/Viewer.js | 862 --- .../js/crviewer/ViewerFlexParameterAdapter.js | 547 -- .../js/crviewer/ViewerListener.js | 1110 ---- .../js/crviewer/WarningPopup.js | 65 - .../crystalreportviewers13/js/crviewer/api.js | 84 - .../js/crviewer/bobjcallback.js | 34 - .../js/crviewer/common.js | 776 --- .../crystalreportviewers13/js/crviewer/crv.js | 536 -- .../crystalreportviewers13/js/crviewer/dom.js | 6 - .../js/crviewer/encoding.js | 72 - .../js/crviewer/event.js | 136 - .../js/crviewer/html.js | 219 - .../js/crviewer/images/StackedTab.gif | Bin 78 -> 0 bytes .../crviewer/images/WarningPopupTriangle.gif | Bin 594 -> 0 bytes .../js/crviewer/images/allInOne.gif | Bin 4068 -> 0 bytes .../js/crviewer/images/allInOneBG.gif | Bin 739 -> 0 bytes .../images/arrow_button_depressed.gif | Bin 198 -> 0 bytes .../js/crviewer/images/arrow_button_hover.gif | Bin 314 -> 0 bytes .../js/crviewer/images/breadcrumbSep.gif | Bin 1270 -> 0 bytes .../js/crviewer/images/calendar.gif | Bin 120 -> 0 bytes .../js/crviewer/images/catalyst.gif | Bin 1016 -> 0 bytes .../js/crviewer/images/clearValues.gif | Bin 497 -> 0 bytes .../js/crviewer/images/clear_x.gif | Bin 80 -> 0 bytes .../js/crviewer/images/closePanel.gif | Bin 54 -> 0 bytes .../js/crviewer/images/delete.gif | Bin 231 -> 0 bytes .../js/crviewer/images/drill_cursor.cur | Bin 3262 -> 0 bytes .../js/crviewer/images/export.gif | Bin 1043 -> 0 bytes .../js/crviewer/images/filledCircle.gif | Bin 271 -> 0 bytes .../js/crviewer/images/first.gif | Bin 122 -> 0 bytes .../js/crviewer/images/grouptree_toggle.gif | Bin 370 -> 0 bytes .../js/crviewer/images/hollowCircle.gif | Bin 269 -> 0 bytes .../js/crviewer/images/last.gif | Bin 122 -> 0 bytes .../js/crviewer/images/leftTriangle.gif | Bin 260 -> 0 bytes .../js/crviewer/images/line.gif | Bin 59 -> 0 bytes .../js/crviewer/images/logo.gif | Bin 592 -> 0 bytes .../js/crviewer/images/magnify.gif | Bin 115 -> 0 bytes .../js/crviewer/images/min.gif | Bin 896 -> 0 bytes .../js/crviewer/images/next.gif | Bin 103 -> 0 bytes .../crviewer/images/open_parameter_arrow.gif | Bin 73 -> 0 bytes .../js/crviewer/images/panelHeaderBG.gif | Bin 816 -> 0 bytes .../crviewer/images/panelNavigatorItemHL.gif | Bin 867 -> 0 bytes .../images/panelNavigatorItemSelectedBG.gif | Bin 865 -> 0 bytes .../js/crviewer/images/panel_toggle.gif | Bin 713 -> 0 bytes .../js/crviewer/images/param_datafetching.gif | Bin 372 -> 0 bytes .../js/crviewer/images/param_dirty.gif | Bin 851 -> 0 bytes .../js/crviewer/images/param_info.gif | Bin 352 -> 0 bytes .../js/crviewer/images/param_run.gif | Bin 221 -> 0 bytes .../js/crviewer/images/param_warning.gif | Bin 572 -> 0 bytes .../js/crviewer/images/plus.gif | Bin 897 -> 0 bytes .../js/crviewer/images/prev.gif | Bin 103 -> 0 bytes .../js/crviewer/images/print.gif | Bin 1211 -> 0 bytes .../js/crviewer/images/refresh.gif | Bin 1053 -> 0 bytes .../js/crviewer/images/rightTriangle.gif | Bin 260 -> 0 bytes .../js/crviewer/images/search.gif | Bin 345 -> 0 bytes .../js/crviewer/images/separator.gif | Bin 54 -> 0 bytes .../js/crviewer/images/style.css | 579 -- .../js/crviewer/images/toolbar_background.gif | Bin 853 -> 0 bytes .../images/toolbar_button_depressed.gif | Bin 947 -> 0 bytes .../crviewer/images/toolbar_button_hover.gif | Bin 994 -> 0 bytes .../images/toolbar_buttongroup_background.gif | Bin 845 -> 0 bytes .../images/toolbar_buttongroup_left.gif | Bin 838 -> 0 bytes .../images/toolbar_buttongroup_right.gif | Bin 829 -> 0 bytes .../images/toolbar_menuarrow_depressed.gif | Bin 953 -> 0 bytes .../images/toolbar_menuarrow_hover.gif | Bin 986 -> 0 bytes .../images/toolbar_pagenav_buttons.gif | Bin 1451 -> 0 bytes .../images/toolbar_separator_icon.gif | Bin 816 -> 0 bytes .../js/crviewer/images/undo.gif | Bin 363 -> 0 bytes .../js/crviewer/images/up.gif | Bin 212 -> 0 bytes .../js/crviewer/initDhtmlLib.js | 10 - .../js/crviewer/strings_cs.js | 133 - .../js/crviewer/strings_da.js | 133 - .../js/crviewer/strings_de.js | 133 - .../js/crviewer/strings_en.js | 133 - .../js/crviewer/strings_es.js | 133 - .../js/crviewer/strings_fi.js | 133 - .../js/crviewer/strings_fr.js | 133 - .../js/crviewer/strings_hu.js | 133 - .../js/crviewer/strings_it.js | 133 - .../js/crviewer/strings_ja.js | 133 - .../js/crviewer/strings_ko.js | 133 - .../js/crviewer/strings_nb.js | 133 - .../js/crviewer/strings_nl.js | 133 - .../js/crviewer/strings_pl.js | 133 - .../js/crviewer/strings_pt.js | 133 - .../js/crviewer/strings_ru.js | 133 - .../js/crviewer/strings_sk.js | 133 - .../js/crviewer/strings_sv.js | 133 - .../js/crviewer/strings_th.js | 133 - .../js/crviewer/strings_tr.js | 133 - .../js/crviewer/strings_zh_CN.js | 133 - .../js/crviewer/strings_zh_TW.js | 133 - .../js/crviewerinclude.js | 261 - .../js/dhtmllib/bolist.js | 2761 ---------- .../js/dhtmllib/calendar.js | 935 ---- .../js/dhtmllib/dialog.js | 985 ---- .../crystalreportviewers13/js/dhtmllib/dom.js | 4830 ----------------- .../js/dhtmllib/empty.html | 10 - .../js/dhtmllib/images/borders.gif | Bin 1869 -> 0 bytes .../js/dhtmllib/images/help.gif | Bin 993 -> 0 bytes .../js/dhtmllib/images/loading.gif | Bin 2673 -> 0 bytes .../js/dhtmllib/images/lov.gif | Bin 1324 -> 0 bytes .../js/dhtmllib/images/min.gif | Bin 896 -> 0 bytes .../js/dhtmllib/images/plus.gif | Bin 897 -> 0 bytes .../js/dhtmllib/images/print.css | 73 - .../js/dhtmllib/images/print_fe.css | 73 - .../js/dhtmllib/images/prompt.gif | Bin 1066 -> 0 bytes .../js/dhtmllib/images/resizepattern.gif | Bin 815 -> 0 bytes .../images/skin_coloredline/bolist.gif | Bin 1104 -> 0 bytes .../images/skin_coloredline/button.gif | Bin 905 -> 0 bytes .../images/skin_coloredline/buttonIcons.gif | Bin 1330 -> 0 bytes .../images/skin_coloredline/critical_icon.gif | Bin 862 -> 0 bytes .../skin_coloredline/dialogelements.gif | Bin 1138 -> 0 bytes .../images/skin_coloredline/dialogframe.gif | Bin 840 -> 0 bytes .../skin_coloredline/dialogframeleftright.gif | Bin 828 -> 0 bytes .../skin_coloredline/dialogframetopbottom.gif | Bin 822 -> 0 bytes .../images/skin_coloredline/dialogtitle.gif | Bin 85 -> 0 bytes .../dhtmllib/images/skin_coloredline/down.gif | Bin 110 -> 0 bytes .../images/skin_coloredline/iconsep.gif | Bin 844 -> 0 bytes .../skin_coloredline/information_icon.gif | Bin 900 -> 0 bytes .../dhtmllib/images/skin_coloredline/left.gif | Bin 110 -> 0 bytes .../images/skin_coloredline/menus.gif | Bin 1190 -> 0 bytes .../dhtmllib/images/skin_coloredline/node.gif | Bin 111 -> 0 bytes .../images/skin_coloredline/progress.gif | Bin 962 -> 0 bytes .../images/skin_coloredline/resize.gif | Bin 860 -> 0 bytes .../images/skin_coloredline/right.gif | Bin 109 -> 0 bytes .../images/skin_coloredline/scroll_icon.gif | Bin 173 -> 0 bytes .../dhtmllib/images/skin_coloredline/sep.gif | Bin 800 -> 0 bytes .../images/skin_coloredline/sep_solid.gif | Bin 804 -> 0 bytes .../images/skin_coloredline/style.css | 838 --- .../dhtmllib/images/skin_coloredline/style.js | 8 - .../images/skin_coloredline/style_fe.css | 823 --- .../dhtmllib/images/skin_coloredline/tabs.gif | Bin 1290 -> 0 bytes .../dhtmllib/images/skin_coloredline/up.gif | Bin 111 -> 0 bytes .../images/skin_coloredline/wait01.gif | Bin 36063 -> 0 bytes .../images/skin_coloredline/wait02.gif | Bin 1089 -> 0 bytes .../images/skin_coloredline/warning_icon.gif | Bin 1507 -> 0 bytes .../dhtmllib/images/skin_corporate/bolist.gif | Bin 1130 -> 0 bytes .../dhtmllib/images/skin_corporate/button.gif | Bin 905 -> 0 bytes .../images/skin_corporate/buttonIcons.gif | Bin 1330 -> 0 bytes .../images/skin_corporate/critical_icon.gif | Bin 862 -> 0 bytes .../images/skin_corporate/dialogelements.gif | Bin 1138 -> 0 bytes .../images/skin_corporate/dialogframe.gif | Bin 840 -> 0 bytes .../skin_corporate/dialogframeleftright.gif | Bin 828 -> 0 bytes .../skin_corporate/dialogframetopbottom.gif | Bin 822 -> 0 bytes .../images/skin_corporate/dialogtitle.gif | Bin 85 -> 0 bytes .../dhtmllib/images/skin_corporate/down.gif | Bin 111 -> 0 bytes .../images/skin_corporate/iconsep.gif | Bin 844 -> 0 bytes .../skin_corporate/information_icon.gif | Bin 900 -> 0 bytes .../dhtmllib/images/skin_corporate/left.gif | Bin 111 -> 0 bytes .../dhtmllib/images/skin_corporate/menus.gif | Bin 1190 -> 0 bytes .../dhtmllib/images/skin_corporate/node.gif | Bin 111 -> 0 bytes .../images/skin_corporate/progress.gif | Bin 962 -> 0 bytes .../dhtmllib/images/skin_corporate/resize.gif | Bin 860 -> 0 bytes .../dhtmllib/images/skin_corporate/right.gif | Bin 109 -> 0 bytes .../images/skin_corporate/scroll_icon.gif | Bin 173 -> 0 bytes .../js/dhtmllib/images/skin_corporate/sep.gif | Bin 800 -> 0 bytes .../images/skin_corporate/sep_solid.gif | Bin 804 -> 0 bytes .../dhtmllib/images/skin_corporate/style.css | 837 --- .../dhtmllib/images/skin_corporate/style.js | 8 - .../images/skin_corporate/style_fe.css | 824 --- .../dhtmllib/images/skin_corporate/tabs.gif | Bin 1290 -> 0 bytes .../js/dhtmllib/images/skin_corporate/up.gif | Bin 112 -> 0 bytes .../dhtmllib/images/skin_corporate/wait01.gif | Bin 36063 -> 0 bytes .../dhtmllib/images/skin_corporate/wait02.gif | Bin 1089 -> 0 bytes .../images/skin_corporate/warning_icon.gif | Bin 1507 -> 0 bytes .../dhtmllib/images/skin_default/bolist.gif | Bin 1130 -> 0 bytes .../dhtmllib/images/skin_default/button.gif | Bin 905 -> 0 bytes .../images/skin_default/buttonIcons.gif | Bin 1330 -> 0 bytes .../images/skin_default/critical_icon.gif | Bin 862 -> 0 bytes .../images/skin_default/dialogelements.gif | Bin 1138 -> 0 bytes .../images/skin_default/dialogframe.gif | Bin 862 -> 0 bytes .../skin_default/dialogframeleftright.gif | Bin 853 -> 0 bytes .../skin_default/dialogframetopbottom.gif | Bin 834 -> 0 bytes .../images/skin_default/dialogtitle.gif | Bin 85 -> 0 bytes .../js/dhtmllib/images/skin_default/down.gif | Bin 121 -> 0 bytes .../dhtmllib/images/skin_default/iconsep.gif | Bin 844 -> 0 bytes .../images/skin_default/information_icon.gif | Bin 900 -> 0 bytes .../js/dhtmllib/images/skin_default/left.gif | Bin 123 -> 0 bytes .../js/dhtmllib/images/skin_default/menus.gif | Bin 1190 -> 0 bytes .../js/dhtmllib/images/skin_default/node.gif | Bin 114 -> 0 bytes .../dhtmllib/images/skin_default/progress.gif | Bin 962 -> 0 bytes .../dhtmllib/images/skin_default/resize.gif | Bin 860 -> 0 bytes .../js/dhtmllib/images/skin_default/right.gif | Bin 124 -> 0 bytes .../images/skin_default/scroll_icon.gif | Bin 173 -> 0 bytes .../js/dhtmllib/images/skin_default/sep.gif | Bin 78 -> 0 bytes .../images/skin_default/sep_solid.gif | Bin 80 -> 0 bytes .../js/dhtmllib/images/skin_default/style.css | 908 ---- .../js/dhtmllib/images/skin_default/style.js | 8 - .../dhtmllib/images/skin_default/style_fe.css | 891 --- .../js/dhtmllib/images/skin_default/tabs.gif | Bin 1292 -> 0 bytes .../js/dhtmllib/images/skin_default/up.gif | Bin 124 -> 0 bytes .../dhtmllib/images/skin_default/wait01.gif | Bin 36063 -> 0 bytes .../dhtmllib/images/skin_default/wait02.gif | Bin 1089 -> 0 bytes .../images/skin_default/warning_icon.gif | Bin 1507 -> 0 bytes .../images/skin_standard/background_field.gif | Bin 813 -> 0 bytes .../skin_standard/background_menusel.gif | Bin 820 -> 0 bytes .../dhtmllib/images/skin_standard/bolist.gif | Bin 1425 -> 0 bytes .../dhtmllib/images/skin_standard/button.gif | Bin 1344 -> 0 bytes .../images/skin_standard/buttonIcons.gif | Bin 1419 -> 0 bytes .../images/skin_standard/critical_icon.gif | Bin 1438 -> 0 bytes .../images/skin_standard/critical_icon.png | Bin 1830 -> 0 bytes .../images/skin_standard/dialogelements.gif | Bin 171 -> 0 bytes .../images/skin_standard/dialogframe.gif | Bin 874 -> 0 bytes .../skin_standard/dialogframeleftright.gif | Bin 853 -> 0 bytes .../skin_standard/dialogframetopbottom.gif | Bin 834 -> 0 bytes .../images/skin_standard/dialogtitle.gif | Bin 2512 -> 0 bytes .../js/dhtmllib/images/skin_standard/down.gif | Bin 121 -> 0 bytes .../dhtmllib/images/skin_standard/hgrab.gif | Bin 1075 -> 0 bytes .../images/skin_standard/horiz_tabs.gif | Bin 4839 -> 0 bytes .../dhtmllib/images/skin_standard/iconsep.gif | Bin 843 -> 0 bytes .../images/skin_standard/information_icon.gif | Bin 900 -> 0 bytes .../js/dhtmllib/images/skin_standard/left.gif | Bin 123 -> 0 bytes .../images/skin_standard/menuitem_check.gif | Bin 937 -> 0 bytes .../dhtmllib/images/skin_standard/menus.gif | Bin 1190 -> 0 bytes .../js/dhtmllib/images/skin_standard/node.gif | Bin 114 -> 0 bytes .../images/skin_standard/panemenu.gif | Bin 862 -> 0 bytes .../images/skin_standard/panetitle.gif | Bin 818 -> 0 bytes .../images/skin_standard/progress.gif | Bin 962 -> 0 bytes .../dhtmllib/images/skin_standard/resize.gif | Bin 857 -> 0 bytes .../dhtmllib/images/skin_standard/right.gif | Bin 124 -> 0 bytes .../images/skin_standard/scroll_icon.gif | Bin 929 -> 0 bytes .../js/dhtmllib/images/skin_standard/sep.gif | Bin 800 -> 0 bytes .../images/skin_standard/sep_solid.gif | Bin 804 -> 0 bytes .../dhtmllib/images/skin_standard/style.css | 1090 ---- .../js/dhtmllib/images/skin_standard/style.js | 8 - .../images/skin_standard/style_fe.css | 1003 ---- .../js/dhtmllib/images/skin_standard/tabs.gif | Bin 470 -> 0 bytes .../images/skin_standard/toolbar_elements.png | Bin 963 -> 0 bytes .../js/dhtmllib/images/skin_standard/up.gif | Bin 124 -> 0 bytes .../dhtmllib/images/skin_standard/vgrab.gif | Bin 1058 -> 0 bytes .../dhtmllib/images/skin_standard/wait01.gif | Bin 2488 -> 0 bytes .../dhtmllib/images/skin_standard/wait02.gif | Bin 1089 -> 0 bytes .../images/skin_standard/warning_icon.gif | Bin 1507 -> 0 bytes .../js/dhtmllib/images/swap.gif | Bin 108 -> 0 bytes .../js/dhtmllib/images/transp.gif | Bin 85 -> 0 bytes .../js/dhtmllib/images/tree.gif | Bin 948 -> 0 bytes .../js/dhtmllib/language/cs/labels.js | 176 - .../js/dhtmllib/language/da/labels.js | 176 - .../js/dhtmllib/language/de/labels.js | 176 - .../js/dhtmllib/language/en/labels.js | 176 - .../js/dhtmllib/language/es/labels.js | 176 - .../js/dhtmllib/language/fi/labels.js | 176 - .../js/dhtmllib/language/fr/labels.js | 176 - .../js/dhtmllib/language/hu/labels.js | 176 - .../js/dhtmllib/language/it/labels.js | 176 - .../js/dhtmllib/language/ja/labels.js | 176 - .../js/dhtmllib/language/ko/labels.js | 176 - .../js/dhtmllib/language/nb/labels.js | 176 - .../js/dhtmllib/language/nl/labels.js | 176 - .../js/dhtmllib/language/pl/labels.js | 176 - .../js/dhtmllib/language/pt/labels.js | 176 - .../js/dhtmllib/language/ru/labels.js | 176 - .../js/dhtmllib/language/sk/labels.js | 176 - .../js/dhtmllib/language/sv/labels.js | 176 - .../js/dhtmllib/language/th/labels.js | 176 - .../js/dhtmllib/language/tr/labels.js | 176 - .../js/dhtmllib/language/zh_CN/labels.js | 176 - .../js/dhtmllib/language/zh_TW/labels.js | 176 - .../crystalreportviewers13/js/dhtmllib/lov.js | 776 --- .../js/dhtmllib/menu.js | 2582 --------- .../js/dhtmllib/palette.js | 3478 ------------ .../js/dhtmllib/prompttree.js | 287 - .../js/dhtmllib/psheet.js | 3706 ------------- .../js/dhtmllib/samples/andorwidget.html | 256 - .../js/dhtmllib/samples/basicDialog.html | 314 -- .../js/dhtmllib/samples/blockWhileWait.html | 64 - .../js/dhtmllib/samples/bolist.html | 207 - .../js/dhtmllib/samples/borderswidget.html | 65 - .../js/dhtmllib/samples/buttons.html | 71 - .../js/dhtmllib/samples/calendar.html | 95 - .../js/dhtmllib/samples/checktree.html | 97 - .../js/dhtmllib/samples/default.html | 31 - .../js/dhtmllib/samples/dim.gif | Bin 907 -> 0 bytes .../js/dhtmllib/samples/dim_close.gif | Bin 942 -> 0 bytes .../js/dhtmllib/samples/dim_o.gif | Bin 893 -> 0 bytes .../js/dhtmllib/samples/dim_open.gif | Bin 936 -> 0 bytes .../js/dhtmllib/samples/empty.html | 9 - .../js/dhtmllib/samples/eventsDialog.html | 63 - .../js/dhtmllib/samples/fieldswidget.html | 99 - .../js/dhtmllib/samples/format.gif | Bin 1476 -> 0 bytes .../js/dhtmllib/samples/framezone.html | 66 - .../js/dhtmllib/samples/grabber.html | 45 - .../dhtmllib/samples/iconlistpopupwidget.html | 132 - .../samples/iconscrollmenuwidget.html | 102 - .../js/dhtmllib/samples/imgtabs.gif | Bin 1061 -> 0 bytes .../js/dhtmllib/samples/inconwidget.html | 219 - .../js/dhtmllib/samples/infowidget.html | 82 - .../js/dhtmllib/samples/lov.html | 155 - .../js/dhtmllib/samples/measure.gif | Bin 900 -> 0 bytes .../js/dhtmllib/samples/measure_o.gif | Bin 885 -> 0 bytes .../js/dhtmllib/samples/menu.html | 197 - .../js/dhtmllib/samples/navigation.html | 114 - .../js/dhtmllib/samples/palettes.html | 194 - .../js/dhtmllib/samples/pane.html | 57 - .../js/dhtmllib/samples/parent_dialog.html | 33 - .../js/dhtmllib/samples/progressBar.html | 80 - .../js/dhtmllib/samples/prompttree.html | 75 - .../js/dhtmllib/samples/qualif.gif | Bin 1057 -> 0 bytes .../js/dhtmllib/samples/scrolltabs.html | 57 - .../js/dhtmllib/samples/simplelist.html | 87 - .../js/dhtmllib/samples/skinIntl.html | 54 - .../js/dhtmllib/samples/tabs.html | 206 - .../js/dhtmllib/samples/textcombowidget.html | 89 - .../js/dhtmllib/samples/tooltipwidget.html | 58 - .../js/dhtmllib/samples/treeicons.gif | Bin 1471 -> 0 bytes .../js/dhtmllib/samples/treeview.html | 416 -- .../js/dhtmllib/samples/unv_close.gif | Bin 1012 -> 0 bytes .../js/dhtmllib/samples/unv_o.gif | Bin 571 -> 0 bytes .../js/dhtmllib/samples/unv_open.gif | Bin 1005 -> 0 bytes .../js/dhtmllib/samples/waitDialog.html | 151 - .../js/dhtmllib/treeview.js | 3027 ----------- .../js/dhtmllib/validator/default.html | 300 - .../js/dhtmllib/validator/validator_res.html | 34 - .../js/dhtmllib/waitdialog.js | 220 - .../crystalreportviewers13/js/dt_param.js | 349 -- .../js/external/date.js | 335 -- .../js/log4javascript/log4javascript.js | 17 - .../js/log4javascript/log4javascript_stub.js | 1 - .../log4javascript_stub_uncompressed.js | 224 - .../log4javascript_uncompressed.js | 3199 ----------- .../js/log4javascript/main.css | 221 - .../crystalreportviewers13/js/previewerror.js | 42 - .../crystalreportviewers13/js/prompts.js | 360 -- .../js/prompts_param.js | 1727 ------ .../js/swfobject/swfobject.js | 5 - .../parameterUIController-compressed.js | 1 - .../processindicator.js | 1 - .../promptengine-compressed.js | 1 - .../prompting/css/promptengine2.css | 310 -- .../prompting/css/promptengine_default.css | 232 - .../prompting/html/calendar.html | 22 - .../prompting/html/calendarbottom.html | 32 - .../prompting/html/calendartop.html | 32 - .../prompting/images/addallfield.gif | Bin 453 -> 0 bytes .../prompting/images/addallfield_over.gif | Bin 682 -> 0 bytes .../prompting/images/addfield.gif | Bin 452 -> 0 bytes .../prompting/images/addfield_over.gif | Bin 677 -> 0 bytes .../prompting/images/back.gif | Bin 1053 -> 0 bytes .../prompting/images/back_over.gif | Bin 1069 -> 0 bytes .../prompting/images/background_field.gif | Bin 813 -> 0 bytes .../prompting/images/button.gif | Bin 1344 -> 0 bytes .../prompting/images/button_left_normal.gif | Bin 351 -> 0 bytes .../prompting/images/button_middle_normal.gif | Bin 162 -> 0 bytes .../prompting/images/button_right_normal.gif | Bin 350 -> 0 bytes .../prompting/images/calendar.gif | Bin 129 -> 0 bytes .../prompting/images/cfilter.gif | Bin 686 -> 0 bytes .../prompting/images/cfilter_over.gif | Bin 688 -> 0 bytes .../prompting/images/dialogelements.gif | Bin 171 -> 0 bytes .../prompting/images/dialogtitle.gif | Bin 818 -> 0 bytes .../prompting/images/error.gif | Bin 1482 -> 0 bytes .../prompting/images/errormsg.gif | Bin 560 -> 0 bytes .../prompting/images/filter.gif | Bin 698 -> 0 bytes .../prompting/images/filter_over.gif | Bin 695 -> 0 bytes .../prompting/images/forward.gif | Bin 452 -> 0 bytes .../prompting/images/forward_over.gif | Bin 677 -> 0 bytes .../prompting/images/info.gif | Bin 1501 -> 0 bytes .../prompting/images/infomsg.gif | Bin 551 -> 0 bytes .../prompting/images/minus.gif | Bin 100 -> 0 bytes .../prompting/images/next.gif | Bin 452 -> 0 bytes .../prompting/images/next_over.gif | Bin 463 -> 0 bytes .../prompting/images/plus.gif | Bin 109 -> 0 bytes .../prompting/images/prev.gif | Bin 447 -> 0 bytes .../prompting/images/prev_over.gif | Bin 467 -> 0 bytes .../prompting/images/resize.gif | Bin 857 -> 0 bytes .../prompting/images/transp.gif | Bin 85 -> 0 bytes .../prompting/images/warning.gif | Bin 1538 -> 0 bytes .../prompting/images/warningmsg.gif | Bin 314 -> 0 bytes .../prompting/js/initDhtmlLib.js | 4 - .../prompting/js/promptengine_calendar.js | 0 .../prompting/js/promptengine_calendar2.js | 173 - .../prompting/js/promptengine_prompts.js | 1110 ---- .../prompting/js/promptengine_prompts2.js | 3405 ------------ .../prompting/js/promptengine_strings_cs.js | 51 - .../prompting/js/promptengine_strings_da.js | 51 - .../prompting/js/promptengine_strings_de.js | 51 - .../prompting/js/promptengine_strings_en.js | 51 - .../prompting/js/promptengine_strings_es.js | 51 - .../prompting/js/promptengine_strings_fi.js | 51 - .../prompting/js/promptengine_strings_fr.js | 51 - .../prompting/js/promptengine_strings_hu.js | 51 - .../prompting/js/promptengine_strings_it.js | 51 - .../prompting/js/promptengine_strings_ja.js | 51 - .../prompting/js/promptengine_strings_ko.js | 51 - .../prompting/js/promptengine_strings_nb.js | 51 - .../prompting/js/promptengine_strings_nl.js | 51 - .../prompting/js/promptengine_strings_pl.js | 51 - .../prompting/js/promptengine_strings_pt.js | 51 - .../prompting/js/promptengine_strings_ru.js | 51 - .../prompting/js/promptengine_strings_sk.js | 51 - .../prompting/js/promptengine_strings_sv.js | 51 - .../prompting/js/promptengine_strings_th.js | 51 - .../prompting/js/promptengine_strings_tr.js | 51 - .../js/promptengine_strings_zh_CN.js | 51 - .../js/promptengine_strings_zh_TW.js | 51 - .../urlreporting/activexviewer.js | 38 - .../urlreporting/appletviewer.js | 103 - .../ActiveXControls/CRViewer.dll | Bin 1592936 -> 0 bytes .../ActiveXControls/CRViewer_res_cs.dll | Bin 145560 -> 0 bytes .../ActiveXControls/CRViewer_res_da.dll | Bin 145560 -> 0 bytes .../ActiveXControls/CRViewer_res_de.dll | Bin 149656 -> 0 bytes .../ActiveXControls/CRViewer_res_en.dll | Bin 145560 -> 0 bytes .../ActiveXControls/CRViewer_res_es.dll | Bin 145560 -> 0 bytes .../ActiveXControls/CRViewer_res_fi.dll | Bin 145560 -> 0 bytes .../ActiveXControls/CRViewer_res_fr.dll | Bin 149656 -> 0 bytes .../ActiveXControls/CRViewer_res_hu.dll | Bin 145560 -> 0 bytes .../ActiveXControls/CRViewer_res_it.dll | Bin 145560 -> 0 bytes .../ActiveXControls/CRViewer_res_ja.dll | Bin 141464 -> 0 bytes .../ActiveXControls/CRViewer_res_ko.dll | Bin 141464 -> 0 bytes .../ActiveXControls/CRViewer_res_nb.dll | Bin 145560 -> 0 bytes .../ActiveXControls/CRViewer_res_nl.dll | Bin 145560 -> 0 bytes .../ActiveXControls/CRViewer_res_pl.dll | Bin 145560 -> 0 bytes .../ActiveXControls/CRViewer_res_pt.dll | Bin 145560 -> 0 bytes .../ActiveXControls/CRViewer_res_ru.dll | Bin 149656 -> 0 bytes .../ActiveXControls/CRViewer_res_sk.dll | Bin 145560 -> 0 bytes .../ActiveXControls/CRViewer_res_sv.dll | Bin 145560 -> 0 bytes .../ActiveXControls/CRViewer_res_th.dll | Bin 145560 -> 0 bytes .../ActiveXControls/CRViewer_res_tr.dll | Bin 145560 -> 0 bytes .../ActiveXControls/CRViewer_res_zh_CN.dll | Bin 141464 -> 0 bytes .../ActiveXControls/CRViewer_res_zh_TW.dll | Bin 141464 -> 0 bytes .../ActiveXControls/LCIDTable.xml | 77 - .../ActiveXControls/PrintControl.dll | Bin 558664 -> 0 bytes .../ActiveXControls/PrintControl_res_cs.dll | Bin 52856 -> 0 bytes .../ActiveXControls/PrintControl_res_da.dll | Bin 53368 -> 0 bytes .../ActiveXControls/PrintControl_res_de.dll | Bin 53880 -> 0 bytes .../ActiveXControls/PrintControl_res_en.dll | Bin 52856 -> 0 bytes .../ActiveXControls/PrintControl_res_es.dll | Bin 53880 -> 0 bytes .../ActiveXControls/PrintControl_res_fi.dll | Bin 53368 -> 0 bytes .../ActiveXControls/PrintControl_res_fr.dll | Bin 53880 -> 0 bytes .../ActiveXControls/PrintControl_res_hu.dll | Bin 53368 -> 0 bytes .../ActiveXControls/PrintControl_res_it.dll | Bin 53368 -> 0 bytes .../ActiveXControls/PrintControl_res_ja.dll | Bin 51320 -> 0 bytes .../ActiveXControls/PrintControl_res_ko.dll | Bin 51320 -> 0 bytes .../ActiveXControls/PrintControl_res_nb.dll | Bin 52856 -> 0 bytes .../ActiveXControls/PrintControl_res_nl.dll | Bin 53880 -> 0 bytes .../ActiveXControls/PrintControl_res_pl.dll | Bin 53368 -> 0 bytes .../ActiveXControls/PrintControl_res_pt.dll | Bin 53368 -> 0 bytes .../ActiveXControls/PrintControl_res_ru.dll | Bin 53368 -> 0 bytes .../ActiveXControls/PrintControl_res_sk.dll | Bin 53368 -> 0 bytes .../ActiveXControls/PrintControl_res_sv.dll | Bin 52856 -> 0 bytes .../ActiveXControls/PrintControl_res_th.dll | Bin 52856 -> 0 bytes .../ActiveXControls/PrintControl_res_tr.dll | Bin 52856 -> 0 bytes .../PrintControl_res_zh_CN.dll | Bin 50808 -> 0 bytes .../PrintControl_res_zh_TW.dll | Bin 50808 -> 0 bytes .../ActiveXControls/XERCES27_LICENSE.txt | 202 - .../ActiveXControls/crviewer.dep | 42 - .../ActiveXControls/csprintdlg.dll | Bin 264304 -> 0 bytes .../ActiveXControls/csprintdlg_res_cs.dll | Bin 13968 -> 0 bytes .../ActiveXControls/csprintdlg_res_da.dll | Bin 13968 -> 0 bytes .../ActiveXControls/csprintdlg_res_de.dll | Bin 13968 -> 0 bytes .../ActiveXControls/csprintdlg_res_en.dll | Bin 13968 -> 0 bytes .../ActiveXControls/csprintdlg_res_es.dll | Bin 14480 -> 0 bytes .../ActiveXControls/csprintdlg_res_fi.dll | Bin 13968 -> 0 bytes .../ActiveXControls/csprintdlg_res_fr.dll | Bin 14480 -> 0 bytes .../ActiveXControls/csprintdlg_res_hu.dll | Bin 13968 -> 0 bytes .../ActiveXControls/csprintdlg_res_it.dll | Bin 13968 -> 0 bytes .../ActiveXControls/csprintdlg_res_ja.dll | Bin 13456 -> 0 bytes .../ActiveXControls/csprintdlg_res_ko.dll | Bin 13456 -> 0 bytes .../ActiveXControls/csprintdlg_res_nb.dll | Bin 13968 -> 0 bytes .../ActiveXControls/csprintdlg_res_nl.dll | Bin 13968 -> 0 bytes .../ActiveXControls/csprintdlg_res_pl.dll | Bin 13968 -> 0 bytes .../ActiveXControls/csprintdlg_res_pt.dll | Bin 14480 -> 0 bytes .../ActiveXControls/csprintdlg_res_ru.dll | Bin 14480 -> 0 bytes .../ActiveXControls/csprintdlg_res_sk.dll | Bin 13968 -> 0 bytes .../ActiveXControls/csprintdlg_res_sv.dll | Bin 13968 -> 0 bytes .../ActiveXControls/csprintdlg_res_th.dll | Bin 13968 -> 0 bytes .../ActiveXControls/csprintdlg_res_tr.dll | Bin 13968 -> 0 bytes .../ActiveXControls/csprintdlg_res_zh_CN.dll | Bin 12944 -> 0 bytes .../ActiveXControls/csprintdlg_res_zh_TW.dll | Bin 12944 -> 0 bytes .../ActiveXControls/pvlocale-1-0.dll | Bin 472496 -> 0 bytes .../ActiveXControls/sviewhlp.dll | Bin 283752 -> 0 bytes .../ActiveXControls/sviewhlp_res_cs.dll | Bin 16536 -> 0 bytes .../ActiveXControls/sviewhlp_res_da.dll | Bin 16536 -> 0 bytes .../ActiveXControls/sviewhlp_res_de.dll | Bin 16536 -> 0 bytes .../ActiveXControls/sviewhlp_res_en.dll | Bin 16536 -> 0 bytes .../ActiveXControls/sviewhlp_res_es.dll | Bin 16536 -> 0 bytes .../ActiveXControls/sviewhlp_res_fi.dll | Bin 16536 -> 0 bytes .../ActiveXControls/sviewhlp_res_fr.dll | Bin 16536 -> 0 bytes .../ActiveXControls/sviewhlp_res_hu.dll | Bin 16536 -> 0 bytes .../ActiveXControls/sviewhlp_res_it.dll | Bin 16536 -> 0 bytes .../ActiveXControls/sviewhlp_res_ja.dll | Bin 16024 -> 0 bytes .../ActiveXControls/sviewhlp_res_ko.dll | Bin 16024 -> 0 bytes .../ActiveXControls/sviewhlp_res_nb.dll | Bin 16536 -> 0 bytes .../ActiveXControls/sviewhlp_res_nl.dll | Bin 16536 -> 0 bytes .../ActiveXControls/sviewhlp_res_pl.dll | Bin 16536 -> 0 bytes .../ActiveXControls/sviewhlp_res_pt.dll | Bin 16536 -> 0 bytes .../ActiveXControls/sviewhlp_res_ru.dll | Bin 16536 -> 0 bytes .../ActiveXControls/sviewhlp_res_sk.dll | Bin 16536 -> 0 bytes .../ActiveXControls/sviewhlp_res_sv.dll | Bin 16536 -> 0 bytes .../ActiveXControls/sviewhlp_res_th.dll | Bin 16536 -> 0 bytes .../ActiveXControls/sviewhlp_res_tr.dll | Bin 16536 -> 0 bytes .../ActiveXControls/sviewhlp_res_zh_CN.dll | Bin 15512 -> 0 bytes .../ActiveXControls/sviewhlp_res_zh_TW.dll | Bin 15512 -> 0 bytes .../ActiveXControls/swebrs.dll | Bin 334976 -> 0 bytes .../ActiveXControls/swebrs_res_cs.dll | Bin 18608 -> 0 bytes .../ActiveXControls/swebrs_res_da.dll | Bin 18608 -> 0 bytes .../ActiveXControls/swebrs_res_de.dll | Bin 18608 -> 0 bytes .../ActiveXControls/swebrs_res_en.dll | Bin 18608 -> 0 bytes .../ActiveXControls/swebrs_res_es.dll | Bin 18608 -> 0 bytes .../ActiveXControls/swebrs_res_fi.dll | Bin 18608 -> 0 bytes .../ActiveXControls/swebrs_res_fr.dll | Bin 18608 -> 0 bytes .../ActiveXControls/swebrs_res_hu.dll | Bin 18608 -> 0 bytes .../ActiveXControls/swebrs_res_it.dll | Bin 18608 -> 0 bytes .../ActiveXControls/swebrs_res_ja.dll | Bin 18608 -> 0 bytes .../ActiveXControls/swebrs_res_ko.dll | Bin 18608 -> 0 bytes .../ActiveXControls/swebrs_res_nb.dll | Bin 18608 -> 0 bytes .../ActiveXControls/swebrs_res_nl.dll | Bin 18608 -> 0 bytes .../ActiveXControls/swebrs_res_pl.dll | Bin 18608 -> 0 bytes .../ActiveXControls/swebrs_res_pt.dll | Bin 18608 -> 0 bytes .../ActiveXControls/swebrs_res_ru.dll | Bin 18608 -> 0 bytes .../ActiveXControls/swebrs_res_sk.dll | Bin 18608 -> 0 bytes .../ActiveXControls/swebrs_res_sv.dll | Bin 18608 -> 0 bytes .../ActiveXControls/swebrs_res_th.dll | Bin 18608 -> 0 bytes .../ActiveXControls/swebrs_res_tr.dll | Bin 18608 -> 0 bytes .../ActiveXControls/swebrs_res_zh_CN.dll | Bin 18608 -> 0 bytes .../ActiveXControls/swebrs_res_zh_TW.dll | Bin 18608 -> 0 bytes .../win64_x64/PrintControl.dll | Bin 798280 -> 0 bytes .../win64_x64/PrintControl_res_cs.dll | Bin 53368 -> 0 bytes .../win64_x64/PrintControl_res_da.dll | Bin 53368 -> 0 bytes .../win64_x64/PrintControl_res_de.dll | Bin 53880 -> 0 bytes .../win64_x64/PrintControl_res_en.dll | Bin 53368 -> 0 bytes .../win64_x64/PrintControl_res_es.dll | Bin 53880 -> 0 bytes .../win64_x64/PrintControl_res_fi.dll | Bin 53368 -> 0 bytes .../win64_x64/PrintControl_res_fr.dll | Bin 54392 -> 0 bytes .../win64_x64/PrintControl_res_hu.dll | Bin 53368 -> 0 bytes .../win64_x64/PrintControl_res_it.dll | Bin 53880 -> 0 bytes .../win64_x64/PrintControl_res_ja.dll | Bin 51832 -> 0 bytes .../win64_x64/PrintControl_res_ko.dll | Bin 51832 -> 0 bytes .../win64_x64/PrintControl_res_nb.dll | Bin 53368 -> 0 bytes .../win64_x64/PrintControl_res_nl.dll | Bin 53880 -> 0 bytes .../win64_x64/PrintControl_res_pl.dll | Bin 53368 -> 0 bytes .../win64_x64/PrintControl_res_pt.dll | Bin 53880 -> 0 bytes .../win64_x64/PrintControl_res_ru.dll | Bin 53880 -> 0 bytes .../win64_x64/PrintControl_res_sk.dll | Bin 53368 -> 0 bytes .../win64_x64/PrintControl_res_sv.dll | Bin 53368 -> 0 bytes .../win64_x64/PrintControl_res_th.dll | Bin 53368 -> 0 bytes .../win64_x64/PrintControl_res_tr.dll | Bin 53368 -> 0 bytes .../win64_x64/PrintControl_res_zh_CN.dll | Bin 51320 -> 0 bytes .../win64_x64/PrintControl_res_zh_TW.dll | Bin 51320 -> 0 bytes .../win64_x64/XERCES27_LICENSE.txt | 202 - .../ActiveXControls/win64_x64/csprintdlg.dll | Bin 341104 -> 0 bytes .../win64_x64/csprintdlg_res_cs.dll | Bin 13456 -> 0 bytes .../win64_x64/csprintdlg_res_da.dll | Bin 13456 -> 0 bytes .../win64_x64/csprintdlg_res_de.dll | Bin 13456 -> 0 bytes .../win64_x64/csprintdlg_res_en.dll | Bin 13456 -> 0 bytes .../win64_x64/csprintdlg_res_es.dll | Bin 13968 -> 0 bytes .../win64_x64/csprintdlg_res_fi.dll | Bin 13456 -> 0 bytes .../win64_x64/csprintdlg_res_fr.dll | Bin 13968 -> 0 bytes .../win64_x64/csprintdlg_res_hu.dll | Bin 13456 -> 0 bytes .../win64_x64/csprintdlg_res_it.dll | Bin 13456 -> 0 bytes .../win64_x64/csprintdlg_res_ja.dll | Bin 12944 -> 0 bytes .../win64_x64/csprintdlg_res_ko.dll | Bin 12944 -> 0 bytes .../win64_x64/csprintdlg_res_nb.dll | Bin 13456 -> 0 bytes .../win64_x64/csprintdlg_res_nl.dll | Bin 13456 -> 0 bytes .../win64_x64/csprintdlg_res_pl.dll | Bin 13456 -> 0 bytes .../win64_x64/csprintdlg_res_pt.dll | Bin 13968 -> 0 bytes .../win64_x64/csprintdlg_res_ru.dll | Bin 13968 -> 0 bytes .../win64_x64/csprintdlg_res_sk.dll | Bin 13456 -> 0 bytes .../win64_x64/csprintdlg_res_sv.dll | Bin 13456 -> 0 bytes .../win64_x64/csprintdlg_res_th.dll | Bin 13456 -> 0 bytes .../win64_x64/csprintdlg_res_tr.dll | Bin 13456 -> 0 bytes .../win64_x64/csprintdlg_res_zh_CN.dll | Bin 12432 -> 0 bytes .../win64_x64/csprintdlg_res_zh_TW.dll | Bin 12432 -> 0 bytes .../win64_x64/pvlocale-1-0.dll | Bin 767408 -> 0 bytes .../win64_x64/xerces-c_2_7.dll | Bin 2619392 -> 0 bytes .../ActiveXControls/xerces-c_2_7.dll | Bin 1892352 -> 0 bytes .../4_6_81/crystalreportviewers/allInOne.js | 12 - .../crystalreportviewers/allStrings_cs.js | 359 -- .../crystalreportviewers/allStrings_da.js | 359 -- .../crystalreportviewers/allStrings_de.js | 359 -- .../crystalreportviewers/allStrings_en.js | 359 -- .../crystalreportviewers/allStrings_es.js | 359 -- .../crystalreportviewers/allStrings_fi.js | 359 -- .../crystalreportviewers/allStrings_fr.js | 359 -- .../crystalreportviewers/allStrings_hu.js | 359 -- .../crystalreportviewers/allStrings_it.js | 359 -- .../crystalreportviewers/allStrings_ja.js | 359 -- .../crystalreportviewers/allStrings_ko.js | 359 -- .../crystalreportviewers/allStrings_nb.js | 359 -- .../crystalreportviewers/allStrings_nl.js | 359 -- .../crystalreportviewers/allStrings_pl.js | 359 -- .../crystalreportviewers/allStrings_pt.js | 359 -- .../crystalreportviewers/allStrings_ru.js | 359 -- .../crystalreportviewers/allStrings_sk.js | 359 -- .../crystalreportviewers/allStrings_sv.js | 359 -- .../crystalreportviewers/allStrings_th.js | 359 -- .../crystalreportviewers/allStrings_tr.js | 359 -- .../crystalreportviewers/allStrings_zh_CN.js | 359 -- .../crystalreportviewers/allStrings_zh_TW.js | 359 -- .../crystalreportviewers/crsmarttag.asp | 96 - .../crystalreportviewers/crsmarttag.jsp | 71 - .../crystalimagehandler.asp | 16 - .../crystalreportviewers/css/cedefault.css | 96 - .../crystalreportviewers/css/default.css | 652 --- .../crystalreportviewers/css/exception.css | 26 - .../crystalreportviewers/css/prompting.css | 103 - .../crystalreportviewers/html/calendar.html | 21 - .../html/calendarbottom.html | 10 - .../html/calendartop.html | 10 - .../imagehandlerdotnetbridge.aspx | 14 - .../crystalreportviewers/images/buttonl.gif | Bin 351 -> 0 bytes .../crystalreportviewers/images/buttonm.gif | Bin 168 -> 0 bytes .../crystalreportviewers/images/buttonr.gif | Bin 350 -> 0 bytes .../images/isort/DownArrowSortActive100.gif | Bin 977 -> 0 bytes .../images/isort/DownArrowSortActive150.gif | Bin 1159 -> 0 bytes .../images/isort/DownArrowSortActive200.gif | Bin 849 -> 0 bytes .../images/isort/DownArrowSortActive250.gif | Bin 995 -> 0 bytes .../images/isort/DownArrowSortActive300.gif | Bin 1623 -> 0 bytes .../images/isort/DownArrowSortActive350.gif | Bin 1734 -> 0 bytes .../images/isort/DownArrowSortActive400.gif | Bin 1993 -> 0 bytes .../images/isort/DownArrowSortActive50.gif | Bin 271 -> 0 bytes .../images/isort/DownArrowSortHover100.gif | Bin 971 -> 0 bytes .../images/isort/DownArrowSortHover150.gif | Bin 1121 -> 0 bytes .../images/isort/DownArrowSortHover200.gif | Bin 780 -> 0 bytes .../images/isort/DownArrowSortHover250.gif | Bin 880 -> 0 bytes .../images/isort/DownArrowSortHover300.gif | Bin 1054 -> 0 bytes .../images/isort/DownArrowSortHover350.gif | Bin 1227 -> 0 bytes .../images/isort/DownArrowSortHover400.gif | Bin 1370 -> 0 bytes .../images/isort/DownArrowSortHover50.gif | Bin 271 -> 0 bytes .../images/isort/DownArrowSortInactive100.gif | Bin 973 -> 0 bytes .../images/isort/DownArrowSortInactive150.gif | Bin 1161 -> 0 bytes .../images/isort/DownArrowSortInactive200.gif | Bin 829 -> 0 bytes .../images/isort/DownArrowSortInactive250.gif | Bin 1017 -> 0 bytes .../images/isort/DownArrowSortInactive300.gif | Bin 1207 -> 0 bytes .../images/isort/DownArrowSortInactive400.gif | Bin 1598 -> 0 bytes .../images/isort/DownArrowSortInactive50.gif | Bin 271 -> 0 bytes .../images/isort/UpArrowSortActive100.gif | Bin 583 -> 0 bytes .../images/isort/UpArrowSortActive150.gif | Bin 1143 -> 0 bytes .../images/isort/UpArrowSortActive200.gif | Bin 845 -> 0 bytes .../images/isort/UpArrowSortActive250.gif | Bin 971 -> 0 bytes .../images/isort/UpArrowSortActive300.gif | Bin 1575 -> 0 bytes .../images/isort/UpArrowSortActive350.gif | Bin 1777 -> 0 bytes .../images/isort/UpArrowSortActive400.gif | Bin 1477 -> 0 bytes .../images/isort/UpArrowSortActive50.gif | Bin 290 -> 0 bytes .../images/isort/UpArrowSortHover100.gif | Bin 584 -> 0 bytes .../images/isort/UpArrowSortHover150.gif | Bin 1118 -> 0 bytes .../images/isort/UpArrowSortHover200.gif | Bin 780 -> 0 bytes .../images/isort/UpArrowSortHover250.gif | Bin 868 -> 0 bytes .../images/isort/UpArrowSortHover300.gif | Bin 991 -> 0 bytes .../images/isort/UpArrowSortHover350.gif | Bin 1195 -> 0 bytes .../images/isort/UpArrowSortHover400.gif | Bin 1317 -> 0 bytes .../images/isort/UpArrowSortHover50.gif | Bin 290 -> 0 bytes .../images/isort/UpArrowSortInactive100.gif | Bin 584 -> 0 bytes .../images/isort/UpArrowSortInactive150.gif | Bin 1155 -> 0 bytes .../images/isort/UpArrowSortInactive200.gif | Bin 851 -> 0 bytes .../images/isort/UpArrowSortInactive250.gif | Bin 1004 -> 0 bytes .../images/isort/UpArrowSortInactive300.gif | Bin 1161 -> 0 bytes .../images/isort/UpArrowSortInactive400.gif | Bin 1518 -> 0 bytes .../images/isort/UpArrowSortInactive50.gif | Bin 290 -> 0 bytes .../js/FlexParameterBridge.js | 336 -- .../crystalreportviewers/js/KeyDownEvent.js | 44 - .../js/MochiKit/3rdParty.txt | 66 - .../crystalreportviewers/js/MochiKit/Async.js | 602 -- .../crystalreportviewers/js/MochiKit/Base.js | 1259 ----- .../crystalreportviewers/js/MochiKit/Color.js | 845 --- .../js/MochiKit/Controls.js | 1284 ----- .../crystalreportviewers/js/MochiKit/DOM.js | 926 ---- .../js/MochiKit/DateTime.js | 208 - .../js/MochiKit/DragAndDrop.js | 774 --- .../js/MochiKit/Format.js | 294 - .../crystalreportviewers/js/MochiKit/Iter.js | 807 --- .../js/MochiKit/License.js | 9 - .../js/MochiKit/Logging.js | 299 - .../js/MochiKit/LoggingPane.js | 356 -- .../js/MochiKit/MochiKit.js | 149 - .../js/MochiKit/MockDOM.js | 88 - .../crystalreportviewers/js/MochiKit/New.js | 365 -- .../js/MochiKit/Signal.js | 712 --- .../js/MochiKit/Sortable.js | 531 -- .../crystalreportviewers/js/MochiKit/Style.js | 374 -- .../crystalreportviewers/js/MochiKit/Test.js | 181 - .../js/MochiKit/Visual.js | 1735 ------ .../js/MochiKit/__package__.js | 19 - .../crystalreportviewers/js/calendar.js | 695 --- .../crystalreportviewers/js/calendar_param.js | 704 --- .../js/crviewer/ArgumentNormalizer.js | 126 - .../js/crviewer/ButtonList.js | 244 - .../js/crviewer/Calendar.js | 539 -- .../js/crviewer/Colors.js | 8 - .../js/crviewer/Dialogs.js | 933 ---- .../js/crviewer/GroupTree.js | 270 - .../js/crviewer/GroupTreeListener.js | 165 - .../js/crviewer/GroupTreeNode.js | 203 - .../js/crviewer/IOAdapters.js | 599 -- .../js/crviewer/ImageSprites.js | 37 - .../js/crviewer/LeftPanel.js | 289 - .../js/crviewer/OptionalParameterUI.js | 35 - .../js/crviewer/OptionalParameterValueRow.js | 143 - .../js/crviewer/PanelHeader.js | 99 - .../js/crviewer/PanelNavigator.js | 124 - .../js/crviewer/PanelNavigatorItem.js | 105 - .../js/crviewer/Parameter.js | 511 -- .../js/crviewer/ParameterController.js | 1203 ---- .../js/crviewer/ParameterDialog.js | 170 - .../js/crviewer/ParameterInfoRow.js | 88 - .../js/crviewer/ParameterPanel.js | 277 - .../js/crviewer/ParameterPanelToolbar.js | 104 - .../js/crviewer/ParameterUI.js | 404 -- .../js/crviewer/ParameterValueRow.js | 505 -- .../js/crviewer/PromptPage.js | 295 - .../js/crviewer/RangeField.js | 215 - .../js/crviewer/ReportAlbum.js | 335 -- .../js/crviewer/ReportPage.js | 280 - .../js/crviewer/ReportView.js | 156 - .../js/crviewer/Separator.js | 71 - .../js/crviewer/SharedWidgetHolder.js | 183 - .../js/crviewer/SignalDisposer.js | 38 - .../js/crviewer/StackedPanel.js | 160 - .../js/crviewer/StackedTab.js | 230 - .../js/crviewer/StateManager.js | 86 - .../js/crviewer/Statusbar.js | 257 - .../js/crviewer/TextCombo.js | 377 -- .../js/crviewer/TextField.js | 151 - .../js/crviewer/ToolPanel.js | 295 - .../js/crviewer/Toolbar.js | 1213 ----- .../js/crviewer/Viewer.js | 862 --- .../js/crviewer/ViewerFlexParameterAdapter.js | 547 -- .../js/crviewer/ViewerListener.js | 1110 ---- .../js/crviewer/WarningPopup.js | 65 - .../crystalreportviewers/js/crviewer/api.js | 84 - .../js/crviewer/bobjcallback.js | 34 - .../js/crviewer/common.js | 776 --- .../crystalreportviewers/js/crviewer/crv.js | 536 -- .../crystalreportviewers/js/crviewer/dom.js | 6 - .../js/crviewer/encoding.js | 72 - .../crystalreportviewers/js/crviewer/event.js | 136 - .../crystalreportviewers/js/crviewer/html.js | 219 - .../js/crviewer/images/StackedTab.gif | Bin 78 -> 0 bytes .../crviewer/images/WarningPopupTriangle.gif | Bin 594 -> 0 bytes .../js/crviewer/images/allInOne.gif | Bin 4068 -> 0 bytes .../js/crviewer/images/allInOneBG.gif | Bin 739 -> 0 bytes .../images/arrow_button_depressed.gif | Bin 198 -> 0 bytes .../js/crviewer/images/arrow_button_hover.gif | Bin 314 -> 0 bytes .../js/crviewer/images/breadcrumbSep.gif | Bin 1270 -> 0 bytes .../js/crviewer/images/calendar.gif | Bin 120 -> 0 bytes .../js/crviewer/images/catalyst.gif | Bin 1016 -> 0 bytes .../js/crviewer/images/clearValues.gif | Bin 497 -> 0 bytes .../js/crviewer/images/clear_x.gif | Bin 80 -> 0 bytes .../js/crviewer/images/closePanel.gif | Bin 54 -> 0 bytes .../js/crviewer/images/delete.gif | Bin 231 -> 0 bytes .../js/crviewer/images/drill_cursor.cur | Bin 3262 -> 0 bytes .../js/crviewer/images/export.gif | Bin 1043 -> 0 bytes .../js/crviewer/images/filledCircle.gif | Bin 271 -> 0 bytes .../js/crviewer/images/first.gif | Bin 122 -> 0 bytes .../js/crviewer/images/grouptree_toggle.gif | Bin 370 -> 0 bytes .../js/crviewer/images/hollowCircle.gif | Bin 269 -> 0 bytes .../js/crviewer/images/last.gif | Bin 122 -> 0 bytes .../js/crviewer/images/leftTriangle.gif | Bin 260 -> 0 bytes .../js/crviewer/images/line.gif | Bin 59 -> 0 bytes .../js/crviewer/images/logo.gif | Bin 592 -> 0 bytes .../js/crviewer/images/magnify.gif | Bin 115 -> 0 bytes .../js/crviewer/images/min.gif | Bin 896 -> 0 bytes .../js/crviewer/images/next.gif | Bin 103 -> 0 bytes .../crviewer/images/open_parameter_arrow.gif | Bin 73 -> 0 bytes .../js/crviewer/images/panelHeaderBG.gif | Bin 816 -> 0 bytes .../crviewer/images/panelNavigatorItemHL.gif | Bin 867 -> 0 bytes .../images/panelNavigatorItemSelectedBG.gif | Bin 865 -> 0 bytes .../js/crviewer/images/panel_toggle.gif | Bin 713 -> 0 bytes .../js/crviewer/images/param_datafetching.gif | Bin 372 -> 0 bytes .../js/crviewer/images/param_dirty.gif | Bin 851 -> 0 bytes .../js/crviewer/images/param_info.gif | Bin 352 -> 0 bytes .../js/crviewer/images/param_run.gif | Bin 221 -> 0 bytes .../js/crviewer/images/param_warning.gif | Bin 572 -> 0 bytes .../js/crviewer/images/plus.gif | Bin 897 -> 0 bytes .../js/crviewer/images/prev.gif | Bin 103 -> 0 bytes .../js/crviewer/images/print.gif | Bin 1211 -> 0 bytes .../js/crviewer/images/refresh.gif | Bin 1053 -> 0 bytes .../js/crviewer/images/rightTriangle.gif | Bin 260 -> 0 bytes .../js/crviewer/images/search.gif | Bin 345 -> 0 bytes .../js/crviewer/images/separator.gif | Bin 54 -> 0 bytes .../js/crviewer/images/style.css | 579 -- .../js/crviewer/images/toolbar_background.gif | Bin 853 -> 0 bytes .../images/toolbar_button_depressed.gif | Bin 947 -> 0 bytes .../crviewer/images/toolbar_button_hover.gif | Bin 994 -> 0 bytes .../images/toolbar_buttongroup_background.gif | Bin 845 -> 0 bytes .../images/toolbar_buttongroup_left.gif | Bin 838 -> 0 bytes .../images/toolbar_buttongroup_right.gif | Bin 829 -> 0 bytes .../images/toolbar_menuarrow_depressed.gif | Bin 953 -> 0 bytes .../images/toolbar_menuarrow_hover.gif | Bin 986 -> 0 bytes .../images/toolbar_pagenav_buttons.gif | Bin 1451 -> 0 bytes .../images/toolbar_separator_icon.gif | Bin 816 -> 0 bytes .../js/crviewer/images/undo.gif | Bin 363 -> 0 bytes .../js/crviewer/images/up.gif | Bin 212 -> 0 bytes .../js/crviewer/initDhtmlLib.js | 10 - .../js/crviewer/strings_cs.js | 133 - .../js/crviewer/strings_da.js | 133 - .../js/crviewer/strings_de.js | 133 - .../js/crviewer/strings_en.js | 133 - .../js/crviewer/strings_es.js | 133 - .../js/crviewer/strings_fi.js | 133 - .../js/crviewer/strings_fr.js | 133 - .../js/crviewer/strings_hu.js | 133 - .../js/crviewer/strings_it.js | 133 - .../js/crviewer/strings_ja.js | 133 - .../js/crviewer/strings_ko.js | 133 - .../js/crviewer/strings_nb.js | 133 - .../js/crviewer/strings_nl.js | 133 - .../js/crviewer/strings_pl.js | 133 - .../js/crviewer/strings_pt.js | 133 - .../js/crviewer/strings_ru.js | 133 - .../js/crviewer/strings_sk.js | 133 - .../js/crviewer/strings_sv.js | 133 - .../js/crviewer/strings_th.js | 133 - .../js/crviewer/strings_tr.js | 133 - .../js/crviewer/strings_zh_CN.js | 133 - .../js/crviewer/strings_zh_TW.js | 133 - .../js/crviewerinclude.js | 261 - .../js/dhtmllib/bolist.js | 2761 ---------- .../js/dhtmllib/calendar.js | 935 ---- .../js/dhtmllib/dialog.js | 985 ---- .../crystalreportviewers/js/dhtmllib/dom.js | 4830 ----------------- .../js/dhtmllib/empty.html | 10 - .../js/dhtmllib/images/borders.gif | Bin 1869 -> 0 bytes .../js/dhtmllib/images/help.gif | Bin 993 -> 0 bytes .../js/dhtmllib/images/loading.gif | Bin 2673 -> 0 bytes .../js/dhtmllib/images/lov.gif | Bin 1324 -> 0 bytes .../js/dhtmllib/images/min.gif | Bin 896 -> 0 bytes .../js/dhtmllib/images/plus.gif | Bin 897 -> 0 bytes .../js/dhtmllib/images/print.css | 73 - .../js/dhtmllib/images/print_fe.css | 73 - .../js/dhtmllib/images/prompt.gif | Bin 1066 -> 0 bytes .../js/dhtmllib/images/resizepattern.gif | Bin 815 -> 0 bytes .../images/skin_coloredline/bolist.gif | Bin 1104 -> 0 bytes .../images/skin_coloredline/button.gif | Bin 905 -> 0 bytes .../images/skin_coloredline/buttonIcons.gif | Bin 1330 -> 0 bytes .../images/skin_coloredline/critical_icon.gif | Bin 862 -> 0 bytes .../skin_coloredline/dialogelements.gif | Bin 1138 -> 0 bytes .../images/skin_coloredline/dialogframe.gif | Bin 840 -> 0 bytes .../skin_coloredline/dialogframeleftright.gif | Bin 828 -> 0 bytes .../skin_coloredline/dialogframetopbottom.gif | Bin 822 -> 0 bytes .../images/skin_coloredline/dialogtitle.gif | Bin 85 -> 0 bytes .../dhtmllib/images/skin_coloredline/down.gif | Bin 110 -> 0 bytes .../images/skin_coloredline/iconsep.gif | Bin 844 -> 0 bytes .../skin_coloredline/information_icon.gif | Bin 900 -> 0 bytes .../dhtmllib/images/skin_coloredline/left.gif | Bin 110 -> 0 bytes .../images/skin_coloredline/menus.gif | Bin 1190 -> 0 bytes .../dhtmllib/images/skin_coloredline/node.gif | Bin 111 -> 0 bytes .../images/skin_coloredline/progress.gif | Bin 962 -> 0 bytes .../images/skin_coloredline/resize.gif | Bin 860 -> 0 bytes .../images/skin_coloredline/right.gif | Bin 109 -> 0 bytes .../images/skin_coloredline/scroll_icon.gif | Bin 173 -> 0 bytes .../dhtmllib/images/skin_coloredline/sep.gif | Bin 800 -> 0 bytes .../images/skin_coloredline/sep_solid.gif | Bin 804 -> 0 bytes .../images/skin_coloredline/style.css | 838 --- .../dhtmllib/images/skin_coloredline/style.js | 8 - .../images/skin_coloredline/style_fe.css | 823 --- .../dhtmllib/images/skin_coloredline/tabs.gif | Bin 1290 -> 0 bytes .../dhtmllib/images/skin_coloredline/up.gif | Bin 111 -> 0 bytes .../images/skin_coloredline/wait01.gif | Bin 36063 -> 0 bytes .../images/skin_coloredline/wait02.gif | Bin 1089 -> 0 bytes .../images/skin_coloredline/warning_icon.gif | Bin 1507 -> 0 bytes .../dhtmllib/images/skin_corporate/bolist.gif | Bin 1130 -> 0 bytes .../dhtmllib/images/skin_corporate/button.gif | Bin 905 -> 0 bytes .../images/skin_corporate/buttonIcons.gif | Bin 1330 -> 0 bytes .../images/skin_corporate/critical_icon.gif | Bin 862 -> 0 bytes .../images/skin_corporate/dialogelements.gif | Bin 1138 -> 0 bytes .../images/skin_corporate/dialogframe.gif | Bin 840 -> 0 bytes .../skin_corporate/dialogframeleftright.gif | Bin 828 -> 0 bytes .../skin_corporate/dialogframetopbottom.gif | Bin 822 -> 0 bytes .../images/skin_corporate/dialogtitle.gif | Bin 85 -> 0 bytes .../dhtmllib/images/skin_corporate/down.gif | Bin 111 -> 0 bytes .../images/skin_corporate/iconsep.gif | Bin 844 -> 0 bytes .../skin_corporate/information_icon.gif | Bin 900 -> 0 bytes .../dhtmllib/images/skin_corporate/left.gif | Bin 111 -> 0 bytes .../dhtmllib/images/skin_corporate/menus.gif | Bin 1190 -> 0 bytes .../dhtmllib/images/skin_corporate/node.gif | Bin 111 -> 0 bytes .../images/skin_corporate/progress.gif | Bin 962 -> 0 bytes .../dhtmllib/images/skin_corporate/resize.gif | Bin 860 -> 0 bytes .../dhtmllib/images/skin_corporate/right.gif | Bin 109 -> 0 bytes .../images/skin_corporate/scroll_icon.gif | Bin 173 -> 0 bytes .../js/dhtmllib/images/skin_corporate/sep.gif | Bin 800 -> 0 bytes .../images/skin_corporate/sep_solid.gif | Bin 804 -> 0 bytes .../dhtmllib/images/skin_corporate/style.css | 837 --- .../dhtmllib/images/skin_corporate/style.js | 8 - .../images/skin_corporate/style_fe.css | 824 --- .../dhtmllib/images/skin_corporate/tabs.gif | Bin 1290 -> 0 bytes .../js/dhtmllib/images/skin_corporate/up.gif | Bin 112 -> 0 bytes .../dhtmllib/images/skin_corporate/wait01.gif | Bin 36063 -> 0 bytes .../dhtmllib/images/skin_corporate/wait02.gif | Bin 1089 -> 0 bytes .../images/skin_corporate/warning_icon.gif | Bin 1507 -> 0 bytes .../dhtmllib/images/skin_default/bolist.gif | Bin 1130 -> 0 bytes .../dhtmllib/images/skin_default/button.gif | Bin 905 -> 0 bytes .../images/skin_default/buttonIcons.gif | Bin 1330 -> 0 bytes .../images/skin_default/critical_icon.gif | Bin 862 -> 0 bytes .../images/skin_default/dialogelements.gif | Bin 1138 -> 0 bytes .../images/skin_default/dialogframe.gif | Bin 862 -> 0 bytes .../skin_default/dialogframeleftright.gif | Bin 853 -> 0 bytes .../skin_default/dialogframetopbottom.gif | Bin 834 -> 0 bytes .../images/skin_default/dialogtitle.gif | Bin 85 -> 0 bytes .../js/dhtmllib/images/skin_default/down.gif | Bin 121 -> 0 bytes .../dhtmllib/images/skin_default/iconsep.gif | Bin 844 -> 0 bytes .../images/skin_default/information_icon.gif | Bin 900 -> 0 bytes .../js/dhtmllib/images/skin_default/left.gif | Bin 123 -> 0 bytes .../js/dhtmllib/images/skin_default/menus.gif | Bin 1190 -> 0 bytes .../js/dhtmllib/images/skin_default/node.gif | Bin 114 -> 0 bytes .../dhtmllib/images/skin_default/progress.gif | Bin 962 -> 0 bytes .../dhtmllib/images/skin_default/resize.gif | Bin 860 -> 0 bytes .../js/dhtmllib/images/skin_default/right.gif | Bin 124 -> 0 bytes .../images/skin_default/scroll_icon.gif | Bin 173 -> 0 bytes .../js/dhtmllib/images/skin_default/sep.gif | Bin 78 -> 0 bytes .../images/skin_default/sep_solid.gif | Bin 80 -> 0 bytes .../js/dhtmllib/images/skin_default/style.css | 908 ---- .../js/dhtmllib/images/skin_default/style.js | 8 - .../dhtmllib/images/skin_default/style_fe.css | 891 --- .../js/dhtmllib/images/skin_default/tabs.gif | Bin 1292 -> 0 bytes .../js/dhtmllib/images/skin_default/up.gif | Bin 124 -> 0 bytes .../dhtmllib/images/skin_default/wait01.gif | Bin 36063 -> 0 bytes .../dhtmllib/images/skin_default/wait02.gif | Bin 1089 -> 0 bytes .../images/skin_default/warning_icon.gif | Bin 1507 -> 0 bytes .../images/skin_standard/background_field.gif | Bin 813 -> 0 bytes .../skin_standard/background_menusel.gif | Bin 820 -> 0 bytes .../dhtmllib/images/skin_standard/bolist.gif | Bin 1425 -> 0 bytes .../dhtmllib/images/skin_standard/button.gif | Bin 1344 -> 0 bytes .../images/skin_standard/buttonIcons.gif | Bin 1419 -> 0 bytes .../images/skin_standard/critical_icon.gif | Bin 1438 -> 0 bytes .../images/skin_standard/critical_icon.png | Bin 1830 -> 0 bytes .../images/skin_standard/dialogelements.gif | Bin 171 -> 0 bytes .../images/skin_standard/dialogframe.gif | Bin 874 -> 0 bytes .../skin_standard/dialogframeleftright.gif | Bin 853 -> 0 bytes .../skin_standard/dialogframetopbottom.gif | Bin 834 -> 0 bytes .../images/skin_standard/dialogtitle.gif | Bin 2512 -> 0 bytes .../js/dhtmllib/images/skin_standard/down.gif | Bin 121 -> 0 bytes .../dhtmllib/images/skin_standard/hgrab.gif | Bin 1075 -> 0 bytes .../images/skin_standard/horiz_tabs.gif | Bin 4839 -> 0 bytes .../dhtmllib/images/skin_standard/iconsep.gif | Bin 843 -> 0 bytes .../images/skin_standard/information_icon.gif | Bin 900 -> 0 bytes .../js/dhtmllib/images/skin_standard/left.gif | Bin 123 -> 0 bytes .../images/skin_standard/menuitem_check.gif | Bin 937 -> 0 bytes .../dhtmllib/images/skin_standard/menus.gif | Bin 1190 -> 0 bytes .../js/dhtmllib/images/skin_standard/node.gif | Bin 114 -> 0 bytes .../images/skin_standard/panemenu.gif | Bin 862 -> 0 bytes .../images/skin_standard/panetitle.gif | Bin 818 -> 0 bytes .../images/skin_standard/progress.gif | Bin 962 -> 0 bytes .../dhtmllib/images/skin_standard/resize.gif | Bin 857 -> 0 bytes .../dhtmllib/images/skin_standard/right.gif | Bin 124 -> 0 bytes .../images/skin_standard/scroll_icon.gif | Bin 929 -> 0 bytes .../js/dhtmllib/images/skin_standard/sep.gif | Bin 800 -> 0 bytes .../images/skin_standard/sep_solid.gif | Bin 804 -> 0 bytes .../dhtmllib/images/skin_standard/style.css | 1090 ---- .../js/dhtmllib/images/skin_standard/style.js | 8 - .../images/skin_standard/style_fe.css | 1003 ---- .../js/dhtmllib/images/skin_standard/tabs.gif | Bin 470 -> 0 bytes .../images/skin_standard/toolbar_elements.png | Bin 963 -> 0 bytes .../js/dhtmllib/images/skin_standard/up.gif | Bin 124 -> 0 bytes .../dhtmllib/images/skin_standard/vgrab.gif | Bin 1058 -> 0 bytes .../dhtmllib/images/skin_standard/wait01.gif | Bin 2488 -> 0 bytes .../dhtmllib/images/skin_standard/wait02.gif | Bin 1089 -> 0 bytes .../images/skin_standard/warning_icon.gif | Bin 1507 -> 0 bytes .../js/dhtmllib/images/swap.gif | Bin 108 -> 0 bytes .../js/dhtmllib/images/transp.gif | Bin 85 -> 0 bytes .../js/dhtmllib/images/tree.gif | Bin 948 -> 0 bytes .../js/dhtmllib/language/cs/labels.js | 176 - .../js/dhtmllib/language/da/labels.js | 176 - .../js/dhtmllib/language/de/labels.js | 176 - .../js/dhtmllib/language/en/labels.js | 176 - .../js/dhtmllib/language/es/labels.js | 176 - .../js/dhtmllib/language/fi/labels.js | 176 - .../js/dhtmllib/language/fr/labels.js | 176 - .../js/dhtmllib/language/hu/labels.js | 176 - .../js/dhtmllib/language/it/labels.js | 176 - .../js/dhtmllib/language/ja/labels.js | 176 - .../js/dhtmllib/language/ko/labels.js | 176 - .../js/dhtmllib/language/nb/labels.js | 176 - .../js/dhtmllib/language/nl/labels.js | 176 - .../js/dhtmllib/language/pl/labels.js | 176 - .../js/dhtmllib/language/pt/labels.js | 176 - .../js/dhtmllib/language/ru/labels.js | 176 - .../js/dhtmllib/language/sk/labels.js | 176 - .../js/dhtmllib/language/sv/labels.js | 176 - .../js/dhtmllib/language/th/labels.js | 176 - .../js/dhtmllib/language/tr/labels.js | 176 - .../js/dhtmllib/language/zh_CN/labels.js | 176 - .../js/dhtmllib/language/zh_TW/labels.js | 176 - .../crystalreportviewers/js/dhtmllib/lov.js | 776 --- .../crystalreportviewers/js/dhtmllib/menu.js | 2582 --------- .../js/dhtmllib/palette.js | 3478 ------------ .../js/dhtmllib/prompttree.js | 287 - .../js/dhtmllib/psheet.js | 3706 ------------- .../js/dhtmllib/samples/andorwidget.html | 256 - .../js/dhtmllib/samples/basicDialog.html | 314 -- .../js/dhtmllib/samples/blockWhileWait.html | 64 - .../js/dhtmllib/samples/bolist.html | 207 - .../js/dhtmllib/samples/borderswidget.html | 65 - .../js/dhtmllib/samples/buttons.html | 71 - .../js/dhtmllib/samples/calendar.html | 95 - .../js/dhtmllib/samples/checktree.html | 97 - .../js/dhtmllib/samples/default.html | 31 - .../js/dhtmllib/samples/dim.gif | Bin 907 -> 0 bytes .../js/dhtmllib/samples/dim_close.gif | Bin 942 -> 0 bytes .../js/dhtmllib/samples/dim_o.gif | Bin 893 -> 0 bytes .../js/dhtmllib/samples/dim_open.gif | Bin 936 -> 0 bytes .../js/dhtmllib/samples/empty.html | 9 - .../js/dhtmllib/samples/eventsDialog.html | 63 - .../js/dhtmllib/samples/fieldswidget.html | 99 - .../js/dhtmllib/samples/format.gif | Bin 1476 -> 0 bytes .../js/dhtmllib/samples/framezone.html | 66 - .../js/dhtmllib/samples/grabber.html | 45 - .../dhtmllib/samples/iconlistpopupwidget.html | 132 - .../samples/iconscrollmenuwidget.html | 102 - .../js/dhtmllib/samples/imgtabs.gif | Bin 1061 -> 0 bytes .../js/dhtmllib/samples/inconwidget.html | 219 - .../js/dhtmllib/samples/infowidget.html | 82 - .../js/dhtmllib/samples/lov.html | 155 - .../js/dhtmllib/samples/measure.gif | Bin 900 -> 0 bytes .../js/dhtmllib/samples/measure_o.gif | Bin 885 -> 0 bytes .../js/dhtmllib/samples/menu.html | 197 - .../js/dhtmllib/samples/navigation.html | 114 - .../js/dhtmllib/samples/palettes.html | 194 - .../js/dhtmllib/samples/pane.html | 57 - .../js/dhtmllib/samples/parent_dialog.html | 33 - .../js/dhtmllib/samples/progressBar.html | 80 - .../js/dhtmllib/samples/prompttree.html | 75 - .../js/dhtmllib/samples/qualif.gif | Bin 1057 -> 0 bytes .../js/dhtmllib/samples/scrolltabs.html | 57 - .../js/dhtmllib/samples/simplelist.html | 87 - .../js/dhtmllib/samples/skinIntl.html | 54 - .../js/dhtmllib/samples/tabs.html | 206 - .../js/dhtmllib/samples/textcombowidget.html | 89 - .../js/dhtmllib/samples/tooltipwidget.html | 58 - .../js/dhtmllib/samples/treeicons.gif | Bin 1471 -> 0 bytes .../js/dhtmllib/samples/treeview.html | 416 -- .../js/dhtmllib/samples/unv_close.gif | Bin 1012 -> 0 bytes .../js/dhtmllib/samples/unv_o.gif | Bin 571 -> 0 bytes .../js/dhtmllib/samples/unv_open.gif | Bin 1005 -> 0 bytes .../js/dhtmllib/samples/waitDialog.html | 151 - .../js/dhtmllib/treeview.js | 3027 ----------- .../js/dhtmllib/validator/default.html | 300 - .../js/dhtmllib/validator/validator_res.html | 34 - .../js/dhtmllib/waitdialog.js | 220 - .../crystalreportviewers/js/dt_param.js | 349 -- .../crystalreportviewers/js/external/date.js | 335 -- .../js/log4javascript/log4javascript.js | 17 - .../js/log4javascript/log4javascript_stub.js | 1 - .../log4javascript_stub_uncompressed.js | 224 - .../log4javascript_uncompressed.js | 3199 ----------- .../js/log4javascript/main.css | 221 - .../crystalreportviewers/js/previewerror.js | 42 - .../4_6_81/crystalreportviewers/js/prompts.js | 360 -- .../crystalreportviewers/js/prompts_param.js | 1727 ------ .../js/swfobject/swfobject.js | 5 - .../parameterUIController-compressed.js | 1 - .../4_6_81/crystalreportviewers/preview.aspx | 140 - .../4_6_81/crystalreportviewers/preview.jsp | 124 - .../crystalreportviewers/processindicator.js | 1 - .../promptengine-compressed.js | 1 - .../prompting/css/promptengine2.css | 310 -- .../prompting/css/promptengine_default.css | 232 - .../prompting/html/calendar.html | 22 - .../prompting/html/calendarbottom.html | 32 - .../prompting/html/calendartop.html | 32 - .../prompting/images/addallfield.gif | Bin 453 -> 0 bytes .../prompting/images/addallfield_over.gif | Bin 682 -> 0 bytes .../prompting/images/addfield.gif | Bin 452 -> 0 bytes .../prompting/images/addfield_over.gif | Bin 677 -> 0 bytes .../prompting/images/back.gif | Bin 1053 -> 0 bytes .../prompting/images/back_over.gif | Bin 1069 -> 0 bytes .../prompting/images/background_field.gif | Bin 813 -> 0 bytes .../prompting/images/button.gif | Bin 1344 -> 0 bytes .../prompting/images/button_left_normal.gif | Bin 351 -> 0 bytes .../prompting/images/button_middle_normal.gif | Bin 162 -> 0 bytes .../prompting/images/button_right_normal.gif | Bin 350 -> 0 bytes .../prompting/images/calendar.gif | Bin 129 -> 0 bytes .../prompting/images/cfilter.gif | Bin 686 -> 0 bytes .../prompting/images/cfilter_over.gif | Bin 688 -> 0 bytes .../prompting/images/dialogelements.gif | Bin 171 -> 0 bytes .../prompting/images/dialogtitle.gif | Bin 818 -> 0 bytes .../prompting/images/error.gif | Bin 1482 -> 0 bytes .../prompting/images/errormsg.gif | Bin 560 -> 0 bytes .../prompting/images/filter.gif | Bin 698 -> 0 bytes .../prompting/images/filter_over.gif | Bin 695 -> 0 bytes .../prompting/images/forward.gif | Bin 452 -> 0 bytes .../prompting/images/forward_over.gif | Bin 677 -> 0 bytes .../prompting/images/info.gif | Bin 1501 -> 0 bytes .../prompting/images/infomsg.gif | Bin 551 -> 0 bytes .../prompting/images/minus.gif | Bin 100 -> 0 bytes .../prompting/images/next.gif | Bin 452 -> 0 bytes .../prompting/images/next_over.gif | Bin 463 -> 0 bytes .../prompting/images/plus.gif | Bin 109 -> 0 bytes .../prompting/images/prev.gif | Bin 447 -> 0 bytes .../prompting/images/prev_over.gif | Bin 467 -> 0 bytes .../prompting/images/resize.gif | Bin 857 -> 0 bytes .../prompting/images/transp.gif | Bin 85 -> 0 bytes .../prompting/images/warning.gif | Bin 1538 -> 0 bytes .../prompting/images/warningmsg.gif | Bin 314 -> 0 bytes .../prompting/js/initDhtmlLib.js | 4 - .../prompting/js/promptengine_calendar.js | 0 .../prompting/js/promptengine_calendar2.js | 173 - .../prompting/js/promptengine_prompts.js | 1110 ---- .../prompting/js/promptengine_prompts2.js | 3405 ------------ .../prompting/js/promptengine_strings_cs.js | 51 - .../prompting/js/promptengine_strings_da.js | 51 - .../prompting/js/promptengine_strings_de.js | 51 - .../prompting/js/promptengine_strings_en.js | 51 - .../prompting/js/promptengine_strings_es.js | 51 - .../prompting/js/promptengine_strings_fi.js | 51 - .../prompting/js/promptengine_strings_fr.js | 51 - .../prompting/js/promptengine_strings_hu.js | 51 - .../prompting/js/promptengine_strings_it.js | 51 - .../prompting/js/promptengine_strings_ja.js | 51 - .../prompting/js/promptengine_strings_ko.js | 51 - .../prompting/js/promptengine_strings_nb.js | 51 - .../prompting/js/promptengine_strings_nl.js | 51 - .../prompting/js/promptengine_strings_pl.js | 51 - .../prompting/js/promptengine_strings_pt.js | 51 - .../prompting/js/promptengine_strings_ru.js | 51 - .../prompting/js/promptengine_strings_sk.js | 51 - .../prompting/js/promptengine_strings_sv.js | 51 - .../prompting/js/promptengine_strings_th.js | 51 - .../prompting/js/promptengine_strings_tr.js | 51 - .../js/promptengine_strings_zh_CN.js | 51 - .../js/promptengine_strings_zh_TW.js | 51 - .../urlreporting/activexviewer.js | 38 - .../urlreporting/appletviewer.js | 103 - vwd.webinfo | 8 + 1387 files changed, 1800 insertions(+), 194860 deletions(-) delete mode 100644 PortalGPS/WsADGPS.asmx create mode 100644 RH/CalculoSBC.aspx create mode 100644 RH/CalculoSBC.aspx.cs delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/css/default.css delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/html/calendar.html delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/html/calendarbottom.html delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/html/calendartop.html delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/html/crystalexportdialog.htm delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/html/crystalprinthost.html delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/First.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/Firstd.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/Last.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/Lastd.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/Next.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/Nextd.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/Prev.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/Prevd.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/Refresh.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/Search.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/calendar.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/crlogo.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/export.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/export_over.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/exportd.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/first_over.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/gotopage.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/gotopage_over.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/gotopaged.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/grouptree.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/grouptree_over.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/grouptreed.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/grouptreepressed.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/last_over.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/next_over.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/prev_over.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/print.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/print_over.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/printd.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/refresh_over.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/refreshd.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/search_over.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/searchd.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/up.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/up_over.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/upd.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/Magnify.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/begindots.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/beginminus.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/beginplus.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/blank.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/blankdots.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/dots.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/lastdots.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/lastminus.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/lastplus.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/minus.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/minusbox.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/plus.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/plusbox.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/singleminus.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/singleplus.gif delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/KeyDownEvent.js delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/calendar_param.js delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/dt_param.js delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/export.js delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/print.js delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/prompts_param.js delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_chs.js delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_cht.js delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_de.js delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_en.js delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_es.js delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_fr.js delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_it.js delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_ja.js delete mode 100644 aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_ko.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_cs.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_da.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_de.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_en.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_es.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_fi.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_fr.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_hu.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_it.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_ja.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_ko.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_nb.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_nl.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_pl.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_pt.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_ru.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_sk.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_sv.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_th.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_tr.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_zh_CN.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_zh_TW.cab delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allInOne.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allStrings_cs.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allStrings_da.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allStrings_de.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allStrings_en.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allStrings_es.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allStrings_fi.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allStrings_fr.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allStrings_hu.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allStrings_it.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allStrings_ja.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allStrings_ko.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allStrings_nb.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allStrings_nl.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allStrings_pl.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allStrings_pt.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allStrings_ru.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allStrings_sk.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allStrings_sv.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allStrings_th.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allStrings_tr.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allStrings_zh_CN.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/allStrings_zh_TW.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/css/cedefault.css delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/css/default.css delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/css/exception.css delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/css/prompting.css delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/html/calendar.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/html/calendarbottom.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/html/calendartop.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/buttonl.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/buttonm.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/buttonr.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortActive100.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortActive150.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortActive200.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortActive250.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortActive300.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortActive350.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortActive400.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortActive50.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortHover100.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortHover150.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortHover200.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortHover250.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortHover300.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortHover350.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortHover400.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortHover50.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortInactive100.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortInactive150.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortInactive200.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortInactive250.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortInactive300.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortInactive400.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortInactive50.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortActive100.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortActive150.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortActive200.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortActive250.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortActive300.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortActive350.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortActive400.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortActive50.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortHover100.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortHover150.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortHover200.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortHover250.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortHover300.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortHover350.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortHover400.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortHover50.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortInactive100.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortInactive150.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortInactive200.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortInactive250.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortInactive300.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortInactive400.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortInactive50.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/FlexParameterBridge.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/KeyDownEvent.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/3rdParty.txt delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Async.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Base.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Color.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Controls.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/DOM.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/DateTime.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/DragAndDrop.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Format.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Iter.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/License.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Logging.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/LoggingPane.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/MochiKit.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/MockDOM.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/New.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Signal.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Sortable.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Style.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Test.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Visual.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/__package__.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/calendar.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/calendar_param.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ArgumentNormalizer.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ButtonList.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Calendar.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Colors.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Dialogs.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/GroupTree.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/GroupTreeListener.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/GroupTreeNode.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/IOAdapters.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ImageSprites.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/LeftPanel.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/OptionalParameterUI.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/OptionalParameterValueRow.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/PanelHeader.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/PanelNavigator.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/PanelNavigatorItem.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Parameter.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterController.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterDialog.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterInfoRow.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterPanel.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterPanelToolbar.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterUI.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterValueRow.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/PromptPage.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/RangeField.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ReportAlbum.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ReportPage.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ReportView.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Separator.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/SharedWidgetHolder.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/SignalDisposer.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/StackedPanel.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/StackedTab.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/StateManager.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Statusbar.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/TextCombo.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/TextField.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ToolPanel.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Toolbar.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Viewer.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ViewerFlexParameterAdapter.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ViewerListener.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/WarningPopup.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/api.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/bobjcallback.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/common.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/crv.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/dom.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/encoding.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/event.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/html.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/StackedTab.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/WarningPopupTriangle.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/allInOne.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/allInOneBG.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/arrow_button_depressed.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/arrow_button_hover.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/breadcrumbSep.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/calendar.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/catalyst.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/clearValues.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/clear_x.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/closePanel.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/delete.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/drill_cursor.cur delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/export.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/filledCircle.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/first.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/grouptree_toggle.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/hollowCircle.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/last.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/leftTriangle.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/line.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/logo.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/magnify.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/min.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/next.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/open_parameter_arrow.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/panelHeaderBG.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/panelNavigatorItemHL.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/panelNavigatorItemSelectedBG.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/panel_toggle.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/param_datafetching.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/param_dirty.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/param_info.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/param_run.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/param_warning.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/plus.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/prev.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/print.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/refresh.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/rightTriangle.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/search.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/separator.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/style.css delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/toolbar_background.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/toolbar_button_depressed.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/toolbar_button_hover.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/toolbar_buttongroup_background.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/toolbar_buttongroup_left.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/toolbar_buttongroup_right.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/toolbar_menuarrow_depressed.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/toolbar_menuarrow_hover.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/toolbar_pagenav_buttons.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/toolbar_separator_icon.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/undo.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/images/up.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/initDhtmlLib.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/strings_cs.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/strings_da.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/strings_de.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/strings_en.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/strings_es.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/strings_fi.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/strings_fr.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/strings_hu.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/strings_it.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/strings_ja.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/strings_ko.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/strings_nb.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/strings_nl.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/strings_pl.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/strings_pt.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/strings_ru.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/strings_sk.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/strings_sv.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/strings_th.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/strings_tr.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/strings_zh_CN.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/strings_zh_TW.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewerinclude.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/bolist.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/calendar.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/dialog.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/dom.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/empty.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/borders.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/help.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/loading.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/lov.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/min.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/plus.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/print.css delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/print_fe.css delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/prompt.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/resizepattern.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/bolist.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/button.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/buttonIcons.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/critical_icon.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/dialogelements.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/dialogframe.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/dialogframeleftright.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/dialogframetopbottom.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/dialogtitle.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/down.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/iconsep.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/information_icon.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/left.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/menus.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/node.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/progress.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/resize.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/right.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/scroll_icon.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/sep.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/sep_solid.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/style.css delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/style.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/style_fe.css delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/tabs.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/up.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/wait01.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/wait02.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_coloredline/warning_icon.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/bolist.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/button.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/buttonIcons.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/critical_icon.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/dialogelements.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/dialogframe.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/dialogframeleftright.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/dialogframetopbottom.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/dialogtitle.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/down.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/iconsep.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/information_icon.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/left.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/menus.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/node.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/progress.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/resize.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/right.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/scroll_icon.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/sep.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/sep_solid.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/style.css delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/style.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/style_fe.css delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/tabs.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/up.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/wait01.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/wait02.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_corporate/warning_icon.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/bolist.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/button.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/buttonIcons.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/critical_icon.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/dialogelements.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/dialogframe.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/dialogframeleftright.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/dialogframetopbottom.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/dialogtitle.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/down.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/iconsep.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/information_icon.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/left.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/menus.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/node.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/progress.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/resize.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/right.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/scroll_icon.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/sep.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/sep_solid.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/style.css delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/style.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/style_fe.css delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/tabs.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/up.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/wait01.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/wait02.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_default/warning_icon.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/background_field.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/background_menusel.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/bolist.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/button.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/buttonIcons.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/critical_icon.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/critical_icon.png delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/dialogelements.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/dialogframe.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/dialogframeleftright.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/dialogframetopbottom.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/dialogtitle.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/down.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/hgrab.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/horiz_tabs.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/iconsep.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/information_icon.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/left.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/menuitem_check.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/menus.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/node.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/panemenu.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/panetitle.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/progress.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/resize.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/right.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/scroll_icon.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/sep.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/sep_solid.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/style.css delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/style.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/style_fe.css delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/tabs.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/toolbar_elements.png delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/up.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/vgrab.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/wait01.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/wait02.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/skin_standard/warning_icon.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/swap.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/transp.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/images/tree.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/language/cs/labels.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/language/da/labels.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/language/de/labels.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/language/en/labels.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/language/es/labels.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/language/fi/labels.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/language/fr/labels.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/language/hu/labels.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/language/it/labels.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/language/ja/labels.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/language/ko/labels.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/language/nb/labels.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/language/nl/labels.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/language/pl/labels.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/language/pt/labels.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/language/ru/labels.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/language/sk/labels.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/language/sv/labels.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/language/th/labels.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/language/tr/labels.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/language/zh_CN/labels.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/language/zh_TW/labels.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/lov.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/menu.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/palette.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/prompttree.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/psheet.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/andorwidget.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/basicDialog.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/blockWhileWait.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/bolist.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/borderswidget.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/buttons.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/calendar.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/checktree.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/default.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/dim.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/dim_close.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/dim_o.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/dim_open.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/empty.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/eventsDialog.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/fieldswidget.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/format.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/framezone.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/grabber.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/iconlistpopupwidget.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/iconscrollmenuwidget.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/imgtabs.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/inconwidget.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/infowidget.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/lov.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/measure.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/measure_o.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/menu.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/navigation.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/palettes.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/pane.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/parent_dialog.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/progressBar.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/prompttree.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/qualif.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/scrolltabs.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/simplelist.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/skinIntl.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/tabs.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/textcombowidget.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/tooltipwidget.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/treeicons.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/treeview.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/unv_close.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/unv_o.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/unv_open.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/waitDialog.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/treeview.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/validator/default.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/validator/validator_res.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/waitdialog.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dt_param.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/external/date.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/log4javascript/log4javascript.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/log4javascript/log4javascript_stub.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/log4javascript/log4javascript_stub_uncompressed.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/log4javascript/log4javascript_uncompressed.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/log4javascript/main.css delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/previewerror.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/prompts.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/prompts_param.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/swfobject/swfobject.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/parameterUIController-compressed.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/processindicator.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/promptengine-compressed.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/css/promptengine2.css delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/css/promptengine_default.css delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/html/calendar.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/html/calendarbottom.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/html/calendartop.html delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/addallfield.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/addallfield_over.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/addfield.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/addfield_over.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/back.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/back_over.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/background_field.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/button.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/button_left_normal.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/button_middle_normal.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/button_right_normal.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/calendar.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/cfilter.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/cfilter_over.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/dialogelements.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/dialogtitle.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/error.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/errormsg.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/filter.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/filter_over.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/forward.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/forward_over.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/info.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/infomsg.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/minus.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/next.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/next_over.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/plus.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/prev.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/prev_over.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/resize.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/transp.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/warning.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/warningmsg.gif delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/initDhtmlLib.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_calendar.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_calendar2.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_prompts.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_prompts2.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_strings_cs.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_strings_da.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_strings_de.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_strings_en.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_strings_es.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_strings_fi.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_strings_fr.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_strings_hu.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_strings_it.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_strings_ja.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_strings_ko.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_strings_nb.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_strings_nl.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_strings_pl.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_strings_pt.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_strings_ru.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_strings_sk.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_strings_sv.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_strings_th.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_strings_tr.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_strings_zh_CN.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_strings_zh_TW.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/urlreporting/activexviewer.js delete mode 100644 aspnet_client/system_web/2_0_50727/crystalreportviewers13/urlreporting/appletviewer.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer_res_cs.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer_res_da.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer_res_de.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer_res_en.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer_res_es.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer_res_fi.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer_res_fr.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer_res_hu.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer_res_it.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer_res_ja.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer_res_ko.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer_res_nb.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer_res_nl.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer_res_pl.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer_res_pt.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer_res_ru.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer_res_sk.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer_res_sv.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer_res_th.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer_res_tr.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer_res_zh_CN.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/CRViewer_res_zh_TW.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/LCIDTable.xml delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl_res_cs.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl_res_da.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl_res_de.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl_res_en.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl_res_es.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl_res_fi.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl_res_fr.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl_res_hu.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl_res_it.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl_res_ja.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl_res_ko.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl_res_nb.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl_res_nl.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl_res_pl.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl_res_pt.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl_res_ru.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl_res_sk.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl_res_sv.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl_res_th.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl_res_tr.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl_res_zh_CN.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/PrintControl_res_zh_TW.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/XERCES27_LICENSE.txt delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/crviewer.dep delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg_res_cs.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg_res_da.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg_res_de.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg_res_en.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg_res_es.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg_res_fi.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg_res_fr.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg_res_hu.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg_res_it.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg_res_ja.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg_res_ko.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg_res_nb.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg_res_nl.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg_res_pl.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg_res_pt.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg_res_ru.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg_res_sk.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg_res_sv.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg_res_th.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg_res_tr.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg_res_zh_CN.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/csprintdlg_res_zh_TW.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/pvlocale-1-0.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp_res_cs.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp_res_da.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp_res_de.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp_res_en.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp_res_es.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp_res_fi.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp_res_fr.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp_res_hu.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp_res_it.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp_res_ja.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp_res_ko.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp_res_nb.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp_res_nl.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp_res_pl.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp_res_pt.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp_res_ru.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp_res_sk.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp_res_sv.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp_res_th.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp_res_tr.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp_res_zh_CN.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/sviewhlp_res_zh_TW.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs_res_cs.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs_res_da.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs_res_de.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs_res_en.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs_res_es.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs_res_fi.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs_res_fr.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs_res_hu.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs_res_it.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs_res_ja.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs_res_ko.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs_res_nb.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs_res_nl.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs_res_pl.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs_res_pt.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs_res_ru.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs_res_sk.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs_res_sv.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs_res_th.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs_res_tr.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs_res_zh_CN.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/swebrs_res_zh_TW.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl_res_cs.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl_res_da.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl_res_de.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl_res_en.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl_res_es.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl_res_fi.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl_res_fr.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl_res_hu.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl_res_it.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl_res_ja.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl_res_ko.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl_res_nb.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl_res_nl.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl_res_pl.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl_res_pt.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl_res_ru.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl_res_sk.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl_res_sv.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl_res_th.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl_res_tr.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl_res_zh_CN.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/PrintControl_res_zh_TW.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/XERCES27_LICENSE.txt delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg_res_cs.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg_res_da.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg_res_de.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg_res_en.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg_res_es.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg_res_fi.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg_res_fr.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg_res_hu.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg_res_it.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg_res_ja.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg_res_ko.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg_res_nb.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg_res_nl.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg_res_pl.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg_res_pt.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg_res_ru.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg_res_sk.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg_res_sv.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg_res_th.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg_res_tr.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg_res_zh_CN.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/csprintdlg_res_zh_TW.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/pvlocale-1-0.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/win64_x64/xerces-c_2_7.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/ActiveXControls/xerces-c_2_7.dll delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allInOne.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allStrings_cs.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allStrings_da.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allStrings_de.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allStrings_en.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allStrings_es.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allStrings_fi.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allStrings_fr.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allStrings_hu.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allStrings_it.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allStrings_ja.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allStrings_ko.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allStrings_nb.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allStrings_nl.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allStrings_pl.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allStrings_pt.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allStrings_ru.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allStrings_sk.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allStrings_sv.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allStrings_th.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allStrings_tr.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allStrings_zh_CN.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/allStrings_zh_TW.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/crsmarttag.asp delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/crsmarttag.jsp delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/crystalimagehandler.asp delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/css/cedefault.css delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/css/default.css delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/css/exception.css delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/css/prompting.css delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/html/calendar.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/html/calendarbottom.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/html/calendartop.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/imagehandlerdotnetbridge.aspx delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/buttonl.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/buttonm.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/buttonr.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortActive100.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortActive150.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortActive200.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortActive250.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortActive300.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortActive350.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortActive400.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortActive50.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortHover100.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortHover150.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortHover200.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortHover250.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortHover300.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortHover350.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortHover400.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortHover50.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortInactive100.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortInactive150.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortInactive200.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortInactive250.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortInactive300.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortInactive400.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortInactive50.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortActive100.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortActive150.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortActive200.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortActive250.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortActive300.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortActive350.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortActive400.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortActive50.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortHover100.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortHover150.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortHover200.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortHover250.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortHover300.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortHover350.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortHover400.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortHover50.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortInactive100.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortInactive150.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortInactive200.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortInactive250.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortInactive300.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortInactive400.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortInactive50.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/FlexParameterBridge.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/KeyDownEvent.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/3rdParty.txt delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Async.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Base.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Color.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Controls.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/DOM.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/DateTime.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/DragAndDrop.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Format.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Iter.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/License.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Logging.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/LoggingPane.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/MochiKit.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/MockDOM.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/New.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Signal.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Sortable.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Style.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Test.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Visual.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/__package__.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/calendar.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/calendar_param.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ArgumentNormalizer.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ButtonList.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Calendar.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Colors.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Dialogs.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/GroupTree.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/GroupTreeListener.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/GroupTreeNode.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/IOAdapters.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ImageSprites.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/LeftPanel.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/OptionalParameterUI.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/OptionalParameterValueRow.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/PanelHeader.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/PanelNavigator.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/PanelNavigatorItem.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Parameter.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterController.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterDialog.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterInfoRow.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterPanel.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterPanelToolbar.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterUI.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterValueRow.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/PromptPage.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/RangeField.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ReportAlbum.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ReportPage.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ReportView.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Separator.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/SharedWidgetHolder.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/SignalDisposer.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/StackedPanel.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/StackedTab.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/StateManager.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Statusbar.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/TextCombo.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/TextField.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ToolPanel.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Toolbar.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Viewer.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ViewerFlexParameterAdapter.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ViewerListener.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/WarningPopup.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/api.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/bobjcallback.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/common.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/crv.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/dom.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/encoding.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/event.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/html.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/StackedTab.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/WarningPopupTriangle.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/allInOne.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/allInOneBG.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/arrow_button_depressed.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/arrow_button_hover.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/breadcrumbSep.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/calendar.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/catalyst.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/clearValues.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/clear_x.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/closePanel.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/delete.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/drill_cursor.cur delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/export.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/filledCircle.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/first.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/grouptree_toggle.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/hollowCircle.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/last.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/leftTriangle.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/line.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/logo.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/magnify.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/min.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/next.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/open_parameter_arrow.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/panelHeaderBG.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/panelNavigatorItemHL.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/panelNavigatorItemSelectedBG.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/panel_toggle.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/param_datafetching.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/param_dirty.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/param_info.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/param_run.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/param_warning.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/plus.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/prev.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/print.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/refresh.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/rightTriangle.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/search.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/separator.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/style.css delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/toolbar_background.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/toolbar_button_depressed.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/toolbar_button_hover.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/toolbar_buttongroup_background.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/toolbar_buttongroup_left.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/toolbar_buttongroup_right.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/toolbar_menuarrow_depressed.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/toolbar_menuarrow_hover.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/toolbar_pagenav_buttons.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/toolbar_separator_icon.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/undo.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/images/up.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/initDhtmlLib.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/strings_cs.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/strings_da.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/strings_de.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/strings_en.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/strings_es.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/strings_fi.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/strings_fr.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/strings_hu.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/strings_it.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/strings_ja.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/strings_ko.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/strings_nb.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/strings_nl.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/strings_pl.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/strings_pt.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/strings_ru.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/strings_sk.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/strings_sv.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/strings_th.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/strings_tr.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/strings_zh_CN.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/strings_zh_TW.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewerinclude.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/bolist.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/calendar.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/dialog.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/dom.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/empty.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/borders.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/help.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/loading.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/lov.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/min.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/plus.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/print.css delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/print_fe.css delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/prompt.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/resizepattern.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/bolist.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/button.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/buttonIcons.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/critical_icon.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/dialogelements.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/dialogframe.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/dialogframeleftright.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/dialogframetopbottom.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/dialogtitle.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/down.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/iconsep.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/information_icon.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/left.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/menus.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/node.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/progress.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/resize.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/right.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/scroll_icon.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/sep.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/sep_solid.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/style.css delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/style.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/style_fe.css delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/tabs.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/up.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/wait01.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/wait02.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_coloredline/warning_icon.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/bolist.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/button.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/buttonIcons.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/critical_icon.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/dialogelements.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/dialogframe.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/dialogframeleftright.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/dialogframetopbottom.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/dialogtitle.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/down.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/iconsep.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/information_icon.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/left.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/menus.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/node.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/progress.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/resize.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/right.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/scroll_icon.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/sep.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/sep_solid.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/style.css delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/style.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/style_fe.css delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/tabs.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/up.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/wait01.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/wait02.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_corporate/warning_icon.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/bolist.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/button.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/buttonIcons.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/critical_icon.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/dialogelements.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/dialogframe.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/dialogframeleftright.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/dialogframetopbottom.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/dialogtitle.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/down.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/iconsep.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/information_icon.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/left.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/menus.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/node.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/progress.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/resize.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/right.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/scroll_icon.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/sep.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/sep_solid.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/style.css delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/style.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/style_fe.css delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/tabs.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/up.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/wait01.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/wait02.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_default/warning_icon.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/background_field.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/background_menusel.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/bolist.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/button.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/buttonIcons.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/critical_icon.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/critical_icon.png delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/dialogelements.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/dialogframe.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/dialogframeleftright.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/dialogframetopbottom.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/dialogtitle.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/down.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/hgrab.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/horiz_tabs.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/iconsep.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/information_icon.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/left.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/menuitem_check.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/menus.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/node.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/panemenu.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/panetitle.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/progress.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/resize.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/right.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/scroll_icon.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/sep.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/sep_solid.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/style.css delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/style.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/style_fe.css delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/tabs.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/toolbar_elements.png delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/up.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/vgrab.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/wait01.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/wait02.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/skin_standard/warning_icon.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/swap.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/transp.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/images/tree.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/language/cs/labels.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/language/da/labels.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/language/de/labels.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/language/en/labels.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/language/es/labels.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/language/fi/labels.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/language/fr/labels.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/language/hu/labels.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/language/it/labels.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/language/ja/labels.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/language/ko/labels.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/language/nb/labels.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/language/nl/labels.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/language/pl/labels.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/language/pt/labels.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/language/ru/labels.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/language/sk/labels.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/language/sv/labels.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/language/th/labels.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/language/tr/labels.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/language/zh_CN/labels.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/language/zh_TW/labels.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/lov.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/menu.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/palette.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/prompttree.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/psheet.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/andorwidget.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/basicDialog.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/blockWhileWait.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/bolist.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/borderswidget.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/buttons.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/calendar.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/checktree.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/default.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/dim.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/dim_close.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/dim_o.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/dim_open.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/empty.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/eventsDialog.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/fieldswidget.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/format.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/framezone.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/grabber.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/iconlistpopupwidget.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/iconscrollmenuwidget.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/imgtabs.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/inconwidget.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/infowidget.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/lov.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/measure.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/measure_o.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/menu.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/navigation.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/palettes.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/pane.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/parent_dialog.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/progressBar.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/prompttree.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/qualif.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/scrolltabs.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/simplelist.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/skinIntl.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/tabs.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/textcombowidget.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/tooltipwidget.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/treeicons.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/treeview.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/unv_close.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/unv_o.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/unv_open.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/waitDialog.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/treeview.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/validator/default.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/validator/validator_res.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/waitdialog.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/dt_param.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/external/date.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/log4javascript/log4javascript.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/log4javascript/log4javascript_stub.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/log4javascript/log4javascript_stub_uncompressed.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/log4javascript/log4javascript_uncompressed.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/log4javascript/main.css delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/previewerror.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/prompts.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/prompts_param.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/js/swfobject/swfobject.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/parameterUIController-compressed.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/preview.aspx delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/preview.jsp delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/processindicator.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/promptengine-compressed.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/css/promptengine2.css delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/css/promptengine_default.css delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/html/calendar.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/html/calendarbottom.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/html/calendartop.html delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/addallfield.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/addallfield_over.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/addfield.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/addfield_over.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/back.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/back_over.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/background_field.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/button.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/button_left_normal.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/button_middle_normal.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/button_right_normal.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/calendar.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/cfilter.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/cfilter_over.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/dialogelements.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/dialogtitle.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/error.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/errormsg.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/filter.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/filter_over.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/forward.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/forward_over.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/info.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/infomsg.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/minus.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/next.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/next_over.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/plus.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/prev.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/prev_over.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/resize.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/transp.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/warning.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/warningmsg.gif delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/initDhtmlLib.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_calendar.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_calendar2.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_prompts.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_prompts2.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_strings_cs.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_strings_da.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_strings_de.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_strings_en.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_strings_es.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_strings_fi.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_strings_fr.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_strings_hu.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_strings_it.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_strings_ja.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_strings_ko.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_strings_nb.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_strings_nl.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_strings_pl.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_strings_pt.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_strings_ru.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_strings_sk.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_strings_sv.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_strings_th.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_strings_tr.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_strings_zh_CN.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_strings_zh_TW.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/urlreporting/activexviewer.js delete mode 100644 aspnet_client/system_web/4_6_81/crystalreportviewers/urlreporting/appletviewer.js diff --git a/AF/CatTiposServiciosMateriales.aspx.cs b/AF/CatTiposServiciosMateriales.aspx.cs index 91633b322..e5b360f3b 100644 --- a/AF/CatTiposServiciosMateriales.aspx.cs +++ b/AF/CatTiposServiciosMateriales.aspx.cs @@ -33,7 +33,7 @@ public partial class AF_CatTiposServiciosMateriales : ClsPaginas private void CargaDatos() { ClsAF ObjAF = new ClsAF(); - if (ObjAF.GetTiposServiciosMaterial(-1, -1)) + if (ObjAF.GetTiposServiciosMaterial(-1, -1,UsuarioActual.CveEmpresa )) { GvDatos.DataSource = ObjAF.DtResultados; GvDatos.DataBind(); @@ -85,7 +85,7 @@ public partial class AF_CatTiposServiciosMateriales : ClsPaginas GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer); CveTipoServicioMaterial = GvRow.DataKey("CveTipoServicioMaterial").ToEntero(); ClsAF ObjAF = new ClsAF(); - if (ObjAF.DeleteTiposServiciosMaterial(CveTipoServicioMaterial)) + if (ObjAF.DeleteTiposServiciosMaterial(CveTipoServicioMaterial,UsuarioActual.CveEmpresa)) { CargaDatos(); UpDatos.Update(); diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb index 4956aa129..54b6235a9 100644 --- a/App_Code/ClsContabilidad.vb +++ b/App_Code/ClsContabilidad.vb @@ -5723,8 +5723,8 @@ Public Class ClsContabilidad End Function Public Function AddCuentasAsignaciones(Optional CveConceptoContable As Integer = -1, Optional CveCuenta As Integer = -1, Optional IdCtaContable As Integer = -1, - Optional CveProveedor As Integer = -1, Optional CveCliente As Integer = -1, Optional CvePersonal As Integer = -1, - Optional CveClasificacion As Integer = -1, Optional CveAlmacen As Integer = -1, Optional PorcentajeIVA As Decimal = -1) As Boolean + Optional CveProveedor As Integer = -1, Optional CveCliente As Integer = -1, Optional CvePersonal As Integer = -1, Optional CveClasificacion As Integer = -1, + Optional CveAlmacen As Integer = -1, Optional PorcentajeIVA As Decimal = -1, Optional CveConceptoNomina As Decimal = -1) As Boolean Dim Retorno = False DataAdapter("PA_Conta_CuentasAsignacionesAdd") @@ -5739,6 +5739,7 @@ Public Class ClsContabilidad .Add("@CveClasificacion", SqlDbType.Int).Value = CveClasificacion .Add("@CveAlmacen", SqlDbType.Int).Value = CveAlmacen .Add("@PorcentajeIVA", SqlDbType.Decimal).Value = PorcentajeIVA + .Add("@CveConceptoNomina", SqlDbType.Decimal).Value = CveConceptoNomina End With Try @@ -5773,7 +5774,7 @@ Public Class ClsContabilidad Public Function UpdateCuentasAsignaciones(CveConceptoAsignacion As Integer, Optional CveConceptoContable As Integer = -1, Optional CveCuenta As Integer = -1, Optional IdCtaContable As Integer = -1, Optional CveProveedor As Integer = -1, Optional CveCliente As Integer = -1, Optional CvePersonal As Integer = -1, Optional CveClasificacion As Integer = -1, Optional CveAlmacen As Integer = -1, - Optional PorcentajeIVA As Decimal = -1) As Boolean + Optional PorcentajeIVA As Decimal = -1, Optional CveConceptoNomina As Decimal = -1) As Boolean Dim Retorno = False DataAdapter("PA_Conta_CuentasAsignacionesUpdate") @@ -5789,6 +5790,7 @@ Public Class ClsContabilidad .Add("@CveClasificacion", SqlDbType.Int).Value = CveClasificacion .Add("@CveAlmacen", SqlDbType.Int).Value = CveAlmacen .Add("@PorcentajeIVA", SqlDbType.Decimal).Value = PorcentajeIVA + .Add("@CveConceptoNomina", SqlDbType.Decimal).Value = CveConceptoNomina End With Try diff --git a/App_Code/ClsNominas.vb b/App_Code/ClsNominas.vb index 75a06a6fe..133cb56e1 100644 --- a/App_Code/ClsNominas.vb +++ b/App_Code/ClsNominas.vb @@ -2031,6 +2031,28 @@ Public Class ClsNominas End With + SqlAdapter.Fill(DTSet) + retorno = True + Catch sqEx As SqlException + retorno = False + OnError("Ocurrió un error al Realizar el calculo de nomina.", sqEx, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + Catch ex As Exception + retorno = False + OnError("Ocurrió un error al Realizar el calculo de nomina.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return retorno + End Function + + Public Function GetCalculoSBC(CveEmpresa As Integer, FechaCalculo As String) As Boolean + Dim retorno As Boolean = False + Try + DTSet = New DataSet() + DataAdapter("PA_GetCalculoSBC", CommandType.StoredProcedure) + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@Fecha", SqlDbType.Date).Value = FechaCalculo + End With + SqlAdapter.Fill(DTSet) retorno = True Catch sqEx As SqlException diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index b4557e050..b1a8ffaf3 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -3816,7 +3816,8 @@ Public Class ClsPaginas If Application("GlobalSIGAppPaginas") Is Nothing Then PaginaDict = New System.Collections.Hashtable - PaginaDict.Add("/Nomina/Acumulados.aspx".ToUpper(), -1) + PaginaDict.Add("/Nomina/Acumulados.aspx".ToUpper(), 916) + PaginaDict.Add("/RH/CalculoSBC.aspx".ToUpper(), 915) PaginaDict.Add("/Inicio.aspx".ToUpper(), -1) PaginaDict.Add("/reporteador.aspx".ToUpper(), -1) PaginaDict.Add("/General/CATIEPSxEntidadFed.aspx".ToUpper(), 719) diff --git a/App_Code/Empresa.vb b/App_Code/Empresa.vb index eec8c4022..e445ab25d 100644 --- a/App_Code/Empresa.vb +++ b/App_Code/Empresa.vb @@ -3,7 +3,7 @@ Option Strict On Public Class Empresa - + Public Property GralSoloProyecto As Boolean Public Property CveEmpresa As Integer Public Property Empresa As String Public Property NombreCorto As String diff --git a/Bancos/PopIE.aspx.vb b/Bancos/PopIE.aspx.vb index a81c67acb..a85cde6f2 100644 --- a/Bancos/PopIE.aspx.vb +++ b/Bancos/PopIE.aspx.vb @@ -363,4 +363,44 @@ Partial Class Bancos_PopIE End If End If End Sub + + Protected Sub BtnEliminarCompra_Click(sender As Object, e As EventArgs) + + End Sub + + Protected Sub ChkPagarPesos_CheckedChanged(sender As Object, e As EventArgs) + + End Sub + + Protected Sub ChkPagarDolares_CheckedChanged(sender As Object, e As EventArgs) + + End Sub + + Protected Sub CVImporteDolares_ServerValidate(source As Object, args As ServerValidateEventArgs) + + End Sub + + Protected Sub CVImportePesos_ServerValidate(source As Object, args As ServerValidateEventArgs) + + End Sub + + Protected Sub DdlCuentaDeposito_SelectedIndexChanged(sender As Object, e As EventArgs) + + End Sub + + Protected Sub ChkPagarPesosDeudores_CheckedChanged(sender As Object, e As EventArgs) + + End Sub + + Protected Sub ChkPagarDolaresDeudores_CheckedChanged(sender As Object, e As EventArgs) + + End Sub + + Protected Sub CvImporteDolaresDeudores_ServerValidate(source As Object, args As ServerValidateEventArgs) + + End Sub + + Protected Sub CveImportePesosDeudores_ServerValidate(source As Object, args As ServerValidateEventArgs) + + End Sub End Class \ No newline at end of file diff --git a/Bancos/RepComprobaciones.aspx.cs b/Bancos/RepComprobaciones.aspx.cs index 8c167511a..ba1cc8cb2 100644 --- a/Bancos/RepComprobaciones.aspx.cs +++ b/Bancos/RepComprobaciones.aspx.cs @@ -61,7 +61,7 @@ public partial class Bancos_RepComprobaciones : ClsPaginas } protected void CargaCuentas() { - DdlCuentas.DataSource = get_GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:= UsuarioActual.CveEmpresa).FiltraParametros("Banco = 'Empresa'"); + DdlCuentas.DataSource = get_GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa: UsuarioActual.CveEmpresa).FiltraParametros("Banco = 'Empresa'"); DdlCuentas.DataBind(); DdlCuentas.Items.Insert(0, new ListItem("Seleccione", "-1")); DdlCuentas.SelectedValue = "-1"; diff --git a/Bancos/RepProgramarRecursos.aspx.vb b/Bancos/RepProgramarRecursos.aspx.vb index 99b914bed..9d3ad6219 100644 --- a/Bancos/RepProgramarRecursos.aspx.vb +++ b/Bancos/RepProgramarRecursos.aspx.vb @@ -160,7 +160,7 @@ Partial Class Bancos_RepProgramarRecursos Opcion = IfNull(Request("Op"), "-1").ToString - If UsuarioActual.Empresa.GralSoloProyecto Then ' solo muestar el subproyecto + If True Then 'UsuarioActual.Empresa.GralSoloProyecto Then ' solo muestar el subproyecto TdProyecto.Visible = False TdSubProyectoTitulo.Visible = False Dim script As String = "Sys.Application.add_load(function (s, e) { $('#tsubprocto').slideDown(200); $('#subproyecto').before($('#dropsubproyecto')); });" diff --git a/Compras/CatTipoGasto.aspx.cs b/Compras/CatTipoGasto.aspx.cs index a30f0486c..1d1c7500f 100644 --- a/Compras/CatTipoGasto.aspx.cs +++ b/Compras/CatTipoGasto.aspx.cs @@ -46,7 +46,7 @@ public partial class Compras_CatTipoGasto : ClsPaginas ClsCompras ObjCompras = new ClsCompras(); if (ObjCompras.GetTipoGasto(-1, -1)) { - set_GlobalDTTiposGastos(UsuarioActual.CveEmpresa, ObjCompras.DtResultados); + set_GlobalDTTiposGastos(UsuarioActual.CveEmpresa,1, ObjCompras.DtResultados); } ObjCompras.Dispose(); } diff --git a/Compras/RepPagado.aspx.cs b/Compras/RepPagado.aspx.cs index 0de7863ff..d2faa08d1 100644 --- a/Compras/RepPagado.aspx.cs +++ b/Compras/RepPagado.aspx.cs @@ -129,7 +129,7 @@ public partial class Compras_RepPagado : ClsPaginas DdlCuentaBancaria.Items.Clear(); if (DdlBanco.SelectedValue.ToEntero() > 0) { - DdlCuentaBancaria.DataSource = get_GlobalDTBancosCuentas(-1, CveEmpresa:= UsuarioActual.CveEmpresa).FiltraParametros($"CveBanco = {DdlBanco.SelectedValue.ToEntero()}"); + DdlCuentaBancaria.DataSource = get_GlobalDTBancosCuentas(-1, CveEmpresa: UsuarioActual.CveEmpresa).FiltraParametros($"CveBanco = {DdlBanco.SelectedValue.ToEntero()}"); } DdlCuentaBancaria.Items.Insert(0, new ListItem("Todos", "-1")); DdlCuentaBancaria.DataBind(); diff --git a/Compras/RepPagadoPeriodo.aspx.cs b/Compras/RepPagadoPeriodo.aspx.cs index d1ff01d33..7de9ab3b3 100644 --- a/Compras/RepPagadoPeriodo.aspx.cs +++ b/Compras/RepPagadoPeriodo.aspx.cs @@ -137,7 +137,7 @@ public partial class Compras_RepPagadoPeriodo : ClsPaginas DdlCuentaBancaria.Items.Clear(); if (DdlBanco.SelectedValue.ToEntero() > 0) { - DdlCuentaBancaria.DataSource = get_GlobalDTBancosCuentas(-1, CveEmpresa:= UsuarioActual.CveEmpresa).FiltraParametros($"CveBanco = {DdlBanco.SelectedValue.ToEntero()}"); + DdlCuentaBancaria.DataSource = get_GlobalDTBancosCuentas(-1, CveEmpresa: UsuarioActual.CveEmpresa).FiltraParametros($"CveBanco = {DdlBanco.SelectedValue.ToEntero()}"); } DdlCuentaBancaria.Items.Insert(0, new ListItem("Todos", "-1")); DdlCuentaBancaria.DataBind(); diff --git a/Contabilidad2/CatCuentasAsignaciones.aspx b/Contabilidad2/CatCuentasAsignaciones.aspx index 768a1edda..f326424ab 100644 --- a/Contabilidad2/CatCuentasAsignaciones.aspx +++ b/Contabilidad2/CatCuentasAsignaciones.aspx @@ -24,7 +24,7 @@ @@ -106,6 +106,10 @@ +
+ + +
diff --git a/Contabilidad2/CatCuentasAsignaciones.aspx.vb b/Contabilidad2/CatCuentasAsignaciones.aspx.vb index 6470747bb..762edbba8 100644 --- a/Contabilidad2/CatCuentasAsignaciones.aspx.vb +++ b/Contabilidad2/CatCuentasAsignaciones.aspx.vb @@ -31,6 +31,9 @@ Partial Class Contabilidad2_CatCuentasAsignaciones End Sub Private Sub CargaDatosModal() + + DdlConceptoNomina.DataSource = GlobalDTNomConceptos(UsuarioActual.CveEmpresa) + DdlConceptoNomina.DataBind() Dim ObjConta As New ClsContabilidad If ObjConta.GetConta_ConceptosContables() Then @@ -60,6 +63,7 @@ Partial Class Contabilidad2_CatCuentasAsignaciones DdlClasificacion.DataBind() DdlAlmacen.DataBind() + DdlConceptoNomina.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlCconceptosContables.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlCuenta.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlProveedor.Items.Insert(0, New ListItem("Seleccione", "-1")) @@ -72,6 +76,7 @@ Partial Class Contabilidad2_CatCuentasAsignaciones CveConceptoAsignacion = GvRow.DataKey("CveCuentaAsignacion").ToEntero DdlCconceptosContables.SelectedValue = GvRow.DataKey("CveConceptoContable").ToEntero DdlCuenta.SelectedValue = GvRow.DataKey("CveCuenta").ToEntero + DdlConceptoNomina.SelectedValue = GvRow.DataKey("CveConceptoNomina").ToEntero DdlProveedor.SelectedValue = GvRow.DataKey("CveProveedor").ToEntero DdlClasificacion.SelectedValue = GvRow.DataKey("CveClasificacion").ToEntero DdlAlmacen.SelectedValue = GvRow.DataKey("CveAlmacen").ToEntero @@ -123,6 +128,7 @@ Partial Class Contabilidad2_CatCuentasAsignaciones DdlProveedor.SelectedValue = -1 DdlClasificacion.SelectedValue = -1 DdlAlmacen.SelectedValue = -1 + DdlConceptoNomina.SelectedValue = -1 TxtIdCuentaContable.Text = "" TxtPorcentajeIVA.Text = "" DdlClientes.ddl.DataSource = "" @@ -143,13 +149,13 @@ Partial Class Contabilidad2_CatCuentasAsignaciones If Not ObjConta.AddCuentasAsignaciones(DdlCconceptosContables.SelectedValue.ToEntero, DdlCuenta.SelectedValue.ToEntero, TxtIdCuentaContable.Text.ToEntero, DdlProveedor.SelectedValue.ToEntero, DdlClientes.SelectedValue.ToEntero, DdlPersonal.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero, DdlAlmacen.SelectedValue.ToEntero, TxtPorcentajeIVA.Text.ToDecimal) Then - ErrorString = "Error al Agregar" + ErrorString = "Error al agregar" End If ElseIf LbAgregar.Text = "Actualizar" Then If Not ObjConta.UpdateCuentasAsignaciones(CveConceptoAsignacion, DdlCconceptosContables.SelectedValue.ToEntero, DdlCuenta.SelectedValue.ToEntero, TxtIdCuentaContable.Text.ToEntero, DdlProveedor.SelectedValue.ToEntero, DdlClientes.SelectedValue.ToEntero, DdlPersonal.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero, DdlAlmacen.SelectedValue.ToEntero, TxtPorcentajeIVA.Text.ToDecimal) Then - ErrorString = "Error al Actualizar" + ErrorString = "Error al actualizar" End If End If ObjConta.Dispose() diff --git a/Contabilidad2/RepAnexoCatalogoMensualHorizontal.aspx.vb b/Contabilidad2/RepAnexoCatalogoMensualHorizontal.aspx.vb index e2ab70cc6..d8c74441f 100644 --- a/Contabilidad2/RepAnexoCatalogoMensualHorizontal.aspx.vb +++ b/Contabilidad2/RepAnexoCatalogoMensualHorizontal.aspx.vb @@ -270,19 +270,19 @@ Partial Class Contabilidad_RepAnexoCatalogoMensualHorizontal End If End Sub - Protected Sub LnkImprimir_Click(sender As Object, e As EventArgs) Handles LnkImprimir.Click - If Not IsNothing(DtDatos) Then - ImprimirReporte() - End If - End Sub + 'Protected Sub LnkImprimir_Click(sender As Object, e As EventArgs) Handles LnkImprimir.Click + ' If Not IsNothing(DtDatos) Then + ' ImprimirReporte() + ' End If + 'End Sub - Protected Sub LnkExcel_Click(sender As Object, e As EventArgs) Handles LnkExcel.Click - If Not IsNothing(DtDatos) Then - ImprimirReporte("Excel") - 'GvDatos.ExportToExcelG("AnexoCatalogo" & Now.ToShortDateString & ".xlsx") - 'GvDatos.ExportToExcelG("ExistenciasHorizontal.xlsx", "Anexo Catalogo", UsuarioActual, "".ToString, 100, 200) - End If - End Sub + 'Protected Sub LnkExcel_Click(sender As Object, e As EventArgs) Handles LnkExcel.Click + ' If Not IsNothing(DtDatos) Then + ' ImprimirReporte("Excel") + ' 'GvDatos.ExportToExcelG("AnexoCatalogo" & Now.ToShortDateString & ".xlsx") + ' 'GvDatos.ExportToExcelG("ExistenciasHorizontal.xlsx", "Anexo Catalogo", UsuarioActual, "".ToString, 100, 200) + ' End If + 'End Sub Private Sub ImprimirReporte(Optional Formato As String = "PDF") 'ubicacion del rdlc Dim reportpath As String = "Contabilidad/Reportes/RepAnexoCatalogo.rdlc" diff --git a/Contabilidad2/RepAnexoCatalogoVertical.aspx.vb b/Contabilidad2/RepAnexoCatalogoVertical.aspx.vb index d0582aa0c..c159f53cf 100644 --- a/Contabilidad2/RepAnexoCatalogoVertical.aspx.vb +++ b/Contabilidad2/RepAnexoCatalogoVertical.aspx.vb @@ -71,7 +71,7 @@ Partial Class Contabilidad2_RepAnexoCatalogoVertical Private Sub CargaDatos() Dim Conta As New ClsContabilidad - If Conta.GetAnexoCatalagoCC(CveCuenta, DdlEjercicio.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, 1, 12) Then + If Conta.GetAnexoCatalagoCC(CveCuenta, DdlEjercicio.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, 1, 12, UsuarioActual.CveUsuario) Then Dim DtHeaders As DataTable = Conta.DSResultados.Tables(0) GvCC.DataSource = Conta.DSResultados.Tables(1) diff --git a/Contratos/ContratosSecciones.aspx b/Contratos/ContratosSecciones.aspx index 0c1dcfa42..5eff363b7 100644 --- a/Contratos/ContratosSecciones.aspx +++ b/Contratos/ContratosSecciones.aspx @@ -1,6 +1,6 @@ <%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="ContratosSecciones.aspx.vb" Inherits="Contratos_ContratosSecciones" %> -<%@ Register Assembly="AspMapNET" Namespace="AspMap.Web" TagPrefix="cc1" %> +<%--<%@ Register Assembly="AspMapNET" Namespace="AspMap.Web" TagPrefix="cc1" %>--%> @@ -13,7 +13,7 @@ - + <%-- @@ -244,7 +244,7 @@ -
+ --%>
diff --git a/Contratos/ContratosSecciones.aspx.vb b/Contratos/ContratosSecciones.aspx.vb index 72aaba93d..ec6d6513d 100644 --- a/Contratos/ContratosSecciones.aspx.vb +++ b/Contratos/ContratosSecciones.aspx.vb @@ -15,504 +15,504 @@ Partial Class Contratos_ContratosSecciones Inherits ClsPaginas -#Region "Propiedades" - Private Property PorBoton As Boolean - Private Property CveContratoSeccion As Integer - Get - Return ViewState("CveContratoSeccion").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveContratoSeccion") = value - End Set - End Property - - Private Property CveContrato As Integer - Get - Return ViewState("CveContrato").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveContrato") = value - End Set - End Property - - Private Property CveClasificacion As Integer - Get - Return ViewState("CveClasificacion").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveClasificacion") = value - End Set - End Property - - Private Property Tipo As String - Get - Return ViewState("Tipo").ToString - End Get - Set(value As String) - ViewState("Tipo") = value - End Set - End Property - - Private Property Modalidad As Integer - Get - Return ViewState("Modalidad").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("Modalidad") = value - End Set - End Property - - Private Property DtDatos As DataTable - Get - Return CType(ViewState("DtDatos"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtDatos") = value - End Set - End Property - - Private Property Seleccionado As String - Get - Return ViewState("Seleccionado").ToString - End Get - Set(value As String) - ViewState("Seleccionado") = value - End Set - End Property -#End Region - - Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load - If Not IsPostBack Then - - ViewState("Orden") = "" - - PorBoton = False - Modalidad = Request("Contratos").ToEntero - ConfiguraModalidad() - 'CveContratoSeccion = -1 - 'CargaSeccion() - 'CargaContratos() - 'CargaClasificacion() - - Seleccionado = "" - CargaMapaGeom(-52441177.6239012, 3577172.53285846) - CveContrato = IfNull(Request("CveContrato"), -1).ToString.ToEntero - CveClasificacion = IfNull(Request("CveClasificacion"), -1).ToString.ToEntero - Tipo = IfNull(Request("Tipo"), "Con").ToString - CargaDatos() - - DdlPS.Items.Insert(0, New System.Web.UI.WebControls.ListItem("Todas", "-1")) - - - 'Me.txtFechaF.Text = Now.ToShortDateString - 'Dim Row() As DataRow = GlobalDTFechasContratosSecciones.Select("CveContratosQueja = -1 AND CveEstatus = 1") - 'If Row.Length > 0 Then - ' txtFechaI.Text = Row(0)("Fecha").ToString.ToDate.ToShortDateString() - 'End If - 'RegistraScript("try { Browser();Acomoda(); } catch (e) {alert(e);}") - End If - CargaMapa() - - End Sub - - Private Sub ConfiguraModalidad() - 'If Modalidad = 1 Then - ' TrProgramar.Visible = True - LblTitulo.Text = "Contratos Secciones" - 'ElseIf Modalidad = 2 Then - ' TrBitacora.Visible = True - ' LblTitulo.Text = "Bitácoras" - ' Page.Title = "SAT - Imprimir Bitácoras" - ' TxtFechaIBit.Text = Now.ToShortDateString - ' TxtFechaFBit.Text = Now.ToShortDateString - 'End If - End Sub - - Private Sub CargaSeccion() - Dim dt As DataTable = GlobalDTContratosSecciones.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) - DdlSeccion.DataSource = dt - DdlSeccion.DataBind() - DdlSeccion.Items.Insert(0, New System.Web.UI.WebControls.ListItem("Todas", "-1")) - DdlSeccionAdd.DataSource = dt - DdlSeccionAdd.DataBind() - - End Sub - - Protected Sub ChkPermitirAvance_CheckedChanged(sender As Object, e As EventArgs) - Dim ObjContrato As New ClsContratos - Dim Row As GridViewRow = DirectCast(DirectCast(sender, CheckBox).NamingContainer, GridViewRow) - ObjContrato.PermitirAvance(GV.DataKeys(Row.RowIndex).Value.ToString.ToEntero, DirectCast(sender, CheckBox).Checked) - ObjContrato.Dispose() - Alert("Se ha permitido avance a la sección") - CargaDatos() - End Sub - - Protected Sub ChkPermitirEstimacion_CheckedChanged(sender As Object, e As EventArgs) - Dim ObjContrato As New ClsContratos - Dim Row As GridViewRow = DirectCast(DirectCast(sender, CheckBox).NamingContainer, GridViewRow) - ObjContrato.PermitirEstimacion(GV.DataKeys(Row.RowIndex).Value.ToString.ToEntero, DirectCast(sender, CheckBox).Checked) - ObjContrato.Dispose() - Alert("Se ha permitido estimar en la sección") - CargaDatos() - End Sub - -#Region "C O M B O S" - Private Sub CargaContratosAdd() - DdlContratoAdd.DataSource = GlobalDTContratos.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) - DdlContratoAdd.DataBind() - ' DdlContratoAdd.Items.Insert(0, New System.Web.UI.WebControls.ListItem("Todas", "-1")) - End Sub - Private Sub CargaClasificacionAdd() - DdlClasificacionAdd.DataSource = GlobalDTClasificaciones.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) - DdlClasificacionAdd.DataBind() - ' DdlClasificacionAdd.Items.Insert(0, New System.Web.UI.WebControls.ListItem("Todas", "-1")) - End Sub - Private Sub CargaPSAdd() - Dim ObjPS As New ClsProductosServicios - If ObjPS.GetPS(-1, DdlClasificacionAdd.SelectedValue.ToString.ToEntero, UsuarioActual.CveEmpresa) Then - DdlPSAdd.DataSource = ObjPS.DtResultados - Else - DdlPSAdd.DataSource = Nothing - End If - DdlPSAdd.DataBind() - - ObjPS.Dispose() - 'DdlPSAdd.Items.Insert(0, New System.Web.UI.WebControls.ListItem("Todas", "-1")) - End Sub - Private Sub CargaSeccionAdd() - 'DdlSeccionAdd.DataSource = GlobalDTContratosSecciones.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) - 'DdlSeccionAdd.DataBind() - 'DdlSeccionAdd.Items.Insert(0, New System.Web.UI.WebControls.ListItem("Todas", "-1")) - Dim ObjSecciones As New ClsContratos - If ObjSecciones.GetSecciones() Then - DdlSeccionAdd.DataSource = ObjSecciones.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) - DdlSeccionAdd.DataBind() - - End If - - ObjSecciones.Dispose() - - End Sub - Private Sub CargaContratos() - DdlContrato.DataSource = GlobalDTContratos.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) - DdlContrato.DataBind() - DdlContrato.Items.Insert(0, New ListItem("Todos", "-1")) - DdlContrato.SelectedValue = "7" - End Sub - Private Sub CargaClasificacion() - DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) - DdlClasificacion.DataBind() - DdlClasificacion.Items.Insert(0, New ListItem("Todas", "-1")) - End Sub - 'Private Sub CargaCategorias() - ' DdlPartidas.DataSource = GlobalDTGralCategorias(UsuarioActual.CveEmpresa) - ' DdlPartidas.DataBind() - ' DdlPartidas.Items.Insert(0, New ListItem("Todas", "-1")) - 'End Sub - Private Sub CargaPS() - Dim ObjPS As New ClsProductosServicios - If ObjPS.GetPS(-1, DdlClasificacion.SelectedValue.ToString.ToEntero, UsuarioActual.CveEmpresa) Then - DdlPS.DataSource = ObjPS.DtResultados.FiltraParametros("", "PS") - Else - DdlPS.DataSource = Nothing - End If - DdlPS.DataBind() - - ObjPS.Dispose() - DdlPS.Items.Insert(0, New ListItem("Todas", "-1")) - End Sub -#End Region - Protected Sub CmdConsultar_Click(sender As Object, e As System.EventArgs) Handles CmdConsultar.Click - CargaDatos() - End Sub - - Private Sub CargaDatos() - PorBoton = True - Dim ContratosSecciones As New ClsContratos() - - - If ContratosSecciones.GetRepContratosAvancesDetalle(-1, CveContrato, CveClasificacion, Tipo, UsuarioActual.CveEmpresa) Then - 'If ContratosSecciones.GetContratosSecciones(-1, DdlEstatus.SelectedValue.ToEntero, DdlPS.SelectedValue.ToEntero, DdlContrato.SelectedValue.ToEntero, -1, -1, FechaI, FechaF) Then - DtDatos = ContratosSecciones.DtResultados - 'DtDatos.Rows.RemoveAt(0) - 'DtDatos.Rows.RemoveAt(0) - ' Cache("DTProgramacion" & UsuarioActual.CveUsuario.ToString()) = ContratosSecciones.DtResultados - GV.DataSource = DtDatos - - - LblTitulo.Text = "Cliente: " & DtDatos.MAX("Cliente") - - DtDatos = DtDatos.FiltraParametros("CveContratoSeccion > 0") - - Else - GV.DataSource = Nothing - End If - ContratosSecciones.Dispose() - GV.DataBind() - CargaMapa() - mapa.ZoomFull() - UpDatos.Update() - End Sub - - Protected Sub GV_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GV.RowCommand - If e.CommandName = "Sel" Then - Seleccionado = e.CommandArgument.ToString - 'GV.SelectRow(e.CommandArgument.ToString.ToEntero - 1) - CargaMapa() - End If - - End Sub - - 'Protected Sub GV_RowCreated(sender As Object, e As GridViewRowEventArgs) Handles GV.RowCreated - ' If e.Row.RowType = DataControlRowType.DataRow Then - ' e.Row.ClientIDMode = ClientIDMode.Static - ' e.Row.ID = String.Format("Tr-{0}", e.Row.DBCampo("ID_GIS")) - ' End If - - 'End Sub - - Protected Sub GV_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GV.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - If e.Row.RowIndex = 0 Then - e.Row.Cells(0).Width = Unit.Pixel(300) 'Seccion - e.Row.Cells(1).Width = Unit.Pixel(100) 'SubSeccion - e.Row.Cells(2).Width = Unit.Pixel(120) 'Cantidad - e.Row.Cells(3).Width = Unit.Pixel(100) 'PU - e.Row.Cells(4).Width = Unit.Pixel(100) 'Permitir Avance - e.Row.Cells(5).Width = Unit.Pixel(100) 'Permitir Estimacion - 'e.Row.Cells(6).Width = Unit.Pixel(100) 'Número Estimación - ' e.Row.Cells(7).Width = Unit.Pixel(100) 'Factura - End If - - e.Row.ClientIDMode = ClientIDMode.Static - e.Row.ID = String.Format("Tr{0}", e.Row.DBCampo("ID_GIS")) - - e.Row.Cells(2).HorizontalAlign = HorizontalAlign.Center - - If e.Row.DBCampo("NumeroContrato") = "" Then - e.Row.CssClass = "SubTotales3" : e.Row.Height = 25 - ElseIf e.Row.DBCampo("Partida") = "" Then - e.Row.CssClass = "SubTotales2" : e.Row.Height = 25 - ElseIf e.Row.DBCampo("PS") = "" Then - e.Row.CssClass = "SubTotales" : e.Row.Height = 25 - ElseIf e.Row.DBCampo("Seccion") = "" Then - e.Row.CssClass = "SubTotales3" : e.Row.Height = 25 - End If - - End If - End Sub - - Private Sub CargaGrid(ByVal Orden As String) - - If Orden <> String.Empty Then - Dim DV As New DataView(CType(Cache("DTProgramacion" & UsuarioActual.CveUsuario.ToString()), DataTable), "", Orden, DataViewRowState.CurrentRows) - GV.DataSource = DV.ToTable() - DV.Dispose() - Else - GV.DataSource = CType(Cache("DTProgramacion" & UsuarioActual.CveUsuario.ToString()), DataTable) - End If - - GV.DataBind() - UpDatos.Update() - - End Sub - - 'Protected Sub CmdBuscar_Click(sender As Object, e As System.EventArgs) Handles CmdBuscar.Click - ' Dim ObjBitacora As New ClsBitacora() - - ' Dim FechaI, FechaF As String - ' FechaI = If(IsDate(TxtFechaIBit.Text.Trim()), TxtFechaIBit.Text.Trim(), "-1") - ' FechaF = If(IsDate(TxtFechaFBit.Text.Trim()), TxtFechaFBit.Text.Trim(), "-1") - - ' If ObjBitacora.GetBitacora(DdlContratos.SelectedValue, FechaI, FechaF) Then - ' GVBitacora.DataSource = ObjBitacora.DtResultados - ' Else - ' GVBitacora.DataSource = Nothing - ' End If - ' ObjBitacora.Dispose() - - ' GVBitacora.DataBind() - 'End Sub - Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacion.SelectedIndexChanged - CargaPS() - End Sub - - Protected Sub BtnAgregar_Click(sender As Object, e As System.EventArgs) Handles BtnAgregar.Click - RegistraScript("PosicionaObjeto('BtnAgregar','divContrato','');") - TrContratos.Visible = True - divContrato.Visible = True - CargaContratosAdd() - CargaClasificacionAdd() - CargaSeccionAdd() - UpContratos.Update() - 'Dim con As New ClsContratos - 'con.AddContratosSecciones(DdlContrato.SelectedValue.ToEntero, DdlPS.SelectedValue.ToEntero, DdlSeccion.SelectedValue.ToEntero, 5, 3, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) - 'con.Dispose() - End Sub - - Protected Sub DdlClasificacionAdd_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacionAdd.SelectedIndexChanged - CargaPSAdd() - End Sub - - Protected Sub BtnAgregarContratoSeccion_Click(sender As Object, e As System.EventArgs) Handles BtnAgregarContratoSeccion.Click - Dim ObjContratosSecciones As New ClsContratos - If ObjContratosSecciones.AddContratosSecciones(DdlContratoAdd.SelectedValue.ToEntero, DdlSeccionAdd.SelectedValue.ToEntero, DdlPSAdd.SelectedValue.ToEntero, TxtCantidad.Text.Trim.ToDouble, TxtPU.Text.Trim.ToDouble, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then - TxtCantidad.Text = "" - TxtPU.Text = "" - Alert("El Nuevo Contrato Sección se Agregó Correctamente.", TipoMensaje.MsgInformacion) - UpContratos.Update() - ViewState("DTContratosSecciones") = ObjContratosSecciones.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) - CargaDatos() - - End If - ObjContratosSecciones.Dispose() - - End Sub - - Protected Sub LBFoto_OnClick(ByVal Sender As Object, ByVal E As EventArgs) - - Dim LB As LinkButton = CType(Sender, LinkButton) - divFotos.Visible = True - - Dim Con As New ClsContratos - If Con.GetContratoSeccion(LB.CommandArgument.ToEntero, UsuarioActual.CveEmpresa) Then - Dim dt As DataTable = Con.DtResultados - RegistraScript("PosicionaObjeto('" & LB.ClientID & "','divFotos','');") - If dt.Rows.Count > 0 Then - Img1.ImageUrl = "/Empresas/66/Avances/Imagenes/" & dt.Rows(0)("Img1").ToString - If dt.Rows(0)("Img2").ToString <> "" Then - Img2.Visible = True - Img2.ImageUrl = "/Empresas/66/Avances/Imagenes/" & dt.Rows(0)("Img2").ToString - End If - If dt.Rows(0)("Img3").ToString <> "" Then - Img3.Visible = True - Img3.ImageUrl = "/Empresas/66/Avances/Imagenes/" & dt.Rows(0)("Img3").ToString - End If - End If - UPFoto.Update() - End If - Con.Dispose() + '#Region "Propiedades" + ' Private Property PorBoton As Boolean + ' Private Property CveContratoSeccion As Integer + ' Get + ' Return ViewState("CveContratoSeccion").ToString.ToEntero + ' End Get + ' Set(value As Integer) + ' ViewState("CveContratoSeccion") = value + ' End Set + ' End Property + + ' Private Property CveContrato As Integer + ' Get + ' Return ViewState("CveContrato").ToString.ToEntero + ' End Get + ' Set(value As Integer) + ' ViewState("CveContrato") = value + ' End Set + ' End Property + + ' Private Property CveClasificacion As Integer + ' Get + ' Return ViewState("CveClasificacion").ToString.ToEntero + ' End Get + ' Set(value As Integer) + ' ViewState("CveClasificacion") = value + ' End Set + ' End Property + + ' Private Property Tipo As String + ' Get + ' Return ViewState("Tipo").ToString + ' End Get + ' Set(value As String) + ' ViewState("Tipo") = value + ' End Set + ' End Property + + ' Private Property Modalidad As Integer + ' Get + ' Return ViewState("Modalidad").ToString.ToEntero + ' End Get + ' Set(value As Integer) + ' ViewState("Modalidad") = value + ' End Set + ' End Property + + ' Private Property DtDatos As DataTable + ' Get + ' Return CType(ViewState("DtDatos"), DataTable) + ' End Get + ' Set(value As DataTable) + ' ViewState("DtDatos") = value + ' End Set + ' End Property + + ' Private Property Seleccionado As String + ' Get + ' Return ViewState("Seleccionado").ToString + ' End Get + ' Set(value As String) + ' ViewState("Seleccionado") = value + ' End Set + ' End Property + '#End Region + + ' Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load + ' If Not IsPostBack Then + + ' ViewState("Orden") = "" + + ' PorBoton = False + ' Modalidad = Request("Contratos").ToEntero + ' ConfiguraModalidad() + ' 'CveContratoSeccion = -1 + ' 'CargaSeccion() + ' 'CargaContratos() + ' 'CargaClasificacion() + + ' Seleccionado = "" + ' CargaMapaGeom(-52441177.6239012, 3577172.53285846) + ' CveContrato = IfNull(Request("CveContrato"), -1).ToString.ToEntero + ' CveClasificacion = IfNull(Request("CveClasificacion"), -1).ToString.ToEntero + ' Tipo = IfNull(Request("Tipo"), "Con").ToString + ' CargaDatos() + + ' DdlPS.Items.Insert(0, New System.Web.UI.WebControls.ListItem("Todas", "-1")) + + + ' 'Me.txtFechaF.Text = Now.ToShortDateString + ' 'Dim Row() As DataRow = GlobalDTFechasContratosSecciones.Select("CveContratosQueja = -1 AND CveEstatus = 1") + ' 'If Row.Length > 0 Then + ' ' txtFechaI.Text = Row(0)("Fecha").ToString.ToDate.ToShortDateString() + ' 'End If + ' 'RegistraScript("try { Browser();Acomoda(); } catch (e) {alert(e);}") + ' End If + ' CargaMapa() + + ' End Sub + + ' Private Sub ConfiguraModalidad() + ' 'If Modalidad = 1 Then + ' ' TrProgramar.Visible = True + ' LblTitulo.Text = "Contratos Secciones" + ' 'ElseIf Modalidad = 2 Then + ' ' TrBitacora.Visible = True + ' ' LblTitulo.Text = "Bitácoras" + ' ' Page.Title = "SAT - Imprimir Bitácoras" + ' ' TxtFechaIBit.Text = Now.ToShortDateString + ' ' TxtFechaFBit.Text = Now.ToShortDateString + ' 'End If + ' End Sub + + ' Private Sub CargaSeccion() + ' Dim dt As DataTable = GlobalDTContratosSecciones.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) + ' DdlSeccion.DataSource = dt + ' DdlSeccion.DataBind() + ' DdlSeccion.Items.Insert(0, New System.Web.UI.WebControls.ListItem("Todas", "-1")) + ' DdlSeccionAdd.DataSource = dt + ' DdlSeccionAdd.DataBind() + + ' End Sub + + ' Protected Sub ChkPermitirAvance_CheckedChanged(sender As Object, e As EventArgs) + ' Dim ObjContrato As New ClsContratos + ' Dim Row As GridViewRow = DirectCast(DirectCast(sender, CheckBox).NamingContainer, GridViewRow) + ' ObjContrato.PermitirAvance(GV.DataKeys(Row.RowIndex).Value.ToString.ToEntero, DirectCast(sender, CheckBox).Checked) + ' ObjContrato.Dispose() + ' Alert("Se ha permitido avance a la sección") + ' CargaDatos() + ' End Sub + + ' Protected Sub ChkPermitirEstimacion_CheckedChanged(sender As Object, e As EventArgs) + ' Dim ObjContrato As New ClsContratos + ' Dim Row As GridViewRow = DirectCast(DirectCast(sender, CheckBox).NamingContainer, GridViewRow) + ' ObjContrato.PermitirEstimacion(GV.DataKeys(Row.RowIndex).Value.ToString.ToEntero, DirectCast(sender, CheckBox).Checked) + ' ObjContrato.Dispose() + ' Alert("Se ha permitido estimar en la sección") + ' CargaDatos() + ' End Sub + + '#Region "C O M B O S" + ' Private Sub CargaContratosAdd() + ' DdlContratoAdd.DataSource = GlobalDTContratos.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) + ' DdlContratoAdd.DataBind() + ' ' DdlContratoAdd.Items.Insert(0, New System.Web.UI.WebControls.ListItem("Todas", "-1")) + ' End Sub + ' Private Sub CargaClasificacionAdd() + ' DdlClasificacionAdd.DataSource = GlobalDTClasificaciones.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) + ' DdlClasificacionAdd.DataBind() + ' ' DdlClasificacionAdd.Items.Insert(0, New System.Web.UI.WebControls.ListItem("Todas", "-1")) + ' End Sub + ' Private Sub CargaPSAdd() + ' Dim ObjPS As New ClsProductosServicios + ' If ObjPS.GetPS(-1, DdlClasificacionAdd.SelectedValue.ToString.ToEntero, UsuarioActual.CveEmpresa) Then + ' DdlPSAdd.DataSource = ObjPS.DtResultados + ' Else + ' DdlPSAdd.DataSource = Nothing + ' End If + ' DdlPSAdd.DataBind() + + ' ObjPS.Dispose() + ' 'DdlPSAdd.Items.Insert(0, New System.Web.UI.WebControls.ListItem("Todas", "-1")) + ' End Sub + ' Private Sub CargaSeccionAdd() + ' 'DdlSeccionAdd.DataSource = GlobalDTContratosSecciones.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) + ' 'DdlSeccionAdd.DataBind() + ' 'DdlSeccionAdd.Items.Insert(0, New System.Web.UI.WebControls.ListItem("Todas", "-1")) + ' Dim ObjSecciones As New ClsContratos + ' If ObjSecciones.GetSecciones() Then + ' DdlSeccionAdd.DataSource = ObjSecciones.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) + ' DdlSeccionAdd.DataBind() + + ' End If + + ' ObjSecciones.Dispose() + + ' End Sub + ' Private Sub CargaContratos() + ' DdlContrato.DataSource = GlobalDTContratos.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) + ' DdlContrato.DataBind() + ' DdlContrato.Items.Insert(0, New ListItem("Todos", "-1")) + ' DdlContrato.SelectedValue = "7" + ' End Sub + ' Private Sub CargaClasificacion() + ' DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) + ' DdlClasificacion.DataBind() + ' DdlClasificacion.Items.Insert(0, New ListItem("Todas", "-1")) + ' End Sub + ' 'Private Sub CargaCategorias() + ' ' DdlPartidas.DataSource = GlobalDTGralCategorias(UsuarioActual.CveEmpresa) + ' ' DdlPartidas.DataBind() + ' ' DdlPartidas.Items.Insert(0, New ListItem("Todas", "-1")) + ' 'End Sub + ' Private Sub CargaPS() + ' Dim ObjPS As New ClsProductosServicios + ' If ObjPS.GetPS(-1, DdlClasificacion.SelectedValue.ToString.ToEntero, UsuarioActual.CveEmpresa) Then + ' DdlPS.DataSource = ObjPS.DtResultados.FiltraParametros("", "PS") + ' Else + ' DdlPS.DataSource = Nothing + ' End If + ' DdlPS.DataBind() + + ' ObjPS.Dispose() + ' DdlPS.Items.Insert(0, New ListItem("Todas", "-1")) + ' End Sub + '#End Region + ' Protected Sub CmdConsultar_Click(sender As Object, e As System.EventArgs) Handles CmdConsultar.Click + ' CargaDatos() + ' End Sub + + ' Private Sub CargaDatos() + ' PorBoton = True + ' Dim ContratosSecciones As New ClsContratos() + + + ' If ContratosSecciones.GetRepContratosAvancesDetalle(-1, CveContrato, CveClasificacion, Tipo, UsuarioActual.CveEmpresa) Then + ' 'If ContratosSecciones.GetContratosSecciones(-1, DdlEstatus.SelectedValue.ToEntero, DdlPS.SelectedValue.ToEntero, DdlContrato.SelectedValue.ToEntero, -1, -1, FechaI, FechaF) Then + ' DtDatos = ContratosSecciones.DtResultados + ' 'DtDatos.Rows.RemoveAt(0) + ' 'DtDatos.Rows.RemoveAt(0) + ' ' Cache("DTProgramacion" & UsuarioActual.CveUsuario.ToString()) = ContratosSecciones.DtResultados + ' GV.DataSource = DtDatos + + + ' LblTitulo.Text = "Cliente: " & DtDatos.MAX("Cliente") + + ' DtDatos = DtDatos.FiltraParametros("CveContratoSeccion > 0") + + ' Else + ' GV.DataSource = Nothing + ' End If + ' ContratosSecciones.Dispose() + ' GV.DataBind() + ' CargaMapa() + ' mapa.ZoomFull() + ' UpDatos.Update() + ' End Sub + + ' Protected Sub GV_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GV.RowCommand + ' If e.CommandName = "Sel" Then + ' Seleccionado = e.CommandArgument.ToString + ' 'GV.SelectRow(e.CommandArgument.ToString.ToEntero - 1) + ' CargaMapa() + ' End If + + ' End Sub + + ' 'Protected Sub GV_RowCreated(sender As Object, e As GridViewRowEventArgs) Handles GV.RowCreated + ' ' If e.Row.RowType = DataControlRowType.DataRow Then + ' ' e.Row.ClientIDMode = ClientIDMode.Static + ' ' e.Row.ID = String.Format("Tr-{0}", e.Row.DBCampo("ID_GIS")) + ' ' End If + + ' 'End Sub + + ' Protected Sub GV_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GV.RowDataBound + ' If e.Row.RowType = DataControlRowType.DataRow Then + ' If e.Row.RowIndex = 0 Then + ' e.Row.Cells(0).Width = Unit.Pixel(300) 'Seccion + ' e.Row.Cells(1).Width = Unit.Pixel(100) 'SubSeccion + ' e.Row.Cells(2).Width = Unit.Pixel(120) 'Cantidad + ' e.Row.Cells(3).Width = Unit.Pixel(100) 'PU + ' e.Row.Cells(4).Width = Unit.Pixel(100) 'Permitir Avance + ' e.Row.Cells(5).Width = Unit.Pixel(100) 'Permitir Estimacion + ' 'e.Row.Cells(6).Width = Unit.Pixel(100) 'Número Estimación + ' ' e.Row.Cells(7).Width = Unit.Pixel(100) 'Factura + ' End If + + ' e.Row.ClientIDMode = ClientIDMode.Static + ' e.Row.ID = String.Format("Tr{0}", e.Row.DBCampo("ID_GIS")) + + ' e.Row.Cells(2).HorizontalAlign = HorizontalAlign.Center + + ' If e.Row.DBCampo("NumeroContrato") = "" Then + ' e.Row.CssClass = "SubTotales3" : e.Row.Height = 25 + ' ElseIf e.Row.DBCampo("Partida") = "" Then + ' e.Row.CssClass = "SubTotales2" : e.Row.Height = 25 + ' ElseIf e.Row.DBCampo("PS") = "" Then + ' e.Row.CssClass = "SubTotales" : e.Row.Height = 25 + ' ElseIf e.Row.DBCampo("Seccion") = "" Then + ' e.Row.CssClass = "SubTotales3" : e.Row.Height = 25 + ' End If + + ' End If + ' End Sub + + ' Private Sub CargaGrid(ByVal Orden As String) + + ' If Orden <> String.Empty Then + ' Dim DV As New DataView(CType(Cache("DTProgramacion" & UsuarioActual.CveUsuario.ToString()), DataTable), "", Orden, DataViewRowState.CurrentRows) + ' GV.DataSource = DV.ToTable() + ' DV.Dispose() + ' Else + ' GV.DataSource = CType(Cache("DTProgramacion" & UsuarioActual.CveUsuario.ToString()), DataTable) + ' End If + + ' GV.DataBind() + ' UpDatos.Update() + + ' End Sub + + ' 'Protected Sub CmdBuscar_Click(sender As Object, e As System.EventArgs) Handles CmdBuscar.Click + ' ' Dim ObjBitacora As New ClsBitacora() + + ' ' Dim FechaI, FechaF As String + ' ' FechaI = If(IsDate(TxtFechaIBit.Text.Trim()), TxtFechaIBit.Text.Trim(), "-1") + ' ' FechaF = If(IsDate(TxtFechaFBit.Text.Trim()), TxtFechaFBit.Text.Trim(), "-1") + + ' ' If ObjBitacora.GetBitacora(DdlContratos.SelectedValue, FechaI, FechaF) Then + ' ' GVBitacora.DataSource = ObjBitacora.DtResultados + ' ' Else + ' ' GVBitacora.DataSource = Nothing + ' ' End If + ' ' ObjBitacora.Dispose() + + ' ' GVBitacora.DataBind() + ' 'End Sub + ' Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacion.SelectedIndexChanged + ' CargaPS() + ' End Sub + + ' Protected Sub BtnAgregar_Click(sender As Object, e As System.EventArgs) Handles BtnAgregar.Click + ' RegistraScript("PosicionaObjeto('BtnAgregar','divContrato','');") + ' TrContratos.Visible = True + ' divContrato.Visible = True + ' CargaContratosAdd() + ' CargaClasificacionAdd() + ' CargaSeccionAdd() + ' UpContratos.Update() + ' 'Dim con As New ClsContratos + ' 'con.AddContratosSecciones(DdlContrato.SelectedValue.ToEntero, DdlPS.SelectedValue.ToEntero, DdlSeccion.SelectedValue.ToEntero, 5, 3, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + ' 'con.Dispose() + ' End Sub + + ' Protected Sub DdlClasificacionAdd_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacionAdd.SelectedIndexChanged + ' CargaPSAdd() + ' End Sub + + ' Protected Sub BtnAgregarContratoSeccion_Click(sender As Object, e As System.EventArgs) Handles BtnAgregarContratoSeccion.Click + ' Dim ObjContratosSecciones As New ClsContratos + ' If ObjContratosSecciones.AddContratosSecciones(DdlContratoAdd.SelectedValue.ToEntero, DdlSeccionAdd.SelectedValue.ToEntero, DdlPSAdd.SelectedValue.ToEntero, TxtCantidad.Text.Trim.ToDouble, TxtPU.Text.Trim.ToDouble, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then + ' TxtCantidad.Text = "" + ' TxtPU.Text = "" + ' Alert("El Nuevo Contrato Sección se Agregó Correctamente.", TipoMensaje.MsgInformacion) + ' UpContratos.Update() + ' ViewState("DTContratosSecciones") = ObjContratosSecciones.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) + ' CargaDatos() + + ' End If + ' ObjContratosSecciones.Dispose() + + ' End Sub + + ' Protected Sub LBFoto_OnClick(ByVal Sender As Object, ByVal E As EventArgs) + + ' Dim LB As LinkButton = CType(Sender, LinkButton) + ' divFotos.Visible = True + + ' Dim Con As New ClsContratos + ' If Con.GetContratoSeccion(LB.CommandArgument.ToEntero, UsuarioActual.CveEmpresa) Then + ' Dim dt As DataTable = Con.DtResultados + ' RegistraScript("PosicionaObjeto('" & LB.ClientID & "','divFotos','');") + ' If dt.Rows.Count > 0 Then + ' Img1.ImageUrl = "/Empresas/66/Avances/Imagenes/" & dt.Rows(0)("Img1").ToString + ' If dt.Rows(0)("Img2").ToString <> "" Then + ' Img2.Visible = True + ' Img2.ImageUrl = "/Empresas/66/Avances/Imagenes/" & dt.Rows(0)("Img2").ToString + ' End If + ' If dt.Rows(0)("Img3").ToString <> "" Then + ' Img3.Visible = True + ' Img3.ImageUrl = "/Empresas/66/Avances/Imagenes/" & dt.Rows(0)("Img3").ToString + ' End If + ' End If + ' UPFoto.Update() + ' End If + ' Con.Dispose() - End Sub + ' End Sub - Protected Sub LBGeom_OnClick(ByVal Sender As Object, ByVal E As EventArgs) + ' Protected Sub LBGeom_OnClick(ByVal Sender As Object, ByVal E As EventArgs) - Dim LB As LinkButton = CType(Sender, LinkButton) - divGeom.Visible = True + ' Dim LB As LinkButton = CType(Sender, LinkButton) + ' divGeom.Visible = True - Dim Con As New ClsContratos - If Con.GetContratoSeccion(LB.CommandArgument.ToEntero, UsuarioActual.CveEmpresa) Then - Dim dt As DataTable = Con.DtResultados - RegistraScript("PosicionaObjeto('" & LB.ClientID & "','divGeom','');") - CargaMapaGeom(dt.Rows(0)("x").ToString.ToDouble, dt.Rows(0)("y").ToString.ToDouble) - UPGPS.Update() - End If - Con.Dispose() + ' Dim Con As New ClsContratos + ' If Con.GetContratoSeccion(LB.CommandArgument.ToEntero, UsuarioActual.CveEmpresa) Then + ' Dim dt As DataTable = Con.DtResultados + ' RegistraScript("PosicionaObjeto('" & LB.ClientID & "','divGeom','');") + ' CargaMapaGeom(dt.Rows(0)("x").ToString.ToDouble, dt.Rows(0)("y").ToString.ToDouble) + ' UPGPS.Update() + ' End If + ' Con.Dispose() - End Sub + ' End Sub - Private Sub CargaMapaGeom(x As Double, y As Double) + ' Private Sub CargaMapaGeom(x As Double, y As Double) - Dim gml As GoogleMapsLayer = New GoogleMapsLayer() - gml.MapType = GoogleMapType.Normal + ' Dim gml As GoogleMapsLayer = New GoogleMapsLayer() + ' gml.MapType = GoogleMapType.Normal - MapGeom.BackgroundLayer = gml + ' MapGeom.BackgroundLayer = gml - '' set the transparency of the main map image to display other layers over the satellite map - MapGeom.ImageFormat = ImageFormat.Png - MapGeom.ImageOpacity = 0.8 + ' '' set the transparency of the main map image to display other layers over the satellite map + ' MapGeom.ImageFormat = ImageFormat.Png + ' MapGeom.ImageOpacity = 0.8 - 'MapGeom.Markers.Add(New Marker(New AspMap.Point(x, y), "x", "y")) - 'MapGeom.Markers.Add(New Marker(New AspMap.Point(-52441177.6239012, 3577172.53285846), "x", "y")) + ' 'MapGeom.Markers.Add(New Marker(New AspMap.Point(x, y), "x", "y")) + ' 'MapGeom.Markers.Add(New Marker(New AspMap.Point(-52441177.6239012, 3577172.53285846), "x", "y")) - 'If Mapa.Markers.Count > 0 Then - 'MapGeom.ZoomScale(New AspMap.Point(Mapa.Markers(0).Position.X, Mapa.Markers(0).Position.Y), 750000) - 'End If + ' 'If Mapa.Markers.Count > 0 Then + ' 'MapGeom.ZoomScale(New AspMap.Point(Mapa.Markers(0).Position.X, Mapa.Markers(0).Position.Y), 750000) + ' 'End If - End Sub + ' End Sub - Private Sub CargaMapa() + ' Private Sub CargaMapa() - Dim dbLayer As AspMap.Layer - Dim feature As AspMap.Feature - 'Dim FillColor, LineColor As Color - Mapa.RemoveAllLayers() + ' Dim dbLayer As AspMap.Layer + ' Dim feature As AspMap.Feature + ' 'Dim FillColor, LineColor As Color + ' Mapa.RemoveAllLayers() - dbLayer = Mapa.AddLayer(ModExtensiones.DirectorioBaseEmpresas & "GIS\Carretera.tab") - If dbLayer IsNot Nothing AndAlso DtDatos IsNot Nothing Then + ' dbLayer = Mapa.AddLayer(ModExtensiones.DirectorioBaseEmpresas & "GIS\Carretera.tab") + ' If dbLayer IsNot Nothing AndAlso DtDatos IsNot Nothing Then - If (Not dbLayer.AddRelate("ID_GIS", DtDatos, "ID_GIS")) Then - Alert("No se puede vincular las tablas") - End If - Dim renderer As FeatureRenderer = dbLayer.Renderer + ' If (Not dbLayer.AddRelate("ID_GIS", DtDatos, "ID_GIS")) Then + ' Alert("No se puede vincular las tablas") + ' End If + ' Dim renderer As FeatureRenderer = dbLayer.Renderer - 'Seleccionado - If Seleccionado <> "" Then - feature = renderer.Add() : feature.Expression = String.Format("ID_Gis = {0}", Seleccionado) : feature.Symbol.FillStyle = FillStyle.Solid : feature.Symbol.FillColor = Color.LightSkyBlue : feature.Symbol.LineColor = Color.FromArgb(120, 168, 192) : feature.Tag = "-3" + ' 'Seleccionado + ' If Seleccionado <> "" Then + ' feature = renderer.Add() : feature.Expression = String.Format("ID_Gis = {0}", Seleccionado) : feature.Symbol.FillStyle = FillStyle.Solid : feature.Symbol.FillColor = Color.LightSkyBlue : feature.Symbol.LineColor = Color.FromArgb(120, 168, 192) : feature.Tag = "-3" - End If + ' End If - ''Estimado - feature = renderer.Add() : feature.Expression = "NumeroEstimacionNum > 0 " : feature.Symbol.FillStyle = FillStyle.Solid : feature.Symbol.FillColor = Color.Green : feature.Symbol.LineColor = Color.FromArgb(192, 144, 96) : feature.Tag = "-2" + ' ''Estimado + ' feature = renderer.Add() : feature.Expression = "NumeroEstimacionNum > 0 " : feature.Symbol.FillStyle = FillStyle.Solid : feature.Symbol.FillColor = Color.Green : feature.Symbol.LineColor = Color.FromArgb(192, 144, 96) : feature.Tag = "-2" - ''Estimado - feature = renderer.Add() : feature.Expression = "PermitirAvanceNum > 0 " : feature.Symbol.FillStyle = FillStyle.Solid : feature.Symbol.FillColor = Color.Yellow : feature.Symbol.LineColor = Color.FromArgb(192, 144, 96) : feature.Tag = "-2" + ' ''Estimado + ' feature = renderer.Add() : feature.Expression = "PermitirAvanceNum > 0 " : feature.Symbol.FillStyle = FillStyle.Solid : feature.Symbol.FillColor = Color.Yellow : feature.Symbol.LineColor = Color.FromArgb(192, 144, 96) : feature.Tag = "-2" - ''Por Estimar - feature = renderer.Add() : feature.Expression = "PermitirEstimacionNum = 1 " : feature.Symbol.FillStyle = FillStyle.Solid : feature.Symbol.FillColor = Color.LightGray : feature.Symbol.LineColor = Color.FromArgb(120, 168, 192) : feature.Tag = "-3" + ' ''Por Estimar + ' feature = renderer.Add() : feature.Expression = "PermitirEstimacionNum = 1 " : feature.Symbol.FillStyle = FillStyle.Solid : feature.Symbol.FillColor = Color.LightGray : feature.Symbol.LineColor = Color.FromArgb(120, 168, 192) : feature.Tag = "-3" - End If - End Sub + ' End If + ' End Sub - Protected Sub Map1_InfoTool(ByVal sender As Object, ByVal e As InfoToolEventArgs) + ' Protected Sub Map1_InfoTool(ByVal sender As Object, ByVal e As InfoToolEventArgs) - If e.Argument = "" Then - Dim records As AspMap.Recordset = Mapa.Identify(e.InfoPoint, 10) + ' If e.Argument = "" Then + ' Dim records As AspMap.Recordset = Mapa.Identify(e.InfoPoint, 10) - Seleccionado = records("ID_Gis").ToString + ' Seleccionado = records("ID_Gis").ToString - GV.SelectRow(records("ID_Gis").ToString.ToEntero - 1) - 'RegistraScript(String.Format("Colorea(Tr{0})", records("ID_GIS"))) + ' GV.SelectRow(records("ID_Gis").ToString.ToEntero - 1) + ' 'RegistraScript(String.Format("Colorea(Tr{0})", records("ID_GIS"))) - Dim dbLayer As AspMap.Layer = Mapa.Layer(0) + ' Dim dbLayer As AspMap.Layer = Mapa.Layer(0) - Dim feature = New AspMap.Feature() + ' Dim feature = New AspMap.Feature() - feature.Expression = String.Format("ID_Gis = " & Seleccionado) - feature.Symbol.FillColor = Color.LightSkyBlue - dbLayer.Renderer.Add(feature) + ' feature.Expression = String.Format("ID_Gis = " & Seleccionado) + ' feature.Symbol.FillColor = Color.LightSkyBlue + ' dbLayer.Renderer.Add(feature) - End If - End Sub + ' End If + ' End Sub -#Region "O R D E N A M I E N T O" - Protected Sub LbOrden_Click(ByVal sender As Object, ByVal e As EventArgs) - Dim Orden As String = "" - Dim Campo As String = "" - Dim Literal As Literal = Nothing - Const OrdenInicial As String = "" - Dim Arg(2) As String + '#Region "O R D E N A M I E N T O" + ' Protected Sub LbOrden_Click(ByVal sender As Object, ByVal e As EventArgs) + ' Dim Orden As String = "" + ' Dim Campo As String = "" + ' Dim Literal As Literal = Nothing + ' Const OrdenInicial As String = "" + ' Dim Arg(2) As String - Arg = CType(sender, LinkButton).CommandArgument().ToString.Split(";"c) - Campo = Arg(0) - Literal = CType(CType(sender, LinkButton).NamingContainer.FindControl("Img" & Campo.Replace(",", "_")), Literal) + ' Arg = CType(sender, LinkButton).CommandArgument().ToString.Split(";"c) + ' Campo = Arg(0) + ' Literal = CType(CType(sender, LinkButton).NamingContainer.FindControl("Img" & Campo.Replace(",", "_")), Literal) - If ViewState(String.Format("O{0}", Campo)) IsNot Nothing AndAlso ViewState(String.Format("O{0}", Campo)).ToString = String.Format("{0} DESC", Campo) Then - ViewState(String.Format("O{0}", Campo)) = String.Format("{0} ASC", Campo) - Literal.Text = String.Format("") - Else - ViewState(String.Format("O{0}", Campo)) = String.Format("{0} DESC", Campo) - Literal.Text = String.Format("") - End If - Orden = OrdenInicial & ViewState(String.Format("O{0}", Campo)).ToString - ViewState("Orden") = Orden - CargaGrid(Orden) - End Sub + ' If ViewState(String.Format("O{0}", Campo)) IsNot Nothing AndAlso ViewState(String.Format("O{0}", Campo)).ToString = String.Format("{0} DESC", Campo) Then + ' ViewState(String.Format("O{0}", Campo)) = String.Format("{0} ASC", Campo) + ' Literal.Text = String.Format("") + ' Else + ' ViewState(String.Format("O{0}", Campo)) = String.Format("{0} DESC", Campo) + ' Literal.Text = String.Format("") + ' End If + ' Orden = OrdenInicial & ViewState(String.Format("O{0}", Campo)).ToString + ' ViewState("Orden") = Orden + ' CargaGrid(Orden) + ' End Sub -#End Region + '#End Region End Class diff --git a/GPS/CatDistribuidoresMaster.aspx.vb b/GPS/CatDistribuidoresMaster.aspx.vb index 6b7de01b6..4c21ac38b 100644 --- a/GPS/CatDistribuidoresMaster.aspx.vb +++ b/GPS/CatDistribuidoresMaster.aspx.vb @@ -74,7 +74,7 @@ Partial Class GPS_CatDistribuidoresMaster Dim objUsuarios As New ClsSisUsuarios(objEmpresa.IniciaTransacSQL()) Dim objP As New ClsProyectos(objEmpresa.IniciaTransacSQL) Dim objSP As New ClsSubProyectos(objEmpresa.IniciaTransacSQL) - Dim objSucursales As New ClsSucursales(objEmpresa.IniciaTransacSQL) + 'Dim objSucursales As New ClsSucursales(objEmpresa.IniciaTransacSQL) Dim HuboError = False If EsEditar = 0 Then If Not objEmpresa.AddDistribuidorMaster(TxtRFC.Text, TxtEmpresa.Text, TxtTelefono.Text, TxtContacto.Text, TxtMail.Text, UsuarioActual.CveUsuario) Then diff --git a/Inventarios/RecepcionAlmacen.aspx.vb b/Inventarios/RecepcionAlmacen.aspx.vb index 607ce8b86..1e2be4c2f 100644 --- a/Inventarios/RecepcionAlmacen.aspx.vb +++ b/Inventarios/RecepcionAlmacen.aspx.vb @@ -4714,8 +4714,8 @@ Partial Class Inventarios_RecepcionAlmacen End Class -'Public Class MMovimientoAlmacen -' Public Property CveMovimiento As Integer -' Public Property Folio As Integer +Public Class MMovimientoAlmacen + Public Property CveMovimiento As Integer + Public Property Folio As Integer -'End Class +End Class diff --git a/Inventarios/RepApartados.aspx.vb b/Inventarios/RepApartados.aspx.vb index c6e777e22..9fd7a4901 100644 --- a/Inventarios/RepApartados.aspx.vb +++ b/Inventarios/RepApartados.aspx.vb @@ -484,7 +484,7 @@ Partial Class Inventarios_RepApartados End Function End Class -Public Class MMovimientoAlmacen +Class MMovimientoAlmacen Public Property CveMovimiento As Integer Public Property Folio As Integer Public Property CveConcepto As Integer diff --git a/Nomina/ConceptoNominaB.aspx.cs b/Nomina/ConceptoNominaB.aspx.cs index 8a4a3f293..41f3b8be1 100644 --- a/Nomina/ConceptoNominaB.aspx.cs +++ b/Nomina/ConceptoNominaB.aspx.cs @@ -182,31 +182,31 @@ public partial class Nomina_CatConceptoB : ClsPaginas if (EsEditar) { - TieneError = !ObjNomina.UpdateConcepto(codigo, concepto, tipo, formula, sistema, estado, CveConceptoPadre, CveConcepto, retencion, CveClasificacion, IdCtaContable, CveTipoGasto, tipoCalculo, CveConceptoContable); + //TieneError = !ObjNomina.UpdateConcepto(codigo, concepto, tipo, formula, sistema, estado, CveConceptoPadre, CveConcepto, retencion, CveClasificacion, IdCtaContable, CveTipoGasto, tipoCalculo, CveConceptoContable); - if (TieneError) - { - ObjNomina.RollBack(); - } - else - { - ObjNomina.Commit(); - Alert("El concepto de nómina fue actualizado correctamente.", ModExtensiones.TipoMensaje.MsgInformacion, $"document.location.href=\"/Nomina/ConceptoNomina.aspx?CveConcepto={CveConcepto}\""); - } + //if (TieneError) + //{ + // ObjNomina.RollBack(); + //} + //else + //{ + // ObjNomina.Commit(); + // Alert("El concepto de nómina fue actualizado correctamente.", ModExtensiones.TipoMensaje.MsgInformacion, $"document.location.href=\"/Nomina/ConceptoNomina.aspx?CveConcepto={CveConcepto}\""); + //} } else { - CveConcepto = ObjNomina.AddConcepto(codigo, concepto, tipo, formula, sistema, estado, CveConceptoPadre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, retencion, CveClasificacion, IdCtaContable, CveTipoGasto, tipoCalculo, CveConceptoContable); + //CveConcepto = ObjNomina.AddConcepto(codigo, concepto, tipo, formula, sistema, estado, CveConceptoPadre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, retencion, CveClasificacion, IdCtaContable, CveTipoGasto, tipoCalculo, CveConceptoContable); - if (CveConcepto == -1) - { - ObjNomina.RollBack(); - } - else - { - ObjNomina.Commit(); - Alert("El concepto de nómina fue creado correctamente.", ModExtensiones.TipoMensaje.MsgInformacion, $"document.location.href=\"/Nomina/ConceptoNomina.aspx?CveConcepto={CveConcepto}\""); - } + //if (CveConcepto == -1) + //{ + // ObjNomina.RollBack(); + //} + //else + //{ + // ObjNomina.Commit(); + // Alert("El concepto de nómina fue creado correctamente.", ModExtensiones.TipoMensaje.MsgInformacion, $"document.location.href=\"/Nomina/ConceptoNomina.aspx?CveConcepto={CveConcepto}\""); + //} } ObjNomina.Dispose(); diff --git a/Planeacion/Sucursal.aspx.vb b/Planeacion/Sucursal.aspx.vb index a5844ccba..69d00a738 100644 --- a/Planeacion/Sucursal.aspx.vb +++ b/Planeacion/Sucursal.aspx.vb @@ -76,112 +76,112 @@ Partial Class Sucursal If DT IsNot Nothing Then DT.Dispose() End Sub - Protected Sub BtnGuardar_Click(sender As Object, e As System.EventArgs) Handles BtnGuardar.Click + 'Protected Sub BtnGuardar_Click(sender As Object, e As System.EventArgs) Handles BtnGuardar.Click - If CveSucursal = -1 Then - If UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then - CreaProyectoSubProyectoSucursal() - Else - CreaSucursal() - End If - Else - Dim ObjSucursales As New ClsSucursales() + ' If CveSucursal = -1 Then + ' If UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then + ' CreaProyectoSubProyectoSucursal() + ' Else + ' CreaSucursal() + ' End If + ' Else + ' Dim ObjSucursales As New ClsSucursales() - If ObjSucursales.UpdateSucursal(TxtSucursal.Text.Trim, TxtSerie.Text.Trim, TxtIVA.Text.Trim.ToDouble, Session("FileUpload").ToString, ChkEstado.Checked, UsuarioActual.CveUsuario, CveSucursal, TxtCalle.Text.Trim, - TxtNoExt.Text.Trim, TxtNoInt.Text.Trim, TxtColonia.Text.Trim, TxtLocalidad.Text.Trim, TxtMunicipio.Text.Trim, TxtEstado.Text.Trim, TxtPais.Text.Trim, TxtCP.Text.Trim, IIf(Matriz.Checked, 1, 0).ToString.ToEntero) Then - CargaDatos() - UpDatos.Update() + ' If ObjSucursales.UpdateSucursal(TxtSucursal.Text.Trim, TxtSerie.Text.Trim, TxtIVA.Text.Trim.ToDouble, Session("FileUpload").ToString, ChkEstado.Checked, UsuarioActual.CveUsuario, CveSucursal, TxtCalle.Text.Trim, + ' TxtNoExt.Text.Trim, TxtNoInt.Text.Trim, TxtColonia.Text.Trim, TxtLocalidad.Text.Trim, TxtMunicipio.Text.Trim, TxtEstado.Text.Trim, TxtPais.Text.Trim, TxtCP.Text.Trim, IIf(Matriz.Checked, 1, 0).ToString.ToEntero) Then + ' CargaDatos() + ' UpDatos.Update() - updateGlobaldt() - Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion, "CerrarVentana(); window.parent.location.reload();") - Else - Alert("Ocurrió un error al guardar la Sucursal. Por favor vuelva a intentar.", TipoMensaje.MsgError) - End If + ' updateGlobaldt() + ' Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion, "CerrarVentana(); window.parent.location.reload();") + ' Else + ' Alert("Ocurrió un error al guardar la Sucursal. Por favor vuelva a intentar.", TipoMensaje.MsgError) + ' End If - ObjSucursales.Dispose() - End If + ' ObjSucursales.Dispose() + ' End If - End Sub - Private Sub updateGlobaldt() - Dim ObjSucursales As New ClsSucursales() - If ObjSucursales.GetSucursales() Then Application("GlobalDTSucursales") = ObjSucursales.DtResultados Else Application("GlobalDTSucursales") = Nothing - ObjSucursales.Dispose() - End Sub + 'End Sub + 'Private Sub updateGlobaldt() + ' Dim ObjSucursales As New ClsSucursales() + ' If ObjSucursales.GetSucursales() Then Application("GlobalDTSucursales") = ObjSucursales.DtResultados Else Application("GlobalDTSucursales") = Nothing + ' ObjSucursales.Dispose() + 'End Sub - Private Sub CreaSucursal() - Dim ObjSucursales As New ClsSucursales() + 'Private Sub CreaSucursal() + ' Dim ObjSucursales As New ClsSucursales() - If ObjSucursales.AddSucursal(TxtSucursal.Text.Trim, TxtSerie.Text.Trim, TxtIVA.Text.Trim.ToDouble, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, TxtCalle.Text.Trim, - TxtNoExt.Text.Trim, TxtNoInt.Text.Trim, TxtColonia.Text.Trim, TxtLocalidad.Text.Trim, TxtMunicipio.Text.Trim, TxtEstado.Text.Trim, TxtPais.Text.Trim, TxtCP.Text.Trim, IIf(Matriz.Checked, 1, 0).ToString.ToEntero) > 0 Then - updateGlobaldt() - Alert("La Sucursal se guardó correctamente.", TipoMensaje.MsgInformacion, "CerrarVentana(); window.parent.location.reload();") - Else - Alert("Ocurrió un error al guardar la Sucursal. Por favor vuelva a intentar.", TipoMensaje.MsgError) - End If + ' If ObjSucursales.AddSucursal(TxtSucursal.Text.Trim, TxtSerie.Text.Trim, TxtIVA.Text.Trim.ToDouble, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, TxtCalle.Text.Trim, + ' TxtNoExt.Text.Trim, TxtNoInt.Text.Trim, TxtColonia.Text.Trim, TxtLocalidad.Text.Trim, TxtMunicipio.Text.Trim, TxtEstado.Text.Trim, TxtPais.Text.Trim, TxtCP.Text.Trim, IIf(Matriz.Checked, 1, 0).ToString.ToEntero) > 0 Then + ' updateGlobaldt() + ' Alert("La Sucursal se guardó correctamente.", TipoMensaje.MsgInformacion, "CerrarVentana(); window.parent.location.reload();") + ' Else + ' Alert("Ocurrió un error al guardar la Sucursal. Por favor vuelva a intentar.", TipoMensaje.MsgError) + ' End If - ObjSucursales.Dispose() - End Sub + ' ObjSucursales.Dispose() + 'End Sub - Private Sub CreaProyectoSubProyectoSucursal() - Dim ObjProyectos As New ClsProyectos - Dim ObjSubproyectos As New ClsSubProyectos(ObjProyectos.IniciaTransacSQL()) - Dim ObjSucursales As New ClsSucursales(ObjProyectos.IniciaTransacSQL()) + 'Private Sub CreaProyectoSubProyectoSucursal() + ' Dim ObjProyectos As New ClsProyectos + ' Dim ObjSubproyectos As New ClsSubProyectos(ObjProyectos.IniciaTransacSQL()) + ' Dim ObjSucursales As New ClsSucursales(ObjProyectos.IniciaTransacSQL()) - Dim TieneError = False + ' Dim TieneError = False - 'CREA PROYECTO - Dim CveProyecto = ObjProyectos.AddProyecto(TxtSucursal.Text.Trim, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveSucursal.ToEntero) + ' 'CREA PROYECTO + ' Dim CveProyecto = ObjProyectos.AddProyecto(TxtSucursal.Text.Trim, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveSucursal.ToEntero) - If CInt(CveProyecto) > 0 Then - GlobalDTProyectos(-1) = ObjProyectos.DtResultados + ' If CInt(CveProyecto) > 0 Then + ' GlobalDTProyectos(-1) = ObjProyectos.DtResultados - Dim CveSucursal = ObjSucursales.AddSucursal(TxtSucursal.Text.Trim, TxtSerie.Text.Trim, TxtIVA.Text.Trim.ToDouble, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, TxtCalle.Text.Trim, - TxtNoExt.Text.Trim, TxtNoInt.Text.Trim, TxtColonia.Text.Trim, TxtLocalidad.Text.Trim, TxtMunicipio.Text.Trim, TxtEstado.Text.Trim, TxtPais.Text.Trim, TxtCP.Text.Trim, IIf(Matriz.Checked, 1, 0).ToString.ToEntero) + ' Dim CveSucursal = ObjSucursales.AddSucursal(TxtSucursal.Text.Trim, TxtSerie.Text.Trim, TxtIVA.Text.Trim.ToDouble, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, TxtCalle.Text.Trim, + ' TxtNoExt.Text.Trim, TxtNoInt.Text.Trim, TxtColonia.Text.Trim, TxtLocalidad.Text.Trim, TxtMunicipio.Text.Trim, TxtEstado.Text.Trim, TxtPais.Text.Trim, TxtCP.Text.Trim, IIf(Matriz.Checked, 1, 0).ToString.ToEntero) - 'CREA SUCURSAL - If CveSucursal > 0 Then - 'CREA SUBPROYECTO - If Not ObjSubproyectos.AddSubProyecto(CInt(CveProyecto), TxtSucursal.Text.Trim, 0, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveSucursal) Then - TieneError = True - End If - Else - TieneError = True - End If + ' 'CREA SUCURSAL + ' If CveSucursal > 0 Then + ' 'CREA SUBPROYECTO + ' If Not ObjSubproyectos.AddSubProyecto(CInt(CveProyecto), TxtSucursal.Text.Trim, 0, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveSucursal) Then + ' TieneError = True + ' End If + ' Else + ' TieneError = True + ' End If - Else - TieneError = True - End If + ' Else + ' TieneError = True + ' End If - 'se regeneran los subproyectos - If Not TieneError Then - If UsuarioActual.Empresa.GralSoloProyecto Then - If ObjSubproyectos.GetSubProyectos() Then - GlobalDTSubProyectos(-1) = ObjSubproyectos.DtResultados - Else - TieneError = True - End If - End If - End If + ' 'se regeneran los subproyectos + ' If Not TieneError Then + ' If UsuarioActual.Empresa.GralSoloProyecto Then + ' If ObjSubproyectos.GetSubProyectos() Then + ' GlobalDTSubProyectos(-1) = ObjSubproyectos.DtResultados + ' Else + ' TieneError = True + ' End If + ' End If + ' End If - If Not TieneError Then - ObjProyectos.Commit() - Alert("La nueva Sucursal se guardó correctamente.", TipoMensaje.MsgInformacion, "opener.location.reload();window.close();") - Else - ObjProyectos.RollBack() - Alert("Ocurrió un error al registrar la Sucursal. Por favor vuelva a intentar.", TipoMensaje.MsgError) - End If + ' If Not TieneError Then + ' ObjProyectos.Commit() + ' Alert("La nueva Sucursal se guardó correctamente.", TipoMensaje.MsgInformacion, "opener.location.reload();window.close();") + ' Else + ' ObjProyectos.RollBack() + ' Alert("Ocurrió un error al registrar la Sucursal. Por favor vuelva a intentar.", TipoMensaje.MsgError) + ' End If - ObjProyectos.Dispose() - End Sub + ' ObjProyectos.Dispose() + 'End Sub - Protected Sub BtnEliminar_Click(sender As Object, e As System.EventArgs) Handles BtnEliminar.Click - Dim ObjSucursal As New ClsSucursales() - If ObjSucursal.RemoveSucursal(CveSucursal) Then - Alert("La Sucursal se eliminó correctamente.", TipoMensaje.MsgInformacion, "opener.location.reload();window.close();") - End If - ObjSucursal.Dispose() - End Sub + 'Protected Sub BtnEliminar_Click(sender As Object, e As System.EventArgs) Handles BtnEliminar.Click + ' Dim ObjSucursal As New ClsSucursales() + ' If ObjSucursal.RemoveSucursal(CveSucursal) Then + ' Alert("La Sucursal se eliminó correctamente.", TipoMensaje.MsgInformacion, "opener.location.reload();window.close();") + ' End If + ' ObjSucursal.Dispose() + 'End Sub End Class diff --git a/PortalGPS/WsADGPS.asmx b/PortalGPS/WsADGPS.asmx deleted file mode 100644 index e018c233b..000000000 --- a/PortalGPS/WsADGPS.asmx +++ /dev/null @@ -1 +0,0 @@ -<%@ WebService Language="VB" CodeBehind="~/App_Code/WsADGPS.vb" Class="WsADGPS" %> diff --git a/Prospeccion/Prospectos.aspx b/Prospeccion/Prospectos.aspx index 5e4c89dd4..341306018 100644 --- a/Prospeccion/Prospectos.aspx +++ b/Prospeccion/Prospectos.aspx @@ -1,5 +1,5 @@ <%@ Page Title="Expediente del prospecto" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="Prospectos.aspx.vb" Inherits="Prospectos_Prospectos" %> -<%@ Register Assembly="AspMapNET" Namespace="AspMap.Web" TagPrefix="cc1" %> +<%--<%@ Register Assembly="AspMapNET" Namespace="AspMap.Web" TagPrefix="cc1" %>--%> + + + Calculo salario base cotización + + + + + + + +
  • + + Descargar +
  • +
  • + Guardar +
  • +
  • + Descargar Archivos IDSE +
  • +
    + + + <%-- --%> + +
    +
    + + + + + + + + +
    +
    +
    +
    + + Fecha : +
    +
    + + + + +
    + + + + + + +
    +
    + +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + Fecha alta +
    + o reingreso +
    + + + +
    + + + + + + + + + + + + + Salario +
    + Diario +
    + + + +
    + + + Salario diario +
    + integrado +
    + + + +
    + + + Salario
    + variable +
    + + + +
    + + + Salario base
    + cotización +
    + + + +
    + + + + Salario diario
    + integrado +
    + + + +
    + + + Salario +
    + variable +
    + + + +
    + + + Salario base +
    + cotización +
    + + + +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + Fecha alta +
    + o reingreso +
    + + + +
    + + + + + + + + + + + + + + + + + + + + Salario diario +
    + integrado (Actual) +
    + + + +
    + + + + + + + + Dias
    + vacaciones +
    + + + +
    + + + Porcentaje
    + prima vacacional +
    + + + +
    + + + + + + + + + + + + + + Salario diario +
    + integrado (Nuevo) +
    + + + +
    + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Salario variable
    + (Actual) +
    + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + Salario variable
    + (Nuevo) +
    + + + +
    +
    +
    +
    +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + + + diff --git a/RH/CalculoSBC.aspx.cs b/RH/CalculoSBC.aspx.cs new file mode 100644 index 000000000..15374b256 --- /dev/null +++ b/RH/CalculoSBC.aspx.cs @@ -0,0 +1,93 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using Extensiones; +public partial class RH_CalculoSBC : ClsPaginas +{ + protected void Page_Load(object sender, EventArgs e) + { + + } + + protected void LnkCalcular_Click(object sender, EventArgs e) + { + using(ClsNominas objnom = new ClsNominas() ) + { + if( objnom.GetCalculoSBC(UsuarioActual.CveEmpresa,TxtFechaPago.Text)) + { + GVCalculosSBC.DataSource = objnom.DTSetResultados.Tables[0]; + GVCFija.DataSource = objnom.DTSetResultados.Tables[0]; + GVPV.DataSource = objnom.DTSetResultados.Tables[0]; + } + } + GVCalculosSBC.DataBind(); + GVCFija.DataBind(); + GVPV.DataBind(); + } + + protected void LnkDownArchivosSua_Click(object sender, EventArgs e) + { + + string concater = ""; + string MovtosAfil = ""; + string MovtosmodSalario = ""; + string movtosBajas = ""; + using (ClsRH ObjPersonal = new ClsRH()) + { + if (ObjPersonal.GetMovimientosToSUA(UsuarioActual.CveEmpresa,"2021-01-01", "2021-02-28")) + { + //01: MovtosAfil + concater = ""; + foreach (var item in ObjPersonal.DtResultados.Select("Tipo=1")) + { + MovtosAfil = string.Format("{0}{1}{2}", MovtosAfil, concater, item["Movtotxt"]); + concater = "\\r\\n"; + } + + //02: MovtosmodSalario + concater = ""; + foreach (var item in ObjPersonal.DtResultados.Select("Tipo=2")) + { + + MovtosmodSalario = string.Format("{0}{1}{2}", MovtosmodSalario, concater, item["Movtotxt"]); + concater = "\\r\\n"; + } + //03: movtosBajas + concater = ""; + foreach (var item in ObjPersonal.DtResultados.Select("Tipo=3")) + { + movtosBajas = string.Format("{0}{1}{2}", movtosBajas, concater, item["Movtotxt"]); + concater = "\\r\\n"; + } + + } + RegistraScript(string.Format("SaveCsv(\"MovtosAfil.txt\", '{0}');SaveCsv(\"MovtosmodSalario.txt\", '{1}');SaveCsv(\"movtosBajas.txt\", '{2}');", MovtosAfil.Replace("'", "\\'"), MovtosmodSalario.Replace("'", "\\'"), movtosBajas.Replace("'", "\\'"))); + RegistraScript("$('#DmodalGetSua').modal('hide');"); + } + } + + protected void LnkGuardarCambios_Click(object sender, EventArgs e) + { + Alert("Se registro la modificación de salario correctamente."); + } + + protected void LnkDescargar_Click(object sender, EventArgs e) + { + if (Tab.ActiveTab == TabSBC) + { + GVCalculosSBC.ExportToExcel("Salario"); + } + if (Tab.ActiveTab == TabSBC) + { + GVCFija.ExportToExcel("Salario"); + } + if (Tab.ActiveTab == TabSBC) + { + GVPV.ExportToExcel("Salario"); + } + + } +} \ No newline at end of file diff --git a/RH/RepCumpleaneros.aspx b/RH/RepCumpleaneros.aspx index ac18054cd..f642955dd 100644 --- a/RH/RepCumpleaneros.aspx +++ b/RH/RepCumpleaneros.aspx @@ -51,7 +51,7 @@ - +   diff --git a/RH/RepCumpleaneros.aspx.vb b/RH/RepCumpleaneros.aspx.vb index 3ac685014..5cc6ec590 100644 --- a/RH/RepCumpleaneros.aspx.vb +++ b/RH/RepCumpleaneros.aspx.vb @@ -2,4 +2,8 @@ Partial Class RH_RepCumpleaneros Inherits System.Web.UI.Page + + Protected Sub LbOrden_Click(sender As Object, e As EventArgs) + + End Sub End Class diff --git a/Ventas/RepConciliacionEmitidosSat.aspx.cs b/Ventas/RepConciliacionEmitidosSat.aspx.cs index 6a0ac55c8..dfd5237a1 100644 --- a/Ventas/RepConciliacionEmitidosSat.aspx.cs +++ b/Ventas/RepConciliacionEmitidosSat.aspx.cs @@ -226,11 +226,12 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas ClsAcumuladores ObjAcum = new ClsAcumuladores(ObjVentas.IniciaTransacSQL()); ClsContPAQi ObjContPaq = null; //StringBuilder MensajeAlert = new StringBuilder() ; + Modelos.Factura.MMensajeFactura Resp = new Modelos.Factura.MMensajeFactura(); DataTable DtDetalle = objfact.DtDetalle; try { - objfact.GuardarVenta(ref objfact, ref ObjVentas, ref ObjConta, ref ObjInventario, ref ObjContr, ref DtDetalle, objfact.CveNCaVincular, ref ObjContPaq, ref ObjBancos, ref ObjOS, ref ObjEventos, ref ObjCGame, ref ObjClientes, ObjAcum: ObjAcum); - + // objfact.GuardarVenta(ref objfact, ref ObjVentas, ref ObjConta, ref ObjInventario, ref ObjContr, ref DtDetalle, objfact.CveNCaVincular, ref ObjContPaq, ref ObjBancos, ref ObjOS, ref ObjEventos, ref ObjCGame, ref ObjClientes, ref Resp, ObjAcum: ObjAcum); + } catch (Exception e) { diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/css/default.css b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/css/default.css deleted file mode 100644 index d5df03a7c..000000000 --- a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/css/default.css +++ /dev/null @@ -1,374 +0,0 @@ -.crpage -{ - background-color:#FFFFFF; - color:#000000; - font-family:verdana,Arial; -} - -.crheader -{ - background-color: #B2B2B2; - color: #000000; - font-family:verdana,Arial; -} - -.crheader A -{ - color:#000000; - cursor:hand; - text-decoration:none; -} - -.crheader A:hover -{ - color:#FF0000; - cursor:hand; - text-decoration:none; -} - -.crtitle -{ - color:#000000; - font-size:10pt; - font-family:verdana,Arial; -} - -.crpagepath -{ - background-color:#006699; - color:#ffffff; - padding-left:10; -} - -.crpagepath A -{ - color:#FFFFFF; - cursor:hand; - text-decoration:none; -} - -.crpagepath A:hover -{ - color:#FF0000; - cursor:hand; - text-decoration:none; -} - -.crwizard -{ - background-color:#CAC9D9; - color:#000000; - font-family:verdana,Arial; -} - -.crwizardtabbackground -{ - background-color:#CAC9D9; - color:#000000 -} -.crwizardtoolbar -{ - background-color:#CAC9D9; - color:#000000; - font-family:verdana,Arial; -} - -.crwizardtoolbar A -{ - color:#000000; - cursor:hand; - text-decoration:none; -} - -.crwizardtoolbar A.hover -{ - color:#FF0000; - cursor:hand; - text-decoration:none; -} - -.crwizardformula -{ - background-color:#CAC9D9; - color:#000000; - font-family:verdana,Arial; -} -.crwizardfields -{ - background-color:#CAC9D9; - color:#000000; - font-family:verdana,Arial; -} - -.crsearchresults -{ - background-color:#FFFFFF; - color:#636384; - font-family:verdana,Arial; -} - -.crsearchresults A -{ - color:#636384; - cursor:hand; - text-decoration:none; -} - -.crsearchresults A:hover -{ - color:#636384; - cursor:hand; - text-decoration:none; -} - -.crsearchresultstitle -{ - background-color:#DFDEEA; - color:#000000; - font-size:14pt; - font-weight:bold; - font-family:verdana,Arial; -} - -.crsearchresultstoolbar -{ - background-color:#FFFFFF; - color:#000000; -} - -.crsearchresultstoolbar A -{ - color:#0000FF; - cursor:hand; - text-decoration:none; -} - -.crsearchresultstoolbar A:hover -{ - color:#FF00FF; - cursor:hand; - text-decoration:none; -} - -.crcaption -{ - color:#000000; - font-size:14pt; - font-family:verdana,Arial; -} - - -.crtoolbar -{ - background-color:#E4E4EC; - color:#000000; - font-size:8pt; - font-family:verdana,Arial; - border-bottom:1px solid #BEBED1; - border-top:1px solid #FFFFFF; -} - - -.crtoolbar A -{ - color:#000000; - cursor:hand; - text-decoration:none; -} - -.crtoolbar A:hover -{ - color:#FF0000; - cursor:hand; - text-decoration:none; -} - -.crtoolbar A IMG -{ - border-style:none; - border-width:0 -} - -.crtoolbarlist -{ - font-size:8pt; - font-family:verdana,Arial; -} - -.crtoolbartextbox -{ - font-size:8pt; - font-family:verdana,Arial; -} - -.crtoptoolbar -{ - background-color:#0073AA; - color:#FFFFFF; -} - -.crtoptoolbar A -{ - color:#FFFFFF; - cursor:hand; - text-decoration:none; -} - -.crtoptoolbar A:hover -{ - color:#FF0000; - cursor:hand; - text-decoration:none; -} - -.crcontent -{ - font-size:12pt; -} - - -.promptBorder -{ - background-color: black; -} - -.promptHeader -{ - background-color: teal; - color: #F5F5F5; - font-family: verdana, Arial; - font-weight: bold; - border-width: thin; -} - -.promptElement -{ - background-color: #DFDFDF; -} - -.promptElementText -{ - color: #444444; - font-family: verdana, Arial; - font-size: 10pt; -} - -.promptingText -{ - color: #444444; - font-family: verdana, Arial; - font-size: 12pt; -} - -.promptRuler -{ - color: #444444; -} - -.promptMessage -{ - color: #444444; - font-family: verdana, Arial; - font-weight: bold; - font-size: 14pt; -} - -.promptTextBox -{ - background-color: #FFFFFF; - border-top: thin solid; - border-bottom: thin solid; - border-left: thin solid; - border-right: thin solid; - border-color: #000000; - font-family: verdana, Arial; -} - -.promptButton -{ - border-top: thin solid; - border-bottom: thin solid; - border-left: thin solid; - border-right: thin solid; - font-family: verdana, Arial; - font-size: 10pt; -} - -.promptDropDown -{ - border-top: thin solid; - border-bottom: thin solid; - border-left: thin solid; - border-right: thin solid; - font-family: verdana, Arial; -} - -.promptListBox -{ - border-top: thin solid; - border-bottom: thin solid; - border-left: thin solid; - border-right: thin solid; - font-family: verdana, Arial; -} - -.CRGridViewerToolbar -{ - background-color:#E4E4EC; - color:#000000; - font-family:verdana,Arial; - font-size:8pt -} - -.CRGridViewerNavigationBar -{ - background-color:#FFFFFF; - color:#000000; - font-family:verdana,Arial; - font-size:8pt; -} - -.CRGridViewerHeading -{ - height:40; - background-color:#CAC9D9; - border-width:1; - font-family:verdana,Arial; -} - - -.CRGridViewerCell -{ - padding:2px; - text-align:center; - border-width:1; - font-family:verdana,Arial; -} - - -.CRGridViewerTable -{ - font-family:verdana,Arial; -} - -.crgrptr a -{ - color: #000000; - font-family: verdana, Arial; - font-size: 10pt; -} - -.crgrptr a:hover -{ - color: #ff0000; - cursor: hand; - text-decoration:underline; -} - -.crgrplvl1 -{ -} - -.crgrplvl2 -{ -} diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/html/calendar.html b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/html/calendar.html deleted file mode 100644 index 351cd0e0a..000000000 --- a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/html/calendar.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - Crystal Reports - - - - - diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/html/calendarbottom.html b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/html/calendarbottom.html deleted file mode 100644 index 40e21bb86..000000000 --- a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/html/calendarbottom.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/html/calendartop.html b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/html/calendartop.html deleted file mode 100644 index 1c18b5075..000000000 --- a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/html/calendartop.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/html/crystalexportdialog.htm b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/html/crystalexportdialog.htm deleted file mode 100644 index 41f6ed526..000000000 --- a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/html/crystalexportdialog.htm +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/html/crystalprinthost.html b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/html/crystalprinthost.html deleted file mode 100644 index 56486e639..000000000 --- a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/html/crystalprinthost.html +++ /dev/null @@ -1,86 +0,0 @@ - - -Crystal Reports Viewer - - - - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/First.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/First.gif deleted file mode 100644 index 57ee55e657ad96f14685f0e1f8e2642be80816bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78 zcmZ?wbhEHb6k`x$XkcIn3d;Zg|G(l-7DfgJMg|=QAOOiQFsb(RuRQ&hfAJgpx8CRFj11NQR{I$1 diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/Firstd.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/Firstd.gif deleted file mode 100644 index 08a18d1ebef9d02f29f5be8ae29db7698355f62b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78 zcmZ?wbhEHb6k`x$XkcVmym-(5|Nj+#vM@3*Ff!;c00Bsbfl0Nef92`7{EO#^FnX_N gjLN#_DlXxqGMzPL)uQ0%RS~Y&zx6&ZXJoJj0Fwe4+W-In diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/Last.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/Last.gif deleted file mode 100644 index 65f171d236406788064a2c6fce8466bc14b8f091..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79 zcmZ?wbhEHb6k`x$XkcIn3d;Zg|G(l-7DfgJMg|=QAOOiQFsb$QuRQ&hfAJgiGUuZLo%$;l@#3AOAE*guxmBRahE~ diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/Prev.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/Prev.gif deleted file mode 100644 index 65ab7ab11abba7db9f333830e964edf58e031357..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73 zcmZ?wbhEHb6k`x$XkcIn3d;Zg|G(l-7DfgJMg|=QAOOiQFe&u(uRQ&hfAO3tja3JZ bR$YGQnV?Y?kudL8=7cxg$3Mx4Ggt!vC?grB diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/Prevd.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/Prevd.gif deleted file mode 100644 index 72cd6e75d060a20ffdf9c74f46caf6c5619cb904..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73 zcmZ?wbhEHb6k`x$XkcVmym-(5|Nj+#vM@3*Ff!;c00Bsbfk~mKf92`7{EO#IX{|Q6F6vGLlHnI3R5tE%s>DHq@6+#GHVoMvbAWrzRV4v o&j8>Ji?>*W#Rw$_8pw(;XbPYckSHW51S+^BX-F=c&*uaHJ2odSpa1{> diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/Search.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/Search.gif deleted file mode 100644 index 848b35a8559d699f5839fac4d53aa1466fff2cd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 199 zcmZ?wbhEHb6k`x$*v!Ll=+M>do|eV3|NsA8 zi%tPa1{hHM$->CMz{8*e5&)UOz)~{dr043r7O&6#)?o@XU{&mq5n^F-Sd*Kz;hju= zN9<+kM42@gdRlj}h&8e#7Dxzibh<2v_{cby>EMIoyCayJ9Tm^)join~kjZTlzVl^i tNk%w1VOjtg0Qdg@u&}VCrKl7X6dfHMAt52GtgNM_rHqV>fPjFVn69d- zs?X2Qii(QD!omy;44a#q+=)1}w6)aL*Hu+jVq#*;%gu&{hEY*bZ*Onj-ry)GD0+H& z)6>(El9G^+kY;9Pj*gC9U0s8NgWKKSu&}cG`~9u0u!Mw!LPA1XT3XA@%}h*8YHDgp zNl7v?GD=EHMn*p{{H^`{r&v>{P_6z`}_O)`ugMJgw0m*X8Bq z=H}+UzP_NKpz-nX>+9?8?(Vz0yQ8C{y1Kf-!NK$M^WELu#>U37va-<7(4U{6ZEbDD z#Khs@;i#yn_xJec=jiC@=-b=dd3kxu%gdLSmz|xR_4W0*xVXp1$I;QzudlB)z#JV^7HNO?X$D9$;!*(;^Ol1^1Qsf z;E9Qe>FMdp%F5c>+Q7iTzrVlW;NZ;6%*e>doSdBAo><1r;OgpAy}z}!w)FJ%{rLANW>4$&^5*B~?d|NRr>O7E%-_#8#l^?4%0;oU zwEX@1-QM5(>f3d7b=T?9TCsSvw79sb%+=P{s?ALJ`1$hn^!e`U*4EeQxvuv2_sz`E z;o{@p&|pu5HP_eJR7aTp{{3cMr_O;ndzGiq&)??b@8#v@`~3Wwnwo!qf75tD_WJav zsfWM6!Iqbs`S$es`}6<)_EoK!!NSC{(OKrexAXJ#@bK}(#mVO8=lS{i(b3ZC>gzy= zsQmr?AaH~(P>e^H!9GTp^z`_4tKw~z(5savipQpr$*Jk->a@kN=EXMW%sAMqm*nK+ z-QC>Ut}p25>Dt@dz`?=o?e12gTIuTQ=B%aW<>vkU{;saCH#aw;$5o@rQOe5D*x1)TD5(*Dgbg*$<&uMrl|R2 zNz@^Y9_HTh0aQT(o-%|Aooa?`TQ3_s=BWrkX#tI*U=3!B)dW?)SM17cnwF!+(0|S* zt@1?B2DW7qzJ>+sk4BCu)-o9S)T0N+w*vj8%9Zb#H%TQD3o*e1@!pj-*i>;htO^-> z3TH(c6|I~&U%~{^z!k{yWr{Rv^bk_0&kY+5Ye7J#k6buju7=j=gZp(we>HaSuyw=j zLwXR>!D6NDTY|5BjZ^H4gG>n<{#-Nv6m_g!DS6zw1rx8`Vc*y_^iK3g@7Fk8oq&OB zKR^ce#-~th?EQ0?LjL$rh7U*lQ$r2|`IAF&0x`o(F9R{SQWi@f zVZ|048g#}WIBaLe1P(X=h7OEO;0JCrfFXrIKOBU|5Iz1Ar+D;RGF)G*JK%YW%@N7-J}~ z#12asV8kPc7@$A_O#H)z00;2@AjAg*Sl|E*8l(Wq3TyD;0tzl9VMYrxxM0BwG9UoQ z3^AM0~~blMHXi8VSy!i z@bJ$P13Vzm0Rvzlzye-4V1f&1u;2h11H9mG14z*EfCfzrA;Sa*_|Sty9z=1C9YJ7` zWFtXP;e`TvB;m#tOw8egArB}4#2-;a0L2}9$Z-F`__Kg97=-YK76Zu9!?6_Hfx{IOV4x%#auo0Z1qeLRph7vc zk3)Di-1a_JIUt7v4LHPCzn3?BMZ*pl`UehnkRpF*VFv=S!4Gbr1%FTu4i^%F76gI= dA>3dnx1j+K*l;oac<_TD450`|c#wbq06V9su?_$L diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/export.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/export.gif deleted file mode 100644 index ae1841577a816b67a8b872fec5952b6b16c092b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 617 zcmZ?wbhEHb6k`x$c;>@UTwI*pb4bmr=g^_6{r&yfd*A>6|34unX3Lf>vp3yjU|?Xh zjJb3B`p2LD-u?LZ>F2*+fB)-5tO^SY`|j=%o?@51Xpm*4)m_4wP3M_;eM|MTt7zwf{Q zUwHF-!pbYZ|Nejd?eE?vzn^~n_v6q1xtnj*&N_Yg`R}^fr@#OHcMYiP{hzjl=da%X z^7+@lJGZW%diiJHlizQC{GGYs1_Qs&!%u&=9DRE4*d#f-+uqg??3YT z+rN|7Kt2L`WN-q-pDc_F3_c7xAm@SNgn|87gHKa)OKV$uM`u@e2SZ;!Lr*h3x8?pr8-*v&Y`N@SH($8K^6NU2 ziN4!67S;=ehmHvG8bwqHFmN6)$an4%uy9Z~&LhagmT{#*;{ZD^yM)Y&jf$NNZj22o d9F+;q9SrK?2SpqiD*OSI5U^T3T983W932g;863_mP>)3lWy+b0IrtGRU7@V;f3d2@{NJJt?93_z$8i~YudqrZg_UTjQ zwQgNF6b%Hz^Ycriqm$tmf{r+f^$46JBPxZ$D3#3=9`04E&3*rf&$r2z<0O_yI=%5{ z0sPPVu+{3eSQct(YKTO#y1Lrw^mca(LeWIqLxaIEXEe^~bq=l8W|@!4nvoV~|iOO+JL|=os;M0xK(#Kklj^NY~RlrqNh19QS&c7Z-y=L(=Y1 z`xHDYT)?Mw_9t?W&le0XhdF~#7h52ChDV}EW4k6Cj^6JWQB9hGj6$zBU^F<5hPh}I z;S1CgQoTJy=mLaHW9xen+($jy~@uMv!qL845*(!l}VW6VJEzf1?0R`Ol*81;6+N z044znnD+&zeGfCY`fsI}eQE9So8TE&tbkTrCdl8gyZs2*`{{+e;@k!|c=^h?oKx_Q zs&Qt?-ir&)P3>$okXO9_SXEP3+S_ZOLmP^>i#~Yo#Bu975v}FYS36UcX9oSibr$73 z4Cv_x0bqA|A8L5wvydJLL_bbhev<1HymJ;Y^45Zs>3Hmo>G4KJ8#I_)_hxkVzu)CHRIgy zm5)d3(OKFjWw##>-+7DqJ_c6Z>I83Y=GYr^PnQ79V+~+RWjYmNRZ_q#y0q-qbh@Y^ z!&Tp0LPec_0k`_<=_z3O7Fr&yZtuF(^(i4>{eG~tDT7*dUDOQ9otFSw-%)jDR^3H0 zO$3&THfn|bjPOO gGE>3n9M?;wUvfCjh1vdaTKd}8>bmbyD8NVm0yfFW!vFvP diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/exportd.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/exportd.gif deleted file mode 100644 index 3c54b4283f505d91b95f4ac145a15fe315319332..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 283 zcmV+$0p$KiNk%w1VHf}y0J9DN!otG;|Np$ayk=%*%*@Q=lp>nVA3p00000A^8LW000gEEC2ui02lxm000EY(8)=wy>#fUvE4{0CY|RD zNdp{9;T}LkdZ@sJr$U-z><$g9MAOVF zw$mN*H$VUg&fM8ppz{#oHXI&3E9!O%cw-2A1OZS13us#|3k!oMg?osJa$Ad!k!^2$ zaZ!(onVSd#l!ui$3zZ54n+av80a=z$FiHarrm|c)PXu8Zu!h8Y2LuL6W5dP7Nn#aD hyUoeaKn(^0od5y`GS(Lw2_hpUCSx2M=j$F306X_`bEE(O diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/first_over.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/first_over.gif deleted file mode 100644 index e69a6e77fd6f5ecb8ef3d8046a406607e6a7d918..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1251 zcmcJO+fP#m0EZ9d4nA~)m^g8OA~Oy%Bs{2FmO@~|WoAH(n`TRpu_a8C;bs=HYzYXO z&S9ckVrHTXty(T36pEEX>HV}lz0jVv^m6Fsw5L67PfzKEmR{&!y8mI{!|(OW@8SFS z>_?|gU)~Sw2T}mAx3|~b{XL(r<#Hjd7BQJzHXCNQ`v@XpHls?VIUY-{tZ0lz=gf?F zeje28?L3}}Bx8$<3Z2dlf+h|}F*_>}i{b69!OZfy9{>5Rqfo}H6Lq6wMQ7$Re9YsliFQY?W%(73j?!C>&bJ~FqH!@MCJ zC;k3S91q*9m|A7cWU?=~kXmi?U_>IB@^}atXmUDnhuz0|$`2BosZ{1EYt`w(A2XLT z>1;3on0YQ{u~uQ&Znt~oa?{K+37ZYdWF|fA*or6lt7{I2Pa-i)P72&; zFquqQ%qX&fp{_t=Gd?>j<#6Pj1-V#kP$JMZL}EA+Nyz2v27^nk?$m++*bULeq%o3>q`2VTR6#OS?c)hQi07~|NyppO8_IS%M zmA*vWRkhz~J-03EWgQtg)Hu>gtpi%*hx)};Z!_x{$c@|fj!FHof&AeUO%Jd4yitsB z>)&i{K=0L7{C2g0!LIF@2I!UFdeQW7ji1u{VdYfiWU;E5^6r?RH`Y5<|Ml{%n5cgA zPtlhHS9zMZYTD~Aj8f8`afY&~y0zevxRbCH(Z(r50nt&~P*usP^B2*{KWIgtH$LpT zPycL)(z~x1kQB5$INpA#^oc}tyZXDbp9^S@Pm9X?n(+bUkDs824PP|Uy7fr(=)n%^ z!2?I`?tfJB)q*KoL3@Fp(e;!xEkbl!H>aqLI^eqi6pl4xqB5VR$bW_MP5*o&dIxC8 zJAUl1%jt4v{)wI%MlBV**+@R9p#jt9J1M{N>v}|aP&4xuO_F~3_fM2D_Q>$r>rLRv zD`<*NYdLmORoJ(5a%kux$!;q>+o>O_D3=`8*VUe(O7kn|(UzOe2Kd~2m7g-k>nM++ zP({C${rVgx diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/gotopage.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/gotopage.gif deleted file mode 100644 index a7a3e010d3c749cbd27c69de3431026404108e15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 595 zcmZ?wbhEHb6k`x$c;?Qq_sQ?zh=gzz^GRpq+>)*?7fA4(!`{c{t z*w_hw{{4IX{okK||DSyM_vz=q7cc(){PX|KkAM50{(kZ8pQ~%_=~sV#{rz|0&7Xr$ z|9t-W@7|}sho1fZ^84Ta|Njp@`*Y>pp99bSeEI$V)T!sQXCJJqTXE~d-?GxhZ+`qe z^8B~Ed+mgYJ70eLci`#oeNTR$dilr0qwe^NKgVDEzWeddxpOb3PTifFI(7Z}OTYg7 zKl1#~*;jwQ{`z<9#h<$$|L%SI`{1+R$BsSn@@n|}>%Xl{X=C%cH{U__G7J%*_>+Z^ zfx(?Y2jpH*oG`F&XmD?8ZfR|6@96C6Ze{N4XJ+haV&>=I<>0boWSPt?>@3Hw$;HSy zx0_j7h)+U*W7+bR$~^LXHoT0xc6BieSn>$5>&mbko76d<-O<90OI^}fgpsM8+kL92 zsfwA2qPUg)m1{bz&sYUjU9D{$7#?3^`=p^}C?=@D@cwECvyp*$m_Xn{$NT$Il&m-m rA3SP3*!)+{tED32z>)S3TJLV{m?*ErsNmeiV!3k3$;mxTj11NQ-LdU) diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/gotopage_over.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/gotopage_over.gif deleted file mode 100644 index d1a2eb6efafbf64e83d8c2f695570f0b0d2fdee8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1226 zcmc(eTTfF50DwGaCw3sX~1F)}qWs#YqOdGmFLT_eV&I5)CQMW}CsVW;VZcA(TX-)o7m&4uaFu^G4(Pvf0+(FC)q1z<|PT zhlTy}P%w%h@okhs5Hu2rp>gcV6N7+1wYsvovEd>~@{{sroJ>_$wTN2toDs$wtTK5F!;v zu~-Z}d6I{sSQJ5#7`kYBfhBPDtXZpFv0B~ZTOjw0Kw@3`E*~5qrFW z)fIa<5|fN+Y_=^QN>x?eh#{zYi|p&0>Fbkuy&(wl&BzvlA>?Yaz-n=yIB`Stx6*({)mwyAs>2B)k-&O-lvXRG zg$cLYXV9<76^nYq+Q`Tp3MXo&cCBfX2+P9(l-Z+j&Np*$!zsj!G(IlfCrgA5;p8 zSmofQ%FZto`A6$JDt zm|$c-d0(T=>P|DxtX<)8m?h`4D~9&%J4QS3Q%g&p@-zFu$?wmy8XzvCWLNIg^;#4C z-o4DUGTtTUO-^n$Q1SVT{STWq^LJ=&X6}7Am)XGhD4V;^&onG}@o`wAa(_f6IU8dbRG@ZyX(vpwTkU-u`PxGpm5L>(B)@?N*K#Jx?#JE;yBw zfArMvbtP{d;xTqH3OeaO+rfD{-6eG1EgJ&_oCk*=rtdD@>8RZE=*$wAE$zB=`yjh> lQ^5HK*aUMH!4Rk5!ebgYy;XENtw^QoG;tgFc`V@Le*vtVxs?C_ diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/gotopaged.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/gotopaged.gif deleted file mode 100644 index 214fdbe508e506f0350641985ee6f4f5e91c8fd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZ?wbhEHblwgoxSj52a|Nnm=K5*c`)=gVm+FJfIFf=fLfZ|UURuKj!1|1Lwq?UoX zRAbkje+F(&tG7;SIBPAzU|1W+&cwciH@$Mt%gtiB;&(P4cvtN>eYQj118u2#)rUk~s4)Uc(=wv^tUn|@CN?Pj|V zyS=|0js9{h_RSW@@8>e!Y_xs0SnJo-!Vi1>J|Br-AOsYDvVfK7fJl&?46Jnt3VkV= zT@I_(>2z-^_{~=md*qdl;uR)N7MX-^2`VD&3kt5yu;39?eHSVavHoDDgX@bbPSfbT z-9l^FcHhg_krCm{Q_n>)z-B+>CIYZq`q2Rk--`OKTTZ_ diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/grouptree_over.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/grouptree_over.gif deleted file mode 100644 index de3bf6220c791f56b9acaa48f25b3c158edc9cef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1215 zcmdUuTTfaC0Du9t;_N!>t-7)njZMw6HEL{DGrQotbZu>Cnx;3q)U9zb>6&y)_p-PJ z37MVQ8n<+9)|t!;qN3#@$UyD~4hV>Xpn{cxAXg6@z=H>n>C*j+eGlLJ_wb!N-*Tqz z^I}Xf2E}0Z_xDQ*4h{TD27u)syYKV)TCvy=i^k{XR;H#DAZUq5E<;chUFh1|+Y^cA zVR(C6bwjVWa=97=Y*#2uD=W^_^4Ey^Gox`m6pH#8wW#4so6Q{z!V%F$|3nSMYlw(1 z357bDY*8rGr&4K%b2h~Nh{*(IXZ1TfN$<$JJf4O|6HQGj*4I4@hMfPmHl6+_7K=|z z$P&qvQn@rXCNUUnX7ekxX4&cVhe9#4*|D(j(&r0B;BB`%=<|lg$E2H^TTB*WvKH zTtSQ3F+MI;s>~A%St_+_GTH5~ya2G2-c5@o3o51AZuce<$vA>?*dUjycDuJ$SDdRW z8w$Wgr%P;WZk^VuQCmjol3)O)kBW6V>%86uC`^FTG&Cd}8J<GMV!G!@*#L z%hRYpGiMqM1R^kuY$K>#Ve)yQbUN+zhEOya4sTm5&Lxw5hOga0lW;gDmm3`p9}-8m zWAS7nl}M!E2;y}3H#Pzr&VUNEKu~Pzg+i;d>h(4rZ!Q{*gP?hBZIj7T355DUFzoR_ zTU)SubIap}{Qi(gWN^6x!^5+Y2ojCOxzlPUQ%R?beZH_(yBd$9Vu@jbA-Au40Knw+ zLN0d@^FOC7nfYJAd$0Za2@HN8gT)g*VGlO+ly(cM5tZR5o#`ga#K&=AFcDo%DlGQ9{}ibe8y#@l0@udIi$_F z7x_2tX{oqzTm!O!%YL2F>sWhwc z#BDsa@y(kw5=hKaoddqQ-nooD_$U6MhLS@#Ov=TMSKYpKZ>F;$Ta4fQn9u|*mF2%b z*GBnvHSl1V#1VAl9cA0&D%9=dL=%sc+Qpsn{vbwx*W*+}6arS!=< SNkgcscxZff=RhXr!+!x*!Fw$L diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/grouptreed.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/grouptreed.gif deleted file mode 100644 index 64c486d9d345d9febba2995d73dd822fd8db237a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmZ?wbhEHb6k`x$I3mm-AtV#A?BSKDfGzn{x^vC8E8*|ZOPeBW$w{BkVz!*1`l zo9%vGEqt-k=)+#WXN$GI9F2an(f0F^i2wipGY|n3f3h$#FbFf~fYgHQWMEBxpwgF; zIWJ??y5tA@m~R`kEpcg3@MmO{?RLu(_plIXJsx1jU@?E!+ypPtJqcP2nhu*Emf6S$ z%$S?Ocr-a^cedT!)SyzXeY=u0w{=ACei>zthy-qt|L11v*sH7G>Q?TQ7ck^EaKHeZ0+by`c5t_qW^r!mm8}3Gtcj+UN^Jrbx}NXlvzxbYg2Qg VQM+!MW{-<*PHe@r>4KaL)&QqcMNj|$ diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/last_over.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/last_over.gif deleted file mode 100644 index e7315529f5f0c2bd9bb3a67fa6fdb44d36d04fbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1251 zcmcJO>rYb$0L3q*PC<-h5M-n-6p2%Z#@EDYVyHYU#zmrTaV*;y5|^1QGrE{l*fA_*o_z~^f% z7H>A2AkKm+9$Ti<7d)Pj)9IJVjLdPNQeg%`jm6@@@$_mY zt5BN#{wR*Gq*pS5KvW>q1_Db~t5>ggYPEKcC+u+e7ZTb2#k236_YpQOM~GXtXx7*{#z$Txh`S3B4FzKoF*yG`jHgFNxR6jUlbaw2j>Yj@F869iCKekcVt92mYcjbZNRMHWSPaLo zC|{rrh2rUSM!?tNsq{)ZqfnUaHlIXlh(wY$n-_Hkf}th1I|Tk~#OirAG&elFpjKPu zGE+9Y#`ufxa9|p(eQ9Yqwv>cKdac%$Tg#a(9*;LX%T~DsWfLY*+?`oGb6Rz zeMSV8D~zkF8At?=j|*LBaAHz4Jj@Y^^wZPQU@#tzB+Mp{5YkJeh}#p&uB|ELrl~1$ zW;N^gFZr;DK%leRF(cw~I&RJL-9pg<+ ziX{>xg{M=gv>%IjeUVT&HaN&;jzb0m>hp%JRv+*`hnyk)w@|aejZXku)`7e&Br0ow zLM#7ywo6mkzxDLF8?>&+R|t%co}DPJ?#$~ubU{R_cnYHzyYA7d{?zQbo=-bW9jbfK zwR_vK-P?{!bGey$7g0 zUbwA8_&a!ZevGZG=xm~Y`hrk-Wq{K6!OmmEt3R^t8t;&Y2*gfM+yIc?DrZqydme&Y zKYO?6CtT5w0;jr(RGkpqS9X?Jz_~$I47QLfJ{Oa~?$(Z+%DHbPU8X(*8V<47K{5j=r(-z3rGms*P3 zt^qsvXtZV`EI`G5y>-0GNi(C0ru%1@i z@#u8zRoj`qy8Y#@JNZ`*?yBo-jbDd0*Y*z7m2N#-)v|;9NwJVn`2$Glxk<{qd!*|5 zz`!oTZ=HQ5w@kgyHdiwa{<7(N@WH+Q!b1F9!K>pG;(N9l8NcxD%kj-cjqo5qAbfkX gx!@W~Y1lNWxzP`hsLR!rPfH(aD7TaE6ay#!0T6-VXaE2J diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/next_over.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/next_over.gif deleted file mode 100644 index 74976dd5006df998f3afabce048723088af3b31a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1252 zcmcJO>rWd60Kl)ut86~li!2Lcz)+`SuCj;BEt4@sr%valCK}?#bdJoan~90>gV~rS zY@)%9C5xKKkd^YVl(iy-(%!YbzDs*;xjty`+FpC@wO9I}rL^GC`9Jvk@ca1t_IvqQ zOT&S-a-bZ@0>J9(>dBLzOC-keajntlve^i?I~a+?olX+Nys2cyYQ@LKkOvPQOit=U zp%}v?M@C>iUmlAk7Z-Cnog<%LK@b}Zqe7v2W@gT0a>wHfS}oS!Kjrh$Q&WaOAgWMU z%x3raUs@FPh(v0c%q)|c#A3ZztV^Xb{85F)ihI3bl8jodgkVfLFfgswU?D2z_tPfR zTsoaK=$$qzkxnmawRW10yIcW{2Foty91j1;FzolyBpC^ZV|u+qZ*W48ITlOt2Bd?7 zvY{bJu0X@#`CyPysb_Hyg{W+^vtA7I+3h}p2rcFED=U9Xr8AOgqf}-}#22Je)5L_% zXmsLuNHRS$b{`q}1I7u;gHsHX3Xl;Cij#pTj#Gm}P%f8WNM{8Cr5SaPjw*yAbu=0` zndkguWPDs>$Gi@^pU0Ex^meC<)ao4fxYNNv^v`jvLTMG=R|$ox_OF(YRjch|qB^SE5qcqD)eWSaDB~i6xavtJ@vu>zn+&ZxVu0i^ap` zPIK=`;_>wS`~oaTlc~%?Difp_kx1imkrc(~v<{pIIUQssoh1lrZZ1gE34_7u^M*sA z`7r?^S6F=ha5kIsd1-)wW2!&AnW-9-1L7dUSYAA-j<}+F4TaC4y8Y_q)2k-Tbr z0oq*sM%ngUZQ}8*n{J&r)VKHAzV7zZ7dnTq((BNvE5*Dr2(c6y&i4bbujn{C)BtWp zG#sc0*mbR#Gy`2f?J0QYLPK>8r?c=A=3W)BhSh3jJ+{B+CIA*++*48y-t`k-yGk#C z8;ZBI9bJ2}qGMYPsO|msne`%;8UXvC=8ao7kHO$64*UB?dFN)<+DGm*b`+FiUng1DQeV&j6!+ZbkS{frWSr+4frI}5!PDW` diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/prev_over.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/prev_over.gif deleted file mode 100644 index 64f1d1d71fa0bd327c73992a35adbc4b3c5f03b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1250 zcmcJO{Zo?#0Dxa%>Oju}Bo55Tluke_{3=SjSaOESb;g-@UFji}S6)|~+MQ>0$-L0a z^C&INyAlY;KpMl*WH7e9@4mm--fg`5en0l{?&}@Fj^#`QiEX`RRH4@S&#H zPFDaGKn4I-R#w{EzZ44fe7@RZ!Ss5E-R^a{{NZp+F1H{Eu2Lb%MB3+zjE~Ewr*#H{ zi^GAU(Zu3n76f4)Px<7@6OG2^aQLKBQ!baMsDxN-3;mq4Hq2(*KP(=hBdn^CdYfV#;58P)3SN);lJ7(GOYJtXpYLViDm~MI8hGr0in4NXTV++H>;!r4NF=LaH8j)yLBsPddhG1~sWJc9$tJ_U- zxpJR3tW;P`CU-WQGnr5bf`v1)7#4&elM!|sVHZUuM;}5imoF5a*J^Awt7r5tkT;=B zB-8Wr3r?q>&sSLy9LIuVV^YqT43e7i%lX+^hem6S#ZpU4SrjE@GBb*iC>8)gQ+6pw zMH2{uMW_S_!7`a8mCg*0NHUphI222#G9GW(=cksIa%zn&7Ek5#d7aLYPG@+J6s!lr za5x^1r{r>TfTRdd(BbrwWE6G#HEP>JD#PW<6pA^w+n-xrjznS)STjzi&x#P?NX+f> z`$_6=zM8;;C>p>pQYJMkRdZ6AStd7gI8u)%Y0>bcrla3i4cK@V)ID}2>&@SHU3D>V$B$g&Ol&Zp|C6@(^{F*c#eGwRT$>f$$C_XWvVzGq4|IZ6q+JBLTr+)ebKwkk?(Kokp`xxCXUUY$7 zBRw}e-YeTx*z-|A-|24}N*azq#XC-(+T3%F*S+D&^;>%@;oA6HtM;83=;$b2cVnpj z*#nKLU10B;qYd94tMBb;zP5efcF||uTecUrzoB54w`#B6FQ~i0>@5Ab?(x3wNM9?T z_KV~UpCix}2M+grvg-8%KjZ!M!Rn*5&VFuCzPiqFqmy3J$5=}%V>Nd8TJgf2<+Qm= z=IuKO;Qpr18C{t(Z98%{5ZFiQFm@VfET|*H8R(guuHyYUZf8eU3=bz14UaeHxt$SE6*3v zKCB5|Z?0|Lc5vH1v=%CQQ_>6WJxQ55nFR?Z^VQw8rB|zuFyn=5tL~asZ-m)>mz!-( gSD5wU+61H8aA6NXKhspDsBNpcVEp6jH8f!Vzh*evMF0Q* diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/print.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/print.gif deleted file mode 100644 index cc3246e7dfe63894b3528277cbd54f5ebd68d149..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 375 zcmZ?wbhEHb6k`x$xT?#b=GBwkbLh~at6R2g`SShW`P(1=|NqaBcINk=|382KfAQ{j zZCP1=fB)?#-@g9%|KP=sy=Py({_scQKf`NYUiohOv$sC1+5h0}r@xicPd3dvyY|4t z6?^WBZD%-n?cJj7cMe^6T{`*L&Qs6DPDt-R_wwfBubYlMp0@5<+rsnL9(=j;^xN7s zYbLI`QZelW$WpR^;!hSv1_oUQ9guF2pBUJt9GF(%p(E9QVoA}-9ILsj8cVEVjd<7^ z!m<;1ri3?D-1(~}-gYP~I%3AeX4l0I>-D#_CnubL|9Pt$BMT=7Ckq#^sDPM~j0ihJ zBOeDF2cMuOtFn}kQ2#{Nrk1vjE-_(Yi3yG3EPO2D{2H=~(rW5Ds~7Tf33BnPu*$2- fX-g_FFu7-+$v)-Ibn(*VOa9lc-?-`F$Y2cs9lV-F diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/print_over.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/print_over.gif deleted file mode 100644 index 3ca347c600d092887393953d6aa7d70f77ff9d85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1219 zcmdUu*-zUA0DylzHcAET*j6hylOS1kG>j}LODu zBVlO5Ffj%y6be5|fm+U%-WT+urG?VcigpzKN#yYajYd0*rBEsj;0$Y>E=i?cIvl?Fd7eU{cllF4z7VafY>thsY;Elg zlhx5^oH(&A67Mn?GMzQza`|L3-2{=or?pV#xr8NMC=^8t^TAn`OunzzS*cVZd5)V( zrPy-U!{7O&X{Jc+otk2BxvB%bRj;?k;|Yh;>+=TfcF%^?VKzHwnWp&#p2=vJO7|%g zp22V=5UOo9H;b)^#S(n}&bIR4@tAByd_*R578m(}K$u8e_xnQvzUs*4nVaJXggc33 zG8haW2g6pI`^e_DTHQ{kU!yj~V+ozkDp%+Tgw=Jr^dFjt%T*3dtI$h;*L!TUdEB0W z%N+n`*x_(=76e1#D2J=``9lj_i`p1UB$5Yu8;vG94n@gi_TPk6r_-m^TJ|hqi^U~Z z=>5K9z20Ut*n9ty&}c%t-5ZO=`FvIPu#m}8q>?G}9A|NXuU4BhY9p7U+}Mz7_bp=4 zuF>Q$Tbzd$r+8B{wQe91=>mb8G`#`*e<+Q^|BJo!%CDXP5NQB{C}^aN*5coMWN+#q z_9Ne|$4)rTe%%W;)3B(9=N;S&7iSCF>R@9neNVfJ5Q>WDQ0UFK9!#LZz>}meRz|zH|2x3Higtd$5-4(y4RHGe2YD?+-+@4Wlz(%w0xgf;*&aaTLsAPx6!+sn#=gpe~uuies2GGEfT=Auc>>W&=;-ex6Ax}r%(?O z6~^|_#e1hZU+=Cg!~S*`GWF@q$Mj)AF@Cu{vw~8>>V;-i%ey zirQHC!rbq&p7i8oVOY2f62{Ma`|}TjNDL&aBqJX>gsLwe_)NG9V(j)Gs!)0t|s m+w2w1xx@x64|7FW@+AMu0RpV73TnQcomp5$9DzW9ntuVI1bo*3 diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/printd.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/printd.gif deleted file mode 100644 index ebec47bbda1eb650c978ababa83f50a62c1ead1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 273 zcmV+s0q*`sNk%w1VHf}y0J9DN;^N}M!os|~yk=%*|NsB&?Ci|U%&e@e*x1;Mi;JS7 zqTk=&=H}*^nVA3p00000A^8LW000gEEC2ui02lxm000EO(8)=wy>#fUvE4~1DxK#H zN)sRp;37dodZ@s<_$$nxva+olF2I|h4h95}z-$s+yFsRrR4$%5ECA7vN;JsomC*!f z0YvX05ip1ejG#G(NT?HTw-VkY=N5KfczG;v3x{Jahk+-9Ze&hQh=6x(Zjq6bjB5gU zm`+v(n+jnDpG*ZxFhv6modygAva_|2 X0RjgyUNk5oBPAwZ92?!?9uWXLM!s)d diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/refresh_over.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/refresh_over.gif deleted file mode 100644 index 924e00301387f1a4009d41a36d03634be5e68bfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1236 zcmd6m+fQ2s0EbKMprBjIRDy;HWDMCvg9Oc#n3T=I7?Y?ONa7w~OANZqj6@T+I0H@@ zAtazn%qB0T7AVj`OKYW2+MaWIztEoc^a^cH+tUlZP+Csug$g?V3V#pZ^Y=ac+S*&s zzt>krC?li^grlRQ+ACxAJ@dE5!0#tF9KL;>&XG){Ff5|iZy5|*cDwKJ@NjF(&*dsM zH!+jR1wlptfLSbHZA~kaAr=eD;mB53HMv}VaS>!N)_6R{{(hGKmx|9e<=#Og1Nx z7)&NNiiU*iI-f5b3hm6#OLRIrYXL|mQ`_6|Xf(l`7463N*c_?F;z3OA#U)52(u+hJ z`TXA^v0kn)r}wi)*f}>Zj>Zz{bQT2RT<#!$kWZ!3m@f=~@P0Zg7VB+R@65E2&sW+V zzW7dZaS=k@Ap}A7hE10%V6~uny<;z#;;?1H^^LVP9h)s(T7tA1JLZqN-61wx#^Whd zcv_*bfRIrpNAmf+R%>TH1whcq<;o$cNvn0ZoPl5Ca|zR+|?wyLWeSuQ!}KIGCPUkH`0{R*wPRa=C*5VBFc+Q>ksi;Lg;P zKp@a?c?zS+Wkyi58IAAaR*NSRi6@e&Klv)9$|8kK`i;#2;%mj+iHy!1mHb9tybAs3!uZ{^9Q1H^Afi^h^Nw=WtjnXZijbd zGLv)5@AZWjm!y6y;&cW)Xh@~{H)mY}z<1>@5dKfA&XWGq zsei_2pCFKr2nFPd%WPW9P|4R514HD8C%ULt?+%pFq2;sJ$|+4WiE{QWS;cF)ml?*P z(VrXZ;5y1r1?{b)E9gz_mCCA?s#E1~^(Vvc*FWiLMBnIU6kI-5cj+Fj`_X6Tj{SP0 zQ8P#`s3|1b)ZbE>r9EGrKl%9Tcm;)6(l2|bwVOsH5h%~XlyS_6eO z(u@(7>WF8n;7MfZw<30DwGAMuCn~#0eA)yy`l+}Rth?7xT*!G*OS{{6`eP(;<|Lo~ zUG0t1g`&?pSiOBe{zAQY{R@WbLh<9Om!^LoDA^V0rn_oMBGq1B>kBo!bBzA3VZk8d zQA;r=e?bZq2|5`4?%aK9!StCf)H diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/refreshd.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/refreshd.gif deleted file mode 100644 index d482e79511ad66b05827af57b53882a75b670a3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134 zcmV;10D1pMNk%w1VHN-u0HOu}rlq^DuEE8`(Ch2%&CJ%+)7=06{{R30A^8LW000I6 zEC2ui02Tli0009^Xu90~Fv>|Q6F6vGLlHnI3R5tE%s>DHq@6+#GHVoMvbAWrzRV4v o&j8>Ji?>*W#Rw$_8pw(;XbPYckSHW51S+^BX-F=c&*uaHJJ(|}K>z>% diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/search_over.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/search_over.gif deleted file mode 100644 index cece2999a98780094a9ed9647013f4937f264092..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1205 zcmd^;TTfF50Dw;qZF4lv9g!e7jNGDZ>lRqZqG8EeC5ps|%o%x@NsUj7%3xEoWXo*9 zF~&&fw)n8cWq?p_wHK+K(0hA&g-UBnFWA~cOG`QQPH(4FSlr*(_wc=c58v5yXHJ~F zRtl5?SpeAG-BqcUZw#uMu0A~0I!Ni5w!A=B{F&b$J4~jPWFqZy`He=WTK%H!j=1gS zqf7=jo84mZqTP<>^M$c7@y^apB$Aw-R+vmKgTWDxZB0x_r>5j68hZB37>Oj@?tnyU zlF6Q1t=?oZ9gA&kY{XVp*5>CICMRSjcUmF3JRZB{RbqYQ@=0)eJbc+KUi zw7O-b(vrjT3WZtpk3l3dSgo)8eoU)fRwymOV1zF~xIAP%7+zX(`+OLN#o27>Rw_Hr zmWo7rv&Cb!xYOyZ;E5&_imv&wXmo3BZBrtBo=Rr}fv{Y@l*!`j>rn);avm#%LOqYC zP9)P?$@B&mb*=bAp@>YjHlt@goPqg{%?aj@YR%=@_zl_IIT&~*Z$BYXOJeOA^ zR-Ml7@dQ+AODvl7de@(d3~aV!6%FNb`9vaZx3457U?jTKZ2h4X1~ijzeF9%V1Ac^Ed@Q z4-?2o>#tXUcy-M{&%obxW^)~j1|F+FHKO58+n~U`=KUX`6P#M&@{XuEXAtF{TEc%wwsQ%@<2T9~t>N%SG zL|e)0yTE6cRnTwWw-*h4^RdUP`lF-;tw@pp2tHD2?ZP2RpY!wP%AfXs1=qiGi_p>F zW)O*dDs&qn>hF<>mDd0=rFivz$pyZm3cTEPfA1ZHVchqAh~5XCY>fAlXJBP-ANW^0 z?f852;UD2zjMW4E(1`Yu%c;px>b>E1S}}(X7ah8AQ*e6krLoC@!{xQN%@3}Si9pl8 DAFM$7 diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/searchd.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/searchd.gif deleted file mode 100644 index f8e4595896fd5351f0e59790db682d7a9273bd87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 274 zcmV+t0qy=rNk%w1VHf}y0J9DN|NsBv421+xnA;IDjifRFIJgdgT%z%mXpmB>HGmZo zy99-xAVmPGSO7w+Kr7g6_j~`IyBKv|cX)h-Spf`yc6bGR2XSwSiGe3-gnI~jk&={Y z1D92akV*^%oeN-%eM+NBXGRU5jCe}52?bmksI$CD1qMZ4yS|F8Iyg^_`Qok52I z2taBXnC&Ze-T7y5%5(Kr#h%?w0#f1(2gJji0w+8(<6PpEc92!zXr^#W-d)@4dM7Ly acq|$}q#KA#IeLkGgHF`?8##uI4AuZfRxbwt diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/up_over.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/up_over.gif deleted file mode 100644 index 0f11ec0d02d22bccd3606f9710262f21ff177921..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1244 zcmd6m?NieQ0LM2NIM0U$2GKDPFcAr9;KPyO-B3nD=)x`x@3QQ)>rBto>&)v;9S~d* zcbTV2nI;Pc%mu@(#bE6DnTyX+FfqZ1M&n*@$Y%3;JVArOL8mX$88SLurcjufOgV!g2LQKi*=x0W!l6}< zXJvAVlUPdygHb%5>2wA%nZF6oSW>B8BwFGNG_-lCS_Nn{R;_k_Z^UR*S~U4c+ImP)2qV+ofl5RWIOi98Zn zkVvG6M6S~nSdGS&N(+M_6AHC6)CGq#;PtH}lWBv|ZZtY3@C*`(PoW5x{#9$Ofk0HL zH2b_EHb?mt1_7!LXlRkFpc8oaicV|$!W2; zB@zSaIo|@fLMu@wOR;SASOE{8ueRBJ)@85L;TJC~O-*su5~*~0Jr++m>^?46Wj4F? zI(ue4<8lRk{t#_`(O|G+v9o->#%}lf{h`T8jz19L@l+CtUcgtgSjxFMDVZ#EyH_Ug z%$1c@flwr`H>fMB<@PjPQ)D)dHDJCcVD?J9d`v2P+bdi$yxK**X23 zXED0~z=gxj+ibpYI5s>?B@%gTmLeWYI2?W!TM-CGQmORh6gQbn`Fvq6N2S->L}DH2 z|FQBEZK@X@g$ z_?6?N;Rn3~7ps!;D&p}TWb+^yL=h?r3W^a8Pub<$az3o-L$_h}vGd-&QQ9}aE*r}} zaCB(mW#~KT5lG!2KCcXeynp7}=MilEcdfPE0~yD)pF5ct@Y%zXA2H=Q^(F0)Sz!mS zGw1cJEXd8`huz;4@2tL+2L-qEw@u|1Au}t&^9v*Jm*ZM@c4Ysx9!q{Ul81&XZ3aPNo diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/upd.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/upd.gif deleted file mode 100644 index 3dffc4964b7296e506c1bcfec968dbc599f569de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 898 zcmZ?wbhEHb6k`x$_|DF7^u(2AD|f8faOn2!+qdpKy?Xu8>o*@5M!{$ZjEoRa{K>+| zz`)L+1M)5?PcU%AGw^fBcx+g3u$ecrHy#cKYXIjuH+}#B diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/Magnify.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/Magnify.gif deleted file mode 100644 index e2717ce859bd07fffe5d15aa587de1ace628c8c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96 zcmZ?wbhEHb6krfwSoELa|Ns9D4Gchvfq~(`fdfDi0u+C;FfuT(FzA4|Ahiz6svf)U q_&Ix6%1Pho3t0PqIs?O$V~MgW)~zvH>hCfw%EekbW_uPBgEatMX&ov6 diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/begindots.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/begindots.gif deleted file mode 100644 index 52cb29d1c85488f6e0f39cf80752aa2ec0d6d919..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74 zcmZ?wbhEHb6l4%#SjfQe|NsA%rWPOx1d2ad7#V;-2SkA68JMJ7`d6NQ%fEPzCPVl7 WWv4#9tPRw#OSw7c#UdqE25SHxXdLDM diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/beginminus.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/beginminus.gif deleted file mode 100644 index a6d9e9e7799f4a30e72c258fc2996d99da5ab32b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91 zcmZ?wbhEHb6l4%#SjfQe|NsA%rWOV;L-8jIBNqcRgAS0(0Fq~5(wWo0^7LE&=owQs rF>GRcn0HtA#_`HSmDBEK^~A5(AwB2BgV4~6_deDAe|%AdmBAVSzPBYU diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/beginplus.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/beginplus.gif deleted file mode 100644 index 9b8b5da9f8d9d15cd3230cb42e7245f6a0b1144c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96 zcmZ?wbhEHb6l4%#SjfQe|NsA%rWOV;L-8jIBNqcRgAS0(0Fq~5GMv-D^7LE&=owQs vF>GRcn65{)-0I$ZZ_jxq G25SHiUlb7l diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/blankdots.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/blankdots.gif deleted file mode 100644 index 9f796c7a052059adb435553b0eb2cc903dd78a89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73 zcmZ?wbhEHb6l4%#SjfQe|NsA%rWPOx1d2ad7`Yf27<7P`0VL1BB-PTtQtb7AsX4)y XR_okz`24zd>W0Z5*KNv5ZNCEM%&QgebYt)9hq V`_Z4)9*L@y(xkLkYdjbktN}dv9eDr% diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/lastdots.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/lastdots.gif deleted file mode 100644 index 56d4bfb9cb35d73955e94c42192526e01c7892d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70 zcmZ?wbhEHb6l4%#SjfQe|NsA%rWPOx1d2ad7`Yf27<7P`0VL1BB;L}$Qtb7AsX4)y UR?lL){fNKqk;k-WoMH^t0IBR6w*UYD diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/lastminus.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/lastminus.gif deleted file mode 100644 index 27627774ef6c5258d751ee0db2d79c8c5fb36d3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93 zcmZ?wbhEHb6l4%#SjfQe|NsA%rWOV;L-8jIBNqcRgAS0(0Fq~5(wo!2Qtb7AsX5v= ss$&`UFt5y!V^@0=p)~uzru!F;obkx|5`Fh&!OpeAboP>Lie diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/minus.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/minus.gif deleted file mode 100644 index 4f76bd9fc60823c728a5a16e96dd20f8bdfdee23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95 zcmZ?wbhEHb6l4%#SjfQe|NsA%rWOV;L-8jIBNqcRgAS0(0Fq~5GMLl9Qtb7AsX5v= vs$&`UFt5y!V^@0=p)~uzru!F;obkx|5`Fh&}FQtb7AsX5v= xs$&`UFt5y+bD^=5W5S%yoI}6soSlv5YK51ttgLB07|^D>Xk&%VCLvY^YXEP>BlrLS diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/plusbox.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/plusbox.gif deleted file mode 100644 index f1bea1e7aa7a45e7015e983d5c26334b59580495..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 zcmZ?wbhEHb6l4%#Sjfci|NsA%rWOV;Q2fcl$iTqNpabH8=k%{U{gyv^#*|GA oo7f&^EiC1p);M!T!l7M7agzHQUiL-XgoPgY{*V8SCGRcn0HtA#_`HSmDBEK^~A5(AwB2BgV4~6=f3|tug$<<4FGObBg6mz diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/singleplus.gif b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/tree/singleplus.gif deleted file mode 100644 index 8beb87127f8a816f52a011712903da3494d52a95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93 zcmZ?wbhEHb6l4%#SjfQe|NsA%rWOV;L-8jIBLf37gAS0(0Fq~5(wo!2^7LE&=owQs sF>GRcn6.which else it's called .keyCode - keyPressed = nav4 ? e.which : e.keyCode; - - if (keyPressed == 13) - { - if (evntHdlrName != "") - { - // append empty parentheses if none given - if(evntHdlrName.substr(evntHdlrName.length-1) != ")") - evntHdlrName += "()"; - eval(evntHdlrName); - } - else - { - if (formName == "") - formName = 0; - document.forms[formName].submit(); - } - } - return true; -} -if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded(); \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/calendar_param.js b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/calendar_param.js deleted file mode 100644 index 2cbf34f50..000000000 --- a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/calendar_param.js +++ /dev/null @@ -1,702 +0,0 @@ -// Modified Date: 11/30/1999 -// Modified By: Robert W. Husted -// Notes: Added frameset support (changed reference for "newWin" to "top.newWin") -// Also changed Spanish "March" from "Marcha" to "Marzo" -// Fixed JavaScript Date Anomaly affecting days > 28 -// -// Modified by Crystal Decisions -// Removed large amounts of comments to shrink file size. -// Removed multi language support as language set by user as accept-language and navigator.language don't necessarily match -// Removed formatting code as only format wanted is for Crystal Reports Date/DateTime parameters -// Moved resource strings to top of file for translation -// Added A.whatever:visited styles so that followed links appear as if they weren't followed - - -// BEGIN USER-EDITABLE SECTION ----------------------------------------------------- - -// CALENDAR COLORS -topBackground = "black"; // BG COLOR OF THE TOP FRAME -bottomBackground = "white"; // BG COLOR OF THE BOTTOM FRAME -tableBGColor = "black"; // BG COLOR OF THE BOTTOM FRAME'S TABLE -cellColor = "lightgrey"; // TABLE CELL BG COLOR OF THE DATE CELLS IN THE BOTTOM FRAME -headingCellColor = "white"; // TABLE CELL BG COLOR OF THE WEEKDAY ABBREVIATIONS -headingTextColor = "black"; // TEXT COLOR OF THE WEEKDAY ABBREVIATIONS -dateColor = "blue"; // TEXT COLOR OF THE LISTED DATES (1-28+) -focusColor = "#ff0000"; // TEXT COLOR OF THE SELECTED DATE (OR CURRENT DATE) -hoverColor = "darkred"; // TEXT COLOR OF A LINK WHEN YOU HOVER OVER IT -fontStyle = "12pt arial, helvetica"; // TEXT STYLE FOR DATES -headingFontStyle = "bold 12pt arial, helvetica"; // TEXT STYLE FOR WEEKDAY ABBREVIATIONS - -// FORMATTING PREFERENCES -bottomBorder = false; // TRUE/FALSE (WHETHER TO DISPLAY BOTTOM CALENDAR BORDER) -tableBorder = 0; // SIZE OF CALENDAR TABLE BORDER (BOTTOM FRAME) 0=none - -var DateTimeFormat = true; //"DateTime" if true, else a "Date" - -// END USER-EDITABLE SECTION ------------------------------------------------------- - -// DETERMINE BROWSER BRAND -var isNav = false; -var isIE = false; - -// ASSUME IT'S EITHER NETSCAPE OR MSIE -if (navigator.appName == "Netscape") { - isNav = true; -} -else { - isIE = true; -} - -// global variable for top frame and bottom frame -var calDocTop; -var calDocBottom; - -// PRE-BUILD PORTIONS OF THE CALENDAR WHEN THIS JS LIBRARY LOADS INTO THE BROWSER -buildCalParts(); - -// CALENDAR FUNCTIONS BEGIN HERE --------------------------------------------------- - -// SET THE INITIAL VALUE OF THE GLOBAL DATE FIELD -function setDateField(formName, dateField, hiddenField) { - - // ASSIGN THE INCOMING FIELD OBJECT TO A GLOBAL VARIABLE - thisform = document.forms[formName]; - calDateField = thisform[dateField]; - calHiddenField = thisform[hiddenField]; - - // GET THE VALUE OF THE INCOMING FIELD - inDate = thisform[hiddenField].value; - - // SET calDate TO THE DATE IN THE INCOMING FIELD OR DEFAULT TO TODAY'S DATE - setInitialDate(); - - // THE CALENDAR FRAMESET DOCUMENTS ARE CREATED BY JAVASCRIPT FUNCTIONS - calDocTop = buildTopCalFrame(); - calDocBottom = buildBottomCalFrame(); -} - - -// SET THE INITIAL CALENDAR DATE TO TODAY OR TO THE EXISTING VALUE IN dateField -function setInitialDate() { - - calDate = ParseDate(inDate, DateTimeFormat); - - // IF THE INCOMING DATE IS INVALID, USE THE CURRENT DATE - if (isNaN(calDate)) { - - // ADD CUSTOM DATE PARSING HERE - // IF IT FAILS, SIMPLY CREATE A NEW DATE OBJECT WHICH DEFAULTS TO THE CURRENT DATE - calDate = new Date(); - } - - // KEEP TRACK OF THE CURRENT DAY VALUE - calDay = calDate.getDate(); - - // SET DAY VALUE TO 1... TO AVOID JAVASCRIPT DATE CALCULATION ANOMALIES - // (IF THE MONTH CHANGES TO FEB AND THE DAY IS 30, THE MONTH WOULD CHANGE TO MARCH - // AND THE DAY WOULD CHANGE TO 2. SETTING THE DAY TO 1 WILL PREVENT THAT) - calDate.setDate(1); -} - -// CREATE THE TOP CALENDAR FRAME -function buildTopCalFrame() { - - // CREATE THE TOP FRAME OF THE CALENDAR - var calDoc = - "" + - "" + - "" + - "" + - "
    " + - "
    " + - "" + - "" + - "" + - "" + - "" + - "" + - "
    " + - "
    " + - getMonthSelect() + - "" + - "
    " + - "
    " + - "
    " + - "" + - "
    " + - "
    " + - "
    " + - "
    " + - "" + - ""; - - return calDoc; -} - -// CREATE THE BOTTOM CALENDAR FRAME -// (THE MONTHLY CALENDAR) -function buildBottomCalFrame() { - // START CALENDAR DOCUMENT - var calDoc = calendarBegin; - - // GET MONTH, AND YEAR FROM GLOBAL CALENDAR DATE - month = calDate.getMonth(); - year = calDate.getFullYear(); - - - // GET GLOBALLY-TRACKED DAY VALUE (PREVENTS JAVASCRIPT DATE ANOMALIES) - day = calDay; - - var i = 0; - - // DETERMINE THE NUMBER OF DAYS IN THE CURRENT MONTH - var days = getDaysInMonth(); - - // IF GLOBAL DAY VALUE IS > THAN DAYS IN MONTH, HIGHLIGHT LAST DAY IN MONTH - if (day > days) { - day = days; - } - - // DETERMINE WHAT DAY OF THE WEEK THE CALENDAR STARTS ON - var firstOfMonth = new Date (year, month, 1); - - // GET THE DAY OF THE WEEK THE FIRST DAY OF THE MONTH FALLS ON - var startingPos = firstOfMonth.getDay(); - days += startingPos; - - // KEEP TRACK OF THE COLUMNS, START A NEW ROW AFTER EVERY 7 COLUMNS - var columnCount = 0; - - // MAKE BEGINNING NON-DATE CELLS BLANK - for (i = 0; i < startingPos; i++) { - - calDoc += blankCell; - columnCount++; - } - - // SET VALUES FOR DAYS OF THE MONTH - var currentDay = 0; - var dayType = "weekday"; - - // DATE CELLS CONTAIN A NUMBER - for (i = startingPos; i < days; i++) { - - var paddingChar = " "; - - // ADJUST SPACING SO THAT ALL LINKS HAVE RELATIVELY EQUAL WIDTHS - if (i-startingPos+1 < 10) { - padding = "  "; - } - else { - padding = " "; - } - - // GET THE DAY CURRENTLY BEING WRITTEN - currentDay = i-startingPos+1; - - // SET THE TYPE OF DAY, THE focusDay GENERALLY APPEARS AS A DIFFERENT COLOR - if (currentDay == day) { - dayType = "focusDay"; - } - else { - dayType = "weekDay"; - } - - // ADD THE DAY TO THE CALENDAR STRING - calDoc += "" + - "" + padding + currentDay + paddingChar + ""; - - columnCount++; - - // START A NEW ROW WHEN NECESSARY - if (columnCount % 7 == 0) { - calDoc += ""; - } - } - - // MAKE REMAINING NON-DATE CELLS BLANK - for (i=days; i<42; i++) { - - calDoc += blankCell; - columnCount++; - - // START A NEW ROW WHEN NECESSARY - if (columnCount % 7 == 0) { - calDoc += ""; - if (i<41) { - calDoc += ""; - } - } - } - - // FINISH THE NEW CALENDAR PAGE - calDoc += calendarEnd; - - // RETURN THE COMPLETED CALENDAR PAGE - return calDoc; -} - - -// WRITE THE MONTHLY CALENDAR TO THE BOTTOM CALENDAR FRAME -function writeCalendar() { - // CREATE THE NEW CALENDAR FOR THE SELECTED MONTH & YEAR - calDocBottom = buildBottomCalFrame(); - - if (document.getElementById) { // ns6 & ie - top.newWin.frames['bottomCalFrame'].document.getElementById('bottomDiv').innerHTML = calDocBottom; - } else { - // WRITE THE NEW CALENDAR TO THE BOTTOM FRAME - top.newWin.frames['bottomCalFrame'].document.open(); - top.newWin.frames['bottomCalFrame'].document.write(calDocBottom); - top.newWin.frames['bottomCalFrame'].document.close(); - } -} - -// SET THE CALENDAR TO TODAY'S DATE AND DISPLAY THE NEW CALENDAR -function setToday() { - - // SET GLOBAL DATE TO TODAY'S DATE - calDate = new Date(); - - // SET DAY MONTH AND YEAR TO TODAY'S DATE - var month = calDate.getMonth(); - var year = calDate.getFullYear(); - - // SET MONTH IN DROP-DOWN LIST - top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex = month; - - // SET YEAR VALUE - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - - // SET THE DAY VALUE - calDay = calDate.getDate(); - - // DISPLAY THE NEW CALENDAR - writeCalendar(); -} - - -// SET THE GLOBAL DATE TO THE NEWLY ENTERED YEAR AND REDRAW THE CALENDAR -function setYear() { - - // GET THE NEW YEAR VALUE - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - - // IF IT'S A FOUR-DIGIT YEAR THEN CHANGE THE CALENDAR - if (isFourDigitYear(year)) { - calDate.setFullYear(year); - writeCalendar(); - top.newWin.frames['topCalFrame'].document.calControl.year.blur(); - } - else { - // HIGHLIGHT THE YEAR IF THE YEAR IS NOT FOUR DIGITS IN LENGTH - top.newWin.frames['topCalFrame'].document.calControl.year.focus(); - top.newWin.frames['topCalFrame'].document.calControl.year.select(); - } -} - - -// SET THE GLOBAL DATE TO THE SELECTED MONTH AND REDRAW THE CALENDAR -function setCurrentMonth() { - - // GET THE NEWLY SELECTED MONTH AND CHANGE THE CALENDAR ACCORDINGLY - var month = top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex; - - calDate.setMonth(month); - writeCalendar(); -} - - -// SET THE GLOBAL DATE TO THE PREVIOUS YEAR AND REDRAW THE CALENDAR -function setPreviousYear() { - - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - - if (isFourDigitYear(year) && year > 1000) { - year--; - calDate.setFullYear(year); - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - writeCalendar(); - } -} - - -// SET THE GLOBAL DATE TO THE PREVIOUS MONTH AND REDRAW THE CALENDAR -function setPreviousMonth() { - - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - if (isFourDigitYear(year)) { - var month = top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex; - - // IF MONTH IS JANUARY, SET MONTH TO DECEMBER AND DECREMENT THE YEAR - if (month == 0) { - month = 11; - if (year > 1000) { - year--; - calDate.setFullYear(year); - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - } - } - else { - month--; - } - calDate.setMonth(month); - top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex = month; - writeCalendar(); - } -} - - -// SET THE GLOBAL DATE TO THE NEXT MONTH AND REDRAW THE CALENDAR -function setNextMonth() { - - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - - if (isFourDigitYear(year)) { - var month = top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex; - - // IF MONTH IS DECEMBER, SET MONTH TO JANUARY AND INCREMENT THE YEAR - if (month == 11) { - month = 0; - year++; - calDate.setFullYear(year); - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - } - else { - month++; - } - calDate.setMonth(month); - top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex = month; - writeCalendar(); - } -} - - -// SET THE GLOBAL DATE TO THE NEXT YEAR AND REDRAW THE CALENDAR -function setNextYear() { - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - if (isFourDigitYear(year)) { - year++; - calDate.setFullYear(year); - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - writeCalendar(); - } -} - - -// GET NUMBER OF DAYS IN MONTH -function getDaysInMonth() { - - var days; - var month = calDate.getMonth()+1; - var year = calDate.getFullYear(); - - // RETURN 31 DAYS - if (month==1 || month==3 || month==5 || month==7 || month==8 || - month==10 || month==12) { - days=31; - } - // RETURN 30 DAYS - else if (month==4 || month==6 || month==9 || month==11) { - days=30; - } - // RETURN 29 DAYS - else if (month==2) { - if (isLeapYear(year)) { - days=29; - } - // RETURN 28 DAYS - else { - days=28; - } - } - return (days); -} - - -// CHECK TO SEE IF YEAR IS A LEAP YEAR -function isLeapYear (Year) { - - if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) { - return (true); - } - else { - return (false); - } -} - - -// ENSURE THAT THE YEAR IS FOUR DIGITS IN LENGTH -function isFourDigitYear(year) { - - if (year == null || year.match(/^[0-9]{4}$/) == null){ - top.newWin.frames['topCalFrame'].document.calControl.year.value = calDate.getFullYear(); - top.newWin.frames['topCalFrame'].document.calControl.year.select(); - top.newWin.frames['topCalFrame'].document.calControl.year.focus(); - } - else { - return true; - } -} - - -// BUILD THE MONTH SELECT LIST -function getMonthSelect() { - - monthArray = new Array(L_January, L_February, L_March, L_April, L_May, L_June, - L_July, L_August, L_September, L_October, L_November, L_December); - - - // DETERMINE MONTH TO SET AS DEFAULT - var activeMonth = calDate.getMonth(); - - // START HTML SELECT LIST ELEMENT - monthSelect = ""; - - // RETURN A STRING VALUE WHICH CONTAINS A SELECT LIST OF ALL 12 MONTHS - return monthSelect; -} - - -// SET DAYS OF THE WEEK DEPENDING ON LANGUAGE -function createWeekdayList() { - - weekdayArray = new Array(L_Su,L_Mo,L_Tu,L_We,L_Th,L_Fr,L_Sa); - - - // START HTML TO HOLD WEEKDAY NAMES IN TABLE FORMAT - var weekdays = ""; - - // LOOP THROUGH WEEKDAY ARRAY - for (i in weekdayArray) { - - weekdays += "" + weekdayArray[i] + ""; - } - weekdays += ""; - - // RETURN TABLE ROW OF WEEKDAY ABBREVIATIONS TO DISPLAY ABOVE THE CALENDAR - return weekdays; -} - - -// PRE-BUILD PORTIONS OF THE CALENDAR (FOR PERFORMANCE REASONS) -function buildCalParts() { - - // GENERATE WEEKDAY HEADERS FOR THE CALENDAR - weekdays = createWeekdayList(); - - // BUILD THE BLANK CELL ROWS - blankCell = "   "; - - // BUILD THE TOP PORTION OF THE CALENDAR PAGE USING CSS TO CONTROL SOME DISPLAY ELEMENTS - calendarBegin = - "" + - "" + - // STYLESHEET DEFINES APPEARANCE OF CALENDAR - "" + - - "" + - ""; - if (document.getElementById) { // ns6 & ie - calendarBegin += - "
    "; - } - calendarBegin += - "
    "; - - // NAVIGATOR NEEDS A TABLE CONTAINER TO DISPLAY THE TABLE OUTLINES PROPERLY - if (isNav) { - calendarBegin += - "
    "; - } - - // BUILD WEEKDAY HEADINGS - calendarBegin += - "" + - weekdays + - ""; - - - // BUILD THE BOTTOM PORTION OF THE CALENDAR PAGE - calendarEnd = ""; - - // WHETHER OR NOT TO DISPLAY A THICK LINE BELOW THE CALENDAR - if (bottomBorder) { - calendarEnd += ""; - } - - // NAVIGATOR NEEDS A TABLE CONTAINER TO DISPLAY THE BORDERS PROPERLY - if (isNav) { - calendarEnd += "
    "; - } - - // END THE TABLE AND HTML DOCUMENT - calendarEnd += - "
    " + - "
    "; - if (document.getElementById) { // ns6 & ie - calendarEnd += - "
    "; - } - calendarEnd += - "" + - ""; -} - - -// REPLACE ALL INSTANCES OF find WITH replace -// inString: the string you want to convert -// find: the value to search for -// replace: the value to substitute -// -// usage: jsReplace(inString, find, replace); -// example: jsReplace("To be or not to be", "be", "ski"); -// result: "To ski or not to ski" -// -function jsReplace(inString, find, replace) { - - var outString = ""; - - if (!inString) { - return ""; - } - - // REPLACE ALL INSTANCES OF find WITH replace - if (inString.indexOf(find) != -1) { - // SEPARATE THE STRING INTO AN ARRAY OF STRINGS USING THE VALUE IN find - t = inString.split(find); - - // JOIN ALL ELEMENTS OF THE ARRAY, SEPARATED BY THE VALUE IN replace - return (t.join(replace)); - } - else { - return inString; - } -} - - -// JAVASCRIPT FUNCTION -- DOES NOTHING (USED FOR THE HREF IN THE CALENDAR CALL) -function doNothing() { -} - - -// ENSURE THAT VALUE IS TWO DIGITS IN LENGTH -function makeTwoDigit(inValue) { - - var numVal = parseInt(inValue, 10); - - // VALUE IS LESS THAN TWO DIGITS IN LENGTH - if (numVal < 10) { - - // ADD A LEADING ZERO TO THE VALUE AND RETURN IT - return("0" + numVal); - } - else { - return numVal; - } -} - - -// SET FIELD VALUE TO THE DATE SELECTED AND CLOSE THE CALENDAR WINDOW -function returnDate(inDay) -{ - // inDay = THE DAY THE USER CLICKED ON - calDate.setDate(inDay); - - // SET THE DATE RETURNED TO THE USER - var day = calDate.getDate(); - var month = calDate.getMonth()+1; - var year = calDate.getFullYear(); - - // SET THE VALUE OF THE FIELD THAT WAS PASSED TO THE CALENDAR - var dt = new Date(year, month - 1, day, 0, 0, 0); - calDateField.value = GLDT(dt,true, false); - - calHiddenField.value = "Date("; - calHiddenField.value += year; - calHiddenField.value += ","; - calHiddenField.value += month; - calHiddenField.value += ","; - calHiddenField.value += day; - calHiddenField.value += ")"; - - // GIVE FOCUS BACK TO THE DATE FIELD - calDateField.focus(); - - // CLOSE THE CALENDAR WINDOW - top.newWin.close() -} - -var gHour = "0"; -var gMin = "0"; -var gSec = "0"; -var regDateTimePrompt = /^(D|d)(A|a)(T|t)(E|e)(T|t)(I|i)(M|m)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *, *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/ -function ParseDateTimePrompt(inDate) -{ - if ( regDateTimePrompt.test ( inDate ) ) - { - var sDate = inDate.substr ( inDate.indexOf("(")+1 ); //move past "DateTime (" - sDate = sDate.substr ( 0, sDate.lastIndexOf(")") ); //remove trailing ")" - var dateArray = sDate.split (','); - var _date = new Date ( dateArray[0], Number(dateArray[1]) - 1, dateArray[2] ); - gHour = dateArray[3]; gMin = dateArray[4]; gSec = dateArray[5]; - return _date; - } - return new Date (); -} - -var regDatePrompt = /^(D|d)(A|a)(T|t)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *\)$/ -function ParseDatePrompt(inDate) -{ - if ( regDatePrompt.test ( inDate ) ) - { - var sDate = inDate.substr ( inDate.indexOf("(")+1 ); //move past "Date (" - sDate = sDate.substr ( 0, sDate.lastIndexOf(")") ); //remove trailing ")" - var dateArray = sDate.split (','); - return new Date ( dateArray[0], Number(dateArray[1]) - 1, dateArray[2] ); - } - return new Date(); -} - -function ParseDate(inDate, bDateTimeFormat) -{ - var result; - - if (bDateTimeFormat == true) { - result = ParseDateTimePrompt(inDate); - } else { - result = ParseDatePrompt(inDate); - } - - return result; -} -if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded(); \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/dt_param.js b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/dt_param.js deleted file mode 100644 index cab59ecd6..000000000 --- a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/dt_param.js +++ /dev/null @@ -1,345 +0,0 @@ - -// TDC is to get DateTime format info for current locale -function TDC() { - var d=new Date(1970,0,0,0,0,0,0),d2=new Date(d),s1,s2,api=-1; - d.setHours(10); d2.setHours(11); - s1=d.toLocaleString(); s2=d2.toLocaleString(); - this.displayHour=(s1!=s2); - d.setHours(0); d2.setHours(0); - d.setMinutes(10); d2.setMinutes(11); - this.displayMinute=(d.toLocaleString()!=d2.toLocaleString()); - d.setMinutes(0); d2.setMinutes(0); - d.setSeconds(10); d2.setSeconds(11); - this.displaySecond=(d.toLocaleString()!=d2.toLocaleString()); - d.setSeconds(0); d2.setSeconds(0); - if (this.displayHour) { - for (i=0; i<((s1.length 12) && (i == hour - 12)) - editablesHtml += " selected "; - else if (i == hour) - editablesHtml += " selected "; - } - - if ((i < 10) && (TD.hourLeadZero)) - { - editablesHtml += "> 0"; - } - else - { - editablesHtml += "> "; - - } - editablesHtml += i; - editablesHtml += "\n"; - } - - editablesHtml += " "; - } - - if (TD.displayMinute) - { - if (editablesHtml.length != 0) - { - editablesHtml += time_sep_span; - } - - editablesHtml += ""; - } - - return editablesHtml; -} - -// get Locale Date/Time -// d: input Date -// return only Date part if includeDate==true, and includeTime== false -// return only Time part if includeDate==false and includeTime== true -// return datetime string if includeDate==true and includeTime == true -function GLDT(d, includeDate, includeTime) { // Get Locale Date/Time - // Returns date/and or time from locale string. - // Assumes that date appears before time in string. - if (includeDate && includeTime) return d.toLocaleString(); - - var d2 = new Date(d); - var ds; - var ds2; - var ml; - d2.setMilliseconds(d.getMilliseconds()<=887 ? d.getMilliseconds()+111 : d.getMilliseconds() - 111); - d2.setSeconds(d.getSeconds()<=49 ? d.getSeconds()+11 : d.getSeconds()-11); - d2.setMinutes(d.getMinutes()<=49 ? d.getMinutes()+11 : d.getMinutes()-11); - - // although TD.twelveHourClock could be true, but d.getHours will always get hours in 24 - // only the localized the date string will be in twelve hour clock - // here we want d2's hour's first digit different from d1's hour's first digit - // also if d1 is morning, d2 will be in afternoon, vice versa thus we get different strings for AM, and PM - // because AM/PM could be before hours (eg. in Korean) - if (TD.twelveHourClock) - { - var hour = d.getHours(); - if (hour == 0 || hour == 1 || hour == 10 || hour == 11) - { - d2.setHours(14); - } - else if (hour == 12 || hour == 13 || hour == 22 || hour == 23) - { - d2.setHours(2); - } - else if (hour < 12) - { - d2.setHours(13); - } - else - { - d2.setHours(1); - } - } - else - { - d2.setHours( d.getHours()<12 ? (d.getHours() == 1 ? 2 : d.getHours() + 12) : (d.getHours()<20 ? 20 : 11)); - } - - ds = d.toLocaleString(); - - ds2 = d2.toLocaleString(); - - ml = ds.length < ds2.length ? ds.length : ds2.length ; - for (i=0; i" + - ""; - -function getPageTitle() { - if (print) { - return L_PrintPageTitle; - } - else { - return L_ExportPageTitle; - } -} - -function getOptionsTitle() { - if (print) { - return L_PrintOptions; - } - else { - return L_ExportOptions; - } -} - -function getFormatDropdownList() { - if (print) { - return ""; - } - else { - var list = - "" + - "" + - "" + - "" + - "" + - "
    " + - "" + - "
    "; - return list; - } -} - -function getSelectPageRangeSentence() { - if (print) { - return L_PrintPageRange; - } - else { - return L_ExportPageRange; - } -} - -function getPrintSteps() { - if (print) { - var steps = - "" + - "" + L_PrintStep0 + "" + - "" + - "" + - "" + L_PrintStep1 + "" + - "" + - "" + - "" + L_PrintStep2 + "" + - ""; - return steps; - } - else { - return ""; - } -} - -function getExportDialog() { - var exportDialog = - "" + - "" + - "" + - "" + getPageTitle() + "" + - "" + - "" + - "
    " + - crystal_postback + - "" + - "" + - "" + - "" + - "
    " + - "
    " + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - getPrintSteps() + - "" + - "" + - "" + - "" + - "
     
     
    " + getOptionsTitle() + "
    " + - getFormatDropdownList() + - "
       " + getSelectPageRangeSentence() + - "
    " + - "" + - "" + - "" + - "" + - "" + - "
    " + - "
    " + - "" + - "" + - "" + - "" + - "" + - "
    " + - "
    " + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "
         
    " + - "

    " + - "
    " + - "" + - ""; - - return exportDialog; -} -if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded(); \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/print.js b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/print.js deleted file mode 100644 index 0d1f21123..000000000 --- a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/print.js +++ /dev/null @@ -1,56 +0,0 @@ -var IE_PRINT_CONTROL_PRODUCTVERSION = "10,5,0,1943" -var NS_PRINT_CONTROL_PRODUCTVERSION = "10.5.0.1943" - -function blockEvents() { - var deadend; - opener.captureEvents(Event.CLICK, Event.MOUSEDOWN, Event.MOUSEUP, Event.FOCUS); - opener.onclick = deadend; - opener.onmousedown = deadend; - opener.onmouseup = deadend; - opener.focus = deadend; -} - -function unblockEvents() { - opener.releaseEvents(Event.CLICK, Event.MOUSEDOWN, Event.MOUSEUP, Event.FOCUS); - opener.onclick = null; - opener.mousedown = null; - opener.mouseup = null; - opener.onfocus = null; -} - -function finished() { - setTimeout("close()", 1000); -} - -function installNsPlugin(pluginUrl, clientVersionRegistry) { - var err = InstallTrigger.compareVersion(clientVersionRegistry, NS_PRINT_CONTROL_PRODUCTVERSION); - - if (err < 0) - { - xpi={'Crystal Reports ActiveX Print Control Plug-in':pluginUrl}; - InstallTrigger.install(xpi, callback); - } -} - -function callback(url, status) { - if (status) { - alert("Installation of the ActiveX Print Control failed. Error code: " + status); - } -} - -function checkModal(dlgWindow) { - if (dlgWindow && !dlgWindow.closed) - dlgWindow.focus(); -} - -function cancelPrinting(printControl) { - if (printControl && printControl.IsBusy) { - printControl.CancelPrinting(); - } -} - -function checkUserCancelledInstallation(printControl) { - if (printControl && printControl.IsBusy == undefined) - close(); -} -if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded(); diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/prompts_param.js b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/prompts_param.js deleted file mode 100644 index 5f269c88c..000000000 --- a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/prompts_param.js +++ /dev/null @@ -1,1104 +0,0 @@ - -////////////////////////////// -// FOR DEBUGGING ONLY -var debug = false; -function dumpFormFields(formName) -{ - theForm = document.forms[formName]; - for ( idx = 0; idx < theForm.elements.length; ++idx ) - alert ( theForm.elements[idx].name + " - " + theForm.elements[idx].value ); -} - -////////////////////////////// -// GLOBAL VAR -var needURLEncode = false; // only need to do url encode in java -var promptPrefix = "promptex-"; -var CR_NULL = "_crNULL_"; -var CR_USE_VALUE = "_crUseValue_"; - -var _bver = parseInt(navigator.appVersion); -var Nav4 = ((navigator.appName == "Netscape") && _bver==4); -var Nav4plus = ((navigator.appName == "Netscape") && _bver >= 4); -var IE4plus = ((navigator.userAgent.indexOf("MSIE") != -1) && _bver>4); - -if (Nav4plus) - var userLanguage = (navigator.language.substr(0, 2)); -else - var userLanguage = (navigator.browserLanguage.substr(0, 2)); - -/////////////////////////////// -// substitue range string -function ConstructRangeDisplayString(rangeStr, param0, param1) -{ - var newString = rangeStr.replace("{0}", param0); - newString = newString.replace("{1}", param1); - return newString; -} - -/////////////////////////////// -// Display string for range value in ListBox -function GetRangeValueDisplayText(rangeStr, param0, param1, paramType) -{ - if (paramType == "dt" || paramType == "d" || paramType == "t") - { - if (param0.length != 0) - { - param0 = NeutralDT2D(param0); - } - - if (param1.length != 0) - { - param1 = NeutralDT2D(param1); - } - } - - return ConstructRangeDisplayString(rangeStr, param0, param1); -} - -/////////////////////////////// -// properly encode prompt values -function encodePrompt (prompt) -{ - if (needURLEncode) - { - return encodeURIComponent(prompt); - } - else - { - return prompt; - } -} - -function clickSetNullCheckBox(inForm, paramName, suffix) -{ - var nullCtrl = inForm[paramName + "NULL"]; - var textCtrl = inForm[paramName + suffix]; - var hiddenCtrl = inForm[paramName + suffix + "Hidden"]; - var hourCtrl = inForm[paramName + suffix + "Hour"]; - var minuteCtrl = inForm[paramName + suffix + "Minute"]; - var secondCtrl = inForm[paramName + suffix + "Second"]; - var ampmCtrl = inForm[paramName + suffix + "AMPM"]; - if (nullCtrl.checked) - { - if (textCtrl != null) textCtrl.disabled = true; - if (hourCtrl != null) hourCtrl.disabled = true; - if (minuteCtrl != null) minuteCtrl.disabled = true; - if (secondCtrl != null) secondCtrl.disabled = true; - if (ampmCtrl != null) ampmCtrl.disabled = true; - } - else - { - if (textCtrl != null) textCtrl.disabled = false; - if (hourCtrl != null) hourCtrl.disabled = false; - if (minuteCtrl != null) minuteCtrl.disabled = false; - if (secondCtrl != null) secondCtrl.disabled = false; - if (ampmCtrl != null) ampmCtrl.disabled = false; - - } -} - -function ClearListBoxAndSetNULL(theList) -{ - // delete everything in the listbox, add _crNULL_ as an item - promptEntry = new Option(L_NoValue, CR_NULL,false,false); - for ( var idx = 0; idx < theList.options.length; ) - { - theList.options[0] = null; - idx++; - } - - theList.options[0] = promptEntry; - return; -} - -//////////////////////////////// -// add number, currency, string from dropdown/textbox to list box -// where multiple prompt values are supported -function DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl) -{ - var promptValue = ""; - - var year; - var month; - var day; - if ((type == "dt") || (type == "d")) - { - var d = hiddenCtrl.value; - if (d.length == 0) - { - alert(L_NoDateEntered); - return ""; - } - var leftIndex = d.indexOf("("); - var rightIndex = d.indexOf(")"); - d = d.substr(leftIndex + 1, rightIndex - leftIndex - 1); - var dArray = d.split(","); - year = dArray[0]; - month = dArray[1]; - day = dArray[2]; - } - - if (type == "dt") - { - promptValue = "DateTime("; - promptValue += year; - promptValue += ","; - promptValue += month; - promptValue += ","; - promptValue += day; - promptValue += ","; - - var hour = 0; - if (ampmCtrl != undefined) - { - var i = 0; - if (ampmCtrl.selectedIndex == 1) - i = 1; - hour = hourCtrl.selectedIndex + 1 + i * 12; - if (hour == 12) hour = 0; - else if (hour == 24) hour = 12; - } - else - { - hour = hourCtrl.selectedIndex; - } - - promptValue += hour; - promptValue += ","; - promptValue += minuteCtrl.selectedIndex; - promptValue += ","; - promptValue += secondCtrl.selectedIndex; - - promptValue += ")"; - } - else if (type == "d") - { - promptValue = "Date("; - promptValue += year; - promptValue += ","; - promptValue += month; - promptValue += ","; - promptValue += day; - promptValue += ")"; - - } - else if (type == "t") - { - promptValue = "Time(" - - var hour = 0; - if (ampmCtrl != undefined) - { - var i = 0; - if (ampmCtrl.selectedIndex == 1) - i = 1; - hour = hourCtrl.selectedIndex + 1 + i * 12; - if (hour == 12) hour = 0; - else if (hour == 24) hour = 12; - } - else - { - hour = hourCtrl.selectedIndex; - } - - - promptValue += hour; - promptValue += ","; - promptValue += minuteCtrl.selectedIndex; - promptValue += ","; - promptValue += secondCtrl.selectedIndex; - promptValue += ")"; - } - - return promptValue; -} - - -function DateTimeDisplayStringHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl) -{ - var neutralstring = DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl); - return NeutralDT2D(neutralstring); -} - - -function addPromptDiscreteValueHelper(inForm, type, paramName, suffix) -{ - theList = inForm[paramName + "ListBox"]; - - // if there is a NULL checkbox and it is set - if ( inForm[paramName + "NULL"] != null && inForm[paramName + "NULL"].checked ) - { - // delete everything in the listbox, add _crNULL_ as an item - ClearListBoxAndSetNULL(theList); - return; - } - - // if the listbox already has a NULL value in it, don't do anything, unless user removes NULl value from the listbox - if (theList.options.length > 0 && theList.options[0].value == CR_NULL) - { - alert(L_NoValueAlready); - return; - } - - // if defaultdropdownlist selected item is _crNULL_, put it into multiple listbox - var dropDownListName = ""; - if (suffix == "DiscreteValue") - dropDownListName = paramName + "SelectValue"; - else - dropDownListName = paramName + "SelectLowerBound"; - var dropDownListCtrl = inForm[dropDownListName]; - if (dropDownListCtrl != null) - { - if (dropDownListCtrl.options[dropDownListCtrl.selectedIndex].value == CR_NULL) - { - // delete everything in the listbox, add _crNULL_ as an item - ClearListBoxAndSetNULL(theList); - return; - } - } - - var textCtrl = inForm[paramName + suffix]; - var hiddenCtrl = inForm[paramName + suffix + "Hidden"]; - var hourCtrl = inForm[paramName + suffix + "Hour"]; - var minuteCtrl = inForm[paramName + suffix + "Minute"]; - var secondCtrl = inForm[paramName + suffix + "Second"]; - var ampmCtrl = inForm[paramName + suffix + "AMPM"]; - - var obj; - var editables = true; - - if (textCtrl == undefined && hourCtrl == undefined) - { - //select box not a textbox, hour, minute, and second, ampm dropdown are not there either - editables = false; - obj = dropDownListCtrl; - obj = obj.options[obj.selectedIndex]; - } - else - { - if (type == "t") - obj = hourCtrl; - else - obj = textCtrl; - } - - if (editables && (type == "dt" || type == "d" || type == "t")) - { - promptValue = DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl); - if (promptValue.length == 0) return false; - - displayString = DateTimeDisplayStringHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl); - } - else - { - promptValue = encodePrompt(obj.value); - displayString = ( obj.text ) ? obj.text : obj.value; - } - - if ( ! checkSingleValue (promptValue, type ) ) - { - return false; - } - - promptEntry = new Option(displayString,promptValue,false,false); - theList.options[theList.length] = promptEntry; -} - -function addPromptDiscreteValue ( inForm, type , paramName) -{ - addPromptDiscreteValueHelper(inForm, type, paramName, "DiscreteValue"); -} - -//////////////////////////////////// -// adds Range prompt to listbox where multiple values are supported -function addPromptDiscreteRangeValue ( inForm, type , paramName ) -{ - lowerOption = inForm[paramName + "SelectLowerOptions"]; - - // exactly - if (lowerOption.selectedIndex == 1) - { - // add discrete - addPromptDiscreteValueHelper(inForm, type, paramName, "LowerBound"); - } - else - { - // add range - addPromptRangeValue(inForm, type, paramName); - } -} - -//////////////////////////////////// -// adds Range prompt to listbox where multiple values are supported -function addPromptRangeValue ( inForm, type , paramName ) -{ - - theList = inForm[paramName + "ListBox"]; - - // if there is a NULL checkbox and it is set - if ( inForm[paramName + "NULL"] != null && inForm[paramName + "NULL"].checked ) - { - // delete everything in the listbox, add _crNULL_ as an item - ClearListBoxAndSetNULL(theList); - return; - } - - // if the listbox already has a NULL value in it, don't do anything, unless user removed NULl value from the listbox - if (theList.options.length > 0 && theList.options[0].value == CR_NULL) - { - alert(L_NoValueAlready); - return; - } - - // if both defaultdropdownlists selected item is _crNULL_, put it into multiple listbox - // if one of them is _crNULL_, it is not a valid option, do nothing - var lowerDropDownListName = paramName + "SelectLowerBound"; - var upperDropDownListName = paramName + "SelectUpperBound"; - var lowerDropDownListCtrl = inForm[lowerDropDownListName]; - var upperDropDownListCtrl = inForm[upperDropDownListName]; - if (lowerDropDownListCtrl != null && upperDropDownListCtrl != null) - { - if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL - && upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL) - { - // delete everything in the listbox, add _crNULL_ as an item - ClearListBoxAndSetNULL(theList); - return; - } - else if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL - || upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL) - { - alert(L_BadValue); - return; - } - } - - lowerOption = inForm[paramName + "SelectLowerOptions"]; - upperOption = inForm[paramName + "SelectUpperOptions"]; - - lowerBound = inForm[paramName + "LowerBound"]; - upperBound = inForm[paramName + "UpperBound"]; - - lowerBoundHidden = inForm[paramName + "LowerBoundHidden"]; - upperBoundHidden = inForm[paramName + "UpperBoundHidden"]; - - var lhourCtrl = inForm[paramName+"LowerBound" + "Hour"]; - var lminuteCtrl = inForm[paramName + "LowerBound" + "Minute"]; - var lsecondCtrl = inForm[paramName + "LowerBound" + "Second"]; - var lampmCtrl = inForm[paramName + "LowerBound" + "AMPM"]; - - var uhourCtrl = inForm[paramName+"UpperBound" + "Hour"]; - var uminuteCtrl = inForm[paramName + "UpperBound" + "Minute"]; - var usecondCtrl = inForm[paramName + "UpperBound" + "Second"]; - var uampmCtrl = inForm[paramName + "UpperBound" + "AMPM"]; - - var editable = true; - - //handle select box, not text box case - if ( lowerBound == undefined && lhourCtrl == undefined)//either upper or lower, doesn't matter - { - editable = false; - - lowerBound = inForm[paramName + "SelectLowerBound"]; - upperBound = inForm[paramName + "SelectUpperBound"]; - lowerBound = lowerBound.options[lowerBound.selectedIndex]; - upperBound = upperBound.options[upperBound.selectedIndex]; - } - - lowerUnBounded = (inForm[paramName+"SelectLowerOptions"].selectedIndex == (inForm[paramName + "SelectLowerOptions"].options.length - 1)); - upperUnBounded = (inForm[paramName+"SelectUpperOptions"].selectedIndex == (inForm[paramName + "SelectUpperOptions"].options.length - 1)); - - - lvalue = uvalue = ""; - - if ( ! lowerUnBounded ) - { - if ((type == "dt" || type == "d" || type == "t") && (editable)) - { - lvalue = DateTimePromptValueHelper(type, lowerBoundHidden, lhourCtrl, lminuteCtrl, lsecondCtrl, lampmCtrl); - if (lvalue.length == 0) return false; - } - else - lvalue = lowerBound.value; - - if ( ! checkSingleValue ( lvalue, type ) ) { - if ( lowerBound.focus && lowerBound.type.toLowerCase () != "hidden") - lowerBound.focus (); - return false; - } - } - if ( ! upperUnBounded ) - { - if ((type == "dt" || type == "d" || type == "t") && (editable)) - { - uvalue = DateTimePromptValueHelper(type, upperBoundHidden, uhourCtrl, uminuteCtrl, usecondCtrl, uampmCtrl); - if (uvalue.length == 0) return false; - } - else - uvalue = upperBound.value; - - if ( ! checkSingleValue ( uvalue, type ) ) { - if ( upperBound.focus && upperBound.type.toLowerCase () != "hidden") - upperBound.focus (); - return false; - } - } - - var ldisplay = ""; - var udisplay = ""; - if ((type == "dt" || type == "d" || type == "t") && (editable)) - { - if (!lowerUnBounded) - ldisplay = DateTimeDisplayStringHelper(type, lowerBoundHidden, lhourCtrl, lminuteCtrl, lsecondCtrl, lampmCtrl); - if (!upperUnBounded) - udisplay = DateTimeDisplayStringHelper(type, upperBoundHidden, uhourCtrl, uminuteCtrl, usecondCtrl, uampmCtrl); - } - else - { - ldisplay = lvalue; - udisplay = uvalue; - } - - lowerChecked = (inForm[paramName+"SelectLowerOptions"].selectedIndex == 0); - upperChecked = (inForm[paramName+"SelectUpperOptions"].selectedIndex == 0); - - value = lowerUnBounded ? "{" : lowerChecked ? "[" : "("; - if ( ! lowerUnBounded ) //unbounded is empty string not quoted empty string (e.g not "_crEMPTY_") - value += encodePrompt(lvalue); - value += "_crRANGE_" - if ( ! upperUnBounded ) - value += encodePrompt(uvalue); - value += upperUnBounded ? "}" : upperChecked ? "]" : ")"; - if ( debug ) alert (value); - - if ( !lowerUnBounded && !upperUnBounded && !checkRangeValue(lvalue, uvalue, type)) - { - return false; - } - - var display = ""; - if (lowerChecked && upperUnBounded) - { - display = ConstructRangeDisplayString(L_FROM, ldisplay, ""); - } - else if (lowerUnBounded && upperChecked) - { - display = ConstructRangeDisplayString(L_TO, udisplay, ""); - } - else if (!lowerChecked && upperUnBounded) - { - display = ConstructRangeDisplayString(L_AFTER, ldisplay, ""); - } - else if (lowerUnBounded && !upperChecked) - { - display = ConstructRangeDisplayString(L_BEFORE, udisplay, ""); - } - else if (lowerChecked && upperChecked) - { - display = ConstructRangeDisplayString(L_FROM_TO, ldisplay, udisplay); - } - else if (lowerChecked && !upperUnBounded && !upperChecked) - { - display = ConstructRangeDisplayString(L_FROM_BEFORE, ldisplay, udisplay); - } - else if (!lowerChecked && !lowerUnBounded && upperChecked) - { - display = ConstructRangeDisplayString(L_AFTER_TO, ldisplay, udisplay); - } - else if (!lowerChecked && !lowerUnBounded && !upperChecked && !upperUnBounded) - { - display = ConstructRangeDisplayString(L_AFTER_BEFORE, ldisplay, udisplay); - } - - if ((!lowerUnBounded) || (!upperUnBounded)) - { - promptEntry = new Option(display,value,false,false); - theList.options[theList.length] = promptEntry; - } - else - { - alert(L_BadBound); - } - -} - -//////////////////////////////////// -// disable check boxes based on user selection on the range parameters -function disableBoundCheck(lowOrUpBound, inform, paramName) { - if (lowOrUpBound == 0) { - if (inform[paramName + "NoLowerBoundCheck"].checked) { - inform[paramName + "NoUpperBoundCheck"].disabled = true; - inform[paramName + "LowerCheck"].disabled = true; - inform[paramName + "LowerBound"].disabled = true; - } - else { - inform[paramName + "NoUpperBoundCheck"].disabled = false; - inform[paramName + "LowerCheck"].disabled = false; - inform[paramName + "LowerBound"].disabled = false; - } - } else if (lowOrUpBound == 1) { - if (inform[paramName + "NoUpperBoundCheck"].checked) { - inform[paramName + "NoLowerBoundCheck"].disabled = true; - inform[paramName + "UpperCheck"].disabled = true; - inform[paramName + "UpperBound"].disabled = true; - } else { - inform[paramName + "NoLowerBoundCheck"].disabled = false; - inform[paramName + "UpperCheck"].disabled = false; - inform[paramName + "UpperBound"].disabled = false; - } - } -} - -//////////////////////////////////// -// puts "select" value into text box for an editable prompt which also has defaults -function setSelectedValue (inForm, selectCtrlName, textCtrlName, type, namePlusFix) -{ - var textCtrl = inForm[textCtrlName]; - var selectCtrl = inForm[selectCtrlName]; - var hiddenCtrl = inForm[namePlusFix+"Hidden"]; - var hourCtrl = inForm[namePlusFix+"Hour"]; - var minuteCtrl = inForm[namePlusFix+"Minute"]; - var secondCtrl = inForm[namePlusFix+"Second"]; - var ampmCtrl = inForm[namePlusFix+"AMPM"]; - - // if no editable input fields are there, return, do nothing; - if (textCtrl == null && hourCtrl == null) - return; - - // if selectedItem is UseValue,do nothing, and return - if (selectCtrl.options[selectCtrl.selectedIndex].value == CR_USE_VALUE) - { - return; - } - - if (selectCtrl.options[selectCtrl.selectedIndex].value == CR_NULL) - { - if (textCtrl != null) textCtrl.disabled = true; - if (hourCtrl != null) hourCtrl.disabled = true; - if (minuteCtrl != null) minuteCtrl.disabled = true; - if (secondCtrl != null) secondCtrl.disabled = true; - if (ampmCtrl != null) ampmCtrl.disabled = true; - return; - } - else - { - if (textCtrl != null) textCtrl.disabled = false; - if (hourCtrl != null) hourCtrl.disabled = false; - if (minuteCtrl != null) minuteCtrl.disabled = false; - if (secondCtrl != null) secondCtrl.disabled = false; - if (ampmCtrl != null) ampmCtrl.disabled = false; - } - - var year, month, day; - var hour, minute, second; - if (type == "dt" || type == "d" || type == "t") - { - var sDateTime = selectCtrl.options[selectCtrl.selectedIndex].value; - if (sDateTime.length == 0) - return; - - var leftIndex = sDateTime.indexOf("("); - sDateTime = sDateTime.substr(leftIndex+1, sDateTime.length - leftIndex); - var rightIndex = sDateTime.indexOf(")"); - sDateTime = sDateTime.substr(0, rightIndex); - var a = sDateTime.split(","); - - if (type == "dt") - { - year = a[0]; - month = a[1]; - day = a[2]; - - hour = parseInt(a[3]); - minute = parseInt(a[4]); - second = parseInt(a[5]); - } - else if (type == "d") - { - year = a[0]; - month = a[1]; - day = a[2]; - } - else if (type == "t") - { - hour = parseInt(a[0]); - minute = parseInt(a[1]); - second = parseInt(a[2]); - } - } - - selectedOption = selectCtrl.options[selectCtrl.selectedIndex]; - if (type == "dt") - { - var dt = new Date(year, month - 1, day, hour, minute, second); - textCtrl.value = GLDT(dt, true, false); - hiddenCtrl.value = "Date("; - hiddenCtrl.value += year; - hiddenCtrl.value += ","; - hiddenCtrl.value += month; - hiddenCtrl.value += ","; - hiddenCtrl.value += day; - hiddenCtrl.value += ")"; - - if (ampmCtrl != undefined) - { - if (hour == 0 || hour == 12) - hourCtrl.selectedIndex = 11; - else if (hour > 12) - hourCtrl.selectedIndex = hour - 12 - 1; - else - hourCtrl.selectedIndex = hour - 1; - } - else - hourCtrl.selectedIndex = hour; - minuteCtrl.selectedIndex = minute; - secondCtrl.selectedIndex = second; - if (ampmCtrl != null) - { - if ( hour >= 12) - ampmCtrl.selectedIndex = 1; - else - ampmCtrl.selectedIndex = 0; - } - } - else if (type == "d") - { - var dt = new Date(year, month - 1, day, 0, 0, 0); - textCtrl.value = GLDT(dt, true, false); - hiddenCtrl.value = "Date("; - hiddenCtrl.value += year; - hiddenCtrl.value += ","; - hiddenCtrl.value += month; - hiddenCtrl.value += ","; - hiddenCtrl.value += day; - hiddenCtrl.value += ")"; - } - else if (type == "t") - { - if (ampmCtrl != null) - { - if (hour == 0 || hour == 12) - hourCtrl.selectedIndex = 11; - else if (hour > 12) - hourCtrl.selectedIndex = hour - 12 - 1; - else - hourCtrl.selectedIndex = hour - 1; - } - else - hourCtrl.selectedIndex = hour; - minuteCtrl.selectedIndex = minute; - secondCtrl.selectedIndex = second; - if (ampmCtrl != null) - { - if ( hour >= 12) - ampmCtrl.selectedIndex = 1; - else - ampmCtrl.selectedIndex = 0; - } - } - else - { - textCtrl.value = selectedOption.value; - } - - if (selectCtrl.options[0].value == CR_USE_VALUE) - { - // always show USE_VALUE as selectedItem for the dropdownlist - selectCtrl.selectedIndex = 0; - } -} - -/////////////////////////////////// -// remove value from listbox where multiple value prompts are supported -function removeFromListBox ( inForm, paramName ) -{ - lbox = inForm[paramName + "ListBox"]; - for ( var idx = 0; idx < lbox.options.length; ) - { - if ( lbox.options[idx].selected ) - lbox.options[idx] = null; - else - idx++; - } -} - -///////////////////////////////////// -// sets prompt value into the hidden form field in proper format so that it can be submitted -function setPromptSingleValue (inform, type, paramName) -{ - //alert("SetPromptSingleValue"); - hiddenField = inform[promptPrefix + paramName]; - value = ""; - if ( inform[paramName + "NULL"] != null && inform[paramName + "NULL"].checked ) - { - value = CR_NULL; //NULL is a literal for, uhmm.. a NULL - hiddenField.value = value; - return true; - } - - // if defaultdropdownlist selected item is _crNULL_, put it into multiple listbox - var dropDownListName = paramName + "SelectValue"; - var dropDownListCtrl = inform[dropDownListName]; - if (dropDownListCtrl != null) - { - if (dropDownListCtrl.options[dropDownListCtrl.selectedIndex].value == CR_NULL) - { - hiddenField.value = CR_NULL; - return true; - } - } - - - discreteVal = inform[paramName + "DiscreteValue"]; - if (discreteVal != undefined || inform[paramName + "DiscreteValueHour"] != undefined) - { // editable - - if ( type == "dt" || type == "d" || type == "t") - { - var hiddenCtrl = inform[paramName+"DiscreteValueHidden"]; - var hourCtrl = inform[paramName+"DiscreteValueHour"]; - var minuteCtrl = inform[paramName + "DiscreteValueMinute"]; - var secondCtrl = inform[paramName + "DiscreteValueSecond"]; - var ampmCtrl = inform[paramName + "DiscreteValueAMPM"]; - value = DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl); - if (value.length == 0) return false; - } - else - value = discreteVal.value; - } - else - { - // not editable - discreteVal = inform[paramName+"SelectValue"]; - value = discreteVal.options[discreteVal.selectedIndex].value; - //alert(value); - } - if ( ! checkSingleValue ( value, type ) ) { - if (discreteVal.focus && discreteVal.type.toLowerCase ()) - discreteVal.focus (); - return false; - } - else - value = encodePrompt(value); - - hiddenField.value = value; - return true; -} - -///////////////////////////////////// -// sets prompt value for a range into the hidden form field in proper format so that it can be submitted -function setPromptRangeValue (inform, type, paramName) -{ - - hiddenField = inform[promptPrefix + paramName]; - - if ( inform[paramName + "NULL"] != null && inform[paramName + "NULL"].checked ) - { - value = CR_NULL; //NULL is a literal for, uhmm.. a NULL - hiddenField.value = value; - return true; - } - - // if both defaultdropdownlists selected item is _crNULL_, put it into hiddenfield - // if one of them is _crNULL_, it is not a valid option, do nothing - var lowerDropDownListName = paramName + "SelectLowerBound"; - var upperDropDownListName = paramName + "SelectUpperBound"; - var lowerDropDownListCtrl = inform[lowerDropDownListName]; - var upperDropDownListCtrl = inform[upperDropDownListName]; - if (lowerDropDownListCtrl != null && upperDropDownListCtrl != null) - { - if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL - && upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL) - { - hiddenField.value = "_crNULL_"; - return true; - } - else if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL - || upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL) - { - alert(L_BadValue); - return false; - } - } - - lowerOptions = inform[paramName + "SelectLowerOptions"]; - upperOptions = inform[paramName + "SelectUpperOptions"]; - - lowerBound = inform[paramName + "LowerBound"]; - upperBound = inform[paramName + "UpperBound"]; - - lowerBoundHidden = inform[paramName + "LowerBoundHidden"]; - upperBoundHidden = inform[paramName + "UpperBoundHidden"]; - - lowerBoundDropdown = inform[paramName + "SelectLowerBound"]; - upperBoundDropdown = inform[paramName + "SelectUpperBound"]; - - var editables = true; - - //handle select box, not text box case - if (lowerBound == undefined && inform[paramName + "LowerBound" + "Hour"] == undefined) - { - editables = false; - lowerBound = lowerBoundDropdown; - upperBound = upperBoundDropdown; - lowerBound = lowerBound.options[lowerBound.selectedIndex]; - upperBound = upperBound.options[upperBound.selectedIndex]; - } - - lowerUnBounded = (lowerOptions.selectedIndex == (lowerOptions.length - 1)); - upperUnBounded = (upperOptions.selectedIndex == (upperOptions.length - 1)); - - lowerChecked = (lowerOptions.selectedIndex == 0); - upperChecked = (upperOptions.selectedIndex == 0); - - uvalue = lvalue = ""; - - if ( ! lowerUnBounded ) - { - if ( (type == "dt" || type == "d" || type == "t") && (editables)) - { - var lhourCtrl = inform[paramName+"LowerBound" + "Hour"]; - var lminuteCtrl = inform[paramName + "LowerBound" + "Minute"]; - var lsecondCtrl = inform[paramName + "LowerBound" + "Second"]; - var lampmCtrl = inform[paramName + "LowerBound" + "AMPM"]; - lvalue = DateTimePromptValueHelper(type, lowerBoundHidden, lhourCtrl, lminuteCtrl, lsecondCtrl, lampmCtrl); - if (lvalue.length == 0) return false; - } - else - lvalue = lowerBound.value; - - if ( ! checkSingleValue ( lvalue, type ) ) { - if (lowerBound != undefined && lowerBound.focus) - lowerBound.focus(); - return false; - } - } - if ( ! upperUnBounded ) - { - if (( type == "dt" || type == "d" || type == "t") && (editables)) - { - var uhourCtrl = inform[paramName+"UpperBound" + "Hour"]; - var uminuteCtrl = inform[paramName + "UpperBound" + "Minute"]; - var usecondCtrl = inform[paramName + "UpperBound" + "Second"]; - var uampmCtrl = inform[paramName + "UpperBound" + "AMPM"]; - uvalue = DateTimePromptValueHelper(type, upperBoundHidden, uhourCtrl, uminuteCtrl, usecondCtrl, uampmCtrl); - if (uvalue.length == 0) return false; - } - else - uvalue = upperBound.value; - - if ( ! checkSingleValue ( uvalue, type ) ) { - if (upperBound != undefined && upperBound.focus) - upperBound.focus(); - return false; - } - } - - value = lowerUnBounded ? "{" : lowerChecked ? "[" : "("; - if ( ! lowerUnBounded ) - value += encodePrompt(lvalue); - value += "_crRANGE_" - if ( ! upperUnBounded ) - value += encodePrompt(uvalue); - value += upperUnBounded ? "}" : upperChecked ? "]" : ")"; - if ( debug ) - alert (value); - - if (lowerUnBounded && upperUnBounded) - { - alert(L_BadBound); - return false; - } - - if (!lowerUnBounded && !upperUnBounded && !checkRangeValue(lvalue, uvalue, type)) - { - return false; - } - - hiddenField.value = value; - return true; -} - -///////////////////////////////////// -// sets prompt value into the hidden form field in proper format so that it can be submitted -function setPromptMultipleValue (inform, type, paramName) -{ - hiddenField = inform[promptPrefix + paramName]; - values = inform[paramName + "ListBox"].options; - - if ( values.length == 0 ) - { - value = "_crEMPTY_"; //if value is empty, set to empty string - } - else - { - value = ""; - for ( idx = 0; idx < values.length; ++idx ) - { - // first value could be empty string, then chcking value.length != 0 could miss one empty string - if ( idx != 0 ) - value += "_crMULT_" - value += values[idx].value; - } - } - - if ( debug ) - alert (value); - - hiddenField.value = value; - //NOTE: we'll always return true as the validation is done before values are added to select box - return true; -} - -/////////////////////////////////////// -// check and alert user about any errors based on type of prompt -var regNumber = /^(\+|-)?((\d+(\.|,| |\u00A0)?\d*)+|(\d*(\.|,| |\u00A0)?\d+)+)$/ -var regCurrency = regNumber; -var regDate = /^(D|d)(A|a)(T|t)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *\)$/ -var regDateTime = /^(D|d)(A|a)(T|t)(E|e)(T|t)(I|i)(M|m)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *, *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/ -var regTime = /^(T|t)(I|i)(M|m)(E|e) *\( *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/ - -function checkSingleValue ( value, type ) -{ - if ( type == 'n' && ! regNumber.test ( value ) ) - { - alert ( L_BadNumber ); - return false; - } - else if ( type == 'c' && ! regCurrency.test ( value ) ) - { - alert ( L_BadCurrency ); - return false; - } - /*else if ( type == 'd' && ! regDate.test ( value ) ) - { - alert ( L_BadDate ); - return false; - } - else if ( type == "dt" && ! regDateTime.test ( value ) ) - { - alert ( L_BadDateTime ); - return false; - } - else if ( type == 't' && ! regTime.test ( value ) ) - { - alert ( L_BadTime ); - return false; - }*/ - - //by default let it go... - return true; -} - -function checkRangeValue (fvalue, tvalue, type) -{ - // determine if the start is smaller than the end - if ((type == "n") || (type == "c")) - { - // Is a number, or currency - if (eval (DelocalizeNum (fvalue)) > eval (DelocalizeNum (tvalue))) - { - alert(L_RangeError); - return false; - } - } - else if (type == "d"){ - //Is a Date - if (eval("new " + fvalue) > eval("new " + tvalue)){ - alert(L_RangeError); - return false; - } - }else if (type == "t"){ - //Is a Time - var comp1 = eval("new Date(0,0,0," + fvalue.substring(fvalue.indexOf('(') + 1, fvalue.indexOf(')') + 1)); - var comp2 = eval("new Date(0,0,0," + tvalue.substring(tvalue.indexOf('(') + 1, tvalue.indexOf(')') + 1)); - if (comp1 > comp2){ - alert(L_RangeError); - return false; - } - }else if (type == "dt"){ - //Is a DateTime - var comp1 = eval("new Date" + fvalue.substring(8, fvalue.length)); - var comp2 = eval("new Date" + tvalue.substring(8, tvalue.length)); - if (comp1 > comp2){ - alert(L_RangeError); - return false; - } - } - else if (type == "text") - { - // is a string - if (fvalue.toLowerCase() > tvalue.toLowerCase()) - { - alert(L_RangeError); - return false; - } - } - // otherwise, let it go - - return true; -} - -function DelocalizeNum(value) -{ - // trim spaces first - var numStr = value.replace(/\s/g, ""); - - // get rid of grouping first - var tempStr = ""; - var index = numStr.indexOf(groupSep); - - while (index != -1) - { - tempStr += numStr.substr(0, index); - numStr = numStr.substr(index + groupSep.length, numStr.length - index - groupSep.length); - index = numStr.indexOf(groupSep); - } - - tempStr += numStr; - - index = tempStr.indexOf(decimalSep); - var neutralStr = ""; - if (index != -1) - { - neutralStr += tempStr.substr(0, index); - neutralStr += "."; - neutralStr += tempStr.substr(index + decimalSep.length, tempStr.length - index - decimalSep.length); - } - else - { - neutralStr = tempStr; - } - - return neutralStr; -} - -// Disable enter key checking for multibyte languages since the enter key is used for committing characters -var isEnabledLanguage = (! ((userLanguage == "ja") || (userLanguage == "ko") || (userLanguage == "zh")) ) - -var isNav = (navigator.appName == "Netscape"); -if (isEnabledLanguage) -{ - if(isNav) { - document.captureEvents(Event.KEYUP); - } - document.onkeyup = checkValue; -} - -function checkValue(evt) { - var buttonVal = ""; - if (isNav) { - if (evt.which == 13 && (evt.target.type == "text" || evt.target.type == "password")) { - buttonVal = evt.target.value; - } - } else { - if (window.event.keyCode == 13 && (window.event.srcElement.type == "text" || window.event.srcElement.type == "password")) { - buttonVal = window.event.srcElement.value; - } - } - - if (buttonVal != "") { - submitParameterValues (); - } -} -if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded(); \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_chs.js b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_chs.js deleted file mode 100644 index 645dc9167..000000000 --- a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_chs.js +++ /dev/null @@ -1,77 +0,0 @@ -// LOCALIZATION STRING - -// Strings for calendar.js and calendar_param.js -var L_Today = "\u4eca\u5929"; -var L_January = "\u4e00\u6708"; -var L_February = "\u4e8c\u6708"; -var L_March = "\u4e09\u6708"; -var L_April = "\u56db\u6708"; -var L_May = "\u4e94\u6708"; -var L_June = "\u516d\u6708"; -var L_July = "\u4e03\u6708"; -var L_August = "\u516b\u6708"; -var L_September = "\u4e5d\u6708"; -var L_October = "\u5341\u6708"; -var L_November = "\u5341\u4e00\u6708"; -var L_December = "\u5341\u4e8c\u6708"; -var L_Su = "\u65e5"; -var L_Mo = "\u4e00"; -var L_Tu = "\u4e8c"; -var L_We = "\u4e09"; -var L_Th = "\u56db"; -var L_Fr = "\u4e94"; -var L_Sa = "\u516d"; - -// strings for dt_param.js -var L_TIME_SEPARATOR = ":"; -var L_AM_DESIGNATOR = "\u4e0a\u5348"; -var L_PM_DESIGNATOR = "\u4e0b\u5348"; - -// strings for range parameter -var L_FROM = "\u4ece\uff08\u5305\u542b\uff09 {0}"; -var L_TO = "\u5230\uff08\u5305\u542b\uff09{0}"; -var L_AFTER = "\u4ece\uff08\u4e0d\u5305\u542b\uff09{0} "; -var L_BEFORE = "\u5230\uff08\u4e0d\u5305\u542b\uff09{0} "; -var L_FROM_TO = "\u4ece\uff08\u5305\u542b\uff09{0} \u5230\uff08\u5305\u542b\uff09{1}"; -var L_FROM_BEFORE = "\u4ece\uff08\u5305\u542b\uff09{0} \u5230\uff08\u4e0d\u5305\u542b\uff09{1}"; -var L_AFTER_TO = " \u4ece\uff08\u4e0d\u5305\u542b\uff09{0} \u5230\uff08\u5305\u542b\uff09{1}"; -var L_AFTER_BEFORE = "\u4ece\uff08\u4e0d\u5305\u542b\uff09{0} \u5230\uff08\u4e0d\u5305\u542b\uff09{1} "; - -// Strings for prompts.js and prompts_param.js -var L_BadNumber = "\u6b64\u53c2\u6570\u7684\u7c7b\u578b\u4e3a \"\u6570\u5b57\"\uff0c\u53ea\u80fd\u5305\u542b\u8d1f\u53f7\u3001\u6570\u5b57 (\"0-9\")\u3001\u6570\u5b57\u5206\u7ec4\u7b26\u53f7\u6216\u5c0f\u6570\u70b9\u3002\u8bf7\u7ea0\u6b63\u8f93\u5165\u7684\u53c2\u6570\u503c\u3002"; -var L_BadCurrency = "\u6b64\u53c2\u6570\u7684\u7c7b\u578b\u4e3a \"\u8d27\u5e01\"\uff0c\u53ea\u80fd\u5305\u542b\u8d1f\u53f7\u3001\u6570\u5b57 (\"0-9\")\u3001\u6570\u5b57\u5206\u7ec4\u7b26\u53f7\u6216\u5c0f\u6570\u70b9\u3002\u8bf7\u7ea0\u6b63\u8f93\u5165\u7684\u53c2\u6570\u503c\u3002"; -var L_BadDate = "\u6b64\u53c2\u6570\u7684\u7c7b\u578b\u4e3a \"\u65e5\u671f\"\uff0c\u5176\u683c\u5f0f\u5e94\u4e3a \"\u65e5\u671f(yyyy,mm,dd)\"\uff0c\u5176\u4e2d \"yyyy\" \u662f\u56db\u4f4d\u6570\u5e74\u4efd\uff0c\"mm\" \u662f\u6708\u4efd\uff08\u4f8b\u5982\uff0c\u4e00\u6708 = 1\uff09\uff0c\"dd\" \u662f\u6307\u5b9a\u6708\u4efd\u7684\u5929\u6570\u3002"; -var L_BadDateTime = "\u6b64\u53c2\u6570\u7684\u7c7b\u578b\u4e3a \"\u65e5\u671f\u65f6\u95f4\"\uff0c\u6b63\u786e\u7684\u683c\u5f0f\u4e3a \"\u65e5\u671f\u65f6\u95f4(yyyy,mm,dd,hh,mm,ss)\"\u3002\"yyyy\" \u662f\u56db\u4f4d\u6570\u5e74\u4efd\uff0c\"mm\" \u662f\u6708\u4efd\uff08\u4f8b\u5982\uff0c\u4e00\u6708 = 1\uff09\uff0c\"dd\" \u662f\u6708\u4e2d\u7684\u67d0\u5929\uff0c\"hh\" \u662f 24 \u5c0f\u65f6\u5236\u7684\u5c0f\u65f6\u6570\uff0c\"mm\" \u662f\u5206\u949f\u6570\uff0c\"ss\" \u662f\u79d2\u6570\u3002"; -var L_BadTime = "\u6b64\u53c2\u6570\u7684\u7c7b\u578b\u4e3a \"\u65f6\u95f4\"\uff0c\u5176\u683c\u5f0f\u5e94\u4e3a \"\u65f6\u95f4(hh,mm,ss)\"\uff0c\u5176\u4e2d \"hh\" \u662f 24 \u5c0f\u65f6\u5236\u7684\u5c0f\u65f6\u6570\uff0c\"mm\" \u662f\u5206\u949f\u6570\uff0c\"ss\" \u662f\u79d2\u6570\u3002"; -var L_NoValue = "\u65e0\u503c"; -var L_BadValue = "\u82e5\u8981\u8bbe\u7f6e \"\u65e0\u503c\"\uff0c\u60a8\u5fc5\u987b\u5c06\u201c\u4ece\u201c \u548c \u201c\u5230\u201c \u7684\u503c\u6539\u4e3a \"\u65e0\u503c\"."; -var L_BadBound = "\u60a8\u4e0d\u80fd\u4e0e \"\u65e0\u4e0a\u9650\" \u4e00\u8d77\u8bbe\u7f6e \"\u65e0\u4e0b\u9650\"."; -var L_NoValueAlready = "\u6b64\u53c2\u6570\u5df2\u8bbe\u7f6e\u4e3a \"\u65e0\u503c\"\u3002\u5728\u6dfb\u52a0\u5176\u4ed6\u503c\u4e4b\u524d\u5220\u9664 \"\u65e0\u503c\""; -var L_RangeError = "\u8303\u56f4\u7684\u8d77\u59cb\u503c\u4e0d\u80fd\u5927\u4e8e\u7ed3\u675f\u503c\u3002"; -var L_NoDateEntered = "\u60a8\u5fc5\u987b\u8f93\u5165\u65e5\u671f\u3002"; - -// Strings for ../html/crystalexportdialog.htm -var L_ExportOptions = "\u5bfc\u51fa\u9009\u9879"; -var L_PrintOptions = "\u6253\u5370\u9009\u9879"; -var L_PrintPageTitle = "\u6253\u5370\u62a5\u8868"; -var L_ExportPageTitle = "\u5bfc\u51fa\u62a5\u8868"; -var L_OK = "\u786e\u5b9a"; -var L_PrintPageRange = "\u8f93\u5165\u8981\u6253\u5370\u7684\u9875\u7801\u8303\u56f4\u3002"; -var L_ExportPageRange = "\u8f93\u5165\u8981\u5bfc\u51fa\u7684\u9875\u7801\u8303\u56f4\u3002"; -var L_InvalidPageRange = "\u9875\u7801\u8303\u56f4\u503c\u4e0d\u6b63\u786e\u3002\u8bf7\u8f93\u5165\u6709\u6548\u7684\u9875\u7801\u8303\u56f4\u3002"; -var L_ExportFormat = "\u8bf7\u4ece\u5217\u8868\u4e2d\u9009\u62e9\u5bfc\u51fa\u683c\u5f0f\u3002"; -var L_Formats = "\u683c\u5f0f\uff1a"; -var L_All = "\u6240\u6709"; -var L_Pages = "\u9875"; -var L_From = "\u4ece\uff1a"; -var L_To = "\u5230\uff1a"; -var L_PrintStep0 = "\u6253\u5370\uff1a"; -var L_PrintStep1 = "1. \u5728\u51fa\u73b0\u7684\u4e0b\u4e00\u4e2a\u5bf9\u8bdd\u6846\u4e2d\uff0c\u9009\u62e9 \"\u6253\u5f00\u6b64\u6587\u4ef6\" \u9009\u9879\u5e76\u5355\u51fb\u201c\u786e\u5b9a\u201d\u6309\u94ae\u3002"; -var L_PrintStep2 = "2. \u5355\u51fb Acrobat Reader \u83dc\u5355\u4e0a\u7684\u6253\u5370\u673a\u56fe\u6807\uff0c\u800c\u4e0d\u662f Internet \u6d4f\u89c8\u5668\u4e0a\u7684\u6253\u5370\u673a\u56fe\u6807\u3002"; -var L_RTFFormat = "RTF \u683c\u5f0f"; -var L_AcrobatFormat = "Acrobat \u683c\u5f0f (PDF)"; -var L_CrystalRptFormat = "Crystal Reports (RPT)"; -var L_WordFormat = "MS Word"; -var L_ExcelFormat = "MS Excel 97-2000"; -var L_ExcelRecordFormat = "MS Excel 97-2000\uff08\u4ec5\u9650\u6570\u636e\uff09"; -if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded(); diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_cht.js b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_cht.js deleted file mode 100644 index f24be179f..000000000 --- a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_cht.js +++ /dev/null @@ -1,77 +0,0 @@ -// LOCALIZATION STRING - -// Strings for calendar.js and calendar_param.js -var L_Today = "\u4eca\u5929"; -var L_January = "1 \u6708"; -var L_February = "2 \u6708"; -var L_March = "3 \u6708"; -var L_April = "4 \u6708"; -var L_May = "5 \u6708"; -var L_June = "6 \u6708"; -var L_July = "7 \u6708"; -var L_August = "8 \u6708"; -var L_September = "9 \u6708"; -var L_October = "10 \u6708"; -var L_November = "11 \u6708"; -var L_December = "12 \u6708"; -var L_Su = "\u9031\u65e5"; -var L_Mo = "\u9031\u4e00"; -var L_Tu = "\u9031\u4e8c"; -var L_We = "\u9031\u4e09"; -var L_Th = "\u9031\u56db"; -var L_Fr = "\u9031\u4e94"; -var L_Sa = "\u9031\u516d"; - -// strings for dt_param.js -var L_TIME_SEPARATOR = ":"; -var L_AM_DESIGNATOR = "\u4e0a\u5348"; -var L_PM_DESIGNATOR = "\u4e0b\u5348"; - -// strings for range parameter -var L_FROM = "\u5f9e {0}"; -var L_TO = "\u5230 {0}"; -var L_AFTER = "{0} \u4e4b\u5f8c"; -var L_BEFORE = "{0} \u4e4b\u524d"; -var L_FROM_TO = "\u5f9e {0} \u5230 {1}"; -var L_FROM_BEFORE = "\u5f9e {0} \u5230 {1} \u4e4b\u524d"; -var L_AFTER_TO = "{0} \u4e4b\u5f8c\u5230 {1}"; -var L_AFTER_BEFORE = "{0} \u4e4b\u5f8c\u5230 {1} \u4e4b\u524d"; - -// Strings for prompts.js and prompts_param.js -var L_BadNumber = "\u6b64\u53c3\u6578\u7684\u985e\u578b\u70ba \"\u6578\u5b57\" \u800c\u4e14\u53ea\u5305\u542b\u8ca0\u6578\u7b26\u865f\u3001\u6578\u5b57 (\"0-9\")\u3001\u6578\u5b57\u7fa4\u7d44\u7b26\u865f\u6216\u5c0f\u6578\u9ede\u7b26\u865f\u3002\u8acb\u4fee\u6b63\u4e26\u8f38\u5165\u53c3\u6578\u503c\u3002"; -var L_BadCurrency = "\u6b64\u53c3\u6578\u7684\u985e\u578b\u70ba \"\u8ca8\u5e63\" \u800c\u4e14\u53ea\u5305\u542b\u8ca0\u6578\u7b26\u865f\u3001\u6578\u5b57 (\"0-9\")\u3001\u6578\u5b57\u7fa4\u7d44\u7b26\u865f\u6216\u5c0f\u6578\u9ede\u7b26\u865f\u3002\u8acb\u4fee\u6b63\u4e26\u8f38\u5165\u53c3\u6578\u503c\u3002"; -var L_BadDate = "\u6b64\u53c3\u6578\u7684\u985e\u578b\u70ba \"\u65e5\u671f\"\u800c\u4e14\u683c\u5f0f\u61c9\u70ba \"\u65e5\u671f(yyyy,mm,dd)\" \u5176\u4e2d \"yyyy\" \u70ba 4 \u4f4d\u6578\u7684\u5e74\uff0c\"mm\" \u70ba\u6708 (\u4f8b\u5982: 1 \u6708 = 1)\uff0c\u800c \"dd\" \u70ba\u63d0\u4f9b\u6708\u4efd\u4e2d\u7684\u65e5\u671f\u6578\u5b57\u3002"; -var L_BadDateTime = "\u6b64\u53c3\u6578\u7684\u985e\u578b\u70ba \"\u65e5\u671f\u6642\u9593\" \u800c\u4e14\u6b63\u78ba\u7684\u683c\u5f0f\u70ba \"\u65e5\u671f\u6642\u9593(yyyy,mm,dd,hh,mm,ss)\"\u3002 \"yyyy\" \u70ba 4 \u4f4d\u6578\u7684\u5e74\uff0c\"mm\" \u70ba\u6708 (\u4f8b\u5982: 1 \u6708 = 1)\uff0c\"dd\" \u70ba\u6708\u4e2d\u7684\u65e5\u671f\uff0c\"hh\" \u70ba 24 \u5236\u7684\u6642\u6578\uff0c\"mm\" \u70ba\u5206\u9418\u6578\uff0c\u800c \"ss\" \u5247\u70ba\u79d2\u6578\u3002"; -var L_BadTime = "\u6b64\u53c3\u6578\u7684\u985e\u578b\u70ba \"\u6642\u9593\"\u800c\u4e14\u683c\u5f0f\u61c9\u70ba \"\u6642\u9593(hh,mm,ss)\" \u5176\u4e2d \"hh\" \u70ba 24 \u6642\u5236\u7684\u6642\u6578\uff0c \"mm\" \u70ba\u5206\u9418\u6578\uff0c\u800c \"ss\" \u5247\u70ba\u79d2\u6578\u3002"; -var L_NoValue = "\u6c92\u6709\u503c"; -var L_BadValue = "\u82e5\u8981\u8a2d\u5b9a\u6210 \"\u6c92\u6709\u503c\"\uff0c\u5fc5\u9808\u540c\u6642\u5c07 \"\u5f9e\" \u548c \"\u5230\" \u7684\u503c\u8a2d\u6210 \"\u6c92\u6709\u503c\"\u3002"; -var L_BadBound = "\"\u7121\u4e0b\u9650\" \u4e0d\u80fd\u8207 \"\u7121\u4e0a\u9650\" \u4e00\u8d77\u8a2d\u5b9a\u3002"; -var L_NoValueAlready = "\u53c3\u6578\u5df2\u7d93\u8a2d\u5b9a\u6210 \"\u6c92\u6709\u503c\"\u3002\u5728\u52a0\u5165\u5176\u4ed6\u503c\u4e4b\u524d\uff0c\u8acb\u5148\u79fb\u9664 \"\u6c92\u6709\u503c\""; -var L_RangeError = "\u7bc4\u570d\u8d77\u9ede\u4e0d\u5f97\u5927\u65bc\u7bc4\u570d\u7d42\u9ede\u3002"; -var L_NoDateEntered = "\u5fc5\u9808\u8f38\u5165\u65e5\u671f\u3002"; - -// Strings for ../html/crystalexportdialog.htm -var L_ExportOptions = "\u532f\u51fa\u9078\u9805"; -var L_PrintOptions = "\u5217\u5370\u9078\u9805"; -var L_PrintPageTitle = "\u5217\u5370\u5831\u8868"; -var L_ExportPageTitle = "\u532f\u51fa\u5831\u8868"; -var L_OK = "\u78ba\u5b9a"; -var L_PrintPageRange = "\u8f38\u5165\u8981\u5217\u5370\u7684\u9801\u9762\u7bc4\u570d\u3002"; -var L_ExportPageRange = "\u8f38\u5165\u8981\u532f\u51fa\u7684\u9801\u9762\u7bc4\u570d\u3002"; -var L_InvalidPageRange = "\u9801\u9762\u7bc4\u570d\u503c\u4e0d\u6b63\u78ba\u3002\u8acb\u8f38\u5165\u6709\u6548\u7684\u9801\u9762\u7bc4\u570d\u3002"; -var L_ExportFormat = "\u8acb\u5f9e\u6e05\u55ae\u4e2d\u9078\u53d6\u532f\u51fa\u683c\u5f0f\u3002"; -var L_Formats = "\u683c\u5f0f:"; -var L_All = "\u5168\u90e8"; -var L_Pages = "\u9801\u6578"; -var L_From = "\u5f9e:"; -var L_To = "\u5230:"; -var L_PrintStep0 = "\u82e5\u8981\u5217\u5370:"; -var L_PrintStep1 = "1. \u5728\u4e0b\u4e00\u500b\u51fa\u73fe\u7684\u5c0d\u8a71\u65b9\u584a\u4e2d\uff0c\u8acb\u9078\u53d6 \"\u958b\u555f\u6b64\u6a94\u6848\" \u9078\u9805\uff0c\u7136\u5f8c\u518d\u6309\u4e00\u4e0b [\u78ba\u5b9a] \u6309\u9215\u3002"; -var L_PrintStep2 = "2. \u6309\u4e00\u4e0b Acrobat Reader \u529f\u80fd\u8868\u4e0a\u7684\u5370\u8868\u6a5f\u5716\u793a\uff0c\u800c\u4e0d\u662f\u7db2\u969b\u7db2\u8def\u700f\u89bd\u5668\u4e0a\u7684\u5217\u5370\u6309\u9215\u3002"; -var L_RTFFormat = "Rich Text Format"; -var L_AcrobatFormat = "Acrobat \u683c\u5f0f (PDF)"; -var L_CrystalRptFormat = "Crystal Reports (RPT)"; -var L_WordFormat = "MS Word"; -var L_ExcelFormat = "MS Excel 97-2000"; -var L_ExcelRecordFormat = "MS Excel 97-2000 (\u53ea\u6709\u8cc7\u6599)"; -if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded(); diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_de.js b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_de.js deleted file mode 100644 index c225648da..000000000 --- a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_de.js +++ /dev/null @@ -1,77 +0,0 @@ -// LOCALIZATION STRING - -// Strings for calendar.js and calendar_param.js -var L_Today = "Heute"; -var L_January = "Januar"; -var L_February = "Februar"; -var L_March = "M\u00e4rz"; -var L_April = "April"; -var L_May = "Mai"; -var L_June = "Juni"; -var L_July = "Juli"; -var L_August = "August"; -var L_September = "September"; -var L_October = "Oktober"; -var L_November = "November"; -var L_December = "Dezember"; -var L_Su = "So"; -var L_Mo = "Mo"; -var L_Tu = "Di"; -var L_We = "Mi"; -var L_Th = "Do"; -var L_Fr = "Fr"; -var L_Sa = "Sa"; - -// strings for dt_param.js -var L_TIME_SEPARATOR = ":"; -var L_AM_DESIGNATOR = "AM"; -var L_PM_DESIGNATOR = "PM"; - -// strings for range parameter -var L_FROM = "Von {0}"; -var L_TO = "Bis {0}"; -var L_AFTER = "Nach {0}"; -var L_BEFORE = "Vor {0}"; -var L_FROM_TO = "Von {0} bis {1}"; -var L_FROM_BEFORE = "Von {0} bis vor {1}"; -var L_AFTER_TO = "Nach {0} bis {1}"; -var L_AFTER_BEFORE = "Nach {0} bis vor {1}"; - -// Strings for prompts.js and prompts_param.js -var L_BadNumber = "Dieser Parameter ist vom Typ \"Number\" und kann nur ein vorangestelltes Minuszeichen, Ziffern (\"0-9\"), Zifferngruppierungssymbole oder ein Dezimalsymbol enthalten. Korrigieren Sie den eingegebenen Parameterwert."; -var L_BadCurrency = "Dieser Parameter ist vom Typ \"Currency\" und kann nur ein Minuszeichen, Ziffern (\"0-9\"), Zifferngruppierungssymbole oder ein Dezimalsymbol enthalten. Korrigieren Sie den eingegebenen Parameterwert."; -var L_BadDate = "Dieser Parameter ist vom Typ \"Date\" und sollte im Format \"Date(jjjj,mm,tt)\" angegeben werden, wobei \"jjjj\" die vierstellige Jahreszahl, \"mm\" die Monatszahl (z.B. Januar = 1) und \"tt\" der Tag des angegebenen Monats ist."; -var L_BadDateTime = "Dieser Parameter ist vom Typ \"DateTime\", und das korrekte Format lautet \"DateTime(jjjj,mm,tt,hh,mm,ss)\". \"jjjj\" ist die vierstellige Jahreszahl, \"mm\" ist die Monatszahl (z.B. Januar = 1), \"tt\" ist der Tag des Monats, \"hh\" die Stunden im 24-Stunden-Format, \"mm\" die Minuten und \"ss\" die Sekunden."; -var L_BadTime = "Dieser Parameter ist vom Typ \"Time\" und sollte dem Format \"Time(hh,mm,ss)\" entsprechen, wobei \"hh\" die Stunden im 24-Stunden-Format, \"mm\" die Minuten einer Stunde und \"ss\" die Sekunden einer Minute sind."; -var L_NoValue = "Kein Wert"; -var L_BadValue = "Um \"Kein Wert\" festzulegen, m\u00fcssen Sie f\u00fcr die Werte \"von\" und \"bis\" die Option \"Kein Wert\" festlegen."; -var L_BadBound = "Sie k\u00f6nnen \"Keine Untergrenze\" nicht zusammen mit \"Keine Obergrenze\" festlegen."; -var L_NoValueAlready = "F\u00fcr diesen Parameter wurde bereits \"Kein Wert\" festgelegt. Entfernen Sie \"Kein Wert\", bevor Sie weitere Werte hinzuf\u00fcgen."; -var L_RangeError = "Der Anfangswert des Bereichs darf nicht h\u00f6her als der Endwert des Bereichs sein."; -var L_NoDateEntered = "Sie m\u00fcssen ein Datum eingeben."; - -// Strings for ../html/crystalexportdialog.htm -var L_ExportOptions = "Exportoptionen"; -var L_PrintOptions = "Druckoptionen"; -var L_PrintPageTitle = "Bericht drucken"; -var L_ExportPageTitle = "Bericht exportieren"; -var L_OK = "OK"; -var L_PrintPageRange = "Geben Sie den zu druckenden Seitenbereich ein."; -var L_ExportPageRange = "Geben Sie den zu exportierenden Seitenbereich ein."; -var L_InvalidPageRange = "Die Seitenbereichswerte sind ung\u00fcltig. Geben Sie g\u00fcltige Werte f\u00fcr den Seitenbereich ein."; -var L_ExportFormat = "W\u00e4hlen Sie ein Exportformat aus der Liste."; -var L_Formats = "Formate:"; -var L_All = "Alle"; -var L_Pages = "Seiten"; -var L_From = "von:"; -var L_To = "bis:"; -var L_PrintStep0 = "Zu drucken:"; -var L_PrintStep1 = "1. W\u00e4hlen Sie im n\u00e4chsten Dialogfeld die Option \"Diese Datei \u00f6ffnen\" aus, und klicken Sie auf \"OK\"."; -var L_PrintStep2 = "2. Klicken Sie vorzugsweise auf das Drucksymbol im Men\u00fc von Acrobat Reader, statt auf das Drucksymbol des Internet-Browsers."; -var L_RTFFormat = "Rich Text Format"; -var L_AcrobatFormat = "Acrobat Format (PDF)"; -var L_CrystalRptFormat = "Crystal Reports (RPT)"; -var L_WordFormat = "MS Word"; -var L_ExcelFormat = "MS Excel 97-2000"; -var L_ExcelRecordFormat = "MS Excel 97-2000 (nur Daten)"; -if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded(); diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_en.js b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_en.js deleted file mode 100644 index dc530565c..000000000 --- a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_en.js +++ /dev/null @@ -1,77 +0,0 @@ -// LOCALIZATION STRING - -// Strings for calendar.js and calendar_param.js -var L_Today = "Today"; -var L_January = "January"; -var L_February = "February"; -var L_March = "March"; -var L_April = "April"; -var L_May = "May"; -var L_June = "June"; -var L_July = "July"; -var L_August = "August"; -var L_September = "September"; -var L_October = "October"; -var L_November = "November"; -var L_December = "December"; -var L_Su = "Su"; -var L_Mo = "Mo"; -var L_Tu = "Tu"; -var L_We = "We"; -var L_Th = "Th"; -var L_Fr = "Fr"; -var L_Sa = "Sa"; - -// strings for dt_param.js -var L_TIME_SEPARATOR = ":"; -var L_AM_DESIGNATOR = "AM"; -var L_PM_DESIGNATOR = "PM"; - -// strings for range parameter -var L_FROM = "From {0}"; -var L_TO = "To {0}"; -var L_AFTER = "After {0}"; -var L_BEFORE = "Before {0}"; -var L_FROM_TO = "From {0} to {1}"; -var L_FROM_BEFORE = "From {0} to before {1}"; -var L_AFTER_TO = "After {0} to {1}"; -var L_AFTER_BEFORE = "After {0} to before {1}"; - -// Strings for prompts.js and prompts_param.js -var L_BadNumber = "This parameter is of type \"Number\" and can only contain a negative sign symbol, digits (\"0-9\"), digit grouping symbols or a decimal symbol. Please correct the entered parameter value."; -var L_BadCurrency = "This parameter is of type \"Currency\" and can only contain a negative sign symbol, digits (\"0-9\"), digit grouping symbols or a decimal symbol. Please correct the entered parameter value."; -var L_BadDate = "This parameter is of type \"Date\" and should be in the format \"Date(yyyy,mm,dd)\" where \"yyyy\" is the four digit year, \"mm\" is the month (e.g. January = 1), and \"dd\" is the number of days into the given month."; -var L_BadDateTime = "This parameter is of type \"DateTime\" and the correct format is \"DateTime(yyyy,mm,dd,hh,mm,ss)\". \"yyyy\" is the four digit year, \"mm\" is the month (e.g. January = 1), \"dd\" is the day of the month, \"hh\" is hours in a 24 hour, \"mm\" is minutes and \"ss\" is seconds."; -var L_BadTime = "This parameter is of type \"Time\" and should be in the format \"Time(hh,mm,ss)\" where \"hh\" is hours in 24 a hour clock, \"mm\" is minutes into the hour, and \"ss\" is seconds into the minute."; -var L_NoValue = "No Value"; -var L_BadValue = "To set \"No Value\", you must set both From and To values to \"No Value\"."; -var L_BadBound = "You cannot set \"No Lower Bound\" together with \"No Upper Bound\"."; -var L_NoValueAlready = "This parameter is already set to \"No Value\". Remove \"No Value\" before adding other values"; -var L_RangeError = "The start of range cannot be greater than the end of range."; -var L_NoDateEntered = "You must enter a date."; - -// Strings for ../html/crystalexportdialog.htm -var L_ExportOptions = "Export Options"; -var L_PrintOptions = "Print Options"; -var L_PrintPageTitle = "Print the Report"; -var L_ExportPageTitle = "Export the Report"; -var L_OK = "OK"; -var L_PrintPageRange = "Enter the page range that you want to Print."; -var L_ExportPageRange = "Enter the page range that you want to Export."; -var L_InvalidPageRange = "The page range value(s) are incorrect. Please enter a valid page range."; -var L_ExportFormat = "Please select an Export format from the list."; -var L_Formats = "Formats:"; -var L_All = "All"; -var L_Pages = "Pages"; -var L_From = "From:"; -var L_To = "To:"; -var L_PrintStep0 = "To Print:"; -var L_PrintStep1 = "1. In the next dialog that appears, select the \"Open this file\" option and click the OK button."; -var L_PrintStep2 = "2. Click the printer icon on the Acrobat Reader Menu rather than the print button on your internet browser."; -var L_RTFFormat = "Rich Text Format"; -var L_AcrobatFormat = "Acrobat Format (PDF)"; -var L_CrystalRptFormat = "Crystal Reports (RPT)"; -var L_WordFormat = "MS Word"; -var L_ExcelFormat = "MS Excel 97-2000"; -var L_ExcelRecordFormat = "MS Excel 97-2000 (Data Only)"; -if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded(); \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_es.js b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_es.js deleted file mode 100644 index def488127..000000000 --- a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_es.js +++ /dev/null @@ -1,77 +0,0 @@ -// LOCALIZATION STRING - -// Strings for calendar.js and calendar_param.js -var L_Today = "Hoy"; -var L_January = "Enero"; -var L_February = "Febrero"; -var L_March = "Marzo"; -var L_April = "Abril"; -var L_May = "Mayo"; -var L_June = "Junio"; -var L_July = "Julio"; -var L_August = "Agosto"; -var L_September = "Septiembre"; -var L_October = "Octubre"; -var L_November = "Noviembre"; -var L_December = "Diciembre"; -var L_Su = "Dom"; -var L_Mo = "Lun"; -var L_Tu = "Mar"; -var L_We = "Mi\u00e9"; -var L_Th = "Jue"; -var L_Fr = "Vie"; -var L_Sa = "S\u00e1b"; - -// strings for dt_param.js -var L_TIME_SEPARATOR = ":"; -var L_AM_DESIGNATOR = "a.m."; -var L_PM_DESIGNATOR = "p.m."; - -// strings for range parameter -var L_FROM = "Desde {0}"; -var L_TO = "Hasta {0}"; -var L_AFTER = "Despu\u00e9s {0}"; -var L_BEFORE = "Antes {0}"; -var L_FROM_TO = "De {0} a {1}"; -var L_FROM_BEFORE = "De {0} hasta antes de {1}"; -var L_AFTER_TO = "Despu\u00e9s de {0} hasta {1}"; -var L_AFTER_BEFORE = "Despu\u00e9s de {0} hasta antes de {1}"; - -// Strings for prompts.js and prompts_param.js -var L_BadNumber = "Este par\u00e1metro es de tipo \"N\u00famero\" y s\u00f3lo puede contener un s\u00edmbolo de signo negativo, los d\u00edgitos (\"0-9\"), s\u00edmbolos de agrupaci\u00f3n de d\u00edgitos o un s\u00edmbolo decimal. Corrija el valor del par\u00e1metro especificado."; -var L_BadCurrency = "Este par\u00e1metro es de tipo \"Moneda\" y s\u00f3lo puede contener un s\u00edmbolo de signo negativo, los d\u00edgitos (\"0-9\"), s\u00edmbolos de agrupaci\u00f3n de d\u00edgitos o un s\u00edmbolo decimal. Corrija el valor del par\u00e1metro especificado."; -var L_BadDate = "Este par\u00e1metro es de tipo \"Fecha\" y debe tener el siguiente formato \"Fecha(aaaa,mm,dd)\" donde \"aaaa\" es un a\u00f1o con cuatro d\u00edgitos, \"mm\" es el mes (por ejemplo, Enero= 1) y \"dd\" es el n\u00famero de d\u00edas del mes."; -var L_BadDateTime = "Este par\u00e1metro es de tipo \"FechaHora\" y el formato correcto es \"FechaHora(aaaa,mm,dd,hh,mm,ss)\". \"aaaa\" es el a\u00f1o de cuatro d\u00edgitos, \"mm\" es el mes (p. ej. enero = 1), \"dd\" es el d\u00eda del mes, \"hh\" es la hora en formato de 24 horas, \"mm\" son los minutos y \"ss\" los segundos."; -var L_BadTime = "Este par\u00e1metro es de tipo \"Hora\" y debe tener el formato \"hh:mm:ss\", donde \"hh\" son las horas en formato de 24 horas, \"mm\" son los minutos de la hora y \"ss\" los segundos del minuto."; -var L_NoValue = "Ning\u00fan valor"; -var L_BadValue = "Para establecer \"Ning\u00fan valor\", debe establecer los valores Desde y Hasta en \"Ning\u00fan valor\"."; -var L_BadBound = "No puede establcer \"Ning\u00fan l\u00edmite inferior\" junto con \"Ning\u00fan l\u00edmite superior\"."; -var L_NoValueAlready = "Este par\u00e1metro ya se ha establecido en \"Ning\u00fan valor\". Quite \"Ning\u00fan valor\" antes de agregar otros valores"; -var L_RangeError = "El inicio del rango no puede ser mayor que el final."; -var L_NoDateEntered = "Debe especificar una fecha."; - -// Strings for ../html/crystalexportdialog.htm -var L_ExportOptions = "Opciones de exportaci\u00f3n"; -var L_PrintOptions = "Opciones de impresi\u00f3n"; -var L_PrintPageTitle = "Imprimir el informe"; -var L_ExportPageTitle = "Exportar el informe"; -var L_OK = "Aceptar"; -var L_PrintPageRange = "Especifique el rango de p\u00e1gina que desea imprimir."; -var L_ExportPageRange = "Especifique el rango de p\u00e1gina que desea exportar."; -var L_InvalidPageRange = "Los valores del rango de p\u00e1ginas no son correctos. Especifique un rango de p\u00e1ginas v\u00e1lido."; -var L_ExportFormat = "Seleccione un formato de exportaci\u00f3n de la lista."; -var L_Formats = "Formatos:"; -var L_All = "Todos"; -var L_Pages = "P\u00e1ginas"; -var L_From = "Desde:"; -var L_To = "Hasta:"; -var L_PrintStep0 = "Para imprimir:"; -var L_PrintStep1 = "1. En el siguiente cuadro de di\u00e1logo, seleccione la opci\u00f3n \"Abrir este archivo\" y haga clic en el bot\u00f3n Aceptar."; -var L_PrintStep2 = "2. Haga clic en el icono de impresora del men\u00fa Acrobat Reader en lugar de utilizar el bot\u00f3n de impresi\u00f3n de su explorador de Internet."; -var L_RTFFormat = "Formato RTF"; -var L_AcrobatFormat = "Formato Acrobat (PDF)"; -var L_CrystalRptFormat = "Crystal Reports (RPT)"; -var L_WordFormat = "MS Word"; -var L_ExcelFormat = "MS Excel 97-2000"; -var L_ExcelRecordFormat = "MS Excel 97-2000 (s\u00f3lo datos)"; -if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded(); diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_fr.js b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_fr.js deleted file mode 100644 index 25c6395ce..000000000 --- a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_fr.js +++ /dev/null @@ -1,77 +0,0 @@ -// LOCALIZATION STRING - -// Strings for calendar.js and calendar_param.js -var L_Today = "Aujourd'hui"; -var L_January = "Janvier"; -var L_February = "F\u00e9vrier"; -var L_March = "Mars"; -var L_April = "Avril"; -var L_May = "Mai"; -var L_June = "Juin"; -var L_July = "Juillet"; -var L_August = "Ao\u00fbt"; -var L_September = "Septembre"; -var L_October = "Octobre"; -var L_November = "Novembre"; -var L_December = "D\u00e9cembre"; -var L_Su = "di"; -var L_Mo = "lu"; -var L_Tu = "ma"; -var L_We = "me"; -var L_Th = "je"; -var L_Fr = "ve"; -var L_Sa = "sa"; - -// strings for dt_param.js -var L_TIME_SEPARATOR = ":"; -var L_AM_DESIGNATOR = "AM"; -var L_PM_DESIGNATOR = "PM"; - -// strings for range parameter -var L_FROM = "De {0}"; -var L_TO = "A {0}"; -var L_AFTER = "Apr\u00e8s {0}"; -var L_BEFORE = "Avant {0}"; -var L_FROM_TO = "De {0} \u00e0 {1}"; -var L_FROM_BEFORE = "De {0} \u00e0 avant {1}"; -var L_AFTER_TO = "Apr\u00e8s {0} \u00e0 {1}"; -var L_AFTER_BEFORE = "Apr\u00e8s {0} \u00e0 avant {1}"; - -// Strings for prompts.js and prompts_param.js -var L_BadNumber = "Un param\u00e8tre de type \"Nombre\" peut uniquement contenir un signe n\u00e9gatif, des chiffres (\"0-9\"), des symboles de regroupement de chiffres ou un s\u00e9parateur d\u00e9cimal. Veuillez corriger la valeur saisie pour ce param\u00e8tre."; -var L_BadCurrency = "Un param\u00e8tre de type \"Devise\" peut uniquement contenir un signe n\u00e9gatif, des chiffres (\"0-9\"), des symboles de regroupement de chiffres ou un s\u00e9parateur d\u00e9cimal. Veuillez corriger la valeur saisie pour ce param\u00e8tre."; -var L_BadDate = "Un param\u00e8tre de type \"Date\" doit se pr\u00e9senter sous la forme \"Date(aaaa,mm,jj)\", \"aaaa\" correspondant aux quatre chiffres de l'ann\u00e9e, \"mm\" au mois et \"jj\" au jour du mois donn\u00e9."; -var L_BadDateTime = "Un param\u00e8tre de type \"DateHeure\" doit se pr\u00e9senter sous la forme \"DateTime(aaaa,mm,jj,hh,mm,ss)\", \"aaaa\" correspondant aux quatre chiffres de l'ann\u00e9e, \"mm\" au mois, \"jj\" au jour du mois, \"hh\" au nombre d'heures en mode 24H, \"mm\" au nombre de minutes et \"ss\" au nombre de secondes."; -var L_BadTime = "Un param\u00e8tre de type \"Heure\" doit se pr\u00e9senter sous la forme \"Time(hh,mm,ss)\", \"hh\" correspondant au nombre d'heures en mode 24H, \"mm\" au nombre de minutes et \"ss\" au nombre de secondes."; -var L_NoValue = "Aucune valeur"; -var L_BadValue = "Pour d\u00e9finir \"Aucune valeur\", vous devez d\u00e9finir les deux valeurs De et A \u00e0 \"Aucune valeur\"."; -var L_BadBound = "Vous ne pouvez pas d\u00e9finir \"Aucune limite inf\u00e9rieure\" en m\u00eame temps que \"Aucune limite sup\u00e9rieure\"."; -var L_NoValueAlready = "Ce param\u00e8tre a d\u00e9j\u00e0 la valeur \"Aucune valeur\". Supprimez \"Aucune valeur\" avant d'ajouter d'autres valeurs"; -var L_RangeError = "Le d\u00e9but de la plage ne peut pas \u00eatre sup\u00e9rieur \u00e0 la fin de la plage."; -var L_NoDateEntered = "Vous devez saisir une date."; - -// Strings for ../html/crystalexportdialog.htm -var L_ExportOptions = "Options d'exportation"; -var L_PrintOptions = "Options d'impression"; -var L_PrintPageTitle = "Imprimer le rapport"; -var L_ExportPageTitle = "Exporter le rapport"; -var L_OK = "OK"; -var L_PrintPageRange = "Saisissez la plage de pages \u00e0 imprimer."; -var L_ExportPageRange = "Saisissez la plage de pages \u00e0 exporter."; -var L_InvalidPageRange = "Les valeurs de la plage de pages sont incorrectes. Veuillez recommencer."; -var L_ExportFormat = "Veuillez s\u00e9lectionner un format d'exportation dans la liste."; -var L_Formats = "Formats :"; -var L_All = "Tout"; -var L_Pages = "Pages"; -var L_From = "De :"; -var L_To = "A :"; -var L_PrintStep0 = "Pour imprimer :"; -var L_PrintStep1 = "1. Dans la bo\u00eete de dialogue qui s'affiche, s\u00e9lectionnez l'option \"Ouvrir ce fichier\" et cliquez sur OK."; -var L_PrintStep2 = "2. Cliquez sur l'ic\u00f4ne d'impression d'Acrobat Reader plut\u00f4t que sur le bouton d'impression de votre navigateur."; -var L_RTFFormat = "Format RTF"; -var L_AcrobatFormat = "Format Acrobat (PDF)"; -var L_CrystalRptFormat = "Crystal Reports (RPT)"; -var L_WordFormat = "MS Word"; -var L_ExcelFormat = "MS Excel 97-2000"; -var L_ExcelRecordFormat = "MS Excel 97-2000 (donn\u00e9es uniquement)"; -if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded(); diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_it.js b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_it.js deleted file mode 100644 index 6b1f6a87d..000000000 --- a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_it.js +++ /dev/null @@ -1,77 +0,0 @@ -// LOCALIZATION STRING - -// Strings for calendar.js and calendar_param.js -var L_Today = "Oggi"; -var L_January = "Gennaio"; -var L_February = "Febbraio"; -var L_March = "Marzo"; -var L_April = "Aprile"; -var L_May = "Maggio"; -var L_June = "Giugno"; -var L_July = "Luglio"; -var L_August = "Agosto"; -var L_September = "Settembre"; -var L_October = "Ottobre"; -var L_November = "Novembre"; -var L_December = "Dicembre"; -var L_Su = "dom"; -var L_Mo = "lun"; -var L_Tu = "mar"; -var L_We = "mer"; -var L_Th = "gio"; -var L_Fr = "ven"; -var L_Sa = "sab"; - -// strings for dt_param.js -var L_TIME_SEPARATOR = ":"; -var L_AM_DESIGNATOR = "AM"; -var L_PM_DESIGNATOR = "PM"; - -// strings for range parameter -var L_FROM = "Da {0}"; -var L_TO = "A {0}"; -var L_AFTER = "Dopo {0}"; -var L_BEFORE = "Prima di {0}"; -var L_FROM_TO = "Da {0} a {1}"; -var L_FROM_BEFORE = "Da {0} a prima di {1}"; -var L_AFTER_TO = "Dopo {0} a {1}"; -var L_AFTER_BEFORE = "Dopo {0} a prima di {1}"; - -// Strings for prompts.js and prompts_param.js -var L_BadNumber = "Questo parametro \u00e8 di tipo \"Numero\" e pu\u00f2 contenere solo un segno negativo, cifre (\"0-9\"), simboli di raggruppamento di cifre o un simbolo decimale. Correggere il valore di parametro immesso."; -var L_BadCurrency = "Questo parametro \u00e8 di tipo \"Valuta\" e pu\u00f2 contenere solo un segno negativo, cifre (\"0-9\"), simboli di raggruppamento di cifre o un simbolo decimale. Correggere il valore di parametro immesso."; -var L_BadDate = "Questo parametro \u00e8 di tipo \"Data\" e deve presentarsi nel formato \"Data(aaaa,mm,gg)\" in cui \"aaaa\" corrisponde all'anno di quattro cifre, \"mm\" corrisponde al mese (ad esempio, gennaio = 1) e \"gg\" corrisponde al numero di giorni del mese specificato."; -var L_BadDateTime = "Questo parametro \u00e8 di tipo \"DataOra\" e il formato corretto \u00e8 \"DateTime(aaaa,mm,gg,hh,mm,ss)\". \"aaaa\" corrisponde all'anno di quattro cifre, \"mm\" corrisponde al mese (ad esempio, gennaio = 1), \"gg\" corrisponde al giorno del mese, \"hh\" corrisponde alle ore in un formato di 24 ore, \"mm\" corrisponde ai minuti e \"ss\" ai secondi."; -var L_BadTime = "Questo parametro \u00e8 di tipo \"Ora\" e deve essere espresso come \"Time(hh,mm,ss)\", in cui \"hh\" corrisponde alle ore in un formato di 24 ore, \"mm\" corrisponde ai minuti di un'ora e \"ss\" corrisponde ai secondi di un minuto."; -var L_NoValue = "Nessun valore"; -var L_BadValue = "Per impostare \"Nessun valore\", \u00e8 necessario impostare entrambi i valori Da e A su \"Nessun valore\"."; -var L_BadBound = "Impossibile impostare \"Nessun limite inferiore\" insieme a \"Nessun limite superiore\"."; -var L_NoValueAlready = "Questo parametro \u00e8 gi\u00e0 impostato su \"Nessun valore\". Rimuovere \"Nessun valore\" prima di aggiungere altri valori"; -var L_RangeError = "L'inizio dell'intervallo non pu\u00f2 essere maggiore della sua fine."; -var L_NoDateEntered = "Immettere una data."; - -// Strings for ../html/crystalexportdialog.htm -var L_ExportOptions = "Opzioni di esportazione"; -var L_PrintOptions = "Opzioni di stampa"; -var L_PrintPageTitle = "Stampa il report"; -var L_ExportPageTitle = "Esporta il report"; -var L_OK = "OK"; -var L_PrintPageRange = "Immettere l'intervallo di pagine da stampare."; -var L_ExportPageRange = "Immettere l'intervallo di pagine da esportare."; -var L_InvalidPageRange = "I valori d'intervallo della pagina non sono corretti. Immettere un intervallo di pagine valido."; -var L_ExportFormat = "Selezionare un formato di esportazione dall'elenco."; -var L_Formats = "Formati:"; -var L_All = "Tutto"; -var L_Pages = "Pagine"; -var L_From = "Da:"; -var L_To = "A:"; -var L_PrintStep0 = "Da stampare:"; -var L_PrintStep1 = "1. Nella finestra di dialogo che verr\u00e0 visualizzata, selezionare l'opzione \"Apri questo file\" e fare clic sul pulsante OK."; -var L_PrintStep2 = "2. Fare clic sull'icona della stampante del menu di Acrobat Reader invece che sul pulsante Stampa del browser Internet."; -var L_RTFFormat = "Rich Text Format"; -var L_AcrobatFormat = "Acrobat Format (PDF)"; -var L_CrystalRptFormat = "Crystal Reports (RPT)"; -var L_WordFormat = "MS Word"; -var L_ExcelFormat = "MS Excel 97-2000"; -var L_ExcelRecordFormat = "MS Excel 97-2000 (solo dati)"; -if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded(); diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_ja.js b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_ja.js deleted file mode 100644 index 01ec31ce0..000000000 --- a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_ja.js +++ /dev/null @@ -1,77 +0,0 @@ -// LOCALIZATION STRING - -// Strings for calendar.js and calendar_param.js -var L_Today = "\u4eca\u65e5"; -var L_January = "1 \u6708"; -var L_February = "2 \u6708"; -var L_March = "3 \u6708"; -var L_April = "4 \u6708"; -var L_May = "5 \u6708"; -var L_June = "6 \u6708"; -var L_July = "7 \u6708"; -var L_August = "8 \u6708"; -var L_September = "9 \u6708"; -var L_October = "10 \u6708"; -var L_November = "11 \u6708"; -var L_December = "12 \u6708"; -var L_Su = "\u65e5"; -var L_Mo = "\u6708"; -var L_Tu = "\u706b"; -var L_We = "\u6c34"; -var L_Th = "\u6728"; -var L_Fr = "\u91d1"; -var L_Sa = "\u571f"; - -// strings for dt_param.js -var L_TIME_SEPARATOR = ":"; -var L_AM_DESIGNATOR = "\u5348\u524d"; -var L_PM_DESIGNATOR = "\u5348\u5f8c"; - -// strings for range parameter -var L_FROM = "\u958b\u59cb\u5024 : {0}"; -var L_TO = "\u7d42\u4e86\u5024 : {0}"; -var L_AFTER = "\u958b\u59cb\u5024 (\u6392\u4ed6) : {0}"; -var L_BEFORE = "\u7d42\u4e86\u5024 (\u6392\u4ed6) : {0}"; -var L_FROM_TO = "\u958b\u59cb\u5024 : {0} \u301c \u7d42\u4e86\u5024 : {1}"; -var L_FROM_BEFORE = "\u958b\u59cb\u5024 : {0} \u301c \u7d42\u4e86\u5024 (\u6392\u4ed6) : {1}"; -var L_AFTER_TO = "\u958b\u59cb\u5024 (\u6392\u4ed6) : {0} \u301c \u7d42\u4e86\u5024 : {1}"; -var L_AFTER_BEFORE = "\u958b\u59cb\u5024 (\u6392\u4ed6) : {0} \u301c \u7d42\u4e86\u5024 (\u6392\u4ed6) : {1}"; - -// Strings for prompts.js and prompts_param.js -var L_BadNumber = "\u3053\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u578b\u306f \"\u6570\u5024\" \u3067\u3001\u8ca0\u53f7\u3001\u6570\u5b57 (\"0-9\")\u3001\u304a\u3088\u3073\u3001\u5c0f\u6570\u70b9\u3092\u793a\u3059\u30d4\u30ea\u30aa\u30c9\u307e\u305f\u306f\u30ab\u30f3\u30de\u306e\u307f\u3092\u542b\u3080\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u5165\u529b\u3055\u308c\u305f\u30d1\u30e9\u30e1\u30fc\u30bf\u5024\u3092\u4fee\u6b63\u3057\u3066\u304f\u3060\u3055\u3044\u3002"; -var L_BadCurrency = "\u3053\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u578b\u306f \"\u901a\u8ca8\" \u3067\u3001\u8ca0\u53f7\u3001\u6570\u5b57 (\"0-9\")\u3001\u304a\u3088\u3073\u3001\u5c0f\u6570\u70b9\u3092\u793a\u3059\u30d4\u30ea\u30aa\u30c9\u307e\u305f\u306f\u30ab\u30f3\u30de\u306e\u307f\u3092\u542b\u3080\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u5165\u529b\u3055\u308c\u305f\u30d1\u30e9\u30e1\u30fc\u30bf\u5024\u3092\u4fee\u6b63\u3057\u3066\u304f\u3060\u3055\u3044\u3002"; -var L_BadDate = "\u3053\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u578b\u306f \"\u65e5\u4ed8\" \u3067\u3001\u305d\u306e\u5f62\u5f0f\u306f \"Date(yyyy,mm,dd)\" \u3067\u3059\u3002\"yyyy\" \u306f\u5e74\u3092\u8868\u3059 4 \u6841\u306e\u6570\u5b57\u3001\"mm\" \u306f\u6708 (\u4f8b : 1 \u6708 = 1)\u3001\"dd\" \u306f\u305d\u306e\u6708\u306e\u65e5\u3092\u8868\u3057\u307e\u3059\u3002"; -var L_BadDateTime = "\u3053\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u578b\u306f \"\u65e5\u6642\" \u3067\u3001\u305d\u306e\u5f62\u5f0f\u306f \"DateTime(yyyy,mm,dd,hh,mm,ss)\" \u3067\u3059\u3002\"yyyy\" \u306f\u5e74\u3092\u8868\u3059 4 \u6841\u306e\u6570\u5b57\u3001\"mm\" \u306f\u6708 (\u4f8b : 1 \u6708 = 1)\u3001\"dd\" \u306f\u65e5\u3001\"hh\" \u306f 24 \u6642\u9593\u8868\u793a\u306b\u3088\u308b\u6642\u9593\u3001\"mm\" \u306f\u5206\u3001\"ss\" \u306f\u79d2\u3092\u8868\u3057\u307e\u3059\u3002"; -var L_BadTime = "\u3053\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u578b\u306f \"\u6642\u523b\" \u3067\u3001\u305d\u306e\u5f62\u5f0f\u306f \"Time(hh,mm,ss)\" \u3067\u3059\u3002\"hh\" \u306f 24 \u6642\u9593\u8868\u793a\u306b\u3088\u308b\u6642\u9593\u3001\"mm\" \u306f\u5206\u3001\"ss\" \u306f\u79d2\u3092\u8868\u3057\u307e\u3059\u3002"; -var L_NoValue = "\u5024\u306a\u3057"; -var L_BadValue = "\"\u5024\u306a\u3057\" \u3068\u8a2d\u5b9a\u3059\u308b\u305f\u3081\u306b\u306f\u3001\u958b\u59cb\u5024\u3068\u7d42\u4e86\u5024\u306e\u4e21\u65b9\u3092 \"\u5024\u306a\u3057\" \u306b\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002"; -var L_BadBound = "\"\u958b\u59cb\u5024\u3092\u6307\u5b9a\u3057\u306a\u3044\" \u3068 \"\u7d42\u4e86\u5024\u3092\u6307\u5b9a\u3057\u306a\u3044\" \u3092\u540c\u6642\u306b\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002"; -var L_NoValueAlready = "\u3053\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u306f\u65e2\u306b \"\u5024\u306a\u3057\" \u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u307b\u304b\u306e\u5024\u3092\u8a2d\u5b9a\u3059\u308b\u524d\u306b \"\u5024\u306a\u3057\" \u3092\u524a\u9664\u3057\u307e\u3059\u3002"; -var L_RangeError = "\u7bc4\u56f2\u306e\u958b\u59cb\u5024\u306f\u7d42\u4e86\u5024\u3088\u308a\u5c0f\u3055\u306a\u5024\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002"; -var L_NoDateEntered = "\u65e5\u4ed8\u3092\u5165\u529b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002"; - -// Strings for ../html/crystalexportdialog.htm -var L_ExportOptions = "\u30a8\u30af\u30b9\u30dd\u30fc\u30c8 \u30aa\u30d7\u30b7\u30e7\u30f3"; -var L_PrintOptions = "\u5370\u5237\u30aa\u30d7\u30b7\u30e7\u30f3"; -var L_PrintPageTitle = "\u30ec\u30dd\u30fc\u30c8\u3092\u5370\u5237"; -var L_ExportPageTitle = "\u30ec\u30dd\u30fc\u30c8\u306e\u30a8\u30af\u30b9\u30dd\u30fc\u30c8"; -var L_OK = "OK"; -var L_PrintPageRange = "\u5370\u5237\u3059\u308b\u30da\u30fc\u30b8\u7bc4\u56f2\u3092\u5165\u529b\u3057\u307e\u3059\u3002"; -var L_ExportPageRange = "\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u3059\u308b\u30da\u30fc\u30b8\u7bc4\u56f2\u3092\u5165\u529b\u3057\u307e\u3059\u3002"; -var L_InvalidPageRange = "\u30da\u30fc\u30b8\u7bc4\u56f2\u306e\u5024\u304c\u7121\u52b9\u3067\u3059\u3002\u6709\u52b9\u306a\u30da\u30fc\u30b8\u7bc4\u56f2\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002"; -var L_ExportFormat = "\u4e00\u89a7\u304b\u3089\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u5f62\u5f0f\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002"; -var L_Formats = "\u5f62\u5f0f :"; -var L_All = "\u3059\u3079\u3066"; -var L_Pages = "\u30da\u30fc\u30b8\u6307\u5b9a"; -var L_From = "\u958b\u59cb :"; -var L_To = "\u7d42\u4e86 :"; -var L_PrintStep0 = "\u5370\u5237\u3059\u308b\u306b\u306f :"; -var L_PrintStep1 = "1. \u6b21\u306b\u8868\u793a\u3055\u308c\u308b\u30c0\u30a4\u30a2\u30ed\u30b0\u3067\u3001\"\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304f\" \u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u9078\u629e\u3057\u3001[OK] \u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002"; -var L_PrintStep2 = "2. \u30d6\u30e9\u30a6\u30b6\u306e\u5370\u5237\u30dc\u30bf\u30f3\u3067\u306f\u306a\u304f\u3001Acrobat Reader \u30e1\u30cb\u30e5\u30fc\u306e\u5370\u5237\u30a2\u30a4\u30b3\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002"; -var L_RTFFormat = "\u30ea\u30c3\u30c1 \u30c6\u30ad\u30b9\u30c8\u5f62\u5f0f"; -var L_AcrobatFormat = "Acrobat \u5f62\u5f0f (PDF)"; -var L_CrystalRptFormat = "Crystal Reports (RPT)"; -var L_WordFormat = "MS Word"; -var L_ExcelFormat = "MS Excel 97-2000"; -var L_ExcelRecordFormat = "MS Excel 97-2000 (\u30c7\u30fc\u30bf\u306e\u307f)"; -if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded(); diff --git a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_ko.js b/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_ko.js deleted file mode 100644 index c97d51bdd..000000000 --- a/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/js/strings_ko.js +++ /dev/null @@ -1,77 +0,0 @@ -// LOCALIZATION STRING - -// Strings for calendar.js and calendar_param.js -var L_Today = "\uc624\ub298"; -var L_January = "1\uc6d4"; -var L_February = "2\uc6d4"; -var L_March = "3\uc6d4"; -var L_April = "4\uc6d4"; -var L_May = "5\uc6d4"; -var L_June = "6\uc6d4"; -var L_July = "7\uc6d4"; -var L_August = "8\uc6d4"; -var L_September = "9\uc6d4"; -var L_October = "10\uc6d4"; -var L_November = "11\uc6d4"; -var L_December = "12\uc6d4"; -var L_Su = "\uc77c"; -var L_Mo = "\uc6d4"; -var L_Tu = "\ud654"; -var L_We = "\uc218"; -var L_Th = "\ubaa9"; -var L_Fr = "\uae08"; -var L_Sa = "\ud1a0"; - -// strings for dt_param.js -var L_TIME_SEPARATOR = ":"; -var L_AM_DESIGNATOR = "\uc624\uc804"; -var L_PM_DESIGNATOR = "\uc624\ud6c4"; - -// strings for range parameter -var L_FROM = "{0}\ubd80\ud130"; -var L_TO = "{0}\uae4c\uc9c0"; -var L_AFTER = "{0} \uc774\ud6c4"; -var L_BEFORE = "{0} \uc774\uc804"; -var L_FROM_TO = "{0}\ubd80\ud130 {1}\uae4c\uc9c0"; -var L_FROM_BEFORE = "{0}\ubd80\ud130 {1} \uc774\uc804\uae4c\uc9c0"; -var L_AFTER_TO = "{0} \uc774\ud6c4\ubd80\ud130 {1}\uae4c\uc9c0"; -var L_AFTER_BEFORE = "{0} \uc774\ud6c4\ubd80\ud130 {1} \uc774\uc804\uae4c\uc9c0"; - -// Strings for prompts.js and prompts_param.js -var L_BadNumber = "\uc774 \ub9e4\uac1c \ubcc0\uc218\uc758 \ud615\uc2dd\uc740 \"\uc22b\uc790\"\uc774\uace0 \uc74c\uc218 \ubd80\ud638, \uc22b\uc790(\"0-9\"), \uc22b\uc790 \uadf8\ub8f9 \uae30\ud638 \ub610\ub294 \uc18c\uc218\uc810 \uae30\ud638\ub9cc \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc785\ub825\ud55c \ub9e4\uac1c \ubcc0\uc218 \uac12\uc744 \uc218\uc815\ud558\uc2ed\uc2dc\uc624."; -var L_BadCurrency = "\uc774 \ub9e4\uac1c \ubcc0\uc218\uc758 \ud615\uc2dd\uc740 \"\ud1b5\ud654\"\uc774\uace0 \uc74c\uc218 \ubd80\ud638, \uc22b\uc790(\"0-9\"), \uc22b\uc790 \uadf8\ub8f9 \uae30\ud638 \ub610\ub294 \uc18c\uc218\uc810 \uae30\ud638\ub9cc \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc785\ub825\ud55c \ub9e4\uac1c \ubcc0\uc218 \uac12\uc744 \uc218\uc815\ud558\uc2ed\uc2dc\uc624."; -var L_BadDate = "\uc774 \ub9e4\uac1c \ubcc0\uc218\uc758 \ud615\uc2dd\uc740 \"\ub0a0\uc9dc\"\uc774\uace0 \"\ub0a0\uc9dc(yyyy,mm,dd)\" \ud615\uc2dd\uc73c\ub85c \uc9c0\uc815\ud574\uc57c \ud569\ub2c8\ub2e4. \uc5ec\uae30\uc11c \"yyyy\"\ub294 \uc5f0\ub3c4(4\uc790\ub9ac), \"mm\"\uc740 \uc6d4(\uc608: 1\uc6d4 = 1), \"dd\"\ub294 \uc9c0\uc815\ub41c \uc6d4\uc758 \ub0a0\uc9dc\ub97c \ub098\ud0c0\ub0c5\ub2c8\ub2e4."; -var L_BadDateTime = "\uc774 \ub9e4\uac1c \ubcc0\uc218\uc758 \ud615\uc2dd\uc740 \"\ub0a0\uc9dc \uc2dc\uac04\"\uc774\uace0 \"\ub0a0\uc9dc \uc2dc\uac04(yyyy,mm,dd,hh,mm,ss)\" \ud615\uc2dd\uc73c\ub85c \uc9c0\uc815\ud574\uc57c \ud569\ub2c8\ub2e4. \uc5ec\uae30\uc11c \"yyyy\"\ub294 \uc5f0\ub3c4(4\uc790\ub9ac), \"mm\"\uc740 \uc6d4(\uc608: 1\uc6d4 = 1), \"dd\"\ub294 \ub0a0\uc9dc, \"hh\"\ub294 \uc2dc\uac04(24\uc2dc\uac04\uc81c), \"mm\"\uc740 \ubd84, \"ss\"\ub294 \ucd08\ub97c \ub098\ud0c0\ub0c5\ub2c8\ub2e4."; -var L_BadTime = "\uc774 \ub9e4\uac1c \ubcc0\uc218\uc758 \ud615\uc2dd\uc740 \"\uc2dc\uac04\"\uc774\uace0 \"\uc2dc\uac04(hh,mm,ss)\" \ud615\uc2dd\uc73c\ub85c \uc9c0\uc815\ud574\uc57c \ud569\ub2c8\ub2e4. \uc5ec\uae30\uc11c \"hh\"\ub294 \uc2dc\uac04(24\uc2dc\uac04\uc81c), \"mm\"\uc740 \ubd84, \"ss\"\ub294 \ucd08\ub97c \ub098\ud0c0\ub0c5\ub2c8\ub2e4."; -var L_NoValue = "\uac12 \uc5c6\uc74c"; -var L_BadValue = "\"\uac12 \uc5c6\uc74c\"\uc73c\ub85c \uc124\uc815\ud558\ub824\uba74 [\uc2dc\uc791] \ubc0f [\ub05d] \uac12\uc744 \ubaa8\ub450 \"\uac12 \uc5c6\uc74c\"\uc73c\ub85c \uc124\uc815\ud574\uc57c \ud569\ub2c8\ub2e4."; -var L_BadBound = "\"\ud558\ud55c \uc5c6\uc74c\"\uacfc \"\uc0c1\ud55c \uc5c6\uc74c\"\uc744 \ud568\uaed8 \uc124\uc815\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4."; -var L_NoValueAlready = "\uc774 \ub9e4\uac1c \ubcc0\uc218\ub294 \uc774\ubbf8 \"\uac12 \uc5c6\uc74c\"\uc73c\ub85c \uc124\uc815\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \uac12\uc744 \ucd94\uac00\ud558\ub824\uba74 \uba3c\uc800 \"\uac12 \uc5c6\uc74c\"\uc744 \uc81c\uac70\ud558\uc2ed\uc2dc\uc624."; -var L_RangeError = "\ubc94\uc704\uc758 \uc2dc\uc791 \uac12\uc740 \ubc94\uc704\uc758 \ub05d \uac12\ubcf4\ub2e4 \ud074 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4."; -var L_NoDateEntered = "\ub0a0\uc9dc\ub97c \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4."; - -// Strings for ../html/crystalexportdialog.htm -var L_ExportOptions = "\ub0b4\ubcf4\ub0b4\uae30 \uc635\uc158"; -var L_PrintOptions = "\uc778\uc1c4 \uc635\uc158"; -var L_PrintPageTitle = "\ubcf4\uace0\uc11c \uc778\uc1c4"; -var L_ExportPageTitle = "\ubcf4\uace0\uc11c \ub0b4\ubcf4\ub0b4\uae30"; -var L_OK = "\ud655\uc778"; -var L_PrintPageRange = "\uc778\uc1c4\ud560 \ud398\uc774\uc9c0 \ubc94\uc704\ub97c \uc785\ub825\ud558\uc2ed\uc2dc\uc624."; -var L_ExportPageRange = "\ub0b4\ubcf4\ub0bc \ud398\uc774\uc9c0 \ubc94\uc704\ub97c \uc785\ub825\ud558\uc2ed\uc2dc\uc624."; -var L_InvalidPageRange = "\ud398\uc774\uc9c0 \ubc94\uc704 \uac12\uc774 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uc62c\ubc14\ub978 \ud398\uc774\uc9c0 \ubc94\uc704\ub97c \uc785\ub825\ud558\uc2ed\uc2dc\uc624."; -var L_ExportFormat = "\ubaa9\ub85d\uc5d0\uc11c \ub0b4\ubcf4\ub0b4\uae30 \ud615\uc2dd\uc744 \uc120\ud0dd\ud558\uc2ed\uc2dc\uc624."; -var L_Formats = "\ud615\uc2dd:"; -var L_All = "\ubaa8\ub450"; -var L_Pages = "\ud398\uc774\uc9c0"; -var L_From = "\uc2dc\uc791:"; -var L_To = "\ub05d:"; -var L_PrintStep0 = "\uc778\uc1c4\ud558\ub824\uba74"; -var L_PrintStep1 = "1. \ub2e4\uc74c \ub300\ud654 \uc0c1\uc790\uc5d0\uc11c \"\uc774 \ud30c\uc77c \uc5f4\uae30\" \uc635\uc158\uc744 \uc120\ud0dd\ud558\uace0 [\ud655\uc778] \ub2e8\ucd94\ub97c \ud074\ub9ad\ud569\ub2c8\ub2e4."; -var L_PrintStep2 = "2. \uc778\ud130\ub137 \ube0c\ub77c\uc6b0\uc800\uc758 \uc778\uc1c4 \ub2e8\ucd94 \ub300\uc2e0 Acrobat Reader \uba54\ub274\uc5d0\uc11c \ud504\ub9b0\ud130 \uc544\uc774\ucf58\uc744 \ud074\ub9ad\ud569\ub2c8\ub2e4."; -var L_RTFFormat = "\uc11c\uc2dd \uc788\ub294 \ud14d\uc2a4\ud2b8"; -var L_AcrobatFormat = "Acrobat \ud615\uc2dd(PDF)"; -var L_CrystalRptFormat = "Crystal Reports(RPT)"; -var L_WordFormat = "MS Word"; -var L_ExcelFormat = "MS Excel 97-2000"; -var L_ExcelRecordFormat = "MS Excel 97-2000(\ub370\uc774\ud130\ub9cc)"; -if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded(); diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl.cab b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl.cab deleted file mode 100644 index d064df9e298bb076717f95174fdb1f1cc6a963cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2560587 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∓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

    m4T7%)c<_!J@1 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%0A#glfyIQ_{^IHRt6#k({ zKe+W7s;%Ft(E2U3^@;Q@Q}DsdB0$8+x5uiE?PLiFZ2NevM!M9g45??VTBpjCB+|`- zL`vkgUY6m(ph~aQI^~fJYsZ*DQt*ap5EPL4KZc0DyK(fq^3Y~y2+iI^uCp4zSg|0a zalvcb?h5@`?eaZk@xjrm2KL#+x^5G!>j_LwZc}{JsZenK&(Uhy&{9%=x={Z##2DKK zX>j6UT%I#5-Vcw{N+SKMrgbFaeAa?CQ6Xb1c&B-B@<13{c7jnpu!1>bl#-|sYg;(} zuVs+9`sCU{B0CmQfEI()mgN23#60iFJns-_J`ruz_Gzy-pykzqJ~Bg_eo?phWNr5_ z^2Pt&54GZREpe6GuY(I4QajyW&JiXM8y5IfRmYaJ1-*6y{a3`E{z|Jsqf^9wf6pF@Lh`AGJ+6mVI%Zcf$uA5Ysh^5(6shE*p}yTBI8^*|k_q9Y9Mi z#E5Qo!kFOPFoo>I?HUadszVVBbiP>JXayQf=xD;pzF@Tm^&bMkqrdy&TK;{w7Cy00 zgG(N2$pC>WQPKbT0e!EtTT*w`!XVs zmG3Xj=f2P}gORT)gzf%WcGh+*tFLh(Vg1-bji#~gKr3@oCQjNyaCz=VRtl>Ni|yeV+BE{Ady zwG1KND7Cm&z|!Uz{s~9!{)d3ve7kVT&p3gD)k%QkB0`k-MuCCEPO@ecbaQf_I%;Jhr1rbuDK@ckzmFi z2^Q>;V693*L)7Fv!)CsL$7pzSL1z)xs9kIdS`%S%xSQhHntWJewckZILguE~iHlqzc-2wD0%d)*GxK7lFtnSR5m; zet0A%FBbx4AtwJG`%Tk_6}6n5LR1Fq6cCSzze#(2t8kMxy_MX6iGD70xrHL6BT=C#wC&mo3-3jLn||yTlI5a zXhmb|9Z>}X9!#*ocu&B;ft1zn(}GZgPxX2FAe;5t+Ws&FD#s|J#2a>+r)b69btB z|2TX9;aaZ5s6eJg{5`J2UmepuAC;26HwBfG{L`O`%3Zhd;HY!=HhD_f)EkM^(PUJ(iLFB-fDi zmGx*C}828vX7uq^^#Dlx0IshRko96l1^z#!Wtk7vQ>+M z#a*yPi2=8jrW7QQk~S?r4WLkJEEqHa#L#UWgG{eM6xfHmin@x6yFM31D)>_x>QV{_ zrTjEQ`BfID2BAQOv_$5eb0?*!``-6GzK?Y7xxaJf-1B$Oy%%UTn&4$E^}dNtGIA88 z9S&S&aImhAevoTg;b=Wnw*LVtsBd10`I*7pKRKP0(!vjl{}% z2ZNPi$Y`!MgwAsrg@&qc=rI$N*nl)zZ=-=BsjE*>_!_xaEA zlU}>^tNDp9cep(xH$2|<&e}Qa?_bf{``xX_o*mS7_|yuq`M=U9)+BxD|EMDIzOCQA za{KmGa}1x}ekpa6J8$8(%O|pHUs!hN=xvcR$LHs7In>b*ILJHKmETgg@yR($J0JV$ zT;ts8$um?&v0VH3<74z)Kc;ZOU8xH!F2fTO&t%U!{Pe9wJ2pp(uNaN?NS)E^e@NIece&39f*8M3*j!hkN;2$3h7w>+EIgwwP-?FRU z?56EoIzGAMuCF#bUt9axe*K0ox31rsFoav7nfbA(+nLsu{Lzd4r+(jOVp;J&Zl4_* zb6;uAs_bKnvjpYw`p#^Yx@@}GS2vDxJV!^7tWCNYm)`eCiM{J9OP0ih1=`J%7% zKkgJa&9%3E`kU{!))N1UZLyQLAAfB8eMkFV_8)v{?!-gaif4ap+n2xPAusdAJKqfd z{809WlM`CjhR4kR>cG3#I*uH4w>>d7CN9X#T`}*!o3_q6`pkW7&cAP0XUv?~>+g;J zl;fipYV3c{PPoTlNUmL;s%sp)rL1Uk;HlK4L#5l^JTrS=@6Hphb&cZCJJ&UB`eb8E zL;o?Gr>W@;l3nFF*b7^3Up0`K>?HY~KE7-8VJrKR18mHIF;|{XZ8sztQ*ZR+jH~ z?3v#rKmP3tmN{!4cF#}QIL*B@d4KOSZ^%ij@A;7F_0jsoWjU+$?al9SFP2?W4Z6NV z`$S36V^{agn_Ic?f%03w(>}Ri(SSqOPo*CerY${c*gN6)yr)iX>+HNxyK-#pr~MDF z+%!vi=g5(Y)d$}GYDaj~luIWkU!3>(fq6w=ymwr?i+QquP>T$`RZ|j$E z=kM><6xLck``3`~Gpa){Db#|M0~0O*`iN}(T+tq%vnr!2q z7~i^h!NU{W2R=MD?TA>Kd@`%u5`NI};TP}!YyIaZ{<#0+ac%OJ;R7#y`DOKv&vp-A zz1i{JJD;R!9%%Y(wYKH!p+zSOw$Bsq`rXpf&08nT{wiTWS;?C8r|x~QHu;mcSL*5q zoYYJUUP!nP8HZH|(wvvn-i$o&-Fed98Ui}7Lkwq8h#DUB!0}s z!ywjuccS$yeE@=*kE);U!$;Xgz4&M^uZEB6e2T3m55{glZ6&x-D`&CfvQ{8f*)C(J4=0=fPlXG5tSx z1q0`<$+Eo+55vzudz%&*ckny8?=TcPbE8Z^7M^1(ynHIGlY zV0C>>pQ_yqpgHsnmwXU2&tHotNJ)&h##rH&>ZHndH5abRG9z1~=4H_pFKNz0s`@3` z5Tt%kQsz#B;SzD13WTihz; ztATy?qoz|P?ePGXJKm%idXy317k9U3Y!p$(J3jF_=$bzlr|)%9PR$>BQXa* z7f8|$<+FncQeRl4EJ}QdI%Ods6+}57RV_{`RLVpivS`ljIqQipMELG;*1n`HUr3od zqB1T_490v$(fn1e3XK#v@uOTQADlk31pPWlX?z`rB<4iZRtvQIjK-}gj*RB#>cAQR zW0$XsIt49J1!r;&*=__XuyVd+yZnGdx+@Bnml~!h=`D<7LA(okUdw^PUebN}GAYsV z*L0u^D6M9qj}dx_aF%e90{X3+u?H)-BIyWx1#>RzWkE-kfPRR|Q6$?Dtb?1=I6=QU`D>^Dk4A^H$6l(wz~xqcuBIDSM(boPt2n z)S3-O!I17WvQFp;vDcbCOc?=G5{tRk?BQZDi=~ToIHm>$2j4v?Jg}_Uvcs2RF4Xx3 zxR*fZI?IkleIU6=HwBDNyR>b$vN%)%Rv9|DIL2AzR?k%K>s|i_oh`<)Ua5C8Zk1aF z)207&H%*tjdOXa1fQjN&?)VF!VI->LrBa{N&zc?gADXROdQ-Fa+~gRio;_`ke^0g# z|9R8s-E%W;CZpBOjFs9NfeW@n8v}n`F_VPj6}ne zhA#DM>w;_mzc3oA{xp{HCS%hKOf_vJK^X%rs=KKuh|025#V_^sUwZsf7nWR+6~B}c zI?(MfoI>4hS!%^WmeIOGJGRGB7ykb`>e}Ax@p#3(Tn{y^D3qU8udsqZcxAN$f0?@P zo`$-ktnxF)UwX=(PKl)atQ7U-{kqxY#n5cBzUDQhS%FsABb0Oqw&>!7>OG@u$%{A` zwZ3{sB)Qt!G0GZUq^`C`sn75~IQAOjPUcNbQ8}Z|j{nF$#dR$GbcA}Bk#|UYZ14;j zyJW~HpR8oGc@|%h(WwyMH#r1K;%TMp{(`%=IO#Lk(l4PZ-w4rq?$^)(qP6|kEl}UH+N~}|Q;vGXr^2{12~;ZL7OB^$OML!2v7OAOadc{ zf@rnIP;28)UE}LC5iJkgt$Qg6kyCXAu-$0R&2s72hDZqJUKanXf$^#{>gwGrA2Lqk z&5ReAF&|lXO{EvhU(tKCD9W*&zFfI#f@xIex2&#w=(x z7|#GL*HiXybU+*Q+D{=D#J|bjphfQ$3b)+c*-~|4m)u}Ao&n0sXw7IG>N5s&(~3x; zQ7CQ~Or(NSHwgnDB2G?ty$|Ie^a&}24?%M*-Bw zqsU}kMsxMTyQ}l>$!IJUR^d@AWSp+LY)Ez9P$*d{tQdqKC{~9r=2c~pNt{rHF9X@; zb@<@@JxGZC()sJ4+X0Zipy?b1 zm07spM64!D{Y;-m`k^B#3%OZ>Yn0#`4YFTFFC0VqFj7v8?iT)(S}3S8!lMrUrjaR` zWIX32_Y0qdC|0Jh!kQ3b1%(l{CHDR!9(|FeD!Y7#{jPg0h=8F|lp$NL zQVuZASyYzl1I6R{oU34z^!7~vfM@PekF+ojFaux~0%pYlL!>+5RY)FZewOoU%+Kn4 z8axKMkCfL1n!Hw_%S(J+Z@NNMz|3aKn5UTe@Rwm$t;%MeW}blOa=Hl-#uB*VqidWd z5RqlGz!;ORj#WB>X@XnBUEQPZE_pAOti+OE$4k<>XK;|8_tgDOyzZ)16B!@#IP^LP z`b}lV!e|yS&%kdvGnbBHL}U<7Id5N*MQOJzvlN;tW9UL%GFgN@pFsIVw66M9t5(^V zY-S2Gk+H(t6)2aoc9I7{Z`7ja3@}b>T#RIs-cnUerbn8RT$Ht1B)U8f$U{l6K*yE` zeHs7=i8PQ04FPR(Om<55c3lIeJ~J!MB&yD(Cg4>*WCR{z&lL%_bKdd5<@kC%|7|q# zFzHS5Ig-HFCGw}D{0=VoY+3^tI!I+0Hq)DoHwGsrCGw}ELN9fQZ(#WytZa+598^sR!+Hd*=#kUviv9;e3TRDT6%+eJNyH& zw`gfCT7j0G-i4q*o2{{Dp5W)UGh11@3?m8F4jPFZID_*jXl=KMgcyN5yQJ>t{}E3Fq!y0gt^=E0F6bG?^R$fVGOdxYZ2W!f<=1l z)$ScRphm@ja}(n>N0D<1XkN2XE=FPIZ{k}ND4HZM7d@@7lZ7`sqXjz zw~QJ(s=adG0x&h>PF@mHv=owU60;5e$w@Q*7fzb-zi`rwzu}}AA9vEgo6{wl;p;nP zWrY;Kf!j1qy~EqfF4b_IadjHiuu>hUA`=aV6+yMYD^)(w8JEir zG9!(1_LK{>{;Z^TB)*>9*8{dcVDBC@yvyL(?vPs?WFL{Fk#AAed52ii;S|poi6!l%Q#>EE)phUNms(%x!ri+hw}8i+)@^mthCg-5bjE=3 zsTiT{@W0M375w&^j4LN88`m8692@x-{7SD4y(Vun^afHE)58|gmyppaFE)XaRPuh8 z9G+~*58FBrXInR5H#)wQWv+$=t>EGWmyS#}Zc^R3>xwv_vFh|NJj5!r3TN>o1LPcN zyK~nHm==?bFeUJ@FMU+wV?QLYLg*RmLRDS0`Cl*yfQTPim;?YT$--U{kSaqH*UwU}KRhUB=bv@z718JNEPL(Ab-(Yex z(@8zBBX3fXvWVd{@`8=&a3=(9v3w`4dDso{A;eX-EYKz$PCTX?xWBUJiC?BO>7V}s z`3F~ZnrWBis!j&F&jsf*O^ zRF_lvvc8KN=56NqSx>1j!&gTEpmV4NkN$*C z*-{@|tP`}p-cBhoDnruC3WFkPq_<^{HyNbN)9-ZAKonsR7;=L!*o6~ja*Bp^`40~wE!N(tf#PGX5lHUt5wDwmvk17bJEL9>id900QhqFx!#i~lu2k16rzfmfJB z-$@s0l^D0nKdS?^(k|V9`I@X~q*O@Sr8@x7pv6F+;3S zh9TlX)>0}Ak>8G?51<%INT$|vK1~W}B^V0<%u*M$wcnu6_M7Nai@W|~vhS2Lo`O~l z_{@K+_Vy!MelD2xjGLXBz9&CueV(La*p=2&(Sm%)EepswO}vM4jCV?g39<;X5_`RC@20P18U5r{BBp_iLBih#*X zE?TbpaLaGoUb;2VK_k4nog1vBULT@UGvPfdvV>*aP_U=q zGxgU~(3a^YK*q&{~nh8_4i{0HOFR5Vf=quX)- zLxU820{X{if`%H33ip$oP)vA)?RK^(UKUQ&90JJ^w98YJ>+I|_YV6sOS7l^q%Eeb} zC_!H=0s@du5;WZXL7PcA22S=ZaZ2knD#o1}3^V~DO$8ZIjK|^Q{lepY7s0fKENc_U ziP4h%jV_v`CGB{q-NOJO)^baOPpt?IJNzFFStjW%Xw}jnSpB{XhwQVHl35O+BF7Dw z$`mS6rB7$#6;h*vlMD`E8Sg_%sL%-&oKTAwCru|-yTw{C(}mM?=>?c<*3lMg7N*J} zh3#j=aMPK;`yMTL*ELn=KA>v%MLfs6qq{;4>oxYdhJKz6;n^b>2s~lE&C5#el|A4wIsxhClyH#$T^m`XJk`+;9jfF-k zw(<1hDi#@aeGdm_yE!m>V=i_ECuj1r4UC%;mc>Bflq~pRCL1VB1yfJD7rz?@V)-y4 zwhg!afgsa4^v~0U9_?ThWMfc{d1--Ugihi}VyG>JKdqu(iGqf4>d+~5Fvp}bgGT&(i0ao-hnti3&OlYP14s)LU#S*S=m!Y`g;}G* zvJT}qK3sCbBWu7;xw@0d0yF&{-0Y~F`N}Ex^nljwOs{wFk`5HwVd^V#F!RkwD$R>; z?ITx#E!}KG1T$4=VC=aO*@(I><^@6J&>$lLRn8Zc?5|?Lk~bN%XQ9(Gk^*XWMjgB{ zilnURH|>lbf~<9!j+a$L)W5W{C&CT+mzxb*!@r!kkvRly!pW8pSPOzJwk#hEMbP0f z4faTMS$3;cM{C-}!Z6u`9{s{&t=5=WcuEY3C1=D!3Bxy9tx>V?975W~!VZK;yC1qr zx4!c`are)IjPZhU8w|vhl{*&KuDIYEn8f8ll|OL|0vBaaYXA&A1j6j7 zxYI7Z8&C`yUlJ(Rh|q|Ie;mvUD(s*n84Fs#qW<>a*i=+()?SwtV?`;f^l1ruwGOH4 z`)f)BZKI;6Tv<-1h)*LqfCmMa<6F3tWgPSlI?)Mo5>W0PXnt;%w?EkEdgXN;;E8Rg)KB$YzB~?yIy&x)EE|aL21E~xckqsGF zEZ0Gzf+@$5EEYZ@y;up=Q&79;PTT>&-<>q{IBEye=`5OQ?IaQHDA^FvU~j|8PWq`# z47$s`iKObSxW7$Qq1XxE)*TI;&4#D3-O<3=TzDGS9SxkV3s2MiDjFCtpd2_xLf&G! z^Jogc%%Jj5BrC8Bv(2!Kb!#Gj;5${mUZipjz=Xuey-uhVb#Sn& zo6_jox#GAf^7@EB4d~E2pZBL3RsK@teaty&M%r63Pz3Z=MSIgm#%45wd>wOKvvJ5_ zkAu91J&Ww>^c~?gamMl(soF{btCUv4ZRtB65of#@Q<9b@|JTRE({B)b+~6!U2AZA9 zt+vEw3N$KLLB}^r*U)Rvxtl`Y^yIJIuk+KaVpoK#nto3(4PKsmTIwZgoO&{l`6C- z+n`kz-y#|e&ntG7bf1Z8g0VT34c}-d>g@5u8!y7J(Aw*u)5k|o0n!F-9r@I)3@TYc z+;=>J>{Ra<%*c3ZT~p|LjzmM>amg*o zP3j|67!M~4eP+f*qX`Egt@;pk510!u`Axw>X^LIWH{cXS!HIqlZ;=w;uO_)3v#X3u zniCuyNX4F$021^!u#prnS(50=bI_m2nq8y3YOwmuu3~Q*p@#(n^;Fzyb`^My=JiM# zUY&V8(u|MA`aNZg3K+9#F`6yrF6sI1IZF*RZ)EASXZExWXz!UU)YQ2s#AO_wAaSx^I^bK@yZH zeGM)I?ooqijpk#86zmrVzj;mf_^j>lp{s2j$`I?NXl+zEHp>gM2=`pRx>1>Vz0qgS z&te(SKI4jhb{d$nY&~Up8O@eUMZjS5knLHzyjeguM&PIw51Q@8-uuk<0`Cy>DoTT? zmfaNw2PrNf16K*Q74X z60LZ|oL}tCGUpd~E#_Bf^BI<|iXp+A&tvJA$yB8eEqP7hpQ|4^b{}$B&_*QI(&9hS zqa<{1A|%U<&{>!Mh3^w6-?Z%3zi<*B&4mX23r7+Z4%zo6u33jL8o?`ul(=JHo9`zm zZ1ZOJx;75$E)!7Fj&RCbe-C?{Vu=nK=m{s*2kLMSa9W90k{M7a{wN*~H&{(77=tizCvkgO^YmA|j|8mgzbCu)%ta*uX~LI(gRP|2kL|(=g2T zN@#W)1A2j2_4>chdV+6aZKx-dm|!sJ`^NpOZYL9k0Ud&Gg__?s87jB+rPy+_CqzJr zOIexCQE;@>6UQ514Uk1q^}k@M2T$Mr3{Tr`!qeLnPy2fC)EFNWVyU$aSI!%(Mx{R^ z^aohOs0GsSStY%?(im?iO%0g3fhQ3#MT1*PI2?sqz0+K1@*f~4<3kW(*c3yg(4-)# zYKMX(HDbBY*lIPV@4GP;M9|@FG^(ubcsS7LnqJWxsqcRPEC_z%7EJ(vLrbl_4R}=5 zwKqPKnIs1sm_Y^{HA2v+p`gYlVy1%{NM;g*gb71tf-niTqUjVhhI0@hiQr_=d& zUizbqHOAua*~X&fo~>n5_L8{r>r17qqkmpPItIT7&I_M66m6>ciI&gS);IA^7)2n55 z5@~$w9dF^`%o{>0a|l2D5}RkK%^rIduOF#*Z>_h-Uc~F45NGyNvcrgd8&h`d#+1i) zQwoC=VC2@J#wj-3zK1=unr&UZ;3JSPVGnP^0qgoxmS&y97Uz0O?Xk63!efHqSlBCg z(U<3;z199C9xmZIj#u&!@7DVIz&eDf`Jht zJNiA;jL!B=>?gRhvtQ!xCp0E*&Fym;l^!zvgBIcYlUnpj;}F&tIt>pxA=v~C-u|4u<0KBap@w_IJg#2rCTmU_In5fH-Hpx4+pJRd_+;fM z^VPd6>y?A?#}Rw0@0kPXD!2YDP8zwsXL>V9&uYFhzqYcBf9^cVX1mzqG&y(Dt(ZDb7_f!$$F zhsOz%!IYUcQEy5@9i6Yabx-jjcTK(gIX8vDgF5X`nQ<=FtY)Fr3*LYVVIZJZV<0Za z!W{M(qKdJ{)3f2LVm8b)8t}F8*|5`?pD*ALXE@5wf~1Z$eGOBeqAB<_nu32{U)<^# zANWtMFf;I?vaW$L9Qem+_B}H```G-61JAnH6KE6=J4DtR(JiH>V8qcNTOx%G#57wD zHguEq7I55()KgJFhKKAa@e&!-*&rhx-1+nHysNmA4C#u8-4B&Uit3@Hs(SZB$Zda# z`h5|(?T3)t{)xeD|HR<7D~?;o^EgE^J~p^*dc1r5@gC#xzRcr>ZZw2I+5C5{t39>N zZ7bc6$ZW~RpnQwxcS=5*MzBj&NAa7$=?HI1R-~5fS_)ZPKS*4G%u#^3Jag8{Gt@`q zgcTFmBFLdWB26@bn{)!l6bv#NPU6~$pVh)V9v%d_T^z*SpFk)O zn~C4W^A=rkXbRzJ^UfP6?=lun;S+7SlfS|a)*M@0F(rL$u&m52GP#X+ItQz^(HtLJG^P3r&!S?~l3~EmFpmnA4r$%z+At`@^ zfF*?0#HY!#J-5e8gHPIrUyxBr4shtGmyrCtE{b8OB{fH_bRg_QIQ^j(S5Fw+_U%S8+FT`%oM^oP{UPZIWND9%40%BMwwFtJP!79?BeKq(Jf;?#_~@gtQtb z?>mPphWuE~Av|7N+hCBf3=I<+$-f!UQqfUIBx_Sn{Xl}w6vp+EuyLWvO7+>;N}F1< zSX(Kv8D0OK8~vkM4X%s!IHCzhhgo(-M_u;E5M-U||5|KV2Pra|aAj74O`uYK4{uG; zQK{vjKq!*Uzj*FLvSg>;H!w#agy1W9lyyhC1Hy*1$hcjCHrMJ-{JcsYGi!CyDlJ&H zO83{}>cSJ`r7a4&mX5!kuC=&RYcKmD{44G>bX=%m%nU>s9V)>DEI!F!*#uLd(n)8- z>XwVTJ1ohF>q|2aPY*5MqO)D*vtH;!%YvMfIMTJX7y6J%5%$4&1f-PUHR`)U1L0s<!bR)R=GesosX;nphO%%(?7T9hKe$6{=uxSTo>&wik>YRHf4dpFJBh@ z$kp=Y0HR8Kd&e*y6i2&V(X*~$lU0PdkA7seKlT7J3>H*s!AnEYvsTS|N3`4ONveuX z1yRYHv_Ezy;V6!U^ybz4M=sJ2Jjjj-3!##^EH&YjVQiI7Tc5gQHQyn!-VQWboJgby zM$yQsjA^eE>v^lX6W`zqPT+CcQ1p7B7Z`-yB*J3h;i_V@gp<$#i@x9jbb8n%$!==> z9%Mo;VO_u}X-*Tg9-IDwT4%FAhKlprfTbH3^OEJmx+QE|pdc93u*o6cKySB9e*54U zy={N&E=<47cv)YyE_$Do-kH+dgD_t;==B#xNDD-yf!(%|5hI9Di{2#LNmJiD#CCp> zE>dhK&U{?Bc*>FV^EX;Y^k{oM?1xEJyy+cM={2-`rPpw?qu1oC81Z_jShR^vHM zs1~a7^Cz*GdqqPt?W{n94R#K7j%v7Ho`O3Q>RfY}uNhkBZdk`^?g6n=t>)uoq@hW1 zcn;&<0BarDDVT|P@zsB0Crt%cU&+wIMQ;;bOZ^6rr*fzni33phP2=ByvFk z-R;wvJ%Fck`sSukhMv*hdul+?GkeGTrnE2u1;Nbo!`kNm_JxbOryFL6h%K)xoVOZD zLueDGycC0$NpqDw#x_3}@u)0BzK0S3(>wA;Cnj3)jK>-tQ zhUh~=O&df_JWPL+ybk^nMQ%%XdNAGTZ$?BPB!o)loEf)CWf~$j&Ohcdi1G`A9{|XjjHLt`?d2U?hv3tA|Ag62nt;&H#H8 zFbz*VLBZI7N&?%B9ozZv2<>xFMw*n42~s+aBV3z4hN+iJjDv~7Q08Rf$67|p=>PM_ zPbL~sSqANF1gVJZ5bz{<4@_Ic3_{=|blQ-w9*1|jOslkMRjsvJ)fVWY46n|HE+*24 zxs4MXA{-eR0IgAN`GQaAMIE%S2_1|4eCq#&vAws+1SESL01>9_IP1WE4~t$HEok^= zd0zB>TRu#fXiq*&)t0}^_rj*0vZRK~CA0i_#C&RbljTAtE5q~JXpfb@`R~9hl-pF_ zV(2`+^phquh~$I!lGQCRN355B|8o~~Sh$F}D47J9-xSpKA)$2P{5Y!m?%^xGjBLkP zq8KZ(Kehqc2vJ#Y*B>lUnY-GCx`fA;qXu-74VHO`=e&e3NzhURFP6G^ZnWR5`qr^> zr%F_xmAh1;`o*29Ph!g*D$R-FL+FUHEzfL!x(n8wS|iKL+~s-D%FRp2<1q!x3j^l@ z_lXDVJCmq&CCXo(*Ya+0XBjMRWwzVb+&%-97_b~KRh>J^P|@-}e6K9|3SsW}3~&cT z(<`?KdFpdyp_Z4DfGlAa7ysP= z1Z$y>ulzfO@PfK6C+COZgYtvF0VXS)g!W3ZN3`_-KtR90D29HuQ(M!V5Hz&Trq;p8 z`~)A)t_@jw;G5~IR>SAAq+o2IfHL_y5aFXKD1t$*XeUk|^o@S36<^9#eOp+iRrR%s zB|QOAlq|wSK^EsP-ac%2Nip)0vXGb5_J@U+6eBOG7P!N}uuo4842#i<-R<|V!}44{ z=SwhWfI}!>3~K|0%PMwQEx(5!{a{Q1PAD6z5-8Wfl|eMg`Ubn1-QS3p2~$vY1~)R*H|JlEzl}g__dl9 zJoYxJU9a5HgB66dr|=JdP^3;m&WlW`?~W|4C;zz*_7CguHc?IgYId|?z`KN6c8=AQ zMIWiiij+3ClRm^2>uk4ZTVO6#V0!zsbfOgx?_;-<{5hCQ}u$W3)W=^yo z10q;032MAg7<;OfHs*7vl@8`}s+GWzBJn6yD+`$~Ppw?YeEDi+5qt}^vIM?_S_wP% zLbcMxd_`(y9`lu`mHE+wrRdNlnFI17T)&%WQ*B^#Z~;dTTHRq=%X@5P88Zih!uohA z2tYqugfUel%Xy#z@N$+spHEZ<2d4ewbu&2O; zBjkQR_7pj@BIL=Sr`|#QM!=5vT*!;~@&qH|%a1J9>JE%^A;f+(j2o$=z%wsAHZPpY z3~VSff@p$eE>DlEJ(HShCw(4u2$;?I*&c5vbxMR29HNd=zYgFiLZ@I9p+~*~l2J}j z7y76Rr>G14)P*zD1x{TUG`f()E|hB3oweAlToB88QS;DkmM>$uXwQuH_r%WDlnJ>5 z6^NNfZc}{`A^~KAP@G`5xRg)^f+BO)u&F- zg-fjgRxMAhDP&doYRy7cRiM@sv8qC~ri4{3RBN29sz|MIv8ocaCXbbs;+~(+7n(2V z;~I5b_Y(5AAh@nBuz6~m9(4xUL(Q;Ya@cRqKSw^Z<2ve)@Zx4&@*K7TvRBEE&SGU- zko}1rYR?I>e3KxU3a84;tN4v{O;dz@MR+LcRdaWGeEq|1b+36VMrfgw{xG znFF(v$BdaEPW*Y~^Do>8*$B(^h6qz>4vnbQ%jqv56 zXFwVXGE@@nc~{U81n*Xe$-BzkTHw%prOGrk+(vEF&Wn0tDjt~l6X#IHA&>`zmOgF% zPNcUfKpNT_CrDLh3I`?(7=g5}_f)P&(k^={Wu=tWIP`}dI4*?<7_3#6!ds<$-|b}l zd^u!?KdsSJwtQvWx3RBrqfib+h~xB1X}k1>CQoCNa_59BTW@2*=GdF^B36lxN;i@8 zbh7rYMBu6W@f6-VeNvg_P@?CZ*3$!ic&LV@fhv4ui6gqjW>Oq% zdm1}WHIG9P2*Ya3f#adL&_P7Glzj>Fx_6Os9pO5b(AqCRH@S(pz;ob>P5?$n8K~V6 z?XjutC4})|SX+`u8-BTEj%cqAFI>l#*`fm`Id7RfYneQKnVh>!xin&hoznvUv+B{A z+HiZObCFvR2nPo}0+ROIk*R114u7qv(t^J^@HdGNXYT4$Bha{p_8Z*QW9^0R>SX&h zp04(}C(#zm_KuS5o94Ka5IMYK?4>`y31|qb-fRO|QE#^D zMLgMfQ5UCy=(JO7RsHZQ1y#SqYHcCaZ)3F%)$h*OhzX;l=Un zExX@ohR5-`vUs?Hf4Yj?b3ue(%~vc2Ha-Qjb5vde_W{j&z|ZgAMAp3Lm3&=kg;eq% zC`~(5Y=mOh^Q(#w3%Ti<7`@w%$GcZF7Rv2Ttr1I@;Rv=wo$UnDG%DZ#JF7p?J}zHpV17|)4^tKg^W zw6J@Ut?%~5b1I{{rS(NTSSgH$OZ@S(XciYP!jG^Je+t%XgJj8)E zpg##WHKLp(!*^w6w&G#WVKwZR3*BoRsK@l1#bLD)@bg5326h_r%B&g3_VK0>5b+0r z+C7IK!@JsDUuf?@JPTOlD_HelIL_rH# z3cmjp@PQe~Sk;4S+j{;W?7^CMP*qZ@SH>q^7=~upHDLgN)+tR|9bDc6L$ONt`*E}& zhivO9BOZDHt#aM^#pWXVOWY_LzeT+zlg+sob{lqL@U`uI3e5bpgNcb@W?V!5`U&+A=@Q zn^q0sK(|2qaW2A(5eu}~&;L+Mv&Xvv#+k4{;c&HBXF5b1Qyg)hEhPLz9e#XaL>MQkcvROL$0OdAM%x?~)FBBcEv>qj&kKp=n}mka^0gt) znEgBuFL)fUOF>`xrV5%v)i48}Djg;LpIjC~m+)RxN9;yZd~|%C3!juaoR3;sL3o^` z{#-hW&duofc;l_32uPi_l+39|MPXI(SiePJ)XLWqM!g$1!w>JM8fbr$vvy^syfA_n9foGtvr$q*)q=MaYoe_}Sp3inMA64hd8d9)gQWwOmHEkbMm9BUI19VO`Gz zPWu0APxxSD(w^|YD|8M8(M{rpaE$mo$q0}dw>c zug&fp`TAm=6Jx=c9VG$GSsD3+dKB>Wg?arW~{`SAL^U+YY&4YlN-y z7A%3^4A1mi@ZIROm|)^_G558Yf*w%NA^0gEA%80@|4j6W)JthlCA3hwY75qmQrOyV z_f<09Ska-oE*N_4c|u1di1T8-vdQ|wJI(5Cm_?t}jJtRDcjb5g(yZhb4^uEIcFTH5 zZA$*=oo2uOHauOArTww#6eQ@kU{*?P!qg*82PUW9gQ+hEn) zik7<{_CBE8zoF%Bd4qS$64QkA@|F#hXxde|K@KP__ul=v4ZfBK@2@BaR%F*b_du2# z@7cH!ZXSNd`r+MGZ_e1AYkKxj&iv;I{0$HJ2qK~<=jJ-!l0-?U2~k}TgONO$rG2`< zCQr=#+fX)=5H;rp%t_Fq$FJ#8eb({Q9RZ_=JVS`JFD9A;h8+kJ2WCKKzdFldGO1xiX6=-{_=v-!0MbK+ zV`6)e0N55#+)bA|Ov2$3p3FvKs*HUXo1%(}5tP-f*c2&xR3BJIt*D2m%C$|q_Pmo` z3kSc8Y4WM2);%~IXW>%#?rKQ-4*qx!%KPz%nA|=!?F=m4+DI0f7wX5Mjo%A4q0T8{ z2}aCKaIszg`4GB=&ML)#0ew*z>~K=vjxKAkEVj(RSiDhP7cn8+%8-E02nK^tCS+*E zp+Bf18qqEz9VWo6?KrrK#QOAEMTnx0D4ngIr04gnTWymzRctR^p*SMb*8FNCbb%#{ z-#q_4St|2*rItS@u76V6K2p@0y?w;pEw@)@h5~k4~|_-WlaZFpHq} z4yq<8DuJ&_pAxpF@8ZW~$;8wEd`I!Lajh}>6c|Blk-Jvh{lI<7-S=%+v0?KDTx+lv z{Vkt=K;F<&(enAt8(Nm&`uqF?o0=bdaN~{lv}`u99er5{8fwhSjXzH5+EWWHh@ZFT zuD6=`_ixHEiCKpeawd9Rrzhm#i|Gl87&hNS5M9&6cYDlL4R1H|Z@{8M<^RLK9@WJz zf#iHWpLXX(y%-o{d0L3|@-Ht(2dc4zMQt0y`NgNKAjQ}w79JBj_>f=hni4zApLq$L zw&h^c0mR_!UUm`7u?3)Le zD|rCDcS1ovciBY>>9C{-Z3?y&c}5i}VyPea15RD@E4fJPsH{lV`RDXmGEP&>UV_=n zkS@J}#0ZG^tbTz91dDAcSDk=(=!h{8Pg$D_K4rT%;sns~@_@Q7;J>Ocf- zIrN`kD>3R{ifca-kf~HxDSRh_sFkqNDj<(a{>N%SODS)XB+=x+VpOmJ`K+L~7t>3N z*|I{ls&HaHgYePV7l^T+0nI{O8;n1Qp%kB9hNC}-CNzUci})pX;^^BuR$EZuOL995 zOVjQg=+WDi)Fb1?3XuLmki-{<$PDKUR(S?z3m^WADC46nDg)@^Ob7XMU58)hHQdSD zBzDX57+4@3S0JRnjiEy_F$BcDq=wHFpDa)0zzh63_}&TL*Hj&t;^*7s13WkeJAU z$pZIKudejt>^+4xKac*@WD;xOS3VJ%646lif8k;Vlgr+5j&KTBqhV;{LX~DH+yc2& zNyDMf+ASh2C{rL={d&?Y%x=!8m8ELsVzshFZLGi$Xuy_5f!z~ffs(vNRQRbNuBKl8 zxxeI?60Rl$MdZc4bZkj{a>)n|kqz~{HWNB9ab2IM1S|komO1wfOCMPAP z4=+_;KB46p)2I4OkJok?R`*rdb;XOe@fQW0x#}xm@R^L6Al`A|JD>eW?-WjWC*s0K z6zT#-RrQs?uwq*l77zP@UL8{(uHqf531Jnum##X}Bw1NcVkwFu$6grK6N?Zx^4BjA z$OVd!%pA}iiF|Q4P2ADHT z)b_IP$cRWz1UeK_pP(7)TOEM5s(TSIj&BcKgk9-bEVsdrpk1qXbRl8q{`4IpFYu*) z@u{GTtBp@}FfkQ@7Iyz=0#&c2y>6MrAO3;KWZc`}9{=#O|3!er2sP>=9JcZYdvc2Y z0y|;2JQIa9{z6I@CqAlAlCO_$kxX(9oio@80Q!>7Q96=K*oqG=QL7w?y;$WmaAjGI z6gwo!Bq+wyze4P(riTd16dBuw?m!(LemO#~L9ZOK8zWXWvR0YTDw|o2RkNv@^$E1G zeH+OyA}hiJ&GxcZ@QYr+!kb~HAG5%k$Ox^?0~ zO+aA60ws(m3K1D(d9!BSu32~ZL$Dp5(D5t@YGDDa1EZytJgICHhoeC{EcIC&au3V7 z0oy7stWs8{YZd3GX!9otvro3!%5p+zPvXGYbRE=2$FyX&>$6432F~Y*IMCV<&z{9w z-Z5jYB0FEKtL>8Up?Y#`pMASIT9c2~L52KVz%ghwRoq%Gj9F@$`SZAV1d2EO;&`sQ z?*X;FKmemV_}TB!QJFPbV(7a zKLRXHL1h%XU{t>F-iP|YTNL|hla1xv1~c9fQsyJ@#SD>S8RRJL9C(3D2eag%=t#CQ z57K4$@`=CPhBYZO@X7J$h($h(kB=t~M7I@~WLxxe1tx8IAzzLSt(N#_3sa=h1ddc* z#iGO(XGNUaa+Fbc*DN~dyP2gT*=x=}7hRu+=Pf;D==SJPt6Yc)QcjUT%N=EikfN45 z2ks^lGI5Xvt=jTmFtevm0BJPh731NQ3Fh`rs#8K%1uX{9)H7vR1!JUcT#GyYCS-d& zN4n6b)!MG?yk@_jOJva`b^nt={>7bQkmoMR4089Xi#iS;I5i!}c8b_^a=D$6C(Lj1Zs9Z;5hME0G4OnC};F+>a1D3A($FuC^d86ssC7_&a z#V2pTC-S^1xs=GxopVPCNe2tSTK;$q(DvB~r&&>ekpc(?V7&zYZ6?BPCl_AFD<)H? zt^#qf!qs+@S_PN3#OX;8-5=gT=oq*mvoZtev5&u6fk=;isBk+vhw7e<_0D`Bz9mee zYMW}7rxtf2`jssz;eZSH4(jJQ{!QZ@B&GP?yhbw~q1xzhbt;8~z~lZh#1lxrbMMFA zIsOmc5z`7)SLgVR;=S55+znaso5=_@1r7DnUK7VN&M^VUVB_Avc<{9pzZLHMG5msu*OF0n!~6uqb=PhK=rWVIRE)oqof=C5M!;CZ=~pF&A>-#ZOP}JdyW*I%d4K_ z9~O-2wL+!H+x=MakP-E*neI|(MVoG$#Mk;KhJvexJB!z5`N)rz!eS2c^|iQ~p^*a{ zgl}rR3_9LtA{$<-TFnuYsm#__M&1l`j5j!L3^Z;&gJ|k>ns-K==5cYFCm9<2qH>%8 zyNq*%mAFA`-aXp3Lfl(E3sW{WY>%O19A&EB!yo*E*z^YoY3eS`dw~7sV^~vAx)y83 z!}&UV2vyegV*PbT5I5?0yzT^gzGK7c`Y`2Gysn>8CKnSiM@*~8$BYW|ufo$-O{+kS z@EYf+zT>s3w4xfrEo!j}0YmpJ|C)DL-_iE$&G)RjPq|U^K8t;+TyG3IX1L=&M|DwB zkM~(z-aP3*-XJjtpU%rX<#9|N_K7)SASEH#(77G$7-7btV2lcz2#%1rl30qPJbEQf zRoL(s;><=n+P|CJB5DXtu@SyXyl@>OY+@*3iAb0gJy;mjRu=L*)@Ekxgb6ERhGb%y zcwj3AdDQ;c6=uVI$H8)$NzIAoTBDXRcFA61ByyA{f+(_g{E38O7n3~Id3No$WD=RD z)>w7q=70~gt|A`bF@GS$zp4wryq`{b2f-B88c8=n<;WgXJ2fk?AUihgq==1d_JZT~ zj-7CIr#&Y2HfzhH!mio*nF)5yZ!AK)<~)=RU^~iX2*r-Uqw}EMz+P3m2!^zjIcoJ= z(=L&7S#@68A95x%$(%dif^VP!hR>QNxlSV4(tQ`hi_2W0nf9@rb}#%wYbys`*v3Vwr1Eq=1(7m8k8xxhoO7I_oH4( zir#ON0%)1$M}ZRC8n0eu$w(JXtB1&MwlKsVQpvj^h@0h)#94BSF6K6@C&Hmzf%SE+~BNm-EWl0YF zfTCMWUHW9!(%2!jI;q@mf4P(OqJ7NjW%dpXez8oRizAI(VzuqbEZu8cs#hnUFe}O7 z{bqUN(!}SV#P{JnsM_pJ*js6#Tz6N$<6hQ%{)Y&{J&1O^KLByx3>3VLv+$7TclO6>$OP39ZI?`K z5!{r@M3)!e3Zr~H_NH3Lf%~cv^6nBHo>{zO(6>5i^QT~On!}P21p>M`x$#0>99)h^44N{s97V91@kkNm3ixq7N(HD+|9GmY51hLj=Dez*O z=c;J0F0rr_U0iIEEz#>t(Sug3DQxq&TK;OOk}M$!A-I(>PqVe<*9~haC_7tHgsg}N z!DGaJnMVW;MI_V@72akpGi_J0BRTbnT!F@)i!TyZsqh6a6s1T#SwtW&7nY+7#fx~h zbt?UyHEo0_UMv+aI?ha8r{rsCBD>mKt`te+4elFXo?`b4JF_9M0JMv}GM=DGp z3QNE!u`!rO{^#`CbuiM)N|-sFR{NapukiDQc0>UmFG-#u5Td90x&HOhjFqi%#Ds?( z)e^dl&?*E;b(v#x05%MAF`(5+>u|nWXPaM*tB&OrU-SC~zrS$u%9A_(1XRSN&Y=}K z#=>K;BHso2X{nJcepr+#rlfFD?w#la>q1o0fVQS6>M`MtpHkdx$wE|01pM5ir$A(2 z%L+mIBtVuTqo=_^Y?hia^V4do>EwVYZx$A zKFJ^Cr}loRpUUq4>>JJedxudG#4&VskRKRNe+tqOcrRj`SR@6>CX;fgi@y6}q~o_? z*cv%kte~yX&x8lfx!OxuF6mcjaYU~-VUVJb|5q4TE9Cd<#k}-5t)j{vpI95Oi?!k) zd(%$&CS)LqlRW8@S&bY!)Rxni-H9Ms^%ASu5<7I#w`DxZ7Hu0cE0Qb*6#4=wJNMJIz&RPdAsqbIY2TD+mo<9Pa=NSaeJZa;`4bd2 zvFAn@jv_*SISza|nm`pob876Q5mp%et-T0j1rAv_pziXagVxN&VU z$SoKLkg}U17WO-KZf!g(y5HJ2J$lf#{B#${UDy(6m<}Z2Bs!!WOn30O=pfAMLK8x_ zF0=J5%fkrV%P_db=>fWQ_ARrX?uwh?5!_&6K4r9u%PE+%%Q(P^n}cv0iZ8Lk4dj9> z>k9G_B6gW8z9g@23MJ&>#<*`zVm98C>?$oMJK_bZE+tD-Q<6~^7J*xsVJ^Ucy&qtPd${LV-+x8;vJddN1 zTc-#&hS9>);l@hd?Sq1FO#bJ=%1GWMgO4R#abDYZ4r_o4;uyM4UjZv?|j4U0^n zN}+*!Gh<{mA%1xAo2RbY;xzDHm3aswJ~6?8dEQ-9is|pJDNAJk5*c>3Unnm%Ux7h0 z@B|VMUiCerx`=2t4P(6=?a3(us>bK!jATNc4P{SwkPQ!-kZaj@-C5Q z5d2&6V_4?16U+QbcDl^j<7HM%D)ScFOvg+ZQvCy`!M z4@^9fTp{C zM|&Y`@*s5~2;z?Rg$P$`k4bb>q!WtWDB-h6Q}VMws&+>2wwe-K;a+lOnG$EAjLVs? z@HSH`hO>nN`eA)5_Go+2TxAO6%634m-rGzmED0?YFiS4p5VjR$v&X(ED#*dC--Zi| zWC1d@^sPVQH>_WYQ>IoES>lSO^R%9fzGd`EPiNqa=n@*ek$YQe%yH?jQ-4r&!r zzy0MqL4ew7-f@V6+WtYhB#)dOuA^9Fq7;Zrv;o7Y@jg&KP0GPU@`;z zw|^sDM#m3GCUBUQ1(`?JB34ui4@@<3EP&cjCBt+64FeJ^R@+jnri9>zpIT@&p-!On zKKE;AjAF1OvV-}6Bh|iwRiYq}4_PYQ+gz_W^0Q6tQ{CJ0+OuDA6lI$rAAC{fsP*fs zoWRh`g#<0Q9@C_>1aS%CUXVL$Vg{8B!!(u&T@N@dCeNJE?lAa5QzuWOw;mse^XJIU%5QxEA3}5kwKvDsDjcy7ldcrMx zDI7I^uy3KQ4E0u+#RT-9;|;GWL|_Ha@8!)QqZk(JgFoL0AeIseK!~M*Wyo8N^1uU z3fVd4D?_JfL)1WfU1*BO``sP;Vmyuco5rZ+Gu0xlpBLu%%E$K009 zZmrxEN`F|bd9e6R=<3X9sa2UC-7;oYP%{o+R-T5fgQj)nc`j)=#+0E(m;@e+f*=wb zp^gAw#9$`iZTNZA31uu(;Ohkt;;RTDzETu;E{TZF9Z%q@Dqo-e&Scy5Uy9RRXR~)~ zG*kSAo*epe*F~%>x#m~TLM}0o)fCsxVehC&=gTI-Qx9bPuLP`s!rNz<12?u}y)smM zs5VU$=D_-<=aAfLViUy3VN-%2ILUtki%${V~U{a zyB6K4&~jd>Vr|dQ^GYH9WPwo9+2k8BpM)rKsF;RtZ-bH?o;C>tBp|u%s4Go4fD1*6 zlE^jKQFJ*Q0*MD(iWbKp(Q|BRv@MCy>R2R^tv07gzC(!8rNxJ$w_C9y`&YUsq7a%_ zT6c7zwM8wO0UOp+?K#ml5V)iuaAo%=k(*1UZ79WF5eJDwutn^gV2ql9&7a69Aqpaz z72uw+n)!+-{-T8ELbc;ZA<)3}K-pu5War18@aAFkc#sTmtaqOguqKe}-Di*nk`rMD zHw8DXH$P12%;#ifGO0dKddJe@CZ6KB=+PDmResVdjX#0~5O?vTz(X0JDFky8gTm5QRCrH%0UAEgLS zSiUwe9yXeP7qUkW!eI0Xdqeb5XWeTP7UA4zwB*g9@s`xQXH+meWpYbi7@FLYJJT8e z@07{?>iC~B?*3TDwIZWaWTgMxm(KifICBy`Ba7lo6=3c5d;xO!0@d&3O6oX zJa>)#vl)XjMDZ}c`X+K0%wc=_MZ8)eMF?(z&rL_3bfLkb;S7qtS^s_>&B|POaO5&+ zUYDOgKLQQ%x{OE_;{E5v`?FBh*lWD`^oRJS1K)I*&~uGHKyNyXGd1z%19Q_xY$)jb z?gM=seusceKSS?GVZ$=^r>WF9zuFBqqLjk986Gt_lA6e)lA(l|CRlG~etl(>G+cFm z&k!n0P)qJ&m8;`rWwr6LiuC7(PyPNy3b|oJE5Gey7)8;y0@%m2nvA%}#>Az9%H;|? zjsoN*@nbv2yS!}m+=qOUxSjz42FM-0O_ zqyY$ylleaRLqZ^tr;bPcVHE{VwP>6#jSg;PUW`;(JnSphwd$u;WlSyQSul_+?9$2+ zx%Fv&>}ovee;Tg$@s5&dl z`?ZUDBui~`HM+Oi?6F>AXBGpi`Z`=)@b(LISHfmE%;&5VcAgmJhB-)4j#0I$hicPN zE=Y}{dC$bp`r}~^b)57LWzb&vw=9VBD)3o1-Ap*IX^7TU8T{9qCxN_vChk2$>E$<% z!^GMgC_+-G!8A^Qy@O?LD`-Tw?ReCBb7jlj${MZG=0}U| z?j02D>KNbks|$v?r{(bvb@JWfH+EkjZ`U&sGx~3zL15gIJ}JPC;kWYH@LPRzAKE@5 z-ztgTFAEj&Ngqlk#=(FXORDj8m_+Vy3W4Da3D_MTlCNRPLVXdxy?slK%>!DoC$?RLn3-h{(WUkl#tB-1U6syMK5Y zRqJd*6&Umczx@#3_+fhYWNkJzH%(N6s3xE_M)5oC!W{v*lFi1DDh=t8X>3OWPK5st zp8^U)fYsPu`2Iw8&S2!bFz3_uUC<-hXsH-A#_a`IlsHmoJ)M0}7XvW9(2nwo?P8(H z(U9GaIRSvbv*}XU0WZ5pZ)5%UY zkGD>6vSB_D%X)I~bv%>&LMxt0+Dy@V9fm7e)$iVD2F6eLe*9>*!NCY!ZS(Qe_y`te zaNT4ylD=8k<W)e&Zmtp9-bE}>lWAeW!Nd~R4zgWF6jauycp7~kQa!7{I% zSmxh8qB1YT6$(X)Y!6eRcT=I^^z3UzdlfWkSF8J#4A7%HY$FqaeOUw-ErnE<5c9=Z z9>Vm7Q})=`DK1ezD*s-;(hpfxm?iuAbplTvv&Zhr5&*KES?G7+8CBa(*gI|)FM&AC zgM9CJ<~fiaDNw_M+%`*?$ivw54kM6=sthHv(TwIilBIXaQNxOO^F9YUGX&Kdo7&)1 z8(e(lA5sQ-?H7McHiCmFymt_z$ce>4+?}~O=)#@`$Ig{2;q2dFc%9ljFXY$HC=9WJt zKCNxDLTRtJ8b%tHE(Ek%?nE@J@ohwOo4@@`|3x$HOzDzEfagZ2XI>4i(u>~zWMjME^ME5zZBpHx1gWViQg zs~`eGkF)Z!;x|3}6*}=Z8{thP&u@YuwQfkQ!>}l7b#n8=(N5RLHEJtSqju*~w|`8j zU{zK&B|0)w$%fYww?s#r!rvo0a+#7#Rym2;(UDnjZR2n~H99g|vA;fsrM30rT!5<3 zj-fh*+PLau%a@52A=`|N&_nBo{?_MOzGEd)JB#4#R>Ry`;HS}Ox&Dd6f=Oqc!oKJ>=?e=IYtNqew$|AcEH|81< zRn3Zpj{cAeO=3l834gn&q@QgrA&DF3MZWM8N*qR*G#eBw;0CYyC*@06{{Q({`KL#W z@@q=?%P-)yd>xFcX452`cPk1UN*5Xm0xLHexDxT&Z0Z)YRrv1T_05iT&%(O%vHRUn z(bYesm?W8sH;m9dReYPM*anMJv&OLE#BUABE)g^+eN zyYLz%7K7h>?T9g+nWL!P&{)_rP}xy@$lX}4whbB>=VD_}!>53P+G7t8pRfvarIkP=4+I!h=~R^yXoi_n3%k?-HQcL)kEr3}=tuLFd(dzZ z?G4qsGd*4j1CGH?CQA`({emvl%RO(w=A(xDVRPDi7xSKRd!@}5^xhHQxqlTRSA1pN z1#!HE8sZxW#=T#;mQB~{23PsD7(Vp}#Tk~Jo(?Lx^Sx)37m=V1^>g+7)-uM|3hd7gFIU+h5>CGVc^n@nar#arcP ztE`&yD>zpX>KDFd-R^)|-AkXi7GWrJf{0g1&kv|=@PSWI4~E)j!hVC6W!SqR{ULu) z^sN0>=!jycTD~t_{#2NdG2Zz09&GIyMr=KlL6D+M&%F`+>jSbQMF>z{BOPUWhqQW}=tOon+ zF<$j&SngrTb6UxbWDP73k;d~{&QFT>@#o=km)RaWhcXAzf*qFtEjUPOx)=W}1P#wY zwX#GUmqtw5Ca1m#M2$^0eUrrB|0`+foUF1$3r*6}$yczIlay@tl@Qn)VGmX|NAI`g zsT2?`+MU-^N$R;_UzS;3h~dzUupgVOTFK9eKr4`RD<)NzFoN&Mx164@*w~{btkPwF zvC@fP;o0b0n`<14lJA*)C!QO!NAroQQv?t}*9VYKiWKmFpPK3I%0Xm2p|?o^jlUHg zYW)6a*BQ0O;fGeL4K`F|`CP_&Qy*Rk4ad6pqvun?#9O)U6TZY0L$pf(wQClg7K{(8 zEQ;Q@&_vLG;&|x3BGUvXzYxJw8$0nie))OY#BKyiT<&fya4J@H9V+EZLU@>)hyVHF zD@N$#OKqr!Eh|gdvl|v&tpT9NK*cq0vK-^!0Da>H1tU6IfCD>zCvm((h;z~FZ$ewc zK#(_`N~NFAL--_I7)R2_>9D!XaySJ@#Gt+7Jn^2r_7}ZJDAd5BDIf&&dXB2qDSO93 z@sQOWQN4TMvFhC$!iqHS9=}@m5^N`E9imnP)jq)g>$kcdxum!gRz(M@PkL4F6U=+$ zLLU&DjzS6%@Wp%8@GjspznpJUm8bPtdkM|L^O0N^4C%9+(5fahD}`$px}~E^B@eY8 znzzGG0Vs|Hb!8Az^9>9EjBW$nxfHvDrg~->Hk>ikmb^qr6e*tbz^LAsVMg(cj}!;^ z&9Eo@WucHTQoUmn$Q4Rl!Sdo^*g%2cQsic3%rJa&KU|_*jU1g&aTT9Sp&h|#`LB3p zSH!xFb3Ry3y(n zV{%#EZ8$;XOK!utX^%aIs&;(h_B#=>x6WqYiOc|yk2l@0;l|PAznWQoiCw>DKgPQ8 zrZ&Njn(}zZaAzI!>_^uIJQ${?%!Kc^z?-@ay>%YGLG%I<^P%oK$>Vpl{0uHFRW9Kz z;PE?KzRK!S0~kS2bYkE?Pz~FK8=1Xh3_r8qFQ%yIH1)#o_FEBZe&>Gj)m+Q07(?(C zYGjvZ|E6r*ijHTR*d@=I(8NoziTgzh^Cq>h%#Q|K(8nrk%a77ul`R7P6p0IhG^~q$ zWJcpAQX(d5q90k6+bB3XkWH_XoOyoJHQ;(;I#b5jQM{587Q9|r(skAq?D}ulDxQ~X zMKvUyx7(s0SuhyLkeHc6kdHqyirR^R*Z!vKVnz(?flEU+LfYa+PiJ7K;2rn2dgZ3* zwtQ>rd{*ALo0>tm*nXC9<74j=*r-$m z?5o^fC2y*do2umXRdQXGd}o!6yU@>2)15u|+c%n_SY%_Po#@6;D^8zXz{+mO)JN{O zlqp2HB4(tgiL!Wh-m7mkCtiQkcf*y6Vr`{IpX2}P)VCLlABn7Pzmg? z+BU>rIEIJnL(qkt?JyujydJS4PYiTTsC1psH9vmX!+ba725vc*B?tb1Rt;?g-iUrY zXVkW&{i$L@4N;xcN}eF2szvbD*XS+fH>e%C$|xJi;=h@xT+R;bi}<%FkLvBW$6AH3 z8cmtynJ8sUM=;_k(NwO%>nz%v1#-40`Eb3woC57GI49p)Bi|4`d%1j7jcng>_AfOi zlLEvkrJ56;XWmqg30>k64Rm=WUIq{hMoO%p6qJq=OT;CVoLIEi0)G}H<$@admpjgW zv=S!7^crO@<;Z$gn8d)PRHIFe^EJ-e9wu^i735?>s_jN|W>laIe2MQguf zz}fH+6dG-J;u%Rsd)+9GBdH}Hy*0Ui_au$h%$d}`5uQBt@uU1dzyHro0M7AmLj~B) ze@_?uYo3~LfZzVsCm-N{Gi7A|s*znZc!Zdj$?f>);=j_4Sw=g)eBLPdwn^<6esg?8 z-c2|43O->(pzgtwpJY6;YUrOEkBsm=pZM;3AO0(bCu=4&E@#+iT-#qWjU#!!8R5go z+*1Nx=~85X>>Vh@VH8@0hwL3+B(O3dP*L)uwS^*fs1^7cWS;oHy{+p487vmT=XTFg z*%k~E)5u@?OiD*Ev5qhn2-3AMz1(Y{iGcvW2;Ffag=>QuOU+$msmX3bGfORocYb1s zhSYE44GLqw!!~lHeX*~jStTA`f{+C4W^dOYvT8*}m7d+(6Z;nY!Q-{qGjIVc;?JMO zr$66KzkBHSCA8Z7@<$`YZ3z$Epi#G|B5!+wDy%MX=M!3xG?>91NhI)J2=3 zT3*5b^MY>pxyG{bEuF|OZj5bb>>U_L8@LR63?Ux1x-+XF758-ECAH6Ryh6vQXxk8~ zrDdm>q0k^?Sj+xOx@1(GirtZL@~>dai?s4Gf7<>*;t!s+;M<7;4BjPQ_Oa(Segd8+ zP6HE;u2;qS02-~23t5NxOMgzK`@WR+U?=bZ@C9IDpcUjPB^+7I*Nu$`=0L7MmHlEv zXZhwpA1Q|fS+gO8_x z>|5P%51Z~4pQ*6v zq_s#v93ZlpSWw)Uo|+Delr}Aa^Iq3=pQI_^w)gqH|KIOlCCRzZ{c&B_{dL{feSKu3 z{laY+Jc1wRi{aMWq3qI9LYz66+gx3WjU2v|`)8=~kmbNt-7 z05L$$zc9biM33x7TCs27H-@O+c@-_g`^l-v4MU`tl%Xk5qBEw%9?QdjCw6h&_}IiQ z-ZYf7i{Ak4e)nx{4_?Ce;0`sud;jR8FW9}&)e34%SppkOdW>ebOuACJ@$Cr~WW7~c zagKJ1km80~R%&ilk}kmS9ZLeL|Fa~ZuGB8TEy^#(E_(TG(JsFQ9mPC{e~miIzXC=M zFgfv5{zj?bskD~`_g%;*ZCABD?bpX9^GT~NlKJU)=GKYK{5-BcKrWxikKzNaK5@u_ zEA9gV9HA^^OA@8?+$DfKpeY3c1!6jk4Fl`PLS zwx**Gf+=k&6yb#w=J6sb(2$7=(8Ai5K)0nBV`;|LwbDVu5*^cQ<)gkv#xNi3XCC&u zHJKPj%Zq}m@r2-t{SGrUT2MAJ@4rzt5|gQJ7Qp;Lrh`v=4{QrlTuMzH4APpY{P>zg z2IhqGvLKr_^MPBPiw+pRj}@$&&N`?H(`Kd*%+_hpBb7$PDeZ0#o)sB4Gi3!7@kz88 z?UHGONfWsZpzE>ryQgdjyt;J;Mq^#Y0#DB%_mo2M@3z1%{~VXny&TwQM+P%^!j zrq2%GTRdm&$KxgC7QLoqn3TTCl4bW@a@e7QkGF zckBn-Qc<37LbN3dP?NoiSqubV@N(B8ALlh{S^4f~D~%XI{aZ}Rf;qX$t9)%GMp2hM zEIrU0?dlIMfe{Cbs%1kehNwbS0=CHtSh(?y$f~s*x(`^)R|sRt;zrNkS?UioTupr& z3ufxLj~C8yF4NRYVLWtodwpw|5EwJ8y_@;70HPIck9m8OF}Qrnc*lM$1~9nNr z%!6uI8xdf2R%|AU8W}yYc8rlc`r#F7;8*ypTNHR5!PLncOW@0AXq>W=H=^YC=yW{H zfQ75cb9)l@IrF5w^HHSS%mnB?lh0JO7?18EE_P_XNVF4EutD0)w`9Rv-zsRnf$V~Ijza%Gq zE;r>sApr`RCJJT4d%?W(Hq+d<-# zn@(`xF+5lzLI#f0#;cbCHErFeo>K~cLUH}>vvmjkgBXL{Q~w<5bu=7IN0JM+5f3Lb zc|g6Aa!c3Zfk3Fo(66XqaAFF64(SZ)tSIDs2iTL(>t$&~mZI<#!x=AHf;EH6=5uJ3 zqXqh+SUw$OI2bkfGV$)#q=n={RvIzkgv zRDE@R!^Z@<(u6LlDlHh{4C9lTC_b5m;*(i0L&(M4;0g-`R1(x!8JR;GD3wf-TR@q3|Bc z)yr@V@Le4&Uoc$XQDiKUG6O9}lazs88l{B4&oWaaBXH|rjI6z7jAl zSq43*dB4d)zXtrZp8xPR4xMqL#!Odbn#b%|zrS{3kHF?J{3O?uc3Uc6A*3Ds?Y zLx-7s;svcQLhc5Oze5v7;F8l6~I{oYVX2?7(JQo0rPY*dJgbQb@@uEZp%o zn0ji*8J(`XU%G~kT|M5RqEFQ3JQ8hBVRhE4-?yJxml15y%T74uL?Z^~j|Rk;vBbW6 z?e8Nnt@N;PsEbgn_H+);(ZJKWG*x$G!&h9)z8HJ>MNC1HxL^n7RCP>eJ7nK&e&P-J z`&b4=3^Z(>&gKngmKNQcn)t;V&NGCd3h)U%(cym>sTYTEW{vym$v zCR7AhS0_27K({0?j|;r4#YlQTXnohH^Ln^hS9Vu->rC>0B%x0_d!IBBzB3;2tG=Vf z_|-HiCs1@r^A+`hmNc_u?P!_mbvnv$7ERYD%4kh$zKGsYd^2$YItWZ+tlq$x#E21} z;@&%hukS+k=2o3lqzw)B(6}n6vyDTXWtz=4MUk_4Vbd^tRk@T?=xB>Joxsz$>F9VY zP-wCrw?DrrH2;Uw`kVUjx<<#+U&q~rBol3yyze9@drFZ3uRG;*f13RDNXpR=53Px7 zd3$-nAwZ)6y(J#M3&zw^99WkHdW74hlc)@*%EjRlA*6%l&UqY`yKvngI^ioZp>?_t zDls-1g5q&F_YLs{d zSIltBeiMefeM+;wmPsm-W$wa-(Sy=~SKv)O>~?EeS)NN4Ey_@Y%Nk-n3;~W&6l^NH zBPVFp+iNWA?_f2t;5-XC(F(51*Su(*+F~fn!MiI%FuTmH+(4~KyMPYGVpN)?N->u@ z>+npJ`vG%o?jq4Q-8HMTLXfOoP9V4M)vi{_yEh9p3U2i8?FPuyzqq|@h)bwgT@>HU zIzn~&Y&gj*@O+FvUmbrw&Yx!jec?&rPpP&M2c9M&We^)51(>86D7gnHhad%rrpZQ@ zp_C$~w7Sq6m}z3NChTk_i`QdQ8@~)h)?CMRaMY<6GTm`%#I55kNzm zTww70QKk0`d6b*u)&MheBaR-T}4 zl+(~(AZm9hOCCOr=19o8HZD1%Lgqclnu^wy%iAGpB8IxwV)W&43N(v-ia`Nr6Za(*Odm5_pIXEZKe35GfSBKG7P9$1Wwk z@~IQ;d-?D{j2bJ?aK8vsNT!W+nDA2>H(26cXmts5rM$P_ZBpKRP_tFKmk2-(Jv9Hd zB&K)`MI+~%K3%k?@5O8SuBfVk=rmHRj7xy*fFGB}a7h^1gcBxS)M7$zbPC2Z@5;bM zqs?k?tFIvbtyQqz%p|V`r_7xvP)~tZ{mbK#-2$wH(kG{wS`DE z@N<%C?80eAO4#Jipq@GM!;ai~R#{kY*i$b%Pr%QjdRhDw-V{JmpLqPeKkfc;yLBFcCPzwaOofEcaXFXkhLyu7R32>s5~Iq^97HSHTpzFE?$7T#Hvy>c>I9HH!XoBF^&SV#evmCy>2w1FCQ?4Rjj< z$6|r*yhvr>)>Pjm$@yO6`EHE-1;f{gL#~FZDR3I0x3Yi8i`M4;XxvO=mX7O<{F;fw zfo=<)iIBU=1rXQXf?}`m335G2eA;6ZeA-vgBMRO`bI)NfY&s1LTXPP;e()dY4SF&& zw&eek8GGz&7**2Jqf84N)4L|KWv{E8E#pjB9-iHxxRw=N9A3zeN$DeMf`!bX68hu< z6FEP9adaZ*m!J;FTa~~SpEM}SKOc){w5+`XU-U$Uz%g@jh03-2h+U*&dwK?@(XlA- zk-iF^#^8s!s?k7|qwkxs`%fqMS$}SVH;0l`EMCBvD6l7~K+(W>oB?*j5h8E~k9TW< zY8Gppp4r6oU8#D0D!%djnMuHN!TAfzTPSJ67d-C`?tGlPdoHCN*9o;_0UIg;#@> zg%QQSqaX#ZO81jtZ7z$tmA|b3P*vYF4Rx>b$!4l288B3{Ub{FMu(#XdcsJ?;y~A!a zA%f%|tk3|vD(ny@jc|vN^eh0*_y2q30?Y+$pz1>M7T%ZKOw^4&=OFp|cr#Z*y_1?r zi?>qt+`r$-{%>EjmA!TUvX$e(1kL#vzm>>tCBZtLtqv%^@S}}X$Hyvpj5)wU%1USs zHuX#j0n7W(t^91qh(`4)l8aSz_M^!a&F7x-8dIQ>{mS3gz#xy}Sv_g0 z>|aAefY%cr2FD*CnOJxHRvH2;$Y&7qTfC&a($|WNh6Okaui7jGx`BbmVX#m6Sse}k zYiaAv0qXU9HZAap-dn|(wlY9|WU!P^VK6{}PnW}NShnKA-m1N@w{q4brd+czsk`!c zqhFye%L=E(I}95$Qg1!=(g;pH|MCl`o`ul6u(99WJJFaa&^zSD^%>G%T~3Y7<%1ot z38z6T$xWK5$wwJAId%CL%=U{cDJAz_bV<2w`4=uJOCH7B9_86(7dB$WM%Kq0Nli4; z-qns zV1OzJrr}QYe3+ohw!4za1a)O2jqaa3v=NN zuUrW*?!FL=+4tb26UfrBxg}_A4_42xVDoFJ`IU45z7%~g2P-YIGZt)hSegq0Z)9Pf zilDL26?7g}ZjWG4=)>sAd>UTQpu8XNkI`sbibe1!(QMSxTpAKeSB(Mh!sl}Y=!_d& zle?v3aGQ z_x7j&;=w4_dz9YS@hAlhWuT|XA{V>xW3jSp9F=8! z;YC8|%G@)D$@xy|cLi+cSh%hwyvTH3dMl>42HNs<;q=hmEg17$Y&p^$S|nh_i;SVW zTd{Jn71K=6qPg=uvWt0M$vX zlohGtlz;18s}97$_TiKH~@X-sTx zC$R?#I~urJB~6t5iunbY@`j+ZybAS0D`bB;w+H4UqF*eB*0teKLBoNyLhmB4q})MPU(W z;A1$4i47Fie0jnjK?`0k-%;&R*X1Zr1;$BjOqOC&TFJmYMmqLAt%-S}c&*|XC_~}k z9o1fs(!Oz=!oEpX^yJd_Q1=YJa>9m+v%>TlbT6<&6su#8a`ps13jFbH(J3uQhB)}B_2r5~ERP z2L?^XxO}fsMY8iHSMaetxbmI&0N@h05e1wGqxcfXA*3vz#~u9fh;ltWzQ!MqDLL@S zoFO|J#2z;XF*J6uc*GohnCw=w^}b8tGsTw~6rXNboZ8=nhqD26vWY>_Vq9|OAw#`A z^t^>XA13p?7?+%RxHT9(ZzW03@wws=53m-;=E6~r(vQ)t+0%6PBZC5@-JkzTK6`+e z%7Nn3>cDkq@h#<=yY}-vI;H^G#-M_`~rp6v?`s)RMivr7}+&q?)-=@>a#RI8q}vb)TfsdY&<}= z5)Wp51ppMOX%sxXYf)l{ee2;pi;vi~9^SDu@jbj#@zt;@4SC{yIjP!=j{qv@O77GG zSb!w=J(!d z!j?|lLHEF!4V_xTQA$AjDuJs75TF8X26)MX<~z#4M>TVrE1+fHB~YW3>51p?DlgJ& zZlO+kPkZB0Y1o+ZoBQCUB#>1`jVUm0Sv!MG@AwF<=Q_sFe2(q*kq3oe;xwu-1$J8k zpIQPfLW)~j94yVUA6!ST(IE%&-BnzKOp@OFgNv*#k6Sr%jKr>1F81nsC@$@^bw`$H z0^LZN{hhVjJyl%r%+<`uA|Go|ZeL4+Q$gO26-53>Y~fU1k$yt*hmpDYbq_`0(IhyU zyk&MvLf)b=>J#tsPYzGKGf#fkGBo^!FZe6ZAgf}|A%SeY9=k*?(1y8|IfofCM-A}{%T4sBtpiEB)KlSfizb~@IFte zIjCLDardV#cXEE5ldwn)bYVpp$nl_DcZ3}NRJr>^3^lD&U6!yTH|)r(XO#sggb(%9 zGf!c?;b3UmVauPJ>Sgg`NG`%*Rd492m;ED0Lw({gE{pdcua})lyzRL4t<>pO8D9+EoldS9v5t1;uj_|g;?uM5W0(5U&V9q`M z4s1V%$5Lgoj9u}{{y~6Uvx`d<>6A75pyT^VTmM5Tz0okx42j+g>KOD+R3O(W@j9do zx8f)~qYf-Uh=HS#1n&gAXv7{e@*ctHyJZEyzj)=cLTHqwxzP;Wt)v%{3yozH?(_59 z$s^3GUEmm?>3&B(a}-vfR}x1NEMEPNf(p7AA(w73NVj$4Dh13bJer^C28J}yZD3JF z4=7T=*~{F(n>v*$uX>XaBcAV3oL8Jqy5#xkWXEb<^hmzZ*nxy&esa+tg7pGz;)Bi* z0>qcQ+Hk5%|L3N#IOKMRdQi! zJ;w|#<(qHEZ)b0D2cH_G1sPp-x)kLGoJoRgkg3G7fH_CrPWCE0FVCDRmGShZ6p9eC3d>GD+x!ZNS%NJPn$w7H8o_)KPy?ylp ztB$gx0~KBCZ2U6%FGs~Q<;R?iGHr z4M5c%(-)NcbfTOvQLYs)8ox9j`<9y*%(U&Dj~#A)vL|Q?lI?L%Ts6QHuhlYP!9w65 zAFHHY1RBzPqI>0&%A-e!YF|P`uYF&$`vQJTZ8Aa<9Ex4aP$;S8o({W`|j64e-vxn|VKCh!jk!WHT3_b`8j%blGFa$8|$O#`nx@2T(QE^kf-}| zlebZDE5F=J{%vs0NreKD^uTm@mKPxBV2o>$u(0wLM${IwnKR2?THz-~{^t}jjrmOh z*p4uokxi{HF7gSB>I3sybW)T-4>o6^I2UDO4hwoBZZ_flcdUxksXy3DR>`}5OxF6Wx6y4q=IpIO&Pk+Jy5+>aWpM`UICj3&wlX!6~gipxm6p#m%rTo{A zokne}5MU4%qrl^S&=Vd<#&_@tiUCZ(MTTbKPQqoH#-pLIqMe~S2Dfr8P>cdWG+Q^xX_)>RCm(d1r}3m4L0zHgE6g7qj6< zRmf>!&Ovfsm<_)X9Gro$=`Dh?g0F~|t$?z(Q`sCUn*%@MWtX3Y!Z}*ueHiOz`PpNO zU{t8)P0#DNglXt}2^0DTjmO@Vo#=Yfmjyd$sQl=WaLo{gyAg*&$X3T9m*CIUm_AH8 zZbOtFWzJk!rZf2XR@z}V36~!|M#P4M#uR=$w+4f?fRFOQsZrQ)2VKf5F<_S{jSVTE z6rdTkG@}fT2#;1z#2mojtdY~Kw3@Y}i-~s>IOX+fija86riBc4MpF*M!8?*aNN*HrSv=3tmW1tF`6}>8X{& zwo3U5JhD5gT^Klal?Kt*!(-~eZgQhbQGlCZxFhSc20t3`V>QgTki$sAXcR<}EZSk5 zxaC#m>_a)S3p!%8OF8@=H6n|xL9t{fw&5}yP&~gz|FEq(X*p$dmMC}MLpIloJ?Jy{ z-3Lci{5JoR60ZkZ@M-s&;@dJ#>P=85D$77!uPWqd7qIU7CjO0j2v-1jbA) z-t|X)^k|%HkA}J|*s+^C2A`)ZXjn&fDQge#bz}#2uFiKeu4gUy;;+x*ox(2VvR`nY z*@?wwm(s!OPYsH@A}D>1v@o#+MiTT~>rR9o2{Dslum0ZN`cQf08`K1Of*_qYM>WP01uS8$ zKZ_aRTt{e`2rXF40sN76JTfD%2!}o(?mpFm!WpRqJLR5U4bu=}T0^vxzIqW%KjUp9 z8>J&meTdhYhS5amc~e|sLcByCtYLe7*Mwnn)hEYrP&bp~A>0g2T0HlG$GEL9tq14_ z(mQEcC_F_=KP(@W)x4f4VP`miGdA)Fbz3=Z5PgI%C*I;yR+}p?@1n}C!fVM;oD+jO~(a7jY9$lkPePM@ue`TUWe(~(24*6021tYA8I%JRX+itCPG#cL% z?~J+aWF>{E=z+2Jv>HDtcMRs!HGl+6c`$ewV~P(H0TcPhP&{_|rKk>T3U=W;BKA32 z&kT)*62X&;0G*b-&S-uh%qjf^9~xI!i!+9C?ALDy6@k zqBpchZnlk#l;>KE(zO6@LnetQzRYe~lgUF&ZAer90=Qf7v*Tklfk6wp^mZ?I`=HtM z5)oSRpwb;wX~G79y!U=l)0MUny0VxCpGIH$>v|m|7AFS~0FYMyPe7`BBP-!$3?M*V z7P_WD7y@ko=hRmbf`P*%_n%?ww)KyQ7Cray1&nxIXXIM7IY((OjHW0ZYZidthrmaQ zm^g$kw8ckJ<|A$fnD)xzPi1k7EIz>;xw7+V*|}AA{;+YzSJcl`b!kxQl*Q*yJ=@jq zHwXNkq-@-&&N>2ct|YZ%BnDpzOu8L?kCEu>hZc>W()bPH876Ta)IW)@xID(hS5)1Gg6if~qtO9aPN`WLF|?QjYpA;q@+y z0$%WmYC3?|0m4gdbvDu_teGn#fogdN|Eq#l*r;uL^^StfO5m@oursE}`eg|mlPqKZ z|A%6s<^Ls$=-K|`Gpd>}Tl?*m=b5bunhn9W4kb_NmMS9Ta3y_G46tF zrx!<0B_FI(R9%-hfh$cn9JOgU=g@&Pymaxt%1%tfC{4pjh;WVj#AaeaIip{QPj6dr z5k_LBWqm_lVkyYRHAys~b8&V+#x+Rg99AowNdkSwNpsso=fXEal5mfh-luQmrg4m!%3>S`5u;aC|Q>(er)i%uZSZ zk4Tz<9q3HhP8KC5u^D0l6B}a^zBu zw`CFbpMzD0b@nG59=e1!@k=>E*eHg>UJMIe&{^9jmXkt8E^ov!x6X&4I2%}|$8*JQm%B=q$`ho2 zmvl9X=0d+Y=drpqY$jydU*&Qqa=eJ{>FOay( zoAk=unL@QUpuwo+PDDaNzkw!RaV@>H*hQbYYad>*i+QLjmYpf(SMj`b&qjIk$)l>T z*qLqa`V|fJY`s`eRh20fUgLBjP?t&78eA2V;3}5N&0Qc)wVc zD%>cZ#P@UI#19>sf#J-dyYn&nx!4LRGnlggQwkv^lDhK@G+Hd>B1@IaIT~Di6YJ)( zz?-Y~0#ndvYS>!Q-=tjmC0H^~%F=PpRoS{>2bCR#Hg%EQmJiGkvM@Xecpur34F_8u zLO$Dqyi#_+8B-(Efh*``cPse7q~mP2qF!}I?cKZ?=&NpqW}bk5=p&`LO7PuQTxIkG zjsM{dmUozZX4Yh3Ev8`MD{||LS+I&UndAqI@X1;%JTaR+AOtE*stg%Rg`ly0rCi;S zC07aLM*u4AI^>%Y7@xY%*q9ReGItJ=B3;TlUeb~M?=)6XeW&v5F}k`kGzztvG@c2K z7{#(W*Fx?KZF{@A%|Gj5J=&RoUX$h8`ERu=0H=xW^6EbzfiGpxBC&sRc06Xm_GHwP zvxA3M9c;pVD)rK&2rTGp$mc}u1LvLpOS%=WK^k=pQ%W!ntMVfq*`L7fX;u34r&VBY zQ(;H1v?@2GpT+=v9WBBQVwpQ}3~o%P+YK#*0M&hGyzX)@YjXw5b4{*BeWNj0S)y#( zI8HhX4PT+=;J}y%4SKP)rTXOhS6P(^UXe|Ij&lHpQRUpBw(C&6yI-x#G<&ybzP?<6V0qHo3X1 ze^LDeHf8bZZ=xYaq~jtQ=Y8?jc4;)qR9eCC;dgW`N# zEQwcH3ghA?qOo%3%w&|ma&|Jnv;HN(P&cfO<|n&d4Oc;(%8hBKRn4bM!eovX2(|K#nsy=)9)?O_Yw zV9Rq&w!QXnvlm03_^OJRSbf!=U>O?6R70ldIMBR^={$r)vb= zz~R$ZW(r`V!6AS--V_bnnwP;iKPSb+`M2I+HLvE1tVdFreuNE0#gH!bq&i$uK^lDzp!{)hu2I%cY>lv5%|&##8c(ae z@$r=Hg=8Zpf8U5!JiwAD+iVQ(_t{|NxRjD=T z45?C!@-|Z5zlznZ4vH;s=JEm9m)wLVO-;b)Wc0ckGN3s;@W6}5$DqrkR_w7ifQ;~s zve~nciu>WpWqe2c(xl}Z*el7b{KQNVxdU%D;DJ%=UZo3Cv5!ANu%9>&?5a+MhrIMv(?s}LuS&y6=C_1C}=9jTv5 zW1NgwUKp8#$NQs`@Ypw+z$0yRa`)t21d%PKiy^Yf^gl%8OBX@po*R-8nK6OL$EPPD zk~tZXlnF%Uk4#2nW$Z#k`ZF$u$eS5)M7YNoJ_CI58BjlQ!xber9ovV8Rg|dE#gOts z!D)(zD#kJ}PP(gMCf{zaJ&l7Zicl`sK;wYzKJ!m^3GG_v-vQ*hNq~Iyd_b%mkS)Ur zK;Au_49NU{50E$<4RJW`;&LsM^3wIEliL5)^}Kz&D{Gj=+s>o5W7xKLQrkV_|4!Q- zgBE?#pxTx^s9quURn*BCA~jTt(q}%6*N)5|l|{04;IIKLV7@E*Q_#LYTQ3>gotZfr zpq7S9Xa#6Lg>cd){=zVhu&nq9dzvt?;?F0C`Cy|4mCm`RlNW%YvB|@280fQR3Jo_r zAjikr(kXnbeR?5wKe}+rOhQkY4(R!#tS*MQ5njrT*J*uj!D(}8()|B?5*F{DN?>u| zR5BK?&pAD5)?9NDG@cbSG$y9Ze+XZQ#tX@4ynG=VvoC_iz1JqAkws`&5Dn$zBs69c z8rk?$pr1MT^X%sdCb*M(>8B5W zswY&wLLXFqGBkOG{^Q7Gw5nl+E>6={=vB$H=IXSG75cm$`F%28J1^{!|IWCuM`Cm0 z>sAh)wB{uD&lQAQHsW^gXNg7O$3uyM_Za=m!k3lf(ZQCZ&NzUjhQa>7yaLguANno=A+@ zjh`iG@;&-V;*X}!667)dLsh+Q{PlY%h1bd}eY1cJ6owoHTq!8YMFH2uzVPeeN&A8& zXR%fw?H()%QDf*;AF-|lvUct`vd}1he=Az88Jlz7s zl2T=7G?EbzEm>N;Jx&3nQz#GVWYruU2E{B$M+w6p28XrL0{H^nhK8GQz#Jo!=v)4g z!2O;RiREdmMjt;iTLIztM0i*O!4JS4ioPsOm_s-ZvBI z;zgRp?nFx@Ax=1L1G@jzKiyGD5s}9)rrmtvT#KqysN3@K*JxzG;XXqYP!>^$dpJhN z`{v+3t-3A|8TmW`VZ7!?lWQjJ^3-W@frl;L$l1uhXe54jZ_&Q9v~M0AB)swIR2{dM zz4sSz4sFdf$?4&ZTjGfxNR$^D!yC6kN=VCm4ByOyH-_}8(U81I2yc9zUSl!-_9}e4 z$cS%Eaa|R6lFKpZk!A7<(`1)p!p%{%;qFp>H?BvQQE$ShU|004sy4V*^~2IV zYZqQK?lSR2m-eNcGe=eJH%4KffdSD>EQ&K+%dzc8MtbsUue2}aRsx^r-lwRUK-@coo?|I&9*`Jq zn>+EAs%r%1%X&+^&~H=8EH#CVvJJ*ARXT>o!r8b?II?YfOYu@a*JrGd9ofuN&~>PJ zM$qA68?Qhf!=D=_TX{^$Smop9{e-Pvfft5kU!-gJvfs~4`1+_U}v0h4%MA{0PX9iak z0iAjvVNsyB39B1ojzaPX-D1^Ag4$$K4&qH_bD^>azCFqt@Ht_rm(UNRL8r~)`1m=g zq&!KTB{WX09e9=&*U6)8^R(pA=CVL{MdNvttO7EQNL5R+BMtGy6W2xgK$=<`sR^tS zbpLz^!uZ4Zbp_3t!3rO1v&h8@13gW4SHarPaa`ljd?J;Grm@iwc|JZeg(RdVA@rds z8Q`a&zY@6IbA2>PU#=t#Cm|lcY$L@tZT<7dO>C@DFZ%~QzM1MxN8b9lsUZaorf0>_ zR6A3>>4!%XNm06SHFseIa||npv%urw0S2S86q6-Ioi(go%MSZYY>~0&m_ZgX=(?xj z;OhP+c0j2I?xI*4GH*oNDfg>JsB5QzM?2&G1vyl*bev-U9_tfBh_3G%R5=WGy&c1D z5|6u}^&{}yJw{&EV-%`p2x0yj+9_%Ze@PkloJq=FPx)KQx^!}{|L-CErm-Q7AL{C6FF z)7TwBDyQ%m4gxON_!hL33P zT3W(?%cYAcOYhY80=GW*n>h=}n4Z-MJc^%*oy3TH1@;fy@>wt0y}bJ57`ObjG|a4j zx5?coc$MdVKz1)GEK#(Ou40aIm>{!U%C%?4)j)l@E>K^g)BGDk(L&qauKu>!ti}{v zWSsjR#%IaiC)dVUc8Z(@jh6^H8ePU-TSv10?Rf|@m7};?)ES%yKsuT*;7wKe2 zEfY7(4kHsEl^wt*9g!XR(B-5`bsQb87b-*f<0}3#Dc_t+s?*iLY4tgBFd8D8Wwh+vPy|b z-O`u9vMinCHjVHiN`x#y(YaGl9z1gn5xNB)Tc=J1FP52SqxYN`zLxXzV9*K zafj*5w@!#$Lig&h)hwAx3$BU1g1%AhqteHb>sT6V(rO^LgyW>QbSWz_sRi)7Fg+1$ z34J6qnv|5s$$}jN@&=Y@USjW!S8zbNV+pOcF19|Y*2l)lajQLE>tI?`Z9p8*nZ%3# zF~&8$vsFzib%AnpXjFx*P2Pxr%7DWZcA!zOJoEWkbp`tFo!FPG#7FGF_~2e302@-i z@gICtNJs<1llLn&+E1DT z82_<--hzB7yFGV-E|Lbn=kpw=wH#yUkOSU9TF|;+-7Ki8b8k{jpTWOW2j-x9G86Ua zw0atF&j@x6Vkh0{Q0`REk;iK^uy{s?2F(?M_Exc{#@QJ^E3@3wjc6LmOjHBKo0~<2 zeJkNDFfcp=tBGOkDESEidy&6k2k$wA@9G2drs{lG#vcvuVB9A$mI7r|FpCtId|@LQOBj_YdLw75MIi@2&9dgKwwK4M!rkt^szfHSk}Kt{gtU73Z7_ z(@0_?u&~nn*qBQ0vC53*&Yxq1-y&9K^vEqn+sHQY;m(_m0jVC@c+a={n;f0p(g}4| z1L;XNf7y1Zaq801lkIO5JX}40Xi-2-ZB-(sN6P09X{8)XzH_pD3;oogaip!gaf%E5 zyNl6a7pA(v>O__foxhq`a!5T9Dq&T|u0xU_ml|igV0DsR z0@hq=guxr|55Z0uMYCquYFD7XR7~Sa;-hu*X0fKcY&q^*sWD&`aR=+A&MlzjjNNqX zEn+Zi{ej&%9Se5CAJV=qDlH5;hfs~~e0~xz{u+j{N7}pT4_GC+ZkRKY+;V$}gFzyI zUf4SWyM^Mq<1*~X(qMCwcL(;2EQVxJ;a#S&en(tx&NCj=x)2yjstmhsKJuKt>tS0j z7Khh;jR89+4YEDKKVo6qp;Nz-X6j*#h{Gz{FGcO*@wNXMG01hXl?ix?>tg24Zy~2g zm6*Ghk;P=mKn;99gOrHd6_3tsvLZ>+10P2XO%~-g*u5L|9@rTkIYT?@Rg_(BvheQ~ zD}4vLbACAt-(@^*no);L*?iqTU{%o++%ZC(kOKSDG|W!kdV`Miz_F;k)VlT(kFs8+ zP0cjXTaoEhGn+q5?O9i_zLoKc@r5r{dH&p}>TSr$!Aph6IDuDd-k$2)4aKM(xzxnL zETXTz5+iyd;qTDvj$E3RcreMO*;+0OR!P5YYF~*Jr6-H9bwTss6ptH?9A_%yRU zlT;v>$0()EcI1>qgc4F}%q_tU&>g7(j-k*0qFu^(f#BwNWDkzAj$$Nz=XDi40neFL^>{mK;^Fji7kHid>M&FaN4JSW2| zOyLv3%8Kv`A$%gd0xiX_!XMfAk%b>t{6Gu$6}kA4gCF_$fgUnf6yiq#e$2yzp85%wG=?!#rdkNUkzOpRxy;CMA+kZ~-n~XjK^yfEt0Io#Hl#anDcP2}~%g#Y_ z=kxkW(Em)YL0^u-uSFKL#+`RFdUi0nl<>we70p$ZgB!&l|lHZt%QS(RDHdFU@_ zsTpR@DD#`(0eR6?}pa0VWDez}dgG1HH_Lexvpm;oKkB=>!;Te6 zR{*D8N<4YxX!9|dq)c>wpK7P-a3L?3-F#vpIb<*dSrrVnTsdz!pj z)w<$t1RzcJS1Xor9_=SU>{qdWmAUI4a&5etMpq_!V`0+^Hy`3EMNjN;4vw7c)n!(U>;1^laZr+(uzv|p_Y+`U?7 zqafF-$Q6#5Wf!x3W|y*68Ry9q=h|P0L5Yhn+)tqrRM5jfR5{TB)IuRSlPXwU$=p*8 z00Q9CV2gOiNt)m?cfO99{H|nRCWC@@7VSCE{Boe0`GpWB2j_()LvUUnclD%7)rviz zY}}`4z(yLn&^(FlX}g7ea5SCOED!VvN7LaWFrLz8I+`9AbUK(pN23y}7xodbBM28+0SS-|bq5ZsJr~Gu3=ify6t5;Cuq-tg1CrHYJec~Rv z2tIM@96$i;Ywb_^{~G>wEfZI*)Rg0JBSwc{CxT)uTo-dGh8f&YUCKj$FsW}_-fcq9 zCaEzPj+hcgc1aH<;P*%H2GAB`u&jkHBj<_VMP|4NlF+6swEV>w&z>4|sF55(d-XLt`NWn#F4=M6(dgt$ZX* z8TwnsN(8M@Im(xAXEg=#)NmSe7E(JfGry=O z(mB}TFuF`XuO}|$Jz>zU*Fw+}H3e+n+&#fky_{lxc$8M5!r;6QOT%fQ^uT9=*2*IE z7b9EH^N-e&3wxrEdZJ6~38<&5pZ5g-+jF%-FlmbTNyxuy-}die%^;j2kec4ME}hDFq95e zVs9+Eus7nTrxM!q-tHKrz)?1x;Z*bk zDqRv5pAU&!LVLq?Tf*YDkhm3pZiVw~z@L}G-j!=|VO8$(LBk}l<^KRctb}AYPXK^JOTE1hd=yodFk0PJ-6=?u zYNXKyBSeWB4JaDa#0Cw9PQsst4j~B$0aVCf#4$n@L`?@`rIF%N4D-iX$DN&Vzjb!q z(S15Qvw))m2{0rGivb-?3~1DRTG@_HJ4EO}ul3G3Rh^v6UEDqhx46cSHYSl_j%xhV${&B|9gL62&35{8*`KElO z-W0ck>3Y+E6;#}GFGB<_UAN3`o+|KGR>3O&gdDq0Z$itM1zy;2y^iMqF|XcaSTW=E z*Wbj+2R+-4T6XqVZMI_>`>v#Vw^=DqAP2V2z!7;oE1RPWE&7tDF-3{pPC^-7IL98J zgX$WxThMN2bLXfF9D@0pBlfZ7+>`~gRGQX2tekww6^nE#xyTDsk?!lzD&A#PKCL1_ z;Z9cWL$@lPc0hBj!UK^k*x9*Muq@rVAQo?rcM=28iT2+doqpR2UY7$sb#``flwx#M zw{%q>MryH2&sM%wx+hh7wlbo0=-sZ0&aUeAuIl4h`u>sM=DY3_(7K$XbK>wSHYkcIkwufVRl(%<;(I=|$ zmK}+bH}iRoVJ~+oahP~sLpf)rOIPj&;!hwJPHr>``)0eox@rCG3&*t zsjOl_FhN-peY-EOmHgXvP*yGYt~?0}U-rr0PPH0zCl$Rs^;t+|u*S;spsvp9(-zET z(MOYL`b0^x6ULbW)FAT%ny^qNp20iV79ZYSEi{Xg$i;H{DM z%~me2PsjRz&7zt@naH0mhx)R$2~^()DAI)bJ`nmmXt|)`UHKtsZ)bJCWpKRt&kid# zG#u-an2&mh5%BGgdf@Aj`J*1?A?%WMaXwS?+8@n=pDHhYb1YzY-{zsR76kT=Z2qrD zv=y>b*>byVxsNPoW0|p+w5HA)s?O?8tH!Zt553y3Q~yjR(|dQMFp%-(r3WzVotBoglH{BK-b;+@sK)N;8N?JZXKSTEI=e2~=Z zetL5XbLK+M%UbhU#HA1W^>=JX!^}Ik^u~Q z?6v_6{ti#j5m!b;!{FkH2M+Gz)R6&e2yP;ZNl+sa@WuIeeH$aaeGl73?;I}bda~rQ zqTai{jeOp|#uVfRhK6fIn=THeLNuaQuZ3Fm)RBLr)Lt9VE@=m9Ars`|cEm?$xoZRx z0si=G-1D+Xj&>Cr%Nj+N`95O)1h(XT0T_7P8;xa~L^kt1B(MUu08@vEseaTk>Op6N!1#9!_da9$#Y42m@_XFn}TDP1GRC^kJpVtBp>6b0! zX3Q4I&OqN0`eu=3uwvMqwEf#oWH ztz$l31=gw)#y<^b=yZ@cmX-L~La{Wk5Ex|G^#Yg7ialDWN2@-r1v_Gr7VNB7L$pdRDvjnFa4@Rm zQ9vn+&YNcJCg^RpzHp9lYq8be?TE|8OV-uy?Wija>%}Wj+oXRQ(xdlV)!jkWl~Z-x zCDru=t?CNCtGa)fh7(F59gt*Na`6Q?W4c;ccU>j$1+@-XvUUA;NNBD%ArkqC)-IU( zf#ZPXzZK2SRwU1Kp6N7ptv_eh3Zz*_1&qAxbLP5sSXqpJeTlgox_4;z?g8PBd*SZ@G_lKtJU!>@|K!!3Wr7vLMI4=@ z)jGTUOZ!l13-fd?6KEEBvH%4^R{{gFjPg4mw-P`;<+fNY`m*h@i45YOTuAYqBwvax zfXFUKSI?6ZM-&Anz|r}*&^Zm=a>Z_<3O?)_s$h&=0ZOW3>2}uLI{|`zw4*I@yE(3< zaL7O|>bs+n+_3q>-E`ol;Oc}{U=oYh^-S!l3!CUT6UA6}Gk4z6Kx-A=01JtY*Ro9l zd#{{LEO;Y7MPD6P>tM61DK>v1p8~;B4Hh-QCvbS3MMEL9;3H^V`brTPTw^y5mkf)G&f_Nb zXs|_RxHApI=FQm8(9Dewrr%xjop@zD;#J#3SOQr|f=y%6r?YJLMH7Hbn+01cb@B>iPt(LI{dL&_@ylKwM@*)fR)d$)eN^<4MF zZgp)xhbsO@g3{KePfePaq+NK-yEP&?b{tdOm=fbV9+gT9U@{eM?~YA`d8V*dT>i83 z7k6Y%zph%simbwSACnh1AC-$(h&ZK+cy4PU|CSo*;FYUQmq=^6DXp!~pQElK%IYp$mJ2(`vo6CrI2(Q2be~xbplrtfF7q zBY39-d*t-!QN;~hh*oiYcJyfDtuQf*dXb4Bm;xPP!FU<0ZP?t1U&_lZh z&Ag)sJR5Y-^q!N(_Mim4D5w@2cH|v3QEJlZz;@YvkajM^qk^_fGxV+$Z2?|$6$=`G ze&R##)d5=2>4_)r9Dc`qX3%zsmU4;f&8_xSR@HJqgPT3Mz!@$Qc*R3>0XSa)?P6O5 zwn#*y{+?)eTXSU6`O%B&FtuNy?9^ajP)2#lr!`R(Z7wPfS2b zG%CPI&7Yv0yyAC@VS5*@EMuXB+A0_iHCXi7DK$?a`s@cJO%i>MbJ!T#3j`Ag#U;ZMH&+35~sjzNf#&{M2GV%q2@yLB>+!!|+B7O7yD1y52YW9w_ zCxh+Ov5}gNjnhQ6MJS%9d`{#o!WSLYo>5 z>*hgo)d*5(>R_sC9iv~=f!QQ|@%ebIk@fx6D92IE#VWBWSe!{}Qcctd-Ln}mFQ#_Jh zZ>=sGDW3!Y=z0xeAVB0=MQrI4(7t?9+KGnTVe+Es{~DSvoy*T(gn~Q#(NnUx^;4ML zpcySO0ak!ASOH3D`iJTCD2(|lh?qzC_teO{yhbFfOenJu(*t9%*!Xu95iURV9inN zfktSkIe@0omF^C=+9Q2CsTi787{L3s0}Xqi#n^Nu!Q%=HC=LyPh9#t(b*bsTQ=$u6 zgyt`N7n-*i8Bbq|=KB`-0M`!hId58bbVf2nsIiP3(eUir@bqP~>n%JfdKhckE|^v2 zIJM&0X#X>ouen~S*+c{_7PQC!Y`pmd&^HVEXQ9Aci}V0ffsBdr8}PTKXVwR&JDf__xeI07tQCoA^kokB{)3!p56RVRU++xa-W z1Xc=?j(X<+8g@u(#xwWaRv=~B1q*J>rB(E^x7bQidbN|K@yB*duz55s)PE$Hz7?he zt-@>ZSy2D3NvOFKNq20omXOs*CoU~r52N%TaF9s#sv$N_yskQZm`%&CmgEB9Q8+n= z6({*%932;rMTuF^lN*fdb3_Nil9ZQ{=3-bI`Ym?M3+!0j40>5wLD1XK)c5?QU2x_d zwc5`ggGMtc@YZWvVYPy011UDbuCfKa;RQV~usD6B*sasDglcKXaCxAYSbv2#da4n< zy}RcYggnZGR5N?o1ekW|24A^=ifIS|MR;v1o@kstX#j~a2};0M8+OA0rf3ZB8v;ha zEL9MJ`7A(E#9qs@-A4iTZxT5Hx>YmK$g#8dRwU0zxxVB(E6BMx?)2hUsq-Z{2=+g-p-L&6Wo#U_jb}hdajqsZMG>>qLumxCH6XT|_a8 zapbvy5sOdHcP>5`H(EqD35afM=(yR`7AHdhhtXnkbvqvZdbbSiR-U0%h&C&cUfi!p zxD;(p>OKdI74Sk@MJMn;M`2$9L#b83P9*3=%E|0*UDHIg|{*Sm|fTtZly*Ozhyc z2Yq=hfp+wCx|6u~)*)^vl-Mx}=Kk%W^c|t}{E$z6Y-_~F$qxbl!9pFmaW&Gy>oXlv z^l9><$Dc=S9WVI+w7mRzQIZQht{C`+bw;ksJzwi3iyH`YBeVqX2IU$3ahT_L^^mX- zrts?1@F^DQMUe)wM)0A2KsIUD_h?(>sVA*#gXaG(n1*5~s}@00xa<>~L=n8Uzwp(-11p;?fKxG6a?+ zf+d*(iy=R_HDYjbCBOur!OrK#fpus6-vkW9Zf{|^1&ojWJPZtkMD=Nc1W_GqTY=<5 z{nD=Q)3w)Lga@|W3xmXe1-nn^iL`V2&^`z7PKrix?X#WN0RH3ZhxGP}G2yApdAs$0 z3%$K$?0gF8?Iof&cTwL0o7!F?YIDQRApqO){+57F9BpsVG^@@I!ht^8Y5 z24rgdsLmp^YZ+`!k=72wO4yPjw>Od8BBzZPpCVdAj%DAaw04}Ou~o2(LUPlp4gSMu z3sN0=&l~{S)2e|_lZn<0ptV{E6^>;4I&8L2M79s_rQ%`}BDU|j#kllWmLb#E|CmK` z?NalNPMhS;(yjxSI-_e3;gq0V!etI8wIk*re-vXC!d#Fd+`Ql#%mv0zc zz7gP(9|CT<5?}<-0pdK1#EBsKo9MI0?*0plECAixKVq^P?t9OOzCW1iyO;Xz9ntq| zQlxpDNV5_T6}wTAL#rfE3{oeOSOnNR+h>HWHHqf=SqR+mS^`au&V zd0Va9ceMJvj%I$ekf`C*SxYi1uX;qpJ9V%MxT7tsF~L?Qbx)cW^0I}nBLWtpU!EO3 zD$fGGq?Uudffx9^@+!mqC>=Z85QvBoUWX*~p_q+F*Ymn808{Jp#Rp zD?f*g3rdspFG(K_Ca#2}D;Z(q(Kk^aeQ95-rBJMuVqejG z1#Ny2LJ==10_U}i(3|(M2=zyb9%ZYNu(4yC6R;1|eY`vuuM0s_w-mydL;}zuUC2O= ztGp7~*W1=pr>5k!6qI;m*b{o8k-3VPdyH4m6h7?B{jjKJ8}@j`mFMw5IW%AiZBQ~J z;E>~X1IBf^X<3l^=Ql2-&X#@uPs8@vrvIbEw&;=n6T^0W#U;bG=lB2r4%?Hpf77si z?|(RKe}4VaVQcEoft9fG(shso9F?h6u;17w<0{xstDp-#qryVHWO4v24p-&_4i?ePo}!i=#-yTh$xxDl$QrgGj`{9r8p9hl8Gr5 zUaP`XZGQpI%<@>9$uS4pjkZ%^hMiN%UhBXK{I%ooyHc5Mj&wwv_C9BeD9jKs#)diBz&_p8@(YU|W_%6W$8cCkZju7{NYXA0l* zo|~PWr3<5Fffb5}SfM~JF;R}Hp^H_~*fQ<{xrtM%0WlO`mGmq;JS@>T54P`qSXpYA zP**bx#@elB|CWnQg=L0~Vj8+~llHbSp-J~0DC-t>cZR&3V}#%SsSb~W|MPo;rY8Kh zIG}hM-dJv#i169=Hc8MG5v$O|4SpQ9qsjt6S=g*^$66a_0hr5c*o>+g^&5aF`mand zC4tYRHk~QSScbIs9GmeQwlYievrXArop2wTcs*I10By5l1JLIVBw@zOo$6 ztIf_qy@`qeASS*gw-bdJheUl&SZuv0v?c^Kf-b}ORiZY5FY(0E_{kW+YvRa$&L*{p z*&elx6lI?9YqNbcN7-)LyliY`-nr7jUAaDXm}DRDzR3Y+obLdLPuoWKcX9Me#N3qo#nbq*JsqLt?8+n%HP z^j+lcXRP*ndgs_EZTrt{Gh|1t`{{TeihL)!)%xjt=?Hmd=EUzRx^oEua=*{OzyW?3_ z#{-AtE5k;^ZvpCV?K!K<+H+PH3+P>$RAsyw8VM3BUY>C&C`R@GKw>=CiMFYJ{*7gx zVBQw;wJzkDu!~uhV|VH8>n@lh-9y=q)T-EEUbi-xxzX`>X(3v2Y{@J`do3qiq`l-Q zigq)1ccG`d&#KG2WI;sL*CtNCk~lhBSx(}#N1Wr{ShW})ZJTuB_Yl&Y~dP4IH`$R zy}%Z(jvn3QW1Cj!_2Q*>V27;xShuyk*xBh-m0Bon93P8QkL4sTOWIqUVQ%um#27a3 ztmTZr74)Gi^IFtMz5{)D&*7ZXtH`O@b0cs{YD7BM9=D4kspmk7G(3ubCX3#hMcMbpE$Eq*FItPekbCVMKMDKjVoe-RT{ zFivS^ov++P%dMh0Uhs9)l^b8ZhTM-0Cm5Oh5qJUM&jUQqL2CgC>1mzr2#aL|v4se+ zvT&7=F_wU}vC^pb;;nOl(WV+TB07~xO%Y!fcbt>QGdF*vAYU2NR4)L}#nJQ`1Q@Y= z($qYLN9{%>LA~*2MBgSKRXT~OIL>(4%gUu$2CXZrjD=GX%8B9o$Y|Su4YIwsG)2!T zZnk-a`lZNLisgWgc#96|yIb87M)$zQo^{wT!G7KXzGr5*&9*9{Y(BCrlr z%K%m=qfKoG{>sv>!UVH&+Y0ckh05MLkWE;xYBgq^kx#(|(}U~6#>WTf zYUUIeY%xhd_gAquXtZJ7Ubk%j>R)%(o&6R1e%>0%PLn49jME`=_eIn4p-h-@q%b>; z@hhvXo?0G~XaU+r!_ra(4Jclr8pxDHO-Vy}I{L~px2R?sBK0%Kma2_QIBTs!+J0l| zr=Qj7`(F_W!3v6!N(DUgq&6DH1mww>#=~rp?W5sE(Q(2nQSzUH>s9~ z^m*TvUQh7T(v*iym_ynG^^ix6B-0vxg0_b(U&iVz1Qw@U9X0E(V#Q%|#y;co7ry~Y z6qPh9kDu^RHAinarkZ0nA7OL$qp`8^=%x=E5H_5jpw&uDGtbe9X70e1Z;*t zv(O7$u|hF&d!V(!8*OQr40Ek~0XU>~lROEp!&~6RUbc(o+}Ywy5QbK)1c=kjY8?pU zlJFJO$TIhp8;i1WsY9j;P2t{X8TcAw&Dyw0T(D0hm0K}oI3BjM`$WL(DeZywDk(~$ zEofc6c)d~&254o(0*?6$^qC{T11nX0u*`QAc}hWY!Z#<9&8b4@JdMMc08*?;w7p(#O9@sXarf z<9i{(+(RC8_mIJYJw%V28Yp!&q}Fn_-9@ZF5A6gGpb;Ic8p8c(7%^2dy!V<)&rrpy zmO~#cuAcB>HsM8~n0M;Fz(IMuniwN{aqF3`CcLs+`{7R7!lfuK%SKqa>fCHWP|Chl zQCQR}dRW+_RrIp37jGV7xSzst7WQetBV(QfEA-){LmIH=J1h0y;E<{JaEi;=e;zRPPT+DURoTK7oX7M=u@v_|!KALlaS_H5t*qs1ov?wM zi2`yPn=35@<^X*-t+?LE`mQu5rpbmdG7TcJu6Xj2{KkB9_?;S`{a4ng9Ciri3e%j$ zalhs?Gb2C|LobKnMUb9(ha}>s!{%my)dHGXth@7gC1Chs z-;+Mn`5%6l*z+{cT4>C!!Ks1jcn5v}VCMMnICMff291oQ*N&m;m*8TEHgL1qLO;pv zvq)}FiAxbX0pG9=n9jyX&0{P(UPDFuk~sBVBz|CW(?yZXK;@#E4q#Px!OOE+y{@3em6%zG!=AYaEnatP@bH;O}rrl*jDDZ{zh4l75lh8&o7xkBCS#%0M~vWmAs1DI1?? zdt{Th5}I%9_QNDGyWj^@ORhC2GOSyzA3O7oMcWl*cY|Ns^T#vR{E>s1Abu`l$q3HD zR>5RlmEU3<7UrcHCoyg>xspbb1V1w6HJHD|+4 z#iPK+rJS_w36v(DL;#+Qc1X=6Tr3W=#wBIspBF$lKp_04iX8)@F%r-p^$lVr0LGWW zPA{GjMn$<-7os69ys+XXR~qqxU`u!L)UN7xyNjoHRd;q5uj#5j-Cev+ejNFT!^78a z@lLk#6$`$L*N%ekqJ9<`7GuHQE>zb%%z{QI#sK4r2RdEVkYs4V4yuPf?kX8HyMo6% z*FxUIc)l8JhmUE&&aPlb=h}8wBI2e#(KxX?nCNP?j2pO~9NqbG=h{wa8}3HP-1q;k zz&?Kj%!^#3u~I_bq2TTDb|5) z?TDU~>)6VCwy=;jPA3aBKx$eDHJSinjN?`x1eUe=>Ro+qIyx-)9f zcuY@IFS_M1v5`5@HMxVcSe!U|IUZkX?N3-mQWJhSj4PSQ0avm8)Nj1f+qgpgv&c%a z)r5o4<0cq!grO3^Fv1f3`Ug*Trw%|18TZbI1t&Zvvx77*yda3ccYv*9%< z#gqD2Nfxr2NJcLMPOw#(Fp-ZTGtlpJ_ZMQKQ@lVq4TDYRfVi%;IDRVTcP{ZVS1#bC!_nTM$;a zcpUQgh!;3v^ul0U+$4O$$r5TK@GSFCsY98=R(a1KBL8>=Yzuke`SMF@%FPH|Ia{Zj zTH$h|@;Vm|xAki8M;F3=^z~TUx0;1E8em~zyropU@!KoRG2<83XDZbr3o3Pe07XJ~ zOgv|@DB7dc>l{18!sesOVD1t29~fhA$n;VNi4xSd1;auHny}iqa?<^{WU@ksRCm1O zLxyyS7gtieI1Kv@$hV?P^DD?dm7R_;GMbgA3pVJ;cGGn#aNQ2&N;c1{4)St_IyhP$ zr7z%k_2XpB#oE#AyOVF_58{oS1=)gHkW;xKNVYc{6*k+8W-am5WVD(X4ZOf?U+e+) zxEMVbflaHlcXo!fcdkczwN-lcpxQE7?dh@9;iOlO#0qMlmYV3PO}Esr$K5s2bDOS* z0;8dThz0h(MH0mkW%izcn3N+@Jh%yYYrXde-jZGFV3v}uMnp~~quo3U`qYGLa~Rm^ zjU}o9b91S@yi{IPs+6X(->XJEIh!H-ve-tFGq;w?_p1gkSEz;{hx1w><05s?59liac0Rnrisv!?BY9 z^LKh!$R9l_y94c;ovf8EWkPgyO4#hLO(T)f?<`}Xem!KA)%pP=U-KcK=-=R$_69Ft z|BqTSJhrU^rtjS1EFkEOjj4%3sWSJxi`(j1$Z^s>#oW^=a-1DJJsj*A4)zWQjZ~26 z24y)PwxROAlui=wbD-WTpu~OPwmw|Rd{p!6AB}4s2 z+~QX2y}ZJ!H*)F|OJMte2}>b?c^hwHrLZZ+;oy}Z>`kJl0BJs8g+ih3DFpPBUVW=J zC-2<-u}MtM_QHlEixqki&HQS@1Jhh0UCscM^g-Ra@b7%9?eEqLQ`)&!hcX3V774p zhADwXzQ`n25{5!oRk9h|p`jU-#^3)0WeF~Y*EZ*@Ts2Y>Ov2HG@hVwA)`QbW3P-Dx zC>(VdlPpo%xXXp3)3J|weU28Ht~X4+M*SREgMm9!LQ(W8#o9>CM&oN(&|9MwO@yZp zo_=`x;dv!IGvVojXBG=hhu{?u%!a2Io;mQ$fag?rdf=H4&(S0qb<^}z(^e!DN%~Wn z!;@4f$&?v-1D`o07iPi4w*;Yc#-Sk8`1|h=gd*VrI&Tq~+k`!9knByUZQg>$Of4ct zDw<3@@Z6H2Z^N?|jpqBFSq35o$xdkSi(z~yo%Sr;)Ipdpe2(- z7TD8|{m>G-iFOD4siOp2!lP_J>CTI`bjRE?eH2P&rjFuL zQl4I0%46=yr=%Hn(mVeHSq{DoiE=Da&FmG@0q$>+&Y%K{mxaXKu`qe%k{y(8QqO?j zvaXiSqg@9(kA2wMb>YkhXUIawpGpT!l*^5{r`YrsVngdE-t>d8(=a(Mz13cEQyD%% zrRU2te1~MO&At8)f2va^17o-CIBuuMhsj_Qa0$-Z8>silI8<4y!X?YZyThvh(uq;< z+yxUyV3nN4ioK=b7;xhrszHQ8`nCbA;6xjDc=dZ|JDIHI&E7L$67*IB_R{Fv44QKF zkWh52@iP)fD}d8hGVD!Y9<+q0I904XWXXcI){kLY0}svE;R% zZ^eC9)dAcdDK6UB2ioLo)cw|u2YrfNnH)(!TD^PKB?8wnHqb1`iS)FZ;O19ivfu%hN)q~_J6mY?jKfu&4IS)>;W)~SW4cxsyJ z1-E0wnT0fbX3=*8-nj%~!c1un>&QZCCNoghu|=OibzUz;-ybRS!V@+1jh8Toa?9`Q zp(*U3UZ3JtrM(%sZGrX%A8Xee-FYqSFK7Q*`bmqXVgYtXK5?QWc+rhRGGkylr625| z+bWl*kF(R+u`Smc&sg$nk2QV>4j>30Vm@jV!5} zHz)6o-cZdv$m?@zUl2ZunFO5qhU(n4jG6 zvR%7Lp4by^Y9)>L8+{i{dl2@$c)Yt#aqV0B>rNE(F;u;Y=Y|IG5?(IaoHvzTJ^Bfm z1njZIA?vmtCr@L?#{xZ4l6rV5>?L-13!6{DCZn|$mZxYB+6+WJ99_p?ncBjKYsXRB zaO8$II%LCO%;@XaWDWgabRWEL92o-<-1paRu6saU2O*k#@N5Ht!A0%~v^HEFZE45_ z0{f2y5G|c&sO@HrI@gVtWKS5sNQ^k?sL^J-FF)!iE5j2ai_EK}z4=k#jMNqv_jWhoI@DEdbT{Qwpuf8*lLGPXrYs5!bT?&FAkp2F zGYaR@uIi+bJBw8C(x7Me+%jmcJUVO#-9kC1whJo)c;j{W{rw_&anZJ6rBW0LxnO@> z#4vJ%-PWzYZ ze-_w^Ro~h9Y^(FsX9C+cEQF_rNLvNltiCr>-?RT}-=D1h+9Y3xPkjA9?b!J5?3h{j zT^+kZ{by_sE_>Lk13-UPr%=JoSaP@R_2LH91u*Y4`p)B(G!Hh}gNNl`-A(QRjlW>L z8_gSt_JwH?RpheRSEQtvgYGFwPqEy%>6HP~>Z!#F7}rf5BxiIUsd+Lw^usS}`*9|0 zE6%#Y@*M(LuF-xHxYXJ-jbNw|T(xa8k)N{8Jj<;!&MIvi@d}qjYTJ;Zu((a-o?2JA zwU@1RmuuT-*J-_`!E4X(s|c^XL$BI4+1(oLG;Ti^JVgQ~# zEZA6o0M#Dw-H-K-Dc2fh`$Q$^XI_05;^KOK#TTzC&(HjN`D-FilKU+e)U%T;S zMrOe}_Kxx6FL6wv8B0)HzCPkQ-w6*ET#By^)@wsv3lMWjO~F$cZ9#N}1n8Zm1@SVQ zhI;!xEhs3rHbv^`a0l2p*;M9OT{Sn=Lv{2@kO(#apVD`w3&w(ubd@p08VyMhLujXw zRjlVvqCuokoP`?rb~J?)?62kNR8X0tRT!|K4KH2o0?un_inAwdjQSe;v)(e54)22l zDDYbkEpCvSUv*h`egDOUNBe8Ai&M3TKa$Sc&v&UIzo~_$vd}tIaL(5vnUPT#n+dV` zY`zdZD((6{7AzN|r?iS}fXxT+P$Mh2h@h@r!4-s7H1b+#g&J8+F{`fD}8gvYeQhu!HvQe6DjnXf#w?+xN`uf*;@&tg6+;XUP!YPz0sfKbg4PPUDEE4No6Ao&*0~RK%=JXa)X&&)yKPo*%}7k?GCQ!s_y8y28A8-Yy21ZInYvQ+d-IFL+@l zc0l@K{esCt)3JkD1vhY7EZ$OVrYW@{?-Y=$c|Rd;q`t|djo~Db_%Wa*j~emtc+%t%VCQ=%=43~PwVTxbnb7W9*HW_6 z_bwSl>aBGy%`@@pFCKD}WdMLcf4`45Ep)ssIKVZ~8A%V1kK|;skrW?|=n^rc=GRC% zg*yRhuV30*DEzyl`7Pu%LjziMg0(6h)$~WwP9{p456S~tB%XIJCaT{+RPo7+%^%1E zus6x;Za%0f&=jANpT^cnu^e_TBr*W!oKd{KWG*RTf09Hu z4DDLQVQJT^q=)XY?jK0Ien?ju{l%nO@0AV+r3{#W#FWSY>zGoJm=a9B1GL)z&IJ}S z-bt`fFBzbJ=TjEyN$-5;A`6|)YuWKB`v7A)(?7tNciH>ze8NHWEDPj?EnWHLCAn{bJBp3Csp}6Hd;L>7^4lSXEYv)au}K?;HmQ0pW{q1fEE`Q z6ykXnz>0-D2!b7CnVxi&ll)&;h5x=PG`LjZ(L(-cOJg-d>+b`()yZ6xZu?jS65=rH zNP9A*JpyognP?gSHvW4&x8no`yb8^|a{op`PXs^%Nb^TAjr@dZk^@;6W;@_EuIw z@1Sdsp}aog*Jn&1p+d5R7{GyCG>!v|f>+N}(GU*w^h)d;3ql`->Db|l{*gTuhI`s} z@!LK1DQ~2Dii4^|hr3yZUU@yZFslhsgVuzwad>scBmH0uEw*Uu-&$?ig<+Nmn&smU zv5EW#YD9Fvpkbl1EMgC2(b-<6Vg!6y7nZs;xn?)q!gd|ukS)L8}duU;=G>n&Yk4>_`8X>?aJq0Cbg zIU9mCY*hv-o12?~_d8~8_LjjKWt{lfQc5K~g==fniw@=Lnu1jxv|gD|^SL3dd8v61 z!t{i3KP+;6WZoqW>Xn}UCF$kc^)AXtRjhn$@sxPBP-S%Yn8Y;>Y}$zWa+ZZ;Xm#B9 z@DogFT%j)=ji*TN|D6(zr4Ei9mKeIGtx&kn4%a$OWdOyQF3wIwXY5#~b>h=9I$X;E z_~KCEi?)FL5`CsD6k*R_!5plk=@Sx_U$C^72Bc>6TSeMSa<-+nbj>W%V!BjyX-MI% z>8Uk^qZ}Npv1uzcB>_pn#3))v61L*d`GY8N*Bc#l@49VBWx>Pduc0os4vMP5H+^h= zW14|h;JzaXcAgcjkPghOTPPjy)ai5TzL5@0mktzu1Jhrv54Gg_jqXpOXO?6a<{pI4 zHSUyR1g_b38akV@L!}u*`TJ|MI?qu2Xqf2s(NRFVJSn9xHl8s{<=Q<`ENttFmAYen zx^OS7uzV}aSIr!lZ8yBHR~U=UI-qE?&RfGuGo-z(xWT|HFKa&{MEf230sGGnO%pAk zLN7M`Q;iylJ77&$w$!Ng9*0uTCkiBG1F-mXS>xdXMyiif_LD-FG9XW2$Bd1inwCXx zt2K4*zNL7dcB9PhAl7c9XufA|tY@=))|(bI%=huWpw$!9My4!EKR(~@yB2xpP#pc2 zLL6$=8DXOckQQ%RNX^Z*<;1g=VHthFD7QWXy470=Z7Ki6!u0pP86J=MYijUj9s!UY zNg?tZmI8VY+c@G36t9=`<5tKRq1wU+d)cutox{~~M$aIS+-5pV#LIr6c;hX2P2~fN zc58;OsaP%7P_NrA`YR|Jn{%#}m+wtsT|zH*z@E;Xo2Y_Hp0z5u)~W>+;BK9n%i`CGnen{9T8c%-#kdQ57-Kc7YCsE%z@j`P4WMYHJ zxUy>hrCNwb{u(J?azZ9Gqg!ViW;B3mB177Sw)5FjEA-7*GB-?rz{*NbbLcagEzHm> z;)_XT;V4~Bf=RIMw1pZUqStQYy>5FFl(zjR9d)76P#CRVx|?AubXFS2&rmicDeW>i ztL7SY5D25DV4+9Zz%uv~Y5@>N(-RhjtWJ&01e-(>vIGMg?y+2Wp;yEI_k@v)mPhI{ z5mO$qD7fl7aU7K^YF#6+eB+8`L+CwF^DCT;Rcmt2B;+Ji?L{8ViE8soKT(=>%SA~l z1?PfEUd|iBS@qAPQtHc%-+yJA z!Mh*y=Y6r zcr_t3y3~Z56c>3^${dl?Qa)^iylHvexrgMjrPlmdDyJFuK(As?(kD-lJ435`fkQH{ z*SiZ=*2&d11(TJfY>V@J8>t|M*8Pas3T!zRGxM zP~ez*6*LkrW7TG^+xkU!osqZYf{9}3-n?$Dx<{)%UGNJO+RHh$ZaT#J9o<)2{BHv= zHu4y)c{jh__&6wmdg*Q4#V^#YVwCBJhsl%tOz@V{qOG6t7Vx1}ax8;{)$( zx}NRALz2KTIZbVK2L@%I_6v;Aiq~k3E40eh$n=W8zrhXV4g&Z1i{o@6lO>?-q2%iq zoDknC{op8056%Aszpuv~R+NO->`dthL_3vaGPT;^x7;?-`~U5ewF}v<(p=?u&!Mi#)uGX?4ETa#zZ&sDZNv%?-AZU z&PC_j)*-J8Hq4211<32P+hPf0FmQddA?LKISV8kKLWdhmWlc5GiQr1y;{lJ`C>Kg|Sys5FOgj z@g-AQUz~D6)+!cT? z0LkRdGT~Lunst?kow**HJ&}SFF*qH9eLwkc>Vbjd`f^GgAzzEU3z0K%j@gCK3LH~z zSIz5{Y1X*P*Rx7nRS1oeUsdo6)Uc4Hf?vF3FD9o+qHRjb{aWaBtYRARG=WNVEPaSXVi;AxF01xon;L=NeVT~A&x4|=#c|J7YL75?(!Z)RV2-D-HQhrfFG z3&Y>1{oQq(X#I28Pbbgwf{Pd7KVBUE=eD0iaS%we?f4^y-3L{D0e{4Q<=|l}EApXj zX*BRzT*wMN=L@qqZy{I3p7Lsu(`~`H81Jr=n$cW$O;dg5Zin>DKjNU23hTE1y0eaN zFEh%U$u(3nnewAbF!d*Y>88{>C{l(-PWfD=l!?PB z17BGw|4Au0uf;itf;BnsoL=OQO+Lp>mwEMs<9u=uzbi z@U!Y#19o@`*{zp2Q2wIys%v|lGH;@NB~f~{O>gjD1)FN=RTR7VuhPr?fw#1XBTawYRD1YGTFQ0^-tCSZS8cCIXBGXo zw*)GZ(zfj+xl7(xP%(h^$;NTGRt@Y}Y;La@mv?GM#kf{OfYQK9eZogiDP!_0(iJgk zDnizku{)(bp>$xQD2MJ_%pYVYb)m5JznqYnKL~skyz#BNrv$AZ#&-xJ>|(aNq0$|} zbTc$S4M{G9PfO3#lUG!OBkxSooptEVw&x&%K3LXI^7fl{e!KtE%}6LgBK-6_r)D z=gqLHnm2!eRn@B14?MJH?f2F_?4K~vs_NG1w^>z{l+IlcT3EKY{FYm%TU8a8lv-7- zs9w4Hfd|*DtqB&FSXC`wQEgRK`^fr7zyBEedZ2$!7m(+bS6y}Ol$_jY)22?FHtXJd z@0&BHXwIC;*WPebZti_WMT^QRm)?K>vit8}QfUX~EhvL4xjPUjnY*y8ynJza`RWHBTvJoCwx%XnvS3kJ*_yR$Yu7(kw_(HM8#X-p zm>pPN{Q%VPok_P$za#(dyUP|YUa``y=l^4cyUV$UxktG=Zaq9};BPIrhRfn+a~rq^ zxCi0=A$Ti>XFa8GTnNG&;O_w_b!p1(-NSELm*rbR^?je)2w!>t!fPQcQ<=rwW0e1| z<*?F``i?~8_eEV3`HBfkXX|7H#Z*!p&m#nkhb;@Wf93SYe zJ9@}M5?nH1(Lq!5=#1C_43!g}PJ9ZK>Y)FeRu=eiI55mZb_cp@LGpq>$jd{RhcJ&} z7e~6*R1*G!vdD5e9T?`VPe7y-0!}Bs3-C#JhdN-Xfj@kQIs|wZ;9Y=s0pHymY7-zA z%R^l})CEQ058k0J-ihx5$3rF_5@6MWKYVv_Jk-TQT|CqU69W7}T`qWc!Mh9IU2YDt zz@G#DobboPpTG%FmjHDMP?x~tyNeSbqX2aYP?sR!JCudG1gJ}Zx&*At4Pn@S2yQp$ zf;wDKhYRX(K^-nA?}G9!0mClN1!Y}O*5$%5frISEeIaPrhIZscfECI^j)gW&0)@o*3<5e80zp@aI5?H@6kgewjj zODBy3M|j|*@#G11PQnK#je(Qkhy8cb7&r-jF6x(sbBIrf7d+t~PdMeIvE*qS9E1}* zji*2`W zdzgxs4h#IYGiwiEeglAu_)T0xOd}y21isZ1hl{1p9MCO+b~*%G`sg4j_~e-+oo~qYs23cvtJb+RR#eIEl3x9)^)tTG+?Z)J{F*LD-3)8A z7dTQTLG4gVo9|~Q*k+N=H7{vcW?sw6Rm;f?5m5L^{dq51pH5?Et83Gi0n+V93ms=) zh8KN*{Wn&SeX~qGk{>$zveMmUoSAsW)$`!Vx-*OO&)i>l##QJ%4dFUF^8WfWKf=?r zGp>A$fBq#3Psi|&P&MPskM@m7ZJ}@uh0$t9SL>PQQJj3{`8fS1Mx^7~amJNJVLyfa z6wacsm%fmL;U7&Ok(xiER3U}8ztRag!xR>&)KUs_6vmqyU5Cy*k3JI4JYPq@_4Kw#fPvK4q7gBgD zwXW1@)wGV{I;eCVh1)4yPvI5{Z>6yJ^*=#)yK}f@FHl&d`d*^&K8k;h!mm+yABA6{ zdRi#_0)^Y{?|0(!k1#fr_8g@d6y8nYIEA-UIAOKl>NStydaKtw)pd0WN~OF7;V?f8 znXUXV#I{@cpWlto!)Kn~$6IY^!RHZZn_a$xAMSUYABIPQABGchx+(aHf>p0q8183| zFx>y?7=AvVehcZhlzzkb+nMUkYGJsS>xALn*9pT=sTYQ!wUz4FZhw2X{d~@TzFoalunn`f}T_h+}1P8elB%WN$SOF zJ8n0{t)sZ-D7>1&FWBkr6i3s|k2)y4l+rsX9Hv(G*m=1$j4P!$k-~)(_G0*Xf11_0 ztTZckKIK?S{U{t!vXpX%)6l5gna*lxHU!zhE_tx9mdS9=v)qB0Ix7t@L)OvLSNWzB*s5nCsjFzhhC)Fr1Od#dFwbnV4Otkmj zzW?v{e@f=;@4fckYp=c5{#Z-@Zr8tE`uB1D`=tJTTK_&rwRoxL2Qh3f%rG4)J5LZ$ zTpq8*6;POyAoTJRc=q?J$z4kB`}oNbYUH(9)P-Sx|2V}IQOuJR^0Xe0`-eEIVw9pl zqXOvu=`s3^)9;`T1>WT+N=KoFX;>0JZ4xqJ8ujipZRSwxeoAj*)Z_K^-_XA{{p;1gje5R^bpLwYze4vr_3tV@ ze3kC6()~{TTdIfW>HdN=JbJj0{_5ewuWR3qW;zy5t%|GubymWXO2qcuIJU~%!;yV3G3>>gH=dFpp;v{F!_ubPqS*+*#)zhgJclLbW zJ6&r~y>_Xj$j1`WAF$YLYv*t1ZN!Md-y@EHiC19Q533-C9qRtT%swZry*V|)aufCqV+nw?-(97_e3rG2C|u$>PNdM(W*C&NeB3{+El+` zz~1r^+uJ>8Hj2Z`9FdXMHzaX9haIxMP&hzn1T1!gVarS*|h{nP{c7zVczk4tTL;)tiLZZO{F( zw)Cr>5o35rii{W{yQRNTa@b+(3&HWpmi9(pJ>|@3sb`#^dBz&8(wcev=Qy0v z@8f_E82V=ty|e!(jenDLkmUS7YrPR$Z~gzX^{-56eT-Tj-H_kaKD3zFEZ;!zh(DnO z27(+*6vqatvN$QmOR0i>hO=d0T^0vn`}k$k+I48gE3!Vj z^;s6#Ac>(IW9@y$+6@4d)^+6*bE7#870eAcZfHZxpcSMM`7cc5@+lLUlC|71(GRF7 zyLBPL?%81O8Q}IMV$rHE%loIfq;B5v1x?_gfw(?}H^3BbZas|P(G+f;9NKc2!kI%$ zV1BBDxn3Jx>5Z-0a6Z{SWFXOdtAQQ2K1LUN39rkntK7i5^ADr$^>_FO^=+@13hrJ1rFIM9RmzBMSg$x8?#9Nnucv*%f@CLnj!G;}G z{sV+A1kIBg5C{7`!%)x%{lU0ahOu&)gL1d@pn5j8Pghip>RY6(JZd)zH6}jw4?IOr zS$~L0rE75AeG2D6Ao>UDjb@JV))$VhkZ)mvtf5LXZ$60Kr@V`L!m9G^iK={CeSBu= z?6;eHr1Z)nOW3Bm#8bGytWDcljnOS-RMejG}x? zHA91oXUeD|RBLx5YKW$pY2J&=649(#+OibGWhtUBOT{r3K4T6K0nsW$6H#X(uV|&T z&S#9kjwtOP0DxB?{~#KUK`(iRjCk*Q5a^cCqe!3Rl%ZKZyxqqn?1HGwkdDq@c^H<&4(#?Cb`;;Mew&oc zgwL=YnCUrVxJXJFTMP9x@tOUfA8Xc9F40oraqjD5cn(ja+4e3wT6eY_u+0x0@Hy@{ zSR5%iTXu1>ivni0$Epk0Ux+V_|T(hUS(@; zXj9o%d+S4qPko8taB&|#k{ZGgkDs}7*?Cy12DqD(ih)|C zbF_6Wc?N2a>EGc*w?4tM9?1g6KNydn(seQ7ssQ9EGP}cl-YMgY zFy&R;_R8ptx`XKvEAbWgl?8cHy!l#s^Y3@$uvmAYeF{GfXw(PIkMJxkL_J582R=)w z%wuyL4x7PC<6(2VL$|rZ!QvBW>G$p?e)T}Mc{u%-P)>iIh{X>lu8tohoh$X6IkglG zeQaue|wDmR%N-r`tY(%fWPO^VS;$qCL? zw>x~*zz!miRnS59fgNs?Sypp20e|r2S0>;`V}I=ge06MM0^Tt?WdbU%UQpEurO0Tm z1^dsl5}(_Rvvv)t(5%eiNG=&@Cm2Nl5qfiAyIc3I=1}MU9yi^qrW~OeS{_u7#HXD) zZnqEN9+ zbrCRWAQzw|zGx?=$Hxq)+>rwq3R?wpaJ=}Sq#D}>>QSMUKEYvNK4rC*#2O23okO>; z;R6sdmRN&humA&c@yCuoXt8IFfI6iTrbMl!7{;AXEajG!MTA7{cxz3xdb5mvgmXSgDla|1ui~6O~vAgY%R@rMw)TpHHDTJq=>-P*M%QWEal@5*b_@F z@dt7fO9gZXQ;DTE^ah25DgFS&3-P6pgo{4_sciA3K>vmKk%X9vA31%N$jjciN5G%d z>9g^Ji8Td@?)aODeepLnZwb*|`aiiI8(M%rC0HHQeht=!^>a{Ryp~T>?jSTUUYl-S zB4|M}jWz38@>{5p90ufL)z{$9@)Gnf zMi7>lP_rpP5i`jZr3r;CyAIj$ba%X>bO7fh zh81C0K8BT37=qOuUtRzqSzhD2%@lagKs@}b;usO#`n27qYJ6iRpxIVDM3F8TNy#}U z*QTtyT*mYs--;$4*vUFy)C;Su5P&A$4q(ZVes(V>2M3{>QA6^BBXN%K7Nnjf_esA;t(nOswmQu971;i zpbad`FHzb=MTwSTF@^SNOY~5`=gdIx9mv=38G?-co_8oG1XFiGRtSQ;5KWmO0%tk( zTX=S&yGP`aLmIG~4-5$KC%z1!v?gi z*Cw;J?OJ@IUW#2hf1ZUythS|zuV?Yfgc5bx5jSc>Fj*I3|2g%(-qQ#IJ{5 z@`MJ0UMj@~VXj;#4MVpM)UNLLc=gfD(?_!ahs4|ODIE|Ywg?ArJq^nG0l*F%3UGkb zR|=7k5JwqO;;?2UG^7*q17Ziyr~j6X(oi zB!nmwqNf?`pGjN!z}n8leSGYlW7^i&WHu$8C^eZVK9Oj$Bxky$)srQ;b*CW{4kev7 zHJLU(nU>Fl5XyMc-rr0WOcW-G_hrZ5WW(qgPD3&PRQ_m2W78Rx%#z>4j~&xd?U`-B z*?p`Z>VYCfL%%5Wi+LE{4@E&CkX+>ZMSH(kfT4HelwUs%l4KkveI3mEfjI78Y)D^7 z{H4Bst|_Z+-^ShSy?=T5UXYzDEFoW+$cI+II^@^(HAcvMh^~KHsd#%-Wi_R2InRbs zg6fUh_5%AxPmg&o+TN@kQfzmAsnUDhl+1&WrzyJS4e5%eOWQ04Yv)h9z654RV>j6G z_D3kv7YO^j@D(UmrV@%57+g%3HTTQ3k}c&~+Aabfyatw440uANtI`+* zi}{=2&VASF;K`-sLD;YPUWSOM2K!d*_MJ zZOm|3kp_G(^wYAmvsV>Ln{_<$X%u@zzn=1D#TG62B8j@@Hn%MfT^wAwiAXIpHf z{36A82J)fPQkcL?@OMam!<(c79Lp~3k#Cpp;^d{ge6IyUq`d-KCIj{g?Y9XIG77V~ zn|Vg+)XNZV%Z^Sj2&vRUvUE!Q|4l9N zCw&z#Z~7`MD8*_GtmXSqs7*JMyvf(KW;WyS*aB=T0A%SNca-`>?&-q=GB_LFLAkyW-q{(xHsKuG=y<)DzS1ra#ZRO2I7v$$UuDazt&G_ zdfG4`tI1_c1*qJ-)b0n-^xs6e{kiw$CtamVe}$8J{9vWb&C`<(-(AJ*pbzi*O9Ln}9|5kAUr!4BNkF{^(Z~pemr7-JocT?fs9#bI$Z^U$+ z6X~dn2}Q026meAWEtfeegvcDUO3&?QlJWc8(VIPa^D9$N={q8yz^k|Y_uxtg-|KL-`H8Cb2vAg^Qx7=qANn7FmpgXfKQX%!N;1nM(jUCmMTSv$w7YBVd=QV4V735H&^iP6&})aK1AOvrm=TUhYV*J7%FC)l{{z53p28P5vP($oJ42NTyB-_W*aM7U%c?>6&@B%DQ3JdUc$1v;Z7)5j zv*3fe9LE~2b#8K|V?ku5x6F)1RLtdIROj@}v&L&uYEIU<%eGpd>?e=%7i=f22- z7MJ7wHXuB96L?*yo-|@NwX9Cp0+l46asB0|eIrAP{^W@Tgx%Zn>EM5?BidB;Cv3$Xq*oQvx1=I;sriFxeO7)G9Dw_}SQ zfyiZM%VaHYh)A9@AI{>5XPGZ|dS4E=web zWjkDa%k@C;?vYeu81S8AKmunKq5&wvL(Ae`fM%(+^AgP< z3#-G&#$pTVNIycV)_(FyN^LSkxjVg09Qyz6`7y%p*ENf>;?}6R6^+MHUy{jXU1Xvr$q8u^}o}dzJf-K$_vnybJWa66QT{ z_5nN!0uIi?KF8m$kG!&MGgY6h6|NuUz`#G&KJ>VD1jz0NI%)I=UA zW&l?(mmOAieV9t4KnN)a&{WiehL7fxVc$V9RWdN?Xh9!oA+Yqctm0uf^ScfECY6k3zOQR>?b-@ojciX>lyGv(})Eu z!#bQ%)CqbY1H?eHel4tagAA)`ZHrthL~C=456ZPp;1ifrs6drp(TJr-v{Mzexw4p- zyb5bUzQ=}kvUJLSA5wWJLUb~5y}7q0>d9A5;5PGv>kaLZ0-PzKt1$4#hjEMA?GURG z11`J$f{MHIxYx~Un;o?qB8>n~S#2ZpQ~~}*YuziOTsvD~iPq+?tYL?}Z8wvWyJqFw zVVX@HWM2;ozGF(kua%Ldh_kaVp|(Vmlg?lVi zS-Kh6f^dgtbNo&<8{0PJp*Y4X;M!4sI{PcD>e^&SEVYlnS%Z5ngBg!9|@|G;8zqEb32b zT@n@Zz3Bo7&}QY2hqNMwY3mbKY@_N0Q-(UeAudC-oZ9f7`oG5sU1rpX^ z!QBU`;J41c`DZ+2$;YsxJ!9A(Y*@L}n~6WI-@=vr?1_tX7l9jfawdN`HG;#7^S;LB@Y*6vAf7b~jxSmlK@4l=9bZJQ zhO{6+K-fG;#hNV;HUnf#ud?e$qiS+?lfkR3c^D{Cj?(`fq^EWIC5z73<~cHa``|Bf zWjrhP%Xo8gUZTPoUsILd_^)s#&54RCW=yPcCjkn#>~%BLAU%Q$B`m7Ne=7SmiU;8e zU$ia+-SDfkWD5M+K=if!L`dIK`1gP)y`_werPQ7sL;54D`sA$WE=-~P@i zEoK?`=4O-?qqZUt?tou5_d1TZnAmY(f=uk9V;FviNkN>Y@GZHt@MPyf;2*d;lwiG< zwXGnbwc?uzWG2u|mGy~k){U=#fH%eG^FnCG5+i;%-5!shHV!_IuHcl8^Qi1Tx}u;b zdpPUeX62<*z(F_U!&2lnOtKnJv=7-hWHq8M;yfwt8+BQQKy*(PJr!DjMilDp)=mMR z;&^Pz`^Rv9ry4g)HopWICzg{EURW*HJbnqE;r|cq7Ec8x(qh+nl@l-l%7R-%)6{TC zo%b}UqP~xLfI=dPWuA4KaZijygCz8v$JZo~df&}LG-^TPVc)M9QQQ9=oi|r*UKW0M zYJuR;)4lPNED$TonON-@X0@xC$J?@yMXJn~Sa_9r*m0?CF3ds4=Pec%bVtjln@>C5 zZ?ypctag?87)^2=486R~RU_(Id^4r{8_+*SM6@O9iA7(;7Z!?y^hjJ6ZRN0U?)@$D zRgH*iEpyJFzGC#+^Zux3zp`>0^jSE@4uG(HK7K{)+5_Hb^a(8WmOgCVlh`_MsL|Tl zY0x_Sp|?`1-WAbKObHoQk3)t{PRxK#>JHCe=nhKv@{?Hx-T8ba>a@i|dPJLcoNp&v zCHcQV;t^9`y;UW3_bEUys3MB{(mv!jHXf~8OZwfLgvPFK^fxO( zSOX=`8N3M*-Ga*DNA93m?n8CtYB-NHzuPsn?;xrMl(qhpDvM{53z;~?P-DF~s4H1O z1*>Qnau7RjvY?ML)$E#`9pwygk!36w!WPF^mU-!|_vUo7t1*?P^+x@%c@-1>U;&9`(O zl!GH6+k|dtA48fHE{vA{llA3$j61(+eR&HhM?4A+GdaxNNlUc6UW<-$ZWb1b5AJL< zvB=0yx4A){g}&^a?wkgBg$dpKPWQC)3Gi{~<952U&L=%(?OY0lxcKD4;#k!7%FYMIcP{-iMzVc{JyC8cBzGHk7C?5s0S2>y^)?jF zYLK%Vj4Mpg8>1EToUa=K2196}^>tTvz^jPfl-jV!#e`PCQSNaJ7%vQ_c6$FDPGf z_2cHfv^!PUYkeJ>!V=2XdjNW)i-X3PpfTUkyxG>*_knNiJ=8Rd{s>J|*a##Yg*O|% z{FGh59}gGz;Vz1NRY0yQkn0x9bwzSriCmW_*X1k!49ocFvipo6^e-#NCxJH9acPUz z@jgQ5Cu$Mh!*i^!ix<=_2N|s6n|s3m9TE6`%!sl^ZZfFCiT^H;b}f!rh1;JVUt^74;ao zY>;l;s|9+MBuD8+WtSboM+$+1)?w0h~ur%0HOCid6xn-9-3Q z4+u5UO?cfV5dG04l5FOb>@~o$kbye&TYx5SuFXV~B`gQpL0D4Uhw^p6PslQh$msfN0YF=J#kyi`yYMbNY+K@@kA(RPD3{S$~OE@`y!U+RqNp#C1-+$#++q=yH z%__RLe;)cYPbGBxK)kbWAa3ozIhn|6nf-1v0K&qSz8t*Mu579wQ|0WwWnA3DgLgf8 zT^y`kQV)N3_*BvZMRfLss-|Xz^odyfNMdjNt<&A{!^%yN4GI8ovhjp8en`0jLI&a) zMIF*^=hWjVXPtBH#86wXO;mWFA$~9s9Pe{-8oMidEEvEK#1jT+GB&ps#QK!hUaf^! zBt%Q5e@5Ihju%HfeDX?&BA6iPboW3)3&sm3=ugC$C`?+4OW+N1gioiffPdX%m-&lF z+dn|18ZPPV=221LLuRR)lg0{wSsqP-(HFX`EMnQX$QT~)TCnq8V@213 z3iBoNfuv9-S~kvs5C~Ak@nuf)$wfd3kKoA(R;dxF8f|AjaE|O2 z$3r)P+YD>*Rq*9dsTF*ovEj@2{0@SXbN9TAAIqNS@RPOY8TjB9l65yoV#OzJ;xNzL zCT>k(cjz+sVqXpboDDOEuF2vTGyEXm*)?<_PWhb#Lhw!HxcPHs~ z6x$ox0394JKDY!a*rx0zp?gqRL#p&QWp@wqQa6tt0X-ayCVHHkkd{_d`0#cg=1NGh|~Tt*#cDf?vF2{5uef1d7?gInnB_X5Gve*gLQlN_A^LS)Xny2 zc}(5x?*7;uP`*%ynE^a8R<-?DV`zCTfWPLegoDK|3$jI+pWt@fz!%t$^j0u;C zUBL9loh8PJFf+Qo=u|gAzHX${b9gU)?$1{C0zMVZB_N+OqH- znA4r=mXr7hsJjT?0a<_0M5jyoIRoYmI9oz~ zwxXQ5svW(d?DKI)Z`g&F*j?@k|81J7QP%aOruF9f;ux9$_2OQ$GuPa$?7yVz>Ya7% zpIOh0eYm^=vkcK)C@3{@xA!+kJB&lb6SzxB373_*Y>@tqbZVfhI0TPB?jh|v8w?K` zLZp9(D1fC9754MpA551)a25(Zc67QqUH^r)29UXIAow5=z#3rk!C1entpUp6T5Sag z=az}~&}ASxXo@9q6+r4QD8iVk){_y`T->X$piTgg+`Bi~NXHM1EU>7zIF~MUbZ`8k zj&44O@@=GQUvUbC4*NtFiw2(j~_Kd`=l~gc&@aKvu&K& zzRj|%YI$XNLXKyjD+8J+J*&MHrSI)w%?vAmwJ*(N+KUh7bLD8z&mSmOi$_OAyAhAb zjjpoDNGQAgs6oIhur{L{8J8n=>tmJlM99Wl|F#UZbA);2VlFCGoN4XE7yo4uUNep5 zL)%!q(pJqGya8DpR_BFggU}v#0Jo5`b{xee9gT!SnzfLIt>pkA*ULO`=H&3Jerwmi4}BlR;?{Ys*HII<6i_FZm$0t!`6 zmPPELEEFA20&QKJys<1Igsx(D=aqRZ8{@d9(u0#t`IFjaRaTjod<7?ze$7}K+5qE_ zZ(3{`jU#6y1g?lVft5JNQlS|dpEe)JI#7O1MD^dP)^`eE&wMJ2~YYX?5)Z10Zb=74xZGaNG>V&Sk*Ax)4LjGfd4G`<1?Re9c%7#S-Ki#Dsc$ta?R>$uqLnVs>|-G%jv2E zaHbt_O+R+PH6!PM%L3n-@SSyESDiKLw>iFGN97=hjr%rDYbZ8WR5%W8Jl`N2q34J) z*$g^SVlF%M-M&C5$EyOrgx0n5fCtM-+uGi-!HD{0*-ZlKtTB7lcguc;S`$OxELO{Y zb_86TuVgzggmHT^GA?txhLIcpsJ@Jmm<{)sLd9q|5Oq^*UdVQk5}B$}4s8zV`6_Ww z_Gg%2cwCh|;)kS%+PPR3KVmKmOyOvkdNnL)XJ~s!p5vU=vpMEqVC1V&*G`H=bfng8mPzI1AM_dUVnq^=~rH#tG#RGL(|NW z5j^M&zk)}UbrXlqJaY?d`yPD1a9k-KEk1#&sQFf*ftA!W0F$)TajfMWwBY<{p!4#> z1x_*y4XfcF6xyS67OUz!3(|&R$N4Z`UHK!P<5%SaA-XEWNh>%Lcoqoc6v~#Ix##2N z(1Ji9&=?0AsLtDNqsa|yeaFwSFV^J?(k@g5qB`CW6|f~GXu^*3sqdlnJXZmHdH61d z?{xSUsqcZ@QH(p=Hfh%rm`!%&?*SszCfDWm?C3D+kL`9;8}S$4Y4q$sts^-=Pb&Q1)ACX>+ppB1zR@0J5{N~_mpoT0kklWp zZG5q!9~xDJ6l>ovFfeo-yY)WdSaajk5aU%(Hg;i(TQTYvgYcuC`~_B1b|qEDmtBd0 zAVZN~CLhx8mWPp|wtbg&x@<_yw&Cf>u;W}PKze)pKoP?8p^uHq_IapH*BCBkKf`fN z7U4YsU~64A(5Jl$&*b>ASc}EDU1n#c5&+9|Acc=@Arnj{NuW}T}%6^6^HqT|dFjTU%t4;@H z+W03%-z*&4B`{PlvN%PzwBXx1O{)@3=FoSG50=sF-CR~2V?V;M9!{W1M;>{diJNfo z6D~^y-q+ei)Bd0izP#gz2CuitsntMqXPR!7CVAroZCXOKX_^;s^Jf^;et-x|Hjtw% z47`e=x}>$4(gU77u*Wf3<1p6p0q5=EX493?*8o#>3)#>m?Ff^9^8)r8D)XdtyD>D^ zDeV;;6tnR&kZJKOS<`xStouVwE}yR@me$__E2@_7_oysbZn=eLzeg=xS}6D}?cF%{ z9LD;V-^<42?+~`m*ftB=o@$d)b2r!Z`|mV8S<8Ef-5;5x@@zGHxr%&}@(mQAj!75P&@?Sxwq@6`z508G8dhu3EZ+hnx6-d{ z){3)sAkPR;Y@z!;ACeJa90bz6c%l1a6SG*sJ-g z{l(hx6Vf|QeR8q;V@{|3b0(G>t>a38ReKG)%ozTb9@bLI8$&lXq3JOqe~`;7+u1HE zs=CYq>}YfsYCvPNWiO9bO}1*+WO}$9<3y!Uw8fwyj$|>aJ{o<$awv-!m9>N@6Zfae z@rn?QgtvH9vp5R1Rz^MhYnsXd;up#2SZ?dhQmTB@6@jMmHHE#TwJO?@wZ9l2`I6?U zU)D#({b?>FHXA@0rW>GoEq1-<1(uCF^is+c%0fD^-WP~Q6f}GvRHTb0n97mitj#cc zS%gOeEtY_C9tq>HbV&`}icHtMeC)!%-AcpH$yGOVr1fC5fr-NnvUmY6M+X|@;E3|8 z8Pwi-Y%o2sKwf|kG#Q%kI_zd1ICyoQfTf{@*ae6~#AQQNlOcdZkcW{#lhYfpCD;nG z4T~IE)ATh2Vl;B(+_R{r!v~Ta(s-q60%SLxBiNDqZ$<3HnyvuuQ$V`U^hN}*6&h}! zQhlJtQSk`mYAOQJ@kXr`>DjH@?pd6MBtRhel;dcjCMBtW&(lc*UN{e6^sDnaCTsc_ zx~q(9kXkLq@J%3I&1zU87(&-JEXgy3u58N6Jo51Sl;6-Z?eVj((3w=89|6kttD9ie zvY@FxGMkiV?f5C04Vk_s8hHo!S+U=-w}Dhn!|#W7gIs$CZJpMRfFy}>I==3YM>%Jd zdjk!_NrQt;eBDpZUqZD3pZn8jPu+Ag?vA|U1!lXyiH>8i<~qE_SZaAU!zU0NBgpb-V!d{j@2Ao<`l`Sd*>ZS@s&OV7F?d zhgp6vjj14C&@uxwUTT@n8^g1r%Z9vug}bPkm;g?d25 z)vyS4>tue`mOG@>^i7pgDr@tVQi|UqO0f&Dv}P5Y`KZ}jgQT7eQ6#@f_|ZA|$BE$I zUqqW$QcBo3TT0E|V!=>eS#nXc`T4bl;vdJfh2l2$x7b6lT);xXY_nix2rooRk8@oJ zC_zoEoS`ii%$A)rLv~s*G%L`wRIrF8;4kh|p48S0An>838b!vd#obb=Ih-xOhTNZ2 zYCCVG~PsHxDx4fyk293^mm;NNQ4{EtbKNrj$Ck42#pvhzqTVO z)dQ6j`VLIK2gQ7t4ZZ^AztqG}=11EB%0pA~?@8y^37SPOAO&9=QqOcj<4x0%kWxV- zxTUFFrx!$l%J^bHUeOSI7sK~c_!j(st9ZU<>jx@UW?;qge63;%RNkJiS6uM*ii`A$ z7wZ)l=oRPx-*vHl5&#PVz)t~SWg39R`q>*kFbOnS*7S(IxnzJvJaW+#jT}AqY*T4e z?8QtC&no-oX@!tqnK@sx6+VIMSUDM2vhMyopyT=q{`grPw`C8&>j5}D6lEGRa-2H%%;w9X z26njcP!xFfXr#fy7>$vfSjvFI7Zj9=< zfw&^*xIz@E>2hsJz^+p&W+)%c)%z#UheD-tGVO=nDo8IvDkET+0)c; zk+w8J*WojUQXQ{h)X)lHw8Hokf8ky>eEib!kEBRGh$#m`X1vYdv9aUQhuKnWenaPp zuvt?0;|c($bSnY`G-%Bf^k!O`W>G_7Hs3NG7|1UGl}1*Bqzw&aJb0k3Zc_u{nVV~1 z&g`c7G%IA!h1K3P?q8atw`;MVm?>TvN{3vIu!U?a=~ubeuRN+Qfmu^jM(G z)VB=S80B`YTpO13jX9ZQf9sq~vJcSV>S*1)#S|_19WFP25z_MpMVW1&y;WX0Jv$T5 zf;m$rIqg1M7!RwbA8_fbO9d1*GH!x_P@bHfNzy-@ow+JPYc-3kXot1RF#`cgleP;w z`c5uy*zBc7Wf>LNIU2gzr%&8l(;-(cJO0`6j{|ytTs1qhKN@Fi@Mjp+)F;3wGE8{u z80Lo`EBwl;gl)NCQr;3W8?s>b)K%3&6xX_YIPhN%+x6KrY?6>c^$6I91r510VE-Vb zsb2a(1BmisnvHH@Vm5Bh(=n=q!YI03&lybPlRc4z`@dwLtZ!KnlyquKfp(m`tmM>| z#pp~8#QR+KxMw{6w|J-)&%(W8t+Ah>f3LMn^ z%#~N@va=QWg)4Gt&r$YR@D9Q7`8aqw4}#k>ay|i}eIk#QWo?KRK5!-=# zB@NC7dB+3DNbY!*_89RNB`_R2P!}@r^*^2kfmA~M1dlF|WEvnD%2(mHIP860TXcbY-|EwxhqEjCX6 z?Rw3F+MJbrGZDB@>1ZWq3QhMZbI+jB9HbTF(eUuI&pzvW zR=NL@ZrhempVetwD<*4a2kp|Fp&gyDi|rtbSGAVtE>s6C8)ecMFPoT=c{%mvIGRT| z=9g#p?7;lQgMWSwSpS#%iF^MKa3{aVDtK8Fo+>!409M0AcVLMy7i2-6&jhxSGk;Md z>q}SC!6@3XV-=oR&Bkkqc`*E#*8n(pHD0taYH9Qm-JH2sCMZ!7(`5xFf*7bSD=Q5L z+P4?RJv4q@~miarDb2rH;~1inZdkHQz1-D5i|ZC&Dtot5*t#J6`=&hHZ6*;#p6 zm-z0^N_&@ha%bg&F7dscm6td1Yr4ev&dMvAasZ9H#6)ycZZvWVn4Ab7P);V(^7cZX zI06ueo;QsDU1%KnsCcG)s{{>={-s$)b%?({I zZOt{vwLoeteHGPx72dvzRf(V_JWuu(v6^bxTf%C*vbTUOUnRR2$G_-v7W6rbPLG`) zORR20T}d18XDj|R<8_tK`<#pWoF!U<5Z*_@s21#g800d5ZSxXT{z9-uEte9;=&DOx z!nDlMk}o8><9OS}&7ba$JB7r8xZ8qW)VkrcB`zO`Z+x?ELY0dkMFb;i85_o*k??eU zx*JR-K24$?A$)d=b|&!^y*S)t@+uL)c+^Jo;0WHMd2l!po4h>JPikM30ta6C(N)z{ z=W~e)E`DYD6@S$uwnPP==}+G`$L)vW(c+k^tSaBqdJ}CCSlZji4BJ(;Wp?|R+Ga4c zO>;URw&la*%*OdJ8n`jZBmYM)nl$>UzFdxzWC@2yt}mnNc=ctxU5+LrXs2nHo2EQF zju&to$6AEWgRL-YF*JGO`FL_9oeRsUNoSK@!$J&g;FNb%rRgiR&zN!Z=+W{-MdnSU zM;9j)+}4iYjLHR2)5>Z~qCx=gU}Ck9sIXxWIBoj-)rrZ>+_uhxvWE}dE^W0NLM469 zT)?(dVLq{-&zX0s*`8Qq>2tzAENeJ$-M-N+kz-^uPtE&6uKN*5~o!zajzwPK}ox2WHDHG{fJcjV?%w3 zto=JrG~?c9f|hJp{m1df#K-1nZcd*$+LFWd`j^=P85{B(lIsuwrrjn(XH$&MI=*UdC7sP>kut1Y(jwskWh1sIGbPn zS=(=-T_6~REPTlC#Z4aN(zuGo?ew0}P$yIrZ7mHnqLCTepTXlW*4uf|+OeB>Sg*Iy z#AU=K*F;~#dkoT@IpJ)-(t^)peuQ^+RtA*Y@W2f6hT2v}cc6&`FP5!*FCE+%-GL`V z-atTEn+{urRRolO`Lph?ita$u3*G>%AasA_=5)#%6Rz^iNi;vFB;WP_3wst{nxQ#&b@M89vsc|*t!{QB zn{W)@P0gbv>@2?M?W-(^a-HQ+^QlcmalWr|@u^KENXHUSVRb-@p6bxQc!fI=gGuw$ zV|vKr`WNruz$E)3@zj%g$Uo}er|H&XY3GUN_~(hI@XDu7RG)fIPl5WC&gKDiYs#h$ zfaW%3-y40j6dFAoebmbik>d|IlxcTr!VMED`Uf0O^71<0X-Pblr|tP6Q;GpFnPdr3 zCh=50F2qtf{W|HlihkY1&8+`3@h$ZBrYfJK>t}?xguELy(_=} zgUR=bylWCNzcL?p#Gm^sfJptPKvZc!xc~2f$mkN~?=JiWAaW6iiRuRlkHR-n^_Gn4 zJ*Z^ptfqkG!>PsIj>R7PO0kzsDfT(7SR0H#h<-atH0w?Bj#4UMY)n-rB-sBHv@?Gt zXqnyqPhha9_zbI;b- z`IM_6``Yx8Me(RBJ#$Zo@ZgaVYo|6tIeA(+o@6cF?l=(o=H{hR%DiQXlrll8@VqQq zz;LvcU!y(s__e2#dEnK;lV?%fZ^~}(LGPN^kbD9FxB&mpl&W64Pp4z6@;P=F-Z<>& z#fAuB2m3x<1&Wr~9UE<1@~92$5y6~dhckC8i(}`Wan>hi;PH}SyNqSj8Gnjd*Xp#3 zxW#E%C=!?Pn@lo~cNieNfw|GVy%4$qe)B>LrLB2}&@}6AXI}T9DLEgbHi2mCe0wnY zX#+5#T*DrV0Xb1TaYX4?+v#aC`L!!Kc)sMH==T|Z?baA%G)=tGl!nTE{-%OD(lx%{ zi%)ZWxOXH6hoG*Gm#LyvfjPE}9X4N$BcjLX3@a!_Gn9CAVdM;!aK6ISbP@r3mS zu~&*+Ee#I-q=~OPf64knH@g+LjA2rb%i@SnJ;_q|gk(6>riRgrw+2(8AfDug_v1-! zy1X#2-N{UOeQ9jgPhpE7CxkdAU04xvc4IK9nppNI#o9%5ev3+IYbCK(q_*}98AXsP^HlT&}+~tOQ4QIE(+PZyt zjuV)}YRH(*!8}hpdLvn~Czf0=8TOo`w`Iujwp<%)G0VXi^Ss1rUv(T}-4MOEOng3) z#l+{6d^&^$pK-*Ykl=nOWFqW&M;r<{BzyKlA+`IN_@YDH(`IJk9ssj73&EU`5y*m1 zJK}9uPYHPrLS{k;HWB7bZyP|ivvv?0BI@Fdau1#5lVv|UZ7h~gUK4_0vv&NR?gEuFJWVP2 zs%1Im=`Hlcr2A|JAOt|yyt12XGO)vip8ZWG+07#b!$smG7B*t-*g&^WVVcoS9|jIv zJKS`=yGYr8K?5aa?YNeLN@$gVdYw(#_)Qlyq?xMs;!K|?=!~`FPo(B_f0N;S94d~% zFI6=Rd`Tl>=~PmZn!>O1k=)jFl^X6>!|?#^ zXn%4eg#zt)r%XH+S_I@u>matT5U6=glcC9gPsjJG;TTalUg41eDTDzl4DKfyR16F@ z0N-0E#(Z8aX(KBB#>CQxNbm-mRP-#r0Z+1q4IxV=sH9 zuaTd@9A_r_t}HTy8HThBWsx)mEsH1^u4tqHTy+q3GvS-BHt8MK2@O(CWj;Ohh_25m-o_|HG4_AYLUnq_Qx<3;Fe!m}jHdRRb z*3kRI)UiHg@dp6GO1%B35+#|YQ@7Nye)~^&VZ#`n-ZWF&K1zPb z#5`78z&y~nA{ZWoPr>s}&lwHAL9gr?QZ9Z<;Js7^XdNjHM;fFyi!r>pfi0WWu*3+h zZdk&>U^Xn_4WaCYC3Zvj-m)!1xHh0PpGS2nRo2}w%ue&S`~jtHj6xVLe$GPi4DQe8 zLfe!=5zmg#Fub-j2<@KQUY~OM1Kib2LZ!&5O+&p~ToacxHD#}cfr3(;-oV6VELh7g zg&c^);t*8w-nP1ZFpYPMSz>vk-8CYH;UHd@X{XgMcko!U`U)#ud1kD~T6Kp9Vph4X+e z;37lkGiS6DF2#IQ_6#fE&{BI?C9iGL0lpTBfSIL*2LLRySOC!FHzGgk$49wP>2RT_ z5FzpEJ%ZB%rxLGxG)_CgK5e$t;}ebanKF=KR$Bt=D_~_eVP$AGTdG%DDCQT6i?t^g z`ixl#XhhX&lLjiutC>owcx4Mz7fesaav&eR;=Uy~8-Y>OCS;RQGrVFd?mgd4Qz73s z@t^mr<=p_~o&6SB1}LZ_)|2>77%U(_MPFk&r_q^G?TH5If&k+gx*i;Pp*)S>oQa{E zE(aiX9-6{!=Jbf;B}Af;xh$B;jvoPP!@rf57RTT5#V^CN3r^^FE$z&`T8}}DKLEt2=&aOu->H%HUqvvK`YscMaSl8s!BtBRri|AhP7GB+= z-wQ@wrNr9t87!E9mlNzuxwQkIoi{Dj(juz>vB&fY_barL4a-af*1&ug1Yinqr2+g< zqTB+VzTrA^M){$lVZ&C+qLhh)t!7Azb5k5@&8BvGIEIHUABun#@?hkZ7f_FUF}aC@uBIS3BaMCiJdr++q0izbrdc z_Fs2EW}%_6^c)}7=6E>^rm-6*Wd<_}@Pgz#dZEI)P57R$iX~0m@fyRG=p5*FNX)^$QfWUl~48g6w5*(bO;1y z$4QbN53tA?M=HXx9+1n@L7sk1$P|)Sq{ARhmK+h1(^1iufQq*0UPx_fLVye_j$tV0 zK!%(d8Pu}bpd396(qzeD87m59g#50S;p+zA5M+Q+{ya#pFD(??zZ%Iq79S_kyi_6c-oA`toG>}CJ>l!?O;gTJ*yc}^RG*-_Ck-~^;Lk3 z>e&w>E37gAe?78!1r@Sq9jY{2ZJPv!2ZCTGUo{L$Jc0&;D$9C=a>|6_yfc^dwHE(f2HgU`vq=jGsw za_}WNxJO&@^ukld%)$|#kB}BW04usb;3F<$>t9wQZz@1VGGOl!vW^n!?o{}z-?Fp(1yO~r|K)bO#d;lwAztmRD|@6^}E8;1KQ z=g06N%XxoBZ*bO*ePdrwsQGC`E~~!b;l`kFrQflQE!t`wY?Q^-V@! zK)H&jTL}6;pgjIDx$j2z*^e}4&yQt?L$oq%z*bcwZXuflYk-%;6rZmVR-9kL9H#9G zG=r8tL#>7F(^gmIgVDa;t1_YH5_BN5)TOBJd%ALT^4j%(3M^a zAgi{5U|<0T7N9F%W69BZ3H911s;1(a;TaEXhv}cVR?dv{h z*B&q8fqP6ceZ(o8rG_vYxg18PM9B?vi4;-Wu9Fg6KTumW5NImwzRC zZf0~Y^8z>1oR50-o7_^Yz#Gt-T%aWL=&DLaN_*2XDVFCY4zY&H>dE^H{RZo8(^Y!U zU`X|9||^XrT>YBTD!hm>Gm8B}NgHp-?68_>b#HEs9%)k++>kLQlX-G)m>dsJ!K8awpK5OCMkkf^+JyfO^8b3me<%5WmXY_4g0CS{(M=Sj%S?CyD4%&t(dMeV04=t- z7yE#hVeS&Y>=|e7@__8&(Kejh$yVo~od|aoF-mSU&g!maTXR{not|P9nUAf6>1Xb( zAqI7XBFCx}V{8W0mO5QJ3#3Diqqx~cZm ze^$FzxlgP5=|4@aTA-={Rag1gYC9lW9u;2z=$%i6FV;#X8175MunwzeUX9f?d!<;3 z7YiTPDn%#m5?B;Na%x?6sw!3oOh=7F}_b zSRzJ2jVvm0LBq#{pe$|-*`N?W3)?iMHVre8w%L$4SHx#t7xS{J5P zLq~JU%&N82myz+Os`IGoQ|bcjldY)08WDa22K%*+@=o6U$(btlp+AgT=vWo>mTJz1 zF6%0FscI8dpX2C<-JRRy%ktXc;R!nRt&aoQ-P#~|Gv8i%$0qnpDG z2tLz9{!2F1vZ4wWT5Gl985F$1COm^eC{+I@wgTut#nE9_RXO%Ud!Wj7@uC8#bCuTW zg|{5o#AcPRgshv11C}t0wfgIwr>*|$+#{Q#LlV9Y*=N7~&%wuohfQTY4HJ;VHhE~-`Cz%huH$&(5J7zy@FjT&^iz}jzbWDH73mVbaZJy?ax~25 zojknfw0=L(I_kES7QKshlACsthZQ)e63Xs?5q9+uaq2`QL6l)NLf{+loTn8ij=D~!=ZjJ zC6{`8IKJpPAF6b_j2}z|RD2oR)7Ik%jn?~C?@t6tiNSaaTAY~4!y7SmHufkX!hZ*k zeHm6}VjK_WPbJnhZ*yHr{d>eHMtV?+|Lc}WXd1T8;vQkkPkY4^XT6D4FAZgIOE=5Ibjq&NC~W?8dszbR%D5VfzC8aCeQ*L z*_t6Q99EEgHleI$9@~_wm(t!0716mh6Lu#`FIwoq5B*d?S}D4OWD=uJ?fSKBjaRy_ z6~|m_Eg|nwImDK%n;X9q$ebZIkrf&xjyH?Vnj>hcsIWg|*7TV*J!VZe7Jas#=qfMF z4odOw$qmTK+ICXxS;^fZCBEPnG~u$!iMOEp`i^7UQ$Xw$0%9Ei#Pr}BFp_$3KfoP5 z_)c?Cc2lskx#+^CU{`a|w*Ue)1>b8fn${FN)LfL)6zpy;x~M7mesj_Err_b`qKlh? zANcnc7guJ-OM7mvG!cO>E;c8J+{DD2fR{Nm67~BKTJ8NBfc+oaX~*fGPmjuZ^EAlZ zedTGX=A53f_4K3c;cHGy^`FfHZ#qDL=419+!O>l9`1%kgQu5cYf0h2U=c zT0vo>m=|*`Y_NQ?v&4c!>V*8QXl#jW)+MGEhblaFl%LCMLnkUpeXEsDr&Oe~MWS?c zPx=V)0FG%+T*mTNbHs$> zh=P$#ouEZs6V&PLvTF=c@mxe|`6RCMFOq=YO|2y0=M?Ifp|nfl8296X@_m@t=OK|Z zSB0HYU)Y*PV$g<<7}6Wid=!pkg$+7fY+P@hwcM!>N9WL=OOAhUphFMNMt>&34U%?i zrXa-2W;XnIh%|+q4cDUKh8pL5wC&ST{c)f}(yq?rcPnV7W_Enh9GBMS2(^7EnzQrG z$?sSf0C`g5L`e5&56ODN0kJ8pc;i8%m`l-HlHSC5O}HyFxo}`SYM_cvExU^BZNW77 z%!8HV;GxTFAtX|09fUF|w8A`iNM1{hU7YW!D-IPDy;l`Fe4?uyCAZ7b$91{$ki70a zb=9GQrSDZOkIMq--Qo|ExiEzr|9Om0_i}Hv0PkNIFNCDI3Z% z%?atjxq2zkHjDJqB0aiPk1jWkTlqf~k(WG&MGFG&ve#`kT?1@=W3(9nmSNH0cDpAVE7y4VvoO@3pQ&w<07_8#3R8Qgs=&NI_sfdu_9wbx^@| zuE72}UT_B%90-Q$yr~rM*$JP=L$PDno`eHxO_xh0&edh0DHmb-S}JiVwPb(vloFRm zy{Q!N8A^rHrAqW!C2mfYczPR`|FbrpQX;zc$%)HeJnmpQOzxb-k9|E_ zAvHG8ja(VOk;Boia-i~}0T@I2{;HgK$hD@L2a!Ez;dS%mKHO{@eQe$lc-Q3({?{ZE>}P&`eTEf0URDJFttf)%)+uZ`XF%_nXK;y`lZ+aUB+#Su!3>^!AM|_vXQ-r zMzExo*0^g-!wE7B7F{RZ{W=8ZZS+E%};vK6-g{WqkvRe_4~Zan>Kk7H4q(Ck~YVtI?+jBU^segaYR>hb@fts zT&}CN%GHdgnVV@-r^e;nP>J!>F1~`NVTUwcWhUCGFv(L*ezdmwHR!0+QZNp7y%}fR zMpvC(w^d$HVyt_SXD2O3b(6N|tlo=BmSCAEwY2>OuMq>gHgAv`U1%=tV(KdDn$Eif zgIf<_a0UfY4PzckJS*qTyNuHP3}gB!h@4OI9Yh9SGb32#!$^O&NA$u>J~}Y;FbavE zT!#9zQX~3a)eN6f*^&s1;It~Ji&TC#huH>N2qnqbrRx)QSBzWvrDXF$MxOZJBTN zgu*3;^fn(Qv?L6#E8vx7#%C8o-J&4H_6?h61+JKii%H#M@n3lId$GfVfnk`snvtm+ zt4@WLP1d?f3?C&`D$-MDJ8kOxdn5TpWVKm*}EI3vgfL}ttZEeRP6OO#WA1l zT7awTV0AzGMtQ9u&{1P&ZG7#v%d`1K;3ke#!p>q>_2Z5@s6{JCXsv>8F?72W-9WtB z4dy|#96fuD z&1);|YfAJNF@f>i4pMc+tmoj#_1sgqWuJS3#(a@!nqe}*R5`sw2TY}=l^S<|M^@O} zhz~&g>eiG(ckf#`$VrF#W2>@i^SQ@JwHd1`(Vs(gV`DEm%`r=i>$%0DyQsWMJ1@}k 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

    ?nC|jXmf7U+a9P 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

    4xwuJ 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

    (QK~)GF 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 lM&k2-4Pixo=>-9hd%2YyAo(8#Wf(d;}x1 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%0DybcpDe$?$|E)M`v^Q%ca9M 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

    T_s%p@!SeF@i4i^{hE~lQ5qVc(e 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࿫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

    )+fw&YoqT{ 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

    wah)?rCeqiOUbUx-#q`CNkj#Kv502(<#+kR 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 z≦sivg|K(7o;6^#f=eNU$v>>&w2IMY4gbop*(HqS`O9{gL6>=?HlFd(2?t8>x8L zjK*)4mqmA8X_Mux6b3rWL16#hS0SIar;&5weQ*r$F(}6jKHhn(+EfWWZ9`mNn|O@r`!q;7#k@oQRQ3xIsi&|x9MPeVGg@5J z)kjBf=qt%hqZ%+ePpj+oZ#9%dDpuljSL?BWPm(R|&p&`_J&#Pl1zw8SpC%R8%6|FN zDy`P~a$Vdq-}^2nKAGH@P2U^=Oaa=CrzQgOhc#&_e41kIl&zhOnv@LR9du}Ss$E^i z=s$EQ_@b9%Y(!q4k>ON?i^-PGqkcdnI`%W1Q=yyvT_8^-m;Qm#@GLgxOvX2UPw+mO z@x|}oSD0U(0%fFL1*Z1H%bdMci)9B4_IAbE9%K_C7O|tyMr;oR`GaJst(v3= zJAfGjFDB@iRO_gP4#*T$ANGwEttS*;EHsK8U$GPo(QwwToPh7b(RHkXL>c@~{$=|Gj%4dxSgzgI#u^2&3v4 zJXMVcu*jEjaJ~*kU(UIk(t_S z9uUTmH{qe7I6`*cd)z**)cm0&oRH9Qf?E=HO4c@*O{tVrq8)%0D)2kUv)uM>kS$z! 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

    w-(4fTv>=_=RQ$PBvl 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%0D7T{n>9ozSt01Nc|u87p5!{X*qM7{Ch9B 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

    S@U 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%0AGGDCdHml_qh>wvW)b@%bM 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

    Iu*E4Qg*h{DuAn*WN;j}W`oR1=j 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

    )-BOtqbcw_I>GoUkMJ?s<( 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

    `t4g6Ejl`^7Ap_FFjuT;0!7S@RoAvV!{W@^c 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�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

    7; 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 z°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

    ?}7Uvy{-5ABXH0%_p&8&RYx@ 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%0D)gmz$yf76YO-smuPNmE+Df2aqGFIw<5INivw@s( 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 B9ozr_ diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_da.cab b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_da.cab deleted file mode 100644 index b815eab9b98addcac9aa5c61bb2058ac8573fa96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29356 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'Li=vVH{^w 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 F{}1Q!tbqUk diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_de.cab b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_de.cab deleted file mode 100644 index 688af888ef09d9995f2dabdf1d4fe243f0678068..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29458 zcmYg$1yCKZvNlDFySux)x42WFNO5;}Ik>yK6^G*PP~6@1;O=%f=q=GKz;cF0R;j5Uk&TOi1uHOC*J=N{)wJ{9SY(L zgy;PKo8yg-@^;B4k%U~0xHgyf0hy)1jJYPFaJ!ci*TBeLnvCAI6JsFn7guQi1V?rh^zi&u`{x_GBg=5vHY9UCy@8 z{#?}n%t0HO{=*-t6+ON8oyR#o=i4qb-Am294@stC5%@Lo>0kLJPAuTTS2HSY&ZWHx z;waks`A(w;-o8@4@?^${^2UvWt?K{)9o2XXO&?8jsBK`vRC~XP4fea3io5$TQ|UfO z<8^nl*b~a*`a_7r2*KfY-&HG}N6MUYwsS4wvo@NVuahRm9!KVwg+ob|Mm;B$l~gHx zZUPk@k?HSLJsyqzYuTpv5K9jZ3B(~kOiUfC?vvb#FTysDx&2?fdTZVw$#XHWEo1}= z+{@w$97bN~lR}m7ulCi$lOAG!ld`R8QGvZOX%Bp1>ADuRNQCaGB~>Nv(3fE?5&6Gm z?B5EJ)4gPzAT4;%1!~@Yt}b4S`iIPrW4`%NM-!Ql0z&X>{eZ0gN~GN8dsy~im4tiZ z9@d3jD2_xdXX?mixVrXjRcJoiDH+;5=5F6k(2CvM#3XE!0b+@wcvSK*_~X-tj?H9} zkj64|$4=gU86tjH7J#J6WAc@dUBOQ$2a_%?UaAj#Lr!%St7YLY`n1+=UJUf%DCCq}A-K7V2; z(Fog%dE1Bkpl&)T2qA&6IiE8RAa1h$)%&HSSPYlm*6v8leqNsWwG9O#ZXbcf zeumi*bwDrZwFSCI7GJXy>E@A3V`x{l80P)Un_?R(&1kYLLCNEe05|#-r{gbqxyASo zbz1z_1+~9 z)P%2%rdXT82-{yh4d}_Uzwl2uXGEHXD9Fu^n<0J$SIg42j-*M~gsr;8Yg_@4heMSN zD5!+0WV-}0jX;9U7s2koa#h)flx|SDkzV}G_}T0 zpn@{hl)i$TL=_dd(*LzO{L}uMUVw4`&+bW;^js$!_b{_|E!w82%b;o@q8ca2fZt}* z7tXDn!~8yRm)bgmJkq3~BRXec)dSadte+LuR>#3V@vAGX#nz;r;c(yDCvvk;8@Cc> zpu*M5ae|EEkzlh@wWBn`Cot99tg#nbRjzycf1IjQR3RvQ0}pp(PArNPu~}d_#T4?} zcU)Q?W(PrHuY?#f?%jV??IcT0V}ogC%&F8(RrtdF+f~jtn(D@nO%G8pg^Y4Vb45K( z&?b%5>@60!6kgAAN-9@XtdA9}Xlx<*&HiwpgxbY8H`{{oNY1jFzd0~shVtH7CnS-t z`<&-_l3t^-)=_{_MGM|?AL91nb# zJQ2Eo5c!CA3C#g+Kja(Y82hGW_6HYKlURz*umDG|3mM=u=5sR7sk-csi0qhSM8gNe znxO8Qtz8~kI;9fynf%4YJ_dlMp(uo;g|v<>FFzM~3aSpb#;9%iFM%Ilr@%Ig*b>^E{1ZcPv`kD}0nHnc2#$G@Zo>s-9G(b4J#_*U=$ZeOO`=X@*sUtMDr{uNR{h)u8_8#o;)n6vA=$Pmx?a>6@f?*5w-(Jg zUZhP;QbA2c@;D>eHhnv!Hryv`Ow7Y^DDuN1{1wv4KQ{~wMJPNuta9{CIVg5o#nv=g z&A2dD7M6#^oagB94;1sZ)C?Vuv&?s&!dP1}w`MWjUN&JmBx@;@zU_uN#E#!5lu;!x9gtX4;+e=HllG?k`(NYOQPGnnML!Ot+ z*dAy?AF0zy0EctSm)UoxB&>kvNn<1QRXcef45?qIBYX59 zT$53*s}Eb_o654x=Hel2w7^LU_lRNE4^6i0%Hqvk%P}UxOs5*Gyba@-gym_WuJ;_W zwUw=7pSj7*H}(MJ@$rQ3-BA)wbS}ncA7;2DTe1}ItQf7@KiE)2qchYDc2g0I z)H1HGyY656Ypu1m93}e(<2SN$#NCLEbZ#*MCw<VhrU8^hJVp6)+a-{;P_yG!o1UO#7BU$%!glG3+VJXX}M zAB3B{ktc$qk6H~pA2oS@3O$+)?6LTasZQ?RHt)DdhsQ5>AJuO8icj3dmrT?QcaeZc zaNeE=IcpW%uY9OBECiZAktZLWd}}*S^JZoo41R%4z3%dys8JP3P2b?|^L;^JUZo@9 zm+N8=C9s8X8|^p1=8T4)&x#xEeO_1Y(62B}q7Q|S^PRD-SL#q;tPkAaHBk5E6f+z4 z&W|JctnXcdb#Wtiqwcz0*b3VN2+Btm2l;b<0pYbhVGW&*_`;oe`K@eMS44mJ4>%j? zmf;@Wc>-!4pF8SevOfVkp8xb#cUd@|2GiEA@tc+Iw^&u>Gq&Vzw?AKub#0rNuCR(S zWQ6$O$LyO;OnY3h;*I*ahP*_+5*`5EEr&-=dPDt}!vzol-Xx923Wdnt~ z0c+iY+i5Jq&i0&F!EA9PW-d~hlpS8>ajX{x>TxrO`SJR3-U=NYDJfQ)@{grw`k2za zwC6q9zaF}YYOuCIKes?!TOijhkdoeqKXv4&A3I$N)>t1+?TTRfknlrwn1m<5<`Q># ze+D*4W=#X)7Qwg^iP#s`SQb_Hv96Xd5Ra1&e@~<;778azlMA8@0%>B+b(;vP1j@_R z?j$_p64nA&5BBlz5sYJv55r|V`d6gj*^07)#K+(M&{r-lmSW2pQY*W`zkM`l4#Ri- zj0q|c+lSF_OyE{CVAwlRO)(KI3$a^fwQNFdJPCX)!ra(sg&}fR;cV1dH(McE(_^J| z<6rw~Ny=U9F^0VR!n=1o1WuTPc`hORQOxFqMkd!CArEXaK19lG;PR)B8oIm?wh(n_ z7lfP%9V`3dhye&e7mz!_JL0?#b2u6naKoB^CuhU-X9aODm>{oIEP}^}gUqSTp4s_r7Pkal=-PyOUE%7k0UFSk@whKqlh!)t)I+qw1oo z#OZbGV^5IfZDCd73YbmBr6O@LoIw?sA414PNHhsVgF3+GMqWBL$z)#L)<V8Lx@I zoV5gHBOBqlQZ=~gp54}yEOoE$gib%bIKW5U>TWgVpXPTn$NiPya-ryq&MjjJ`#oP? zL8H71PXw^Dn(sFh1pO%up2*4SL%~PI$Z_Y<&Q~J9C@u7o{;X-mfdkKq1j9Oo9)USc zWtIBQpXC)0ci2FLXSb(*h|eeB^@d(LHyagk9)TVrJ~|!BIAXkhn#%rsN@R?_>Ubl_ znSyzIV#nLyN!DH^iCTor#*+rLR0~LoMg>!floLNPrvrLO2`g53s+Q~hJ#)YZ@V01$ zo+2K;zE!MId<-*3`kn-UZ-Md&W+m569Uec2M}?{ZY~^DvZDO>^EBA`u*>_gX^|JA+ z&mH3CvWN7vNmIG+zhk#L`+FtqK5Klp4Aro1$o%|knwlF_tBBHs_-C@;4LE3eSRx>Z zV{d}RdVltQ#fLYvziztABY8e);dW-^RPPvH=_&auCYHAF`7MJ--y>*O-I$Hc`hDJ& zc0jY`Hi>C?aZNaSEUJBaj{_O_78!->fx{Xj;$rVZGLRn4;d|s`)LrMil2Y!AZH*gb ztktGnojjuWqL)*Zu>ejOQB+F69T_d78kILbNT(iM`dEi~&zQ>997%yP&LZ=9G%+`T zO6Gs$5JH?d0-&qc>W6_nNO<3@aumxLhs(rook!mAz>V;C^LStv_`3!?@ICw;i~>m* z&#?<7F6O~~1rZ3!YZL1BkZZk00Vs(?db!5zjjLDyWVnegT4@1G3u4B3C*cc!#5rJq=_i#7D4 zjgs32G>4s2ZvJX%`*61F3F0}ZLsLW(kTM@^2CxiD-U{70S75vw>B^$<79Rp^s@|T( zeiXyXjxUbUCe{kWJEKZSXem;}@FLde-c9M2t)e4Db@dVydi*%nAs<6n;tH3LEqB#y ze~yR=>|z+@J-;wb`Y@98$-SE>ptGlz#1$4BjXx)^31u|o&$duiHWgT5k5ADc7vYAP z2^QEcw07K8SA~>pK^`{20YB+Dk_wmai%&tW{}oOR1^CfI>&qs3Hg8hIUcCLmn52yA zVoqR;ZOr#yBd_RQ$3a2JO)Y5AsO{h-oXOn<)H^Tx>k}XUf!pKD`^LDfKP@CY$F<#*g1%zeid}g6=xG!Z9sT40HJd59tF5PuXh$%gxxNBqtgx5 z9gpqN`aEGW6$vYd-ESYA_C!%DYEFKA++feS<1s^4J%rhOFk!#*js%Sr7GG4W&Bec6 z;I%jSX*7>3j9?6{v}hUVbwLLUkMqNsIC6M+xlxStg?kx%yDIELv?{MWr)3v{BaJlV zD7^QA1TDN8^Qjju%JrTeEqD1ZvAcqejhSur9+HtEbQfEX~2F-Hs{O42^>yUKwKLsq@<(=@f4Sxp!e( zvEFTg0&8(wX`HLb${u3{y-jUiJg;p z@imH^n`KX>Efnw=sfO0?y_p-gS@^+bZw{e06Qep7n{5PeTZ-1!ouXb4iEJ$!pO<}s zl;mCfPCU|Z^S0L=HLhbQ(C7<{#CkB=J=}ew!PdAyrhmRy<_}`iT-6SLd%+?y=;=k} zl`Nzf+>3^Hxp3*1=7p9dhoL$-Nf8q8xNai5 z3rdW|TbK;6jW}P{Zbk4IIv^xVU;PQdR$0oIZ5w&uTdtTM`Z!!CHqO4QTH@s41W$z# zta8u+1CzfibuM*qE5)YEZ9ntBe}^7IDK;`7RxZ@yw}-(3q&YJsJ$yH#o2NP5!#G>b zjJ|gox~w~nL8yzxF+OTm zX+FbP@lE>~s*gp$RO1o$$e@OoQ$Kvx;lJmk19J5`kKnY)$SQ+mTwb)=dMa^n3`;bW`wA8cF^=$Y%U6&EK|8 zVlq+a-OZVUk3(EA`8Dv=)Y`5BW&#=+TwT7Z{$RZeYhZJz?OKjF{&lL#hv~xZPoQl& z_-l(NRsDq2dn7%i=66>Sc6$RClev(O^ZnlV{VDFBzfJX4Sw= zJ4naLw#ysI$qXrWz{}~dg$+`F9KLL)i$Grwv*OTf)t3IA73v&$8x0~?OC&e)S|Xbi z6q$iH5!4^@J^In?u)Fry!~*7}@QSYq4{5hq2ZN%GdNm*4lcxqOB?#Y3#Gcj?ABij-agAThun z#fxRUp*UyZ%DpPDtTv;3ukR!ig)7(9XE3q*CJnB!oy^C*@8R=OlxdO9*dG-%mfQwz z*$mn&+~&~4&>n3dc@80Fh#eqfQLuKcB&?L)2K^e3=q#G+SC;d&{fvhIE<%KYiXLOqTHHC`$~P)T83 zaCkMp8K!IRo}Ly$7ctuwpnBd%_pnpwjfT+tL#N2`izr^0HC|vKL8#hE-?w)%tnUO( z*4c1HDyju+XL;9??Jn0Bdg~3ymV@2LelAC!ll(4M!n}VUlZCdEUalmVuMV`^b6Cx5 zpH0Ti)JWrsKMrh}aeRJ?sF_mS69oXeUObxlvVy^Ey{e>+%-1V>M~I9laWfxkq1VfM zlYWFvhiYf%#1*7|l>N0i^cs$DK4DmCvv>>){uXD!`OAAwGHT^NbCLdvUP$=*t3@>V zd%5+UmVJ3RWfZMh`B-n+iYihL_rvKsYJ_RPu*>h6-v8i5b{qD6v$XW<+J@US{KLY+ zB|7XK_&Q`DvEHv-2iGP6X;;%lu$!*O9JayE8RCv)AN^oPu0w4$+d>)FE%10*+1!Sk z1~us{y1cX5D{*w7TB?g2OPVJ*SK%Kuxy7HvpPYJXY*lUTHH}*6Hxna$);dm;I24O+ z?{TK%bN*n^)0HtMfM0xx8N2hY$=K{AQENzHy0ZU$bPy-hr!B4#>d6C$d!K%&V~_W; z*y+t+FqVc${iMm}j`q-aT*i2O_e(qb2iN!BA@9xJ9;AC;JN{r%shSosrMQ&iw9ypA zHBR&R=jZ%bUuF(ZOxL<+vy-@h{#IW?6SmtTP02hZY=)AHnU!(tSs zZUbc=@2t^XHF-I2w86IL+uy9dy^oM5)Em4y#euJ{7hP2ep2lPKS8YC@R_5b-yjqk@iq8FYJ*xdQVM(ndxIXK_WlvHB;?$A3=D z3c+5X+mmdW7^wbGBA^kCfCR1N&(b=H!Z(;eex0a3u)@>F*;p`kNdC% zxT(Foqg`!k*GDKBRLd0zjfBr$_dfMgLV7n7-t)YVm~u8+or~V1YYr*rVG}$1L7(p| zk(=Xa!%^zgJ$*R#P=%4*#XUm3p0th#~%TQsnF?b1Ci31%hO~ z87!P}F2sidO4;Y(r&S>qo|zHNj-BWQ_(Pww=4)FeYdie}ik~$JC5nxOj5cewJ*sn+ zX5AU|Obc;I3T3n@`I4{p-sAF6+P{Tf=2gi%i{%$J^vX{{g$${$0*DT`Zei@iIGg@l z*RQy9%9OP(4?#z`n<;@GqL0m6=q-0UI{q+%jg3E{M~i`ZB1vc!5tR6nukR~7gONo{X*-S#0;b-Dm)H)va|u%X$(&kDNl*W|M2uy zuo+ru{H}#eq>%JP&%Z?z!()}N}4h$Gn@5(3pOW+t3F>!#h+xDayEN8H8GDloKjTw>9)Ht8>39FB`w)#$nm0BPaO-)QuC>PECk6i(n>0}LT zK3Q#b$L$DU&p?qLOk8ZAW4G6`{5Pn*?3`@yDVNY|waj-reRwU?YrgO%nUhGY2*1=_XdAv72U&w_amn60Z z)wkk@p4dTNDu%()>gP9P;=+3Uf>3GsO%EYU;C-E5^}gL#_^!kk=VWa==+C-8X6U9$ zAeZiMaU9umnRfqnIX#H-*H? z4mljs4WxRX-((4{&M+RgaMVXO(9g0%C=?B?xXXsx=d5aDF$eUckBx#E#$@YSdP27Y zjyiG3Rwxg{K)>0!mF>v-ObG%EHVY>B&ToBqXyLvs#s$Z)Mr!u;H-!$v(Q3SG|?SDrfN?lvvSY_{32TjlTpdmkxR>x!c%U!GN!62 zZ1_O@wn9SKXp_Nwqz&V` z-8-@RSIKhOMO1vdxT)k*C+<#dZJnba-7D|*Z-h9tI@^Xr<1Emz>KdemJZZYzOYgp9mDj@1d2TtOKl_Wax~$NWhfOeG?@g)GzcRBg%h2doz9IiRpnQ#b+3>5NCt4iZ|)~ zaR+gv*A1q^tSjwYP_9gt_nOZ}jDF-eWLqM#1bR9;qW)Pj5 zl|5I)&runTz3e~cP7xYr8mvF9JC+WjULY)bD^s4PmX$6qNpCyKAat=7zAl*V>oWNM zK3ZBVs}|ZWPf;{2F)NRsk<}DjZR*@r%G&_=Ah|`bkWCWCnB14IB*&4e&9#z*v@o1ICN?t>Gne!#zsu$^_TJ!nrBI z4{4N@8OjF%ujyGKeJac>?pKWIBFQf@^UwEKlM(n4xs4LR{_Wo|8I)fx3Jw;^P)KAI ze_uZP2KX)D&3B;rqt0AWU6jiD2g|t=tflgTTwe%X^-5q)JTAF(dex;-D-Nvw%qPrs z&>)(WBrxLWYyY8<4bON;jr-lei2sMIy2*?uC*l33zQ}tQVeFJDpIUJqMU|zFp9)U{ zCtxxuS8z)} zCa%(Nb!@GHI;aMDo1yE1Zw(`k(=ap{>R^t1RW2FS1dNFaSM%=aI7(M(e!3zUd zJAh!{Z*1@+#1riK9w4UPu|%UPDOc35Xp#fO>>@@J^pe`uCP??xqZtuEii0t;DafpF4a$W?ECbGOOz6Hs3QrdUUS6va0%t z`%?ls(VrpKu`e9Mzk`u|H&Cw-a zSxmL23hQ!Y)KHWS=iS~y8#0g69z)t76UIM@EB&X^3kE{%ivTVGXr zezIAZ%+MJ`Xq=B}Sps0R*owtiBe2I?W(xV&X$VcXqc+Mzl%km%+rpdzLv67->6}~p zWG!xdGZZVi>=2f^`I5(3aad>~9-FwFH)rznaO)!!`Qa8X|2l)rtBIN#^ofr5*6Hmdke~&XQ$8&wy~(iU zn5Tk5qA9ql+OV1gVG3BXB!3=5gHyJK=_Ki4YV6#7*bgn|gOG$xG}*JoE+X0ojwvz_*KCKU8YL_+%M zRWyaL-56YD{u4l&*^5z5+&%6+-E=*-)praiP;=alW1Kd6b`!aO1t_SVC!5wY8SeHU z{c6Ec_T?o&qUqO3JwW_BJXio<@3GbR^T`jd?Rmldk6X8A+{ea{?~g#*c%8MOOXM0% z0BKD!MsHox&THReo%N%(`gya_(h2t;sh5pixAHg}oka^#v91)OmuNo3Hj<=smG*7s z70kO86K~29B&gnB?S51%xcDolZhxk2e(!H#&9Wk1<>?w&=mxL+CMXy2)z3fcZ284) z>9XaBejQ}1QN6y{`M9^CN-BgI?hPP&Y-fGo4gGK_5XBP6lOB3BDPXLz=$9{tZvAZ7 z1Y&XebAQ_1W&OlV-8gEl;ISVGrcrZXHGl4JMS80`5M+H26f?l^rZ-=YwUA5r%+e)I z`gl%z8*)K>7Gz!l!F-nP7+`sa0T=wkK1Aum5sDLYGV`+LShF$xh4U0jk}4?o_kRTD zGvhv(R#c&uJQSD!g*ZN@O!i+K&t~hNL>|jTH(x1C9ob8>7ETolJV_%Y*{D|{Dg!|7 z7#N)PLHo~0vI<*XsS$AO{Va}efx|Yq)I1QwH4MEYC;p-aIc>Ci?1$kG-gDBHzLJ7=<1TJNE^H(fzMam)vH5R#VnVG*NIK?@h{WQ$s956H`*$x~G_3 zic2T=>mMf;$C>XvCz)Mhv`ndIePLPnnN5M_!!s}?mq#pHTBx#^^#F&*0Xb?6)+Uvj9Qm~5TtGd4hYwr^U+ zxF@b#o%;&>5?##!j73>K6tt{Q&%CCI&g~NnK>;e__@shS1hg((z5vOiyN3bc%umL} zJp(we2=~O!b-ORt>+rr8Zu+F(18AWANhvE1fW3W(_Vr!%QsZ03^|emzlqk!WWz{%7 z$zc1&RS==|@dQt_Z!XxrdDVb>aT?dIzBS|8Jz7%8x%IPE=fdu&lKBZxwDE~)9X_;O zpuUU)Gy;`w#7Z4?F|)hfy!uu4@?JK9ubh3|*EojvXh`Vumbf3+%<3H+ecc6CC#JnO z?CKpjfWkP@TKf_E!K<8M*Cf%t(cmlhx)tIcALb{!BSGu>_`POl&qd>Fc3?LO4^#Na zqDZuFJou`0b-8ris|jcfwCH&ysuGMx(Yk<}^q4f}<<5K;-4QgeC*=S_q2Rn2{RRCV z+P3H!Gn|rsreS`fJo1_S=PUUQtMQo*G5&O38kkr6HWd@rg8=c&7x8Eb$ZTq-BfzzSU8>>FNWV%+$sRIomkp#t48|exP0g% zYQt%;ujAci(pc1}XFm`r^2Bf-=QRRM;!xqP zrJj`kV(-)UDKkHd>Pfw^7)Q1`X`RYV-a37eQiViN0;DKYrCf}B#0{nNo)50di%{%#b{zcL=yjl{A41=r~pse$5yCL7ufSf!GbKWLtJH^#t z-b6N{IW)wB%YvF&-dhr5yEm*$JP07>Ej|yIL?Yu&1%Hi2wks^!1#*_2-$)WcI$b>W zn&EVL3mi-v0<`0CcI*aUR9MV{C{0xo^_LMh<5K6*Z;!I&t>kvN`DN&}6r6AGT z9DHqy1%=WJmo`Py^f8rGrd;u4UQ3fbokQo%IPlbWU8#7>z+d}$V{E**2`MX`V#-l2 zvX;^Bic_yj-^5v=KF&GG$=lJ?xQWL5?{i}c#!?Ca19-4XhccFTW(i^{_GLZAm1T1z zMB~gv&)>O733~PM-`tu9fj zbFGL`s)McI!_y44%f!!3wbRAVjkR0F&&{>t#m|kjYsJsa)?ve20zqm$>cekmC9_H zDY!IQ_wyhg+T@n885p2-raBOo2$FVLD{4QV(|xqG_vXSC&hjCd;;!8YS=|3Iz@^zG zf@wWdR1dPO5+=|=H3C^)2oW&G4-bp;iJbYwzpNMaJeIQxp9#jlj2HFXma__3cS_qm zmfMju4;6LzywdOH#_&qeP>4`$3kT^AcFIRAg=WY{xIk@z^16Tl8I+y|h}Sv$#OJ>v zoglm-LCZHHg2oIKd3zCE`7xgGp3=BZsOV7Ww>Tn+pjvc97U^$3+{*lfBZO!uAiTGH>}F*_*$gO(v6o83=YhHoALuOwh|8K;w?mB!KW*Jkme( zy)gB~s5r2fbm$fKY4{M0uNxtNTFM6L=Xx7y>!(cnc8}WaXQ4pdZ!v0vPk%cvB4UH_$|FL9+wvk% z13ekbiHuYB-mg`qU326)Zm$}0&GuOQ7=Yk_>5zL1fSQ7!MT+!gtC;6xw#^K6K_lF8 zczU*t-PKJymFrVRu-lAK|8dd|VGgOjLrpWx|BgNGKoU8eLH{Vvu*c!olFwl?)P1~s z*Kd6Nya1L+mu`*dsmF|KC1}9FaS|V`ty3L{I9muHg`b0a_kzdMVfVLn%eXAVAv;)@ z6!HGDZgpW36+XHeW#vh{-`Jv!RDh^z1NA&#Z#(8j@AKl$JmmVtBHbe#EEuBf>JHvz zv#kj^eD!h%Ca-%&umkkw?PPl{gYlqcBJgAW1sY0OVGPXG_-Y|apB3W!YDxX%q6TR& z&*VtN8lBG^Or*t!Mld*SC!|r|XaUYIWe&&1FUVuT>Yt^&jL5t@Rh}5>0Yo+BcRBcWoxS=LzVZU2e|~=Gb5b>P)8XNZd+oN8m)U+!^6{0_r+4GVcl9uz zIBew|%P6?{?RTjN=5)u%YV$^izjoP`AO3pcmxRkc5UrGV;du`;$!NsS_}%EX`BIc! zw|K8vt8<7$Ze5laXs6$Ew4dJ*uSDtJ(@zre!+NZ4fUfU0gIGlmgmS$l52CSB$KR2x z28+JwS`SW2#ZYwZM~8s)(Kle7iqSR*>Sb>1AGY%T9&09bUsJ;KiI7{6w;B&SK;}AB z_2mp1ls;(hr|anC10tKTud-PiTl&F0SL=U{7dp4@4n%|v^B2oJMEgB_^S9r>0&fVi zJOJ*bRFj#gBNZwtpW9Ef-cTC+uLYeRPf9R8o45A+h+B)-_sF$`i>+II-sC-M(*%F! z@n|l1IgiYy1~TqP{8~iuW{Q+|P`d~c+0U;lG&{Fkz@Ko5U(wO&X#ZOhE{y2FzEZ+8i095xS%V zukjmX6eI$|+0_CqLfa?>#g*E_PJeQhm!8|}_Nk8r4ORJdmy0``K<38QlHQh{y53Uj zJhnV&(RNcU@H5nqzuxt8a`+wdZoslfYCJz2Opry&a;RzO$2S$9a97DL8gwKr2X4+F zmAx-2euJHiF9gr2_CVc-La@rM6>QFIT>|&EiO0RB5GiHFRrzGmsU(xIBvrX&<-m|? zQ1oduZDo)cn**ruS5W08@OxN)bMYMG(Kmm&=8+uqcRvAAEbyV9=uRvde~JMjlNYZh ze{-C`TN~t+jmuTFqWR<6PIx^`a#()*Jirik-*3y>cG|+AR~cub{0=d3lPP(-vv>e&!00-N!0Y*SU%!^UANbU$nu9r8 zz8CkZ4v(9qi53kYdepx((}YJ}HgHsGnG+JBqCKeajUqX&fsCfbiut2aQ{r=dJ<_R@ z)#{}BNOl9vRZBj!1R-7!lXw1LJ6;HmGG!`4yoY*+1Y>71K90QbeDmMM*knZDySa3J z8hPRW=1&ms*d^EYDtQwB=oRomkz0=uoZ|Vy{$BrqI%^Oj&DRwD&!WNC6V~;y&VS2( zx%^uu`ORO2WVgZc0=qzTSsHS?WQ6a%D@fN1=_(EL#pInj!j@x5&JhIDJ|8Uux_bJ0 z%Nell@MZFq?^e&?>-`l=49%0U9$z!Mk%7t;_Ptnc2i?iXAZ|}QYuVE zl&k%7Ipyv10QUfg362=Y86njg+s`N$-{)Yl?0TnXKi2%Uy{GdF?f~|+C{F-;QL5GZ_HO!r@E&Hk z!s&F|^=4Rip4sN9??=7*sGuvvdMut}v9}g=f7g$8oax!J*9DM`xK|L;anj$$-xI=| z(a1?(Sk3bl*$8`8B2UBKgz?T15TjaX`{4+p+*JSSRH!8VaLv?Nm+$`C2F4W2>QHKsQTsRYhjH12Y94_w7y09xRDoG@B3!(58oRa8h(@#vXVQJs{*F>oq}RQ zpWPwgoaV@%2wp5JLh$U3eb8u?E#sFmH4~o1N}l%MyzQ^q7D#3#rT16`8!_D~&V@S} zf3xq`fRJjF*Qc=Gn-a5M$uU>CFXI&qcm1LpyY!5FMJIwgs^T!@55Mt@f7yX2^=273 zW5KrsA%Oii=%L7#`5OM-QZy0o$;P1|HGMfeG0}6OU+R z!STj^7*i{9;B0mS`Fl8dFmZLs}9*)P?S^d2C4M>&>Hb@;0Osej?@;of$_Derpe z1y4ntlp>LoR@`Sl?Yx`kCWEGlb@e4&aFo1;X)qzwHI$~U77t@kA=I;Mi0g=H&@`0O zAi@YiRtPZ+?@vO_@uud(gxe2)-QU-Z4CJL?t)xE{`E!1(yVoRPo`@pZJHc)#SGD5h zz$J``_-}SEy~z@bJP+;TWEBu^m0iLcoay~S8=T(>W}Xxph8u;Gt8Z;*CYL;0EQtP1 zO=`zh#>ZREc7gzmGR zX|NhNE6IfDcFxPi13BJr>aLj)ftY4xYDS>lf-uo7bPZ_e>kbkh#mqh-MN&JiRus2_&6g!YMd6&Ri|js}N+B^>TK z<_IS^SP_P|;FvD5>4pN*A9z1Nqa`pF6rcQeb0WDS2a4Xjy!HOYb;N!Q-&6)l>lGYF z3oTWCXQ?Ku2!0VIDf4>}^uBe|CA|DK+=cNE{t|g5{rh6;9?ig;;V@T^Ic^T`tRbJ~ zvn@iq@5mU22XUpB`QYD2Y0a2y6P7Vj0Z62AlRb)nJwfp_O|Z?wqSe9eDE zg{3C=Utnn#U;mbTcdeF`>4Cst9og!fCsHkDWK(&A_>su^3c9B4B`<^f#5`1ehWYgV zv2x%o!2eZj87i4zm0rP~7DK)4#wY%U=-C-+<#gk3_vYf_j{LkfFznlOYhSM~v(&DQ zgTply_r^+d>oxhzrPKMk;Mld>rBjwLbc1iM6x0ubJNSFMA67SrZ>mmv?EwfMJ((Y4 zV>UVZO=@+P44M)eH4$2P=1n+;*f#A9Yeb&dFBlA)lCxg8;p@YP&O9}tjhMc@SVs1g zv&g!_V{QqXT=QYEHV5PF1XU(9z^M!q^(F

    b~{M9giSr-vqIeqDU91tr>HL@M?< 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 O6bG~R8kptK{r><|CFeu{ diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_en.cab b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_en.cab deleted file mode 100644 index a1850dc1e7a98ba1dcde5fb56bca3276c7761c77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29305 zcmYhiV{j!*)Ga*0#7-vW#J25ZV%xTD+qR99Ol;fMi8V1!%=_H;yI`~MmK3%&nMh#z1- zJZJwujaw2wnD~dHvz5K8sDr($vxBXHvzd#5nLUH4t?iFQjvxQe%Pnc`NBqOY#qs|- zO>Hgy|1NpxA3tDzg8jFpngFXA$qzXz6K4k(2Xj{jbx|%R22o{I20J5rD|0g!*B|$@ z_*YO2KLSN%F139;G1Sug2zU}^o6ymAL_!)GNJl3jEcL{auS3On=1U<6*t$v=^~mb- z>RUVS2LlI$W215N+TS|3f?4Es2h7|R7ZQ|~x7k@^qGeol)78wyZW^eLcuIqf}_@C9+fb)_Rs3OyjdYxk9Mk0c=6Kw%d`;++~ zWe#prFPCehl#7`TH~OGRdb+3?v|Ve^T~Q*{RyJhLGUnf(A{?jM33X}@@L^h7XP~V3 zsp(#1PB^WuWt**(UcJZ3o{((^rE98^V~%5eyxSJy^0$L};$btE6onnRokHUZ=|v!d z3NDGXBGX(*%{P|x;CS?g|*O}gkOcD;WLijtCt8*1@&wq zo5Qph(%#s5<$_Ex{=TGgciOm@`$t+aUSz; z0n^x_mx$s6^MY0RjUqVU6)*;44?adU}`|h@ina z9C4j0=0(59rMp}MH_6ZrbkrhwYNldtsr45X`iD{~*CHZjo8l`{B#2E`1Bo*^Yv>q4 zEDmlgwQ%a>t>1O~uSa@IJMU8*G$hm6rZ3dF7|%_ z&`hisNI>Afmo5Eh>(A&dUH4bJ<3HSk9veuA4{%@!xF8jl-mNZhw;(s*|Ror;#$xTHYp zE#3c4Lvxo`IKOF0DyFqxAGQibDFG2dt!!Gf&pnbZ#4R5%sge{{$2%#ZwQDO1q%Ebv zwZB(}MbG!%C9sR!Zg&wY;T2^wtJQg}n-(2r{NTW=4Xw!kKxwAaRXlOm z;KibA*0YIO$2>pW5fQJKgv(>d2&Pe^zw%9_DREPiquPS|-U}A=$Wj3r1>xO$?KQxu zi7;Iz4G1+U%PgEbdKJU10W98H&p$P=X?m1H)q-HDb~QO&vNkO+PGWz@D>cu{wGq_$ zswfs7oTJ!^`w|LUW0fWwmlvAXx%AWoQx`&|%2(MWLGB=z+ZaZmnI3gkZ$`6NJZ7uK z_C0RBF|Cq+ibka^M;SLrU(z9u*ZH=WdK%Tb#Mp`JGS{^PB9->I&WQ{x~Nz5X!2aWrde z@v_#9=R&LmG&Cj1+-8l&qj|6U_YZpdyK^*S_Y1U3>{myye@LOtkhu4=BV@q45VhYM z@n3~rVCd443;>}uaLMe2+vA7S;NUMwt^VjsjV@MR;m;RjA>tRO@fLOKY6yTMI$cb5 zEmZ-mz0{#*CYJAuY&&72(~IifPb`nU;}e@$TmCMU9px{u>_o{2eBpxIbgA11-TSf# z2=?+3C9mk&G=FI8KcOHGS7 zu*Jsbr}jMSCKJVzxDwiybU8~xEAokLch8hF=V+x!x^U$%95OZ>vNt^RGar(T5Xdr% zZeuQQ9x8pw#2vA7nKAv2lkiJhx3Ly1;224N+>OhRu(M}r>d;ciF4BY2iY-|=_j;zcMN z)4LWPzWH1nk_Y#scvD@=2|34^G0Bz;r3ZO*71;Ae>-G;exG|_S^}{`6xMKiX;D+nr z%~yGGfXU-2bodgMt||V0Sv+#*T2IRRur&4@!IYrN#oOq>=iwg7R{GqI%|{aGxQ5aG z{kFtRzC|yWn>rhMpn^r(&I8}x_+_a{zSq&;U1?>uD*$M#b+=65AO6h(I<$9K;*Hn1 zPuL{#t}!=E+)wNBjIIlG+k6wfaRS#ow@THXpLZW0CcYv#mz((7 z9i`u2*8-eGUzZHnYybVl0u1648o>85aq(!rhxeJ^Aky0iq%d^hg1nE2blyS^=XyAX zy!IC83eG+)c1LxI)}AMGu0QXA+ZQzXG&#)<&UZsD;W*z#-KT<{cUR~g37@=YI+{;8 zgg|s+f!DDM2B6z^6tKeH!YO_KSkj;L+wE5D8X|e{X0!+50NIxD^Xj#{HS8Ft8>EC;)3+kt6&Mb=hK`zBX4_9EWpI!BS^4 z5uQIA^}^!?5F1OO>v`7K;)G*y^1+;lR!2$TXJ~N)Q;@@t>3AICgBFW)J2?=9rrkrD zrWixK4MBWdYy2@!W7v@4Mzs9U^$?#Xjs~f6=zm95JCTUMw?V8_f(XxtO6?D4@w zUHzlJksF`HIq3@Mbq!&o+O)bQO=rBUwISSR!vBW-HEZ7XdLi2VZ21nn`F{963gtB| zQLjP^TtfFP2{}+VTVcJpaHX7Zo3Dl+68~4e-izu9e0fra?oYB@8Ex}~LF4*+>Olm& zFBp&;Ui}dR5%&K|2x?~;VgZ3!MTmZd9;oYDNI+rB-LnbTJRZ2UKerPcaVMgGKFkic zes&^PEVvoMn2H*%L1{ATLi7uQ^XNKG%#Y!}upq8ofp@m52Ytwb={c<2@r1d4tqSjg zohx+dfnkeT)8$$9eRjyLK-EUOlaNUkceAnB0uVyMlQ0JW=L#gq`lw3rdOiBTWGM4{ zFlx|w%x2=#5ZGzXA&Sh8e@I1&HS^Fub-kJ!$?4dn5PS7l`{vuu`LFe}0&puT)+O^K z>al+L^jJ^Nw!J^$I;p;r-Oof^*yt&J&m0xZhI8I3c~LNXbd5v;hu`hp2l-U)Oz&4( zI|K1Cy0h!((6m&CJkE2_(#%qjk+@zG6=14+3MZ7uckKc3scqt&Y}2xoSXeXpDA9E%i6~8XrmV*y*K7=#Xr_99l;fFM?eR3<&?8oj9C@&aV^fo-AP5 zjFJ{Bk*X8zb4CPqyu+_hb;~k}oaY2t^#$se%_E_%!bv*aXE|AQ_2MRz{Z@%PWx&o& zyr>diy&R^!PV+39dIb_D7W{K)bVkPLx+hCCW0cjQ+Zc{MH55egDx;hSi?1FYY@;P6@S}gVJY~vPy$d!m90=!0zn{&rm zUwq0hCmtf_4jkC~V(iyxNH3?@kH3%|n+86GL{053=b6qzvgoD&|7mm$fh&bkr!7k{cBA$(f|Qr{r`|eSRa=(fLXXVbz*4#gwOucIM^39 z?a-e%!-uKY->deEh-}>C^F|@D=E>(4A*bu)iOY*U^q8UL3*)+?ZFs_F7=`gwyD}cC zz1(>*iYs0x@wX7XcMJEMZVJ!I>%2MhKZ6@3GnI~;9&}pJ_?KGn@}v#3Esw|1q-H!C zA-0T-15}#@)?rzKlM-Qn6qxE$l&fbGSoXT3-tSMwM_fi`)I# z(Q`gz2lVgXwG^nMImjAFujWZAmoPuYcMN_m@K%EA0!_oKb3}{DRNHCwe8onE^l^@I z+}v5l`zwok)L)MkG1`&`V+cu(#vW1D23s0(={c$>S@Lo+CI8f*6r{zT3KQHYv$x;U zPzU|K2)oOaX3+idybz)-uuNBo2vpG;&+ri0OT&oLn4(vnxCYSn^A(S8fpsjJzISL4 zByZN(?HA5#p<3HKR{Jzj1FdGUXe~ZZSDfm-nc@#&n-Am;WshfFN1QldlJRc`+Et#G z6G3vP^*mT(RcK}Xn3h}(4_<@6h(;QO+(S1eS`2vq8QLV=PcfCTXY(a=U3eGh_X^;T z3Kvi8zWB!i$=xfRvG^(`bY*Nmvjd5sB7YMp9?|Z^rh$q$ZV8V=9Dg}ZaK0ITmNX^4 zVuy3c@Bi*PG^>Rj!rDGngT{>{F#QhhjCGu+Ag-q;7`xB?A_bX(nm4D?L9|UY zRE1Hd{wBxShWQ;6Uo?fx%CT6g1iVBU0wWO_icqx zqEFSyjt4o8piEhc%n%E8vl6(8xp#?S*NL>KSuFgUSzp%9Op(s1w^ILIo zw!s-~hpIn0QdbIoM>XJOCX%)Vr7ZB}bc3XG8EVU??r4eB&Z(&$pCe&Ey`S5w5gYZg z+9~TlvYFkSY?ko-WZ}l?XMYf3FxywX2Z1Y-EM$zI&(Un?SnuuaeDS>qu6*VGeBy0U zMYJK_y4d4Jux|%lQ71Ifiy|P-!QV>FSrb{uYZT?Lkfqe3{shmVNtbTTEi-+aMq1y+8w8%IZm-Lm}fGNgzFdk3)`Y_>=Aoa^2CP}3Uv?56y(pVXaW7qh(2{sN9{1&Q# zZkK-qk$`HHiw3S#Zz}T{$&O`Yt;(tAV@)jxi}F*eYyOG{QCx3Ukc|Km; zX|lXt(Y~0V=uR~V^up(f%}Sg32c(*i^mT$0)>-Q}iQ*@yL5cX6eQnOb2@3ui+jy>} z!D%e~WisTjG)Q6%`zdHF@on+Zv^ut2L3;M$d-8HCNsPLhF~!=L(6*z+5G}l^TR2j!C;A;<9R%h0>9;``dp~&;QGfVGbrj3wdxdJ%nlA!_w@H1- zWw0X(pEkBCOV^{{qF;-slN*w{63dG;E3-{Q*Jc=0>q4Dt#hob_N5^?kYlBXPeGjML zr4O{ZlIX@2K4E55^I~nM0ie!l>ErZ=;FaZB=J4LeqRuIG)r)Y$xBad-lp~$h*2vNU zUCe64y@RKGMi$l4a}!`aObu}NY<}{i!*c@G4&8PjYdYC>`y)7+ zA;^t-Ihi?NgE1b5ra0-x*;mFd-?G@YroLvxKZZNN1j^GDO!j*e&nUcz$;O%q8x0nY zy#2l3Sp#J?;rl6h;AwqUvUSx`!Wn+mdA1tKFF)2o~>QmAoj2pPv5qCy8b> zY8OPlYoyYjy!C_o?kn+x9r8)z{*0i~pLWdn8}E-k5@WnN{akvEvd5ygwB1gDy41zB zn*9P(x;}IM_iV(2ET+H0_5FSWo0k?sWPa{sb3-@QYARoy+1J4tWwd9cmqKvTtkH;z zs9;GmDw-O|=Sx9qu&*6{JoL&{!PtxX*pYc3Py6x{k+Jw?0epCjEw{u|6s&a{!%spZ zq^DW+@q_J|J)+dJXc+IK1%Eam^=4x5!|UfwOo~Q?sZS_(e0PcZ(dVb1L^lV)oYkPG zaqmo^Msq5)*p4FD{op&ImmMx+W>mM^7NRHl2#?=OPIeY>E}#AA?BTV7_~!WH(2LFC zyI`@NfusJAXD)f_`?x?V>9@FaNx)?JYK>sFblQ<}u`P3)w^#5BwI2Smc>KC4RB>%$09&|#dw9+ZlkQ_(B)Dm;+!>-Qq2 ze=vVPIhv)*aSKe}r8P4!K8vK;#8Ib|5q^V)I;54r>2js&Mz?;Xrybug{k;+D^oyK@ zGK1yV+VbNT7$yIyVtPHBG@Vr|izQ>DHs#`v^7#JbS?XV7i>3v{-gmF)ZE2JLKAwun zs!b8z6j*@S320Hyk$ixo5OL=x43)K2YLB?!;x!C-hF}iR>OBrGQs}9uxKFd~P&5ws zX#y=Q=;z+)Oi@tQ0xORGfLA;Ac|psxyOz%SVsd0ndvqk_WgjKmk;rfI6#4#bdufw2 zkW&~k!YJYaiP3wNgB=n@)JJjeTCGS;Z^5u%O!wTG7D6n?++ZBELiLdC?7SE%xN z6rqH$7SHTi;Z5vzzfA?z!s1&ks;SW@CCb{R2dyCKL^+eP zHOfBz=^8h7a&r?QH0pmf#(mP)r?Vt&wNAU{Z3Ot-GLR8`qoLmInz0y$z-t=lxlJ{i z-nP#Th=CSoA(Q#(IkB4EM)X|Ckf4(Nv%pR@{t!F|8n99_3G{JR6p23PJ1@|aZP6EtoF-Fbn z)lL)fibpQm4Y&%EgnY2(Jh6LAm@qeAS`9cMt&c9?qvSdIfLR@|5uK)MMv`bXy!zbt zl|~RgBDjElT5w3>tliDM2%GIVo%{0}t4PCdIgkxi3)Z9{S*9357o+$577XyoO zHJN*VmN7eRt1>_6=BB1`Kav}sLx{Cf)@^Qv=`Ph~mGX6c9{l9@w0*96QaoB|by0Jp zJ}L@;!1D7Jlher5QMYbvQ139^oDL)$;lm&E?m9r%M0}p(pyBPyq#RLz3i&ts+SFET zc7;HrZKoUAPT{)uzR|eDKY88d@11&cwXpiKSsR-nS&-=$UwHeFxf%_y2+3x^tmdoq zH%T^u+aX}EeH!WTiaU*duy%Sy`y5*y5y@Il1qo_SX;>=X4C7t+mPjEk)Wm#rk=2zd zY1SD2DN{h-WgNEp{C&foW%d>omQ!UMe-$>+A;D!@m-sh%ETQKNOsCbWCvPkwbRAYF zU1qIhMTXqdrjp%);oM3AkKOIvZ3 zb@nr=UxZ{A z96nyizBi~gBM@qsa~}Y4cwX3IoQ`WAcystq^WcMVtE-j#s$?IHi2kVY6oieU6wU_O4uzH zx25wWl`G9@vS~tJe0$a#vXq3nxCGK>3r5e{%}EK(FRjeD4zE!8DYG4hzF7aWutPTB z3i){#eRX^r=`ts*cy|AywS0_A$&x-EWq1$f+z^yna*CmyAAAqkj0e3?z2qd~jj)Mz z{-#jy1ly0kcF_!{)x&37d8EKff_EGPG(d2eg&f!df@t;V777jUmS(d>`7dQtB#POa z`esvN5v-@89Hv`Qw!uOS8#n2XPZm2)3L>FqJXr;DWU50erW_sdRmW?Wbuuft7cWbE z94#&6KW~UvJ}40qYnnx|rQ<@O*)z)q89pRjQ&}>JSdx)~IISawL&ssp&oPQAl|(F? z_&JnIht}>b&8^cvJAjYQK^%1YZQWT;c6Ot2G)LPokKg&(U!3%5^~jl&lD2-03PRN? z3IFLH;6{zS^izw@By2F4Q3Bx&i@Hhjsn zqEoYx;XOE?DED?VX6;}f3;OvoNb`u$_YAX-0W(!DypY|HPCntzB{|6DvT3IE&~V%+ zg7qi+mrDt3$x{y5dyc8tM&NYS#{t{{pT+CG2OU-xJiu2I zo))6LT-1UyR}HDTes1Y5K*apw*5!A4Bs9BLR2z^}z6|DukW)|)VZIDV`J?qcGx4xH zU8&%nUo~4#b(0TQxKn2@3+{r?4~$<{ULos~$+U|eJY^YwGWjcsK#kZbl~G%~B3M*v zG4b_wwlWaA4HhwJa*F;`X4TX?WqvLC-Nqp)&%>}=znr8%pK>XX$F;$quxM?I?8U|~nF@j!|C5ZgLu&vN(*-Y7dlKf`Z)AoCZzQor?+t3lTljaZ%9U2&B z$FSiutVd`zUJoNKX3{9lZV3bfT;=(l2sW7**CkWQ@Gv@k)1L*WGm`Hf4SR)l3KCzz z@R89G1KzAgo@!8wmmSpGPZYBkUjNvrrKC;bK^q)8H!fXCSHo@360!t~w!DyY3yr?` ze9^Yf{tFSc-XxTjaEHuilQ2nzl4dj{R3Lqc5h`2G% zmfpvN#Y{YSlyD_WOxbW7BrpqoXJ#eHG0}Y4)AK`|r32O5?4d|>BzVeB)HQ-W|L-9K8kXwzrL&L4eH3D zCpU}dVQv!WF-wky7bbYW^TQ=Caz?C zP7)6Jko@H*_ns!?jOBoaBT|^LJ&vU%<{KIb2N{1i!U1ojgoN+z1@oUb8~*C7G`$Ja z2C&QV`eytVo6rBQ_gs4Cskt1+ew{LX&=kD-2~bo$I{nqeY;ZIJ(doog^x`2xq3_rI zx&LWsaxfpd-gT`-<0FWm`(eeq(y7lU`F(XDP}!d{R(E;u1hod+i@YWsWuPg2`?=?> z+2UPS{W#fR{eY`R`gwKBqdJyGf8Inysz1r}DW3aN7kT2bQuikP0`~QSxhKgaJZQI8 zS1|bk6npW&qjvgh{>~omAJ$I~$$9`w{eX=kqH2KvK;cnuqZYTh!=5X_LztsR-R^wb z`-`9oIX_C2|N4*LHS8ySQ2^aTgvc1EvfZD~b>vaj6ElSrXg9gf(;h6K;`l9p zZx`)DMr7{R=WVzAJ7KB_+={HCyu$o}_GH)~fl{T)^nCt>OLgyb@+ZF*%>@Lt-`+SU za$Eptyj>uZ$Fa0W;qxrvsTUGQH@51;)mw#X2ih1_c7pwYX0InNbT~F=k4r!lO~pf> z{6ILi!395{@NUv83Nf&;X7YylZFdff@;b^>_LZb(C(*Y})Tsuq6lha~ZDf(9p!ii0 z`Y#Xe#h2=?__o*2M=pzoqpWo-EkykD1Di&Nd|%6mjNDAm&SeU}iW+2T`^nPcJjI9m zA1zUTTi2UzTQF9Tc;V2#qypJFHZbhAkHj! z#80vNU1P?(=Dl46mue9=`Z0bHukqTKC7yNoge~j5(;k2j#HoGemO0~Hi(UmSTN{-t zKJQ6mLBrm6{94|G{MPlZX^&}RPWG%%!98B{Mk1Eo3Ie)^p}-sen4U4;l!5GoTRH7Z z$!U+i|ISXpr13e+Vbb`ncUCUqzevQiYk^PquxaQ|*sz`;UEL~2&;WAz^MKk-ikYH7 zGD9hggMMB(^DHy#F@G|(awLjSW&_)2A7R@Y0gNANwbvm1bXhkJ7`fs)GTi>+Hf}6n z+PxDB7jtcJit!uvP2gH@(49Zmit(FvzSg2Wwdd&QGzuAByzh(om9d_H?|%0!@II{| zhxT5rr5sbLE^U|GN!}uJo7hQWFNIDflpf^$DdjnbeA5F=euytc7Ug-=+5t`D2M{-!F&oT| z#oE7^PY>IM%XLI;a;z905bq>n|41N{ctj|RNwrt%lsr@UQxXY{$$2MWf8b~ICxQB^ zSei-ZjHPTVRp7rzCkB+azWz;7$8HgeqJKP}mr~YO9rnDO{}d?V7Ws2a!xGU92n2h` z`cx*wD{EV`I@P^Wki9w4y=&c6yw1No zPX4R-gwLbI#V$v5Yn1J3o^7d> zxA{tTYk%II$*w|lYob{X$qsADows>gcI$BdiOCKix;53T6u~js?1yAWw3P3>rZlY= z(#*l<`&&|EN0iKyErUP1i*QCQ;iO#BWuc_wbU_!?DJR8`#4hVHa=}{k#E0vXFuGaN z_=w`3Fgjb(cyDRT7kXII`&~@z8#_^4V4ds>-*=Lp@laeKZ*2DST)Iv8X_=9T8Si#*cPu1j z#fMe!lb%yh8NqJ;{k|qKCjPxMNO}LoZd^nxVIplxwF8pOjU4+edFTK9im4G!pfGqg; zBW}i65Rp~becf%t%It>{P_~RIrkt;M;`5U$r>d^R09kf(ljrS`3nyW90WfCEr#;pV zX$F8+W7C54C%u6(%<@gor5N&lDd*AS>4wK;Ja@9fR`n30PYwS`tLm-e5 zI!ox%aGfRjqKoDm0vf8BX=xSu-(3DHKhi}4MIZxm_dok5%VOvsAi=0)3(9wk-aY!Ym3zIZk!cqxhJWHS zv0?q((N2(z&OQ9SXlS7Gv*Byw_z`CJagG5X`BER??&Xu&C;B30kwJtsbn-{Dx4`0= zzbY;Qdq{(PJN0NwAW}FmG;=`enT$VqnUp!`bA6Kaug5mauJ#c-H;qrK!w^t%T4Ez+ zR+1n;^TgjJopY8CQA%^curta$s7`)nJ zX!ge}$5sB(`t8-vB_6lusrh(>KwIQqLFPqty=S{SA&F9N1cTu;4mTKp&vb~q4m1^D z-+6&D5+Y9E6Wj5!X8#yuU7;B)j4mT~+$#IJ@l?cio{c!d~RLZ7TnmWH#(hXJ)V? zo6HiuZ+sc@Aqxfx-a3no*7jBCU%Ss8e-q&~D!Ud?{LgD}et1_EwN_56e;NLZ4si5{ zs12C7_KTR4eJx;Bs#L9tkdTXP^Fo`UWS?LVWronuf`Q|jrlknMk+CX`{wRtVD2lhN z3I$YqqEJb5eBxM0d`6eNKD#as*FDm3;(ix(kNT4&69RpHPa75mJ#*XKI-<|Zd_WbW zPnQ8_HrMazp-=QZW{i5wy(X0U@>@+X{h(V-xCHdQG?;{vTTd{1Nl(5oN*G7VL3AoU zr9dB)*`J7BS{zv%HYybWE02miBQSm6zvt@Xuu(4 z*lUP}B}gZ@J$Z!oF_>#Q9tC9QeSIGek_H5D9}L&#V>pK1VQFg*a}}Hix)#Pc6*F=4 z;gQ{+Th5sLO_w`$HqLN|4%@}K!Eh!eT?`e&kN*7J$7%f3MT_jjD`4d^u7Smh^7(Y9 zcS?~LQD*8@V$g|e=og93ufHf3Pw~tic|g*Z$XC9*f&?_%F2^jivZi>$5ff&$s^(!) zuAbKntMj7|*u8p<(==)8P-8>fei%qBLw-+wg<7dXO{p+v>mzg5&g9N;CsZtk{Cino zA_2y{Ki*^!PcUCAahneN z#ivdmO}$hLOlU}ImC_sH1e|Pr9F|K9M@WkBFWqha`T3` zvAREZ?j~H@=!Eb|YyEbJQbwpgDhyl3$|*0LlkU1MHZdyCJ^{lqtAtaDI6Ll0_?Bs`hu(Yno6lrHaE&_jEm=c$c3#mMQMPbCkB48WuU- zn}Dq>&7Om&+2P#i-4j`a&Fzfat^BB{_m=`bbo6K1^t2JQZBNuHEb`$szWnJ4%}596 zM`8w^VSP~|`kz=saSq4_M^0B!ZYRg3J(fj1sf0mWymZ#cFU2iujJ!>UZdF_SU9`o_ zhxX41fVj<>UwX|+7hS~Y!!Db@vWV-Sb#jldB0CTZ%!WH< zI5vCm`BVdA>~s(!)L)>o@VAT8A_2$?+OYaARj^*T{VI$dnLvQJCnKB! z`kn#_U)*2|xG%(D3&xI4VB7ERwq20c*DK9}fO%LV#vf&D>HE_fqrCOwuS>@ri}Zh+ zP0G^e;>x(v+R5JU+*4sbt0cm@O6}12*TfO+e^Ep+7umD-dX1$}SbrVlr7vbSp``qp z^(6_XCi|kpHm(%u%yTi=VO$gabPDR5qiN4P8IrCp^_O^01>O+8K{^TK?1i|cUIY9p zcUOK#CJ5QR1tf|sb3AlRQdGfw)C7ZXv1%Cq2iq$_S6QxZhCUPu1nc=(^+>jJp3DD9 zYSsosL_7K1bx)6X`&U`C|4YHl|J)t&MmHXr`1$#IeisyL8W0s+clV*5yuPIte~fig z_4$itFf(ofcIR)o#$%G!^_ck>GAq)Ls;qY4reo5MM(&?*Pexu}at^x3MD@E9cB$+A zre$vL1jYHGL1=y-ib|*b-DE@os^J32GD)x16rjT)zN$IvpAI#~`O6+Fe?Xhe3g<(c z16wn9ZKn~BG9RoYC*Z?T;qTx3_BQQJ1lK7MU8f{ZEW?%IFJq3#e8Z~YT;q;6+`}^A zyz3c;X)6Vf1m5`0arq5Q ztMn0_t+=J@mcQ?~9!qvtqX381!~HBLkN*LbC5F^!DW%(QlVtFz%wN($r-av?;arCe zaU#A6hQ)~)@U;2=h{+c{F&pZ@X0cYW0LtLq;D|M8pB-mdu2hxFr9e_xEi`I7yAv>>&G zHsBiJZj+?0O#16R)pddO=g*d5yeuJr1Vd9}l23@>z0q#3-w^>Z!Ak;F1`zMVt+0N= zwV4?uv=$-~cVQH@4Kb@a&S!VVFTrzWqB)E!Ywi3zmxQbi&PjraWVRt)4Lb}_R#q05 zYOA%q_&3MbL0W%%QDR4AM#Lrc&RS!`x)UcBGF!-k7j0s zEiQ^Z6Y))LShpf`@>WIJhFl0AK*8HHbBy#SvXx&w7JX3-goQ0w9<9Clt2+=}9bL+P zk1%!Q%Jeb*_vV^ps=|vilK^}xoGx<&PV{jM=ry~lFR)}X^Da{7XBBhKayuVn)z4OnnKev1OEws}8M5SIenGT~#>gGN zG}L3+9A6GG50;wZ*LpZk74$=uSoCxesJhJ8v`qJiq#!65AODs)Wq1yH?vC$KZ`_7& z+g5W<-n!F?4?iA><-Q|z2Or~)7V7CAoEBQk1SSb21N6n{3UdPGYURSBuvv~}0EwFf zD!d=sE5dSX%qqoL8N(mHcyr^oIdQs2u`XzaC&lPxI5uZE*BcqfSk$|aZ#4JcwCzgw zzTk(giG8@Cj-EQteHwlRFHLe;lk<&&M@wQ@eEYoZ%hcZEdU0HS$lXgO^cV8pSEz>7=yirIBbZ z=%g$v6g#6Q@i>juNUTFrp!xjWbpg4hEik;6Bjk_w#qhhjauAQ4BuZLp8Q z7|V6>gpgSeeiKqEl*ppWQ6{{Yl)BSz ze}lWE<__*`9F!uiDL@_5vd$L5TPz-X*aEZv5{q|mr?v9soCwu;B&oNwJAeU}=l#lE z{2$ATwSGHI`6oR<;{N&_x=U2L&U-d%h`!k-O;(8IP_M^1tBLq@H1O07)JgzqU0V>` z`lR{xLd>LRmUH5P^#%KHD@~7OJsbzmHa=EJ{s_hUDT$R~+LoSBhFi4g&&^+&?wt0j zfp-XFRBl*NFM_Wd9B(+lZdAguB=HC-uXFIHy>fMMsh>Qh(wJXKfI|J>yE(bAjq4^3?GaWM3uGU_e{W6@asZew8~V z>}b!D)y$jnA(%b>7j19^Ju;m?r8|MLU9KP3M{W0WT5Bf>0S}G7JK=YM>$0E%b;``h zKOI#O5AMt$X4PyAWyGNMbInnqf72|YQj-*op_vf4TVazQ?MPzDDNDG|fBb#9ycW4_Q7ZSHD?Yu5+Q9L2{j66MbZ?n$)wU=EP zxW}DqF0#XJSv$)>aP=U+G2txI5OAs=v;x~Kjz>VGP;;IWuacnMtoM>v5S(6H#&>i~ z^N%*@gm?TIS9e=kzdgrLIhJ)jYX%OG#KpMSdc?Z5(e2!x4%3DFKsve-`kIoY-b)KR zyP-N>m)q?kbA-@6XuPR9L;|j%*3l!ZV_*hwPnch6ua4-XPg|vF;%$mX=1a12QblC% zs(EOE%4?m}wac+{^ReWrM&${~Ux|xFShJ4M(9Byshifk&?294J_uWLEA=dJp1DbUa zUjKPV?c~vMOIM0`o{yi0En<8~fp^yO8~7~a`BI)n?bPM3nKOdMgT83m$fYCDJwzCQ zCaCw#C|f*fJfJ@%b$#pzk`16+xNampqu4P3Me1EdzQ@-5ghM>w{ZOaeiM8RK9!DDo@kKE<{mJ@nK8)$ zNYIF+*2!g4L#kG*QX!z)YC5)kDG5&!ZezEyaCHYXh?H64)~Z%&SNv63r$Z&nzQQXt z)NTp5UdbFp80&*IJ#;O3X(~>{gAK5CP|B%(nNYJZ*>Y|rLwY;A>Lzz0-!G$GL$b4r zUTTyR-c43r#Vu8(N@I>GXm|Bn=sF~7=d$N z*VGHt!SKz;%Sz>Wcib`ozISOsmdRt|x%nbK#T}__r1nS29v3HKz z)ig6M`QDuyp&*|fUWc=o3jKtDil;_!@!jAjISUB`?(faP&-{|kxy?0}$(rZSQ=Kb7 z*4s2Mhs#4lf*cXXaA!)k`sU_)-|nJKM2$t?`$+FD;t-Crm+E4SmO$W&M z0xWc2F@7?P72@8#x+OmQJvIORs=DU$c-+aC$=~{xJ&6fuZ+`?n@uCM<^u8_oKIXHI z)-=Y`B%;U6l-`s)4 zA&9#~UOv6aj@8Ehr?|6@i>hn)J`Ix6NO#8`x{;QUknZm825AQb6=|d!>6Gr26zLL? z?nd$*yw%(LInO!gJ%60fVLrp`)r-Ba>$`sIVrI|rr}XJu4JSsGY*ld4MbdUaahm^0 zfyE77zW@0`0rnle_2+cssP@c|?nXBhWqQ?{Y2o7NyJ5y;Y$hSn_0d3B61+N z<*KNmYFQ9LG}9IbDm#-7SBtLQmfu(7y?2$>2v#0Db(IY9dY7TCktHzRXTEMuXu3^j zx%rHierL0ns72=ps_~|AK*RsiM{{fM!P9mO^tAfZ+bHlWeR(Zx^P<~|txvI%JKygr zg}lQBC?}mpj@i(a4L*8qZq|}sku{#Q@vpIwxwbm2ONW(Yj&tD6^H!196kDdKxnxq5 zHSITSiH9SM=uHZoR9r{q3$qc$X=_|uz3lq(NXKP;%a}(|UcdH2tyZQcsrVw!wOiWH zlji(j#9>wSee{T5k;NNZ(l~JUqPM19XNdKWB<57;ZrRB%7lS8AhC1bFCFy)K2q*3gM#^-~ zzo)E)y|9vwNVaJe)&msIzt!!ZuzC8d91fiI9?|+A)$Y)Nc6|#Ld$(?PsRV$Krsf-bQy`l*S}uh!93q_ zY-rIs9vUzss9D8Y3EjPuWUKG+(&0i?LAjcj@UL&61uJtmHpV z;#bjLZFM;Qocbc!T$j(wY;tjgB^>3B^W;l=q!wntmA}gf6VuZ5^=f5YXN#&(-Q&8d zk;qH&;b4bogGsg%@2Rk`X<|T3bVwo#ZD1b ztW({#Uarn9Uft$1#UcOn3Yd2`Jwk`AC9(e8_UtAT6tM+F7Yy{jeyE{XCl@*S?)Lecn;;zq|>*wKr zQb8v~XOMcky4Y?7f4aV9z!zWo$$s(n<^wF#o;JzEMa5-L;bzSQwz)(U>01Mm8F!G! zjhuKZQVN+1Rc>ap(=z&8T!5WtjgRr&eu6v-(cwuo2YA1mrNsE8{>|K;w{M$*wmP?H{RT>Fllhw#p1XZ0B$@+u!Ea_m2w;wuZ70 z9XKu*=#jDV9Zf#b%gr^t(ND4HZU4M1H~DU{m2UMzQJCFUyn=)pDz3_k0xp4pU$v{T zK_`cZ@A*JalyQvYLr_hQoN+hua+W3&dS5e>LrlzFQZ z)~!1CMDh509;uE8=GE?g+~N>pW3S;05IP=es+4&(e8cQI{>E#_fZ6ZEhD0OlZR$)K zOSpd@e@p(^XonH(nP5B-r|(6WKTlqOYOBAzR8P}wzd+iCpQrJ*cpkO}!n>=LH=%pw z5p`r2oZC_TW$R6O^TH9$hIbmfBAs+Y)8p^b(waR72llUa8)Ajr4yQ#RpFsCq?#NxO z&`Elw$h-@BY*fkDOZxF{|7;kJIl^RaWujAf2U%>ISP7a9+Pe)}6i2BGUX=ieF$h4V zdV#cp`a;0wp#&yPgajHr;XD=&m=IM8z{Hl-QZ#^=(=gya`VO$_S;{)a!#-k zc~{o>UQta$?XI!m>Uv8Mo@WM;I4f^nu+rem`&1F3Ojo7P%LyWBD4IRdSIt?|e(I~o zjOWS>#YZIRG)-2?w{tz&GSTkZAFbco)8eywk7n8Ef1ZyunLk=7bkp*G#m1W_eLGQJ zbMw7hC0+(20{?1$LANQ_{Ss^}d#c_>$k3BAT+7Dl74d0JtN@j`I^&&nqjicH(=)Ri z7mybw?Uz{?4L~_5kY>%YC$nOM)9&V?qvFZ($FUdDp$LQ#=ozljp(j;swofwONQ9wf zYDS=EVONYQqN>uqeF0z810vio4MPggSjhnTB|en-W@0<7x|z~D>|4Z9h_|d*1P6;QTXtjAz=> zVezF3O=Op~jOQQE`&mk|(5R|AU7I`vA7~Zq`W&72chah_b;&cPoJx;9nX*Z$xV*|+ zJOLwSS~QNJdTTfbJXxfYYZadSn72@LjFN0`*Rd$rrNcY_USj`v7HOfULTDj(=@jhd zyh*C>K-zjL$=m2hmBU<2*pLfonJ z8EX<;w205z^|hyo`h?ORn~wAc7@&+MlCqOv4nk`nX$1|B8Qx|;M+*NBVK`i*5uz?4=w0==-3&AdmnUoIF4 zP`ckHy?NPP)Eit7aqz`{er$tY%=pG~CAKSU*}<`VRKW9su0CH(f!v76M3~!sWw~Kn z<|C`Hf5>}!A^+=f2UN0{nFwEj(Xzd9p>?-_hIhK8qz*j!>ywFL(G1uK)H$5j1a>61 z(ovaa>PPKN`T`5PowKdp?rg(WS^jd}AR(vkXJ-VRU>#HqH6B4ufo55(P4|X8stw_# zS&`BGt_uMH^t-hxj;x_u+qtBjQxBclyqs@IB7}QxJ!|X8se!qQ_@rMO&=nic^j77R7VJ1(B|yBfDJp)B1y{ZQRc&--OPV&dbl;x`yZ9l}RDCa(s#Nv}6GMBvtHu-?F8^Fr7%mTs zkV!1G;IY2RcXr8OLOBL)b#**p^bn!QcrA;t!CB4Icq|p|*w=UM1=#!r-j8eii~@?@ z>4qsqgu*CJQIq;(l+#q#lUYmIa71Q)icm}m20PI=HQH8)+kH?kpc#XITF6R($37gl zJ#c(v-d8M(Yd+w52Cr-%)Z?T$64&}l$lto5 zC+ch2HOCI?9jMy$DwhM%YcEZuwj`S0!?vTmsqq-)ve|91*a$3GA%ucsa)jq8=LLpU?e>E?-p2ZIP^bVuw3=!h+ZEM zq;k12l6<`kC4y5xy5_E^aQ;BI3yulX%A&b zI)G))G=4nXYxP0b1s5AzezI5j+eOyjjirPE+&iWp;aPtuuTs&%n7>&Kd@WZxUuu_ri}$m5B0q6nHeNHV zKl91ya8b-|DBGc`m26C~eEMw4XC>Qr3OB*h{N++??bZ^97R@Qw%+If3I%2EoteYm>P9(?Y|M#`pLsFD+- zwU8RVCZo-bcvYq}MzWSeHkn9BF0>Rl-J`fQ|H0ctQMt##u4nkTo}yPna6;h3t`WAC zYW~CAJE59enRTp@$zVm!o?%aKwtAaN$8M>GM?x`D`6#DB@ZSZZmbPZ7z?LPjLEj`0 zqDH0!UVmgie!AAYQGl%9a3bfL*Hf^TwS-@Tx1GL+nzXwfi|6~vjhbM7#(!5+q~h?} z@_iGRoPJNNP`Zh$&34?3GkT~2f zt;>=6;EQ~lB6&MZ5x{Y1a4T=b9v^*1L4fv{KI=iXf{mo|oIO;0vv8IiFR_y7K0RFk zdcC}!7N|8fb)f8@k-gTU{?e~$sDt=HCI^dxd<2??&Us2LP9Zj# zmD(fp&6#cNrzq8cv8!`Upcc29;5oN*duhNKrd#th4@<1OaRU3=L?zNz7p2|mjc@eJ zvW^w%j#H%z{2q$6XL9W|YV_SJhqQUL-G`E&PUOK#-{KRKBf85%w?zvJbJCHj@iB3X z3>*2c5wF79Qq_#ZT zID!x*DcN4avfTVy!Kq0LoQYgXI6B?S(d|Ge->|;Pq$X{mb`?^le9Nlg&~ z(r7`hXAa-&Z9CyHywqlIt`x$lJLjrT_nyqTo>QHZa7vl;so4ylo0oNomRD3Zz&*Qm z^qKRn;lb-_zgZd+e3xZV|NJB@$2TjfI?maDbCfiGNf`IL(Tx~J*K<8`;^O=(_-@QY zt5+6lS%`DvsAsiWqici>La*+bvUQ`W zC%(Rym|yGk9tveZZR7F0)XlxMMHn#jDrqyXB$eXWQteRy`E};zyz-`Wv?#Zfq4p4; zh>AVg!doGYgPAQ82s{%@kMhZrbrP8}{Did@$J!L z5yEmOQ3#$2{TaI5{+=F49Pq)fRWmToUSEB87NmR&&@6%&&gcfi;18tW+8+9jeRNYn zE-?X#@)Uelp~QD$n{B}3>~x>(Hqpau;KrWpgNd8+0TX_?#QrRJQvgyplUiVE=j%kS!L1eiK#glQDHE@tUbzPkr3BW{^$4 zs1p6@>+FLjjnfV^0mj#zgZ!E(J6|ev1@}tXJxZX@F+`)=D&q%0FCC}Zm>|^H~ z7nP=|R;qDz-{%3npS&rt;8rd?#(f(JG$f=8Qpxn0Ww<>k`}>ueK0IkJ(|0!y7N(36 zd^)1+rDw9~YS=vd{O*N5ZIFqv@bCb2N9FdIS&SV@#v^jNm?-ktY4F-LyG-SS_iSFz zWJ8u1kV<79S87ykdO^`AM|_<_vUg%_Q8S-GOJ{j!JQ2HZf^!;@iuP8(lxZ{}D`5F5 z4>9qjj$C$`Z&22=ykgUJSwDd%YQ|Y$PMq9inehu-=QF79X+}_WyyLs1@+!{3aim$d zUd5`{(&f+mJqdBvC2!TV3gHZ|JgT0FQeVX=urEfSjxTj8M76C$ZKkGTeLbO5i^Y*Sh$R0}QCRZ}+qCuZWKJ+9GIFJX!O zCo40wRpPp5%fpR}=XQiSrHg)gZuT{&>kee`b+_@Q+fmzwSH%UaB1x;Gux1l=y?H)5 z=R9iMLWf|!!>KFLo*wX_$K<}|IPc<-gYx3k963@2xK>>K%wM`1EeDJT+^|j1R{82A9{Qc_ zou!6Gp^LOeyl3oTj?q!NEMb0cX_wyibiBSnwt;QSOyp2uW!3Fja)sG)A@_01>iZEq zIo+%4i%Z=2{e4q9YYCCPaL>oPdZeYvxAboEq@DVN;zD`hwD5z=k}krvkaHG|m08Wp*O%`T1-kt?&$ zcovoQo?ZF2Or=Pz7oWOzvb6_?5F-6*5!DrAX0dB5-w1^hF6otx2iTReF9Iw+kdTm$-gYpp7H$&#(DnobDyIqYR zZpSolSzCq&x75lbb{CDN&S{ceihnv|6c2nu|hMii)bS(c^fl2p7?`3WpbEX540= z^hm14DmUSQuVBo>f@SnoNHiRzJBF=h`Ojab7*< zYX7B{B>c=Kjh4AS&2myH-WyV>(*E1ku3o`UUmrmMK?JS{4;aIqgq@>7Bf?|^5tu=; zj9{RlK`6ij1b8NNSQtWhD8L8-nF#?J4myYj1{y9y1yBZ<|HyfiMf#i=O7O=+5y}|K z1%JT)?4 zVW44P9{RuCzVhu+(Attq_V|o&EdZeXo+>mvWKw~VKPCyQ28VzRqb&-;1+Wny2_$S( z4an`G&7AGY#f==zKsW%_eKsOCiiDf9v5~#Im94EA2m{g^Bo`SQLDka8!_^E#0ubG2 zpkU+tl|e3U=Im-^Ze?QRYUN-LA_GY7i(#?xeio}**+E7zvU9Yuw;&f61xWGHK?M ze+@_XyZC-Ua+O~rs+c*uTbY=-K!zq~A(v(cf}kn?JVDU#P_RMJ7?3LrjSLe6xu17M zag~g!Tmmr`@-&Ut8%hmEhxre*UE(e_9j&ZN+E+Lo?$P4VG~(5nUnNgA>U=s~2Pvnj zW1(QqpYFC+*GW*@3>ioYj7bcOW4Yi5MOsxeeM}-Pb|#{I>O@unTDVd+f>FsUI+bCD z_ms?K0}rn!t>3=wW(>ih9fmkv zefDJC=i30LF(^yI)w({1B=P7(N_t?7?df?kmq{Vo~DvRhEo2j?byEEUWfhdPB5_0 zP|(?dmq6h8k4s5{4u=PaV~~7muRA#Cn*4deZ(n3?NB%kM0>F-d1hIB_ctmJuI9h-j zp!}5vpu_MiU0ogd+1MN)_b+F4{b4$+CJuH#Y>WgO8u|_n2|$3nz(7L*B9Kc+LI%eR za08qf>={59>(9m}&bEKFW&6vb{xm3YQC3KuANEW_1BVJA|C#|T5`cc+E5`jua1cL1 z0O;@2m~a#TSq{X8L5~3ZzbxnBeTP5ng@qm9ofgrLV`koPPdFKUZ8=7EI$sol1wFR=05DvHVl1e4Xbo{;eIU@l{ zWs(srb(9$C>-VK+=0eiNj?U{b>jpy)>$`$YV;?osJYU}UM43C<0OOtM@m9yIa}VFO zNi>Xc9!dUX%*!_{X&w?}mXigp9&_kA?2+n`9L+N(eKM*1-Q8OpD4!0qiB2M0W~wwI z1s37*y(ufHOIdpzyIT~3X_2l_nhO<^kd`0PI~NW8<;OwL8jv%k0-)X-{|~o=0iXc9 z`xMQ+Yy1~3gZLb9`Q=U!2e$ys0LEWwh=Y^<^ifwAmLERu;lk?jlh8jLo#%I5m@uZl z>l#@ZvHnX{HdhxH784^D3wBl$GiN~XesW}RTmT0E%3#Z2`Lp#s5dMqS5ET6XdO7%0`#PA)Sz)eP)6$qR-ugwg!;hPlF1M0Kj|x@9Fo?RTi>{K)&Nap!y9Xl>EUf zV}QpqJA@9=fuM4cW}sa$PSN-k?7p z!@OS5b+=d4N0*cmwMQ%8;!UpLpMBu;@S51G`ngZB)yd7fT2wry!vLKJLMb|5@dmI1 z?Vwm8cUNb4#k^d3qFo4GhWn10O@?TWva$2lGgi4XtRm=z-hoiHa;6st6RS`CJoy7` zr)}#;IwKpofCe*IMx=fupubg^($YjFx!KCKxSK>UAm&SF6Y(^h8xRCf4?)$#pO}(c z5NEHAQdOn_r5)|pq^JLhDHMn>3HTpj;-|7e!N&U=6V7ffuH*`4t{x7~HV{GaAGClt z9BM!oH#b?k8jvcYZwn9U~XB%Mv%8s=@0n(zWxCC7xkhbX9^4v)A!Va zyGPzX)Bpr+O!q}(a1hY~kY|u)5Qh=|WR#2hJ;zLp?;*wpN!;rT^ZUx=a0Y-Lpo4&7 z81@7@>_QS65g!(i2dI8=4h9+z|Gp0wi0U!@qYo2D7l7t>B^cll>c6e#>}d4wbPOz@ z@vAKa!g7EN1WZ3w7X-rC|D3ex5AxFft^o62{8g_1AY8nF%7GV0LYZIiJ}cAUKwTKA zv-ux{T$rjH=pCVOGJ`b=Iuf(`@=Te}8Nft%@YksjgUk$~vEUv;7M8#FKSX~iJSfOA z^DmD7gOzA?SYx)buapl0xKvoOjT>A9vqYY@FQIP=gs_Q6^}D|9bwtKc#g$9%7VOEc zg}HWXM5<6{m}7Zv|9!Q~k}pY>J^Kb%FETXq6Okw=8gvF7{T7gqjxpVozfKQKzP0S= zHG3zFpoGX%bRg%0!2fYqLqH+vxvt`CoAVc9Ec0%9D79M4e1=f+qemk&H<6p1L3;#( zSVR#zU&{m~^obrKXL0hF2ysU~2+dbPYIt&X6kUU*N5^y|REcYtd#a2)TL66Bsh^yt zT6r_&@ZD`SZ7Z?bBSy8C!@276jq1^dvS!D%SCySr{)$lj$H(+1{S6-Jyr9o#{=&*d z?u7`15LRkISSk9Gl|r6V-`!;lD~GXNdmw1@ZW6`6M{*h@XDAgJ|T5YS-w>^By~FbDqTIN`IO4o zy1G@HNclV)jljdQahm%*8->zr+VQ#podQZnLf-?&w}rF1XbL%KZ!)TPaE9MFtFjJf z&q-`PBN7o69FYB1)V9I*US*JCbZ{gfWvydS(>e%uPl$VjxH|!nI{MJ31;ip`KVOq1 zmM&)$XF%+@hwnERxoQOV?6o8+!}KIfEbUU0R+*_{pUgy;dfc556EUWepQIDYr7^zs z*4T&~xfk%D#(ZiVT-)Gd83fuh8(8{25mm`G|B}hU+F92yeBJgt5Ok?cw3^LvTVY>j$duF-!lu9t=QC_@C9hCoOP48W|h| zKnKudP-Rerk^Lem=YSOf0E8jw9E9)R;}5LlSsN3j1~Um&|p$UW=t zcbkyaC5IFs1`z@TkPL|9VEz&>N^&wRAQmoeoWP9EYO*SaB`%Pi;Y9GAVz(x@2No0 znpX(kHGO%7^f5`6@Lu>#UOOed$>!W5#9k=N-8kG!AI38t(d^EhrE690TCUno)& z8B%6?G>St33WDo`z_kqq8X5?E`+qJpVIKYmDg1ZPFar{3dGtGC_W%}z`o|&)2N3^} zLII&ec5;6&vA7WR@hd9%01gC+)6ksUzWA^b%q7panSMYrd z49T#4ZVe?52|$`a89{=OR#4uMAfzc2Ig~Tx^*%7^201c;97Dc=4pPGy@@fvLbsw(0 zKXQPSl0%6@etSV`yZ-0{@||{&v=x*+Bz<4z@Z-oC@@kuj^Bn7^gZ=PZBgY>~<&P~C zBn}4`1ld7tbxge!V%Aj6Y!QGl(48#Ie8n}QBSt~CBeR(#NHBSgpbjmdp7@R>y{Jj? zQ#XFRt|I@0(0-`fbEJec&*sR>viB=|b=~yW9@DmktDCBQ2L3Y-p)|UKPTNPwTTuka z9;7FKOP%6!d-WW)y!cV(@TuWwss(QKHzR!aRrEO-UQVM&Dn7L0@?ok=@zj@h@vL1! z;#)WsT=2BkSYo1OpxxjP`~}}TvxD_yXp`AlFX=3DcQQ2N&uTSzOl(O*S_C_)yaAmC z6zgHpm`pOF2QWTMT!nf4QkOnxOfGwShZO@y;X`OItXXDi-otO(HnvSfaX)q^M&9!Z zs#dSd&J2P<0fJx<|GumUpdjcA2xd?2ZQ1#MJG2Ay@IS%8o|+W)~$n`?N>bOTAzaWS^O&V)!}L_5|!`x9h8%|U~r zo48KwI4(N;45~y{SWkjMF5?Z(GJDEP-DtZf#!fCqD7zwzS**2VuPZ)&XYI!kqR;2} zLMj|9KDymqD!Y)9ffTOt2?JR)({Aag-9UbudQ>821LyT~v#N#OOT2}OOfK+eCSQfF zmz$hY5;#LiFBDQhQ~DK~GJV!lHWV-0Ii-)bW=bZaGW31Xe9^e0FH3G_4Y+aSnMBC< zzaF$0TO(uh*KU-wc`XSycTlRzvl9A6(C9B@WknT!c?=kgJym&gxAD4gIWH#ciit9D zAvE5*qOY61fA3oTyNpW-^lR=Vvcc-SjS41Shy19er#v%sHX9q`?~aDB<->F?{~yw( B;otxO diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_es.cab b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_es.cab deleted file mode 100644 index 065f8e4c942e1b849f0ac0783c713acabfb64326..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29378 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 diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_fi.cab b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_fi.cab deleted file mode 100644 index 9043ccb7fe5cb77cd194df62414a3140d294557a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29411 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ɗOX9-8i{<-L9 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
    e{s0M%210D5r-HH~@ZnM78{VH-sGc=*@oC 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 XJc{3VKL}1EkjQ)1u=UE!q4oa&Ruv69 diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_hu.cab b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_hu.cab deleted file mode 100644 index f1b0f5b9f4397294641d28928b742b857cab9189..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29412 zcmYhCbx>SEv$r9*yL)hVw*(08?zXtQvn04{a1R6t?(XjH?htgbWzn1Wz4xp7PSteJ zuj{Ek=Z~pAH8nj-8j{jb{~ibZ|5zv}ssD9QFwoFYFi^1nRk;7PnEz#b2>%cG=eqw5 z7$|5cpV|Kx6O@q(ri4;;vvu;2bawJ^b9OLsvvfDH@no}baDYnWgZe*KP^LDJ5(?n% z@*mQ|!TSHFlo6ny5D}pNrPLDRwxohmvIV#~yE|KXuxU#QaIi_LYqB|-IoVoSx_dx5 z)8|nlu|a*8RJhO&^wH4D61QDQxaVeN-I4gByIQxrfkD|G*(j&L%otjNIeRtF)7Ci0 z!@s==H0#@^)RwA3uNGsAFNoF9G0h~>yf?%1^tLqAH2gavR5lr{Pqz4X5!#yh>Lt(J z$t`75%nQ7h88j@?)g{;i_TC1Ip5)!-fpfCk?Vshis0I;NymzqNGHPekZ{P9(E=Q9A zbP=RnU0mn2eW3BmaP6Q~?Bw70YYSE&zu>QObv!ZnZK5_H1lGq?Hihg%oS23N?qe4+ z0-~<#8k`32vXx_*PT}QwfBK%CFV_r!BQL)iu)hJ8Mxd)U);B zEIkbpa?fEwrU|}r|FvA@Td35vMFt*upblQPUe{=D1+?gSWA10n`F0hJaP-S8#aybh z(6wB#_-?Z6QeCVL+*TD$GWmJF;J{uBjk=3F2673pU8tkq!?(Mc?5t@6_31Z!UkpZ} z`^gecqM*knzLmCh)8qK0ek3Tp?cLEok@EHS5Y&&lzV|`$LHihQx9Rt406OJ8{8m3o zvHN1W@pI^rys$RWEp%bWerK!V<(M|TR=A{fZH3S3d9T#{pfj^-1=$KTS5kA>V z30|ZJYvxZ}t#|qOe{_t;Mk9o*Ir3K$Re$U1W+rw_u8bsESIKhZhzF*UBah1&Kn%SZmH)D=@XX-yfThB*`^4*6A=tS z^23{+5d0M>jPs`eYa%KGD8T{ujIpCoMY-s-2?Fd}gAi$_IMxJX^t$tSo3?XWLIUDI zrNqYWN=AY=VmJCY;7bqAZJQbZ1KvMGI*0hv@kIL-`BYck_PDhE47KTvvcsxNVpwd$Szbuiu|>|1`mTFR z#{lzUNJZmM9T-+p;0=2@r zyoR`@ckTlN3D1)s3kT(iX&7f&Jhh%v`Bcg(J&Y^ezolUp{#?q^Il=HZik7j(a8EAq z-1?O7OKbO#8vmzVKb>`W%@=KpYHrV2TdunJvUS zih6&B$eWK!q}Q75!^;l?IFAQ$tCxD1u6dO%Yv=3tn@@9zxb+&kND)POMjj9!uHWZG9r=~C%J7kJOTdh4^t^K>|lfA)F zU#L<-vhNr>??qUaV2icMH6iG=3K?Xpf>2hx4M`GtK)o>(*L7{nF&^^9UbQTm3!Fxjb6?Hq4-oWpJN zPa8mVeB8^w9EP3+LmQ`L1JdY>r?QPnRe%G^mb#xcF$PK?z8t_{vZ4B76@N7s&Q8M( zq>d+lW+(?Vm2kUe#ns3;7p_-IR_ZJ4hpg8&Lb?+_%=yfe5bLDe$Z0S#?CS*hzOkBV z3b-Z=OjVI~o;$A?A0N z<2Y0v@hOAo^h;uAhBw#34&TWRVsr{=@N1&2+_D$$0sHfzKD=rx;c6q&CfEr&o5Rbn zB;VR+ULAoWCs6=*0XFgan@)u{0pEB*@u(vSrtKm3XlS(XOX(iEJHog%PIEznTgWyK%zD%ow}!u#$_$($hP_mpeVxAn13gpZW_ znTn@Q0x)c($`j;|vvbE^i|r!*JAnz%ICVaA5Q#vhcZ(uKwAK5|>lLeIzG%HK$8~8# zCi$kyy=0eYTii?jdbYOjztzu&zVr4#vkBN;*B~vW0F#xSoNc`{|7L@J1C~&LKl2iX z2m?)0YWiH223La)k|*8^|Hc0CmqW4v4p`uUA>-0{&`Dn0- z^Eyxm^Dl#;LLdEvMH

    {l`0ePlVzLF!{EySht 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 Jbo$`=e*gyd diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_ja.cab b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_ja.cab deleted file mode 100644 index 219554fd89e03d406060bb5f9b05ba3e58d2dc33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29146 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
  • dZ8NUHGm1&^xozsDH& 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 diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_ko.cab b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_ko.cab deleted file mode 100644 index f23dbf9bca441f1207e24784b37d8d2b3790f20a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29120 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 diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_nl.cab b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_nl.cab deleted file mode 100644 index 1bca31a99c7ee9c13f1c83f16359400dcd4bcbec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29437 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

    &14)vo~oeuw;9x9xrk+Dir@YtXv6vUzRs2lzo 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 diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_pl.cab b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_pl.cab deleted file mode 100644 index 4d14d35c49be7765589c52fb8011024913423448..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29456 zcmYhiV{j!*)GeHu*tTs?teIqD+qP}nww+9D+s=udoY={Ujr+XsyOrW{r$fV4E)CrFmN!4|IIM|*P{F{#{=j85&m<%|4nePA7CDH z{~yL9&J{!grr>00=OSWn=i+2i4*|Z-F7~?!;y@?U^qd2 zH|IgY#N$Rx*owh0m6UMwp>@-%?_NF0W|n965>YGU5a)?ge2py3jp+J1Zc|2_^z;|< z%FVj(dCRS%KhVkxWb&MSN@yz8k-Kvd{G~RmqQ8|I(k^4hws)1HO6L|uF*E+F6g>$d zG@pHLk_n%F@0p_XGsME3ts2A6SqW1+)oY$l8Qg2-lrNP0aE?e9m$%uP%r&e8edKzH z_2EiGNR$moIpo`Yu8`D=IteYqi7ELb|C0Pr1WG~AiUB$AHHnOt>=o7;ygBreeEQad zh#2id#wF^^n<`NK_Iqs!B;+3k_=Eo8%@a*vN}ThJTjv90_Ln8*Fx$tl3#@|P7m>Fr z>Lzj^U^-VtG{x4jYp+J}*0Pjg)bF7icfVWM@De0zmiFtVL4ivw?M5&)r)iE#C;LMx z^XQqA*U7B!&HOqHJw>$fsj^P)&fkgj2vuw40+Tddr?0JlW_5`WCM~_< zU3S8b_TCP>I{`ZKfB@w6`(E78KF$`SgAlTNXHJ#`Gn1q9o}AH&BKw{rAsE5fvQ;|} z!X5P*ZL5vyM%G2=ilu**wt)^wo~-5+dDni>m*!8N%mRiMbFDJ^o*;O7OUd8QQ+?N@ z1|eA}?kDN=A9jJvpOOuqmHT{R1JCh6#6*xnoN#`VV9X)RL&dwlZrS^5ig#NT9hlbF z@+pgVuN7~o`rA^`8etO_8NxF)#Kub~YIIry5`bAQPTn@2hf)!`?$$@O>V`U}4;+6M zc>mF-eYq;!&-%h%N|M8O6rD&~7(_g|HR+*u$W2On1uLji zO=v4fi59?stNk#x0pE7NbpwnBReGis^K%`Y-NH)c{+(=wAnm9zMRCZ1p)^lt>R!98 za+?DhbZw*8j!zGE2n4GKb6inIusMyX3sn#rm>IwK@Gs1m=$~*yc|=B7qmJ8CZN;xJ@mn3RtJ$NhsP0@A5)KJvpP#- z`u4isSXL-MMIuvw!3h7;JgtP8v=wYm{8X9sZEPD|tosv$CO)ih zFy5e70SoPs818S#6NYcQsBada2IF+0A%5(R6avb>)n8|?eN^F~m`4bodrUV2Iha;? z`s>7TqyA%VY>JP*$sCVE^IG@oAN2U)#`z1m->-dkumx}BMnqBysR6f^v|T6Ty@idO0;wbXfGa{Rn}z|gRJkW9uB5unNzhj{!7fV87UYp==N+jBW*Ryi&uqH!$3I(*&4%$Pn?r?}|{J{CB>8#q3724WN2!-R@* zcP#1#68a-6W7MWu#zfvl>>FLf>XM(JX%yo{AHD$cW(C*IF`DUKRVN zkxPe#oY^Kn>SNZ!wo76x`I-__t@wp(VDHI?=EU*>5!)njyQ(r{Ju7anEZ7LTOxf8d z45W)<3Bd7d6g*+qxchBN%11UWa7M(i_UvSuSqJ*Xn426!c;>PVimfs5*AGJyER2%^ zW5Y9IJv+{SN4L%MMa2>*%_UlpZ}yM+nHj@sV{>Wm+qR2GQg)c=wavFr%J={VkH?aH zII*2aIfW+8v?k`>{^F|zyX6>NozkjI3aq@i{fb*q_cSpvE{e^B;+$p22cI5og~0C; zJFD_xbIMlKr|gw%Xw*0*08EA&$EqJlEar-FDxupj7;?7CDqfFK#Vm{cuxy_i7xM~= zU7jA5T=~0M(y*Q((3HTx#MSCSNkw~Wwc}#u9OWpZlY~+?iod~vzqXb&ypP$`z%ww) zKVq};QWCODGoF=Iaw5e98S#t+APu<{>!WMNC^+IhC#7)v$3O(JW+fqla}1Z_Nc-@d2iQEC*_#x_8s@;jAH<+heJPP@m(@}14siOS{A(tC~f?`GR&0ogVR<{tM=!Y<(U({AN5 z12R(<(D5r(Ust{1y=ru1`zfh3W9Yzoz&t)jK?&U+rWm-x=P z13vHPf!#U^Y2RKEt`Y#e_tmh>arGQepYMR-aVOi_5{=K6EdR6 z*VJ!?JF{D(J%DSes`iVWZySPM&;@M!Sbs}7jhxUmp8~*{@5x3|7vU{9%5N)L#TeoG zMZ~oiX^aEa_~v)UUp&@C>8A>`;E{Gp9Bi{tr#tGrzM{LF0sc{u88YLkCIxh(I0-$i|qw!Qe= z>T{%*GW)N~thaSQgc z4DUKCqg3yAV~G5ci{v#`AnUse7+|0Tur_fLfWKOm`QtCO1k0B@YwqxiuET3n(|aDO z?WzS6^1WdET=(n`?++(BEuN{CBOX=npPmczo8!a2WcYcFY5}ZpoaA-IsioXawk=9R zo`0DdZG(3qmQh~`{F8tfq>FE$y@v<(MLM?^BpoJr+@BuVZioHf3B@rkk4<+`!>c!z zT+2*2$@lxyvW*@lSR%Gm`La#0r*$+yb$uZGNFpU&F6>fuz=3695?bZ6;_z#V>|t&B zLbU;5f4#y0(I>rny&-9Us!|Zgt`PdS4@J?kX7|{Y_1?wCe|OV~3)O>rZtq!bs65YQ zZh;-Y70W{}$H>*H(aWD*{^h9Rsnp5#f*P8js5g76Z!a;Oqv*+|h>kJFzlUb|-(u9$ z?3nVT`nEPOlcYOU>yuQ89WA{~zRE?71b1J0;mnsOB38^6jVgD@*;ZtjSBZ9r?8&Js zbPlQ)7v9-_QBmu#0nrYie0w49K}FD0WOuU;+~C38#2?b?@rGFnyQx^eiHW-Vmhi*B zS}ExRk9~*fTR{}ky#>{KnOm!UchXGy+$gsqSO4rg4x@e7Bzjt#tO(!7>e%!72OfPe z04KG!5s#r!#dkK>uhaw380{XKWxnOhJvD4%$Cme@!dd*`^e$|k!F4rg48UVV?btgWAt;|)BuuRs%Cp0enxe-iuu@} zZN$E*UJo!Ay2wK(n_+9zBKNgg4xE7r>zWm_jwZU{)&nD-cyZJ^j?YEGb^T`tHQ9#D%l-_5?`sTQa zTn_?Zu#w0A?{ZbT;aBch?kE3j*&^n_;($kov0uzbCWNPD%*Q%}r)JDY2gK`7D(u3U z*RAnTh*uxcxc5N*>#vtL%!W7r9Fq7)f9)Wh7GSjb+LmhD=!7*1gL~EEm~&q{t(+cx zh;LG#>ij&+Duf&_(U{}C5`+b59jAD{o!VG8bGIA}q?(t?I>a@!{pcjWlL0Mr%WE?Z zXC$ACCqsA`^ytDy_Qchxad#?e1cQ}Na{_yCCkpn+{kU}LueYK0BoaFb*WOl**9-VR ziFg#4WpaX%AM?p1&%ghMEK>}6H0@4O0;gT!a`zH;;Z;N)kj{MQDKz)8(&|ZWQ?KdL znaPYv>fm0rT-?|u`ZX(i^1hsCqO>LFA(4rZcD*93_nb6lk29ChGizI>$v5bR%gc5> z6;8CH@N_&ZrGA@g8}gea+V?>|&j)+yw}*=3x0g32Fx!Rq(@E475 zB6KWpzjve)ByCh(8AX695!%{3mwVPdt}#yHQ=7i-&$-pNh{tXrHgC!tsT|6?4!Em4 zB$3_>x8?;n4t1RhADs!LV*kW46l24r7 zbuLz?)T79d&}6^PgIt&*tf^~(z3k=rNu_-Q7b?(kxMjsxNn z7ayA{WzBfg6!bTZeO+HEa4r>RadCo^JEW`7d64o?@1c+ELfr)sU0uH^!cJ~P$ueS2 zee(K0A9ir$Qb}59fiBM0JAD^8ogXaDu}Qz+E(n5f4#_7y95o&Ean{aJgh?etf6@sB zH*bkOdIbOIP~A&2-R0NeA7{&QfQLZ=P5vfKykhzxMz4RcbbKHGWk<`L?*0-)>VvC| zim;gDBhEWJgV_Bqd(H(pJ?agf2z|RhgrI{kC+2wla3=o1#gIccPXCdmMqF_OC_?pc zQDa=mIsDe>Ag}YtVSK*7vT^p7fsvw}`$u1*zrFMt8cwpbr2DU$zuLr(5;*kp)5*X$ z>{B^oJ+MN3sUE7a2Pto8H>|5a?~P`YZFugc8!Y~z`e`7|1M^%{7H)#53}sEFfuZp$ zMp%uAci)`7;flFghyK^1Ekxc~&UC*=+P6;Zm?H8#+w{BXTa<4u%59Mk3nl=ymyJ(Y zSR*#t1H+C~-~af~Q!&14F;V*$$-WsB%i}ans!kv5sJeS_!N{@>+f|c?cO^q^33EYb zA<{W_R_F;fv5LwL#A4>vdt7M&GCVUTUzTdd27cL#a~C0L2E9#E9~)B*Mg0QIu-h-VqECQ6PrhKrRNNiBfk^0(}T@kqG{?u$>^`>i+$>PmWaV|_f=mL4e# zX=!QHPKDWJ_O})(r}fW``1NrhSr7*Nb4>E4|u)GZ<)3ZjE; z#&X3qI`CMbJCDK1xe{ldm-z8=;;(?atfG>2@EKMaQkp#`@R^^C{E%^>tVa@qj zX_iCUctPgtBP4P?M&@@GW>wGR4y!s;fTkkma4`OcT=UG8??S}MKYc|>z+lbzna@l_ z)0XP>%17rXsnl=n>*gE>x<9hhb{7%(-Nbv?=v znXxn2uyPswJ8HX#DO=A+oDJJ&vYt6Btf7f+Jp89kZSKTSMyo?x)Sh?pC(AYCQ)duO z`bb#ePaiq*QaZ7Y*B6 z*?Dsp$~9?uWq|y>o}0uHJf8i{suTCOVlO%V{mF=+e@-_Q!zTH(;~`-y87Tjnb-(4p zLk@iu{hkr3dmmDU^bQI>k@}kTu*JGt0qai9hHW=B?et;K-m1*uyAhC3zKD$z-;G@x zd-5r7sg8}m>X>UjarAvBUm}rMR5C9_sd%wWJX0d&M61|}qrhpppn<6f&*+|h%z5b4 z)YVM!_fN<<>04#byM?<62xaRj zyF3um2Fo=dHB6%ZooFNm%*f}1YyH%xIw+V*SQqy`NJtd^Lh*~ z=RJKqM`tpns_=HmnVR=eKCy#OoXxzEO_!lYl@ajzX9=`9C~4wo9I~1Fwz9+f zna<2?)+h&M`Tm#O<9k`kmS~&(~{)O^1E?}_D7u=ZT_CQ@UPY#o=^k~|2>#@{|7g5KEeO6)T8)ySz4hLCg z4(?K!|G^Tqx4{YpQb8_}>%$%?Pz#fHg}FG#uArgX(uVTx!oF`k@WG%LplnCZJlS2R zxo-A!+H8mF$gjO$`}m|LO=!@6cZ_=lftFpA@SY|g_13JvpH>&*d!;6y?QU^z`$ugY znE6d{oXhde_Yl8P27gl?PK3YTSJ(CWk+=Z!;nK#a@#nCGx^M=k%_dc*=J=tmsqVdQ zpM~2y&?ZPxMPfSYAv4gE4W~CIrOJGG`gQDodwz2h4)Sa3>C!ub!Y8}90$i2fK2fei zTZ~Y1d$m%9J>!rIf&N#a;t&s3T*tO=@e^idi!1)eBAZ_$&6a&%!5L_vVy|(Q{RTcEcIpuikdzYA-vnH6B=J%->j` z8Q~qkQF`nGJ^4X?%fr7R=4$skZNg3)|`cNy%SaS&`h3qz&5~%asR}KEf)wPeVf%pvIq~q($pdOKj3O*fu zZE7nry+WYVvek)br*heSUvJnEn7r=t^GX3-&9A&{RL7)?=V$qb72G^ztVGqB2WK&1 zRr3GyGfpyw+aYAKd3x>ej6I2ZuyTB5`y5*u5zbsoxfjxyQnye74dY+<6iXn^S4Dqx zQPh+uYE&6Wl>*R!%)^$S{2-1@)3?ab>aHZgvO+?_@1*L+O3{FxntoW zYqZ*F(yPVGQ|&-#?J-?4{tt>91 zw7mTM#$P@1^8xk)KH>-ALW%A+{~h1FXv}^0Air$(R<*Cst;0;^vj+Xa9@u`g(=QDfzGjL{^{O2=Xrqvn;% zGFXH9hXoU~#d8%o(n$hey!&S7LL|7Fn7BL^t4a@gecADqDkg@U$H%C=jOm_TA8cgoSLt^as;;uL@s7?wY!t9Te^W97VUb8w!t_>u8dB;|ry9vL5?egRv+I*4ew zx}jq$JgvZCsTRRL_K|c)HRFLzJUn1UZUiPilHG7vc^r^`*%2!6>_z@L3{_dIN=@WV zlL@DsX!>D!*IW(6-t^7op7Y<{<9;BPMGkn12?N|g-`AcHT2W;#xHHSI?hRG!y zdnbjCCMKo=G-q7Rpg#n7y2hbwNo3%tR-DTIy4Rt*4CYKCdIaQOCTm#1i0Rl-+swkU zMSkNJ&Ng{6@m1@~3ma_Mhfb?gkQ?=t+di3VJbLDQ@t=1QvV^yz6zhx8zokK zs!w+|l^;xsCyisHr+w!*(kOX2jH;;Ky^dHMY|E&yOQl z#?^nw;LBm^(_!3q%Zp9YS#jq-Ote7$yo}!x`ms|FiotIv^5w#q_|m#u+KM5XNz~M> zuK$v5MW_8mf&bui?9|)MoVkN@B;@PFB*`nx*fY#Aww0lL;fd^ubo>c-F3w3Qn?*OR zi-zk;6{I)Wzf?kKLz#TQ(UW*|{~W2#EuD0kXh5W|gV?|#H3FxjHeSc$|5>!=v)^H9 z&b#$$%n}eEv=AteE=;x8_stcc6*u4Bsi-6|PjBMNDk}HJ)5pf9#AO< zXCxeSrzz&&38-Z0s%-G%{pr-+&4jz)_x&LtBPXBv$zsyQ_%nHlU^3||kx-SyF@;%6 zv^+>eVj{r0IyTKA5r1z zgmc*OEm`JV^?JGk5hL91q|y9x1F`AfmpPPpAJULn3Z4t*$dvhlt~U}^KW)cA;1AiO z2`iy5-X3n$hFr35_$rNyhl5*6q43n<;YR1i> z>bW$qPmE(ir&^3sFF$UJACD)K*_ zkrG(H^1d5u*xz;|vRa{&6A1&UW9M;7|17{~j4i?l8Y7Y9#2}EeMAK}zlMY#7g&zIQ za`O0@TzkNrGQ;0iO+Abmpz;OM__XdtAY^jEZ((|mqg*-6BZW^r7mK(X3F5(jZ@mk( zXvvES9aRs26rpmEeBH+QC{X9d4n-=;X9x=(twBY-FoRmid(0 zQdaq{oQZ5Y!t+$H|GBLD%`~U~oy=72q4U z5*v9=e5DWEn6Iink$ETDCiI!b=7l`DYTqXa(?4ME1B_9$2ufm2{lsFj$uqUSU2-oT zFd*wzmFxwxks-)J@m>{>HU)(TMhn@NYpq6~oc8H%L1TK{wWsQC?dvd93KI%2o~LTt&pbVH!7E zu9WT3X6~kc9AJ0+H%3?i&@Jp^e2@?I(?9hf!d#6Hscp}LWiCY9`jU3?SDyY@{%D)9 zR+3e*%U&(pXeWHmlIiKm*njqPklk&`2^o&)1Y_nB zM(49tfB7R&-SQ5Qf9ds*H2h$3Q+*W>`+k4j9~MB3rxhw$#ZLmM(b%~Lr+5oskY5tq z!%q6kMC?=q0L0Ol;Xs>ht0@&m%2wVwJQ_=Y_`*h2v^-2PC8d=X&bH~qEVlTu6=r4n zw&?@bwrN(Y()jHWAAH6qmk|5nkvKLW6!gVito9|&y=~*#5e$$jT9y^q9_;$cseP$< zylK>+ZcOF(x4&(~h&sc*DR{)=-G}4op2h!v%d@P+PcEJapk5FfE7p--6JlPM$jvO<(>EH#G$E% zxcnUNUNdOmIo`Z5*!G+^Z;+mD0~(8nDS830v3HGe8N! zh^y+0a;L_1w{I{%f04et<496|f4MTbM;|?Um25F$z2l|x?Hg?SZCEwbu>){);{SnpL~8?Qx-PqN2d+eWDITUXy#Sl+>}R?z~hr%&G@8-@*BmZ>cx?rS|~ zV#SF(ASoHbkKWC5kSw2VueMIUZfi_Kd!%@jxvQ+No95+zNG{S-Qqzu`_T}cZd;AF5 z3itjC$y3Z;*O(E|u(ylwk|P|X7wwz=8mDzRKYLB%AU?gPF`_9L)gfy8Oo@L!3n(D-TaS^~BW@fx!NwntmBRO(zd2^v~o?hX5B?}#3i~4S*5lTH%S4sqXrQdV94;>-wgvj_T43BNnz4kt~@A;JgNmMNs*+m z^;%ZPRxyooF4(sTrpSC2%Cqj0B#L48PD&8tJM0rCnh`f?57n8iq&uZRQiz7Ogon7Z z+CpQAI>p|n^*A5JICV)I#de~L{DO$2M>!ZQ=yk6rJv(V9^+8dhTyV@gFZ1A;qLtxz zDl}sr5g3)3F;h>=rMOv!CqppIMG4g}5~(O4a)wr#opP<@C1Z(k+rLk>GltmBEOUlh zs{0Gpj8?bMC3>M;mg?yOA`f8C+0bpL+$j$W^7BI5d_&}ympl7Wih7>Dm~vByc1i9r z)*SwJ%3WH@iN4yIKh}3!8JRnZnpY=+54UI}W9?vpIJ$I8(OpSKn z%~G>i=*m_zRp`oEvsviMUNctspKP&O_{e4(EV9|(EEv8r*6bI)0%(p!vL#=HBG>?1 zgd*G^S>)ttmX*PGvJjEMce5Ch*}RCPcD@UUcJa&Xw6bnsZ~dZ4=p?X%;}TMP7X3ZSIl5ceN;%**uwhVzuq-iZi;# zD{0x=L+3%eBO)6p?zo)adbFtZ`o$%X6-_iF5PzJtYAby1_|GtlUN0ZE=j15yIw#~yLtD@CB!QaaINuDI`!BG6+Ao2X^GxYcWkGk#-Val7X; zwMRZ7 zD<-PE5v2KX&;^_A9h`tW$PF{4T23f(91+^F$?XnWWBxJ1Q*hcZ<#(>E8LD{x*wm^S@Rk(xvL4og{=p3bzHS+Pb6qL_2L{A z7(J;ch|K=SbK7&(%;=5eOR9n~qJ+P2`WeoFQ(0TQk0_(L#r5IBk(a2ZSU-N{c^W4g z;!CUcCC0t2bNz{tVJ{(;ch)

    w?&hqUdDW)Q-;bh!R1z7 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 z zfKaZ+FvsF&d$rzS&X=gdo^^+-8y1u?Ml1r11fD}i#scIbV@$T?Zqxif-kY~|nf+6FmU(Agb_1>twvAT zT{*9(?j%&Y#;A02fIeSGtDMx9Hra1PRkVNhQGn<@J*7YEt#?i11x}p%2q_h~L{>v!?`1k#RBJjTGCvA|h(bP;q7LQD0rjWKZ zX8pAR17q@60fovxF!>a~`-48%Kzd^a3U&a1o8ni^zq$bHD+xOgg`u;PxgE&D!_MFT^T38(CWzgW+XiV+eBp=dO@KE8al`UGt zN*7tE1g_={)7*t@PZVcUPdD}HULd!{_aNHG=FjS&zQ{(6POsd<8Hxs}unuL-iEY0m z78ViclUXbHvc*@ZJn&>>VAwZlqisOLG645Lkb9VfbsrW;X0Nr$SW^2}%UuNi0(&pP8{-i|8gC29w8sgLi(8W~a` zbpu?fG3AY3SJ!)*2LKOD`@m1Wim2e44`;Ho1nC$ACZC|Z*ZZRO5<+TV{4&RTk!=cl zjrUXFq(m)ta2s*Tju!7i(%di1z6N8~7r^!lIA9J?fnyl|kx=Y^Bk@0O0fq&1F&ED9MgT;*N#~Sb$)&TD@@c=l#27!k9eFXi_^##1!WO%HO2?JhT zvdI7>Kq3GEI0NiBn7_n}qO3FvkcEqz=MT*OM+*NbM199i^V$~n8jb*nr=on5kaf+-8g*cHr2|D1dNGk z8P3_;%|3x`V|A>TJ|2y|*XtpD(plyb-^2!|8=;5i;Y9$Q;gbZk34_ChI=61 zEqz(J#aUlzqLWo=W(w3p&uw>tMLLXc52Y+8cRg(y6rDJh%NMQ+3oJD` z8Nqo141nnX!}SXkBqYE;_W!%kgu?hYDg1ZPFdZCdA^aV&LxcvR{IQ6_07(8wAp_CC zJGsA?SX{9B_!X5zgaLx%G$&fwh+J|l?zq5fXvMo7$mf|>Ab@||A8k;8{viPWz;tUr zO9(k|0MZ!35FCWGfbakZAx$7CAVA>v$H1gB_{bQ141TO1xP}q<{S~;@W4QA1$PQde z0U-+h>kh8%^rH{(g95>63kX|q`mxOJ#}NqpZk>VShxOCJe)z4S{ST$`#}*14hl2@# zgfOlD@2swUsdB-CUzCn=#N#hWVY>e!fD7)0Ca4+E*vTN+v=%hBgroqw8X=L%|;z`04 zrDP;ae|cL-{1Og}FO)X~V!?edPx5UN-XXFzH16TueCQPM8Fg|H7F@*6~BS&6>S z2!KKc1VF+6{jtIU10XNKm_2*6Wzhe2Xa@@8-(pLDSgJ0VV!!PT8i@Qm0S^hb)88eq zKy+}BmkYd}bAi`&UQTwcf3s5u2mpQat%6;v+&1kAmbS`{lqmh5Ap2N1oUx5)-H%U0jzjoYBh$xG%fX)3F+4oYT0URdDG8@V{$O} v4SVYtg9oe6DBy$M9lXW(1hGtI+15!_67x1J^7Okz467aQb82b?IkEo(=c0D} diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_sk.cab b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_sk.cab deleted file mode 100644 index 0e00d6187fc13c05e899321f5bd754cce24576d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29486 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 diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_sv.cab b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_sv.cab deleted file mode 100644 index eb590fab05321eae3a9b1f33a53cee7d48e7748d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29329 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 bufU0C;nw?zgn$9Wn~~5AV3O?Acc%XbwF~zJ diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_th.cab b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_th.cab deleted file mode 100644 index 7d09381fb4059f5a2722a76693eb9e6e053ee6c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29392 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 diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_zh_CN.cab b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_zh_CN.cab deleted file mode 100644 index 6cc2673ef4b46c8546081869bb12d9cd5ba9bd05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28972 zcmZ5{Wo#Whv}C9awP9vvX1r;bxnX8zW@culrb!xRX1w8>G|bG5H=OPJ_U)gw zyA!fG#{Ih_zkaF1Y6vmW(d^A*YMR4hzOzJkbh^Kh>?#p18KtcVS0lv}mVM*VF$8&m zd%80AAIKXE@}4aw%W9dyK0V-Em#a?jy33X9ySyJo8j5k~*r8PK$kyP0dU62r~mKq0xLYCeEm0UPR$g-Z5)n-@r8v98%o6Py(o}L3)p@fmH_XzvzTd72Y+SMasAL4 zB^n@5+`obBpAaj{?CF;7s`vz!`h%a@eUWgtx6XL?X)J5m9F+GM=Cy8&We0ZINNr zZ;Y3jVa)uPI&JK=z~8xrX6o-ibHpvZ`!%-e?W5jgq91C$!zg{3i|&cpy+_M)$RI->A(y*@)* zFRbGrp}bHP>DrXUP5$joL=OV=gaN_tm$2LMgS$NI@{U5t9$vhhiTb*`hXZ*-)x{D6 zdwdX{_%*bSy_lDzZ845p=|kM3d)669J^3RQFalvs#X^C-h~Od$FS@b9CVky9ssX>R zOg6M*FSEU?7=8iTu8!v!e~|2hnf+*Q-Yd2{NBWRsgNSjVg#cguWnj5Q1|xud2SbXm z+zCNCBYo{Z{Q}ZsgZP1cIuKjR3Zv#f6dDQ4jlYnlsLVSLLy7pC&5Tyx9L(B~x^I-F z7ds5J%^cg{7FtECOh4le3CO=6>s-Ha984Co=ySdu&%!*jW<%4Ov8P6;F0eiGlF~Q( z{*|g2Q&ExB{SDt!8-%(F^O+aO2QeI4?w(c6%6-qSx4e*IS@RnU>lf(xfjyf}{7<=%T{;aV+y@&b3rmZm>+7Ne*%=F}ihLiUF^{6$fe`s5sZ1})>_w}>|f>s*JMzx$-f;Wt5RY{J_M^E;rV@s0LYSrNo!@~^%b1Gtu+J|^r7vzioPQnE&)82QGm_YC zs?phIFZ)^Ev#zXXaMUo&%U@Q`Kg9o5jSzupk^qlmE3IJ2au4F-GOw+86yq32^7)0R31RM{QFd#PjC~J4Dgh#tWVZ zYDd-;Pt=vz;e%g7lVSn)rNKw(K-BCxs`Wv=T9)QwC(p`R^Aj&!3T&e^6NKH8$v?Aj z43*PfP5$bkJ1Ae_pjI7+y*s9&Q4epq%&JM(a0$)L`jvix#0!p1yHVhHiNS-by0C61 z9B&+5ejB=FkWz2u{_|e@Tb`Eh*$0vTQ+axUj)QI9B5-o>PkqsLqXnMS^sOnrcY(k8 zD;zyC)$$Clck)ei7HtRD{c2E00>%tEr3e@Y{(=QB*4DNp8J~m8aPXJOV1>yZwE3V^ z1R%>=s)?1Zb&%vW6LpZ0J=XL}ySqo`lCz{h5qEcD^~xJG$VMKQne$+)%USxJ_CT>Y zN#UA-WhI<-Y=ot=z}zCx+@!(J4b5YZfg~CWCap^>h5$6o6of((&--n|JN-KZUlU16T`W=p$`p)c?%#8fyc&v?j z9ai?7Z!MH-qjUAMNNE{?aUqiu<`Tc+N?C39Q7+R>@zGsv@7eI7CxbRA@Mr&t$;hFm z_$jWo0^_!m6B=K&f5mP7Qh5U7h8}Ej*Xz1n*cGqg#bIwb{I*eJ`c90 zR4bZOwz;PAO>!Lq_>C4=DUz)Q`dtVmGoG9de2u)~LR3uB(HeVhb~tXfwz5Vy(JRZz zrY8B9?4N-fH(tBT1PY@G3=CH)0EKjuY5Ah|#9&D+h1uHvx{c!{F)VTn-FP2bj`%I5 zhGw^mtIr~DV0H)d<9D;Eo>88+2|eP6D$myKa%3X`55^bW@-sqca9j{9BR(LY_aNd? zqo%vTsh(%Ee`p~7bOu{gs)N%&CKsQ3@oM1K_568gMf*1|m7%#!w1g59{ zn0N@S*$g@U@4}0~CE~L8l6irS~y?LD>`1eHxHt?soaLee+4- z=Ry~-7UKgo1bnv~4(oK_QNEreWSC~_I=yx%=|#?^@l;BE7HsqQ@zy_eU;ya0s@smr z`iXo={ZhDj`F7~Xd^z@~103{eP2_)l4zq5uy{ejANDL_1(XM7);iT z6T%;0p!28SNq%TKU~Sjtqx_|(s06v7&HgAgt7WaM-oIwm-T7#DjvC=5K3PxbwaOCh z(u^fugMlA=!+=Bc`ibTN9n3x2`#uvpOKre1fBt;jcl!vkUoq%^c*RgxPa_cTA=oZVPJ zL;kj<5BB_0uNNE-_)`BHyM}6cDNZC7H~X6t@#2Uu`V@V3kSa`gi7uZ*eDL3XsDCGo z=%jmaV@yq;x8a=t&k}puBaj9rob-4;WoDFWMhF4i?!`fBGgf$ZEj%MgpK~kfCOju)p&c)?oVb<$-PwXwZG;|ot@(Y^e4-)V;`k3vCH;^m~Ly#$*MNu?cA_yx7x^= zC)#^nTo3eozB~ULOJu4h->^6E?(Ec6b0N=H2?6MtWjd<8hx{^l(WN+Bpg`0?$3WcK zv4M~-uG>kwI3!8A5TEs}W%TsDpX(VS5;0_JF#w0X^ySc-TA;1Es*AWcQY;_IT=9y+{#|0mY*pQf#Z`aqG|o$=}P&U&&%jZgnpYj{0CRcs!+(Ulpo-EZlM@7k1!betHpU*jn6DDcbzFer@tzG6kN# ztnS_)I%X^aP3`gngLB$@1xFoyEBict(5tOX2ADOR(p<$!eJJQBWwqt!WK}ijngECF zVs|j@tGD!EO*}<%5JhE@{8iRzx=5xPB`jUK+uVXYZ1Ld-~FBpnYZh z6dfs<8rsI!X~C*Ri_KWAbTef@<7w68YIL6E0>)tJ5>7m3-$FbK%j&F=JE=6JCPoo? zYnI7_vj6LVW?GUv5&>oJoZQ8s0HBoC$D-~fldid6Vmb!uUgolu+M>*Pj#U$~zh-Am z)}-xdX)+ysr}u7Vo9snwOJYX1T_tn^5Xz*k9RkM;q>?lKph6x zes?BCf#N|MG0irSOqBs>o)#Te#mw`cg2o`+;`7t(-pt4e?XI7J72|3PGi z+_R;!z1y&gM$!yT+c7Ue&tsA1pOuk@&_TW#sz)wxl#F z!4ziJ`zfQuy3)?rVq%)|1F_tQHNLk~x}7ta-{6Q07{#svM_P@O(W`6_5y%WKs+>Fr z(7xVg2bRg3Q0LqyjIQDz7$6NhveUL7?}h+$k)0TIktS9ILY&Fa^?(A&I$=-q90JIv z-U$``VHyhXrYl@H3B3CQUmS@AE$?C0Jez`i=+K`}nc%v9F*sGWi+^45YQdW%kM3ej zq>pRN_nD%i>&Aos@?`18@^?r5(R{C6HJ4j|`UO z->v;Tt^@}gMHg`Q>f{_TQ!+|;ojc-mar1EY4!|L4=rTxW_UG5XgqP^^Nk#5cn=Gk* z7 z#cltm9|UC*DE!CVQ|sAaV!UuFp-Fww6bYkldAR3i7D8qu^h-p)HCqu9i1J9q9gCzE zeltP)UPbG&^=O9Nh!|Kc33OX%$lY0ndDP7l6vL)lH+MHcz~@!^t%_M0khm|SUhShW zH|1)4sJ%T2*@~*ED?(QCU0g9Nw=a}{7fNB|*7o+Y48Ef-n+jO#C09dTJij&g_5Q4T zFPdwpGu(i?9iFc=BWyc_Te`R8x((>I1A)n$!7D(CMdEHO*fQa z-3X@o?_v@vD;&a3CLjHPb2AZP8sU68n3^rz413IiHi&(?MmB`EIe#5}y*?@D@#3Qr ziARS3QR+1|+np@uJ6`IYs9;|3H!5({X#ml)BZ+cpZkSo}p`w$M1U?;??HO`|{h&oPKafeluXFxAa+X1zrF~m<=d^t zwrNs|LWzBz-a$!5uY zdi;B(2oe+I-EX;9(!B7UZ{)^*Snss*I-6qottRMsnIZbp5(=Y60!GZ|O~Ssqf`K_( zL%e==m>P+lfMz8Gc2mNxW%8-e230Rc4mGyhO#R46T9N^CkJ9bPOfo!#it6R=qr0}d4jWA1tA$-3Y~ z^$*8DF+Sa@2^t_-qDfiIP1BmiYG9+r!qd&Rggy1@;iF&~u#vOoPdaE|YV^cgC!uj& z`Q+z&#~J5)PoJsKBz+hBI=R8=%fT-{R*e>LM8UCB#i=b*vtNOfHv#n-i|^&TIRU-{ zfw(S_=$@m#ZZ~6SV2-nh6;G{%`a;;5AewE<{&PmyL%98Ihyp{w9 z<^zSpFUfD4OAqbc2!6`$1lHfeuUE-$jdZj8)Wi3@ZOJn1Rj;~!u72bFu*cI|GCJnOkS@#|H_rnzJin)$Y}$22@YyZLi|<|%cswpj zAiK4)>(?ja#i{WgU(Fpu`6b7wID#uG1g?0B!an?_1CdzRv=*2cg?iuN!G?6oHfhuSHG;iC#{812^m2`?7A%$?lt#N{a5W-ZC`+vNXU`XIKS?9nO zDXSEroaSFmw!2)N>#a6?w;bv|@^?A>oaA-66wKJaNuLK(SvyfLjUV{3`m7MEGUdED zQan&w*wil<-)51aXB|Q8@1^xt4$l%yMm(pz1ll~;VR0L1Iyw427SQ?DVp%+{6*4B2 z*LwW+zmJ3KbuQKHzq!Iy(G)TH^XDzEoL{JNcrUS3shkftuy-r!<)akE>htzAcuo=e zcuvD#rS`qq&WAl7K=|SXlLNvUm1**O`I_*$#W9Zyz9}wxzL6ky3@Ptun|Z@I`*MjL zfNF&()K9dH2H(_vYaMFf-i%`poJ3h=ZDahK5oVi~D!dlY^LRS%Q8T}rZ-B%y@va%- z@`;v}BAeyR$>HyLDOUDD%jR(;bttD^8dK6-alk7S`Qqmzpwg?x6~$m5>)5HfwW?G0 zd3!J{w>U;(S6~Tq)vH}TMeh9towSqay9iYa&HA8QE@55oYf)w|!a$FX zE=_%JaD7N&fgrb@7imFBGrTzZJ-1fE>r#eMPc5UxHE?u6eRM48b{#Ftnbc?G9JS!B zvA$OPt3xmnRxiv3s?t-7gW)$S|F??KxpI+`rrh?}&Yqw0WkIsGBe>(QpE+^caz%aj zwt)%{DZ~=2y8I*Cd8a}1C*WT=^W)d$NJe_^WSGODJ`;uxVB<~q+yvv2G8i!F9f1J; za2}VUJ^m62c+QO|r}vWrhV9WtXqxr&y*pb$W>CL<6Vc~l>qGlxRzv!ElMz5pw4C|< zGOX;I$))QaL)Q+m2+p5SfoI2n{D*}lH+-zXqhN(XD zhdvy)1{p7faU?5t3xta?TdbCj)>tYtZ06Z_nk(Wm(M*epN*l_{cO@_I*E)NdUgCl7 zI(3F$a~hQ@G@u*O``6m;>&QU;i;*t*Pu7)5+tnA4?~vL}Kl?Ay=>$W5L&1vCVpaL*frCufdn8XZ_<`pN}dEXH@S6U>we!Pypy+6k)5g9uq|Nez3LM ztu^}E{??%EZD#t`m`>#O6!viGRwFRH9V<`{vu&7wfz9sQDk=?8Gr;-ghpP z^CLx3umL}PK2&2myK!IEUZ;HH89DYGKAsg7lMdfglm9jusm@MH#rSBOG@NA(h-8@u z0bD8Ix0Z==fWwE+PcqoPPJBhairtTSQ_|H_h$^Aum<>%<>aJ#tIa3;R-py6m>|tiB z%E>49p|_2eTk?utRzDC^B@J}xOfy`gRx1!OyAxrnh6odjyZCzwPTIxnjAnn;j;U?rKdO31M1Pq8`J%Z z!)fRDurcm=?6&<&G2zb%g3E*qBi15ahI|h0OmSw!o~DC_FI45u$BKm65%%5hr!hm6 z4W58U^`@#kVe!g1MAW5FBwr!^#ZJi;za_}>l%NT4q(IM7mX5FxRr^6Ihm+siGYHX{b)Zho#@UO)` zTI$+$W`AHR#1@BfQ0*!0@O_z1QOD$w)>d=e zjNIxOEY|xHAJ^~L?X@WT19~^-dMU`sZAP0__B(qY*vXad#@10$<1b;dFd&khd0E9u2KMcWSMv#!Dn)l^}89d7DL zt~q;5`|0caq(F82;gL0(Bl4tt>;y?N$wr<@keFgda=AX0X~=8$0^ z(fhP6jdyv9_OOAa23$iu%?TxwH?-m`8*ZPqs*OV*)Q>qb3ZWa5u50ND+YCJH#3ETD zKL`gGvT`cgk@TD51sbduP4JxE_;69f{+N#siDiz`=pSe-4YUj=Rr@znOnXnv3vJq! z6fLnxHb43ct^}=~OqVr?l%1rynT>qrl$JrNoA$Q0BcQ`}quO@#P_8=2tjYCz5jnX9DecIbDvllGmENgi*}zCs3vy0<$TYq6FsZprQl| zu_x=Z#=?5|?iRcVdAoiHkq+tq@**K9cs_kIedUVn`AUpSH)tWs0&A6E(yMd}aj4h* zOo3ik+Bv6KnIh};HwQ81f$e~K*0F}%%a9p{h!QIC?^i)7O;ekLd}ib+F(PH->{^$A zN`!rO9%aO%>1h~|d){mtt|R2_JCg5iSzI}dkFClR4NbbEVx;Ah6Nz;D4sF}qX|)*o zbcYkaKNZ61`Y2CzAD407H3&npQW?7l(w`&Fwm}#T2Mgn;#+-jvj%Dm2+g%W2UXvv^ z1ZMG`=>n|=%XekNjPt=`Qd;8Qk5T~bEk6R^lU}L&@E`M>$km&!!pT+)V)C+cW{Y{* zDq}Dg1IFCR!op2M^rv;FGr*K{_{DE!iqn+Rl7C7v+72`EU91JKil+O!420iDOMgqN zhPBI*6;F%J$l_*ZH-%K2I(L8~T@7&{w#her{R9jUJ{ zeeT5Q&bdo$r>Z>>GL11ZIg;d39*6>}MtNn-g%M*Xw2j2!wyolZ$=RY>e}x)~5h&ts z#Ve10I>Jfgu@P_LVxsJE6_KiVwIBG7Wy?9By=dPUUNAP?A;m3CaO}^Wnc^u)A}xW) z@ANK*S|TKo%9WKx`1FNNi*k5RaTFV!R(TwwAuJ`Gb-yyu}}?D zbFdD&LDpvYs`y6(&~f?;Ri@fATLH7#{j7yzB3HeLs6-?7%2BKy?j`@ZfvcS_e}5t7 z^CZOM*Rx&U*m}oy^{V7NA^)aLT`!fdTQ_%-NAu`QMc?m&{lugjgo`FDygmngX>kpZ z4-xm@X|ss?Zdhio%aCbW4B}8q{2K>2BmTxtYiL(ySN+`NdBV$x$+K5fQ9E{jOhhH9 z7-k-WWEASO_rdo*NgAiw_2idW1b}twNzw4H+gn&e)=~OHXd6`G_$Ogyz*I)jV3>XJqS;pcQ1&{zX_3kXoN|vQi-pOS zdJjtVVoLqY6GEM#RG2;reX3o7xJ#2f*Ju}Jt1^5ZmX5j8_dO`Y6&iQtefyA<>FrmR z9CfQzj0ztosx$)zU76Be{NW@HZT*R7?^wte;H0l@u=0(E%?Ykl>wZgz8#~+z+h1DF z)($k=MFQUE0}&?Vg-OEnSi8Fq!(O(H3_U&abhlTByzZ$hk7=o0fFhO3NbGF#O=c$9 z*sYdMzqTMocCTzD_7bi{wf}o=m9~z&WfDlT=&yOh%7QbKsb03( z!P;aGwVB)!&)=EWe(hAY&`rYQ@9y~?v`(dP@JE{iYr!3ZNYU zmOX!oJn6MJ!KU70-t$q6I`A!~Aqz^+Q1ZpP;YFPJl40l>$dL=I+` z1+3Q8pCZy;={(Uvj) z#hwF4F0_?y3_CC`N)+Ars>7oE{GG+|rtIS9nfDFBduz;VA(SFfYeUQ$zAp6>K$n`* z--xmw9CBu~aN1n4SUFfRYx6VizIE_SiBO~U56C~(lXmbP+X>52kYcIWxm%}(dcPKU zFAjX0Bzl_y=SEDYppP+lHW@gV8O$!(R${vV+U&U z%Sx4YbGgS^m`4e~lM3mfjr^gV{=PNrqkQHHkq}h8`;s(+xx~Ih`7?MeK>E@lI;%JP zlgmrKB5K_3ZuKXA>z;l}c`G)%?~cw_fA!lu^cVReX83Ll_KOjA%FzI|8f57JU)hh{ z_AhUF>1Un60Xo;r2!exGCjmJhLbMSGzmsya^0Q}|bI=0>^W{pC%gOill!6LqvF}aG ztB_0Xi%hlz*gmFA_Ff!MXX+mT4`o8DuVki@N)wEEI;P;v(&Emj^FEJHk+EQj9mgfY|P6u>(3UMfyMzTnemRr!*pI1)x(?R z7c=XFbT5H_RHFL6zBALIcsM`)+OBC?`EYI9P_M@+hR~!(9;=gJXU(*p_7LBrj%mw0 zMsVC$hvCtBawq}rsYUY~=FZN&4#%OOwlo*;$m3)m16%K|pAe*x(|zUCZkLXo-+BU{ z)*15w%hm7VDIq_?|5I+)=;`1>g%Hann`Lbee&jcS+<>vUWj?N@pUy|lP3N5VaLuG1d<;w;Yy}#F*thIqefoFSZ0fNy zufE1~6K7%LGjIWYeF&@gnO_*(qn;miY=89=7O*Zj)K5&dg8GdO5T5LtmeKAA>y~HX zwjg7w*|y@477zF>>oYR1sABT0Sn7X6_vA1q|TJtGJ4JesWqE!yX2lO8$4 z{>w`I1}$3W_>&%$!ygqz?md<P5o?&QDP z00y|N>WSI6LjEn@YwEE7fUhc64A{+{=U?QtHURK64-XH~IyS^_e^4U!i}q)L4%vM_Rln zFu{5ae2#}@qxcmPr*kfP=rh?Leh{p#sB=!9?xLu}>rp(m@ExBbJ^fR!s%^-Bzb@tz zykg;RoxH3um8?zCEMuKA&seUfk|5@Fjf(ufuz!Q>F14IAA9Fbc{7s(yn9qcNuwPgxj)GLJw71S*J?R7r(nTz^ z&Dq?vCWaGCY0po*TO{~f_!CBH4~mVHdnL3@+8+Zx{+?F{rN2EW{V@KPgKqLI4xa?0 z7-OEDNzGjcTaBsA*=@(==Ud9ZqQlo%m2{>Osp5$X)U`!{ouID} zRlUWmu;qibWHe|te%)K8M7{F`9o^-~Gt{o7UaAgs7UU1L_(OwIRK0&#g}xkcQ2PFX zd4=0#y(j|kDOiaM-;Sp$uu(}DrI~>zSr5pq6&n>zO z4n_Bt=!*-~~_VXYokq& z5nO#u!Vz4fP4Y-~=yTx&t0;5fgsUubT>MQ_a`;Y`5!GcD|P5u$7TO?gOm)N}5tTPXzmn=jsyf_|- z;+iE*&PdOR;_@U-4rZ4<;ee8USIP!H^Q}Y=C6aze$_8HZ+(Zvyl6K%f)kMux#Vwvc zJsgB6yHak_N5zIDhdLz_V>~_J>pM_f;GOIXUpLdi_$V$gS2jC&E?p*q^sGoE%r~2O zn--FC;zOzgN#GPzX2`2!vP)8960*$!Xs=JadL@+NdI~m-t7meBA@ZbR&)!#&82Z6@ zdXuX|is^kfGuH}_{TvwZn*IFN z;XMTY)sO)ilvC38*lfpmPM>TluRvWYs!v|YOGUL4KuhwcZjlKH@{<@?qO zHbm6PkAnHgd_svk-G7@GoTU4-p2dOCN52g5h}$A}O~fzrL1BRFr@%yftt z&Oh{*(zJDJYavF%;vamU*)iPk*Ze%ceSq6~05KUPTV*HP0ze%8-ds+RYiX8-)97w_jw{xkNjOTDdO*o|fj^UID1p#k9L1()xY$FoJmj+>D9 zvLWMEWjQFc@sid3qUAE-Y<`1Tl%EZvLGbBgNJ`OlqjeY>H|dns7gb|*p0w+d6`9YD zu&^t9LcD+kiQ{Eo$g=;Py5tj$@Yd-#=j*5ZQm=#@t4wdvy^hT1oTV$#P@;qY!cd9C zr0o#R0Dq5^=M`qX9f~AEeKl$f%$3B}DZH;g<;p7{J#Y`*8SB=3@=3n%E{-#^@kusS z-{#HP=Bz(MQ)j2=nazei_v);s+8fY~&!~7g2mL7R=j}o6y97Sjh`at?TjT|_@SrxD z_T^ECi+%yOL@eUhjjteYbT@j?E$_v9;2Rv5`WHBOZWQ)hAT1)^DpV5U zOH{eG7<>vubTk5`W;sq@;U6W=P`FY0@TyV(lNGj&~?=EVyYS)FQas|9r( z;*IVL>q_?pyMhf46oeuNTc-*M zd44Sl;R8YG3L*5x5FPp)Cur&yeG>`x`D#kgv=hp8@sDCoc$!Z%3#%UX^bz6O*|!7C zY)yFgqPHt32i}BqE${Y6WJRM-9ptDol0nmgk3CxVo=;u@GoWCR@g>prUx;=BJQ8`i zofN84K`3_s*Yx=A48)tSEnad$F9m~lPku%%b6%)|)7H_47b|%3V2=Slh8r&N+KB<% zLRynUz$`{hmw0C)bz($Ii(qrR306EIm}G8nXFY=Tt|d0R>y{r-VTZ%FLXHH=b0!kjM)d3(#ta>sY2f&#`ZdwsynMZ*$s(IxQ3 zRN*cOYWxvVjacUh@)WV|Rpx%TRduo=q52cz;hBFb;@S9LpL%eA6z#V5S7=4WK=5kapx|MauTmI-?w|^UHYE%`70ht-bFgrT!W&$0PfltmP+9tFxmufJ%ItZb+53(vas}o zhR7liIbtY*@!ixuJRO*uYe7iz5byqFp#b*j;0uG7Zgq6V#xL1;_XxLE&*vFrr?DrX z71Y^;M(BHDiH zH@537abB5fdUV1;_CK0?-!d_T?sa?n&7o6HAc>mU;M^`Fiu!i{fN;}2%acq|U*Yx9 z*K&nxng5G{x*_5{M>QO(@M{>Q0C zV7$dyG$p`#=53!Mks48sxxL82^YS<%;dWOSdDX3&4^O ze3m`Dy#)f!@ifyybxLg-#G0*x4 zOfCH@0`@H30q8d$al@|}o`L7z7yF!pTmb2eJ|RsH1Oh{wl~$QR)4$o!&z_Op8qHiA zepHMa1!>(vb1ckOKG>L}#1@a6bH*Q;dFir<4PHMl`D@67e6vUljy7u~nbYsAQ~}J^ zM@G~Ww0W@R1ul2>Udl|0S~O*EM~~@>6FcIvb(=j?ijFMUKwA%$@Z$I$y(@obxRQd| z&UnD@=Ci*!qE816&x(wP9xGPucc`{HwK4SsLp8EnxFTcIzIF}&GR#-K8ElXae;aS2by3UoQt=o?`YG z%L^|fnr|Yc1Yf=&g!m*K1n0TIZEIkh2ZnrizNSY6n3ArSLNC*YLjY9!x2&)(T(Eo_ zf+w+kGerzd`?p0g2Z~4iaJzNss}m5s9w+~Az2SRrg!l3{U9dlN z14A}xH(z;}W`sX6=6HD&E(;@~t&j+?_X`tbX08TBygDjK zfNr}yHAptdgWRwJ*+h%IzY5?1*nNr|%b&1oi-wJa=VKukUf12<02Te8tjj^L1>^tr z^m%?ruW4OBl7B@%kYo8Ttj>`k81FnKq`>m};v1l#A0V(ydWCmw`C?Fr*p|B(asF#d za-;MhhC*HgTHjivC~q-9K>lpj;YxI=UhR?qc%IG=WMz?lY zVN&Ex>TOxV^O6t;x4KWHkKuj;-Y1G)!pCj5W#Rkx&f`4j=li6)E%CuOrxW+1-Wb54 zQq4bFaF8|;aP{qDm9(k|`V&lxTIGQNm5p9Yo$Gg6KKkN)3T5Crx3Caa198$H5ZU&d z>H4C-iE4IEI1s&o23)}f4`2^P*Dx7r_mfX`uHo?uF{lklv0$~z@za;xWhIX2~K+;g#VV@ z=l(vl$nZ5Sk2PJ9Bzu`8K{&h%B1;UV7^KCwP~1yP%uBJU=Wia(Nm5jFk=g^n$9~Y$ z?B5T#&=26O#g%^Q=WF#&J;lWHrw3>C8Ck)d5}GM03f^G9->OuEx#NzQ{-RIXH7!8t zimGLDL31hUj#TxIeEcOAdDRsz%;ZS>oJ4-{0&vq zH-3(RyzK@GLnv1>@WmyTY0#`>fkT~o8m$EYn4r!$rhMng{ou*lWNdZz+nk_nSMJ#S zt3a7v*hFn-Wg^SqLbs&q2B$Nu6M&zI|?F@5BNvu@~rGfwfO+*TjOOZa;iJINCI?;7v zYHE}|+>?}6ytu=UXnv+{_Z13ceLNR-f9tigor8V^3AeCUkguP$mjhfM>_|rQVB=?i z)@J@KN@qXjKLk&xCXyO&y}?Wcd^u=Y3Cy?S%>UbZ9I?cy#yGK_0`0O>z1B54#m7!x z`EhAXDt&*GyKdOu}H;X4l9{QWxuk42vbxtS+e?;OvS^B=T+dhX; zrN6x@CMPgQXObolRyfXlb7Cd}32|W!vU@Vz|8m}n-Wh>i&^5o~NKTnAQ>UDX*2P2C z|K{dx-IbI#vF3~R$UGSZDPgL+2#|T_$3%0p?5yUu(mUnKxLkA4noeF_!_{eNnZc6e z&s9}#RIr=*T*J|osf;%FzS2x7T}H_U`|nUfvIX%R7>TXLS3YZ9icmj?U5uArbJ@rp zH$b~?W@3mv9eHY+kZIGt>T**H{0tGRfDDU>dSd0DJl49S%-eA{b8nCSA9bMt8N{m?4|1Dm00_2 z$>J)gTi?H$WDe?-_In9^Upq+{ZZn=UM&aF5^lN_vt*uGTc5FO?Udl20Z2oF+fnjQ) zo7!;z0PsnE?Yn$7EmHp#89Jb=V$A|AQ%DW^@b<*wWTfk9Lp_#B zQTe=K6rI^OfF$mOED(>Oq=K$lMcJB$KHH%|(~28qFU=aWJeTA_i3aUf{+M72wzKXj z>q|Y=?86KyO>}t{o3llU+*rJZI(FKyW$Nev`F?vp~5_etL;%ta6;jNTrk- z0k1Z@Hm2;zFipQN8P7XytyBdI7M7O$a>uc!nfx0KhDMf#ifOKK#S|SgmvGJz{@$JO z?Fi01m0K4rl_D=GY4#RLDe`Q$#{d#=qxq;HG3mE>!0OM96n2Zh+@CcdF1)u-p-*Zd z5=F95kzm_zOpYmH|I(FuC^6d**YHCu$duBRNR)h%(YTjTH<<ZezuU%j2vl1Tynxs+H1g$KD@44t_T4 z_RMg;oHhEd0h`Xf*-N@-4Wzj`bVW%!H^gaB5d1Q_?)Nr^3y#h8@*0X>WLtgqq{^#@ zp)}@O!m-xXGfv3319r|S+(=H4k&OdtZ9{A1FwLS(Lsotxk-S5kUtX10SBbJSP7w#KbqP>q=aF`UZ7z9;jq-@&^$ zY&9^ojBg2LKu7h{sqoJ4B5`-mMRnv|+J|ffgf_pdGS9nv*CNbM{}m~xgXPWcp}jNf zYthF8p-@@8Yqj(WUia?MLCZvMO;@I%(;Iaq2;kNpW@AWtpKH!4l+@))cwPB};n7`E$faMH zjQ`>X0+dqVF3`Ezpz_Ur^_xD~SSpu`j*?g(JQ;5VD;cJS$Hpb7+&w19ibC&@c^wR| zp1C!S5-uTbb>DGIFK^yUw3bPN{QOp_p6@h7HDsI2gfc#OTv)vh3dBJ|<~R5B0k?6j zBct|`J?}EWz!2s)9vi}&2y}f_kN;ELS%*c{b^U+n?(UMVGqj|nAYCHO07FX-T@sQ? zhalZ0B_JsR0s>OfEeME$beF%uTfM!X_xZi?$9uiZ1#|YqX{7@L>yTz+T6oR3NYl8 zP2us5bs&ByEe8J&puI)bmQS&lKJ=9;FrSX|ASAw1vFlfhvg5QY6MGpF6%<`t%dG(u zbkU@Qm4Rn{bDOW#TN78{9JUvk(yW+}E%o7?)<9{p|?x4B{a3B>50)wEJO zMOJxs>&d!d`+K_Yt7>lDYZIxTX-^j1Y;3R7x z0O0UzeaG!0JAGSc^J+)N!iCRm3=JR$=)MNB@j=U{jmCl=-st>Qz ztgzEXtj8t4F!NF8(Gj5}?w>E#(BUb+NiV0EYT`&xY}qrXz1?i3JoagOt)t~NjZeeX zfFO@py1T6KLq!;dgy)J=eKsBs>|$L))%r`&c6`?p@KWJ=>OEc>uHDyb=LSZ7DsI z{*=kbUaB(dA{fv$XVD(db=XE`FsI*cW372|^>oL(@9uoXK>U+H=FfST{NKa0WJq`y zBrm(;$voVL17vr5-#lf?*G7Y1a*0#>!SwebgHFOcf#*G^L+=Oc!Av^Q#~Hecmt@zC z^tV2*Ccm&een(PDbdpga=3^FIJ5sV#-Ttom!1;m9!q)?|lgC-4x(QD!3D9-VKG@jx zH(3t)4qHQUb=%L!jy#1Qn&YLh%4oY^$q)%Zm%s47%8!h?7pIBGx`a;q~>enn9*npB!i^+nAnBMxt^L5Zp+-Yr?S{=OXyq!p*UT26v* z7J@++k%;d26pEwji!)&f377j(XQLv?PeU=C$5^3khwNX`UCFnV?udY>Gmb5Fl0NI1 zC(f(fCu7+}s#%<*ia(J&wf)xABm0y_EM-zIs)|t8C9u`2NyPX3081@Wn2y`=x(Fga zo2CYR(|hp3Q0j_({qS{}I@wdIrk%%LsiC1yySCQ?G+#orEG_pU;xc)0Bok&{tN0fA zt`?@o^3*EsOQj#_zDMKt=xyVj2ghILt_Do-(vE%JvX6;~Fy<>=Td$Uo>KVG;Ij%&i zC@rv8m*JI`#wUxzdGH2t9>1AhtALAJhrrer83=tgqLakftc6TWqC-qf;xG{WKys@w zit%fBWptaK4skcnrql^b5D2pHd1+zi;$&(5bCBhFmTysp+me{D+hW>dT5lTCYxOMg z!O>~V*-Gdam7b;^7l|QJ_aL$U3mjRQ9qOgK^@*m$N}SYWu7_9g4YuC>n#0O&gH}~v zDgn31-c$#?B7afhGp{S9NiYAVR=df}Y3469s!;~Yu{8bEldx3>{j#g*=ubo;S%m3T z9;TvVQ4{ekZ;qFX<_9O@xtkcr4N-k>k?}8V5Rk9pgf=K4CIy9%hCV1YEqx_-H-hhy znAl`P0Nc$YltGaoqULR9hvtzVJQlwks!HgMQpA_u!MNc&_WL3~I z2k!P9VJ^oz=`cs_HR>pRBB!tnBS-gT$ijbie#cAh`#pYOm4-L0RrVD}DP8A_EW%S) zo~AmFjy$rWL<7TP?$OWP5e%zOkIz%q4^Z8n@r`fk4Y|BRx_syz(cGGl!)#RH}3;?bV#%6H$PVbB~Uk{9t#?R}%4r@8A{wO!vErDUpc z*sgQnVSU&y6M+QQ+VNhy?IUzI$6-vV@ZF}Py(G48VR_eDc9)YeaIXieS*<|kgP{=w zW5u{Jc<=3noBZUgsm1g3v^DKDcFf5+Q=h@qS7HZ#J;Y0bY0ClKFPFI8g_^Rcb89`< zY36J`UhU|8?mb$Ss(H6f4Xw(3F1+dZqRqZw+j&iubP|SE?pN475ft^5*2$D)do%(_ zKkUyn;q)1x3S27}e79iz{d{fzneV_Hk<=}z=@HGzxMs$ZwD)sYF5V;MSM}kIc+p>D zcT6_W)Y=0c&iglm>pQ~^59S_gU%e`JNSq3KaGS`yFcF`V=EJO1ftSLRHW{pa+)1C$ zh5o)({UMq%!z^2@1{P$0MMLGe%HisWYPXpd%p9aL%OHe^kO1~a9Ho}7h`7>yvzJWO zOdRN{#nr6G-4IDhG&lcPfX0R3PKAG!E5Tc>YSV;~!jqbBbmwg(gqg_A3F~SKZV8!p`j2*HFHUyfhfPmW(qjFwFfKB`vGGdHwv> zovG2j*J~{obFq>Q3k1`4yE~Hy6q~d{^eEWsfX zlW|>5pLw-!C{z1%8g66h7Vh>FW3c{!Q}$_z-G0XdQ=zgZRWZ$G#wzY=pTUam6n-9$ zq>&Q2HLF|h70q}LM;Cj}YGw-5tOj1-rKU_6n(#hLA|J+z9bykGZ06gyQ3UPUw4DYF z1V6X>#*zG~z;CuOdbxP2Z2Jg3^Mj5PBg*owz~tAd@|Lyww3(BF#p=+a|FnBb`L@;RL&=Z||_~z9hMz9N;U$evH-9tsucWgmeWzj})D{Hng zd^L5oq#^o|Y+Sfw6l7@=s=`?`UXg5V9yM1HRm_R+65hDKHK)01d^owof%mY|SR|eD zbn`q|apFbax$UflEX(??2$wjR}1JNhZhey77NJI*t~mBSgu zw7DiK>cqpjrI}Tyi?vGxWqwzi!Kk5lSSC_-I|nzMoSb|c&kvXp=kd&(cX$~#CgPNT#v#@o&tLIm z(zVs+JTcaDl$DmVzSjoomR~rlHEf!CL_QTz>=IGkqO)C8UN(8RT#0WgR@2#-YJy3C zZeGH2l?3LcrM6oAqBn6h$ux;}Sg_(k=;$c-C6AP+x0Bm^Vz%~x*O8Mdl2*f3EWVNF zii^mt^40bjR>H7O|Mml2tA&uRd+`{_mWpL7?aYim=IkU1l#BuQv0@~Bc$1i=@uFZ& z)GcFMw;`i$6zwm&l?1z3kY6$A&zMh@BqZRQKp(I)Yw0lNSiEF)F{2f_xRoAz54mrb ziY9>7{3VMx#(}8p(CowU_v85O2PH;ZSvz>ewKF0>gBESOuzAmOi{m@?Pf6@6E_-FH zWP30N%RQxFx4D>L$F~-&+jc6w1t7<`K9PP9DqMCkw^4}s>f(z|#1{USV6*SGGgtHAaB7p@xZ?;ilhWyV_IGfU@C2C$C}2LD@>#@E-N?`;)Jk~peTQS~^Yhc4@>i4Cb7}Sc9^a(zh4{RS-0$b9(xZC0$Dt@>k~jR?>0Sf z<=h|DRWR8jEk1a3&#gJ%x}&~18=oehm4f<6`|@P*TTMo5wMcilrsZ`VQ9hMLy4`#W ztMR!8b={)J@!Q1v9ZR$^T<%f;%b>-aB=1q}zH#Yn_NAwMgJ&q^dEqO`2CouRJptR! zO7s_T*dbKv3LI+f{9ylH&#HtE`?RARjsZSoJEK`~u+{V6BnZhXnxa-No$Clw-vwRm zN*VqN#Wl1}TIMu$q0m-a-UfdnIr6jD9TgN#ad~_5V3oP4I1TgQo%0njb8D?Ki$R6d zmRFVT;Tg@g*~zcV-0nq1x_@AMWi}CG|M=6Q*#WL3q`PgiB3D!ILO!E$32YryDO-8` zFrU&!L)5;S?z8_SXwEujK-qGy1Vc_Vxl2i*R~q$F@)WoKEzLMt_*ptb0DXjU~OV# zNgGUldFcQ-h+QK+AoI3u)A(LIqhf)ZTyZ#7<>nP}S&+{;N<0JNYonc9q&s_T(swy9 zS>unc-<~mQ!=8heMOX70Kr`2T)$eSyX`5frG#9m2fAeDKkllKun_<=e>0sl|G^$*Q zwq^o#Vx}TlRyxbLuw7inOPIpWj!Vuw=|};l!DBR^@0@h0#{*Jd@FA?U=*Kko!bReF zq)z=nHN3AW=U6d{+Lq}avprB|rtP{fN;el9+hHY-0-QzmiHnXUby($JOm)<8KIeX- z7j%wjjFc8GWy#ZCyWnjbMB6HR#JAPCEW#9do0r3^*;9lxoG{tSf&@1=TxpHJ zs|njc#JCzM+iXtmHGAd&4jJdO-qpK<(NA6X1RvLGA$^aLy?<(|2Kt`1|6of{;k$xA zqnnQDVaqdd+-Nfns-)Q7#ty2cL$GMRtE%d9k2`#X}uXu#3O#-h<=& zE2S$+y9_GG)JC-T(F9Nroh4ai4@<6m#9I*GXeU8}mK*7-rOB~)BBW@jFC?gO11fUY z4Io>>3>#}k769#OFvgwF18>L=z{H+82)Hu#j;Z)dxXf&`BJO5*<8LS-P32Q;B*WaY zf?6Z>$7lfa$bN6YAC$dwoEoll{Rn6S;kLb67qGP zQ<~LIn;9S112M2#ZTeLov{68y^MR2X#_S!U^B#v1>tqd{$?q;;JA`5cQjOs43XG*P z{+uno_-wf|Glx52`{iik2+5wQANkYF2)4?(P6H}2Js?w-IQ!D78rYj< zNJ1EM##(O=h1Di`0?63ts$JdHFbx!><0#0Lh?2wZ?qAhfmjy6DeDTvjgaBO*$+xPm z>UKM`z!zkb?q*Hg^tfJK4LTSD@=T4R9*v4NX!JaJPdaO=kE8?RMsPPglR!q;<3(Y6 z`GnOXpKf_s@8{CpLgF!dBo~KS6DM9$$v0xfZAQBrtXD-csY}chGui8uL$mAEkF_hY z<-}ML_mLA(Oz;u;1{yQrkSuaxNr;PxkOqRg`E}$h4OA7|L5!mcr@}?&4u~^+cTlDT zV}Yr>m2NRd{7J{Nmz2~Yq}p$feeSsDLi4_1Qz5#k1u=~*HJXLXy_Y^R4)!lY7s5OO z>vvP@n0|~q=P^I`z%AXus7v9SW?f#CH?$% zkFUt~Er)@91S9G?iAC8uYr&E5skmzYRaCba%a7hz^DYmnI;E)@b?iszjTD;X$~$0N z>3K`5gt=2KI4=I6ZDK#^3bF$OLRm>g~Zt;j$kkbXkhf zl5xq6I12Bw8HyrHVI?zs@)Ai>KhD>%f)=>&l{u}``zPR{+}V|X!O(2Trq*RP9HF&A z0bWGK8tg*SN}<8J#@l(ohQ?B>cFy@;uH7Ca!5Af+A9+k1?4(|lxzp-hW~#*~=&vp} z$oul3aJZrPV|-29DTmnvTZre`cQF_>s`-99)`zpsXKmni*lQZ)8Baz|&&kL_#_K4q z#zA7gRHP_VmRiyeaiGE=a<+@9J=MHGw57MSiPF{2F20xh5mAy~g`crh%3R-J+(OAi zrhP}ZoUPI=5+i${zM(<%>J<;RgC+Y=->I0h#(cFnQ--;`-0~XeeFx4PrvhS0nT?b8)e2gP*mvam z#p3_FhoMQ_bBG;Bt4krC9}Yh6snre1wI#bdX-G6y&NceR)gOqf zXuW5`aw7cMCW0RMZ3m1)h)EWi_Q4j3-ZM(O?IA@67Uhh#;O(^Ks}>4&`4bsl`_c_# z*kXBZ#q;IskEh!g6=qq@`W>%D=SI_xvh9%gqnB8$?oTzmaK>|Nuk#&Pc&zVpSF1vD z$*UyJa6c_Pbxh-ZpVXJ?Wd82{$8Wy+iC3Cb`Zl^=PMl1oPK-mdl=A(((_MAS4;i6> zcJ7d%qarFN7GIdZtw11UX%+wFSZ zmNrQRJv_Gi1aE5#LBGnWUndE%v*kcs^4C5{+?`72elF@-DI2dA9q)!+nFl`KZyF7CkEejdHVl=I@HafG@YPypHrMdv%rMbW`;>hleS0c! z@4J{nR1?aK79vxjQNG18NnsbO$VriYg$tf|{Bn+jYOolnc!G>kpkgR|V)I%>pp#W{ zb>_OU9D1EUb3q8B<5ks`bad=Y$ z-kl8oP8yTK@yg1Iy%e{6p1Gs5nR*&Ayz*GC%m)+B(Q@q-YY7-y< zYhcQ|GY8t37UH;i$*pa#PsVES?KVW|hV_rAR7_Ma1kaz!e%$stdXf``gXiRG>Pw;u zC3^OLmY>3{A>sbMM_mI?t>f*h60c=g{(Q(}D^~VpeTymWApEfjBM(0}vR!4{^MuKs}I;0(0gu>(k2$Q>VYKd;EpmjB=yv}73Jvg==f)GX?XUM6m zaZz70YuY-j>-fIBw#^+`vO4Bti5VoGWDUxe`P>l&OgqS$b0yPlnnh^z2?=m2yESto zF^rY!q~lyx=cO4krhs+$WXuz|xomaPo9<-whowA<1rc)LdqAU_Xwo@1JjA#@m1p7! zV!Wle6e&@`=F#peiWE*8OS%ryrkWgR(c6=TldxtbdqSnyC}g)@>~(=@q+kTio2*#5C;? zzqq)hrc!}e{J^h9>g_s)sc$qm={6~h%3@`ua1dR_cNt~hAlrRo;2Qqs|j6g8bHvC&J2MG}Y5fMKiar45jM@|2$a=Pa@>ZKTf^LwfYDDX)I zMgN#2k}fhT5u$-Km;@j~g%{9?u=U{2GKRW3(#t}epE`ye)X!05JJuvbx&8hQlNx z*7k-!ei;U}pqF)Wb#`+7Yd8Sl`D-}V-_jUio&x-ZM_sC4ms(&vI<9dnI?ve$Z52Y*cPYme7qXING+3b0Cej z!j+0e)rGDGyl|ljLDViPJ5u68@scm(jU4)%_WAnBik_52Ps04YQ(yj7Z_JBb_Xz2X z@7+k6X=PIm*@?E{Q1+0=oo2*u-}Q+R&%O!TrNej+yz?tmQCnv z2;Y&>0aW-KA_54Ig5N?KI%E+*2oT8O%K^f8em1snb@-z#?_VDEr$fm~^T2I>_%jVN zGB$wuYX(T@0Pan%csC;{YssHA?JAXaPxs5uyJPl zl*tW?(CKbzq!Z}D$O^QV97zy(=DMA7ofMDc&c*IBljCkDPLy>pa?ShWT z({|6OC^i0N#{cUv^j8c6V3B{sFyHN8F>L-nieUk`BmF=I=YJK$+P2n?P}iF{7WgmY zIL`v>wp?QiQ?Z;<3-0&aT?nRjV)e7R7hHJvx*flViEHcPkqjYAabA_Cq|CgAcw-s% zsf2l~eUw#ZOy2I~lYL;>Oy2koHp@`A+# zStOrfwMm*mNhX^HF4=a<97IfBlV+IkK32lr%ks)&D~Y=m&aR&mKAR5WH@yw9OrmIG zezd&tfw6F;8PO-#Gtm&*wM_S~clTF*tPgwnREN>8XI|<>i!CA-`!Lqts^sZ)?tZNn!h(K*)mEyWhQ5r?=2|xR zR~!c;=)td)Hh_KO{6E4D5dZXkS&&JY2({v@19UgjU_vGbNFV)s z`u%g2g)buTk0lVRi{}8T?8ce{!e05ItY}W;wTsO2Ipax4WnpT}+39zXs27Glc@Hqy zpw2e%)je!KIc7@dh zM;Px))M@5=^KsHQ5X(y6aso&kxEic!-0M6l8iPM+Uae!u!?RP@xX+S zU9Hs9$nHQe3L6|%_&+hFydcZh@Ki^W8JxAhQ=gsvC#JCA!X)s2go&TZ0*i?BZ%nwl zyTRzypfFD-S9`di_zzk@)&b(?M$b>LttibWCEvp~ z`@`zDgd#@Ome!!xmIt!|EH{=|#B?_&WZd0s9ii}Ps+-$EEnsf+8m>;3?iN4P)KB$= z^sDKANxi~dj?3o#s?60f5_ej` z3VZkYr&~RGeZ{z1V?>a|#WPqgjYhoE6*xHTIVma<8Qy8;JeHd~3G@5fiB1yH(e?v@p{ z#U}lczo_>Vex)MeV)}-9$T!IQhZ=yRjq|384jC?50Qwx-9O^L2pNw+zxZ#+E`3=N) z;e{K0VRd6nk8BDU1BR$rW?_m5VW;v4XkbBG9}WH)`d!BvmtAAMLjy8+C< zjSv9}?0;+K>J0gJItB^Q`_&c>VP!xG4yK=~3l3qTe@@!+2YFe38zBBCzZL8sgi8_A z-u32Bt@01q;o*GW|0;~u)#?vIE=<+-_YO0-K#?H9`!cp4wKQ+L0tBcSe_aY0_{`uM z3mG52u>8IMq54bVf#A!`zXbjdR^q%O9Cf%CtGOE}sLh>k-s~oxC#Bl4g!@G-lvnm? zA1txg852*3L^-=#yeGc_@zT8oz2-jq9QPx~v$eN2x6^d^@~=pYqaWvfpppj1fR7Pk z5&@N%1j{cfm)Sw-*EXHK&P9{>o^|FZn6 z3%I^gaB`)GxWjCmTy5b`lB0KbgVH-WI(UQS0oj|jNJQeln$Z73tcJU}gRKP|UbYV* zuHOIL71B%p)fdeBM!O0A*aPza#x8KP2ZR@a-}>?Yd|~*nHi@Yrv>?(du9^?%Z>MY$ zHO**Uj#uv1%{@?MGPkR1H=xoy$;To0v}u_ZD(7X;n9Vx)Y|5&J)tUMZ!#S~Z)(A(f z04F}DZi{#*-c^TZD1T1wix!oXw0Qr$)v`Amx68HPGmN|+4t&1e`Tl`jFv+%r&@gp( zD%!1>J>S=0ZVAWv`ZSqrWk|9qwevQa|6KGMB+{$bhN_Cdi}G3JTiv_bGcWljb8!{! zbf+dnjcOOC89o-&8~d7Q4xz{F1w3yNsG5f~H2c~FgSVmmOJ@^LYX#?@a5~w!8kvP= z>|-aHyt%IhQhYylTIj#XJ4LiAQW83$&`1>4NtOB4KxE`>6zc}sb>G?x&!aeH;s&6pM_S+5- zpr-u)S>BKqxEYNOnH^vSm~)tN7{cg&kre#*Jb9fhApG3cfN)qmmzEc$oUiS_qy=1GdxqCp9C%GLyQxsTmzfkH$C=dIhUu#KOz63JD*XG1L zTn$EcGL`UEQ3BJ+0_Mo)DE7Q{eF!S7zE~9$D2zE~BvP||7pf|;7p~TxSFB0B&4RcQ zO4m=X*sAUkw&A=?MOl=?COH@4M4Io=K-kMAFeYAGX=7E^dCeJWf>+c9L&4lh?TTcq zq4PXw8FgM-3>pwJwLM|L0;cmmP_1c4_ZZ9zWpB%~#X9^?vtze!BG!;dWB$M8=~ zgIk!x->u+QH|ffoBPVz*JxCV*(;IFL`_TvdW7yzjTaY8Xd{gK29b-H(iu( zu|YIdre&%DU>PCFo?cjY!uyA(?X_)8}*Y@_?fV`}u;P=k}$U zj48;7H(ojpz%z~_CfZuKZ-ciLB=D$`zQ^<_C}G-u@m zjnHt@#D-A_I_@vnM_sHjK4e!)<}qzPdxVZQ<{riEuD=sxicj3}cvo$Kreu-+Z*{7S#vMeO3hYLvOn+v0->$pj>O z*GE_rZT$P|0Gm5UQwA5g!H8HuFe2LDw-pr}jBpCa?BR_syZ&#db`bIZLvHC0Pc?>9 z?6bnG-f?_^<9W2!wngPmtU!GWX`EO6Et*W-`wx*yd?Jwb4P76MGR7IzG{<9M4;Bkp zF!m2>=o<4cJnL0loT;DPQ$Ewrxe8i-@4c->xGdl4#r(lSUm&0@-qOC$Sh%SF)!s`1 LaXI$D)EEB`vu5=A diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_zh_TW.cab b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_zh_TW.cab deleted file mode 100644 index 8375f950a3f4bdec326e42f2383c5c19859e5d52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28993 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

    }By;HX=xt-*=nt!1`NRxYMg^l2c$ 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 diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/allInOne.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/allInOne.js deleted file mode 100644 index 6f8cadda4..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/allInOne.js +++ /dev/null @@ -1,12 +0,0 @@ -/*** - -MochiKit.Base 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ -if(typeof (dojo)!="undefined"){dojo.provide("MochiKit.Base")}if(typeof (MochiKit)=="undefined"){MochiKit={}}if(typeof (MochiKit.Base)=="undefined"){MochiKit.Base={}}MochiKit.Base.VERSION="1.4";MochiKit.Base.NAME="MochiKit.Base";MochiKit.Base.update=function(B,D){if(B===null){B={}}for(var C=1;CC){A=C}}G=[];for(E=0;E=0;H--){G=[E[H].apply(this,G)]}return G[0]}},bind:function(E,C){if(typeof (E)=="string"){E=C[E]}var D=E.im_func;var G=E.im_preargs;var B=E.im_self;var A=MochiKit.Base;if(typeof (E)=="function"&&typeof (E.apply)=="undefined"){E=A._wrapDumbFunction(E)}if(typeof (D)!="function"){D=E}if(typeof (C)!="undefined"){B=C}if(typeof (G)=="undefined"){G=[]}else{G=G.slice()}A.extend(G,arguments,2);var F=function(){var I=arguments;var J=arguments.callee;if(J.im_preargs.length>0){I=A.concat(J.im_preargs,I)}var H=J.im_self;if(!H){H=this}return J.im_func.apply(H,I)};F.im_self=B;F.im_func=D;F.im_preargs=G;return F},bindMethods:function(B){var D=MochiKit.Base.bind;for(var A in B){var C=B[A];if(typeof (C)=="function"){B[A]=D(C,B)}}},registerComparator:function(C,B,A,D){MochiKit.Base.comparatorRegistry.register(C,B,A,D)},_primitives:{"boolean":true,string:true,number:true},compare:function(F,B){if(F==B){return 0}var E=(typeof (F)=="undefined"||F===null);var G=(typeof (B)=="undefined"||B===null);if(E&&G){return 0}else{if(E){return -1}else{if(G){return 1}}}var A=MochiKit.Base;var D=A._primitives;if(!(typeof (F) in D&&typeof (B) in D)){try{return A.comparatorRegistry.match(F,B)}catch(H){if(H!=A.NotFound){throw H}}}if(FB){return 1}}var C=A.repr;throw new TypeError(C(F)+" and "+C(B)+" can not be compared")},compareDateLike:function(B,A){return MochiKit.Base.compare(B.getTime(),A.getTime())},compareArrayLike:function(B,A){var F=MochiKit.Base.compare;var E=B.length;var G=0;if(E>A.length){G=1;E=A.length}else{if(E=0;C--){D+=F[C]}}else{D+=F}}if(E<=0){throw new TypeError("mean() requires at least one argument")}return D/E},median:function(){var B=MochiKit.Base.flattenArguments(arguments);if(B.length===0){throw new TypeError("median() requires at least one argument")}B.sort(compare);if(B.length%2==0){var A=B.length/2;return(B[A]+B[A-1])/2}else{return B[(B.length-1)/2]}},findValue:function(A,E,F,B){if(typeof (B)=="undefined"||B===null){B=A.length}if(typeof (F)=="undefined"||F===null){F=0}var D=MochiKit.Base.compare;for(var C=F;C0))){var G=MochiKit.DOM.formContents(H);H=G[0];I=G[1]}else{if(arguments.length==1){var A=H;H=[];I=[];for(var B in A){var J=A[B];if(typeof (J)!="function"){H.push(B);I.push(J)}}}}var E=[];var F=Math.min(H.length,I.length);var C=MochiKit.Base.urlEncode;for(var D=0;D1){A=MochiKit.Base.partial.apply(null,arguments)}return this.addCallbacks(A,A)},addCallback:function(A){if(arguments.length>1){A=MochiKit.Base.partial.apply(null,arguments)}return this.addCallbacks(A,null)},addErrback:function(A){if(arguments.length>1){A=MochiKit.Base.partial.apply(null,arguments)}return this.addCallbacks(null,A)},addCallbacks:function(A,B){if(this.chained){throw new Error("Chained Deferreds can not be re-used")}this.chain.push([A,B]);if(this.fired>=0){this._fire()}return this},_fire:function(){var D=this.chain;var G=this.fired;var C=this.results[G];var B=this;var A=null;while(D.length>0&&this.paused===0){var H=D.shift();var F=H[G];if(F===null){continue}try{C=F(C);G=((C instanceof Error)?1:0);if(C instanceof MochiKit.Async.Deferred){A=function(I){B._resback(I);B.paused--;if((B.paused===0)&&(B.fired>=0)){B._fire()}};this.paused++}}catch(E){G=1;if(!(E instanceof Error)){E=new MochiKit.Async.GenericError(E)}C=E}}this.fired=G;this.results[G]=C;if(A&&this.paused){C.addBoth(A);C.chained=true}}};MochiKit.Base.update(MochiKit.Async,{evalJSONRequest:function(){return eval("("+arguments[0].responseText+")")},succeed:function(A){var B=new MochiKit.Async.Deferred();B.callback.apply(B,arguments);return B},fail:function(A){var B=new MochiKit.Async.Deferred();B.errback.apply(B,arguments);return B},getXMLHttpRequest:function(){var A=arguments.callee;if(!A.XMLHttpRequest){var E=[function(){return new XMLHttpRequest()},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.4.0")},function(){throw new MochiKit.Async.BrowserComplianceError("Browser does not support XMLHttpRequest")}];for(var B=0;B1){var B=MochiKit.Base;var A=B.queryString.apply(null,B.extend(null,arguments,1));if(A){D+="?"+A}}E.open("GET",D,true);return C.sendXMLHttpRequest(E)},loadJSONDoc:function(B){var A=MochiKit.Async;var C=A.doSimpleXMLHttpRequest.apply(A,arguments);C=C.addCallback(A.evalJSONRequest);return C},wait:function(E,C){var D=new MochiKit.Async.Deferred();var A=MochiKit.Base;if(typeof (C)!="undefined"){D.addCallback(function(){return C})}var B=setTimeout(A.bind("callback",D),Math.floor(E*1000));D.canceller=function(){try{clearTimeout(B)}catch(F){}};return D},callLater:function(D,B){var A=MochiKit.Base;var C=A.partial.apply(A,A.extend(null,arguments,1));return MochiKit.Async.wait(D).addCallback(function(E){return C()})}});MochiKit.Async.DeferredLock=function(){this.waiting=[];this.locked=false;this.id=this._nextId()};MochiKit.Async.DeferredLock.prototype={__class__:MochiKit.Async.DeferredLock,acquire:function(){d=new MochiKit.Async.Deferred();if(this.locked){this.waiting.push(d)}else{this.locked=true;d.callback(this)}return d},release:function(){if(!this.locked){throw TypeError("Tried to release an unlocked DeferredLock")}this.locked=false;if(this.waiting.length>0){this.locked=true;this.waiting.shift().callback(this)}},_nextId:MochiKit.Base.counter(),repr:function(){var A;if(this.locked){A="locked, "+this.waiting.length+" waiting"}else{A="unlocked"}return"DeferredLock("+this.id+", "+A+")"},toString:MochiKit.Base.forwardCall("repr")};MochiKit.Async.DeferredList=function(G,F,B,D,I){MochiKit.Async.Deferred.apply(this,[I]);this.list=G;var A=[];this.resultList=A;this.finishedCount=0;this.fireOnOneCallback=F;this.fireOnOneErrback=B;this.consumeErrors=D;var C=MochiKit.Base.bind(this._cbDeferred,this);for(var E=0;E=0){var H=K.options[K.selectedIndex];E.push(F);C.push((H.value)?H.value:H.text);return null}E.push(F);C.push("");return null}else{var J=K.options;if(!J.length){E.push(F);C.push("");return null}for(var G=0;G0){return D}if(typeof (D)=="number"||typeof (D)=="boolean"){D=D.toString()}if(typeof (D)=="string"){return L._document.createTextNode(D)}if(typeof (D.__dom__)=="function"){D=D.__dom__(M);continue}if(typeof (D.dom)=="function"){D=D.dom(M);continue}if(typeof (D)=="function"){D=D.apply(M,[M]);continue}if(I){var F=null;try{F=J(D)}catch(H){}if(F){return A(C,F,B(M))}}try{D=K.match(D,M);continue}catch(H){if(H!=G){throw H}}return L._document.createTextNode(D.toString())}return undefined},setNodeAttribute:function(B,A,C){var E={};E[A]=C;try{return MochiKit.DOM.updateNodeAttributes(B,E)}catch(D){}return null},getNodeAttribute:function(D,A){var C=MochiKit.DOM;var B=C.attributeArray.renames[A];D=C.getElement(D);try{if(B){return D[B]}return D.getAttribute(A)}catch(E){}return null},updateNodeAttributes:function(B,F){var C=B;var I=MochiKit.DOM;if(typeof (B)=="string"){C=I.getElement(B)}if(F){var H=MochiKit.Base.updatetree;if(I.attributeArray.compliant){for(var D in F){var G=F[D];if(typeof (G)=="object"&&typeof (C[D])=="object"){H(C[D],G)}else{if(D.substring(0,2)=="on"){if(typeof (G)=="string"){G=new Function(G)}C[D]=G}else{C.setAttribute(D,G)}}}}else{var E=I.attributeArray.renames;for(D in F){G=F[D];var A=E[D];if(D=="style"&&typeof (G)=="string"){C.style.cssText=G}else{if(typeof (A)=="string"){C[A]=G}else{if(typeof (C[D])=="object"&&typeof (G)=="object"){H(C[D],G)}else{if(D.substring(0,2)=="on"){if(typeof (G)=="string"){G=new Function(G)}C[D]=G}else{C.setAttribute(D,G)}}}}}}}return C},appendChildNodes:function(C){var B=C;var A=MochiKit.DOM;if(typeof (C)=="string"){B=A.getElement(C)}var D=[A.coerceToDOM(MochiKit.Base.extend(null,arguments,1),B)];var E=MochiKit.Base.concat;while(D.length){var F=D.shift();if(typeof (F)=="undefined"||F===null){}else{if(typeof (F.nodeType)=="number"){B.appendChild(F)}else{D=E(F,D)}}}return B},replaceChildNodes:function(C){var B=C;var A=MochiKit.DOM;if(typeof (C)=="string"){B=A.getElement(C);arguments[0]=B}var D;while((D=B.firstChild)){B.removeChild(D)}if(arguments.length<2){return B}else{return A.appendChildNodes.apply(this,arguments)}},createDOM:function(E,D){var G;var B=MochiKit.DOM;var A=MochiKit.Base;if(typeof (D)=="string"||typeof (D)=="number"){var C=A.extend([E,null],arguments,1);return arguments.callee.apply(this,C)}if(typeof (E)=="string"){if(D&&!B.attributeArray.compliant){var F="";if("name" in D){F+=' name="'+B.escapeHTML(D.name)+'"'}if(E=="input"&&"type" in D){F+=' type="'+B.escapeHTML(D.type)+'"'}if(F){E="<"+E+F+">"}}G=B._document.createElement(E)}else{G=E}if(D){B.updateNodeAttributes(G,D)}if(arguments.length<=2){return G}else{var C=A.extend([G],arguments,2);return B.appendChildNodes.apply(this,C)}},createDOMFunc:function(){var A=MochiKit.Base;return A.partial.apply(this,A.extend([MochiKit.DOM.createDOM],arguments))},removeElement:function(A){var B=MochiKit.DOM.getElement(A);B.parentNode.removeChild(B);return B},swapDOM:function(B,D){var A=MochiKit.DOM;B=A.getElement(B);var C=B.parentNode;if(D){D=A.getElement(D);C.replaceChild(D,B)}else{C.removeChild(B)}return D},getElement:function(B){var A=MochiKit.DOM;if(arguments.length==1){return((typeof (B)=="string")?A._document.getElementById(B):B)}else{return MochiKit.Base.map(A.getElement,arguments)}},getElementsByTagAndClassName:function(E,H,I){var J=MochiKit.DOM;if(typeof (E)=="undefined"||E===null){E="*"}if(typeof (I)=="undefined"||I===null){I=J._document}I=J.getElement(I);var D=(I.getElementsByTagName(E)||J._document.all);if(typeof (H)=="undefined"||H===null){return MochiKit.Base.extend(null,D)}var B=[];for(var G=0;G/g,">")},toHTML:function(A){return MochiKit.DOM.emitHTML(A).join("")},emitHTML:function(C,F){if(typeof (F)=="undefined"||F===null){F=[]}var H=[C];var M=MochiKit.DOM;var L=M.escapeHTML;var A=M.attributeArray;while(H.length){C=H.pop();if(typeof (C)=="string"){F.push(C)}else{if(C.nodeType==1){F.push("<"+C.nodeName.toLowerCase());var D=[];var I=A(C);for(var E=0;E");H.push("");var G=C.childNodes;for(E=G.length-1;E>=0;E--){H.push(G[E])}}else{F.push("/>")}}else{if(C.nodeType==3){F.push(L(C.nodeValue))}}}}return F},scrapeText:function(B,A){var C=[];(function(F){var G=F.childNodes;if(G){for(var E=0;E0){var B=D.filter;A=function(L){return B(A.ignoreAttrFilter,L.attributes)};A.ignoreAttr={};var K=J.attributes;var E=A.ignoreAttr;for(var G=0;G1){var A=MochiKit.DOM.getElement(arguments[0]);var K=arguments[1];var F=arguments[2];var C=arguments[3];for(var E=H.length-1;E>=0;E--){var B=H[E];if(B[0]===A&&B[1]===K&&B[4]===F&&B[5]===C){J._disconnect(B);H.splice(E,1);return true}}}else{var I=D.findIdentical(H,G);if(I>=0){J._disconnect(G);H.splice(I,1);return true}}return false},disconnectAll:function(A,J){A=MochiKit.DOM.getElement(A);var B=MochiKit.Base;var C=B.flattenArguments(B.extend(null,arguments,1));var H=MochiKit.Signal;var G=H._disconnect;var F=H._observers;if(C.length===0){for(var E=F.length-1;E>=0;E--){var D=F[E];if(D[0]===A){G(D);F.splice(E,1)}}}else{var I={};for(var E=0;E=0;E--){var D=F[E];if(D[0]===A&&D[1] in I){G(D);F.splice(E,1)}}}},signal:function(G,F){var E=MochiKit.Signal._observers;G=MochiKit.DOM.getElement(G);var A=MochiKit.Base.extend(null,arguments,2);var H=[];for(var B=0;B1){var D=new Error("Multiple errors thrown in handling 'sig', see errors property");D.errors=H;throw D}}}});MochiKit.Signal.EXPORT_OK=[];MochiKit.Signal.EXPORT=["connect","disconnect","signal","disconnectAll"];MochiKit.Signal.__new__=function(C){var A=MochiKit.Base;this._document=document;this._window=C;try{this.connect(window,"onunload",this._unloadCache)}catch(B){}this.EXPORT_TAGS={":common":this.EXPORT,":all":A.concat(this.EXPORT,this.EXPORT_OK)};A.nameFunctions(this)};MochiKit.Signal.__new__(this);if(MochiKit.__export__){connect=MochiKit.Signal.connect;disconnect=MochiKit.Signal.disconnect;disconnectAll=MochiKit.Signal.disconnectAll;signal=MochiKit.Signal.signal}MochiKit.Base._exportSymbols(this,MochiKit.Signal);MochiKit.Base.update(MochiKit.Base,{isIE:function(){return/MSIE/.test(navigator.userAgent)},isGecko:function(){return/Gecko/.test(navigator.userAgent)},isKHTML:function(){return/Konqueror|Safari|KHTML/.test(navigator.userAgent)},isSafari:function(){return/AppleWebKit'/.test(navigator.appVersion)},isOpera:function(){return/Opera/.test(navigator.userAgent)}});MochiKit.Base.update(MochiKit.DOM,{getStyle:function(B,C){B=MochiKit.DOM.getElement(B);var D=B.style[MochiKit.Base.camelize(C)];if(!D){if(document.defaultView&&document.defaultView.getComputedStyle){var A=document.defaultView.getComputedStyle(B,null);D=A?A.getPropertyValue(C):null}else{if(B.currentStyle){D=B.currentStyle[MochiKit.Base.camelize(C)]}}}if(MochiKit.Base.isOpera()&&(MochiKit.Base.find(["left","top","right","bottom"],C))){if(MochiKit.DOM.getStyle(B,"position")=="static"){D="auto"}}return D=="auto"?null:D},setStyle:function(B,C){B=MochiKit.DOM.getElement(B);for(var A in C){B.style[MochiKit.Base.camelize(A)]=C[A]}},getOpacity:function(B){var A;if(A=MochiKit.DOM.getStyle(B,"opacity")){return parseFloat(A)}if(A=(MochiKit.DOM.getStyle(B,"filter")||"").match(/alpha\(opacity=(.*)\)/)){if(A[1]){return parseFloat(A[1])/100}}return 1},getInlineOpacity:function(A){return MochiKit.DOM.getElement(A).style.opacity||""},setOpacity:function(A,C){A=MochiKit.DOM.getElement(A);if(C==1){var B=A.style.cssText;if(MochiKit.Base.isIE()){B=B.replace(/filter: ?alpha\([^\)]*\);?/gi,"")}A.style.cssText=B.replace(/opacity: ?\d\.?\d*/gi,"")}else{if(C<0.00001){C=0}MochiKit.DOM.setStyle(A,{opacity:C});if(MochiKit.Base.isIE()){MochiKit.DOM.setStyle(A,{filter:MochiKit.DOM.getStyle(A,"filter").replace(/alpha\([^\)]*\)/gi,"")+"alpha(opacity="+C*100+")"})}}},isVisible:function(A){return MochiKit.DOM.getElement(A).style.display!="none"},makeClipping:function(A){A=MochiKit.DOM.getElement(A);if(A._overflow){return }A._overflow=A.style.overflow;if((MochiKit.DOM.getStyle(A,"overflow")||"visible")!="hidden"){A.style.overflow="hidden"}},undoClipping:function(A){A=MochiKit.DOM.getElement(A);if(!A._overflow){return }A.style.overflow=A._overflow;A._overflow=undefined},makePositioned:function(A){A=MochiKit.DOM.getElement(A);var B=MochiKit.DOM.getStyle(A,"position");if((B=="static"||!B)&&!A._madePositioned){A._madePositioned=true;A.style.position="relative";if(MochiKit.Base.isOpera()){A.style.top=0;A.style.left=0}}},undoPositioned:function(A){A=MochiKit.DOM.getElement(A);if(A._madePositioned){A._madePositioned=undefined;A.style.position=A.style.top=A.style.left=A.style.bottom=A.style.right=""}},getFirstElementByTagAndClassName:function(D,G,H){var I=MochiKit.DOM;if(typeof (D)=="undefined"||D===null){D="*"}if(typeof (H)=="undefined"||H===null){H=I._document}H=I.getElement(H);var C=(H.getElementsByTagName(D)||I._document.all);if(typeof (G)=="undefined"||G===null){return MochiKit.Base.extend(null,C)}for(var F=0;F=this.offset.y&&C=this.offset.x&&A=this.offset.y&&this.ycomp=this.offset.x&&this.xcomp0){return B}}return null},fromBackground:function(B){var A=MochiKit.Color.Color;return A.fromComputedStyle(B,"backgroundColor","background-color")||A.whiteColor()},fromText:function(B){var A=MochiKit.Color.Color;return A.fromComputedStyle(B,"color","color")||A.blackColor()},namedColors:function(){return MochiKit.Base.clone(MochiKit.Color.Color._namedColors)}});MochiKit.Base.update(MochiKit.Color,{__new__:function(){var A=MochiKit.Base;A.nameFunctions(this);this.EXPORT_TAGS={":common":this.EXPORT,":all":A.concat(this.EXPORT,this.EXPORT_OK)}}});MochiKit.Color.EXPORT=["Color"];MochiKit.Color.EXPORT_OK=["clampColorComponent","rgbToHSL","hslToRGB","rgbToHSV","hsvToRGB","toColorPart"];MochiKit.Color.__new__();MochiKit.Base._exportSymbols(this,MochiKit.Color);if(typeof (dojo)!="undefined"){dojo.provide("MochiKit.Iter");dojo.require("MochiKit.Base")}if(typeof (JSAN)!="undefined"){JSAN.use("MochiKit.Base",[])}try{if(typeof (MochiKit.Base)=="undefined"){throw""}}catch(e){throw"MochiKit.Iter depends on MochiKit.Base!"}if(typeof (MochiKit.Iter)=="undefined"){MochiKit.Iter={}}MochiKit.Iter.NAME="MochiKit.Iter";MochiKit.Iter.VERSION="1.4";MochiKit.Base.update(MochiKit.Iter,{__repr__:function(){return"["+this.NAME+" "+this.VERSION+"]"},toString:function(){return this.__repr__()},registerIteratorFactory:function(B,A,D,C){MochiKit.Iter.iteratorRegistry.register(B,A,D,C)},iter:function(D,C){var B=MochiKit.Iter;if(arguments.length==2){return B.takewhile(function(F){return F!=C},D)}if(typeof (D.next)=="function"){return D}else{if(typeof (D.iter)=="function"){return D.iter()}}try{return B.iteratorRegistry.match(D)}catch(E){var A=MochiKit.Base;if(E==A.NotFound){E=new TypeError(typeof (D)+": "+A.repr(D)+" is not iterable")}throw E}},repeat:function(B,C){var A=MochiKit.Base;if(typeof (C)=="undefined"){return{repr:function(){return"repeat("+A.repr(B)+")"},toString:A.forwardCall("repr"),next:function(){return B}}}return{repr:function(){return"repeat("+A.repr(B)+", "+C+")"},toString:A.forwardCall("repr"),next:function(){if(C<=0){throw MochiKit.Iter.StopIteration}C-=1;return B}}},next:function(A){return A.next()},ifilter:function(C,B){var A=MochiKit.Base;B=MochiKit.Iter.iter(B);if(C===null){C=A.operator.truth}return{repr:function(){return"ifilter(...)"},toString:A.forwardCall("repr"),next:function(){while(true){var D=B.next();if(C(D)){return D}}return undefined}}},ifilterfalse:function(C,B){var A=MochiKit.Base;B=MochiKit.Iter.iter(B);if(C===null){C=A.operator.truth}return{repr:function(){return"ifilterfalse(...)"},toString:A.forwardCall("repr"),next:function(){while(true){var D=B.next();if(!C(D)){return D}}return undefined}}},imap:function(C,H,F){var A=MochiKit.Base;var D=MochiKit.Iter;var B=A.map(D.iter,A.extend(null,arguments,1));var G=A.map;var E=D.next;return{repr:function(){return"imap(...)"},toString:A.forwardCall("repr"),next:function(){return C.apply(this,G(E,B))}}},list:function(C){var A=MochiKit.Base;if(typeof (C.slice)=="function"){return C.slice()}else{if(A.isArrayLike(C)){return A.concat(C)}}var B=MochiKit.Iter;C=B.iter(C);var E=[];try{while(true){E.push(C.next())}}catch(D){if(D!=B.StopIteration){throw D}return E}return undefined},forEach:function(E,D,B){var A=MochiKit.Base;if(arguments.length>2){D=A.bind(D,B)}if(A.isArrayLike(E)){try{for(var C=0;C=B.length){throw MochiKit.Iter.StopIteration}return B[A++]}}},hasIterateNext:function(A){return(A&&typeof (A.iterateNext)=="function")},iterateNextIter:function(A){return{repr:function(){return"iterateNextIter(...)"},toString:MochiKit.Base.forwardCall("repr"),next:function(){var B=A.iterateNext();if(B===null||B===undefined){throw MochiKit.Iter.StopIteration}return B}}}});MochiKit.Iter.EXPORT_OK=["iteratorRegistry","arrayLikeIter","hasIterateNext","iterateNextIter",];MochiKit.Iter.EXPORT=["StopIteration","registerIteratorFactory","iter","count","cycle","repeat","next","izip","ifilter","ifilterfalse","islice","imap","applymap","chain","takewhile","dropwhile","tee","list","reduce","range","sum","exhaust","forEach","every","sorted","reversed","some","iextend","groupby","groupby_as_array"];MochiKit.Iter.__new__=function(){var A=MochiKit.Base;if(typeof (StopIteration)!="undefined"){this.StopIteration=StopIteration}else{this.StopIteration=new A.NamedError("StopIteration")}this.iteratorRegistry=new A.AdapterRegistry();this.registerIteratorFactory("arrayLike",A.isArrayLike,this.arrayLikeIter);this.registerIteratorFactory("iterateNext",this.hasIterateNext,this.iterateNextIter);this.EXPORT_TAGS={":common":this.EXPORT,":all":A.concat(this.EXPORT,this.EXPORT_OK)};A.nameFunctions(this)};MochiKit.Iter.__new__();if(MochiKit.__export__){reduce=MochiKit.Iter.reduce}MochiKit.Base._exportSymbols(this,MochiKit.Iter);if(typeof (dojo)!="undefined"){dojo.provide("MochiKit.Visual");dojo.require("MochiKit.Base");dojo.require("MochiKit.DOM");dojo.require("MochiKit.Style");dojo.require("MochiKit.Color");dojo.require("MochiKit.Iter")}if(typeof (JSAN)!="undefined"){JSAN.use("MochiKit.Base",[]);JSAN.use("MochiKit.DOM",[]);JSAN.use("MochiKit.Style",[]);JSAN.use("MochiKit.Color",[]);JSAN.use("MochiKit.Iter",[])}try{if(typeof (MochiKit.Base)==="undefined"||typeof (MochiKit.DOM)==="undefined"||typeof (MochiKit.Style)==="undefined"||typeof (MochiKit.Color)==="undefined"||typeof (MochiKit.Iter)==="undefined"){throw""}}catch(e){throw"MochiKit.Visual depends on MochiKit.Base, MochiKit.DOM, MochiKit.Style, MochiKit.Color and MochiKit.Iter!"}if(typeof (MochiKit.Visual)=="undefined"){MochiKit.Visual={}}MochiKit.Visual.NAME="MochiKit.Visual";MochiKit.Visual.VERSION="1.4";MochiKit.Visual.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]"};MochiKit.Visual.toString=function(){return this.__repr__()};MochiKit.Visual.forceRerendering=function(A){try{A=MochiKit.DOM.getElement(A);var C=document.createTextNode(" ");A.appendChild(C);A.removeChild(C)}catch(B){}};MochiKit.Visual.PAIRS={slide:["slideDown","slideUp"],blind:["blindDown","blindUp"],appear:["appear","fade"],size:["grow","shrink"]};MochiKit.Visual.Transitions={};MochiKit.Visual.Transitions.linear=function(A){return A};MochiKit.Visual.Transitions.sinoidal=function(A){return(-Math.cos(A*Math.PI)/2)+0.5};MochiKit.Visual.Transitions.reverse=function(A){return 1-A};MochiKit.Visual.Transitions.flicker=function(A){return((-Math.cos(A*Math.PI)/4)+0.75)+Math.random()/4};MochiKit.Visual.Transitions.wobble=function(A){return(-Math.cos(A*Math.PI*(9*A))/2)+0.5};MochiKit.Visual.Transitions.pulse=function(A){return(Math.floor(A*10)%2==0?(A*10-Math.floor(A*10)):1-(A*10-Math.floor(A*10)))};MochiKit.Visual.Transitions.none=function(A){return 0};MochiKit.Visual.Transitions.full=function(A){return 1};MochiKit.Visual.ScopedQueue=function(){this.__init__()};MochiKit.Base.update(MochiKit.Visual.ScopedQueue.prototype,{__init__:function(){this.effects=[];this.interval=null},add:function(D){var E=new Date().getTime();var A=(typeof (D.options.queue)=="string")?D.options.queue:D.options.queue.position;var B=MochiKit.Iter.forEach;switch(A){case"front":B(this.effects,function(F){if(F.state=="idle"){F.startOn+=D.finishOn;F.finishOn+=D.finishOn}});break;case"end":var C;B(this.effects,function(G){var F=G.finishOn;if(F>=(C||F)){C=F}});E=C||E;break}D.startOn+=E;D.finishOn+=E;if(!D.options.queue.limit||this.effects.length=this.startOn){if(C>=this.finishOn){this.render(1);this.cancel();this.event("beforeFinish");this.finish();this.event("afterFinish");return }var B=(C-this.startOn)/(this.finishOn-this.startOn);var A=Math.round(B*this.options.fps*this.options.duration);if(A>this.currentFrame){this.render(B);this.currentFrame=A}}},render:function(A){if(this.state=="idle"){this.state="running";this.event("beforeSetup");this.setup();this.event("afterSetup")}if(this.state=="running"){if(this.options.transition){A=this.options.transition(A)}A*=(this.options.to-this.options.from);A+=this.options.from;this.event("beforeUpdate");this.update(A);this.event("afterUpdate")}},cancel:function(){if(!this.options.sync){MochiKit.Visual.Queues.get(typeof (this.options.queue)=="string"?"global":this.options.queue.scope).remove(this)}this.state="finished"},setup:function(){},finish:function(){},update:function(A){},event:function(A){if(this.options[A+"Internal"]){this.options[A+"Internal"](this)}if(this.options[A]){this.options[A](this)}},repr:function(){return"["+this.__class__.NAME+", options:"+MochiKit.Base.repr(this.options)+"]"}};MochiKit.Visual.Opacity=function(B,A){this.__init__(B,A)};MochiKit.Visual.Opacity.prototype=new MochiKit.Visual.Base();MochiKit.Base.update(MochiKit.Visual.Opacity.prototype,{__init__:function(C,B){var A=MochiKit.Base;var D=MochiKit.DOM;this.element=D.getElement(C);if(A.isIE()&&(!this.element.currentStyle.hasLayout)){D.setStyle(this.element,{zoom:1})}B=A.update({from:D.getOpacity(this.element)||0,to:1},B||{});this.start(B)},update:function(A){MochiKit.DOM.setOpacity(this.element,A)}});MochiKit.Visual.Move=function(B,A){this.__init__(B,A)};MochiKit.Visual.Move.prototype=new MochiKit.Visual.Base();MochiKit.Base.update(MochiKit.Visual.Move.prototype,{__init__:function(B,A){this.element=MochiKit.DOM.getElement(B);A=MochiKit.Base.update({x:0,y:0,mode:"relative"},A||{});this.start(A)},setup:function(){var D=MochiKit.DOM;D.makePositioned(this.element);var B=this.element.style;var C=B.visibility;var A=B.display;if(A=="none"){B.visibility="hidden";B.display=""}this.originalLeft=parseFloat(D.getStyle(this.element,"left")||"0");this.originalTop=parseFloat(D.getStyle(this.element,"top")||"0");if(this.options.mode=="absolute"){this.options.x-=this.originalLeft;this.options.y-=this.originalTop}if(A=="none"){B.visibility=C;B.display=A}},update:function(A){MochiKit.DOM.setStyle(this.element,{left:Math.round(this.options.x*A+this.originalLeft)+"px",top:Math.round(this.options.y*A+this.originalTop)+"px"})}});MochiKit.Visual.Scale=function(B,C,A){this.__init__(B,C,A)};MochiKit.Visual.Scale.prototype=new MochiKit.Visual.Base();MochiKit.Base.update(MochiKit.Visual.Scale.prototype,{__init__:function(B,C,A){this.element=MochiKit.DOM.getElement(B);A=MochiKit.Base.update({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:"box",scaleFrom:100,scaleTo:C},A||{});this.start(A)},setup:function(){this.restoreAfterFinish=this.options.restoreAfterFinish||false;this.elementPositioning=MochiKit.DOM.getStyle(this.element,"position");var B=MochiKit.Iter.forEach;var A=MochiKit.Base.bind;this.originalStyle={};B(["top","left","width","height","fontSize"],A(function(D){this.originalStyle[D]=this.element.style[D]},this));this.originalTop=this.element.offsetTop;this.originalLeft=this.element.offsetLeft;var C=MochiKit.DOM.getStyle(this.element,"font-size")||"100%";B(["em","px","%"],A(function(D){if(C.indexOf(D)>0){this.fontSize=parseFloat(C);this.fontSizeType=D}},this));this.factor=(this.options.scaleTo-this.options.scaleFrom)/100;if(/^content/.test(this.options.scaleMode)){this.dims=[this.element.scrollHeight,this.element.scrollWidth]}else{if(this.options.scaleMode=="box"){this.dims=[this.element.offsetHeight,this.element.offsetWidth]}else{this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth]}}},update:function(A){var B=(this.options.scaleFrom/100)+(this.factor*A);if(this.options.scaleContent&&this.fontSize){MochiKit.DOM.setStyle(this.element,{fontSize:this.fontSize*B+this.fontSizeType})}this.setDimensions(this.dims[0]*B,this.dims[1]*B)},finish:function(){if(this.restoreAfterFinish){MochiKit.DOM.setStyle(this.element,this.originalStyle)}},setDimensions:function(A,D){var E={};if(this.options.scaleX){E.width=Math.round(D)+"px"}if(this.options.scaleY){E.height=Math.round(A)+"px"}if(this.options.scaleFromCenter){var C=(A-this.dims[0])/2;var B=(D-this.dims[1])/2;if(this.elementPositioning=="absolute"){if(this.options.scaleY){E.top=this.originalTop-C+"px"}if(this.options.scaleX){E.left=this.originalLeft-B+"px"}}else{if(this.options.scaleY){E.top=-C+"px"}if(this.options.scaleX){E.left=-B+"px"}}}MochiKit.DOM.setStyle(this.element,E)}});MochiKit.Visual.fade=function(C,B){var D=MochiKit.DOM;var A=D.getInlineOpacity(C);B=MochiKit.Base.update({from:D.getOpacity(C)||1,to:0,afterFinishInternal:function(E){if(E.options.to!==0){return }MochiKit.Style.hideElement(E.element);D.setStyle(E.element,{opacity:A})}},B||{});return new MochiKit.Visual.Opacity(C,B)};MochiKit.Visual.appear=function(C,B){var D=MochiKit.DOM;var A=MochiKit.Visual;B=MochiKit.Base.update({from:(D.getStyle(C,"display")=="none"?0:D.getOpacity(C)||0),to:1,afterFinishInternal:function(E){A.forceRerendering(E.element)},beforeSetupInternal:function(E){D.setOpacity(E.element,E.options.from);MochiKit.Style.showElement(E.element)}},B||{});return new A.Opacity(C,B)};MochiKit.Visual.blindUp=function(B,A){var C=MochiKit.DOM;B=C.getElement(B);C.makeClipping(B);A=MochiKit.Base.update({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(D){MochiKit.Style.hideElement(D.element);C.undoClipping(D.element)}},A||{});return new MochiKit.Visual.Scale(B,0,A)};MochiKit.Visual.blindDown=function(C,B){var D=MochiKit.DOM;C=D.getElement(C);var A=MochiKit.Style.getElementDimensions(C);B=MochiKit.Base.update({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:A.h,originalWidth:A.w},restoreAfterFinish:true,afterSetupInternal:function(E){D.makeClipping(E.element);D.setStyle(E.element,{height:"0px"});MochiKit.Style.showElement(E.element)},afterFinishInternal:function(E){D.undoClipping(E.element)}},B||{});return new MochiKit.Visual.Scale(C,100,B)};MochiKit.Visual.Color=MochiKit.Color.Color;MochiKit.Visual.getElementsComputedStyle=MochiKit.DOM.computedStyle;MochiKit.Visual.__new__=function(){var A=MochiKit.Base;A.nameFunctions(this);this.EXPORT_TAGS={":common":this.EXPORT,":all":A.concat(this.EXPORT,this.EXPORT_OK)}};MochiKit.Visual.EXPORT=["roundElement","roundClass","tagifyText","multiple","toggle","Base","Parallel","Opacity","Move","Scale","Highlight","ScrollTo","fade","appear","puff","blindUp","blindDown","switchOff","dropOut","shake","slideDown","slideUp","squish","grow","shrink","pulsate","fold"];MochiKit.Visual.EXPORT_OK=["PAIRS"];MochiKit.Visual.__new__();MochiKit.Base._exportSymbols(this,MochiKit.Visual);var log4javascript;(function(){function D(){return function(){}}function G(J,I){for(var H in I){J[H]=I[H]}}var E=D();var C=D();G(C.prototype,{addAppender:E,removeAppender:E,removeAllAppenders:E,log:E,setLevel:E,getLevel:E,trace:E,debug:E,info:E,warn:E,error:E,fatal:E});var A=function(){return new C()};log4javascript={isStub:true,version:"dummy",logLog:{setQuietMode:E,setAlertAllErrors:E,debug:E,warn:E,error:E},addErrorListener:E,removeErrorListener:E,setEnabled:E,setShowStackTraces:E,isEnabled:E,evalInScope:E,getLogger:A,getDefaultLogger:A,getNullLogger:A,Level:D(),LoggingEvent:D(),Layout:D(),Appender:D()};log4javascript.LoggingEvent.prototype={getThrowableStrRep:E};log4javascript.Level.prototype={toString:E,equals:E,isGreaterOrEqual:E};var F=new log4javascript.Level();G(log4javascript.Level,{ALL:F,TRACE:F,DEBUG:F,INFO:F,WARN:F,ERROR:F,FATAL:F,OFF:F});log4javascript.Layout.prototype={defaults:{},format:E,ignoresThrowable:E,getContentType:E,allowBatching:E,getDataValues:E,setKeys:E,setCustomField:E,hasCustomFields:E};log4javascript.SimpleLayout=D();log4javascript.SimpleLayout.prototype=new log4javascript.Layout();log4javascript.XmlLayout=D();log4javascript.XmlLayout.prototype=new log4javascript.Layout();log4javascript.XmlLayout.prototype.escapeCdata=E;log4javascript.JsonLayout=D();log4javascript.JsonLayout.prototype=new log4javascript.Layout();G(log4javascript.JsonLayout.prototype,{setReadable:E,isReadable:E});log4javascript.HttpPostDataLayout=D();log4javascript.HttpPostDataLayout.prototype=new log4javascript.Layout();log4javascript.PatternLayout=D();log4javascript.PatternLayout.prototype=new log4javascript.Layout();log4javascript.NullLayout=D();log4javascript.NullLayout.prototype=new log4javascript.Layout();log4javascript.Appender=D();log4javascript.Appender.prototype={layout:new log4javascript.PatternLayout(),threshold:log4javascript.Level.ALL,doAppend:E,append:E,setLayout:E,getLayout:E,setThreshold:E,getThreshold:E,toString:E};log4javascript.AlertAppender=D();log4javascript.AlertAppender.prototype=new log4javascript.Appender();log4javascript.ArrayAppender=D();log4javascript.ArrayAppender.prototype=new log4javascript.Appender();log4javascript.AjaxAppender=D();log4javascript.AjaxAppender.prototype=new log4javascript.Appender();G(log4javascript.AjaxAppender.prototype,{isTimed:E,setTimed:E,getTimerInterval:E,setTimerInterval:E,isWaitForResponse:E,setWaitForResponse:E,getBatchSize:E,setBatchSize:E,setRequestSuccessCallback:E,setFailCallback:E,sendAll:E,defaults:{requestSuccessCallback:null,failCallback:null}});function B(){}B.prototype=new log4javascript.Appender();G(B.prototype,{create:E,isNewestMessageAtTop:E,setNewestMessageAtTop:E,isScrollToLatestMessage:E,setScrollToLatestMessage:E,getWidth:E,setWidth:E,getHeight:E,setHeight:E,getMaxMessages:E,setMaxMessages:E});log4javascript.InPageAppender=D();log4javascript.InPageAppender.prototype=new B();G(log4javascript.InPageAppender.prototype,{isInitiallyMinimized:E,setInitiallyMinimized:E,hide:E,show:E,isVisible:E,close:E,defaults:{layout:new log4javascript.PatternLayout(),maxMessages:null}});log4javascript.InlineAppender=log4javascript.InPageAppender;log4javascript.PopUpAppender=D();log4javascript.PopUpAppender.prototype=new B();G(log4javascript.PopUpAppender.prototype,{isUseOldPopUp:E,setUseOldPopUp:E,isComplainAboutPopUpBlocking:E,setComplainAboutPopUpBlocking:E,isFocusPopUp:E,setFocusPopUp:E,isReopenWhenClosed:E,setReopenWhenClosed:E,close:E,defaults:{layout:new log4javascript.PatternLayout(),maxMessages:null}});log4javascript.BrowserConsoleAppender=D();log4javascript.BrowserConsoleAppender.prototype=new log4javascript.Appender()})();var log4javascript_dummy=log4javascript;if(typeof bobj=="undefined"){bobj={}}if(typeof bobj.external=="undefined"){bobj.external={}}if(typeof bobj.external.date=="undefined"){bobj.external.date={}}bobj.external.date.MONTH_NAMES=new Array("January","February","March","April","May","June","July","August","September","October","November","December","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");bobj.external.date.DAY_NAMES=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sun","Mon","Tue","Wed","Thu","Fri","Sat");bobj.external.date.LZ=function(A){return(A<0||A>9?"":"0")+A};bobj.external.date.isDate=function(C,B){var A=bobj.external.date.getDateFromFormat(C,B);if(!A){return false}return true};bobj.external.date.compareDates=function(E,F,C,D){var B=bobj.external.date.getDateFromFormat(E,F);var A=bobj.external.date.getDateFromFormat(C,D);if(!B||!A){return -1}else{if(B.getTime()>A.getTime()){return 1}}return 0};bobj.external.date.formatDate=function(f,a){a=a+"";var J="";var T=0;var e="";var D="";var I=f.getFullYear()+"";var F=f.getMonth()+1;var b=f.getDate();var N=f.getDay();var L=f.getHours();var V=f.getMinutes();var P=f.getSeconds();var R,S,B,Q,g,C,Z,Y,W,O,n,L,l,G,A,X;var U=new Object();while(I.length<4){I="0"+I}U.y=""+I;U.yyyy=I;U.yy=I.substring(2,4);U.Y=U.y;U.YY=U.yy;U.YYYY=U.yyyy;U.M=F;U.MM=bobj.external.date.LZ(F);U.MMM=bobj.external.date.MONTH_NAMES[F-1];U.NNN=bobj.external.date.MONTH_NAMES[F+11];U.d=b;U.dd=bobj.external.date.LZ(b);U.D=U.d;U.DD=U.dd;U.E=bobj.external.date.DAY_NAMES[N+7];U.EE=bobj.external.date.DAY_NAMES[N];U.H=L;U.HH=bobj.external.date.LZ(L);if(L==0){U.h=12}else{if(L>12){U.h=L-12}else{U.h=L}}U.hh=bobj.external.date.LZ(U.h);if(L>11){U.K=L-12}else{U.K=L}U.k=L+1;U.KK=bobj.external.date.LZ(U.K);U.kk=bobj.external.date.LZ(U.k);if(L>11){U.a="PM"}else{U.a="AM"}U.m=V;U.mm=bobj.external.date.LZ(V);U.s=P;U.ss=bobj.external.date.LZ(P);while(T=E;A--){var B=F.substring(D,D+A);if(B.length70){G=1900+(G-0)}else{G=2000+(G-0)}}}else{if(D=="MMM"||D=="NNN"){Q=0;for(var L=0;L11)){Q=L+1;if(Q>12){Q-=12}S+=B.length;break}}}if((Q<1)||(Q>12)){return null}}else{if(D=="EE"||D=="E"){for(var L=0;L12)){return null}S+=Q.length}else{if(D=="dd"||D=="DD"||D=="d"||D=="D"){P=bobj.external.date._getInt(T,S,D.length,2);if(P==null||(P<1)||(P>31)){return null}S+=P.length}else{if(D=="hh"||D=="h"){A=bobj.external.date._getInt(T,S,D.length,2);if(A==null||(A<1)||(A>12)){return null}S+=A.length}else{if(D=="HH"||D=="H"){A=bobj.external.date._getInt(T,S,D.length,2);if(A==null||(A<0)||(A>23)){return null}S+=A.length}else{if(D=="KK"||D=="K"){A=bobj.external.date._getInt(T,S,D.length,2);if(A==null||(A<0)||(A>11)){return null}S+=A.length}else{if(D=="kk"||D=="k"){A=bobj.external.date._getInt(T,S,D.length,2);if(A==null||(A<1)||(A>24)){return null}S+=A.length;A--}else{if(D=="mm"||D=="m"){N=bobj.external.date._getInt(T,S,D.length,2);if(N==null||(N<0)||(N>59)){return null}S+=N.length}else{if(D=="ss"||D=="s"){K=bobj.external.date._getInt(T,S,D.length,2);if(K==null||(K<0)||(K>59)){return null}S+=K.length}else{if(D=="a"){if(T.substring(S,S+2).toLowerCase()=="am"){H="AM"}else{if(T.substring(S,S+2).toLowerCase()=="pm"){H="PM"}else{return null}}S+=2}else{if(T.substring(S,S+D.length)!=D){return null}else{S+=D.length}}}}}}}}}}}}}}if(S!=T.length){return null}if(Q==2){if(((G%4==0)&&(G%100!=0))||(G%400==0)){if(P>29){return null}}else{if(P>28){return null}}}if((Q==4)||(Q==6)||(Q==9)||(Q==11)){if(P>30){return null}}if(A!==null){if(A<12&&H=="PM"){A=A-0+12}else{if(A>11&&H=="AM"){A-=12}}}var C=new Date(G,Q-1,P,A,N,K);C.setFullYear(G);return C};_userAgent=navigator.userAgent?navigator.userAgent.toLowerCase():null;_ie=(document.all!=null)?true:false;_dom=(document.getElementById!=null)?true:false;_isQuirksMode=(document.compatMode!="CSS1Compat");_dtd4=!_ie||(document.compatMode!="BackCompat");_show="visible";_hide="hidden";_hand=_ie?"hand":"pointer";_appVer=navigator.appVersion.toLowerCase();_webKit=(_userAgent.indexOf("safari")>=0)||(_userAgent.indexOf("applewebkit")>=0);_mac=(_appVer.indexOf("macintosh")>=0)||(_appVer.indexOf("macos")>=0);_opera=(_userAgent.indexOf("opera")!=-1);_userAgent=navigator.userAgent?navigator.userAgent.toLowerCase():null;_ctrl=0;_shift=1;_alt=2;var docMode=document.documentMode;var _ie6Up=(docMode>=6);var _ie8Up=(docMode>=8);var _ie10Up=(docMode>=10);var _ie11Up=(docMode>=11);_moz=_dom&&!_ie&&!_ie11Up;_saf=_moz&&(_userAgent.indexOf("safari")>=0);_small=(screen.height<=600);_curDoc=document;_curWin=self;_tooltipWin=self;_tooltipDx=0;_tooltipDy=0;_codeWinName="_CW";_leftBtn=(_ie||_saf)?1:0;_preloadArr=new Array;_widgets=new Array;_resizeW=_ie6Up?"col-resize":"E-resize";_resizeH=_ie6Up?"row-resize":"S-resize";_ddData=new Array;_dontNeedEncoding=null;_thex=null;_defaultButtonWidth=60;function initDom(D,C,E,B,A){_skin=D;_lang=E;_style=C;if(B){_curWin=B;_curDoc=B.document}_tooltipWin=_curWin;if(A){_codeWinName="_CW"+A}_curWin[_codeWinName]=self}function styleSheet(){includeCSS("style")}function isLayerDisplayed(A){var B=A?A.style:null;if(B){if(B.display=="none"||B.visibility=="hidden"){return false}else{var C=A.parentNode;if(C!=null){return isLayerDisplayed(C)}else{return true}}}else{return true}}function safeSetFocus(A){if(A&&A.focus&&isLayerDisplayed(A)){A.focus()}}function newWidget(B){var A=new Object;A.id=B;A.layer=null;A.css=null;A.getHTML=Widget_getHTML;A.beginHTML=Widget_getHTML;A.endHTML=Widget_getHTML;A.write=Widget_write;A.begin=Widget_begin;A.end=Widget_end;A.init=Widget_init;A.move=Widget_move;A.resize=Widget_resize;A.setBgColor=Widget_setBgColor;A.show=Widget_show;A.getWidth=Widget_getWidth;A.getHeight=Widget_getHeight;A.setHTML=Widget_setHTML;A.setDisabled=Widget_setDisabled;A.focus=Widget_focus;A.setDisplay=Widget_setDisplay;A.isDisplayed=Widget_isDisplayed;A.appendHTML=Widget_appendHTML;A.setTooltip=Widget_setTooltip;A.initialized=Widget_initialized;A.widx=_widgets.length;_widgets[A.widx]=A;return A}function new_Widget(A){return newWidget(A.id)}function getEvent(B,A){if(_ie&&(B==null)){B=A?A.event:_curWin.event}return B}function Widget_param(C,B,A){var D=C?C[B]:null;return D==null?A:D}function Widget_appendHTML(){append(_curDoc.body,this.getHTML())}function Widget_getHTML(){return""}function Widget_write(A){_curDoc.write(this.getHTML(A))}function Widget_begin(){_curDoc.write(this.beginHTML())}function Widget_end(){_curDoc.write(this.endHTML())}function Widget_init(){var A=this;A.layer=getLayer(A.id);A.css=A.layer.style;A.layer._widget=A.widx;if(A.initialHTML){A.setHTML(A.initialHTML)}}function Widget_move(A,C){var B=this.css;if(A!=null){if(_moz){B.left=""+A+"px"}else{B.pixelLeft=A}}if(C!=null){if(_moz){B.top=""+C+"px"}else{B.pixelTop=C}}}function Widget_focus(){safeSetFocus(this.layer)}function Widget_setBgColor(A){this.css.backgroundColor=A}function Widget_show(A){this.css.visibility=A?_show:_hide}function Widget_getWidth(){return this.layer.offsetWidth}function Widget_getHeight(){return this.layer.offsetHeight}function Widget_setHTML(A){var B=this;if(B.layer){B.layer.innerHTML=A}else{B.initialHTML=A}}function Widget_setDisplay(A){if(this.css){this.css.display=A?"":"none"}}function Widget_isDisplayed(){if(this.css.display=="none"){return false}else{return true}}function Widget_setDisabled(A){if(this.layer){this.layer.disabled=A}}function Widget_resize(A,B){if(A!=null){this.css.width=""+(Math.max(0,A))+"px"}if(B!=null){this.css.height=""+(Math.max(0,B))+"px"}}function Widget_setTooltip(A){this.layer.title=A}function Widget_initialized(){return this.layer!=null}function newGrabberWidget(A,D,G,F,H,E,C,B,I){o=newWidget(A);o.resizeCB=D;o.x=G;o.y=F;o.w=H;o.h=E;o.dx=0;o.dy=0;o.min=null;o.max=null;o.isHori=C;o.preloaded=new Image;o.preloaded.src=_skin+"../resizepattern.gif";o.buttonCB=B;o.allowGrab=true;o.collapsed=false;o.isFromButton=false;o.showGrab=GrabberWidget_showGrab;o.setCollapsed=GrabberWidget_setCollapsed;o.tooltipButton=I;o.getHTML=GrabberWidget_getHTML;o.enableGrab=GrabberWidget_enableGrab;o.setMinMax=GrabberWidget_setMinMax;if(window._allGrabbers==null){window._allGrabbers=new Array}o.index=_allGrabbers.length;_allGrabbers[o.index]=o;o.buttonLyr=null;o.setButtonImage=GrabberWidget_setButtonImage;o.getImgOffset=GrabberWidget_getImgOffset;return o}function GrabberWidget_setCollapsed(B,A){this.collapsed=B;this.setButtonImage(false,A)}function GrabberWidget_getImgOffset(A){var B=this;if(B.isHori){B.dx=(B.collapsed?12:0)+(A?6:0);B.dy=0}else{B.dy=(B.collapsed?12:0)+(A?6:0);B.dx=0}}function GrabberWidget_setButtonImage(A,B){var C=this;C.getImgOffset(A);C.tooltipButton=B;if(C.layer){if(C.buttonLyr==null){C.buttonLyr=getLayer("grabImg_"+C.id)}if(C.buttonLyr){changeSimpleOffset(C.buttonLyr,C.dx,C.dy,null,B)}}}function GrabberWidget_enableGrab(A){var B=this;B.allowGrab=A;if(B.css){B.css.cursor=B.allowGrab?(B.isHori?_resizeW:_resizeH):"default"}}function GrabberWidget_getHTML(){var B=this;var A=B.isHori?_resizeW:_resizeH;var D='onselectstart="return false" ondragstart="return false" onmousedown="'+_codeWinName+".GrabberWidget_down(event,'"+B.index+"',this);return false;\"";var C=_ie?(''):('

    ');return getBGIframe("grabIframe_"+B.id)+C+'
    '}function GrabberWidget_setMinMax(B,A){this.min=B;this.max=A}function GrabberWidget_button(e,index,lyr){var o=_allGrabbers[index];o.isFromButton=true;lyr.onmouseup=eval("_curWin."+_codeWinName+".GrabberWidget_buttonup")}function GrabberWidget_buttonover(C,B,A){var D=_allGrabbers[B];D.setButtonImage(true)}function GrabberWidget_buttonout(C,B,A){var D=_allGrabbers[B];D.setButtonImage(false)}function GrabberWidget_buttonup(A){GrabberWidget_up(A)}function GrabberWidget_showGrab(){var D=this,C=D.mod,E=D.iframe,B=D.layer.style,A=C.style;E.setDisplay(true)}function GrabberWidget_down(e,index,lyr){var o=_allGrabbers[index];window._theGrabber=o;if(o.mod==null){o.mod=getLayer("modal_"+o.id);o.iframe=newWidget("grabIframe_"+o.id);o.iframe.init()}o.mod.onmousemove=eval("_curWin."+_codeWinName+".GrabberWidget_move");o.mod.onmouseup=eval("_curWin."+_codeWinName+".GrabberWidget_up");o.grabStartPosx=parseInt(lyr.style.left);o.grabStartPosy=parseInt(lyr.style.top);o.grabStartx=eventGetX(e);o.grabStarty=eventGetY(e);var mod=o.mod,ifr=o.iframe,stl=o.layer.style,st=mod.style;stl.backgroundImage="url('"+_skin+"../resizepattern.gif')";o.prevZ=stl.zIndex;stl.zIndex=9999;ifr.css.zIndex=9998;st.width="100%";st.height="100%";mod.style.display="block";var p=getPos(o.layer);ifr.move(p.x,p.y);ifr.resize(o.getWidth(),o.getHeight());if(!o.isFromButton){o.showGrab()}return false}function GrabberWidget_move(F){var C=_theGrabber,E=C.layer,H=C.mod;if(C.isFromButton){if(C.isHori){var I=eventGetX(F),D=C.grabStartx;if((ID+3)){C.isFromButton=false}}else{var A=eventGetY(F),B=C.grabStarty;if((GB+3)){C.isFromButton=false}}if(!C.isFromButton){C.showGrab()}}if(!C.isFromButton){if(C.allowGrab){var I=C.isHori?Math.max(0,C.grabStartPosx-C.grabStartx+eventGetX(F)):null;var G=C.isHori?null:Math.max(0,C.grabStartPosy-C.grabStarty+eventGetY(F));if(C.isHori){if(C.min!=null){I=Math.max(I,C.min)}if(C.max!=null){I=Math.min(I,C.max)}}else{if(C.min!=null){G=Math.max(G,C.min)}if(C.max!=null){G=Math.min(G,C.max)}}eventCancelBubble(F);C.move(I,G);getPos(C.layer);if(C.buttonCB){var J=C.buttonLyr.style;if(J.display!="none"){J.display="none"}}C.iframe.move(I,G)}}}function GrabberWidget_up(E){var F=_theGrabber,B=F.layer,D=F.mod,C=B.style;C.backgroundImage="";C.zIndex=F.prevZ;var G=F.iframe;G.move(-100,-100);G.resize(1,1);G.setDisplay(false);eventCancelBubble(E);var A=D.style;A.display="none";A.width="0px";A.height="0px";if(F.buttonCB){F.buttonLyr.style.display=""}if(F&&(F.isFromButton)){if(F.buttonCB){F.buttonCB()}F.isFromButton=false}if(F.allowGrab&&(!F.isFromButton)){if(F.resizeCB){F.resizeCB(parseInt(B.style.left),parseInt(B.style.top))}}}function newButtonWidget(C,L,H,D,F,Q,G,I,B,M,K,P,N,J,A,O){var E=newWidget(C);E.label=L;E.cb=H;E.width=D;E.hlp=F;E.tooltip=Q;E.tabIndex=G;E.isGray=false;E.isDefault=false;E.txt=null;E.icn=null;E.margin=I?I:0;E.extraStyle="";E.isDelayCallback=true;if(B){E.url=B;E.w=M;E.h=K;E.dx=P;E.dy=N;E.disDx=(A!=null)?A:P;E.disDy=(O!=null)?O:N;E.imgRight=J?true:false}E.getHTML=ButtonWidget_getHTML;E.setDisabled=ButtonWidget_setDisabled;E.setText=ButtonWidget_setText;E.changeImg=ButtonWidget_changeImg;E.oldInit=E.init;E.init=ButtonWidget_init;E.isDisabled=ButtonWidget_isDisabled;E.setDefaultButton=ButtonWidget_setDefaultButton;E.executeCB=ButtonWidget_executeCB;E.setTooltip=ButtonWidget_setTooltip;E.setDelayCallback=ButtonWidget_setDelayCallback;E.instIndex=ButtonWidget_currInst;ButtonWidget_inst[ButtonWidget_currInst++]=E;return E}ButtonWidget_inst=new Array;ButtonWidget_currInst=0;function ButtonWidget_getHTML(){with(this){var clk=_codeWinName+".ButtonWidget_clickCB("+this.instIndex+');return false;"';var clcbs='onclick="'+clk+'" ';if(_ie){clcbs+='ondblclick="'+clk+'" '}var isDefaultSty=(this.isDefault&&!this.isGray);clcbs+='onkeydown=" return '+_codeWinName+".ButtonWidget_keydownCB(event,"+this.instIndex+');" ';var url1=_skin+"button.gif",addPar=' style="'+extraStyle+"cursor:"+_hand+";margin-left:"+margin+"px; margin-right:"+margin+'px; "'+clcbs+" ",tip=attr("title",tooltip),idText="theBttn"+id,idIcon="theBttnIcon"+id;var bg=backImgOffset(url1,0,isDefaultSty?105:42);var lnkB="
    ';var l=(label!=null);var im=(this.url?(''+(l?"":lnkB)+simpleImgOffset(url,w,h,this.isGray?disDs:dx,this.isGray?disDy:dy,idIcon,null,(l?"":tooltip),"cursor:"+_hand)+(l?"":"")+""):"");return''+(this.imgRight?"":im)+(l?(""):"")+(this.imgRight?im:"")+'
    '+lnkB+label+"
    '}}function ButtonWidget_setDelayCallback(A){this.isDelayCallback=(A==true)}function ButtonWidget_setDisabled(F){var E=this,D=F?"default":_hand;E.isGray=F;if(E.layer){var B=F?"wizbuttongray":"wizbutton";if(E.txt.className!=B){E.txt.className=B;E.txt.style.cursor=D;E.css.cursor=D;if(E.icn){changeSimpleOffset(E.icn,E.isGray?E.disDx:E.dx,E.isGray?E.disDy:E.dy);E.icn.style.cursor=D}if(E.isDefault){var A=!F,C=_skin+"button.gif";changeSimpleOffset(E.leftImg,0,A?63:0,C);changeOffset(E.centerImg,0,A?105:42,C);changeSimpleOffset(E.rightImg,0,A?84:21,C)}}}}function ButtonWidget_setDefaultButton(){var C=this;if(C.layer){var A=!C.isGray,B=_skin+"button.gif";changeSimpleOffset(C.leftImg,0,A?63:0,B);changeOffset(C.centerImg,0,A?105:42,B);changeSimpleOffset(C.rightImg,0,A?84:21,B)}C.isDefault=true}function ButtonWidget_isDisabled(){return this.isGray}function ButtonWidget_setText(A){this.txt.innerHTML=convStr(A)}function ButtonWidget_setTooltip(A){var B=this;B.tooltip=A;B.layer.title=A;if(B.txt){B.txt.title=A}if(B.icn){B.icn.title=A}}function ButtonWidget_init(){var B=this;B.oldInit();B.txt=getLayer("theBttn"+this.id);B.icn=getLayer("theBttnIcon"+this.id);B.leftImg=getLayer("theBttnLeftImg"+this.id);B.centerImg=getLayer("theBttnCenterImg"+this.id);B.rightImg=getLayer("theBttnRightImg"+this.id);var A=B.isGray?"wizbuttongray":"wizbutton";if(B.txt.className!=A){B.setDisabled(B.isGray)}}function ButtonWidget_changeImg(B,A,E,D,C,F){var G=this;if(C){G.url=C}if(B!=null){G.dx=B}if(A!=null){G.dy=A}if(E!=null){G.disDx=E}if(D!=null){G.disDy=D}if(F!=null){G.tooltip=F}if(G.icn){changeSimpleOffset(G.icn,G.isGray?G.disDx:G.dx,G.isGray?G.disDy:G.dy,G.url,G.tooltip)}}function ButtonWidget_clickCB(A){var B=ButtonWidget_inst[A];if(B&&!B.isGray){if(B.isDelayCallback){setTimeout("ButtonWidget_delayClickCB("+A+")",1)}else{ButtonWidget_delayClickCB(A)}}}function ButtonWidget_delayClickCB(A){var B=ButtonWidget_inst[A];B.executeCB()}function ButtonWidget_executeCB(){var o=this;if(o.cb){if(typeof o.cb!="string"){o.cb()}else{eval(o.cb)}}}function ButtonWidget_keydownCB(D,B){var A=eventGetKey(D);var C=ButtonWidget_inst[B];if(A==13&&C.cb){eventCancelBubble(D)}return true}function newScrolledZoneWidget(G,C,E,B,D,A){var F=newWidget(G);F.borderW=C;F.padding=E;F.w=B;F.h=D;F.oldResize=F.resize;F.beginHTML=ScrolledZoneWidget_beginHTML;F.endHTML=ScrolledZoneWidget_endHTML;F.resize=ScrolledZoneWidget_resize;F.bgClass=(A)?A:"insetBorder";return F}function ScrolledZoneWidget_beginHTML(){var A=this.w,B=this.h;var C=_moz?2*(this.borderW+this.padding):0;if(typeof (A)=="number"){if(_moz){A=Math.max(0,A-C)}A=""+A+"px"}if(typeof (B)=="number"){if(_moz){B=Math.max(0,B-C)}B=""+B+"px"}return'
    '}function ScrolledZoneWidget_endHTML(){return"
    "}function ScrolledZoneWidget_resize(A,B){if(_moz){var C=2*(this.borderW+this.padding);if(A!=null){A=Math.max(0,A-C)}if(B!=null){B=Math.max(0,B-C)}}this.oldResize(A,B)}function newComboWidget(F,E,A,B,C){var D=newWidget(F);D.tooltip=C;D.size=1;D.getHTML=ComboWidget_getHTML;D.beginHTML=ComboWidget_beginHTML;D.endHTML=ComboWidget_endHTML;D.changeCB=E;D.noMargin=A;D.width=B==null?null:""+B+"px";D.add=ComboWidget_add;D.del=ComboWidget_del;D.getSelection=ComboWidget_getSelection;D.select=ComboWidget_select;D.valueSelect=ComboWidget_valueSelect;D.getCount=ComboWidget_getCount;D.oldSetDisabled=D.setDisabled;D.setDisabled=ComboWidget_setDisabled;D.setUndefined=ComboWidget_setUndefined;D.delByID=ComboWidget_delByID;D.findByValue=ComboWidget_findByValue;D.findByText=ComboWidget_findByText;D.getValue=ComboWidget_getValue;D.isGrayed=ComboWidget_isGrayed;D.clearSelection=ComboWidget_clearSelection;D.isDisabled=false;D.multi=false;D.undef=false;D.isCombo=true;D.undefId=D.id+"__undef";D.disabledId=D.id+"__disabled";return D}_extrCmbS=(_moz?"font-size:12px;":"");function ComboWidget_beginHTML(){var B=this,A=((_moz&&!B.isCombo)?"font-size:12px;":"");return""}function ComboWidget_getHTML(A){return this.beginHTML()+(A?A:"")+this.endHTML()}function ComboWidget_add(B,F,C,G,E){var D=this.layer,A=_curDoc.createElement("option");if(_ie){D.options.add(A)}else{D.appendChild(A)}if(A.innerText!=null){A.innerText=B}else{A.innerHTML=convStr(B)}A.value=F;if(G!=null){A.id=G}if(C){A.selected=true}if(E){A.style.color="gray"}return A}function ComboWidget_getSelection(){var C=this.layer,B=C.selectedIndex;if(B<0){return null}var A=new Object;A.index=B;A.value=C.options[B].value;A.text=C.options[B].text;return A}function ComboWidget_select(B){var D=this,C=D.layer,A=C.options.length;if(B==null){C.selectedIndex=-1}if((B<0)||(B>=A)){B=A-1}if(B>=0){C.selectedIndex=B}D.setUndefined(false)}function ComboWidget_valueSelect(B){var F=this,E=F.layer,D=E.options,A=D.length;for(var C=0;CA){return null}var B=new Object;B.index=C;B.value=E.options[C].value;return B}function ComboWidget_isGrayed(B){var E=this,D=E.layer,C=D.options,A=C.length;if(B==null||B<0||B>A){return false}return(D.options[B].style.color=="gray")}function newListWidget(A,F,E,B,J,I,G,D,H){var C=newComboWidget(A,F,true,B,I);C.clickCB=H;C.dblClickCB=G;C.keyUpCB=D;C.size=J;C.multi=E;C.getMultiSelection=ListWidget_getMultiSelection;C.setUndefined=ListWidget_setUndefined;C.isUndefined=ListWidget_isUndefined;C.change=ListWidget_change;C.isCombo=false;return C}function ListWidget_setUndefined(A){var B=this;B.undef=A;if(A==true){B.layer.selectedIndex=-1}}function ListWidget_isUndefined(){return(this.layer.selectedIndex==-1)}function ListWidget_getMultiSelection(){var F=this.layer,E=new Array,A=F.options.length;for(var D=0;D'+img(_skin+"../help.gif",16,16,"top",null,_helpLab)+''+convStr(A.title)+''+convStr(A.boldTitle)+"
    "+getSpace(1,2)+'
    '+convStr(A.text,false,true)+"
    "}function InfoWidget_resize(B,C){var D=this;if(B!=null){D.w=B}if(C!=null){D.h=C}D.oldResize(B,C);if(D.layer){var A=D.textLayer;if(A==null){A=D.textLayer=getLayer("infozone_"+D.id)}if(A){if(D.h!=null){A.style.height=""+Math.max(0,D.h-(_ie?18:28))+"px"}}}}function newCheckWidget(A,H,F,E,I,G,D,C){var B=newWidget(A);B.text=H;B.convText=C;B.changeCB=F;B.idCheckbox="check_"+A;B.checkbox=null;B.kind="checkbox";B.name=B.idCheckbox;B.bold=E;B.imgUrl=I;B.imgW=G;B.imgH=D;B.getHTML=CheckWidget_getHTML;B.setText=CheckWidget_setText;B.parentInit=Widget_init;B.init=CheckWidget_init;B.check=CheckWidget_check;B.isChecked=CheckWidget_isChecked;B.setDisabled=CheckWidget_setDisabled;B.isDisabled=CheckWidget_isDisabled;B.uncheckOthers=CheckWidget_uncheckOthers;B.isIndeterminate=CheckWidget_isIndeterminate;B.setIndeterminate=CheckWidget_setIndeterminate;B.layerClass=("dialogzone"+(B.bold?"bold":""));B.nobr=true;return B}function CheckWidget_getHTML(){var B=this,A=B.layerClass;return'"+(B.imgUrl?'":"")+"
    "+(B.nobr?"":"")+'"+(B.nobr?"":"")+"
    "}function CheckWidget_setText(A){var B=this;B.text=A;if(B.layer){if(B.labelLyr==null){B.labelLyr=getLayer("label_"+B.id)}B.labelLyr.innerHTML=B.convText?convStr(A):A}}function CheckWidget_init(){this.parentInit();this.checkbox=getLayer(this.idCheckbox)}function CheckWidget_check(A){this.checkbox.checked=A;if(A){this.uncheckOthers()}}function CheckWidget_isChecked(){return this.checkbox.checked}function CheckWidget_changeCB(B,A){var C=getWidget(A);C.uncheckOthers();if(C.changeCB){C.changeCB(B)}}function CheckWidget_setDisabled(A){this.checkbox.disabled=A;if(_moz){this.checkbox.className=(A?"dialogzone":"")}}function CheckWidget_isDisabled(){return this.checkbox.disabled}function CheckWidget_uncheckOthers(){}function CheckWidget_isIndeterminate(){return this.checkbox.indeterminate}function CheckWidget_setIndeterminate(A){this.checkbox.indeterminate=A}function newRadioWidget(A,I,J,G,F,K,H,D,C){var B=newCheckWidget(A,J,G,F,K,H,D,C);B.kind="radio";B.name=I;if(_RadioWidget_groups[I]==null){_RadioWidget_groups[I]=new Array}B.groupInstance=_RadioWidget_groups[I];var E=B.groupInstance;B.groupIdx=E.length;E[E.length]=B;B.uncheckOthers=RadioWidget_uncheckOthers;return B}var _RadioWidget_groups=new Array;function RadioWidget_uncheckOthers(){var D=this.groupInstance,B=this.groupIdx,A=D.length;for(var C=0;C'}function TextFieldWidget_getValue(){var A=this;if(A.isHelpTxt){return""}else{return A.layer?A.layer.value:A.oldValue}}function TextFieldWidget_setValue(A){var B=this;if(B.layer){B.eraseHelpTxt();B.layer.value=""+A}else{B.oldValue=A}}function TextFieldWidget_changeCB(B,A){var C=getWidget(A);C.eraseHelpTxt();if(C.beforeChange){C.beforeChange()}if(C.changeCB){C.changeCB(B)}}function TextFieldWidget_keyPressCB(B,A){var C=getWidget(A);if(eventGetKey(B)==13){C.enterKeyPressed=true;return false}else{C.enterKeyPressed=false}return true}function TextFieldWidget_keyUpCB(B,A){var C=getWidget(A);C.eraseHelpTxt();if(eventGetKey(B)==13&&C.enterKeyPressed){if(C.beforeChange){C.beforeChange()}if(C.enterCB){if(C.enterCancelBubble){eventCancelBubble(B)}C.enterCB(B)}return false}else{if(C.keyUpCB){C.keyUpCB(B)}}C.enterKeyPressed=false;return true}function TextFieldWidget_keyDownCB(B,A){var C=getWidget(A);C.eraseHelpTxt();C.enterKeyPressed=false;if(eventGetKey(B)==13){return true}else{if(eventGetKey(B)==8){eventCancelBubble(B)}}return true}function TextFieldWidget_eraseHelpTxt(){var A=this;if(A.isHelpTxt){A.layer.value=""}A.isHelpTxt=false;A.layer.style.color="black"}function TextFieldWidget_focus(A){var B=getWidget(A);B.eraseHelpTxt();if(B.focusCB){B.focusCB()}}function TextFieldWidget_blur(A){var B=getWidget(A);if(B.beforeChange){B.beforeChange()}if(B.blurCB){B.blurCB()}}function TextFieldWidget_intValue(A){var B=parseInt(this.getValue());return isNaN(B)?A:B}function TextFieldWidget_intPosValue(A){var B=this.intValue(A);return(B<0)?A:B}function TextFieldWidget_select(){this.layer.select()}function TextFieldWidget_setHelpTxt(A){var B=this;B.helpTxt=A;if(B.layer&&(B.layer.value=="")){B.isHelpTxt=true;B.layer.value=A;B.layer.style.color="#808080"}}function newIntFieldWidget(C,G,I,F,H,B,J,D,A){var E=newTextFieldWidget(C,G,I,F,H,B,J,D);E.min=-Number.MAX_VALUE;E.max=Number.MAX_VALUE;E.customCheckCB=A;E.setMin=IntFieldWidget_setMin;E.setMax=IntFieldWidget_setMax;E.setValue=IntFieldWidget_setValue;E.beforeChange=IntFieldWidget_checkChangeCB;E.value="";return E}function IntFieldWidget_setMin(A){if(!isNaN(A)){this.min=A}}function IntFieldWidget_setMax(A){if(!isNaN(A)){this.max=A}}function IntFieldWidget_setValue(B){var C=this,A=C.layer;B=""+B;if(B==""){if(A){A.value=""}C.oldValue="";return }var D=parseInt(B);value="";if(!isNaN(D)&&(D>=C.min)&&(D<=C.max)&&((C.customCheckCB==null)||C.customCheckCB(D))){value=D;C.oldValue=value}else{if(C.oldValue){value=C.oldValue}}if(A){A.value=""+value}}function IntFieldWidget_checkChangeCB(){var A=this;A.setValue(A.layer.value)}function newFrameZoneWidget(E,A,C,B){var D=newWidget(E);D.w=(A!=null)?""+Math.max(0,A-10)+"px":null;D.h=(C!=null)?""+Math.max(0,C-10)+"px":null;D.reverse=(B!=null)?B:false;D.cont=null;D.beginHTML=FrameZoneWidget_beginHTML;D.endHTML=FrameZoneWidget_endHTML;D.oldResize=D.resize;D.resize=FrameZoneWidget_resize;return D}function FrameZoneWidget_resize(A,B){var D=this;var C=D.layer.display!="none";if(C&_moz&&!_saf){D.setDisplay(false)}D.oldResize(A,B);if(C&_moz&&!_saf){D.setDisplay(true)}}function FrameZoneWidget_beginHTML(){var A=this;return'
    '}function FrameZoneWidget_endHTML(){var A=this;return"
    "}function arrayAdd(E,G,D,B){var F=E[G],A=F.length;if((B==null)||(typeof B!="number")){B=-1}if((B<0)||(B>A)){B=A}if(B!=A){var C=F.slice(B);F.length=B+1;F[B]=D;F=F.concat(C)}else{F[B]=D}E[G]=F;return B}function arrayRemove(D,F,A){var E=D[F],C=E.length-1;if(A==null){E.length=0;D[F]=E;return -1}if((A<0)||(A>C)){return -1}if(A==C){E.length=C}else{var B=E.slice(A+1);E.length=A;E=E.concat(B)}D[F]=E;return A}function getFrame(name,par){if(par==null){par=self}var frames=par.frames,w=eval("frames."+name);if(w==null){return w}var l=frames.length;for(var i=0;i/g,">").replace(/"/g,""");if(A){B=B.replace(/ /g," ")}if(C){B=B.replace(/\n/g,"
    ")}return B}function escapeCR(B){B=""+B;var A=B.replace(/\r/g,"").replace(/\n/g,"\\n");return A}function addDblClickCB(B,A){if(B.addEventListener&&!_saf){B.addEventListener("dblclick",A,false)}else{B.ondblclick=A}}function img(E,A,C,F,B,D){B=(B?B:"");if(D==null){D=""}return""}function imgOffset(A,G,D,J,I,B,F,C,H,E){return img(_skin+"../transp.gif",G,D,E,(F?F:"")+" "+attr("id",B)+' style="float:left;'+backImgOffset(A,J,I)+(H?H:"")+'"',C)}function simpleImgOffset(A,G,D,J,I,B,F,C,H,E){if(_ie){if(J==null){J=0}if(I==null){I=0}return"
    '+img(A,null,null,(E?E:"top"),'style="margin:0px;position:relative;top:'+(-I)+"px;left:"+(-J)+'px" tabIndex="-1"',C)+"
    "}else{return imgOffset(A,G,D,J,I,B,F,C,H,E)}}function changeSimpleOffset(E,B,A,D,F){if(_ie){E=E.childNodes[0];var C=E.style;if((D!=null)&&(D!=E.src)){E.src=D}if(B!=null){C.left=""+(-B)+"px"}if(A!=null){C.top=""+(-A)+"px"}if(F!=null){E.title=F;E.alt=F}}else{changeOffset(E,B,A,D,F)}}function backImgOffset(C,B,A){return"background-image:url('"+C+"');background-position:"+(-B)+"px "+(-A)+"px;"}function changeOffset(E,B,A,D,F){var C=E.style;if(C){if((B!=null)&&(A!=null)){C.backgroundPosition=""+(-B)+"px "+(-A)+"px"}if(D){C.backgroundImage="url('"+D+"')"}}if(F){E.title=F}}function includeCSS(B,C){if(typeof (_skin)=="string"&&_skin!=""){var A="";if(C){A=_skin+"../"+B}else{A=_skin+B}A+=".css";_curDoc.write('')}}function getLayer(A){return _curDoc.getElementById(A)}function setLayerTransp(A,B){if(_ie){A.style.filter=(B==null)?"":"progid:DXImageTransform.Microsoft.Alpha( style=0,opacity="+B+")"}else{A.style.MozOpacity=(B==null)?1:B/100}}function getPos(B,A){A=A?A:null;for(var D=0,C=0;(B!=null)&&(B!=A);D+=B.offsetLeft,C+=B.offsetTop,B=B.offsetParent){}return{x:D,y:C}}function getPos2(B,A){var A=A?A:null;var D=0;var C=0;while(B.parentNode||B.offsetParent){if(B.offsetParent){D+=B.offsetLeft;C+=B.offsetTop;B=B.offsetParent}else{if(B.parentNode){if(B.style){if(B.style.left){D+=B.style.left}if(B.style.top){C+=B.style.top}}B=B.parentNode}else{break}}}if(A){relToCord=getPos2(A);D-=relToCord.x;C-=relToCord.y}return{x:D,y:C}}function getPosScrolled(C,B){B=B?B:null;if(_ie){for(var E=0,D=0;(C!=null)&&(C!=B);E+=C.offsetLeft-C.scrollLeft,D+=C.offsetTop-C.scrollTop,C=C.offsetParent){}}else{var A=C;for(var E=0,D=0;(C!=null)&&(C!=B);E+=C.offsetLeft,D+=C.offsetTop,C=C.offsetParent){}for(C=A;(C!=null)&&(C!=B);C=C.parentNode){if(C.scrollLeft!=null){E-=C.scrollLeft;D-=C.scrollTop}}}E+=getScrollX();D+=getScrollY();return{x:E,y:D}}function getWidget(B){if(B==null){return null}var A=B._widget;if(A!=null){return _widgets[A]}else{return getWidget(B.parentNode)}}function getWidgetFromID(B){if(B==null){return null}var A=getLayer(B);return getWidget(A)}function attr(A,B){return(B!=null?" "+A+'="'+B+'" ':"")}function sty(A,B){return(B!=null?A+":"+B+";":"")}function getSep(B,A){if(B==null){B=0}var C=B>0?''+getSpace(B,1)+"":"";return''+C+''+C+"
    "}function writeSep(B,A){_curDoc.write(getSep(B,A))}function getSpace(A,B){return'
    '+img(_skin+"../transp.gif",A,B)+"
    "}function writeSpace(A,B){_curDoc.write(getSpace(A,B))}function documentWidth(B){var B=B?B:_curWin;var A=Math.max(document.body.clientWidth,document.documentElement.clientWidth);A=Math.max(A,document.body.scrollWidth);return A}function documentHeight(B){var B=B?B:_curWin;var A=Math.max(document.body.clientHeight,document.documentElement.clientHeight);A=Math.max(A,document.body.scrollHeight);return A}function winWidth(B){var A;var B=B?B:_curWin;if(_ie){if(_isQuirksMode){A=B.document.body.clientWidth}else{A=B.document.documentElement.clientWidth}}else{A=B.innerWidth}return A}function winHeight(B){var B=B?B:_curWin;var A;if(_ie){if(_isQuirksMode){A=document.body.clientHeight}else{A=document.documentElement.clientHeight}}else{A=B.innerHeight}return A}function getScrollX(A){var B=0;var A=A?A:_curWin;if(typeof (A.scrollX)=="number"){B=A.scrollX}else{B=Math.max(A.document.body.scrollLeft,A.document.documentElement.scrollLeft)}return B}function getScrollY(B){var A=0;var B=B?B:_curWin;if(typeof (B.scrollY)=="number"){A=window.scrollY}else{A=Math.max(B.document.body.scrollTop,B.document.documentElement.scrollTop)}return A}function winScrollTo(A,C,B){B=B?B:_curWin;B.scrollTo(A,C)}function eventGetKey(B,A){A=A?A:_curWin;return _ie?A.event.keyCode:B.keyCode}function eventGetX(A){return _ie?_curWin.event.clientX:A.clientX?A.clientX:A.pageX}function eventGetY(A){return _ie?_curWin.event.clientY:A.clientY?A.clientY:A.pageY}function xpos(D,C,B,A){if((A==null)||(!_ie)){A=1}return((C.clientX/A)-getPos(D).x)+getScrollX()}function ypos(D,C,B,A){if((A==null)||(!_ie)){A=1}return((C.clientY/A)-getPos(D).y)+(_ie?B.body.scrollTop:0)}function absxpos(B,A){if((A==null)||(!_ie)){return B.clientX}else{return B.clientX/A}}function absypos(B,A){if((A==null)||(!_ie)){return B.clientY}else{return B.clientY/A}}function eventCancelBubble(C,B){B=B?B:_curWin;var A=_ie?B.event:C;if(A){A.cancelBubble=true;if(A.stopPropagation){A.stopPropagation()}}}function isHidden(B){if((B==null)||(B.tagName=="BODY")){return false}var A=B.style;if((A==null)||(A.visibility==_hide)||(A.display=="none")){return true}return isHidden(B.parentNode)}function opt(C,A,B){return'"}function lnk(C,D,A,F,B,E){if(D==null){D="return false"}B=B?B:"";return""+C+""}_oldErrHandler=null;function localErrHandler(){return true}function canScanFrames(A){var B=true,D=null;if(_moz){_oldErrHandler=window.onerror;window.onerror=localErrHandler}try{D=A.document;B=false}catch(C){}if(_moz){window.onerror=_oldErrHandler}return(!B&&(D!=null))}function getBGIframe(A){return''}function getDynamicBGIFrameLayer(){var A=false;if(_curWin.BGIFramePool){BGIFrames=_curWin.BGIFramePool.split(",");BGIFCount=BGIFrames.length;for(var B=0;B'}function BlockWhileWaitWidget_show(A){var B=this;if(B.layer==null){B.layer=getLayer(B.id);if(B.layer==null){targetApp(B.getPrivateHTML());B.layer=getLayer(B.id);B.css=B.layer.style}else{B.css=B.layer.style}}B.setDisplay(A)}function isTextInput(A){var B=_ie?A.srcElement:A.target;var C=false;if(B.tagName=="TEXTAREA"){C=true}if((B.tagName=="INPUT")&&((B.type.toLowerCase()=="text")||(B.type.toLowerCase()=="password"))){C=true}return C}function isTextArea(A){var B=_ie?A.srcElement:A.target;if(B.tagName=="TEXTAREA"){return true}else{return false}}function LZ(A){return(A<0||A>9?"":"0")+A}if(bobj.crv.config.isDebug){localErrHandler=null}initDom(bobj.crvUri("../dhtmllib/images/")+bobj.crv.config.skin+"/","",bobj.crv.config.lang);styleSheet();_allBOIcons=new Array;_allBOIconsMenus=new Array;_menuType_simple=0;_menuType_color=1;_menuType_border=2;function NewLabelWidget(D,C,A){var B=newWidget(D);B.text=C;B.convBlanks=A;B.getHTML=LabelWidget_getHTML;B.setDisabled=LabelWidget_setDisabled;B.dis=false;return B}function LabelWidget_setDisabled(A){var B=this;if(B.dis!=A){B.dis=A;if(B.layer){B.layer.className="iconText"+(A?"Dis":"")}}}function LabelWidget_getHTML(){var A=this;return'
    '+convStr(A.text,A.convBlanks)+"
    "}function newIconWidget(C,B,M,I,F,H,G,N,K,A,L,J,E){var D=newWidget(C);D.src=B;D.clickCB=M;D.text=I;D.alt=F;D.isTabEnabled=J;D.ariaHasPopUp=E;D.width=null;D.txtAlign="left";D.border=4;D.txtNoPadding=false;D.allowDblClick=false;if(B){D.w=(H!=null)?H:16;D.h=(G!=null)?G:16;D.dx=(N!=null)?N:0;D.dy=(K!=null)?K:0;D.disDx=(A!=null)?A:0;D.disDy=(L!=null)?L:0}else{D.w=1;D.h=16}D.dis=false;D.disp=true;D.margin=1;D.extraHTML="";D.imgLayer=null;D.txtLayer=null;D.overCB="IconWidget_overCB";D.outCB="IconWidget_outCB";D.isDisplayed=IconWidget_isDisplayed;D.setDisplay=IconWidget_setDisplay;D.getHTML=IconWidget_getHTML;D.getTxtWidth=IconWidget_getTxtWidth;D.index=_allBOIcons.length++;D.nocheckClass="iconnocheck";D.hoverClass="iconhover";D.checkClass="iconcheck";D.checkhoverClass="iconcheckhover";D.currentClass=D.nocheckClass;D.currentHoverClass=D.hoverClass;D.setClasses=IconWidget_setClasses;D.internalUpCB=null;D.internalDownCB=IconWidget_internalDownCB;D.internalUpCB=IconWidget_internalUpCB;D.isHover=false;D.changeTooltip=IconWidget_changeTooltip;D.changeText=IconWidget_changeText;D.changeImg=IconWidget_changeImg;D.setDisabled=IconWidget_setDisabled;D.isDisabled=IconWidget_isDisabled;D.acceptClick=IconWidget_acceptClick;_allBOIcons[D.index]=D;D.outEnable=true;D.setCrs=IconWidget_setCrs;D.oldRes=D.resize;D.resize=IconWidget_resize;D.iconOldInit=D.init;D.init=IconWidget_init;return D}function newIconMenuWidget(C,B,O,K,F,J,G,P,L,A,N,E,I,H){var D=newWidget(C);if(typeof (H)=="undefined"){H=E?_menuType_color:_menuType_simple}D.menuItemType=E?_isColor:_isNotColor;var M=_openMenu.replace("{0}",(K?K:(F?F:"")));D.icon=newIconWidget("iconMenu_icon_"+C,B,IconMenuWidget_iconClickCB,K,F,J,G,P,L,A,N,false);D.arrow=newIconWidget("iconMenu_arrow_"+C,_skin+"menus.gif",IconMenuWidget_arrowClickCB,null,M,7,16,0,81,0,97,true);switch(H){case _menuType_color:D.menu=newMenuColorWidget("iconMenu_menu_"+C,IconMenuWidget_hideCB);break;case _menuType_border:D.menu=newMenuBordersWidget("iconMenu_menu_"+C,IconMenuWidget_hideCB,I,IconBordersMenuWidget_internalClickCB);break;default:case _menuType_simple:D.menu=newMenuWidget("iconMenu_menu_"+C,IconMenuWidget_hideCB,I);break}D.icon.par=D;D.arrow.par=D;D.menu.parIcon=D;D.icon.margin=0;D.arrow.margin=0;D.icon.overCB="IconWidget_none";D.icon.outCB="IconWidget_none";D.arrow.overCB="IconWidget_none";D.arrow.outCB="IconWidget_none";D.margin=1;D.spc=0;D.getHTML=IconMenuWidget_getHTML;D.clickCB=O;D.getMenu=IconMenuWidget_getMenu;D.menIcnOldInit=D.init;D.init=IconMenuWidget_init;D.removeAllMenuItems=IconMenuWidget_removeAllMenuItems;D.index=_allBOIconsMenus.length++;_allBOIconsMenus[D.index]=D;D.setDisabled=IconMenuWidget_setDisabled;D.isDisabled=IconMenuWidget_isDisabled;D.disableMenu=IconMenuWidget_disableMenu;D.changeText=IconMenuWidget_changeText;D.imwpResize=D.resize;D.resize=IconMenuWidget_resize;D.focus=IconMenuWidget_focus;D.changeArrowTooltip=IconMenuWidget_changeArrowTooltip;D.disp=true;D.isDisplayed=IconWidget_isDisplayed;D.setDisplay=IconWidget_setDisplay;return D}function IconMenuWidget_removeAllMenuItems(){this.menu.removeAll();this.menu.resetItemCount()}function IconMenuWidget_changeText(A){this.icon.changeText(A)}function IconMenuWidget_changeArrowTooltip(A){this.arrow.changeTooltip(A,false)}function IconMenuWidget_resize(A,B){var D=this;if(A!=null){A=Math.max(0,A-2*D.margin)}var C=D.layer.display!="none";if(C&_moz&&!_saf){D.setDisplay(false)}D.imwpResize(A,B);if(A!=null){D.icon.resize(Math.max(0,A-13-D.spc))}if(C&_moz&&!_saf){D.setDisplay(true)}}function IconMenuWidget_setDisabled(A){var B=this;if(A){if(B.menu.isShown()){B.menu.show(false)}IconMenuWidgetOutCB(B.index)}B.icon.setDisabled(A);B.arrow.setDisabled(A)}function IconMenuWidget_isDisabled(){return(this.icon.dis==true)}function IconMenuWidget_internalCB(){var C=this,A=null;if(C.id!=null){A=(C.menuItemType!=_isLastUsedColor)?C.id.slice(6):C.color}var B=C.par.parIcon;B.oldColor=B.curColor;B.curColor=A;if(B.curColor!=null){B.showSample()}if(B.clickColor){B.clickColor()}}function IconMenuWidget_focus(){var A=this;A.arrow.focus()}function IconMenuWidget_disableMenu(A){var B=this;B.arrow.setDisabled(A);B.menu.setDisabled(A)}function IconMenuWidget_getMenu(){return this.menu}function IconWidget_none(){}function IconMenuWidget_init(){var B=this;B.menIcnOldInit();B.icon.init();B.arrow.init();B.menu.init();var A=B.layer;A.onmouseover=IconMenuWidget_OverCB;A.onmouseout=IconMenuWidget_OutCB}function IconMenuWidget_getHTML(){var B=this,A=B.disp?"":"display:none;";return'
    '+B.icon.getHTML()+''+B.arrow.getHTML()+"
    "}function IconMenuWidget_OverCB(){IconMenuWidgetOverCB(getWidget(this).index);return true}function IconMenuWidget_OutCB(){IconMenuWidgetOutCB(getWidget(this).index)}function IconMenuWidgetOverCB(A){o=_allBOIconsMenus[A];IconWidget_overCB(o.icon.index);IconWidget_overCB(o.arrow.index)}function IconMenuWidgetOutCB(A){o=_allBOIconsMenus[A];if(!o.menu.isShown()){IconWidget_outCB(o.icon.index);IconWidget_outCB(o.arrow.index)}else{IconWidget_overCB(o.icon.index);IconWidget_overCB(o.arrow.index)}}function IconMenuWidget_iconClickCB(){var C=this.par;if(C.clickCB==null){var B=C.layer;var A=getPos2(B);C.menu.show(!C.menu.isShown(),A.x,A.y+C.getHeight()+1,null,null,C);IconMenuWidgetOverCB(C.index)}else{C.clickCB()}}function IconMenuWidget_arrowClickCB(){var C=this.par,B=C.layer;var A=getPos2(B);C.menu.show(!C.menu.isShown(),A.x,A.y+C.getHeight()+1,null,null,C);IconMenuWidgetOverCB(C.index)}function IconMenuWidget_hideCB(){var A=this.parIcon;if(A.arrow){A.arrow.focus()}IconMenuWidgetOutCB(A.index)}function newSingleIconMenuWidget(C,B,N,J,F,I,G,O,K,A,M,E,H){var L=_openMenu.replace("{0}",(J?J:(F?F:"")));var D=newIconWidget(C,B,SingleIconMenuWidget_clickCB,null,L,I,G,O,K,A,M,true);D.icon=newIconWidget("singleIconMenu_icon_"+C,B,null,J,null,I,G,O,K,A,M,false);D.arrow=newIconWidget("singleIcon_arrow_"+C,_skin+"menus.gif",SingleIconMenuWidget_iconClickCB,null,L,7,16,0,81,0,97,false);D.menu=newMenuWidget("singleIconMenu_menu_"+C,SingleIconMenuWidget_hideCB,H);D.icon.par=D;D.arrow.par=D;D.menu.parIcon=D;D.icon.margin=0;D.arrow.margin=0;D.icon.overCB="IconWidget_none";D.icon.outCB="IconWidget_none";D.arrow.overCB="IconWidget_none";D.arrow.outCB="IconWidget_none";D.margin=1;D.spc=0;D.getHTML=SingleIconMenuWidget_getHTML;D.getMenu=IconMenuWidget_getMenu;D.menIcnOldInit=D.init;D.init=SingleIconMenuWidget_init;D.removeAllMenuItems=IconMenuWidget_removeAllMenuItems;D.index=_allBOIconsMenus.length++;_allBOIconsMenus[D.index]=D;D.setDisabled=IconMenuWidget_setDisabled;D.isDisabled=IconMenuWidget_isDisabled;D.disableMenu=IconMenuWidget_disableMenu;D.changeText=IconMenuWidget_changeText;D.imwpResize=D.resize;D.resize=IconMenuWidget_resize;D.changeArrowTooltip=IconMenuWidget_changeArrowTooltip;D.disp=true;D.isDisplayed=IconWidget_isDisplayed;D.setDisplay=IconWidget_setDisplay;return D}function SingleIconMenuWidget_init(){var B=this;B.menIcnOldInit();B.menu.init();var A=B.layer;A.onmouseover=SingleIconMenuWidget_OverCB;A.onmouseout=SingleIconMenuWidget_OutCB}function SingleIconMenuWidget_getHTML(){var B=this,A=B.disp?"":"display:none;";return'
    '+B.icon.getHTML()+''+B.arrow.getHTML()+'
    '}function SingleIconMenuWidget_OverCB(){SingleIconMenuWidgetOverCB(getWidget(this).index);return true}function SingleIconMenuWidget_OutCB(){SingleIconMenuWidgetOutCB(getWidget(this).index)}function SingleIconMenuWidgetOverCB(A){o=_allBOIconsMenus[A];IconWidget_overCB(o.index)}function SingleIconMenuWidgetOutCB(A){o=_allBOIconsMenus[A];if(!o.menu.isShown()){IconWidget_outCB(o.index)}else{IconWidget_overCB(o.index)}}function SingleIconMenuWidget_clickCB(){var C=this,B=C.layer;var A=getPos2(B);C.menu.show(!C.menu.isShown(),A.x,A.y+C.getHeight()+1,null,null,C);SingleIconMenuWidgetOverCB(C.index)}function SingleIconMenuWidget_iconClickCB(){}function SingleIconMenuWidget_hideCB(){var A=this.parIcon;A.focus();SingleIconMenuWidgetOutCB(A.index)}function newIconCheckWidget(C,B,K,H,E,G,F,L,I,A,J){var D=newIconWidget(C,B,K,H,E,G,F,L,I,A,J);D.checked=false;D.internalUpCB=IconCheckWidget_internalUpCB;D.internalDownCB=IconCheckWidget_internalDownCB;D.check=IconCheckWidget_check;D.isChecked=IconCheckWidget_isChecked;D.oldInit=D.init;D.init=IconCheckWidget_init;D.isRadio=false;return D}function newPaletteContainerWidget(D,A,B){var C=newWidget(D);C.beginHTML=PaletteContainerWidget_beginHTML;C.endHTML=PaletteContainerWidget_endHTML;C.add=PaletteContainerWidget_add;C.palettes=new Array;C.contextMenu=A;C.margin=(B!=null)?B:4;return C}function newPaletteWidget(C,A){var B=newWidget(C);B.getHTML=PaletteWidget_getHTML;B.add=PaletteWidget_add;B.disableChildren=PaletteWidget_disableChildren;B.items=new Array;B.oldInit=B.init;B.init=PaletteWidget_init;B.beginRightZone=PaletteWidget_beginRightZone;B.height=A;B.rightZoneIndex=-1;B.sepCount=0;B.vertPadding=4;B.isLeftTableFixed=false;return B}function newPaletteVerticalSepWidget(B){var A=newWidget(B);A.getHTML=PaletteVerticalSepWidget_getHTML;A.isSeparator=true;return A}function PaletteVerticalSepWidget_getHTML(){return img(_skin+"iconsep.gif",6,22,null,' id="'+this.id+'" ')}function getPaletteSep(){return img(_skin+"iconsep.gif",6,22)}function IconRadioWidget_uncheckOthers(){var D=this.groupInstance,B=this.groupIdx,A=D.length;for(var C=0;C'+getSpace(1,2)+""}function PaletteContainerWidget_beginHTML(){var B=this;var A=B.contextMenu?('oncontextmenu="'+_codeWinName+'.PaletteContainerWidget_contextMenu(this,event);return false"'):"";return"
    '}_delayedMenu=null;function PaletteContainerWidget_contextMenu(B,A){if(_ie){A=_curWin.event}_delayedMenu=getWidget(B).contextMenu;setTimeout("_delayedMenu.par=null;_delayedMenu.show(true,"+absxpos(A)+","+absypos(A)+")",1)}function PaletteContainerWidget_endHTML(){return"
    "}function PaletteContainerWidget_add(A){this.palettes[this.palettes.length]=A;return A}function PaletteWidget_getHTML(){var G=this,C=G.items,B=C.length,A=new Array;j=0;A[j++]='';A[j++]='
    ';var F=false;for(var D=0;D
    ';F=true}var E=C[D];A[j++]=""}if(!F){A[j++]='
    "+E.getHTML()+"
    '}A[j++]="
    ";return A.join("")}function PaletteWidget_add(A){if(A==null){A=newPaletteVerticalSepWidget(this.id+"_palettesep_"+(this.sepCount++))}this.items[this.items.length]=A;return A}function PaletteWidget_disableChildren(B){var A=this.items;for(var C in A){var D=A[C];if(D&&(D.isSep!=true)){D.setDisabled(B)}}}function PaletteWidget_init(){this.oldInit();var A=this.items;for(var B in A){var C=A[B];if(C){C.init()}}}function IconWidget_isDisplayed(){return this.disp}function IconWidget_setDisplay(C){var B=this;if(B.css){var A=C?"block":"none";if(B.css.display!=A){B.css.display=A}}B.disp=C}function IconWidget_getTxtWidth(){var B=this,A=B.width;if(A!=null){A=A-(B.margin*2);A=A-(B.src?B.w+B.border:1);A=A-(B.txtNoPadding?0:((B.src?4:2)+2));if(_ie){A-=2}else{A-=2}return Math.max(0,A)}else{return -1}}function IconWidget_init(){var D=this,B=false;D.iconOldInit();var A=D.layer;A.tabIndex=D.dis?-1:0;A.title=(D.alt?D.alt:(D.text?D.text:""));if(D.clickCB){A.onclick=IconWidget_upCB;A.onmousedown=IconWidget_downCB;if(D.allowDblClick&&(_ie||_saf)){B=true;addDblClickCB(A,IconWidget_upCB)}A.onkeydown=IconWidget_keydownCB;A.onmouseover=IconWidget_realOverCB;A.onmouseout=IconWidget_realOutCB}if(!B){addDblClickCB(A,IconWidget_retFalse)}A.onselectstart=IconWidget_retFalse;var C=D.disp?"block":"none";if(D.css.display!=C){D.css.display=C}}function IconWidget_getHTML(){var E=this,B=E.src?'
    '+simpleImgOffset(E.src,E.w,E.h,E.dis?E.disDx:E.dx,E.dis?E.disDy:E.dy,"IconImg_"+E.id,null,E.alt,"margin:2px;")+E.extraHTML+"
    ":'
    ';var A='style="white-space:nowrap;',D=E.getTxtWidth();if(D>=0){A+="text-overflow:ellipsis;overflow:hidden;width:"+D+"px"}A+='"';var C=E.disp?"":"display:none;";return'"+(E.text?'":"")+"
    '+((E.clickCB&&_ie)?lnk(B,null,null,null,' tabIndex="-1"'):B)+"
    "+convStr(E.text)+"
    "}function IconWidget_realOutCB(){var o=getWidget(this);eval(o.outCB+"("+o.index+")")}function IconWidget_realOverCB(){var o=getWidget(this);eval(o.overCB+"("+o.index+")");return true}function IconWidget_retFalse(){return false}function IconWidget_resize(A,B){var D=this;if(D.layer){D.oldRes(A,B)}if(D.txtLayer==null){D.txtLayer=getLayer("IconImg_Txt_"+D.id)}if(A!=null){D.width=A;var C=D.getTxtWidth();if(D.txtLayer&&(C>=0)){D.txtLayer.style.width=""+C+"px"}}if(B!=null){D.h=B?(B-D.border):D.h;if(D.txtLayer&&(D.h>=0)){D.txtLayer.style.height=""+D.h+"px"}}}function IconWidget_changeTooltip(B,A){var C=this;if(B==null){return }if(!A){C.alt=B}if(C.layer){C.layer.title=B}if(C.imgLayer==null){C.imgLayer=getLayer("IconImg_"+this.id)}if(C.imgLayer){changeSimpleOffset(C.imgLayer,null,null,null,B)}}function IconWidget_changeText(A){var B=this;B.text=A;if(B.layer){if(B.txtLayer==null){B.txtLayer=getLayer("IconImg_Txt_"+B.id)}B.txtLayer.innerHTML=convStr(A)}}function IconWidget_changeImg(B,A,D){var C=this;if(D){C.src=D}if(B!=null){C.dx=B}if(A!=null){C.dy=A}if(C.layer&&(C.imgLayer==null)){C.imgLayer=getLayer("IconImg_"+this.id)}if(C.imgLayer){changeSimpleOffset(C.imgLayer,B,A,C.src)}}function IconWidget_internalDownCB(){if(!this.dis){this.currentHoverClass=this.checkhoverClass}}function IconWidget_internalUpCB(){if(!this.dis){this.currentHoverClass=this.hoverClass}}function IconWidget_setCrs(){var B=this,A=(B.clickCB?(!B.acceptClick()?"default":_hand):"default");B.css.cursor=A;if(B.src){if(B.imgLayer==null){B.imgLayer=getLayer("IconImg_"+B.id)}if(B.imgLayer){B.imgLayer.style.cursor=A}}}function IconWidget_downCB(){var A=getWidget(this);if((A.layer)&&(A.acceptClick())){A.internalDownCB();A.layer.className=A.currentHoverClass;if((A.par!=null&&A.par.menu==_globMenuCaptured)||(A!=null&&A.menu&&A.menu==_globMenuCaptured)){MenuWidget_releaseGlobMenuCaptured()}}if(_ie||_saf){return false}}function IconWidget_upCB(){var A=getWidget(this);if((A.layer)&&(A.acceptClick())){A.internalUpCB();A.layer.className=A.isHover?A.currentHoverClass:A.currentClass;A.setCrs();delayedClickCB(A.index)}}function IconWidget_keydownCB(A){if(eventGetKey(A)==13||eventGetKey(A)==32){var B=getWidget(this);if((B.layer)&&(B.acceptClick())){B.internalUpCB();B.layer.className=B.isHover?B.currentHoverClass:B.currentClass;B.setCrs();setTimeout("delayedClickCB("+B.index+")",1)}eventCancelBubble(A)}}function delayedClickCB(A){var B=_allBOIcons[A];if(B.beforeClickCB){B.beforeClickCB()}if(B.clickCB){B.clickCB()}}function IconWidget_overCB(A){var B=_allBOIcons[A];B.setCrs();if((B.layer)&&(!B.dis)&&!(B.par&&B.par.checked)){B.isHover=true;B.layer.className=B.currentHoverClass}}function IconWidget_outCB(A){var B=_allBOIcons[A];if((B.layer)&&(B.outEnable)&&!(B.par&&B.par.checked)){B.isHover=false;B.layer.className=B.currentClass}}function IconCheckWidget_init(){var A=this;A.oldInit();A.check(A.checked,true)}function IconCheckWidget_internalDownCB(){var A=this;if(A.acceptClick()){A.currentHoverClass=A.checked?A.hoverClass:A.checkhoverClass}}function IconCheckWidget_internalUpCB(){var A=this;if(A.acceptClick()){A.checked=A.isRadio?true:!A.checked;A.currentClass=A.checked?this.checkClass:this.nocheckClass;A.currentHoverClass=A.checked?this.checkhoverClass:this.hoverClass}}function IconCheckWidget_check(A,B){var C=this;if((C.checked!=A)||B){C.checked=A;if(C.layer){C.layer.className=C.currentClass=C.checked?this.checkClass:this.nocheckClass;C.currentHoverClass=C.checked?this.checkhoverClass:this.hoverClass}}if(C.checked&&C.beforeClickCB){if(C.layer){C.beforeClickCB()}}}function IconCheckWidget_isChecked(){return this.checked}function IconWidget_setClasses(B,A,C,D){var E=this;E.nocheckClass=B;E.checkClass=A;E.hoverClass=C;E.checkhoverClass=D;E.currentClass=E.nocheckClass;E.currentHoverClass=E.hoverClass}function IconWidget_setDisabled(A){var B=this;if(B.dis!=A){B.dis=A;if(B.layer){B.setCrs();if(B.src){if(B.imgLayer==null){B.imgLayer=getLayer("IconImg_"+this.id)}changeSimpleOffset(B.imgLayer,A?B.disDx:B.dx,A?B.disDy:B.dy)}if(B.text){if(B.txtLayer==null){B.txtLayer=getLayer("IconImg_Txt_"+B.id)}B.txtLayer.className="iconText"+(A?"Dis":"");if(A){B.layer.className=B.currentClass}}if(B.isTabEnabled){B.layer.tabIndex=B.dis?-1:0}}}}function IconWidget_isDisabled(){return this.dis?this.dis:false}function IconWidget_acceptClick(){var A=this;if(A.isDisabled()){return false}if(A.isRadio&&A.checked){return false}return true}function newCustomCombo(D,H,B,E,M,C,I,G,L,J,A,K){var F=newIconMenuWidget(D,C,null," ",M,I,G,L,J,A,K);F.icon.width=E!=null?Math.max(0,E-13):50-(2*F.margin);F.icon.setClasses("combonocheck","combocheck","combohover","combocheck");F.icon.clip;F.arrow.setClasses("iconnocheck","combobtnhover","combobtnhover","combobtnhover");F.spc=0;F.margin=2;if(C==null){F.icon.h=12;F.arrow.h=12;F.arrow.dy+=2;F.arrow.disDy+=2}F.counter=0;F.changeCB=H;F.selectedItem=null;F.setOldDid=F.setDisabled;F.disabled=false;F.ccomboOldInit=F.init;F.init=CustomCombo_init;F.add=CustomCombo_add;F.addSeparator=CustomCombo_addSeparator;F.addMenuItem=CustomCombo_addMenuItem;F.select=CustomCombo_select;F.getSelection=CustomCombo_getSelection;F.valueShow=CustomCombo_valueShow;F.valueSelect=CustomCombo_valueSelect;F.setUndefined=CustomCombo_setUndefined;F.setDisabled=CustomCombo_setDisabled;F.getVisibleItemsCount=CustomCombo_getVisibleItemsCount;F.selectItem=CustomCombo_selectItem;F.getItemByIndex=CustomCombo_getItemByIndex;F.getItemIndex=CustomCombo_getItemIndex;F.setItemDisabled=CustomCombo_setItemDisabled;return F}function CustomCombo_init(){var B=this;B.ccomboOldInit();if(B.disabled){B.icon.changeTooltip(B.icon.alt?B.icon.alt:"",true)}var A=_openMenu.replace("{0}",(B.icon.alt?B.icon.alt:""));B.arrow.changeTooltip(A)}function CustomCombo_add(B,E,A){var D=this;var C=D.menu.addCheck(D.id+"_it_"+(D.counter++),B,CustomCombo_internalCB);C.val=""+E;C.parCombo=D;C.isComboVal=true;if((D.selectedItem==null)||A){D.selectItem(C)}}function CustomCombo_addSeparator(){this.menu.addSeparator()}function CustomCombo_addMenuItem(B,F,C,E,I,G,D,A,H){this.menu.add(B,F,C,E,I,G,D,A,H)}function CustomCombo_internalCB(){var A=this,B=A.parCombo;B.selectItem(A);if(B.changeCB){B.changeCB()}}function CustomCombo_getItemByIndex(A){var B=this.menu.items;return((A>=0)&&(A'}function ComboTextFieldWidget_setDisabled(B){var A=this;A.oldSetDisabled(B)}function newTextComboWidget(A,H,J,G,E,B,F,I){var C=newWidget(A);C.text=newComboTextFieldWidget((I?I:"text_"+A),TextComboWidget_checkCB,H,null,TextComboWidget_enterCB,true,J,G-13);var D=_openMenu.replace("{0}",(J?J:""));C.arrow=newIconWidget("arrow_"+A,_skin+"menus.gif",TextComboWidget_arrowClickCB,null,D,7,16,0,81,0,97,true,true);C.menu=newMenuWidget("menu_"+A,TextComboWidget_hideCB,F);C.arrow.setClasses("iconnocheck","combobtnhover","combobtnhover","combobtnhover");C.text.par=C;C.arrow.par=C;C.menu.parIcon=C;C.arrow.margin=0;C.arrow.overCB="IconWidget_none";C.arrow.outCB="IconWidget_none";C.margin=0;C.spc=0;C.counter=0;C.arrow.h=12;C.arrow.dy+=2;C.arrow.disDy+=2;C.index=_allBOIconsMenus.length++;_allBOIconsMenus[C.index]=C;C.menIcnOldInit=C.init;C.init=TextComboWidget_init;C.imwpResize=C.resize;C.resize=TextComboWidget_resize;C.getHTML=TextComboWidget_getHTML;C.setDisabled=TextComboWidget_setDisabled;C.isDisabled=TextComboWidget_isDisabled;C.add=TextComboWidget_add;C.addSeparator=TextComboWidget_addSeparator;C.addMenuItem=TextComboWidget_addMenuItem;C.select=TextComboWidget_select;C.getSelection=TextComboWidget_getSelection;C.valueShow=TextComboWidget_valueShow;C.valueSelect=TextComboWidget_valueSelect;C.setUndefined=TextComboWidget_setUndefined;C.setContentEditable=TextComboWidget_setContentEditable;C.isContentEditable=TextComboWidget_isContentEditable;C.changeCB=E;C.checkCB=B;C.clickCB=TextComboWidget_clickCB;C.selectItem=TextComboWidget_selectItem;C.getItemByIndex=TextComboWidget_getItemByIndex;C.getItemIndex=TextComboWidget_getItemIndex;C.setItemDisabled=TextComboWidget_setItemDisabled;C.text.enterCancelBubble=false;return C}function TextComboWidget_init(){var B=this;B.menIcnOldInit();B.text.init();B.arrow.init();B.menu.init();var A=B.layer;A.onmouseover=TextCombo_OverCB;A.onmouseout=TextCombo_OutCB}function TextComboWidget_getHTML(){var B=this,A="";A+='';A+="";A+='";A+="
    "+B.text.getHTML()+"'+B.arrow.getHTML()+"
    ";return A}function TextComboWidget_resize(A,B){var D=this;if(A!=null){A=Math.max(0,A-2*D.margin)}var C=D.layer.display!="none";if(C&_moz&&!_saf){D.setDisplay(false)}D.imwpResize(A,B);if(C&_moz&&!_saf){D.setDisplay(true)}}function TextComboWidget_add(B,E,A){var D=this;var C=D.menu.addCheck(D.id+"_it_"+(D.counter++),B,TextComboWidget_internalCB);C.val=""+E;C.parCombo=D;C.isComboVal=true;if((D.selectedItem==null)||A){D.selectItem(C)}}function TextComboWidget_addSeparator(){this.menu.addSeparator()}function TextComboWidget_addMenuItem(B,F,C,E,I,G,D,A,H){this.menu.add(B,F,C,E,I,G,D,A,H)}function TextComboWidget_setDisabled(B){var A=this;A.text.setDisabled(B);A.arrow.setDisabled(B);A.menu.setDisabled(B);A.disabled=B}function TextComboWidget_isDisabled(){var A=this;return A.disabled}function TextComboWidget_select(A){var C=this,B=C.getItemByIndex(A);if(B){C.selectItem(B)}}function TextComboWidget_setItemDisabled(A,B){var D=this,C=D.getItemByIndex(A);if(C){C.setDisabled(B)}}function TextComboWidget_getSelection(){var C=this,B=C.selectedItem;var A=C.text.getValue();if(B){return{index:C.getItemIndex(B),value:B.val}}else{return{index:-1,value:A}}}function TextComboWidget_valueSelect(C){C=""+C;var F=this,B=F.menu.items,A=B.length;for(var D=0;D=0)&&(A=0)&&(B';B[C++]='";B[C++]="";if(E.needsRightPart){if(E.accel!=null){B[C++]='"}else{B[C++]='"}}else{B[C++]='"}B[C++]="";return B.join("")}else{return'"}}function MenuItem_dynHTML(){var A=this;if(A.par.layer==null){return }var F=A.par.layer.childNodes[0],I=F.insertRow(A.menuIndex),J=I.style;I.onmousedown=_minb;I.onmouseup=_minb;I.id=(A.par.id+"_item_"+A.id);if((A.icon!=null)||(A.text!=null)){var D=I.insertCell(0),C=I.insertCell(1),B=I.insertCell(2),H=D.style,G=C.style,E=B.style;I.onclick=MenuItem_clickCallTrue;I.oncontextmenu=MenuItem_clickCallFalse;I.onmouseover=MenuItem_invertCall1;I.onmouseout=MenuItem_invertCall0;J.height=""+_mitemH+"px";J.width="24px";J.cursor=(A.disabled?"default":_hand);D.id=(A.par.id+"_item_td_"+A.id);H.width="23px";H.height=""+_mitemH+"px";D.innerHTML=A.getHTMLPart(0);D.align="center";D.className=A.leftZoneClass;if(A.centered){C.align="center"}G.height=""+_mitemH+"px";C.id=(A.par.id+"_text_"+A.id);C.className="menuTextPart"+(A.disabled?"Disabled":"");C.innerHTML=A.getHTMLPart(1);if(A.accel){B.className="menuTextPart"+(A.disabled?"Disabled":"");B.align="right";E.height=""+_mitemH+"px";B.innerHTML=A.getHTMLPart(4)}else{B.className="menuRightPart";B.align="right";E.width="40px";E.height=""+_mitemH+"px";B.innerHTML=A.getHTMLPart(2)}A.init()}else{I.onclick=_minb;I.style.height="3px";var D=I.insertCell(0),C=I.insertCell(1),H=D.style,G=C.style;D.className=A.leftZoneClass;H.width="24px";H.height="3px";H.border="0px";C.colSpan="2";G.paddingLeft="5px";G.paddingRight="5px";C.innerHTML=A.getHTMLPart(3)}}function MenuItem_isChecked(){return this.checked}function MenuItem_setText(A){var B=this,C=B.par.id;B.text=A;if(B.textLayer){B.textLayer.innerHTML=B.getHTMLPart(1);B.textOnlyLayer=getLayer(C+"_span_text_"+B.id)}}function MenuItem_setAccelerator(B,A){var C=this,D=C.par.id;C.accel=((A!=null)?_modifiers[A]:"")+B;if(C.accelLayer){C.accelLayer.innerHTML=C.getHTMLPart(4)}}function MenuItem_setIcon(B,A,E,D,C){var F=this;F.url=C?C:F.url;F.dx=(B!=null)?B:F.dx;F.dy=(A!=null)?A:F.dy;F.disDx=(E!=null)?E:F.disDx;F.disDy=(D!=null)?D:F.disDy;if(F.icon&&F.iconLayer){changeSimpleOffset(F.iconLayer,F.disabled?F.disDx:F.dx,F.disabled?F.disDy:F.dy,F.url)}}function MenuItem_show(A){var B=this;B.isShown=A;if(B.layer!=null){B.layer.style.display=A?"":"none"}}function _micl(B,C){eventCancelBubble(C);var A=B._boIndex,D=_menusItems[A];D.layer=B;if(!D.disabled){if(D.sub){D.par.nextSub=D.menuIndex;MenuItem_callShowSub(A)}else{D.par.show(false,0,0,true);if(D.isCheck){if(D.par.uncheckAll){D.par.uncheckAll()}D.check(!D.checked)}if(D.par.container&&D.par.container.updateButton){D.par.container.updateButton(A)}_mii(B,0,A);D.par.nextSub=-1;if(D.cb){setTimeout("MenuItem_delayedClick("+A+")",1)}}}}function _mikd(E,G){while(E&&!E._boIndex){E=E.parentNode}if(!E||!E._boIndex){return }var B=E._boIndex,H=_menusItems[B];H.layer=E;var D=eventGetKey(G);switch(D){case 32:case 13:_micl(E,G);break;case 107:case 39:if(!H.disabled&&H.sub){_micl(E,G)}break;case 109:case 37:break;case 40:var C=H.par.items,A=C.length;for(var F=H.menuIndex+1;F=0;F--){if(C[F].isShown&&!C[F].isSeparator){C[F].focus();break}}break}}function MenuItem_callShowSub(A,B){var C=_menusItems[A];if(B){setTimeout("MenuItem_delayedShowSub("+A+")",500)}else{MenuItem_delayedShowSub(A)}}function MenuItem_delayedShowSub(A){var B=_menusItems[A];B.par.showSub()}function _minb(A){eventCancelBubble(A)}function MenuItem_delayedClick(A){var B=_menusItems[A];if(B.cb){B.cb()}}function MenuItem_clickCallTrue(A){_micl(this,A);return true}function MenuItem_clickCallFalse(A){_micl(this,A);return false}function MenuItem_invertCall0(A){_mii(this,0)}function MenuItem_invertCall1(A){_mii(this,1)}function MenuItem_focus(){var A=this;if(isLayerDisplayed(A.layer)&&A.textOnlyLayer&&A.textOnlyLayer.focus){A.textOnlyLayer.focus()}}function MenuItem_updateTooltip(){var B=this;if(B.textOnlyLayer&&!B.isSeparator){if(B.textOnlyLayer.innerHTML){B.textOnlyLayer.title=B.textOnlyLayer.innerHTML}B.textOnlyLayer.title+=B.checked?" "+_menuCheckLab:"";if(B.disabled){B.textOnlyLayer.title=(B.textOnlyLayer.title!=null?B.textOnlyLayer.title:"")+" "+_menuDisableLab}if(B.hiddenLabelLayer){var A=((_moz&&B.textOnlyLayer.title)?B.textOnlyLayer.title:"")+B.itemNo+_of+B.par.getTotalNumItems();B.hiddenLabelLayer.innerHTML=A}}}function newScrollMenuWidget(A,I,H,B,N,M,K,G,F,J,D,L,E){var C=newWidget(A);C.list=newListWidget("list_"+A,ScrollMenuWidget_changeCB,H,B,N,M,ScrollMenuWidget_dblClickCB,ScrollMenuWidget_keyUpCB,ScrollMenuWidget_clickCB);C.list.par=C;C.label=NewLabelWidget("label_"+A,J,D);C.showLabel=F;C.changeCB=I;C.menuClickCB=E;C.dblClickCB=K;C.keyUpCB=G;C.beforeShowCB=L;C.zIndex=_menusZIndex;C.init=ScrollMenuWidget_init;C.justInTimeInit=ScrollMenuWidget_justInTimeInit;C.setDisabled=ScrollMenuWidget_setDisabled;C.write=ScrollMenuWidget_write;C.getHTML=ScrollMenuWidget_getHTML;C.show=ScrollMenuWidget_show;C.add=ScrollMenuWidget_add;C.del=ScrollMenuWidget_del;C.getSelection=ScrollMenuWidget_getSelection;C.select=ScrollMenuWidget_select;C.clearSelection=ScrollMenuWidget_clearSelection;C.valueSelect=ScrollMenuWidget_valueSelect;C.getCount=ScrollMenuWidget_getCount;C.isShown=MenuWidget_isShown;C.captureClicks=MenuWidget_captureClicks;C.releaseClicks=MenuWidget_releaseClicks;C.clickCB=new Array;C.clickCBDocs=new Array;return C}function ScrollMenuWidget_init(){}function ScrollMenuWidget_clearSelection(){var A=this;if(A.list){A.list.clearSelection()}}function ScrollMenuWidget_justInTimeInit(){var A=this;A.layer=getLayer(A.id);if(A.layer==null){append2(_curDoc.body,A.getHTML());A.layer=getLayer(A.id)}A.layer._widget=A.widx;A.css=A.layer.style;A.css.visibility="hidden";A.list.init();A.label.init()}function ScrollMenuWidget_setDisabled(){}function ScrollMenuWidget_write(){}function ScrollMenuWidget_getHTML(){var B=this;var A="";A+='';A+='";A+='";A+="";return A}function ScrollMenuWidget_show(H,G,F){var B=this;if(B.layer==null){B.justInTimeInit()}var D=B.css;if(H){if(B.beforeShowCB){B.beforeShowCB()}B.captureClicks();D.display="block";D.zIndex=(B.zIndex+1);D.visibility="hidden";D.left="-1000px";D.top="-1000px";var I=B.getWidth();var C=B.getHeight();if(B.alignLeft){G-=I}var A=G+I+4,E=F+C+4;if(A>winWidth()){G=Math.max(0,G-4-I)}if(E>winHeight()){F=Math.max(0,F-4-C)}D.left=""+G+"px";D.top=""+F+"px";D.visibility="visible";B.iframeLyr=getDynamicBGIFrameLayer();B.iframeCss=B.iframeLyr.style;iCss=B.iframeCss;iCss.left=""+G+"px";iCss.top=""+F+"px";iCss.width=""+I+"px";iCss.height=""+C+"px";iCss.zIndex=B.zIndex-1;iCss.display="block";if(_ie){F-=2;G-=2}}else{releaseBGIFrame(B.iframeLyr.id);D.display="none";iCss.display="none";B.releaseClicks()}}function ScrollMenuWidget_add(A,D,B,E){var C=this;if(C.layer==null){C.justInTimeInit()}C.list.add(A,D,B,E)}function ScrollMenuWidget_del(A){var B=this;if(B.layer==null){B.justInTimeInit()}B.list.del(A)}function ScrollMenuWidget_getSelection(){var A=this;if(A.layer==null){A.justInTimeInit()}return A.list.getSelection()}function ScrollMenuWidget_select(A){var B=this;if(B.layer==null){B.justInTimeInit()}B.list.select(A)}function ScrollMenuWidget_valueSelect(A){var B=this;if(B.layer==null){B.justInTimeInit()}B.list.valueSelect(A)}function ScrollMenuWidget_getCount(){var A=this;if(A.layer==null){A.justInTimeInit()}return A.list.getCount()}function ScrollMenuWidget_changeCB(){var A=this;if(A.par.changeCB){A.par.changeCB()}}function ScrollMenuWidget_clickCB(){var A=this;A.par.show(false);if(A.par.menuClickCB){A.par.menuClickCB()}}function ScrollMenuWidget_dblClickCB(){var A=this;A.par.show(false);if(A.par.dblClickCB){A.par.dblClickCB()}}function ScrollMenuWidget_keyUpCB(C){var E=13,B=27;var D=this;var A=eventGetKey(C);if(A==E||A==B){D.par.show(false)}if(D.par.keyUpCB){D.par.keyUpCB()}}if(window._DHTML_LIB_PSHEET_JS_LOADED==null){_DHTML_LIB_PSHEET_JS_LOADED=true;_boAllTabs=new Array;_vertTabImgW=3;_vertTabLBorderToTxt=20-_vertTabImgW-1;_vertTabLBorderToIcon=12-_vertTabImgW-1;_vertTabIconToTxt=8;_vertTabIconSize=16;_tabImgLeft=0;_tabImgMid=1;_tabImgRight=2;_tabTxt=3;_tabScrollBar=4;_tabList=5;_VertTab=2;_VertTabWithIcon=3;_HorizTabTop=4;_HorizTabBottom=5;_HorizTabTopWithClose=6;_menuBarTab=7;_vertTabHover=0;_vertTabSelected=1;_vertTabPressed=2;_vertTabNormal=3;_vertTabCSS=[["menuLeftMostSel","naviVTabLSelected","naviVTabLPressed","naviVTabNormal"],["menuLeftPartSel","naviVTabMSelected","naviVTabMPressed","naviVTabNormal"],["menuRightMostSel","naviVTabRSelected","naviVTabRPressed","naviVTabNormal"]];_vertNaviPanelMinW=120;_vertNaviPanelMaxW=180;_vertNaviPanelWithIconW=150;_vertNaviPanelH=23*8;_naviHorzTabH=24;_horizTabSelected=0;_horizTabNormal=1;_horizTabHover=2;_horizTabSelHover=3;_horizTabPressed=4;_tabListNormal=0;_tabListHover=1;_tabListPressed=2;_horizTabCSS=[["naviHTabLSelected","naviHTabLNormal","naviHTabLHover","naviHTabLSelHover","naviHTabLNormal"],["naviHTabMSelected","naviHTabMNormal","naviHTabMHover","naviHTabMSelHover","naviHTabMNormal"],["naviHTabRSelected","naviHTabRNormal","naviHTabRHover","naviHTabRSelHover","naviHTabRNormal"],["naviHTabTextSel","naviHTabText","naviHTabTextHover","naviHTabTextSelHover","naviHTabText"],["naviHScrollBarL","naviHScrollBarM","naviHScrollBarR","naviHScrlBarFirstArrow naviHScrlBarArrowPos","naviHScrlBarPrevArrow naviHScrlBarArrowPos","naviHScrlBarNextArrow naviHScrlBarArrowPos","naviHScrlBarLastArrow naviHScrlBarArrowPos","naviHScrlBarHover","naviHScrlBarPressed","naviHScrlBarDisabled","naviHScrlBarFirstDis naviHScrlBarArrowPos","naviHScrlBarPrevDis naviHScrlBarArrowPos","naviHScrlBarNextDis naviHScrlBarArrowPos","naviHScrlBarLastDis naviHScrlBarArrowPos"],["tabListTop","tabListTopHover","tabListTopPressed"]];_horizTabWithCloseCSS=[["naviHTabLSelected","naviHTabLNormal","naviHTabLHover","naviHTabLSelHover","naviHTabLNormal"],["naviHTabMSelected","naviHTabMNormal","naviHTabMHover","naviHTabMSelHover","naviHTabMNormal"],["naviHTabWithCloseRSel","naviHTabRWithCloseNormal","naviHTabWithCloseRHover","naviHTabWithCloseRSelHover","naviHTabRWithCloseNormal"],["naviHTabTextSel","naviHTabText","naviHTabTextHover","naviHTabTextSelHover","naviHTabText"],["naviHScrollBarL","naviHScrollBarM","naviHScrollBarR","naviHScrlBarFirstArrow naviHScrlBarArrowPos","naviHScrlBarPrevArrow naviHScrlBarArrowPos","naviHScrlBarNextArrow naviHScrlBarArrowPos","naviHScrlBarLastArrow naviHScrlBarArrowPos","naviHScrlBarHover","naviHScrlBarPressed","naviHScrlBarDisabled","naviHScrlBarFirstDis naviHScrlBarArrowPos","naviHScrlBarPrevDis naviHScrlBarArrowPos","naviHScrlBarNextDis naviHScrlBarArrowPos","naviHScrlBarLastDis naviHScrlBarArrowPos"]];_horizTabImgL=4;_horizTabImgR=23;_horizTabTxtPaddingL=15;_horizTabTxtPaddingR=3;_horizTabTxtPaddingB=5;_horizTabImgPadL=8;_horizTabImgToTxt=6;_horizBottomTabTxtPadB=7;_horizTabTxtToClose=5;_horizTabClosePadR=1;_noScrollBar=0;_ScrollBarAtBegin=1;_ScrollBarAtEnd=2;_horizBarWidth=100;_defaultMenuBarWidth=200;_menuBarTabHeight=22;_tabListIconWidth=19}function newTabbedZone(F,C,A,B,D){var E=newFrameZoneWidget(F,B,D);E.w=B;E.h=D;E.cb=A;E.oldIndex=-1;E.tzOldInit=E.init;E.add=TabbedZoneWidget_add;E.select=TabbedZoneWidget_select;E.getTabCSS=TabbedZoneWidget_getTabCSS;E.init=TabbedZoneWidget_init;E.beginHTML=TabbedZoneWidget_beginHTML;E.oldFrameZoneEndHTML=E.endHTML;E.endHTML=TabbedZoneWidget_endHTML;if(!C){E.tabs=newTabBarWidget("tzone_tabs_"+F,true,TabbedZone_itemClick);E.tabs.parentTabbedZone=E}else{E.tabs=C}E.beginTabHTML=TabbedZoneWidget_beginTabHTML;E.endTabHTML=TabbedZoneWidget_endTabHTML;E.beginTab=TabbedZoneWidget_beginTab;E.endTab=TabbedZoneWidget_endTab;E.showTab=TabbedZoneWidget_showTab;E.tzOldResize=E.resize;E.resize=TabbedZoneWidget_resize;return E}function TabbedZone_itemClick(){var B=this.parentTabbedZone,A=this.getSelection().index;B.select(A);if(B.cb){B.cb(A)}}function TabbedZoneWidget_add(B,E,C,H,A,F,D){var G=this;G.tabs.add(B,E,-1,C,H,A,F,D)}function TabbedZoneWidget_init(){var A=this;A.tzOldInit();A.tabs.init();A.select(0)}function TabbedZoneWidget_getTabCSS(A){if(A!=null){if(!A.zoneLayer){A.zoneLayer=getLayer(A.zoneId)}if(A.zoneLayer){return A.zoneLayer.style}}return null}function TabbedZoneWidget_showTab(B,A){var C=this.tabs.items[B];if(C){C.setDisplay(A)}}function TabbedZoneWidget_resize(B,D){var F=this;if(B!=null){F.w=B}if(D!=null){F.h=D}F.tzOldResize(B,D);var A=getLayer(F.id+"_container");if(A){if(F.w){A.style.width=F.w+"px"}if(F.h){A.style.height=F.h+"px"}}var E=F.tabs.items[F.oldIndex];if(E){var C=getLayer(E.zoneId);if(C){if(F.w){C.style.width=F.w+"px"}if(F.h){C.style.height=F.h+"px"}}}}function TabbedZoneWidget_select(D){var A=this,G=A.tabs,B=G.getSelection(),H=A.oldIndex,F;var I=G.items[A.oldIndex];A.tabs.select(D);if(I){F=A.getTabCSS(I);if(F){F.display="none"}}else{var E=G.items.length;for(var C=0;C'+imgOffset(_skin+"dialogframe.gif",5,5,0,0)+''+A.tabs.getHTML()+""+imgOffset(_skin+"dialogframe.gif",5,5,5,0)+'
    '}function TabbedZoneWidget_endHTML(){return'
    '+imgOffset(_skin+"dialogframe.gif",5,5,0,5)+''+imgOffset(_skin+"dialogframe.gif",5,5,5,5)+""}function TabbedZoneWidget_beginTabHTML(A){var B=this;return'"}function TabbedZoneWidget_beginTab(A){_curDoc.write(this.beginTabHTML(A))}function TabbedZoneWidget_endTab(){_curDoc.write(this.endTabHTML())}function newNaviTabWidget(C,A,L,E,F,D,M,J,B,K,I,H,G){return new_NaviTabWidget({id:C,name:A,value:L,tabType:E,clickCB:F,dblclickCB:D,tooltip:M,icon:J,iconW:B,iconH:K,iconOffX:I,iconOffY:H,closeTabCB:G})}function new_NaviTabWidget(A){var B=new_Widget(A);B.superInit=B.init;B.init=NaviTabWidget_init;B.getHTML=NaviTabWidget_getHTML;B.hasCloseButton=NaviTabWidget_hasCloseButton;B.select=NaviTabWidget_select;B.setUserData=NaviTabWidget_setUserData;B.getUserData=NaviTabWidget_getUserData;B.setMenu=NaviTabWidget_setMenu;B.getMenu=NaviTabWidget_getMenu;B.setHtml=NaviTabWidget_setHtml;B.getHtml=NaviTabWidget_getHtml;B.zoneId="tzone_tab_"+Math.round(Math.random()*12345)+new Date().getTime();B.tabType=Widget_param(A,"tabType",_HorizTabTop);B.name=Widget_param(A,"name","Tab");B.value=Widget_param(A,"value",0);B.cb=Widget_param(A,"clickCB",null);B.dblClick=Widget_param(A,"dblclickCB",null);B.icon=Widget_param(A,"icon",null);B.iconW=Widget_param(A,"iconW",(B.icon?_vertTabIconSize:1));B.iconH=Widget_param(A,"iconH",(B.icon?_vertTabIconSize:1));B.iconOffX=Widget_param(A,"iconOffX",0);B.iconOffY=Widget_param(A,"iconOffY",0);B.tooltip=Widget_param(A,"tooltip",null);B.closeTabCB=Widget_param(A,"closeTabCB",null);B.isSelected=false;B.leftimgid="naviTabL_"+B.id;B.midimgid="naviTabM_"+B.id;B.rightimgid="naviTabR_"+B.id;B.txtid="naviTabTxt_"+B.id;B.sepid="naviTabSep_"+B.id;B.closeid="naviTabClose_"+B.id;B.iconid="naviTabIcon_"+B.id;switch(B.tabType){case _VertTab:case _VertTabWithIcon:B.tabCSSTable=_vertTabCSS;break;case _HorizTabBottom:B.tabCSSTable=_horizBottomTabCSS;break;case _HorizTabTopWithClose:B.tabCSSTable=_horizTabWithCloseCSS;break;case _HorizTabTop:default:B.tabCSSTable=_horizTabCSS;break;case _menuBarTab:B.tabCSSTable=_menuBarTabCSS;break}B.mover=NaviTabWidget_mover;B.mdown=NaviTabWidget_mdown;B.keydownCB=NaviTabWidget_keydownCB;B.contextMenuCB=NaviTabWidget_contextMenuCB;B.changeState=NaviTabWidget_changeState;B.getVertHTML=NaviTabWidget_getVertHTML;B.getHorizHTML=NaviTabWidget_getHorizHTML;B.displaySep=NaviTabWidget_displaySep;B.isVert=NaviTabWidget_isVert;B.updateCloseIcon=NaviTabWidget_updateCloseIcon;B.mdown_closeIcon=NaviTabWidget_mdown_closeIcon;B.kdown_closeIcon=NaviTabWidget_kdown_closeIcon;B.clickCB=NaviTabWidget_clickCB;B.dblClickCB=NaviTabWidget_dblClickCB;B.leftimgLyr=null;B.midimgLyr=null;B.rightimgLyr=null;B.txtLyr=null;B.iconLyr=null;B.sepLyr=null;B.closeLyr=null;B.data=new Object;return B}function NaviTabWidget_init(){var A=this;A.superInit();if(A.layer){A.layer.onmouseover=A.mover;A.layer.onmouseout=A.mover;A.layer.onmousedown=A.mdown;A.layer.onmouseup=A.mdown;A.layer.onclick=A.clickCB;if(_ie){A.layer.ondblclick=A.dblClickCB}A.layer.onkeydown=A.keydownCB;A.layer.onselectstart=function(){return false};A.layer.ondragstart=function(){return false};A.layer.oncontextmenu=A.contextMenuCB}A.leftimgLyr=getLayer(A.leftimgid);A.midimgLyr=getLayer(A.midimgid);A.rightimgLyr=getLayer(A.rightimgid);A.txtLyr=getLayer(A.txtid);A.iconLyr=getLayer(A.iconid);A.sepLyr=getLayer(A.sepid);if(A.hasCloseButton()){A.closeLyr=getLayer(A.closeid);A.closeLyr.onmousedown=A.mdown_closeIcon;A.closeLyr.onkeypress=A.kdown_closeIcon;A.closeLyr.onmouseup=A.mdown_closeIcon;A.updateCloseIcon("naviHTabCloseSel",A.isSelected)}}function NaviTabWidget_getVertHTML(){var E=this;var B="";B='';B+='';var C=E.isSelected?_vertTabSelected:_vertTabNormal;B+='';var A=E.par.w-2*_vertTabImgW;B+='";B+='';B+="
    ';if(E.tabType==_VertTabWithIcon){B+='';B+='';B+='";var D=Math.max(40,A-_vertTabLBorderToIcon-_vertTabIconSize);B+='";B+="
    '+imgOffset((E.icon?E.icon:(_skin+"../transp.gif")),_vertTabIconSize,E.iconH,E.iconOffX,E.iconOffY,E.iconid)+"';B+='
    "}else{B+='"}B+="
    ";return B}function NaviTabWidget_hasCloseButton(){var A=this;return _HorizTabTopWithClose==A.tabType&&(!A.par.getTabIndexByName(A.name)==0||A.isFirstTabClosable)}function NaviTabWidget_getHorizHTML(){var F=this;var C='';C+='';var E=F.isSelected?_horizTabSelected:_horizTabNormal;C+='';C+='";C+='';C+='';C+="
    ';C+='';C+='';if(_menuBarTab!=F.tabType){var B=(_HorizTabTop==F.tabType||_HorizTabTopWithClose==F.tabType)?"margin-bottom:3px;":"margin-bottom:6px;";B=B+"margin-left:"+((F.iconW>1)?_horizTabImgPadL:0)+"px;";C+='"}var D=' style="padding-left:'+((F.iconW>1)?_horizTabImgToTxt:_horizTabTxtPaddingL)+"px;padding-right:"+((_HorizTabTopWithClose==F.tabType)?_horizTabTxtToClose:_horizTabTxtPaddingR)+"px;padding-bottom:"+((_HorizTabTop==F.tabType||_HorizTabTopWithClose==F.tabType)?_horizTabTxtPaddingB:_horizBottomTabTxtPadB)+'px;" ';var A='";C+='";if(F.hasCloseButton()){C+=''}C+="
    '+imgOffset((F.icon?F.icon:(_skin+"../transp.gif")),F.iconW,F.iconH,F.iconOffX,F.iconOffY,F.iconid,null,null,B)+"'+A+"';C+='
    ";C+="
    ';C+='
    ';C+='
    ";return C}function NaviTabWidget_isVert(){var A=this;return(A.tabType==_VertTabWithIcon||A.tabType==_VertTab)}function NaviTabWidget_getHTML(){var A=this;return(A.isVert())?A.getVertHTML():A.getHorizHTML()}function NaviTabWidget_select(A){var B=this;B.isSelected=A;B.changeState(B.isVert()?(A?_vertTabSelected:_vertTabNormal):(A?_horizTabSelected:_horizTabNormal));B.updateCloseIcon("naviHTabCloseSel",B.isSelected)}function NaviTabWidget_updateCloseIcon(B,A){var C=this;if(C.tabType==_HorizTabTopWithClose&&C.closeLyr){C.closeLyr.className=B;C.closeLyr.style.visibility=A?_show:_hide}}function NaviTabWidget_changeState(A){var B=this;if(B.layer){B.leftimgLyr.className=B.tabCSSTable[_tabImgLeft][A];B.midimgLyr.className=B.tabCSSTable[_tabImgMid][A];B.rightimgLyr.className=B.tabCSSTable[_tabImgRight][A]}if(B.txtLyr&&!B.isVert()){B.txtLyr.className=B.tabCSSTable[_tabTxt][A]}}function NaviTabWidget_mover(B){var G=getWidget(this);var B=getEvent(B);var E=(B&&B.type=="mouseover")?true:false;if(G.isVert()){G.changeState(E?_vertTabHover:(G.isSelected?_vertTabSelected:_vertTabNormal))}else{G.changeState(G.isSelected?(E?_horizTabSelHover:_horizTabSelected):(E?_horizTabHover:_horizTabNormal));var C=G.par.getPrevNextTabs(G.idx);if(!C){return }var D=C.prevTab;var A=C.nextTab;if(!G.isSelected){var F=false;if(!E){F=true;if(A){if(A.isSelected){F=false}}else{F=false}}G.displaySep(F,true);if(D){D.displaySep(E?false:((D.isSelected)?false:true),true)}}else{G.displaySep(false);if(D){D.displaySep(false)}}G.updateCloseIcon((E?"naviHTabCloseHover":"naviHTabCloseSel"),(G.isSelected||E))}}function NaviTabWidget_mdown(A){var B=getWidget(this);var A=getEvent(A);var C=(A&&A.type=="mousedown")?true:false;if(B.isVert()){B.changeState(C?_vertTabPressed:(B.isSelected?_vertTabSelected:_vertTabNormal))}}function NaviTabWidget_mdown_closeIcon(A){var B=getWidget(this);var A=getEvent(A);var C=(A&&A.type=="mousedown")?true:false;B.updateCloseIcon((C?"naviHTabClosePressed":"naviHTabCloseSel"),(C||B.isSelected));if(!C){if(B.par&&B.par.closeTab){B.par.closeTab(B.par.findTabIndex(B),B.closeTabCB)}}}function NaviTabWidget_kdown_closeIcon(B){var A=eventGetKey(B);if(A==32||A==13){eventCancelBubble(B);var C=getWidget(this);if(C.par&&C.par.closeTab){C.par.closeTab(C.par.findTabIndex(C),C.closeTabCB)}}}function NaviTabWidget_clickCB(A){var A=getEvent(A);var B=getWidget(this);if(B&&B.cb){B.cb()}eventCancelBubble(A);return false}function NaviTabWidget_dblClickCB(A){var A=getEvent(A);var B=getWidget(this);if(B&&B.dblClick){B.dblClick()}eventCancelBubble(A);return false}function NaviTabWidget_keydownCB(B){var A=eventGetKey(B);if(A==13){eventCancelBubble(B);var C=getWidget(this);if(C&&C.cb){C.cb()}}}function NaviTabWidget_displaySep(C,A){var B=this;if(!B.isVert()&&B.sepLyr){B.sepLyr.style.visibility=C?_show:_hide}}function NaviTabWidget_setUserData(A){this.data.userdata=A}function NaviTabWidget_getUserData(){return this.data.userdata}function NaviTabWidget_contextMenuCB(A){A=getEvent(A);var C=getWidget(this);var B=C.par;if(C&&C.cb){C.cb()}if(B&&B.showTabMenu){B.showTabMenu(A,C.idx)}eventCancelBubble(A);return false}function NaviTabWidget_setMenu(A){this.data.menu=A}function NaviTabWidget_getMenu(){return this.data.menu}function NaviTabWidget_setHtml(A){this.data.html=A}function NaviTabWidget_getHtml(){return this.data.html}function new_NaviBarWidget(D){var F=new_Widget(D);F.superInit=F.init;F.oldResize=F.resize;F.init=NaviBarWidget_init;F.getHTML=NaviBarWidget_getHTML;F.add=NaviBarWidget_add;F.addByPrms=NaviBarWidget_addByPrms;F.remove=NaviBarWidget_remove;F.removeAll=NaviBarWidget_removeAll;F.getCount=NaviBarWidget_getCount;F.select=NaviBarWidget_select;F.getSelection=NaviBarWidget_getSelection;F.getBarType=NaviBarWidget_getBarType;F.getMenu=NaviBarWidget_getMenu;F.showMenu=NaviBarWidget_showMenu;F.getTabMenu=NaviBarWidget_getTabMenu;F.showTabMenu=NaviBarWidget_showTabMenu;F.setShowContextMenuAllowed=NaviBarWidget_setShowContextMenuAllowed;F.getTab=NaviBarWidget_getTab;F.findTabIndex=NaviBarWidget_findTabIndex;F.getSelectedTab=NaviBarWidget_getSelectedTab;F.showTab=NaviBarWidget_showTab;F.resize=NaviBarWidget_resize;F.setTabHTML=NaviBarWidget_setTabHTML;F.getTabHTML=NaviBarWidget_getTabHTML;F.getTabIndexByName=NaviBarWidget_getTabIndexByName;F.getTabIndexByValue=NaviBarWidget_getTabIndexByValue;F.getTabID=NaviBarWidget_getTabID;var B=Widget_param(D,"w",null);var E=Widget_param(D,"h",null);F.cb=Widget_param(D,"cb",null);F.isFirstTabClosable=Widget_param(D,"isFirstTabClosable",true);F.dblclick=Widget_param(D,"dblclick",null);F.beforeShowTabMenu=Widget_param(D,"beforeShowTabMenu",null);F.type=Widget_param(D,"naviBarType",_VertTab);F.counter=0;F.items=new Array;F.selIndex=-1;F.leftLimit=0;F.showContextMenuAllowed=true;F.menu=newMenuWidget("naviBarMenu_"+F.id,null,Widget_param(D,"beforeShowMenu",null));F.tabList=null;F.showScrollBar=_noScrollBar;F.isVert=((F.type==_VertTab)||(F.type==_VertTabWithIcon))?true:false;if(F.isVert){if(B){B=Math.max(_vertNaviPanelMinW,B);B=Math.min(B,_vertNaviPanelMaxW)}F.w=(B?B:((F.type==_VertTab)?_vertNaviPanelMinW:_vertNaviPanelWithIconW))+2;if(E){var G=Math.ceil(E/_mitemH);E=(Math.max(1,G))*_mitemH}F.h=(E?E:_vertNaviPanelH)+2}else{var C=Widget_param(D,"showTabList",false);if(C){F.tabList=newMenuWidget("naviBarTabListMenu_"+F.id,null,NaviBarWidget_beforeShowTabListCB,NaviBarWidget_TabListonPositionCB);F.tabList.navibar=F}else{var A=Widget_param(D,"showScrollBar",false);F.showScrollBar=A?((_HorizTabBottom==F.type)?_ScrollBarAtBegin:_ScrollBarAtEnd):_noScrollBar}F.w=B?B:(_horizBarWidth+_scrollBarWidth);F.h=_naviHorzTabH}switch(F.type){case _VertTab:case _VertTabWithIcon:F.tabCSSTable=_vertTabCSS;break;case _HorizTabBottom:F.tabCSSTable=_horizBottomTabCSS;break;case _HorizTabTop:default:F.tabCSSTable=_horizTabCSS;break}F.trid="naviBarTR_"+F.id;F.trLyr=null;F.divid="naviBarDIV_"+F.id;F.divLyr=null;F.scrollbarid="scrlbar_"+F.id;F.firstid="f_"+F.id;F.previd="p_"+F.id;F.nextid="n_"+F.id;F.lastid="l_"+F.id;F.scrollbarLyr=null;F.firstLyr=null;F.prevLyr=null;F.nexttLyr=null;F.lastLyr=null;F.updateSepDisplay=NaviBarWidget_updateSepDisplay;F.getPrevNextTabs=NaviBarWidget_getPrevNextTabs;F.closeTab=NaviBarWidget_closeTab;F.getBarIndex=NaviBarWidget_getBarIndex;F.mover_scrollbar=NaviBarWidget_mover_scrollbar;F.mdown_scrollbar=NaviBarWidget_mdown_scrollbar;F.contextMenuCB=NaviBarWidget_contextMenuCB;F.dblclickCB=NaviBarWidget_dblclickCB;F.getItemXPos=NaviBarWidget_getItemXPos;F.par=null;F.tablistid="bartablist_"+F.id;F.tablistLyr=null;F.mover_tablist=NaviBarWidget_mover_tablist;F.mdown_tablist=NaviBarWidget_mdown_tablist;F.kdown_tablist=NaviBarWidget_kdown_tablist;F.onfocus_tablist=NaviBarWidget_onfocus_tablist;F.onblur_tablist=NaviBarWidget_onblur_tablist;F.click_tablist=NaviBarWidget_click_tablist;F.onChangeTabList=NaviBarWidget_onChangeTabList;F.showTabListIcon=NaviBarWidget_showTabListIcon;F.buildTabList=NaviBarWidget_buildTabList;return F}function newNaviBarWidget(B,J,C,D,I,E,K,H,G,A,F){return new_NaviBarWidget({id:B,naviBarType:J,cb:C,dblclick:D,w:I,h:E,beforeShowTabMenu:K,beforeShowMenu:H,showScrollBar:G,showTabList:A,isFirstTabClosable:F})}function NaviBarWidget_getBarType(){return this.type}function NaviBarWidget_init(){var F=this,C=F.items;F.superInit();F.trLyr=getLayer(F.trid);F.divLyr=getLayer(F.divid);var B=C.length;for(var D=0;D';F+='";if(G.isVert){for(var E=0;E"}}else{F+="";var A="";if(G.showScrollBar!=_noScrollBar){A=""}if(G.showScrollBar==_ScrollBarAtBegin){F+=A}var C=G.w;if(G.showScrollBar!=_noScrollBar){C=Math.max(C-_scrollBarWidth,_horizBarWidth)}F+='";if(G.tabList){F+='"}if(G.showScrollBar==_ScrollBarAtEnd){F+=A}F+=""}F+="";return F}function NaviBarWidget_add(A,H,I,F,B,G,E,D,J,C){return this.addByPrms({name:A,value:H,tooltip:J,icon:F,iconW:B,iconH:G,iconOffX:E,iconOffY:D,closeTabCB:C},I)}function NaviBarWidget_addByPrms(H,I){var B=this,A=B.counter++;H.id="naviTab_"+A+"_"+B.id;H.tabType=B.type;H.clickCB=NaviBarWidget_itemClick;H.dblclickCB=NaviBarWidget_itemDblClick;var E=new_NaviTabWidget(H);E.par=B;E.idx=A;arrayAdd(B,"items",E,I);var G=B.items.length;if(B.isVert&&B.layer!=null){var C=document.createElement("td");C.innerHTML=E.getHTML();var F=document.createElement("tr");F.appendChild(C);var D=B.layer.childNodes[0].childNodes[0];if((typeof (I)=="undefined")||(G==1)||(I==null)||(I==-1)||(I>=G)){D.appendChild(F);I=G-1}else{if(D.childNodes[parseInt(I)]){D.insertBefore(F,D.childNodes[parseInt(I)])}}E.init()}else{if(B.trLyr){var C=document.createElement("td");C.innerHTML=E.getHTML();if((typeof (I)=="undefined")||(G==1)||(I==null)||(I==-1)||(I>=G)){B.trLyr.appendChild(C);I=G-1}else{B.trLyr.insertBefore(C,B.trLyr.childNodes[parseInt(I)])}E.init();B.showTabListIcon()}}if((B.selIndex!=null)&&(B.selIndex>=0)){if(I<=B.selIndex){B.selIndex++}}B.updateSepDisplay();return E}function NaviBarWidget_getBarIndex(D){var E=this,B=E.items,A=B.length;for(var C=0;C=0)&&(C=0)&&(D.selIndex!=C)&&(D.selIndex=0)&&(II){A.cb(A.selIndex-1)}else{if((A.selIndex==I)&&(F>0)){A.cb(Math.min(I,F-1))}}}if(F==0){A.selIndex=null}A.showTabListIcon()}}function NaviBarWidget_removeAll(){var D=this,B=D.items,A=B.length;for(var C=A-1;C>=0;C--){D.remove(C)}}function NaviBarWidget_setTabHTML(A,B){var C=this;if(typeof (A)=="undefined"||A==null){A=C.items.length-1}if(A>=0&&A<=(C.items.length-1)){C.items[A].setHtml(B)}}function NaviBarWidget_getTabHTML(A){var B=this;if(A>=0&&A<=(B.items.length-1)){return B.items[A].getHtml()}return""}function NaviBarWidget_getSelection(){var C=this;if(C.getCount()==0){C.selIndex=-1;return null}var A=C.selIndex;if((A!=null)&&(A>=0)&&C.items[A]){var B=new Object;B.index=A;B.valueOf=C.items[A].value;B.name=C.items[A].name;return B}else{return null}}function NaviBarWidget_getMenu(){return this.menu}function NaviBarWidget_getTabMenu(C){var E=null;var D=this,B=D.items,A=B.length;if((C>=0)&&(C=0)&&(D1)?_show:_hide}}function NaviBarWidget_tabListMenuItemsCB(){var B=this.par.navibar;if(!B){return }var A=B.getBarIndex(parseInt(this.id));if((A>=0)&&(AB.divLyr.offsetWidth){if(D=0){if((H[E].getWidth()+D)=0){B.divLyr.scrollLeft=B.getItemXPos(I)}}function NaviBarWidget_buildTabList(){var D=this;var B=D.items,A=B.length;D.tabList.removeAll();for(var C=0;C=0)&&(A=0)&&(B=0){var C=_TreeWidgetElemInstances[D.selId];C.unselect();D.selId=-1}if(D.multiSelection){var A=D.selIds.length,E;for(var B=A-1;B>=0;B--){var C=_TreeWidgetElemInstances[D.selIds[B]];if(C){C.unselect()}}D.selIds.length=0;D.layer._BOselIds=""}D.unhlPath()}function TreeWidget_selectByData(C,A){var D=this,B=D.findByData(C);if(B){B.select(A)}}function TreeWidget_selectById(D,A){var C=this,B=C.findById(D);if(B){B.select(A)}}function TreeWidget_findByData(D){var E=this,B=E.sub,C=null;for(var A in B){C=B[A].findByData(D);if(C){return C}}return null}function TreeWidget_findById(E){var D=this,B=D.sub,C=null;for(var A in B){C=B[A].findById(E);if(C){return C}}return null}function TreeWidget_add(D,B){var E=this,C=E.sub,A=C.length;D.treeView=E;C[A]=D;D.expanded=(A==0);if(B){D.extraIndent=B}return D}function TreeWidget_getHTML(){var F=this,E=F.sub,A=E.length,B=new Array(A+3),C=0;B[C++]=F.beginHTML()+'';for(var D in E){B[C++]=E[D].getHTML(F.initialIndent,D==0)}B[C++]=""+F.endHTML();return B.join("")}function TreeWidget_deleteAll(){var B=this.sub;for(var A in B){B[A].deleteAll();B[A]=null}B.length=0;if(this.elems){this.elems.length=0}}function TreeWidget_rebuildHTML(){var G=this,F=G.sub,A=F.length,B=new Array(A),C=0,E=G.initialIndent;for(var D in F){B[C++]=F[D].getHTML(E,D==0)}G.treeLyr.innerHTML=B.join("");G.selId=-1;G.layer._BOselId=-1;G.selIds.length=0;G.layer._BOselIds="";this.buildElems()}function TreeWidget_init(){this.oldInit();var B=this.treeLyr=getLayer("treeCont_"+this.id);if(this.dragDrop){this.dragDrop.attachCallbacks(this.layer)}var A=this.layer._BOselId;if(A!=null){this.selId=A}var D=this.layer._BOselIds;if(D!=null&&D!=""){this.selIds.length=0;this.selIds=D.split(";")}var C=this.sub}function TreeWidget_buildElems(elem){with(this){if(elem==null){elem=this}else{var pos=elems.length;elems[pos]=elem;elem.elemPos=pos}var subArr=elem.sub,len=subArr.length;for(var i=0;i=0)?_TreeWidgetElemInstances[A]:null}function TreeWidget_getSelections(){var C=this;if(C.multiSelection){return C.getSelectedItems()}else{var A=C.getSelectedItem(),B=new Array;if(A!=null){B[0]=A}return B}}function TreeWidget_setFocus(A){var B=_TreeWidgetElemInstances[A];if(B!=null){B.init();safeSetFocus(B.domElem)}}function TreeWidget_setDragDrop(C,B,A,D){this.dragCB=C;this.acceptDropCB=B;this.dropCB=A;this.dragEndCB=D;this.dragDrop=newDragDropData(this,TreeWidget_dragStartCB,TreeWidget_dragCB,TreeWidget_dragEndCB,TreeWidget_acceptDropCB,TreeWidget_leaveDropCB,TreeWidget_dropCB)}function TreeWidget_dragStartCB(E){var C=E.getSelections(),B=E.iconOrientVertical;E.dragCB(E);if(C&&C.length==1){var D=C[0];var A=D.iconId;newTooltipWidget().show(true,D.getDragTooltip(),A>=0?E.icns:null,E.iconW,E.iconH,B?0:E.iconW*A,B?E.iconH*A:0)}}function TreeWidget_setRightClickMenuCB(A){this.rightClickMenuCB=A}function TreeWidget_getCount(){var A=this;if(A.sub!=null){return A.sub.length}else{return 0}}function TreeWidget_setTooltipOnMouseOver(A){this.mouseOverTooltip=A}function TreeWidget_setMouseOverCB(A){this.mouseOverCB=A}function TreeWidget_dragCB(A){newTooltipWidget().setPos()}function TreeWidget_dragEndCB(A){newTooltipWidget().show(false);if(A.dragEndCB){A.dragEndCB()}}function TreeWidget_dragOverEnterCB(A,D){var B=_TreeWidgetElemInstances[D];if(A.ondrop==null){B.treeView.dragDrop.attachCallbacks(A,true);A.domEltID=D}var C=_ddData[A._dragDropData],B=_curWin.event;B.dataTransfer.dropEffect=B.ctrlKey?"copy":"move";if(C.acceptDropCB(window._globalDDD,C.widget,B.ctrlKey,B.ctrlKey?false:B.shiftKey,A,false)){B.returnValue=false}B.cancelBubble=true}function TreeWidget_acceptDropCB(E,D,C,A,B){return D.acceptDropCB(E,D,C,A,B)}function TreeWidget_leaveDropCB(D,C,B,A){if(C.dropWidget&&C.dropWidget.layer){if(C.dropWidget.layer.className!=C.dropWidget.nonselectedClass){C.dropWidget.layer.className=C.dropWidget.nonselectedClass}}}function TreeWidget_dropCB(F,D,C,A,B,E){newTooltipWidget().show(false);D.dropCB(F,D,C,A)}function TreeWidget_setMultiSelection(A){if((!this.multiSelection&&A)||(this.multiSelection&&!A)){this.unselect()}this.multiSelection=A}function TreeWidget_getSelectedItems(){var D=new Array;var A=this.selIds.length,E,C=0;for(var B=0;B=0){D[C]=_TreeWidgetElemInstances[E];C++}}return D}function TreeWidget_getCheckedItems(){var C=new Array;var A=_TreeWidgetElemInstances.length,D=0;for(var B=0;B0){for(var B=0;B(D.initialX+A))||(E<(D.initialY-A))||(E>(D.initialY+A))){this.dragDrop();D.clicked=false}}}}function TreeWidgetElem_mouseUp(){var B=_treeWClickedW,A=_curWin.event;B.select(null,A);B.domElem.onmouseup=null}function TreeWidgetElem_init(C){var G=this;if(G.layer==null){var D=G.sub,A=D.length,F=(A>0)||G.isIncomplete;G.layer=C?C:getLayer(_codeWinName+"TWe_"+G.id);if(G.layer==null){return }var H=G.layer.childNodes,E=H.length;G.plusLyr=F?H[0].childNodes[1]:null;G.icnTooltipLyr=F?H[0].childNodes[0]:null;G.icnLyr=(G.iconId>-1)?H[F?1:0]:null;G.checkElem=G.isCheck?H[E-2]:null;G.domElem=H[E-1];G.txtTooltipLyr=H[E-1].childNodes[1];if(G.layer.nextSibling&&G.layer.nextSibling.id==_codeWinName+"trTog"+G.id){G.toggleLyr=G.layer.nextSibling}if(G.treeView.mouseOverTooltip||G.treeView.mouseOverCB){G.domElem.onmouseout=TreeFuncMouseout}if(F){addDblClickCB(G.plusLyr,_tpdb)}if(F&&G.generated){for(var B in D){D[B].init()}}if(G.enableDoubleClick){addDblClickCB(G.domElem,_tpdb)}}}function TreeIdToIdx(B){if(B){var C=B.id;if(C){var A=C.lastIndexOf("TWe_");if(A>=0){return parseInt(C.slice(A+4))}else{return -1}}else{return TreeIdToIdx(B.parentNode)}}return -1}function TreeFuncMouseout(A){_tmoc(this,TreeIdToIdx(this),false,A)}function _tmvc(A,B){_tmoc(A,TreeIdToIdx(A),true,B)}function _tpl(A,B){TreeWidget_clickCB(TreeIdToIdx(A),true,B,true);return false}function _tkl(A,C){var B=eventGetKey(C);if(B==13){return _tpl(A,C)}}function _tkt(A,C){var B=eventGetKey(C);if(B==13){return _tpt(A,C)}}function _tpt(A,B){TreeWidget_clickCB(TreeIdToIdx(A),false,B,true);return false}function _tpdb(A){treeDblClickCB(TreeIdToIdx(this),_ie?event:A);return false}function _tfcc(A,B){treeFCCB(A,TreeIdToIdx(A),true,B);A.onblur=_tblc}function _tblc(A){treeFCCB(this,TreeIdToIdx(this),false,A)}function TreeWidgetElem_getHTML(indent,isFirst){var s="";with(this){htmlWritten=true,isRoot=(par==null);var len=sub.length,exp=(len>0)||isIncomplete,a=new Array,i=0;if(this.extraIndent){indent+=_trIndent*extraIndent}var keyCB='onkeydown=" return '+_codeWinName+'._tkt(this,event)" ';var mouseCB='onclick="return '+_codeWinName+'._tpt(this,event)" ';if(treeView.mouseOverTooltip||treeView.mouseOverCB){mouseCB+='onmouseover="'+_codeWinName+'._tmvc(this,event)" '}var contextMenu="";if(treeView.rightClickMenuCB!=null){contextMenu=' oncontextmenu="'+_codeWinName+".treeContextMenuCB('"+id+"', event);return false\" "}var acceptDD="";if((treeView.acceptDropCB!=null)&&(_ie)){acceptDD=' ondragenter="'+_codeWinName+".TreeWidget_dragOverEnterCB(this,'"+id+"');\" ";acceptDD+=' ondragover="'+_codeWinName+".TreeWidget_dragOverEnterCB(this,'"+id+"');\" "}a[i++]='
    ";var onkeydown='onkeydown="return '+_codeWinName+'._tkl(this,event)" ';var onclick='onclick="return '+_codeWinName+'._tpl(this,event)" ';if(exp){var expIcon;var iconTooltip;if(expanded){if(treeView.minIcon!=null){expIcon=treeView.minIcon}else{expIcon=_skin+"../min.gif"}iconTooltip=_collapseNode.replace("%1",name)}else{if(treeView.plusIcon!=null){expIcon=treeView.plusIcon}else{expIcon=_skin+"../plus.gif"}iconTooltip=_expandNode.replace("%1",name)}a[i++]="'+iconTooltip+''}if(iconId>-1){var iconClass="trIcn"+(exp||isRoot?"Plus":"");if(this.cursorClass){iconClass+=" "+this.cursorClass}a[i++]="'}else{if(!exp&&!isRoot){a[i++]=""}}if(isCheck){a[i++]='"}var textClass=nonselectedClass;if(this.cursorClass){textClass+=" "+this.cursorClass}var textTooltip=this.getTooltip();a[i++]='';a[i++]=(isHTML?name:convStr(name));a[i++]=''+textTooltip+"";a[i++]="";a[i++]="
    ";if(exp){a[i++]='
    '}if(expanded){generated=true;for(var j=0;j"}}return a.join("")}function TreeWidgetElem_setGrayStyle(B){var C=this,A=B?C.grayTxt:C.blackTxt;if(A!=C.nonselectedClass){C.nonselectedClass=A;C.init();if(C.domElem&&(C.domElem.className!=C.selectedClass)){C.domElem.className=A}}}function TreeWidgetElem_isGrayStyle(){return this.nonselectedClass==this.grayTxt}function TreeWidgetElem_setIncomplete(A){this.isIncomplete=true;this.querycompleteCB=A}function TreeWidgetElem_finishComplete(){this.isIncomplete=false;TreeWidget_toggleCB(this.id);this.treeView.buildElems()}function TreeWidgetElem_findByData(D){var E=this;if(E.userData==D){return E}var B=E.sub;for(var A in B){var C=B[A].findByData(D);if(C!=null){return C}}return null}function TreeWidgetElem_findById(E){var D=this;if(D.id==E){return D}var B=D.sub;for(var A in B){var C=B[A].findById(E);if(C!=null){return C}}return null}function treeInitDropFunc(A,C){var B=_TreeWidgetElemInstances[C];if(A.ondrop==null){B.treeView.dragDrop.attachCallbacks(A,true);A.domEltID=C}}function TreeWidget_toggleCB(D,B){var C=_TreeWidgetElemInstances[D];if(C.sub.length==0){C.plusLyr.style.visibility="hidden";return }C.expanded=!C.expanded;C.init();if(B){dispIcn(D)}else{setTimeout(C.treeView.dispIcnFuncName+"("+D+")",1)}var A=C.treeView;if(C.expanded&&A.expandCB){A.expandCB(C.userData)}if(!C.expanded&&A.collapseCB){A.collapseCB(C.userData)}}function dispIcn(eId){var e=_TreeWidgetElemInstances[eId];with(e){if(expanded&&!generated){generated=true;var a=new Array,i=0,len=sub.length,newInd=nodeIndent+_trIndent;for(var j=0;j1){var iconL=icnLyr.childNodes[1];changeOffset(iconL,treeView.iconOrientVertical?0:treeView.iconW*(expanded?iconSelId:iconId),treeView.iconOrientVertical?treeView.iconH*(expanded?iconSelId:iconId):0)}}}function TreeWidgetElem_add(elem){with(this){elem.treeView=treeView;elem.par=this;sub[sub.length]=elem}return elem}function TreeWidgetElem_getHiddenParent(){var A=this.par;if(A==null){return null}if(!A.expanded){return A}return ;A.getHiddenParent()}function TreeWidgetElem_getNextPrev(delta){with(this){if(elemPos==-1){treeView.buildElems()}var newPos=elemPos+delta;if((newPos>=0)&&(newPos
    "}function PromptDialog_getHTML(){var C=this;var B=PromptDialog_getimgPath(C.promptType);var A=PromptDialog_getimgAlt(C.promptType);return C.beginHTML()+'
    '+img(B,32,32,null,'id="dlg_img_'+C.id+'"',A)+''+convStr(C.text,false,true)+"
    "+getSep()+'
    '+(C.yes?"":"")+(C.no?"":"")+"
    "+C.yes.getHTML()+""+C.no.getHTML()+"
    "+C.endHTML()}function PromptDialog_defaultCB(){var o=this;if(o.yesCB){if(typeof o.yesCB!="string"){o.yesCB()}else{eval(o.yesCB)}}this.show(false)}function PromptDialog_cancelCB(){var o=this;if(o.noCB){if(typeof o.noCB!="string"){o.noCB()}else{eval(o.noCB)}}this.show(false)}function PromptDialog_yesCB(A){DialogBoxWidget_instances[A].defaultCB()}function PromptDialog_noCB(A){DialogBoxWidget_instances[A].cancelCB()}function newWaitDialogBoxWidget(A,I,E,G,C,H,K,J,F){var D=250;var L=150;if(I';A+=''+B.frZone.beginHTML();A+='
    '+img(_skin+"wait01.gif",200,40)+'
    '+convStr(B.label.text,false,true)+"
    ";A+=B.frZone.endHTML()+"";A+=''+B.cancelButton.getHTML()+"";A+="";A+=B.endHTML();return A}function WaitDialog_FrameZoneWidget_beginHTML(){var A=this;return'
    '}function WaitDialog_FrameZoneWidget_endHTML(){var A=this;return"
    "}function WaitDialogBoxWidget_setShowCancel(A,C){var B=this;B.showCancel=A;B.cancelButton.setDisabled(false);B.cancelButton.setDisplay(A);B.cancelCB=C}function WaitDialogBoxWidget_setShowLabel(A,C){var B=this;B.showLabel=A;B.label.text=C;B.label.setHTML(C);B.label.setDisplay(A)}function WaitDialogBoxWidget_cancelCB(){var A=this;if(A.cancelCB!=null){A.cancelCB();A.cancelButton.setDisabled(true)}}function CancelButton_cancelCB(){var A=this;if(A.par.cancelCB!=null){A.par.cancelCB();A.par.cancelButton.setDisabled(true)}}var swfobject=function(){var Z="undefined",P="object",B="Shockwave Flash",h="ShockwaveFlash.ShockwaveFlash",W="application/x-shockwave-flash",K="SWFObjectExprInst",G=window,g=document,N=navigator,f=[],H=[],Q=null,L=null,T=null,S=false,C=false;var a=function(){var l=typeof g.getElementById!=Z&&typeof g.getElementsByTagName!=Z&&typeof g.createElement!=Z&&typeof g.appendChild!=Z&&typeof g.replaceChild!=Z&&typeof g.removeChild!=Z&&typeof g.cloneNode!=Z,t=[0,0,0],n=null;if(typeof N.plugins!=Z&&typeof N.plugins[B]==P){n=N.plugins[B].description;if(n){n=n.replace(/^.*\s+(\S+\s+\S+$)/,"$1");t[0]=parseInt(n.replace(/^(.*)\..*$/,"$1"),10);t[1]=parseInt(n.replace(/^.*\.(.*)\s.*$/,"$1"),10);t[2]=/r/.test(n)?parseInt(n.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof G.ActiveXObject!=Z){var o=null,s=false;try{o=new ActiveXObject(h+".7")}catch(k){try{o=new ActiveXObject(h+".6");t=[6,0,21];o.AllowScriptAccess="always"}catch(k){if(t[0]==6){s=true}}if(!s){try{o=new ActiveXObject(h)}catch(k){}}}if(!s&&o){try{n=o.GetVariable("$version");if(n){n=n.split(" ")[1].split(",");t=[parseInt(n[0],10),parseInt(n[1],10),parseInt(n[2],10)]}}catch(k){}}}}var v=N.userAgent.toLowerCase(),j=N.platform.toLowerCase(),r=/webkit/.test(v)?parseFloat(v.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,i=false,q=j?/win/.test(j):/win/.test(v),m=j?/mac/.test(j):/mac/.test(v); -/*@cc_on i=true;@if(@_win32)q=true;@elif(@_mac)m=true;@end@*/ -return{w3cdom:l,pv:t,webkit:r,ie:i,win:q,mac:m}}();var e=function(){if(!a.w3cdom){return }J(I);if(a.ie&&a.win){try{g.write(" - - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/html/calendarbottom.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/html/calendarbottom.html deleted file mode 100644 index e451708d1..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/html/calendarbottom.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/html/calendartop.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/html/calendartop.html deleted file mode 100644 index 61b9466a6..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/html/calendartop.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/buttonl.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/buttonl.gif deleted file mode 100644 index ef003aa83fc0ae66d80456412ba559fe60d56850..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 351 zcmZ?wbhEHbEiwG-+#V-{qghX@9*D# zzIOG|vuE#q{rY|H-t#l3Z{522UbNcqZyU*Xh|ML0sw?_|O|NZ;#`0=~X zpS^qY>cgW)udiKw`2E|@v!`!Adid(^pMRGw-n(|?;iE^de*gM&@9vA|&)?m;`SkCf zzu&+Adi?0spTB=!zxu#H7Et`j0@kMkB0+v)V5>R6nBbw4#&tqPNI<}1zF(SF3ui(^ zXxic{9WGL_&khz_tT@HKOm$+!X5BMgPU~i9&*=EGY-zfY9}ka|RHKi!xQw`pLZ^?2 z8XupC$V49vpeaH#1bk#=xw(}Wa{I6?XH#0?!?JeWS|5ISVg4;!e3*Cc+Q}dp5a8tM I>d0UX08yf-(EtDd diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/buttonm.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/buttonm.gif deleted file mode 100644 index 364d5109fb5c0163edd9555a8627ccbc6c185213..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 168 zcmZ?wbhEHbWMU9uIKseCS2y?6$(v_R-#T;p_W5&nE?vBT?dqdjH=o?Q_x#br*N+~( ze*E~|vuE#KzyA2<)ra@*Kfizf<@4unpFe;9{{82#U%!9-`tuhA{{8>|p8*@t0SSWa zV&KqaU}T8cz`)$bEv6AN!@$vrg@a$pBH@68BNGb;pNv7m0tZGW7B&tJfddN;G%#2L E0Q&$?LI3~& diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/buttonr.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/buttonr.gif deleted file mode 100644 index ca6d3ab02dcd5e40a8167bbb282328b31bda771b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350 zcmZ?wbhEHbEiwG-+#V-{qghX@9*D# zzIOG|vuE#q{rY|H-t#l3Z{522UbNcqZyU*Xh|ML0sw?_|O|NZ;#`0=~X zpS^qY>cgW)udiKw`2E|@v!`!Adid(^pMRGw-n(|?;iE^de*gM&@9vA|&)?m;`SkCf zzu&+Adi?0spTB=!zxu#H7Et`j0@kMkB0+v)V5@d$D6o(b={u3krjTJZo6&*c@F5@P zl^IJecI0^XzDQgnRm~UZowU|3Vo_IDlHPh3a}F2o`Ta%`Qd0HmJb~ge3M%d5+JSt0 zA|m~2B7p(|LPFDpGy=KjE6I9gcF}S+slwI; zinhtp4u#SVMKX@XGL9v(P9>_2sd~-{TCVB(?&&5z*;awM3hvcbK}CiEm5!nLj-dt7 z8I@VtxkZJAMMcHMC8Z@mR0;%TKu``u<>ghCmG*h-EOR!xB(%EaFLN(m>r=AAqhx(Z z)mrzm%`PQdT}rpPmTvc}+~{Au&Ano$Pt^|px;>sX2fgc$L^o`RXx89w^=ntJU$X#OP=GJu$CmJ7OL^av@#D&8;won&OXp+C#P~8vOt~bECjYiV z5Ko&;q6y<^l4zgTK#-lgPc&q%c|#JY8Db2B$-zw zSxvIqbcvx zR`zMAeVQx%YFfWGzf)J-yIj({T-2+l_3N&%mZ_{2Dr>cJ(8#E*VK4x-b#)9TlQ}#! zJIt9InVuWv&W&*;<2=a(PdYIpo#acW_)?BQHZ7EKg)*LKo-dYH4J=i&wACyfovp7Q zHa3l{HjS<}kLsJp4A;g1M*7X$^`n40O_O(-+>I{L<{)R0EnFR$)ep}a*y45Z;)+D6 zm#XwKm404rkZTMJOU4D=9feY<)#?_Pj0&w$sWYl{!2Y5$tpB>T^YGEr2TxvZJ>K2= zZFd{6^K5(P`JXRd?CtIE?E?<>_xBGD4)zb;zXN)I*oO!GKgR8?*@tWY!#(^HAj@~4 zhd)=;H)2~(SfV9;ceFd!dJ#2^NW4u!L>e&e~ZY z<{-B4{-_muXW4!%(Pvy5cJ6m)c>V)%5I-WC>5em;o04p-ho-C3Ksj7OHC<(C{V#zo z@?DvnLyUn?b62N0Ef;Q1#|}i?1QDtrRZitBlIT9u>0Wdnq`O7&G4t5f3G9zseDv}zb^fjL5?`dbkP>dC3LclZt+=Wm5Ig2i718HarhPstWQa5hiM=`wyK?9q#}D diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortActive200.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortActive200.gif deleted file mode 100644 index b4b3d84d19c7563bab4d4f430bd7db0f901e9624..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 849 zcmZ?wbhEHbRA7)`_{PA%$jHdV#KXqH!^zFdz$(PdEyBq!CMcmOEvLvJWXLRGDzB=i zpr)s!p|7TGsHJDDYhYqzY-V9;rEBSB;1Z|fl58KG>*ng>7@8j+pWq%@Wzjcf5nud+>kRa<U z-LxgVaYuB^u9UXT>7840dbcHa?ak`jn>TS^@#Nhh&4=Q;kEQk=$m~Cu&~qYp(xKvM zhstIgsh)kLboQD0`6r9#T&P)eslB~p_O$-#Qzp)uHfiq6DYIwISTJW=@9cFG=B{s@ zv3cVB4O16xoV|4O{1salt=_h6*Z#wY_O~uP-n#fy&$3euOD?ysy4JJ$@{Z%TmmPYx z^6>Mu$6jte{d(8M_j@mYIDYid$rHzqTz-D=+Q(zJKA*b#<-)xW7ao4Q`Sjb@uiw7? z`v33WKL*l);!hT^CLIt7iW3I*e+_v}d7*+rf*k^a0s{Q}e0;nUd3kuax!GlMo9D<% zdbznTTI}Ju)N_T~3Quo0@tir$vY~nDSy>tB>1j!c`w|l355~vE#tO%5oV_{I%>0~* ziJ^h6mX4;H!Yz4uIXTX-jZL!2*$&}OP7Zc9jH zyKc;pP3pYwDgiaQytZxP5nq-jj_E75xh>>Qb)VIZ(9t36G><%nF;rLoJSo%y9-$#@G41Md*rYpV9iCprwxC&E0j;P zG5Tpf2{^c2D6tPqLK{@8W>-*ZW32;P_Qn4 z$9O<^$ES(Bl3Kx+ygN79d5LIzSZFfyeoJSqdaB*4`{(QJBOP=8s4q~M{pb4q#y_k~ G4AuY-31#^J diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortActive250.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortActive250.gif deleted file mode 100644 index eb2dfabc55070c9a1bc57ed8225dea9fd3e54e76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 995 zcmV<9104KENk%w1VJH9|0QLX?000362MPuV3kV7f00tKm86N-*AOjF079cGYAu=B- zI4db9C^0-WH8eOkH8(dnJUcoyJx4b`NH{-8Jwr+_LRl_FV=YE#GEsa&M@>XYPD)Kt zPf=4+Q&eJNVrpt?cXxMqcz7{aiZ5K4GhdlCVV*r^ojhluJ#DQ!Zm~abvO{X0Qg4)7 zcbZ>%onm{OLv5!?Z=y+XqC|18N_47Gb){5zr&M~bT79WQasw_}RD zX^y^fj%5#>)b(zI|oyB&W$b6p4eW1;K zq0obagNKowl$4Z%l&OrGtdgFtjG(%lrn9W9tbm`#grUcVq{@z|%bBpwgs0PrsnDCU z(4e)@qq^C~#l^|W%H!kX>+9?8^!)z*{r~^~000000000000000A^8LV00000EC2ui z04M++000O6fO>+0cpe=bh#QKE8jTtm85EL}5fc%Y3}bnNoSS3<5DlWEqzG!a78$Bi2_vd;Jz(jKojCA$;=FhD?n0A>Z4J*yT# zf*$@xyTZ!$wPc$Y0s!dU%a<<(xbaFX^tvtIlsHE6_Fa4duFM=H2qb+)w=hI5a9jjf z%=f~Ot#OeO=BAGrm=>EkU#POfqfC$nYSI$(H6Jl>VNf$>Z7|17(Q{)t#96G%u`etJ zbhh#m^zX^A?&Vw41q@1`P!#C3aD^a29bAFWUTV@fm7iI#AgG`vh|7ZDeIJGXN_u&e z{-9hb0!8Bxf<>XAf?VSjHq1%mWPy=?FM$^teVp6_#)0Pj1P~EVq!UDQAB`YhbhF6u zi%x8K!IMu{q*#PG1NG2D4l3|)!iR%o^MM{{L@`AaJR;%a5l7%4qzzfgAj1ksnnF;* z2_n$Qi5i?mDJ5S7V4;g0b);d&8D?~8Mj2n0A!Zp&EK%kXODLgc5^Nelhc0l&Dd(Iu RVzUXIc;>0+p05M~06XX-t7rfK diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortActive300.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortActive300.gif deleted file mode 100644 index 9afaa6e5f31638731703fb2b6e26803145e8149c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1623 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 diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortActive400.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortActive400.gif deleted file mode 100644 index 2c733b82e84670f5e49319314e56a0abf91607f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1993 zcmeH``#;kQ1INE(XAa_QD{OL`Gg5~VBO^81Y(uLsm&yI^jB-6->%E~Qh`O`V=RPv;MK{(|TI!~2)dZ=cWWL#EnU;Qa`|A>b469Vkp* zPC-e27eWE9s({o~RaI3|)low2gR5b7t7B1G`f6GR%9UyRKj0IMI zzmbs<4u?Y+IjbI~Ynaisjxey6u0LBc4jl7P!v|a2kc@1-Oo^UHC|*_$KBi<}9L3k_ zWWXWXZ)VPkR&Fek9hpp_QYaKU-Gy+U=noQ zI^u>wK>NY4E;D9_8M6z2uG=cQm+Y777?|!7&N&%TN(im?j=$^@d-eRqB4SjFLtHaC zwv8HpiAw-9FsA zL13qER<}Rc8=l`EQP>w%+?Q~rKY`az&m8v77W(9l2ILOki{SWt!A24JC&ZEmX=q^Evm}DQd3e4oqs>0R#ezDp3yMHx&DOPG@W;IuJqCUT{CMqn}5*V|$Li7L?r#g2`$@=LUO0gDw ztbPBK3e4br<;yT<_Hmcn;R`RpOqVLpBaroBaJL?{WXhf)?zmA$DbgX8@0Bm|qULYT zC6}lneJFWa7kGetvuj&2RM}s)QL1iM@UPg7XZ7MzBag1Lvn(N4^nhBxHTPfPY^dXy zjgyb~fU?8craToMr69tFIgbmz7CaGfC}c8W*@=@Awa>jM$@Li?e1|-fNo}UkdXssIE3*KDR$UAft(5&iQguDw zQH6Xn7*fu9FYM6VcV_|S9oc)y&F;c#(BQ1fW^$=-tRiEYAODFI`ZPoGZ!(&*7O_2> zqg@^^oBlyFeo1Gs#vK#rRhjA+tnPhAl2av2IH6?SZeE)V+B7bK2EVV9(8EFI{G4h$ zVlK&KvN7bW)I@i`F3$xltIo)P+H*A` z;pKLFxecjy>e+eA>nQ)T7!Ha~7}WboF=a!-gfBKM!3h~(hJPY_l?-1$HXxBzFdkqJ zHGMOv)M;wgpP$vcRH1LaTAaE^20|N{!^)<0hTGS+EKs*IWdP_yrX$4S)#mMoV^||# zFJalc?VS{VnFk&PD|CDf;mp<_ery}*kfOyaw7|Lh+TE*Fzdi=YxWRe^@8bZWvs%lu8Wlj$u=&aEbVb&DjZQDGUQ@dBJukm=ujR^{JskE^p$5rT}^By~c;!Bv`JGNdMgo>6-?zZoD1k z)xRD0C#C0?_bte+wflKM_#+rXwmpJWDH0lWrg_sALcj!pg?B!q4nc&D;4y27q%X~a z)um|r_FgxK)#qr>J#HM8(FpzR>6!(0*s6{5jbD4y3?qXB)oxMdRovGPb`{3nUM#M@ znj`4kDv|4}OuCoOysErNd$3WR2Cco84Plg7tKN~u_>8ecgpy>gO! z@!H_B#mRLG66%*lG;As9T2|AyJhgLMaO?5XX$M-TuI`$(cJ|_R3zx2LTXT2A?h~8# zp5C9$a14b1D+)z?t%O{>_L#x$R zL0)tdZC#YE7ZyygM97y$YN@4G=9~_5rE5;-wx_LsqMJT^cy14z!;_tJ{D8DD8d31n zAqe9T&L9*(6oaiIq$EPJ8|nL4#TgWxS1Xm3#mcG@Rdq>Ob!l0RQeC4e*OZlO)D^Y$ zCAeA+-9_lDp{<3k7WXc(+YQh+L3fSQx8Z&>o;JbMgpOvITJYp1Ot+wI+iAL+yx7YY z``Aw_TeV_#7&Bv-9%as9w)la~jq|Y;u~H(}J9wa&lzTQYN{x$eT+(1qBpDK~EA@U8t;U2+?9RnheJ02IC83(8obv z4)k^P_jg$bEY?Ab^_^vW$ZVf5+b7M=X|w%HkIgnq>pzxVZja};$KwtJ0z^S6w84M= zQ3FY9;eV6ULO1jih%msvDt*>H*tj8Dn4#*Hy-ujt4C`Jk_eRF=TAWF^4PmJ4~kWn#SmvosI87G{K anHLM%rD~!0da`&^{NcuA#hvZZIQR$0^&S%d diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortHover150.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortHover150.gif deleted file mode 100644 index 17f5abec3b15b18532ae72adf38e8331ccde1430..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1121 zcmcJO`%_c}6vw}Nx$7Dj4;91dhcwH~3{f8PhJaWe60*>C$4H}$!DccLA!nioFGpRe zWH89JnM9isXhf$Un#M_C6(*OL?6M%c#6whE*j?fcd+$Bn^?&F)pZUx==ZEvtIm+b3 z(6Agoti>W+VPs$!$XTqCL$M0pp78O6w-?rWVZ(a7;vW?h6ddmlbsWnjfO`|166!Q? z$>37JrGncFPHNMk-Um)11Dpz6CbBts@e!F)8L?|m;_grhWnh>xI7}H5p0p<-DKsKE zEHXJfDkUO1H8MIiDrRq7eEMev`_t7qM~@bjlzdtK0V+O3MJ_51qcR^Ag*Z`&%3_>6 zhSnw+ufpCAdncy#Sh$N7J)9C95IVtkgSz49fx`et9~}K~m|-1~ISt@@Alw6Q0QJJz z2fhzv1W7i5`XLw@>Sf8ml98o8xpM$3gW&Ij1|gb35`)b0Kj1AO3;1D>#1KQnj9_NT zqL?0ma}4|_Xbkj#agKu@2R(%N7$otCp%IqGS$f3s6QBu*Pry$?m;_ltPZ*kHgemYg znK%WSg5ZE)mysQ!%M4jrvaw`m>A`B}G=zUa(-2*j(F|x7;;f8j8JdGQC!={8ErJ#p znqg_4r9}lTyAdxV0*MT*u(Tvi6ttosfhCd?xf6Mmm7Ojx*Hl-ZZM&&$zp1@_;~39=fX2{q=D0`rW^ElaqRzt;1pOayYuCtV6WWXS3M_ensG&g5VS-MCUS3JkJY) zgg_*Su8@?cNBVzh^D_H%^$wR^KY`UES`ND@G^LsiudADq3hGBs`Mex=hQpTU|Ij@5 zQ9x?(6xaOioin~p-;TO#2lWRMbjRHox@DjuXz_=Gx`TL)$Rt@;TP)}SlI6Q#fiFg3djT823iz5s;*T2 zrV2Sf(JSu^TMDhpekW)wp}7b>XHUBOc2~dqP00BmAFuGpPrK#s&3}9`?yHF#uj(Fa zKG~jFk@v&q`}R~-Lspgh{FU5GQJ>GmG?yMKU%KVDDKdZLyHZ`H$NI6%AddU~FP!X=M>%#}Mhr5E-E8?BbS?5LZ&1pORf%T3Xy(#L!vF&|ASUv5KL; znPFlZ!=x^Tg%cPKY-PBxm*L$phKHva-k)Xob(HbbDTaS%82_H;e1C=E{cVPSR~SFu zXZUxA@!bQ4FV7hMJ!bs(n(^N!rvHB#|9|5=x~=-y?y9T%3XUBvId-t>>$QTfHwymW zE%^JlqNAg|r+;p5--7-L3nxxq`1f1e|9>t2|4;k>f5x$+i@!cz@&Emny?amZ+kffc z!Gp(+o%#R&>bGxS|NZ;NFld0{PZqFSbU-91P8it#H3T*V`tl3#^YeA`_3-xb@=WC6 zp28;HJR?v-)Y);K(}IPIoSdDPI6H_0%xseI_P2B0w0X-`7grY-Vb3*zV%}~>#zsdB z4E1z%^>lR9bu={8E(u!i74va7HZ?wc#PGh}L!Hy-H8h26X0E<|^Ue{Y`^S$zIdlH` z%QbKA+s%pt%b zkkH`C#LT2nz}9=~SdM8%4THnxWxfnDNjy^mbmI?68KvCYveQxBL`2F^F~{8JMF6ki zshQqY0l|lA9j)(NQCNJ>uX)CoL{YXT2H$mGmx$fTaG7mgk!9i{GD9I*a__VR_RiXB zpEfQD#=TC9yEvIAZ*$mvbhY%1o7boR-u0K+{k-9&J>GZof_VaDHj8|(`YW)2q4DMA z75?%DwF^ocS!}Bu3!7Bh`)+T~e{t{Z@3!9i7E``R`R&>9=JAPM?RY&60S0RToOl<$ diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortHover250.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortHover250.gif deleted file mode 100644 index 9787ba76070054129467d2696cbac948832c3c8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 880 zcmZ?wbhEHb)L@Wf_{PA%$jHFQ%fP|GA;ixhBFLaC$DpakV4=ZaXU3oj1co-Ire+ov z=GIo$9@Y##E({gf3}&`&=Jp;I_8vCQUQTX4uAY7#KK?#_f&PI(LBSzONl95*ndRkW z6+l!`URhb$Udqs2&d^`UFtLVV^JIpT^Vtt>WH_>u;pAS1N1Iq4?`CACF@_Ik82+7Mcyfj1$!+EjR~Y_ZX83TM;olvG-)DvYToL|rTlmu>hJTM4 z{=H`S|C#asABI1lIR88n{_{ro&u7sGw={o!(fajM>&GX{3!D88uZcRkIpXM^h@%IC zj~pF7e_^DGTA3uKl`t|GgU;q67_m6=t zK=CIF*d84a35pX2_J0krO-<3#QWBEw5)$IQqT-^WVxl5brwR!R3kq|E#56CMAIikb zy=?i4mCJZ|mapaI}n=d7))taaG~ zcgzo#k9BvrXYXMD$nMD#%jf1V&5hrfYq1CHx^>6#-or=sPoF*i^UC<$hbOtO)A-}< zitT=_jQ;*Uc2CS_j<(&)^%M8YyuM`0!|`$2k*fR0rk+j|RCaFQFTD9EZM{3cj6v>$ z4UUtS^~^R(np2{2UU`CoJr9F|z=Dj6jBfo*1rrv_`bXVt5agMp#L%!hVso1A!^4{H zQ|q5kNxwhZm^&jnzaIA0T5>q?YyoqVY{(1)12WH-45gr$h2(z0le9**g j^zcD5znhPVyln%+ z-UU{NW;5U3!f2E-@bi^4le)qb>08J>;M1VvwYKmefy3aIdb;w*)u=BAN%wBMPq}tkS($Db={~6ml9MDQrixD! z6BiSmBN7tZvardYVd=8vD^{*rDZFTrFK>KQ+?K7|w(r;(7w^Zjt~oxzhd&`Y==h0~ zCxTA}1)d8G48C~Diz|44vkz}Vq|1HhhYuZ{9iKVcy|l5hd;Qw-gSokl8jIV_CLg}L z_y0b4{QTU~;OpmN`zlpAWDct5%->$;{BJ6EMxKIoxy^&8A0`$&T(8T!TlAy4-<$(o zFRpDp{jpD#tMz8n%g4|AJv_Tab(5~Vc)av@j`8N6mWt0RR^4`G8_rZLRzK6PD1U8B zrf`C#ynAWdofnf6FD!IvVPL$pc+E}OjLYv1927flGw)yQ$J)PPE=&!KjGtcJ)o##d z;Bb6o`B&3xnRC6pz?vu?hGVCe6*kJTiH8{`hbY%%+^Kk^8Ib4H*&`F=((#C4I%AJS z(uPd;^?V0|e9uUH?NG2bzosm6%E0%OV7*L&PST0Ko@mADf1*=TLX{3NE^t$2`hIF! zbK+;_=t&)Y53lrY*XAg%)R=JAHF&L;Uwdq@Vp~uB_Nl8Y0}pQ#Huaq4qABo+Hzc6; z=3gNn;mKE1f&?4{1f5u16iQ`-S-sSR0z-XM{4AKxU5{!#qv~V#mOm9;0Fqo;-`EvQJx~j~j TOQvPLTDfA`DlLgd1_o;YS~9N= diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortHover350.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortHover350.gif deleted file mode 100644 index eda5bd781cc5bd965446053c72849ea6fec97d14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1227 zcmb7B|2xxp0Do^RwZ_=Zp-Jm}>0${*IrAkCvvEC(FdQ$Y_i+T^U#D z@|;?E+SyaF?T{9pv@22PYjurov#hpipR4|Zdp)n`^}Jrs^ZM!ailUIV2c~QXp1=S; z1GO61p@9PyIAVdFot=}Dlj|C=$sPE4fIu%0>;rdmb0ZK4X^9}61{kS;nFWe7U`Mk+ z2?JJg99F`D7Z+`#P{_##Y4jgT3JdegGGM$+SalAJmj_Ot0QJRy!@xJNfrtY-s)6K; zv$O>#mDotzanjCD##wpJq3;?{4}d31Fs=g2{lGK;^eXUC1@sRA^bqJLfO!%?YBcl& z4UJ>o%mVW#E&xamgFXUic_lQq(eNP1q$Zjsh$j6e(=5@nNHi@Gr8nu&e7H#;2EB|k z8W`sHIp+6AvkS_ZCr;%RSDoP2oUEwh@px=@HJ{HHoT+7hiq(S3+6KO$NhlQ5H#Unz zBC)ttBIz=|<@fXq+!~rtDwU(7qa%}=xw$!w=K12{KU%FutJQvZZ-5}^%cB27)*CIq zvIUA-o`exu9jH!1TlpwbWC>Ftv%l*$xG>p#jmWZ6R_qnA7OqL>{+DlnWzqC6v0 zrpV-&n5d}v7cU}XB47U-@j5~u^NrQcMu+uodX!7 zb>#Lol=E7fxxosrmg^hBz>1CAC9M=566beAY>^sK<#+thWS{S&+a(Yj>6T>c&Tp`x zkvhrPS(s=dw9GeJSBC$<%m~&SMDzu1I6I;XBFu!DeuY_ zeC^1#u)iH?v!t4_EwLj>Yt!0hPK&zDi!ZvpPyh~p`Ru-I8xsbir|{9PThew!=LR4! z;>NthRT)$Mw^;#$!z!3%p-Xm9rORGlMM%#5&2(vqB(HY)>9Sg<4qd@tZ7DY;x)zZy zWx6sKsCSKHLi+Mk2M)U6)jRn&F!_lPFCffKJJ`~nJ zPenTYifP7(d1<=~^S^#XUuC=-n|=tHE)-^ZDx9dhd?`)o0q0m)*4;qeR3i03!sBS$ zK+`jh`hu?ft7Ky@mqL7Fs|in=@ex^HytS2!`gpj7A0*`XrrCj zKZ2VYx^os;sOOi^cPkb#{ zs9aL1RPg@|r$qi2v-sjKp8#qliJ8J;1ycO{D83oK-aZ^}PfssTk35eOe?PEUWBRV+*!>d=CRm}6yB!*v3>o-s;S z4e^>)d?j5sc0roVzvGl)v#W=j6Rn|x)`&_}Vx{>x#>jMS5;f|TBiq{SZMJO{{;7e! zO=LIj73l0V=|J0sW|z3$SQF@yJ0Zb8Eg;&@DA0-k=iN@4nxVZjLT~nN$?LfIwW!Wa zpNks$RMUG6cUH(ob_E-~N_~V(n+t-Pp8URQE&V#TGD3JqB{sH`TgEph7Be%$5DkR!On#_{ILC45#@eHZ6} zxvwGs_w3phGxz&5!tj;X+`Y5fZ{Dm?R-s$qxpqTHFbD~x`yX}yaec4Yh88PwRS%RpwDFZi-6_HC9H$rd|uv zG2O3)b}pE{^FlC`mvkcXMI&ExRGOLi7pc@>U~eTuSe2x$fR@y zelyM$h%SXq1k+CMe30wLYdv@GFAmYiG zXHGM7tf=dhA;UyMUgkV^CHCzv?Qh$@o^ZGxU99C5xgLQdskQ&OUIR8Ken4nok(LT| z2i=GUb&N??%%5&%M@i}!hh;^#M*zKEjd;?fKAZLjyQ;M|q_Rn7noXbY4Y}gbxH`OA zer7c;6F&CGq(kGtS$|K*HT2UXPlu9FRtv+a*h6txm3B(!>v95zW7A`6MI6l`U+5U& bn2D6*1!t#}{}iQLExr-lh+LdV2C)AZ+znjH diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortHover50.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortHover50.gif deleted file mode 100644 index b0e5c02fb0b42835a77dae5d9340079c12f1a82c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmZ?wbhEHbDFuRdq&kT;uOPNmYW4OGL`R;b+`#YGQ?_#}p zl;PeX)?3Hezny3Je4FXV4Tc|Y8U6#&e}=VlLiX-1IlMLW*p`r^yTgwk47hQl{?48H zhxh6>Z|c2u>*DQOmv7#I_|RnnMW(Ogv3Tv6AaRXs7MWyAUJ#W?76e&FP}Jf_4K8i zH?Cd1a^vom8~3i>ym#dCvs2feAGq}D__bFjZoR*G=fTapPj20RcHz$J3wPfgxccGH z^-t&TeZ2PI?cFDDE^!ckG6t5ep&;7QL3_p@^(6=G6279D0k*I#+1BQiLdSyaxVs^+TZ zME-f^`44&yDm~$5?`Nv-;#ip2)WRXaXT!0;Rbhd#>okq9NlOYRDfxbqnCCOI$brEc E0K}SM!~g&Q diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortInactive150.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortInactive150.gif deleted file mode 100644 index a931bde7eeb09b8458b262c554779bc106e4f2f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1161 zcmb8u`A?e#9LMn{Y-A*Akbn+dv~wXDun9U~1qyV)L+Q9rR~#GF3a$$iFlOWUVSr3C zkrCVlh+}akunoE8?)kK(T&3sJyQM8Hw6srwmb0b8{0n^Lo$qg-AHP^!5-O5#65)f` zMj(9s{QUj>k!LRihg=8?3kye~BO(urxfm6Lii(Mhj*UXcMx*1x`mabf7Bm{?3~ z93~B+cz-Q-Q&Bqtw3knED*HZDMv;tCQ;Vt}ErB{i!a*E1`#W#p0H%q^( z_`3AY&9d91@~Vo8ikh05y1Kgh`udiZmbTWX?QN~??QPFG+8ZBrwmcsi87I@Il;{0m z_sDeb#7y_t{MaOQe2O+frcILRQxy6jW$xva=oMM~iX!fzh+b15GL=rDGAK002%Sr2 z%=S_@r^D;9>4lgJyT%}bcTUwOr1J5PgmTE0BokgOBWjd>3*{U|cq9q%o-xTW{65YB?XOrqTWy_mtqfNT( zP#W#3701#Fys~OGnayjKBUY;whGC7-rdwUtnl|*Njb-zu#$?y6Z5!6?#>1@JE0#?Y z?9iC^^p+hXyt52D&9<#I+m?BK*R-*3-PkeP-ByRoX5Zb|+S}aP+uq)>Z#&m_-Hsin zW7lQhJ#aYPJ1+O0^I+fQb{=s#UH>_F!+qdBg7}|K?;d-zICpf9egbjg0HN-vX4g|2 zyxu*9D(dW9s{QHsJ8xkwSv!DVBKOcFFpKvI@UypHklpy;84y-gIMk(sqRXUR0rDS$ zA9ts>hSCTLY-Z;pxS*=NxDg7~$IfUv9K#@eh2MB=K+^)2zhUQlK zJpftzZBO=xKv&9>;Pj@Gfpx_Dj|WP+Jzd9}6pe_WPir*IrxUyo@sb~JtbdP8Awv&2 zeICBaZ$}dSufN_4J{3-y%=WH?EQJr=Z=)v?{*;zy68`uVsQyOFp7=Nv)9v+Jr3o1R z@^;U7zt;0*c=4UV1AMur>AIfiQ$1|TZ_aoqUb9YBhKv-0MI}8!4qX0U7fCZUl>-e8 z$j-O)ZeK3#j!qoEdY^Jo>ecE~fUF4;qOGgma0!kZKzZ q`%$HY0QlvF(miS9=`nr00 zs#*qGdd7N&CPpS^re+paR#v*^E{0Za#x@?#PLA$AAz@*mu`$t!3Gx1sDM3-mQOS9+ z8Kp@{iJ2MciRt+%*(Djd#o2}BB_$=Lm34&`4VAS`y}dmX`uiqL?4LS$;*4pNm#*8n zcJr={+xBeTxo`jeeRDRQTeIi4@?LD|<|JjAxFD>7Fb@je$tM}j7ci`~agEzMx zy1e(q_031`Y&&sp*Xet^&ph0J;mP5{M-HF8ee}ZpQr6;GaKRbKl`H`!y zPF#C=?$*l-*B@NC_58-YXP583K6dltwTEwSJ$`%c!MD55KHPcn{o2!?PoF$_@cjLg z*Pma$`}*kJpEn=BJ^T3o?dPBGe*FLX_3Ov4zrOtW|L@;FaL7@CQ2faPHbnXp0A1^QWByJ8~cBQoDS*nt{nwnbLi?p>C>S*h%T&b(8EjDvj zld93it!Zh=I}?)=6XV5$wx(}RkBtk94GRtQ@%Hj^a9d>NqOhJir2dpMH9u`#)-pqF^ zYlF9u@oW{H9Kj_A*X-ZoYc9EFdQJ}~TeL&L1tk~RxTy)d+76o^JIcTx)g$unxQL-s z_0vsvDw@t2ICM?Bn>6oJ3fKOU{~JD)Sowdnz2tLF({ZjDr%h%0sVN_u0%TsQ`=(uf zw{h{IEMH9~6@v*68W^9OExxVduyDbP=*rrGPdHjwQjG;4r TfB*3KxRmz(eSaew85pbq^0sY@ diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortInactive250.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/DownArrowSortInactive250.gif deleted file mode 100644 index 84e09794e290a8978c039dbee840b2ae6c5f513c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1017 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 Ue=-nYnlH++`Cx*@N(BaM09Lwt?EnA( diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortActive100.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortActive100.gif deleted file mode 100644 index eba9b24977879bdd2202901e36b2d26af0f217d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 583 zcmZ?wbhEHb6kyOCUP1kO4?@1dN%wjE(+$M zO6DP|R-u}<;i5K$x(*SB&QYdr(dHg;R-UoeUUAY6g))xCGL9v3P9=u^mG)8fu3@=> z(HZr1)%JO7t@F3I6|QnEUguf5KCp6)OX)VxvQ1v)TU^U_xR>v6tJoD@w>h9@YjFL} zp!(e&H3wpvwuCh94QbjN(X=zMb8kl9{(}B((QOA(`VMDLJeV{2SkaUN#ZwO!PCZmM z{cy#MLlrX*Rn0nFJ^M)2>|@n)j@8aRUNYlk>8z8r^G{XIKiAyU*w)h2*4o_O+T7aG z(%#zA(bnA8*SBK%(sgTAtzWx({n|C_*R9#Oer?nI;|+_>cC9$yzxw=?b>~}FT${D& z;+!p)R~@*s_7D)=U3>WMy2JPOpS-r==)(=i9v(b(?ck~FN6z0rdEw@vi%-9O`}*}8 z1bqMb^ViQ`An@nUpTB?q{sV#kKmZPJ6hiSQ3z)C?pWDwhB-q(8z|~04fSC~}r~{G! zMH2)2#D>bI=9bo$;*QR))*$Zyp9vEJC(GwIpCr&UcX-XU@49hU*cET_*Y zZY-jpFRG|7u4EvgY$&N>D6MKFqh=(hZY-~1te|0}sA;04WumTc!KLiRqZ!Dn6~wC( zDqSXfnAVUsx7B4L_c%1q0Yxpuj$?F%;tP`og>Y+*?G;)sgH5tU0~YL>*-E^{v4>|V0b zv1p59@mA;JEl$PTJW4itm2dQ|-0WMm*{^Dof7K?hitR4tyS*!S`q%96uifESvn!xx zOGxdOp!%Ib^}E6wwudzCi)z{t*}NyRd2d|D{`ijlNe#=A8<%IauFPp)mEW}{t#^NB z-`>K$%~g{(7fjk$I&Hsy!=aGoLs4x9qT3I~b{>rAIF{6XAf@+UO7D^6{u7xK4rfk0 zmOtfa?$i?nlMj?lJ5Vu|-aBeipm*3LazKksPq%#$T^&R5Sp zSv~J${rr@pzQes0%_<-VH-kDR#o z=-K^8&mTN_@%ZVB7q36OdH?12pTB?p{Q3L$@4tWl{{IJ}|IpMopp@cI7O?$_|GE8K zLxPY9FGqRHAD@< zGVYu(JjT^;%yY>iv}cBA(lVcKQJJT%XapHe^wRHK% zd&f0?CAIv#x$4x>l$!dh@ozr@42|l!V`%$n1VfSly@T z&kMt-vcwH1QgZhlc@ePCA+M!x;T!4CTl~-DIc<$vy0S{qG4IA4!Ou^*Bn0*^ziQFe z#W&ZoV3AFx5=#fayv2ss4>7V!=S(=*BpTpwkVVkp0RuCiO#)94uxzmg0Kmf3 AX#fBK diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortActive200.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortActive200.gif deleted file mode 100644 index 2e03498585d1ec42c744bb333384e2c3c904d63b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 845 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 Q$ed%{&?wBx%EDj`0KEGUTmS$7 diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortActive350.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortActive350.gif deleted file mode 100644 index 2e686ff98453623a0ef401d1fc8726aee30de7d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1777 zcmeHG`8U)F0H1M;?-1s2j&nlJ81ftu!wfU7Os)H7C}J2#L(QZiM@ZuqW|_&6BXZ>^ zCX-`1mXEaO+NQ{rFg}=7B zi_uwkQ#()fvte5HWJ_YOjcf2JT&$sUtPwHZ%st-vLV_kP=@gM>;z2X>pjwiWY`s!! zeCW7~(OBOUd;rZYBo!aba1BZG2&Z3+Vnjw=in znf?A5kA0Z~fmwrLxq}h;Los)Glww{|DbG85G%%MRTJT%worx%xApGtGrG$T_d^)+} zIqjZ+!5&MldC91qj;)+as}s_>vyA)mV>_y=k9Q}}rk5O4$% zg{l%eIs97y(jaJ}lRKIV({g1KyY7z_$bg}*qKn9yEEQb3Er9s3i<`U6K`pwn)0G%< zUsly+7S3JkIQ5DmoQ zX@_)RE0HXcfo{ej#z#>eN`l*p349T8NrkulRbG9n4Ns|>H8DqXdg-=bM>c0>v0EqA zrjUkyY`;k!p1!}jmc6iMx@wh_je^r86zPMIw-LQ#`%W_2k;Q><_m$LT*|of-&}%2) z%l<1FX#{sB%62Sa_HJ01@%yS19W)0qu;^(Ya(1rFzjN4ilGW~BtgK)`zJQt zZS8$hyP5{QP_89K4jQRa2HmZ6v^-?7xr#U%hF4)u6xF$ zQM?zz3At;t1Dig}<*|Ds8oZIwj=jd$g)TQ#7X8SSUD?0CeLp>%@Ets%7AQ9~wsCg< z@C(wB;FD5~mE-!$#w~=2z84?XCuvXw@LUyiKOZs~!Q_fh8TPn4O=Cvg1v_{EEs!My zt?fAw3NJtqrw2F;sTcht&%fy7>oTD_Wnm)F*DOq?#GBN)3<)%~lMg{-sLXlb6Ssx; zmqZj37KHM4R<>#G9Fja}gAE_)?S`I%>S*#M`nJHb43;P$_wK-g3WgnWw83DI%|8s% BWIF%= diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortActive400.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortActive400.gif deleted file mode 100644 index d1b51c4df9bc8a9bea6eaab3525f6e5414e5e2f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1477 zcmV;$1v>giNk%w1VL$*d0QLX?000052MPuV3l0tr3Jw$v5f=&)9T5={5*Ho|6(bHA zDiIzo4<0fQA2SpnFBKs%8znLxC^IcBEg~v3C@wcVJUk>dODQ)>EICRbHBdB3WF$v+ zE=+SJNO&tvc`;3MGf;InQ+6~{d_zM+OG`^jUw1`bePm>0DNlnvT7W)gn=xjsJ#DQs zYqm9QxI1#ZLtleMV1h|wgimOPP-%x&Y>8ZPj8AWwP;s1TdXY_Vpha@7OLwnOb*E5v zs8@TdT7IoYbg@Zxvrc-mLUp@Kd%RP9wLf{uMtQ(Ze!*9Ow_Jj=SAe)%gSlUbylINE zV28S5iM(l!zHgGfag)7Og~D8i!Cs2QWRAmTki~3~!Df-jXp_lvmcnahc6~ zpUh*D(R7^Ad!WyDpw@e#(5|kova+(fySsp&#)F{7grdocrpt_|%#^Lpgr?GsuGf~Y z(3Y^!oV3!Ryx!;M=j!U}&+1T6N*n-x&BodI*XrPJZ=emv4XSsB3ZuV>VYh+*iUtRxN zv`CRMMT(OqQJgSgqNL%FhdhJ`3BrTOg9JqINTVi5&KEZL_<8x_rHdAm0|!EJ!m>$2 zBT61VoVX*%4i-39ykKCUg+_QB^~_n*rVX2Z{Qmt*DJ5Z)gbiQH91^5z5S%!7CUEhS zQ9MC!*034-MNPkwOQ#52`BdRTCjL{Y(!|Qb#e$w)7k%CHW~@=9{**GsVlW|-CJToc zk!kfR))x&7aNQ_Rs93T{m3B#~1;>poP@ueptN5W+B6N33&Z}r|*s(|Xg+aSiOO!Gi z1T4t{1#x1T6RoD^IT@(DJ#%2k?x%U+7!v^i6aa$7$lJw?h2LZWc{OE0$=UqPEEr6T zSOk7Ju}->lWA0fa7xx-;C~Ux*wV0S?fQJ)@F_|XZWAd?<$X?-L#+*`MAV3QNJX{eV zW5LnoLV@4uA;)FQCH0RP7ex2q4ebdyAa}$Wh{#?W64hZ~VPIfObQy@j!$XU`_gISG z?XjVF%bC@M88V7kO8_BM{xOw~IJv;URw^EXAcvX7Xv-`hD4FAlD0*icSXB12#uG+f z2|#ooC`lEUFDT$8eaCHRRBT?bL4|{6&XOb#J4obMRy=;G$7`6`=}exopjkytRSoy1 zUL5fy)?Z}YiKs0cB*7?rUCsyTaS5*R1ssQ7I!kmM5V6B{P4eVZkM^;l1{@`nY3eL0 z6tU`#kG2*mp<~q`z_7#y5CE~m0w930#TqL>02xdqgrlDNTG@|evEjwGRCHU=6HT$? zL_$WCyOG?2bgi1t=o zeNGhcmy!aBpI|BewUzKfh)oq-qb%H{TD1p88taQn2~;t{qm{O$!*zAqZXvFPxnOMv zk89XrOknpAqkp>GV_0+cqej6@S?pF~I&W-Ypm645UmK#H)m%y|jjNDvDi5)$5Ukeq zB*-fU^@bX2kd2fVRCGZ_K`DvLl6B<{abrYVcm46pgiMo$Aa%qMha7RhA-LdVm|+GP zU?dL47FlGm#THjYegzX%RMA8gL=>Sp5u68c1cr_9BEbkFP%y#isG|-+1gt~g`s=Sh z@Bjp|%TD_P4lJ;M0=h5IfB+1<3Qq;6-fFxo2?!4l8qDWl!}B)OAieZ7R8NBp*vkMz f4BW$z!uJy?h#>y>B6v`~2k3XO0SYS^7zhA6$Xb_b diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortActive50.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortActive50.gif deleted file mode 100644 index 8a576bbc5990650c03f2718281ec09afe4dcee80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 290 zcmZ?wbhEHb*5!LQ-wU#m6*0Ejs(bMcxrdp-UwN6{;kl5>+ zKPS9wUQE@(q`C#wUGvkMmuI%E4ro2qGG*1|*-QK9Z<)Gq!<0o^SFhjFwDR_bT_-l~ zIko-pr7JfdT)p+++N}rI?>u?&>dn_r@4kL||Lya;?_WNC{qp(y*H7QSe*W?GK-NfW7+ uQR_mVHEj$~SajL#a)b|`oT$4HgM`q$5OpUB5fR0(rwt^f@a{812(0ImuMMgi9V*MV*TjRVFZ6EDba0>26L4`4!Q2nx1=PXne2BFThQ zG{R(885+^x8iVT$zrkb^4BgToWiV@`yb-Apu^wpy<$HVkoR2y06VB^)4{+Qd$9XxY zmvecYuBSeq@73!!e*dh0bZ%5ICU`eCJ|7FsMMHs@ARO3=2BItPQ>pD#Dw#~CGP{2> z89_Rm&G0-=DMb|E-lhK&;&lGrRE!53wKvRal}TH9{vyfC{Ux`^y$SX|=NvA#r{7~6 z9J1N%w*FhqZEYN`no!UL05ai;<9!%DdqBWWwKMHl9GGlx6Mk0 z=0M&_X=z1Z!Bnk13{WVO%y)lKA6Z+HekEJA}(4kZIstJT62wE zz#$cl2D2<3xO)*to1|Ny;R9VC?gQKrae?dMloHBA7wCpO-E+_Rbm*_>z1Keb?EC%Y z^ULS6b9Y8cs%ZscFo(r3hOjW`G&*n`!Z}1lKp%ls%dt8RLNd~lAtZ4^3WQV$TOn+N z@G1Q;>H~fCr}(Cl*}lN}uW;=L^jw5^3DQpxuVC;BB+XUaYlnCplBSIl zJ0RL2-GpR^cpK6!NO#fagy@9ihU9_N%?5iQ`Sd|IWH;tJA$LOQ(lEt?5g%Ll6`^h@ z-Jl)~Q+mRJUMRhwUZ`G>*7t$>nA*?O-#F6ra^wvU4S;+IiHt;q20gW*{(;)i!&*m&)n&K2 zZrNP7ZLT{u*Ilh|bUJJ>!F&Gk`>HCFDu+TLMT<(R zs**O)|2u0Ixc>%RLr=byo}DGUk(r+O;$|Jw9$#4eSX>iCs;G;K+tpIvQFfnZ;R6qcIV z@?&S~rJs{bVp{R~?)ZJJ=_}WnQVzc|o*b)pSxxr)zqD=n>qcf(G#j$-tbR7>!wt^n zs~5#Rbuj@`p5F6qV$O}Gcg`fNXnNCGx22?@(SLf`@z{;0M=OSR)lBdBME013jOh4P dMZRJ$vsXmT2euDTVMka5Z(Qxp)Go=ke*q;b+(7^U diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortHover200.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortHover200.gif deleted file mode 100644 index 43414a350a93799a0fd2948547b7686bb4c337ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 780 zcmZ?wbhEHbRA7)`_{PA%$jHFK&cMyhATPn7r^cYG$zY_(V5P@sY0O}4rC?xWZf9o` zVaE{Z$dKa6P?XM4oXL<7V(RDTo0t%jl9HUCpIcI#pOaf$T2fe4RMk?<&|1SVv6OLA zHN(VahKXH_>t-@+nai+s5yQ5X47)ZlT-wQS_cFt)(+t0kGJZPG@b3)c-&35=Z!o;N z!SMGo!=KxXf1fb?eZ%jhtL6#Tqh@c&^!etuJaaZ^E2 zOIvHp@83PYe^2}Wf7XEm`~Ux6`sLY{-FwdM+jsHOrArqt-adcf$^ZXP|NZ;NFo=QT zPZqH26#sMkxrPKgI|jHK=@~FH0tIzI5};^eVE@NKHgGllIsM1>@+ZEP0W+AdnQXr;|kYpxDS4=+b&$E{npY}vMXm!M0#n5(_v;ll>{ z$29fzPHSpuX-xc-CFdfM8&7FQgu-#luhs$lZ)l%CdOp66|1 zZZBUS(Pd>&O46BZ?%!&eb!|gtw<0rRL%SkNS8>?8xP@G0)nP zHapR2rQclUAd!>;=D9qp

    r)IBd(g$!B!Bbn2?Sw%d~7TH^w!s2xP1r->%@7j65Esr65+qO*%TO23ke0xZpUhB|&QOxWP?Nz>SI7_= z8k&-lQeIwGQBhu3SGR5s!~G2`k2Wzs+Npm22*bsr43Cd9JU_?q1YnQ#^+zuE1T?%ftmPe18oj757`i#jr6XS~}syud` z_J_<3ZyOriGthsi_xQ2yvuD~bRk*C%C*5$fG`ekY_ufN&gC|e*o@?vAu80wy)-1iZ z+8|=Vh2!V%?{8p!EV)J8kByC4M`GKH_IC@J8r$v(n*4a{%EQONpy2Vb>HdB(IY+ss z@Par`Nu{7=HWL=b@2`K!pf@42!{F*p#$%Tk z2ndGGy`Fpf(%P84Wh_4olN|Hb8>ub0d+Tee&-O2m&bjV>$a-dXlKZg<3lrbp;nF*> zjaR1sO)E18pT|6(N~5HsF5IEAXKvoJty=j4$QcRAwB&L#BedB1=o)Bpd14hQBp2#91XV0B?-Vz34P Dsbw$! diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortHover300.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortHover300.gif deleted file mode 100644 index 35871f30eccdfeb717a0ebb6424a3c4bd5ce3991..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 991 zcmZ?wbhEHbG+|{8#hvD^Jh6_g+E}md`dxYWbDTd$282+ANczc=Q z?Hz`HR~WwCV)%EP;q7CFe?at_;s0lb|Gydj-&Fj6Rr~*Kof*@oO`bY;`SRr}R;<{( zdGo$~`ws7#`Re8FqeqV(J9hHasZ+;JUO9Q{+Rqxx1VcBu(M-;tC5}oGb2z?2P6TCCIJ-vPX6DCfY zJZ0*%>60C8XWQD$nLls#!a0lQ&#~)qWLUjs?Yi|F)^qk)b2>V@?%cI|&)$7It+=)v z^7cG-{KUyqr;pilxOZD~d%KxjGrnPLXk=_;aL?eOzP^FpGwm1JT3Y&&tY#N4dtCc+ z{ie~6pAVlt`>Xdt&rIZiVE)NHRW~<0{oIx>Z(q;ADipHCSz?mZm$Vzf7LQ#I*XkYm z>do$)WYT@jKSm zwj?7k=h)7T3>^~|ZdD84>mwLi=cCmlfkms?_&Nt%}@U#9M9h%(Jsb1)iQ=kE#KeE+qL|7(731lvz(6mo!`?wzTHq4UUu1hllJd3@7@;9)^DEU zEHTxwB)GVhMLa%)OIKyGrTg0OS;ZP(r%Y&)pL*Co=enSWM*&CXlm|}t8(Oa0GwV&2 zt*OgBGT)A`H)Ikczu1fhA%`Og$vnCbZa8u4e0h=FugNl#iOYFWLJFtq0_}!_jD|vw t4wnQR3Oc~s^CW7l@24FG8valilo diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortHover350.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortHover350.gif deleted file mode 100644 index b90c898e7df7e64de2e1477681c753d15d824b5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1195 zcmd6k>o?m69EZOdazkWlt-C{vGSt#(V>1#G%}`AVI?6B|jS+l0n(T9>p(HO0^!m%3MeTlZJ&^YVG#Jm-8)eC0`Tj-Y@oYyzNApos@< zZEam57#swWA&^W7By+GMfd$F(=uxsS4gB1J?FG?+5FG;N!XZ5gGE(4NOk`Ya)YWLn zjYSnFL)8V8Fbg=zWPUD)azMlbQ8`?%MoIHPTm(%#XefuK3TUo|z7`mI2*Z6K?}0Zm z*c^o2LD(M#WK>5r4k`s8Pj!$<9b`&xQ3-2GP`v`xG9c?HWFL?XoJdIDm{L<3m z%F5Eay-fr`;D0dl9rgbz%n?mr2HW3*#$u2i9Mw?&Lc90k{Y`*TW&3k-uIA?D7Zet8 zdBr6^mX`fgUQv0CU*hNIFRZB*ibXYIj^KJ@RZ|noM|$gaYulY)q~0e>d~wj#{ouEU zJ-yxd+Crf>9MC&3EE^epBA4so@eN!bXy!3-0|mlKmY)}GZhqd)jk>t#`nT)qn(LPv zn=Y<~Xli}otiO8_wm^G5|_tHDxATdpRTY^PVXy2^TNLr3e(-6&|&&=Qd|bnzH! z6wAaJZRjI;vQV7wW$lo#$hJPkU`z2%%+^mlj8#_0W|+3g%LBYqn)K+m>+w(P&KA$c zf>@n!Gp#x>vrgVJ?v8L&8phk`m!WyzP{w`MZw=hZFyjlxIxW5aI37QKZ}_|ZXEH(c z<&myu`hPW3Pu{kVC7r+lDzl7Y7r1&}Qje(|S-tRcpRo;AofJVzmkI0*^F1$x*q5}N z$IVecbkXN54%o~xMht@d=vk9fr8Os6y)T{wvJ5OVaoA|f!mRB@pn7MypQBY*D#W%(2_v< z4{774BZ@z^xD?r(`%!$(eR@zvRNT-FH;7{DR;;Wx*o3A{Zdl#K<=GAp%Wc>m@r@QS zBB4P?t9!i^@24*4X)ut8!?FSnYaKsJj46MtU)E1Bqc73g&3KMd%tZPM4Wmf^GXZOq zMEn4wj47pI=gHYUjRl{XXP2!A4n5*JnkM%XCSrs~I!!Nj(J)9NG4Y-SaK&@dhirS)JXA4dwaB%=4(bmlwJl$cn8?s>q;^&1>sZ=_h&iV#ebO_lD;ah;k zMB;YAq1}+Y7g#J7o6U}okIzj7i3qAnpjHI+B2bD!UJCL`s4oZQ8BkV%QU=P)pj6ms z%8);2 zq1ZTzy$5U#u=nWf6bYLlVRK|`#$BOMD3y&jZnV!%4H*muqtQ4!H9R>vIX7$i_;DJ; zurH(kFGiWceW^mh7KH^y>|`;yf!=GqERg@gHJ`!fn_z)i$W714%*xKmJ(VZQFAx_N z6_=bobGGzcS$RceRrPsE#dc|}tWJL6;w5$wXDM90)~IY!HMcD0a>Q(~=(v3wZ-MXb z(5Ub9sI}ToAh(G_kswZc|5M#Se;X%E|9nt4qx&^ z|HAQ>^V>tYYUgrx8@Bp6SW17%Q=@- zok|ZYvdM@qIz}<@fXUrwC+%NGi`|74IL$Hro5&;w+WF3G+LHk2r~YljV;cMI_ozO%QZV z>}oexjP1Aja6TKTplV1EC6q&QZX?Sc+{i$h9l--W< z7(cv86)%c;Fw%*Jcf`jPWILsL*u1VIxPgn1ASnwp$|&DE>-3`wt3xl5^CFOaTM-=I zl~F4WTJ=U&K;#O61S`j4mpD`GcaJvwo`EiRs3Tf8)(KeF_1=c^08ieogh*a^P9!ge zl4TcbffA~1{E+q4@rUgr1qrb!QPQi*qh+osyKbE=kE)_wHyp_=mDe=%R4gSm^E*yS zo1Q7`8?I-!ja6G$Ws|Ctqf$f)g|Wr+B`$|ILvCo6{_yr@@51PY)(OZI Yb{=8xX}(E+Fr&sauu{$CyTayw0f7G!S^xk5 diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortHover50.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortHover50.gif deleted file mode 100644 index 3052bb657062f25398fa888028c5cc1f247e9874..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 290 zcmZ?wbhEHb<3u!-U7E`}@n86Iw8 zc(Q}_^iCcO>h=;mq4NYwq2y z+r4Y%^CyijAD@5m=+cYFm)<_V^#1L$m#_c6eEskBo4>E${eAoH|GW49-viO-|DQhn z`1hqlW^^LInnE0J!dWNB{r; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortInactive100.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortInactive100.gif deleted file mode 100644 index b7d433c670b9730c6c3ead62105cae20ec1d0ab6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmZ?wbhEHb6ky+lf2dPTb#j_Ws7>kG7n6xb4*AU1uKdKKppb*=IY> zKHq=g@%}6C51hJj<;LABH||}%dGE^2`?qi1ym9;f(Myj`Tzzup=JTW1ULL>p^2D_l z=Wo3@ee3OoThA}weR1K=n`;kVUw`=i?xPoXpMSdl;`9BNUthm^@!`Y!2QNN8dhy}m z%g;~Ve0}!z+w*tdUcCMM;_cU$@4miz|LygM?{7bRee?0h*RNl{eFuSGAn+Rq{{H#> z^UuFuAoTy&-~WI9{P_z+fB*jb_wWCI5CNosfB^$2{$v4*DgNj7a}5c0b_{Se(lcOY z1PbbaBtX%`z&@#=vZ=YHwIwSzH>P=8N%A1Sw4 z+WE;*;b!`NCPo$_PP5ck#|P*r>UkMjN^Gml*pVEo8j-7PU~PVA`)VE6%G?McU7HJ) znd+5}9D=+&{LGT}!j4UMcLw=-m|2@1e0AhrN_<#wfS0@Rt*`fLGB!9kGBLApaYS%5 Kc+GQQum%985li6! diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortInactive150.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortInactive150.gif deleted file mode 100644 index 9be806b0984d7735bff0d988c44423b131a2a2d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1155 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 diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortInactive300.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/images/isort/UpArrowSortInactive300.gif deleted file mode 100644 index 6809740babd2864ece26e9450ed631c22ccab847..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1161 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 diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/FlexParameterBridge.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/FlexParameterBridge.js deleted file mode 100644 index aeedd4613..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/FlexParameterBridge.js +++ /dev/null @@ -1,336 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof (bobj) == 'undefined') { - bobj = {}; -} - -if (typeof (bobj.crv) == 'undefined') { - bobj.crv = {}; -} - -if (typeof (bobj.crv.params) == 'undefined') { - bobj.crv.params = {}; -} - -/* - ================================================================================ - FlexParameterBridge - - Base functionality for flex prompting UI - ================================================================================ - */ - -bobj.crv.params.FlexParameterBridge = { - _swfID : [], - _swf : [], - _cb : [], - - // TODO: Ryan - clean this up when the CAF actions are also cleaned up - _promptData : [], - - setPromptData : function(id, d) { - this._promptData[id] = d; - }, - - setMasterCallBack : function(viewerName, callBack) { - this._cb[viewerName] = callBack; - }, - - getSWF : function(viewerName) { - if (this._swf[viewerName]) { - return this._swf[viewerName]; - } else { - var swf = document.getElementById(this._swfID[viewerName]); - this._swf[viewerName] = swf; - return swf; - } - }, - - getInstallHTML : function() { - return L_bobj_crv_FlashRequired.replace("{0}", "
    ") + ""; - }, - - checkFlashPlayer : function() { - return swfobject.hasFlashPlayerVersion("9.0.0"); - }, - - /** - * Creates the swf and replaces the div specified with the flash object. - */ - createSWF : function(viewerName, divID, servletURL, showMinUI, locale, rptSrcKey) { - var cb = this._cb[viewerName]; - if (!cb) { - return; - } - - if (cb.logger) { - cb.logger('Create the SWF'); - } - - if (this.checkFlashPlayer()) { - - var swfBaseURL = cb.getSWFBaseURL(); - var swfPath = swfBaseURL + "prompting.swf"; - var swfID = cb.getSWFID(); - var useSavedData = cb.getUseSavedData ? cb.getUseSavedData(viewerName) : false; - var useOKCancelButtons = cb.getUseOKCancelButtons ? cb.getUseOKCancelButtons(viewerName) : false; - var isDialog = cb.getIsDialog ? cb.getIsDialog (viewerName) : false; - var allowFullScreen = cb.getAllowFullScreen ? cb.getAllowFullScreen (viewerName) : false; - var enforceRequiredPrompt = cb.getEnforceRequiredPrompt ? cb.getEnforceRequiredPrompt () : true; - var shouldAutoResize = cb.getShouldAutoResize ? cb.getShouldAutoResize(viewerName) : false; - - var flashvars = { - "eventTarget" : viewerName, - "locale" : locale, - "showMinUI" : showMinUI, - "baseURL" : swfBaseURL, - "servletURL" : servletURL, // The SWF will use javascript to handle all async requests if this is null or empty - "reportSourceKey" : rptSrcKey, - "useSavedData" : useSavedData, - "useOKCancelButtons" : useOKCancelButtons, - "isDialog" : isDialog, - "allowFullScreen" : allowFullScreen, - "enforceRequiredPrompt" : enforceRequiredPrompt, - "shouldAutoResize" : shouldAutoResize - }; - - // Important: Do not specify play=true as one of the params. If this - // is set to true we could end up in an infinite loop reloading - // the swf when viewing using the embedded browser in eclipse. - var params = { - menu : "false", - wmode : "window", - allowscriptaccess : "sameDomain" - }; - - var attributes = { - id : swfID, - name : swfID, - style : 'z-index:' + cb.getZIndex() - }; - - if (cb.processingDelayedShow) { - cb.processingDelayedShow('hidden', divID); - } - - var h = cb.getSWFHeight ? cb.getSWFHeight(viewerName) + "" : "600"; - var w = cb.getSWFWidth ? cb.getSWFWidth(viewerName) + "" : "800"; - - swfobject.embedSWF(swfPath, divID, w, h, "9.0.0", "", flashvars, params, attributes); - this._swfID[viewerName] = swfID; - - if (cb.processingDelayedShow) { - cb.processingDelayedShow(); - } - - } else { - document.getElementById(divID).innerHTML = "

    " + cb.getInstallHTML() + "

    "; - } - }, - - /** - * This function will initialize the data in the flex swf with the - * current state of the parameter ui. The Flex swf will call back to - * this method when it has first been created and all external interface - * connections have been setup. If the swf has already been created this will - * be called when showing the parameter UI. - */ - - init : function(viewerName) { - if (!viewerName) { - return; - } - - var cb = this._cb[viewerName]; - var swf = this.getSWF(viewerName); - if (!swf || !cb) { - return; - } - - if (cb.logger) { - cb.logger('Init the SWF'); - } - - if(swf.setShowMinUI && cb.getShowMinUI) { - swf.setShowMinUI(cb.getShowMinUI(viewerName)); - } - - if(swf.setUseSavedData && cb.getUseSavedData) { - swf.setUseSavedData(cb.getUseSavedData(viewerName)); - } - - if(swf.setUseOKCancelButtons && cb.getUseOKCancelButtons) { - swf.setUseOKCancelButtons(cb.getUseOKCancelButtons(viewerName)); - } - - if(swf.setAllowFullScreen && cb.getAllowFullScreen) { - swf.setAllowFullScreen(cb.getAllowFullScreen(viewerName)); - } - - if (swf.setReportStateInfo && cb.getReportStateInfo) { - swf.setReportStateInfo(cb.getReportStateInfo(viewerName)); - } - - if (swf.setPromptData) { - if (cb.getPromptData && cb.getPromptData(viewerName)) { - swf.setPromptData(cb.getPromptData(viewerName)); - } else { - swf.setPromptData(this._promptData[viewerName]); - } - } - - if (cb.getShouldAutoResize && cb.getShouldAutoResize(viewerName)) - this.resize(viewerName, 1, 1, true); - else if (cb.getSWFHeight && cb.getSWFWidth) - this.resize(viewerName, cb.getSWFHeight(viewerName), cb.getSWFWidth(viewerName), true); - }, - - /** - * Flex callback for closing the current dialog window. - */ - closeDialog : function (viewerName){ - var cb = this._cb[viewerName]; - if (cb && cb.closeDialog) { - cb.closeDialog(viewerName); - } - }, - - /** - * Flex callback for adjusting the size of the swf to fit the number of - * prompts being displayed. - */ - - resize : function(viewerName, height, width, shouldCenter) { - var swf = this.getSWF(viewerName); - var cb = this._cb[viewerName]; - if (swf && cb) { - cb.logger('Resizing the SWF h:' + height + ' w:' + width); - - if (cb.getScreenHeight && cb.getScreenWidth) - { - var screenHeight = cb.getScreenHeight(viewerName); - var screenWidth = cb.getScreenWidth(viewerName); - var p = MochiKit.Style.getElementPosition(swf.parentNode); - - // Do not allow resizing beyond the screen size - if ((p.x >= 0) && ((p.x + width) >= screenWidth) && !shouldCenter) { - width = screenWidth - p.x; - } - else if (width > screenWidth) { - width = screenWidth; - } - - if ((p.y >= 0) && ((p.y + height) >= screenHeight) && !shouldCenter) { - height = screenHeight - p.y; - } - else if (height > screenHeight) { - height = screenHeight; - } - } - - if(swf.setWidth && swf.setHeight) { - swf.setWidth(width); - swf.setHeight(height); - } - - swf.style.width = width + 'px'; - swf.style.height = height + 'px'; - - if (shouldCenter) { - this.move(viewerName, ((screenWidth - width) / 2), ((screenHeight - height) / 2)); - } - - cb.setVisibility(viewerName); - - swf._isMaximized = false; - } - }, - - fitScreen : function (viewerName){ - var swf = this.getSWF(viewerName); - var cb = this._cb[viewerName]; - if (swf && cb && cb.getScreenHeight && cb.getScreenWidth && swf.setHeight && swf.setWidth) { - cb.logger('Fitting SWF to the screen'); - var h = cb.getScreenHeight(viewerName); - var w = cb.getScreenWidth(viewerName); - - // Resize the html object - // We must call move before resize so that we can calculate the width/height appropriately when resizing - this.move(viewerName, 0, 0); - this.resize(viewerName, h, w, false); - - swf._isMaximized = true; - } - }, - - startDrag : function(viewerName) { - var cb = this._cb[viewerName]; - if (cb && cb.startDrag) { - cb.startDrag(viewerName); - } - }, - - stopDrag : function(viewerName) { - var cb = this._cb[viewerName]; - if (cb && cb.stopDrag) { - cb.stopDrag(viewerName); - } - }, - - drag : function(viewerName, x, y) { - var cb = this._cb[viewerName]; - if (cb && cb.drag) { - cb.drag(viewerName, x, y); - } - }, - - move : function(viewerName, x, y) { - var cb = this._cb[viewerName]; - if (cb && cb.move) { - cb.move(viewerName, x, y); - } - }, - - setParamValues : function(viewerName, paramData) { - var cb = this._cb[viewerName]; - if (cb && cb.setParamValues) { - cb.setParamValues(viewerName, paramData); - } - }, - - logon : function(viewerName, logonData) { - var cb = this._cb[viewerName]; - if (cb && cb.logon) { - cb.logon(viewerName, logonData); - } - }, - - setReportStateInfo : function(viewerName, rsInfo) { - var cb = this._cb[viewerName]; - if (cb && cb.setReportStateInfo) { - cb.setReportStateInfo(viewerName, rsInfo); - } - }, - - sendAsyncRequest : function(viewerName, args) { - var cb = this._cb[viewerName]; - if (cb && cb.sendAsyncRequest) { - cb.sendAsyncRequest(viewerName, args); - } - }, - - handleAsyncResponse : function(viewerName, args) { - var swf = this.getSWF(viewerName); - if (swf && swf.handleAsyncResponse){ - swf.handleAsyncResponse(args); - } - }, - - readyToShow: function(viewerName) { - var cb = this._cb[viewerName]; - if (cb && cb.readyToShow) { - cb.readyToShow(viewerName); - } - } - -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/KeyDownEvent.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/KeyDownEvent.js deleted file mode 100644 index 2f1f8b595..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/KeyDownEvent.js +++ /dev/null @@ -1,44 +0,0 @@ -/* - File Version Start - Do not remove this if you are modifying the file - Build: 9.5.0 - File Version End -*/ -/* - this function is used to verify whether the 'Enter' key is pressed. - if the 'Enter' key is pressed, then either call the event handler function passed in as a parameter (evntHdlrName) - or if evntHdlrName is an empty string, submit the form that contains the input box (that triggers this function). - The form name is passed in as the third parameter, if it's an empty string, it's set to 0 by default. - The first parameter is an event object - - written by Paul Chong, 17th May 01 -*/ - -function keydownfn(e, evntHdlrName, formName) -{ - var nav4; - var keyPressed; - - //check if the brower is Netscape Navigator 4 or not - var nav4 = window.Event ? true : false; - - //if browser is Navigator 4, the key pressed is called .which else it's called .keyCode - keyPressed = nav4 ? e.which : e.keyCode; - - if (keyPressed == 13) - { - if (evntHdlrName != "") - { - // append empty parentheses if none given - if(evntHdlrName.substr(evntHdlrName.length-1) != ")") - evntHdlrName += "()"; - eval(evntHdlrName); - } - else - { - if (formName == "") - formName = 0; - document.forms[formName].submit(); - } - } - return true; -} diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/3rdParty.txt b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/3rdParty.txt deleted file mode 100644 index 6f2acbad2..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/3rdParty.txt +++ /dev/null @@ -1,66 +0,0 @@ -MochiKit is dual-licensed software. It is available under the terms of the -MIT License, or the Academic Free License version 2.1. The full text of -each license is included below. - -MIT License -=========== - -Copyright (c) 2005 Bob Ippolito. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - -Academic Free License v. 2.1 -============================ - -Copyright (c) 2005 Bob Ippolito. All rights reserved. - -This Academic Free License (the "License") applies to any original work of authorship (the "Original Work") whose owner (the "Licensor") has placed the following notice immediately following the copyright notice for the Original Work: - -Licensed under the Academic Free License version 2.1 - -1) Grant of Copyright License. Licensor hereby grants You a world-wide, royalty-free, non-exclusive, perpetual, sublicenseable license to do the following: - -a) to reproduce the Original Work in copies; - -b) to prepare derivative works ("Derivative Works") based upon the Original Work; - -c) to distribute copies of the Original Work and Derivative Works to the public; - -d) to perform the Original Work publicly; and - -e) to display the Original Work publicly. - -2) Grant of Patent License. Licensor hereby grants You a world-wide, royalty-free, non-exclusive, perpetual, sublicenseable license, under patent claims owned or controlled by the Licensor that are embodied in the Original Work as furnished by the Licensor, to make, use, sell and offer for sale the Original Work and Derivative Works. - -3) Grant of Source Code License. The term "Source Code" means the preferred form of the Original Work for making modifications to it and all available documentation describing how to modify the Original Work. Licensor hereby agrees to provide a machine-readable copy of the Source Code of the Original Work along with each copy of the Original Work that Licensor distributes. Licensor reserves the right to satisfy this obligation by placing a machine-readable copy of the Source Code in an information repository reasonably calculated to permit inexpensive and convenient access by You for as long as Licensor continues to distribute the Original Work, and by publishing the address of that information repository in a notice immediately following the copyright notice that applies to the Original Work. - -4) Exclusions From License Grant. Neither the names of Licensor, nor the names of any contributors to the Original Work, nor any of their trademarks or service marks, may be used to endorse or promote products derived from this Original Work without express prior written permission of the Licensor. Nothing in this License shall be deemed to grant any rights to trademarks, copyrights, patents, trade secrets or any other intellectual property of Licensor except as expressly stated herein. No patent license is granted to make, use, sell or offer to sell embodiments of any patent claims other than the licensed claims defined in Section 2. No right is granted to the trademarks of Licensor even if such marks are included in the Original Work. Nothing in this License shall be interpreted to prohibit Licensor from licensing under different terms from this License any Original Work that Licensor otherwise would have a right to license. - -5) This section intentionally omitted. - -6) Attribution Rights. You must retain, in the Source Code of any Derivative Works that You create, all copyright, patent or trademark notices from the Source Code of the Original Work, as well as any notices of licensing and any descriptive text identified therein as an "Attribution Notice." You must cause the Source Code for any Derivative Works that You create to carry a prominent Attribution Notice reasonably calculated to inform recipients that You have modified the Original Work. - -7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that the copyright in and to the Original Work and the patent rights granted herein by Licensor are owned by the Licensor or are sublicensed to You under the terms of this License with the permission of the contributor(s) of those copyrights and patent rights. Except as expressly stated in the immediately proceeding sentence, the Original Work is provided under this License on an "AS IS" BASIS and WITHOUT WARRANTY, either express or implied, including, without limitation, the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No license to Original Work is granted hereunder except under this disclaimer. - -8) Limitation of Liability. Under no circumstances and under no legal theory, whether in tort (including negligence), contract, or otherwise, shall the Licensor be liable to any person for any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or the use of the Original Work including, without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses. This limitation of liability shall not apply to liability for death or personal injury resulting from Licensor's negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You. - -9) Acceptance and Termination. If You distribute copies of the Original Work or a Derivative Work, You must make a reasonable effort under the circumstances to obtain the express assent of recipients to the terms of this License. Nothing else but this License (or another written agreement between Licensor and You) grants You permission to create Derivative Works based upon the Original Work or to exercise any of the rights granted in Section 1 herein, and any attempt to do so except under the terms of this License (or another written agreement between Licensor and You) is expressly prohibited by U.S. copyright law, the equivalent laws of other countries, and by international treaty. Therefore, by exercising any of the rights granted to You in Section 1 herein, You indicate Your acceptance of this License and all of its terms and conditions. - -10) Termination for Patent Action. This License shall terminate automatically and You may no longer exercise any of the rights granted to You by this License as of the date You commence an action, including a cross-claim or counterclaim, against Licensor or any licensee alleging that the Original Work infringes a patent. This termination provision shall not apply for an action alleging patent infringement by combinations of the Original Work with other software or hardware. - -11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this License may be brought only in the courts of a jurisdiction wherein the Licensor resides or in which Licensor conducts its primary business, and under the laws of that jurisdiction excluding its conflict-of-law provisions. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any use of the Original Work outside the scope of this License or after its termination shall be subject to the requirements and penalties of the U.S. Copyright Act, 17 U.S.C. § 101 et seq., the equivalent laws of other countries, and international treaty. This section shall survive the termination of this License. - -12) Attorneys Fees. In any action to enforce the terms of this License or seeking damages relating thereto, the prevailing party shall be entitled to recover its costs and expenses, including, without limitation, reasonable attorneys' fees and costs incurred in connection with such action, including any appeal of such action. This section shall survive the termination of this License. - -13) Miscellaneous. This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. - -14) Definition of "You" in This License. "You" throughout this License, whether in upper or lower case, means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with you. For purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -15) Right to Use. You may use the Original Work in all ways not otherwise restricted or conditioned by this License or by law, and Licensor promises not to interfere with or be responsible for such uses by You. - -This license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights reserved. Permission is hereby granted to copy and distribute this license without modification. This license may not be modified without the express written permission of its copyright owner. \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Async.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Async.js deleted file mode 100644 index 4e910e212..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Async.js +++ /dev/null @@ -1,602 +0,0 @@ -/*** - -MochiKit.Async 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide("MochiKit.Async"); - dojo.require("MochiKit.Base"); -} -if (typeof(JSAN) != 'undefined') { - JSAN.use("MochiKit.Base", []); -} - -try { - if (typeof(MochiKit.Base) == 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.Async depends on MochiKit.Base!"; -} - -if (typeof(MochiKit.Async) == 'undefined') { - MochiKit.Async = {}; -} - -MochiKit.Async.NAME = "MochiKit.Async"; -MochiKit.Async.VERSION = "1.4"; -MochiKit.Async.__repr__ = function () { - return "[" + this.NAME + " " + this.VERSION + "]"; -}; -MochiKit.Async.toString = function () { - return this.__repr__(); -}; - -MochiKit.Async.Deferred = function (/* optional */ canceller) { - this.chain = []; - this.id = this._nextId(); - this.fired = -1; - this.paused = 0; - this.results = [null, null]; - this.canceller = canceller; - this.silentlyCancelled = false; - this.chained = false; -}; - -MochiKit.Async.Deferred.prototype = { - repr: function () { - var state; - if (this.fired == -1) { - state = 'unfired'; - } else if (this.fired === 0) { - state = 'success'; - } else { - state = 'error'; - } - return 'Deferred(' + this.id + ', ' + state + ')'; - }, - - toString: MochiKit.Base.forwardCall("repr"), - - _nextId: MochiKit.Base.counter(), - - cancel: function () { - var self = MochiKit.Async; - if (this.fired == -1) { - if (this.canceller) { - this.canceller(this); - } else { - this.silentlyCancelled = true; - } - if (this.fired == -1) { - this.errback(new self.CancelledError(this)); - } - } else if ((this.fired === 0) && (this.results[0] instanceof self.Deferred)) { - this.results[0].cancel(); - } - }, - - _resback: function (res) { - /*** - - The primitive that means either callback or errback - - ***/ - this.fired = ((res instanceof Error) ? 1 : 0); - this.results[this.fired] = res; - this._fire(); - }, - - _check: function () { - if (this.fired != -1) { - if (!this.silentlyCancelled) { - throw new MochiKit.Async.AlreadyCalledError(this); - } - this.silentlyCancelled = false; - return; - } - }, - - callback: function (res) { - this._check(); - if (res instanceof MochiKit.Async.Deferred) { - throw new Error("Deferred instances can only be chained if they are the result of a callback"); - } - this._resback(res); - }, - - errback: function (res) { - this._check(); - var self = MochiKit.Async; - if (res instanceof self.Deferred) { - throw new Error("Deferred instances can only be chained if they are the result of a callback"); - } - if (!(res instanceof Error)) { - res = new self.GenericError(res); - } - this._resback(res); - }, - - addBoth: function (fn) { - if (arguments.length > 1) { - fn = MochiKit.Base.partial.apply(null, arguments); - } - return this.addCallbacks(fn, fn); - }, - - addCallback: function (fn) { - if (arguments.length > 1) { - fn = MochiKit.Base.partial.apply(null, arguments); - } - return this.addCallbacks(fn, null); - }, - - addErrback: function (fn) { - if (arguments.length > 1) { - fn = MochiKit.Base.partial.apply(null, arguments); - } - return this.addCallbacks(null, fn); - }, - - addCallbacks: function (cb, eb) { - if (this.chained) { - throw new Error("Chained Deferreds can not be re-used"); - } - this.chain.push([cb, eb]); - if (this.fired >= 0) { - this._fire(); - } - return this; - }, - - _fire: function () { - /*** - - Used internally to exhaust the callback sequence when a result - is available. - - ***/ - var chain = this.chain; - var fired = this.fired; - var res = this.results[fired]; - var self = this; - var cb = null; - while (chain.length > 0 && this.paused === 0) { - // Array - var pair = chain.shift(); - var f = pair[fired]; - if (f === null) { - continue; - } - try { - res = f(res); - fired = ((res instanceof Error) ? 1 : 0); - if (res instanceof MochiKit.Async.Deferred) { - cb = function (res) { - self._resback(res); - self.paused--; - if ((self.paused === 0) && (self.fired >= 0)) { - self._fire(); - } - }; - this.paused++; - } - } catch (err) { - fired = 1; - if (!(err instanceof Error)) { - err = new MochiKit.Async.GenericError(err); - } - res = err; - } - } - this.fired = fired; - this.results[fired] = res; - if (cb && this.paused) { - // this is for "tail recursion" in case the dependent deferred - // is already fired - res.addBoth(cb); - res.chained = true; - } - } -}; - -MochiKit.Base.update(MochiKit.Async, { - evalJSONRequest: function (/* req */) { - return eval('(' + arguments[0].responseText + ')'); - }, - - succeed: function (/* optional */result) { - var d = new MochiKit.Async.Deferred(); - d.callback.apply(d, arguments); - return d; - }, - - fail: function (/* optional */result) { - var d = new MochiKit.Async.Deferred(); - d.errback.apply(d, arguments); - return d; - }, - - getXMLHttpRequest: function () { - var self = arguments.callee; - if (!self.XMLHttpRequest) { - var tryThese = [ - function () { return new XMLHttpRequest(); }, - function () { return new ActiveXObject('Msxml2.XMLHTTP'); }, - function () { return new ActiveXObject('Microsoft.XMLHTTP'); }, - function () { return new ActiveXObject('Msxml2.XMLHTTP.4.0'); }, - function () { - throw new MochiKit.Async.BrowserComplianceError("Browser does not support XMLHttpRequest"); - } - ]; - for (var i = 0; i < tryThese.length; i++) { - var func = tryThese[i]; - try { - self.XMLHttpRequest = func; - return func(); - } catch (e) { - // pass - } - } - } - return self.XMLHttpRequest(); - }, - - _xhr_onreadystatechange: function (d) { - // MochiKit.Logging.logDebug('this.readyState', this.readyState); - var m = MochiKit.Base; - if (this.readyState == 4) { - // IE SUCKS - try { - this.onreadystatechange = null; - } catch (e) { - try { - this.onreadystatechange = m.noop; - } catch (e) { - } - } - var status = null; - try { - status = this.status; - if (!status && m.isNotEmpty(this.responseText)) { - // 0 or undefined seems to mean cached or local - status = 304; - } - } catch (e) { - // pass - // MochiKit.Logging.logDebug('error getting status?', repr(items(e))); - } - // 200 is OK, 304 is NOT_MODIFIED - if (status == 200 || status == 304) { // OK - d.callback(this); - } else { - var err = new MochiKit.Async.XMLHttpRequestError(this, "Request failed"); - if (err.number) { - // XXX: This seems to happen on page change - d.errback(err); - } else { - // XXX: this seems to happen when the server is unreachable - d.errback(err); - } - } - } - }, - - _xhr_canceller: function (req) { - // IE SUCKS - try { - req.onreadystatechange = null; - } catch (e) { - try { - req.onreadystatechange = MochiKit.Base.noop; - } catch (e) { - } - } - req.abort(); - }, - - - sendXMLHttpRequest: function (req, /* optional */ sendContent) { - if (typeof(sendContent) == "undefined" || sendContent === null) { - sendContent = ""; - } - - var m = MochiKit.Base; - var self = MochiKit.Async; - var d = new self.Deferred(m.partial(self._xhr_canceller, req)); - - try { - req.onreadystatechange = m.bind(self._xhr_onreadystatechange, - req, d); - req.send(sendContent); - } catch (e) { - try { - req.onreadystatechange = null; - } catch (ignore) { - // pass - } - d.errback(e); - } - - return d; - - }, - - doSimpleXMLHttpRequest: function (url/*, ...*/) { - var self = MochiKit.Async; - var req = self.getXMLHttpRequest(); - if (arguments.length > 1) { - var m = MochiKit.Base; - var qs = m.queryString.apply(null, m.extend(null, arguments, 1)); - if (qs) { - url += "?" + qs; - } - } - req.open("GET", url, true); - return self.sendXMLHttpRequest(req); - }, - - loadJSONDoc: function (url) { - var self = MochiKit.Async; - var d = self.doSimpleXMLHttpRequest.apply(self, arguments); - d = d.addCallback(self.evalJSONRequest); - return d; - }, - - wait: function (seconds, /* optional */value) { - var d = new MochiKit.Async.Deferred(); - var m = MochiKit.Base; - if (typeof(value) != 'undefined') { - d.addCallback(function () { return value; }); - } - var timeout = setTimeout( - m.bind("callback", d), - Math.floor(seconds * 1000)); - d.canceller = function () { - try { - clearTimeout(timeout); - } catch (e) { - // pass - } - }; - return d; - }, - - callLater: function (seconds, func) { - var m = MochiKit.Base; - var pfunc = m.partial.apply(m, m.extend(null, arguments, 1)); - return MochiKit.Async.wait(seconds).addCallback( - function (res) { return pfunc(); } - ); - } -}); - - -MochiKit.Async.DeferredLock = function () { - this.waiting = []; - this.locked = false; - this.id = this._nextId(); -}; - -MochiKit.Async.DeferredLock.prototype = { - __class__: MochiKit.Async.DeferredLock, - acquire: function () { - d = new MochiKit.Async.Deferred(); - if (this.locked) { - this.waiting.push(d); - } else { - this.locked = true; - d.callback(this); - } - return d; - }, - release: function () { - if (!this.locked) { - throw TypeError("Tried to release an unlocked DeferredLock"); - } - this.locked = false; - if (this.waiting.length > 0) { - this.locked = true; - this.waiting.shift().callback(this); - } - }, - _nextId: MochiKit.Base.counter(), - repr: function () { - var state; - if (this.locked) { - state = 'locked, ' + this.waiting.length + ' waiting'; - } else { - state = 'unlocked'; - } - return 'DeferredLock(' + this.id + ', ' + state + ')'; - }, - toString: MochiKit.Base.forwardCall("repr") - -}; - -MochiKit.Async.DeferredList = function (list, /* optional */fireOnOneCallback, fireOnOneErrback, consumeErrors, canceller) { - - // call parent constructor - MochiKit.Async.Deferred.apply(this, [canceller]); - - this.list = list; - var resultList = []; - this.resultList = resultList; - - this.finishedCount = 0; - this.fireOnOneCallback = fireOnOneCallback; - this.fireOnOneErrback = fireOnOneErrback; - this.consumeErrors = consumeErrors; - - var cb = MochiKit.Base.bind(this._cbDeferred, this); - for (var i = 0; i < list.length; i++) { - var d = list[i]; - resultList.push(undefined); - d.addCallback(cb, i, true); - d.addErrback(cb, i, false); - } - - if (list.length === 0 && !fireOnOneCallback) { - this.callback(this.resultList); - } - -}; - -MochiKit.Async.DeferredList.prototype = new MochiKit.Async.Deferred(); - -MochiKit.Async.DeferredList.prototype._cbDeferred = function (index, succeeded, result) { - this.resultList[index] = [succeeded, result]; - this.finishedCount += 1; - if (this.fired !== 0) { - if (succeeded && this.fireOnOneCallback) { - this.callback([index, result]); - } else if (!succeeded && this.fireOnOneErrback) { - this.errback(result); - } else if (this.finishedCount == this.list.length) { - this.callback(this.resultList); - } - } - if (!succeeded && this.consumeErrors) { - result = null; - } - return result; -}; - -MochiKit.Async.gatherResults = function (deferredList) { - var d = new MochiKit.Async.DeferredList(deferredList, false, true, false); - d.addCallback(function (results) { - var ret = []; - for (var i = 0; i < results.length; i++) { - ret.push(results[i][1]); - } - return ret; - }); - return d; -}; - -MochiKit.Async.maybeDeferred = function (func) { - var self = MochiKit.Async; - var result; - try { - var r = func.apply(null, MochiKit.Base.extend([], arguments, 1)); - if (r instanceof self.Deferred) { - result = r; - } else if (r instanceof Error) { - result = self.fail(r); - } else { - result = self.succeed(r); - } - } catch (e) { - result = self.fail(e); - } - return result; -}; - - -MochiKit.Async.EXPORT = [ - "AlreadyCalledError", - "CancelledError", - "BrowserComplianceError", - "GenericError", - "XMLHttpRequestError", - "Deferred", - "succeed", - "fail", - "getXMLHttpRequest", - "doSimpleXMLHttpRequest", - "loadJSONDoc", - "wait", - "callLater", - "sendXMLHttpRequest", - "DeferredLock", - "DeferredList", - "gatherResults", - "maybeDeferred" -]; - -MochiKit.Async.EXPORT_OK = [ - "evalJSONRequest" -]; - -MochiKit.Async.__new__ = function () { - var m = MochiKit.Base; - var ne = m.partial(m._newNamedError, this); - ne("AlreadyCalledError", - function (deferred) { - /*** - - Raised by the Deferred if callback or errback happens - after it was already fired. - - ***/ - this.deferred = deferred; - } - ); - - ne("CancelledError", - function (deferred) { - /*** - - Raised by the Deferred cancellation mechanism. - - ***/ - this.deferred = deferred; - } - ); - - ne("BrowserComplianceError", - function (msg) { - /*** - - Raised when the JavaScript runtime is not capable of performing - the given function. Technically, this should really never be - raised because a non-conforming JavaScript runtime probably - isn't going to support exceptions in the first place. - - ***/ - this.message = msg; - } - ); - - ne("GenericError", - function (msg) { - this.message = msg; - } - ); - - ne("XMLHttpRequestError", - function (req, msg) { - /*** - - Raised when an XMLHttpRequest does not complete for any reason. - - ***/ - this.req = req; - this.message = msg; - try { - // Strange but true that this can raise in some cases. - this.number = req.status; - } catch (e) { - // pass - } - } - ); - - - this.EXPORT_TAGS = { - ":common": this.EXPORT, - ":all": m.concat(this.EXPORT, this.EXPORT_OK) - }; - - m.nameFunctions(this); - -}; - -MochiKit.Async.__new__(); - -MochiKit.Base._exportSymbols(this, MochiKit.Async); diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Base.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Base.js deleted file mode 100644 index 24f0db5df..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Base.js +++ /dev/null @@ -1,1259 +0,0 @@ -/*** - -MochiKit.Base 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide("MochiKit.Base"); -} - -if (typeof(MochiKit) == 'undefined') { - MochiKit = {}; -} -if (typeof(MochiKit.Base) == 'undefined') { - MochiKit.Base = {}; -} - -MochiKit.Base.VERSION = "1.4"; -MochiKit.Base.NAME = "MochiKit.Base"; -MochiKit.Base.update = function (self, obj/*, ... */) { - if (self === null) { - self = {}; - } - for (var i = 1; i < arguments.length; i++) { - var o = arguments[i]; - if (typeof(o) != 'undefined' && o !== null) { - for (var k in o) { - self[k] = o[k]; - } - } - } - return self; -}; - -MochiKit.Base.update(MochiKit.Base, { - __repr__: function () { - return "[" + this.NAME + " " + this.VERSION + "]"; - }, - - toString: function () { - return this.__repr__(); - }, - - camelize: function (selector) { - /* from dojo.style.toCamelCase */ - var arr = selector.split('-'); - var cc = arr[0]; - for (var i = 1; i < arr.length; i++) { - cc += arr[i].charAt(0).toUpperCase() + arr[i].substring(1); - } - return cc; - }, - - counter: function (n/* = 1 */) { - if (arguments.length === 0) { - n = 1; - } - return function () { - return n++; - }; - }, - - clone: function (obj) { - var me = arguments.callee; - if (arguments.length == 1) { - me.prototype = obj; - return new me(); - } - }, - -// _flattenArray: function (res, lst) { -// for (var i = 0; i < lst.length; i++) { -// var o = lst[i]; -// if (o instanceof Array) { -// arguments.callee(res, o); -// } else { -// res.push(o); -// } -// } -// return res; -// }, -// flattenArray: function (lst) { -// return MochiKit.Base._flattenArray([], lst); -// }, -// flattenArguments: function (lst/* ...*/) { -// var res = []; -// var m = MochiKit.Base; -// var args = m.extend(null, arguments); -// while (args.length) { -// var o = args.shift(); -// if (o && typeof(o) == "object" && typeof(o.length) == "number") { -// for (var i = o.length - 1; i >= 0; i--) { -// args.unshift(o[i]); -// } -// } else { -// res.push(o); -// } -// } -// return res; -// }, - - - extend: function (self, obj, /* optional */skip) { - // Extend an array with an array-like object starting - // from the skip index - if (!skip) { - skip = 0; - } - if (obj) { - // allow iterable fall-through, but skip the full isArrayLike - // check for speed, this is called often. - var l = obj.length; - if (typeof(l) != 'number' /* !isArrayLike(obj) */) { - if (typeof(MochiKit.Iter) != "undefined") { - obj = MochiKit.Iter.list(obj); - l = obj.length; - } else { - throw new TypeError("Argument not an array-like and MochiKit.Iter not present"); - } - } - if (!self) { - self = []; - } - for (var i = skip; i < l; i++) { - self.push(obj[i]); - } - } - // This mutates, but it's convenient to return because - // it's often used like a constructor when turning some - // ghetto array-like to a real array - return self; - }, - - - updatetree: function (self, obj/*, ...*/) { - if (self === null) { - self = {}; - } - for (var i = 1; i < arguments.length; i++) { - var o = arguments[i]; - if (typeof(o) != 'undefined' && o !== null) { - for (var k in o) { - var v = o[k]; - if (typeof(self[k]) == 'object' && typeof(v) == 'object') { - arguments.callee(self[k], v); - } else { - self[k] = v; - } - } - } - } - return self; - }, - - setdefault: function (self, obj/*, ...*/) { - if (self === null) { - self = {}; - } - for (var i = 1; i < arguments.length; i++) { - var o = arguments[i]; - for (var k in o) { - if (!(k in self)) { - self[k] = o[k]; - } - } - } - return self; - }, -// -// keys: function (obj) { -// var rval = []; -// for (var prop in obj) { -// rval.push(prop); -// } -// return rval; -// }, - -// items: function (obj) { -// var rval = []; -// var e; -// for (var prop in obj) { -// var v; -// try { -// v = obj[prop]; -// } catch (e) { -// continue; -// } -// rval.push([prop, v]); -// } -// return rval; -// }, -// -// - _newNamedError: function (module, name, func) { - func.prototype = new MochiKit.Base.NamedError(module.NAME + "." + name); - module[name] = func; - }, - - - operator: { - // unary logic operators -// truth: function (a) { return !!a; }, -// lognot: function (a) { return !a; }, - identity: function (a) { return a; } -// -// // bitwise unary operators -// not: function (a) { return ~a; }, -// neg: function (a) { return -a; }, -// -// // binary operators -// add: function (a, b) { return a + b; }, -// sub: function (a, b) { return a - b; }, -// div: function (a, b) { return a / b; }, -// mod: function (a, b) { return a % b; }, -// mul: function (a, b) { return a * b; }, -// -// // bitwise binary operators -// and: function (a, b) { return a & b; }, -// or: function (a, b) { return a | b; }, -// xor: function (a, b) { return a ^ b; }, -// lshift: function (a, b) { return a << b; }, -// rshift: function (a, b) { return a >> b; }, -// zrshift: function (a, b) { return a >>> b; }, -// -// // near-worthless built-in comparators -// eq: function (a, b) { return a == b; }, -// ne: function (a, b) { return a != b; }, -// gt: function (a, b) { return a > b; }, -// ge: function (a, b) { return a >= b; }, -// lt: function (a, b) { return a < b; }, -// le: function (a, b) { return a <= b; }, -// -// // strict built-in comparators -// seq: function (a, b) { return a === b; }, -// sne: function (a, b) { return a !== b; }, -// -// // compare comparators -// ceq: function (a, b) { return MochiKit.Base.compare(a, b) === 0; }, -// cne: function (a, b) { return MochiKit.Base.compare(a, b) !== 0; }, -// cgt: function (a, b) { return MochiKit.Base.compare(a, b) == 1; }, -// cge: function (a, b) { return MochiKit.Base.compare(a, b) != -1; }, -// clt: function (a, b) { return MochiKit.Base.compare(a, b) == -1; }, -// cle: function (a, b) { return MochiKit.Base.compare(a, b) != 1; }, -// -// // binary logical operators -// logand: function (a, b) { return a && b; }, -// logor: function (a, b) { return a || b; }, -// contains: function (a, b) { return b in a; } - }, - - forwardCall: function (func) { - return function () { - return this[func].apply(this, arguments); - }; - }, - -// itemgetter: function (func) { -// return function (arg) { -// return arg[func]; -// }; -// }, - - typeMatcher: function (/* typ */) { - var types = {}; - for (var i = 0; i < arguments.length; i++) { - var typ = arguments[i]; - types[typ] = typ; - } - return function () { - for (var i = 0; i < arguments.length; i++) { - if (!(typeof(arguments[i]) in types)) { - return false; - } - } - return true; - }; - }, - - isNull: function (/* ... */) { - for (var i = 0; i < arguments.length; i++) { - if (arguments[i] !== null) { - return false; - } - } - return true; - }, - - isUndefinedOrNull: function (/* ... */) { - for (var i = 0; i < arguments.length; i++) { - var o = arguments[i]; - if (!(typeof(o) == 'undefined' || o === null)) { - return false; - } - } - return true; - }, - - isEmpty: function (obj) { - return !MochiKit.Base.isNotEmpty.apply(this, arguments); - }, - - isNotEmpty: function (obj) { - for (var i = 0; i < arguments.length; i++) { - var o = arguments[i]; - if (!(o && o.length)) { - return false; - } - } - return true; - }, - - isArrayLike: function () { - for (var i = 0; i < arguments.length; i++) { - var o = arguments[i]; - var typ = typeof(o); - if ( - (typ != 'object' && !(typ == 'function' && typeof(o.item) == 'function')) || - o === null || - typeof(o.length) != 'number' || - o.nodeType === 3 - ) { - return false; - } - } - return true; - }, - - isDateLike: function () { - for (var i = 0; i < arguments.length; i++) { - var o = arguments[i]; - if (typeof(o) != "object" || o === null - || typeof(o.getTime) != 'function') { - return false; - } - } - return true; - }, - - - xmap: function (fn/*, obj... */) { - if (fn === null) { - return MochiKit.Base.extend(null, arguments, 1); - } - var rval = []; - for (var i = 1; i < arguments.length; i++) { - rval.push(fn(arguments[i])); - } - return rval; - }, - - map: function (fn, lst/*, lst... */) { - var m = MochiKit.Base; - var itr = MochiKit.Iter; - var isArrayLike = m.isArrayLike; - if (arguments.length <= 2) { - // allow an iterable to be passed - if (!isArrayLike(lst)) { - if (itr) { - // fast path for map(null, iterable) - lst = itr.list(lst); - if (fn === null) { - return lst; - } - } else { - throw new TypeError("Argument not an array-like and MochiKit.Iter not present"); - } - } - // fast path for map(null, lst) - if (fn === null) { - return m.extend(null, lst); - } - // disabled fast path for map(fn, lst) - /* - if (false && typeof(Array.prototype.map) == 'function') { - // Mozilla fast-path - return Array.prototype.map.call(lst, fn); - } - */ - var rval = []; - for (var i = 0; i < lst.length; i++) { - rval.push(fn(lst[i])); - } - return rval; - } else { - // default for map(null, ...) is zip(...) - if (fn === null) { - fn = Array; - } - var length = null; - for (i = 1; i < arguments.length; i++) { - // allow iterables to be passed - if (!isArrayLike(arguments[i])) { - if (itr) { - return itr.list(itr.imap.apply(null, arguments)); - } else { - throw new TypeError("Argument not an array-like and MochiKit.Iter not present"); - } - } - // find the minimum length - var l = arguments[i].length; - if (length === null || length > l) { - length = l; - } - } - rval = []; - for (i = 0; i < length; i++) { - var args = []; - for (var j = 1; j < arguments.length; j++) { - args.push(arguments[j][i]); - } - rval.push(fn.apply(this, args)); - } - return rval; - } - }, - - xfilter: function (fn/*, obj... */) { - var rval = []; - if (fn === null) { - fn = MochiKit.Base.operator.truth; - } - for (var i = 1; i < arguments.length; i++) { - var o = arguments[i]; - if (fn(o)) { - rval.push(o); - } - } - return rval; - }, - - filter: function (fn, lst, self) { - var rval = []; - // allow an iterable to be passed - var m = MochiKit.Base; - if (!m.isArrayLike(lst)) { - if (MochiKit.Iter) { - lst = MochiKit.Iter.list(lst); - } else { - throw new TypeError("Argument not an array-like and MochiKit.Iter not present"); - } - } - if (fn === null) { - fn = m.operator.truth; - } - if (typeof(Array.prototype.filter) == 'function') { - // Mozilla fast-path - return Array.prototype.filter.call(lst, fn, self); - } else if (typeof(self) == 'undefined' || self === null) { - for (var i = 0; i < lst.length; i++) { - var o = lst[i]; - if (fn(o)) { - rval.push(o); - } - } - } else { - for (i = 0; i < lst.length; i++) { - o = lst[i]; - if (fn.call(self, o)) { - rval.push(o); - } - } - } - return rval; - }, - - - _wrapDumbFunction: function (func) { - return function () { - // fast path! - switch (arguments.length) { - case 0: return func(); - case 1: return func(arguments[0]); - case 2: return func(arguments[0], arguments[1]); - case 3: return func(arguments[0], arguments[1], arguments[2]); - } - var args = []; - for (var i = 0; i < arguments.length; i++) { - args.push("arguments[" + i + "]"); - } - return eval("(func(" + args.join(",") + "))"); - }; - }, - - methodcaller: function (func/*, args... */) { - var args = MochiKit.Base.extend(null, arguments, 1); - if (typeof(func) == "function") { - return function (obj) { - return func.apply(obj, args); - }; - } else { - return function (obj) { - return obj[func].apply(obj, args); - }; - } - }, - - method: function (self, func) { - var m = MochiKit.Base; - return m.bind.apply(this, m.extend([func, self], arguments, 2)); - }, - - compose: function (f1, f2/*, f3, ... fN */) { - var fnlist = []; - var m = MochiKit.Base; - if (arguments.length === 0) { - throw new TypeError("compose() requires at least one argument"); - } - for (var i = 0; i < arguments.length; i++) { - var fn = arguments[i]; - if (typeof(fn) != "function") { - throw new TypeError(repr(fn) + " is not a function"); - } - fnlist.push(fn); - } - return function () { - var args = arguments; - for (var i = fnlist.length - 1; i >= 0; i--) { - args = [fnlist[i].apply(this, args)]; - } - return args[0]; - }; - }, - - bind: function (func, self/* args... */) { - if (typeof(func) == "string") { - func = self[func]; - } - var im_func = func.im_func; - var im_preargs = func.im_preargs; - var im_self = func.im_self; - var m = MochiKit.Base; - if (typeof(func) == "function" && typeof(func.apply) == "undefined") { - // this is for cases where JavaScript sucks ass and gives you a - // really dumb built-in function like alert() that doesn't have - // an apply - func = m._wrapDumbFunction(func); - } - if (typeof(im_func) != 'function') { - im_func = func; - } - if (typeof(self) != 'undefined') { - im_self = self; - } - if (typeof(im_preargs) == 'undefined') { - im_preargs = []; - } else { - im_preargs = im_preargs.slice(); - } - m.extend(im_preargs, arguments, 2); - var newfunc = function () { - var args = arguments; - var me = arguments.callee; - if (me.im_preargs.length > 0) { - args = m.concat(me.im_preargs, args); - } - var self = me.im_self; - if (!self) { - self = this; - } - return me.im_func.apply(self, args); - }; - newfunc.im_self = im_self; - newfunc.im_func = im_func; - newfunc.im_preargs = im_preargs; - return newfunc; - }, - - bindMethods: function (self) { - var bind = MochiKit.Base.bind; - for (var k in self) { - var func = self[k]; - if (typeof(func) == 'function') { - self[k] = bind(func, self); - } - } - }, - - registerComparator: function (name, check, comparator, /* optional */ override) { - MochiKit.Base.comparatorRegistry.register(name, check, comparator, override); - }, - - _primitives: {'boolean': true, 'string': true, 'number': true}, - - compare: function (a, b) { - if (a == b) { - return 0; - } - var aIsNull = (typeof(a) == 'undefined' || a === null); - var bIsNull = (typeof(b) == 'undefined' || b === null); - if (aIsNull && bIsNull) { - return 0; - } else if (aIsNull) { - return -1; - } else if (bIsNull) { - return 1; - } - var m = MochiKit.Base; - // bool, number, string have meaningful comparisons - var prim = m._primitives; - if (!(typeof(a) in prim && typeof(b) in prim)) { - try { - return m.comparatorRegistry.match(a, b); - } catch (e) { - if (e != m.NotFound) { - throw e; - } - } - } - if (a < b) { - return -1; - } else if (a > b) { - return 1; - } - // These types can't be compared - var repr = m.repr; - throw new TypeError(repr(a) + " and " + repr(b) + " can not be compared"); - }, - - compareDateLike: function (a, b) { - return MochiKit.Base.compare(a.getTime(), b.getTime()); - }, - - compareArrayLike: function (a, b) { - var compare = MochiKit.Base.compare; - var count = a.length; - var rval = 0; - if (count > b.length) { - rval = 1; - count = b.length; - } else if (count < b.length) { - rval = -1; - } - for (var i = 0; i < count; i++) { - var cmp = compare(a[i], b[i]); - if (cmp) { - return cmp; - } - } - return rval; - }, - - registerRepr: function (name, check, wrap, /* optional */override) { - MochiKit.Base.reprRegistry.register(name, check, wrap, override); - }, - - repr: function (o) { - if (typeof(o) == "undefined") { - return "undefined"; - } else if (o === null) { - return "null"; - } - try { - if (typeof(o.__repr__) == 'function') { - return o.__repr__(); - } else if (typeof(o.repr) == 'function' && o.repr != arguments.callee) { - return o.repr(); - } - return MochiKit.Base.reprRegistry.match(o); - } catch (e) { - if (typeof(o.NAME) == 'string' && ( - o.toString == Function.prototype.toString || - o.toString == Object.prototype.toString - )) { - return o.NAME; - } - } - try { - var ostring = (o + ""); - } catch (e) { - return "[" + typeof(o) + "]"; - } - if (typeof(o) == "function") { - o = ostring.replace(/^\s+/, ""); - var idx = o.indexOf("{"); - if (idx != -1) { - o = o.substr(0, idx) + "{...}"; - } - } - return ostring; - }, - - reprArrayLike: function (o) { - var m = MochiKit.Base; - return "[" + m.map(m.repr, o).join(", ") + "]"; - }, - - reprString: function (o) { - return ('"' + o.replace(/(["\\])/g, '\\$1') + '"' - ).replace(/[\f]/g, "\\f" - ).replace(/[\b]/g, "\\b" - ).replace(/[\n]/g, "\\n" - ).replace(/[\t]/g, "\\t" - ).replace(/[\r]/g, "\\r"); - }, - - reprNumber: function (o) { - return o + ""; - }, - - registerJSON: function (name, check, wrap, /* optional */override) { - MochiKit.Base.jsonRegistry.register(name, check, wrap, override); - }, - - - evalJSON: function () { - return eval("(" + arguments[0] + ")"); - }, - - serializeJSON: function (o) { - var objtype = typeof(o); - if (objtype == "undefined") { - return "undefined"; - } else if (objtype == "number" || objtype == "boolean") { - return o + ""; - } else if (o === null) { - return "null"; - } - var m = MochiKit.Base; - var reprString = m.reprString; - if (objtype == "string") { - return reprString(o); - } - // recurse - var me = arguments.callee; - // short-circuit for objects that support "json" serialization - // if they return "self" then just pass-through... - var newObj; - if (typeof(o.__json__) == "function") { - newObj = o.__json__(); - if (o !== newObj) { - return me(newObj); - } - } - if (typeof(o.json) == "function") { - newObj = o.json(); - if (o !== newObj) { - return me(newObj); - } - } - // array - if (objtype != "function" && typeof(o.length) == "number") { - var res = []; - for (var i = 0; i < o.length; i++) { - var val = me(o[i]); - if (typeof(val) != "string") { - val = "undefined"; - } - res.push(val); - } - return "[" + res.join(", ") + "]"; - } - // look in the registry - try { - newObj = m.jsonRegistry.match(o); - if (o !== newObj) { - return me(newObj); - } - } catch (e) { - if (e != m.NotFound) { - // something really bad happened - throw e; - } - } - // it's a function with no adapter, bad - if (objtype == "function") { - return null; - } - // generic object code path - res = []; - for (var k in o) { - var useKey; - if (typeof(k) == "number") { - useKey = '"' + k + '"'; - } else if (typeof(k) == "string") { - useKey = reprString(k); - } else { - // skip non-string or number keys - continue; - } - val = me(o[k]); - if (typeof(val) != "string") { - // skip non-serializable values - continue; - } - res.push(useKey + ":" + val); - } - return "{" + res.join(", ") + "}"; - }, - - - objEqual: function (a, b) { - return (MochiKit.Base.compare(a, b) === 0); - }, - - arrayEqual: function (self, arr) { - if (self.length != arr.length) { - return false; - } - return (MochiKit.Base.compare(self, arr) === 0); - }, - - concat: function (/* lst... */) { - var rval = []; - var extend = MochiKit.Base.extend; - for (var i = 0; i < arguments.length; i++) { - extend(rval, arguments[i]); - } - return rval; - }, - - keyComparator: function (key/* ... */) { - // fast-path for single key comparisons - var m = MochiKit.Base; - var compare = m.compare; - if (arguments.length == 1) { - return function (a, b) { - return compare(a[key], b[key]); - }; - } - var compareKeys = m.extend(null, arguments); - return function (a, b) { - var rval = 0; - // keep comparing until something is inequal or we run out of - // keys to compare - for (var i = 0; (rval === 0) && (i < compareKeys.length); i++) { - var key = compareKeys[i]; - rval = compare(a[key], b[key]); - } - return rval; - }; - }, - - reverseKeyComparator: function (key) { - var comparator = MochiKit.Base.keyComparator.apply(this, arguments); - return function (a, b) { - return comparator(b, a); - }; - }, - - partial: function (func) { - var m = MochiKit.Base; - return m.bind.apply(this, m.extend([func, undefined], arguments, 1)); - }, - - listMinMax: function (which, lst) { - if (lst.length === 0) { - return null; - } - var cur = lst[0]; - var compare = MochiKit.Base.compare; - for (var i = 1; i < lst.length; i++) { - var o = lst[i]; - if (compare(o, cur) == which) { - cur = o; - } - } - return cur; - }, - - objMax: function (/* obj... */) { - return MochiKit.Base.listMinMax(1, arguments); - }, - - objMin: function (/* obj... */) { - return MochiKit.Base.listMinMax(-1, arguments); - }, - - findIdentical: function (lst, value, start/* = 0 */, /* optional */end) { - if (typeof(end) == "undefined" || end === null) { - end = lst.length; - } - if (typeof(start) == "undefined" || start === null) { - start = 0; - } - for (var i = start; i < end; i++) { - if (lst[i] === value) { - return i; - } - } - return -1; - }, - - mean: function(/* lst... */) { - /* http://www.nist.gov/dads/HTML/mean.html */ - var sum = 0; - - var m = MochiKit.Base; - var args = m.extend(null, arguments); - var count = args.length; - - while (args.length) { - var o = args.shift(); - if (o && typeof(o) == "object" && typeof(o.length) == "number") { - count += o.length - 1; - for (var i = o.length - 1; i >= 0; i--) { - sum += o[i]; - } - } else { - sum += o; - } - } - - if (count <= 0) { - throw new TypeError('mean() requires at least one argument'); - } - - return sum/count; - }, - - median: function(/* lst... */) { - /* http://www.nist.gov/dads/HTML/median.html */ - var data = MochiKit.Base.flattenArguments(arguments); - if (data.length === 0) { - throw new TypeError('median() requires at least one argument'); - } - data.sort(compare); - if (data.length % 2 == 0) { - var upper = data.length / 2; - return (data[upper] + data[upper - 1]) / 2; - } else { - return data[(data.length - 1) / 2]; - } - }, - - findValue: function (lst, value, start/* = 0 */, /* optional */end) { - if (typeof(end) == "undefined" || end === null) { - end = lst.length; - } - if (typeof(start) == "undefined" || start === null) { - start = 0; - } - var cmp = MochiKit.Base.compare; - for (var i = start; i < end; i++) { - if (cmp(lst[i], value) === 0) { - return i; - } - } - return -1; - }, - - nodeWalk: function (node, visitor) { - var nodes = [node]; - var extend = MochiKit.Base.extend; - while (nodes.length) { - var res = visitor(nodes.shift()); - if (res) { - extend(nodes, res); - } - } - }, - - - nameFunctions: function (namespace) { - var base = namespace.NAME; - if (typeof(base) == 'undefined') { - base = ''; - } else { - base = base + '.'; - } - for (var name in namespace) { - var o = namespace[name]; - if (typeof(o) == 'function' && typeof(o.NAME) == 'undefined') { - try { - o.NAME = base + name; - } catch (e) { - // pass - } - } - } - }, - - - queryString: function (names, values) { - // check to see if names is a string or a DOM element, and if - // MochiKit.DOM is available. If so, drop it like it's a form - // Ugliest conditional in MochiKit? Probably! - if (typeof(MochiKit.DOM) != "undefined" && arguments.length == 1 - && (typeof(names) == "string" || ( - typeof(names.nodeType) != "undefined" && names.nodeType > 0 - )) - ) { - var kv = MochiKit.DOM.formContents(names); - names = kv[0]; - values = kv[1]; - } else if (arguments.length == 1) { - var o = names; - names = []; - values = []; - for (var k in o) { - var v = o[k]; - if (typeof(v) != "function") { - names.push(k); - values.push(v); - } - } - } - var rval = []; - var len = Math.min(names.length, values.length); - var urlEncode = MochiKit.Base.urlEncode; - for (var i = 0; i < len; i++) { - v = values[i]; - if (typeof(v) != 'undefined' && v !== null) { - rval.push(urlEncode(names[i]) + "=" + urlEncode(v)); - } - } - return rval.join("&"); - }, - - - parseQueryString: function (encodedString, useArrays) { - var pairs = encodedString.replace(/\+/g, "%20").split("&"); - var o = {}; - var decode; - if (typeof(decodeURIComponent) != "undefined") { - decode = decodeURIComponent; - } else { - decode = unescape; - } - if (useArrays) { - for (var i = 0; i < pairs.length; i++) { - var pair = pairs[i].split("="); - var name = decode(pair[0]); - var arr = o[name]; - if (!(arr instanceof Array)) { - arr = []; - o[name] = arr; - } - arr.push(decode(pair[1])); - } - } else { - for (i = 0; i < pairs.length; i++) { - pair = pairs[i].split("="); - o[decode(pair[0])] = decode(pair[1]); - } - } - return o; - } -}); - -MochiKit.Base.AdapterRegistry = function () { - this.pairs = []; -}; - -MochiKit.Base.AdapterRegistry.prototype = { - register: function (name, check, wrap, /* optional */ override) { - if (override) { - this.pairs.unshift([name, check, wrap]); - } else { - this.pairs.push([name, check, wrap]); - } - }, - - match: function (/* ... */) { - for (var i = 0; i < this.pairs.length; i++) { - var pair = this.pairs[i]; - if (pair[1].apply(this, arguments)) { - return pair[2].apply(this, arguments); - } - } - throw MochiKit.Base.NotFound; - }, - - unregister: function (name) { - for (var i = 0; i < this.pairs.length; i++) { - var pair = this.pairs[i]; - if (pair[0] == name) { - this.pairs.splice(i, 1); - return true; - } - } - return false; - } -}; - - -MochiKit.Base.EXPORT = [ - "flattenArray", - "noop", - "camelize", - "counter", - "clone", - "extend", - "update", - "updatetree", - "setdefault", - "keys", - "items", - "NamedError", - "operator", - "forwardCall", - "itemgetter", - "typeMatcher", - "isCallable", - "isUndefined", - "isUndefinedOrNull", - "isNull", - "isEmpty", - "isNotEmpty", - "isArrayLike", - "isDateLike", - "xmap", - "map", - "xfilter", - "filter", - "methodcaller", - "compose", - "bind", - "bindMethods", - "NotFound", - "AdapterRegistry", - "registerComparator", - "compare", - "registerRepr", - "repr", - "objEqual", - "arrayEqual", - "concat", - "keyComparator", - "reverseKeyComparator", - "partial", - "merge", - "listMinMax", - "listMax", - "listMin", - "objMax", - "objMin", - "nodeWalk", - "zip", - "urlEncode", - "queryString", - "serializeJSON", - "registerJSON", - "evalJSON", - "parseQueryString", - "findValue", - "findIdentical", - "flattenArguments", - "method", - "average", - "mean", - "median" -]; - -MochiKit.Base.EXPORT_OK = [ - "nameFunctions", - "comparatorRegistry", - "reprRegistry", - "jsonRegistry", - "compareDateLike", - "compareArrayLike", - "reprArrayLike", - "reprString", - "reprNumber" -]; - -MochiKit.Base._exportSymbols = function (globals, module) { - if (typeof(MochiKit.__export__) == "undefined") { - MochiKit.__export__ = (MochiKit.__compat__ || - (typeof(JSAN) == 'undefined' && typeof(dojo) == 'undefined') - ); - } - if (!MochiKit.__export__) { - return; - } - var all = module.EXPORT_TAGS[":all"]; - for (var i = 0; i < all.length; i++) { - globals[all[i]] = module[all[i]]; - } -}; - -MochiKit.Base.__new__ = function () { - // A singleton raised when no suitable adapter is found - var m = this; - - // convenience - m.noop = m.operator.identity; - - // Backwards compat - m.forward = m.forwardCall; - m.find = m.findValue; - - if (typeof(encodeURIComponent) != "undefined") { - m.urlEncode = function (unencoded) { - return encodeURIComponent(unencoded).replace(/\'/g, '%27'); - }; - } else { - m.urlEncode = function (unencoded) { - return escape(unencoded - ).replace(/\+/g, '%2B' - ).replace(/\"/g,'%22' - ).rval.replace(/\'/g, '%27'); - }; - } - - m.NamedError = function (name) { - this.message = name; - this.name = name; - }; - m.NamedError.prototype = new Error(); - m.update(m.NamedError.prototype, { - repr: function () { - if (this.message && this.message != this.name) { - return this.name + "(" + m.repr(this.message) + ")"; - } else { - return this.name + "()"; - } - }, - toString: m.forwardCall("repr") - }); - - m.NotFound = new m.NamedError("MochiKit.Base.NotFound"); - - - m.listMax = m.partial(m.listMinMax, 1); - m.listMin = m.partial(m.listMinMax, -1); - - m.isCallable = m.typeMatcher('function'); - m.isUndefined = m.typeMatcher('undefined'); - - m.merge = m.partial(m.update, null); - m.zip = m.partial(m.map, null); - - m.average = m.mean; - - m.comparatorRegistry = new m.AdapterRegistry(); - m.registerComparator("dateLike", m.isDateLike, m.compareDateLike); - m.registerComparator("arrayLike", m.isArrayLike, m.compareArrayLike); - - m.reprRegistry = new m.AdapterRegistry(); - m.registerRepr("arrayLike", m.isArrayLike, m.reprArrayLike); - m.registerRepr("string", m.typeMatcher("string"), m.reprString); - m.registerRepr("numbers", m.typeMatcher("number", "boolean"), m.reprNumber); - - m.jsonRegistry = new m.AdapterRegistry(); - - var all = m.concat(m.EXPORT, m.EXPORT_OK); - m.EXPORT_TAGS = { - ":common": m.concat(m.EXPORT_OK), - ":all": all - }; - - m.nameFunctions(this); - -}; - -MochiKit.Base.__new__(); - -// -// XXX: Internet Explorer blows -// -if (MochiKit.__export__) { - compare = MochiKit.Base.compare; -} - -MochiKit.Base._exportSymbols(this, MochiKit.Base); diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Color.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Color.js deleted file mode 100644 index 1064c597b..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Color.js +++ /dev/null @@ -1,845 +0,0 @@ -/*** - -MochiKit.Color 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito and others. All rights Reserved. - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.Color'); - dojo.require('MochiKit.Base'); - dojo.require('MochiKit.DOM'); - dojo.require('MochiKit.Style'); -} - -if (typeof(JSAN) != 'undefined') { - JSAN.use("MochiKit.Base", []); - JSAN.use("MochiKit.DOM", []); - JSAN.use("MochiKit.Style", []); -} - -try { - if (typeof(MochiKit.Base) == 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.Color depends on MochiKit.Base"; -} - -try { - if (typeof(MochiKit.Base) == 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.Color depends on MochiKit.DOM"; -} - -try { - if (typeof(MochiKit.Base) == 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.Color depends on MochiKit.Style"; -} - -if (typeof(MochiKit.Color) == "undefined") { - MochiKit.Color = {}; -} - -MochiKit.Color.NAME = "MochiKit.Color"; -MochiKit.Color.VERSION = "1.4"; - -MochiKit.Color.__repr__ = function () { - return "[" + this.NAME + " " + this.VERSION + "]"; -}; - -MochiKit.Color.toString = function () { - return this.__repr__(); -}; - - -MochiKit.Color.Color = function (red, green, blue, alpha) { - if (typeof(alpha) == 'undefined' || alpha === null) { - alpha = 1.0; - } - this.rgb = { - r: red, - g: green, - b: blue, - a: alpha - }; -}; - - -// Prototype methods -MochiKit.Color.Color.prototype = { - - __class__: MochiKit.Color.Color, - -// colorWithAlpha: function (alpha) { -// var rgb = this.rgb; -// var m = MochiKit.Color; -// return m.Color.fromRGB(rgb.r, rgb.g, rgb.b, alpha); -// }, -// -// colorWithHue: function (hue) { -// // get an HSL model, and set the new hue... -// var hsl = this.asHSL(); -// hsl.h = hue; -// var m = MochiKit.Color; -// // convert back to RGB... -// return m.Color.fromHSL(hsl); -// }, -// -// colorWithSaturation: function (saturation) { -// // get an HSL model, and set the new hue... -// var hsl = this.asHSL(); -// hsl.s = saturation; -// var m = MochiKit.Color; -// // convert back to RGB... -// return m.Color.fromHSL(hsl); -// }, -// -// colorWithLightness: function (lightness) { -// // get an HSL model, and set the new hue... -// var hsl = this.asHSL(); -// hsl.l = lightness; -// var m = MochiKit.Color; -// // convert back to RGB... -// return m.Color.fromHSL(hsl); -// }, -// -// darkerColorWithLevel: function (level) { -// var hsl = this.asHSL(); -// hsl.l = Math.max(hsl.l - level, 0); -// var m = MochiKit.Color; -// return m.Color.fromHSL(hsl); -// }, -// -// lighterColorWithLevel: function (level) { -// var hsl = this.asHSL(); -// hsl.l = Math.min(hsl.l + level, 1); -// var m = MochiKit.Color; -// return m.Color.fromHSL(hsl); -// }, -// -// blendedColor: function (other, /* optional */ fraction) { -// if (typeof(fraction) == 'undefined' || fraction === null) { -// fraction = 0.5; -// } -// var sf = 1.0 - fraction; -// var s = this.rgb; -// var d = other.rgb; -// var df = fraction; -// return MochiKit.Color.Color.fromRGB( -// (s.r * sf) + (d.r * df), -// (s.g * sf) + (d.g * df), -// (s.b * sf) + (d.b * df), -// (s.a * sf) + (d.a * df) -// ); -// }, -// -// compareRGB: function (other) { -// var a = this.asRGB(); -// var b = other.asRGB(); -// return MochiKit.Base.compare( -// [a.r, a.g, a.b, a.a], -// [b.r, b.g, b.b, b.a] -// ); -// }, -// -// isLight: function () { -// return this.asHSL().b > 0.5; -// }, -// -// isDark: function () { -// return (!this.isLight()); -// }, -// -// toHSLString: function () { -// var c = this.asHSL(); -// var ccc = MochiKit.Color.clampColorComponent; -// var rval = this._hslString; -// if (!rval) { -// var mid = ( -// ccc(c.h, 360).toFixed(0) -// + "," + ccc(c.s, 100).toPrecision(4) + "%" -// + "," + ccc(c.l, 100).toPrecision(4) + "%" -// ); -// var a = c.a; -// if (a >= 1) { -// a = 1; -// rval = "hsl(" + mid + ")"; -// } else { -// if (a <= 0) { -// a = 0; -// } -// rval = "hsla(" + mid + "," + a + ")"; -// } -// this._hslString = rval; -// } -// return rval; -// }, -// -// toRGBString: function () { -// var c = this.rgb; -// var ccc = MochiKit.Color.clampColorComponent; -// var rval = this._rgbString; -// if (!rval) { -// var mid = ( -// ccc(c.r, 255).toFixed(0) -// + "," + ccc(c.g, 255).toFixed(0) -// + "," + ccc(c.b, 255).toFixed(0) -// ); -// if (c.a != 1) { -// rval = "rgba(" + mid + "," + c.a + ")"; -// } else { -// rval = "rgb(" + mid + ")"; -// } -// this._rgbString = rval; -// } -// return rval; -// }, -// -// asRGB: function () { -// return MochiKit.Base.clone(this.rgb); -// }, -// -// toHexString: function () { -// var m = MochiKit.Color; -// var c = this.rgb; -// var ccc = MochiKit.Color.clampColorComponent; -// var rval = this._hexString; -// if (!rval) { -// rval = ("#" + -// m.toColorPart(ccc(c.r, 255)) + -// m.toColorPart(ccc(c.g, 255)) + -// m.toColorPart(ccc(c.b, 255)) -// ); -// this._hexString = rval; -// } -// return rval; -// }, -// -// asHSV: function () { -// var hsv = this.hsv; -// var c = this.rgb; -// if (typeof(hsv) == 'undefined' || hsv === null) { -// hsv = MochiKit.Color.rgbToHSV(this.rgb); -// this.hsv = hsv; -// } -// return MochiKit.Base.clone(hsv); -// }, -// -// asHSL: function () { -// var hsl = this.hsl; -// var c = this.rgb; -// if (typeof(hsl) == 'undefined' || hsl === null) { -// hsl = MochiKit.Color.rgbToHSL(this.rgb); -// this.hsl = hsl; -// } -// return MochiKit.Base.clone(hsl); -// }, - - toString: function () { - return this.toRGBString(); - }, - - repr: function () { - var c = this.rgb; - var col = [c.r, c.g, c.b, c.a]; - return this.__class__.NAME + "(" + col.join(", ") + ")"; - } - -}; - -// Constructor methods -MochiKit.Base.update(MochiKit.Color.Color, { -// fromRGB: function (red, green, blue, alpha) { -// // designated initializer -// var Color = MochiKit.Color.Color; -// if (arguments.length == 1) { -// var rgb = red; -// red = rgb.r; -// green = rgb.g; -// blue = rgb.b; -// if (typeof(rgb.a) == 'undefined') { -// alpha = undefined; -// } else { -// alpha = rgb.a; -// } -// } -// return new Color(red, green, blue, alpha); -// }, -// -// fromHSL: function (hue, saturation, lightness, alpha) { -// var m = MochiKit.Color; -// return m.Color.fromRGB(m.hslToRGB.apply(m, arguments)); -// }, -// -// fromHSV: function (hue, saturation, value, alpha) { -// var m = MochiKit.Color; -// return m.Color.fromRGB(m.hsvToRGB.apply(m, arguments)); -// }, -// -// fromName: function (name) { -// var Color = MochiKit.Color.Color; -// // Opera 9 seems to "quote" named colors(?!) -// if (name.charAt(0) == '"') { -// name = name.substr(1, name.length - 2); -// } -// var htmlColor = Color._namedColors[name.toLowerCase()]; -// if (typeof(htmlColor) == 'string') { -// return Color.fromHexString(htmlColor); -// } else if (name == "transparent") { -// return Color.transparentColor(); -// } -// return null; -// }, -// -// fromString: function (colorString) { -// var self = MochiKit.Color.Color; -// var three = colorString.substr(0, 3); -// if (three == "rgb") { -// return self.fromRGBString(colorString); -// } else if (three == "hsl") { -// return self.fromHSLString(colorString); -// } else if (colorString.charAt(0) == "#") { -// return self.fromHexString(colorString); -// } -// return self.fromName(colorString); -// }, -// -// -// fromHexString: function (hexCode) { -// if (hexCode.charAt(0) == '#') { -// hexCode = hexCode.substring(1); -// } -// var components = []; -// var i, hex; -// if (hexCode.length == 3) { -// for (i = 0; i < 3; i++) { -// hex = hexCode.substr(i, 1); -// components.push(parseInt(hex + hex, 16) / 255.0); -// } -// } else { -// for (i = 0; i < 6; i += 2) { -// hex = hexCode.substr(i, 2); -// components.push(parseInt(hex, 16) / 255.0); -// } -// } -// var Color = MochiKit.Color.Color; -// return Color.fromRGB.apply(Color, components); -// }, -// -// -// _fromColorString: function (pre, method, scales, colorCode) { -// // parses either HSL or RGB -// if (colorCode.indexOf(pre) === 0) { -// colorCode = colorCode.substring(colorCode.indexOf("(", 3) + 1, colorCode.length - 1); -// } -// var colorChunks = colorCode.split(/\s*,\s*/); -// var colorFloats = []; -// for (var i = 0; i < colorChunks.length; i++) { -// var c = colorChunks[i]; -// var val; -// var three = c.substring(c.length - 3); -// if (c.charAt(c.length - 1) == '%') { -// val = 0.01 * parseFloat(c.substring(0, c.length - 1)); -// } else if (three == "deg") { -// val = parseFloat(c) / 360.0; -// } else if (three == "rad") { -// val = parseFloat(c) / (Math.PI * 2); -// } else { -// val = scales[i] * parseFloat(c); -// } -// colorFloats.push(val); -// } -// return this[method].apply(this, colorFloats); -// }, - - fromComputedStyle: function (elem, style) { - var d = MochiKit.DOM; - var cls = MochiKit.Color.Color; - for (elem = d.getElement(elem); elem; elem = elem.parentNode) { - var actualColor = MochiKit.Style.computedStyle.apply(d, arguments); - if (!actualColor) { - continue; - } - var color = cls.fromString(actualColor); - if (!color) { - break; - } - if (color.asRGB().a > 0) { - return color; - } - } - return null; - }, - - fromBackground: function (elem) { - var cls = MochiKit.Color.Color; - return cls.fromComputedStyle( - elem, "backgroundColor", "background-color") || cls.whiteColor(); - }, - - fromText: function (elem) { - var cls = MochiKit.Color.Color; - return cls.fromComputedStyle( - elem, "color", "color") || cls.blackColor(); - }, - - namedColors: function () { - return MochiKit.Base.clone(MochiKit.Color.Color._namedColors); - } -}); - -// Module level functions -MochiKit.Base.update(MochiKit.Color, { -// clampColorComponent: function (v, scale) { -// v *= scale; -// if (v < 0) { -// return 0; -// } else if (v > scale) { -// return scale; -// } else { -// return v; -// } -// }, -// -// _hslValue: function (n1, n2, hue) { -// if (hue > 6.0) { -// hue -= 6.0; -// } else if (hue < 0.0) { -// hue += 6.0; -// } -// var val; -// if (hue < 1.0) { -// val = n1 + (n2 - n1) * hue; -// } else if (hue < 3.0) { -// val = n2; -// } else if (hue < 4.0) { -// val = n1 + (n2 - n1) * (4.0 - hue); -// } else { -// val = n1; -// } -// return val; -// }, -// -// hsvToRGB: function (hue, saturation, value, alpha) { -// if (arguments.length == 1) { -// var hsv = hue; -// hue = hsv.h; -// saturation = hsv.s; -// value = hsv.v; -// alpha = hsv.a; -// } -// var red; -// var green; -// var blue; -// if (saturation === 0) { -// red = 0; -// green = 0; -// blue = 0; -// } else { -// var i = Math.floor(hue * 6); -// var f = (hue * 6) - i; -// var p = value * (1 - saturation); -// var q = value * (1 - (saturation * f)); -// var t = value * (1 - (saturation * (1 - f))); -// switch (i) { -// case 1: red = q; green = value; blue = p; break; -// case 2: red = p; green = value; blue = t; break; -// case 3: red = p; green = q; blue = value; break; -// case 4: red = t; green = p; blue = value; break; -// case 5: red = value; green = p; blue = q; break; -// case 6: // fall through -// case 0: red = value; green = t; blue = p; break; -// } -// } -// return { -// r: red, -// g: green, -// b: blue, -// a: alpha -// }; -// }, -// -// hslToRGB: function (hue, saturation, lightness, alpha) { -// if (arguments.length == 1) { -// var hsl = hue; -// hue = hsl.h; -// saturation = hsl.s; -// lightness = hsl.l; -// alpha = hsl.a; -// } -// var red; -// var green; -// var blue; -// if (saturation === 0) { -// red = lightness; -// green = lightness; -// blue = lightness; -// } else { -// var m2; -// if (lightness <= 0.5) { -// m2 = lightness * (1.0 + saturation); -// } else { -// m2 = lightness + saturation - (lightness * saturation); -// } -// var m1 = (2.0 * lightness) - m2; -// var f = MochiKit.Color._hslValue; -// var h6 = hue * 6.0; -// red = f(m1, m2, h6 + 2); -// green = f(m1, m2, h6); -// blue = f(m1, m2, h6 - 2); -// } -// return { -// r: red, -// g: green, -// b: blue, -// a: alpha -// }; -// }, -// -// rgbToHSV: function (red, green, blue, alpha) { -// if (arguments.length == 1) { -// var rgb = red; -// red = rgb.r; -// green = rgb.g; -// blue = rgb.b; -// alpha = rgb.a; -// } -// var max = Math.max(Math.max(red, green), blue); -// var min = Math.min(Math.min(red, green), blue); -// var hue; -// var saturation; -// var value = max; -// if (min == max) { -// hue = 0; -// saturation = 0; -// } else { -// var delta = (max - min); -// saturation = delta / max; -// -// if (red == max) { -// hue = (green - blue) / delta; -// } else if (green == max) { -// hue = 2 + ((blue - red) / delta); -// } else { -// hue = 4 + ((red - green) / delta); -// } -// hue /= 6; -// if (hue < 0) { -// hue += 1; -// } -// if (hue > 1) { -// hue -= 1; -// } -// } -// return { -// h: hue, -// s: saturation, -// v: value, -// a: alpha -// }; -// }, -// -// rgbToHSL: function (red, green, blue, alpha) { -// if (arguments.length == 1) { -// var rgb = red; -// red = rgb.r; -// green = rgb.g; -// blue = rgb.b; -// alpha = rgb.a; -// } -// var max = Math.max(red, Math.max(green, blue)); -// var min = Math.min(red, Math.min(green, blue)); -// var hue; -// var saturation; -// var lightness = (max + min) / 2.0; -// var delta = max - min; -// if (delta === 0) { -// hue = 0; -// saturation = 0; -// } else { -// if (lightness <= 0.5) { -// saturation = delta / (max + min); -// } else { -// saturation = delta / (2 - max - min); -// } -// if (red == max) { -// hue = (green - blue) / delta; -// } else if (green == max) { -// hue = 2 + ((blue - red) / delta); -// } else { -// hue = 4 + ((red - green) / delta); -// } -// hue /= 6; -// if (hue < 0) { -// hue += 1; -// } -// if (hue > 1) { -// hue -= 1; -// } -// -// } -// return { -// h: hue, -// s: saturation, -// l: lightness, -// a: alpha -// }; -// }, -// -// toColorPart: function (num) { -// num = Math.round(num); -// var digits = num.toString(16); -// if (num < 16) { -// return '0' + digits; -// } -// return digits; -// }, - - __new__: function () { - var m = MochiKit.Base; -// this.Color.fromRGBString = m.bind( -// this.Color._fromColorString, this.Color, "rgb", "fromRGB", -// [1.0/255.0, 1.0/255.0, 1.0/255.0, 1] -// ); -// this.Color.fromHSLString = m.bind( -// this.Color._fromColorString, this.Color, "hsl", "fromHSL", -// [1.0/360.0, 0.01, 0.01, 1] -// ); -// -// var third = 1.0 / 3.0; -// var colors = { -// // NSColor colors plus transparent -// black: [0, 0, 0], -// blue: [0, 0, 1], -// brown: [0.6, 0.4, 0.2], -// cyan: [0, 1, 1], -// darkGray: [third, third, third], -// gray: [0.5, 0.5, 0.5], -// green: [0, 1, 0], -// lightGray: [2 * third, 2 * third, 2 * third], -// magenta: [1, 0, 1], -// orange: [1, 0.5, 0], -// purple: [0.5, 0, 0.5], -// red: [1, 0, 0], -// transparent: [0, 0, 0, 0], -// white: [1, 1, 1], -// yellow: [1, 1, 0] -// }; -// -// var makeColor = function (name, r, g, b, a) { -// var rval = this.fromRGB(r, g, b, a); -// this[name] = function () { return rval; }; -// return rval; -// }; -// -// for (var k in colors) { -// var name = k + "Color"; -// var bindArgs = m.concat( -// [makeColor, this.Color, name], -// colors[k] -// ); -// this.Color[name] = m.bind.apply(null, bindArgs); -// } -// -// var isColor = function () { -// for (var i = 0; i < arguments.length; i++) { -// if (!(arguments[i] instanceof Color)) { -// return false; -// } -// } -// return true; -// }; -// -// var compareColor = function (a, b) { -// return a.compareRGB(b); -// }; - - m.nameFunctions(this); - -// m.registerComparator(this.Color.NAME, isColor, compareColor); - - this.EXPORT_TAGS = { - ":common": this.EXPORT, - ":all": m.concat(this.EXPORT, this.EXPORT_OK) - }; - - } -}); - -MochiKit.Color.EXPORT = [ - "Color" -]; - -MochiKit.Color.EXPORT_OK = [ - "clampColorComponent", - "rgbToHSL", - "hslToRGB", - "rgbToHSV", - "hsvToRGB", - "toColorPart" -]; - -MochiKit.Color.__new__(); - -MochiKit.Base._exportSymbols(this, MochiKit.Color); - -// Full table of css3 X11 colors - -//MochiKit.Color.Color._namedColors = { -// aliceblue: "#f0f8ff", -// antiquewhite: "#faebd7", -// aqua: "#00ffff", -// aquamarine: "#7fffd4", -// azure: "#f0ffff", -// beige: "#f5f5dc", -// bisque: "#ffe4c4", -// black: "#000000", -// blanchedalmond: "#ffebcd", -// blue: "#0000ff", -// blueviolet: "#8a2be2", -// brown: "#a52a2a", -// burlywood: "#deb887", -// cadetblue: "#5f9ea0", -// chartreuse: "#7fff00", -// chocolate: "#d2691e", -// coral: "#ff7f50", -// cornflowerblue: "#6495ed", -// cornsilk: "#fff8dc", -// crimson: "#dc143c", -// cyan: "#00ffff", -// darkblue: "#00008b", -// darkcyan: "#008b8b", -// darkgoldenrod: "#b8860b", -// darkgray: "#a9a9a9", -// darkgreen: "#006400", -// darkgrey: "#a9a9a9", -// darkkhaki: "#bdb76b", -// darkmagenta: "#8b008b", -// darkolivegreen: "#556b2f", -// darkorange: "#ff8c00", -// darkorchid: "#9932cc", -// darkred: "#8b0000", -// darksalmon: "#e9967a", -// darkseagreen: "#8fbc8f", -// darkslateblue: "#483d8b", -// darkslategray: "#2f4f4f", -// darkslategrey: "#2f4f4f", -// darkturquoise: "#00ced1", -// darkviolet: "#9400d3", -// deeppink: "#ff1493", -// deepskyblue: "#00bfff", -// dimgray: "#696969", -// dimgrey: "#696969", -// dodgerblue: "#1e90ff", -// firebrick: "#b22222", -// floralwhite: "#fffaf0", -// forestgreen: "#228b22", -// fuchsia: "#ff00ff", -// gainsboro: "#dcdcdc", -// ghostwhite: "#f8f8ff", -// gold: "#ffd700", -// goldenrod: "#daa520", -// gray: "#808080", -// green: "#008000", -// greenyellow: "#adff2f", -// grey: "#808080", -// honeydew: "#f0fff0", -// hotpink: "#ff69b4", -// indianred: "#cd5c5c", -// indigo: "#4b0082", -// ivory: "#fffff0", -// khaki: "#f0e68c", -// lavender: "#e6e6fa", -// lavenderblush: "#fff0f5", -// lawngreen: "#7cfc00", -// lemonchiffon: "#fffacd", -// lightblue: "#add8e6", -// lightcoral: "#f08080", -// lightcyan: "#e0ffff", -// lightgoldenrodyellow: "#fafad2", -// lightgray: "#d3d3d3", -// lightgreen: "#90ee90", -// lightgrey: "#d3d3d3", -// lightpink: "#ffb6c1", -// lightsalmon: "#ffa07a", -// lightseagreen: "#20b2aa", -// lightskyblue: "#87cefa", -// lightslategray: "#778899", -// lightslategrey: "#778899", -// lightsteelblue: "#b0c4de", -// lightyellow: "#ffffe0", -// lime: "#00ff00", -// limegreen: "#32cd32", -// linen: "#faf0e6", -// magenta: "#ff00ff", -// maroon: "#800000", -// mediumaquamarine: "#66cdaa", -// mediumblue: "#0000cd", -// mediumorchid: "#ba55d3", -// mediumpurple: "#9370db", -// mediumseagreen: "#3cb371", -// mediumslateblue: "#7b68ee", -// mediumspringgreen: "#00fa9a", -// mediumturquoise: "#48d1cc", -// mediumvioletred: "#c71585", -// midnightblue: "#191970", -// mintcream: "#f5fffa", -// mistyrose: "#ffe4e1", -// moccasin: "#ffe4b5", -// navajowhite: "#ffdead", -// navy: "#000080", -// oldlace: "#fdf5e6", -// olive: "#808000", -// olivedrab: "#6b8e23", -// orange: "#ffa500", -// orangered: "#ff4500", -// orchid: "#da70d6", -// palegoldenrod: "#eee8aa", -// palegreen: "#98fb98", -// paleturquoise: "#afeeee", -// palevioletred: "#db7093", -// papayawhip: "#ffefd5", -// peachpuff: "#ffdab9", -// peru: "#cd853f", -// pink: "#ffc0cb", -// plum: "#dda0dd", -// powderblue: "#b0e0e6", -// purple: "#800080", -// red: "#ff0000", -// rosybrown: "#bc8f8f", -// royalblue: "#4169e1", -// saddlebrown: "#8b4513", -// salmon: "#fa8072", -// sandybrown: "#f4a460", -// seagreen: "#2e8b57", -// seashell: "#fff5ee", -// sienna: "#a0522d", -// silver: "#c0c0c0", -// skyblue: "#87ceeb", -// slateblue: "#6a5acd", -// slategray: "#708090", -// slategrey: "#708090", -// snow: "#fffafa", -// springgreen: "#00ff7f", -// steelblue: "#4682b4", -// tan: "#d2b48c", -// teal: "#008080", -// thistle: "#d8bfd8", -// tomato: "#ff6347", -// turquoise: "#40e0d0", -// violet: "#ee82ee", -// wheat: "#f5deb3", -// white: "#ffffff", -// whitesmoke: "#f5f5f5", -// yellow: "#ffff00", -// yellowgreen: "#9acd32" -//}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Controls.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Controls.js deleted file mode 100644 index f29e3a8ec..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Controls.js +++ /dev/null @@ -1,1284 +0,0 @@ -/*** -Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) - (c) 2005 Ivan Krstic (http://blogs.law.harvard.edu/ivan) - (c) 2005 Jon Tirsen (http://www.tirsen.com) -Contributors: - Richard Livsey - Rahul Bhargava - Rob Wills - Mochi-ized By Thomas Herve (_firstname_@nimail.org) - -See scriptaculous.js for full license. - -Autocompleter.Base handles all the autocompletion functionality -that's independent of the data source for autocompletion. This -includes drawing the autocompletion menu, observing keyboard -and mouse events, and similar. - -Specific autocompleters need to provide, at the very least, -a getUpdatedChoices function that will be invoked every time -the text inside the monitored textbox changes. This method -should get the text for which to provide autocompletion by -invoking this.getToken(), NOT by directly accessing -this.element.value. This is to allow incremental tokenized -autocompletion. Specific auto-completion logic (AJAX, etc) -belongs in getUpdatedChoices. - -Tokenized incremental autocompletion is enabled automatically -when an autocompleter is instantiated with the 'tokens' option -in the options parameter, e.g.: -new Ajax.Autocompleter('id','upd', '/url/', { tokens: ',' }); -will incrementally autocomplete with a comma as the token. -Additionally, ',' in the above example can be replaced with -a token array, e.g. { tokens: [',', '\n'] } which -enables autocompletion on multiple tokens. This is most -useful when one of the tokens is \n (a newline), as it -allows smart autocompletion after linebreaks. - -***/ - -MochiKit.Base.update(MochiKit.Base, { - ScriptFragment: '(?:)((\n|\r|.)*?)(?:<\/script>)', - - stripScripts: function (str) { - return str.replace(new RegExp(MochiKit.Base.ScriptFragment, 'img'), ''); - }, - - stripTags: function(str) { - return str.replace(/<\/?[^>]+>/gi, ''); - }, - - extractScripts: function (str) { - var matchAll = new RegExp(MochiKit.Base.ScriptFragment, 'img'); - var matchOne = new RegExp(MochiKit.Base.ScriptFragment, 'im'); - return MochiKit.Base.map(function (scriptTag) { - return (scriptTag.match(matchOne) || ['', ''])[1]; - }, str.match(matchAll) || []); - }, - - evalScripts: function (str) { - return MochiKit.Base.map(function (scr) { - eval(scr); - }, MochiKit.Base.extractScripts(str)); - } -}); - -MochiKit.Form = { - serialize: function (form) { - var elements = MochiKit.Form.getElements(form); - var queryComponents = []; - - for (var i = 0; i < elements.length; i++) { - var queryComponent = MochiKit.Form.serializeElement(elements[i]); - if (queryComponent) { - queryComponents.push(queryComponent); - } - } - - return queryComponents.join('&'); - }, - - getElements: function (form) { - form = MochiKit.DOM.getElement(form); - var elements = []; - - for (tagName in MochiKit.Form.Serializers) { - var tagElements = form.getElementsByTagName(tagName); - for (var j = 0; j < tagElements.length; j++) { - elements.push(tagElements[j]); - } - } - return elements; - }, - - serializeElement: function (element) { - element = MochiKit.DOM.getElement(element); - var method = element.tagName.toLowerCase(); - var parameter = MochiKit.Form.Serializers[method](element); - - if (parameter) { - var key = encodeURIComponent(parameter[0]); - if (key.length === 0) { - return; - } - - if (!(parameter[1] instanceof Array)) { - parameter[1] = [parameter[1]]; - } - - return parameter[1].map(function (value) { - return key + '=' + encodeURIComponent(value); - }).join('&'); - } - } -}; - -MochiKit.Form.Serializers = { - input: function (element) { - switch (element.type.toLowerCase()) { - case 'submit': - case 'hidden': - case 'password': - case 'text': - return MochiKit.Form.Serializers.textarea(element); - case 'checkbox': - case 'radio': - return MochiKit.Form.Serializers.inputSelector(element); - } - return false; - }, - - inputSelector: function (element) { - if (element.checked) { - return [element.name, element.value]; - } - }, - - textarea: function (element) { - return [element.name, element.value]; - }, - - select: function (element) { - return MochiKit.Form.Serializers[element.type == 'select-one' ? - 'selectOne' : 'selectMany'](element); - }, - - selectOne: function (element) { - var value = '', opt, index = element.selectedIndex; - if (index >= 0) { - opt = element.options[index]; - value = opt.value; - if (!value && !('value' in opt)) { - value = opt.text; - } - } - return [element.name, value]; - }, - - selectMany: function (element) { - var value = []; - for (var i = 0; i < element.length; i++) { - var opt = element.options[i]; - if (opt.selected) { - var optValue = opt.value; - if (!optValue && !('value' in opt)) { - optValue = opt.text; - } - value.push(optValue); - } - } - return [element.name, value]; - } -}; - -var Ajax = { - activeRequestCount: 0 -}; - -Ajax.Responders = { - responders: [], - - register: function (responderToAdd) { - if (MochiKit.Base.find(this.responders, responderToAdd) == -1) { - this.responders.push(responderToAdd); - } - }, - - unregister: function (responderToRemove) { - this.responders = this.responders.without(responderToRemove); - }, - - dispatch: function (callback, request, transport, json) { - MochiKit.Iter.forEach(this.responders, function (responder) { - if (responder[callback] && - typeof(responder[callback]) == 'function') { - try { - responder[callback].apply(responder, [request, transport, json]); - } catch (e) {} - } - }); - } -}; - -Ajax.Responders.register({ - onCreate: function () { - Ajax.activeRequestCount++; - }, - - onComplete: function () { - Ajax.activeRequestCount--; - } -}); - -Ajax.Base = function () {}; - -Ajax.Base.prototype = { - setOptions: function (options) { - this.options = { - method: 'post', - asynchronous: true, - parameters: '' - } - MochiKit.Base.update(this.options, options || {}); - }, - - responseIsSuccess: function () { - return this.transport.status == undefined - || this.transport.status === 0 - || (this.transport.status >= 200 && this.transport.status < 300); - }, - - responseIsFailure: function () { - return !this.responseIsSuccess(); - } -}; - -Ajax.Request = function (url, options) { - this.__init__(url, options); -}; - -Ajax.Request.Events = ['Uninitialized', 'Loading', 'Loaded', - 'Interactive', 'Complete']; - -MochiKit.Base.update(Ajax.Request.prototype, Ajax.Base.prototype); - -MochiKit.Base.update(Ajax.Request.prototype, { - __init__: function (url, options) { - this.transport = MochiKit.Async.getXMLHttpRequest(); - this.setOptions(options); - this.request(url); - }, - - request: function (url) { - var parameters = this.options.parameters || ''; - if (parameters.length > 0){ - parameters += '&_='; - } - - try { - this.url = url; - if (this.options.method == 'get' && parameters.length > 0) { - this.url += (this.url.match(/\?/) ? '&' : '?') + parameters; - } - Ajax.Responders.dispatch('onCreate', this, this.transport); - - this.transport.open(this.options.method, this.url, - this.options.asynchronous); - - if (this.options.asynchronous) { - this.transport.onreadystatechange = MochiKit.Base.bind(this.onStateChange, this); - setTimeout(MochiKit.Base.bind(function () { - this.respondToReadyState(1); - }, this), 10); - } - - this.setRequestHeaders(); - - var body = this.options.postBody ? this.options.postBody : parameters; - this.transport.send(this.options.method == 'post' ? body : null); - - } catch (e) { - this.dispatchException(e); - } - }, - - setRequestHeaders: function () { - var requestHeaders = ['X-Requested-With', 'XMLHttpRequest']; - - if (this.options.method == 'post') { - requestHeaders.push('Content-type', - 'application/x-www-form-urlencoded'); - - /* Force 'Connection: close' for Mozilla browsers to work around - * a bug where XMLHttpRequest sends an incorrect Content-length - * header. See Mozilla Bugzilla #246651. - */ - if (this.transport.overrideMimeType) { - requestHeaders.push('Connection', 'close'); - } - } - - if (this.options.requestHeaders) { - requestHeaders.push.apply(requestHeaders, this.options.requestHeaders); - } - - for (var i = 0; i < requestHeaders.length; i += 2) { - this.transport.setRequestHeader(requestHeaders[i], requestHeaders[i+1]); - } - }, - - onStateChange: function () { - var readyState = this.transport.readyState; - if (readyState != 1) { - this.respondToReadyState(this.transport.readyState); - } - }, - - header: function (name) { - try { - return this.transport.getResponseHeader(name); - } catch (e) {} - }, - - evalJSON: function () { - try { - return eval(this.header('X-JSON')); - } catch (e) {} - }, - - evalResponse: function () { - try { - return eval(this.transport.responseText); - } catch (e) { - this.dispatchException(e); - } - }, - - respondToReadyState: function (readyState) { - var event = Ajax.Request.Events[readyState]; - var transport = this.transport, json = this.evalJSON(); - - if (event == 'Complete') { - try { - (this.options['on' + this.transport.status] - || this.options['on' + (this.responseIsSuccess() ? 'Success' : 'Failure')] - || MochiKit.Base.noop)(transport, json); - } catch (e) { - this.dispatchException(e); - } - - if ((this.header('Content-type') || '').match(/^text\/javascript/i)) { - this.evalResponse(); - } - } - - try { - (this.options['on' + event] || MochiKit.Base.noop)(transport, json); - Ajax.Responders.dispatch('on' + event, this, transport, json); - } catch (e) { - this.dispatchException(e); - } - - /* Avoid memory leak in MSIE: clean up the oncomplete event handler */ - if (event == 'Complete') { - this.transport.onreadystatechange = MochiKit.Base.noop; - } - }, - - dispatchException: function (exception) { - (this.options.onException || MochiKit.Base.noop)(this, exception); - Ajax.Responders.dispatch('onException', this, exception); - } -}); - -Ajax.Updater = function (container, url, options) { - this.__init__(container, url, options); -}; - -MochiKit.Base.update(Ajax.Updater.prototype, Ajax.Request.prototype); - -MochiKit.Base.update(Ajax.Updater.prototype, { - __init__: function (container, url, options) { - this.containers = { - success: container.success ? MochiKit.DOM.getElement(container.success) : MochiKit.DOM.getElement(container), - failure: container.failure ? MochiKit.DOM.getElement(container.failure) : - (container.success ? null : MochiKit.DOM.getElement(container)) - } - this.transport = MochiKit.Async.getXMLHttpRequest(); - this.setOptions(options); - - var onComplete = this.options.onComplete || MochiKit.Base.noop; - this.options.onComplete = MochiKit.Base.bind(function (transport, object) { - this.updateContent(); - onComplete(transport, object); - }, this); - - this.request(url); - }, - - updateContent: function () { - var receiver = this.responseIsSuccess() ? - this.containers.success : this.containers.failure; - var response = this.transport.responseText; - - if (!this.options.evalScripts) { - response = MochiKit.Base.stripScripts(response); - } - - if (receiver) { - if (this.options.insertion) { - new this.options.insertion(receiver, response); - } else { - MochiKit.DOM.getElement(receiver).innerHTML = - MochiKit.Base.stripScripts(response); - setTimeout(function () { - MochiKit.Base.evalScripts(response); - }, 10); - } - } - - if (this.responseIsSuccess()) { - if (this.onComplete) { - setTimeout(MochiKit.Base.bind(this.onComplete, this), 10); - } - } - } -}); - -var Field = { - clear: function () { - for (var i = 0; i < arguments.length; i++) { - MochiKit.DOM.getElement(arguments[i]).value = ''; - } - }, - - focus: function (element) { - MochiKit.DOM.getElement(element).focus(); - }, - - present: function () { - for (var i = 0; i < arguments.length; i++) { - if (MochiKit.DOM.getElement(arguments[i]).value == '') { - return false; - } - } - return true; - }, - - select: function (element) { - MochiKit.DOM.getElement(element).select(); - }, - - activate: function (element) { - element = MochiKit.DOM.getElement(element); - element.focus(); - if (element.select) { - element.select(); - } - }, - - scrollFreeActivate: function (field) { - setTimeout(function () { - Field.activate(field); - }, 1); - } -}; - -var Autocompleter = {}; - -Autocompleter.Base = function () {}; - -Autocompleter.Base.prototype = { - baseInitialize: function (element, update, options) { - this.element = MochiKit.DOM.getElement(element); - this.update = MochiKit.DOM.getElement(update); - this.hasFocus = false; - this.changed = false; - this.active = false; - this.index = 0; - this.entryCount = 0; - - if (this.setOptions) { - this.setOptions(options); - } - else { - this.options = options || {}; - } - - this.options.paramName = this.options.paramName || this.element.name; - this.options.tokens = this.options.tokens || []; - this.options.frequency = this.options.frequency || 0.4; - this.options.minChars = this.options.minChars || 1; - this.options.onShow = this.options.onShow || function (element, update) { - if (!update.style.position || update.style.position == 'absolute') { - update.style.position = 'absolute'; - MochiKit.Position.clone(element, update, { - setHeight: false, - offsetTop: element.offsetHeight - }); - } - MochiKit.Visual.appear(update, {duration:0.15}); - }; - this.options.onHide = this.options.onHide || function (element, update) { - MochiKit.Visual.fade(update, {duration: 0.15}); - }; - - if (typeof(this.options.tokens) == 'string') { - this.options.tokens = new Array(this.options.tokens); - } - - this.observer = null; - - this.element.setAttribute('autocomplete', 'off'); - - MochiKit.Style.hideElement(this.update); - - MochiKit.Signal.connect(this.element, 'onblur', this, this.onBlur); - MochiKit.Signal.connect(this.element, 'onkeypress', this, this.onKeyPress, this); - }, - - show: function () { - if (MochiKit.DOM.getStyle(this.update, 'display') == 'none') { - this.options.onShow(this.element, this.update); - } - if (!this.iefix && MochiKit.Base.isIE() && MochiKit.Base.isOpera() && - (MochiKit.DOM.getStyle(this.update, 'position') == 'absolute')) { - new Insertion.After(this.update, - ''); - this.iefix = MochiKit.DOM.getElement(this.update.id + '_iefix'); - } - if (this.iefix) { - setTimeout(MochiKit.Base.bind(this.fixIEOverlapping, this), 50); - } - }, - - fixIEOverlapping: function () { - MochiKit.Position.clone(this.update, this.iefix); - this.iefix.style.zIndex = 1; - this.update.style.zIndex = 2; - MochiKit.Style.showElement(this.iefix); - }, - - hide: function () { - this.stopIndicator(); - if (MochiKit.DOM.getStyle(this.update, 'display') != 'none') { - this.options.onHide(this.element, this.update); - } - if (this.iefix) { - MochiKit.Style.hideElement(this.iefix); - } - }, - - startIndicator: function () { - if (this.options.indicator) { - MochiKit.Style.showElement(this.options.indicator); - } - }, - - stopIndicator: function () { - if (this.options.indicator) { - MochiKit.Style.hideElement(this.options.indicator); - } - }, - - onKeyPress: function (event) { - if (this.active) { - if (event.keyString == "KEY_TAB" || event.keyString == "KEY_RETURN") { - this.selectEntry(); - MochiKit.Event.stop(event); - } else if (event.keyString == "KEY_ESCAPE") { - this.hide(); - this.active = false; - MochiKit.Event.stop(event); - return; - } else if (event.keyString == "KEY_LEFT" || event.keyString == "KEY_RIGHT") { - return; - } else if (event.keyString == "KEY_UP") { - this.markPrevious(); - this.render(); - if (MochiKit.Base.isSafari()) { - event.stop(); - } - return; - } else if (event.keyString == "KEY_DOWN") { - this.markNext(); - this.render(); - if (MochiKit.Base.isSafari()) { - event.stop(); - } - return; - } - } else { - if (event.keyString == "KEY_TAB" || event.keyString == "KEY_RETURN") { - return; - } - } - - this.changed = true; - this.hasFocus = true; - - if (this.observer) { - clearTimeout(this.observer); - } - this.observer = setTimeout(MochiKit.Base.bind(this.onObserverEvent, this), - this.options.frequency*1000); - }, - - findElement: function (event, tagName) { - var element = event.target; - while (element.parentNode && (!element.tagName || - (element.tagName.toUpperCase() != tagName.toUpperCase()))) { - element = element.parentNode; - } - return element; - }, - - onHover: function (event) { - var element = this.findElement(event, 'LI'); - if (this.index != element.autocompleteIndex) { - this.index = element.autocompleteIndex; - this.render(); - } - event.stop(); - }, - - onClick: function (event) { - var element = this.findElement(event, 'LI'); - this.index = element.autocompleteIndex; - this.selectEntry(); - this.hide(); - }, - - onBlur: function (event) { - // needed to make click events working - setTimeout(MochiKit.Base.bind(this.hide, this), 250); - this.hasFocus = false; - this.active = false; - }, - - render: function () { - if (this.entryCount > 0) { - for (var i = 0; i < this.entryCount; i++) { - this.index == i ? - MochiKit.DOM.addElementClass(this.getEntry(i), 'selected') : - MochiKit.DOM.removeElementClass(this.getEntry(i), 'selected'); - } - if (this.hasFocus) { - this.show(); - this.active = true; - } - } else { - this.active = false; - this.hide(); - } - }, - - markPrevious: function () { - if (this.index > 0) { - this.index-- - } else { - this.index = this.entryCount-1; - } - }, - - markNext: function () { - if (this.index < this.entryCount-1) { - this.index++ - } else { - this.index = 0; - } - }, - - getEntry: function (index) { - return this.update.firstChild.childNodes[index]; - }, - - getCurrentEntry: function () { - return this.getEntry(this.index); - }, - - selectEntry: function () { - this.active = false; - this.updateElement(this.getCurrentEntry()); - }, - - collectTextNodesIgnoreClass: function (element, className) { - return MochiKit.Base.flattenArray(MochiKit.Base.map(function (node) { - if (node.nodeType == 3) { - return node.nodeValue; - } else if (node.hasChildNodes() && !MochiKit.DOM.hasElementClass(node, className)) { - return this.collectTextNodesIgnoreClass(node, className); - } - return ''; - }, MochiKit.DOM.getElement(element).childNodes)).join(''); - }, - - updateElement: function (selectedElement) { - if (this.options.updateElement) { - this.options.updateElement(selectedElement); - return; - } - var value = ''; - if (this.options.select) { - var nodes = document.getElementsByClassName(this.options.select, selectedElement) || []; - if (nodes.length > 0) { - value = MochiKit.DOM.scrapeText(nodes[0]); - } - } else { - value = this.collectTextNodesIgnoreClass(selectedElement, 'informal'); - } - var lastTokenPos = this.findLastToken(); - if (lastTokenPos != -1) { - var newValue = this.element.value.substr(0, lastTokenPos + 1); - var whitespace = this.element.value.substr(lastTokenPos + 1).match(/^\s+/); - if (whitespace) { - newValue += whitespace[0]; - } - this.element.value = newValue + value; - } else { - this.element.value = value; - } - this.element.focus(); - - if (this.options.afterUpdateElement) { - this.options.afterUpdateElement(this.element, selectedElement); - } - }, - - updateChoices: function (choices) { - if (!this.changed && this.hasFocus) { - this.update.innerHTML = choices; - var d = MochiKit.DOM; - d.removeEmptyTextNodes(this.update); - d.removeEmptyTextNodes(this.update.firstChild); - - if (this.update.firstChild && this.update.firstChild.childNodes) { - this.entryCount = this.update.firstChild.childNodes.length; - for (var i = 0; i < this.entryCount; i++) { - var entry = this.getEntry(i); - entry.autocompleteIndex = i; - this.addObservers(entry); - } - } else { - this.entryCount = 0; - } - - this.stopIndicator(); - - this.index = 0; - this.render(); - } - }, - - addObservers: function (element) { - MochiKit.Signal.connect(element, 'onmouseover', this, this.onHover); - MochiKit.Signal.connect(element, 'onclick', this, this.onClick); - }, - - onObserverEvent: function () { - this.changed = false; - if (this.getToken().length >= this.options.minChars) { - this.startIndicator(); - this.getUpdatedChoices(); - } else { - this.active = false; - this.hide(); - } - }, - - getToken: function () { - var tokenPos = this.findLastToken(); - if (tokenPos != -1) { - var ret = this.element.value.substr(tokenPos + 1).replace(/^\s+/,'').replace(/\s+$/,''); - } else { - var ret = this.element.value; - } - return /\n/.test(ret) ? '' : ret; - }, - - findLastToken: function () { - var lastTokenPos = -1; - - for (var i = 0; i < this.options.tokens.length; i++) { - var thisTokenPos = this.element.value.lastIndexOf(this.options.tokens[i]); - if (thisTokenPos > lastTokenPos) { - lastTokenPos = thisTokenPos; - } - } - return lastTokenPos; - } -} - -Ajax.Autocompleter = function (element, update, url, options) { - this.__init__(element, update, url, options); -}; - -MochiKit.Base.update(Ajax.Autocompleter.prototype, Autocompleter.Base.prototype); - -MochiKit.Base.update(Ajax.Autocompleter.prototype, { - __init__: function (element, update, url, options) { - this.baseInitialize(element, update, options); - this.options.asynchronous = true; - this.options.onComplete = MochiKit.Base.bind(this.onComplete, this); - this.options.defaultParams = this.options.parameters || null; - this.url = url; - }, - - getUpdatedChoices: function () { - var entry = encodeURIComponent(this.options.paramName) + '=' + - encodeURIComponent(this.getToken()); - - this.options.parameters = this.options.callback ? - this.options.callback(this.element, entry) : entry; - - if (this.options.defaultParams) { - this.options.parameters += '&' + this.options.defaultParams; - } - new Ajax.Request(this.url, this.options); - }, - - onComplete: function (request) { - this.updateChoices(request.responseText); - } -}); - -/*** - -The local array autocompleter. Used when you'd prefer to -inject an array of autocompletion options into the page, rather -than sending out Ajax queries, which can be quite slow sometimes. - -The constructor takes four parameters. The first two are, as usual, -the id of the monitored textbox, and id of the autocompletion menu. -The third is the array you want to autocomplete from, and the fourth -is the options block. - -Extra local autocompletion options: -- choices - How many autocompletion choices to offer - -- partialSearch - If false, the autocompleter will match entered - text only at the beginning of strings in the - autocomplete array. Defaults to true, which will - match text at the beginning of any *word* in the - strings in the autocomplete array. If you want to - search anywhere in the string, additionally set - the option fullSearch to true (default: off). - -- fullSsearch - Search anywhere in autocomplete array strings. - -- partialChars - How many characters to enter before triggering - a partial match (unlike minChars, which defines - how many characters are required to do any match - at all). Defaults to 2. - -- ignoreCase - Whether to ignore case when autocompleting. - Defaults to true. - -It's possible to pass in a custom function as the 'selector' -option, if you prefer to write your own autocompletion logic. -In that case, the other options above will not apply unless -you support them. - -***/ - -Autocompleter.Local = function (element, update, array, options) { - this.__init__(element, update, array, options); -}; - -MochiKit.Base.update(Autocompleter.Local.prototype, Autocompleter.Base.prototype); - -MochiKit.Base.update(Autocompleter.Local.prototype, { - __init__: function (element, update, array, options) { - this.baseInitialize(element, update, options); - this.options.array = array; - }, - - getUpdatedChoices: function () { - this.updateChoices(this.options.selector(this)); - }, - - setOptions: function (options) { - this.options = MochiKit.Base.update({ - choices: 10, - partialSearch: true, - partialChars: 2, - ignoreCase: true, - fullSearch: false, - selector: function (instance) { - var ret = []; // Beginning matches - var partial = []; // Inside matches - var entry = instance.getToken(); - var count = 0; - - for (var i = 0; i < instance.options.array.length && - ret.length < instance.options.choices ; i++) { - - var elem = instance.options.array[i]; - var foundPos = instance.options.ignoreCase ? - elem.toLowerCase().indexOf(entry.toLowerCase()) : - elem.indexOf(entry); - - while (foundPos != -1) { - if (foundPos === 0 && elem.length != entry.length) { - ret.push('

    1%S#Y%sqIt1)O)zbYSdX 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 diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_pt.cab b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/ActiveXControls/PrintControl_res_pt.cab deleted file mode 100644 index 64097cd3a93cc390ac151d80d4eb72d0580c3b40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29380 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≪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

  • ' + elem.substr(0, entry.length) + '' + - elem.substr(entry.length) + '
  • '); - break; - } else if (entry.length >= instance.options.partialChars && - instance.options.partialSearch && foundPos != -1) { - if (instance.options.fullSearch || /\s/.test(elem.substr(foundPos - 1, 1))) { - partial.push('
  • ' + elem.substr(0, foundPos) + '' + - elem.substr(foundPos, entry.length) + '' + elem.substr( - foundPos + entry.length) + '
  • '); - break; - } - } - - foundPos = instance.options.ignoreCase ? - elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) : - elem.indexOf(entry, foundPos + 1); - - } - } - if (partial.length) { - ret = ret.concat(partial.slice(0, instance.options.choices - ret.length)) - } - return '
      ' + ret.join('') + '
    '; - } - }, options || {}); - } -}); - -/*** - -AJAX in-place editor - -see documentation on http://wiki.script.aculo.us/scriptaculous/show/Ajax.InPlaceEditor - -Use this if you notice weird scrolling problems on some browsers, -the DOM might be a bit confused when this gets called so do this -waits 1 ms (with setTimeout) until it does the activation - -***/ - -Ajax.InPlaceEditor = function (element, url, options) { - this.__init__(element, url, options); -}; - -Ajax.InPlaceEditor.defaultHighlightColor = '#FFFF99'; - -Ajax.InPlaceEditor.prototype = { - __init__: function (element, url, options) { - this.url = url; - this.element = MochiKit.DOM.getElement(element); - - this.options = MochiKit.Base.update({ - okButton: true, - okText: 'ok', - cancelLink: true, - cancelText: 'cancel', - savingText: 'Saving...', - clickToEditText: 'Click to edit', - okText: 'ok', - rows: 1, - onComplete: function (transport, element) { - new MochiKit.Visual.Highlight(element, {startcolor: this.options.highlightcolor}); - }, - onFailure: function (transport) { - alert('Error communicating with the server: ' + MochiKit.Base.stripTags(transport.responseText)); - }, - callback: function (form) { - return MochiKit.DOM.formContents(form); - }, - handleLineBreaks: true, - loadingText: 'Loading...', - savingClassName: 'inplaceeditor-saving', - loadingClassName: 'inplaceeditor-loading', - formClassName: 'inplaceeditor-form', - highlightcolor: Ajax.InPlaceEditor.defaultHighlightColor, - highlightendcolor: '#FFFFFF', - externalControl: null, - submitOnBlur: false, - ajaxOptions: {} - }, options || {}); - - if (!this.options.formId && this.element.id) { - this.options.formId = this.element.id + '-inplaceeditor'; - if (MochiKit.DOM.getElement(this.options.formId)) { - // there's already a form with that name, don't specify an id - this.options.formId = null; - } - } - - if (this.options.externalControl) { - this.options.externalControl = MochiKit.DOM.getElement(this.options.externalControl); - } - - this.originalBackground = MochiKit.DOM.getStyle(this.element, 'background-color'); - if (!this.originalBackground) { - this.originalBackground = 'transparent'; - } - - this.element.title = this.options.clickToEditText; - - this.onclickListener = MochiKit.Signal.connect(this.element, 'onclick', this, this.enterEditMode); - this.mouseoverListener = MochiKit.Signal.connect(this.element, 'onmouseover', this, this.enterHover); - this.mouseoutListener = MochiKit.Signal.connect(this.element, 'onmouseout', this, this.leaveHover); - if (this.options.externalControl) { - this.onclickListenerExternal = MochiKit.Signal.connect(this.options.externalControl, - 'onclick', this, this.enterEditMode); - this.mouseoverListenerExternal = MochiKit.Signal.connect(this.options.externalControl, - 'onmouseover', this, this.enterHover); - this.mouseoutListenerExternal = MochiKit.Signal.connect(this.options.externalControl, - 'onmouseout', this, this.leaveHover); - } - }, - - enterEditMode: function (evt) { - if (this.saving) { - return; - } - if (this.editing) { - return; - } - this.editing = true; - this.onEnterEditMode(); - if (this.options.externalControl) { - MochiKit.Style.hideElement(this.options.externalControl); - } - MochiKit.Style.hideElement(this.element); - this.createForm(); - this.element.parentNode.insertBefore(this.form, this.element); - Field.scrollFreeActivate(this.editField); - // stop the event to avoid a page refresh in Safari - if (evt) { - evt.stop(); - } - return false; - }, - - createForm: function () { - this.form = document.createElement('form'); - this.form.id = this.options.formId; - MochiKit.DOM.addElementClass(this.form, this.options.formClassName) - this.form.onsubmit = MochiKit.Base.bind(this.onSubmit, this); - - this.createEditField(); - - if (this.options.textarea) { - var br = document.createElement('br'); - this.form.appendChild(br); - } - - if (this.options.okButton) { - okButton = document.createElement('input'); - okButton.type = 'submit'; - okButton.value = this.options.okText; - this.form.appendChild(okButton); - } - - if (this.options.cancelLink) { - cancelLink = document.createElement('a'); - cancelLink.href = '#'; - cancelLink.appendChild(document.createTextNode(this.options.cancelText)); - cancelLink.onclick = MochiKit.Base.bind(this.onclickCancel, this); - this.form.appendChild(cancelLink); - } - }, - - hasHTMLLineBreaks: function (string) { - if (!this.options.handleLineBreaks) { - return false; - } - return string.match(/
    /i); - }, - - convertHTMLLineBreaks: function (string) { - return string.replace(/
    /gi, '\n').replace(//gi, '\n').replace(/<\/p>/gi, '\n').replace(/

    /gi, ''); - }, - - createEditField: function () { - var text; - if (this.options.loadTextURL) { - text = this.options.loadingText; - } else { - text = this.getText(); - } - - var obj = this; - - if (this.options.rows == 1 && !this.hasHTMLLineBreaks(text)) { - this.options.textarea = false; - var textField = document.createElement('input'); - textField.obj = this; - textField.type = 'text'; - textField.name = 'value'; - textField.value = text; - textField.style.backgroundColor = this.options.highlightcolor; - var size = this.options.size || this.options.cols || 0; - if (size !== 0) { - textField.size = size; - } - if (this.options.submitOnBlur) { - textField.onblur = MochiKit.Base.bind(this.onSubmit, this); - } - this.editField = textField; - } else { - this.options.textarea = true; - var textArea = document.createElement('textarea'); - textArea.obj = this; - textArea.name = 'value'; - textArea.value = this.convertHTMLLineBreaks(text); - textArea.rows = this.options.rows; - textArea.cols = this.options.cols || 40; - if (this.options.submitOnBlur) { - textArea.onblur = MochiKit.Base.bind(this.onSubmit, this); - } - this.editField = textArea; - } - - if (this.options.loadTextURL) { - this.loadExternalText(); - } - this.form.appendChild(this.editField); - }, - - getText: function () { - return this.element.innerHTML; - }, - - loadExternalText: function () { - MochiKit.DOM.addElementClass(this.form, this.options.loadingClassName); - this.editField.disabled = true; - new Ajax.Request( - this.options.loadTextURL, - MochiKit.Base.update({ - asynchronous: true, - onComplete: MochiKit.Base.bind(this.onLoadedExternalText, this) - }, this.options.ajaxOptions) - ); - }, - - onLoadedExternalText: function (transport) { - MochiKit.DOM.removeElementClass(this.form, this.options.loadingClassName); - this.editField.disabled = false; - this.editField.value = MochiKit.Base.stripTags(transport); - }, - - onclickCancel: function () { - this.onComplete(); - this.leaveEditMode(); - return false; - }, - - onFailure: function (transport) { - this.options.onFailure(transport); - if (this.oldInnerHTML) { - this.element.innerHTML = this.oldInnerHTML; - this.oldInnerHTML = null; - } - return false; - }, - - onSubmit: function () { - // onLoading resets these so we need to save them away for the Ajax call - var form = this.form; - var value = this.editField.value; - - // do this first, sometimes the ajax call returns before we get a - // chance to switch on Saving which means this will actually switch on - // Saving *after* we have left edit mode causing Saving to be - // displayed indefinitely - this.onLoading(); - - new Ajax.Updater( - { - success: this.element, - // dont update on failure (this could be an option) - failure: null - }, - this.url, - MochiKit.Base.update({ - parameters: this.options.callback(form, value), - onComplete: MochiKit.Base.bind(this.onComplete, this), - onFailure: MochiKit.Base.bind(this.onFailure, this) - }, this.options.ajaxOptions) - ); - // stop the event to avoid a page refresh in Safari - if (arguments.length > 1) { - arguments[0].stop(); - } - return false; - }, - - onLoading: function () { - this.saving = true; - this.removeForm(); - this.leaveHover(); - this.showSaving(); - }, - - showSaving: function () { - this.oldInnerHTML = this.element.innerHTML; - this.element.innerHTML = this.options.savingText; - MochiKit.DOM.addElementClass(this.element, this.options.savingClassName); - this.element.style.backgroundColor = this.originalBackground; - MochiKit.Style.showElement(this.element); - }, - - removeForm: function () { - if (this.form) { - if (this.form.parentNode) { - MochiKit.DOM.removeElement(this.form); - } - this.form = null; - } - }, - - enterHover: function () { - if (this.saving) { - return; - } - this.element.style.backgroundColor = this.options.highlightcolor; - if (this.effect) { - this.effect.cancel(); - } - MochiKit.DOM.addElementClass(this.element, this.options.hoverClassName) - }, - - leaveHover: function () { - if (this.options.backgroundColor) { - this.element.style.backgroundColor = this.oldBackground; - } - MochiKit.DOM.removeElementClass(this.element, this.options.hoverClassName) - if (this.saving) { - return; - } - this.effect = new MochiKit.Visual.Highlight(this.element, { - startcolor: this.options.highlightcolor, - endcolor: this.options.highlightendcolor, - restorecolor: this.originalBackground - }); - }, - - leaveEditMode: function () { - MochiKit.DOM.removeElementClass(this.element, this.options.savingClassName); - this.removeForm(); - this.leaveHover(); - this.element.style.backgroundColor = this.originalBackground; - MochiKit.Style.showElement(this.element); - if (this.options.externalControl) { - MochiKit.Style.showElement(this.options.externalControl); - } - this.editing = false; - this.saving = false; - this.oldInnerHTML = null; - this.onLeaveEditMode(); - }, - - onComplete: function (transport) { - this.leaveEditMode(); - MochiKit.Base.bind(this.options.onComplete, this)(transport, this.element); - }, - - onEnterEditMode: function () {}, - - onLeaveEditMode: function () {}, - - dispose: function () { - if (this.oldInnerHTML) { - this.element.innerHTML = this.oldInnerHTML; - } - this.leaveEditMode(); - MochiKit.Signal.disconnect(this.onclickListener); - MochiKit.Signal.disconnect(this.mouseoverListener); - MochiKit.Signal.disconnect(this.mouseoutListener); - if (this.options.externalControl) { - MochiKit.Signal.disconnect(this.onclickListenerExternal); - MochiKit.Signal.disconnect(this.mouseoverListenerExternal); - MochiKit.Signal.disconnect(this.mouseoutListenerExternal); - } - } -}; - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/DOM.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/DOM.js deleted file mode 100644 index b3771c095..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/DOM.js +++ /dev/null @@ -1,926 +0,0 @@ -/*** - -MochiKit.DOM 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide("MochiKit.DOM"); - dojo.require("MochiKit.Base"); -} -if (typeof(JSAN) != 'undefined') { - JSAN.use("MochiKit.Base", []); -} - -try { - if (typeof(MochiKit.Base) == 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.DOM depends on MochiKit.Base!"; -} - -if (typeof(MochiKit.DOM) == 'undefined') { - MochiKit.DOM = {}; -} - -MochiKit.DOM.NAME = "MochiKit.DOM"; -MochiKit.DOM.VERSION = "1.4"; -MochiKit.DOM.__repr__ = function () { - return "[" + this.NAME + " " + this.VERSION + "]"; -}; -MochiKit.DOM.toString = function () { - return this.__repr__(); -}; - -MochiKit.DOM.EXPORT = [ - "removeEmptyTextNodes", - "formContents", - "currentWindow", - "currentDocument", - "withWindow", - "withDocument", - "registerDOMConverter", - "coerceToDOM", - "createDOM", - "createDOMFunc", - "getNodeAttribute", - "setNodeAttribute", - "updateNodeAttributes", - "appendChildNodes", - "replaceChildNodes", - "removeElement", - "swapDOM", - "BUTTON", - "TT", - "PRE", - "H1", - "H2", - "H3", - "BR", - "CANVAS", - "HR", - "LABEL", - "TEXTAREA", - "FORM", - "STRONG", - "SELECT", - "OPTION", - "OPTGROUP", - "LEGEND", - "FIELDSET", - "P", - "UL", - "OL", - "LI", - "TD", - "TR", - "THEAD", - "TBODY", - "TFOOT", - "TABLE", - "TH", - "INPUT", - "SPAN", - "A", - "DIV", - "IMG", - "getElement", - "$", - "getElementsByTagAndClassName", - "addToCallStack", - "addLoadEvent", - "focusOnLoad", - "setElementClass", - "toggleElementClass", - "addElementClass", - "removeElementClass", - "swapElementClass", - "hasElementClass", - "escapeHTML", - "toHTML", - "emitHTML", - "scrapeText" -]; - -MochiKit.DOM.EXPORT_OK = [ - "domConverters" -]; - -MochiKit.DOM.DEPRECATED = [ - ['computedStyle', 'MochiKit.Style.computedStyle', '1.4'], - ['elementDimensions', 'MochiKit.Style.getElementDimensions', '1.4'], - ['elementPosition', 'MochiKit.Style.getElementPosition', '1.4'], - ['hideElement', 'MochiKit.Style.hideElement', '1.4'], - ['setElementDimensions', 'MochiKit.Style.setElementDimensions', '1.4'], - ['setElementPosition', 'MochiKit.Style.setElementPosition', '1.4'], - ['setDisplayForElement', 'MochiKit.Style.setDisplayForElement', '1.4'], - ['setOpacity', 'MochiKit.Style.setOpacity', '1.4'], - ['showElement', 'MochiKit.Style.showElement', '1.4'], - ['Coordinates', 'MochiKit.Style.Coordinates', '1.4'], // FIXME: broken - ['Dimensions', 'MochiKit.Style.Dimensions', '1.4'] // FIXME: broken -]; - -MochiKit.DOM.getViewportDimensions = new Function('' + - 'if (!MochiKit["Style"]) {' + - ' throw new Error("This function has been deprecated and depends on MochiKit.Style.");' + - '}' + - 'return MochiKit.Style.getViewportDimensions.apply(this, arguments);'); - -MochiKit.Base.update(MochiKit.DOM, { - - currentWindow: function () { - return MochiKit.DOM._window; - }, - - currentDocument: function () { - return MochiKit.DOM._document; - }, - - withWindow: function (win, func) { - var self = MochiKit.DOM; - var oldDoc = self._document; - var oldWin = self._win; - var rval; - try { - self._window = win; - self._document = win.document; - rval = func(); - } catch (e) { - self._window = oldWin; - self._document = oldDoc; - throw e; - } - self._window = oldWin; - self._document = oldDoc; - return rval; - }, - - formContents: function (elem/* = document */) { - var names = []; - var values = []; - var m = MochiKit.Base; - var self = MochiKit.DOM; - if (typeof(elem) == "undefined" || elem === null) { - elem = self._document; - } else { - elem = self.getElement(elem); - } - m.nodeWalk(elem, function (elem) { - var name = elem.name; - if (m.isNotEmpty(name)) { - var tagName = elem.nodeName; - if (tagName == "INPUT" - && (elem.type == "radio" || elem.type == "checkbox") - && !elem.checked - ) { - return null; - } - if (tagName == "SELECT") { - if (elem.type == "select-one") { - if (elem.selectedIndex >= 0) { - var opt = elem.options[elem.selectedIndex]; - names.push(name); - values.push((opt.value) ? opt.value : opt.text); - return null; - } - // no form elements? - names.push(name); - values.push(""); - return null; - } else { - var opts = elem.options; - if (!opts.length) { - names.push(name); - values.push(""); - return null; - } - for (var i = 0; i < opts.length; i++) { - var opt = opts[i]; - if (!opt.selected) { - continue; - } - names.push(name); - values.push((opt.value) ? opt.value : opt.text); - } - return null; - } - } - if (tagName == "FORM" || tagName == "P" || tagName == "SPAN" - || tagName == "DIV" - ) { - return elem.childNodes; - } - names.push(name); - values.push(elem.value || ''); - return null; - } - return elem.childNodes; - }); - return [names, values]; - }, - - withDocument: function (doc, func) { - var self = MochiKit.DOM; - var oldDoc = self._document; - var rval; - try { - self._document = doc; - rval = func(); - } catch (e) { - self._document = oldDoc; - throw e; - } - self._document = oldDoc; - return rval; - }, - - registerDOMConverter: function (name, check, wrap, /* optional */override) { - MochiKit.DOM.domConverters.register(name, check, wrap, override); - }, - - coerceToDOM: function (node, ctx) { - var m = MochiKit.Base; - var im = MochiKit.Iter; - var self = MochiKit.DOM; - if (im) { - var iter = im.iter; - var repeat = im.repeat; - var map = m.map; - } - var domConverters = self.domConverters; - var coerceToDOM = arguments.callee; - var NotFound = m.NotFound; - while (true) { - if (typeof(node) == 'undefined' || node === null) { - return null; - } - if (typeof(node.nodeType) != 'undefined' && node.nodeType > 0) { - return node; - } - if (typeof(node) == 'number' || typeof(node) == 'boolean') { - node = node.toString(); - // FALL THROUGH - } - if (typeof(node) == 'string') { - return self._document.createTextNode(node); - } - if (typeof(node.__dom__) == 'function') { - node = node.__dom__(ctx); - continue; - } - if (typeof(node.dom) == 'function') { - node = node.dom(ctx); - continue; - } - if (typeof(node) == 'function') { - node = node.apply(ctx, [ctx]); - continue; - } - - if (im) { - // iterable - var iterNodes = null; - try { - iterNodes = iter(node); - } catch (e) { - // pass - } - if (iterNodes) { - return map(coerceToDOM, iterNodes, repeat(ctx)); - } - } - - // adapter - try { - node = domConverters.match(node, ctx); - continue; - } catch (e) { - if (e != NotFound) { - throw e; - } - } - - // fallback - return self._document.createTextNode(node.toString()); - } - // mozilla warnings aren't too bright - return undefined; - }, - - setNodeAttribute: function (node, attr, value) { - var o = {}; - o[attr] = value; - try { - return MochiKit.DOM.updateNodeAttributes(node, o); - } catch (e) { - // pass - } - return null; - }, - - getNodeAttribute: function (node, attr) { - var self = MochiKit.DOM; - var rename = self.attributeArray.renames[attr]; - node = self.getElement(node); - try { - if (rename) { - return node[rename]; - } - return node.getAttribute(attr); - } catch (e) { - // pass - } - return null; - }, - - updateNodeAttributes: function (node, attrs) { - var elem = node; - var self = MochiKit.DOM; - if (typeof(node) == 'string') { - elem = self.getElement(node); - } - if (attrs) { - var updatetree = MochiKit.Base.updatetree; - if (self.attributeArray.compliant) { - // not IE, good. - for (var k in attrs) { - var v = attrs[k]; - if (typeof(v) == 'object' && typeof(elem[k]) == 'object') { - updatetree(elem[k], v); - } else if (k.substring(0, 2) == "on") { - if (typeof(v) == "string") { - v = new Function(v); - } - elem[k] = v; - } else { - elem.setAttribute(k, v); - } - } - } else { - // IE is insane in the membrane - var renames = self.attributeArray.renames; - for (k in attrs) { - v = attrs[k]; - var renamed = renames[k]; - if (k == "style" && typeof(v) == "string") { - elem.style.cssText = v; - } else if (typeof(renamed) == "string") { - elem[renamed] = v; - } else if (typeof(elem[k]) == 'object' - && typeof(v) == 'object') { - updatetree(elem[k], v); - } else if (k.substring(0, 2) == "on") { - if (typeof(v) == "string") { - v = new Function(v); - } - elem[k] = v; - } else { - elem.setAttribute(k, v); - } - } - } - } - return elem; - }, - - appendChildNodes: function (node/*, nodes...*/) { - var elem = node; - var self = MochiKit.DOM; - if (typeof(node) == 'string') { - elem = self.getElement(node); - } - var nodeStack = [ - self.coerceToDOM( - MochiKit.Base.extend(null, arguments, 1), - elem - ) - ]; - var concat = MochiKit.Base.concat; - while (nodeStack.length) { - var n = nodeStack.shift(); - if (typeof(n) == 'undefined' || n === null) { - // pass - } else if (typeof(n.nodeType) == 'number') { - elem.appendChild(n); - } else { - nodeStack = concat(n, nodeStack); - } - } - return elem; - }, - - replaceChildNodes: function (node/*, nodes...*/) { - var elem = node; - var self = MochiKit.DOM; - if (typeof(node) == 'string') { - elem = self.getElement(node); - arguments[0] = elem; - } - var child; - while ((child = elem.firstChild)) { - elem.removeChild(child); - } - if (arguments.length < 2) { - return elem; - } else { - return self.appendChildNodes.apply(this, arguments); - } - }, - - createDOM: function (name, attrs/*, nodes... */) { - var elem; - var self = MochiKit.DOM; - var m = MochiKit.Base; - if (typeof(attrs) == "string" || typeof(attrs) == "number") { - var args = m.extend([name, null], arguments, 1); - return arguments.callee.apply(this, args); - } - if (typeof(name) == 'string') { - // Internet Explorer is dumb - if (attrs && !self.attributeArray.compliant) { - // http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/name_2.asp - var contents = ""; - if ('name' in attrs) { - contents += ' name="' + self.escapeHTML(attrs.name) + '"'; - } - if (name == 'input' && 'type' in attrs) { - contents += ' type="' + self.escapeHTML(attrs.type) + '"'; - } - if (contents) { - name = "<" + name + contents + ">"; - } - } - elem = self._document.createElement(name); - } else { - elem = name; - } - if (attrs) { - self.updateNodeAttributes(elem, attrs); - } - if (arguments.length <= 2) { - return elem; - } else { - var args = m.extend([elem], arguments, 2); - return self.appendChildNodes.apply(this, args); - } - }, - - createDOMFunc: function (/* tag, attrs, *nodes */) { - var m = MochiKit.Base; - return m.partial.apply( - this, - m.extend([MochiKit.DOM.createDOM], arguments) - ); - }, - - removeElement: function (elem) { - var e = MochiKit.DOM.getElement(elem); - e.parentNode.removeChild(e); - return e; - }, - - swapDOM: function (dest, src) { - var self = MochiKit.DOM; - dest = self.getElement(dest); - var parent = dest.parentNode; - if (src) { - src = self.getElement(src); - parent.replaceChild(src, dest); - } else { - parent.removeChild(dest); - } - return src; - }, - - getElement: function (id) { - var self = MochiKit.DOM; - if (arguments.length == 1) { - return ((typeof(id) == "string") ? - self._document.getElementById(id) : id); - } else { - return MochiKit.Base.map(self.getElement, arguments); - } - }, - - getElementsByTagAndClassName: function (tagName, className, - /* optional */parent) { - var self = MochiKit.DOM; - if (typeof(tagName) == 'undefined' || tagName === null) { - tagName = '*'; - } - if (typeof(parent) == 'undefined' || parent === null) { - parent = self._document; - } - parent = self.getElement(parent); - var children = (parent.getElementsByTagName(tagName) - || self._document.all); - if (typeof(className) == 'undefined' || className === null) { - return MochiKit.Base.extend(null, children); - } - - var elements = []; - for (var i = 0; i < children.length; i++) { - var child = children[i]; - var classNames = child.className.split(' '); - for (var j = 0; j < classNames.length; j++) { - if (classNames[j] == className) { - elements.push(child); - break; - } - } - } - - return elements; - }, - - _newCallStack: function (path, once) { - var rval = function () { - var callStack = arguments.callee.callStack; - for (var i = 0; i < callStack.length; i++) { - if (callStack[i].apply(this, arguments) === false) { - break; - } - } - if (once) { - try { - this[path] = null; - } catch (e) { - // pass - } - } - }; - rval.callStack = []; - return rval; - }, - - addToCallStack: function (target, path, func, once) { - var self = MochiKit.DOM; - var existing = target[path]; - var regfunc = existing; - if (!(typeof(existing) == 'function' - && typeof(existing.callStack) == "object" - && existing.callStack !== null)) { - regfunc = self._newCallStack(path, once); - if (typeof(existing) == 'function') { - regfunc.callStack.push(existing); - } - target[path] = regfunc; - } - regfunc.callStack.push(func); - }, - - addLoadEvent: function (func) { - var self = MochiKit.DOM; - self.addToCallStack(self._window, "onload", func, true); - - }, - - focusOnLoad: function (element) { - var self = MochiKit.DOM; - self.addLoadEvent(function () { - element = self.getElement(element); - if (element) { - element.focus(); - } - }); - }, - - setElementClass: function (element, className) { - var self = MochiKit.DOM; - var obj = self.getElement(element); - if (self.attributeArray.compliant) { - obj.setAttribute("class", className); - } else { - obj.setAttribute("className", className); - } - }, - - toggleElementClass: function (className/*, element... */) { - var self = MochiKit.DOM; - for (var i = 1; i < arguments.length; i++) { - var obj = self.getElement(arguments[i]); - if (!self.addElementClass(obj, className)) { - self.removeElementClass(obj, className); - } - } - }, - - addElementClass: function (element, className) { - var self = MochiKit.DOM; - var obj = self.getElement(element); - var cls = obj.className; - // trivial case, no className yet - if (cls.length === 0) { - self.setElementClass(obj, className); - return true; - } - // the other trivial case, already set as the only class - if (cls == className) { - return false; - } - var classes = obj.className.split(" "); - for (var i = 0; i < classes.length; i++) { - // already present - if (classes[i] == className) { - return false; - } - } - // append class - self.setElementClass(obj, cls + " " + className); - return true; - }, - - removeElementClass: function (element, className) { - var self = MochiKit.DOM; - var obj = self.getElement(element); - var cls = obj.className; - // trivial case, no className yet - if (cls.length === 0) { - return false; - } - // other trivial case, set only to className - if (cls == className) { - self.setElementClass(obj, ""); - return true; - } - var classes = obj.className.split(" "); - for (var i = 0; i < classes.length; i++) { - // already present - if (classes[i] == className) { - // only check sane case where the class is used once - classes.splice(i, 1); - self.setElementClass(obj, classes.join(" ")); - return true; - } - } - // not found - return false; - }, - - swapElementClass: function (element, fromClass, toClass) { - var obj = MochiKit.DOM.getElement(element); - var res = MochiKit.DOM.removeElementClass(obj, fromClass); - if (res) { - MochiKit.DOM.addElementClass(obj, toClass); - } - return res; - }, - - hasElementClass: function (element, className/*...*/) { - var obj = MochiKit.DOM.getElement(element); - var classes = obj.className.split(" "); - for (var i = 1; i < arguments.length; i++) { - var good = false; - for (var j = 0; j < classes.length; j++) { - if (classes[j] == arguments[i]) { - good = true; - break; - } - } - if (!good) { - return false; - } - } - return true; - }, - - escapeHTML: function (s) { - return s.replace(/&/g, "&" - ).replace(/"/g, """ - ).replace(//g, ">"); - }, - - toHTML: function (dom) { - return MochiKit.DOM.emitHTML(dom).join(""); - }, - - emitHTML: function (dom, /* optional */lst) { - if (typeof(lst) == 'undefined' || lst === null) { - lst = []; - } - // queue is the call stack, we're doing this non-recursively - var queue = [dom]; - var self = MochiKit.DOM; - var escapeHTML = self.escapeHTML; - var attributeArray = self.attributeArray; - while (queue.length) { - dom = queue.pop(); - if (typeof(dom) == 'string') { - lst.push(dom); - } else if (dom.nodeType == 1) { - // we're not using higher order stuff here - // because safari has heisenbugs.. argh. - // - // I think it might have something to do with - // garbage collection and function calls. - lst.push('<' + dom.nodeName.toLowerCase()); - var attributes = []; - var domAttr = attributeArray(dom); - for (var i = 0; i < domAttr.length; i++) { - var a = domAttr[i]; - attributes.push([ - " ", - a.name, - '="', - escapeHTML(a.value), - '"' - ]); - } - attributes.sort(); - for (i = 0; i < attributes.length; i++) { - var attrs = attributes[i]; - for (var j = 0; j < attrs.length; j++) { - lst.push(attrs[j]); - } - } - if (dom.hasChildNodes()) { - lst.push(">"); - // queue is the FILO call stack, so we put the close tag - // on first - queue.push(""); - var cnodes = dom.childNodes; - for (i = cnodes.length - 1; i >= 0; i--) { - queue.push(cnodes[i]); - } - } else { - lst.push('/>'); - } - } else if (dom.nodeType == 3) { - lst.push(escapeHTML(dom.nodeValue)); - } - } - return lst; - }, - - scrapeText: function (node, /* optional */asArray) { - var rval = []; - (function (node) { - var cn = node.childNodes; - if (cn) { - for (var i = 0; i < cn.length; i++) { - arguments.callee.call(this, cn[i]); - } - } - var nodeValue = node.nodeValue; - if (typeof(nodeValue) == 'string') { - rval.push(nodeValue); - } - })(MochiKit.DOM.getElement(node)); - if (asArray) { - return rval; - } else { - return rval.join(""); - } - }, - - removeEmptyTextNodes: function (element) { - element = MochiKit.DOM.getElement(element); - for (var i = 0; i < element.childNodes.length; i++) { - var node = element.childNodes[i]; - if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) { - node.parentNode.removeChild(node); - } - } - }, - - __new__: function (win) { - - var m = MochiKit.Base; - if (typeof(document) != "undefined") { - this._document = document; - } else if (MochiKit.MockDOM) { - this._document = MochiKit.MockDOM.document; - } - this._window = win; - - this.domConverters = new m.AdapterRegistry(); - - var __tmpElement = this._document.createElement("span"); - var attributeArray; - if (__tmpElement && __tmpElement.attributes && - __tmpElement.attributes.length > 0) { - // for braindead browsers (IE) that insert extra junk - var filter = m.filter; - attributeArray = function (node) { - return filter(attributeArray.ignoreAttrFilter, node.attributes); - }; - attributeArray.ignoreAttr = {}; - var attrs = __tmpElement.attributes; - var ignoreAttr = attributeArray.ignoreAttr; - for (var i = 0; i < attrs.length; i++) { - var a = attrs[i]; - ignoreAttr[a.name] = a.value; - } - attributeArray.ignoreAttrFilter = function (a) { - return (attributeArray.ignoreAttr[a.name] != a.value); - }; - attributeArray.compliant = false; - attributeArray.renames = { - "class": "className", - "checked": "defaultChecked", - "usemap": "useMap", - "for": "htmlFor", - "readonly": "readOnly" - }; - } else { - attributeArray = function (node) { - /*** - - Return an array of attributes for a given node, - filtering out attributes that don't belong for - that are inserted by "Certain Browsers". - - ***/ - return node.attributes; - }; - attributeArray.compliant = true; - attributeArray.renames = {}; - } - this.attributeArray = attributeArray; - - // FIXME: this really belongs in Base, and could probably be cleaner - var _deprecated = function(fromModule, arr) { - var modules = arr[1].split('.'); - var str = ''; - var obj = {}; - - str += 'if (!MochiKit.' + modules[1] + ') { throw new Error("'; - str += 'This function has been deprecated and depends on MochiKit.'; - str += modules[1] + '.");}'; - str += 'return MochiKit.' + modules[1] + '.' + arr[0]; - str += '.apply(this, arguments);'; - - obj[modules[2]] = new Function(str); - MochiKit.Base.update(MochiKit[fromModule], obj); - } - for (var i; i < MochiKit.DOM.DEPRECATED.length; i++) { - _deprecated('DOM', MochiKit.DOM.DEPRECATED[i]); - } - - // shorthand for createDOM syntax - var createDOMFunc = this.createDOMFunc; - this.UL = createDOMFunc("ul"); - this.OL = createDOMFunc("ol"); - this.LI = createDOMFunc("li"); - this.TD = createDOMFunc("td"); - this.TR = createDOMFunc("tr"); - this.TBODY = createDOMFunc("tbody"); - this.THEAD = createDOMFunc("thead"); - this.TFOOT = createDOMFunc("tfoot"); - this.TABLE = createDOMFunc("table"); - this.TH = createDOMFunc("th"); - this.INPUT = createDOMFunc("input"); - this.SPAN = createDOMFunc("span"); - this.A = createDOMFunc("a"); - this.DIV = createDOMFunc("div"); - this.IMG = createDOMFunc("img"); - this.BUTTON = createDOMFunc("button"); - this.TT = createDOMFunc("tt"); - this.PRE = createDOMFunc("pre"); - this.H1 = createDOMFunc("h1"); - this.H2 = createDOMFunc("h2"); - this.H3 = createDOMFunc("h3"); - this.BR = createDOMFunc("br"); - this.HR = createDOMFunc("hr"); - this.LABEL = createDOMFunc("label"); - this.TEXTAREA = createDOMFunc("textarea"); - this.FORM = createDOMFunc("form"); - this.P = createDOMFunc("p"); - this.SELECT = createDOMFunc("select"); - this.OPTION = createDOMFunc("option"); - this.OPTGROUP = createDOMFunc("optgroup"); - this.LEGEND = createDOMFunc("legend"); - this.FIELDSET = createDOMFunc("fieldset"); - this.STRONG = createDOMFunc("strong"); - this.CANVAS = createDOMFunc("canvas"); - - this.$ = this.getElement; - - this.EXPORT_TAGS = { - ":common": this.EXPORT, - ":all": m.concat(this.EXPORT, this.EXPORT_OK) - }; - - m.nameFunctions(this); - - } -}); - - -MochiKit.DOM.__new__(((typeof(window) == "undefined") ? this : window)); - -// -// XXX: Internet Explorer blows -// -if (MochiKit.__export__) { - withWindow = MochiKit.DOM.withWindow; - withDocument = MochiKit.DOM.withDocument; -} - -MochiKit.Base._exportSymbols(this, MochiKit.DOM); diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/DateTime.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/DateTime.js deleted file mode 100644 index c094a864c..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/DateTime.js +++ /dev/null @@ -1,208 +0,0 @@ -/*** - -MochiKit.DateTime 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.DateTime'); -} - -if (typeof(MochiKit) == 'undefined') { - MochiKit = {}; -} - -if (typeof(MochiKit.DateTime) == 'undefined') { - MochiKit.DateTime = {}; -} - -MochiKit.DateTime.NAME = "MochiKit.DateTime"; -MochiKit.DateTime.VERSION = "1.4"; -MochiKit.DateTime.__repr__ = function () { - return "[" + this.NAME + " " + this.VERSION + "]"; -}; -MochiKit.DateTime.toString = function () { - return this.__repr__(); -}; - -MochiKit.DateTime.isoDate = function (str) { - str = str + ""; - if (typeof(str) != "string" || str.length === 0) { - return null; - } - var iso = str.split('-'); - if (iso.length === 0) { - return null; - } - return new Date(iso[0], iso[1] - 1, iso[2]); -}; - -MochiKit.DateTime._isoRegexp = /(\d{4,})(?:-(\d{1,2})(?:-(\d{1,2})(?:[T ](\d{1,2}):(\d{1,2})(?::(\d{1,2})(?:\.(\d+))?)?(?:(Z)|([+-])(\d{1,2})(?::(\d{1,2}))?)?)?)?)?/; - -MochiKit.DateTime.isoTimestamp = function (str) { - str = str + ""; - if (typeof(str) != "string" || str.length === 0) { - return null; - } - var res = str.match(MochiKit.DateTime._isoRegexp); - if (typeof(res) == "undefined" || res === null) { - return null; - } - var year, month, day, hour, min, sec, msec; - year = parseInt(res[1], 10); - if (typeof(res[2]) == "undefined" || res[2] === '') { - return new Date(year); - } - month = parseInt(res[2], 10) - 1; - day = parseInt(res[3], 10); - if (typeof(res[4]) == "undefined" || res[4] === '') { - return new Date(year, month, day); - } - hour = parseInt(res[4], 10); - min = parseInt(res[5], 10); - sec = (typeof(res[6]) != "undefined" && res[6] !== '') ? parseInt(res[6], 10) : 0; - if (typeof(res[7]) != "undefined" && res[7] !== '') { - msec = Math.round(1000.0 * parseFloat("0." + res[7])); - } else { - msec = 0; - } - if ((typeof(res[8]) == "undefined" || res[8] === '') && (typeof(res[9]) == "undefined" || res[9] === '')) { - return new Date(year, month, day, hour, min, sec, msec); - } - var ofs; - if (typeof(res[9]) != "undefined" && res[9] !== '') { - ofs = parseInt(res[10], 10) * 3600000; - if (typeof(res[11]) != "undefined" && res[11] !== '') { - ofs += parseInt(res[11], 10) * 60000; - } - if (res[9] == "-") { - ofs = -ofs; - } - } else { - ofs = 0; - } - return new Date(Date.UTC(year, month, day, hour, min, sec, msec) - ofs); -}; - -MochiKit.DateTime.toISOTime = function (date, realISO/* = false */) { - if (typeof(date) == "undefined" || date === null) { - return null; - } - var hh = date.getHours(); - var mm = date.getMinutes(); - var ss = date.getSeconds(); - var lst = [ - ((realISO && (hh < 10)) ? "0" + hh : hh), - ((mm < 10) ? "0" + mm : mm), - ((ss < 10) ? "0" + ss : ss) - ]; - return lst.join(":"); -}; - -MochiKit.DateTime.toISOTimestamp = function (date, realISO/* = false*/) { - if (typeof(date) == "undefined" || date === null) { - return null; - } - var sep = realISO ? "T" : " "; - var foot = realISO ? "Z" : ""; - if (realISO) { - date = new Date(date.getTime() + (date.getTimezoneOffset() * 60000)); - } - return MochiKit.DateTime.toISODate(date) + sep + MochiKit.DateTime.toISOTime(date, realISO) + foot; -}; - -MochiKit.DateTime.toISODate = function (date) { - if (typeof(date) == "undefined" || date === null) { - return null; - } - var _padTwo = MochiKit.DateTime._padTwo; - return [ - date.getFullYear(), - _padTwo(date.getMonth() + 1), - _padTwo(date.getDate()) - ].join("-"); -}; - -MochiKit.DateTime.americanDate = function (d) { - d = d + ""; - if (typeof(d) != "string" || d.length === 0) { - return null; - } - var a = d.split('/'); - return new Date(a[2], a[0] - 1, a[1]); -}; - -MochiKit.DateTime._padTwo = function (n) { - return (n > 9) ? n : "0" + n; -}; - -MochiKit.DateTime.toPaddedAmericanDate = function (d) { - if (typeof(d) == "undefined" || d === null) { - return null; - } - var _padTwo = MochiKit.DateTime._padTwo; - return [ - _padTwo(d.getMonth() + 1), - _padTwo(d.getDate()), - d.getFullYear() - ].join('/'); -}; - -MochiKit.DateTime.toAmericanDate = function (d) { - if (typeof(d) == "undefined" || d === null) { - return null; - } - return [d.getMonth() + 1, d.getDate(), d.getFullYear()].join('/'); -}; - -MochiKit.DateTime.EXPORT = [ - "isoDate", - "isoTimestamp", - "toISOTime", - "toISOTimestamp", - "toISODate", - "americanDate", - "toPaddedAmericanDate", - "toAmericanDate" -]; - -MochiKit.DateTime.EXPORT_OK = []; -MochiKit.DateTime.EXPORT_TAGS = { - ":common": MochiKit.DateTime.EXPORT, - ":all": MochiKit.DateTime.EXPORT -}; - -MochiKit.DateTime.__new__ = function () { - // MochiKit.Base.nameFunctions(this); - var base = this.NAME + "."; - for (var k in this) { - var o = this[k]; - if (typeof(o) == 'function' && typeof(o.NAME) == 'undefined') { - try { - o.NAME = base + k; - } catch (e) { - // pass - } - } - } -}; - -MochiKit.DateTime.__new__(); - -if (typeof(MochiKit.Base) != "undefined") { - MochiKit.Base._exportSymbols(this, MochiKit.DateTime); -} else { - (function (globals, module) { - if ((typeof(JSAN) == 'undefined' && typeof(dojo) == 'undefined') - || (MochiKit.__export__ === false)) { - var all = module.EXPORT_TAGS[":all"]; - for (var i = 0; i < all.length; i++) { - globals[all[i]] = module[all[i]]; - } - } - })(this, MochiKit.DateTime); -} diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/DragAndDrop.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/DragAndDrop.js deleted file mode 100644 index 3b64298b4..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/DragAndDrop.js +++ /dev/null @@ -1,774 +0,0 @@ -/*** -MochiKit.DragAndDrop 1.4 - -See for documentation, downloads, license, etc. - -Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) - Mochi-ized By Thomas Herve (_firstname_@nimail.org) - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.DragAndDrop'); - dojo.require('MochiKit.Base'); - dojo.require('MochiKit.DOM'); - dojo.require('MochiKit.Iter'); - dojo.require('MochiKit.Visual'); - dojo.require('MochiKit.Signal'); -} - -if (typeof(JSAN) != 'undefined') { - JSAN.use("MochiKit.Base", []); - JSAN.use("MochiKit.DOM", []); - JSAN.use("MochiKit.Visual", []); - JSAN.use("MochiKit.Iter", []); - JSAN.use("MochiKit.Signal", []); -} - -try { - if (typeof(MochiKit.Base) == 'undefined' || - typeof(MochiKit.DOM) == 'undefined' || - typeof(MochiKit.Visual) == 'undefined' || - typeof(MochiKit.Signal) == 'undefined' || - typeof(MochiKit.Iter) == 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.DragAndDrop depends on MochiKit.Base, MochiKit.DOM, MochiKit.Visual, MochiKit.Signal and MochiKit.Iter!"; -} - -if (typeof(MochiKit.DragAndDrop) == 'undefined') { - MochiKit.DragAndDrop = {}; -} - -MochiKit.DragAndDrop.NAME = 'MochiKit.DragAndDrop'; -MochiKit.DragAndDrop.VERSION = '1.4'; - -MochiKit.DragAndDrop.__repr__ = function () { - return '[' + this.NAME + ' ' + this.VERSION + ']'; -}; - -MochiKit.DragAndDrop.toString = function () { - return this.__repr__(); -}; - -MochiKit.DragAndDrop.EXPORT = [ - "Droppable", - "Draggable" -]; - -MochiKit.DragAndDrop.EXPORT_OK = [ - "Droppables", - "Draggables" -]; - -MochiKit.DragAndDrop.Droppables = { - /*** - - Manage all droppables. Shouldn't be used, use the Droppable object instead. - - ***/ - drops: [], - - remove: function (element) { - this.drops = MochiKit.Base.filter(function (d) { - return d.element != MochiKit.DOM.getElement(element) - }, this.drops); - }, - - register: function (drop) { - this.drops.push(drop); - }, - - unregister: function (drop) { - this.drops = MochiKit.Base.filter(function (d) { - return d != drop; - }, this.drops); - }, - - prepare: function (element) { - MochiKit.Base.map(function (drop) { - if (drop.isAccepted(element)) { - if (drop.options.activeclass) { - MochiKit.DOM.addElementClass(drop.element, - drop.options.activeclass); - } - drop.options.onactive(drop.element, element); - } - }, this.drops); - }, - - findDeepestChild: function (drops) { - deepest = drops[0]; - - for (i = 1; i < drops.length; ++i) { - if (MochiKit.DOM.isParent(drops[i].element, deepest.element)) { - deepest = drops[i]; - } - } - return deepest; - }, - - show: function (point, element) { - if (!this.drops.length) { - return; - } - var affected = []; - - if (this.last_active) { - this.last_active.deactivate(); - } - MochiKit.Iter.forEach(this.drops, function (drop) { - if (drop.isAffected(point, element)) { - affected.push(drop); - } - }); - if (affected.length > 0) { - drop = this.findDeepestChild(affected); - MochiKit.Position.within(drop.element, point.page.x, point.page.y); - drop.options.onhover(element, drop.element, - MochiKit.Position.overlap(drop.options.overlap, drop.element)); - drop.activate(); - } - }, - - fire: function (event, element) { - if (!this.last_active) { - return; - } - MochiKit.Position.prepare(); - - if (this.last_active.isAffected(event.mouse(), element)) { - this.last_active.options.ondrop(element, - this.last_active.element, event); - } - }, - - reset: function (element) { - MochiKit.Base.map(function (drop) { - if (drop.options.activeclass) { - MochiKit.DOM.removeElementClass(drop.element, - drop.options.activeclass); - } - drop.options.ondesactive(drop.element, element); - }, this.drops); - if (this.last_active) { - this.last_active.deactivate(); - } - } -}; - -MochiKit.DragAndDrop.Droppable = function (element, options) { - this.__init__(element, options); -}; - -MochiKit.DragAndDrop.Droppable.prototype = { - /*** - - A droppable object. Simple use is to create giving an element: - - new MochiKit.DragAndDrop.Droppable('myelement'); - - Generally you'll want to define the 'ondrop' function and maybe the - 'accept' option to filter draggables. - - ***/ - __class__: MochiKit.DragAndDrop.Droppable, - - __init__: function (element, /* optional */options) { - var d = MochiKit.DOM; - var b = MochiKit.Base; - this.element = d.getElement(element); - this.options = b.update({ - greedy: true, - hoverclass: null, - activeclass: null, - hoverfunc: b.noop, - accept: null, - onactive: b.noop, - ondesactive: b.noop, - onhover: b.noop, - ondrop: b.noop, - containment: [], - tree: false - }, options || {}); - - // cache containers - this.options._containers = []; - b.map(MochiKit.Base.bind(function (c) { - this.options._containers.push(d.getElement(c)); - }, this), this.options.containment); - - d.makePositioned(this.element); // fix IE - - MochiKit.DragAndDrop.Droppables.register(this); - }, - - isContained: function (element) { - if (this._containers) { - var containmentNode; - if (this.options.tree) { - containmentNode = element.treeNode; - } else { - containmentNode = element.parentNode; - } - return MochiKit.Iter.some(this._containers, function (c) { - return containmentNode == c; - }); - } else { - return true; - } - }, - - isAccepted: function (element) { - return ((!this.options.accept) || MochiKit.Iter.some( - this.options.accept, function (c) { - return MochiKit.DOM.hasElementClass(element, c); - })); - }, - - isAffected: function (point, element) { - return ((this.element != element) && - this.isContained(element) && - this.isAccepted(element) && - MochiKit.Position.within(this.element, point.page.x, - point.page.y)); - }, - - deactivate: function () { - /*** - - A droppable is deactivate when a draggable has been over it and left. - - ***/ - if (this.options.hoverclass) { - MochiKit.DOM.removeElementClass(this.element, - this.options.hoverclass); - } - this.options.hoverfunc(this.element, false); - MochiKit.DragAndDrop.Droppables.last_active = null; - }, - - activate: function () { - /*** - - A droppable is active when a draggable is over it. - - ***/ - if (this.options.hoverclass) { - MochiKit.DOM.addElementClass(this.element, this.options.hoverclass); - } - this.options.hoverfunc(this.element, true); - MochiKit.DragAndDrop.Droppables.last_active = this; - }, - - destroy: function () { - /*** - - Delete this droppable. - - ***/ - MochiKit.DragAndDrop.Droppables.unregister(this); - }, - - repr: function () { - return '[' + this.__class__.NAME + ", options:" + MochiKit.Base.repr(this.options) + "]"; - } -}; - -MochiKit.DragAndDrop.Draggables = { - /*** - - Manage draggables elements. Not intended to direct use. - - ***/ - drags: [], - - observers: [], - - register: function (draggable) { - if (this.drags.length === 0) { - var conn = MochiKit.Signal.connect; - this.eventMouseUp = conn(document, 'onmouseup', this, this.endDrag); - this.eventMouseMove = conn(document, 'onmousemove', this, - this.updateDrag); - this.eventKeypress = conn(document, 'onkeypress', this, - this.keyPress); - } - this.drags.push(draggable); - }, - - unregister: function (draggable) { - this.drags = MochiKit.Base.filter(function (d) { - return d != draggable; - }, this.drags); - if (this.drags.length === 0) { - var disc = MochiKit.Signal.disconnect - disc(this.eventMouseUp); - disc(this.eventMouseMove); - disc(this.eventKeypress); - } - }, - - activate: function (draggable) { - // allows keypress events if window is not currently focused - // fails for Safari - window.focus(); - this.activeDraggable = draggable; - }, - - deactivate: function () { - this.activeDraggable = null; - }, - - updateDrag: function (event) { - if (!this.activeDraggable) { - return; - } - var pointer = event.mouse(); - // Mozilla-based browsers fire successive mousemove events with - // the same coordinates, prevent needless redrawing (moz bug?) - if (this._lastPointer && (MochiKit.Base.repr(this._lastPointer.page) == - MochiKit.Base.repr(pointer.page))) { - return; - } - this._lastPointer = pointer; - this.activeDraggable.updateDrag(event, pointer); - }, - - endDrag: function (event) { - if (!this.activeDraggable) { - return; - } - this._lastPointer = null; - this.activeDraggable.endDrag(event); - this.activeDraggable = null; - }, - - keyPress: function (event) { - if (this.activeDraggable) { - this.activeDraggable.keyPress(event); - } - }, - - addObserver: function (observer) { - this.observers.push(observer); - this._cacheObserverCallbacks(); - }, - - removeObserver: function (element) { - // element instead of observer fixes mem leaks - this.observers = MochiKit.Base.filter(function (o) { - return o.element != element; - }, this.observers); - this._cacheObserverCallbacks(); - }, - - notify: function (eventName, draggable, event) { - // 'onStart', 'onEnd', 'onDrag' - if (this[eventName + 'Count'] > 0) { - MochiKit.Base.map(function (o) { - if (o[eventName]) { - o[eventName](eventName, draggable, event); - } - }, this.observers); - } - }, - - _cacheObserverCallbacks: function () { - var b = MochiKit.Base; - var self = MochiKit.DragAndDrop.Draggables; - b.map(function (eventName) { - self[eventName + 'Count'] = b.filter(function (o) { - return o[eventName]; - }, self.observers).length; - }, ['onStart', 'onEnd', 'onDrag']); - } -}; - -MochiKit.DragAndDrop.Draggable = function (element, options) { - this.__init__(element, options); -}; - -MochiKit.DragAndDrop.Draggable.prototype = { - /*** - - A draggable object. Simple instantiate : - - new MochiKit.DragAndDrop.Draggable('myelement'); - - ***/ - __class__ : MochiKit.DragAndDrop.Draggable, - - __init__: function (element, /* optional */options) { - var v = MochiKit.Visual; - var b = MochiKit.Base; - options = b.update({ - handle: false, - starteffect: function (innerelement) { - this._savedOpacity = MochiKit.DOM.getOpacity(innerelement) || 1.0; - new v.Opacity(innerelement, {duration:0.2, from:this._savedOpacity, to:0.7}); - }, - reverteffect: function (innerelement, top_offset, left_offset) { - var dur = Math.sqrt(Math.abs(top_offset^2) + - Math.abs(left_offset^2))*0.02; - return new v.Move(innerelement, - {x: -left_offset, y: -top_offset, duration: dur}); - }, - endeffect: function (innerelement) { - new v.Opacity(innerelement, {duration:0.2, from:0.7, to:this._savedOpacity}); - }, - onchange: b.noop, - zindex: 1000, - revert: false, - scroll: false, - scrollSensitivity: 20, - scrollSpeed: 15, - // false, or xy or [x, y] or function (x, y){return [x, y];} - snap: false - }, options || {}); - - var d = MochiKit.DOM; - this.element = d.getElement(element); - - if (options.handle && (typeof(options.handle) == 'string')) { - this.handle = d.getFirstElementByTagAndClassName(null, - options.handle, this.element); - } - if (!this.handle) { - this.handle = d.getElement(options.handle); - } - if (!this.handle) { - this.handle = this.element; - } - - if (options.scroll && !options.scroll.scrollTo && !options.scroll.outerHTML) { - options.scroll = d.getElement(options.scroll); - } - - d.makePositioned(this.element); // fix IE - - this.delta = this.currentDelta(); - this.options = options; - this.dragging = false; - - this.eventMouseDown = MochiKit.Signal.connect(this.handle, - 'onmousedown', this, this.initDrag); - MochiKit.DragAndDrop.Draggables.register(this); - }, - - destroy: function () { - MochiKit.Signal.disconnect(this.eventMouseDown); - MochiKit.DragAndDrop.Draggables.unregister(this); - }, - - currentDelta: function () { - var s = MochiKit.DOM.getStyle; - return [ - parseInt(s(this.element, 'left') || '0'), - parseInt(s(this.element, 'top') || '0')]; - }, - - initDrag: function (event) { - if (!event.mouse().button.left) { - return; - } - // abort on form elements, fixes a Firefox issue - var src = event.target; - if (src.tagName && ( - src.tagName == 'INPUT' || src.tagName == 'SELECT' || - src.tagName == 'OPTION' || src.tagName == 'BUTTON' || - src.tagName == 'TEXTAREA')) { - return; - } - - if (this._revert) { - this._revert.cancel(); - this._revert = null; - } - - var pointer = event.mouse(); - var pos = MochiKit.Position.cumulativeOffset(this.element); - this.offset = [pointer.page.x - pos.x, pointer.page.y - pos.y] - - MochiKit.DragAndDrop.Draggables.activate(this); - event.stop(); - }, - - startDrag: function (event) { - this.dragging = true; - if (this.options.selectclass) { - MochiKit.DOM.addElementClass(this.element, - this.options.selectclass); - } - if (this.options.zindex) { - this.originalZ = parseInt(MochiKit.DOM.getStyle(this.element, - 'z-index') || '0'); - this.element.style.zIndex = this.options.zindex; - } - - if (this.options.ghosting) { - this._clone = this.element.cloneNode(true); - this.ghostPosition = MochiKit.Position.absolutize(this.element); - this.element.parentNode.insertBefore(this._clone, this.element); - } - - if (this.options.scroll) { - if (this.options.scroll == window) { - var where = this._getWindowScroll(this.options.scroll); - this.originalScrollLeft = where.left; - this.originalScrollTop = where.top; - } else { - this.originalScrollLeft = this.options.scroll.scrollLeft; - this.originalScrollTop = this.options.scroll.scrollTop; - } - } - - MochiKit.DragAndDrop.Droppables.prepare(this.element); - MochiKit.DragAndDrop.Draggables.notify('onStart', this, event); - if (this.options.starteffect) { - this.options.starteffect(this.element); - } - }, - - updateDrag: function (event, pointer) { - if (!this.dragging) { - this.startDrag(event); - } - MochiKit.Position.prepare(); - MochiKit.DragAndDrop.Droppables.show(pointer, this.element); - MochiKit.DragAndDrop.Draggables.notify('onDrag', this, event); - this.draw(pointer); - this.options.onchange(this); - - if (this.options.scroll) { - this.stopScrolling(); - var p, q; - if (this.options.scroll == window) { - var s = this._getWindowScroll(this.options.scroll); - p = new MochiKit.Style.Coordinates(s.left, s.top); - q = new MochiKit.Style.Coordinates(s.left + s.width, - s.top + s.height); - } else { - p = MochiKit.Position.page(this.options.scroll); - p.x += this.options.scroll.scrollLeft; - p.y += this.options.scroll.scrollTop; - q = new MochiKit.Style.Coordinates(p.x + this.options.scroll.offsetWidth, - p.y + this.options.scroll.offsetHeight); - } - var speed = [0, 0]; - if (pointer.page.x > (q.x - this.options.scrollSensitivity)) { - speed[0] = pointer.page.x - (q.x - this.options.scrollSensitivity); - } else if (pointer.page.x < (p.x + this.options.scrollSensitivity)) { - speed[0] = pointer.page.x - (p.x + this.options.scrollSensitivity); - } - if (pointer.page.y > (q.y - this.options.scrollSensitivity)) { - speed[1] = pointer.page.y - (q.y - this.options.scrollSensitivity); - } else if (pointer.page.y < (p.y + this.options.scrollSensitivity)) { - speed[1] = pointer.page.y - (p.y + this.options.scrollSensitivity); - } - this.startScrolling(speed); - } - - // fix AppleWebKit rendering - if (MochiKit.Base.isSafari()) { - window.scrollBy(0, 0); - } - event.stop(); - }, - - finishDrag: function (event, success) { - var dr = MochiKit.DragAndDrop; - this.dragging = false; - if (this.options.selectclass) { - MochiKit.DOM.removeElementClass(this.element, - this.options.selectclass); - } - - if (this.options.ghosting) { - // XXX: from a user point of view, it would be better to remove - // the node only *after* the MochiKit.Visual.Move end when used - // with revert. - MochiKit.Position.relativize(this.element, this.ghostPosition); - MochiKit.DOM.removeElement(this._clone); - this._clone = null; - } - - if (success) { - dr.Droppables.fire(event, this.element); - } - dr.Draggables.notify('onEnd', this, event); - - var revert = this.options.revert; - if (revert && typeof(revert) == 'function') { - revert = revert(this.element); - } - - var d = this.currentDelta(); - if (revert && this.options.reverteffect) { - this._revert = this.options.reverteffect(this.element, - d[1] - this.delta[1], d[0] - this.delta[0]); - } else { - this.delta = d; - } - - if (this.options.zindex) { - this.element.style.zIndex = this.originalZ; - } - - if (this.options.endeffect) { - this.options.endeffect(this.element); - } - - dr.Draggables.deactivate(); - dr.Droppables.reset(this.element); - }, - - keyPress: function (event) { - if (event.keyString != "KEY_ESCAPE") { - return; - } - this.finishDrag(event, false); - event.stop(); - }, - - endDrag: function (event) { - if (!this.dragging) { - return; - } - this.stopScrolling(); - this.finishDrag(event, true); - event.stop(); - }, - - draw: function (point) { - var pos = MochiKit.Position.cumulativeOffset(this.element); - var d = this.currentDelta(); - pos.x -= d[0]; - pos.y -= d[1]; - - if (this.options.scroll && !this.options.scroll.scrollTo) { - pos.x -= this.options.scroll.scrollLeft - this.originalScrollLeft; - pos.y -= this.options.scroll.scrollTop - this.originalScrollTop; - } - - var p = [point.page.x - pos.x - this.offset[0], - point.page.y - pos.y - this.offset[1]] - - if (this.options.snap) { - if (typeof(this.options.snap) == 'function') { - p = this.options.snap(p[0], p[1]); - } else { - if (this.options.snap instanceof Array) { - var i = -1; - p = MochiKit.Base.map(MochiKit.Base.bind(function (v) { - i += 1; - return Math.round(v/this.options.snap[i]) * - this.options.snap[i] - }, this), p) - } else { - p = MochiKit.Base.map(MochiKit.Base.bind(function (v) { - return Math.round(v/this.options.snap) * - this.options.snap - }, this), p) - } - } - } - var style = this.element.style; - if ((!this.options.constraint) || - (this.options.constraint == 'horizontal')) { - style.left = p[0] + 'px'; - } - if ((!this.options.constraint) || - (this.options.constraint == 'vertical')) { - style.top = p[1] + 'px'; - } - if (style.visibility == 'hidden') { - style.visibility = ''; // fix gecko rendering - } - }, - - stopScrolling: function () { - if (this.scrollInterval) { - clearInterval(this.scrollInterval); - this.scrollInterval = null; - } - }, - - startScrolling: function (speed) { - if (!speed[0] || !speed[1]) { - return; - } - this.scrollSpeed = [speed[0] * this.options.scrollSpeed, - speed[1] * this.options.scrollSpeed]; - this.lastScrolled = new Date(); - this.scrollInterval = setInterval(MochiKit.Base.bind(this.scroll, this), 10); - }, - - scroll: function () { - var current = new Date(); - var delta = current - this.lastScrolled; - this.lastScrolled = current; - - if (this.options.scroll == window) { - var s = this._getWindowScroll(this.options.scroll); - if (this.scrollSpeed[0] || this.scrollSpeed[1]) { - var d = delta / 1000; - this.options.scroll.scrollTo(s.left + d * this.scrollSpeed[0], - s.top + d * this.scrollSpeed[1]); - } - } else { - this.options.scroll.scrollLeft += this.scrollSpeed[0] * delta / 1000; - this.options.scroll.scrollTop += this.scrollSpeed[1] * delta / 1000; - } - - var d = MochiKit.DragAndDrop; - - MochiKit.Position.prepare(); - d.Droppables.show(d.Draggables._lastPointer, this.element); - this.draw(d.Draggables._lastPointer); - this.options.onchange(this); - }, - - _getWindowScroll: function (w) { - var T, L, W, H; - with (w.document) { - if (w.document.documentElement && documentElement.scrollTop) { - T = documentElement.scrollTop; - L = documentElement.scrollLeft; - } else if (w.document.body) { - T = body.scrollTop; - L = body.scrollLeft; - } - if (w.innerWidth) { - W = w.innerWidth; - H = w.innerHeight; - } else if (w.document.documentElement && documentElement.clientWidth) { - W = documentElement.clientWidth; - H = documentElement.clientHeight; - } else { - W = body.offsetWidth; - H = body.offsetHeight - } - } - return {top: T, left: L, width: W, height: H}; - }, - - repr: function () { - return '[' + this.__class__.NAME + ", options:" + MochiKit.Base.repr(this.options) + "]"; - } -}; - -MochiKit.DragAndDrop.__new__ = function () { - MochiKit.Base.nameFunctions(this); - - this.EXPORT_TAGS = { - ":common": this.EXPORT, - ":all": MochiKit.Base.concat(this.EXPORT, this.EXPORT_OK) - }; -}; - -MochiKit.DragAndDrop.__new__(); - -MochiKit.Base._exportSymbols(this, MochiKit.DragAndDrop); - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Format.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Format.js deleted file mode 100644 index 9b02a2bcc..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Format.js +++ /dev/null @@ -1,294 +0,0 @@ -/*** - -MochiKit.Format 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.Format'); -} - -if (typeof(MochiKit) == 'undefined') { - MochiKit = {}; -} - -if (typeof(MochiKit.Format) == 'undefined') { - MochiKit.Format = {}; -} - -MochiKit.Format.NAME = "MochiKit.Format"; -MochiKit.Format.VERSION = "1.4"; -MochiKit.Format.__repr__ = function () { - return "[" + this.NAME + " " + this.VERSION + "]"; -}; -MochiKit.Format.toString = function () { - return this.__repr__(); -}; - -MochiKit.Format._numberFormatter = function (placeholder, header, footer, locale, isPercent, precision, leadingZeros, separatorAt, trailingZeros) { - return function (num) { - num = parseFloat(num); - if (typeof(num) == "undefined" || num === null || isNaN(num)) { - return placeholder; - } - var curheader = header; - var curfooter = footer; - if (num < 0) { - num = -num; - } else { - curheader = curheader.replace(/-/, ""); - } - var me = arguments.callee; - var fmt = MochiKit.Format.formatLocale(locale); - if (isPercent) { - num = num * 100.0; - curfooter = fmt.percent + curfooter; - } - num = MochiKit.Format.roundToFixed(num, precision); - var parts = num.split(/\./); - var whole = parts[0]; - var frac = (parts.length == 1) ? "" : parts[1]; - var res = ""; - while (whole.length < leadingZeros) { - whole = "0" + whole; - } - if (separatorAt) { - while (whole.length > separatorAt) { - var i = whole.length - separatorAt; - //res = res + fmt.separator + whole.substring(i, whole.length); - res = fmt.separator + whole.substring(i, whole.length) + res; - whole = whole.substring(0, i); - } - } - res = whole + res; - if (precision > 0) { - while (frac.length < trailingZeros) { - frac = frac + "0"; - } - res = res + fmt.decimal + frac; - } - return curheader + res + curfooter; - }; -}; - -MochiKit.Format.numberFormatter = function (pattern, placeholder/* = "" */, locale/* = "default" */) { - // http://java.sun.com/docs/books/tutorial/i18n/format/numberpattern.html - // | 0 | leading or trailing zeros - // | # | just the number - // | , | separator - // | . | decimal separator - // | % | Multiply by 100 and format as percent - if (typeof(placeholder) == "undefined") { - placeholder = ""; - } - var match = pattern.match(/((?:[0#]+,)?[0#]+)(?:\.([0#]+))?(%)?/); - if (!match) { - throw TypeError("Invalid pattern"); - } - var header = pattern.substr(0, match.index); - var footer = pattern.substr(match.index + match[0].length); - if (header.search(/-/) == -1) { - header = header + "-"; - } - var whole = match[1]; - var frac = (typeof(match[2]) == "string" && match[2] != "") ? match[2] : ""; - var isPercent = (typeof(match[3]) == "string" && match[3] != ""); - var tmp = whole.split(/,/); - var separatorAt; - if (typeof(locale) == "undefined") { - locale = "default"; - } - if (tmp.length == 1) { - separatorAt = null; - } else { - separatorAt = tmp[1].length; - } - var leadingZeros = whole.length - whole.replace(/0/g, "").length; - var trailingZeros = frac.length - frac.replace(/0/g, "").length; - var precision = frac.length; - var rval = MochiKit.Format._numberFormatter( - placeholder, header, footer, locale, isPercent, precision, - leadingZeros, separatorAt, trailingZeros - ); - var m = MochiKit.Base; - if (m) { - var fn = arguments.callee; - var args = m.concat(arguments); - rval.repr = function () { - return [ - self.NAME, - "(", - map(m.repr, args).join(", "), - ")" - ].join(""); - }; - } - return rval; -}; - -MochiKit.Format.formatLocale = function (locale) { - if (typeof(locale) == "undefined" || locale === null) { - locale = "default"; - } - if (typeof(locale) == "string") { - var rval = MochiKit.Format.LOCALE[locale]; - if (typeof(rval) == "string") { - rval = arguments.callee(rval); - MochiKit.Format.LOCALE[locale] = rval; - } - return rval; - } else { - return locale; - } -}; - -MochiKit.Format.twoDigitAverage = function (numerator, denominator) { - if (denominator) { - var res = numerator / denominator; - if (!isNaN(res)) { - return MochiKit.Format.twoDigitFloat(numerator / denominator); - } - } - return "0"; -}; - -MochiKit.Format.twoDigitFloat = function (someFloat) { - var sign = (someFloat < 0 ? '-' : ''); - var s = Math.floor(Math.abs(someFloat) * 100).toString(); - if (s == '0') { - return s; - } - if (s.length < 3) { - while (s.charAt(s.length - 1) == '0') { - s = s.substring(0, s.length - 1); - } - return sign + '0.' + s; - } - var head = sign + s.substring(0, s.length - 2); - var tail = s.substring(s.length - 2, s.length); - if (tail == '00') { - return head; - } else if (tail.charAt(1) == '0') { - return head + '.' + tail.charAt(0); - } else { - return head + '.' + tail; - } -}; - -MochiKit.Format.lstrip = function (str, /* optional */chars) { - str = str + ""; - if (typeof(str) != "string") { - return null; - } - if (!chars) { - return str.replace(/^\s+/, ""); - } else { - return str.replace(new RegExp("^[" + chars + "]+"), ""); - } -}; - -MochiKit.Format.rstrip = function (str, /* optional */chars) { - str = str + ""; - if (typeof(str) != "string") { - return null; - } - if (!chars) { - return str.replace(/\s+$/, ""); - } else { - return str.replace(new RegExp("[" + chars + "]+$"), ""); - } -}; - -MochiKit.Format.strip = function (str, /* optional */chars) { - var self = MochiKit.Format; - return self.rstrip(self.lstrip(str, chars), chars); -}; - -MochiKit.Format.truncToFixed = function (aNumber, precision) { - aNumber = Math.floor(aNumber * Math.pow(10, precision)); - var res = (aNumber * Math.pow(10, -precision)).toFixed(precision); - if (res.charAt(0) == ".") { - res = "0" + res; - } - return res; -}; - -MochiKit.Format.roundToFixed = function (aNumber, precision) { - return MochiKit.Format.truncToFixed( - aNumber + 0.5 * Math.pow(10, -precision), - precision - ); -}; - -MochiKit.Format.percentFormat = function (someFloat) { - return MochiKit.Format.twoDigitFloat(100 * someFloat) + '%'; -}; - -MochiKit.Format.EXPORT = [ - "truncToFixed", - "roundToFixed", - "numberFormatter", - "formatLocale", - "twoDigitAverage", - "twoDigitFloat", - "percentFormat", - "lstrip", - "rstrip", - "strip" -]; - -MochiKit.Format.LOCALE = { - en_US: {separator: ",", decimal: ".", percent: "%"}, - de_DE: {separator: ".", decimal: ",", percent: "%"}, - fr_FR: {separator: " ", decimal: ",", percent: "%"}, - "default": "en_US" -}; - -MochiKit.Format.EXPORT_OK = []; -MochiKit.Format.EXPORT_TAGS = { - ':all': MochiKit.Format.EXPORT, - ':common': MochiKit.Format.EXPORT -}; - -MochiKit.Format.__new__ = function () { - // MochiKit.Base.nameFunctions(this); - var base = this.NAME + "."; - var k, v, o; - for (k in this.LOCALE) { - o = this.LOCALE[k]; - if (typeof(o) == "object") { - o.repr = function () { return this.NAME; }; - o.NAME = base + "LOCALE." + k; - } - } - for (k in this) { - o = this[k]; - if (typeof(o) == 'function' && typeof(o.NAME) == 'undefined') { - try { - o.NAME = base + k; - } catch (e) { - // pass - } - } - } -}; - -MochiKit.Format.__new__(); - -if (typeof(MochiKit.Base) != "undefined") { - MochiKit.Base._exportSymbols(this, MochiKit.Format); -} else { - (function (globals, module) { - if ((typeof(JSAN) == 'undefined' && typeof(dojo) == 'undefined') - || (MochiKit.__export__ === false)) { - var all = module.EXPORT_TAGS[":all"]; - for (var i = 0; i < all.length; i++) { - globals[all[i]] = module[all[i]]; - } - } - })(this, MochiKit.Format); -} diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Iter.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Iter.js deleted file mode 100644 index 55ffb656e..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Iter.js +++ /dev/null @@ -1,807 +0,0 @@ -/*** - -MochiKit.Iter 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.Iter'); - dojo.require('MochiKit.Base'); -} - -if (typeof(JSAN) != 'undefined') { - JSAN.use("MochiKit.Base", []); -} - -try { - if (typeof(MochiKit.Base) == 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.Iter depends on MochiKit.Base!"; -} - -if (typeof(MochiKit.Iter) == 'undefined') { - MochiKit.Iter = {}; -} - -MochiKit.Iter.NAME = "MochiKit.Iter"; -MochiKit.Iter.VERSION = "1.4"; -MochiKit.Base.update(MochiKit.Iter, { - __repr__: function () { - return "[" + this.NAME + " " + this.VERSION + "]"; - }, - toString: function () { - return this.__repr__(); - }, - - registerIteratorFactory: function (name, check, iterfactory, /* optional */ override) { - MochiKit.Iter.iteratorRegistry.register(name, check, iterfactory, override); - }, - - iter: function (iterable, /* optional */ sentinel) { - var self = MochiKit.Iter; - if (arguments.length == 2) { - return self.takewhile( - function (a) { return a != sentinel; }, - iterable - ); - } - if (typeof(iterable.next) == 'function') { - return iterable; - } else if (typeof(iterable.iter) == 'function') { - return iterable.iter(); - /* - } else if (typeof(iterable.__iterator__) == 'function') { - // - // XXX: We can't support JavaScript 1.7 __iterator__ directly - // because of Object.prototype.__iterator__ - // - return iterable.__iterator__(); - */ - } - - try { - return self.iteratorRegistry.match(iterable); - } catch (e) { - var m = MochiKit.Base; - if (e == m.NotFound) { - e = new TypeError(typeof(iterable) + ": " + m.repr(iterable) + " is not iterable"); - } - throw e; - } - }, - -// count: function (n) { -// if (!n) { -// n = 0; -// } -// var m = MochiKit.Base; -// return { -// repr: function () { return "count(" + n + ")"; }, -// toString: m.forwardCall("repr"), -// next: m.counter(n) -// }; -// }, - -// cycle: function (p) { -// var self = MochiKit.Iter; -// var m = MochiKit.Base; -// var lst = []; -// var iterator = self.iter(p); -// return { -// repr: function () { return "cycle(...)"; }, -// toString: m.forwardCall("repr"), -// next: function () { -// try { -// var rval = iterator.next(); -// lst.push(rval); -// return rval; -// } catch (e) { -// if (e != self.StopIteration) { -// throw e; -// } -// if (lst.length === 0) { -// this.next = function () { -// throw self.StopIteration; -// }; -// } else { -// var i = -1; -// this.next = function () { -// i = (i + 1) % lst.length; -// return lst[i]; -// }; -// } -// return this.next(); -// } -// } -// }; -// }, - - repeat: function (elem, /* optional */n) { - var m = MochiKit.Base; - if (typeof(n) == 'undefined') { - return { - repr: function () { - return "repeat(" + m.repr(elem) + ")"; - }, - toString: m.forwardCall("repr"), - next: function () { - return elem; - } - }; - } - return { - repr: function () { - return "repeat(" + m.repr(elem) + ", " + n + ")"; - }, - toString: m.forwardCall("repr"), - next: function () { - if (n <= 0) { - throw MochiKit.Iter.StopIteration; - } - n -= 1; - return elem; - } - }; - }, - - next: function (iterator) { - return iterator.next(); - }, - -// izip: function (p, q/*, ...*/) { -// var m = MochiKit.Base; -// var self = MochiKit.Iter; -// var next = self.next; -// var iterables = m.map(self.iter, arguments); -// return { -// repr: function () { return "izip(...)"; }, -// toString: m.forwardCall("repr"), -// next: function () { return m.map(next, iterables); } -// }; -// }, - - ifilter: function (pred, seq) { - var m = MochiKit.Base; - seq = MochiKit.Iter.iter(seq); - if (pred === null) { - pred = m.operator.truth; - } - return { - repr: function () { return "ifilter(...)"; }, - toString: m.forwardCall("repr"), - next: function () { - while (true) { - var rval = seq.next(); - if (pred(rval)) { - return rval; - } - } - // mozilla warnings aren't too bright - return undefined; - } - }; - }, - - ifilterfalse: function (pred, seq) { - var m = MochiKit.Base; - seq = MochiKit.Iter.iter(seq); - if (pred === null) { - pred = m.operator.truth; - } - return { - repr: function () { return "ifilterfalse(...)"; }, - toString: m.forwardCall("repr"), - next: function () { - while (true) { - var rval = seq.next(); - if (!pred(rval)) { - return rval; - } - } - // mozilla warnings aren't too bright - return undefined; - } - }; - }, - -// islice: function (seq/*, [start,] stop[, step] */) { -// var self = MochiKit.Iter; -// var m = MochiKit.Base; -// seq = self.iter(seq); -// var start = 0; -// var stop = 0; -// var step = 1; -// var i = -1; -// if (arguments.length == 2) { -// stop = arguments[1]; -// } else if (arguments.length == 3) { -// start = arguments[1]; -// stop = arguments[2]; -// } else { -// start = arguments[1]; -// stop = arguments[2]; -// step = arguments[3]; -// } -// return { -// repr: function () { -// return "islice(" + ["...", start, stop, step].join(", ") + ")"; -// }, -// toString: m.forwardCall("repr"), -// next: function () { -// var rval; -// while (i < start) { -// rval = seq.next(); -// i++; -// } -// if (start >= stop) { -// throw self.StopIteration; -// } -// start += step; -// return rval; -// } -// }; -// }, - - imap: function (fun, p, q/*, ...*/) { - var m = MochiKit.Base; - var self = MochiKit.Iter; - var iterables = m.map(self.iter, m.extend(null, arguments, 1)); - var map = m.map; - var next = self.next; - return { - repr: function () { return "imap(...)"; }, - toString: m.forwardCall("repr"), - next: function () { - return fun.apply(this, map(next, iterables)); - } - }; - }, - -// applymap: function (fun, seq, self) { -// seq = MochiKit.Iter.iter(seq); -// var m = MochiKit.Base; -// return { -// repr: function () { return "applymap(...)"; }, -// toString: m.forwardCall("repr"), -// next: function () { -// return fun.apply(self, seq.next()); -// } -// }; -// }, - -// chain: function (p, q/*, ...*/) { -// // dumb fast path -// var self = MochiKit.Iter; -// var m = MochiKit.Base; -// if (arguments.length == 1) { -// return self.iter(arguments[0]); -// } -// var argiter = m.map(self.iter, arguments); -// return { -// repr: function () { return "chain(...)"; }, -// toString: m.forwardCall("repr"), -// next: function () { -// while (argiter.length > 1) { -// try { -// return argiter[0].next(); -// } catch (e) { -// if (e != self.StopIteration) { -// throw e; -// } -// argiter.shift(); -// } -// } -// if (argiter.length == 1) { -// // optimize last element -// var arg = argiter.shift(); -// this.next = m.bind("next", arg); -// return this.next(); -// } -// throw self.StopIteration; -// } -// }; -// }, - -// takewhile: function (pred, seq) { -// var self = MochiKit.Iter; -// seq = self.iter(seq); -// return { -// repr: function () { return "takewhile(...)"; }, -// toString: MochiKit.Base.forwardCall("repr"), -// next: function () { -// var rval = seq.next(); -// if (!pred(rval)) { -// this.next = function () { -// throw self.StopIteration; -// }; -// this.next(); -// } -// return rval; -// } -// }; -// }, - -// dropwhile: function (pred, seq) { -// seq = MochiKit.Iter.iter(seq); -// var m = MochiKit.Base; -// var bind = m.bind; -// return { -// "repr": function () { return "dropwhile(...)"; }, -// "toString": m.forwardCall("repr"), -// "next": function () { -// while (true) { -// var rval = seq.next(); -// if (!pred(rval)) { -// break; -// } -// } -// this.next = bind("next", seq); -// return rval; -// } -// }; -// }, - -// _tee: function (ident, sync, iterable) { -// sync.pos[ident] = -1; -// var m = MochiKit.Base; -// var listMin = m.listMin; -// return { -// repr: function () { return "tee(" + ident + ", ...)"; }, -// toString: m.forwardCall("repr"), -// next: function () { -// var rval; -// var i = sync.pos[ident]; -// -// if (i == sync.max) { -// rval = iterable.next(); -// sync.deque.push(rval); -// sync.max += 1; -// sync.pos[ident] += 1; -// } else { -// rval = sync.deque[i - sync.min]; -// sync.pos[ident] += 1; -// if (i == sync.min && listMin(sync.pos) != sync.min) { -// sync.min += 1; -// sync.deque.shift(); -// } -// } -// return rval; -// } -// }; -// }, - -// tee: function (iterable, n/* = 2 */) { -// var rval = []; -// var sync = { -// "pos": [], -// "deque": [], -// "max": -1, -// "min": -1 -// }; -// if (arguments.length == 1 || typeof(n) == "undefined" || n === null) { -// n = 2; -// } -// var self = MochiKit.Iter; -// iterable = self.iter(iterable); -// var _tee = self._tee; -// for (var i = 0; i < n; i++) { -// rval.push(_tee(i, sync, iterable)); -// } -// return rval; -// }, - - list: function (iterable) { - // Fast-path for Array and Array-like - var m = MochiKit.Base; - if (typeof(iterable.slice) == 'function') { - return iterable.slice(); - } else if (m.isArrayLike(iterable)) { - return m.concat(iterable); - } - - var self = MochiKit.Iter; - iterable = self.iter(iterable); - var rval = []; - try { - while (true) { - rval.push(iterable.next()); - } - } catch (e) { - if (e != self.StopIteration) { - throw e; - } - return rval; - } - // mozilla warnings aren't too bright - return undefined; - }, - - -// reduce: function (fn, iterable, /* optional */initial) { -// var i = 0; -// var x = initial; -// var self = MochiKit.Iter; -// iterable = self.iter(iterable); -// if (arguments.length < 3) { -// try { -// x = iterable.next(); -// } catch (e) { -// if (e == self.StopIteration) { -// e = new TypeError("reduce() of empty sequence with no initial value"); -// } -// throw e; -// } -// i++; -// } -// try { -// while (true) { -// x = fn(x, iterable.next()); -// } -// } catch (e) { -// if (e != self.StopIteration) { -// throw e; -// } -// } -// return x; -// }, - -// range: function (/* [start,] stop[, step] */) { -// var start = 0; -// var stop = 0; -// var step = 1; -// if (arguments.length == 1) { -// stop = arguments[0]; -// } else if (arguments.length == 2) { -// start = arguments[0]; -// stop = arguments[1]; -// } else if (arguments.length == 3) { -// start = arguments[0]; -// stop = arguments[1]; -// step = arguments[2]; -// } else { -// throw new TypeError("range() takes 1, 2, or 3 arguments!"); -// } -// if (step === 0) { -// throw new TypeError("range() step must not be 0"); -// } -// return { -// next: function () { -// if ((step > 0 && start >= stop) || (step < 0 && start <= stop)) { -// throw MochiKit.Iter.StopIteration; -// } -// var rval = start; -// start += step; -// return rval; -// }, -// repr: function () { -// return "range(" + [start, stop, step].join(", ") + ")"; -// }, -// toString: MochiKit.Base.forwardCall("repr") -// }; -// }, -// -// sum: function (iterable, start/* = 0 */) { -// if (typeof(start) == "undefined" || start === null) { -// start = 0; -// } -// var x = start; -// var self = MochiKit.Iter; -// iterable = self.iter(iterable); -// try { -// while (true) { -// x += iterable.next(); -// } -// } catch (e) { -// if (e != self.StopIteration) { -// throw e; -// } -// } -// return x; -// }, - -// exhaust: function (iterable) { -// var self = MochiKit.Iter; -// iterable = self.iter(iterable); -// try { -// while (true) { -// iterable.next(); -// } -// } catch (e) { -// if (e != self.StopIteration) { -// throw e; -// } -// } -// }, - - forEach: function (iterable, func, /* optional */self) { - var m = MochiKit.Base; - if (arguments.length > 2) { - func = m.bind(func, self); - } - // fast path for array - if (m.isArrayLike(iterable)) { - try { - for (var i = 0; i < iterable.length; i++) { - func(iterable[i]); - } - } catch (e) { - if (e != MochiKit.Iter.StopIteration) { - throw e; - } - } - } else { - self = MochiKit.Iter; - self.exhaust(self.imap(func, iterable)); - } - }, - - every: function (iterable, func) { - var self = MochiKit.Iter; - try { - self.ifilterfalse(func, iterable).next(); - return false; - } catch (e) { - if (e != self.StopIteration) { - throw e; - } - return true; - } - }, - -// sorted: function (iterable, /* optional */cmp) { -// var rval = MochiKit.Iter.list(iterable); -// if (arguments.length == 1) { -// cmp = MochiKit.Base.compare; -// } -// rval.sort(cmp); -// return rval; -// }, - -// reversed: function (iterable) { -// var rval = MochiKit.Iter.list(iterable); -// rval.reverse(); -// return rval; -// }, -// -// some: function (iterable, func) { -// var self = MochiKit.Iter; -// try { -// self.ifilter(func, iterable).next(); -// return true; -// } catch (e) { -// if (e != self.StopIteration) { -// throw e; -// } -// return false; -// } -// }, -// -// iextend: function (lst, iterable) { -// if (MochiKit.Base.isArrayLike(iterable)) { -// // fast-path for array-like -// for (var i = 0; i < iterable.length; i++) { -// lst.push(iterable[i]); -// } -// } else { -// var self = MochiKit.Iter; -// iterable = self.iter(iterable); -// try { -// while (true) { -// lst.push(iterable.next()); -// } -// } catch (e) { -// if (e != self.StopIteration) { -// throw e; -// } -// } -// } -// return lst; -// }, - -// groupby: function(iterable, /* optional */ keyfunc) { -// var m = MochiKit.Base; -// var self = MochiKit.Iter; -// if (arguments.length < 2) { -// keyfunc = m.operator.identity; -// } -// iterable = self.iter(iterable); -// -// // shared -// var pk = undefined; -// var k = undefined; -// var v; -// -// function fetch() { -// v = iterable.next(); -// k = keyfunc(v); -// }; -// -// function eat() { -// var ret = v; -// v = undefined; -// return ret; -// }; -// -// var first = true; -// return { -// repr: function () { return "groupby(...)"; }, -// next: function() { -// // iterator-next -// -// // iterate until meet next group -// while (k == pk) { -// fetch(); -// if (first) { -// first = false; -// break; -// } -// } -// pk = k; -// return [k, { -// next: function() { -// // subiterator-next -// if (v == undefined) { // Is there something to eat? -// fetch(); -// } -// if (k != pk) { -// throw self.StopIteration; -// } -// return eat(); -// } -// }]; -// } -// }; -// }, - -// groupby_as_array: function (iterable, /* optional */ keyfunc) { -// var m = MochiKit.Base; -// var self = MochiKit.Iter; -// if (arguments.length < 2) { -// keyfunc = m.operator.identity; -// } -// -// iterable = self.iter(iterable); -// var result = []; -// var first = true; -// var prev_key; -// while (true) { -// try { -// var value = iterable.next(); -// var key = keyfunc(value); -// } catch (e) { -// if (e == self.StopIteration) { -// break; -// } -// throw e; -// } -// if (first || key != prev_key) { -// var values = []; -// result.push([key, values]); -// } -// values.push(value); -// first = false; -// prev_key = key; -// } -// return result; -// }, - - arrayLikeIter: function (iterable) { - var i = 0; - return { - repr: function () { return "arrayLikeIter(...)"; }, - toString: MochiKit.Base.forwardCall("repr"), - next: function () { - if (i >= iterable.length) { - throw MochiKit.Iter.StopIteration; - } - return iterable[i++]; - } - }; - }, - - hasIterateNext: function (iterable) { - return (iterable && typeof(iterable.iterateNext) == "function"); - }, - - iterateNextIter: function (iterable) { - return { - repr: function () { return "iterateNextIter(...)"; }, - toString: MochiKit.Base.forwardCall("repr"), - next: function () { - var rval = iterable.iterateNext(); - if (rval === null || rval === undefined) { - throw MochiKit.Iter.StopIteration; - } - return rval; - } - }; - } -}); - - -MochiKit.Iter.EXPORT_OK = [ - "iteratorRegistry", - "arrayLikeIter", - "hasIterateNext", - "iterateNextIter", -]; - -MochiKit.Iter.EXPORT = [ - "StopIteration", - "registerIteratorFactory", - "iter", - "count", - "cycle", - "repeat", - "next", - "izip", - "ifilter", - "ifilterfalse", - "islice", - "imap", - "applymap", - "chain", - "takewhile", - "dropwhile", - "tee", - "list", - "reduce", - "range", - "sum", - "exhaust", - "forEach", - "every", - "sorted", - "reversed", - "some", - "iextend", - "groupby", - "groupby_as_array" -]; - -MochiKit.Iter.__new__ = function () { - var m = MochiKit.Base; - // Re-use StopIteration if exists (e.g. SpiderMonkey) - if (typeof(StopIteration) != "undefined") { - this.StopIteration = StopIteration; - } else { - this.StopIteration = new m.NamedError("StopIteration"); - } - this.iteratorRegistry = new m.AdapterRegistry(); - // Register the iterator factory for arrays - this.registerIteratorFactory( - "arrayLike", - m.isArrayLike, - this.arrayLikeIter - ); - - this.registerIteratorFactory( - "iterateNext", - this.hasIterateNext, - this.iterateNextIter - ); - - this.EXPORT_TAGS = { - ":common": this.EXPORT, - ":all": m.concat(this.EXPORT, this.EXPORT_OK) - }; - - m.nameFunctions(this); - -}; - -MochiKit.Iter.__new__(); - -// -// XXX: Internet Explorer blows -// -if (MochiKit.__export__) { - reduce = MochiKit.Iter.reduce; -} - -MochiKit.Base._exportSymbols(this, MochiKit.Iter); diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/License.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/License.js deleted file mode 100644 index e6eba2933..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/License.js +++ /dev/null @@ -1,9 +0,0 @@ -/*** - -MochiKit.Base 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Logging.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Logging.js deleted file mode 100644 index b329f913e..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Logging.js +++ /dev/null @@ -1,299 +0,0 @@ -/*** - -MochiKit.Logging 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.Logging'); - dojo.require('MochiKit.Base'); -} - -if (typeof(JSAN) != 'undefined') { - JSAN.use("MochiKit.Base", []); -} - -try { - if (typeof(MochiKit.Base) == 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.Logging depends on MochiKit.Base!"; -} - -if (typeof(MochiKit.Logging) == 'undefined') { - MochiKit.Logging = {}; -} - -MochiKit.Logging.NAME = "MochiKit.Logging"; -MochiKit.Logging.VERSION = "1.4"; -MochiKit.Logging.__repr__ = function () { - return "[" + this.NAME + " " + this.VERSION + "]"; -}; - -MochiKit.Logging.toString = function () { - return this.__repr__(); -}; - - -MochiKit.Logging.EXPORT = [ - "LogLevel", - "LogMessage", - "Logger", - "alertListener", - "logger", - "log", - "logError", - "logDebug", - "logFatal", - "logWarning" -]; - - -MochiKit.Logging.EXPORT_OK = [ - "logLevelAtLeast", - "isLogMessage", - "compareLogMessage" -]; - - -MochiKit.Logging.LogMessage = function (num, level, info) { - this.num = num; - this.level = level; - this.info = info; - this.timestamp = new Date(); -}; - -MochiKit.Logging.LogMessage.prototype = { - repr: function () { - var m = MochiKit.Base; - return 'LogMessage(' + - m.map( - m.repr, - [this.num, this.level, this.info] - ).join(', ') + ')'; - }, - toString: MochiKit.Base.forwardCall("repr") -}; - -MochiKit.Base.update(MochiKit.Logging, { - logLevelAtLeast: function (minLevel) { - var self = MochiKit.Logging; - if (typeof(minLevel) == 'string') { - minLevel = self.LogLevel[minLevel]; - } - return function (msg) { - var msgLevel = msg.level; - if (typeof(msgLevel) == 'string') { - msgLevel = self.LogLevel[msgLevel]; - } - return msgLevel >= minLevel; - }; - }, - - isLogMessage: function (/* ... */) { - var LogMessage = MochiKit.Logging.LogMessage; - for (var i = 0; i < arguments.length; i++) { - if (!(arguments[i] instanceof LogMessage)) { - return false; - } - } - return true; - }, - - compareLogMessage: function (a, b) { - return MochiKit.Base.compare([a.level, a.info], [b.level, b.info]); - }, - - alertListener: function (msg) { - alert( - "num: " + msg.num + - "\nlevel: " + msg.level + - "\ninfo: " + msg.info.join(" ") - ); - } - -}); - -MochiKit.Logging.Logger = function (/* optional */maxSize) { - this.counter = 0; - if (typeof(maxSize) == 'undefined' || maxSize === null) { - maxSize = -1; - } - this.maxSize = maxSize; - this._messages = []; - this.listeners = {}; - this.useNativeConsole = false; -}; - -MochiKit.Logging.Logger.prototype = { - clear: function () { - this._messages.splice(0, this._messages.length); - }, - - logToConsole: function (msg) { - if (typeof(window) != "undefined" && window.console - && window.console.log) { - // Safari and FireBug 0.4 - // Percent replacement is a workaround for cute Safari crashing bug - window.console.log(msg.replace(/%/g, '\uFF05')); - } else if (typeof(opera) != "undefined" && opera.postError) { - // Opera - opera.postError(msg); - } else if (typeof(printfire) == "function") { - // FireBug 0.3 and earlier - printfire(msg); - } else if (typeof(Debug) != "undefined" && Debug.writeln) { - // IE Web Development Helper (?) - // http://www.nikhilk.net/Entry.aspx?id=93 - Debug.writeln(msg); - } else if (typeof(debug) != "undefined" && debug.trace) { - // Atlas framework (?) - // http://www.nikhilk.net/Entry.aspx?id=93 - debug.trace(msg); - } - }, - - dispatchListeners: function (msg) { - for (var k in this.listeners) { - var pair = this.listeners[k]; - if (pair.ident != k || (pair[0] && !pair[0](msg))) { - continue; - } - pair[1](msg); - } - }, - - addListener: function (ident, filter, listener) { - if (typeof(filter) == 'string') { - filter = MochiKit.Logging.logLevelAtLeast(filter); - } - var entry = [filter, listener]; - entry.ident = ident; - this.listeners[ident] = entry; - }, - - removeListener: function (ident) { - delete this.listeners[ident]; - }, - - baseLog: function (level, message/*, ...*/) { - var msg = new MochiKit.Logging.LogMessage( - this.counter, - level, - MochiKit.Base.extend(null, arguments, 1) - ); - this._messages.push(msg); - this.dispatchListeners(msg); - if (this.useNativeConsole) { - this.logToConsole(msg.level + ": " + msg.info.join(" ")); - } - this.counter += 1; - while (this.maxSize >= 0 && this._messages.length > this.maxSize) { - this._messages.shift(); - } - }, - - getMessages: function (howMany) { - var firstMsg = 0; - if (!(typeof(howMany) == 'undefined' || howMany === null)) { - firstMsg = Math.max(0, this._messages.length - howMany); - } - return this._messages.slice(firstMsg); - }, - - getMessageText: function (howMany) { - if (typeof(howMany) == 'undefined' || howMany === null) { - howMany = 30; - } - var messages = this.getMessages(howMany); - if (messages.length) { - var lst = map(function (m) { - return '\n [' + m.num + '] ' + m.level + ': ' + m.info.join(' '); - }, messages); - lst.unshift('LAST ' + messages.length + ' MESSAGES:'); - return lst.join(''); - } - return ''; - }, - - debuggingBookmarklet: function (inline) { - if (typeof(MochiKit.LoggingPane) == "undefined") { - alert(this.getMessageText()); - } else { - MochiKit.LoggingPane.createLoggingPane(inline || false); - } - } -}; - - -MochiKit.Logging.__new__ = function () { - this.LogLevel = { - ERROR: 40, - FATAL: 50, - WARNING: 30, - INFO: 20, - DEBUG: 10 - }; - - var m = MochiKit.Base; - m.registerComparator("LogMessage", - this.isLogMessage, - this.compareLogMessage - ); - - var partial = m.partial; - - var Logger = this.Logger; - var baseLog = Logger.prototype.baseLog; - m.update(this.Logger.prototype, { - debug: partial(baseLog, 'DEBUG'), - log: partial(baseLog, 'INFO'), - error: partial(baseLog, 'ERROR'), - fatal: partial(baseLog, 'FATAL'), - warning: partial(baseLog, 'WARNING') - }); - - // indirectly find logger so it can be replaced - var self = this; - var connectLog = function (name) { - return function () { - self.logger[name].apply(self.logger, arguments); - }; - }; - - this.log = connectLog('log'); - this.logError = connectLog('error'); - this.logDebug = connectLog('debug'); - this.logFatal = connectLog('fatal'); - this.logWarning = connectLog('warning'); - this.logger = new Logger(); - this.logger.useNativeConsole = true; - - this.EXPORT_TAGS = { - ":common": this.EXPORT, - ":all": m.concat(this.EXPORT, this.EXPORT_OK) - }; - - m.nameFunctions(this); - -}; - -if (typeof(printfire) == "undefined" && - typeof(document) != "undefined" && document.createEvent && - typeof(dispatchEvent) != "undefined") { - // FireBug really should be less lame about this global function - printfire = function () { - printfire.args = arguments; - var ev = document.createEvent("Events"); - ev.initEvent("printfire", false, true); - dispatchEvent(ev); - }; -} - -MochiKit.Logging.__new__(); - -MochiKit.Base._exportSymbols(this, MochiKit.Logging); diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/LoggingPane.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/LoggingPane.js deleted file mode 100644 index b5f53b759..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/LoggingPane.js +++ /dev/null @@ -1,356 +0,0 @@ -/*** - -MochiKit.LoggingPane 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.LoggingPane'); - dojo.require('MochiKit.Logging'); - dojo.require('MochiKit.Base'); -} - -if (typeof(JSAN) != 'undefined') { - JSAN.use("MochiKit.Logging", []); - JSAN.use("MochiKit.Base", []); -} - -try { - if (typeof(MochiKit.Base) == 'undefined' || typeof(MochiKit.Logging) == 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.LoggingPane depends on MochiKit.Base and MochiKit.Logging!"; -} - -if (typeof(MochiKit.LoggingPane) == 'undefined') { - MochiKit.LoggingPane = {}; -} - -MochiKit.LoggingPane.NAME = "MochiKit.LoggingPane"; -MochiKit.LoggingPane.VERSION = "1.4"; -MochiKit.LoggingPane.__repr__ = function () { - return "[" + this.NAME + " " + this.VERSION + "]"; -}; - -MochiKit.LoggingPane.toString = function () { - return this.__repr__(); -}; - -MochiKit.LoggingPane.createLoggingPane = function (inline/* = false */) { - var m = MochiKit.LoggingPane; - inline = !(!inline); - if (m._loggingPane && m._loggingPane.inline != inline) { - m._loggingPane.closePane(); - m._loggingPane = null; - } - if (!m._loggingPane || m._loggingPane.closed) { - m._loggingPane = new m.LoggingPane(inline, MochiKit.Logging.logger); - } - return m._loggingPane; -}; - -MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = MochiKit.Logging.logger */) { - /* Use a div if inline, pop up a window if not */ - /* Create the elements */ - if (typeof(logger) == "undefined" || logger === null) { - logger = MochiKit.Logging.logger; - } - this.logger = logger; - var update = MochiKit.Base.update; - var updatetree = MochiKit.Base.updatetree; - var bind = MochiKit.Base.bind; - var clone = MochiKit.Base.clone; - var win = window; - var uid = "_MochiKit_LoggingPane"; - if (typeof(MochiKit.DOM) != "undefined") { - win = MochiKit.DOM.currentWindow(); - } - if (!inline) { - // name the popup with the base URL for uniqueness - var url = win.location.href.split("?")[0].replace(/[:\/.><&-]/g, "_"); - var name = uid + "_" + url; - var nwin = win.open("", name, "dependent,resizable,height=200"); - if (!nwin) { - alert("Not able to open debugging window due to pop-up blocking."); - return undefined; - } - nwin.document.write( - '' - + '[MochiKit.LoggingPane]' - + '' - ); - nwin.document.close(); - nwin.document.title += ' ' + win.document.title; - win = nwin; - } - var doc = win.document; - this.doc = doc; - - // Connect to the debug pane if it already exists (i.e. in a window orphaned by the page being refreshed) - var debugPane = doc.getElementById(uid); - var existing_pane = !!debugPane; - if (debugPane && typeof(debugPane.loggingPane) != "undefined") { - debugPane.loggingPane.logger = this.logger; - debugPane.loggingPane.buildAndApplyFilter(); - return debugPane.loggingPane; - } - - if (existing_pane) { - // clear any existing contents - var child; - while ((child = debugPane.firstChild)) { - debugPane.removeChild(child); - } - } else { - debugPane = doc.createElement("div"); - debugPane.id = uid; - } - debugPane.loggingPane = this; - var levelFilterField = doc.createElement("input"); - var infoFilterField = doc.createElement("input"); - var filterButton = doc.createElement("button"); - var loadButton = doc.createElement("button"); - var clearButton = doc.createElement("button"); - var closeButton = doc.createElement("button"); - var logPaneArea = doc.createElement("div"); - var logPane = doc.createElement("div"); - - /* Set up the functions */ - var listenerId = uid + "_Listener"; - this.colorTable = clone(this.colorTable); - var messages = []; - var messageFilter = null; - - var messageLevel = function (msg) { - var level = msg.level; - if (typeof(level) == "number") { - level = MochiKit.Logging.LogLevel[level]; - } - return level; - }; - - var messageText = function (msg) { - return msg.info.join(" "); - }; - - var addMessageText = bind(function (msg) { - var level = messageLevel(msg); - var text = messageText(msg); - var c = this.colorTable[level]; - var p = doc.createElement("span"); - p.className = "MochiKit-LogMessage MochiKit-LogLevel-" + level; - p.style.cssText = "margin: 0px; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; white-space: pre-line; word-wrap: break-word; wrap-option: emergency; color: " + c; - p.appendChild(doc.createTextNode(level + ": " + text)); - logPane.appendChild(p); - logPane.appendChild(doc.createElement("br")); - if (logPaneArea.offsetHeight > logPaneArea.scrollHeight) { - logPaneArea.scrollTop = 0; - } else { - logPaneArea.scrollTop = logPaneArea.scrollHeight; - } - }, this); - - var addMessage = function (msg) { - messages[messages.length] = msg; - addMessageText(msg); - }; - - var buildMessageFilter = function () { - var levelre, infore; - try { - /* Catch any exceptions that might arise due to invalid regexes */ - levelre = new RegExp(levelFilterField.value); - infore = new RegExp(infoFilterField.value); - } catch(e) { - /* If there was an error with the regexes, do no filtering */ - logDebug("Error in filter regex: " + e.message); - return null; - } - - return function (msg) { - return ( - levelre.test(messageLevel(msg)) && - infore.test(messageText(msg)) - ); - }; - }; - - var clearMessagePane = function () { - while (logPane.firstChild) { - logPane.removeChild(logPane.firstChild); - } - }; - - var clearMessages = function () { - messages = []; - clearMessagePane(); - }; - - var closePane = bind(function () { - if (this.closed) { - return; - } - this.closed = true; - if (MochiKit.LoggingPane._loggingPane == this) { - MochiKit.LoggingPane._loggingPane = null; - } - this.logger.removeListener(listenerId); - - debugPane.loggingPane = null; - - if (inline) { - debugPane.parentNode.removeChild(debugPane); - } else { - this.win.close(); - } - }, this); - - var filterMessages = function () { - clearMessagePane(); - - for (var i = 0; i < messages.length; i++) { - var msg = messages[i]; - if (messageFilter === null || messageFilter(msg)) { - addMessageText(msg); - } - } - }; - - this.buildAndApplyFilter = function () { - messageFilter = buildMessageFilter(); - - filterMessages(); - - this.logger.removeListener(listenerId); - this.logger.addListener(listenerId, messageFilter, addMessage); - }; - - - var loadMessages = bind(function () { - messages = this.logger.getMessages(); - filterMessages(); - }, this); - - var filterOnEnter = bind(function (event) { - event = event || window.event; - key = event.which || event.keyCode; - if (key == 13) { - this.buildAndApplyFilter(); - } - }, this); - - /* Create the debug pane */ - var style = "display: block; z-index: 1000; left: 0px; bottom: 0px; position: fixed; width: 100%; background-color: white; font: " + this.logFont; - if (inline) { - style += "; height: 10em; border-top: 2px solid black"; - } else { - style += "; height: 100%;"; - } - debugPane.style.cssText = style; - - if (!existing_pane) { - doc.body.appendChild(debugPane); - } - - /* Create the filter fields */ - style = {"cssText": "width: 33%; display: inline; font: " + this.logFont}; - - updatetree(levelFilterField, { - "value": "FATAL|ERROR|WARNING|INFO|DEBUG", - "onkeypress": filterOnEnter, - "style": style - }); - debugPane.appendChild(levelFilterField); - - updatetree(infoFilterField, { - "value": ".*", - "onkeypress": filterOnEnter, - "style": style - }); - debugPane.appendChild(infoFilterField); - - /* Create the buttons */ - style = "width: 8%; display:inline; font: " + this.logFont; - - filterButton.appendChild(doc.createTextNode("Filter")); - filterButton.onclick = bind("buildAndApplyFilter", this); - filterButton.style.cssText = style; - debugPane.appendChild(filterButton); - - loadButton.appendChild(doc.createTextNode("Load")); - loadButton.onclick = loadMessages; - loadButton.style.cssText = style; - debugPane.appendChild(loadButton); - - clearButton.appendChild(doc.createTextNode("Clear")); - clearButton.onclick = clearMessages; - clearButton.style.cssText = style; - debugPane.appendChild(clearButton); - - closeButton.appendChild(doc.createTextNode("Close")); - closeButton.onclick = closePane; - closeButton.style.cssText = style; - debugPane.appendChild(closeButton); - - /* Create the logging pane */ - logPaneArea.style.cssText = "overflow: auto; width: 100%"; - logPane.style.cssText = "width: 100%; height: " + (inline ? "8em" : "100%"); - - logPaneArea.appendChild(logPane); - debugPane.appendChild(logPaneArea); - - this.buildAndApplyFilter(); - loadMessages(); - - if (inline) { - this.win = undefined; - } else { - this.win = win; - } - this.inline = inline; - this.closePane = closePane; - this.closed = false; - - return this; -}; - -MochiKit.LoggingPane.LoggingPane.prototype = { - "logFont": "8pt Verdana,sans-serif", - "colorTable": { - "ERROR": "red", - "FATAL": "darkred", - "WARNING": "blue", - "INFO": "black", - "DEBUG": "green" - } -}; - - -MochiKit.LoggingPane.EXPORT_OK = [ - "LoggingPane" -]; - -MochiKit.LoggingPane.EXPORT = [ - "createLoggingPane" -]; - -MochiKit.LoggingPane.__new__ = function () { - this.EXPORT_TAGS = { - ":common": this.EXPORT, - ":all": MochiKit.Base.concat(this.EXPORT, this.EXPORT_OK) - }; - - MochiKit.Base.nameFunctions(this); - - MochiKit.LoggingPane._loggingPane = null; - -}; - -MochiKit.LoggingPane.__new__(); - -MochiKit.Base._exportSymbols(this, MochiKit.LoggingPane); diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/MochiKit.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/MochiKit.js deleted file mode 100644 index 2b8d6991b..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/MochiKit.js +++ /dev/null @@ -1,149 +0,0 @@ -/*** - -MochiKit.MochiKit 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ - -if (typeof(MochiKit) == 'undefined') { - MochiKit = {}; -} - -if (typeof(MochiKit.MochiKit) == 'undefined') { - MochiKit.MochiKit = {}; -} - -MochiKit.MochiKit.NAME = "MochiKit.MochiKit"; -MochiKit.MochiKit.VERSION = "1.4"; -MochiKit.MochiKit.__repr__ = function () { - return "[" + this.NAME + " " + this.VERSION + "]"; -}; - -MochiKit.MochiKit.toString = function () { - return this.__repr__(); -}; - -MochiKit.MochiKit.SUBMODULES = [ - "Base", - "Iter", - "Logging", - "DateTime", - "Format", - "Async", - "DOM", - "Style", - "LoggingPane", - "Color", - "Signal", - "Visual" -]; - -if (typeof(JSAN) != 'undefined' || typeof(dojo) != 'undefined') { - if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.MochiKit'); - dojo.require("MochiKit.*"); - } - if (typeof(JSAN) != 'undefined') { - (function (lst) { - for (var i = 0; i < lst.length; i++) { - JSAN.use("MochiKit." + lst[i], []); - } - })(MochiKit.MochiKit.SUBMODULES); - } - (function () { - var extend = MochiKit.Base.extend; - var self = MochiKit.MochiKit; - var modules = self.SUBMODULES; - var EXPORT = []; - var EXPORT_OK = []; - var EXPORT_TAGS = {}; - var i, k, m, all; - for (i = 0; i < modules.length; i++) { - m = MochiKit[modules[i]]; - extend(EXPORT, m.EXPORT); - extend(EXPORT_OK, m.EXPORT_OK); - for (k in m.EXPORT_TAGS) { - EXPORT_TAGS[k] = extend(EXPORT_TAGS[k], m.EXPORT_TAGS[k]); - } - all = m.EXPORT_TAGS[":all"]; - if (!all) { - all = extend(null, m.EXPORT, m.EXPORT_OK); - } - var j; - for (j = 0; j < all.length; j++) { - k = all[j]; - self[k] = m[k]; - } - } - self.EXPORT = EXPORT; - self.EXPORT_OK = EXPORT_OK; - self.EXPORT_TAGS = EXPORT_TAGS; - }()); - -} else { - if (typeof(MochiKit.__compat__) == 'undefined') { - MochiKit.__compat__ = true; - } - (function () { - if (typeof(document) == "undefined") { - return; - } - var scripts = document.getElementsByTagName("script"); - var kXULNSURI = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; - var base = null; - var baseElem = null; - var allScripts = {}; - var i; - for (i = 0; i < scripts.length; i++) { - var src = scripts[i].getAttribute("src"); - if (!src) { - continue; - } - allScripts[src] = true; - if (src.match(/MochiKit.js$/)) { - base = src.substring(0, src.lastIndexOf('MochiKit.js')); - baseElem = scripts[i]; - } - } - if (base === null) { - return; - } - var modules = MochiKit.MochiKit.SUBMODULES; - for (var i = 0; i < modules.length; i++) { - if (MochiKit[modules[i]]) { - continue; - } - var uri = base + modules[i] + '.js'; - if (uri in allScripts) { - continue; - } - if (document.documentElement && - document.documentElement.namespaceURI == kXULNSURI) { - // XUL - var s = document.createElementNS(kXULNSURI, 'script'); - s.setAttribute("id", "MochiKit_" + base + modules[i]); - s.setAttribute("src", uri); - s.setAttribute("type", "application/x-javascript"); - baseElem.parentNode.appendChild(s); - } else { - // HTML - /* - DOM can not be used here because Safari does - deferred loading of scripts unless they are - in the document or inserted with document.write - - This is not XHTML compliant. If you want XHTML - compliance then you must use the packed version of MochiKit - or include each script individually (basically unroll - these document.write calls into your XHTML source) - - */ - document.write(''); - } - }; - })(); -} diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/MockDOM.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/MockDOM.js deleted file mode 100644 index abab10fe5..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/MockDOM.js +++ /dev/null @@ -1,88 +0,0 @@ -/*** - -MochiKit.MockDOM 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ -if (typeof(MochiKit) == "undefined") { - MochiKit = {}; -} - -if (typeof(MochiKit.MockDOM) == "undefined") { - MochiKit.MockDOM = {}; -} - -MochiKit.MockDOM.NAME = "MochiKit.MockDOM"; -MochiKit.MockDOM.VERSION = "1.4"; - -MochiKit.MockDOM.__repr__ = function () { - return "[" + this.NAME + " " + this.VERSION + "]"; -}; - -MochiKit.MockDOM.toString = function () { - return this.__repr__(); -}; - -MochiKit.MockDOM.createDocument = function () { - var doc = new MochiKit.MockDOM.MockElement("DOCUMENT"); - doc.body = doc.createElement("BODY"); - doc.appendChild(doc.body); - return doc; -}; - -MochiKit.MockDOM.MockElement = function (name, data) { - this.nodeName = name.toUpperCase(); - if (typeof(data) == "string") { - this.nodeValue = data; - this.nodeType = 3; - } else { - this.nodeType = 1; - this.childNodes = []; - } - if (name.substring(0, 1) == "<") { - var nameattr = name.substring( - name.indexOf('"') + 1, name.lastIndexOf('"')); - name = name.substring(1, name.indexOf(" ")); - this.nodeName = name.toUpperCase(); - this.setAttribute("name", nameattr); - } -}; - -MochiKit.MockDOM.MockElement.prototype = { - createElement: function (nodeName) { - return new MochiKit.MockDOM.MockElement(nodeName); - }, - createTextNode: function (text) { - return new MochiKit.MockDOM.MockElement("text", text); - }, - setAttribute: function (name, value) { - this[name] = value; - }, - getAttribute: function (name) { - return this[name]; - }, - appendChild: function (child) { - this.childNodes.push(child); - }, - toString: function () { - return "MockElement(" + this.nodeName + ")"; - } -}; - -MochiKit.MockDOM.EXPORT_OK = [ - "mockElement", - "createDocument" -]; - -MochiKit.MockDOM.EXPORT = [ - "document" -]; - -MochiKit.MockDOM.__new__ = function () { - this.document = this.createDocument(); -}; - -MochiKit.MockDOM.__new__(); diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/New.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/New.js deleted file mode 100644 index 97bfe8a60..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/New.js +++ /dev/null @@ -1,365 +0,0 @@ - -MochiKit.Base.update(MochiKit.Base, { - isIE: function () { - return /MSIE/.test(navigator.userAgent); - }, - - isGecko: function () { - return /Gecko/.test(navigator.userAgent); - }, - - isKHTML: function () { - return /Konqueror|Safari|KHTML/.test(navigator.userAgent) - }, - - isSafari: function () { - return /AppleWebKit'/.test(navigator.appVersion); - }, - - isOpera: function () { - return /Opera/.test(navigator.userAgent); - } -}); - -MochiKit.Base.update(MochiKit.DOM, { - getStyle: function (element, style) { - element = MochiKit.DOM.getElement(element); - var value = element.style[MochiKit.Base.camelize(style)]; - if (!value) { - if (document.defaultView && document.defaultView.getComputedStyle) { - var css = document.defaultView.getComputedStyle(element, null); - value = css ? css.getPropertyValue(style) : null; - } else if (element.currentStyle) { - value = element.currentStyle[MochiKit.Base.camelize(style)]; - } - } - - if (MochiKit.Base.isOpera() && (MochiKit.Base.find(['left', 'top', 'right', 'bottom'], style))) { - if (MochiKit.DOM.getStyle(element, 'position') == 'static') { - value = 'auto'; - } - } - - return value == 'auto' ? null : value; - }, - - setStyle: function (element, style) { - element = MochiKit.DOM.getElement(element); - for (var name in style) { - element.style[MochiKit.Base.camelize(name)] = style[name]; - } - }, - - getOpacity: function (element) { - var opacity; - if (opacity = MochiKit.DOM.getStyle(element, 'opacity')) { - return parseFloat(opacity); - } - if (opacity = (MochiKit.DOM.getStyle(element, 'filter') || '').match(/alpha\(opacity=(.*)\)/)) { - if (opacity[1]) { - return parseFloat(opacity[1]) / 100; - } - } - return 1.0; - }, - - getInlineOpacity: function (element) { - return MochiKit.DOM.getElement(element).style.opacity || ''; - }, - - setOpacity: function (element, value) { - element = MochiKit.DOM.getElement(element); - if (value == 1) { - var cssText = element.style.cssText; - if(MochiKit.Base.isIE()) - cssText = cssText.replace(/filter: ?alpha\([^\)]*\);?/gi, ''); - - element.style.cssText = cssText.replace(/opacity: ?\d\.?\d*/gi, ''); - } else { - if (value < 0.00001) { - value = 0; - } - MochiKit.DOM.setStyle(element, {opacity: value}); - if (MochiKit.Base.isIE()) { - MochiKit.DOM.setStyle(element, - {filter: MochiKit.DOM.getStyle(element, 'filter').replace(/alpha\([^\)]*\)/gi, '') + 'alpha(opacity=' + value * 100 + ')' }); - } - } - }, - - isVisible: function (element) { - return MochiKit.DOM.getElement(element).style.display != 'none'; - }, - - makeClipping: function (element) { - element = MochiKit.DOM.getElement(element); - if (element._overflow) { - return; - } - element._overflow = element.style.overflow; - if ((MochiKit.DOM.getStyle(element, 'overflow') || 'visible') != 'hidden') { - element.style.overflow = 'hidden'; - } - }, - - undoClipping: function (element) { - element = MochiKit.DOM.getElement(element); - if (!element._overflow) { - return; - } - element.style.overflow = element._overflow; - element._overflow = undefined; - }, - - makePositioned: function (element) { - element = MochiKit.DOM.getElement(element); - /*if (!element.style) { - alert(element); - }*/ - var pos = MochiKit.DOM.getStyle(element, 'position'); - if ((pos == 'static' || !pos) && !element._madePositioned) { - element._madePositioned = true; - element.style.position = 'relative'; - // Opera returns the offset relative to the positioning context, - // when an element is position relative but top and left have - // not been defined - if (MochiKit.Base.isOpera()) { - element.style.top = 0; - element.style.left = 0; - } - } - }, - - undoPositioned: function (element) { - element = MochiKit.DOM.getElement(element); - if (element._madePositioned) { - element._madePositioned = undefined; - element.style.position = element.style.top = element.style.left = element.style.bottom = element.style.right = ''; - } - }, - - getFirstElementByTagAndClassName: function (tagName, className, - /* optional */parent) { - var self = MochiKit.DOM; - if (typeof(tagName) == 'undefined' || tagName === null) { - tagName = '*'; - } - if (typeof(parent) == 'undefined' || parent === null) { - parent = self._document; - } - parent = self.getElement(parent); - var children = (parent.getElementsByTagName(tagName) - || self._document.all); - if (typeof(className) == 'undefined' || className === null) { - return MochiKit.Base.extend(null, children); - } - - for (var i = 0; i < children.length; i++) { - var child = children[i]; - var classNames = child.className.split(' '); - for (var j = 0; j < classNames.length; j++) { - if (classNames[j] == className) { - return child; - } - } - } - }, - - isParent: function (child, element) { - if (!child.parentNode || child == element) { - return false; - } - - if (child.parentNode == element) { - return true; - } - - return MochiKit.DOM.isParent(child.parentNode, element); - } -}); - -MochiKit.Position = { - // set to true if needed, warning: firefox performance problems - // NOT neeeded for page scrolling, only if draggable contained in - // scrollable elements - includeScrollOffsets: false, - - prepare: function () { - var deltaX = window.pageXOffset - || document.documentElement.scrollLeft - || document.body.scrollLeft - || 0; - var deltaY = window.pageYOffset - || document.documentElement.scrollTop - || document.body.scrollTop - || 0; - this.windowOffset = new MochiKit.Style.Coordinates(deltaX, deltaY); - }, - - cumulativeOffset: function (element) { - var valueT = 0; - var valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - element = element.offsetParent; - } while (element); - return new MochiKit.Style.Coordinates(valueL, valueT); - }, - - realOffset: function (element) { - var valueT = 0; - var valueL = 0; - do { - valueT += element.scrollTop || 0; - valueL += element.scrollLeft || 0; - element = element.parentNode; - } while (element); - return new MochiKit.Style.Coordinates(valueL, valueT); - }, - - within: function (element, x, y) { - if (this.includeScrollOffsets) { - return this.withinIncludingScrolloffsets(element, x, y); - } - this.xcomp = x; - this.ycomp = y; - this.offset = this.cumulativeOffset(element); - if (element.style.position == "fixed") { - this.offset.x += this.windowOffset.x; - this.offset.y += this.windowOffset.y; - } - - return (y >= this.offset.y && - y < this.offset.y + element.offsetHeight && - x >= this.offset.x && - x < this.offset.x + element.offsetWidth); - }, - - withinIncludingScrolloffsets: function (element, x, y) { - var offsetcache = this.realOffset(element); - - this.xcomp = x + offsetcache.x - this.windowOffset.x; - this.ycomp = y + offsetcache.y - this.windowOffset.y; - this.offset = this.cumulativeOffset(element); - - return (this.ycomp >= this.offset.y && - this.ycomp < this.offset.y + element.offsetHeight && - this.xcomp >= this.offset.x && - this.xcomp < this.offset.x + element.offsetWidth); - }, - - // within must be called directly before - overlap: function (mode, element) { - if (!mode) { - return 0; - } - if (mode == 'vertical') { - return ((this.offset.y + element.offsetHeight) - this.ycomp) / - element.offsetHeight; - } - if (mode == 'horizontal') { - return ((this.offset.x + element.offsetWidth) - this.xcomp) / - element.offsetWidth; - } - }, - - absolutize: function (element) { - element = MochiKit.DOM.getElement(element); - if (element.style.position == 'absolute') { - return; - } - MochiKit.Position.prepare(); - - var offsets = MochiKit.Position.positionedOffset(element); - var width = element.clientWidth; - var height = element.clientHeight; - - var oldStyle = { - 'position': element.style.position, - 'left': offsets.x - parseFloat(element.style.left || 0), - 'top': offsets.y - parseFloat(element.style.top || 0), - 'width': element.style.width, - 'height': element.style.height - }; - - element.style.position = 'absolute'; - element.style.top = offsets.y + 'px'; - element.style.left = offsets.x + 'px'; - element.style.width = width + 'px'; - element.style.height = height + 'px'; - - return oldStyle; - }, - - positionedOffset: function (element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - element = element.offsetParent; - if (element) { - p = MochiKit.DOM.getStyle(element, 'position'); - if (p == 'relative' || p == 'absolute') { - break; - } - } - } while (element); - return new MochiKit.Style.Coordinates(valueL, valueT); - }, - - relativize: function (element, oldPos) { - element = MochiKit.DOM.getElement(element); - if (element.style.position == 'relative') { - return; - } - MochiKit.Position.prepare(); - - var top = parseFloat(element.style.top || 0) - - (oldPos['top'] || 0); - var left = parseFloat(element.style.left || 0) - - (oldPos['left'] || 0); - - element.style.position = oldPos['position']; - element.style.top = top + 'px'; - element.style.left = left + 'px'; - element.style.width = oldPos['width']; - element.style.height = oldPos['height']; - }, - - clone: function (source, target) { - source = MochiKit.DOM.getElement(source); - target = MochiKit.DOM.getElement(target); - target.style.position = 'absolute'; - var offsets = this.cumulativeOffset(source); - target.style.top = offsets.y + 'px'; - target.style.left = offsets.x + 'px'; - target.style.width = source.offsetWidth + 'px'; - target.style.height = source.offsetHeight + 'px'; - }, - - page: function (forElement) { - var valueT = 0; - var valueL = 0; - - var element = forElement; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - - // Safari fix - if (element.offsetParent == document.body && MochiKit.DOM.getStyle(element, 'position') == 'absolute') { - break; - } - } while (element = element.offsetParent); - - element = forElement; - do { - valueT -= element.scrollTop || 0; - valueL -= element.scrollLeft || 0; - } while (element = element.parentNode); - - return new MochiKit.Style.Coordinates(valueL, valueT); - } -}; - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Signal.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Signal.js deleted file mode 100644 index 192839a1c..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Signal.js +++ /dev/null @@ -1,712 +0,0 @@ -/*** - -MochiKit.Signal 1.4 - -See for documentation, downloads, license, etc. - -(c) 2006 Jonathan Gardner, Beau Hartshorne, Bob Ippolito. All rights Reserved. - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.Signal'); - dojo.require('MochiKit.Base'); - dojo.require('MochiKit.DOM'); - dojo.require('MochiKit.Style'); -} -if (typeof(JSAN) != 'undefined') { - JSAN.use('MochiKit.Base', []); - JSAN.use('MochiKit.DOM', []); -} - -try { - if (typeof(MochiKit.Base) == 'undefined') { - throw ''; - } -} catch (e) { - throw 'MochiKit.Signal depends on MochiKit.Base!'; -} - -try { - if (typeof(MochiKit.DOM) == 'undefined') { - throw ''; - } -} catch (e) { - throw 'MochiKit.Signal depends on MochiKit.DOM!'; -} - -try { - if (typeof(MochiKit.Style) == 'undefined') { - throw ''; - } -} catch (e) { - throw 'MochiKit.Signal depends on MochiKit.Style!'; -} - -if (typeof(MochiKit.Signal) == 'undefined') { - MochiKit.Signal = {}; -} - -MochiKit.Signal.NAME = 'MochiKit.Signal'; -MochiKit.Signal.VERSION = '1.4'; - -MochiKit.Signal._observers = []; - -MochiKit.Signal.Event = function (src, e) { - this._event = e || window.event; - this._src = src; -}; - -MochiKit.Base.update(MochiKit.Signal.Event.prototype, { - - __repr__: function() { - var repr = MochiKit.Base.repr; - var str = '{event(): ' + repr(this.event()) + - ', src(): ' + repr(this.src()) + - ', type(): ' + repr(this.type()) + - ', target(): ' + repr(this.target()) + - ', modifier(): ' + '{alt: ' + repr(this.modifier().alt) + - ', ctrl: ' + repr(this.modifier().ctrl) + - ', meta: ' + repr(this.modifier().meta) + - ', shift: ' + repr(this.modifier().shift) + - ', any: ' + repr(this.modifier().any) + '}'; - - if (this.type() && this.type().indexOf('key') === 0) { - str += ', key(): {code: ' + repr(this.key().code) + - ', string: ' + repr(this.key().string) + '}'; - } - - if (this.type() && ( - this.type().indexOf('mouse') === 0 || - this.type().indexOf('click') != -1 || - this.type() == 'contextmenu')) { - - str += ', mouse(): {page: ' + repr(this.mouse().page) + - ', client: ' + repr(this.mouse().client); - - if (this.type() != 'mousemove') { - str += ', button: {left: ' + repr(this.mouse().button.left) + - ', middle: ' + repr(this.mouse().button.middle) + - ', right: ' + repr(this.mouse().button.right) + '}}'; - } else { - str += '}'; - } - } - if (this.type() == 'mouseover' || this.type() == 'mouseout') { - str += ', relatedTarget(): ' + repr(this.relatedTarget()); - } - str += '}'; - return str; - }, - - toString: function () { - return this.__repr__(); - }, - - src: function () { - return this._src; - }, - - event: function () { - return this._event; - }, - - type: function () { - return this._event.type || undefined; - }, - - target: function () { - return this._event.target || this._event.srcElement; - }, - - _relatedTarget: null, - relatedTarget: function () { - if (this._relatedTarget !== null) { - return this._relatedTarget; - } - - var elem = null; - if (this.type() == 'mouseover') { - elem = (this._event.relatedTarget || - this._event.fromElement); - } else if (this.type() == 'mouseout') { - elem = (this._event.relatedTarget || - this._event.toElement); - } - if (elem !== null) { - this._relatedTarget = elem; - return elem; - } - - return undefined; - }, - - _modifier: null, - modifier: function () { - if (this._modifier !== null) { - return this._modifier; - } - var m = {}; - m.alt = this._event.altKey; - m.ctrl = this._event.ctrlKey; - m.meta = this._event.metaKey || false; // IE and Opera punt here - m.shift = this._event.shiftKey; - m.any = m.alt || m.ctrl || m.shift || m.meta; - this._modifier = m; - return m; - }, - - _key: null, - key: function () { - if (this._key !== null) { - return this._key; - } - var k = {}; - if (this.type() && this.type().indexOf('key') === 0) { - - /* - - If you're looking for a special key, look for it in keydown or - keyup, but never keypress. If you're looking for a Unicode - chracter, look for it with keypress, but never keyup or - keydown. - - Notes: - - FF key event behavior: - key event charCode keyCode - DOWN ku,kd 0 40 - DOWN kp 0 40 - ESC ku,kd 0 27 - ESC kp 0 27 - a ku,kd 0 65 - a kp 97 0 - shift+a ku,kd 0 65 - shift+a kp 65 0 - 1 ku,kd 0 49 - 1 kp 49 0 - shift+1 ku,kd 0 0 - shift+1 kp 33 0 - - IE key event behavior: - (IE doesn't fire keypress events for special keys.) - key event keyCode - DOWN ku,kd 40 - DOWN kp undefined - ESC ku,kd 27 - ESC kp 27 - a ku,kd 65 - a kp 97 - shift+a ku,kd 65 - shift+a kp 65 - 1 ku,kd 49 - 1 kp 49 - shift+1 ku,kd 49 - shift+1 kp 33 - - Safari key event behavior: - (Safari sets charCode and keyCode to something crazy for - special keys.) - key event charCode keyCode - DOWN ku,kd 63233 40 - DOWN kp 63233 63233 - ESC ku,kd 27 27 - ESC kp 27 27 - a ku,kd 97 65 - a kp 97 97 - shift+a ku,kd 65 65 - shift+a kp 65 65 - 1 ku,kd 49 49 - 1 kp 49 49 - shift+1 ku,kd 33 49 - shift+1 kp 33 33 - - */ - - /* look for special keys here */ - if (this.type() == 'keydown' || this.type() == 'keyup') { - k.code = this._event.keyCode; - k.string = (MochiKit.Signal._specialKeys[k.code] || - 'KEY_UNKNOWN'); - this._key = k; - return k; - - /* look for characters here */ - } else if (this.type() == 'keypress') { - - /* - - Special key behavior: - - IE: does not fire keypress events for special keys - FF: sets charCode to 0, and sets the correct keyCode - Safari: sets keyCode and charCode to something stupid - - */ - - k.code = 0; - k.string = ''; - - if (typeof(this._event.charCode) != 'undefined' && - this._event.charCode !== 0 && - !MochiKit.Signal._specialMacKeys[this._event.charCode]) { - k.code = this._event.charCode; - k.string = String.fromCharCode(k.code); - } else if (this._event.keyCode && - typeof(this._event.charCode) == 'undefined') { // IE - k.code = this._event.keyCode; - k.string = String.fromCharCode(k.code); - } - - this._key = k; - return k; - } - } - return undefined; - }, - - _mouse: null, - mouse: function () { - if (this._mouse !== null) { - return this._mouse; - } - - var m = {}; - var e = this._event; - - if (this.type() && ( - this.type().indexOf('mouse') === 0 || - this.type().indexOf('click') != -1 || - this.type() == 'contextmenu')) { - - m.client = new MochiKit.Style.Coordinates(0, 0); - if (e.clientX || e.clientY) { - m.client.x = (!e.clientX || e.clientX < 0) ? 0 : e.clientX; - m.client.y = (!e.clientY || e.clientY < 0) ? 0 : e.clientY; - } - - m.page = new MochiKit.Style.Coordinates(0, 0); - if (e.pageX || e.pageY) { - m.page.x = (!e.pageX || e.pageX < 0) ? 0 : e.pageX; - m.page.y = (!e.pageY || e.pageY < 0) ? 0 : e.pageY; - } else { - /* - - The IE shortcut can be off by two. We fix it. See: - http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/getboundingclientrect.asp - - This is similar to the method used in - MochiKit.Style.getElementPosition(). - - */ - var de = MochiKit.DOM._document.documentElement; - var b = MochiKit.DOM._document.body; - - m.page.x = e.clientX + - (de.scrollLeft || b.scrollLeft) - - (de.clientLeft || 0); - - m.page.y = e.clientY + - (de.scrollTop || b.scrollTop) - - (de.clientTop || 0); - - } - if (this.type() != 'mousemove') { - m.button = {}; - m.button.left = false; - m.button.right = false; - m.button.middle = false; - - /* we could check e.button, but which is more consistent */ - if (e.which) { - m.button.left = (e.which == 1); - m.button.middle = (e.which == 2); - m.button.right = (e.which == 3); - - /* - - Mac browsers and right click: - - - Safari doesn't fire any click events on a right - click: - http://bugzilla.opendarwin.org/show_bug.cgi?id=6595 - - - Firefox fires the event, and sets ctrlKey = true - - - Opera fires the event, and sets metaKey = true - - oncontextmenu is fired on right clicks between - browsers and across platforms. - - */ - - } else { - m.button.left = !!(e.button & 1); - m.button.right = !!(e.button & 2); - m.button.middle = !!(e.button & 4); - } - } - this._mouse = m; - return m; - } - return undefined; - }, - - stop: function () { - this.stopPropagation(); - this.preventDefault(); - }, - - stopPropagation: function () { - if (this._event.stopPropagation) { - this._event.stopPropagation(); - } else { - this._event.cancelBubble = true; - } - }, - - preventDefault: function () { - if (this._event.preventDefault) { - this._event.preventDefault(); - } else if (this._confirmUnload === null) { - this._event.returnValue = false; - } - }, - - _confirmUnload: null, - confirmUnload: function (msg) { - if (this.type() == 'beforeunload') { - this._confirmUnload = msg; - this._event.returnValue = msg; - } - } -}); - -/* Safari sets keyCode to these special values onkeypress. */ -MochiKit.Signal._specialMacKeys = { - 3: 'KEY_ENTER', - 63289: 'KEY_NUM_PAD_CLEAR', - 63276: 'KEY_PAGE_UP', - 63277: 'KEY_PAGE_DOWN', - 63275: 'KEY_END', - 63273: 'KEY_HOME', - 63234: 'KEY_ARROW_LEFT', - 63232: 'KEY_ARROW_UP', - 63235: 'KEY_ARROW_RIGHT', - 63233: 'KEY_ARROW_DOWN', - 63302: 'KEY_INSERT', - 63272: 'KEY_DELETE' -}; - -/* for KEY_F1 - KEY_F12 */ -for (i = 63236; i <= 63242; i++) { - MochiKit.Signal._specialMacKeys[i] = 'KEY_F' + (i - 63236 + 1); // no F0 -} - -/* Standard keyboard key codes. */ -MochiKit.Signal._specialKeys = { - 8: 'KEY_BACKSPACE', - 9: 'KEY_TAB', - 12: 'KEY_NUM_PAD_CLEAR', // weird, for Safari and Mac FF only - 13: 'KEY_ENTER', - 16: 'KEY_SHIFT', - 17: 'KEY_CTRL', - 18: 'KEY_ALT', - 19: 'KEY_PAUSE', - 20: 'KEY_CAPS_LOCK', - 27: 'KEY_ESCAPE', - 32: 'KEY_SPACEBAR', - 33: 'KEY_PAGE_UP', - 34: 'KEY_PAGE_DOWN', - 35: 'KEY_END', - 36: 'KEY_HOME', - 37: 'KEY_ARROW_LEFT', - 38: 'KEY_ARROW_UP', - 39: 'KEY_ARROW_RIGHT', - 40: 'KEY_ARROW_DOWN', - 44: 'KEY_PRINT_SCREEN', - 45: 'KEY_INSERT', - 46: 'KEY_DELETE', - 59: 'KEY_SEMICOLON', // weird, for Safari and IE only - 91: 'KEY_WINDOWS_LEFT', - 92: 'KEY_WINDOWS_RIGHT', - 93: 'KEY_SELECT', - 106: 'KEY_NUM_PAD_ASTERISK', - 107: 'KEY_NUM_PAD_PLUS_SIGN', - 109: 'KEY_NUM_PAD_HYPHEN-MINUS', - 110: 'KEY_NUM_PAD_FULL_STOP', - 111: 'KEY_NUM_PAD_SOLIDUS', - 144: 'KEY_NUM_LOCK', - 145: 'KEY_SCROLL_LOCK', - 186: 'KEY_SEMICOLON', - 187: 'KEY_EQUALS_SIGN', - 188: 'KEY_COMMA', - 189: 'KEY_HYPHEN-MINUS', - 190: 'KEY_FULL_STOP', - 191: 'KEY_SOLIDUS', - 192: 'KEY_GRAVE_ACCENT', - 219: 'KEY_LEFT_SQUARE_BRACKET', - 220: 'KEY_REVERSE_SOLIDUS', - 221: 'KEY_RIGHT_SQUARE_BRACKET', - 222: 'KEY_APOSTROPHE' - // undefined: 'KEY_UNKNOWN' -}; - -/* for KEY_0 - KEY_9 */ -for (var i = 48; i <= 57; i++) { - MochiKit.Signal._specialKeys[i] = 'KEY_' + (i - 48); -} - -/* for KEY_A - KEY_Z */ -for (i = 65; i <= 90; i++) { - MochiKit.Signal._specialKeys[i] = 'KEY_' + String.fromCharCode(i); -} - -/* for KEY_NUM_PAD_0 - KEY_NUM_PAD_9 */ -for (i = 96; i <= 105; i++) { - MochiKit.Signal._specialKeys[i] = 'KEY_NUM_PAD_' + (i - 96); -} - -/* for KEY_F1 - KEY_F12 */ -for (i = 112; i <= 123; i++) { - MochiKit.Signal._specialKeys[i] = 'KEY_F' + (i - 112 + 1); // no F0 -} - -MochiKit.Base.update(MochiKit.Signal, { - - __repr__: function () { - return '[' + this.NAME + ' ' + this.VERSION + ']'; - }, - - toString: function () { - return this.__repr__(); - }, - - _unloadCache: function () { - var self = MochiKit.Signal; - var observers = self._observers; - - for (var i = 0; i < observers.length; i++) { - self._disconnect(observers[i]); - } - - delete self._observers; - - try { - window.onload = undefined; - } catch(e) { - // pass - } - - try { - window.onunload = undefined; - } catch(e) { - // pass - } - }, - - _listener: function (src, func, obj, isDOM) { - var E = MochiKit.Signal.Event; - if (!isDOM) { - return MochiKit.Base.bind(func, obj); - } - obj = obj || src; - if (typeof(func) == "string") { - return function (nativeEvent) { - obj[func].apply(obj, [new E(src, nativeEvent)]); - }; - } else { - return function (nativeEvent) { - func.apply(obj, [new E(src, nativeEvent)]); - }; - } - }, - - connect: function (src, sig, objOrFunc/* optional */, funcOrStr) { - src = MochiKit.DOM.getElement(src); - var self = MochiKit.Signal; - - if (typeof(sig) != 'string') { - throw new Error("'sig' must be a string"); - } - - var obj = null; - var func = null; - if (typeof(funcOrStr) != 'undefined') { - obj = objOrFunc; - func = funcOrStr; - if (typeof(funcOrStr) == 'string') { - if (typeof(objOrFunc[funcOrStr]) != "function") { - throw new Error("'funcOrStr' must be a function on 'objOrFunc'"); - } - } else if (typeof(funcOrStr) != 'function') { - throw new Error("'funcOrStr' must be a function or string"); - } - } else if (typeof(objOrFunc) != "function") { - throw new Error("'objOrFunc' must be a function if 'funcOrStr' is not given"); - } else { - func = objOrFunc; - } - if (typeof(obj) == 'undefined' || obj === null) { - obj = src; - } - - var isDOM = !!(src.addEventListener || src.attachEvent); - var listener = self._listener(src, func, obj, isDOM); - - if (src.addEventListener) { - src.addEventListener(sig.substr(2), listener, false); - } else if (src.attachEvent) { - src.attachEvent(sig, listener); // useCapture unsupported - } - - var ident = [src, sig, listener, isDOM, objOrFunc, funcOrStr]; - self._observers.push(ident); - - - return ident; - }, - - _disconnect: function (ident) { - // check isDOM - if (!ident[3]) { return; } - var src = ident[0]; - var sig = ident[1]; - var listener = ident[2]; - if (src.removeEventListener) { - src.removeEventListener(sig.substr(2), listener, false); - } else if (src.detachEvent) { - src.detachEvent(sig, listener); // useCapture unsupported - } else { - throw new Error("'src' must be a DOM element"); - } - }, - - disconnect: function (ident) { - var self = MochiKit.Signal; - var observers = self._observers; - var m = MochiKit.Base; - if (arguments.length > 1) { - // compatibility API - var src = MochiKit.DOM.getElement(arguments[0]); - var sig = arguments[1]; - var obj = arguments[2]; - var func = arguments[3]; - for (var i = observers.length - 1; i >= 0; i--) { - var o = observers[i]; - if (o[0] === src && o[1] === sig && o[4] === obj && o[5] === func) { - self._disconnect(o); - observers.splice(i, 1); - return true; - } - } - } else { - var idx = m.findIdentical(observers, ident); - if (idx >= 0) { - self._disconnect(ident); - observers.splice(idx, 1); - return true; - } - } - return false; - }, - - disconnectAll: function(src/* optional */, sig) { - src = MochiKit.DOM.getElement(src); - var m = MochiKit.Base; - var signals = m.flattenArguments(m.extend(null, arguments, 1)); - var self = MochiKit.Signal; - var disconnect = self._disconnect; - var observers = self._observers; - if (signals.length === 0) { - // disconnect all - for (var i = observers.length - 1; i >= 0; i--) { - var ident = observers[i]; - if (ident[0] === src) { - disconnect(ident); - observers.splice(i, 1); - } - } - } else { - var sigs = {}; - for (var i = 0; i < signals.length; i++) { - sigs[signals[i]] = true; - } - for (var i = observers.length - 1; i >= 0; i--) { - var ident = observers[i]; - if (ident[0] === src && ident[1] in sigs) { - disconnect(ident); - observers.splice(i, 1); - } - } - } - - }, - - signal: function (src, sig) { - var observers = MochiKit.Signal._observers; - src = MochiKit.DOM.getElement(src); - var args = MochiKit.Base.extend(null, arguments, 2); - var errors = []; - for (var i = 0; i < observers.length; i++) { - var ident = observers[i]; - if (ident[0] === src && ident[1] === sig) { - try { - ident[2].apply(src, args); - } catch (e) { - errors.push(e); - } - } - } - if (errors.length == 1) { - throw errors[0]; - } else if (errors.length > 1) { - var e = new Error("Multiple errors thrown in handling 'sig', see errors property"); - e.errors = errors; - throw e; - } - } - -}); - -MochiKit.Signal.EXPORT_OK = []; - -MochiKit.Signal.EXPORT = [ - 'connect', - 'disconnect', - 'signal', - 'disconnectAll' -]; - -MochiKit.Signal.__new__ = function (win) { - var m = MochiKit.Base; - this._document = document; - this._window = win; - - try { - this.connect(window, 'onunload', this._unloadCache); - } catch (e) { - // pass: might not be a browser - } - - this.EXPORT_TAGS = { - ':common': this.EXPORT, - ':all': m.concat(this.EXPORT, this.EXPORT_OK) - }; - - m.nameFunctions(this); -}; - -MochiKit.Signal.__new__(this); - -// -// XXX: Internet Explorer blows -// -if (MochiKit.__export__) { - connect = MochiKit.Signal.connect; - disconnect = MochiKit.Signal.disconnect; - disconnectAll = MochiKit.Signal.disconnectAll; - signal = MochiKit.Signal.signal; -} - -MochiKit.Base._exportSymbols(this, MochiKit.Signal); diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Sortable.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Sortable.js deleted file mode 100644 index de70455ce..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Sortable.js +++ /dev/null @@ -1,531 +0,0 @@ -/*** -Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) - Mochi-ized By Thomas Herve (_firstname_@nimail.org) - -See scriptaculous.js for full license. - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.DragAndDrop'); - dojo.require('MochiKit.Base'); - dojo.require('MochiKit.DOM'); - dojo.require('MochiKit.Iter'); -} - -if (typeof(JSAN) != 'undefined') { - JSAN.use("MochiKit.Base", []); - JSAN.use("MochiKit.DOM", []); - JSAN.use("MochiKit.Iter", []); -} - -try { - if (typeof(MochiKit.Base) == 'undefined' || - typeof(MochiKit.DOM) == 'undefined' || - typeof(MochiKit.Iter) == 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.DragAndDrop depends on MochiKit.Base, MochiKit.DOM and MochiKit.Iter!"; -} - -if (typeof(MochiKit.Sortable) == 'undefined') { - MochiKit.Sortable = {}; -} - -MochiKit.Sortable.NAME = 'MochiKit.Sortable'; -MochiKit.Sortable.VERSION = '1.4'; - -MochiKit.Sortable.__repr__ = function () { - return '[' + this.NAME + ' ' + this.VERSION + ']'; -}; - -MochiKit.Sortable.toString = function () { - return this.__repr__(); -}; - -MochiKit.Sortable.EXPORT = [ - "SortableObserver" -]; - -MochiKit.DragAndDrop.EXPORT_OK = [ - "Sortable" -]; - -MochiKit.Sortable.SortableObserver = function (element, observer) { - this.__init__(element, observer); -}; - -MochiKit.Sortable.SortableObserver.prototype = { - /*** - - Observe events of drag and drop sortables. - - ***/ - __init__: function (element, observer) { - this.element = MochiKit.DOM.getElement(element); - this.observer = observer; - this.lastValue = MochiKit.Sortable.Sortable.serialize(this.element); - }, - - onStart: function () { - this.lastValue = MochiKit.Sortable.Sortable.serialize(this.element); - }, - - onEnd: function () { - MochiKit.Sortable.Sortable.unmark(); - if (this.lastValue != MochiKit.Sortable.Sortable.serialize(this.element)) { - this.observer(this.element) - } - } -}; - -MochiKit.Sortable.Sortable = { - /*** - - Manage sortables. Mainly use the create function to add a sortable. - - ***/ - sortables: {}, - - _findRootElement: function (element) { - while (element.tagName != "BODY") { - if (element.id && MochiKit.Sortable.Sortable.sortables[element.id]) { - return element; - } - element = element.parentNode; - } - }, - - options: function (element) { - element = MochiKit.Sortable.Sortable._findRootElement(MochiKit.DOM.getElement(element)); - if (!element) { - return; - } - return MochiKit.Sortable.Sortable.sortables[element.id]; - }, - - destroy: function (element){ - var s = MochiKit.Sortable.Sortable.options(element); - var b = MochiKit.Base; - var d = MochiKit.DragAndDrop; - - if (s) { - d.Draggables.removeObserver(s.element); - b.map(function (dr) { - d.Droppables.remove(dr); - }, s.droppables); - b.map(function (dr) { - dr.destroy(); - }, s.draggables); - - delete MochiKit.Sortable.Sortable.sortables[s.element.id]; - } - }, - - create: function (element, options) { - element = MochiKit.DOM.getElement(element); - var self = MochiKit.Sortable.Sortable; - options = MochiKit.Base.update({ - element: element, - tag: 'li', // assumes li children, override with tag: 'tagname' - dropOnEmpty: false, - tree: false, - treeTag: 'ul', - overlap: 'vertical', // one of 'vertical', 'horizontal' - constraint: 'vertical', // one of 'vertical', 'horizontal', false - // also takes array of elements (or ids); or false - containment: [element], - handle: false, // or a CSS class - only: false, - hoverclass: null, - ghosting: false, - scroll: false, - scrollSensitivity: 20, - scrollSpeed: 15, - format: /^[^_]*_(.*)$/, - onChange: MochiKit.Base.noop, - onUpdate: MochiKit.Base.noop, - accept: null - }, options); - - // clear any old sortable with same element - self.destroy(element); - - // build options for the draggables - var options_for_draggable = { - revert: true, - ghosting: options.ghosting, - scroll: options.scroll, - scrollSensitivity: options.scrollSensitivity, - scrollSpeed: options.scrollSpeed, - constraint: options.constraint, - handle: options.handle - }; - - if (options.starteffect) { - options_for_draggable.starteffect = options.starteffect; - } - - if (options.reverteffect) { - options_for_draggable.reverteffect = options.reverteffect; - } else if (options.ghosting) { - options_for_draggable.reverteffect = function (innerelement) { - innerelement.style.top = 0; - innerelement.style.left = 0; - }; - } - - if (options.endeffect) { - options_for_draggable.endeffect = options.endeffect; - } - - if (options.zindex) { - options_for_draggable.zindex = options.zindex; - } - - // build options for the droppables - var options_for_droppable = { - overlap: options.overlap, - containment: options.containment, - hoverclass: options.hoverclass, - onhover: self.onHover, - tree: options.tree, - accept: options.accept - } - - var options_for_tree = { - onhover: self.onEmptyHover, - overlap: options.overlap, - containment: options.containment, - hoverclass: options.hoverclass, - accept: options.accept - } - - // fix for gecko engine - MochiKit.DOM.removeEmptyTextNodes(element); - - options.draggables = []; - options.droppables = []; - - // drop on empty handling - if (options.dropOnEmpty || options.tree) { - new MochiKit.DragAndDrop.Droppable(element, options_for_tree); - options.droppables.push(element); - } - MochiKit.Base.map(function (e) { - // handles are per-draggable - var handle = options.handle ? - MochiKit.DOM.getFirstElementByTagAndClassName(null, - options.handle, e) : e; - options.draggables.push( - new MochiKit.DragAndDrop.Draggable(e, - MochiKit.Base.update(options_for_draggable, - {handle: handle}))); - new MochiKit.DragAndDrop.Droppable(e, options_for_droppable); - if (options.tree) { - e.treeNode = element; - } - options.droppables.push(e); - }, (self.findElements(element, options) || [])); - - if (options.tree) { - MochiKit.Base.map(function (e) { - new MochiKit.DragAndDrop.Droppable(e, options_for_tree); - e.treeNode = element; - options.droppables.push(e); - }, (self.findTreeElements(element, options) || [])); - } - - // keep reference - self.sortables[element.id] = options; - - // for onupdate - MochiKit.DragAndDrop.Draggables.addObserver( - new MochiKit.Sortable.SortableObserver(element, options.onUpdate)); - }, - - // return all suitable-for-sortable elements in a guaranteed order - findElements: function (element, options) { - return MochiKit.Sortable.Sortable.findChildren( - element, options.only, options.tree ? true : false, options.tag); - }, - - findTreeElements: function (element, options) { - return MochiKit.Sortable.Sortable.findChildren( - element, options.only, options.tree ? true : false, options.treeTag); - }, - - findChildren: function (element, only, recursive, tagName) { - if (!element.hasChildNodes()) { - return null; - } - tagName = tagName.toUpperCase(); - if (only) { - only = MochiKit.Base.flattenArray([only]); - } - var elements = []; - MochiKit.Base.map(function (e) { - if (e.tagName && - e.tagName.toUpperCase() == tagName && - (!only || - MochiKit.Iter.some(only, function (c) { - return MochiKit.DOM.hasElementClass(e, c); - }))) { - elements.push(e); - } - if (recursive) { - var grandchildren = MochiKit.Sortable.Sortable.findChildren(e, only, recursive, tagName); - if (grandchildren && grandchildren.length > 0) { - elements = elements.concat(grandchildren); - } - } - }, element.childNodes); - return elements; - }, - - onHover: function (element, dropon, overlap) { - if (MochiKit.DOM.isParent(dropon, element)) { - return; - } - var self = MochiKit.Sortable.Sortable; - - if (overlap > .33 && overlap < .66 && self.options(dropon).tree) { - return; - } else if (overlap > 0.5) { - self.mark(dropon, 'before'); - if (dropon.previousSibling != element) { - var oldParentNode = element.parentNode; - element.style.visibility = 'hidden'; // fix gecko rendering - dropon.parentNode.insertBefore(element, dropon); - if (dropon.parentNode != oldParentNode) { - self.options(oldParentNode).onChange(element); - } - self.options(dropon.parentNode).onChange(element); - } - } else { - self.mark(dropon, 'after'); - var nextElement = dropon.nextSibling || null; - if (nextElement != element) { - var oldParentNode = element.parentNode; - element.style.visibility = 'hidden'; // fix gecko rendering - dropon.parentNode.insertBefore(element, nextElement); - if (dropon.parentNode != oldParentNode) { - self.options(oldParentNode).onChange(element); - } - self.options(dropon.parentNode).onChange(element); - } - } - }, - - _offsetSize: function (element, type) { - if (type == 'vertical' || type == 'height') { - return element.offsetHeight; - } else { - return element.offsetWidth; - } - }, - - onEmptyHover: function (element, dropon, overlap) { - var oldParentNode = element.parentNode; - var self = MochiKit.Sortable.Sortable; - var droponOptions = self.options(dropon); - - if (!MochiKit.DOM.isParent(dropon, element)) { - var index; - - var children = self.findElements(dropon, {tag: droponOptions.tag, - only: droponOptions.only}); - var child = null; - - if (children) { - var offset = self._offsetSize(dropon, droponOptions.overlap) * (1.0 - overlap); - - for (index = 0; index < children.length; index += 1) { - if (offset - self._offsetSize(children[index], droponOptions.overlap) >= 0) { - offset -= self._offsetSize(children[index], droponOptions.overlap); - } else if (offset - (self._offsetSize (children[index], droponOptions.overlap) / 2) >= 0) { - child = index + 1 < children.length ? children[index + 1] : null; - break; - } else { - child = children[index]; - break; - } - } - } - - dropon.insertBefore(element, child); - - self.options(oldParentNode).onChange(element); - droponOptions.onChange(element); - } - }, - - unmark: function () { - var m = MochiKit.Sortable.Sortable._marker; - if (m) { - MochiKit.Style.hideElement(m); - } - }, - - mark: function (dropon, position) { - // mark on ghosting only - var d = MochiKit.DOM; - var self = MochiKit.Sortable.Sortable; - var sortable = self.options(dropon.parentNode); - if (sortable && !sortable.ghosting) { - return; - } - - if (!self._marker) { - self._marker = d.getElement('dropmarker') || - document.createElement('DIV'); - MochiKit.Style.hideElement(self._marker); - d.addElementClass(self._marker, 'dropmarker'); - self._marker.style.position = 'absolute'; - document.getElementsByTagName('body').item(0).appendChild(self._marker); - } - var offsets = MochiKit.Position.cumulativeOffset(dropon); - self._marker.style.left = offsets.x + 'px'; - self._marker.style.top = offsets.y + 'px'; - - if (position == 'after') { - if (sortable.overlap == 'horizontal') { - self._marker.style.left = (offsets.x + dropon.clientWidth) + 'px'; - } else { - self._marker.style.top = (offsets.y + dropon.clientHeight) + 'px'; - } - } - MochiKit.Style.showElement(self._marker); - }, - - _tree: function (element, options, parent) { - var self = MochiKit.Sortable.Sortable; - var children = self.findElements(element, options) || []; - - for (var i = 0; i < children.length; ++i) { - var match = children[i].id.match(options.format); - - if (!match) { - continue; - } - - var child = { - id: encodeURIComponent(match ? match[1] : null), - element: element, - parent: parent, - children: [], - position: parent.children.length, - container: self._findChildrenElement(children[i], options.treeTag.toUpperCase()) - } - - /* Get the element containing the children and recurse over it */ - if (child.container) { - self._tree(child.container, options, child) - } - - parent.children.push (child); - } - - return parent; - }, - - /* Finds the first element of the given tag type within a parent element. - Used for finding the first LI[ST] within a L[IST]I[TEM].*/ - _findChildrenElement: function (element, containerTag) { - if (element && element.hasChildNodes) { - for (var i = 0; i < element.childNodes.length; ++i) { - if (element.childNodes[i].tagName == containerTag) { - return element.childNodes[i]; - } - } - } - return null; - }, - - tree: function (element, options) { - element = MochiKit.DOM.getElement(element); - var sortableOptions = MochiKit.Sortable.Sortable.options(element); - options = MochiKit.Base.update({ - tag: sortableOptions.tag, - treeTag: sortableOptions.treeTag, - only: sortableOptions.only, - name: element.id, - format: sortableOptions.format - }, options || {}); - - var root = { - id: null, - parent: null, - children: new Array, - container: element, - position: 0 - } - - return MochiKit.Sortable.Sortable._tree(element, options, root); - }, - - setSequence: function (element, newSequence, options) { - var self = MochiKit.Sortable.Sortable; - var b = MochiKit.Base; - element = MochiKit.DOM.getElement(element); - options = b.update(self.options(element), options || {}); - - var nodeMap = {}; - b.map(function (n) { - var m = n.id.match(options.format); - if (m) { - nodeMap[m[1]] = [n, n.parentNode]; - } - n.parentNode.removeChild(n); - }, self.findElements(element, options)); - - b.map(function (ident) { - var n = nodeMap[ident]; - if (n) { - n[1].appendChild(n[0]); - delete nodeMap[ident]; - } - }, newSequence); - }, - - /* Construct a [i] index for a particular node */ - _constructIndex: function (node) { - var index = ''; - do { - if (node.id) { - index = '[' + node.position + ']' + index; - } - } while ((node = node.parent) != null); - return index; - }, - - sequence: function (element, options) { - element = MochiKit.DOM.getElement(element); - var self = MochiKit.Sortable.Sortable; - var options = MochiKit.Base.update(self.options(element), options || {}); - - return MochiKit.Base.map(function (item) { - return item.id.match(options.format) ? item.id.match(options.format)[1] : ''; - }, MochiKit.DOM.getElement(self.findElements(element, options) || [])); - }, - - serialize: function (element, options) { - element = MochiKit.DOM.getElement(element); - var self = MochiKit.Sortable.Sortable; - options = MochiKit.Base.update(self.options(element), options || {}); - var name = encodeURIComponent(options.name || element.id); - - if (options.tree) { - return MochiKit.Base.flattenArray(MochiKit.Base.map(function (item) { - return [name + self._constructIndex(item) + "[id]=" + - encodeURIComponent(item.id)].concat(item.children.map(arguments.callee)); - }, self.tree(element, options).children)).join('&'); - } else { - return MochiKit.Base.map(function (item) { - return name + "[]=" + encodeURIComponent(item); - }, self.sequence(element, options)).join('&'); - } - } -}; - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Style.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Style.js deleted file mode 100644 index e9b798b7d..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Style.js +++ /dev/null @@ -1,374 +0,0 @@ -/*** - -MochiKit.Style 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005-2006 Bob Ippolito, Beau Hartshorne. All rights Reserved. - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.Style'); - dojo.require('MochiKit.Base'); - dojo.require('MochiKit.DOM'); -} -if (typeof(JSAN) != 'undefined') { - JSAN.use('MochiKit.Base', []); -} - -try { - if (typeof(MochiKit.Base) == 'undefined') { - throw ''; - } -} catch (e) { - throw 'MochiKit.Style depends on MochiKit.Base!'; -} - -try { - if (typeof(MochiKit.DOM) == 'undefined') { - throw ''; - } -} catch (e) { - throw 'MochiKit.Style depends on MochiKit.DOM!'; -} - - -if (typeof(MochiKit.Style) == 'undefined') { - MochiKit.Style = {}; -} - -MochiKit.Style.NAME = 'MochiKit.Style'; -MochiKit.Style.VERSION = '1.4'; -MochiKit.Style.__repr__ = function () { - return '[' + this.NAME + ' ' + this.VERSION + ']'; -}; -MochiKit.Style.toString = function () { - return this.__repr__(); -}; - -MochiKit.Style.EXPORT_OK = []; - -MochiKit.Style.EXPORT = [ - 'setOpacity', - 'computedStyle', - 'getElementDimensions', - 'elementDimensions', // deprecated - 'setElementDimensions', - 'getElementPosition', - 'elementPosition', // deprecated - 'setElementPosition', - 'setDisplayForElement', - 'hideElement', - 'showElement', - 'getViewportDimensions', - 'Dimensions', - 'Coordinates' -]; - - -/* - - Dimensions - -*/ -MochiKit.Style.Dimensions = function (w, h) { - this.w = w; - this.h = h; -}; - -MochiKit.Style.Dimensions.prototype.__repr__ = function () { - var repr = MochiKit.Base.repr; - return '{w: ' + repr(this.w) + ', h: ' + repr(this.h) + '}'; -}; - -MochiKit.Style.Dimensions.prototype.toString = function () { - return this.__repr__(); -}; - - -/* - - Coordinates - -*/ -MochiKit.Style.Coordinates = function (x, y) { - this.x = x; - this.y = y; -}; - -MochiKit.Style.Coordinates.prototype.__repr__ = function () { - var repr = MochiKit.Base.repr; - return '{x: ' + repr(this.x) + ', y: ' + repr(this.y) + '}'; -}; - -MochiKit.Style.Coordinates.prototype.toString = function () { - return this.__repr__(); -}; - - -MochiKit.Base.update(MochiKit.Style, { - - computedStyle: function (elem, cssProperty) { - var dom = MochiKit.DOM; - var d = dom._document; - - elem = dom.getElement(elem); - cssProperty = MochiKit.Base.camelize(cssProperty); - - if (!elem || elem == d) { - return undefined; - } - - /* from YUI 0.10.0 */ - if (cssProperty == 'opacity' && elem.filters) { // IE opacity - try { - return elem.filters.item('DXImageTransform.Microsoft.Alpha' - ).opacity / 100; - } catch(e) { - try { - return elem.filters.item('alpha').opacity / 100; - } catch(e) {} - } - } - - if (elem.currentStyle) { - return elem.currentStyle[cssProperty]; - } - if (typeof(d.defaultView) == 'undefined') { - return undefined; - } - if (d.defaultView === null) { - return undefined; - } - var style = d.defaultView.getComputedStyle(elem, null); - if (typeof(style) == 'undefined' || style === null) { - return undefined; - } - - var selectorCase = cssProperty.replace(/([A-Z])/g, '-$1' - ).toLowerCase(); // from dojo.style.toSelectorCase - - return style.getPropertyValue(selectorCase); - }, - - setOpacity: function(elem, o) { - elem = MochiKit.DOM.getElement(elem); - MochiKit.DOM.updateNodeAttributes(elem, {'style': { - 'opacity': o, - '-moz-opacity': o, - '-khtml-opacity': o, - 'filter':' alpha(opacity=' + (o * 100) + ')' - }}); - }, - - /* - - getElementPosition is adapted from YAHOO.util.Dom.getXY v0.9.0. - Copyright: Copyright (c) 2006, Yahoo! Inc. All rights reserved. - License: BSD, http://developer.yahoo.net/yui/license.txt - - */ - getElementPosition: function (elem, /* optional */relativeTo, doc) { - var self = MochiKit.Style; - var dom = MochiKit.DOM; - elem = dom.getElement(elem); - - if (!elem || - (!(elem.x && elem.y) && - (!elem.parentNode == null || - self.computedStyle(elem, 'display') == 'none'))) { - return undefined; - } - - var c = new self.Coordinates(0, 0); - var box = null; - var parent = null; - - var d = doc ? doc : MochiKit.DOM._document; - var de = d.documentElement; - var b = d.body; - - if (!elem.parentNode && elem.x && elem.y) { - /* it's just a MochiKit.Style.Coordinates object */ - c.x += elem.x || 0; - c.y += elem.y || 0; - } else if (elem.getBoundingClientRect) { // IE shortcut - /* - - The IE shortcut can be off by two. We fix it. See: - http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/getboundingclientrect.asp - - This is similar to the method used in - MochiKit.Signal.Event.mouse(). - - */ - box = elem.getBoundingClientRect(); - - c.x += box.left + - (de.scrollLeft || b.scrollLeft) - - (de.clientLeft || 0); - - c.y += box.top + - (de.scrollTop || b.scrollTop) - - (de.clientTop || 0); - - } else if (elem.offsetParent) { - c.x += elem.offsetLeft; - c.y += elem.offsetTop; - parent = elem.offsetParent; - - if (parent != elem) { - while (parent) { - c.x += parent.offsetLeft; - c.y += parent.offsetTop; - parent = parent.offsetParent; - } - } - - /* - - Opera < 9 and old Safari (absolute) incorrectly account for - body offsetTop and offsetLeft. - - */ - var ua = navigator.userAgent.toLowerCase(); - if ((typeof(opera) != 'undefined' && - parseFloat(opera.version()) < 9) || - (ua.indexOf('safari') != -1 && - self.computedStyle(elem, 'position') == 'absolute')) { - - c.x -= b.offsetLeft; - c.y -= b.offsetTop; - - } - } - - if (typeof(relativeTo) != 'undefined') { - relativeTo = arguments.callee(relativeTo); - if (relativeTo) { - c.x -= (relativeTo.x || 0); - c.y -= (relativeTo.y || 0); - } - } - - if (elem.parentNode) { - parent = elem.parentNode; - } else { - parent = null; - } - - while (parent && parent.tagName != 'BODY' && - parent.tagName != 'HTML') { - c.x -= parent.scrollLeft; - c.y -= parent.scrollTop; - if (parent.parentNode) { - parent = parent.parentNode; - } else { - parent = null; - } - } - - return c; - }, - - setElementPosition: function (elem, newPos/* optional */, units) { - elem = MochiKit.DOM.getElement(elem); - if (typeof(units) == 'undefined') { - units = 'px'; - } - MochiKit.DOM.updateNodeAttributes(elem, {'style': { - 'left': newPos.x + units, - 'top': newPos.y + units - }}); - }, - - getElementDimensions: function (elem) { - var self = MochiKit.Style; - var dom = MochiKit.DOM; - if (typeof(elem.w) == 'number' || typeof(elem.h) == 'number') { - return new self.Dimensions(elem.w || 0, elem.h || 0); - } - elem = dom.getElement(elem); - if (!elem) { - return undefined; - } - if (self.computedStyle(elem, 'display') != 'none') { - return new self.Dimensions(elem.offsetWidth || 0, - elem.offsetHeight || 0); - } - var s = elem.style; - var originalVisibility = s.visibility; - var originalPosition = s.position; - s.visibility = 'hidden'; - s.position = 'absolute'; - s.display = ''; - var originalWidth = elem.offsetWidth; - var originalHeight = elem.offsetHeight; - s.display = 'none'; - s.position = originalPosition; - s.visibility = originalVisibility; - return new self.Dimensions(originalWidth, originalHeight); - }, - - setElementDimensions: function (elem, newSize/* optional */, units) { - elem = MochiKit.DOM.getElement(elem); - if (typeof(units) == 'undefined') { - units = 'px'; - } - MochiKit.DOM.updateNodeAttributes(elem, {'style': { - 'width': newSize.w + units, - 'height': newSize.h + units - }}); - }, - - setDisplayForElement: function (display, element/*, ...*/) { - var elements = MochiKit.Base.extend(null, arguments, 1); - var getElement = MochiKit.DOM.getElement; - for (var i = 0; i < elements.length; i++) { - var element = getElement(elements[i]); - if (element) { - element.style.display = display; - } - } - }, - - getViewportDimensions: function() { - var d = new MochiKit.Style.Dimensions(); - - var w = MochiKit.DOM._window; - var b = MochiKit.DOM._document.body; - - if (w.innerWidth) { - d.w = w.innerWidth; - d.h = w.innerHeight; - } else if (b.parentElement.clientWidth) { - d.w = b.parentElement.clientWidth; - d.h = b.parentElement.clientHeight; - } else if (b && b.clientWidth) { - d.w = b.clientWidth; - d.h = b.clientHeight; - } - return d; - }, - - __new__: function () { - var m = MochiKit.Base; - - this.elementPosition = this.getElementPosition; - this.elementDimensions = this.getElementDimensions; - - this.hideElement = m.partial(this.setDisplayForElement, 'none'); - this.showElement = m.partial(this.setDisplayForElement, 'block'); - - this.EXPORT_TAGS = { - ':common': this.EXPORT, - ':all': m.concat(this.EXPORT, this.EXPORT_OK) - }; - - m.nameFunctions(this); - } -}); - -MochiKit.Style.__new__(); -MochiKit.Base._exportSymbols(this, MochiKit.Style); diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Test.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Test.js deleted file mode 100644 index 632356a43..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Test.js +++ /dev/null @@ -1,181 +0,0 @@ -/*** - -MochiKit.Test 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.Test'); - dojo.require('MochiKit.Base'); -} - -if (typeof(JSAN) != 'undefined') { - JSAN.use("MochiKit.Base", []); -} - -try { - if (typeof(MochiKit.Base) == 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.Test depends on MochiKit.Base!"; -} - -if (typeof(MochiKit.Test) == 'undefined') { - MochiKit.Test = {}; -} - -MochiKit.Test.NAME = "MochiKit.Test"; -MochiKit.Test.VERSION = "1.4"; -MochiKit.Test.__repr__ = function () { - return "[" + this.NAME + " " + this.VERSION + "]"; -}; - -MochiKit.Test.toString = function () { - return this.__repr__(); -}; - - -MochiKit.Test.EXPORT = ["runTests"]; -MochiKit.Test.EXPORT_OK = []; - -MochiKit.Test.runTests = function (obj) { - if (typeof(obj) == "string") { - obj = JSAN.use(obj); - } - var suite = new MochiKit.Test.Suite(); - suite.run(obj); -}; - -MochiKit.Test.Suite = function () { - this.testIndex = 0; - MochiKit.Base.bindMethods(this); -}; - -MochiKit.Test.Suite.prototype = { - run: function (obj) { - try { - obj(this); - } catch (e) { - this.traceback(e); - } - }, - traceback: function (e) { - var items = MochiKit.Iter.sorted(MochiKit.Base.items(e)); - print("not ok " + this.testIndex + " - Error thrown"); - for (var i = 0; i < items.length; i++) { - var kv = items[i]; - if (kv[0] == "stack") { - kv[1] = kv[1].split(/\n/)[0]; - } - this.print("# " + kv.join(": ")); - } - }, - print: function (s) { - print(s); - }, - is: function (got, expected, /* optional */message) { - var res = 1; - var msg = null; - try { - res = MochiKit.Base.compare(got, expected); - } catch (e) { - msg = "Can not compare " + typeof(got) + ":" + typeof(expected); - } - if (res) { - msg = "Expected value did not compare equal"; - } - if (!res) { - return this.testResult(true, message); - } - return this.testResult(false, message, - [[msg], ["got:", got], ["expected:", expected]]); - }, - - testResult: function (pass, msg, failures) { - this.testIndex += 1; - if (pass) { - this.print("ok " + this.testIndex + " - " + msg); - return; - } - this.print("not ok " + this.testIndex + " - " + msg); - if (failures) { - for (var i = 0; i < failures.length; i++) { - this.print("# " + failures[i].join(" ")); - } - } - }, - - isDeeply: function (got, expected, /* optional */message) { - var m = MochiKit.Base; - var res = 1; - try { - res = m.compare(got, expected); - } catch (e) { - // pass - } - if (res === 0) { - return this.ok(true, message); - } - var gk = m.keys(got); - var ek = m.keys(expected); - gk.sort(); - ek.sort(); - if (m.compare(gk, ek)) { - // differing keys - var cmp = {}; - var i; - for (i = 0; i < gk.length; i++) { - cmp[gk[i]] = "got"; - } - for (i = 0; i < ek.length; i++) { - if (ek[i] in cmp) { - delete cmp[ek[i]]; - } else { - cmp[ek[i]] = "expected"; - } - } - var diffkeys = m.keys(cmp); - diffkeys.sort(); - var gotkeys = []; - var expkeys = []; - while (diffkeys.length) { - var k = diffkeys.shift(); - if (k in Object.prototype) { - continue; - } - (cmp[k] == "got" ? gotkeys : expkeys).push(k); - } - - - } - - return this.testResult((!res), msg, - (msg ? [["got:", got], ["expected:", expected]] : undefined) - ); - }, - - ok: function (res, message) { - return this.testResult(res, message); - } -}; - -MochiKit.Test.__new__ = function () { - var m = MochiKit.Base; - - this.EXPORT_TAGS = { - ":common": this.EXPORT, - ":all": m.concat(this.EXPORT, this.EXPORT_OK) - }; - - m.nameFunctions(this); - -}; - -MochiKit.Test.__new__(); - -MochiKit.Base._exportSymbols(this, MochiKit.Test); diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Visual.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Visual.js deleted file mode 100644 index 64b55a1b2..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/Visual.js +++ /dev/null @@ -1,1735 +0,0 @@ -/*** - -MochiKit.Visual 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito and others. All rights Reserved. - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.Visual'); - dojo.require('MochiKit.Base'); - dojo.require('MochiKit.DOM'); - dojo.require('MochiKit.Style'); - dojo.require('MochiKit.Color'); - dojo.require('MochiKit.Iter'); -} - -if (typeof(JSAN) != 'undefined') { - JSAN.use("MochiKit.Base", []); - JSAN.use("MochiKit.DOM", []); - JSAN.use("MochiKit.Style", []); - JSAN.use("MochiKit.Color", []); - JSAN.use("MochiKit.Iter", []); -} - -try { - if (typeof(MochiKit.Base) === 'undefined' || - typeof(MochiKit.DOM) === 'undefined' || - typeof(MochiKit.Style) === 'undefined' || - typeof(MochiKit.Color) === 'undefined' || - typeof(MochiKit.Iter) === 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.Visual depends on MochiKit.Base, MochiKit.DOM, MochiKit.Style, MochiKit.Color and MochiKit.Iter!"; -} - -if (typeof(MochiKit.Visual) == "undefined") { - MochiKit.Visual = {}; -} - -MochiKit.Visual.NAME = "MochiKit.Visual"; -MochiKit.Visual.VERSION = "1.4"; - -MochiKit.Visual.__repr__ = function () { - return "[" + this.NAME + " " + this.VERSION + "]"; -}; - -MochiKit.Visual.toString = function () { - return this.__repr__(); -}; - -//MochiKit.Visual._RoundCorners = function (e, options) { -// e = MochiKit.DOM.getElement(e); -// this._setOptions(options); -// if (this.options.__unstable__wrapElement) { -// e = this._doWrap(e); -// } -// -// var color = this.options.color; -// var C = MochiKit.Color.Color; -// if (this.options.color === "fromElement") { -// color = C.fromBackground(e); -// } else if (!(color instanceof C)) { -// color = C.fromString(color); -// } -// this.isTransparent = (color.asRGB().a <= 0); -// -// var bgColor = this.options.bgColor; -// if (this.options.bgColor === "fromParent") { -// bgColor = C.fromBackground(e.offsetParent); -// } else if (!(bgColor instanceof C)) { -// bgColor = C.fromString(bgColor); -// } -// -// this._roundCornersImpl(e, color, bgColor); -//}; -// -//MochiKit.Visual._RoundCorners.prototype = { -// _doWrap: function (e) { -// var parent = e.parentNode; -// var doc = MochiKit.DOM.currentDocument(); -// if (typeof(doc.defaultView) === "undefined" -// || doc.defaultView === null) { -// return e; -// } -// var style = doc.defaultView.getComputedStyle(e, null); -// if (typeof(style) === "undefined" || style === null) { -// return e; -// } -// var wrapper = MochiKit.DOM.DIV({"style": { -// display: "block", -// // convert padding to margin -// marginTop: style.getPropertyValue("padding-top"), -// marginRight: style.getPropertyValue("padding-right"), -// marginBottom: style.getPropertyValue("padding-bottom"), -// marginLeft: style.getPropertyValue("padding-left"), -// // remove padding so the rounding looks right -// padding: "0px" -// /* -// paddingRight: "0px", -// paddingLeft: "0px" -// */ -// }}); -// wrapper.innerHTML = e.innerHTML; -// e.innerHTML = ""; -// e.appendChild(wrapper); -// return e; -// }, -// -// _roundCornersImpl: function (e, color, bgColor) { -// if (this.options.border) { -// this._renderBorder(e, bgColor); -// } -// if (this._isTopRounded()) { -// this._roundTopCorners(e, color, bgColor); -// } -// if (this._isBottomRounded()) { -// this._roundBottomCorners(e, color, bgColor); -// } -// }, -// -// _renderBorder: function (el, bgColor) { -// var borderValue = "1px solid " + this._borderColor(bgColor); -// var borderL = "border-left: " + borderValue; -// var borderR = "border-right: " + borderValue; -// var style = "style='" + borderL + ";" + borderR + "'"; -// el.innerHTML = "

    " + el.innerHTML + "
    "; -// }, -// -// _roundTopCorners: function (el, color, bgColor) { -// var corner = this._createCorner(bgColor); -// for (var i = 0; i < this.options.numSlices; i++) { -// corner.appendChild( -// this._createCornerSlice(color, bgColor, i, "top") -// ); -// } -// el.style.paddingTop = 0; -// el.insertBefore(corner, el.firstChild); -// }, -// -// _roundBottomCorners: function (el, color, bgColor) { -// var corner = this._createCorner(bgColor); -// for (var i = (this.options.numSlices - 1); i >= 0; i--) { -// corner.appendChild( -// this._createCornerSlice(color, bgColor, i, "bottom") -// ); -// } -// el.style.paddingBottom = 0; -// el.appendChild(corner); -// }, -// -// _createCorner: function (bgColor) { -// var dom = MochiKit.DOM; -// return dom.DIV({style: {backgroundColor: bgColor.toString()}}); -// }, -// -// _createCornerSlice: function (color, bgColor, n, position) { -// var slice = MochiKit.DOM.SPAN(); -// -// var inStyle = slice.style; -// inStyle.backgroundColor = color.toString(); -// inStyle.display = "block"; -// inStyle.height = "1px"; -// inStyle.overflow = "hidden"; -// inStyle.fontSize = "1px"; -// -// var borderColor = this._borderColor(color, bgColor); -// if (this.options.border && n === 0) { -// inStyle.borderTopStyle = "solid"; -// inStyle.borderTopWidth = "1px"; -// inStyle.borderLeftWidth = "0px"; -// inStyle.borderRightWidth = "0px"; -// inStyle.borderBottomWidth = "0px"; -// // assumes css compliant box model -// inStyle.height = "0px"; -// inStyle.borderColor = borderColor.toString(); -// } else if (borderColor) { -// inStyle.borderColor = borderColor.toString(); -// inStyle.borderStyle = "solid"; -// inStyle.borderWidth = "0px 1px"; -// } -// -// if (!this.options.compact && (n == (this.options.numSlices - 1))) { -// inStyle.height = "2px"; -// } -// -// this._setMargin(slice, n, position); -// this._setBorder(slice, n, position); -// -// return slice; -// }, -// -// _setOptions: function (options) { -// this.options = { -// corners: "all", -// color: "fromElement", -// bgColor: "fromParent", -// blend: true, -// border: false, -// compact: false, -// __unstable__wrapElement: false -// }; -// MochiKit.Base.update(this.options, options); -// -// this.options.numSlices = (this.options.compact ? 2 : 4); -// }, -// -// _whichSideTop: function () { -// var corners = this.options.corners; -// if (this._hasString(corners, "all", "top")) { -// return ""; -// } -// -// var has_tl = (corners.indexOf("tl") != -1); -// var has_tr = (corners.indexOf("tr") != -1); -// if (has_tl && has_tr) { -// return ""; -// } -// if (has_tl) { -// return "left"; -// } -// if (has_tr) { -// return "right"; -// } -// return ""; -// }, -// -// _whichSideBottom: function () { -// var corners = this.options.corners; -// if (this._hasString(corners, "all", "bottom")) { -// return ""; -// } -// -// var has_bl = (corners.indexOf('bl') != -1); -// var has_br = (corners.indexOf('br') != -1); -// if (has_bl && has_br) { -// return ""; -// } -// if (has_bl) { -// return "left"; -// } -// if (has_br) { -// return "right"; -// } -// return ""; -// }, -// -// _borderColor: function (color, bgColor) { -// if (color == "transparent") { -// return bgColor; -// } else if (this.options.border) { -// return this.options.border; -// } else if (this.options.blend) { -// return bgColor.blendedColor(color); -// } -// return ""; -// }, -// -// -// _setMargin: function (el, n, corners) { -// var marginSize = this._marginSize(n) + "px"; -// var whichSide = ( -// corners == "top" ? this._whichSideTop() : this._whichSideBottom() -// ); -// var style = el.style; -// -// if (whichSide == "left") { -// style.marginLeft = marginSize; -// style.marginRight = "0px"; -// } else if (whichSide == "right") { -// style.marginRight = marginSize; -// style.marginLeft = "0px"; -// } else { -// style.marginLeft = marginSize; -// style.marginRight = marginSize; -// } -// }, -// -// _setBorder: function (el, n, corners) { -// var borderSize = this._borderSize(n) + "px"; -// var whichSide = ( -// corners == "top" ? this._whichSideTop() : this._whichSideBottom() -// ); -// -// var style = el.style; -// if (whichSide == "left") { -// style.borderLeftWidth = borderSize; -// style.borderRightWidth = "0px"; -// } else if (whichSide == "right") { -// style.borderRightWidth = borderSize; -// style.borderLeftWidth = "0px"; -// } else { -// style.borderLeftWidth = borderSize; -// style.borderRightWidth = borderSize; -// } -// }, -// -// _marginSize: function (n) { -// if (this.isTransparent) { -// return 0; -// } -// -// var o = this.options; -// if (o.compact && o.blend) { -// var smBlendedMarginSizes = [1, 0]; -// return smBlendedMarginSizes[n]; -// } else if (o.compact) { -// var compactMarginSizes = [2, 1]; -// return compactMarginSizes[n]; -// } else if (o.blend) { -// var blendedMarginSizes = [3, 2, 1, 0]; -// return blendedMarginSizes[n]; -// } else { -// var marginSizes = [5, 3, 2, 1]; -// return marginSizes[n]; -// } -// }, -// -// _borderSize: function (n) { -// var o = this.options; -// var borderSizes; -// if (o.compact && (o.blend || this.isTransparent)) { -// return 1; -// } else if (o.compact) { -// borderSizes = [1, 0]; -// } else if (o.blend) { -// borderSizes = [2, 1, 1, 1]; -// } else if (o.border) { -// borderSizes = [0, 2, 0, 0]; -// } else if (this.isTransparent) { -// borderSizes = [5, 3, 2, 1]; -// } else { -// return 0; -// } -// return borderSizes[n]; -// }, -// -// _hasString: function (str) { -// for (var i = 1; i< arguments.length; i++) { -// if (str.indexOf(arguments[i]) != -1) { -// return true; -// } -// } -// return false; -// }, -// -// _isTopRounded: function () { -// return this._hasString(this.options.corners, -// "all", "top", "tl", "tr" -// ); -// }, -// -// _isBottomRounded: function () { -// return this._hasString(this.options.corners, -// "all", "bottom", "bl", "br" -// ); -// }, -// -// _hasSingleTextChild: function (el) { -// return (el.childNodes.length == 1 && el.childNodes[0].nodeType == 3); -// } -//}; -// -//MochiKit.Visual.roundElement = function (e, options) { -// new MochiKit.Visual._RoundCorners(e, options); -//}; - -//MochiKit.Visual.roundClass = function (tagName, className, options) { -// var elements = MochiKit.DOM.getElementsByTagAndClassName( -// tagName, className -// ); -// for (var i = 0; i < elements.length; i++) { -// MochiKit.Visual.roundElement(elements[i], options); -// } -//}; -// -//MochiKit.Visual.tagifyText = function (element, /* optional */tagifyStyle) { -// /*** -// -// Change a node text to character in tags. -// -// @param tagifyStyle: the style to apply to character nodes, default to -// 'position: relative'. -// -// ***/ -// var tagifyStyle = tagifyStyle || 'position:relative'; -// if (MochiKit.Base.isIE()) { -// tagifyStyle += ';zoom:1'; -// } -// element = MochiKit.DOM.getElement(element); -// var fe = MochiKit.Iter.forEach; -// fe(element.childNodes, function (child) { -// if (child.nodeType == 3) { -// fe(child.nodeValue.split(''), function (character) { -// element.insertBefore( -// MochiKit.DOM.SPAN({style: tagifyStyle}, -// character == ' ' ? String.fromCharCode(160) : character), child); -// }); -// MochiKit.DOM.removeElement(child); -// } -// }); -//}; - -MochiKit.Visual.forceRerendering = function (element) { - try { - element = MochiKit.DOM.getElement(element); - var n = document.createTextNode(' '); - element.appendChild(n); - element.removeChild(n); - } catch(e) { - } -}; -// -//MochiKit.Visual.multiple = function (elements, effect, /* optional */options) { -// /*** -// -// Launch the same effect subsequently on given elements. -// -// ***/ -// options = MochiKit.Base.update({ -// speed: 0.1, delay: 0.0 -// }, options || {}); -// var masterDelay = options.delay; -// var index = 0; -// MochiKit.Iter.forEach(elements, function (innerelement) { -// options.delay = index * options.speed + masterDelay; -// new effect(innerelement, options); -// index += 1; -// }); -//}; - -MochiKit.Visual.PAIRS = { - 'slide': ['slideDown', 'slideUp'], - 'blind': ['blindDown', 'blindUp'], - 'appear': ['appear', 'fade'], - 'size': ['grow', 'shrink'] -}; - -//MochiKit.Visual.toggle = function (element, /* optional */effect, /* optional */options) { -// /*** -// -// Toggle an item between two state depending of its visibility, making -// a effect between these states. Default effect is 'appear', can be -// 'slide' or 'blind'. -// -// ***/ -// element = MochiKit.DOM.getElement(element); -// effect = (effect || 'appear').toLowerCase(); -// options = MochiKit.Base.update({ -// queue: {position: 'end', scope: (element.id || 'global'), limit: 1} -// }, options || {}); -// var v = MochiKit.Visual; -// v[MochiKit.DOM.isVisible(element) ? -// v.PAIRS[effect][1] : v.PAIRS[effect][0]](element, options); -//}; - -/*** - -Transitions: define functions calculating variations depending of a position. - -***/ - -MochiKit.Visual.Transitions = {} - -MochiKit.Visual.Transitions.linear = function (pos) { - return pos; -}; - -MochiKit.Visual.Transitions.sinoidal = function (pos) { - return (-Math.cos(pos*Math.PI)/2) + 0.5; -}; - -MochiKit.Visual.Transitions.reverse = function (pos) { - return 1 - pos; -}; - -MochiKit.Visual.Transitions.flicker = function (pos) { - return ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4; -}; - -MochiKit.Visual.Transitions.wobble = function (pos) { - return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5; -}; - -MochiKit.Visual.Transitions.pulse = function (pos) { - return (Math.floor(pos*10) % 2 == 0 ? - (pos*10 - Math.floor(pos*10)) : 1 - (pos*10 - Math.floor(pos*10))); -}; - -MochiKit.Visual.Transitions.none = function (pos) { - return 0; -}; - -MochiKit.Visual.Transitions.full = function (pos) { - return 1; -}; - -/*** - -Core effects - -***/ - -MochiKit.Visual.ScopedQueue = function () { - this.__init__(); -}; - -MochiKit.Base.update(MochiKit.Visual.ScopedQueue.prototype, { - __init__: function () { - this.effects = []; - this.interval = null; - }, - - add: function (effect) { - var timestamp = new Date().getTime(); - - var position = (typeof(effect.options.queue) == 'string') ? - effect.options.queue : effect.options.queue.position; - - var fe = MochiKit.Iter.forEach; - switch (position) { - case 'front': - // move unstarted effects after this effect - fe(this.effects, function (e) { - if (e.state == 'idle') { - e.startOn += effect.finishOn; - e.finishOn += effect.finishOn; - } - }); - break; - case 'end': - var finish; - // start effect after last queued effect has finished - fe(this.effects, function (e) { - var i = e.finishOn; - if (i >= (finish || i)) { - finish = i; - } - }); - timestamp = finish || timestamp; - break; - } - - effect.startOn += timestamp; - effect.finishOn += timestamp; - if (!effect.options.queue.limit || - this.effects.length < effect.options.queue.limit) { - this.effects.push(effect); - } - - if (!this.interval) { - this.interval = setInterval(MochiKit.Base.bind(this.loop, this), - 40); - } - }, - - remove: function (effect) { - this.effects = MochiKit.Base.filter(function (e) { - return e != effect; - }, this.effects); - if (this.effects.length == 0) { - clearInterval(this.interval); - this.interval = null; - } - }, - - loop: function () { - var timePos = new Date().getTime(); - MochiKit.Iter.forEach(this.effects, function (effect) { - effect.loop(timePos); - }); - } -}); - -MochiKit.Visual.Queues = { - instances: {}, - - get: function (queueName) { - if (typeof(queueName) != 'string') { - return queueName; - } - - if (!this.instances[queueName]) { - this.instances[queueName] = new MochiKit.Visual.ScopedQueue(); - } - return this.instances[queueName]; - } -}; - -MochiKit.Visual.Queue = MochiKit.Visual.Queues.get('global'); - -MochiKit.Visual.DefaultOptions = { - transition: MochiKit.Visual.Transitions.sinoidal, - duration: 1.0, // seconds - fps: 25.0, // max. 25fps due to MochiKit.Visual.Queue implementation - sync: false, // true for combining - from: 0.0, - to: 1.0, - delay: 0.0, - queue: 'parallel' -}; - -MochiKit.Visual.Base = function () {}; - -MochiKit.Visual.Base.prototype = { - /*** - - Basic class for all Effects. Define a looping mechanism called for each step - of an effect. Don't instantiate it, only subclass it. - - ***/ - - __class__ : MochiKit.Visual.Base, - - start: function (options) { - var v = MochiKit.Visual; - this.options = MochiKit.Base.setdefault(options || {}, - v.DefaultOptions); - this.currentFrame = 0; - this.state = 'idle'; - this.startOn = this.options.delay*1000; - this.finishOn = this.startOn + (this.options.duration*1000); - this.event('beforeStart'); - if (!this.options.sync) { - v.Queues.get(typeof(this.options.queue) == 'string' ? - 'global' : this.options.queue.scope).add(this); - } - }, - - loop: function (timePos) { - if (timePos >= this.startOn) { - if (timePos >= this.finishOn) { - this.render(1.0); - this.cancel(); - this.event('beforeFinish'); - this.finish(); - this.event('afterFinish'); - return; - } - var pos = (timePos - this.startOn) / (this.finishOn - this.startOn); - var frame = - Math.round(pos * this.options.fps * this.options.duration); - if (frame > this.currentFrame) { - this.render(pos); - this.currentFrame = frame; - } - } - }, - - render: function (pos) { - if (this.state == 'idle') { - this.state = 'running'; - this.event('beforeSetup'); - this.setup(); - this.event('afterSetup'); - } - if (this.state == 'running') { - if (this.options.transition) { - pos = this.options.transition(pos); - } - pos *= (this.options.to - this.options.from); - pos += this.options.from; - this.event('beforeUpdate'); - this.update(pos); - this.event('afterUpdate'); - } - }, - - cancel: function () { - if (!this.options.sync) { - MochiKit.Visual.Queues.get(typeof(this.options.queue) == 'string' ? - 'global' : this.options.queue.scope).remove(this); - } - this.state = 'finished'; - }, - - setup: function () { - }, - - finish: function () { - }, - - update: function (position) { - }, - - event: function (eventName) { - if (this.options[eventName + 'Internal']) { - this.options[eventName + 'Internal'](this); - } - if (this.options[eventName]) { - this.options[eventName](this); - } - }, - - repr: function () { - return '[' + this.__class__.NAME + ', options:' + - MochiKit.Base.repr(this.options) + ']'; - } -} - -//MochiKit.Visual.Parallel = function (effects, options) { -// this.__init__(effects, options); -//}; -// -//MochiKit.Visual.Parallel.prototype = new MochiKit.Visual.Base(); -// -//MochiKit.Base.update(MochiKit.Visual.Parallel.prototype, { -// /*** -// -// Run multiple effects at the same time. -// -// ***/ -// __init__: function (effects, options) { -// this.effects = effects || []; -// this.start(options); -// }, -// -// update: function (position) { -// MochiKit.Iter.forEach(this.effects, function (effect) { -// effect.render(position); -// }); -// }, -// -// finish: function () { -// MochiKit.Iter.forEach(this.effects, function (effect) { -// effect.render(1.0); -// effect.cancel(); -// effect.event('beforeFinish'); -// effect.finish(); -// effect.event('afterFinish'); -// }); -// } -//}); - -MochiKit.Visual.Opacity = function (element, options) { - this.__init__(element, options); -}; - -MochiKit.Visual.Opacity.prototype = new MochiKit.Visual.Base(); - -MochiKit.Base.update(MochiKit.Visual.Opacity.prototype, { - /*** - - Change the opacity of an element. - - @param options: 'from' and 'to' change the starting and ending opacities. - Must be between 0.0 and 1.0. Default to current opacity and 1.0. - - ***/ - __init__: function (element, /* optional */options) { - var b = MochiKit.Base; - var d = MochiKit.DOM; - this.element = d.getElement(element); - // make this work on IE on elements without 'layout' - if (b.isIE() && (!this.element.currentStyle.hasLayout)) { - d.setStyle(this.element, {zoom: 1}); - } - options = b.update({ - from: d.getOpacity(this.element) || 0.0, - to: 1.0 - }, options || {}); - this.start(options); - }, - - update: function (position) { - MochiKit.DOM.setOpacity(this.element, position); - } -}); - -MochiKit.Visual.Move = function (element, options) { - this.__init__(element, options); -}; - -MochiKit.Visual.Move.prototype = new MochiKit.Visual.Base(); - -MochiKit.Base.update(MochiKit.Visual.Move.prototype, { - /*** - - Move an element between its current position to a defined position - - @param options: 'x' and 'y' for final positions, default to 0, 0. - - ***/ - __init__: function (element, /* optional */options) { - this.element = MochiKit.DOM.getElement(element); - options = MochiKit.Base.update({ - x: 0, - y: 0, - mode: 'relative' - }, options || {}); - this.start(options); - }, - - setup: function () { - var d = MochiKit.DOM; - // Bug in Opera: Opera returns the 'real' position of a static element - // or relative element that does not have top/left explicitly set. - // ==> Always set top and left for position relative elements in your - // stylesheets (to 0 if you do not need them) - d.makePositioned(this.element); - - var s = this.element.style; - var originalVisibility = s.visibility; - var originalDisplay = s.display; - if (originalDisplay == 'none') { - s.visibility = 'hidden'; - s.display = ''; - } - - this.originalLeft = parseFloat(d.getStyle(this.element, 'left') || '0'); - this.originalTop = parseFloat(d.getStyle(this.element, 'top') || '0'); - - if (this.options.mode == 'absolute') { - // absolute movement, so we need to calc deltaX and deltaY - this.options.x -= this.originalLeft; - this.options.y -= this.originalTop; - } - if (originalDisplay == 'none') { - s.visibility = originalVisibility; - s.display = originalDisplay; - } - }, - - update: function (position) { - MochiKit.DOM.setStyle(this.element, { - left: Math.round(this.options.x * position + this.originalLeft) + 'px', - top: Math.round(this.options.y * position + this.originalTop) + 'px' - }); - } -}); - -MochiKit.Visual.Scale = function (element, percent, options) { - this.__init__(element, percent, options); -}; - -MochiKit.Visual.Scale.prototype = new MochiKit.Visual.Base(); - -MochiKit.Base.update(MochiKit.Visual.Scale.prototype, { - /*** - - Change the size of an element. - - @param percent: final_size = percent*original_size - - @param options: several options changing scale behaviour - - ***/ - __init__: function (element, percent, /* optional */options) { - this.element = MochiKit.DOM.getElement(element) - options = MochiKit.Base.update({ - scaleX: true, - scaleY: true, - scaleContent: true, - scaleFromCenter: false, - scaleMode: 'box', // 'box' or 'contents' or {} with provided values - scaleFrom: 100.0, - scaleTo: percent - }, options || {}); - this.start(options); - }, - - setup: function () { - this.restoreAfterFinish = this.options.restoreAfterFinish || false; - this.elementPositioning = MochiKit.DOM.getStyle(this.element, - 'position'); - - var fe = MochiKit.Iter.forEach; - var b = MochiKit.Base.bind; - this.originalStyle = {}; - fe(['top', 'left', 'width', 'height', 'fontSize'], - b(function (k) { - this.originalStyle[k] = this.element.style[k]; - }, this)); - - this.originalTop = this.element.offsetTop; - this.originalLeft = this.element.offsetLeft; - - var fontSize = MochiKit.DOM.getStyle(this.element, - 'font-size') || '100%'; - fe(['em', 'px', '%'], - b(function (fontSizeType) { - if (fontSize.indexOf(fontSizeType) > 0) { - this.fontSize = parseFloat(fontSize); - this.fontSizeType = fontSizeType; - } - }, this)); - - this.factor = (this.options.scaleTo - this.options.scaleFrom)/100; - - if (/^content/.test(this.options.scaleMode)) { - this.dims = [this.element.scrollHeight, this.element.scrollWidth]; - } else if (this.options.scaleMode == 'box') { - this.dims = [this.element.offsetHeight, this.element.offsetWidth]; - } else { - this.dims = [this.options.scaleMode.originalHeight, - this.options.scaleMode.originalWidth]; - } - }, - - update: function (position) { - var currentScale = (this.options.scaleFrom/100.0) + - (this.factor * position); - if (this.options.scaleContent && this.fontSize) { - MochiKit.DOM.setStyle(this.element, { - fontSize: this.fontSize * currentScale + this.fontSizeType - }); - } - this.setDimensions(this.dims[0] * currentScale, - this.dims[1] * currentScale); - }, - - finish: function () { - if (this.restoreAfterFinish) { - MochiKit.DOM.setStyle(this.element, this.originalStyle); - } - }, - - setDimensions: function (height, width) { - var d = {}; - if (this.options.scaleX) { - d.width = Math.round(width) + 'px'; - } - if (this.options.scaleY) { - d.height = Math.round(height) + 'px'; - } - if (this.options.scaleFromCenter) { - var topd = (height - this.dims[0])/2; - var leftd = (width - this.dims[1])/2; - if (this.elementPositioning == 'absolute') { - if (this.options.scaleY) { - d.top = this.originalTop - topd + 'px'; - } - if (this.options.scaleX) { - d.left = this.originalLeft - leftd + 'px'; - } - } else { - if (this.options.scaleY) { - d.top = -topd + 'px'; - } - if (this.options.scaleX) { - d.left = -leftd + 'px'; - } - } - } - MochiKit.DOM.setStyle(this.element, d); - } -}); - -//MochiKit.Visual.Highlight = function (element, options) { -// this.__init__(element, options); -//}; -// -//MochiKit.Visual.Highlight.prototype = new MochiKit.Visual.Base(); -// -//MochiKit.Base.update(MochiKit.Visual.Highlight.prototype, { -// /*** -// -// Highlight an item of the page. -// -// @param options: 'startcolor' for choosing highlighting color, default -// to '#ffff99'. -// -// ***/ -// __init__: function (element, /* optional */options) { -// this.element = MochiKit.DOM.getElement(element); -// options = MochiKit.Base.update({ -// startcolor: '#ffff99' -// }, options || {}); -// this.start(options); -// }, -// -// setup: function () { -// var d = MochiKit.DOM; -// var b = MochiKit.Base; -// // Prevent executing on elements not in the layout flow -// if (d.getStyle(this.element, 'display') == 'none') { -// this.cancel(); -// return; -// } -// // Disable background image during the effect -// this.oldStyle = { -// backgroundImage: d.getStyle(this.element, 'background-image') -// }; -// d.setStyle(this.element, { -// backgroundImage: 'none' -// }); -// -// if (!this.options.endcolor) { -// this.options.endcolor = -// MochiKit.Color.Color.fromBackground(this.element).toHexString(); -// } -// if (!this.options.restorecolor) { -// this.options.restorecolor = d.getStyle(this.element, -// 'background-color'); -// } -// // init color calculations -// this._base = b.map(b.bind(function (i) { -// return parseInt( -// this.options.startcolor.slice(i*2 + 1, i*2 + 3), 16); -// }, this), [0, 1, 2]); -// this._delta = b.map(b.bind(function (i) { -// return parseInt(this.options.endcolor.slice(i*2 + 1, i*2 + 3), 16) -// - this._base[i]; -// }, this), [0, 1, 2]); -// }, -// -// update: function (position) { -// var m = '#'; -// MochiKit.Iter.forEach([0, 1, 2], MochiKit.Base.bind(function (i) { -// m += MochiKit.Color.toColorPart(Math.round(this._base[i] + -// this._delta[i]*position)); -// }, this)); -// MochiKit.DOM.setStyle(this.element, { -// backgroundColor: m -// }); -// }, -// -// finish: function () { -// MochiKit.DOM.setStyle(this.element, -// MochiKit.Base.update(this.oldStyle, { -// backgroundColor: this.options.endcolor -// })); -// } -//}); - -//MochiKit.Visual.ScrollTo = function (element, options) { -// this.__init__(element, options); -//}; -// -//MochiKit.Visual.ScrollTo.prototype = new MochiKit.Visual.Base(); -// -//MochiKit.Base.update(MochiKit.Visual.ScrollTo.prototype, { -// /*** -// -// Scroll to an element in the page. -// -// ***/ -// __init__: function (element, /* optional */options) { -// this.element = MochiKit.DOM.getElement(element); -// this.start(options || {}); -// }, -// -// setup: function () { -// var p = MochiKit.Position; -// p.prepare(); -// var offsets = p.cumulativeOffset(this.element); -// if (this.options.offset) { -// offsets.y += this.options.offset; -// } -// var max; -// if (window.innerHeight) { -// max = window.innerHeight - window.height; -// } else if (document.documentElement && -// document.documentElement.clientHeight) { -// max = document.documentElement.clientHeight - -// document.body.scrollHeight; -// } else if (document.body) { -// max = document.body.clientHeight - document.body.scrollHeight; -// } -// this.scrollStart = p.windowOffset.y; -// this.delta = (offsets.y > max ? max : offsets.y) - this.scrollStart; -// }, -// -// update: function (position) { -// var p = MochiKit.Position; -// p.prepare(); -// window.scrollTo(p.windowOffset.x, this.scrollStart + (position * this.delta)); -// } -//}); - -/*** - -Combination effects. - -***/ - -MochiKit.Visual.fade = function (element, /* optional */ options) { - /*** - - Fade a given element: change its opacity and hide it in the end. - - @param options: 'to' and 'from' to change opacity. - - ***/ - var d = MochiKit.DOM; - var oldOpacity = d.getInlineOpacity(element); - options = MochiKit.Base.update({ - from: d.getOpacity(element) || 1.0, - to: 0.0, - afterFinishInternal: function (effect) { - if (effect.options.to !== 0) { - return; - } - MochiKit.Style.hideElement(effect.element); - d.setStyle(effect.element, {opacity: oldOpacity}); - } - }, options || {}); - return new MochiKit.Visual.Opacity(element, options); -}; - -MochiKit.Visual.appear = function (element, /* optional */ options) { - /*** - - Make an element appear. - - @param options: 'to' and 'from' to change opacity. - - ***/ - var d = MochiKit.DOM; - var v = MochiKit.Visual; - options = MochiKit.Base.update({ - from: (d.getStyle(element, 'display') == 'none' ? 0.0 : - d.getOpacity(element) || 0.0), - to: 1.0, - // force Safari to render floated elements properly - afterFinishInternal: function (effect) { - v.forceRerendering(effect.element); - }, - beforeSetupInternal: function (effect) { - d.setOpacity(effect.element, effect.options.from); - MochiKit.Style.showElement(effect.element); - } - }, options || {}); - return new v.Opacity(element, options); -}; - -//MochiKit.Visual.puff = function (element, /* optional */ options) { -// /*** -// -// 'Puff' an element: grow it to double size, fading it and make it hidden. -// -// ***/ -// var d = MochiKit.DOM; -// var v = MochiKit.Visual; -// element = d.getElement(element); -// var oldStyle = { -// opacity: d.getInlineOpacity(element), -// position: d.getStyle(element, 'position') -// }; -// options = MochiKit.Base.update({ -// beforeSetupInternal: function (effect) { -// d.setStyle(effect.effects[0].element, -// {position: 'absolute'}); -// }, -// afterFinishInternal: function (effect) { -// MochiKit.Style.hideElement(effect.effects[0].element); -// d.setStyle(effect.effects[0].element, oldStyle); -// } -// }, options || {}); -// return new v.Parallel( -// [new v.Scale(element, 200, -// {sync: true, scaleFromCenter: true, -// scaleContent: true, restoreAfterFinish: true}), -// new v.Opacity(element, {sync: true, to: 0.0 })], -// options); -//}; - -MochiKit.Visual.blindUp = function (element, /* optional */ options) { - /*** - - Blind an element up: change its vertical size to 0. - - ***/ - var d = MochiKit.DOM; - element = d.getElement(element); - d.makeClipping(element); - options = MochiKit.Base.update({ - scaleContent: false, - scaleX: false, - restoreAfterFinish: true, - afterFinishInternal: function (effect) { - MochiKit.Style.hideElement(effect.element); - d.undoClipping(effect.element); - } - }, options || {}); - - return new MochiKit.Visual.Scale(element, 0, options); -}; - -MochiKit.Visual.blindDown = function (element, /* optional */ options) { - /*** - - Blind an element down: restore its vertical size. - - ***/ - var d = MochiKit.DOM; - element = d.getElement(element); - var elementDimensions = MochiKit.Style.getElementDimensions(element); - options = MochiKit.Base.update({ - scaleContent: false, - scaleX: false, - scaleFrom: 0, - scaleMode: {originalHeight: elementDimensions.h, - originalWidth: elementDimensions.w}, - restoreAfterFinish: true, - afterSetupInternal: function (effect) { - d.makeClipping(effect.element); - d.setStyle(effect.element, {height: '0px'}); - MochiKit.Style.showElement(effect.element); - }, - afterFinishInternal: function (effect) { - d.undoClipping(effect.element); - } - }, options || {}); - return new MochiKit.Visual.Scale(element, 100, options); -}; - -//MochiKit.Visual.switchOff = function (element, /* optional */ options) { -// /*** -// -// Apply a switch-off-like effect. -// -// ***/ -// var d = MochiKit.DOM; -// element = d.getElement(element); -// var oldOpacity = d.getInlineOpacity(element); -// var options = MochiKit.Base.update({ -// duration: 0.3, -// scaleFromCenter: true, -// scaleX: false, -// scaleContent: false, -// restoreAfterFinish: true, -// beforeSetupInternal: function (effect) { -// d.makePositioned(effect.element); -// d.makeClipping(effect.element); -// }, -// afterFinishInternal: function (effect) { -// MochiKit.Style.hideElement(effect.element); -// d.undoClipping(effect.element); -// d.undoPositioned(effect.element); -// d.setStyle(effect.element, {opacity: oldOpacity}); -// } -// }, options || {}); -// var v = MochiKit.Visual; -// return new v.appear(element, { -// duration: 0.4, -// from: 0, -// transition: v.Transitions.flicker, -// afterFinishInternal: function (effect) { -// new v.Scale(effect.element, 1, options) -// } -// }); -//}; - -//MochiKit.Visual.dropOut = function (element, /* optional */ options) { -// /*** -// -// Make an element fall and disappear. -// -// ***/ -// var d = MochiKit.DOM; -// element = d.getElement(element); -// var oldStyle = { -// top: d.getStyle(element, 'top'), -// left: d.getStyle(element, 'left'), -// opacity: d.getInlineOpacity(element) -// }; -// -// options = MochiKit.Base.update({ -// duration: 0.5, -// beforeSetupInternal: function (effect) { -// d.makePositioned(effect.effects[0].element); -// }, -// afterFinishInternal: function (effect) { -// MochiKit.Style.hideElement(effect.effects[0].element); -// d.undoPositioned(effect.effects[0].element); -// d.setStyle(effect.effects[0].element, oldStyle); -// } -// }, options || {}); -// var v = MochiKit.Visual; -// return new v.Parallel( -// [new v.Move(element, {x: 0, y: 100, sync: true}), -// new v.Opacity(element, {sync: true, to: 0.0})], -// options); -//}; - -//MochiKit.Visual.shake = function (element, /* optional */ options) { -// /*** -// -// Move an element from left to right several times. -// -// ***/ -// var d = MochiKit.DOM; -// var v = MochiKit.Visual; -// element = d.getElement(element); -// options = MochiKit.Base.update({ -// x: -20, -// y: 0, -// duration: 0.05, -// afterFinishInternal: function (effect) { -// d.undoPositioned(effect.element); -// d.setStyle(effect.element, oldStyle); -// } -// }, options || {}); -// var oldStyle = { -// top: d.getStyle(element, 'top'), -// left: d.getStyle(element, 'left') }; -// return new v.Move(element, -// {x: 20, y: 0, duration: 0.05, afterFinishInternal: function (effect) { -// new v.Move(effect.element, -// {x: -40, y: 0, duration: 0.1, afterFinishInternal: function (effect) { -// new v.Move(effect.element, -// {x: 40, y: 0, duration: 0.1, afterFinishInternal: function (effect) { -// new v.Move(effect.element, -// {x: -40, y: 0, duration: 0.1, afterFinishInternal: function (effect) { -// new v.Move(effect.element, -// {x: 40, y: 0, duration: 0.1, afterFinishInternal: function (effect) { -// new v.Move(effect.element, options -// ) }}) }}) }}) }}) }}); -//}; - -//MochiKit.Visual.slideDown = function (element, /* optional */ options) { -// /*** -// -// Slide an element down. -// It needs to have the content of the element wrapped in a container -// element with fixed height. -// -// ***/ -// var d = MochiKit.DOM; -// var b = MochiKit.Base; -// element = d.getElement(element); -// if (!element.firstChild) { -// throw "MochiKit.Visual.slideDown must be used on a element with a child"; -// } -// d.removeEmptyTextNodes(element); -// var oldInnerBottom = d.getStyle(element.firstChild, 'bottom') || 0; -// var elementDimensions = MochiKit.Style.getElementDimensions(element); -// options = b.update({ -// scaleContent: false, -// scaleX: false, -// scaleFrom: 0, -// scaleMode: {originalHeight: elementDimensions.h, -// originalWidth: elementDimensions.w}, -// restoreAfterFinish: true, -// afterSetupInternal: function (effect) { -// d.makePositioned(effect.element); -// d.makePositioned(effect.element.firstChild); -// if (b.isOpera()) { -// d.setStyle(effect.element, {top: ''}); -// } -// d.makeClipping(effect.element); -// d.setStyle(effect.element, {height: '0px'}); -// MochiKit.Style.showElement(effect.element); -// }, -// afterUpdateInternal: function (effect) { -// d.setStyle(effect.element.firstChild, -// {bottom: (effect.dims[0] - effect.element.clientHeight) + 'px'}) -// }, -// afterFinishInternal: function (effect) { -// d.undoClipping(effect.element); -// // IE will crash if child is undoPositioned first -// if (b.isIE()) { -// d.undoPositioned(effect.element); -// d.undoPositioned(effect.element.firstChild); -// } else { -// d.undoPositioned(effect.element.firstChild); -// d.undoPositioned(effect.element); -// } -// d.setStyle(effect.element.firstChild, -// {bottom: oldInnerBottom}); -// } -// }, options || {}); -// -// return new MochiKit.Visual.Scale(element, 100, options); -//}; - -//MochiKit.Visual.slideUp = function (element, /* optional */ options) { -// /*** -// -// Slide an element up. -// It needs to have the content of the element wrapped in a container -// element with fixed height. -// -// ***/ -// var d = MochiKit.DOM; -// var b = MochiKit.Base; -// element = d.getElement(element); -// if (!element.firstChild) { -// throw "MochiKit.Visual.slideUp must be used on a element with a child"; -// } -// d.removeEmptyTextNodes(element); -// var oldInnerBottom = d.getStyle(element.firstChild, 'bottom'); -// options = b.update({ -// scaleContent: false, -// scaleX: false, -// scaleMode: 'box', -// scaleFrom: 100, -// restoreAfterFinish: true, -// beforeStartInternal: function (effect) { -// d.makePositioned(effect.element); -// d.makePositioned(effect.element.firstChild); -// if (b.isOpera()) { -// d.setStyle(effect.element, {top: ''}); -// } -// d.makeClipping(effect.element); -// MochiKit.Style.showElement(effect.element); -// }, -// afterUpdateInternal: function (effect) { -// d.setStyle(effect.element.firstChild, -// {bottom: (effect.dims[0] - effect.element.clientHeight) + 'px'}); -// }, -// afterFinishInternal: function (effect) { -// MochiKit.Style.hideElement(effect.element); -// d.undoClipping(effect.element); -// d.undoPositioned(effect.element.firstChild); -// d.undoPositioned(effect.element); -// d.setStyle(effect.element.firstChild, {bottom: oldInnerBottom}); -// } -// }, options || {}); -// return new MochiKit.Visual.Scale(element, 0, options); -//}; - -// Bug in opera makes the TD containing this element expand for a instance -// after finish -//MochiKit.Visual.squish = function (element, /* optional */ options) { -// /*** -// -// Reduce an element and make it disappear. -// -// ***/ -// var d = MochiKit.DOM; -// var b = MochiKit.Base; -// options = b.update({ -// restoreAfterFinish: true, -// beforeSetupInternal: function (effect) { -// d.makeClipping(effect.element); -// }, -// afterFinishInternal: function (effect) { -// MochiKit.Style.hideElement(effect.element); -// d.undoClipping(effect.element); -// } -// }, options || {}); -// -// return new MochiKit.Visual.Scale(element, b.isOpera() ? 1 : 0, options); -//}; -// -//MochiKit.Visual.grow = function (element, /* optional */ options) { -// /*** -// -// Grow an element to its original size. Make it zero-sized before -// if necessary. -// -// ***/ -// var d = MochiKit.DOM; -// var v = MochiKit.Visual; -// element = d.getElement(element); -// options = MochiKit.Base.update({ -// direction: 'center', -// moveTransition: v.Transitions.sinoidal, -// scaleTransition: v.Transitions.sinoidal, -// opacityTransition: v.Transitions.full -// }, options || {}); -// var oldStyle = { -// top: element.style.top, -// left: element.style.left, -// height: element.style.height, -// width: element.style.width, -// opacity: d.getInlineOpacity(element) -// }; -// -// var dims = MochiKit.Style.getElementDimensions(element); -// var initialMoveX, initialMoveY; -// var moveX, moveY; -// -// switch (options.direction) { -// case 'top-left': -// initialMoveX = initialMoveY = moveX = moveY = 0; -// break; -// case 'top-right': -// initialMoveX = dims.w; -// initialMoveY = moveY = 0; -// moveX = -dims.w; -// break; -// case 'bottom-left': -// initialMoveX = moveX = 0; -// initialMoveY = dims.h; -// moveY = -dims.h; -// break; -// case 'bottom-right': -// initialMoveX = dims.w; -// initialMoveY = dims.h; -// moveX = -dims.w; -// moveY = -dims.h; -// break; -// case 'center': -// initialMoveX = dims.w / 2; -// initialMoveY = dims.h / 2; -// moveX = -dims.w / 2; -// moveY = -dims.h / 2; -// break; -// } -// -// var optionsParallel = MochiKit.Base.update({ -// beforeSetupInternal: function (effect) { -// d.setStyle(effect.effects[0].element, {height: '0px'}); -// MochiKit.Style.showElement(effect.effects[0].element); -// }, -// afterFinishInternal: function (effect) { -// d.undoClipping(effect.effects[0].element); -// d.undoPositioned(effect.effects[0].element); -// d.setStyle(effect.effects[0].element, oldStyle); -// } -// }, options || {}); -// -// return new v.Move(element, { -// x: initialMoveX, -// y: initialMoveY, -// duration: 0.01, -// beforeSetupInternal: function (effect) { -// MochiKit.Style.hideElement(effect.element); -// d.makeClipping(effect.element); -// d.makePositioned(effect.element); -// }, -// afterFinishInternal: function (effect) { -// new v.Parallel( -// [new v.Opacity(effect.element, { -// sync: true, to: 1.0, from: 0.0, -// transition: options.opacityTransition -// }), -// new v.Move(effect.element, { -// x: moveX, y: moveY, sync: true, -// transition: options.moveTransition -// }), -// new v.Scale(effect.element, 100, { -// scaleMode: {originalHeight: dims.h, -// originalWidth: dims.w}, -// sync: true, -// scaleFrom: MochiKit.Base.isOpera() ? 1 : 0, -// transition: options.scaleTransition, -// restoreAfterFinish: true -// }) -// ], optionsParallel -// ); -// } -// }); -//}; -// -//MochiKit.Visual.shrink = function (element, /* optional */ options) { -// /*** -// -// Shrink an element and make it disappear. -// -// ***/ -// var d = MochiKit.DOM; -// var v = MochiKit.Visual; -// element = d.getElement(element); -// options = MochiKit.Base.update({ -// direction: 'center', -// moveTransition: v.Transitions.sinoidal, -// scaleTransition: v.Transitions.sinoidal, -// opacityTransition: v.Transitions.none -// }, options || {}); -// var oldStyle = { -// top: element.style.top, -// left: element.style.left, -// height: element.style.height, -// width: element.style.width, -// opacity: d.getInlineOpacity(element) -// }; -// -// var dims = MochiKit.Style.getElementDimensions(element); -// var moveX, moveY; -// -// switch (options.direction) { -// case 'top-left': -// moveX = moveY = 0; -// break; -// case 'top-right': -// moveX = dims.w; -// moveY = 0; -// break; -// case 'bottom-left': -// moveX = 0; -// moveY = dims.h; -// break; -// case 'bottom-right': -// moveX = dims.w; -// moveY = dims.h; -// break; -// case 'center': -// moveX = dims.w / 2; -// moveY = dims.h / 2; -// break; -// } -// -// var optionsParallel = MochiKit.Base.update({ -// beforeStartInternal: function (effect) { -// d.makePositioned(effect.effects[0].element); -// d.makeClipping(effect.effects[0].element); -// }, -// afterFinishInternal: function (effect) { -// MochiKit.Style.hideElement(effect.effects[0].element); -// d.undoClipping(effect.effects[0].element); -// d.undoPositioned(effect.effects[0].element); -// d.setStyle(effect.effects[0].element, oldStyle); -// } -// }, options || {}); -// -// return new v.Parallel( -// [new v.Opacity(element, { -// sync: true, to: 0.0, from: 1.0, -// transition: options.opacityTransition -// }), -// new v.Scale(element, MochiKit.Base.isOpera() ? 1 : 0, { -// sync: true, transition: options.scaleTransition, -// restoreAfterFinish: true -// }), -// new v.Move(element, { -// x: moveX, y: moveY, sync: true, transition: options.moveTransition -// }) -// ], optionsParallel -// ); -//}; -// -//MochiKit.Visual.pulsate = function (element, /* optional */ options) { -// /*** -// -// Pulse an element between appear/fade. -// -// ***/ -// var d = MochiKit.DOM; -// var v = MochiKit.Visual; -// var b = MochiKit.Base; -// element = d.getElement(element); -// var oldOpacity = d.getInlineOpacity(element); -// options = b.update({ -// duration: 3.0, -// from: 0, -// afterFinishInternal: function (effect) { -// d.setStyle(effect.element, {opacity: oldOpacity}); -// } -// }, options || {}); -// var transition = options.transition || v.Transitions.sinoidal; -// var reverser = b.bind(function (pos) { -// return transition(1 - v.Transitions.pulse(pos)); -// }, transition); -// b.bind(reverser, transition); -// return new v.Opacity(element, b.update({ -// transition: reverser}, options)); -//}; -// -//MochiKit.Visual.fold = function (element, /* optional */ options) { -// /*** -// -// Fold an element, first vertically, then horizontally. -// -// ***/ -// var d = MochiKit.DOM; -// var v = MochiKit.Visual; -// element = d.getElement(element); -// var oldStyle = { -// top: element.style.top, -// left: element.style.left, -// width: element.style.width, -// height: element.style.height -// }; -// d.makeClipping(element); -// options = MochiKit.Base.update({ -// scaleContent: false, -// scaleX: false, -// afterFinishInternal: function (effect) { -// new v.Scale(element, 1, { -// scaleContent: false, -// scaleY: false, -// afterFinishInternal: function (effect) { -// MochiKit.Style.hideElement(effect.element); -// d.undoClipping(effect.element); -// d.setStyle(effect.element, oldStyle); -// } -// }); -// } -// }, options || {}); -// return new v.Scale(element, 5, options); -//}; - - -// Compatibility with MochiKit 1.0 -MochiKit.Visual.Color = MochiKit.Color.Color; -MochiKit.Visual.getElementsComputedStyle = MochiKit.DOM.computedStyle; - -/* end of Rico adaptation */ - -MochiKit.Visual.__new__ = function () { - var m = MochiKit.Base; - - m.nameFunctions(this); - - this.EXPORT_TAGS = { - ":common": this.EXPORT, - ":all": m.concat(this.EXPORT, this.EXPORT_OK) - }; - -}; - -MochiKit.Visual.EXPORT = [ - "roundElement", - "roundClass", - "tagifyText", - "multiple", - "toggle", - "Base", - "Parallel", - "Opacity", - "Move", - "Scale", - "Highlight", - "ScrollTo", - "fade", - "appear", - "puff", - "blindUp", - "blindDown", - "switchOff", - "dropOut", - "shake", - "slideDown", - "slideUp", - "squish", - "grow", - "shrink", - "pulsate", - "fold" -]; - -MochiKit.Visual.EXPORT_OK = [ - "PAIRS" -]; - -MochiKit.Visual.__new__(); - -MochiKit.Base._exportSymbols(this, MochiKit.Visual); diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/__package__.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/__package__.js deleted file mode 100644 index 4c58c3947..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/MochiKit/__package__.js +++ /dev/null @@ -1,19 +0,0 @@ -dojo.hostenv.conditionalLoadModule({ - "common": [ - "MochiKit.Base", - "MochiKit.Iter", - "MochiKit.Logging", - "MochiKit.DateTime", - "MochiKit.Format", - "MochiKit.Async", - "MochiKit.Color" - ], - "browser": [ - "MochiKit.DOM", - "MochiKit.Style", - "MochiKit.Signal", - "MochiKit.LoggingPane", - "MochiKit.Visual" - ] -}); -dojo.hostenv.moduleLoaded("MochiKit.*"); diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/calendar.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/calendar.js deleted file mode 100644 index 1f3ee394b..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/calendar.js +++ /dev/null @@ -1,695 +0,0 @@ -// BEGIN USER-EDITABLE SECTION ----------------------------------------------------- - -// CALENDAR COLORS -topBackground = "black"; // BG COLOR OF THE TOP FRAME -bottomBackground = "white"; // BG COLOR OF THE BOTTOM FRAME -tableBGColor = "black"; // BG COLOR OF THE BOTTOM FRAME'S TABLE -cellColor = "lightgrey"; // TABLE CELL BG COLOR OF THE DATE CELLS IN THE BOTTOM FRAME -headingCellColor = "white"; // TABLE CELL BG COLOR OF THE WEEKDAY ABBREVIATIONS -headingTextColor = "black"; // TEXT COLOR OF THE WEEKDAY ABBREVIATIONS -dateColor = "blue"; // TEXT COLOR OF THE LISTED DATES (1-28+) -focusColor = "#ff0000"; // TEXT COLOR OF THE SELECTED DATE (OR CURRENT DATE) -hoverColor = "darkred"; // TEXT COLOR OF A LINK WHEN YOU HOVER OVER IT -fontStyle = "12pt arial, helvetica"; // TEXT STYLE FOR DATES -headingFontStyle = "bold 12pt arial, helvetica"; // TEXT STYLE FOR WEEKDAY ABBREVIATIONS - -// FORMATTING PREFERENCES -bottomBorder = false; // TRUE/FALSE (WHETHER TO DISPLAY BOTTOM CALENDAR BORDER) -tableBorder = 0; // SIZE OF CALENDAR TABLE BORDER (BOTTOM FRAME) 0=none - -var DateTimeFormat = true; //"DateTime" if true, else a "Date" - -// END USER-EDITABLE SECTION ------------------------------------------------------- - -// DETERMINE BROWSER BRAND -var isNav = false; -var isIE = false; - -// ASSUME IT'S EITHER NETSCAPE OR MSIE -if (navigator.appName == "Netscape") { - isNav = true; -} -else { - isIE = true; -} - -// global variable for top frame and bottom frame -var calDocTop; -var calDocBottom; - -// PRE-BUILD PORTIONS OF THE CALENDAR WHEN THIS JS LIBRARY LOADS INTO THE BROWSER -buildCalParts(); - -// CALENDAR FUNCTIONS BEGIN HERE --------------------------------------------------- - -// SET THE INITIAL VALUE OF THE GLOBAL DATE FIELD -function setDateField(formName, dateField) { - - // ASSIGN THE INCOMING FIELD OBJECT TO A GLOBAL VARIABLE - thisform = document.forms[formName]; - calDateField = thisform[dateField]; - - // GET THE VALUE OF THE INCOMING FIELD - inDate = thisform[dateField].value; - - // SET calDate TO THE DATE IN THE INCOMING FIELD OR DEFAULT TO TODAY'S DATE - setInitialDate(); - - // THE CALENDAR FRAMESET DOCUMENTS ARE CREATED BY JAVASCRIPT FUNCTIONS - calDocTop = buildTopCalFrame(); - calDocBottom = buildBottomCalFrame(); -} - - -// SET THE INITIAL CALENDAR DATE TO TODAY OR TO THE EXISTING VALUE IN dateField -function setInitialDate() { - - calDate = ParseDate(inDate, DateTimeFormat); - - // IF THE INCOMING DATE IS INVALID, USE THE CURRENT DATE - if (isNaN(calDate)) { - - // ADD CUSTOM DATE PARSING HERE - // IF IT FAILS, SIMPLY CREATE A NEW DATE OBJECT WHICH DEFAULTS TO THE CURRENT DATE - calDate = new Date(); - } - - // KEEP TRACK OF THE CURRENT DAY VALUE - calDay = calDate.getDate(); - - // SET DAY VALUE TO 1... TO AVOID JAVASCRIPT DATE CALCULATION ANOMALIES - // (IF THE MONTH CHANGES TO FEB AND THE DAY IS 30, THE MONTH WOULD CHANGE TO MARCH - // AND THE DAY WOULD CHANGE TO 2. SETTING THE DAY TO 1 WILL PREVENT THAT) - calDate.setDate(1); -} - -// CREATE THE TOP CALENDAR FRAME -function buildTopCalFrame() { - - // CREATE THE TOP FRAME OF THE CALENDAR - var calDoc = - "" + - "" + - "" + - "" + - "
    " + - "
    " + - "" + - "" + - "" + - "" + - "" + - "" + - "
    " + - "
    " + - getMonthSelect() + - "" + - "
    " + - "
    " + - "
    " + - "" + - "
    " + - "
    " + - "
    " + - "
    " + - "" + - ""; - - return calDoc; -} - -// CREATE THE BOTTOM CALENDAR FRAME -// (THE MONTHLY CALENDAR) -function buildBottomCalFrame() { - // START CALENDAR DOCUMENT - var calDoc = calendarBegin; - - // GET MONTH, AND YEAR FROM GLOBAL CALENDAR DATE - month = calDate.getMonth(); - year = calDate.getFullYear(); - - - // GET GLOBALLY-TRACKED DAY VALUE (PREVENTS JAVASCRIPT DATE ANOMALIES) - day = calDay; - - var i = 0; - - // DETERMINE THE NUMBER OF DAYS IN THE CURRENT MONTH - var days = getDaysInMonth(); - - // IF GLOBAL DAY VALUE IS > THAN DAYS IN MONTH, HIGHLIGHT LAST DAY IN MONTH - if (day > days) { - day = days; - } - - // DETERMINE WHAT DAY OF THE WEEK THE CALENDAR STARTS ON - var firstOfMonth = new Date (year, month, 1); - - // GET THE DAY OF THE WEEK THE FIRST DAY OF THE MONTH FALLS ON - var startingPos = firstOfMonth.getDay(); - days += startingPos; - - // KEEP TRACK OF THE COLUMNS, START A NEW ROW AFTER EVERY 7 COLUMNS - var columnCount = 0; - - // MAKE BEGINNING NON-DATE CELLS BLANK - for (i = 0; i < startingPos; i++) { - - calDoc += blankCell; - columnCount++; - } - - // SET VALUES FOR DAYS OF THE MONTH - var currentDay = 0; - var dayType = "weekday"; - - // DATE CELLS CONTAIN A NUMBER - for (i = startingPos; i < days; i++) { - - var paddingChar = " "; - - // ADJUST SPACING SO THAT ALL LINKS HAVE RELATIVELY EQUAL WIDTHS - if (i-startingPos+1 < 10) { - padding = "  "; - } - else { - padding = " "; - } - - // GET THE DAY CURRENTLY BEING WRITTEN - currentDay = i-startingPos+1; - - // SET THE TYPE OF DAY, THE focusDay GENERALLY APPEARS AS A DIFFERENT COLOR - if (currentDay == day) { - dayType = "focusDay"; - } - else { - dayType = "weekDay"; - } - - // ADD THE DAY TO THE CALENDAR STRING - calDoc += "" + - "" + padding + currentDay + paddingChar + ""; - - columnCount++; - - // START A NEW ROW WHEN NECESSARY - if (columnCount % 7 == 0) { - calDoc += ""; - } - } - - // MAKE REMAINING NON-DATE CELLS BLANK - for (i=days; i<42; i++) { - - calDoc += blankCell; - columnCount++; - - // START A NEW ROW WHEN NECESSARY - if (columnCount % 7 == 0) { - calDoc += ""; - if (i<41) { - calDoc += ""; - } - } - } - - // FINISH THE NEW CALENDAR PAGE - calDoc += calendarEnd; - - // RETURN THE COMPLETED CALENDAR PAGE - return calDoc; -} - - -// WRITE THE MONTHLY CALENDAR TO THE BOTTOM CALENDAR FRAME -function writeCalendar() { - // CREATE THE NEW CALENDAR FOR THE SELECTED MONTH & YEAR - calDocBottom = buildBottomCalFrame(); - - if (document.getElementById) { // ns6 & ie - top.newWin.frames['bottomCalFrame'].document.getElementById('bottomDiv').innerHTML = calDocBottom; - } else { - // WRITE THE NEW CALENDAR TO THE BOTTOM FRAME - top.newWin.frames['bottomCalFrame'].document.open(); - top.newWin.frames['bottomCalFrame'].document.write(calDocBottom); - top.newWin.frames['bottomCalFrame'].document.close(); - } -} - -// SET THE CALENDAR TO TODAY'S DATE AND DISPLAY THE NEW CALENDAR -function setToday() { - - // SET GLOBAL DATE TO TODAY'S DATE - calDate = new Date(); - - // SET DAY MONTH AND YEAR TO TODAY'S DATE - var month = calDate.getMonth(); - var year = calDate.getFullYear(); - - // SET MONTH IN DROP-DOWN LIST - top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex = month; - - // SET YEAR VALUE - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - - // SET THE DAY VALUE - calDay = calDate.getDate(); - - // DISPLAY THE NEW CALENDAR - writeCalendar(); -} - - -// SET THE GLOBAL DATE TO THE NEWLY ENTERED YEAR AND REDRAW THE CALENDAR -function setYear() { - - // GET THE NEW YEAR VALUE - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - - // IF IT'S A FOUR-DIGIT YEAR THEN CHANGE THE CALENDAR - if (isFourDigitYear(year)) { - calDate.setFullYear(year); - writeCalendar(); - top.newWin.frames['topCalFrame'].document.calControl.year.blur(); - } - else { - // HIGHLIGHT THE YEAR IF THE YEAR IS NOT FOUR DIGITS IN LENGTH - top.newWin.frames['topCalFrame'].document.calControl.year.focus(); - top.newWin.frames['topCalFrame'].document.calControl.year.select(); - } -} - - -// SET THE GLOBAL DATE TO THE SELECTED MONTH AND REDRAW THE CALENDAR -function setCurrentMonth() { - - // GET THE NEWLY SELECTED MONTH AND CHANGE THE CALENDAR ACCORDINGLY - var month = top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex; - - calDate.setMonth(month); - writeCalendar(); -} - - -// SET THE GLOBAL DATE TO THE PREVIOUS YEAR AND REDRAW THE CALENDAR -function setPreviousYear() { - - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - - if (isFourDigitYear(year) && year > 1000) { - year--; - calDate.setFullYear(year); - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - writeCalendar(); - } -} - - -// SET THE GLOBAL DATE TO THE PREVIOUS MONTH AND REDRAW THE CALENDAR -function setPreviousMonth() { - - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - if (isFourDigitYear(year)) { - var month = top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex; - - // IF MONTH IS JANUARY, SET MONTH TO DECEMBER AND DECREMENT THE YEAR - if (month == 0) { - month = 11; - if (year > 1000) { - year--; - calDate.setFullYear(year); - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - } - } - else { - month--; - } - calDate.setMonth(month); - top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex = month; - writeCalendar(); - } -} - - -// SET THE GLOBAL DATE TO THE NEXT MONTH AND REDRAW THE CALENDAR -function setNextMonth() { - - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - - if (isFourDigitYear(year)) { - var month = top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex; - - // IF MONTH IS DECEMBER, SET MONTH TO JANUARY AND INCREMENT THE YEAR - if (month == 11) { - month = 0; - year++; - calDate.setFullYear(year); - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - } - else { - month++; - } - calDate.setMonth(month); - top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex = month; - writeCalendar(); - } -} - - -// SET THE GLOBAL DATE TO THE NEXT YEAR AND REDRAW THE CALENDAR -function setNextYear() { - - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - if (isFourDigitYear(year)) { - year++; - calDate.setFullYear(year); - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - writeCalendar(); - } -} - - -// GET NUMBER OF DAYS IN MONTH -function getDaysInMonth() { - - var days; - var month = calDate.getMonth()+1; - var year = calDate.getFullYear(); - - // RETURN 31 DAYS - if (month==1 || month==3 || month==5 || month==7 || month==8 || - month==10 || month==12) { - days=31; - } - // RETURN 30 DAYS - else if (month==4 || month==6 || month==9 || month==11) { - days=30; - } - // RETURN 29 DAYS - else if (month==2) { - if (isLeapYear(year)) { - days=29; - } - // RETURN 28 DAYS - else { - days=28; - } - } - return (days); -} - - -// CHECK TO SEE IF YEAR IS A LEAP YEAR -function isLeapYear (Year) { - - if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) { - return (true); - } - else { - return (false); - } -} - - -// ENSURE THAT THE YEAR IS FOUR DIGITS IN LENGTH -function isFourDigitYear(year) { - - if (year == null || year.match(/^[0-9]{4}$/) == null){ - top.newWin.frames['topCalFrame'].document.calControl.year.value = calDate.getFullYear(); - top.newWin.frames['topCalFrame'].document.calControl.year.select(); - top.newWin.frames['topCalFrame'].document.calControl.year.focus(); - } - else { - return true; - } -} - - -// BUILD THE MONTH SELECT LIST -function getMonthSelect() { - - monthArray = new Array(L_January, L_February, L_March, L_April, L_May, L_June, - L_July, L_August, L_September, L_October, L_November, L_December); - - - // DETERMINE MONTH TO SET AS DEFAULT - var activeMonth = calDate.getMonth(); - - // START HTML SELECT LIST ELEMENT - monthSelect = ""; - - // RETURN A STRING VALUE WHICH CONTAINS A SELECT LIST OF ALL 12 MONTHS - return monthSelect; -} - - -// SET DAYS OF THE WEEK DEPENDING ON LANGUAGE -function createWeekdayList() { - - weekdayArray = new Array(L_Su,L_Mo,L_Tu,L_We,L_Th,L_Fr,L_Sa); - - - // START HTML TO HOLD WEEKDAY NAMES IN TABLE FORMAT - var weekdays = ""; - - // LOOP THROUGH WEEKDAY ARRAY - for (i in weekdayArray) { - - weekdays += "" + weekdayArray[i] + ""; - } - weekdays += ""; - - // RETURN TABLE ROW OF WEEKDAY ABBREVIATIONS TO DISPLAY ABOVE THE CALENDAR - return weekdays; -} - - -// PRE-BUILD PORTIONS OF THE CALENDAR (FOR PERFORMANCE REASONS) -function buildCalParts() { - - // GENERATE WEEKDAY HEADERS FOR THE CALENDAR - weekdays = createWeekdayList(); - - // BUILD THE BLANK CELL ROWS - blankCell = "   "; - - // BUILD THE TOP PORTION OF THE CALENDAR PAGE USING CSS TO CONTROL SOME DISPLAY ELEMENTS - calendarBegin = - "" + - "" + - // STYLESHEET DEFINES APPEARANCE OF CALENDAR - "" + - - "" + - ""; - if (document.getElementById) { // ns6 & ie - calendarBegin += - "
    "; - } - calendarBegin += - "
    "; - - // NAVIGATOR NEEDS A TABLE CONTAINER TO DISPLAY THE TABLE OUTLINES PROPERLY - if (isNav) { - calendarBegin += - "
    "; - } - - // BUILD WEEKDAY HEADINGS - calendarBegin += - "" + - weekdays + - ""; - - - // BUILD THE BOTTOM PORTION OF THE CALENDAR PAGE - calendarEnd = ""; - - // WHETHER OR NOT TO DISPLAY A THICK LINE BELOW THE CALENDAR - if (bottomBorder) { - calendarEnd += ""; - } - - // NAVIGATOR NEEDS A TABLE CONTAINER TO DISPLAY THE BORDERS PROPERLY - if (isNav) { - calendarEnd += "
    "; - } - - // END THE TABLE AND HTML DOCUMENT - calendarEnd += - "
    " + - "
    "; - if (document.getElementById) { // ns6 & ie - calendarEnd += - "
    "; - } - calendarEnd += - "" + - ""; -} - - -// REPLACE ALL INSTANCES OF find WITH replace -// inString: the string you want to convert -// find: the value to search for -// replace: the value to substitute -// -// usage: jsReplace(inString, find, replace); -// example: jsReplace("To be or not to be", "be", "ski"); -// result: "To ski or not to ski" -// -function jsReplace(inString, find, replace) { - - var outString = ""; - - if (!inString) { - return ""; - } - - // REPLACE ALL INSTANCES OF find WITH replace - if (inString.indexOf(find) != -1) { - // SEPARATE THE STRING INTO AN ARRAY OF STRINGS USING THE VALUE IN find - t = inString.split(find); - - // JOIN ALL ELEMENTS OF THE ARRAY, SEPARATED BY THE VALUE IN replace - return (t.join(replace)); - } - else { - return inString; - } -} - - -// JAVASCRIPT FUNCTION -- DOES NOTHING (USED FOR THE HREF IN THE CALENDAR CALL) -function doNothing() { -} - - -// ENSURE THAT VALUE IS TWO DIGITS IN LENGTH -function makeTwoDigit(inValue) { - - var numVal = parseInt(inValue, 10); - - // VALUE IS LESS THAN TWO DIGITS IN LENGTH - if (numVal < 10) { - - // ADD A LEADING ZERO TO THE VALUE AND RETURN IT - return("0" + numVal); - } - else { - return numVal; - } -} - - -// SET FIELD VALUE TO THE DATE SELECTED AND CLOSE THE CALENDAR WINDOW -function returnDate(inDay) -{ - // inDay = THE DAY THE USER CLICKED ON - calDate.setDate(inDay); - - // SET THE DATE RETURNED TO THE USER - var day = calDate.getDate(); - var month = calDate.getMonth()+1; - var year = calDate.getFullYear(); - - if ( DateTimeFormat == true ) - outDate = "DateTime("; - else - outDate = "Date("; - - outDate += year + ","; - outDate += month + ","; - outDate += day; - - if ( DateTimeFormat == true ) { - outDate += ","; - outDate += gHour + ","; gHour = "0"; - outDate += gMin + ","; gMin = "0"; - outDate += gSec; gSec = "0"; - } - outDate += ")"; - - // SET THE VALUE OF THE FIELD THAT WAS PASSED TO THE CALENDAR - calDateField.value = outDate; - - // GIVE FOCUS BACK TO THE DATE FIELD - calDateField.focus(); - - // CLOSE THE CALENDAR WINDOW - top.newWin.close() -} - -var gHour = "0"; -var gMin = "0"; -var gSec = "0"; -var regDateTimePrompt = /^(D|d)(A|a)(T|t)(E|e)(T|t)(I|i)(M|m)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *, *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/ -function ParseDateTimePrompt(inDate) -{ - if ( regDateTimePrompt.test ( inDate ) ) - { - var sDate = inDate.substr ( inDate.indexOf("(")+1 ); //move past "DateTime (" - sDate = sDate.substr ( 0, sDate.lastIndexOf(")") ); //remove trailing ")" - var dateArray = sDate.split (','); - var _date = new Date ( dateArray[0], Number(dateArray[1]) - 1, dateArray[2] ); - gHour = dateArray[3]; gMin = dateArray[4]; gSec = dateArray[5]; - return _date; - } - return new Date (); -} - -var regDatePrompt = /^(D|d)(A|a)(T|t)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *\)$/ -function ParseDatePrompt(inDate) -{ - if ( regDatePrompt.test ( inDate ) ) - { - var sDate = inDate.substr ( inDate.indexOf("(")+1 ); //move past "Date (" - sDate = sDate.substr ( 0, sDate.lastIndexOf(")") ); //remove trailing ")" - var dateArray = sDate.split (','); - return new Date ( dateArray[0], Number(dateArray[1]) - 1, dateArray[2] ); - } - return new Date(); -} - -function ParseDate(inDate, bDateTimeFormat) -{ - var result; - - if (bDateTimeFormat == true) { - result = ParseDateTimePrompt(inDate); - } else { - result = ParseDatePrompt(inDate); - } - - return result; -} diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/calendar_param.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/calendar_param.js deleted file mode 100644 index 5d70cbc82..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/calendar_param.js +++ /dev/null @@ -1,704 +0,0 @@ -// Modified Date: 11/30/1999 -// Modified By: Robert W. Husted -// Notes: Added frameset support (changed reference for "newWin" to "top.newWin") -// Also changed Spanish "March" from "Marcha" to "Marzo" -// Fixed JavaScript Date Anomaly affecting days > 28 -// -// Modified by Crystal Decisions -// Removed large amounts of comments to shrink file size. -// Removed multi language support as language set by user as accept-language and navigator.language don't necessarily match -// Removed formatting code as only format wanted is for Crystal Reports Date/DateTime parameters -// Moved resource strings to top of file for translation -// Added A.whatever:visited styles so that followed links appear as if they weren't followed - - -// BEGIN USER-EDITABLE SECTION ----------------------------------------------------- - -// CALENDAR COLORS -topBackground = "black"; // BG COLOR OF THE TOP FRAME -bottomBackground = "white"; // BG COLOR OF THE BOTTOM FRAME -tableBGColor = "black"; // BG COLOR OF THE BOTTOM FRAME'S TABLE -cellColor = "lightgrey"; // TABLE CELL BG COLOR OF THE DATE CELLS IN THE BOTTOM FRAME -headingCellColor = "white"; // TABLE CELL BG COLOR OF THE WEEKDAY ABBREVIATIONS -headingTextColor = "black"; // TEXT COLOR OF THE WEEKDAY ABBREVIATIONS -dateColor = "blue"; // TEXT COLOR OF THE LISTED DATES (1-28+) -focusColor = "#ff0000"; // TEXT COLOR OF THE SELECTED DATE (OR CURRENT DATE) -hoverColor = "darkred"; // TEXT COLOR OF A LINK WHEN YOU HOVER OVER IT -fontStyle = "12pt arial, helvetica"; // TEXT STYLE FOR DATES -headingFontStyle = "bold 12pt arial, helvetica"; // TEXT STYLE FOR WEEKDAY ABBREVIATIONS - -// FORMATTING PREFERENCES -bottomBorder = false; // TRUE/FALSE (WHETHER TO DISPLAY BOTTOM CALENDAR BORDER) -tableBorder = 0; // SIZE OF CALENDAR TABLE BORDER (BOTTOM FRAME) 0=none - -var DateTimeFormat = true; //"DateTime" if true, else a "Date" - -// END USER-EDITABLE SECTION ------------------------------------------------------- - -// DETERMINE BROWSER BRAND -var isNav = false; -var isIE = false; - -// ASSUME IT'S EITHER NETSCAPE OR MSIE -if (navigator.appName == "Netscape") { - isNav = true; -} -else { - isIE = true; -} - -// global variable for top frame and bottom frame -var calDocTop; -var calDocBottom; - -// PRE-BUILD PORTIONS OF THE CALENDAR WHEN THIS JS LIBRARY LOADS INTO THE BROWSER -buildCalParts(); - -// CALENDAR FUNCTIONS BEGIN HERE --------------------------------------------------- - -// SET THE INITIAL VALUE OF THE GLOBAL DATE FIELD -function setDateField(formName, dateField, hiddenField) { - - // ASSIGN THE INCOMING FIELD OBJECT TO A GLOBAL VARIABLE - thisform = document.forms[formName]; - calDateField = thisform[dateField]; - calHiddenField = thisform[hiddenField]; - - // GET THE VALUE OF THE INCOMING FIELD - inDate = thisform[hiddenField].value; - - // SET calDate TO THE DATE IN THE INCOMING FIELD OR DEFAULT TO TODAY'S DATE - setInitialDate(); - - // THE CALENDAR FRAMESET DOCUMENTS ARE CREATED BY JAVASCRIPT FUNCTIONS - calDocTop = buildTopCalFrame(); - calDocBottom = buildBottomCalFrame(); -} - - -// SET THE INITIAL CALENDAR DATE TO TODAY OR TO THE EXISTING VALUE IN dateField -function setInitialDate() { - - calDate = ParseDate(inDate, DateTimeFormat); - - // IF THE INCOMING DATE IS INVALID, USE THE CURRENT DATE - if (isNaN(calDate)) { - - // ADD CUSTOM DATE PARSING HERE - // IF IT FAILS, SIMPLY CREATE A NEW DATE OBJECT WHICH DEFAULTS TO THE CURRENT DATE - calDate = new Date(); - } - - // KEEP TRACK OF THE CURRENT DAY VALUE - calDay = calDate.getDate(); - - // SET DAY VALUE TO 1... TO AVOID JAVASCRIPT DATE CALCULATION ANOMALIES - // (IF THE MONTH CHANGES TO FEB AND THE DAY IS 30, THE MONTH WOULD CHANGE TO MARCH - // AND THE DAY WOULD CHANGE TO 2. SETTING THE DAY TO 1 WILL PREVENT THAT) - calDate.setDate(1); -} - -// CREATE THE TOP CALENDAR FRAME -function buildTopCalFrame() { - - // CREATE THE TOP FRAME OF THE CALENDAR - var calDoc = - "" + - "" + - "" + - "" + - "
    " + - "
    " + - "" + - "" + - "" + - "" + - "" + - "" + - "
    " + - "
    " + - getMonthSelect() + - "" + - "
    " + - "
    " + - "
    " + - "" + - "
    " + - "
    " + - "
    " + - "
    " + - "" + - ""; - - return calDoc; -} - -// CREATE THE BOTTOM CALENDAR FRAME -// (THE MONTHLY CALENDAR) -function buildBottomCalFrame() { - // START CALENDAR DOCUMENT - var calDoc = calendarBegin; - - // GET MONTH, AND YEAR FROM GLOBAL CALENDAR DATE - month = calDate.getMonth(); - year = calDate.getFullYear(); - - - // GET GLOBALLY-TRACKED DAY VALUE (PREVENTS JAVASCRIPT DATE ANOMALIES) - day = calDay; - - var i = 0; - - // DETERMINE THE NUMBER OF DAYS IN THE CURRENT MONTH - var days = getDaysInMonth(); - - // IF GLOBAL DAY VALUE IS > THAN DAYS IN MONTH, HIGHLIGHT LAST DAY IN MONTH - if (day > days) { - day = days; - } - - // DETERMINE WHAT DAY OF THE WEEK THE CALENDAR STARTS ON - var firstOfMonth = new Date (year, month, 1); - - // GET THE DAY OF THE WEEK THE FIRST DAY OF THE MONTH FALLS ON - var startingPos = firstOfMonth.getDay(); - days += startingPos; - - // KEEP TRACK OF THE COLUMNS, START A NEW ROW AFTER EVERY 7 COLUMNS - var columnCount = 0; - - // MAKE BEGINNING NON-DATE CELLS BLANK - for (i = 0; i < startingPos; i++) { - - calDoc += blankCell; - columnCount++; - } - - // SET VALUES FOR DAYS OF THE MONTH - var currentDay = 0; - var dayType = "weekday"; - - // DATE CELLS CONTAIN A NUMBER - for (i = startingPos; i < days; i++) { - - var paddingChar = " "; - - // ADJUST SPACING SO THAT ALL LINKS HAVE RELATIVELY EQUAL WIDTHS - if (i-startingPos+1 < 10) { - padding = "  "; - } - else { - padding = " "; - } - - // GET THE DAY CURRENTLY BEING WRITTEN - currentDay = i-startingPos+1; - - // SET THE TYPE OF DAY, THE focusDay GENERALLY APPEARS AS A DIFFERENT COLOR - if (currentDay == day) { - dayType = "focusDay"; - } - else { - dayType = "weekDay"; - } - - // ADD THE DAY TO THE CALENDAR STRING - calDoc += "" + - "" + padding + currentDay + paddingChar + ""; - - columnCount++; - - // START A NEW ROW WHEN NECESSARY - if (columnCount % 7 == 0) { - calDoc += ""; - } - } - - // MAKE REMAINING NON-DATE CELLS BLANK - for (i=days; i<42; i++) { - - calDoc += blankCell; - columnCount++; - - // START A NEW ROW WHEN NECESSARY - if (columnCount % 7 == 0) { - calDoc += ""; - if (i<41) { - calDoc += ""; - } - } - } - - // FINISH THE NEW CALENDAR PAGE - calDoc += calendarEnd; - - // RETURN THE COMPLETED CALENDAR PAGE - return calDoc; -} - - -// WRITE THE MONTHLY CALENDAR TO THE BOTTOM CALENDAR FRAME -function writeCalendar() { - // CREATE THE NEW CALENDAR FOR THE SELECTED MONTH & YEAR - calDocBottom = buildBottomCalFrame(); - - if (document.getElementById) { // ns6 & ie - top.newWin.frames['bottomCalFrame'].document.getElementById('bottomDiv').innerHTML = calDocBottom; - } else { - // WRITE THE NEW CALENDAR TO THE BOTTOM FRAME - top.newWin.frames['bottomCalFrame'].document.open(); - top.newWin.frames['bottomCalFrame'].document.write(calDocBottom); - top.newWin.frames['bottomCalFrame'].document.close(); - } -} - -// SET THE CALENDAR TO TODAY'S DATE AND DISPLAY THE NEW CALENDAR -function setToday() { - - // SET GLOBAL DATE TO TODAY'S DATE - calDate = new Date(); - - // SET DAY MONTH AND YEAR TO TODAY'S DATE - var month = calDate.getMonth(); - var year = calDate.getFullYear(); - - // SET MONTH IN DROP-DOWN LIST - top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex = month; - - // SET YEAR VALUE - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - - // SET THE DAY VALUE - calDay = calDate.getDate(); - - // DISPLAY THE NEW CALENDAR - writeCalendar(); -} - - -// SET THE GLOBAL DATE TO THE NEWLY ENTERED YEAR AND REDRAW THE CALENDAR -function setYear() { - - // GET THE NEW YEAR VALUE - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - - // IF IT'S A FOUR-DIGIT YEAR THEN CHANGE THE CALENDAR - if (isFourDigitYear(year)) { - calDate.setFullYear(year); - writeCalendar(); - top.newWin.frames['topCalFrame'].document.calControl.year.blur(); - } - else { - // HIGHLIGHT THE YEAR IF THE YEAR IS NOT FOUR DIGITS IN LENGTH - top.newWin.frames['topCalFrame'].document.calControl.year.focus(); - top.newWin.frames['topCalFrame'].document.calControl.year.select(); - } -} - - -// SET THE GLOBAL DATE TO THE SELECTED MONTH AND REDRAW THE CALENDAR -function setCurrentMonth() { - - // GET THE NEWLY SELECTED MONTH AND CHANGE THE CALENDAR ACCORDINGLY - var month = top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex; - - calDate.setMonth(month); - writeCalendar(); -} - - -// SET THE GLOBAL DATE TO THE PREVIOUS YEAR AND REDRAW THE CALENDAR -function setPreviousYear() { - - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - - if (isFourDigitYear(year) && year > 1000) { - year--; - calDate.setFullYear(year); - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - writeCalendar(); - } -} - - -// SET THE GLOBAL DATE TO THE PREVIOUS MONTH AND REDRAW THE CALENDAR -function setPreviousMonth() { - - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - if (isFourDigitYear(year)) { - var month = top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex; - - // IF MONTH IS JANUARY, SET MONTH TO DECEMBER AND DECREMENT THE YEAR - if (month == 0) { - month = 11; - if (year > 1000) { - year--; - calDate.setFullYear(year); - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - } - } - else { - month--; - } - calDate.setMonth(month); - top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex = month; - writeCalendar(); - } -} - - -// SET THE GLOBAL DATE TO THE NEXT MONTH AND REDRAW THE CALENDAR -function setNextMonth() { - - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - - if (isFourDigitYear(year)) { - var month = top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex; - - // IF MONTH IS DECEMBER, SET MONTH TO JANUARY AND INCREMENT THE YEAR - if (month == 11) { - month = 0; - year++; - calDate.setFullYear(year); - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - } - else { - month++; - } - calDate.setMonth(month); - top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex = month; - writeCalendar(); - } -} - - -// SET THE GLOBAL DATE TO THE NEXT YEAR AND REDRAW THE CALENDAR -function setNextYear() { - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - if (isFourDigitYear(year)) { - year++; - calDate.setFullYear(year); - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - writeCalendar(); - } -} - - -// GET NUMBER OF DAYS IN MONTH -function getDaysInMonth() { - - var days; - var month = calDate.getMonth()+1; - var year = calDate.getFullYear(); - - // RETURN 31 DAYS - if (month==1 || month==3 || month==5 || month==7 || month==8 || - month==10 || month==12) { - days=31; - } - // RETURN 30 DAYS - else if (month==4 || month==6 || month==9 || month==11) { - days=30; - } - // RETURN 29 DAYS - else if (month==2) { - if (isLeapYear(year)) { - days=29; - } - // RETURN 28 DAYS - else { - days=28; - } - } - return (days); -} - - -// CHECK TO SEE IF YEAR IS A LEAP YEAR -function isLeapYear (Year) { - - if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) { - return (true); - } - else { - return (false); - } -} - - -// ENSURE THAT THE YEAR IS FOUR DIGITS IN LENGTH -function isFourDigitYear(year) { - - if (year == null || year.match(/^[0-9]{4}$/) == null){ - top.newWin.frames['topCalFrame'].document.calControl.year.value = calDate.getFullYear(); - top.newWin.frames['topCalFrame'].document.calControl.year.select(); - top.newWin.frames['topCalFrame'].document.calControl.year.focus(); - } - else { - return true; - } -} - - -// BUILD THE MONTH SELECT LIST -function getMonthSelect() { - - monthArray = new Array(L_January, L_February, L_March, L_April, L_May, L_June, - L_July, L_August, L_September, L_October, L_November, L_December); - - - // DETERMINE MONTH TO SET AS DEFAULT - var activeMonth = calDate.getMonth(); - - // START HTML SELECT LIST ELEMENT - monthSelect = ""; - - // RETURN A STRING VALUE WHICH CONTAINS A SELECT LIST OF ALL 12 MONTHS - return monthSelect; -} - - -// SET DAYS OF THE WEEK DEPENDING ON LANGUAGE -function createWeekdayList() { - - weekdayArray = new Array(L_Su,L_Mo,L_Tu,L_We,L_Th,L_Fr,L_Sa); - - - // START HTML TO HOLD WEEKDAY NAMES IN TABLE FORMAT - var weekdays = ""; - - // LOOP THROUGH WEEKDAY ARRAY - for (i in weekdayArray) { - - weekdays += "" + weekdayArray[i] + ""; - } - weekdays += ""; - - // RETURN TABLE ROW OF WEEKDAY ABBREVIATIONS TO DISPLAY ABOVE THE CALENDAR - return weekdays; -} - - -// PRE-BUILD PORTIONS OF THE CALENDAR (FOR PERFORMANCE REASONS) -function buildCalParts() { - - // GENERATE WEEKDAY HEADERS FOR THE CALENDAR - weekdays = createWeekdayList(); - - // BUILD THE BLANK CELL ROWS - blankCell = "   "; - - // BUILD THE TOP PORTION OF THE CALENDAR PAGE USING CSS TO CONTROL SOME DISPLAY ELEMENTS - calendarBegin = - "" + - "" + - // STYLESHEET DEFINES APPEARANCE OF CALENDAR - "" + - - "" + - ""; - if (document.getElementById) { // ns6 & ie - calendarBegin += - "
    "; - } - calendarBegin += - "
    "; - - // NAVIGATOR NEEDS A TABLE CONTAINER TO DISPLAY THE TABLE OUTLINES PROPERLY - if (isNav) { - calendarBegin += - "
    "; - } - - // BUILD WEEKDAY HEADINGS - calendarBegin += - "" + - weekdays + - ""; - - - // BUILD THE BOTTOM PORTION OF THE CALENDAR PAGE - calendarEnd = ""; - - // WHETHER OR NOT TO DISPLAY A THICK LINE BELOW THE CALENDAR - if (bottomBorder) { - calendarEnd += ""; - } - - // NAVIGATOR NEEDS A TABLE CONTAINER TO DISPLAY THE BORDERS PROPERLY - if (isNav) { - calendarEnd += "
    "; - } - - // END THE TABLE AND HTML DOCUMENT - calendarEnd += - "
    " + - "
    "; - if (document.getElementById) { // ns6 & ie - calendarEnd += - "
    "; - } - calendarEnd += - "" + - ""; -} - - -// REPLACE ALL INSTANCES OF find WITH replace -// inString: the string you want to convert -// find: the value to search for -// replace: the value to substitute -// -// usage: jsReplace(inString, find, replace); -// example: jsReplace("To be or not to be", "be", "ski"); -// result: "To ski or not to ski" -// -function jsReplace(inString, find, replace) { - - var outString = ""; - - if (!inString) { - return ""; - } - - // REPLACE ALL INSTANCES OF find WITH replace - if (inString.indexOf(find) != -1) { - // SEPARATE THE STRING INTO AN ARRAY OF STRINGS USING THE VALUE IN find - t = inString.split(find); - - // JOIN ALL ELEMENTS OF THE ARRAY, SEPARATED BY THE VALUE IN replace - return (t.join(replace)); - } - else { - return inString; - } -} - - -// JAVASCRIPT FUNCTION -- DOES NOTHING (USED FOR THE HREF IN THE CALENDAR CALL) -function doNothing() { -} - - -// ENSURE THAT VALUE IS TWO DIGITS IN LENGTH -function makeTwoDigit(inValue) { - - var numVal = parseInt(inValue, 10); - - // VALUE IS LESS THAN TWO DIGITS IN LENGTH - if (numVal < 10) { - - // ADD A LEADING ZERO TO THE VALUE AND RETURN IT - return("0" + numVal); - } - else { - return numVal; - } -} - - -// SET FIELD VALUE TO THE DATE SELECTED AND CLOSE THE CALENDAR WINDOW -function returnDate(inDay) -{ - // inDay = THE DAY THE USER CLICKED ON - calDate.setDate(inDay); - - // SET THE DATE RETURNED TO THE USER - var day = calDate.getDate(); - var month = calDate.getMonth()+1; - var year = calDate.getFullYear(); - - // SET THE VALUE OF THE FIELD THAT WAS PASSED TO THE CALENDAR - var dt = new Date(year, month - 1, day, 0, 0, 0); - if (this.formatJsDate) - calDateField.value = formatJsDate(dt); - else - calDateField.value = GLDT(dt,true, false); - - calHiddenField.value = "Date("; - calHiddenField.value += year; - calHiddenField.value += ","; - calHiddenField.value += month; - calHiddenField.value += ","; - calHiddenField.value += day; - calHiddenField.value += ")"; - - // GIVE FOCUS BACK TO THE DATE FIELD - calDateField.focus(); - - // CLOSE THE CALENDAR WINDOW - top.newWin.close() -} - -var gHour = "0"; -var gMin = "0"; -var gSec = "0"; -var regDateTimePrompt = /^(D|d)(A|a)(T|t)(E|e)(T|t)(I|i)(M|m)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *, *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/ -function ParseDateTimePrompt(inDate) -{ - if ( regDateTimePrompt.test ( inDate ) ) - { - var sDate = inDate.substr ( inDate.indexOf("(")+1 ); //move past "DateTime (" - sDate = sDate.substr ( 0, sDate.lastIndexOf(")") ); //remove trailing ")" - var dateArray = sDate.split (','); - var _date = new Date ( dateArray[0], Number(dateArray[1]) - 1, dateArray[2] ); - gHour = dateArray[3]; gMin = dateArray[4]; gSec = dateArray[5]; - return _date; - } - return new Date (); -} - -var regDatePrompt = /^(D|d)(A|a)(T|t)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *\)$/ -function ParseDatePrompt(inDate) -{ - if ( regDatePrompt.test ( inDate ) ) - { - var sDate = inDate.substr ( inDate.indexOf("(")+1 ); //move past "Date (" - sDate = sDate.substr ( 0, sDate.lastIndexOf(")") ); //remove trailing ")" - var dateArray = sDate.split (','); - return new Date ( dateArray[0], Number(dateArray[1]) - 1, dateArray[2] ); - } - return new Date(); -} - -function ParseDate(inDate, bDateTimeFormat) -{ - var result; - - if (bDateTimeFormat == true) { - result = ParseDateTimePrompt(inDate); - } else { - result = ParseDatePrompt(inDate); - } - - return result; -} diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ArgumentNormalizer.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ArgumentNormalizer.js deleted file mode 100644 index 5898e9011..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ArgumentNormalizer.js +++ /dev/null @@ -1,126 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/** - * ArgumentNormalizer names and transforms function arguments based upon a - * set of rules provided by the user. - */ - -if (typeof bobj == 'undefined') { - bobj = {}; -} - -bobj.ArgumentNormalizer = function() { - this._rules = []; -}; - -bobj.ArgumentNormalizer.prototype = { - - /** - * Add a rule for naming and transforming arguments. - * When arguments are normalized each rule is applied until a match is - * found. A rule is a set of elements of the following form: - * - * { - * test: [function, null], - * name: [string], - * xform: [function - optional] - * } - * - * There should be one element of the above form for each argument expected - * by the rule. A rule is a match if and only if true is returned by every - * element's test function when passed its corresponding argument. A null - * test function is considered to return true. Rules are tested in the order - * they were added until one matches or there are no more to test. - * - * When a rule matches, it applies the optional xform (transform) functions - * to it arguments and saves the results in a return object with properties - * specified by the names in the rule elements. - * - * Example: - * - * n.addRule({test:isString, name:'description', xform:trim}, - * {test:isNumber, name:'id'}); - * n.addRule({test:isString, name:'description', xform:trim}, - * {test:isString, name:'id', xform:parseInt}); - * - * n.normalize(" Blue car", 11); // First rule matches - * -> {description: "Blue car", id: 11} - * - * n.normalize("Green car ", "55"); // Second rule matches - * -> {description: "Green car", id: 55} - * - * Rule elements may be passed as arrays for brevity. The first rule - * from the example above would be added as follows: - * - * n.addRule([isString, 'description', trim], [isNumber, 'id']); - * - * When an element simply names an argument (no test or transform is - * desired), it may be specified as a string. For example: - * - * n.addRule([isString, 'description', trim], 'id'); - */ - addRule: function() { - this._rules.push(arguments); - }, - - /** - * Normalize the arguments based upon the rules that have been added - * - * @param arguments Arguments to be normalized - * - * @return An object with a property for each transformed argument or null - */ - normalize: function() { - for (var rIdx = 0, nRules = this._rules.length; rIdx < nRules; ++rIdx) { - var rule = this._rules[rIdx]; - - if (rule.length == arguments.length) { - var normalArgs = {}; - - for (var aIdx = 0, nArgs = rule.length; aIdx < nArgs; ++aIdx) { - var argVal = arguments[aIdx]; - var element = rule[aIdx]; - - if (bobj.isString(element)) { // No test specified, just name the argument - var argTest = null; - var argName = element; - var argXform = null; - } - else if (bobj.isArray(element)) { - var argTest = element[0]; - var argName = element[1]; - var argXform = element[2]; - } - else { - var argTest = element.test; - var argName = element.name; - var argXform = element.xform; - } - - if (!argTest || argTest(argVal)) { - normalArgs[argName] = argXform ? argXform(argVal) : argVal; - if (aIdx+1 == nArgs) { // if no more args to check - return normalArgs; // Rule matched, return normalized args - } - } - else { - break; // Rule didn't match, try the next one - } - } - } - } - return null; - }, - - /** - * Applies an array of arguments to normalize() - * - * @param argsArray [Array] Array of arguments to normalize - * - * @return Normalized arguments or null - */ - normalizeArray: function(argsArray) { - return this.normalize.apply(this, argsArray); - } -}; - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ButtonList.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ButtonList.js deleted file mode 100644 index 4e1c18965..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ButtonList.js +++ /dev/null @@ -1,244 +0,0 @@ - -//** ButtonList Widget ************************************************************* - -/** - * ButtonList Constructor - */ -bobj.crv.newButtonList = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - numLines: null, // null allows the height to grow (will fit within the viewport) - buttonWidth: 24, - buttonTooltip: L_bobj_crv_TabList, - changeCB: null, - label: null, - tabIndex: 0, - multiSelect: false, - menuWidth: null, - menuTooltip: null - }, kwArgs); - - var o = newButtonWidget( - kwArgs.id, - kwArgs.label, - bobj.crv.ButtonList._onClick, - kwArgs.buttonWidth, - null, - kwArgs.buttonTooltip, - kwArgs.tabIndex, - 0, _skin+"menus.gif", 7, 16, 0, 81, true, 0, 97); - - o._menu = newListWidget( - kwArgs.id + "_menu", - MochiKit.Base.bind(bobj.crv.ButtonList._onChange, o), - kwArgs.multiSelect, - kwArgs.menuWidth, - kwArgs.numLines || 2, - kwArgs.menuTooltip, - null, //dblClickCB - null); //keyUpCB - - o._listItems = []; - o._blOldInit = o.init; - o._blOldGetHTML = o.getHTML; - o._menuDiv = null; - - o._captureClicks = MenuWidget_captureClicks; - o._releaseClicks = MenuWidget_releaseClicks; - - bobj.fillIn(o, kwArgs); - o.widgetType = 'ButtonList'; - MochiKit.Base.update(o, bobj.crv.ButtonList); - - return o; -}; - -bobj.crv.ButtonList = { - /** - * @return [Widget] Menu/list widget associated with this button. - */ - getMenu : function() { - return this._menu; - }, - - /** - * Add an item to the menu - * - * @param label [String] The text to display in the menu - * @param value [any - opt.] The value associated with the new menu item - * @param isSelected [bool - opt.] True if item should be selected after being added - * @param id [String - opt.] DHTML id associated with menu item; - */ - add : function(label, value, isSelected, id) { - if (this._menu && this._menu.layer) - this._menu.add (label, value, isSelected, id); - - else - this._listItems.push ( { - lbl : label, - val : value, - sel : isSelected, - id : id - }); - }, - - init : function() { - var menu = this._menu; - this._blOldInit (); - menu.init (); - - this._menuDiv = getLayer (this.id + '_menuDiv'); - - var listItems = this._listItems; - for ( var i = 0, len = listItems.length; i < len; ++i) { - var it = listItems[i]; - menu.add (it.lbl, it.val, it.sel, it.id); - } - this._listItems = []; - }, - - getHTML : function() { - var h = bobj.html; - - var menuDivAtts = { - id : this.id + '_menuDiv', - onmousedown : 'event.cancelBubble=true', - 'class' : 'menuFrame', - style : { - visibility : 'hidden', - position : 'absolute', - 'z-index' : 5000 - } - }; - return this._blOldGetHTML () + h.DIV (menuDivAtts, this._menu.getHTML ()); - }, - - /** - * @return [bool] True if and only if the menu is visible - */ - isMenuShowing : function() { - return this._menuDiv && this._menuDiv.style.visibility != 'hidden'; - }, - - /** - * Hide the menu - */ - hideMenu : function() { - if (this._menuDiv) { - this._menuDiv.style.visibility = 'hidden'; - } - }, - - /** - * Position and show the menu - */ - showMenu : function() { - if (this._menuDiv) { - this._captureClicks (); - - var body = document.body; - - if (this._menuDiv.parentNode !== body) { - body.appendChild (this._menuDiv); - } - - var divStyle = this._menuDiv.style; - divStyle.left = '-1000px'; - divStyle.top = '-1000px'; - divStyle.visibility = 'visible'; - - var winDim = MochiKit.Style.getViewportDimensions (); - - var w = this._menu.layer.offsetWidth; - var h = this._menu.getHeight (); - - /* - * If numLines wasn't specified, use as much space as necessary while remaining within the viewport - */ - if (!this.numLines) { - h = Math.min (this._menu.layer.scrollHeight + 10, winDim.h - 10); - this._menu.resize (null, h); - } - - /* Place the menu below the button and aligned with the left edge */ - var btnPos = getPosScrolled (this.layer); - var x = btnPos.x; - var y = btnPos.y + this.getHeight (); - - /* Change coordinates so the whole menu is on the screen */ - var xRight = x + w + 4; - var yBottom = y + h + 4; - - var xMax = winDim.w + body.scrollLeft - Math.max (0, (winDim.w - body.offsetWidth)); - if (xRight > xMax) { - x = Math.max (0, x - (xRight - xMax)); - } - - var yMax = winDim.h + body.scrollTop; - if (yBottom > yMax) { - y = Math.max (0, y - (yBottom - yMax)); - } - - divStyle.left = x + 'px'; - divStyle.top = y + 'px'; - } - }, - - /** - * Private. Capture clicks in the current document so that the menu can be hidden automatically. - */ - _captureClicks : function() { - var BIND = MochiKit.Base.bind; - try { - this.layer.onmousedown = BIND (this._onCaptureClick, this, true); - this._oldMousedown = document.onmousedown; - document.onmousedown = BIND (this._onCaptureClick, this, false); - } catch (ex) { - if (bobj.crv.config.isDebug) { - throw ex; - } - } - }, - - /** - * Private. Stop capturing clicks. - */ - _releaseClicks : function() { - if (this.layer.onmousedown) { /* non-null if clicks are being captured */ - this.layer.onmousedown = null; - document.onmousedown = this._oldMousedown; - } - }, - - - /** - * Private. Button click callback. - */ - _onClick : function() { - if (!this._cancelNextClick) - this.showMenu (); - - this._cancelNextClick = false; - }, - - /** - * Private. Menu change callback. - */ - _onChange : function() { - this._releaseClicks (); - this.hideMenu (); - - if (this.changeCB) - this.changeCB (); - }, - - /** - * Private. Called when a click is captured (after _captureClicks has been called) - */ - _onCaptureClick : function(cancelNext, e) { - this._cancelNextClick = cancelNext; - eventCancelBubble (e); - this.hideMenu (); - this._releaseClicks (); - } -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Calendar.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Calendar.js deleted file mode 100644 index 4960b1f87..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Calendar.js +++ /dev/null @@ -1,539 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof bobj == 'undefined') { - bobj = {}; -} -if (typeof bobj.crv == 'undefined') { - bobj.crv = {}; -} -if (typeof bobj.crv.Calendar == 'undefined') { - bobj.crv.Calendar = {}; -} - -/* -================================================================================ -Calendar Widget -================================================================================ -*/ - -/** - * Get a shared calendar instance - */ -bobj.crv.Calendar.getInstance = function() { - if (!bobj.crv.Calendar.__instance) { - bobj.crv.Calendar.__instance = bobj.crv.newCalendar(); - } - return bobj.crv.Calendar.__instance; -}; - -bobj.crv.Calendar.Signals = { - OK_CLICK: 'okClick', - CANCEL_CLICK: 'cancelClick', - ON_HIDE: 'onHide' -}; - -bobj.crv.newCalendar = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - kwArgs = UPDATE({ - id: bobj.uniqueId() + "_calendar", - showTime: false, - date: new Date(), - // List of formats to match in order of preference. Once a format is - // matched, the time field will be displayed in that format. - timeFormats: ["HH:mm:ss", "H:mm:ss", "H:m:s", "HH:mm", "H:mm", "H:m", - "h:mm:ss a", "h:m:s a", "h:mm:ssa", "h:m:sa", "h:mm a", "h:m a", - "h:mma", "h:ma"] - }, kwArgs); - - var o = newMenuWidget( ); - - o.widgetType = 'Calendar'; - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - - // Update instance with member functions - o._menuJustInTimeInit = o.justInTimeInit; - UPDATE(o, bobj.crv.Calendar); - - o._curTimeFormat = o.timeFormats[0]; - o._cells = []; - o._firstDay = 0; - o._numDays = 0; - - return o; -}; - -bobj.crv.Calendar._createHeaderButtons = function() { - var w = 8; - var h = 4; - var dx = 46; - var dyUp = 0; - var dyDown = 12; - - var bind = MochiKit.Base.bind; - - this._prevMonthBtn = newIconWidget(this.id+"_pm",_skin+'../lov.gif',bind(this._onPrevMonthClick, this),"",_calendarPrevMonthLab,w,h,dx,dyDown); - this._prevYearBtn = newIconWidget(this.id+"_py",_skin+'../lov.gif',bind(this._onPrevYearClick, this),"",_calendarPrevYearLab,w,h,dx,dyDown); - this._nextMonthBtn = newIconWidget(this.id+"_nm",_skin+'../lov.gif',bind(this._onNextMonthClick, this),"",_calendarNextMonthLab,w,h,dx,dyUp); - this._nextYearBtn = newIconWidget(this.id+"_ny",_skin+'../lov.gif',bind(this._onNextYearClick, this),"",_calendarNextYearLab,w,h,dx,dyUp); -}; - -bobj.crv.Calendar._createTimeTextField = function() { - var bind = MochiKit.Base.bind; - - this._timeField = newTextFieldWidget( - this.id + '_time', - bind(this._onTimeChange, this), //changeCB - null, //maxChar - null, //keyUpCB - null, //enterCB - true, //noMargin - null, //tooltip - null, //width - null, //focusCB - null); //blurCB -}; - -bobj.crv.Calendar._createOKCancelButtons = function() { - var bind = MochiKit.Base.bind; - this._okBtn = newButtonWidget(this.id + "_ok", L_bobj_crv_OK, bind(this._onOKClick, this)); - this._cancelBtn = newButtonWidget(this.id + "_cancel", L_bobj_crv_Cancel, bind(this._onCancelClick, this)); -}; - -/** - * Widget will auto-initialize the first time its show method is called. - * Client code shoud not call this method. - */ -bobj.crv.Calendar.justInTimeInit = function() { - this._menuJustInTimeInit(); - - this._prevMonthBtn.init(); - this._prevYearBtn.init(); - this._nextMonthBtn.init(); - this._nextYearBtn.init(); - - this._okBtn.init(); - this._cancelBtn.init(); - - this._timeField.init(); - this._timeField.layer.style.width = '100%'; - this._timeField.setValue(bobj.external.date.formatDate(this.date, this._curTimeFormat)); - - this._timeRow = getLayer(this.id + '_timeRow'); - this._timeSep = getLayer(this.id + '_timeSep'); - - this._month = getLayer(this.id + "_month"); - this._year = getLayer(this.id + "_year"); - - var numCells = 6 * 7; // six rows in the calendar with 7 days each - for (var i = 0; i < numCells; i++) { - this._cells[i] = getLayer(this.id + '_c' + i); - } - - this._update(); -}; - -/** - * Widget will be written into the document the first time its show method is called. - * Client code shoud not call this method. - */ -bobj.crv.Calendar.getHTML = function() { - var h = bobj.html; - var TABLE = h.TABLE; - var TBODY = h.TBODY; - var TR = h.TR; - var TD = h.TD; - var DIV = h.DIV; - var SPAN = h.SPAN; - var A = h.A; - - this._createHeaderButtons(); - this._createTimeTextField(); - this._createOKCancelButtons(); - - var onkeydown = "MenuWidget_keyDown('" + this.id + "', event); return true"; - var onmousedown = "eventCancelBubble(event)"; - var onmouseup = "eventCancelBubble(event)"; - var onkeypress = "eventCancelBubble(event)"; - - var dayHeaderAtt = {'class':"calendarTextPart"}; - - var html = TABLE({dir: 'ltr', id: this.id, border:"0", cellpadding:"0", cellspacing:"0", - onkeydown: onkeydown, onmousedown: onmousedown, onmouseup: onmouseup, onkeypress: onkeypress, - 'class':"menuFrame", style:{cursor:"default", visibility:"hidden",'z-index': 10000}}, - TBODY(null, - TR(null, TD(null, this._getMonthYearHTML())), - TR(null, TD({align:"center"}, - TABLE({border:"0", cellspacing:"0", cellpadding:"0", style:{margin:"2px", 'margin-top': "6px"}}, - TR({align:"center"}, - TD(dayHeaderAtt, L_bobj_crv_SundayShort), - TD(dayHeaderAtt, L_bobj_crv_MondayShort), - TD(dayHeaderAtt, L_bobj_crv_TuesdayShort), - TD(dayHeaderAtt, L_bobj_crv_WednesdayShort), - TD(dayHeaderAtt, L_bobj_crv_ThursdayShort), - TD(dayHeaderAtt, L_bobj_crv_FridayShort), - TD(dayHeaderAtt, L_bobj_crv_SaturdayShort)), - TR(null, TD({colspan:"7", style:{padding:"2px"}}, this._getSeparatorHTML())), - this._getDaysHTML(), - TR(null, TD({colspan:"7", style:{padding:"2px"}}, this._getSeparatorHTML())), - TR({id:this.id + '_timeRow', style:{display:this.showTime ? '' : 'none'}}, - TD({colspan:"7", style:{'padding-top':"3px", 'padding-bottom':"3px", 'padding-right':"10px", 'padding-left':"10px"}}, - this._timeField.getHTML())), - TR({id:this.id + '_timeSep',style:{display:this.showTime ? '' : 'none'}}, - TD({colspan:"7", style:{padding:"2px"}}, this._getSeparatorHTML())), - TR(null, TD({colspan:"7", align:"right", style:{'padding-bottom':"3px", 'padding-top':"3px"}}, - TABLE(null, TBODY(null, TR(null, - TD(null, this._okBtn.getHTML()), - TD(null, this._cancelBtn.getHTML()))))))))))); - - return this._getLinkHTML('startLink_' + this.id) + html + this._getLinkHTML('endLink_' + this.id); -}; - -bobj.crv.Calendar._getMonthYearHTML = function() { - var h = bobj.html; - var TABLE = h.TABLE; - var TBODY = h.TBODY; - var TR = h.TR; - var TD = h.TD; - var DIV = h.DIV; - var SPAN = h.SPAN; - - return TABLE({'class':"dialogzone", width:"100%", cellpadding:"0", cellspacing:"0"}, - TBODY(null, - TR(null, - TD({style:{'padding-top':"1px"}}, this._nextMonthBtn.getHTML()), - TD({rowspan:"2", width:"100%", align:"center", 'class':"dialogzone"}, - SPAN({id:this.id + "_month", tabIndex:"0"}, _month[this.date.getMonth()]), - "  ", - SPAN({id:this.id + "_year", tabIndex:"0"}, this.date.getFullYear())), - TD({style:{'pading-top':"1px"}}, this._nextYearBtn.getHTML())), - TR({valign:"top"}, - TD({style:{'padding-bottom':"1px"}}, this._prevMonthBtn.getHTML()), - TD({style:{'padding-bottom':"1px"}}, this._prevYearBtn.getHTML())))); -}; - -bobj.crv.Calendar._getSeparatorHTML = function() { - var h = bobj.html; - var TABLE = h.TABLE; - var TBODY = h.TBODY; - var TR = h.TR; - var TD = h.TD; - - return TABLE({width:"100%", - height:"3", - cellpadding:"0", - cellspacing:"0", - border:"0", - style:backImgOffset(_skin+"menus.gif",0,80)}, - TBODY(null, TR(null, TD()))); -}; - -bobj.crv.Calendar._getLinkHTML = function(id) { - return bobj.html.A({ - id: id, - href: "javascript:void(0)", - onfocus: "MenuWidget_keepFocus('"+this.id+"')", - style:{ - visibility:"hidden", - position:"absolute" - }}); -}; - -bobj.crv.Calendar._getDaysHTML = function() { - var TD = bobj.html.TD; - var DIV = bobj.html.DIV; - var html = ''; - - for (i = 0; i < 6; ++i) { - html += ''; - - for (j = 0; j < 7; ++j) { - var cellNum = j + (i * 7); - var eventArgs = "(this," + cellNum + "," + "event);"; - - html += TD({id: this.id + '_c' + (i * 7 + j), - 'class':"calendarTextPart", - onmousedown: "bobj.crv.Calendar._onDayMouseDown" + eventArgs, - onmouseover: "bobj.crv.Calendar._onDayMouseOver" + eventArgs, - onmouseout: "bobj.crv.Calendar._onDayMouseOut" + eventArgs, - ondblclick: "bobj.crv.Calendar._onDayDoubleClick" + eventArgs, - onkeydown: "bobj.crv.Calendar._onDayKeyDown" + eventArgs}, - DIV({'class':"menuCalendar"})); - } - - html += ''; - } - - return html; -}; - -/** - * Update the calendar's display using the current date value - */ -bobj.crv.Calendar._update = function() { - var numCells = 6 * 7; // six rows in the calendar with 7 days each - var curDate = this.date.getDate(); - - var info = this._getMonthInfo(this.date.getMonth(), this.date.getFullYear()); - - var firstCellInMonth = info.firstDay; - this._firstDay = info.firstDay; - this._numDays = info.numDays; - - var year = "" + this.date.getFullYear(); - while (year.length < 4) { - year = "0" + year; - } - this._year.innerHTML = year; - this._month.innerHTML = _month[this.date.getMonth()]; - - this._selectedDate = null; - - for (var cellNum = 0; cellNum < numCells; cellNum++) { - var cell = this._cells[cellNum].firstChild; - var cssClass = "menuCalendar"; - var cellDate = this._getDateFromCellNum(cellNum); - - if (cellDate < 1 || cellDate > info.numDays) { - cell.innerHTML = ""; - cell.tabIndex = "-1"; - } - else { - cell.innerHTML = "" + cellDate; - cell.tabIndex = "0"; - if (cellDate == curDate) { - cssClass = "menuCalendarSel"; - this._selectedDay = cell; - } - } - - cell.className = cssClass; - } -}; - -bobj.crv.Calendar._getMonthInfo = function(month, year) { - var date = new Date(); - date.setDate(1); - date.setFullYear(year); - date.setMonth(month); - - var firstDay = date.getDay(); // First day of the week in this month - - date.setDate(28); - var lastDate = 28; // Last date in this month - - for (var i = 29; i < 32; i++) { - date.setDate(i); - if (date.getMonth() != month) { - break; - } - lastDate = i; - } - - return {firstDay: firstDay, numDays: lastDate}; -}; - -bobj.crv.Calendar._setDayOfMonth = function(date) { - if (date > 0 && date <= this._numDays) { - var prevDate = this.date.getDate(); - - if (date != prevDate) { - var prevCell = this._getCellFromDate(prevDate); - - if (prevCell) { - prevCell.firstChild.className = "menuCalendar"; - } - - this._getCellFromDate(date).firstChild.className = "menuCalendarSel"; - this.date.setDate(date); - } - } -}; - -bobj.crv.Calendar._getCellFromDate = function(date) { - var cellNum = date + this._firstDay - 1; - return this._cells[cellNum]; -}; - -bobj.crv.Calendar._getDateFromCellNum = function(cellNum) { - return cellNum - this._firstDay + 1; -}; - -bobj.crv.Calendar._onDayMouseOver = function(node, cellNum, event) { - var o = getWidget(node); - var div = node.firstChild; - - var date = cellNum - o._firstDay + 1; - if (date < 1 || date > o._numDays) { - div.className = "menuCalendar"; - } - else { - div.className = "menuCalendarSel"; - } -}; - -bobj.crv.Calendar._onDayMouseOut = function(node, cellNum, event) { - var o = getWidget(node); - var div = node.firstChild; - - var date = cellNum - o._firstDay + 1; - - if (date != o.date.getDate()) { - div.className = "menuCalendar"; - } -}; - -bobj.crv.Calendar._onDayMouseDown = function(node, cellNum, event) { - var o = getWidget(node); - var date = cellNum - o._firstDay + 1; - o._setDayOfMonth(date); -}; - -bobj.crv.Calendar._onDayDoubleClick = function(node, cellNum, event) { - var o = getWidget(node); - o._onOKClick(); -}; - -bobj.crv.Calendar._onDayKeyDown = function(node, cellNum, event) { - event = new MochiKit.Signal.Event(node, event); - var key = event.key().string; - if (key === "KEY_ENTER") { - var o = getWidget(node); - var date = cellNum - o._firstDay + 1; - o._setDayOfMonth(date); - } -}; - -bobj.crv.Calendar._onPrevMonthClick = function() { - var d = this.date; - var oldMonth = d.getMonth(); - if(d.getMonth() === 0) { - d.setYear(d.getFullYear() -1); - d.setMonth(11); - } - else { - d.setMonth(d.getMonth() - 1); - if (oldMonth === d.getMonth()) { - // that means we have decremented 0 month instead of 1. This happens if the current date is Oct 31, for eg. Since there's no Sept 31, it jumps to October 1. - d.setMonth(oldMonth-1); - } - } - this._update(); -}; - -bobj.crv.Calendar._onPrevYearClick = function() { - this.date.setFullYear(this.date.getFullYear() - 1); - this._update(); -}; - -bobj.crv.Calendar._onNextMonthClick = function() { - var d = this.date; - var oldMonth = d.getMonth(); - d.setMonth(d.getMonth() + 1); - if ((oldMonth+1) < d.getMonth()) { - // that means we have incremented 2 months instead of 1. This happens if the current date is Oct 31, for eg. Since there's no Nov 31, it jumps to Dec 1. - // For Dec 31, we don't need to worry because there's Jan 31. - d.setMonth(oldMonth+1); - } - this._update(); -}; - -bobj.crv.Calendar._onNextYearClick = function() { - this.date.setFullYear(this.date.getFullYear() + 1); - this._update(); -}; - -bobj.crv.Calendar._onOKClick = function() { - this.restoreFocus(); - MochiKit.Signal.signal(this, this.Signals.OK_CLICK, this._copyDate(this.date)); - this.show(false); -}; - -bobj.crv.Calendar._copyDate = function(date) { - if (date) { - return new Date(date.getFullYear(), - date.getMonth(), - date.getDate(), - date.getHours(), - date.getMinutes(), - date.getSeconds(), - date.getMilliseconds()); - } - return new Date(); -}; - -bobj.crv.Calendar._onCancelClick = function() { - this.restoreFocus(); - this.show(false); - MochiKit.Signal.signal(this, this.Signals.CANCEL_CLICK); -}; - -bobj.crv.Calendar._onTimeChange = function() { - var text = this._timeField.getValue(); - var date = null; - var format = null; - - for (var i = 0; i < this.timeFormats.length && date === null; ++i) { - format = this.timeFormats[i]; - date = bobj.external.date.getDateFromFormat(text, format); - } - - if (date) { - this._curTimeFormat = format; - this.date.setHours(date.getHours()); - this.date.setMinutes(date.getMinutes()); - this.date.setSeconds(date.getSeconds()); - this.date.setMilliseconds(date.getMilliseconds()); - } - else { - this._timeField.setValue(bobj.external.date.formatDate(this.date, this._curTimeFormat)); - } -}; - -bobj.crv.Calendar.setShowTime = function(isShow) { - var disp = isShow ? '' : 'none'; - this.showTime = isShow; - if (this.layer) { - this._timeRow.style.display = disp; - this._timeSep.style.display = disp; - } -}; - -bobj.crv.Calendar.setDate = function(date) { - this.date = date; - if (this.layer) { - this._timeField.setValue(bobj.external.date.formatDate(this.date, this._curTimeFormat)); - this._update(); - } -}; - -/** - * Show the calendar. Will write out the HTML and init the widget also. - * - * @param isShow [bool] Show calendar if true. Hide it if false. - * @param x [int] x coordinate for left of calendar - * @param y [int] y coordinate for top of calendar - * @param isAlignRight [bool, optional] When true, the x coordinate applies to - * the right edge of the calendar - * @param isAlignBottom [bool, optional] When true, the y coordinate applies to - * the bottom edge of the calendar - */ -bobj.crv.Calendar.show = function(isShow, x, y, isAlignRight, isAlignBottom) { - ScrollMenuWidget_show.call(this, isShow, x, y); - if(isShow) { - this.focus(); - } - else { - MochiKit.Signal.signal(this, this.Signals.ON_HIDE); - } -}; - -/** - * Set focus on the Calendar. The currently selected day will receive focus. - */ -bobj.crv.Calendar.focus = function() { - if (this._selectedDay) { - this._selectedDay.focus(); - } -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Colors.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Colors.js deleted file mode 100644 index a3f87af31..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Colors.js +++ /dev/null @@ -1,8 +0,0 @@ -if (typeof bobj == 'undefined') { - bobj = {}; -}; - -bobj.Colors = { - BLACK :'#000000', - GRAY :'#a5a5a5' -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Dialogs.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Dialogs.js deleted file mode 100644 index 8838e5cb6..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Dialogs.js +++ /dev/null @@ -1,933 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof bobj.crv.PrintUI == 'undefined') { - bobj.crv.PrintUI = {}; -} - -if (typeof bobj.crv.ExportUI == 'undefined') { - bobj.crv.ExportUI = {}; -} - -if (typeof bobj.crv.ErrorDialog == 'undefined') { - bobj.crv.ErrorDialog = {}; -} - -if (typeof bobj.crv.ReportProcessingUI == 'undefined') { - bobj.crv.ReportProcessingUI = {}; -} - -/* -================================================================================ -PrintUI -================================================================================ -*/ - -bobj.crv.newPrintUI = function(kwArgs) { - if (!kwArgs.id) { - kwArgs = MochiKit.Base.update({id: bobj.uniqueId()}, kwArgs); - } - - var lbl = kwArgs.submitBtnLabel; - if (!lbl) { - lbl = L_bobj_crv_submitBtnLbl; - } - - var infoTitle = kwArgs.infoTitle; - if (!infoTitle) { - infoTitle = L_bobj_crv_PrintInfoTitle; - } - - var dialogTitle = kwArgs.dialogTitle; - if (!dialogTitle) { - if (kwArgs.isActxPrinting) { - dialogTitle = L_bobj_crv_ActiveXPrintDialogTitle; - } - else { - dialogTitle = L_bobj_crv_PDFPrintDialogTitle; - } - } - - var infoMsg = kwArgs.infoMsg; - if (!infoMsg) { - infoMsg = L_bobj_crv_PrintInfo1; - infoMsg += '\n'; - infoMsg += L_bobj_crv_PrintInfo2; - } - - var o = newDialogBoxWidget(kwArgs.id + '_dialog', - dialogTitle, - 300, - 100, - null, - bobj.crv.PrintUI._cancel, - false); - o.infoMsg = infoMsg; - o.infoTitle = infoTitle; - o.actxId = o.id + '_actx'; - o.actxContainerId = o.id + '_actxdiv'; - o._processingPrinting = false; - o._initOld = o.init; - o._showOld = o.show; - - if (!kwArgs.isActxPrinting) { - o._fromBox = newIntFieldWidget(o.id + "_fromBox", - null, - null, - null, - null, - true, - '', - 50); - o._fromBox.setDisabled = bobj.crv.PrintUI.disabledTextFieldWidget; - o._toBox = newIntFieldWidget(o.id + "_toBox", - null, - null, - null, - null, - true, - '', - 50); - o._toBox.setDisabled = bobj.crv.PrintUI.disabledTextFieldWidget; - - o._submitBtn = newButtonWidget(o.id + "_submitBtn", - lbl, - MochiKit.Base.bind(bobj.crv.PrintUI._submitBtnCB, o)); - - o._submitBtn.setDelayCallback(false); - o._allRadio = newRadioWidget(o.id + "_allRadio", - o.id + "_grp", - L_bobj_crv_PrintAllLbl, - MochiKit.Base.bind(bobj.crv.PrintUI.disabledPageRange ,o, true)); - - o._allRadio.layerClass= "dlgContent"; - - o._rangeRadio = newRadioWidget(o.id + "_rangeRadio", - o.id + "_grp", - L_bobj_crv_PrintPagesLbl, - MochiKit.Base.bind(bobj.crv.PrintUI.disabledPageRange ,o, false)); - - o._rangeRadio.layerClass= "dlgContent"; - } - - o.widgetType = 'PrintUI'; - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - - // Update instance with member functions - MochiKit.Base.update(o, bobj.crv.PrintUI); - - return o; -}; -bobj.crv.PrintUI.disabledTextFieldWidget = function(disabled) -{ - TextFieldWidget_setDisabled.call(this,disabled); - - if(disabled) - { - MochiKit.DOM.addElementClass(this.layer, "textDisabled"); - } - else { - MochiKit.DOM.removeElementClass(this.layer, "textDisabled"); - } -} - -bobj.crv.PrintUI.disabledPageRange = function(bool) -{ - if(this._fromBox && this._toBox) - { - this._fromBox.setDisabled(bool); - this._toBox.setDisabled(bool); - } -} - -bobj.crv.PrintUI._submitBtnCB = function() { - var start = null; - var end = null; - if (this._rangeRadio.isChecked()) { - start = parseInt(this._fromBox.getValue(), 10); - end = parseInt(this._toBox.getValue(), 10); - - if (!start || !end || (start < 0) || (start > end)) { - alert(L_bobj_crv_PrintPageRangeError); - return; - } - } - - if (this.widgetType == 'PrintUI') { - MochiKit.Signal.signal(this, 'printSubmitted', start, end); - } - else { - MochiKit.Signal.signal(this, 'exportSubmitted', start, end, this._comboBox.getSelection().value); - } - - this.show(false); -}; - -bobj.crv.PrintUI._getRPSafeURL = function(url) { - if (!url) { - return; - } - - if (url.indexOf('/') === 0) { - return url; - } - - var winLoc = window.location.href; - - var qPos = winLoc.lastIndexOf('?'); - if (qPos > 0) { - winLoc = winLoc.substring(0, qPos) - } - - var lPos = winLoc.lastIndexOf('/'); - - if (lPos < 0) { - return url; - } - - winLoc = winLoc.substring(0, lPos); - return winLoc + '/' + url; -}; - -bobj.crv.PrintUI._getObjectTag = function(postData) { - var oa = []; - - oa.push(''); - - oa.push(''); - - oa.push(''); - - if (this.lcid) { - oa.push(''); - } - - if (this.url) { - oa.push(''); - } - - if (this.title) { - oa.push(''); - } - - if (this.maxPage) { - oa.push(''); - } - - if (this.paperOrientation) { - oa.push(''); - } - - if (this.paperSize) { - oa.push(''); - } - - if (this.paperWidth) { - oa.push(''); - } - - if (this.paperLength) { - oa.push(''); - } - - if (this.driverName) { - oa.push(''); - } - - if (this.useDefPrinter) { - oa.push(''); - } - - if (this.useDefPrinterSettings) { - oa.push(''); - } - - if (this.sendPostDataOnce) { - oa.push(''); - } - oa.push(''); - - // Add waiting UI while the control is loading - oa.push(''); - oa.push('
    '); - - // Frame Zone - var o = this; - var zoneW=o.getContainerWidth()-10; - var zoneH=o.getContainerHeight()-(2*o.pad+21+10); - oa.push('
    '); - - oa.push(''); - oa.push(''); - oa.push('
    '); - oa.push(img(_skin+'wait01.gif',200,40)); - oa.push('
    '); - oa.push('
    '); - oa.push(convStr(L_bobj_crv_PrintControlProcessingMessage,false,true)); - oa.push('
    '); - - oa.push('
    '); - - oa.push('
    '); - - return oa.join(''); -}; - -bobj.crv.PrintUI._cancel = function () { - if (this.isActxPrinting) { - document.getElementById(this.actxContainerId).innerHTML = ''; - this._processingPrinting = false; - } -}; - -bobj.crv.PrintUI._processPrinting = function(){ - if (!this._processingPrinting){ - var o = document.getElementById(this.actxId); - var w = document.getElementById(this.actxId + '_wait'); - if (o && w){ - o.width = "100%"; - o.height = "100%"; - w.style.display="none"; - } - this._processingPrinting = true; - } - -}; - -bobj.crv.PrintUI.show = function(visible, postBackData) { - this._processingPrinting = false; - if (visible) { - if (!this.layer) { - targetApp(this.getHTML()); - this.init(); - } - if (this.isActxPrinting) { - document.getElementById(this.actxContainerId).innerHTML = this._getObjectTag(postBackData); - } - this._showOld(true); - } - else if (this.layer) { - this._showOld(false); - } -}; - -bobj.crv.PrintUI.init = function() { - this._initOld(); - - if (!this.isActxPrinting) { - this._fromBox.init(); - this._toBox.init(); - this._submitBtn.init(); - - this._allRadio.init(); - this._rangeRadio.init(); - - this._allRadio.check(true); - this._toBox.setDisabled(true); - this._fromBox.setDisabled(true); - - if (this.widgetType == 'ExportUI') { - this._updateExportList(); - } - } -}; - -bobj.crv.PrintUI.getHTML = function(){ - var h = bobj.html; - var o = this; - - var html = o.beginHTML(); - - if (!this.isActxPrinting) { - html += "" + - "" + - "" + - "" + - "" + - "" + - "" + - "
    " + - "
    " + - "" + - "" + - "" + - "" + - "
    " + - "
    " + - "
    " + - "" + - "" + - "
    " + - this._submitBtn.getHTML() + - "
    " + - "
    "; - - - } - else { - html += "
    " + - '' + - '' ; - } - - html += o.endHTML(); - html += bobj.crv.getInitHTML(this.widx); - - return html; -}; - -/* -================================================================================ -ExportUI -================================================================================ -*/ -bobj.crv.newExportUI = function(kwArgs) { - kwArgs = MochiKit.Base.update({ submitBtnLabel:L_bobj_crv_ExportBtnLbl, - dialogTitle:L_bobj_crv_ExportDialogTitle, - infoTitle:L_bobj_crv_ExportInfoTitle, - infoMsg:L_bobj_crv_PrintInfo1, - isExporting:true}, kwArgs); - - var o = bobj.crv.newPrintUI(kwArgs); - - o._comboBox = newCustomCombo( - o.id + "_combo", - MochiKit.Base.bind(bobj.crv.ExportUI._onSelectFormat, o), - false, - 270, - L_bobj_crv_ExportFormatLbl, - _skin + "../transp.gif", // Screen reader can't read its text without transp.gif - 0, - 14); - - //Adjustment to combo box after adding transp.gif as icon - if(o._comboBox) { - o._comboBox.icon.border=0; - o._comboBox.icon.h=14; - o._comboBox.arrow.h=12; - o._comboBox.arrow.dy+=2 - o._comboBox.arrow.disDy+=2 - } - - o.widgetType = 'ExportUI'; - MochiKit.Base.update(o, bobj.crv.ExportUI); - - return o; -}; - -bobj.crv.ExportUI._onSelectFormat = function() { - var format = this._comboBox.getSelection().value; - if (format == 'CrystalReports' || format == 'RPTR' || format == 'RecordToMSExcel' || format == 'RecordToMSExcel2007' || format == 'CharacterSeparatedValues' || format == 'XML') { - this._fromBox.setDisabled(true); - this._toBox.setDisabled(true); - - this._rangeRadio.check(false); - this._rangeRadio.setDisabled(true); - - this._allRadio.check(true); - } - else { - this._rangeRadio.setDisabled(false); - } -}; - -bobj.crv.ExportUI.update = function (update) { - if (!update || update.cons !== "bobj.crv.newExportUI") { - return; - } - - this.availableFormats = update.args.availableFormats; - - if(this._comboBox.initialized()) { - /* - * Uninitialized combobox is not required to be updated as it will - * be updated during initialization - */ - this._updateExportList(); - } -}; - -bobj.crv.ExportUI._updateExportList = function() { - if(!this._comboBox.initialized()) { - this._comboBox.init(); - } - - this._updateComboItems(); - - var item0 = this._comboBox.getItemByIndex(0); - if(item0 != null) - this._comboBox.selectItem(item0); - - this._onSelectFormat(); -}; - -bobj.crv.ExportUI._updateComboItems = function () { - this._comboBox.removeAllMenuItems(); - var itemsCount = (bobj.isArray(this.availableFormats) ? this.availableFormats.length : 0); - - for (var i = 0; i < itemsCount; i++) { - var item = this.availableFormats[i]; - this._comboBox.add(item.name, item.value, item.isSelected); - } -}; - -bobj.crv.ExportUI._getExportList = function() { - return "" + - "" + - (_ie?"" + - "" + - "" + - "
     
    " + - "
    " + - this._comboBox.getHTML() + - "
    "; -}; - -/* -================================================================================ -ErrorDialog - -TODO Dave: If time permits, make dialog resizable with mouse -================================================================================ -*/ - -/** - * Static function. - * @returns [ErrorDialog] Returns a shared Error Dialog - */ -bobj.crv.ErrorDialog.getInstance = function() { - if (!bobj.crv.ErrorDialog.__instance) { - bobj.crv.ErrorDialog.__instance = bobj.crv.newErrorDialog(); - } - return bobj.crv.ErrorDialog.__instance; -}; - -bobj.crv.newErrorDialog = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - title: L_bobj_crv_Error, - text: null, - detailText: null, - okLabel: L_bobj_crv_OK, - promptType: _promptDlgCritical - }, kwArgs); - - var o = newPromptDialog( - kwArgs.id, - kwArgs.title, - kwArgs.text, - kwArgs.okLabel, - null, // cancelLabel - kwArgs.promptType, - null, // yesCB - null, // noCB, - true, // noCloseButton - true); // isAlert - - o.widgetType = 'ErrorDialog'; - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - - // Update instance with member functions - o._promptDlgInit = o.init; - o._promptDialogSetText = o.setText; - o._promptDialogShow = o.show; - o._promptDialogSetTitle = o.setTitle; - o._promptDialogSetPromptType = o.setPromptType; - MochiKit.Base.update(o, bobj.crv.ErrorDialog); - - o.noCB = MochiKit.Base.bind(o._onClose, o); - o.yesCB = o.noCB; - - o._detailBtn = newIconWidget( - o.id + "_detailBtn", - bobj.skinUri('../help.gif'), - MochiKit.Base.bind(bobj.crv.ErrorDialog._onDetailBtnClick, o), - L_bobj_crv_showDetails, // Text - L_bobj_crv_showDetails, // Tooltip - 16,16,0,0,22,0, - true); // Tabbing is enabled - - return o; -}; - -bobj.crv.ErrorDialog.init = function() { - this._promptDlgInit(); - this._detailBtn.init(); - this._detailRow = document.getElementById(this.id + '_detRow'); - this._detailArea = document.getElementById(this.id + '_detArea'); - - if (!this.detailText) { - this._detailBtn.show(false); - } -}; - -bobj.crv.ErrorDialog.getHTML = function() { - var TABLE = bobj.html.TABLE; - var TBODY = bobj.html.TBODY; - var TR = bobj.html.TR; - var TD = bobj.html.TD; - var PRE = bobj.html.PRE; - var DIV = bobj.html.DIV; - - var imgPath = PromptDialog_getimgPath(this.promptType); - var imgAlt = PromptDialog_getimgAlt(this.promptType); - - var width = "320"; - var detailWidth = "300px"; - var detailHeight = "100px"; - - var contentHTML = - TABLE({'class':"dlgBody", width: width, cellpadding:"0", cellspacing:"5", border:"0"}, - TBODY(null, - TR(null, TD(null, - TABLE({'class':"dlgBody", cellpadding:"5", cellspacing:"0", border:"0"}, - TBODY(null, - TR(null, - TD({align:"right", width:"32"}, - img(imgPath, 32, 32, null, 'id="dlg_img_' + this.id + '"', imgAlt)), - TD(), - TD({id:"dlg_txt_" + this.id, align:"left"}, - DIV({tabindex:"0"}, convStr(this.text, false, true)))))))), - TR({id: this.id + '_detRow', style: {display: "none"}}, - TD(null, DIV({'class': "infozone", style: {width: detailWidth, 'height': detailHeight, overflow: "auto"}}, - PRE({id: this.id + '_detArea'}, this.detailText)))), - TR(null, TD(null, getSep())), - TR(null, TD(null, - TABLE({cellpadding:"5", cellspacing:"0", border:"0", width:"100%"}, - TBODY(null, - TR(null, - TD({align:"left"}, this._detailBtn.getHTML()), - TD({align:"right"}, this.yes.getHTML())))))))); - - - return this.beginHTML() + contentHTML + this.endHTML(); -}; - -/** - * Set the error message and detail text. - * - * @param text [String] Error message - * @param detailText [String] Detailed error message or technical info - */ -bobj.crv.ErrorDialog.setText = function (text, detailText) { - this.text = text; - this.detailText = detailText; - - if (this.layer) { - this._promptDialogSetText(text || ''); - - if (this._detailArea) { - this._detailArea.innerHTML = detailText || ''; - } - - var showDetails = detailText ? true : false; - this._detailBtn.show(showDetails); - if (!showDetails) { - this.showDetails(false); - } - } -}; - -bobj.crv.ErrorDialog.setTitle = function (title) { - this.title = title; - if (this.layer) { - this._promptDialogSetTitle(title || ''); - } -}; - -bobj.crv.ErrorDialog.setPromptType = function (promptType) { - this.promptType = promptType; - if (this.layer) { - this._promptDialogSetPromptType(promptType); - } -}; - -/** - * Show/Hide the dialog - * - * @param isShow [bool(=true)] True value displays the dialog, false hides it. - * @param closeCB [function] Callback to call after the next close event - */ -bobj.crv.ErrorDialog.show = function(isShow, closeCB) { - if (typeof isShow == 'undefined') { - isShow = true; - } - - if (isShow) { - this._closeCB = closeCB; - if (!this.layer) { - targetApp(this.getHTML()); - this.init(); - } - this.layer.onkeyup = DialogBoxWidget_keypress; - DialogBoxWidget_keypress = MochiKit.Base.noop; - - this._promptDialogShow(true); - } - else if (this.layer){ - this._closeCB = null; - this._promptDialogShow(false); - } -}; - -/** - * Show/Hide the detailed error message - * - * @param isShow [bool(=true)] True value displays the details, false hides them. - */ -bobj.crv.ErrorDialog.showDetails = function(isShow) { - if (typeof isShow == 'undefined') { - isShow = true; - } - - if (this._detailRow && this._detailBtn) { - if (isShow) { - this._detailRow.style.display = ''; - this._detailBtn.changeText(L_bobj_crv_hideDetails); - } - else { - this._detailRow.style.display = 'none'; - this._detailBtn.changeText(L_bobj_crv_showDetails); - } - } -}; - -/** - * Private. Handles detail button clicks. - */ -bobj.crv.ErrorDialog._onDetailBtnClick = function() { - if (this._detailRow) { - this.showDetails(this._detailRow.style.display == 'none'); - } -}; - -/** - * Private. Notifies listener that dialog has closed; - */ -bobj.crv.ErrorDialog._onClose = function() { - if (this._closeCB) { - this._closeCB(); - this._closeCB = null; - } - DialogBoxWidget_keypress = this.layer.onkeyup; - this.layer.onkeyup = null; -}; - -/* -================================================================================ -Report Processing Dialog -================================================================================ -kwArgs -delay - the wait time prior to showing the dialog. -message - a customized message to display in the dialog. -*/ -bobj.crv.newReportProcessingUI = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - delay: 250, - message: L_bobj_crv_ReportProcessingMessage - }, kwArgs); - - /* Since JSON escapes the '\' in unicode character references (\uXXXX) in Viewer - * process indicator text is converted to html numeric referece (&#ddddd) which Javascript - * don't display as expected. Little hack here to it as HTML string */ - var d = document.createElement('div'); - d.style.visibility = 'hidden'; - d.innerHTML = kwArgs.message; - var newMsg = d.innerHTML; - d = null; - - var o = newWaitDialogBoxWidget( - kwArgs.id, // id - 0, // width - 0, // height - '', // title - false, // show cancel - bobj.crv.ReportProcessingUI.cancelCB, // cancel callback - true, // show label - newMsg, // label text - true // no close button - ); - - - o.widgetType = 'ReportProcessingUI'; - o.delay = kwArgs.delay; - - // Update instance with member functions - MochiKit.Base.update(o, bobj.crv.ReportProcessingUI); - - return o; -}; - -bobj.crv.reportProcessingDialog = null; -bobj.crv.timerID = null; - -bobj.crv.ReportProcessingUI.cancelCB = function () -{ - bobj.crv.reportProcessingDialog.cancelled = true; - - if (bobj.crv.reportProcessingDialog.deferred !== null) { - bobj.crv.reportProcessingDialog.deferred.cancel (); - } - - bobj.crv.reportProcessingDialog.cancelShow (); -}; - -bobj.crv.ReportProcessingUI.wasCancelled = function () -{ - return bobj.crv.reportProcessingDialog.cancelled; -}; - -bobj.crv.ReportProcessingUI._prepareToShow = function () { - // cleanup any existing dialog? - if (bobj.crv.reportProcessingDialog !== null) { - bobj.crv.reportProcessingDialog.cancelShow (); - } - - if (!this.layer) { - append2(document.body, this.getHTML()); - this.init(); - } - - this.deferred = null; - bobj.crv.reportProcessingDialog = this; -}; - -bobj.crv.ReportProcessingUI.Show = function () { - this._prepareToShow(); - bobj.crv.reportProcessingDialog.show(true); -}; - -bobj.crv.ReportProcessingUI.delayedShow = function () { - this._prepareToShow(); - bobj.crv.timerID = setTimeout("bobj.crv._showReportProcessingDialog ()", bobj.crv.reportProcessingDialog.delay); -}; - -bobj.crv.ReportProcessingUI.cancelShow = function () { - if (bobj.crv.timerID) { - clearTimeout (bobj.crv.timerID); - } - - if (bobj.crv.reportProcessingDialog){ - bobj.crv.reportProcessingDialog.show (false); - } - - bobj.crv.reportProcessingDialog = null; - bobj.crv.timerID = null; -}; - -bobj.crv.ReportProcessingUI.setDeferred = function (deferred) { - bobj.crv.reportProcessingDialog.deferred = deferred; - - if (bobj.crv.reportProcessingDialog.wasCancelled () === true) { - deferred.cancel (); - } -}; - -bobj.crv._showReportProcessingDialog = function () { - if (bobj.crv.reportProcessingDialog && bobj.crv.reportProcessingDialog.delay !== 0) { - bobj.crv.logger.info('ShowReportProcessingDialog'); - bobj.crv.reportProcessingDialog.show (true); - } -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/GroupTree.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/GroupTree.js deleted file mode 100644 index f95877c50..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/GroupTree.js +++ /dev/null @@ -1,270 +0,0 @@ -/* - ================================================================================ - GroupTree - ================================================================================ - */ - -/** - * GroupTree constructor. - * - * @param kwArgs.id [String] DOM node id - * @param kwArgs.icns [String] URL to magnifying glass icon - * @param kwArgs.minIcon [String] URL to min.gif - * @param kwArgs.plusIcon [String] URL to plus.gif - */ -bobj.crv.newGroupTree = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - kwArgs = UPDATE ( { - id : bobj.uniqueId (), - visualStyle : { - className : null, - backgroundColor : null, - borderWidth : null, - borderStyle : null, - borderColor : null, - fontFamily : null, - fontWeight : null, - textDecoration : null, - color : null, - width : null, - height : null, - fontStyle : null, - fontSize : null - }, - icns : bobj.crvUri ('images/magnify.gif'), - minIcon : bobj.crvUri ('images/min.gif'), - plusIcon : bobj.crvUri ('images/plus.gif') - }, kwArgs); - - var o = newTreeWidget (kwArgs.id + '_tree', '100%', '100%', kwArgs.icns, null, null, 'groupTree', - bobj.crv.GroupTree._expand, bobj.crv.GroupTree._collapse, null, kwArgs.minIcon, kwArgs.plusIcon); - - o._children = []; - o._modalChildren = []; - o._lastNodeIdInitialized = -1; - o._lastNodeInitialized = null; - o._curSigs = []; - bobj.fillIn (o, kwArgs); - o.widgetType = 'GroupTree'; - o.initOld = o.init; - - UPDATE (o, bobj.crv.GroupTree); - - return o; -}; - -bobj.crv.GroupTree = { - /** - * Disposes group tree - */ - dispose : function() { - /* removes all the signals */ - while (this._curSigs.length > 0) { - bobj.crv.SignalDisposer.dispose (this._curSigs.pop ()); - } - - /* disposes all the children*/ - while (this._children.length > 0) { - var child = this._children.pop (); - child.dispose (); - bobj.deleteWidget (child); - delete child; - } - - this._lastNodeIdInitialized = -1; - this._lastNodeInitialized = null; - this.sub = []; - bobj.removeAllChildElements(this.treeLyr); - }, - - getModalChildren : function () { - return this._modalChildren; - }, - - /** - * Adds a child widget as a group tree node. - * - * @param widget - * [Widget] Child tree node widget - */ - addChild : function(widget) { - var Base = MochiKit.Base; - var Signal = MochiKit.Signal; - var connect = Signal.connect; - - widget.expandPath = this._children.length + ''; - this._children.push (widget); - - widget._updateProperty (this.enableDrilldown, this.enableNavigation); - this.add (widget); - widget.delayedAddChild (this.enableDrilldown, this.enableNavigation); - - this._curSigs.push (connect (widget, 'grpDrilldown', Base.partial (Signal.signal, this, 'grpDrilldown'))); - this._curSigs.push (connect (widget, 'grpNodeRetrieveChildren', Base.partial (Signal.signal, this, 'grpNodeRetrieveChildren'))); - }, - - /** - * Since GroupTree nodes are delay loaded, we would have to store the timeout ids to cancel them in case user drill down to another views - */ - delayedBatchAdd : function(children) { - if (!children || children.length == 0) - return; - - this._modalChildren = children; - var childrenHTML = ""; - - var numChildrenToRender = children.length > 100 ? 100 : children.length; - if(numChildrenToRender > 0) { - for(var i = 0 ; i < numChildrenToRender ; i++) { - var child = bobj.crv.createWidget (this._modalChildren[i]); - this.addChild(child); - if(this.initialized()) - childrenHTML += child.getHTML(0); - } - } - - if(this.initialized()) { - this.appendChildrenHTML (childrenHTML); - this.initChildren (); - } - }, - - appendChildrenHTML : function (childrenHTML) { - append (this.treeLyr, childrenHTML); - }, - - init : function() { - this.initOld (); - bobj.setVisualStyle (this.layer, this.visualStyle); - this.css.verticalAlign = "top"; - - this.initChildren (); - - this._groupTreeListener = new bobj.crv.GroupTreeListener(this); - }, - - update : function(update) { - if (update.cons == "bobj.crv.newGroupTree") { - var args = update.args; - var path = args.lastExpandedPath; - /* if path specified, then update specific path, otherwise recreate grouptree */ - // if user has expands a node after session timeout -> the whole gt must be rerendered - if (path.length > 0 && this._children.length > 0) { - this.updateNode (path, update); - } else { - this.refreshChildNodes (update) - } - } - }, - - delayedAddChild : function(widget) { - this.addChild (widget); - append (this.treeLyr, widget.getHTML (this.initialIndent)); - }, - - initChildren : function () { - while(this._lastNodeIdInitialized < this._children.length - 1) - this.initNextChild (); - }, - - initNextChild : function () { - var nextNode = null; - var nextNodeId = -1; - if(this._lastNodeIdInitialized == -1) { - var treeSpanLayer = getLayer("treeCont_" + this.id); - nextNode = treeSpanLayer.firstChild; - nextNodeId = 0; - } - else { - nextNode = this._lastNodeInitialized.nextSibling; - while(!(nextNode.id && nextNode.id.indexOf("TWe_") > -1)) - nextNode = nextNode.nextSibling; - - nextNodeId = this._lastNodeIdInitialized + 1; - } - - if(nextNodeId < this._children.length && nextNode != null) { - this._children[nextNodeId].init(nextNode); - this._lastNodeInitialized = nextNode; - this._lastNodeIdInitialized = nextNodeId; - } - }, - - getBestFitHeight : function () { - return bobj.getHiddenElementDimensions (this.layer).h; - /** - * Since container of tree could be invisible, getHiddenElementDimensions has to be called - * instead of element.getHeight() - */ - }, - - /** - * refreshes group tree by removing all nodes and adding new ones - */ - refreshChildNodes : function(update) { - this.dispose (); - this.delayedBatchAdd (update.children); - MochiKit.Signal.signal(this, "refreshed"); - }, - - /** - * @param path - * path to the node that should be updated eg) 0-1-2 - * @param newTree - * the new tree sent in update - * - * Updates children of node specified by path - */ - updateNode : function(path, newTree) { - if (path && path.length > 0) { - var pathArray = path.split ('-'); - var node = this; - var newNode = newTree; - - /* Navigating to the node that requires update */ - for ( var i = 0, len = pathArray.length; i < len; i++) { - if (node && newNode) { - var childIndex = parseInt (pathArray[i]); - newNode = newNode.children[childIndex]; - node = node._children[childIndex]; - } else { - break; - } - } - - /* if we found the node that requires update, then update its children */ - if (node && newNode && newNode.args.groupPath == node.groupPath && node._children.length == 0) { - for ( var nodeNum in newNode.children) { - var newChildnode = bobj.crv.createWidget (newNode.children[nodeNum]); - node.addChild (newChildnode); - } - - node.delayedAddChild (this.enableDrilldown, this.enableNavigation); - node.expand (); - } - } - }, - - getChildrenCount : function () { - return this.sub.length; - }, - - /** - * Private. Callback function when a (complete) group tree node is collapsed. - */ - _collapse : function(expandPath) { - MochiKit.Signal.signal (this, 'grpNodeCollapse', expandPath); - }, - - /** - * Private. Callback function when a (complete) group tree node is expanded. - */ - _expand : function(expandPath) { - MochiKit.Signal.signal (this, 'grpNodeExpand', expandPath); - }, - - resize : function(width, height) { - bobj.setOuterSize (this.layer, width, height); - MochiKit.Signal.signal(this, "resized"); - } -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/GroupTreeListener.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/GroupTreeListener.js deleted file mode 100644 index 7392c30f9..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/GroupTreeListener.js +++ /dev/null @@ -1,165 +0,0 @@ -bobj.crv.GroupTreeListener = function(groupTree) { - this._groupTree = groupTree; - this._groupTreePrevState = this.getTreeState (); - this._lastNodeRendererd = this.getNumberOfNodesRendered () - 1; - this._nodeHeight = -1; - this._futreNodesPlaceHolder = null; - this.actionIDs = []; - this.addFutureNodesPlaceHolder (); - - MochiKit.Signal.connect(groupTree.layer, "onscroll", bobj.bindFunctionToObject(this.detectTreeChanges, this)); - MochiKit.Signal.connect(groupTree, "refreshed", this, this.reset); - MochiKit.Signal.connect(groupTree, "resized", this, this.detectTreeChanges); -}; - -bobj.crv.GroupTreeListener.prototype = { - /** - * - * @return number of nodes rendered by group tree - */ - getNumberOfNodesRendered : function() { - return this._groupTree.getChildrenCount (); - }, - - /** - * - * @return number of nodes that have not been rendered yet - */ - getNumberOfNodesMissing : function() { - return this._groupTree.getModalChildren ().length - this._lastNodeRendererd - 1; - }, - - getTreeState : function() { - var gt = this._groupTree; - return { - height :gt.getHeight (), - scrollTop :gt.layer.scrollTop - }; - }, - - /** - * - * @return number of nodes required to be rendered to fill up the group tree height - */ - getNumberOfNodesToRender : function() { - if (this.getNumberOfNodesMissing() == 0) - return 0; - - var lastNodeRendered = this._groupTree.sub[this._lastNodeRendererd]; - var treeNewState = this.getTreeState (); - - if (lastNodeRendered != null) { - var offsetY = lastNodeRendered.layer.offsetTop; - if (offsetY < treeNewState.scrollTop + treeNewState.height) { - var freeSpace = treeNewState.scrollTop + treeNewState.height - offsetY; - return Math.floor (freeSpace / this.getNodeHeight ()); - } - } - - return 0; - }, - - /** - * - * @return a single node height - */ - getNodeHeight : function() { - if (this._nodeHeight > -1) - return this._nodeHeight; - else if (this.getNumberOfNodesRendered () > 0) { - var node = this._groupTree.sub[0]; - this._nodeHeight = bobj.getHiddenElementDimensions (node.layer).h; - return this._nodeHeight; - } - - return 0; - }, - - /** - * - * Adds as many nodes as it can to fill up the grouptree's height - */ - updateTreeChildren : function() { - var numNodesToRender = this.getNumberOfNodesToRender (); - var groupTreeModalChildren = this._groupTree.getModalChildren (); - - if (numNodesToRender > 0) { - var childrenHTML = ""; - for ( var i = this._lastNodeRendererd + 1, lastNode = this._lastNodeRendererd + numNodesToRender; i <= lastNode; i++) { - var modalChild = groupTreeModalChildren[i]; - if (modalChild != null) { - var treeNode = bobj.crv.createWidget (modalChild); - this._groupTree.addChild (treeNode); - childrenHTML += treeNode.getHTML(0); - this._lastNodeRendererd = i; - } - } - - this._groupTree.appendChildrenHTML(childrenHTML); - this._groupTree.initChildren(); - } - - this.updateFutureNodesPlaceHolderHeight (); - }, - - /** - * Detects if the tree UI has changed and calls update function - * - */ - detectTreeChanges : function() { - if (this.isTreeStateChanged ()) - this.actionIDs.push(setTimeout(bobj.bindFunctionToObject(this.updateTreeChildren, this), 200)); - - this._groupTreePrevState = this.getTreeState (); - }, - - isTreeStateChanged : function() { - var currentState = this.getTreeState (); - if (currentState.height != this._groupTreePrevState.height) - return true; - if (currentState.scrollTop != this._groupTreePrevState.scrollTop) - return true; - - return false; - }, - - /** - * - * Results listener's internal state when grouptree is refreshed - */ - reset : function() { - this._groupTreePrevState = this.getTreeState (); - this._lastNodeRendererd = this.getNumberOfNodesRendered () - 1; - this.clearActions (); - this.updateFutureNodesPlaceHolderHeight (); - }, - - clearActions : function () { - while(this.actionIDs.length > 0) { - clearTimeout(this.actionIDs.pop()); - } - }, - - updateFutureNodesPlaceHolderHeight : function() { - var futurePlaceHolderLayer = this.getFutureNodesPlaceHolderLayer (); - if (futurePlaceHolderLayer != null) { - futurePlaceHolderLayer.style.height = (this.getNumberOfNodesMissing () * this.getNodeHeight ()) + "px"; - } - }, - - getFutureNodesPlaceHolderLayer : function() { - return this._futreNodesPlaceHolder; - }, - - addFutureNodesPlaceHolder : function() { - this._futreNodesPlaceHolder = MochiKit.DOM.DIV ( { - id :bobj.uniqueId () + "_futureHolder", - style : { - width :'0px', - height :(this.getNumberOfNodesMissing () * this.getNodeHeight ()) + "px" - } - }); - this._groupTree.layer.appendChild (this._futreNodesPlaceHolder); - - } -} diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/GroupTreeNode.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/GroupTreeNode.js deleted file mode 100644 index 827d7d83c..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/GroupTreeNode.js +++ /dev/null @@ -1,203 +0,0 @@ -/** - * GroupTreeNode constructor. - * - * @param kwArgs.id [String] DOM node id - * @param kwArgs.groupName [String] Name of the group - * @param kwArgs.groupPath [String] Path of the group - */ -bobj.crv.newGroupTreeNode = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - kwArgs = UPDATE ( { - id : bobj.uniqueId () - }, kwArgs); - var iconAlt = null; - var iconId = -1; // by default, no icon - if (!kwArgs.isVisible) { - iconId = 0; - iconAlt = L_bobj_crv_Tree_Drilldown_Node.replace ('%1', kwArgs.groupName); - } - - var o = newTreeWidgetElem (iconId, kwArgs.groupName, kwArgs.groupPath, null, null, null, iconAlt, null, null, false); - - o._children = []; - o._curSigs = []; - bobj.fillIn (o, kwArgs); - - o.widgetType = 'GroupTreeNode'; - o.initOld = o.init; - o.selectOld = o.select; - o.select = bobj.crv.GroupTreeNode._drilldown; - - if (!kwArgs.isVisible) { - o.setCursorClass('drill_cursor'); - } - - UPDATE (o, bobj.crv.GroupTreeNode); - - return o; -}; - -bobj.crv.GroupTreeNode = { - /** - * Diposes grouptree node. Deletes all signals and children - */ - dispose : function() { - while (this._curSigs.length > 0) { - bobj.crv.SignalDisposer.dispose (this._curSigs.pop ()); - } - - while (this._children.length > 0) { - var child = this._children.pop (); - child.dispose (); - - bobj.deleteWidget (child); - delete child; - } - - this.sub = []; - - //layers of all GroupTreeNodes are disposed in GroupTree.dispose in one batch for performance reason - }, - - init : function(layer) { - this.initOld (layer); - this._setVisualStyle (); - - if (this.isStatic) { - /*"treeNormal" is the default css class for tree node text */ - var spans = MochiKit.DOM.getElementsByTagAndClassName ("span", "treeNormal", this.layer); - if (spans && spans.length > 0) - spans[0].style.cursor = 'text'; - - } - }, - - /** - * @return boolean true if node is expanded - */ - isExpanded : function() { - var elemId = TreeIdToIdx (this.layer); - return _TreeWidgetElemInstances[elemId].expanded; - }, - - /** - * expands node and shows its children - */ - - expand : function() { - var elemId = TreeIdToIdx (this.layer); - _TreeWidgetElemInstances[elemId].expanded = false - TreeWidget_toggleCB (elemId); - }, - - collapse : function() { - var elemId = TreeIdToIdx (this.layer); - _TreeWidgetElemInstances[elemId].expanded = true - TreeWidget_toggleCB (elemId); - }, - - _setVisualStyle : function() { - try { - var textNode = this.layer.lastChild; - var parentNode = this.treeView; - } catch (err) { - return; - } - - var pvStyle = parentNode.visualStyle; - var tStyle = textNode.style; - - if (pvStyle.fontFamily) - tStyle.fontFamily = pvStyle.fontFamily; - - if (pvStyle.fontWeight) - tStyle.fontWeight = pvStyle.fontWeight; - - if (pvStyle.textDecoration) - tStyle.textDecoration = pvStyle.textDecoration; - - if (pvStyle.color) - tStyle.color = pvStyle.color; - - if (pvStyle.fontStyle) - tStyle.fontStyle = pvStyle.fontStyle; - - if (pvStyle.fontSize) - tStyle.fontSize = pvStyle.fontSize; - }, - - /** - * Delay add the child nodes to a node recursively. - * The addition of nodes has to happen in a top-down fashion because each node has a reference to the tree - * and this reference is retrieved from the parent node. - */ - - delayedAddChild : function(enableDrilldown, enableNavigation) { - var CONNECT = MochiKit.Signal.connect; - var SIGNAL = MochiKit.Signal.signal; - var PARTIAL = MochiKit.Base.partial; - var childCount = this._children.length; - - if (childCount > 0) { - this.expanded = true; - } else { - this.expanded = false; - if (!this.leaf) { - this.setIncomplete (bobj.crv.GroupTreeNode._getChildren); - } - } - - var children = this._children; - for ( var i = 0; i < childCount; i++) { - var childNode = children[i]; - childNode.expandPath = this.expandPath + '-' + i; - childNode._updateProperty (enableDrilldown, enableNavigation); - this.add (childNode); - this._curSigs.push (CONNECT (childNode, 'grpDrilldown', PARTIAL (SIGNAL, this, 'grpDrilldown'))); - this._curSigs.push (CONNECT (childNode, 'grpNodeRetrieveChildren', PARTIAL (SIGNAL, this, 'grpNodeRetrieveChildren'))); - childNode.delayedAddChild (enableDrilldown, enableNavigation); - } - }, - - addChild : function(widget) { - this._children.push (widget); - }, - - getLevel : function() { - return this.expandPath.split('-').length; - }, - - /** - * Private. Callback function when a group tree node is clicked, which is a group drilldown. - */ - _drilldown : function() { - this.selectOld (); - MochiKit.Signal.signal (this, 'grpDrilldown', this.groupName, this.groupPath, this.isVisible, this.groupNamePath); - }, - - /** - * Private. Callback function when an incomplete group tree node is expanded. - */ - _getChildren : function() { - this.plusLyr.src = _skin + '../loading.gif'; - MochiKit.Signal.signal (this, 'grpNodeRetrieveChildren', this.expandPath); - }, - - /** - * Private. Change the select event handler and text style class based on the two given flags. - */ - _updateProperty : function(enableDrilldown, enableNavigation) { - var isStatic = false; - if (this.isVisible && !enableNavigation) { - isStatic = true; - } else if (!this.isVisible && !enableDrilldown) { - isStatic = true; - } - - if (isStatic) { - this.select = MochiKit.Base.noop; - } - - this.isStatic = isStatic; - } -}; \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/IOAdapters.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/IOAdapters.js deleted file mode 100644 index 0aa63e81a..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/IOAdapters.js +++ /dev/null @@ -1,599 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - - - - -/** - * Abstract base class. IOAdapters allow the ViewerListener to request data from - * a server without knowing the details of how a particular framework requires - * the request to be made. - */ -bobj.crv.IOAdapterBase = { - /** - * Send a viewer request to the Server. - * - * @param pageState [Object] The composite view state for all viewers on the page - * @param viewerName [String] The name of the viewer that should handle the request - * @param eventArgs [Object] Event arguements - * @param allowAsynch [bool] True if asynchronous requests are allowed - * - * @return [MochiKit.Async.Deferred] Returns a Deferred if an asynchronous - * request is pending. - */ - request: function() {}, - - /** - * Add a parameter to server requests. - * - * @param fldName [String] Name of the parameter - * @param fldValue [String] Value of the parameter - */ - addRequestField: function(fldName, fldValue) {}, - - /** - * Remove a parameter from server requests. - * - * @param fldName [String] Name of the parameter - */ - removeRequestField: function(fldName) {}, - - /** - * Save the page state. Persist the state in a manner apropriate - * for the framework. - * - * @param pageState [Object] The composite view state for all viewers on the page - * @param viewerName [String] The name of the viewer that making the request - */ - saveViewState: function(pageState, viewerName) {}, - - /** - * Get the postback data queryString to use for Active X print control - * - * @param pageState [Object] The composite view state for all viewers on the page - * @param viewerName [String] The name of the viewer that making the request - * @return [String] the postback data in a query string format - */ - getPostDataForPrinting: function(pageState, viewerName) {}, - - /** - * Allows the IOAdapter to manipulate the error before the Viewer processes it for display to the user. - */ - processError: function(response) {return response;}, - - canUseAjax: function() { - try { - return (MochiKit.Async.getXMLHttpRequest() !== null); - } - catch (e) { - return false; - } - }, - - /** - * Ensures that there is a hidden iframe to be used for postbacks. - */ - _getPostbackIframe: function() { - if (!this._iframe) { - ifrm = document.createElement("IFRAME"); - ifrm.id = bobj.uniqueId(); - ifrm.name = ifrm.id; - ifrm.style.width = '0px'; - ifrm.style.height = '0px'; - ifrm.style.position = 'absolute'; - ifrm.style.top = '0px'; - ifrm.style.left = '0px'; - ifrm.style.visibility = 'hidden'; - document.body.appendChild(ifrm); - // in IE, we need to set the window name again - if (!ifrm.contentWindow.name) { - ifrm.contentWindow.name = ifrm.id; - } - - this._iframe = ifrm; - } - - return this._iframe; - } -}; - -/* -================================================================================ -ServletAdapter. ServletAdapter issues requests to the Java DHTML viewer. -================================================================================ -*/ - -/** - * Constructor for ServletAdapter. - * - * @param pageUrl [string] URL of the page - * @param servletUrl [string] URL to which requests to a servlet should be made - * It doubles as the url for all asyncronous requests - */ -bobj.crv.ServletAdapter = function(pageUrl, servletUrl) { - this._pageUrl = pageUrl; - this._servletUrl = servletUrl; - this._form = null; -}; - -bobj.crv.ServletAdapter._requestParams = { - STATE: 'CRVCompositeViewState', - TARGET: 'CRVEventTarget', - ARGUMENT: 'CRVEventArgument' -}; - - -bobj.crv.ServletAdapter.prototype = MochiKit.Base.merge(bobj.crv.IOAdapterBase, { - - request: function(pageState, viewerName, eventArgs, allowAsync, useIframe) { - if (!this._form) { - this._createForm(); - } - - var rp = bobj.crv.ServletAdapter._requestParams; - var toJSON = MochiKit.Base.serializeJSON; - - this._form[rp.STATE].value = encodeURIComponent(toJSON(pageState)); - this._form[rp.TARGET].value = encodeURIComponent(viewerName); - this._form[rp.ARGUMENT].value = encodeURIComponent(toJSON(eventArgs)); - - var deferred = null; - if (allowAsync && this._servletUrl) { - var req = MochiKit.Async.getXMLHttpRequest(); - req.open("POST", this._servletUrl, true); - req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - req.setRequestHeader('Accept','application/json'); - deferred = MochiKit.Async.sendXMLHttpRequest(req, MochiKit.Base.queryString(this._form)); - } - else { - if (useIframe) { - this._form.target = this._getPostbackIframe().id; - } - this._form.submit(); - } - - // once the form is submitted it is not intended to be reused. - - MochiKit.DOM.removeElement(this._form); - this._form = null; - return deferred; - }, - - redirectToServlet: function () { - if (!this._form) { - this._createForm(); - } - - this._form.action = this._servletUrl; - }, - - _createForm: function() { - var d = MochiKit.DOM; - var rp = bobj.crv.ServletAdapter._requestParams; - - this._form = d.FORM({ - name: bobj.uniqueId(), - style: 'display:none', - method: 'POST', - enctype: 'application/x-www-form-urlencoded;charset=utf-8', - action: this._pageUrl}, - d.INPUT({type: 'hidden', name: rp.STATE}), - d.INPUT({type: 'hidden', name: rp.TARGET}), - d.INPUT({type: 'hidden', name: rp.ARGUMENT})); - - document.body.appendChild(this._form); - }, - - addRequestField: function(fldName, fldValue) { - if (fldName && fldValue) { - if (!this._form) { - this._createForm(); - } - - var existingElem = this._form[fldName]; - if (existingElem) { - existingElem.value = fldValue; - } - else { - this._form.appendChild(MochiKit.DOM.INPUT({type: 'hidden', name:fldName, value:fldValue})); - } - } - }, - - removeRequestField: function(fldName) { - if (fldName) { - var form = this._form; - - if (form) { - var existingElem = form[fldName]; - if (existingElem) { - MochiKit.DOM.removeElement(existingElem); - if(form[fldName]) { // Fix for FF - form[fldName] = null; - } - } - - existingElem = null; - } - } - }, - - getPostDataForPrinting: function(pageState, viewerName) { - var toJSON = MochiKit.Base.serializeJSON; - var rp = bobj.crv.ServletAdapter._requestParams; - var state = toJSON(pageState); - - var postData = {}; - postData[rp.STATE] = encodeURIComponent(state); - postData[rp.TARGET] = encodeURIComponent(viewerName); - postData[rp.ARGUMENT] = encodeURIComponent('"axprint="'); - if(document.getElementById('com.sun.faces.VIEW')) { - postData['com.sun.faces.VIEW'] = encodeURIComponent(document.getElementById('com.sun.faces.VIEW').value); - } - - return MochiKit.Base.queryString(postData); - }, - - processError: function(response) { - if (!(typeof(response.number) == 'undefined') && response.number == 404) { - return L_bobj_crv_ServletMissing; - } - - return response; - } -}); - -/* -================================================================================ -AspDotNetAdapter. AspDotNetAdapter issues requests to the WebForm DHTML viewer. -================================================================================ -*/ - -/** - * Constructor for AspDotNetAdapter. - * - * @param postbackEventReference [string] The full functiona call to the ASP.NET dopostback function - * @param replacementParameter [string] the string to replace in the dopostback function - * @param stateID [string] the name of the input field to save the state to - */ -bobj.crv.AspDotNetAdapter = function(postbackEventReference, replacementParameter, stateID, callbackEventReference, aspnetVersion) { - this._postbackEventReference = postbackEventReference; - this._replacementParameter = replacementParameter; - this._stateID = stateID; - this._aspnetVersion = aspnetVersion; - this._form = null; - this._callbackEventReference = callbackEventReference; - this._additionalReqFlds = null; - var tmpState = bobj.getElementByIdOrName(this._stateID); - if (tmpState) { - this._form = tmpState.form; - } - - if(this._isAspNetVersionPriorToVersion4()) { - WebForm_CallbackComplete = this.WebForm_CallbackComplete; - } -}; - - -bobj.crv.AspDotNetAdapter.prototype = MochiKit.Base.merge(bobj.crv.IOAdapterBase, { - - request: function(pageState, viewerName, eventArgs, allowAsync, useIframe, callbackHandler, errbackHandler) { - var toJSON = MochiKit.Base.serializeJSON; - if (eventArgs && this._additionalReqFlds) { - eventArgs = MochiKit.Base.update(eventArgs, this._additionalReqFlds); - } - this._additionalReqFlds = null; - - var jsonEventArgs = toJSON(eventArgs); - this.saveViewState(pageState, viewerName); - - if (allowAsync) { - if(typeof WebForm_InitCallback == "function") { - __theFormPostData = ""; //Used by WeForm_InitCallback - __theFormPostCollection = []; //Used by WeForm_InitCallback - WebForm_InitCallback(); //Need to call this to work around a problem where ASP.NET2 callback does not collect form data prior to request - } - var callback = this._callbackEventReference.replace("'arg'", "jsonEventArgs"); - callback = callback.replace("'cb'", "callbackHandler"); - callback = callback.replace("'errcb'", "errbackHandler"); - callback = callback.replace("'frmID'", "this._form.id"); - return eval(callback); - } - else { - if (useIframe) { - this._form.target = this._getPostbackIframe().id; - } - - var postbackCall; - if(this._postbackEventReference.indexOf("'" + this._replacementParameter + "'") >= 0){ - postbackCall = this._postbackEventReference.replace("'" + this._replacementParameter + "'", "jsonEventArgs"); - } - else { - postbackCall = this._postbackEventReference.replace('"' + this._replacementParameter + '"', "jsonEventArgs"); - } - eval(postbackCall); - this._clearEventFields(); - this._form.target = ""; //Give back the target of the form after using, or the form cannot get focused - } - }, - - /** - * @return true if aspnet verion is prior to version 4 - */ - _isAspNetVersionPriorToVersion4 : function () { - if(this._aspnetVersion != null) { - var sep = this._aspnetVersion.split("."); - if(eval(sep[0]) < 4) - return true; - } - - return false; - }, - - saveViewState: function(pageState, viewerName) { - var toJSON = MochiKit.Base.serializeJSON; - var viewState = pageState[viewerName]; - var state = bobj.getElementByIdOrName(this._stateID); - if (state) { - state.value = toJSON(viewState); - } - }, - - getPostDataForPrinting: function(pageState, viewerName) { - this.saveViewState(pageState, viewerName); - var nv = MochiKit.DOM.formContents(this.form); - var names = nv[0]; - var values = nv[1]; - names.push('crprint'); - values.push(viewerName); - var queryString = MochiKit.Base.queryString(names, values); - return queryString; - }, - - addRequestField: function(fldName, fldValue) { - if (!this._additionalReqFlds) { - this._additionalReqFlds = {}; - } - this._additionalReqFlds[fldName] = fldValue; - - /*if (fldName && fldValue) { - var existingElem = this._form[fldName]; - if (existingElem) { - existingElem.value = fldValue; - } - else { - this._form.appendChild(MochiKit.DOM.INPUT({type: 'hidden', name:fldName, value:fldValue})); - } - }*/ - }, - - _clearRequestField: function(fldName) { - if (fldName) { - if (this._form) { - var existingElem = this._form[fldName]; - if (existingElem) { - existingElem.value = ""; - } - } - } - }, - - _clearEventFields: function() { - this._clearRequestField("__EVENTTARGET"); - this._clearRequestField("__EVENTARGUMENT"); - }, - - /* - * Overriding WebForm_CallbackComplete provided by .Net framework 2(WebResource.asx) as it was incorrect. - * The code below is taken from .Net 4 copy of this function - * This code can be removed once the support for .Net 2 is terminated - */ - WebForm_CallbackComplete : function () { - for (var i = 0; i < __pendingCallbacks.length; i++) { - callbackObject = __pendingCallbacks[i]; - if (callbackObject && callbackObject.xmlRequest && (callbackObject.xmlRequest.readyState == 4)) { - if (!__pendingCallbacks[i].async) { - __synchronousCallBackIndex = -1; - } - __pendingCallbacks[i] = null; - var callbackFrameID = "__CALLBACKFRAME" + i; - var xmlRequestFrame = document.getElementById(callbackFrameID); - if (xmlRequestFrame) { - xmlRequestFrame.parentNode.removeChild(xmlRequestFrame); - } - WebForm_ExecuteCallback(callbackObject); - } - } - - } -}); - -/* -================================================================================ -FacesAdapter. FacesAdapter issues requests to a JSF viewer component. -================================================================================ -*/ - -/** - * Constructor for FacesAdapter. - * - * @param formName [string] Name of the form to submit - * @param servletUrl [string] URL to which requests to a servlet should be made - * It doubles as the url for all asyncronous requests - */ -bobj.crv.FacesAdapter = function(formName, servletUrl) { - this._formName = formName; - this._servletUrl = servletUrl; - this._useServlet = false; - if (!bobj.crv.FacesAdapter._hasInterceptedSubmit) { - this._interceptSubmit(); - bobj.crv.FacesAdapter._hasInterceptedSubmit = true; - } -}; - -bobj.crv.FacesAdapter._requestParams = { - STATE: 'CRVCompositeViewState', - TARGET: 'CRVEventTarget', - ARGUMENT: 'CRVEventArgument' -}; - -bobj.crv.FacesAdapter.prototype = MochiKit.Base.merge(bobj.crv.IOAdapterBase, { - - request: function(pageState, viewerName, eventArgs, allowAsync, useIframe) { - - var rp = bobj.crv.FacesAdapter._requestParams; - var toJSON = MochiKit.Base.serializeJSON; - var INPUT = MochiKit.DOM.INPUT; - - var deferred = null; - - var form = this._getForm(); - if (!form) { - return; - } - - if (!form[rp.TARGET]) { - form.appendChild( INPUT({type: 'hidden', name: rp.TARGET}) ); - } - form[rp.TARGET].value = encodeURIComponent(viewerName); - - if (!form[rp.ARGUMENT]) { - form.appendChild( INPUT({type: 'hidden', name: rp.ARGUMENT}) ); - } - form[rp.ARGUMENT].value = encodeURIComponent(toJSON(eventArgs)); - - if (!form[rp.STATE]) { - form.appendChild( INPUT({type: 'hidden', name: rp.STATE}) ); - } - form[rp.STATE].value = encodeURIComponent(toJSON(pageState)); - - if (allowAsync && this._servletUrl) { - var req = MochiKit.Async.getXMLHttpRequest(); - req.open("POST", this._servletUrl, true); - req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - req.setRequestHeader('Accept','application/json'); - deferred = MochiKit.Async.sendXMLHttpRequest(req, MochiKit.Base.queryString(form)); - } - else { - var pageUrl = form.action; - if (this._useServlet === true) { - form.action = this._servletUrl; - } - - var origTarget = form.target; - if (useIframe) { - form.target = this._getPostbackIframe().id; - } - - form.submit(); - - form.action = pageUrl; - form.target = origTarget; - this._useServlet = false; - } - - // clear out the request fields so that the form can be reused - form[rp.TARGET].value = ""; - form[rp.ARGUMENT].value = ""; - form[rp.STATE].value = ""; - - // TODO Post Titan: we shouldn't need to have explicit knowledge of this parameter - this.removeRequestField ('ServletTask'); - - return deferred; - }, - - redirectToServlet: function () { - this._useServlet = true; - }, - - addRequestField: function(fldName, fldValue) { - if (fldName && fldValue) { - var form = this._getForm(); - - if (form) { - var existingElem = form[fldName]; - if (existingElem) { - existingElem.value = fldValue; - } - else { - form.appendChild(MochiKit.DOM.INPUT({type: 'hidden', name:fldName, value:fldValue})); - } - } - } - }, - - removeRequestField: function(fldName) { - if (fldName) { - var form = this._getForm(); - - if (form) { - var existingElem = form[fldName]; - if (existingElem) { - MochiKit.DOM.removeElement(existingElem); - if(form[fldName]) { // Fix for FF - form[fldName] = null; - } - } - - existingElem = null; - } - } - }, - - saveViewState: function(pageState, viewerName) { - if (!bobj.crv.FacesAdapter._isStateSaved) { - var form = this._getForm(); - if (form) { - var rp = bobj.crv.FacesAdapter._requestParams; - var toJSON = MochiKit.Base.serializeJSON; - var INPUT = MochiKit.DOM.INPUT; - - if (!form[rp.STATE]) { - form.appendChild( INPUT({type: 'hidden', name: rp.STATE}) ); - } - form[rp.STATE].value = encodeURIComponent(toJSON(pageState)); - } - bobj.crv.FacesAdapter._isStateSaved = true; - } - }, - - _getForm: function() { - return document.forms[this._formName]; - }, - - _interceptSubmit: function() { - var form = this._getForm(); - if (form) { - var oldSubmit = form.submit; - form.submit = function() { - bobj.event.publish('saveViewState'); - form.submit = oldSubmit; // IE needs this - form.submit(); // Can't apply args because IE misbehaves - }; - } - }, - - getPostDataForPrinting: function(pageState, viewerName) { - var toJSON = MochiKit.Base.serializeJSON; - var rp = bobj.crv.ServletAdapter._requestParams; - var state = toJSON(pageState); - - var postData = {}; - postData[rp.STATE] = encodeURIComponent(state); - postData[rp.TARGET] = encodeURIComponent(viewerName); - postData[rp.ARGUMENT] = encodeURIComponent('"axprint="'); - if(document.getElementById('com.sun.faces.VIEW')) { - postData['com.sun.faces.VIEW'] = encodeURIComponent(document.getElementById('com.sun.faces.VIEW').value); - } - - return MochiKit.Base.queryString(postData); - }, - - processError: function(response) { - if (!(typeof(response.number) == 'undefined') && response.number == 404) { - return L_bobj_crv_ServletMissing; - } - - return response; - } -}); \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ImageSprites.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ImageSprites.js deleted file mode 100644 index bc526c006..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ImageSprites.js +++ /dev/null @@ -1,37 +0,0 @@ -// allInOne.gif - icon images with different width and heights - disabled states are on the right -bobj.crv.allInOne = (function () { - var o = new Object(); - o.uri = bobj.crvUri('images/allInOne.gif'); - - var iconHeight22 = 22; - var offset = 0; - - // Toolbar icons are 22 pixels height and have 3 pixels place holder - offset += 3; - offset = o.toolbarExportDy = offset; - offset = o.toolbarPrintDy = offset + iconHeight22; - - offset = o.toolbarRefreshDy = offset + iconHeight22; - offset = o.toolbarSearchDy = offset + iconHeight22; - offset = o.toolbarUpDy = offset + iconHeight22; - // Rest of the images don't need the place holder - offset -= 3; - - // These are 22 pixels height - offset = o.groupTreeToggleDy = offset + iconHeight22; - offset = o.paramPanelToggleDy = offset + iconHeight22; - - // These two are 20 pixels height - offset = o.toolbarPrevPageDy = offset + iconHeight22; // 22x20 - offset = o.toolbarNextPageDy = offset + 20; // 22x20 - - offset = o.paramRunDy = offset + 20; // 22x22 - offset = o.paramDataFetchingDy = offset + 22; // 16x16 - offset = o.closePanelDy = offset + 16; // 8x7 - offset = o.openParameterArrowDy = offset + 7; // 15x15 - offset = o.plusDy = offset + 15; // 13x12 - offset = o.minusDy = offset + 12; // 13x12 - offset = o.undoDy = offset + 12; // 16x16 - - return o; -})(); diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/LeftPanel.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/LeftPanel.js deleted file mode 100644 index f664cdee1..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/LeftPanel.js +++ /dev/null @@ -1,289 +0,0 @@ -/** - * LeftPanel is a container class managing PanelNavigator and ToolPanel classes - */ - -bobj.crv.newLeftPanel = function(kwArgs) { - kwArgs = MochiKit.Base.update ( { - id : bobj.uniqueId () + "_leftPanel", - hasToggleGroupTreeButton : true, - hasToggleParameterPanelButton : true, - paramIconImg : null, - treeIconImg : null - }, kwArgs); - - return new bobj.crv.LeftPanel (kwArgs.id, kwArgs.hasToggleGroupTreeButton, kwArgs.hasToggleParameterPanelButton, kwArgs.paramIconImg, kwArgs.treeIconImg); -}; - -bobj.crv.LeftPanel = function(id, hasToggleGroupTreeButton, hasToggleParameterPanelButton, paramIconImg, treeIconImg) { - this._panelNavigator = null; - this._panelHeader = null; - this._toolPanel = null; - this.id = id; - this.widgetType = 'LeftPanel'; - this.hasToggleParameterPanelButton = hasToggleParameterPanelButton; - this.hasToggleGroupTreeButton = hasToggleGroupTreeButton; - this.paramIconImg = paramIconImg; - this.treeIconImg = treeIconImg; - this._lastViewedPanel = null; -}; - -bobj.crv.LeftPanel.prototype = { - getHTML : function() { - var toolPanelHTML = this._toolPanel ? this._toolPanel.getHTML () : ''; - var panelHeaderHTML = this._panelHeader ? this._panelHeader.getHTML () : ''; - var navigatorHTML = this._panelNavigator ? this._panelNavigator.getHTML () : ''; - - return bobj.html.DIV ( { - 'class' : 'leftPanel', - id : this.id - }, navigatorHTML, panelHeaderHTML, toolPanelHTML); - }, - - /** - * @return width that would best fit both navigator and toolpanel - */ - getBestFitWidth : function() { - var w = 0; - if (this._panelNavigator) - w += this._panelNavigator.getWidth (); - - if (this._toolPanel && this._toolPanel.isDisplayed()) - w += this._toolPanel.getWidth(); - else - w += 5; //The padding between navigator and reportAlbum when no toolpanel exist - - return w; - }, - - getBestFitHeight : function () { - var toolPanelHeight = 0; - var panelNavigatorHeight = 0; - - if(this._panelHeader) - toolPanelHeight += this._panelHeader.getHeight() - if(this._toolPanel) - toolPanelHeight += this._toolPanel.getBestFitHeight(); - if(this._panelNavigator) - panelNavigatorHeight = this._panelNavigator.getBestFitHeight(); - - return Math.max (toolPanelHeight, panelNavigatorHeight); - }, - - /** - * AJAX update flow - * @param update - * @return - */ - update : function(update) { - if (!update || update.cons != "bobj.crv.newLeftPanel") { - return; - } - - for ( var childNum in update.children) { - var child = update.children[childNum]; - if (child && child.cons == "bobj.crv.newToolPanel") { - if (this._toolPanel) - this._toolPanel.update (child); - break; - } - } - }, - - /** - * Initializes widgets and connects signals - */ - init : function() { - this.layer = getLayer (this.id); - this.css = this.layer.style; - - if (this._toolPanel) - this._toolPanel.init (); - - if (this._panelHeader) { - this._panelHeader.init (); - if(!this.isToolPanelDisplayed()) - this._panelHeader.setDisplay(false); - } - - if (this._panelNavigator) - this._panelNavigator.init (); - }, - - /** - * Connects signals - * @return - */ - _initSignals : function() { - var partial = MochiKit.Base.partial; - var signal = MochiKit.Signal.signal; - var connect = MochiKit.Signal.connect; - - if (this._toolPanel) { - MochiKit.Iter.forEach ( [ 'grpDrilldown', 'grpNodeRetrieveChildren', 'grpNodeCollapse', 'grpNodeExpand', 'resetParamPanel', - 'resizeToolPanel' ], function(sigName) { - connect (this._toolPanel, sigName, partial (signal, this, sigName)); - }, this); - } - - if (this._panelNavigator) - connect (this._panelNavigator, "switchPanel", this, '_switchPanel'); - - if(this._panelHeader) - connect (this._panelHeader, "switchPanel", this, '_switchPanel'); - }, - - /** - * @return true if toolpanel is displayed - */ - isToolPanelDisplayed : function() { - return this._toolPanel && this._toolPanel.isDisplayed (); - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - displayLastViewedPanel : function () { - if(this._toolPanel) { - switch(this._lastViewedPanel) - { - case bobj.crv.ToolPanelType.GroupTree: - this._switchPanel (bobj.crv.ToolPanelType.GroupTree); - break; - case bobj.crv.ToolPanelType.ParameterPanel: - this._switchPanel (bobj.crv.ToolPanelType.ParameterPanel); - break; - default : - this._switchPanel (bobj.crv.ToolPanelType.GroupTree); - } - } - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - hideToolPanel : function () { - this._switchPanel (bobj.crv.ToolPanelType.None); - }, - - /** - * - * @param panelType [bobj.crv.ToolPanelType] - * @return - */ - _switchPanel : function(panelType) { - if (this._toolPanel) { - this._toolPanel.setView (panelType); - if(panelType == bobj.crv.ToolPanelType.None) { - this._toolPanel.setDisplay(false); - this._panelHeader.setDisplay(false); - } - else { - this._toolPanel.setDisplay(true); - this._panelHeader.setDisplay(true); - this._lastViewedPanel = panelType; - } - } - - if (this._panelHeader) - var title = bobj.crv.ToolPanelTypeDetails[panelType].title; - this._panelHeader.setTitle (title); - - if (this._panelNavigator) - this._panelNavigator.selectChild (panelType); - - MochiKit.Signal.signal (this, 'switchPanel', panelType); - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getPanelNavigator : function () { - return this._panelNavigator; - }, - - getToolPanel : function() { - return this._toolPanel; - }, - - addChild : function(child) { - if (child.widgetType == "ToolPanel") { - this._toolPanel = child; - this.updateChildren (); - this._initSignals (); - } - }, - - /** - * Update Navigator and Header with toolPanel's children - * @return - */ - updateChildren : function() { - if (this._toolPanel) { - - this._panelNavigator = new bobj.crv.PanelNavigator (); - this._panelHeader = new bobj.crv.PanelHeader (); - var newChild = null; - - if (this._toolPanel.hasParameterPanel () && this.hasToggleParameterPanelButton) { - newChild = { - name : bobj.crv.ToolPanelType.ParameterPanel, - img : this.paramIconImg ? this.paramIconImg : bobj.crv.ToolPanelTypeDetails.ParameterPanel.img, - title : bobj.crv.ToolPanelTypeDetails.ParameterPanel.title - }; - this._panelNavigator.addChild (newChild); - } - if (this._toolPanel.hasGroupTree () && this.hasToggleGroupTreeButton) { - newChild = { - name : bobj.crv.ToolPanelType.GroupTree, - img : this.treeIconImg ? this.treeIconImg : bobj.crv.ToolPanelTypeDetails.GroupTree.img, - title : bobj.crv.ToolPanelTypeDetails.GroupTree.title - }; - this._panelNavigator.addChild (newChild); - } - - this._lastViewedPanel = this._toolPanel.initialViewType; - - this._panelNavigator.selectChild (this._toolPanel.initialViewType); - this._panelHeader.setTitle (bobj.crv.ToolPanelTypeDetails[this._toolPanel.initialViewType].title); - - if (!this._panelNavigator.hasChildren()) - { - this._panelHeader.hideCloseButton(); - this._toolPanel.addLeftBorder(); - } - } - }, - - resize : function(w, h) { - bobj.setOuterSize (this.layer, w, h); - this._doLayout (); - }, - - /** - * Layouts children where PanelHeader appears on top of toolPanel and panelNavigator to left of both header and toolpanel - * @return - */ - _doLayout : function() { - if(!this._toolPanel || !this._panelNavigator || !this._panelHeader) - return; - - var w = this.getWidth (); - var h = this.getHeight (); - var navigatorW = this._panelNavigator.getWidth (); - var newToolPanelWidth = w - navigatorW; - var newToolPanelHeight = h - this._panelHeader.getHeight (); - - if (this._toolPanel.isDisplayed()) { - this._toolPanel.resize (newToolPanelWidth, newToolPanelHeight); - this._toolPanel.move (navigatorW, this._panelHeader.getHeight ()); - } - - this._panelHeader.resize (newToolPanelWidth, null); - this._panelHeader.move (navigatorW, 0); - this._panelNavigator.resize(navigatorW, h); - }, - - move : Widget_move, - getWidth : Widget_getWidth, - getHeight : Widget_getHeight -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/OptionalParameterUI.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/OptionalParameterUI.js deleted file mode 100644 index e07b38ea1..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/OptionalParameterUI.js +++ /dev/null @@ -1,35 +0,0 @@ -/** - * OptionalParameterUI extends ParameterUI - */ - -bobj.crv.params.newOptionalParameterUI = function(kwArgs) { - kwArgs = MochiKit.Base.update( { - noValueDisplayText :'', - isEmptyStringNoValue: true, - clearValuesCB : null - }, kwArgs); - - var o = bobj.crv.params.newParameterUI(kwArgs); - - /* - * The reason I'm using bobj.extendClass is that it would populate all functions defined in ParameterUI - * in this.superClass so I can call any function on parent class - */ - bobj.extendClass(o, bobj.crv.params.OptionalParameterUI, bobj.crv.params.ParameterUI); - - return o; -}; - -bobj.crv.params.OptionalParameterUI = { - _getNewValueRowConstructor : function() { - return bobj.crv.params.newOptionalParameterValueRow; - }, - - _getNewValueRowArgs : function(value) { - var args = this.superClass._getNewValueRowArgs(value); - args.noValueDisplayText = this.noValueDisplayText; - args.isEmptyStringNoValue = this.isEmptyStringNoValue; - args.clearValuesCB = this.clearValuesCB; - return args; - } -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/OptionalParameterValueRow.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/OptionalParameterValueRow.js deleted file mode 100644 index 791baa1dd..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/OptionalParameterValueRow.js +++ /dev/null @@ -1,143 +0,0 @@ - -/** - * OptionalParameterValueRow extends ParamterValueRow. This class displays a info message for 'undefined' value and - * clears the info message when its control get focus - */ -bobj.crv.params.newOptionalParameterValueRow = function(kwArgs) { - kwArgs = MochiKit.Base.update( { - noValueDisplayText :'', - isEmptyStringNoValue : true, - clearValuesCB : null - }, kwArgs); - - var o = bobj.crv.params.newParameterValueRow(kwArgs); - bobj.extendClass(o, bobj.crv.params.OptionalParameterValueRow, bobj.crv.params.ParameterValueRow); - - if (o.canChangeOnPanel) { - o._clearValueButton = newIconWidget( - o.id + '_clearBtn', - bobj.crvUri('images/clear_x.gif'), - o.clearValuesCB, - null, //text - L_bobj_crv_ParamsClearValues,//tooltip, - 10, 10, 2, 2); //width, height, dx, dy, disDx, disDy, cancelEventPropagation - - o._clearValueButton.setClasses("", "iconcheck", "", "iconcheckhover"); - o._clearValueButton.margin = 2; - } - - return o; -}; - -bobj.crv.params.OptionalParameterValueRow = { - /** - * Returns arguments required for creating new ValueWidget(TextField, TextCombo, RangeField) - */ - getNewValueWidgetArgs : function() { - var args = this.superClass.getNewValueWidgetArgs(); - - if (this.value == undefined) { - //If value is undefined, the valueWidget should display noValueDisplayText - args.cleanValue = this.noValueDisplayText; - args.foreColor = bobj.Colors.GRAY; - } - - return args; - }, - - init : function () { - this.superClass.init(); - if(this._clearValueButton) { - this._clearValueButton.init(); - } - - this.updateUI (); - }, - - getHTML : function () { - var rowHTML = this.superClass.getHTML(); - if (this.canChangeOnPanel) { - var h = bobj.html; - rowHTML = h.DIV({style : {position : 'relative'}}, rowHTML , h.DIV({'class' : 'clearValueBtnCtn'},this._clearValueButton.getHTML())); - } - - return rowHTML; - }, - - /** - * When receiving focus if noValueDisplayText is being displayed (happens when current value is undefined and param is editable on panel), - * it must be cleared so user can type something - */ - onFocus : function() { - this.superClass.onFocus(); - if (this.canChangeOnPanel) { - if(this.value == undefined) - this._valueWidget.setValue(''); - } - }, - - onBlur : function() { - this.superClass.onBlur(); - - if (this.canChangeOnPanel) { - if (this.value == undefined) - this._valueWidget.setValue(this.noValueDisplayText); - } - }, - - /** - * When user changes value, value stored in OptionalParmeterUI gets updated and - */ - _onChange : function() { - this.value = this._valueWidget.getValue(); - if(this.isEmptyStringNoValue && this.value != null && this.value.length == 0) - this.value = undefined; - - this.updateUI(); - if (this.changeCB) - this.changeCB(); - - }, - - updateUI: function() { - if (this._valueWidget) { - if(this.isReadOnlyParam) { - this._valueWidget.setForeColor(bobj.Colors.GRAY); - this._valueWidget.setTextItalic(false); - } - else { - if(this.value == undefined) { - this._valueWidget.setForeColor(bobj.Colors.GRAY); - if(this._clearValueButton) - this._clearValueButton.setDisplay(false); - } - else { - this._valueWidget.setForeColor(bobj.Colors.BLACK); - if(this._clearValueButton) - this._clearValueButton.setDisplay(true); - } - } - } - }, - - getValueWidgetDisplayValue: function(value) { - return (value == undefined) ? this.noValueDisplayText : value; - }, - - setValue : function(value) { - this.value = value; - this._valueWidget.setValue(this.getValueWidgetDisplayValue(value)); - this.updateUI(); - - this.setWarning(null); //Since value is set through parameterController it cannot contain any errors - }, - - reset : function(value) { - this.superClass.reset(value); - if(this._valueWidget) { - this._valueWidget.reset(this.getValueWidgetDisplayValue(value)); - } - - this.updateUI(); - } -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/PanelHeader.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/PanelHeader.js deleted file mode 100644 index c02a4a299..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/PanelHeader.js +++ /dev/null @@ -1,99 +0,0 @@ -/** - * The header that appears above toolPanel. It consists of a title and close button. - */ -bobj.crv.PanelHeader = function() { - this.id = bobj.uniqueId () + "_panelHeader"; - - this._closeButton = newIconWidget (this.id + "_close", bobj.crv.allInOne.uri, bobj - .bindFunctionToObject (this._closeButtonOnClick, this), null, L_bobj_crv_Close, 8, 7, 0, bobj.crv.allInOne.closePanelDy,null,null,true); - - this.normalCssClass = "panelHeaderCloseButton"; - this.highlightedCssClass = "panelHeaderCloseButtonHighlighted"; - - this._closeButton.setClasses (this.normalCssClass, this.normalCssClass, this.highlightedCssClass, this.highlightedCssClass); - this._title = ""; -}; - -bobj.crv.PanelHeader.prototype = { - getHTML : function() { - var DIV = bobj.html.DIV; - var style = {height : bobj.isBorderBoxModel() ? '21px' : '20px'}; - - return DIV ( { - 'class' : 'panelHeader', - id : this.id, - style : style - }, DIV ( { - 'class' : 'panelHeaderTitle', - id : this.id + "_title" - }, this._title), DIV ( { - 'class' : 'panelHeaderButtonCtn' - }, this._closeButton.getHTML ())); - }, - - init : function() { - this.layer = getLayer (this.id); - this.css = this.layer.style; - this._closeButton.init (); - - var cbLayer = this._closeButton.layer - if (cbLayer) { - MochiKit.Signal.connect (cbLayer, "onfocus", this, this._closeButtonOnFocus); - MochiKit.Signal.connect (cbLayer, "onblur", this, this._closeButtonOnBlur); - } - }, - - /** - * - * @return [DOM element] of title - */ - _getTitleLayer : function() { - return getLayer (this.id + "_title"); - }, - - /** - * Sets title on panel header - * @param title - * @return - */ - setTitle : function(title) { - this._title = title; - this._closeButton.changeTooltip(L_bobj_crv_Close + " " + title); - var l = this._getTitleLayer (); - if (l) - l.innerHTML = title; - }, - - _closeButtonOnFocus : function() { - if (this._closeButton && this._closeButton.layer) - MochiKit.DOM.addElementClass (this._closeButton.layer, this.highlightedCssClass); - }, - - _closeButtonOnBlur : function() { - if (this._closeButton && this._closeButton.layer) - MochiKit.DOM.removeElementClass (this._closeButton.layer, this.highlightedCssClass); - }, - - _closeButtonOnClick : function() { - MochiKit.Signal.signal (this, 'switchPanel', bobj.crv.ToolPanelType.None); - }, - - resize : function(w, h) { - if (this.layer) - bobj.setOuterSize (this.layer, w, h); - - var titleLayer = this._getTitleLayer (); - if(titleLayer) - bobj.setOuterSize (titleLayer, w - 30); - }, - - hideCloseButton : function() { - if (this._closeButton) - this._closeButton.setDisplay(false); - }, - - getWidth : Widget_getWidth, - getHeight : Widget_getHeight, - move : Widget_move, - setDisplay : Widget_setDisplay -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/PanelNavigator.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/PanelNavigator.js deleted file mode 100644 index f0404ff9a..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/PanelNavigator.js +++ /dev/null @@ -1,124 +0,0 @@ -/** - * Navigator on left of viewer, controlling which panel is shown - */ -bobj.crv.PanelNavigator = function() { - this._children = []; - this.widgetType = "PanelNavigator"; - this.id = bobj.uniqueId () + "_panelNav"; -}; - -bobj.crv.PanelNavigator.prototype = { - getHTML : function() { - var childrenHTML = ""; - for ( var i = 0; i < this._children.length; i++) - childrenHTML += this._children[i].getHTML (); - - var DIV = bobj.html.DIV; - var style = { width : bobj.isBorderBoxModel() ? '37px' : '35px'}; - - - return DIV ( { - 'class' : 'panelNavigator', - id : this.id, - style : style - }, DIV ( { id : this.id + "_innerBorder", - 'class' : 'panelNavigatorInnerBorder' - }, childrenHTML)); - }, - - /** - * Initializes its layer and calls init on children - * @return - */ - init : function() { - this.layer = getLayer (this.id); - this._innerBorder = getLayer(this.id + "_innerBorder"); - this.css = this.layer.style; - - if(this._children.length == 0) { - this.css.display = "none"; - } - else { - for ( var i = 0; i < this._children.length; i++) - this._children[i].init (); - } - }, - - /** - * Sets selection on specified child and removes selection from any other child - * @return - */ - selectChild : function(childName) { - for ( var i = 0; i < this._children.length; i++) { - var child = this._children[i]; - child.setSelected (child.getName () == childName); - } - }, - - getChild : function (childName) { - for ( var i = 0; i < this._children.length; i++) { - var child = this._children[i]; - if(child.getName () == childName) - return child; - } - return null; - }, - - hasChildren : function () { - return (this._children.length > 0); - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getGroupTreeButton : function () { - return this.getChild (bobj.crv.ToolPanelType.GroupTree); - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getParamPanelButton : function () { - return this.getChild (bobj.crv.ToolPanelType.ParameterPanel); - }, - - - /** - * - * @param kwArgs [JSON] creates PanelNavigatorItem with properties specified in kwArgs and connects signals - * @return - */ - addChild : function(kwArgs) { - kwArgs = MochiKit.Base.update ( { - name : '', - title : '', - img : { uri: '', dx: 0, dy: 0 } - }, kwArgs); - - var partial = MochiKit.Base.partial; - var signal = MochiKit.Signal.signal; - var connect = MochiKit.Signal.connect; - - var navItem = new bobj.crv.PanelNavigatorItem (kwArgs.name, kwArgs.img, kwArgs.title, 35 * this._children.length); - - connect (navItem, "switchPanel", partial (signal, this, "switchPanel")); - this._children.push (navItem); - }, - - resize : function(w, h) { - bobj.setOuterSize (this.layer, w, h); - bobj.setOuterSize (this._innerBorder, w -2, h -2); //Since border size is 1px for all edges - }, - - getBestFitHeight : function () { - var height = 0; - for ( var i = 0; i < this._children.length; i++) - height += this._children[i].getHeight(); - - return height; - }, - - move : Widget_move, - getWidth : Widget_getWidth - -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/PanelNavigatorItem.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/PanelNavigatorItem.js deleted file mode 100644 index c91393627..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/PanelNavigatorItem.js +++ /dev/null @@ -1,105 +0,0 @@ -/** - * - * @param name [String] Name of itme - * @param img [String] uri location of icon image - * @param title [String] tooltip - */ -bobj.crv.PanelNavigatorItem = function(name, img, title, topOffset) { - this._name = name; - this._img = img; - this._isSelected = false; - this._title = title; - this.topOffset = topOffset; - this.widgetType = 'PanelNavigatorItem'; - - this.id = bobj.uniqueId () + "_navItem_" + name; -}; - -bobj.crv.PanelNavigatorItem.prototype = { - getHTML : function() { - var h = bobj.html; - var img = this._img; - - return h.DIV ( { - id : this.id, - 'class' : 'panelNavigatorItem', - 'tabindex' : '0', - style : {top : this.topOffset + "px"}, - title : this._title, - role : 'button' - }, imgOffset(img.uri, 22, 22, img.dx, img.dy, null, 'class="panelNavigatorItemImage" title="' + this._title + '"') - ); - }, - - getName : function() { - return this._name; - }, - - init : function() { - this.layer = getLayer (this.id); - this.css = this.layer.style; - - var connect = MochiKit.Signal.connect; - connect (this.layer, "onclick", this, this._onClick); - connect (this.layer, "onkeydown", this, this._onKeyDown); - connect (this.layer, "onmouseover", this, this._onMouseOver); - connect (this.layer, "onmouseout", this, this._onMouseOut); - connect (this.layer, "onfocus", this, this._onFocus); - connect (this.layer, "onblur", this, this._onBlur); - - this.setSelected (this._isSelected); - }, - - _onFocus : function () { - MochiKit.DOM.addElementClass (this.layer, "highlighted"); - }, - - _onBlur : function () { - MochiKit.DOM.removeElementClass (this.layer, "highlighted"); - }, - - _onMouseOver : function () { - MochiKit.DOM.addElementClass (this.layer, "highlighted"); - }, - - _onMouseOut : function () { - MochiKit.DOM.removeElementClass (this.layer, "highlighted"); - }, - - _onKeyDown : function(ev) { - if (ev && ev.key () && (ev.key ().code == 13 || ev.key ().code == 32)) // On Enter or spacebar, signal swith panel - this._signalSwitchPanel(); - }, - - _onClick : function() { - this._signalSwitchPanel (); - }, - - /** - * Signals switch panel if it's not currently selected - * @return - */ - _signalSwitchPanel : function () { - if(!this._isSelected) - MochiKit.Signal.signal (this, "switchPanel", this._name); - }, - - /** - * @param isSelected [Boolean] is item selected or not selected - */ - setSelected : function(isSelected) { - this._isSelected = isSelected; - var DOM = MochiKit.DOM; - if (this.layer) { - if (isSelected) - DOM.addElementClass (this.layer, "selected"); - else - DOM.removeElementClass (this.layer, "selected"); - } - }, - - getWidth : Widget_getWidth, - getHeight: Widget_getHeight, - setDisplay : Widget_setDisplay, - isDisplayed : Widget_isDisplayed -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Parameter.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Parameter.js deleted file mode 100644 index 52488d0cf..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Parameter.js +++ /dev/null @@ -1,511 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof bobj.crv.params == 'undefined') { - bobj.crv.params = {}; -} - - bobj.crv.params.DataTypes = { - DATE: "d", - DATE_TIME: "dt", - TIME: "t", - STRING: "s", - NUMBER: "n", - CURRENCY: "c", - BOOLEAN: "b" - }; - - bobj.crv.params.RangeBoundTypes = { - UNBOUNDED: 0, - EXCLUSIVE: 1, - INCLUSIVE: 2 - }; - - bobj.crv.params.DefaultDisplayTypes = { - Description: 0, - DescriptionAndValue: 1 - }; - - bobj.crv.params.CompareResults = { - TOO_BIG: 1, - TOO_SMALL: -1, - EQUAL: 0 - }; - -/* -================================================================================ -Parameter -================================================================================ -*/ - -/** - * Constructor. - */ -bobj.crv.params.Parameter = function(paramInfo) { - var PARAMS = bobj.crv.params; - var displayTypes = PARAMS.DefaultDisplayTypes; - MochiKit.Base.update(this, { - paramName: null, - reportName: null, - description: null, - valueDataType: null, - value: null, - modifiedValue: null, - defaultValues: null, - defaultDisplayType : displayTypes.DescriptionAndValue, - maxValue: null, - minValue: null, - allowCustomValue: true, - allowDiscreteValue: true, - allowMultiValue: false, - allowNullValue: false, - allowRangeValue: false, - editMask: null, - isOptionalPrompt: false, - isEditable: true, - isHidden: false, - isDataFetching: false, - attributes: null - }, paramInfo); - -}; - -/** - * IMPORTANT! Use getValue and setValue to access the value of the parameter, instead of the property itself. - */ -bobj.crv.params.Parameter.prototype = { - getTitle: function() { - return (this.description || this.paramName); - }, - - getName: function () { - return this.paramName; - }, - - hasLOV: function() { - return (this.defaultValues != null && this.defaultValues.length > 0); - }, - - hasDescription: function() { - return this.description != null; - }, - - isPassword: function() { - return (this.editMask !== null && this.editMask.toLowerCase() == "password"); - }, - - getValue: function() { - this._initModifiedValue(); - return this.modifiedValue; - }, - - /* - * Undos any modifications done on parameter that have not been commited - */ - reset: function() { - delete this.modifiedValue; - }, - - removeValueAt: function(index) { - this._initModifiedValue(); - var value = this.modifiedValue[index]; - this.modifiedValue.splice(index, 1); - }, - - // setValue accepts either an array, or an int + an object. - setValue: function (i, newValue) { - this._initModifiedValue(); - - if (arguments.length == 1 && bobj.isArray(arguments[0])) { - var value= arguments[0]; - this.modifiedValue = value; - } - else if (arguments.length == 2) { - var oldValue = this.modifiedValue[i]; - this.modifiedValue[i] = newValue; - } - }, - - clearValue: function() { - this._initModifiedValue(); - this.modifiedValue = []; - }, - - // commitValue will actually apply the changes made so far - commitValue: function() { - this._initModifiedValue(); - this.value = this.modifiedValue.slice(0); - }, - - _initModifiedValue: function() { - if (!this.modifiedValue) { - if (bobj.isArray(this.value)) { - this.modifiedValue = this.value.slice(0); // make a deep copy of "value" - } - else { - this.modifiedValue = []; - } - } - }, - - isDCP: function () { - if (this.attributes != null) { - if (this.attributes['IsDCP'] === true) { - return true; - } - } - - return false; - } -}; - -/* -================================================================================ -Validator for Parameters -================================================================================ -*/ -bobj.crv.params.Validator = function(){}; - -bobj.crv.params.Validator.ValueStatus = { - OK: 0, - ERROR: 1, - VALUE_MISSING: 2, // Required value is missing - VALUE_INVALID_TYPE: 3, // Value has the wrong data type - VALUE_TOO_LONG: 4, // Value's length is less than the minimum - VALUE_TOO_SHORT: 5, // Value's length is greater than the maximum - VALUE_TOO_BIG: 6, // Value is greater than the maximum - VALUE_TOO_SMALL: 7, // Value is less than the minimum - VALUE_DUPLICATE: 8 -}; - -bobj.crv.params.Validator.getInstance = function(){ - if (!bobj.crv.params.Validator.__instance) { - bobj.crv.params.Validator.__instance = new bobj.crv.params.Validator(); - } - return bobj.crv.params.Validator.__instance; -}; - -bobj.crv.params.Validator.prototype = { - /** - * Validate a Parameter instance and return a status object - */ - validateParameter: function(param) { - var PARAMS = bobj.crv.params; - if (!param) {return null;} - - var Status = PARAMS.Validator.ValueStatus; - - if (!bobj.isArray(param.value) || !param.value.length) { - return { - isValid: false, - reason: Status.VALUE_MISSING - }; - } - - var isValid = true; - var statusList = []; - - for (var i = 0, len = param.values.length; i < len; ++i) { - var status = PARAMS.validateValue(param, i); - statusList.push(status); - isValid = isValid && (status === ValueStatus.OK); - } - - return { - isValid: isValid, - statusList: statusList - }; - - }, - - /** - * Validate a parameter value and return a status code - */ - validateValue: function(param, value) { - var Status = bobj.crv.params.Validator.ValueStatus; - - if (!param || !bobj.isArray(param.value) || (value === undefined)) { - return Status.ERROR; - } - - var validatorFunc = this._getTypeValidatorFunc(param.valueDataType); - if (!validatorFunc) { - return Status.ERROR; - } - - var actualValue = bobj.crv.params.getValue(value); - return validatorFunc(param, actualValue); - }, - - _getTypeValidatorFunc: function(type) { - var Type = bobj.crv.params.DataTypes; - - switch (type) { - case Type.STRING: - return this._validateString; - case Type.NUMBER: - case Type.CURRENCY: - return this._validateNumber; - case Type.DATE: - case Type.TIME: - case Type.DATE_TIME: - return this._validateDateTime; - case Type.BOOLEAN: - return this._validateBoolean; - default: - return null; - } - }, - - _validateString: function(param, value) { - var Status = bobj.crv.params.Validator.ValueStatus; - - if (!bobj.isString(value)) { - return Status.VALUE_INVALID_TYPE; - } - - var maxValue = param.maxValue; - var minValue = param.minValue; - if (bobj.isNumber(maxValue) && value.length > maxValue) { - return Status.VALUE_TOO_LONG; - } - - if (bobj.isNumber(minValue) && value.length < minValue) { - return Status.VALUE_TOO_SHORT; - } - - return Status.OK; - }, - - _validateNumber: function(param, value) { - //the "value" passed in here is a number that has at most one decimal separator and no group separator - var Status = bobj.crv.params.Validator.ValueStatus; - var regNumber = /^(\+|-)?(\d+((\.\d+)|(\.))?|\.\d+)$/; - - if(bobj.isString(value) && regNumber.test(value)) { - value = parseFloat(value); - } - else if(!bobj.isNumber(value)) { - return Status.VALUE_INVALID_TYPE; - } - - var maxValue = param.maxValue; - var minValue = param.minValue; - if(maxValue !== null && value > maxValue) { - return Status.VALUE_TOO_BIG; - } - else if(minValue !== null && value < minValue) { - return Status.VALUE_TOO_SMALL; - } - else { - return Status.OK; - } - }, - - _validateDateTime: function(param, value) { - var Result = bobj.crv.params.CompareResults; - var Status = bobj.crv.params.Validator.ValueStatus; - - if (bobj.isObject(value)) { - var isNumber = function(sel) {return bobj.isNumber(value[sel]);}; - if (MochiKit.Iter.every(['d','m', 'y', 'h', 'min', 's', 'ms'], isNumber)) { - - var compareFunc = bobj.crv.params.getDateCompareFunc(param.valueDataType); - if(param.minValue && compareFunc(param.minValue,value) == Result.TOO_BIG) { - return Status.VALUE_TOO_SMALL; - } - else if(param.maxValue && compareFunc(param.maxValue,value) == Result.TOO_SMALL) { - return Status.VALUE_TOO_BIG; - } - else { - return Status.OK; - } - } - } - - return Status.VALUE_INVALID_TYPE; - }, - - _validateBoolean: function(param, value) { - return bobj.crv.params.Validator.ValueStatus.OK; - } -}; - -/* -================================================================================ -Utility Functions -================================================================================ -*/ - -/** - * Get an object that represents a Date and can be serialized to a json string - * - * @param date [Date] The Date instance that should be represented as json - * - * @return [Object] Object representing the date with (key, value) pairs - */ -bobj.crv.params.dateToJson = function(date) { - return { - d: date.getDate(), - m: date.getMonth(), - y: date.getFullYear(), - h: date.getHours(), - min: date.getMinutes(), - s: date.getSeconds(), - ms: date.getMilliseconds() - }; -}; - -bobj.crv.params.getDateCompareFunc = function(type) { - var PARAMS = bobj.crv.params; - var Type = PARAMS.DataTypes; - - switch (type) { - case Type.DATE: - return PARAMS.compareDate; - case Type.TIME: - return PARAMS.compareTime; - case Type.DATE_TIME: - return PARAMS.compareDateTime; - default: - return null; - } -}; - -bobj.crv.params.compareDateTime = function(dateTimeA, dateTimeB) { - var PARAMS = bobj.crv.params; - var Result = PARAMS.CompareResults; - - var dateResult = PARAMS.compareDate(dateTimeA,dateTimeB); - var timeResult = PARAMS.compareTime(dateTimeA,dateTimeB); - - if(dateResult == Result.EQUAL && timeResult == Result.EQUAL) { - return Result.EQUAL; - } - - if(dateResult != Result.EQUAL) { - return dateResult; - } - else { - return timeResult; - } -}; - -/* - * Compares two dates - * @param dateA [JSON DateTime {y,m,d,h,m,s,ms}] first date value - * @param dateB [JSON DateTime {y,m,d,h,m,s,ms}] second date value - * - * @return - * 0: dateA = dateB - * 1: dateA > dateB - * -1: dateA < dateB - */ -bobj.crv.params.compareDate = function(dateTimeA, dateTimeB) { - var Result = bobj.crv.params.CompareResults; - - if( dateTimeA.d == dateTimeB.d && dateTimeA.m == dateTimeB.m && dateTimeA.y == dateTimeB.y){ - return Result.EQUAL; - } - - if( dateTimeA.y > dateTimeB.y) { - return Result.TOO_BIG; - } - else if(dateTimeA.y < dateTimeB.y) { - return Result.TOO_SMALL; - } - - if(dateTimeA.m > dateTimeB.m) { - return Result.TOO_BIG; - } - else if(dateTimeA.m < dateTimeB.m) { - return Result.TOO_SMALL; - } - - if(dateTimeA.d > dateTimeB.d) { - return Result.TOO_BIG; - } - else if(dateTimeA.d < dateTimeB.d) { - return Result.TOO_SMALL; - } -}; - -/* - * Compares two times - * @param timeA [JSON DateTime {y,m,d,h,m,s,ms}] first time value - * @param timeB [JSON DateTime {y,m,d,h,m,s,ms}] second time value - * - * @return - * 0: dateA = dateB - * 1: dateA > dateB - * -1: dateA < dateB - */ -bobj.crv.params.compareTime = function(dateTimeA,dateTimeB) { - var Result = bobj.crv.params.CompareResults; - - if(dateTimeA.h == dateTimeB.h && dateTimeA.min == dateTimeB.min && dateTimeA.s == dateTimeB.s && dateTimeA.ms == dateTimeB.ms) { - return Result.EQUAL; - } - - if(dateTimeA.h > dateTimeB.h) { - return Result.TOO_BIG; - } - else if(dateTimeA.h < dateTimeB.h){ - return Result.TOO_SMALL; - } - - if(dateTimeA.min > dateTimeB.min) { - return Result.TOO_BIG; - } - else if(dateTimeA.min < dateTimeB.min) { - return Result.TOO_SMALL; - } - - if(dateTimeA.s > dateTimeB.s) { - return Result.TOO_BIG; - } - else if(dateTimeA.s < dateTimeB.s) { - return Result.TOO_SMALL; - } - - if(dateTimeA.ms > dateTimeB.ms) { - return Result.TOO_BIG; - } - else if(dateTimeA.ms < dateTimeB.ms){ - return Result.TOO_SMALL; - } -}; - -/** - * Get a Date instance from an object containing (key, value) pairs - * - * @param json [Object] Object with keys that match Date properties - * - * @return [Date] Returns a Date instance - */ -bobj.crv.params.jsonToDate = function(json) { - var date = new Date(); - - if (json) { - date.setFullYear(json.y || 0, json.m || 0, json.d || 1); - date.setHours(json.h || 0); - date.setMinutes(json.min || 0); - date.setSeconds(json.s || 0); - date.setMilliseconds(json.ms || 0); - } - - return date; -}; - -bobj.crv.params.getValue = function (pair) { - if (pair === undefined || pair === null || pair.value === undefined) - return pair; - - return pair.value; -}; - -bobj.crv.params.getDescription = function (pair) { - if (pair === undefined || pair === null || pair.desc === undefined) - return null; - - return pair.desc; -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterController.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterController.js deleted file mode 100644 index a7b1c1361..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterController.js +++ /dev/null @@ -1,1203 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/* TODO Dave - * - Use delete button to set value to empty string if it can't be removed - */ - -/** - * ParameterController creates and controls the widgets that show and edit - * parameter values in the interactive parameter panel. - * - * @param panel [ParameterPanel] Panel that will contain the parameter widgets - * @param viewerCtrl [ViewerListener] Controller for the entire viewer - * @param paramOpts [Object] Parameter options, such as dateTimeFormat - */ -bobj.crv.params.ParameterController = function(panel, viewerCtrl, paramOpts) { - this._panel = panel; - this._viewerCtrl = viewerCtrl; - this._paramOpts = paramOpts; - this._paramList = null; - this._unusedParamList = null; - - var applyClickCB = bobj.bindFunctionToObject(this._onClickTbApplyButton,this); - var resetClickCB = bobj.bindFunctionToObject(this._onClickTbResetButton,this); - this._panel.setToolbarCallBacks(applyClickCB,resetClickCB); -}; - -bobj.crv.params.ParameterController.prototype = { - - /** - * Set the list of parameters to display in the parameter panel. - * - * @param paramList [Array] List of bobj.crv.params.Parameter instances - */ - setParameters: function(paramList, finishCB) { - var Type = bobj.crv.params.DataTypes; - var map = MochiKit.Base.map; - var bind = MochiKit.Base.bind; - - this._deleteWidgets(); - var TIMEER_INTERVAL = 50; - - this._paramList = paramList; - - for (var i = 0; i < paramList.length; ++i) { - var param = paramList[i]; - - var getDisplayText = bind(this._getDisplayText, this, param); - var getDefaultValue = bind(this._getDefaultValue, this, param.valueDataType,param.defaultDisplayType); - var panelCanChangeValues = this._canPanelChangeValues(param); - var minMaxText = this._getMinMaxText(param.valueDataType, param.minValue, param.maxValue); - var openAdvDialogCB = bind(this._onClickTbAdvButton, this, param); - var clearValuesCB = bind(this.clearParameterValues, this, param); - var isReadOnly = !param.isEditable; - var paramValue = param.getValue(); - var isValueOptional = param.isOptionalPrompt || param.allowNullValue; - var calendarProperties = { - hasButton : param.allowCustomValue && panelCanChangeValues && (param.valueDataType === Type.DATE || param.valueDataType === Type.DATE_TIME), - isTimeShown : param.valueDataType === Type.DATE_TIME, - displayValueFormat : this._getDateTimeFormat(param.valueDataType), - iconUrl : bobj.crvUri('images/calendar.gif') - }; - - if(isValueOptional) - paramValue = this.convertOptionalParameterValue(paramValue); - - var paramWidgetConstructor = isValueOptional ? bobj.crv.params.newOptionalParameterUI : bobj.crv.params.newParameterUI; - var canOpenAdvDialog = param.isEditable && (param.allowRangeValue || param.allowMultiValue || param.isDCP() || param.editMask); - - var newParamWidgetArgs = { - values :map(getDisplayText, paramValue), - canChangeOnPanel :panelCanChangeValues, - allowCustom :param.allowCustomValue, - allowRange :param.allowRangeValue, - canAddValues :param.allowMultiValue && panelCanChangeValues, - isReadOnlyParam :isReadOnly, - isPassword :param.isPassword(), - defaultValues :map(getDefaultValue, param.defaultValues || []), - openAdvDialogCB : openAdvDialogCB, - maxNumParameterDefaultValues :this._paramOpts.maxNumParameterDefaultValues, - tooltip :param.getTitle(), - calendarProperties :calendarProperties, - clearValuesCB : clearValuesCB, - canOpenAdvDialog : canOpenAdvDialog - }; - - if(isValueOptional) { - newParamWidgetArgs.noValueDisplayText = this._getNoValueDisplayText(param.valueDataType, panelCanChangeValues) - newParamWidgetArgs.isEmptyStringNoValue = param.valueDataType != Type.STRING; - } - - var paramWidget = paramWidgetConstructor(newParamWidgetArgs); - this._observeParamWidget(paramWidget); - - var addParameter = function(panel, param, paramWidget, openAdvDialogCB, isValueOptional, panelCanChangeValues, clearValuesCB, isLast, finishCB) { - return function() { - panel.addParameter({paramUI: paramWidget, - label : param.getTitle(), - name : param.getName(), - isDataFetching: param.isDataFetching, - openAdvCB: openAdvDialogCB - }); - - if(isLast && finishCB) - finishCB(); - }; - }; - - setTimeout(addParameter(this._panel, param, paramWidget, canOpenAdvDialog ? openAdvDialogCB : null, isValueOptional, panelCanChangeValues, clearValuesCB, i == paramList.length -1, finishCB), TIMEER_INTERVAL * i); - } - - if(paramList) { - var updatePanel = function (panel) { - return function() { - //Parameter panel has to be resized in case scroll bars appear - panel.resize(); - - // Force the panel to be redrawn to fix a problem - // in IE if the prompt text is too long to be displayed. - if (MochiKit.Base.isIE ()){ - var curDisplay = panel.isDisplayed(); - panel.setDisplay(!curDisplay); - panel.setDisplay(curDisplay); - } - }; - }; - setTimeout(updatePanel(this._panel), TIMEER_INTERVAL * paramList.length ); - } - - //Panel should be disabled when current view is not main report view - this._panel.setDisabled(!this._isCurrentViewMainReport()); - //Disables all buttons on param toolbar -> necessary when refreshing report via ajax request - this._panel.setApplyButtonEnabled(false); - this._panel.setResetButtonEnabled(false); - }, - - setUnusedParameters: function(unusedParamList) { - this._unusedParamList = unusedParamList; - }, - - convertOptionalParameterValue: function(values) { - if(values === undefined || values.length === undefined) - return []; - - var newValues = bobj.cloneArray (values); - if(newValues.length == 0 || newValues[0] == null) - newValues[0] = undefined; - - return newValues; - }, - - /** - * Get the list of params that are displayed in the panel - * - * @return [Array] List of bobj.crv.params.Parameter instances or null - */ - getParameters: function() { - return this._paramList; - }, - - /** - * When view changes, ParameterController must disable panel if current view is not main report view - * @return - */ - onChangeView: function() { - this._panel.setDisabled(!this._isCurrentViewMainReport()); - }, - - /** - * - * @return true if panel is edittable - */ - _isPanelEditable: function() { - return this._isCurrentViewMainReport(); - }, - - /** - * @return true if current view is the main report view - */ - _isCurrentViewMainReport: function() { - var currentView = this._viewerCtrl.getCurrentView (); - return currentView && currentView.isMainReport(); - }, - - findParamIndexByName : function( paramName) { - for (var i = 0; i < this._paramList.length; ++i) { - if (this._paramList[i].paramName === paramName) { - return i; - } - } - - return -1; - }, - - findUnusedParamIndexByName : function(paramName) { - for (var i = 0; i < this._unusedParamList.length; ++i) { - if (this._unusedParamList[i].paramName === paramName) { - return i; - } - } - - return -1; - }, - - findParamByName : function(paramName) { - var index = this.findParamIndexByName(paramName); - if(index == -1) - return null; - else - return this._paramList[index]; - }, - - /** - * Sets the current values of the param with the same name as the one passed - * in and updates the UI. - * - * @param [Parameter] - */ - updateParameter: function(paramName, paramValue) { - if (paramName) { - var index = this.findParamIndexByName(paramName); - - if (index != -1) { - var param = this._paramList[index]; - param.setValue(paramValue); - - var paramUI = this._panel.getParameter(index); - var getDisplayText = MochiKit.Base.bind(this._getDisplayText, this, this._paramList[index]); - - if (param.isOptionalPrompt || param.allowNullValue) - paramValue = this.convertOptionalParameterValue(paramValue); - - paramUI.setValues( MochiKit.Base.map(getDisplayText, paramValue) ); - - var paramTab = this._panel.getParameterTab(index); - if(paramTab) - paramTab.setDirty(true); - } - else { - index = this.findUnusedParamIndexByName(paramName); - - if (index != -1) { - var param = this._unusedParamList[index]; - param.setValue(paramValue); - } - } - } - }, - - getFocusAdvButtonCB: function (paramName) { - return MochiKit.Base.bind(this._focusAdvButton, this, paramName); - }, - - _focusAdvButton: function(paramName) { - if (paramName) { - var index = this.findParamIndexByName(paramName); - - if (index != -1) { - var paramTab = this._panel.getParameterTab(index); - - if(paramTab) - paramTab.focusAdvButton(); - } - } - }, - - /** - * Checks whether a parameter can be edited directly in the panel. Params - * that can't be edited in the panel are either read-only or must be - * edited in the Advanced Dialog. - * - * @param param [Parameter] - * - * @return [bool] True if ParameterPanel is capable of changing the - * parameter's values. False otherwise. - */ - _canPanelChangeValues: function(param) { - return param && param.isEditable && !param.allowRangeValue && !param.editMask && !param.isDCP() && !param.allowMultiValue; - }, - - /** - * Private. Deletes the parameter widgets in the panel. - */ - _deleteWidgets: function() { - var paramUI = this._panel.getParameter(0); - while (paramUI) { - delete _widgets[paramUI.widx]; - this._panel.removeParameter(0); - paramUI = this._panel.getParameter(0); - } - }, - - /** - * Restores original state of parameter panel - */ - resetParamPanel: function() { - - // Resets value of all parameters in panel to values stored in view state - for(var i = 0, iLen = this._paramList.length; i < iLen; i++) { - var param = this._paramList[i]; - param.reset(); - - var paramUI = this._findWidget(param); - var getDisplayText = MochiKit.Base.bind(this._getDisplayText, this, param); - - var paramValue = param.getValue(); - if (param.isOptionalPrompt || param.allowNullValue) - paramValue = this.convertOptionalParameterValue(paramValue); - - var values = MochiKit.Base.map(getDisplayText, paramValue); - paramUI.resetValues(values); - } - - for(var i = 0, l = this._panel.getParameterCount(); i < l; i++) { - var paramTab = this._panel.getParameterTab(i); - if(paramTab) - paramTab.setDirty(false); - } - - this._viewerCtrl.clearAdvancedPromptData (); - - //Disables all buttons on param toolbar - this._panel.setApplyButtonEnabled(false); - this._panel.setResetButtonEnabled(false); - }, - - /** - * Private. Compares 2 objects that have date like members (y, m, d, h, min, s, ms) - * returns true if all members match, false otherwise. - */ - _compareCustomDateObject: function(valA, valB) { - if (valA.y != valB.y) { - return false; - } - - if (valA.m != valB.m) { - return false; - } - - if (valA.d != valB.d) { - return false; - } - - if (valA.h != valB.h) { - return false; - } - - if (valA.min != valB.min) { - return false; - } - - if (valA.s != valB.s) { - return false; - } - - if (valA.ms != valB.ms) { - return false; - } - - return true; - }, - - /** - * Private. Erom doesn't give us NULL in all cases so we need to compare against the boundary values for each type. - * type - the value type - * minValue - the value to check - * returns true if the minValue is NOT equal NULL or the MIN value for the given datatype. - */ - _hasMinBound: function(type,minValue) { - if (minValue == null) { - return false; - } - - var Type = bobj.crv.params.DataTypes; - switch(type) { - case Type.STRING: - if (minValue == 0) { - return false; - } - return true; - case Type.DATE: - case Type.DATE_TIME: - absoluteMin = {y:1753, m:0, d:1, h:0, min:0, s:0, ms:0}; - return !this._compareCustomDateObject (absoluteMin, minValue); - case Type.TIME: - absoluteMin = {y:1899, m:11, d:30, h:0, min:0, s:0, ms:0}; - return !this._compareCustomDateObject (absoluteMin, minValue); - case Type.NUMBER: - case Type.CURRENCY: - if (minValue == -3.40282346638529e+38) { - return false; - } - return true; - } - - // should not get here! - return false; - }, - - /** - * Private. Erom doesn't give us NULL in all cases so we need to compare against the boundary values for each type. - * type - the value type - * minValue - the value to check - * returns true if the maxValue is NOT equal NULL or the MAX value for the given datatype. - */ - _hasMaxBound: function(type,maxValue) { - if (maxValue == null) { - return false; - } - - var Type = bobj.crv.params.DataTypes; - switch(type) { - case Type.STRING: - if (maxValue == 65534) { - return false; - } - return true; - case Type.DATE: - absoluteMax = {y:9999, m:11, d:12, h:0, min:0, s:0, ms:0}; - return !this._compareCustomDateObject (absoluteMax, maxValue); - case Type.TIME: - absoluteMax = {y:1899, m:11, d:30, h:23, min:59, s:59, ms:0}; - return !this._compareCustomDateObject (absoluteMax, maxValue); - case Type.DATE_TIME: - absoluteMax = {y:9999, m:11, d:12, h:23, min:59, s:59, ms:0}; - return !this._compareCustomDateObject (absoluteMax, maxValue); - case Type.NUMBER: - case Type.CURRENCY: - if (maxValue == 3.40282346638529e+38) { - return false; - } - return true; - } - - // should not get here! - return false; - }, - - _getNoValueDisplayText : function(valueType, isEditableOnPanel) { - if(!isEditableOnPanel) { - return L_bobj_crv_ParamsNoneSelected; - } - else { - var DataTypes = bobj.crv.params.DataTypes; - var valueTypeText = ''; - switch(valueType) { - case DataTypes.DATE : - valueTypeText = L_bobj_crv_Date; - break; - case DataTypes.DATE_TIME: - valueTypeText = L_bobj_crv_DateTime; - break; - case DataTypes.TIME: - valueTypeText = L_bobj_crv_Time; - break; - case DataTypes.STRING : - valueTypeText = L_bobj_crv_Text; - break; - case DataTypes.NUMBER : - valueTypeText = L_bobj_crv_Number; - break; - case DataTypes.CURRENCY : - valueTypeText = L_bobj_crv_Number; - break; - case DataTypes.BOOLEAN : - valueTypeText = L_bobj_crv_Boolean; - break; - } - - return L_bobj_crv_ParamsEnterOptional.replace("%1", valueTypeText); - } - }, - - _getMinMaxText: function(type,minValue,maxValue) { - - var Type = bobj.crv.params.DataTypes; - var maxValueDisplay,minValueDisplay; - - if(type == Type.STRING) { - /* because min/max of string are in number format */ - minValueDisplay = this._getValueText(Type.NUMBER , minValue); - maxValueDisplay = this._getValueText(Type.NUMBER, maxValue); - } - else { - minValueDisplay = this._getValueText(type, minValue); - maxValueDisplay = this._getValueText(type, maxValue); - } - - if(type == Type.BOOLEAN || (minValue == null && maxValue == null)) { - return null; - } - - var displayType,returnString; - - switch(type) { - case Type.DATE: - displayType = L_bobj_crv_Date; - break; - case Type.TIME: - displayType = L_bobj_crv_Time; - break; - case Type.DATE_TIME: - displayType = L_bobj_crv_DateTime; - break; - case Type.NUMBER: - displayType = L_bobj_crv_Number; - break; - case Type.CURRENCY: - displayType = L_bobj_crv_Number; - break; - } - - var hasMinBound = this._hasMinBound (type, minValue); - var hasMaxBound = this._hasMaxBound (type, maxValue); - switch(type) { - case Type.STRING: - if(hasMinBound && hasMaxBound) { - returnString = L_bobj_crv_ParamsStringMinAndMaxTooltip.replace("%1", minValueDisplay); - returnString = returnString.replace("%2",maxValueDisplay); - } - else if(hasMinBound) { - returnString = L_bobj_crv_ParamsStringMinOrMaxTooltip.replace("%1", L_bobj_crv_Minimum); - returnString = returnString.replace("%2", minValueDisplay); - } - else if(hasMaxBound) { - returnString = L_bobj_crv_ParamsStringMinOrMaxTooltip.replace("%1", L_bobj_crv_Maximum); - returnString = returnString.replace("%2", maxValueDisplay); - } - break; - default: - if(hasMinBound && hasMaxBound) { - returnString = L_bobj_crv_ParamsMinAndMaxTooltip.replace("%1", displayType); - returnString = returnString.replace("%2",minValueDisplay); - returnString = returnString.replace("%3",maxValueDisplay); - } - else if(hasMinBound) { - returnString = L_bobj_crv_ParamsMinTooltip.replace("%1", displayType); - returnString = returnString.replace("%2", minValueDisplay); - } - else if(hasMaxBound) { - returnString = L_bobj_crv_ParamsMaxTooltip.replace("%1", displayType); - returnString = returnString.replace("%2", maxValueDisplay); - } - } - - return returnString; - }, - /** - * Constructs description and display value for default values - * @param type [bobj.crv.params.DataTypes] - * @param displayType [bobj.crv.params.DefaultValueDisplayTypes] - * @param value [Object] Parameter value to convert to text - * - * @return {value: convertedValue, desc: description} - */ - _getDefaultValue: function(type, displayType, valueObj) { - var displayTypes = bobj.crv.params.DefaultDisplayTypes; - var valueText = this._getValueText(type, valueObj.value); - var valueDesc; - - switch(displayType) { - case displayTypes.Description: - if(valueObj.desc != null && valueObj.desc.length > 0) { - valueDesc = valueObj.desc; - } - else { - valueDesc = valueText; - } - break; - case displayTypes.DescriptionAndValue: // Value And Description - valueDesc = valueText; - if(valueObj.desc != null && valueObj.desc.length > 0) { - valueDesc += ' - ' + valueObj.desc; - } - break; - - } - - return valueDesc; - - }, - - /* - * Private. Convert value text which could contains description to value text based on default values of param - * @param param [bobj.crv.params.Parameter] Value's data type (bobj.crv.params.DataTypes) - * @param desc [string] - */ - _getValueTextFromDefValueDesc: function(param, desc) { - if(param.defaultValues && bobj.isArray(param.defaultValues)) { - for(var i = 0 ; i < param.defaultValues.length;i++) { - var defValueDesc = this._getDefaultValue(param.valueDataType,param.defaultDisplayType, param.defaultValues[i]); - if(defValueDesc == desc) { - // if desc is equal to one of LOV's row desc, then get value text of that row - return this._getValueText(param.valueDataType, param.defaultValues[i].value); - } - } - } - return null; - }, - - - /** - * Private. Converts a parameter value to display text. - * - * @param type [int] Value's data type (bobj.crv.params.DataTypes) - * @param isRange [bool] - * @param value [Object] Parameter value to convert to text - * - * @return [String] Returns display text representing the value - */ - _getValueText: function(type, value) { - if (value === undefined) { - return undefined; - } - - // Get the actual value to be used. When setting values from the param - // panel advanced UI it's possible the value will be an object such as - // {value:'the value'} or {value:'the value', desc:'description'} - value = bobj.crv.params.getValue (value); - - var Type = bobj.crv.params.DataTypes; - switch(type) { - case Type.DATE: - return this._getDateTimeText(value, this._paramOpts.dateFormat); - case Type.TIME: - return this._getDateTimeText(value, this._paramOpts.timeFormat); - case Type.DATE_TIME: - return this._getDateTimeText(value, this._paramOpts.dateTimeFormat); - case Type.NUMBER: - case Type.CURRENCY: - return this._getNumberText(value,this._paramOpts.numberFormat); - case Type.BOOLEAN: - return this._getBooleanText(value,this._paramOpts.booleanFormat); - case Type.STRING: - default: - return '' + value; - } - }, - - _getBooleanText: function(value, booleanFormat) { - - return booleanFormat[''+value]; - }, - - /** - * Private. Converts a Number value into display text. - * - * @param value [int] Parameter value to convert to text - * @param format [{decimalSeperator,groupSeperator}] Number format - * - * @return [String] Returns display text for the value - */ - _getNumberText: function(value,format) { - var dcSeperator = format.decimalSeperator; - var gpSeperator = format.groupSeperator; - var valueSplitted = ('' + value).split("."); - var leftVal,rightVal,formattedValue; - var numberSign = null; - - leftVal = valueSplitted[0]; - if(leftVal.length > 0 && leftVal.slice(0,1) == '-' || leftVal.slice(0,1) == '+') { - numberSign = leftVal.slice(0,1); - leftVal = leftVal.slice(1,leftVal.length); - } - - rightVal = (valueSplitted.length == 2) ? valueSplitted[1] : null; - formattedLeftVal = null; - - if(leftVal.length <= 3) { - formattedLeftVal = leftVal; - } - else { - var gp = null; - var sliceIndex = null; - while(leftVal.length > 0) { - sliceIndex = (leftVal.length > 3) ? leftVal.length - 3 : 0; - gp = leftVal.slice(sliceIndex,leftVal.length); - leftVal = leftVal.slice(0, sliceIndex); - formattedLeftVal = (formattedLeftVal == null) ? gp : gp + gpSeperator + formattedLeftVal; - } - } - - formattedValue = (rightVal != null) ? formattedLeftVal + dcSeperator + rightVal : formattedLeftVal; - formattedValue = (numberSign != null) ? numberSign + formattedValue : formattedValue; - return formattedValue; - }, - - /** - * Private. Converts a DateTime value into display text. - * - * @param value [Object] Parameter value to convert to text - * @param format [String] DateTime format - * - * @return [String] Returns display text for the value - */ - _getDateTimeText: function(value, format) { - var date = bobj.crv.params.jsonToDate(value); - if (date) { - return bobj.external.date.formatDate(date, format); - } - return ''; - }, - - /* - * Looks up value in the param's defualt values list, and if it's existing, get value/desc based on valueDisplayType - * @param value [Object] Parameter value to convert to text - */ - _getValueTextFromDefaultValue: function(param, value) { - var desc = bobj.crv.params.getDescription (value); - if (desc !== null) { - return this._getDefaultValue(param.valueDataType, param.defaultDisplayType, value); - } - - // Get the actual value to be used, then try to match the description in the LOV - value = bobj.crv.params.getValue (value); - - if(bobj.isArray(param.defaultValues)) { - var hashValue = bobj.getValueHashCode(param.valueDataType,value); - for(var i = 0 ; i < param.defaultValues.length; i++) { - if(hashValue == bobj.getValueHashCode(param.valueDataType,param.defaultValues[i].value)) { - return this._getDefaultValue(param.valueDataType, param.defaultDisplayType, param.defaultValues[i]); - } - } - } - - return null; - }, - - /* - * Converts value object to value text in order to be displayed on ParameterUI. takes into account valueDisplayType - * IMPORTANT : use _getValueText if you want to convert param value Obj to param value text - */ - _getDisplayText: function(param,value) { - if (value === undefined) { - return undefined; - } - - if (value.lowerBoundType !== undefined || value.upperBoundType !== undefined) { - return this._getRangeDisplayText(param, value); - } - - var valueText = this._getValueTextFromDefaultValue(param,value); - - if(valueText == null) { - valueText = this._getValueText(param.valueDataType, value); - } - - return valueText; - }, - - /** - * Private. Converts a range value into display text. - * - * @param value [Object] Parameter value to convert to text - * @param type [int] Value's data type (bobj.crv.params.DataTypes) - * - * @return [String] Returns display text for the value - */ - _getRangeDisplayText: function(param, value) { - var displayText = new Object; - displayText.lowerBound = {type : value.lowerBoundType, value : this._getDisplayText(param, value.beginValue)}; - displayText.upperBound = {type : value.upperBoundType, value : this._getDisplayText(param, value.endValue)}; - - return displayText; - }, - - /** - * Private. Converts text into a parameter value. - * - * @param type [int] Value's data type (bobj.crv.params.DataTypes) - * @param text [String] Value's display text - * - * @return [Object] Parameter value - */ - _getParamValue: function(type, text) { - if (type === undefined) { - return undefined; - } - - var Type = bobj.crv.params.DataTypes; - switch(type) { - case Type.DATE: - return this._getDateTimeParamValue(text, this._paramOpts.dateFormat); - case Type.TIME: - return this._getDateTimeParamValue(text, this._paramOpts.timeFormat); - case Type.DATE_TIME: - return this._getDateTimeParamValue(text, this._paramOpts.dateTimeFormat); - case Type.NUMBER: - case Type.CURRENCY: - return this._getNumberParamValue(text,this._paramOpts.numberFormat); - case Type.BOOLEAN: - return this._getBooleanParamValue(text,this._paramOpts.booleanFormat); - case Type.STRING: - default: - return text; - } - }, - - /** - * Private. Converts boolean text to a paramter value - * @param text [String] Value's display text - * @param booleanFormat [boolean format] {true: text : false : text} - * @return [String] - */ - _getBooleanParamValue: function(text,booleanFormat) { - if(text != null && text.length != 0) { - return booleanFormat["true"] == text; - } - else { - return null; - } - }, - - clearParameterValues : function(param) { - if(param.allowNullValue) - this.updateParameter(param.paramName, [null]); - else - this.updateParameter(param.paramName, []); - - this._updateToolbar(); - }, - - /** - * Private. Converts Number text to a paramter value - * @param text [String] Value's display text - * @param format [{decimalSeperator,groupSeperator}] number format - * - * @return [String] - */ - _getNumberParamValue: function(text,format) { - if(text == null) { - return null; - } - - var value = ''; - - if (/[ \f\n\r\t\v\u00A0\u2028\u2029]/.test(format.groupSeperator)) { - value = text.replace(/[ \f\n\r\t\v\u00A0\u2028\u2029]/g, ''); - } - else { - var gpRE = new RegExp( "\\" + format.groupSeperator, "g" ); - value = text.replace(gpRE,"") - } - - return value.replace(format.decimalSeperator, "."); - }, - - /** - * Private. Converts DateTime text into a parameter value. - * - * @param text [String] Value's display text - * @param format [String] DateTime format - * - * @return [Object] DateTime parameter value or the original value if getDateFromFormat fails - */ - _getDateTimeParamValue: function(text, format) { - var date = bobj.external.date.getDateFromFormat(text, format); - if (date) { - return bobj.crv.params.dateToJson(date); - } - return text; - }, - - /** - * Private. Attach callbacks to a parameter widget - * - * @param widget [ParameterUI] - */ - _observeParamWidget: function(widget) { - if (widget) { - var bind = MochiKit.Base.bind; - widget.changeValueCB = bind(this._onChangeValue, this, widget); - widget.enterPressCB = bind(this._onEnterPress, this, widget); - } - }, - - /** - * Private ParameterUI callback. Updates the UI when a param value is edited. - * - * @param widget [ParameterUI] The source of the event - * @param valueIdx [int] The index of the value that changed - * @param new Value [String] The new value (display text) at valueIdx - */ - _onChangeValue: function(widget, valueIdx, newValue) { - if (!this._isPanelEditable()) { - return; - } - - var parameterTab = this._panel.getParameterTabByWidget(widget); - if(parameterTab) - parameterTab.setDirty(true); - - this._checkAndSetValue(widget, valueIdx); - this._updateToolbar(); - }, - - /** - * Private ParameterUI callback. Attempts to apply change param values to - * the report when the Enter key is pressed while editing a value. - * - * @param widget [ParameterUI] The source of the event - * @param valueIdx [int] The index of the value that has focus - */ - _onEnterPress: function(widget, valueIdx) { - if(this._panel.isApplyButtonEnabled()) - this._applyValues(); - }, - - /** - * Private ParameterPanel callback. Applies changed parameter values to the - * report when the run button is clicked on the panel's toolbar. - */ - _onClickTbApplyButton: function() { - this._applyValues(); - }, - - _onClickTbResetButton: function() { - this.resetParamPanel(); - }, - - /** - * Private ParameterPanel callback. Shows the advanced dialog for the - * selected parameter when the advanced dialog button is clicked on the - * panel's toolbar. - */ - _onClickTbAdvButton: function(param) { - if (this._isPanelEditable()) { - this._viewerCtrl.showAdvancedParamDialog(param); - } - }, - - /** - * Private. Attempts to apply changed parameter values to the report. - * Changed display text will be converted to parameter values and validated. - * Validation failure will cause a warning to appear instead of updating the - * report. - */ - _applyValues: function() { - - var numParams = this._paramList.length; - var badParamIdx = -1; - var badValueIdx = -1; - var warning = null; - var paramUI = null; - - for (var i = 0; (i < numParams) && !warning; ++i) { - paramUI = this._panel.getParameter(i); - var numValues = paramUI.getNumValues(); - for (var j = 0; (j < numValues) && !warning; ++j) { - warning = paramUI.getWarning(j); - if (warning) { - badParamIdx = i; - badValueIdx = j; - } - } - } - - if (warning) { - paramUI = this._panel.getParameter(badParamIdx); - paramUI.setFocusOnRow(badValueIdx); - } - else { - // make all value changes permanent - for (var i = 0, c = this._paramList.length; i < c; i++) { - this._paramList[i].commitValue(); - } - for (var i = 0, c = this._unusedParamList.length; i < c; i++) { - this._unusedParamList[i].commitValue(); - } - this._viewerCtrl.applyParams(this._paramList.concat(this._unusedParamList)); - this._panel.setApplyButtonEnabled(false); - } - }, - - /** - * Private. Finds the Parameter associated with a given ParameterUI. - * - * @param widget [ParameterUI] - * - * @return [Parameter] - */ - _findParam: function(widget) { - return this._paramList[this._panel.getIndex(widget)]; - }, - - _findWidget: function(param) { - for(var i = 0 ; i < this._paramList.length; i++) { - if(this._paramList[i].paramName == param.paramName) { - return this._panel.getParameter(i) - } - } - return null; - }, - - /** - * Private. Updates the state of the parameter panel's toolbar buttons. - */ - _updateToolbar: function() { - if (!this._isPanelEditable()) { - return; - } - - this._panel.setApplyButtonEnabled(true); //FIXME: should only enable when panel is dirty - this._panel.setResetButtonEnabled(true); //FIXME: should only enable when panel is dirty - }, - - /** - * Private. Selects a Date/Time format string from paramOpts based on the - * give parameter value type. - * - * @param dataType [bobj.crv.params.DataTypes] - * - * @return [String] Returns a DateTime format string. - */ - _getDateTimeFormat: function(dataType) { - var Type = bobj.crv.params.DataTypes; - switch(dataType) { - case Type.DATE: - return this._paramOpts.dateFormat; - case Type.TIME: - return this._paramOpts.timeFormat; - case Type.DATE_TIME: - return this._paramOpts.dateTimeFormat; - default: return null; - } - }, - - /** - * Private. Convert display text to a param value, validate it, and update - * the value of the associated Parameter instance when validation succeeds. - * Sets the warning text of the value when validation fails. - * - * @param widget [ParameterUI] - * @param valueIdx [int] Index of value to validate and update - */ - _checkAndSetValue: function(widget, valueIdx) { - /* - * Return if parameter value is modified in advanced dialog as the parameter value is already set by updateParameter - */ - if(!widget.canChangeOnPanel) { - return; - } - - var parameter = this._findParam(widget); - var valueText = widget.getValueAt(valueIdx); - - // Checking if value exists in defaultValues and if it does, get the value from defaultValue - var defValue = this._getValueTextFromDefValueDesc(parameter,valueText); - if(defValue != null) { - valueText = defValue; - } - - var paramValue = this._getParamValue(parameter.valueDataType, valueText); - - - // if the following condition is true, the user is providing 'no value' to an optional parameter - if (valueIdx == 0 && paramValue == undefined) { - if(parameter.allowNullValue && parameter.getValue().length == 0) { - parameter.setValue(0, null); - } - - if(parameter.isOptionalPrompt) { - parameter.clearValue(); - } - - widget.setWarning(valueIdx,null); // Removes warning if there is any - - return; - } - - var Status = bobj.crv.params.Validator.ValueStatus; - var code = Status.OK; - var warningMsg = null; - - code = bobj.crv.params.Validator.getInstance().validateValue(parameter, paramValue); - - if (Status.OK === code) { - var cText = this._getValueTextFromDefaultValue(parameter,paramValue); - if(cText != null) { - widget.setValueAt(valueIdx,cText); - } - widget.setWarning(valueIdx,null); // Removes warning - parameter.setValue(valueIdx, paramValue); //checks for duplicates when setting a value - - - } - else { - warningMsg = this._getWarningText(parameter, code); - widget.setWarning(valueIdx, {code : code, message : warningMsg }); - } - - }, - - /** - * Private. Convert a validation error code into a readable warning message. - * - * @param param [Parameter] Parameter that has the erroroneous value - * @param code [ValueStatus] Validation error code - * - * @return [String] Returns a warning message suitable for display in the UI - */ - _getWarningText: function(param, code) { - var Type = bobj.crv.params.DataTypes; - - switch(param.valueDataType) { - case Type.DATE: - case Type.TIME: - case Type.DATE_TIME: - return this._getDateTimeWarning(param,code); - case Type.STRING: - return this._getStringWarning(param, code); - case Type.NUMBER: - case Type.CURRENCY: - return this._getNumberWarning(param,code); - default: - return null; - } - }, - - /** - * Private. Create warning message for invalid datetime value - * @param param [Parameter] Parameter that has the erroroneous value - * @param code [ValueStatus] Validation error code - * - * @return [String] Returns a warning message suitable for display in the UI - */ - _getDateTimeWarning: function(param,code) { - var dataTypes = bobj.crv.params.DataTypes; - var ValueStatus = bobj.crv.params.Validator.ValueStatus; - var dateFormat = this._paramOpts.dateFormat; - - dateFormat = dateFormat.replace('yyyy', '%1'); - dateFormat = dateFormat.replace(/M+/, '%2'); - dateFormat = dateFormat.replace(/d+/, '%3'); - dateFormat = dateFormat.replace('%1', L_bobj_crv_ParamsYearToken); - dateFormat = dateFormat.replace('%2', L_bobj_crv_ParamsMonthToken); - dateFormat = dateFormat.replace('%3', L_bobj_crv_ParamsDayToken); - - if(code == ValueStatus.ERROR || code == ValueStatus.VALUE_INVALID_TYPE) { - switch(param.valueDataType) { - case dataTypes.DATE: - return L_bobj_crv_ParamsBadDate.replace("%1",dateFormat); - case dataTypes.DATE_TIME: - return L_bobj_crv_ParamsBadDateTime.replace("%1",dateFormat); - break; - case dataTypes.TIME: - return L_bobj_crv_ParamsBadTime - break; - } - } - else if(code == ValueStatus.VALUE_TOO_BIG || code == ValueStatus.VALUE_TOO_SMALL){ - return this._getMinMaxText(param.valueDataType,param.minValue,param.maxValue); - } - - return null; - }, - - /** - * Private. Create a warning message for String parameter - * - * @param param [Parameter] Parameter that has the erroroneous value - * @param code [ValueStatus] Validation error code - * - * @return [String] Returns a warning message suitable for display in the UI - */ - _getStringWarning: function(param, code) { - var Status = bobj.crv.params.Validator.ValueStatus; - if (Status.VALUE_TOO_LONG === code) { - return L_bobj_crv_ParamsTooLong.replace('%1', param.maxValue); - } - else if(Status.VALUE_TOO_SHORT === code){ - return L_bobj_crv_ParamsTooShort.replace('%1', param.minValue); - } - return null; - }, - - /** - * Private. Create warning message for invalid datetime value - * @param param [Parameter] Parameter that has the erroroneous value - * @param code [ValueStatus] Validation error code - * - * @return [String] Returns a warning message suitable for display in the UI - */ - _getNumberWarning : function(param,code) { - var ValueStatus = bobj.crv.params.Validator.ValueStatus; - var dataTypes = bobj.crv.params.DataTypes; - switch(code) { - case ValueStatus.ERROR: - case ValueStatus.VALUE_INVALID_TYPE: - if(param.valueDataType == dataTypes.NUMBER) { - return L_bobj_crv_ParamsBadNumber; - } - else if(param.valueDataType == dataTypes.CURRENCY) { - return L_bobj_crv_ParamsBadCurrency; - } - case ValueStatus.VALUE_TOO_BIG: - case ValueStatus.VALUE_TOO_SMALL: - return this._getMinMaxText(param.valueDataType,param.minValue,param.maxValue); - default: - return null; - - } - } -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterDialog.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterDialog.js deleted file mode 100644 index 1e5e325ae..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterDialog.js +++ /dev/null @@ -1,170 +0,0 @@ -/* -================================================================================ -ParameterDialog - -Advanced Dialog for editing parameters using the prompt engine -================================================================================ -*/ - -bobj.crv.params.newParameterDialog = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - prompt: null, - showCB : null, - hideCB : null - }, kwArgs); - - var o = newDialogBoxWidget( - kwArgs.id, - L_bobj_crv_ParamsDlgTitle, - kwArgs.width, - kwArgs.height /*,defaultCB,cancelCB,noCloseButton*/); - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - - // Update instance with member functions - o._showDialogBox = o.show; - o._initDialogBox = o.init; - o._resizeSignal = null; - MochiKit.Base.update(o, bobj.crv.params.ParameterDialog); - - return o; -}; - -bobj.crv.params.ParameterDialog = { - init : function() { - this._initDialogBox (); - this._form = document.getElementById (this.id + '_form'); - window.paramWindow = this; - }, - - _checkInitialization : function() { - if (!this.layer) { - targetApp (this.getHTML ()); - this.init (); - } - }, - - show : function(show) { - if (show) { - this._checkInitialization (); - this.doLayout (); - this.setResize (MochiKit.Base.noop); - this._showDialogBox (true); - o._resizeSignal = MochiKit.Signal.connect(window, 'onresize', this, '_onWindowResize'); - } else { - if (this.layer) - this._showDialogBox (false); - bobj.crv.SignalDisposer.dispose(o._resizeSignal, true); - } - - if (show && this.showCB) { - this.showCB (); - } else if (!show && this.hideCB) { - this.hideCB (); - } - }, - - isVisible : function() { - return (this.initialized () && this.isDisplayed ()); - }, - - /* if dialog's height is less than window's height, it would return dialog's height - if dialog's height is greater than window's height, it would return window's height - 100 - if dialog's height is less than 100, it would return 100 - */ - getPreferredHeight : function () { - return Math.min(Math.max (100, winHeight() - 100), this.getFormHeight()); - }, - - getFormHeight : function () { - var form = this._form.cloneNode(true); - form.style.display = "none"; - form.style.height =""; - document.body.appendChild(form); - var dimension = MochiKit.Style.getElementDimensions(form); - form.innerHTML = ""; // http://support.microsoft.com/kb/925014 - document.body.removeChild(form); - - return dimension.h; - }, - - _onWindowResize : function () { - window.paramWindow.doLayout(); - window.paramWindow.center(); - }, - - doLayout: function () { - if(this._form) { - this._form.style.height = this.getPreferredHeight() + "px"; - } - }, - - updateHtmlAndDisplay : function(html) { - if (html) { - this._checkInitialization (); - - if (this.isDisplayed ()) { - this.show (false); - } - - var ext = bobj.html.extractHtml (html); - - var styleText = ""; - for ( var i = 0, len = ext.styles.length; i < len; i++) { - styleText += ext.styles[i].text + '\n'; - } - - var styleLayerID = this.id + '_stylesheet'; - - var styleLayer = getLayer(styleLayerID); - if(styleLayer) { - MochiKit.DOM.removeElement (styleLayer); - } - - if(styleText.length > 0) { - bobj.addStyleSheet (styleText, styleLayerID); - } - - if (this._form) { - this._form.innerHTML = '
    ' + ext.html + '
    '; - } - - var callback = function (parameterDialog, scripts) { - return function () { - - //Must show dialog before executing scripts as scripts could change scroll position - parameterDialog.show(true); - - for ( var iScripts = 0, scriptsLen = scripts.length; iScripts < scriptsLen; ++iScripts) { - var script = scripts[iScripts]; - if (!script) { - continue; - } - - if (script.text) { - bobj.evalInWindow (script.text); - } - } - } - }(this, ext.scripts); - - //CSS links in extracted html are first loaded, then dialog is shown to correctly calcualte - //the width and height of dialog - - bobj.includeCSSLinksAndExecuteCallback ( ext.links, callback); - - } - }, - - getHTML : function(html) { - var FORM = bobj.html.FORM; - var DIV = bobj.html.DIV; - var onsubmit = 'eventCancelBubble(event);return false;'; - - return this.beginHTML() + - DIV({'class' : 'dlgFrame naviBarFrame', style : { padding : '20px 15px 5px 20px'}}, FORM({id: this.id + '_form', style : {overflow : 'auto'}, onsubmit: onsubmit})) + - this.endHTML(); - } -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterInfoRow.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterInfoRow.js deleted file mode 100644 index 5e85fa7a6..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterInfoRow.js +++ /dev/null @@ -1,88 +0,0 @@ -/* -================================================================================ -ParameterInfoRow - -Internal class for use by ParameterUI. Draws a UI for a single info row. -This row is always displayed as last child of parameterUI -================================================================================ - */ - -bobj.crv.params.ParameterInfoRow = function(parentId) { - this.layer = null; - this.parentId = parentId; - this.id = bobj.uniqueId(); -}; - -bobj.crv.params.ParameterInfoRow.prototype = { - setTabDisabled : function(dis) { - if (this.layer) { - bobj.disableTabbingKey(this.layer, dis) - } - }, - - init : function() { - var parent = getLayer(this.parentId); - if (parent) { - append2(parent, this.getHTML()); - this.layer = getLayer(this.id); - } - - if(this.layer) { - MochiKit.Signal.connect(this.layer, "onclick", this, '_onClick'); - MochiKit.Signal.connect(this.layer, "onkeydown", this, '_onKeyDown'); - } - - }, - - getHTML : function() { - return bobj.html.DIV( { - 'class' :'parameterInfoRow', - id :this.id, - "tabIndex" : "0" - }); - }, - - setText : function(text) { - if (!this.layer) - this.init(); - - this.layer.innerHTML = text; - }, - - setVisible : function(isVisible) { - if (isVisible) { - if (!this.layer) - this.init(); - - this.shiftToLastRow(); - this.layer.style.display = "block"; - } else { - if (this.layer) - this.layer.style.display = "none"; - } - }, - - /** - * ParamterInfoRow must always be displayed after all ParmeterValueRows - * @return - */ - shiftToLastRow : function() { - var parentNode = getLayer(this.parentId); - if (this.layer && parentNode) { - parentNode.removeChild(this.layer); - parentNode.appendChild(this.layer); - } - }, - - _onClick : function (ev) { - MochiKit.Signal.signal(this, "switch"); - ev.stop(); - }, - - _onKeyDown : function (ev) { - if(ev && ev.key() && ev.key().code == 13) { - MochiKit.Signal.signal(this, "switch"); - ev.stop(); - } - } -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterPanel.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterPanel.js deleted file mode 100644 index 6b77f1923..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterPanel.js +++ /dev/null @@ -1,277 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/* -================================================================================ -ParameterPanel -================================================================================ -*/ - -/** - * Constructor - */ -bobj.crv.params.newParameterPanel = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId() + '_IPPanel' - }, kwArgs); - - var o = newWidget(kwArgs.id); - o.widgetType = 'ParameterPanel'; - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - - // Update instance with member functions - MochiKit.Base.update(o, bobj.crv.params.ParameterPanel); - - o._tabPanel = bobj.crv.newStackedPanel({ - id: o.id + '_ParamtersStack' - }); - - //Layer that appears on top of panel when it is disabled; necessary for preventing user to select parameters/widgets - o._overlayLayer = new bobj.crv.params.ParameterPanel.OverlayLayer(o.id); - o._toolbar = bobj.crv.params.newParameterPanelToolbar({ - id: o.id + '_IPToolbar' - }); - - return o; -}; - -bobj.crv.params.ParameterPanel = { - setToolbarCallBacks : function(applyClickCB, resetClickCB) { - if(this._toolbar) { - this._toolbar.applyClickCB = applyClickCB; - this._toolbar.resetClickCB = resetClickCB; - } - }, - - /** - * Disables panel by showing modal layer on top of panel, reducing opacity of panel, and disabling tabbing between widgets - */ - setDisabled : function(dis) { - this._overlayLayer.setVisible (dis); - this.setTabDisabled (dis); - }, - - /** - * Disables tabbing for toolbar and all parameters within panel - */ - setTabDisabled : function(dis) { - this._toolbar.setTabDisabled (dis); - this._tabPanel.setTabDisabled (dis); - }, - - init : function() { - Widget_init.call (this); - this._toolbar.init (); - if (this._tabPanel) { - this._tabPanel.init (); - } - - MochiKit.Signal.signal (this, "resetParamPanel"); - }, - - update : function (update) { - if (update && update.cons == "bobj.crv.params.newParameterPanel") { - if(update.args && update.args.isResetParamPanel) - MochiKit.Signal.signal (this, "resetParamPanel"); - } - }, - - getHTML : function() { - var DIV = bobj.html.DIV; - var layerStyle = { - overflow : 'hidden', - width : this.width ? bobj.unitValue(this.width) : 'auto', - height : this.height ? bobj.unitValue(this.height) : 'auto' - } - - var innerHTML = this._toolbar.getHTML (); - if (this._tabPanel) { - innerHTML += this._tabPanel.getHTML (); - } - - return DIV ( { - id : this.id, - style : layerStyle - }, innerHTML); - }, - - getBestFitHeight : function () { - var height = 0; - if(this._tabPanel) { - /** - * Since container of parampanel could be invisible, getHiddenElementDimensions has to be called - * instead of element.getHeight() - */ - height += bobj.getHiddenElementDimensions(this._tabPanel.layer).h; - } - - if(this._toolbar) - height += this._toolbar.getHeight (); - - return height; - }, - - /** - * Resize the panel - * - * @param w [int - optional] Width in pixels - * @param h [int - optional] Height in pixels - */ - resize : function(w, h) { - Widget_resize.call (this, w, h); - - if (this._toolbar) { - w = this.layer.clientWidth; - this._toolbar.resize (w); - if (this._tabPanel) { - h = this.layer.clientHeight - this._toolbar.getHeight (); - this._tabPanel.resize (w, h); - } - } - }, - - /** - * Add a ParameterUI instance to the panel - * - * @param paramUI [ParameterUI] - * @param label [String] Parameter title - * @param isDataFetching [bool] Shows the data fetching icon when true - */ - addParameter : function(kwArgs) { - kwArgs = MochiKit.Base.update ( { - paramUI : null, - label : null, - isDataFetching : false, - openAdvCB : null, - clearValuesCB : null, - id : this._tabPanel.id + '_P' + (this._tabPanel.getNumTabs () + 1) - }, kwArgs); - - if (kwArgs.paramUI) { - var paramTab = bobj.crv.newStackedTab (kwArgs); - paramTab.setContent (kwArgs.paramUI); - this._tabPanel.addTab (paramTab); - } - }, - - - /** - * Remove a ParameterUI instance from the panel - * - * @param index [int] Index of the widget - */ - removeParameter : function(index) { - this._tabPanel.removeTab(index); - }, - - getWidth : function() { - if (this.layer) { - return this.layer.offsetWidth; - } - return this.width; - }, - - setResetButtonEnabled : function(isEnabled) { - this._toolbar.resetButton.setDisabled (!isEnabled); - var tooltip = isEnabled ? L_bobj_crv_ResetTip : L_bobj_crv_ResetDisabledTip; - this._toolbar.resetButton.changeTooltip (tooltip, true); - }, - - setApplyButtonEnabled : function(isEnabled) { - this._toolbar.applyButton.setDisabled (!isEnabled); - var tooltip = isEnabled ? L_bobj_crv_ParamsApplyTip : L_bobj_crv_ParamsApplyDisabledTip; - this._toolbar.applyButton.changeTooltip (tooltip, true); - }, - - isApplyButtonEnabled : function () { - return this._toolbar != null && this._toolbar.applyButton != null && !this._toolbar.applyButton.isDisabled(); - }, - - getIndex : function(paramUI) { - var numTabs = this._tabPanel.getNumTabs (); - for ( var idx = 0; idx < numTabs; ++idx) { - var tab = this._tabPanel.getTab (idx); - if (tab.getContent () === paramUI) { - return idx; - } - } - return -1; - }, - - getParameterTabByWidget : function(paramUI) { - var index = this.getIndex (paramUI); - if (index >= 0) - return this._tabPanel.getTab (index); - - return null; - }, - - getParameter : function(index) { - var tab = this._tabPanel.getTab (index); - if (tab) { - return tab.getContent (); - } - return null; - }, - - /** - * @return ParameterTab, tab specified by index - */ - getParameterTab : function(index) { - return this._tabPanel.getTab (index); - }, - - /** - * return Number of tabs/parameters in panel - */ - getParameterCount : function() { - return this._tabPanel.getNumTabs (); - } -}; - -/** - * A layer that appears on top of panel when it is disabled. Prevents user from selecting widgets - * inside panel - */ -bobj.crv.params.ParameterPanel.OverlayLayer = function(paramPanelID) { - this.paramPanelId = paramPanelID; - this.layer = null; - this.id = bobj.uniqueId(); - this.widx = _widgets.length - _widgets[this.widx] = this; - - return this; -}; - -bobj.crv.params.ParameterPanel.OverlayLayer.prototype = { - setVisible: function(visible) { - if(!this.layer) { - this.init(); - } - if(this.css) { - this.css.visibility = visible ? "visible" : "hidden"; - } - }, - - isVisible: function() { - if(!this.layer) { - this.init(); - } - return this.css.visibility == "visible"; - }, - - getHTML: function() { - return '
    '+(_ie?img(_skin+'../transp.gif','100%','100%',null,'ISMAP'):'')+'
    ' - }, - - init: function() { - var paramPanelLayer = getLayer(this.paramPanelId); - - if(paramPanelLayer) { - append2(paramPanelLayer, this.getHTML()); //adds overlay layer to parameter panel layer - } - - Widget_init.call(this); - } -} diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterPanelToolbar.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterPanelToolbar.js deleted file mode 100644 index 06b9eaed0..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterPanelToolbar.js +++ /dev/null @@ -1,104 +0,0 @@ - -/* -================================================================================ -ParameterPanelToolbar - -Contains the Delete and Run buttons -================================================================================ -*/ - -/** - * Constructor - */ -bobj.crv.params.newParameterPanelToolbar = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId() - }, kwArgs); - var o = newPaletteContainerWidget(kwArgs.id); - - bobj.fillIn(o, kwArgs); - o.widgetType = 'ParameterPanelToolbar'; - - // Attach member functions - o._paletteContainerInit = o.init; - MochiKit.Base.update(o, bobj.crv.params.ParameterPanelToolbar); - - o._palette = newPaletteWidget(o.id + "_palette"); - o.add(o._palette); - - var bind = MochiKit.Base.bind; - - o.applyButton = newIconWidget( - o.id + '_applyBtn', - bobj.crv.allInOne.uri, - bind(o._onApplyClick, o), //clickCB, - L_bobj_crv_ParamsApply, //text - L_bobj_crv_ParamsApplyDisabledTip,//tooltip, - 16, 16, 3, 3 + bobj.crv.allInOne.paramRunDy, 25, 3 + bobj.crv.allInOne.paramRunDy, false); //width, height, dx, dy, disDx, disDy - - o.applyButton.setClasses("", "", "", ""); //FIXME : saeed, Assign css class - o.resetButton = newIconWidget( - o.id + '_resetBtn', - bobj.crv.allInOne.uri, - bind(o._onResetClick, o), //clickCB, - L_bobj_crv_Reset, //text - L_bobj_crv_ResetDisabledTip,//tooltip, - 16, 16, 0, bobj.crv.allInOne.undoDy, 16, bobj.crv.allInOne.undoDy, false); //width, height, dx, dy, disDx, disDy - - o.resetButton.setClasses("", "", "", ""); //FIXME : saeed, Assign css class - o._palette.add(o.applyButton); - o._palette.add(); // separator - o._palette.add(o.resetButton); - - return o; -}; - -bobj.crv.params.ParameterPanelToolbar = { - init : function() { - this._paletteContainerInit (); - this._palette.init (); - this.applyButton.setDisabled (true); - this.resetButton.setDisabled (true); - }, - - /** - * Disables tabbing for all buttons in toolbar - */ - setTabDisabled : function(dis) { - var items = [ this.applyButton, this.resetButton ]; - - for ( var i = 0, len = items.length; i < len; i++) { - var item = items[i]; - if (item) { - bobj.disableTabbingKey (item.layer, dis); - } - } - }, - - /** - * Overrides parent. Opens the toolbar's tags. - */ - beginHTML : function() { - return bobj.html.openTag ('div', { - id : this.id, - 'class' : 'parameterPanelToolbar' - }); - }, - - getHTML : function() { - return (this.beginHTML () + this._palette.getHTML () + this.endHTML ()); - }, - - _onApplyClick : function() { - if (this.applyClickCB) { - bobj.crv.logger.info ('UIAction ParameterPanel.Apply'); - this.applyClickCB (); - } - }, - - _onResetClick : function() { - if (this.resetClickCB) { - this.resetClickCB (); - } - } -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterUI.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterUI.js deleted file mode 100644 index 33bb11e83..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterUI.js +++ /dev/null @@ -1,404 +0,0 @@ - -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/* -================================================================================ -ParameterUI - -Widget for displaying and editing parameter values. Contains one or many -ParameterValueRows and, optionally, UI that allows rows to be added. -================================================================================ -*/ - -bobj.crv.params.newParameterUI = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - canChangeOnPanel: false, - allowCustom: false, - isPassword : false, - isReadOnlyParam: true, - allowRange : false, - values: [], - defaultValues: null, - width: '200px', - changeValueCB: null, - enterPressCB: null, - openAdvDialogCB: null, - maxNumParameterDefaultValues: 200, - tooltip : null, - calendarProperties : {displayValueFormat : '' , isTimeShown : false, hasButton : false, iconUrl : ''}, - maxNumValuesDisplayed : 7, - canOpenAdvDialog : false - }, kwArgs); - - var o = newWidget(kwArgs.id); - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - - o.displayAllValues = false; - - // Update instance with member functions - MochiKit.Base.update(o, bobj.crv.params.ParameterUI); - - o._createMenu(); - o._rows = []; - o._infoRow = new bobj.crv.params.ParameterInfoRow(o.id); - return o; -}; - -bobj.crv.params.ParameterUI = { - /** - * Creates single menubar for all parameter value rows of current param UI - */ - _createMenu : function() { - var dvLength = this.defaultValues.length; - if (dvLength > 0) { - var kwArgs = { - originalValues : this.defaultValues - }; - - if (dvLength == this.maxNumParameterDefaultValues) { - kwArgs.originalValues[this.maxNumParameterDefaultValues] = L_bobj_crv_ParamsMaxNumDefaultValues; - MochiKit.Base.update (kwArgs, { - openAdvDialogCB : this.openAdvDialogCB, - maxNumParameterDefaultValues : this.maxNumParameterDefaultValues - }); - } - - this._defaultValuesMenu = bobj.crv.params.newScrollMenuWidget (kwArgs); - } else { - this._defaultValuesMenu = null; - } - }, - - setFocusOnRow : function(rowIndex) { - var row = this._rows[rowIndex]; - if (row) - row.focus (); - }, - - /* - * Disables tabbing if dis is true - */ - setTabDisabled : function(dis) { - for(var i = 0, len = this._rows.length; i < len; i++) { - this._rows[i].setTabDisabled(dis); - } - - this._infoRow.setTabDisabled(dis); - }, - - init : function() { - Widget_init.call (this); - - var rows = this._rows; - for ( var i = 0, len = rows.length; i < len; ++i) { - rows[i].init (); - } - - MochiKit.Signal.connect(this._infoRow, "switch", this, '_onSwitchDisplayAllValues'); - this.refreshUI (); - }, - - /** - * Processes actions triggered by clicks on "x more values" or "collapse" button displayed in inforow - */ - _onSwitchDisplayAllValues: function() { - this.displayAllValues = !this.displayAllValues; - var TIME_INTERVAL = 10; /* 10 msec or 100 actions per second */ - var timerIndex = 0; - - if(this.displayAllValues) { - if (this.values.length > this._rows.length) { - for(var i = this._rows.length, l = this.values.length; i < l; i++) { - var addRow = function(paramUI, value) { - return function() { return paramUI._addRow(value); }; - }; - - timerIndex++; - setTimeout(addRow(this, this.values[i]), TIME_INTERVAL * timerIndex); - } - } - } - else { - if(this._rows.length > this.maxNumValuesDisplayed) { - for(var i = this._rows.length -1; i >= this.maxNumValuesDisplayed; i--) { - var deleteRow = function(paramUI, rowIndex) { - return function() { return paramUI.deleteValue(rowIndex); }; - }; - - timerIndex++; - setTimeout(deleteRow(this, i), TIME_INTERVAL * timerIndex); - } - } - } - - var signalResize = function(paramUI) { - return function() {MochiKit.Signal.signal(paramUI, 'ParameterUIResized'); }; - }; - - setTimeout(signalResize(this), TIME_INTERVAL * timerIndex); - }, - - getHTML : function() { - var rowsHtml = ''; - - var values = this.values; - var rows = this._rows; - - var rowsCount = Math.min (values.length, this.maxNumValuesDisplayed); - for ( var i = 0; i < rowsCount; ++i) { - rows.push (this._getRow (values[i])); - rowsHtml += rows[i].getHTML (); - } - - return bobj.html.DIV ( { - id : this.id, - style : { - width : bobj.unitValue (this.width), - 'padding-left' : '20px' - } - }, rowsHtml); - }, - - _getNewValueRowArgs : function(value) { - return { - value : value, - defaultValues : this.defaultValues, - width : this.width, - isReadOnlyParam : this.isReadOnlyParam, - canChangeOnPanel : this.canChangeOnPanel, - allowCustom : this.allowCustom, - isPassword : this.isPassword, - calendarProperties : this.calendarProperties, - defaultValuesMenu : this._defaultValuesMenu, - tooltip : this.tooltip, - isRangeValue : this.allowRange, - canOpenAdvDialog : this.canOpenAdvDialog - }; - }, - - _getNewValueRowConstructor : function() { - return bobj.crv.params.newParameterValueRow; - }, - - _getRow : function(value) { - var row = this._getNewValueRowConstructor()(this._getNewValueRowArgs(value)); - var bind = MochiKit.Base.bind; - - row.changeCB = bind(this._onChangeValue, this, row); - row.enterCB = bind(this._onEnterValue, this, row); - - return row; - }, - - _addRow : function(value) { - var row = this._getRow (value); - this._rows.push (row); - append (this.layer, row.getHTML ()); - - row.init (); - - this.refreshUI (); - return row; - }, - - _onChangeValue : function(row) { - if (this.changeValueCB) { - this.changeValueCB (this._getRowIndex (row), row.getValue ()); - } - }, - - _onEnterValue : function(row) { - if (this.enterPressCB) { - this.enterPressCB (this._getRowIndex (row)); - } - }, - - _getRowIndex : function(row) { - if (row) { - var rows = this._rows; - for ( var i = 0, len = rows.length; i < len; ++i) { - if (rows[i] === row) { - return i; - } - } - } - return -1; - }, - - getNumValues : function() { - return this._rows.length; - }, - - - refreshUI : function() { - if (this.allowRange) - this.alignRangeRows (); - - var displayInfoRow = false; - var infoRowText = ""; - - if (this.values.length > this.maxNumValuesDisplayed) { - displayInfoRow = true; - - if(this.displayAllValues) - infoRowText = L_bobj_crv_Collapse; - else { - var hiddenValuesCount = this.values.length - this.maxNumValuesDisplayed; - infoRowText = (hiddenValuesCount == 1) ? L_bobj_crv_ParamsMoreValue : L_bobj_crv_ParamsMoreValues; - infoRowText = infoRowText.replace ("%1", hiddenValuesCount); - } - } - - this._infoRow.setText (infoRowText); - this._infoRow.setVisible (displayInfoRow); - }, - - getValueAt : function(index) { - var row = this._rows[index]; - if (row) { - return row.getValue (); - } - return null; - }, - - getValues : function() { - var values = []; - for ( var i = 0, len = this._rows.length; i < len; ++i) { - values.push (this._rows[i].getValue ()); - } - return values; - }, - - setValueAt : function(index, value) { - var row = this._rows[index]; - if (row) { - row.setValue (value); - } - - this.refreshUI (); - }, - - resetValues : function(values) { - if (!values) { - return; - } - - this.values = values; - var valuesLen = values.length; - var rowsLen = this._rows.length; - - //Resets value - for ( var i = 0; i < valuesLen && i < rowsLen; ++i) { - this._rows[i].reset (values[i]); - } - - //removes newly added values that are not commited - if (rowsLen > valuesLen) { - for ( var i = rowsLen - 1; i >= valuesLen; --i) { - // delete from the end to minimize calls to setBgColor - this.deleteValue (i); - } - } - //re-adds removed values - else if (valuesLen > rowsLen) { - for ( var i = rowsLen; i < valuesLen && (this.displayAllValues || i < this.maxNumValuesDisplayed); ++i) { - var row = this._addRow (values[i]); - - } - } - - MochiKit.Signal.signal(this, 'ParameterUIResized'); - this.refreshUI (); - }, - - alignRangeRows : function() { - if (!this.allowRange) - return; - - var lowerBoundWidth = 0; - for ( var i = 0, l = this._rows.length; i < l; i++) { - var row = this._rows[i]; - var rangeField = row._valueWidget; - lowerBoundWidth = Math.max (lowerBoundWidth, rangeField.getLowerBoundValueWidth ()); - } - - for ( var i = 0, l = this._rows.length; i < l; i++) { - var row = this._rows[i]; - var rangeField = row._valueWidget; - rangeField.setLowerBoundValueWidth (lowerBoundWidth); - } - }, - - setValues : function(values) { - if (!values) - return; - - this.values = values; - var valuesLen = values.length; - var rowsLen = this._rows.length; - - for ( var i = 0; i < valuesLen && i < rowsLen; ++i) { - this._rows[i].setValue (values[i]); - } - - if (rowsLen > valuesLen) { - for ( var i = rowsLen - 1; i >= valuesLen; --i) { - // delete from the end to minimize calls to setBgColor - this.deleteValue (i); - } - } else if (valuesLen > rowsLen) { - for ( var i = rowsLen; i < valuesLen && (this.displayAllValues || i < this.maxNumValuesDisplayed); ++i) { - this._addRow (values[i]); - } - } - - MochiKit.Signal.signal(this, 'ParameterUIResized'); - this.refreshUI (); - }, - - setCleanValue : function(index, value) { - var row = this._rows[index]; - if (row) - row.setCleanValue (value); - }, - - deleteValue : function(index) { - if (index >= 0 && index < this._rows.length) { - var row = this._rows[index]; - row.layer.parentNode.removeChild (row.layer); - _widgets[row.widx] = null; - - this._rows.splice (index, 1); - var rowsLen = this._rows.length; - } - - this.refreshUI (); - }, - - setWarning : function(index, warning) { - var row = this._rows[index]; - if (row) { - row.setWarning (warning); - } - }, - - getWarning : function(index) { - var row = this._rows[index]; - if (row) - return row.getWarning (); - - return null; - }, - - resize : function(w) { - if (w !== null) { - this.width = w; - if (this.layer) { - bobj.setOuterSize (this.layer, w); - } - } - } -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterValueRow.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterValueRow.js deleted file mode 100644 index fe4815b80..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ParameterValueRow.js +++ /dev/null @@ -1,505 +0,0 @@ -/* -================================================================================ -ParameterValueRow - -Internal class for use by ParameterUI. Darws a UI for a single parameter value. -================================================================================ -*/ - -bobj.crv.params.newParameterValueRow = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - value: '', - defaultValues: null, - isReadOnlyParam: true, - canChangeOnPanel: false, - isRangeValue : false, - allowCustom: false, - isPassword: false, - calendarProperties : {displayValueFormat : '' , isTimeShown : false, hasButton : false, iconUrl : '', clickCB : null}, - changeCB: null, - enterCB: null, - defaultValuesMenu: null, - tooltip : null, - canOpenAdvDialog : false - }, kwArgs); - - var o = newWidget(kwArgs.id); - o.widgetType = 'ParameterValueRow'; - o._prevValueString = kwArgs.value; - o._warning = null; - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - - // Update instance with member functions - MochiKit.Base.update(o, bobj.crv.params.ParameterValueRow); - - return o; -}; - -bobj.crv.params.ParameterValueRow = { - setTabDisabled : function(dis) { - if (this._valueWidget) - this._valueWidget.setTabDisabled (dis); - - if (this._calendarButton) - bobj.disableTabbingKey (this._calendarButton.layer, dis); - }, - - /** - * Resets widget, Restores old value, hides warning and adv dialog icons - */ - reset : function(value) { - this.value = value; - this._prevValueString = value; - this.setWarning(null); - /* Removing Red border color if previous value was errorneous */ - MochiKit.DOM.removeElementClass(this.layer, "hasError"); - - if(this._valueWidget) { - this._valueWidget.reset(value); - } - }, - - init : function() { - Widget_init.call (this); - this._valueWidget.init (); - if (this._calendarButton) { - this._calendarButton.init (); - } - - this._valueCtn = getLayer (this.id + '_vc'); - this._btnCtn = getLayer (this.id + '_bc'); - this._valBtnCtn = getLayer (this.id + '_vab'); - - if (MochiKit.Base.isIE ()) { - /* IE's 100% is different than other browsers, - even in standards compliant mode.... */ - var marg = parseInt (MochiKit.Style.computedStyle (this._valueCtn, 'margin-right'), 10); - if (bobj.isNumber (marg)) { - this._valueWidget.layer.style.marginRight = (-1 * marg) + 'px'; - } - } - }, - - calendarSetValue : function(value) { - this.setValue (value); - this.changeCB (); - }, - - getHTML : function() { - if (!this._valueWidget) { - this._valueWidget = this._getValueWidget (); - } - if (this.calendarProperties.hasButton && !this._calendarButton) { - var getValueCB = bobj.bindFunctionToObject (this.getValue, this); - var setValueCB = bobj.bindFunctionToObject (this.calendarSetValue, this); - this._calendarButton = bobj.crv.params.newCalendarButton ( { - calendarProperties : this.calendarProperties, - getValueCB : getValueCB, - setValueCB : setValueCB - }); - } - - var DIV = bobj.html.DIV; - var IMG = bobj.html.IMG; - - var cssClass = ' iactParamRow'; - - if (this.canChangeOnPanel) - cssClass += ' editable'; - else - cssClass += ' readOnly'; - - if (MochiKit.Base.isIE () && bobj.isQuirksMode ()) { - cssClass += ' ' + 'iactParamRowIE'; - } - - return DIV ( { - id : this.id, - 'class' : cssClass - }, this.calendarProperties.hasButton ? this._getValueAndCalendarHTML () : this._getValueHTML ()); - }, - - - /** - * @return [String] Returns HTML for the the value - */ - _getValueHTML : function() { - var DIV = bobj.html.DIV; - var style = {}; - - if (MochiKit.Base.isIE () && bobj.isQuirksMode ()) { - style.position = "absolute"; - style.top = "0px"; - style.left = "0px"; - } - - return DIV ( { - id : this.id + '_vc', - 'class' : 'iactParamValue', - style : style - }, this._valueWidget.getHTML ()); - }, - - /** - * @return [String] Returns HTML for the value and a button beside it - */ - _getValueAndCalendarHTML : function() { - var style = {}; - if (MochiKit.Base.isIE () && bobj.isQuirksMode ()) { - style.width = '100%'; - } - - var DIV = bobj.html.DIV; - - var buttonRightOffset = (this._valueWidget.widgetType == "TextCombo") ? 16 : 0; - buttonRightOffset += "px"; - - var html = DIV ( { - id : this.id + "_vab", - style : style, - 'class' : "iactParamValueAndButton" - }, this._getValueHTML (), DIV ( { - id : this.id + "_bc", - 'class' : "iactValueIcon", - style : { - position : "absolute", - right : buttonRightOffset, - top : "0", - cursor : _hand - } - }, this._calendarButton.getHTML ())); - - return html; - }, - - getNewValueWidgetConstructor : function() { - var showDefVals = this.defaultValuesMenu !== null && !this.isReadOnlyParam && this.canChangeOnPanel; - - if (this.isRangeValue) - return bobj.crv.params.newRangeField; - else if (showDefVals) - return bobj.crv.params.newTextCombo; - else - return bobj.crv.params.newTextField; - }, - - getNewValueWidgetArgs : function() { - var isEditable = this.allowCustom && this.canChangeOnPanel; - return { - password : this.isPassword, - cleanValue : this.value, - editable : isEditable, - enterCB : bobj.bindFunctionToObject (this._onEnterPress, this), - keyUpCB : isEditable ? bobj.bindFunctionToObject (this._onKeyUp, this) : null, - tooltip : this.tooltip, - foreColor : this.isReadOnlyParam ? bobj.Colors.GRAY : bobj.Colors.BLACK, - focusCB : bobj.bindFunctionToObject (this.onFocus, this), - blurCB : bobj.bindFunctionToObject (this.onBlur, this), - canOpenAdvDialog : this.canOpenAdvDialog - }; - }, - - /** - * Creates a widget to display/edit the value. - * - * @return [Widget] - */ - _getValueWidget : function() { - var cons = this.getNewValueWidgetConstructor (); - var widget = cons (this.getNewValueWidgetArgs ()); - var showDefVals = this.defaultValuesMenu !== null && !this.isReadOnlyParam && this.canChangeOnPanel; - - if (showDefVals) { - widget.setMenu (this.defaultValuesMenu); - widget.changeCB = bobj.bindFunctionToObject (this._onChange, this); - } - - return widget; - }, - - onFocus : function() { - this.refreshWarningPopup (); - MochiKit.DOM.removeElementClass (this.layer, "hasError"); - }, - - refreshWarningPopup : function() { - if (this._warning) { - var pos = getPosScrolled (this.layer); - var fontFamily = MochiKit.Style.computedStyle (this.layer, 'fontFamily'); - var fontSize = MochiKit.Style.computedStyle (this.layer, 'fontSize'); - var valueWidth = bobj.getStringWidth (this.getValue (), fontFamily, fontSize); - var leftOffset = this.layer.offsetWidth < valueWidth ? this.layer.offsetWidth : valueWidth; - var topOffset = 33; - bobj.crv.WarningPopup.getInstance ().show (this._warning.message, pos.x + leftOffset, pos.y + topOffset); - } else { - bobj.crv.WarningPopup.getInstance ().hide (); - MochiKit.DOM.removeElementClass (this.layer, "hasError"); - } - - var tooltipText = this._warning ? this.tooltip + this._warning.message : this.tooltip; - if (this._valueWidget) - this._valueWidget.setTooltip (tooltipText); - }, - - onBlur : function() { - if (this._warning) { - bobj.crv.WarningPopup.getInstance ().hide (); - MochiKit.DOM.addElementClass (this.layer, "hasError"); - } - }, - - getValue : function() { - return this.value; - }, - - setValue : function(value) { - this.value = value; - if (this._valueWidget) - this._valueWidget.setValue (value); - }, - - setCleanValue : function(value) { - if (this._valueWidget) - this._valueWidget.setCleanValue(value); - - }, - - /** - * Set keyboard focus to the widget and mark it as selected - */ - focus : function() { - if (this._valueWidget.widgetType == "TextCombo") - this._valueWidget.text.focus (); - else - this._valueWidget.focus (); - }, - - /** - * Display a warning icon with a tooltip message - * - * @param warning - * [String] Tooltip message. If null, warning is hidden. - */ - setWarning : function(warning) { - this._warning = warning; - this.refreshWarningPopup (); - }, - - getWarning : function() { - return this._warning; - }, - - /** - * Change the outer dimensions of the widget - * - * @param w - * [int, optional] Width in pixels - * @param h - * [int, optional] Height in pixels - */ - resize : function(w, h) { - bobj.setOuterSize (this.layer, w, h); - }, - - deleteValue : function() { - this._valueWidget.setValue ('', true); - }, - - /** - * Handle keyUp events when editing values or using keyboard navigation. - * - * @param e - * [keyup event] - */ - _onKeyUp : function(e) { - var event = new MochiKit.Signal.Event (src, e); - var key = event.key ().string; - var newValueString = this._valueWidget.getValue (); - - switch (key) { - case "KEY_ESCAPE": - this._valueWidget.setValue (this._valueWidget.cleanValue); - this._onChange (); - break; - - case "KEY_ARROW_LEFT": - case "KEY_ARROW_RIGHT": - case "KEY_HOME": - case "KEY_END": - case "KEY_TAB": - break; - - default: - if (newValueString !== this._prevValueString) { - this._onChange () - this._prevValueString = newValueString; - } - break; - } - }, - - /** - * Delete the current value - */ - deleteValue : function() { - this._valueWidget.setValue ('', true); - }, - - _onChange : function() { - this.value = this._valueWidget.getValue(); - if (this.changeCB) - this.changeCB(); - }, - - /** - * Handles Enter key press events. - */ - _onEnterPress : function() { - if(this.enterCB) - this.enterCB(); - } -}; - - - -/* -================================================================================ -CalendarButton - -Internal class. Button that fits inline with parameter values -================================================================================ -*/ -bobj.crv.params.newCalendarButton = function(kwArgs) { - kwArgs = MochiKit.Base.update( { - id : bobj.uniqueId(), - calendarProperties : null, - getValueCB : null, - setValueCB : null, - calendarSignals : { - okSignal : null, - hideSignal : null, - cancelSignal : null - } - }, kwArgs); - - if (kwArgs.getValueCB == null || kwArgs.setValueCB == null || kwArgs.calendarProperties == null) - throw "InvalidArgumentException"; - - var o = newIconWidget( - kwArgs.id, - kwArgs.calendarProperties.iconUrl, - null, - null, - L_bobj_crv_ParamsCalBtn, - 14,14,0,0,0,0); - - o.setClasses("", "", "", "iconcheckhover"); - - bobj.fillIn(o, kwArgs); - - // Update instance with member functions - o.margin = 0; - o.oldInit = o.init; - - MochiKit.Base.update(o, bobj.crv.params.CalendarButton); - o.clickCB = bobj.bindFunctionToObject(o.onClick, o); - - return o; -}; - -bobj.crv.params.CalendarButton = { - onClick : function() { - var calendar = bobj.crv.Calendar.getInstance (); - var date = bobj.external.date.getDateFromFormat (this.getValueCB (), this.calendarProperties.displayValueFormat); - var connect = MochiKit.Signal.connect; - if (date) - calendar.setDate (date); - - this.calendarSignals = { - okSignal : connect (calendar, calendar.Signals.OK_CLICK, this, 'onClickCalendarOKButton'), - cancelSignal : connect (calendar, calendar.Signals.CANCEL_CLICK, this, 'onClickCalendarCancelButton'), - hideSignal : connect (calendar, calendar.Signals.ON_HIDE, this, 'onHideCalendar') - }; - - var absPos = getPosScrolled (this.layer); - var x = absPos.x + this.getWidth (); - var y = absPos.y + this.getHeight () + 1; - - calendar.setShowTime (this.calendarProperties.isTimeShown); - calendar.show (true, x, y); - }, - - onClickCalendarOKButton : function(date) { - var strValue = bobj.external.date.formatDate (date, this.calendarProperties.displayValueFormat); - this.setValueCB (strValue); - }, - - onClickCalendarCancelButton : function() { - this.clearCalendarSignals (); - }, - - clearCalendarSignals : function() { - for ( var identName in this.calendarSignals) { - bobj.crv.SignalDisposer.dispose(this.calendarSignals[identName], true); - this.calendarSignals[identName] = null; - } - }, - - onHideCalendar : function() { - this.clearCalendarSignals (); - if (this.layer.focus) - this.layer.focus (); - }, - - init : function() { - this.oldInit (); - this.layer.onfocus = IconWidget_realOverCB; - this.layer.onblur = IconWidget_realOutCB; - }, - - getHTML : function() { - var imgCode; - var h = bobj.html; - if (this.src) { - imgCode = h.DIV( { - style : { - overflow : 'hidden', - height : '14px', - position : 'relative', - top : '2px', - width : this.w + 'px' - } - }, simpleImgOffset(this.src, this.w, this.h, this.dx, this.dy, 'IconImg_' + this.id, null, this.alt, - 'cursor:' + _hand), this.extraHTML); - } else { - imgCode = h.DIV( { - 'class' : 'iconText', - 'style' : { - width : '1px', - height : (this.h + this.border) + 'px' - } - }); - } - - var divStyle = { - margin : this.margin + 'px', - padding : '1px' - }; - - if (this.width) { - divStyle.width = this.width + 'px'; - } - if (!this.disp) { - divStyle.display = 'none'; - } - - return h.DIV( { - style : divStyle, - id : this.id, - 'class' : this.nocheckClass - }, (this.clickCB && _ie) ? lnk(imgCode, null, null, null, ' tabIndex="-1"') : imgCode); - } -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/PromptPage.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/PromptPage.js deleted file mode 100644 index 9bf885226..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/PromptPage.js +++ /dev/null @@ -1,295 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/** - * PromptPage constructor - * - * @param kwArgs.id [String] DOM node id - * @param kwArgs.contentId [String] DOM node id of report page content container - * @param kwArgs.bgColor [String] Background color of the page - * @param kwArgs.width [Int] Page content's width in pixels - * @param kwArgs.height [Int] Page content's height in pixels - * @param kwArgs.topMargin [Int] Top margin of report page in pixels - * @param kwArgs.rightMargin [Int] Right margin of report page in pixels - * @param kwArgs.bottomMargin [Int] Bottom margin of report page in pixels - * @param kwArgs.leftMargin [Int] Left margin of report page in pixels - */ -bobj.crv.newPromptPage = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - layoutType: 'fixed', - content : null, - width: 800, - height: 600, - padding: 5, - top: 0, - left: 0 - }, kwArgs); - - var o = newWidget(kwArgs.id); - o.widgetType = 'PromptPage'; - o._reportProcessing = null; - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - - // Update instance with member functions - o.initOld = o.init; - MochiKit.Base.update(o, bobj.crv.PromptPage); - - window[o.id] = o; - - return o; -}; - -bobj.crv.PromptPage = { - /** - * Overrides parent. Sets the content of the report page. - * - * @param content - * [String|DOM Node] Html or Node to use as report page content - */ - setHTML : function(content) { - var pageNode = this._pageNode; - if (bobj.isString (content)) { - var ext = bobj.html.extractHtml(content); - pageNode.innerHTML = ext.html; - - var links = ext.links; - for(var iLinks = 0, linksLen = links.length; iLinks < linksLen; ++iLinks) { - bobj.includeLink(links[iLinks]); - } - - var scripts = ext.scripts; - for (var iScripts = 0, scriptsLen = scripts.length; iScripts < scriptsLen; ++iScripts) { - var script = scripts[iScripts]; - if (!script) {continue;} - - if (script.text) { - bobj.evalInWindow(script.text); - } - } - } else if (bobj.isObject (content)) { - pageNode.innerHTML = ''; - pageNode.appendChild (content); - var contentStyle = content.style; - contentStyle.display = 'block'; - contentStyle.visibility = 'visible'; - } - }, - - getHTML : function() { - var h = bobj.html; - var isBorderBoxModel = bobj.isBorderBoxModel (); - - var pageOuterHeight = this.height + this.topMargin + this.bottomMargin; - var pageOuterWidth = this.width + this.leftMargin + this.rightMargin; - - var contentHeight = isBorderBoxModel ? pageOuterHeight : this.height; - var contentWidth = isBorderBoxModel ? pageOuterWidth : this.width; - - var layerStyle = { - position : 'relative', - width : contentWidth + 'px', - height : contentHeight + 'px', - top : this.top + "px", - left : this.left + "px", - border : 'none', - 'z-index' : 1, - 'background-color' : this.bgColor - }; - - /* To support the width and height */ - if (this.layoutType == 'fixed') { - layerStyle.overflow = 'auto'; - } - - var pageStyle = { - 'padding' : this.padding + 'px' - }; - - var html = h.DIV ( { - id : this.id, - style : layerStyle - }, h.DIV ( { - id : this.id + '_page', - style : pageStyle - })); - - return html; - }, - - init : function() { - this._pageNode = document.getElementById (this.id + '_page'); - - this.initOld (); - - if (this.contentId) { - var content = document.getElementById (this.contentId); - if (content) { - this.setHTML (content); - } - } - else if(this.content) { - this.setHTML(this.content); - delete this.content; - } - - var connect = MochiKit.Signal.connect; - - if (this.layoutType.toLowerCase () == 'client') { - connect (window, 'onresize', this, '_doLayout'); - } - - this._doLayout (); - }, - - /* TODO: fix the layout (fitreport) to behave like XIR2 */ - _doLayout : function() { - var layout = this.layoutType.toLowerCase (); - - if ('client' == layout) { - this.css.width = '100%'; - this.css.height = '100%'; - } else if ('fitreport' == layout) { - this.css.width = '100%'; - this.css.height = '100%'; - } else { /* fixed layout */ - if(this.width != null && this.width.length > 0) { - if(this.width.indexOf("px") > 0 || this.width.indexOf("%") > 0) - this.css.width = this.width; - else - this.css.width = this.width + 'px'; - } - if(this.height != null && this.height.length > 0) { - if(this.height.indexOf("px") > 0 || this.height.indexOf("%") > 0) - this.css.height = this.height; - else - this.css.height = this.height + 'px'; - } - } - - var rptProcessing = this._reportProcessing; - if (rptProcessing && rptProcessing.layer) { - rptProcessing.center (); - } - }, - - addChild : function(widget) { - if (widget.widgetType == 'ReportProcessingUI') { - this._reportProcessing = widget; - } - } -}; - - -/** - * FlexPromptPage constructor - * - * @param kwArgs.id [String] DOM node id - * @param kwArgs.contentId [String] DOM node id of report page content container - * @param kwArgs.bgColor [String] Background color of the page - * @param kwArgs.width [Int] Page content's width in pixels - * @param kwArgs.height [Int] Page content's height in pixels - * @param kwArgs.topMargin [Int] Top margin of report page in pixels - * @param kwArgs.rightMargin [Int] Right margin of report page in pixels - * @param kwArgs.bottomMargin [Int] Bottom margin of report page in pixels - * @param kwArgs.leftMargin [Int] Left margin of report page in pixels - */ -bobj.crv.newFlexPromptPage = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - layoutType: 'fixed', - width: 800, - height: 600, - padding: 5, - top: 0, - left: 0 - }, kwArgs); - - var o = newWidget(kwArgs.id); - o.widgetType = 'FlexPromptPage'; - o._reportProcessing = null; - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - - // Update instance with member functions - o.initOld = o.init; - MochiKit.Base.update(o, bobj.crv.FlexPromptPage); - window[o.id] = o; - - return o; -}; - -bobj.crv.FlexPromptPage = { - /** - * Overrides parent. Does nothing because the swf content will replace the DIV later - * - * @param content [String|DOM Node] Html or Node to use as report page content - */ - setHTML : MochiKit.Base.noop, - - getHTML : function() { - var isBorderBoxModel = bobj.isBorderBoxModel (); - - var pageOuterHeight = this.height + this.topMargin + this.bottomMargin; - var pageOuterWidth = this.width + this.leftMargin + this.rightMargin; - - var contentHeight = isBorderBoxModel ? pageOuterHeight : this.height; - var contentWidth = isBorderBoxModel ? pageOuterWidth : this.width; - - var useSize = this.layoutType.toLowerCase () == bobj.crv.Viewer.LayoutTypes.FIXED; - - var layerStyle = { - position : 'relative', - width : useSize ? contentWidth + 'px' : '100%', - height : useSize ? contentHeight + 'px' : '100%', - top : this.top + "px", - left : this.left + "px", - border : 'none', - 'z-index' : 1, - 'background-color' : this.bgColor - }; - - var pageStyle = { - 'padding': this.padding + 'px', - position: 'absolute' // Must be absolute to avoid double initialization in firefox ADAPT01260507 - }; - - bobj.crv.params.ViewerFlexParameterAdapter.setViewerLayoutType (this.id, this.layoutType); - - var h = bobj.html; - return h.DIV ( { - id : this.id, - style : layerStyle - }, h.DIV ( { - id : this.id + '_page', - style : pageStyle - }, h.DIV ( { - id : this.contentId - }))); - }, - - init : function() { - var connect = MochiKit.Signal.connect; - if (this.layoutType.toLowerCase () == 'client') { - connect (window, 'onresize', this, '_doLayout'); - } - - this._doLayout (); - }, - - _doLayout : function() { - var rptProcessing = this._reportProcessing; - if (rptProcessing && rptProcessing.layer) { - rptProcessing.center (); - } - }, - - addChild : function(widget) { - if (widget.widgetType == 'ReportProcessingUI') { - this._reportProcessing = widget; - } - } - -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/RangeField.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/RangeField.js deleted file mode 100644 index 18ab39cd1..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/RangeField.js +++ /dev/null @@ -1,215 +0,0 @@ - -/* - * ================================================================================ - * Range Field - * - * ================================================================================ - */ - -bobj.crv.params.newRangeField = function(kwArgs) { - return new bobj.crv.params.RangeField(kwArgs); -}; - -bobj.crv.params.RangeField = function(kwArgs) { - kwArgs = MochiKit.Base.update( { - id : bobj.uniqueId(), - cleanValue : {}, - foreColor : 'black', - isTextItalic: false, - tooltip : '' - }, kwArgs); - - this.widgetType = 'RangeField'; - this.value = kwArgs.cleanValue; - - // Update instance with constructor arguments - bobj.fillIn(this, kwArgs); -}; - -bobj.crv.params.RangeField.prototype = { - setTabDisabled : function(dis) { - if(this.layer) { - var tds = this.layer.getElementsByTagName("TD"); - for(var i = 0, len = tds.length; i < len ; i++) { - bobj.disableTabbingKey(tds[i], dis); - } - } - }, - - setTooltip : function(text) { - if(this.layer) { - this.layer.title = text; - } - }, - - setForeColor : function(color) { - if(this.layer) { - this.layer.style.color = color; - } - }, - - setTextItalic : function(isItalic) { - if(this.layer) { - this.layer.style.fontStyle = isItalic ? 'italic' : ''; - } - }, - - /** - * Generates HTML for either lower or upper bound value - * @param value - the value of upper/lower bound - * @param isRightAligned - a flag for indicating whether left align or right align the generated HTML - * @return - */ - getValueHTML : function(value, isRightAligned) { - value = value ? value : ' '; - var style = { - 'text-align' : isRightAligned ? 'right' : 'left' - }; - - return bobj.html.TD( { - style : style, - tabIndex : 0 - }, bobj.html.SPAN(null, value)); - - }, - - isValueValidRange: function() { - return this.value != null && this.value.lowerBound != null && this.value.upperBound != null; - }, - - getHTML : function() { - var TR = ""; - var h = bobj.html; - - if(this.isValueValidRange()) { - TR = h.TR(null, this.getValueHTML(this.getValue().lowerBound.value, true), this - .getMiddleImageHTML(), this.getValueHTML(this.getValue().upperBound.value, false)) - } - else { - TR = h.TR(null, this.getValueHTML(this.getValue(), false)) - } - - return h.TABLE( { - id : this.id, - 'class' : 'iactRangeFieldTable', - title: this.tooltip, - style : {color : this.foreColor, "font-style" : this.isTextItalic ? 'italic' :''} - }, TR); - }, - - /** - * - * @return HTML for Range type (INCLUSIVE / EXCLUSIVE / UNBOUND) - */ - getMiddleImageHTML : function() { - var lowerImageSrc = ""; - var upperImageSrc = ""; - var lineSrc = "images/line.gif"; - - switch (this.getValue().lowerBound.type) { - case bobj.crv.params.RangeBoundTypes.EXCLUSIVE: - lowerImageSrc = "images/hollowCircle.gif"; - break; - case bobj.crv.params.RangeBoundTypes.INCLUSIVE: - lowerImageSrc = "images/filledCircle.gif"; - break; - case bobj.crv.params.RangeBoundTypes.UNBOUNDED: - lowerImageSrc = "images/leftTriangle.gif"; - break; - } - - switch (this.getValue().upperBound.type) { - case bobj.crv.params.RangeBoundTypes.EXCLUSIVE: - upperImageSrc = "images/hollowCircle.gif"; - break; - case bobj.crv.params.RangeBoundTypes.INCLUSIVE: - upperImageSrc = "images/filledCircle.gif"; - break; - case bobj.crv.params.RangeBoundTypes.UNBOUNDED: - upperImageSrc = "images/rightTriangle.gif"; - break; - } - - var TDStyle = { - 'vertical-align' : 'middle' - }; - - var IMG = bobj.html.IMG; - return bobj.html.TD( { - style : TDStyle - }, IMG( { - src : bobj.crvUri(lowerImageSrc) - }), IMG( { - src : bobj.crvUri(lineSrc) - }), IMG( { - src : bobj.crvUri(upperImageSrc) - })); - }, - - /** - * Initializes the widget - */ - init : function() { - this.layer = getLayer(this.id); - }, - - /** - * - * @return the evaluated width of lower bound TD - */ - getLowerBoundValueWidth : function() { - if(!this.isValueValidRange()) - return 0; - - var value = this.getValue().lowerBound.value; - - var fontFamily = MochiKit.Style.computedStyle(this.layer, 'fontFamily'); - var fontSize = MochiKit.Style.computedStyle(this.layer, 'fontSize'); - - if (!fontFamily) - fontFamily = "arial , sans-serif"; - - if (!fontSize) - fontSize = "12px"; - - return bobj.getStringWidth(value, fontFamily, fontSize); - }, - - getLowerBoundTD : function() { - if (this.layer) - return this.layer.getElementsByTagName("TD")[0]; - - return null; - }, - - setLowerBoundValueWidth : function(w) { - if (this.getLowerBoundTD()) - this.getLowerBoundTD().style.width = w + "px"; - }, - - reset : function(value) { - this.value = value; - this.cleanValue = value; - this.updateUI(); - }, - - updateUI : function() { - var parent = this.layer.parentNode; - MochiKit.DOM.removeElement(this.layer); - append2(parent, this.getHTML()); - this.init(); - }, - - setValue : function(rangeValue) { - this.value = rangeValue; - this.updateUI(); - }, - - setCleanValue : function(rangeValue) { - this.cleanValue = rangeValue; - }, - - getValue : function() { - return this.value; - } -}; \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ReportAlbum.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ReportAlbum.js deleted file mode 100644 index a752060d4..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ReportAlbum.js +++ /dev/null @@ -1,335 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/** - * ReportAlbum Constructor - */ -bobj.crv.newReportAlbum = function(kwArgs) { - var mb = MochiKit.Base; - var UPDATE = mb.update; - var BIND = mb.bind; - var ALBUM = bobj.crv.ReportAlbum; - - kwArgs = UPDATE({ - id: bobj.uniqueId(), - initTabIdx: 0, // Index of tab to select when initializing - width: 800, - height: 500, - displayDrilldownTab : true - }, kwArgs); - - - // Override TabbedZone's TabBarWidget - var tabbar = newNaviBarWidget(bobj.uniqueId(), _HorizTabTopWithClose, null, null, kwArgs.width, null, null, null, false, true, false); - var o = newTabbedZone(kwArgs.id, tabbar, kwArgs.width, kwArgs.height); - - tabbar.cb = BIND(ALBUM._onSelectTab, o); - tabbar.closeTab = BIND(ALBUM._removeView, o, true); - bobj.fillIn(o, kwArgs); - o.widgetType = 'ReportAlbum'; - o._views = []; - o._hideFrame = false; - - // Attach member functions - o.selectOld = o.select; - UPDATE(o, ALBUM); - - return o; -}; - -bobj.crv.ReportAlbum = { - getTabBarHeight : function() { - return this.tabs.getHeight (); - }, - - init : function() { - /* - * This is not nice... Copied super class' init code here so that select will be called only once. - */ - this.tzOldInit (); - this.tabs.init (); - this.showDrilldownTab (this.displayDrilldownTab); - - var views = this._views; - if (views.length > 0) { - for ( var i = 0, len = views.length; i < len; i++) { - /* Since views are not initializing themself (as before through - adding bobj.crv.getInitHtml to their HTML) - it is report album's responsibility to initialize its children */ - views[i].init (); - - } - - if (this.initTabIdx < 0 || this.initTabIdx >= views.length) { - this.initTabIdx = 0; - } - - this.select (this.initTabIdx); - } - }, - - showDrilldownTab : function (isDisplay) { - this.displayDrilldownTab = isDisplay; - try - { - /* IE supports table-row since IE8. */ - var displayStyle; - if (_ie && !_ie8Up) - displayStyle = "block"; - else - displayStyle = "table-row"; - this.tabs.layer.parentNode.parentNode.style.display = isDisplay ? displayStyle : "none"; - } - catch(e){} - }, - - isDisplayDrilldownTab : function () { - return this.displayDrilldownTab; - }, - - setHideFrame : function(hide) { - this._hideFrame = hide; - var selectedView = this.getSelectedView (); - if (selectedView && this._hideFrame) - selectedView.hideFrame(); - }, - - update : function(update) { - if (!update || update.cons !== "bobj.crv.newReportAlbum") { - return; - } - - /* Updates all views */ - for ( var i = 0, len = update.children.length; i < len; i++) { - var updateView = update.children[i]; - var view = this._views[i]; - if (view) { - view.update (updateView); /* updates current view */ - } - } - - var updateChildrenLength = update.children.length; - var currentViewsLength = this._views.length; - - /* Adds any new view created by drill down action */ - if (updateChildrenLength > currentViewsLength) { - for ( var i = currentViewsLength, len = updateChildrenLength; i < len; i++) { - this.delayedAddChild (bobj.crv.createWidget (update.children[i])); - } - } - /* Removes views that are have been removed from viewstate */ - else if (updateChildrenLength < currentViewsLength) { - for ( var i = currentViewsLength -1, len = updateChildrenLength; i >= len; i--) { - this._removeView (false, i); /* removes non-existing views */ - } - } - - this.initTabIdx = update.args.initTabIdx; - this.select (this.initTabIdx); - }, - - /** - * @return index of the tab specified by viewstateid - */ - findTabNumber : function(viewStateId) { - var views = this._views; - for ( var i = 0, len = views.length; i < len; i++) - if (views[i].viewStateId == viewStateId) - return i; - - return -1; - }, - - /** - * Adds view to its list of views. Since this method can be called after initialization time, its HTML - * is first added to report album, and then widget is intialized. - */ - delayedAddChild : function(view) { - this._views.push (view); - var tab = this.tabs.add(view.label, view.tooltip); - var tabHTML = this.getTabHTML (this._views.length - 1); - append (getLayer (this.id + "_container"), tabHTML); - view.init (); - }, - - addChild : function(view) { - if (view) { - this._views.push (view); - this.add (view.label, view.tooltip); - } - }, - - getHTML : function() { - var html = this.beginHTML (); - var children = this._views; - for ( var i = 0, len = children.length; i < len; ++i) { - html += this.getTabHTML (i); - } - - html += this.endHTML (); - return html; - }, - - - /** - * @param index, - * index of tab to create HTML for - * @return creates HTML for tab specified by index - */ - getTabHTML : function(index) { - var tab = this.tabs.items[index]; - var view = this._views[index]; - html = ''; - - if (tab && view) { - html += this.beginTabHTML (tab); - html += view.getHTML (); - html += this.endTabHTML (); - } - - return html; - }, - - /** - * Resize the outer dimensions of the ReportAlbum. The standard resize method, inherited from TabbedZoneWidget, resizes the container. We - * can't override it without breaking things. - */ - resizeOuter : function(w, h) { - var tabHeight = 33; - var frameWidth = 10; - - if(bobj.isNumber (h)) { - if(this.displayDrilldownTab) - h -= tabHeight; - h = Math.max(h, 0); - } - - if(bobj.isNumber (w)) { - if(!this._hideFrame) - w -= frameWidth; - - w = Math.max(w, 0); - } - - - this.resize (w, h); - this.tabs.resize (w); - - var selectedView = this.getSelectedView (); - if (selectedView) { - selectedView.resize (); /* Notify ReportView of resize */ - } - }, - - - - /** - * @return Returns a suggested size for the widget as an object with width and height integer properties that specify the dimensions in - * pixels. - */ - getBestFitSize : function() { - var w = this._hideFrame ? 0 : 10; - var h = this.displayDrilldownTab ? 33 : 0; - var selectedView = this.getSelectedView (); - if (selectedView) { - var viewSize = selectedView.getBestFitSize (); - w += viewSize.width; - h += viewSize.height; - } - - return { - width : w, - height : h - }; - }, - - /** - * Overrides parent. Opens a tab with a positioned div. The positioning prevents - * the ReportView from disappearing in IE. - */ - beginTabHTML : function(tab) { - return bobj.html.openTag ('div', { - id : tab.zoneId, - style : { - display : 'none', - width : this.w + 'px', - height : this.h + 'px', - position : 'relative' - } - }); - }, - - /** - * @return Returns the select ReportView or null if no view is selected - */ - getSelectedView : function() { - return this._views[this.oldIndex]; - }, - - - /** - * Overrides parent. Selects a report view to display. - * - * @param index [int] Index of the report view - */ - select : function(index) { - var partial = MochiKit.Base.partial; - - if (index >= 0 && index < this._views.length && index != this.oldIndex) { - - /* Disposes currently selected view */ - var selectedView = this.getSelectedView (); - if (selectedView) { - selectedView.dispose (); - } - - /* Creates new signals for newly selected view */ - var selectedView = this._views[index]; - - /* Does the dirty DOM manipulation to actually change the view */ - this.selectOld (index); - - /* - * Notifies parameter controller that view has changes so it can enable/disable panel based on view's type - */ - MochiKit.Signal.signal (this, "viewChanged"); - } - }, - - /** - * Removes view specified by index from view list - * - * @param autoSelectNext - * [boolean] indicates whether another view should be auto selected after view specified by index is removed - * @param index - * [Number} index of view that would be removed - */ - _removeView : function(autoSelectNext, index) { - var removedView = this._views[index]; - var removedTab = this.tabs.items[index]; - - autoSelectNext = (removedTab != null && removedTab.isSelected && autoSelectNext); - - if (removedView) { - removedView.dispose (); - bobj.deleteWidget (removedView); - MochiKit.Signal.signal (this, 'removeView', removedView); - } - - if (removedTab.isSelected) { - /* oldIndex (index of currently selected view) needs to be reset so when - response for the next selected view arrives - viewer think that view has changed */ - this.oldIndex = -1; - } - - arrayRemove (this, '_views', index); - this.tabs.remove (index, autoSelectNext); - bobj.deleteWidget (removedTab); - }, - - _onSelectTab : function(index) { - if(index != this.oldIndex) - MochiKit.Signal.signal (this, 'selectView', this._views[index]); - } -}; - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ReportPage.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ReportPage.js deleted file mode 100644 index e5b0f46e1..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ReportPage.js +++ /dev/null @@ -1,280 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/** - * ReportPage constructor - * - * @param kwArgs.id [String] DOM node id - * @param kwArgs.bgColor [String] Background color of the page - * @param kwArgs.width [Int] Page content's width in pixels - * @param kwArgs.height [Int] Page content's height in pixels - * @param kwArgs.topMargin [Int] Top margin of report page in pixels - * @param kwArgs.rightMargin [Int] Right margin of report page in pixels - * @param kwArgs.bottomMargin [Int] Bottom margin of report page in pixels - * @param kwArgs.leftMargin [Int] Left margin of report page in pixels - * @param kwArgs.extraCssFileUrl [String] The path of an extra CSS file used in report page - */ - -bobj.crv.newReportPage = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - bgColor: '#FFFFFF', - width: 720, - height: 984, - extraCssFileUrl: "", - documentView: bobj.crv.ReportPage.DocumentView.PRINT_LAYOUT - }, kwArgs); - - var o = newWidget(kwArgs.id); - o.widgetType = 'ReportPage'; - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - - // Update instance with member functions - o.initOld = o.init; - o.resizeOld = o.resize; - MochiKit.Base.update(o, bobj.crv.ReportPage); - - return o; -}; - -bobj.crv.ReportPage = { - DocumentView : { - WEB_LAYOUT : 'weblayout', - PRINT_LAYOUT : 'printlayout' - }, - - /** - * Disposes report page by removing its layer and stylesheet from DOM - */ - dispose : function() { - MochiKit.DOM.removeElement (this.layer); - }, - - /** - * DO NOT REMOVE. USED BY WEB ELEMENTS - */ - displayScrollBars : function (isDisplay) { - this.layer.style.overflow = isDisplay ? "auto" : "hidden"; - }, - - /** - * DO NOT REMOVE. USED BY WEB ELEMENTS - */ - isDisplayScrollBars : function () { - this.layer.style.overflow == "auto"; - }, - - - update : function(update) { - if (update && update.cons == "bobj.crv.newReportPage") { - this.updateSize ( { - width : update.args.width, - height : update.args.height - }); - - this.layer.scrollLeft = 0; - this.layer.scrollTop = 0; - this.updateHTML (update.args.content, false); - } - }, - - scrollToHighlighted : function (scrollWindow) { - if(this._iframe) { - var iframeDoc = _ie ? this._iframe.contentWindow.document : this._iframe.contentDocument; - var e = iframeDoc.getElementById("CrystalHighLighted"); - if(e) { - var ePosition = MochiKit.Style.getElementPosition (e, null, iframeDoc); - if(scrollWindow) { - var reportPagePos = MochiKit.Style.getElementPosition (this.layer); - window.scrollTo (reportPagePos.x + ePosition.x , reportPagePos.y + ePosition.y); - } - else { - this.layer.scrollLeft = ePosition.x; - this.layer.scrollTop = ePosition.y; - } - } - } - }, - - updateHTML : function(content, useAnimation) { - if (content) { - if(!this._iframe) { - this._iframe = MochiKit.DOM.createDOM('IFRAME', {id : this.id + '_iframe', width : '100%', height : '100%', frameBorder : '0', margin : '0'}) - this._pageNode.appendChild(this._iframe); - } - - if(useAnimation) - this._iframe.style.display = "none"; - - var iframeDoc = _ie ? this._iframe.contentWindow.document : this._iframe.contentDocument; - iframeDoc.open(); - iframeDoc.write(this.getIFrameHTML (content)); - iframeDoc.close(); - - if(useAnimation) - bobj.displayElementWithAnimation(this._iframe); - } - }, - - getIFrameHTML : function (content) { - var extraCssFileLink = ""; - if (this.extraCssFileUrl != "") { - extraCssFileLink = "\r\n"; - } - - return "" + - "\r\n" + - "\r\n" + - extraCssFileLink + - "\r\n" + - "\r\n" + - "\r\n" + - content + - "\r\n" + - ""; - }, - - /* - * Updates size of report page based on update object - * @param update [{width,height,marginLeft,marginRight,marginTop}] dimension and margins - * of report p - */ - updateSize : function(sizeObject) { - - if (sizeObject) { - this.width = (sizeObject.width != undefined) ? sizeObject.width : this.width; - this.height = (sizeObject.height != undefined) ? sizeObject.height : this.height; - } - - if (this._pageNode) { - var isBBM = bobj.isBorderBoxModel (); - this._pageNode.style.width = (isBBM ? this.width + 2: this.width) + 'px'; - this._pageNode.style.height = (isBBM ? this.height + 2: this.height) + 'px'; - } - - if (this._shadowNode) { - this._shadowNode.style.width = (isBBM ? this.width + 2: this.width) + 'px'; - this._shadowNode.style.height = (isBBM ? this.height + 2: this.height) + 'px'; - } - }, - - getHTML : function() { - var h = bobj.html; - var isBBM = bobj.isBorderBoxModel (); - - var layerStyle = { - width : '100%', - height : '100%', - overflow : 'auto', - position : 'absolute' - }; - - var pageStyle = { - position : 'relative', - width : (isBBM ? this.width + 2: this.width) + 'px', - height : (isBBM ? this.height + 2: this.height) + 'px', - 'z-index' : 1, - 'border-width' : '1px', - 'border-style' : 'solid', - 'background-color' : this.bgColor, - overflow : 'hidden', - 'text-align' : 'left' - }; - - var shadowStyle = { - position : 'absolute', - 'z-index' : 0, - display : 'none', - width : (isBBM ? this.width + 2: this.width) + 'px', - height : (isBBM ? this.height + 2: this.height) + 'px', - top : '0px', - left : '0px' - }; - - - var shadowHTML = ''; - if (this.documentView.toLowerCase () == bobj.crv.ReportPage.DocumentView.PRINT_LAYOUT) { - layerStyle['background-color'] = '#8E8E8E'; - pageStyle['border-color'] = '#000000'; - shadowStyle['background-color'] = '#737373'; - shadowHTML = h.DIV ( { - id : this.id + '_shadow', - 'class' : 'menuShadow', - style : shadowStyle - }) - /* page should appear in the center for print layouts */ - layerStyle['text-align'] = 'center'; /* For page centering in IE quirks mode */ - pageStyle['margin'] = '0 auto'; /* center the page horizontally - CSS2 */ - pageStyle['top'] = "6px"; - } else { - /* Web Layout*/ - layerStyle['background-color'] = '#FFFFFF'; - pageStyle['border-color'] = '#FFFFFF'; - /* page should appear in left for web layouts */ - pageStyle['margin'] = '0'; - } - - var html = h.DIV ( { - id : this.id, - style : layerStyle, - 'class' : 'insetBorder' - }, h.DIV ( { - id : this.id + '_page', - style : pageStyle - }), shadowHTML); - - return html; - }, - - init : function() { - this._pageNode = getLayer (this.id + '_page'); - this._shadowNode = getLayer (this.id + '_shadow'); - - this.initOld (); - - this.updateHTML (this.content, true); - }, - - updateShadowLocation : function () { - var updateFunc = function () { - if(this._shadowNode && this._pageNode) { - this._shadowNode.style.display = "none"; //Must hide dropshadow as it can cause scrollbars to appear - var pageNodPos = {x : this._pageNode.offsetLeft, y : this._pageNode.offsetTop}; - this._shadowNode.style.display = "block"; - this._shadowNode.style.top = pageNodPos.y + (bobj.isBorderBoxModel() ? 4 : 6) + "px"; - this._shadowNode.style.left = pageNodPos.x + (bobj.isBorderBoxModel() ? 4 : 6) + "px"; - } - } - - setTimeout(bobj.bindFunctionToObject(updateFunc,this), 0); // Must be executed after viewer has finished doLayout - }, - - /** - * Resizes the outer dimensions of the widget. - */ - resize : function (w, h) { - bobj.setOuterSize(this.layer, w, h); - if(_moz) - this.css.clip = bobj.getRect(0,w,h,0); - - this.updateShadowLocation (); - }, - - /** - * @return Returns an object with width and height properties such that there - * would be no scroll bars around the page if they were applied to the widget. - */ - getBestFitSize : function() { - var page = this._pageNode; - return { - width: page.offsetWidth + 30, - height: page.offsetHeight + 30 - }; - }, - - hideFrame : function() { - this.css.borderStyle = 'none'; - this._pageNode.style.border = ''; - } -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ReportView.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ReportView.js deleted file mode 100644 index 815c99d78..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ReportView.js +++ /dev/null @@ -1,156 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/** - * ReportView Constructor - */ -bobj.crv.newReportView = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - viewStateId: null, - isMainReport: false - }, kwArgs); - var o = newWidget(kwArgs.id); - - bobj.fillIn(o, kwArgs); - o.widgetType = 'ReportView'; - - o.reportPage = null; - - o._lastPanelWidth = null; - - // Attach member functions - o.initOld = o.init; - o.isMainReportFlag = o.isMainReport; - MochiKit.Base.update(o, bobj.crv.ReportView); - - return o; -}; - -bobj.crv.ReportView = { - init : function() { - this.initOld (); - if (this.reportPage) - this.reportPage.init (); - }, - - addChild : function(widget) { - if (widget.widgetType == 'ReportPage') - this.reportPage = widget; - }, - - /** - * This method should be called after viewer has initialized. Adds a child to view by first appending its html - * to view and then intializing it. - */ - delayedAddChild : function(widget) { - this.addChild (widget); - append2 (this.layer, widget.getHTML ()); - widget.init (); - - }, - - scrollToHighlighted : function (scrollWindow) { - if(this.reportPage) { - this.reportPage.scrollToHighlighted(scrollWindow); - } - }, - - update : function(update) { - if (update && update.cons == "bobj.crv.newReportView") { - if(update.args) - this.viewStateId = update.args.viewStateId; - - for ( var childVar in update.children) { - var child = update.children[childVar]; - if (child && child.cons == "bobj.crv.newReportPage") { - if (!this.reportPage) { - /* adds reportPage if not existing */ - this.delayedAddChild (bobj.crv.createWidget (child)); - } else { - /* updates reportpage */ - this.reportPage.update (child); - } - - break; /* There is only one child */ - } - } - } - }, - - getHTML : function() { - var h = bobj.html; - - var layerStyle = { - width : '100%', - height : '100%', - overflow : 'hidden', - position : 'relative' - }; - - var html = h.DIV ( { - id : this.id, - style : layerStyle - }, this.reportPage ? this.reportPage.getHTML () : ''); - - return html; - }, - - _doLayout : function() { - if (this.reportPage) - this.reportPage.resize (this.getWidth (), this.getHeight ()); - }, - - isMainReport : function() { - return this.isMainReportFlag; - }, - - /** - * ReportView will always fill its container but it should be told when to - * resize so that the layout of its contents will be updated. - */ - resize : function() { - this._doLayout (); - }, - - dispose : function() { - if (this.reportPage) { - this.reportPage.dispose (); - bobj.deleteWidget (this.reportPage); - delete this.reportPage; - } - - bobj.removeAllChildElements (this.layer); - }, - - /** - * @return Returns a suggested size for the widget as an object with width and height integer properties that specify the dimensions in - * pixels. - */ - getBestFitSize : function() { - var w = 0; - var h = 0; - - var pageSize = this.reportPage ? this.reportPage.getBestFitSize () : null; - if (pageSize) { - w += pageSize.width; - h += pageSize.height; - } - - return { - width : w, - height : h - }; - }, - - /** - * @return True if the view has report content. False if the view is empty. - */ - hasContent : function() { - return this.reportPage != null; - }, - - hideFrame : function() { - if (this.reportPage) - this.reportPage.hideFrame(); - } -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Separator.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Separator.js deleted file mode 100644 index f22dddecb..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Separator.js +++ /dev/null @@ -1,71 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof(bobj.crv.Separator) == 'undefined') { - bobj.crv.Separator = {}; -} - -/** - * Separator Constructor. Simple horizontal separator. - * - */ -bobj.crv.newSeparator = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - kwArgs = UPDATE({ - id: bobj.uniqueId(), - marginLeft: 4, - marginRight: 4, - marginTop: 0, - marginBottom: 2 - }, kwArgs); - var o = newWidget(kwArgs.id); - - bobj.fillIn(o, kwArgs); - o.widgetType = 'Separator'; - - // Attach member functions - UPDATE(o, bobj.crv.Separator); - - return o; -}; - -bobj.crv.Separator.getHTML = function() { - var HTML = bobj.html; - var htmlStr = ''; - if (bobj.isBorderBoxModel()) { - htmlStr = HTML.IMG({ - id: this.id, - src: bobj.skinUri('sep.gif'), - style: { - 'height': 2 + 'px', - 'width':'100%', - 'margin-left': this.marginLeft + 'px', - 'margin-right': this.marginRight + 'px', - 'margin-top': this.marginTop + 'px', - 'margin-bottom': this.marginBottom + 'px' - }}); - } - else { - htmlStr = HTML.DIV({ - id : this.id, - style: { - 'height': 2 + 'px', - 'margin-left': this.marginLeft + 'px', - 'margin-right': this.marginRight + 'px', - 'margin-top': this.marginTop + 'px', - 'margin-bottom': this.marginBottom + 'px', - 'background-image': 'url(' + bobj.skinUri('sep.gif') + ')', - 'background-repeat': 'repeat-x', - 'overflow': 'hidden' - - - }}); - } - return htmlStr + bobj.crv.getInitHTML(this.widx); -}; - -/** - * @return Returns the outer height of the widget, including margins - */ -bobj.crv.Separator.getHeight = function() { - return this.layer.offsetHeight + this.marginTop + this.marginBottom; -}; \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/SharedWidgetHolder.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/SharedWidgetHolder.js deleted file mode 100644 index 92e2d4fc5..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/SharedWidgetHolder.js +++ /dev/null @@ -1,183 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof(bobj.crv.SharedWidgetHolder) == 'undefined') { - bobj.crv.SharedWidgetHolder = {}; - bobj.crv.SharedWidgetHolder._registry = {}; -} - -/** - * Constructor. SharedWidgetHolder is a placeholder for a widget. - * SharedWidgetHolder instances belong to groups, in which one managed - * widget will be shown in one placeholder at a time. When show(true) is called - * for any member of the group, the managed widget will be displayed in that - * member. - * - * @param id [String] DHTML id - * @param group [String] Group the new instance will belong to - * @param width [int | String] Width of the placeholder - * @param height [int | String] Height of the placeholder - * @param resizeWidget [bool] Resize to the placeholder's dimensions - */ -bobj.crv.newSharedWidgetHolder = function(kwArgs) { - var mb = MochiKit.Base; - var ms = MochiKit.Signal; - - kwArgs = mb.update({ - id: bobj.uniqueId(), - group: 'SharedWidgetHolder', - width: null, - height: null, - resizeWidget: true - }, kwArgs); - - var o = newWidget(kwArgs.id); - o.widgetType = 'SharedWidgetHolder'; - bobj.fillIn(o, kwArgs); - - o._setVisible = o.show; - o._resizeHolder = o.resize; - o._initHolder = o.init; - mb.update(o, bobj.crv.SharedWidgetHolder); - - o._register(); - - return o; -}; - -bobj.crv.SharedWidgetHolder.init = function() { - this._initHolder(); - var regInfo = this._regInfo; - if (regInfo.managedWidget && this === regInfo.visibleHolder) { - regInfo.managedWidget.init(); - this.resize(); - } -}; - -bobj.crv.SharedWidgetHolder.getHTML = function() { - var ISNUMBER = bobj.isNumber; - var ISSTRING = bobj.isString; - - var vis = this.isHoldingWidget() ? 'visible' : 'hidden'; - var innerHTML = this.isHoldingWidget() ? this._regInfo.managedWidget.getHTML() : ''; - - var style = {visibility: vis}; - - var width = this.width; - if (ISNUMBER(width)) { - width = width + 'px'; - } - if (ISSTRING(width)) { - style.width = width; - } - - var height = this.height; - if (ISNUMBER(height)) { - height = height + 'px'; - } - if (ISSTRING(height)) { - style.height = height; - } - - return bobj.html.DIV({id: this.id, style: style}, innerHTML); -}; - -/** - * Private. Register this instance in a group. - */ -bobj.crv.SharedWidgetHolder._register = function() { - var registry = bobj.crv.SharedWidgetHolder._registry; - var holderInfo = registry[this.group]; - - if (!holderInfo) { - holderInfo = { - managedWidget: null, - visibleHolder: this - }; - registry[this.group] = holderInfo; - } - - this._regInfo = holderInfo; -}; - -/** - * @return [bool] True if and only if this instance is currently holding a - * non-null managed widget. Only one member of a group can return - * true at any given time. - */ -bobj.crv.SharedWidgetHolder.isHoldingWidget = function() { - var regInfo = this._regInfo; - return ((regInfo.visibleHolder === this) && regInfo.managedWidget); -}; - -/** - * @return [Widget] The widget that is managed by the holder group that this - * instance belongs to. - */ -bobj.crv.SharedWidgetHolder.getManagedWidget = function() { - return this._regInfo.managedWidget; -}; - -/** - * Set the widget that is managed by the group that this isntance belongs to. - * The widget will be displayed in the currently visible member of the group. - * - * @param widget [Widget] The widget that should be managed. - */ -bobj.crv.SharedWidgetHolder.setManagedWidget = function(widget) { - var regInfo = this._regInfo; - var oldWidget = regInfo.managedWidget; - regInfo.managedWidget = widget; - - if (oldWidget && oldWidget.layer) { - MochiKit.DOM.removeElement(oldWidget.layer); - } - - if (!regInfo.visibleHolder) { - regInfo.visibleHolder = this; - } - - var holder = regInfo.visibleHolder; - - if (holder.layer && widget && widget.layer) { - holder.layer.appendChild(widget.layer); - holder.resize(); - } -}; - -/** - * Alias for setManagedWidget. Allows instantiation using bobj.crv.createWidget(); - */ -bobj.crv.SharedWidgetHolder.addChild = bobj.crv.SharedWidgetHolder.setManagedWidget; - -/** - * Show or hide the managed widget in this holder instance. - * - * @param show [bool] If true, the managed widget will be displayed in this - * instance. If false and this holder is currently showing - * the managed widget, the widget will be hidden. - */ -bobj.crv.SharedWidgetHolder.show = function(show) { - var regInfo = this._regInfo; - if (show && (regInfo.visibleHolder !== this) && regInfo.managedWidget) { - this.layer.appendChild(regInfo.managedWidget.layer); - regInfo.visibleHolder._setVisible(false); - regInfo.visibleHolder = this; - this.resize(); - } - this._setVisible(show); -}; - -/** - * Resize the holder instance. If resizeWidget property is true, the managed - * widget will be resized to the dimensions of the placeholder. - * - * @param w [width, optional] Width in pixels - * @param h [height, optional] Height in pixels - */ -bobj.crv.SharedWidgetHolder.resize = function(w, h) { - this._resizeHolder(w, h); - - if (this.resizeWidget && this.isHoldingWidget()) { - this._regInfo.managedWidget.resize(this.getWidth(), this.getHeight()); - } -}; \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/SignalDisposer.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/SignalDisposer.js deleted file mode 100644 index 1ee5f8ad4..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/SignalDisposer.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Disposes signals synchronously and asynchronously. - */ -if (typeof(bobj.crv.SignalDisposer) == 'undefined') { - bobj.crv.SignalDisposer = new function() { - var signals = []; //private variable - var timerID = null; //private variable - var CLEAN_SIGNALS_PER_TASK = 20; - var disconnect = MochiKit.Signal.disconnect; - - this.dispose = function(signal, sync) { - if(signal != null) { - if(sync) { - disconnect(signal); - } - else { - signals.push (signal); - if (timerID == null) - timerID = setInterval (bobj.bindFunctionToObject (cleanTask, this), 100); - } - } - }; - - cleanTask = function() { - var count = CLEAN_SIGNALS_PER_TASK; - while (signals.length > 0 && count > 0) { - disconnect (signals.pop ()); - count--; - } - - if (signals.length == 0 && timerID != null) { - clearInterval (timerID); - timerID = null; - } - } - }; -} - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/StackedPanel.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/StackedPanel.js deleted file mode 100644 index 0167fa0dc..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/StackedPanel.js +++ /dev/null @@ -1,160 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof(bobj.crv.StackedPanel) == 'undefined') { - bobj.crv.StackedPanel = {}; -} - -/** - * Constructor. - * - * @param id [String] DHTML id - * @param width [int] Width of the panel in pixels - * @param height [int] Height of the panel in pixels - */ -bobj.crv.newStackedPanel = function(kwArgs) { - var mb = MochiKit.Base; - var UPDATE = mb.update; - var BIND = mb.bind; - - kwArgs = UPDATE({ - id: bobj.uniqueId(), - width: null, - height: null - }, kwArgs); - - var o = newWidget(kwArgs.id); - o.widgetType = 'StackedPanel'; - bobj.fillIn(o, kwArgs); - - o._tabs = []; - - o._initWidget = o.init; - o._resizeWidget = o.resize; - UPDATE(o, bobj.crv.StackedPanel); - - - return o; -}; - -bobj.crv.StackedPanel = { - init : function() { - this._initWidget (); - - var tabs = this._tabs; - /* Tabs that were added after getHTML must be written now */ - var index = this._numTabsWritten; - while (index < tabs.length) { - append (this.layer, tabs[index].getHTML (), document); - index++; - } - - for ( var i = 0, len = tabs.length; i < len; ++i) { - tabs[i].init (); - } - }, - - setTabDisabled : function(dis) { - for ( var i = 0, len = this._tabs.length; i < len; i++) { - this._tabs[i].setTabDisabled (dis); - } - }, - - getHTML : function() { - var DIV = bobj.html.DIV; - - var layerStyle = {}; - - if (this.height) { - layerStyle.height = bobj.unitValue (this.height); - } - - if (this.width) { - layerStyle.width = bobj.unitValue (this.width); - } - - return DIV ( { - id : this.id, - style : layerStyle, - 'class' : 'stackedPanel', - tabIndex : "-1" - }, this._getTabsHTML ()); - }, - - _getTabsHTML : function() { - var tabsHTML = ''; - var tabs = this._tabs; - var tabsLen = tabs.length; - for ( var i = 0; i < tabsLen; ++i) { - tabsHTML += tabs[i].getHTML (); - } - this._numTabsWritten = tabsLen; - return tabsHTML; - }, - - /** - * Add a tab to the panel. Must be called before getHTML is called. - * - * @param tab - * [StackedTab] - */ - addTab : function(tab) { - if (tab) { - this._tabs.push (tab); - if (this.layer) { - append (this.layer, tab.getHTML ()); - tab.init (); - } - - if (this.layer) - tab.resize(this.layer.clientWidth); - - MochiKit.Signal.connect(tab, "StackedTabResized", this, '_onStackedTabResize'); - } - }, - - getNumTabs : function() { - return this._tabs.length; - }, - - getTab : function(index) { - return this._tabs[index]; - }, - - removeTab : function(index) { - if (index >= 0 && index < this._tabs.length) { - var tab = this._tabs[index]; - this._tabs.splice (index, 1); - delete _widgets[this._tabs.widx]; - if (tab.layer) { - tab.layer.parentNode.removeChild (tab.layer); - } - } - }, - - _onStackedTabResize: function () { - this.resize (this.getWidth()); - }, - - resize : function(w, h) { - /* Exclude margins for safari as it miscalculates left/top margins */ - var excludeMargins = !_saf; - bobj.setOuterSize(this.layer, w, h, excludeMargins); - var tabs = this._tabs; - var tabsLen = tabs.length; - if (tabsLen) { - /* Ensure that the vertical scrollbar never covers the content*/ - var tabWidth = this.layer.clientWidth; - - /* IE changes the value of clientWidth after resizing the first child... */ - tabs[0].resize(tabWidth); - if (tabWidth != this.layer.clientWidth) { - tabWidth = this.layer.clientWidth; - tabs[0].resize(tabWidth); - } - - for (var i = 1; i < tabsLen; ++i) { - tabs[i].resize(tabWidth); - } - } - } -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/StackedTab.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/StackedTab.js deleted file mode 100644 index 2d9d4d3a9..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/StackedTab.js +++ /dev/null @@ -1,230 +0,0 @@ - -/* -================================================================================ -StackedTab -================================================================================ -*/ -bobj.crv.newStackedTab = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - - kwArgs = UPDATE({ - id: bobj.uniqueId(), - label: '', - width: 300, - height: null, // null height means grow as big as necessary - openAdvCB: null, - name : '', - isDataFetching: false - }, kwArgs); - - var o = newWidget(kwArgs.id); - o.widgetType = 'StackedTab'; - bobj.fillIn(o, kwArgs); - - o._content = null; - - if(o.openAdvCB) { - o._advanceButton = newIconWidget( - o.id + '_advBtn', - bobj.crv.allInOne.uri, - o.openAdvCB, - null, //text - L_bobj_crv_paramsOpenAdvance.replace("%1", o.name),//tooltip, - 10, 10, 3, bobj.crv.allInOne.openParameterArrowDy + (_ie ? 2 : 3)); //width, height, dx, dy, disDx, disDy, cancelEventPropagation - bobj.crv.setAllClasses(o._advanceButton, 'arrow_button'); - o._advanceButton.margin = 0; - } - - o._initWidget = o.init; - o._resizeWidget = o.resize; - UPDATE(o, bobj.crv.StackedTab); - - return o; -}; - -bobj.crv.StackedTab = { - setTabDisabled : function(dis) { - if (this._content) - this._content.setTabDisabled (dis); - - if (this._advanceButton && this._advanceButton.layer) - bobj.disableTabbingKey (this._advanceButton.layer, dis); - - if (this._textCtn) - bobj.disableTabbingKey (this._textCtn, dis); - - if(this._dataFetchLayer) - bobj.disableTabbingKey (this._dataFetchLayer, dis); - }, - - init : function() { - var connect = MochiKit.Signal.connect; - var signal = MochiKit.Signal.signal; - var partial = MochiKit.Base.partial; - - this._initWidget (); - - if (this._content) { - this._content.init (); - } - - if (this._advanceButton) { - this._advanceButton.init (); - this._onAdvanceButtonClickOld = MochiKit.Base.bind(this._advanceButton.layer.onclick, this._advanceButton.layer); - this._advanceButton.layer.onclick = MochiKit.Base.bind(this.advButtonOnClick, this); - this._advanceButton.css.width = "14px"; - } - - this._dataFetchLayer = getLayer(this.id + "_df"); - this._labelCtn = getLayer (this.id + '_labelCtn'); - this._textCtn = getLayer (this.id + '_textCtn'); - this._contentCtn = getLayer (this.id + '_contentCtn'); - - if (this._advanceButton) { - var advButtonLayer = this._advanceButton.layer; - var bind = bobj.bindFunctionToObject; - connect (this.layer, 'onclick', bind(IconWidget_upCB, advButtonLayer)); - connect (this.layer, 'onmouseover', bind(IconWidget_realOverCB, advButtonLayer)); - connect (this.layer, 'onmouseout', bind(IconWidget_realOutCB, advButtonLayer)); - connect (this.layer, 'onmousedown', bind(IconWidget_downCB, advButtonLayer)); - - } - - connect(this._content, 'ParameterUIResized', partial (signal, this, "StackedTabResized")); - }, - - getHTML : function() { - var h = bobj.html; - var DIV = h.DIV; - var IMG = h.IMG; - - var stackedTabAtt = { - 'class' : 'stackedTab', - cellpadding : "0", - id : this.id, - style : { - cursor : this._advanceButton ? _hand : 'default' - } - }; - - var labelCtnAtt = { - id: this.id + '_labelCtn', - cellpadding : "0", - 'class': 'crvnoselect stackedTabTitle' - }; - - var contentHTML = this._content ? this._content.getHTML() : ''; - var advButtonHTML = this._advanceButton ? h.TD ({width : '17px'}, this._advanceButton.getHTML()) : ''; /* 14 for arrow height + 3px right margin */ - var dataFetchHTML = ""; - - if (this.isDataFetching) { - var URL_TAG = "url(%1);" - dataFetchHTML = h.TD ({width : '20px'}, IMG ( { - src : _skin + '../transp.gif', - title : L_bobj_crv_ParamsDataTip, - tabindex: 0, - id: this.id + "_df", - style : { - width : "16px", - height : "16px", - "background-image" : URL_TAG.replace("%1", bobj.crv.allInOne.uri), - "background-position" : "0px " + (-bobj.crv.allInOne.paramDataFetchingDy) + "px", - "margin-right" : '4px', - 'vertical-align' : 'middle' - } - })); - } - - var html = DIV (stackedTabAtt, DIV (labelCtnAtt, h.TABLE ( { - cellpadding : "0", - width : '100%', - height : '20px', - style : { - 'table-layout' : 'fixed' - } - }, h.TD ({style : {"vertical-align" : "top", "overflow" : "hidden"}}, DIV ( { - 'class' :'stackedTabText', - id :this.id + '_textCtn', - title :this.label, - 'tabIndex' :0, - style : { - 'font-weight' : 'bold', - 'color' : '#4F5C72' - } - }, convStr (this.label)) - ), dataFetchHTML, advButtonHTML) - ), DIV ( { - id :this.id + '_contentCtn', - 'class' :'stackedTabContentCtn' - }, contentHTML)); - - return html; - }, - - setDirty : function(isDirty) { - if(this._textCtn) { - this._textCtn.style.fontStyle = isDirty ? "italic" : ""; - this._textCtn.title = isDirty ? this.label + " " + L_bobj_crv_ParamsDirtyTip : this.label; - } - - if(this._labelCtn) { - var titleClassName = isDirty ? "stackedTabTitleDirty" : "stackedTabTitle"; - - // IE 7 uses "className" - this._labelCtn.setAttribute("className", titleClassName); - - // IE 8, FireFox, and Safari use "class" - this._labelCtn.setAttribute("class", titleClassName); - } - }, - - resize : function(w) { - w = w - 4; // TODO exclude margins properly - if(this._labelCtn) { - // Exclude margins for safari as it miscalculates left/top margins - var excludeMargins = !_saf; - bobj.setOuterSize(this._labelCtn, w , null, excludeMargins); - } - if (this._content) { - this._content.resize(w -2); - } - bobj.setOuterSize(this.layer, w); - }, - - /** - * Set the widget that is displayed below the tab. Must be called before getHTML. - * - * @param widget [Widget] Widget that appears below the tab when the tab is expanded - */ - setContent : function(widget) { - this._content = widget; - }, - - /** - * Get the widget that is displayed below the tab. - * - * @return [Widget] Widget that appears below the tab - */ - getContent : function() { - return this._content; - }, - - /** - * Focus the advanced button if available - */ - focusAdvButton : function() { - if (this._advanceButton && this._advanceButton.focus) - this._advanceButton.focus(); - }, - - /** - * Override default onclick for the advanced button to cancel propagating the event. - */ - advButtonOnClick : function(e) { - if (this._onAdvanceButtonClickOld) - { - this._onAdvanceButtonClickOld(e); - eventCancelBubble(e); - } - } -}; \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/StateManager.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/StateManager.js deleted file mode 100644 index b9b354909..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/StateManager.js +++ /dev/null @@ -1,86 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/** - * Constructor. StateManager holds state for multiple viewers. - */ -bobj.crv.StateManager = function() { - this._state = {}; -}; - -bobj.crv.StateManager.prototype = { - /** - * Set the state object for a report view - * - * @param viewerName [String] - * @param stateName [String] The name of the report view - * @param viewState [Object] The state associated with the report view - */ - setViewState: function(viewerName, stateName, viewState) { - var state = this._state; - - if (!state[viewerName]) { - state[viewerName] = {}; - } - - state[viewerName][stateName] = viewState; - }, - - /** - * Get the state object for a report view - * - * @param viewerName [String] - * @param stateName [String] The name of the report view - * - * @return [Object] Returns the state object for the report view or null - * if no object is associated with (viewerName, stateName) - */ - getViewState: function(viewerName, stateName) { - var state = this._state; - - if (!state[viewerName]) { - return null; - } - return state[viewerName][stateName]; - }, - - /** - * Set the compound state object for a viewer components. This object - * should contain a state object for every report view displayed by the - * viewer. - * - * @param viewerName [String] - * @param state [Object] All report view states for the viewer - */ - setComponentState: function(viewerName, state) { - this._state[viewerName] = state; - }, - - /** - * Get the compound state object for a viewer component. This object - * should contain a state object for every report view displayed by the - * viewer. - * - * @param viewerName [String] - * - * @return [Object] Returns all report view states for the viewer - */ - getComponentState: function(viewerName) { - return this._state[viewerName]; - }, - - /** - * Get the state for all viewer components on the page. - * - * @return [Object] Returns the state of all viewers on the page, mapped - * by the id of the viewer widgets. - */ - getCompositeState: function() { - return this._state; - } -}; - -// Create a single StateManager for all viewers in the page to share -if (typeof bobj.crv.viewerState == 'undefined') { - bobj.crv.stateManager = new bobj.crv.StateManager(); -} - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Statusbar.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Statusbar.js deleted file mode 100644 index 4a9985838..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Statusbar.js +++ /dev/null @@ -1,257 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/** - * Statusbar widget constructor ({id: String}) - */ -bobj.crv.newStatusbar = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - kwArgs = UPDATE({ - id: bobj.uniqueId(), - visualStyle : { - className : null, - backgroundColor : null, - borderWidth : null, - borderStyle : null, - borderColor : null, - fontFamily : null, - fontWeight : null, - textDecoration : null, - color : null, - width : null, - height : null, - fontStyle : null, - fontSize : null - } - }, kwArgs); - - var o = newPaletteContainerWidget(kwArgs.id); - - o.margin = 0; - bobj.fillIn(o, kwArgs); - o._rightZoneWgts = []; - o.widgetType = 'Statusbar'; - - // Attach member functions (since we can't use prototypes) - o.initOld = o.init; - UPDATE(o, bobj.crv.Statusbar); - - o.palette = newPaletteWidget(o.id + "_palette"); - o.palette.isLeftTableFixed = true; - o.add(o.palette); - - return o; -}; - -bobj.crv.Statusbar = { - /** - * Overrides parent - */ - init : function() { - this.initOld (); - bobj.setVisualStyle (this.layer, this.visualStyle); - this.palette.init (); - }, - - /** - * Overrides parent - */ - beginHTML : function() { - return bobj.html.openTag ('div', { - id : this.id, - 'class' : 'dialogzone', - style : { - width : '100%', - overflow : 'hidden', - margin : this.margin + 'px', - padding : '2px 0px', - position : 'absolute' - } - }); - }, - - /** - * Overrides parent - */ - getHTML : function() { - this._addRightZone (); - return (this.beginHTML () + this.palette.getHTML () + this.endHTML ()); - }, - - /** - * Private. Adds right-aligned widgets to the right zone of the palette - */ - _addRightZone : function() { - this.palette.beginRightZone (); - - var w = null; - while (w = this._rightZoneWgts.pop ()) { - this.palette.add (w); - } - - delete this._rightZoneWgts; - }, - - /** - * Overrides parent - */ - write : function() { - this._addRightZone (); - this.begin (); - this.palette.write (); - this.end (); - document.write (bobj.crv.getInitHTML (this.widx)); - }, - - /** - * Add child widgets to the statusbar - left or right - */ - addChild : function(widget) { - switch (widget.widgetType) { - case 'StatusbarBreadcrumb': - this.breadcrumb = widget; - break; - case 'StatusbarVersionIndicator': - this.versionIndicator = widget; - break; - } - - /* Delay adding right-aligned widgets due to the semantics of the palette */ - if (widget.layoutAlign == 'right') { - this._rightZoneWgts.push (widget); - } else { - this.palette.add (widget); - } - }, - - /** - * Update child widgets - if they are exists in the statusbar - */ - update : function(update) { - if (update) { - for ( var childNum in update.children) { - var child = update.children[childNum]; - if (child) { - switch (child.cons) { - case "bobj.crv.newStatusbarBreadcrumb": - if (this.breadcrumb) { - this.breadcrumb.update (child.args); - } - break; - case "bobj.crv.newStatusbarVersionIndicator": - if (this.versionIndicator) { - this.versionIndicator.update (child.args); - } - break; - } - } - } - } - }, - - doLayout : function() { - if (this.breadcrumb) { - this.breadcrumb._doLayout(); - } - } -}; - -/** - * StatusbarBreadcrumb widget constructor ({values: String[]}) - */ -bobj.crv.newStatusbarBreadcrumb = function(kwArgs) { - var o = newWidget(bobj.uniqueId()); - - o.widgetType = 'StatusbarBreadcrumb'; - o.values = kwArgs.values; - o.layoutAlign = 'left'; - - o._separatorImage = img(bobj.crvUri('images/breadcrumbSep.gif'), 14, 9); - - MochiKit.Base.update(o, bobj.crv.StatusbarBreadcrumb); - return o; -}; - -bobj.crv.StatusbarBreadcrumb = { - /** - * Update the breadcrumbs ({values: String[]}) - */ - update : function(kwArgs) { - this.values = kwArgs.values; - this.layer.innerHTML = this._render (); - }, - - /** - * Overrides parent - */ - getHTML : function() { - return bobj.html.DIV ( { - 'class' : 'statusbar_breadcrumb' - }, bobj.html.DIV ( { - id : this.id - }, this._render ())); - }, - - /** - * Render the breadcrumbs as table cells separated by an image - called by getHTML and update - */ - _render : function() { - var html = ''; - if (this.values && this.values.length > 0) { - var cells = ''; - for (i = 0; i < this.values.length; i++) { - if (i > 0) { /* insert a separate image before values - except first one */ - cells += bobj.html.TD (null, this._separatorImage); - } - cells += bobj.html.TD ( { - style : { - 'white-space' : 'nowrap' - } - }, this.values[i]); - } - - html = bobj.html.TABLE ( { - 'class' : 'iconText', - cellspacing : '0', - cellpadding : '0' - }, bobj.html.TR (null, cells)); - } - return html; - }, - - _doLayout : function() { - var needsRightAlign = (this.layer.parentNode.scrollWidth > this.layer.parentNode.offsetWidth) || (this.layer.offsetLeft < 0); - if (needsRightAlign) { - this.layer.style.position = "absolute"; - this.layer.style.top = "0px"; - this.layer.style.right = "0px"; - } - else { - this.layer.style.position = ""; - } - } -}; - - -/** - * StatusbarVersionIndicator widget constructor ({value: String}) - */ -bobj.crv.newStatusbarVersionIndicator = function(kwArgs) { - var text = (kwArgs && kwArgs.value) ? L_bobj_crv_LastRefreshed + ": " + kwArgs.value : ' '; - var o = NewLabelWidget(bobj.uniqueId(), text, true); - - o.widgetType = 'StatusbarVersionIndicator'; - o.layoutAlign = 'right'; - - MochiKit.Base.update(o, bobj.crv.StatusbarVersionIndicator); - return o; -}; - -bobj.crv.StatusbarVersionIndicator = { - /** - * Update the last refreshed value - */ - update : function(kwArgs) { - var text = (kwArgs && kwArgs.value) ? L_bobj_crv_LastRefreshed + ": " + kwArgs.value : ' '; - this.layer.innerHTML = text; - } -}; \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/TextCombo.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/TextCombo.js deleted file mode 100644 index 2617de6cf..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/TextCombo.js +++ /dev/null @@ -1,377 +0,0 @@ - -/* -================================================================================ -TextCombo - -Internal class. Editable combo box that renders correctly in a Parameter UI -================================================================================ -*/ - -/** - * Constructor. TextCombo extends TextComboWidget from the dhtmllib. - */ -bobj.crv.params.newTextCombo = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - var PARAMS = bobj.crv.params; - kwArgs = UPDATE({ - id: bobj.uniqueId(), - width: '100%', - maxChar: null, - tooltip: null, - disabled: false, - editable: false, - changeCB: null, - enterCB: null, - keyUpCB: null, - isTextItalic: false - }, kwArgs); - - var o = newTextComboWidget( - kwArgs.id, - kwArgs.maxChar, - kwArgs.tooltip, - null, // width - kwArgs.changeCB, - null, // check CB - null, // beforeShowCB - null);// formName - - o.widgetType = 'TextCombo'; - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - o.width = kwArgs.width; - - // Update instance with member functions - o.init_TextCombo = o.init; - UPDATE(o, PARAMS.TextCombo); - - o._createTextField(); // Override parent's text property - o._createArrow(); - o.arrow.dy += 2; // Center the arrow - o.arrow.disDy += 2; - - return o; -}; - -bobj.crv.params.TextCombo = { - setTextItalic : function(isTextItalic) { - if (this.text) { - this.text.setTextItalic (isTextItalic); - } - }, - - setForeColor : function(color) { - if (this.text) - this.text.setForeColor (color); - }, - - setTooltip : function(tooltip) { - if (this.text) { - this.text.setTooltip (tooltip); - } - }, - - setTabDisabled : function(dis) { - if (this.text) - this.text.setTabDisabled (dis); - - if (this.arrow) - bobj.disableTabbingKey (this.arrow.layer, dis); - }, - - setMenu : function(menu) { - this.menu = menu; - }, - - init : function() { - this.init_TextCombo (); - this.arrowContainer = getLayer (this.id + '_arrowCtn'); - - if (this.arrow) { - this.arrow.layer.onfocus = IconWidget_realOverCB; - this.arrow.layer.onblur = IconWidget_realOutCB; - } - - this.text.setValue (this.cleanValue); - }, - - toggleMenu : function() { - var menu = this.menu; - menu.parIcon = this; - var toShow = !menu.isShown(); - menu.show (toShow); - if (toShow) - menu.valueSelect (this.text.getValue () + ''); - }, - - _createArrow : function() { - var tooltip = _openMenu.replace("{0}", this.tooltip? this.tooltip: ''); - this.arrow = newIconWidget(this.id + "arrow_", - bobj.skinUri("menus.gif"), - bobj.bindFunctionToObject(this.toggleMenu,this), - null, - tooltip, - 7, /* w */ - 12, /* h */ - 0, /* dx */ - 83, /* dy */ - 0, /* disDx */ - 99); /* disDy */ - - this.arrow.setClasses("iconnocheck", "combobtnhover", "combobtnhover", "combobtnhover"); - this.arrow.par = this; - }, - - _createTextField : function() { - this.text = bobj.crv.params.newTextField ( { - id : this.id + '_text', - cleanValue : this.cleanValue, - width : '100%', - maxChar : null, - tooltip : this.tooltip, - disabled : false, - editable : this.editable, - password : false, - focusCB : this.focusCB, - blurCB : this.blurCB, - keyUpCB : bobj.bindFunctionToObject (this._onKeyUp, this), - enterCB : this.enterCB, - foreColor : this.foreColor, - isTextItalic : this.isTextItalic - }); - }, - - getHTML : function() { - var h = bobj.html; - - var arrowClassName = 'iactTextComboArrow'; - var arrowStyle = {}; - arrowStyle.right = "0px"; - - if (MochiKit.Base.isIE ()) { - arrowStyle.height = "18px"; - - } else { - arrowStyle.height = "16px"; - } - - var html = h.DIV ( { - id : this.id, - style : { - width : "100%", - position : "relative" - } - }, h.DIV ( { - style : { - position : "relative" - }, - 'class' : 'iactTextComboTextField' - }, this.text.getHTML ()), h.DIV ( { - 'class' : arrowClassName, - id : this.id + '_arrowCtn', - style : arrowStyle - }, this.arrow.getHTML ())); - - return html; - }, - - /** - * Resets TextCombo. sets original value and hides arrow icon - */ - reset : function(value) { - this.text.reset (value); - }, - - /** - * Set the content of the text box and update the menu selection - * - * @param text [String] - */ - setValue : function(text) { - this.text.setValue(text); - }, - - setCleanValue : function(text) { - this.text.setCleanValue (text); - }, - - /** - * Private. Overrides parent. - */ - selectItem : function(item) { - if (item) { - this.val = item.value; - this.text.setValue (item.value, true); /* keep the previous clean value */ - this.menu.select (item.index); - } - }, - - /** - * Get the content on the text box - * - * @return [String] - */ - getValue : function() { - return this.text.getValue (); - }, - - _onKeyUp : function(e) { - var text = this.text.getValue (); - - if (this.keyUpCB) - this.keyUpCB (e); - } -}; - - -/** - * ScrollMenuWidget - */ - -bobj.crv.params.newScrollMenuWidget = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id : bobj.uniqueId(), - originalValues: [], - hasProperWidth: false, - hasValueList: false, - maxVisibleItems: 10, - openAdvDialogCB: null, - maxNumParameterDefaultValues: null - },kwArgs); - - var visibleLines = (kwArgs.originalValues.length >= kwArgs.maxVisibleItems) ? kwArgs.maxVisibleItems : kwArgs.originalValues.length; - if (visibleLines === 1) { - visibleLines++; - } - - var o = newScrollMenuWidget( - "menu_"+ kwArgs.id, //id - bobj.crv.params.ScrollMenuWidget.onChange, //changeCB - false, //multi - null, - visibleLines, //lines - null, //tooltip - null,//dblClickCB - null, //keyUpCB - false, //showLabel - '', //label - '',//convBlanks - null, //beforeShowCB - null); //menuClickCB - - o.oldShow = o.show; - MochiKit.Base.update(o,kwArgs, bobj.crv.params.ScrollMenuWidget); - - return o; -}; - -bobj.crv.params.ScrollMenuWidget = { - onChange : function() { - var o = this.parIcon; - var item = this.getSelection (); - - if (item) { - if (this.maxNumParameterDefaultValues && item.index == this.maxNumParameterDefaultValues) { - if (this.openAdvDialogCB) { - this.openAdvDialogCB (); - this.clearSelection (); - } - } else { - o.val = item.value; - o.text.setValue (item.value); - } - } else { - o.val = null; - o.text.setValue (""); - } - - if (o.changeCB) { - o.changeCB (); - } - }, - - getPosition : function() { - if (this.parIcon === null) { - return; - } - - var layer = this.parIcon.layer; - var getDimensions = MochiKit.Style.getElementDimensions; - var position = getPosScrolled (layer); - var xPos = position.x + 2; - var yPos = position.y + getDimensions (layer).h + 3; - if (MochiKit.Base.isIE ()) { - xPos -= 1; - if (bobj.isQuirksMode ()) { - yPos -= 2; - } - } - - return { - x : xPos, - y : yPos - }; - - }, - - setProperWidth : function() { - if (this.hasProperWidth === false) { - this.css.display = "block"; - this.orginalWidth = this.layer.offsetWidth; - this.css.display = "none"; - this.hasProperWidth = true; - } - }, - - setValueList : function() { - if (this.hasValueList === false) { - this.hasValueList = true; - var origValues = this.originalValues; - for ( var i = 0, len = origValues.length; i < len; i++) { - this.add (origValues[i], origValues[i], false); - } - } - }, - - setFocus : function(focus) { - if (focus) { - var focusCB = bobj.bindFunctionToObject (this.list.focus, this.list); - setTimeout (focusCB, 300); - } else { - if (this.parIcon.selected === true) { - this.parIcon.arrow.focus (); - } - } - }, - - show : function(show) { - if (this.layer === null) - this.justInTimeInit (); - - if (this.hasValueList === false) - this.setValueList (); - - if (this.parIcon === null) - return; - - if (this.hasProperWidth === false) - this.setProperWidth (); - - if (this.parIcon && this.parIcon.layer) { - var layer = this.parIcon.layer; - if (layer.clientWidth > this.orginalWidth) { - this.css.width = layer.clientWidth + "px"; - this.list.css.width = layer.clientWidth + "px"; - } else { - this.css.width = this.orginalWidth + "px"; - this.list.css.width = this.orginalWidth + "px"; - } - } - - var pos = this.getPosition (); - this.oldShow (show, pos.x, pos.y); - - this.setFocus (show); - } -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/TextField.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/TextField.js deleted file mode 100644 index bfe95499c..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/TextField.js +++ /dev/null @@ -1,151 +0,0 @@ -/* - * ================================================================================ - * TextField - * - * Internal class. Text box that renders correctly in a Parameter UI - * ================================================================================ - */ - -/** - * Constructor. TextField extends TextFieldWidget from the dhtmllib. - */ -bobj.crv.params.newTextField = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - cleanValue: '', - width: '100%', - maxChar: null, - tooltip: null, - disabled: false, - editable: true, - password: false, - focusCB: null, - blurCB: null, - changeCB: null, - keyUpCB: null, - enterCB: null, - foreColor : 'black', - isTextItalic : false, - canOpenAdvDialog : false - }, kwArgs); - - var o = newTextFieldWidget( - kwArgs.id, - kwArgs.changeCB, - kwArgs.maxChar, - kwArgs.keyUpCB, - kwArgs.enterCB, - true, //nomargin - kwArgs.tooltip, - null, //width - kwArgs.focusCB, - kwArgs.blurCB); - - o.widgetType = 'TextField'; - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - o.disabled = kwArgs.disabled; - o.width = kwArgs.width; - - // Update instance with member functions - MochiKit.Base.update(o, bobj.crv.params.TextField); - - if (kwArgs.cleanValue) { - o.setValue(kwArgs.cleanValue); - } - - return o; -}; - -bobj.crv.params.TextField = { - setForeColor : function(color) { - this.foreColor = color; - if (this.css) - this.css.color = color; - }, - - setTextItalic : function(isTextItalic) { - this.isTextItalic = isTextItalic; - if (this.css) - this.css.fontStyle = isTextItalic ? 'italic' : ''; - }, - - setTabDisabled : function(dis) { - bobj.disableTabbingKey (this.layer, dis); - }, - - eraseHelpTxt: MochiKit.Base.noop, - - getHTML : function() { - var style = { - width : bobj.unitValue (this.width) - }; - - var isIE = MochiKit.Base.isIE (); - var className = 'iactTextField'; - - var attributes = { - type : this.password ? 'password' : 'text', - name : this.id, - id : this.id, - maxLength : this.maxChar, - style : style, - 'class' : className, - oncontextmenu : "event.cancelBubble=true;return true", - onfocus : "TextFieldWidget_focus(this)", - onblur : "TextFieldWidget_blur(this)", - onchange : "TextFieldWidget_changeCB(event, this)", - onkeydown : "return TextFieldWidget_keyDownCB(event, this);", - onkeyup : "return TextFieldWidget_keyUpCB(event, this);", - onkeypress : "return TextFieldWidget_keyPressCB(event, this);", - ondragstart : "event.cancelBubble=true; return true;", - onselectstart : "event.cancelBubble=true; return true;" - }; - - if (this.disabled) { - attributes.disabled = "disabled"; - } - - if (this.isTextItalic) { - style["font-style"] = "italic"; - } - - style.color = this.foreColor; - - if (!this.editable) { - attributes.readonly = "readonly"; - - if (this.canOpenAdvDialog) { - style.cursor = "pointer"; - } - else { - style.cursor = "default"; - } - } - - if (this.tooltip) { - attributes.title = this.tooltip.replace(/"/g, """); - } - - return bobj.html.INPUT (attributes); - }, - - /** - * Resets textField object. Sets clean value, current value - */ - reset : function(value) { - this.value = value; - this.cleanValue = value; - this.setValue (value); - }, - - setValue : function(value) { - TextFieldWidget_setValue.call (this, value); - }, - - setCleanValue : function(value) { - this.cleanValue = value; - } -}; - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ToolPanel.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ToolPanel.js deleted file mode 100644 index 097cc6f26..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ToolPanel.js +++ /dev/null @@ -1,295 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -bobj.crv.ToolPanelType = { //values must match server's expectations - None: 'None', - GroupTree : 'GroupTree', - ParameterPanel: 'ParameterPanel' -}; - -bobj.crv.ToolPanelTypeDetails = { - None : { - title : null, - img : null, - alt : null - }, - GroupTree : { - title : L_bobj_crv_GroupTree, - img : { uri: bobj.crv.allInOne.uri, dx: 0, dy: bobj.crv.allInOne.groupTreeToggleDy }, - alt : L_bobj_crv_GroupTree - }, - ParameterPanel : { - title : L_bobj_crv_ParamPanel, - img : { uri: bobj.crv.allInOne.uri, dx: 0, dy: bobj.crv.allInOne.paramPanelToggleDy }, - alt : L_bobj_crv_ParamPanel - } -}; - -/** - * ToolPanel constructor - * - * @param kwArgs.id [String] DOM node id - * @param kwArgs.width [String] Width - * @param kwArgs.height [String] Height - */ -bobj.crv.newToolPanel = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId() + "_toolPanel", - width: '300px', - height: '100%', - initialViewType: bobj.crv.ToolPanelType.None - }, kwArgs); - - - var o = newWidget(kwArgs.id); - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - - o.widgetType = 'ToolPanel'; - - o._children = []; - o._selectedChild = null; - o._groupTree = null; - o._paramPanel = null; - - // Update instance with member functions - o.initOld = o.init; - o.resizeOld = o.resize; - MochiKit.Base.update(o, bobj.crv.ToolPanel); - - o.needLeftBorder = false; - - return o; -}; - -bobj.crv.ToolPanel = { - hasGroupTree : function() { - return this._groupTree != null; - }, - - /** - * Adds a child widget as a view. If the child has an isSelected attribute - * that evaluates as true, it will be the selected (active) view. - * - * This function must be called before getHTML() is called. - * - * @param widget [Widget] Child view widget - */ - addChild : function(widget) { - if (!widget) { - return; - } - - var connect = MochiKit.Signal.connect; - var partial = MochiKit.Base.partial; - var signal = MochiKit.Signal.signal; - var Type = bobj.crv.ToolPanelType; - - if (widget.widgetType == 'GroupTree') { - this._groupTree = widget; - - MochiKit.Iter.forEach ( [ 'grpDrilldown', 'grpNodeRetrieveChildren', 'grpNodeCollapse', 'grpNodeExpand' ], function(sigName) { - connect (this._groupTree, sigName, partial (signal, this, sigName)); - }, this); - - if (this.initialViewType == Type.GroupTree) { - this._selectedChild = widget; - } - } else if (widget.widgetType == 'ParameterPanel') { - this._paramPanel = widget; - connect (this._paramPanel, 'resetParamPanel', partial (signal, this, 'resetParamPanel')); - if (this.initialViewType == Type.ParameterPanel) { - this._selectedChild = widget; - } - } - - this._children.push (widget); - }, - - hasParameterPanel : function () { - return this._paramPanel != null; - }, - - getParameterPanel : function() { - return this._paramPanel; - }, - - /** - * This method must be called after viewer has been initialized. Adds new child to toolpanel. - */ - delayedAddChild : function(widget) { - this.addChild (widget); - - var display = widget === this._selectedChild ? '' : 'none'; - append2 (this.layer, bobj.html.DIV ( { - style : { - display : display - } - }, widget.getHTML ())); - widget.init (); - }, - - /* - * The caller is responsible for calling doLayout after making a call to setView. calling doLayout is very expensive and want to avoid it if - * possible. - */ - setView : function(panelType) { - var prevSelectedChild = this._selectedChild; - this.updateSelectedChild (panelType); - var nextSelectedChild = this._selectedChild; - - if(prevSelectedChild != nextSelectedChild) { - if (prevSelectedChild) { - var container = bobj.getContainer (prevSelectedChild); - if (container) { - container.style.display = 'none'; - } - } - - if(nextSelectedChild) { - var container = bobj.getContainer (nextSelectedChild); - if (container) { - bobj.displayElementWithAnimation(container); - } - } - } - }, - - updateSelectedChild : function (panelType) { - var Type = bobj.crv.ToolPanelType; - switch(panelType) { - case Type.GroupTree: - this._selectedChild = this._groupTree; - break; - case Type.ParameterPanel: - this._selectedChild = this._paramPanel; - break; - default: - this._selectedChild = null; - } - }, - - getHTML : function() { - var h = bobj.html; - - var content = ''; - var children = this._children; - for ( var i = 0, len = children.length; i < len; ++i) { - var child = children[i]; - var display = child === this._selectedChild ? '' : 'none'; - content += h.DIV ( { - style : { - display : display - } - }, child.getHTML ()); - } - - var isDisplayed = (bobj.crv.ToolPanelType.None !== this.initialViewType); - var toolPanelClass = 'toolPanel'; - if (this.needLeftBorder) - toolPanelClass += ' leftBorder'; - - - var layerAtt = { - id : this.id, - 'class' : toolPanelClass, - style : { - position : 'absolute', - margin : '0', - width : this.width, - height : this.height, - overflow : 'hidden', - display : isDisplayed ? '' : 'none' - } - }; - - var html = h.DIV (layerAtt, content); - - return html; - }, - - init : function() { - this.initOld (); - if (this._groupTree) - this._groupTree.init (); - - if (this._paramPanel) - this._paramPanel.init (); - }, - - update : function(update) { - if (update && update.cons == "bobj.crv.newToolPanel") { - for ( var childVar in update.children) { - var child = update.children[childVar]; - if (child) { - switch (child.cons) { - case "bobj.crv.newGroupTree": - /* if there is a group tree, update it */ - if (this._groupTree) { - this._groupTree.update (child); - } - /* else create and add one */ - else { - this.delayedAddChild (bobj.crv.createWidget (child)); - } - break; - case "bobj.crv.params.newParameterPanel": - if (this._paramPanel) { - this._paramPanel.update (child); - } - else { - this.delayedAddChild (bobj.crv.createWidget (child)); - } - break; - } - } - } - - this.initialViewType = update.args.initialViewType; - this.setView (this.initialViewType); - this.css.width = update.args.width; - } - }, - - getBestFitHeight : function () { - var height = 0; - if(this._selectedChild != null) - height = this._selectedChild.getBestFitHeight(); - - return height; - }, - - hasPercentWidth : function () { - return (this.width != null) && (this.width.length > 0) && (this.width.charAt(this.width.length - 1) == '%'); - }, - - getPercentWidth : function () { - return parseInt(this.width) / 100; - }, - - _doLayout : function() { - var innerWidth = this.layer.clientWidth; - var contentHeight = this.layer.clientHeight; - - if (this._selectedChild) { - this._selectedChild.setDisplay (true); - this._selectedChild.resize (innerWidth, contentHeight); - } - }, - - resize : function(w, h) { - bobj.setOuterSize (this.layer, w, h); - this._doLayout (); - - var width = _ie && _isQuirksMode ? this.layer.offsetWidth : this.layer.clientWidth; - var height = _ie && _isQuirksMode ? this.layer.offsetWidth : this.layer.clientWidth; - MochiKit.Signal.signal (this, 'resizeToolPanel', width, height); - - // do not have a percent width if we have resized the tool panel - this.width = width; - }, - - addLeftBorder : function() { - this.needLeftBorder = true; - } -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Toolbar.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Toolbar.js deleted file mode 100644 index bc6370fd5..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Toolbar.js +++ /dev/null @@ -1,1213 +0,0 @@ -/* - * set default, depressed and hover behaviours of a widget using classes - */ -bobj.crv.setAllClasses = function (widget, prefix) -{ - if (widget && widget.setClasses) - { - if (prefix) - widget.setClasses(prefix + '_default', prefix + '_depressed', prefix + '_hover', prefix + '_depressed'); - else - widget.setClasses(null, null, null, null); - } -}; - -/** - * Toolbar Constructor - */ -bobj.crv.newToolbar = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - kwArgs = UPDATE({ - id: bobj.uniqueId(), - visualStyle : { - className : null, - backgroundColor : null, - borderWidth : null, - borderStyle : null, - borderColor : null, - fontFamily : null, - fontWeight : null, - textDecoration : null, - color : null, - width : null, - height : null, - fontStyle : null, - fontSize : null - } - - }, kwArgs); - - var o = newPaletteContainerWidget(kwArgs.id); - - o.margin = 0; - bobj.fillIn(o, kwArgs); - o._rightZoneWgts = []; - o.widgetType = 'Toolbar'; - - // Attach member functions (since we can't use prototypes) - o.initOld = o.init; - UPDATE(o, bobj.crv.Toolbar); - - o.palette = newPaletteWidget(o.id + "_palette"); - o.add(o.palette); - return o; -}; - -bobj.crv.Toolbar = { - - /** - * Adds a widget to the toolbar and attaches callbacks to known types. - * - * @param widget - * [Widget] The control to be displayed in the toolbar. - */ - addChild : function(widget) { - if(!widget) - return; - - var SIGNAL = MochiKit.Signal.signal; - var PARTIAL = MochiKit.Base.partial; - var BIND = MochiKit.Base.bind; - - /* Connect callbacks that broadcast events as signals */ - switch (widget.widgetType) { - case 'ToolbarMenu': - this.menu = widget; - if (widget.exportMenuItem) - widget.exportMenuItem.cb = PARTIAL (SIGNAL, this, 'export'); - if (widget.printMenuItem) - widget.printMenuItem.cb = PARTIAL (SIGNAL, this, 'print'); - break; - case 'ToolbarButtonGroup': - this.group = widget; - if (widget.printButton) - widget.printButton.clickCB = PARTIAL (SIGNAL, this, 'print', widget.printButton.closeCB); - if (widget.exportButton) - widget.exportButton.clickCB = PARTIAL (SIGNAL, this, 'export', widget.exportButton.closeCB); - if (widget.refreshButton) - widget.refreshButton.clickCB = PARTIAL (SIGNAL, this, 'refresh'); - if (widget.drillUpButton) - widget.drillUpButton.clickCB = PARTIAL (SIGNAL, this, 'drillUp'); - break; - case 'PrevPageButton': - this.prevPageButton = widget; - widget.clickCB = PARTIAL (SIGNAL, this, 'prevPage'); - break; - case 'NextPageButton': - this.nextPageButton = widget; - widget.clickCB = PARTIAL (SIGNAL, this, 'nextPage'); - break; - case 'ZoomControl': - this.zoomControl = widget; - widget.zoomCB = PARTIAL (SIGNAL, this, 'zoom'); - break; - case 'SelectPageControl': - this.selectPageControl = widget; - widget.selectPageCB = PARTIAL (SIGNAL, this, 'selectPage'); - if (widget.firstPage && widget.lastPage) { - widget.firstPage.cb = PARTIAL (SIGNAL, this, 'firstPage'); - widget.lastPage.cb = PARTIAL (SIGNAL, this, 'lastPage'); - } - break; - case 'SearchTextControl': - this.searchTextControl = widget; - widget.searchTextCB = PARTIAL (SIGNAL, this, 'search'); - break; - default: - break; - } - - /* Delay adding right-aligned widgets due to the semantics of the palette*/ - if (widget.layoutAlign == 'right') { - this._rightZoneWgts.push (widget); - } else { - this.palette.add (widget); - } - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getSearchTextControl : function () { - return this.searchTextControl; - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getZoomControl : function () { - return this.zoomControl; - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getSelectPageControl : function () { - return this.selectPageControl; - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getButtonGroup : function () { - return this.group; - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getNextPageButton : function () { - return this.nextPageButton; - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getPrevPageButton : function () { - return this.prevPageButton; - }, - - init : function() { - this.initOld (); - bobj.setVisualStyle (this.layer, this.visualStyle); - this.palette.init (); - this._updateNavButtons (); - }, - - write : function() { - this._addRightZone (); - this.begin (); - this.palette.write (); - this.end (); - document.write (bobj.crv.getInitHTML (this.widx)); - }, - - /** - * Overrides parent. Opens the toolbar's tags. - */ - beginHTML : function() { - return bobj.html.openTag ('div', { - id : this.id, - 'class' : 'crtoolbar', - style : { - height : '28px', - overflow : 'hidden', - margin : this.margin + 'px' - } - }); - }, - - getHTML : function() { - this._addRightZone (); - return (this.beginHTML () + this.palette.getHTML () + this.endHTML ()); - }, - - getWidth : function() { - var itemLayer; - var width = 0; - var items = this.palette.items; - for ( var i = 0, len = items.length; i < len; i++) { - itemLayer = items[i].layer; - if (itemLayer.offsetWidth) { - width += itemLayer.offsetWidth; - } - if (itemLayer.offsetLeft) { - width += (itemLayer.offsetLeft * 2); - } - } - return width; - }, - - /** - * Private. Adds right-aligned widgets to the right zone of the palette - */ - _addRightZone : function() { - this.palette.beginRightZone (); - - var w = null; - while (w = this._rightZoneWgts.pop ()) { - this.palette.add (w); - } - - delete this._rightZoneWgts; - }, - - /** - * Private. Updates the enabled state of navigation buttons based on the current page number and the number of pages. - */ - _updateNavButtons : function() { - if (this.selectPageControl) { - var curPg = this.selectPageControl.getCurrentPage (); - if (this.selectPageControl.firstPage) { - this.selectPageControl.firstPage.setDisabled (curPg == 1); - } - if (this.prevPageButton) { - this.prevPageButton.setDisabled (curPg == 1); - } - - var numPgsStr = this.selectPageControl.getNumPages (); - var lastPgKnown = numPgsStr.indexOf ('+') == -1; - var numPgs = parseInt (numPgsStr, 10); - var fwdDisabled = lastPgKnown && numPgs == curPg; - - if (this.nextPageButton) { - this.nextPageButton.setDisabled (fwdDisabled); - } - if (this.selectPageControl.lastPage) { - this.selectPageControl.lastPage.setDisabled (fwdDisabled); - } - } - }, - - setPageNumber : function(curPage, numPages) { - if (this.selectPageControl) { - if (curPage) - this.selectPageControl.setCurrentPage (curPage); - - if (numPages) - this.selectPageControl.setNumPages (numPages); - - this._updateNavButtons (); - } - }, - - update : function(update) { - if (update) { - for ( var childNum in update.children) { - var child = update.children[childNum]; - if (child) { - switch (child.cons) { - case "bobj.crv.newSelectPageControl": - if (this.selectPageControl) { - this.selectPageControl.update (child); - this._updateNavButtons (); - } - break; - case "bobj.crv.newSearchTextControl": - if (this.searchTextControl) { - this.searchTextControl.update (child); - } - break; - case "bobj.crv.newZoomControl": - if(this.zoomControl) { - this.zoomControl.update(child); - } - break; - case "bobj.crv.newToolbarButtonGroup": - if(this.group) { - this.group.update(child); - } - break; - } - } - } - } - } -}; - -/** - * ToolbarMenu Constructor - */ - -bobj.crv.newToolbarMenu = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - icon: null, - text: L_bobj_crv_File, - tooltip: L_bobj_crv_FileMenu - }, kwArgs); - - var o = newSingleIconMenuWidget(kwArgs.id, kwArgs.icon, null, kwArgs.text, kwArgs.tooltip); - o.widgetType = 'ToolbarMenu'; - - o._tbBtnOldInit = o.init; - - bobj.crv.setAllClasses(o.icon, null); - bobj.crv.setAllClasses(o.arrow, null); - bobj.crv.setAllClasses(o, 'filemenu'); - o.arrow.resize(13, (_ie?20:18)); - - MochiKit.Base.update(o, bobj.crv.ToolbarMenu); - return o; -}; - -bobj.crv.ToolbarMenu = { - init : function() { - this._tbBtnOldInit (); - bobj.disableTabbingKey (this.icon.layer, true); - - /* If menu does not have any items make it look like a 'label' */ - if (this.getMenu ().items.length == 0) { - this.arrow.setDisplay (false); - bobj.crv.setAllClasses (this.icon, null); - this.icon.clickCB = null; - } - }, - - /** - * Add toolbar menu items to toolbar - */ - addChild : function(widget) { - var menu = this.getMenu (); - switch (widget.widgetType) { - case 'ExportMenuItem': - var icon = bobj.crv.allInOne.uri; - var dy = bobj.crv.allInOne.toolbarExportDy; - var disDy = dy; - - this.exportMenuItem = menu.add (widget.id, L_bobj_crv_submitBtnLbl, null, icon, 3, dy, widget.disabled, 25, disDy, null); - break; - case 'PrintMenuItem': - var icon = bobj.crv.allInOne.uri; - var dy = bobj.crv.allInOne.toolbarPrintDy; - var disDy = dy; - - this.printMenuItem = menu.add (widget.id, L_bobj_crv_ActiveXPrintDialogTitle, null, icon, 3, dy, widget.disabled, 25, disDy, null); - break; - default: - bobj.crv.ToolbarMenu.commonAddChild (menu, widget); - break; - } - }, - - commonAddChild : function(menu, widget) { - switch (widget.widgetType) { - case 'Separator': - menu.addSeparator (); - break; - case 'ScriptMenuItem': - var cb = function() { - bobj.crv.ToolbarMenuItem.scriptItemCB (widget.callback, widget.args); - }; - var menuitem = menu.add (widget.id, widget.text, cb, widget.icon, widget.dx, widget.dy, widget.disabled, widget.disDx, widget.disDy, widget.alt); - if (widget.callback == null) - menuitem.setDisabled (true); - break; - case 'ToolbarSubMenu': - var menuitem = menu.add (widget.id, widget.text, null, widget.icon, widget.dx, widget.dy, widget.disabled, widget.disDx, widget.disDy, widget.alt); - menuitem.attachSubMenu (widget.submenu); - break; - } - } -}; - - -/** - * ToolbarSubMenu Constructor - */ -bobj.crv.newToolbarSubMenu = function(kwArgs) { - var o = MochiKit.Base.update({ - id: bobj.uniqueId(), - text: null, - icon: null, - dx: 0, - dy: 0, - disabled: false, - disDx: 0, - disDy: 0, - alt : null - }, kwArgs); - - o.submenu = newMenuWidget(o.id); - o.widgetType = 'ToolbarSubMenu'; - - MochiKit.Base.update(o, bobj.crv.ToolbarSubMenu); - return o; -}; - -bobj.crv.ToolbarSubMenu = { - /** - * Add toolbar menu items to toolbarsubmenu - */ - addChild : function(widget) { - bobj.crv.ToolbarMenu.commonAddChild (this.submenu, widget); - } -}; - - -/** - * ToolbarMenuItem constructor - */ -bobj.crv.newToolbarMenuItem = function(kwArgs) { - var o = MochiKit.Base.update({ - id: bobj.uniqueId(), - widgetType:null, - text: null, - icon: null, - dx: 0, - dy: 0, - disabled: false, - disDx: 0, - disDy: 0, - alt : null - }, kwArgs); - - MochiKit.Base.update(o, bobj.crv.ToolbarMenuItem); - return o; -}; - -bobj.crv.ToolbarMenuItem = { - scriptItemCB : function(callback, args) { - if (callback) { - var f = eval (callback); - if (typeof f == 'function') { - if (args) - f.call (null, args); - else - f.call (null); - } - } - } -}; - -/** - * Constructor. Base class for toolbar buttons. - */ -bobj.crv.newToolbarButton = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - icon: null, - tooltip: null, - text: null, - isDisabled: false, - isChecked: false, - clickCB: null, - width: 16, - height: 16, - dx: 3, - dy: 3, - disDx: 25, - disDy: 3, - isTabEnabled: true - }, kwArgs); - - var o = newIconWidget( - kwArgs.id, - kwArgs.icon, - kwArgs.clickCB, - kwArgs.text, - kwArgs.tooltip, - kwArgs.width, - kwArgs.height, - kwArgs.dx, - kwArgs.dy, - kwArgs.disDx, - kwArgs.disDy, - kwArgs.isTabEnabled); - - if (kwArgs.text) - bobj.crv.setAllClasses(o, null); - else - bobj.crv.setAllClasses(o, 'toolbar_button'); - - o._tbBtnOldInit = o.init; - o._tbBtnKwArgs = kwArgs; - MochiKit.Base.update(o, bobj.crv.ToolbarButton); - - return o; -}; - -bobj.crv.ToolbarButton = { - init : function() { - this._tbBtnOldInit (); - var kwArgs = this._tbBtnKwArgs; - - this.setDisabled (kwArgs.isDisabled); - }, - - update : function (update) { - if(update && bobj.isBoolean(update.args.isDisabled)) { - this.setDisabled (update.args.isDisabled); - } - } -}; - - -/** - * PrevPageButton constructor - */ -bobj.crv.newPrevPageButton = function(kwArgs) { - var o = bobj.crv.newToolbarButton(MochiKit.Base.update({ - icon: bobj.crv.allInOne.uri, - tooltip: L_bobj_crv_PrevPage, - dx:3, dy:bobj.crv.allInOne.toolbarPrevPageDy + 3, disDx:25, disDy:bobj.crv.allInOne.toolbarPrevPageDy + 3, width:16, height:16 - }, kwArgs)); - - o.widgetType = 'PrevPageButton'; - return o; -}; - -/** - * NextPageButton constructor - */ -bobj.crv.newNextPageButton = function(kwArgs) { - var o = bobj.crv.newToolbarButton(MochiKit.Base.update({ - icon: bobj.crv.allInOne.uri, - tooltip: L_bobj_crv_NextPage, - dx:3, dy:bobj.crv.allInOne.toolbarNextPageDy + 3, disDx:25, disDy:bobj.crv.allInOne.toolbarNextPageDy + 3, width:16, height:16 - }, kwArgs)); - - o.widgetType = 'NextPageButton'; - return o; -}; - -/** - * DrillUp constructor - */ -bobj.crv.newDrillUpButton = function(kwArgs) { - var o = bobj.crv.newToolbarButton(MochiKit.Base.update({ - icon: bobj.crv.allInOne.uri, - tooltip: L_bobj_crv_DrillUp, - dx:0, dy:bobj.crv.allInOne.toolbarUpDy, disDx:22, disDy:bobj.crv.allInOne.toolbarUpDy - }, kwArgs)); - - o.widgetType = 'DrillUpButton'; - return o; -}; - -/** - * RefreshButton constructor - */ -bobj.crv.newRefreshButton = function(kwArgs) { - var o = bobj.crv.newToolbarButton(MochiKit.Base.update({ - icon: bobj.crv.allInOne.uri, - tooltip: L_bobj_crv_Refresh, - dy: bobj.crv.allInOne.toolbarRefreshDy, - disDy: bobj.crv.allInOne.toolbarRefreshDy - }, kwArgs)); - - o.widgetType = 'RefreshButton'; - return o; -}; - -/** - * ExportButton constructor - */ -bobj.crv.newExportButton = function(kwArgs) { - var o = bobj.crv.newToolbarButton(MochiKit.Base.update({ - icon: bobj.crv.allInOne.uri, - tooltip: L_bobj_crv_Export, - dy: bobj.crv.allInOne.toolbarExportDy, - disDy: bobj.crv.allInOne.toolbarExportDy - }, kwArgs)); - - o.widgetType = 'ExportButton'; - o.closeCB = MochiKit.Base.bind(function() { if (this.focus) this.focus(); }, o); - return o; -}; - -/** - * PrintButton constructor - */ -bobj.crv.newPrintButton = function(kwArgs) { - var o = bobj.crv.newToolbarButton(MochiKit.Base.update({ - icon: bobj.crv.allInOne.uri, - tooltip: L_bobj_crv_Print, - dy: bobj.crv.allInOne.toolbarPrintDy, - disDy: bobj.crv.allInOne.toolbarPrintDy - }, kwArgs)); - - o.widgetType = 'PrintButton'; - o.closeCB = MochiKit.Base.bind(function() { if (this.focus) this.focus(); }, o); - return o; -}; - -/** - * LogoButton constructor - */ -bobj.crv.newLogoIcon = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - icon : bobj.crvUri('images/logo.gif') - }, kwArgs); - var o = newIconWidget( - kwArgs.id, - kwArgs.icon, - function() {window.open('http://www.businessobjects.com/ipl/default.asp?destination=ViewerLogoLink&product=crystalreports&version=14%2E0')}, - null, - "SAP Crystal Reports", - 120, - 20, - 0, - 0, - 0, - 0, - true - ); - - bobj.crv.setAllClasses(o, null); - - o.layoutAlign = 'right'; - o.widgetType = 'LogoIcon'; - return o; -}; - -/** - * Catalyst constructor - */ -bobj.crv.newCatalystIcon = function(kwArgs) { - var o = newIconWidget( - kwArgs.id, - bobj.crvUri('images/catalyst.gif'), - function() {window.open('http://www.businessobjects.com/ipl/default.asp?destination=DHTMLViewerLandingPage&product=crystalreports&version=14%2E0')}, - null, - L_bobj_crv_CatalystTip, - 22, - 22, - 0, - 0, - 0, - 0, - true - ); - - bobj.crv.setAllClasses(o, null); - - o.layoutAlign = 'right'; - o.widgetType = 'CatalystIcon'; - return o; -}; - -/** - * ToolbarSeparator constructor - */ -bobj.crv.newToolbarSeparator = function() { - var o = newPaletteVerticalSepWidget(bobj.uniqueId()); - o.getHTML = function() { - return bobj.html.DIV({id: this.id, style: {width: '6px'}}, - bobj.html.IMG({src: _skin+'../transp.gif', 'class':'toolbar_separator'})); - }; - return o; -}; - -/** - * ZoomControl Constructor - */ -bobj.crv.newZoomControl = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - kwArgs = UPDATE({ - initialZoom: '100%', - id: bobj.uniqueId() - }, kwArgs); - if (bobj.isNumber(kwArgs.initialZoom)) { - kwArgs.initialZoom = kwArgs.initialZoom + '%'; - } - - var o = newTextComboWidget( - kwArgs.id, - 5, // max chars - L_bobj_crv_Zoom, // tooltip - 60, // width - bobj.crv.ZoomControl._zoomChangeCB, // change CB - null, // check CB - null, // beforeShow CB - null // form name - ); - - o.arrow.resize(13, (_ie?20:18)); - bobj.crv.setAllClasses(o.arrow, 'toolbar_menuarrow'); - - o.menu.setAccelEnabled(false); - - var zoomList = ['400%','300%','200%','150%','125%','100%','75%','50%','25%']; - - for (var i = 0, len = zoomList.length; i < len; ++i) { - var zoomLevel = zoomList[i]; - o.add(zoomLevel, zoomLevel, (zoomLevel == kwArgs.initialZoom)); - } - o.text.setValue(kwArgs.initialZoom); - - o.zoomCB = null; - o.widgetType = 'ZoomControl'; - - o.initOld = o.init; - o._initZoom = kwArgs.initialZoom; - - UPDATE(o, bobj.crv.ZoomControl); - - return o; -}; - -bobj.crv.ZoomControl = { - init : function() { - this.initOld (); - this.setZoom (this._initZoom); - }, - - update : function(update) { - if(update.cons == "bobj.crv.newZoomControl") { - this.setZoom(update.args.initialZoom); - } - }, - - setZoom : function(lvl) { - var zoomVal = parseInt (lvl, 10); - if (bobj.isNumber (zoomVal)) { - zoomVal += '%'; - - this.valueSelect (zoomVal); - - var si = this.selectedItem; - if (si && si.val != zoomVal) { - si.check (false); - this.selectedItem = null; - } - - this._lastValue = zoomVal; - return true; - } - return false; - }, - - _zoomChangeCB : function() { - var zoomLvl = parseInt (this.text.getValue (), 10); - - if (bobj.isNumber (zoomLvl)) { - if (zoomLvl < 10) { - zoomLvl = 10; - } else if (zoomLvl > 400) { - zoomLvl = 400; - } - } - - if (!this.setZoom (zoomLvl)) { - this.setZoom (this._lastValue); - } else if (this.zoomCB) { - this.zoomCB (zoomLvl); - } - } -}; - -/** - * SelectPageControl constructor - * - * @param kwArgs.curPage [String|Int] Current page number - * @param kwArgs.numPages [String|Int] Number of pages in report - */ -bobj.crv.newSelectPageControl = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - kwArgs = UPDATE({ - id: bobj.uniqueId(), - showMenu: true - }, kwArgs); - - // calculate the text input width on construction time to eliminate resize visual while loading - var textNWidth = bobj.crv.SelectPageControl.getTextAndWidth(kwArgs.curPage, kwArgs.numPages); - - var o = newTextComboWidget( - kwArgs.id, - 75, // max chars - L_bobj_crv_PageNav, // tooltip - textNWidth.width + 13, // calculated width of the input field + what is getting substracted from it this constructor - null, // change CB - null, // check CB - null, // beforeShow CB - null // form name - ); - - // Constructor args - o.curPage = kwArgs.curPage; - o.numPages = kwArgs.numPages; - - if (kwArgs.showMenu) { - o.addMenuItem(bobj.uniqueId(),L_bobj_crv_FirstPage,null,null,0,0,false,0,0); - o.addMenuItem(bobj.uniqueId(),L_bobj_crv_LastPage,null,null,0,0,false,0,0); - - o.firstPage = o.menu.items[0]; - o.lastPage = o.menu.items[1]; - - o.arrow.resize(13, (_ie?20:18)); - bobj.crv.setAllClasses(o.arrow, 'toolbar_menuarrow'); - o.menu.setAccelEnabled(false); - } - else { - o.arrow.setDisplay(false); - } - - o.text.oldSetValue = o.text.setValue; - o.text.setValue = function(newText, newWidth) { - o.text.oldSetValue(newText); - if (newWidth && o.text.layer) { - o.text.resize(newWidth, null); - } - }; - o.text.focusCB = function() { - o.text.setValue(o.curPage); - var l = o.text.layer; - if (l) l.select(); - }; - o.text.blurCB = function() { - var textNWidth = o.getTextAndWidth(o.curPage, o.numPages); - o.text.setValue(textNWidth.text); - }; - o.text.enterCB = function() { - if (o.selectPageCB){ - var value = o.text.getValue(); - o.selectPageCB(value); - } - }; - - // Constants - o.margin = 1; - o.space = 0; - o.fieldWidth = 30; - o.labelWidth = 13 + o.space; - - /* Attach member functions */ - o.selectPageCB = null; - UPDATE(o, bobj.crv.SelectPageControl); - - o.updateTextValue(); - o.widgetType = 'SelectPageControl'; - return o; -}; - -bobj.crv.SelectPageControl = { - getTextAndWidth : function(curPage, numPages) { - var text = L_bobj_crv_of.replace ("%1", curPage).replace ("%2", numPages); - var width = (text.length > 9) ? (text.length * 7) : 60; /* min. width is 60; 7 is a number works for font size 11 */ - return { - 'text' : text, - 'width' : width - }; - }, - - update : function(update) { - if (update && update.cons == "bobj.crv.newSelectPageControl") { - /* Don't call setCurrentPage and setNumPages as each of them calls updateTextValue - we'll end in updating twice!*/ - this.curPage = update.args.curPage; - this.numPages = update.args.numPages; - this.updateTextValue (); - } - }, - - updateTextValue : function() { - var textNWidth = this.getTextAndWidth(this.curPage, this.numPages); - this.text.setValue(textNWidth.text, textNWidth.width); - /* lets not leave the cursor inside this edit box as user could start editing the formatted text, "n of N" */ - var l = this.text.layer; - if (l) l.blur(); - }, - - /** - * @return [Int] Returns the current page number - */ - getCurrentPage : function() { - return this.curPage; - }, - - setCurrentPage : function(val) { - this.curPage = val; - this.updateTextValue(); - }, - - /** - * @return [String] Returns the number of pages label - */ - getNumPages : function() { - return this.numPages; - }, - - setNumPages : function(val) { - this.numPages = val; - this.updateTextValue(); - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getFirstPageButton : function () { - return this.firstPage; - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getLastPageButton : function () { - return this.lastPage; - } -}; - -/** - * searchTextControl constructor - * - * @param kwArgs.searchText [String] Search Text - */ -bobj.crv.newSearchTextControl = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - kwArgs = UPDATE({id: bobj.uniqueId(), - icon : bobj.crv.allInOne.uri, - dy : bobj.crv.allInOne.toolbarSearchDy, - disDy : bobj.crv.allInOne.toolbarSearchDy - }, kwArgs); - var o = newWidget(kwArgs.id); - bobj.fillIn(o, kwArgs); - /* Construct the input box */ - o.textField = newTextFieldWidget( - o.id + "_textField", - null, - null, - null, - MochiKit.Base.bind(bobj.crv.SearchTextControl._searchTextCB, o), - true, - L_bobj_crv_SearchText, - 100); - - o.empty = (o.searchText == ''); - o.textField.focusCB = function() { - if (o.empty) { - o.textField.setValue(''); - } - }; - o.textField.blurCB = function() { - if (o.textField.getValue() == '') { - o.textField.setValue(L_bobj_crv_Find); - o.empty = true; - } - else { - o.empty = false; - } - }; - - o.searchButton = newIconWidget( - o.id + "_button", - kwArgs.icon, - MochiKit.Base.bind(bobj.crv.SearchTextControl._searchTextCB, o), - null, - L_bobj_crv_SearchText, - 16,16,3,kwArgs.dy, kwArgs.disDy,3,true); - - bobj.crv.setAllClasses(o.searchButton, 'toolbar_button'); - - /* Attach member functions */ - o.initOld = o.init; - o.searchTextCB = null; - UPDATE(o, bobj.crv.SearchTextControl); - - o.widgetType = 'SearchTextControl'; - return o; -}; - -bobj.crv.SearchTextControl = { - update : function(update) { - if (update && update.cons == "bobj.crv.newSearchTextControl") { - this.empty = (update.args.searchText == ''); - var text = (this.empty) ? L_bobj_crv_Find : update.args.searchText; - this.textField.setValue (text); - } - }, - - init : function() { - this.initOld (); - this.textField.init (); - var text = (this.empty) ? L_bobj_crv_Find : this.searchText; - this.textField.setValue (text); - this.searchButton.init (); - }, - - getHTML : function() { - var h = bobj.html; - - var labelStyle = { - cursor : 'default', - 'padding-left' : this.space + 'px', - width : this.labelWidth + 'px' - }; - - return h.TABLE ( { - id : this.id, - cellspacing : 0, - cellpadding : 0, - border : 0, - style : { - margin : this.margin + 'px' - } - }, h.TBODY (null, h.TR (null, h.TD (null, this.textField.getHTML ()), h.TD (null, this.searchButton.getHTML ())))); - }, - _searchTextCB : function() { - var text = this.textField.getValue (); - if ((text !== "" || this.searchText != text) && bobj.isFunction (this.searchTextCB)) { - this.searchTextCB (text); - } - } -}; - - -bobj.crv.newToolbarButtonGroup = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - kwArgs = UPDATE({ - id: bobj.uniqueId(), - visualStyle : { - className : null, - backgroundColor : null, - borderWidth : null, - borderStyle : null, - borderColor : null, - fontFamily : null, - fontWeight : null, - textDecoration : null, - color : null, - width : null, - height : null, - fontStyle : null, - fontSize : null - } - - }, kwArgs); - - var o = newPaletteContainerWidget(kwArgs.id); - - o.margin = 2; - bobj.fillIn(o, kwArgs); - o.widgetType = 'ToolbarButtonGroup'; - - // Attach member functions (since we can't use prototypes) - o.initOld = o.init; - UPDATE(o, bobj.crv.ToolbarButtonGroup); - - o.palette = newPaletteWidget(o.id + "_palette"); - o.add(o.palette); - return o; -}; - -bobj.crv.ToolbarButtonGroup = { - addChild : function(widget) { - switch (widget.widgetType) { - case 'ExportButton': - this.exportButton = widget; - break; - case 'PrintButton': - this.printButton = widget; - break; - case 'RefreshButton': - this.refreshButton = widget; - break; - case 'DrillUpButton': - this.drillUpButton = widget; - } - this.palette.add (widget); - }, - - update : function (update) { - if(update != null && update.cons == "bobj.crv.newToolbarButtonGroup") { - for (var childNum in update.children) { - var child = update.children[childNum]; - if (child) { - switch(child.cons) { - case "bobj.crv.newPrintButton": - if(this.printButton) { - this.printButton.update(child); - } - break; - case "bobj.crv.newExportButton": - if(this.exportButton) { - this.exportButton.update(child); - } - break; - case "bobj.crv.newRefreshButton": - if(this.refreshButton) { - this.refreshButton.update(child); - } - break; - case "bobj.crv.newDrillUpButton": - if(this.drillUpButton) { - this.drillUpButton.update(child); - } - break; - } - } - } - } - }, - - isAnyButtonDisplayed : function () { - return (this.printButton != null && this.printButton.isDisplayed()) || - (this.exportButton != null && this.exportButton.isDisplayed()) || - (this.refreshButton != null && this.refreshButton.isDisplayed()) || - (this.drillUpButton != null && this.drillUpButton.isDisplayed()); - }, - - autoDisplay : function () { - if(this.isAnyButtonDisplayed()) - this.setDisplay (true); - else - this.setDisplay(false); - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getExportButton : function () { - return this.exportButton; - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getRefreshButton : function () { - return this.refreshButton; - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getDrillUpButton : function () { - return this.drillUpButton; - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getPrintButton : function () { - return this.printButton; - }, - - init : function() { - this.initOld (); - bobj.setVisualStyle (this.layer, this.visualStyle); - this.palette.init (); - }, - - /** - * Overrider parent - */ - beginHTML : function() { - var h = bobj.html; - return h.openTag ('table', { - id: this.id, - 'class': 'dialogzone toolbar', - border: '0', - cellspacing: '0', - cellpadding: '0', - style: { - overflow: 'hidden', - margin: this.margin + 'px' - } - }) - + h.openTag ('tr', null) - + h.TD ({ style: { width: '2px' } - }, h.IMG({src: _skin+'../transp.gif', 'class': 'toolbar_buttongroup_left'})) - + h.openTag ('td', {'class': 'toolbar_buttongroup'}); - }, - - /** - * Overrider parent - */ - endHTML : function() { - var h = bobj.html; - return h.closeTag ('td', null) - + h.TD ( - { style: { width: '2px' } - }, h.IMG({src: _skin+'../transp.gif', 'class' : 'toolbar_buttongroup_right'})) - + h.closeTag ('tr', null) - + h.closeTag ('table'); - }, - - getHTML : function() { - return this.beginHTML () + this.palette.getHTML () + this.endHTML (); - } -}; - -bobj.crv.newToolbarButtonGroupSeparator = function() { - return newPaletteVerticalSepWidget(bobj.uniqueId()); -}; \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Viewer.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Viewer.js deleted file mode 100644 index 7c2139e70..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/Viewer.js +++ /dev/null @@ -1,862 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - - -/** - * Viewer Constructor - * - * kwArgs.layoutType [String] Tells the viewer how to size itself. Can be - * "client" (fill window), "fitReport", or "fixed" - * kwArgs.width [Int] Width in pixels when layoutType=fixed - * kwArgs.height [Int] Height in pixels when layoutType=fixed - */ -bobj.crv.newViewer = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - isDisplayModalBG : false, - isLoadContentOnInit : false, - layoutType : bobj.crv.Viewer.LayoutTypes.FIXED, - visualStyle : { - className : null, - backgroundColor : null, - borderWidth : null, - borderStyle : null, - borderColor : null, - fontFamily : null, - fontWeight : null, - textDecoration : null, - color : null, - width : '800px', - height : '600px', - fontStyle : null, - fontSize : null, - top : "0px", /* passed by Java DHTML viewer */ - left : "0px" /* passed by Java DHTML viewer */ - } - }, kwArgs); - var o = newWidget(kwArgs.id); - - bobj.fillIn(o, kwArgs); - o.widgetType = 'Viewer'; - - o._topToolbar = null; - o._reportAlbum = null; - o._leftPanel = null; - o._separator = null; - o._print = null; - o._export = null; - o._promptDlg = null; - o._reportProcessing = null; - o._eventListeners = []; - o._statusbar = null; - o._leftPanelResizeGrabber = newGrabberWidget( - o.id + '_leftPanelResizeGrabber', - bobj.bindFunctionToObject(bobj.crv.Viewer.onGrabberMove, o), - 0, // intial left - 0, // intial top - 4, // width - 1, // intial height (has to be pixels so we'll figure it out later) - true); // Moves on the horizontal axis - - // Attach member functions - o.initOld = o.init; - o._boundaryControl = new bobj.crv.BoundaryControl(kwArgs.id + "_bc"); - o._modalBackground = new bobj.crv.ModalBackground( - kwArgs.id + "_mb", - bobj.bindFunctionToObject(bobj.crv.Viewer.keepFocus, o)); - MochiKit.Base.update(o, bobj.crv.Viewer); - window[o.id] = o - - return o; -}; - -bobj.crv.Viewer = { - LayoutTypes : { - FIXED : 'fixed', - CLIENT : 'client', - FITREPORT : 'fitreport' - }, - - PromptingTypes : { - HTML : 'html', - FLEX : 'flex' - }, - - onGrabberMove : function(x) { - if (this._leftPanel) { - this._leftPanel.resize (x, null); - this._doLayout (); - } - }, - - keepFocus : function () { - var swf = bobj.crv.params.FlexParameterBridge.getSWF(this.id); - if (swf) - swf.focus(); - }, - - addChild : function(widget) { - if (widget.widgetType == 'ReportAlbum') { - this._reportAlbum = widget; - } else if (widget.widgetType == 'Toolbar') { - this._topToolbar = widget; - this._separator = bobj.crv.newSeparator (); - } else if (widget.widgetType == 'Statusbar') { - this._statusbar = widget; - } else if (widget.widgetType == 'PrintUI') { - this._print = widget; - } else if (widget.widgetType == 'ExportUI') { - this._export = widget; - } else if (widget.widgetType == 'ReportProcessingUI') { - this._reportProcessing = widget; - } else if (widget.widgetType == 'LeftPanel') { - this._leftPanel = widget; - } - }, - - getHTML : function() { - var h = bobj.html; - - var layerStyle = { - overflow: 'hidden', - position: 'relative', - left : this.visualStyle.left, - top : this.visualStyle.top - }; - - var html = h.DIV({dir: 'ltr', id:this.id, style:layerStyle, 'class':'dialogzone'}, - this._topToolbar ? this._topToolbar.getHTML() : '', - this._separator ? this._separator.getHTML() : '', - this._leftPanel ? this._leftPanel.getHTML() : '', - this._reportAlbum ? this._reportAlbum.getHTML() : '', - this._leftPanelResizeGrabber ? this._leftPanelResizeGrabber.getHTML() : '', - this._statusbar ? this._statusbar.getHTML(): ''); - - return html; - }, - - _onWindowResize : function() { - if (this._currWinSize.w != winWidth () || this._currWinSize.h != winHeight ()) { - this._doLayout (); - this._currWinSize.w = winWidth (); - this._currWinSize.h = winHeight (); - } - }, - - init : function() { - this.initOld (); - this._initSignals (); - - if (this._reportAlbum) - this._reportAlbum.init (); - - if (this._topToolbar) - this._topToolbar.init (); - - if (this._leftPanel) - this._leftPanel.init (); - - if (this._statusbar) - this._statusbar.init (); - - if (this._leftPanelResizeGrabber) { - this._leftPanelResizeGrabber.init (); - - if (!this._leftPanel || !this._leftPanel.isToolPanelDisplayed ()) - this._leftPanelResizeGrabber.setDisplay (false); - } - - this.setDisplayModalBackground(this.isDisplayModalBG); - - bobj.setVisualStyle (this.layer, this.visualStyle); - - this._currWinSize = { - w : winWidth (), - h : winHeight () - }; - var connect = MochiKit.Signal.connect; - var signal = MochiKit.Signal.signal; - - if (this.layoutType.toLowerCase () == bobj.crv.Viewer.LayoutTypes.CLIENT) { - connect (window, 'onresize', this, '_onWindowResize'); - } - - if (!this._topToolbar && !this._statusbar && this._reportAlbum && !this._reportAlbum.isDisplayDrilldownTab()) { - this.layer.className += ' hideFrame'; - this._reportAlbum.setHideFrame(true); - } - - if (this.layer && _ie && bobj.checkParent (this.layer, "TABLE")) { - /* - * delays the call to doLayout to ensure all dom elemment's width and - * height are set beforehand. - */ - connect (window, 'onload', this, '_doLayoutOnLoad'); - this._oldCssVisibility = this.css.visibility; - this.css.visibility = "hidden"; - } else { - this._doLayout (); - } - - this.scrollToHighlighted (); - signal (this, 'initialized', this.isLoadContentOnInit); - }, - - /** - * Connects all the signals during initialization - */ - _initSignals : function() { - var partial = MochiKit.Base.partial; - var signal = MochiKit.Signal.signal; - var connect = MochiKit.Signal.connect; - var fe = MochiKit.Iter.forEach; - - if (this._topToolbar) { - fe ( [ 'zoom', 'drillUp', 'firstPage', 'prevPage', 'nextPage', 'lastPage', 'selectPage', 'refresh', 'search', 'export', 'print' ], function(sigName) { - connect (this._topToolbar, sigName, partial (signal, this, sigName)); - }, this); - } - - this._initLeftPanelSignals (); - - if (this._reportAlbum) { - fe ( [ 'selectView', 'removeView', 'viewChanged' ], function(sigName) { - connect (this._reportAlbum, sigName, partial (signal, this, sigName)); - }, this); - } - - if (this._print) { - connect (this._print, 'printSubmitted', partial (signal, this, 'printSubmitted')); - } - - if (this._export) { - connect (this._export, 'exportSubmitted', partial (signal, this, 'exportSubmitted')); - } - }, - - /** - * DO NOT REMOVE. USED BY WEB ELEMENTS - */ - getLeftPanel : function () { - return this._leftPanel; - }, - - _initLeftPanelSignals : function () { - var partial = MochiKit.Base.partial; - var signal = MochiKit.Signal.signal; - var connect = MochiKit.Signal.connect; - var fe = MochiKit.Iter.forEach; - - if (this._leftPanel) { - fe ( [ 'grpDrilldown', 'grpNodeRetrieveChildren', 'grpNodeCollapse', 'grpNodeExpand', 'resetParamPanel', 'resizeToolPanel' ], function(sigName) { - connect (this._leftPanel, sigName, partial (signal, this, sigName)); - }, this); - - connect (this._leftPanel, 'switchPanel', this, '_onSwitchPanel') - } - }, - - /** - * returns true when main report view is selected in report album - */ - _isMainReportViewSelected : function() { - var currentView = this._reportAlbum.getSelectedView(); - return currentView && currentView.isMainReport(); - }, - - _doLayoutOnLoad : function() { - this.css.visibility = this._oldCssVisibility; - this._doLayout(); - }, - - _doLayout : function() { - var topToolbarH = this._topToolbar ? this._topToolbar.getHeight() : 0; - var topToolbarW = this._topToolbar ? this._topToolbar.getWidth() : 0; - var separatorH = this._separator ? this._separator.getHeight() : 0; - var statusbarH = this._statusbar ? this._statusbar.getHeight() : 0; - var leftPanelW = this._leftPanel ? this._leftPanel.getBestFitWidth() : 0; - - var leftPanelGrabberW = this._leftPanelResizeGrabber && this._leftPanelResizeGrabber.isDisplayed() ? - this._leftPanelResizeGrabber.getWidth() : 0; - - var layout = this.layoutType.toLowerCase(); - - var toolPanel = this._leftPanel ? this._leftPanel.getToolPanel() : null; - var hasPercentWidth = (toolPanel && toolPanel.isDisplayed() && toolPanel.hasPercentWidth()); - - if (bobj.crv.Viewer.LayoutTypes.CLIENT == layout) { - this.css.width = '100%'; - this.css.height = '100%'; - - if (hasPercentWidth) - leftPanelW = Math.max(leftPanelW, (this.getWidth() * toolPanel.getPercentWidth()) - leftPanelGrabberW); - } - else if (bobj.crv.Viewer.LayoutTypes.FITREPORT == layout) { - var viewerWidth = 0; - var viewerHeight = 0; - - if (hasPercentWidth) - leftPanelW += 200; - - if(this._reportAlbum) { - var albumSize = this._reportAlbum.getBestFitSize(); - viewerWidth = (albumSize.width + leftPanelW + leftPanelGrabberW < topToolbarW) ? topToolbarW : albumSize.width + leftPanelW + leftPanelGrabberW; - viewerHeight = (albumSize.height + topToolbarH + separatorH + statusbarH); - } - else if (this._leftPanel) { /* If DisplayPage = false in webformviewer */ - viewerWidth = leftPanelW; - viewerHeight = (this._leftPanel.getBestFitHeight() + topToolbarH + separatorH + statusbarH); ; - } - - this.css.height = viewerHeight + 'px'; - this.css.width = viewerWidth + 'px'; - } - else { /* fixed layout */ - this.css.width = this.visualStyle.width; - this.css.height = this.visualStyle.height; - - if (hasPercentWidth) - leftPanelW = Math.max(leftPanelW, (this.getWidth() * toolPanel.getPercentWidth()) - leftPanelGrabberW); - } - - var albumW = this.getWidth() - leftPanelW - leftPanelGrabberW; - var albumH = Math.max(0, this.getHeight() - topToolbarH - separatorH - statusbarH); - - if (this._reportAlbum) { - this._reportAlbum.resizeOuter(albumW, albumH); - this._reportAlbum.move(leftPanelW + leftPanelGrabberW, topToolbarH + separatorH); - } - - if(this._leftPanel) { - this._leftPanel.resize(leftPanelW, albumH); - this._leftPanel.move(0, topToolbarH + separatorH); - } - - if(this._leftPanelResizeGrabber && this._leftPanelResizeGrabber.isDisplayed()) { - this._leftPanelResizeGrabber.resize(null, albumH); - this._leftPanelResizeGrabber.move(leftPanelW, topToolbarH + separatorH) - } - - if(this._statusbar) { - this._statusbar.doLayout(); - this._statusbar.move(0, topToolbarH + separatorH + albumH) - } - - if (this._print && this._print.layer) { - this._print.center(); - } - - if (this._export && this._export.layer) { - this._export.center(); - } - - if (this._reportProcessing && this._reportProcessing.layer) { - this._reportProcessing.center(); - } - - - var viewerP = MochiKit.Style.getElementPosition(this.layer); - var viewerD = MochiKit.Style.getElementDimensions(this.layer); - - if (this._modalBackground) - this._modalBackground.updateBoundary(viewerD.w, viewerD.h, viewerP.x, viewerP.y); - - var bodyD = bobj.getBodyScrollDimension(); - - var isViewerCutOff = ((viewerP.x + viewerD.w) >= bodyD.w) || ((viewerP.y + viewerD.h) >= bodyD.h); - - if(isViewerCutOff && (layout != bobj.crv.Viewer.LayoutTypes.CLIENT)) { - - /* BoundaryControl adds a hidden div with the same dimension and position as current viewer to body - to fix the problem of IE regarding scrollbar that are hidden when left + viewer's width > body's width - */ - - this._boundaryControl.updateBoundary(viewerD.w, viewerD.h, viewerP.x, viewerP.y); - } - else { - this._boundaryControl.updateBoundary(0, 0, 0, 0); - } - - var FLEXUI = bobj.crv.params.FlexParameterBridge; - var swf = FLEXUI.getSWF(this.id); - if(swf) { - if (this._promptDlg && this._promptDlg.style.visibility != 'hidden') { - if(swf._isMaximized) { - FLEXUI.fitScreen(this.id); - } - else { - FLEXUI.resize(this.id, swf.offsetHeight, swf.offsetWidth, true); - } - } - } - - this._adjustWindowScrollBars(); - }, - - _onSwitchPanel : function(panelType) { - var Type = bobj.crv.ToolPanelType; - - if (Type.GroupTree == panelType) { - MochiKit.Signal.signal (this, 'showGroupTree'); - } else if (Type.ParameterPanel == panelType) { - MochiKit.Signal.signal (this, 'showParamPanel'); - } else if (Type.None == panelType) { - MochiKit.Signal.signal (this, 'hideToolPanel'); - } - this._leftPanelResizeGrabber.setDisplay (!(Type.None == panelType)); - this._doLayout (); - }, - - resize : function(w, h) { - if (bobj.isNumber (w)) { - w = w + 'px'; - } - - if (bobj.isNumber (h)) { - h = h + 'px'; - } - - this.visualStyle.width = w; - this.visualStyle.height = h; - this._doLayout (); - }, - - /** - * Set the page number. Updates toolbars with current page and number of pages - * info. - * - * @param curPageNum [String] - * @param numPages [String] (eg. "1" or "1+"); - */ - setPageNumber : function(curPageNum, numPages) { - if (this._topToolbar) { - this._topToolbar.setPageNumber (curPageNum, numPages); - } - }, - - /** - * Display the prompt dialog. - * - * @param html [string] HTML fragment to display inside the dialog's form. - */ - showPromptDialog : function(html, closeCB) { - if (!this._promptDlg) { - var promptDialog_ShowCB = MochiKit.Base.bind (this._onShowPromptDialog, this); - var promptDialog_HideCB = MochiKit.Base.bind (this._onHidePromptDialog, this); - this._promptDlg = bobj.crv.params.newParameterDialog ( { - id : this.id + '_promptDlg', - showCB : promptDialog_ShowCB, - hideCB : promptDialog_HideCB - }); - } - - this._promptDlg.setCloseCB (closeCB); - this._promptDlg.setNoCloseButton(!closeCB); - - /* The reason for saving document.onkeypress is that prompt dialog steals the document.onkeypress and never sets it back */ - this._originalDocumentOnKeyPress = document.onkeypress; /* - * Must be set before .updateHtmlAndDisplay(html) as this function call modifies - * document.onkeypress; - */ - this.updatePromptDialog(html); - }, - - /** - * Update the prompt dialog - with CR2010 DCP prompting this allow the dialog to be kept open during dependent prompt submits - * - * @param html [string] HTML fragment to display inside the dialog's form - */ - updatePromptDialog : function(html) { - html = html || ''; - - var callback = function(prompt, prompthtml) { - return function() { - prompt.updateHtmlAndDisplay (prompthtml); - } - }; - - /** - * AllInOne.js lacks prompting javascript files (to reduce amount of data transmitted) therefore, prompting data must be loaded on demand - */ - - bobj.loadJSResourceAndExecCallBack(bobj.crv.config.resources.HTMLPromptingSDK, callback(this._promptDlg, html)); - - if (bobj.isParentWindowTestRunner ()) { - /* for testing purposes only*/ - setTimeout (MochiKit.Base.partial (MochiKit.Signal.signal, this, "promptDialogIsVisible"), 5); - } - }, - - showFlexPromptDialog : function(servletURL, closeCB) { - var FLEXUI = bobj.crv.params.FlexParameterBridge; - var VIEWERFLEX = bobj.crv.params.ViewerFlexParameterAdapter; - - if (!FLEXUI.checkFlashPlayer ()) { - var msg = L_bobj_crv_FlashRequired; - this.showError (msg.substr (0, msg.indexOf ('{0}')), FLEXUI.getInstallHTML ()); - return; - } - - VIEWERFLEX.setViewerLayoutType (this.id, this.layoutType); - - if (!this._promptDlg) { - this._promptDlg = document.createElement ('div'); - this._promptDlg.id = this.id + '_promptDlg'; - this._promptDlg.closeCB = closeCB; - - var PROMPT_STYLE = this._promptDlg.style; - PROMPT_STYLE.border = '1px'; - PROMPT_STYLE.borderStyle = 'solid'; - PROMPT_STYLE.borderColor = '#000000'; - PROMPT_STYLE.position = 'absolute'; - PROMPT_STYLE.zIndex = bobj.constants.modalLayerIndex; - - var divID = bobj.uniqueId (); - this._promptDlg.innerHTML = "
    "; - - // generate hidden buttons to prevent tabbing into the viewer - var onfocusCB = bobj.bindFunctionToObject(bobj.crv.Viewer.keepFocus, this); - - var firstLink = MochiKit.DOM.createDOM('BUTTON', { - id : this._promptDlg.id + '_firstLink', - onfocus : onfocusCB, - style : { - width : '0px', - height : '0px', - position : 'absolute', - left : '-30px', - top : '-30px' - } - }); - - var lastLink = MochiKit.DOM.createDOM('BUTTON', { - id : this._promptDlg.id + '_lastLink', - onfocus : onfocusCB, - style : { - width : '0px', - height : '0px', - position : 'absolute', - left : '-30px', - top : '-30px' - } - }); - - document.body.appendChild (firstLink); - document.body.appendChild (this._promptDlg); - document.body.appendChild (lastLink); - - var state = bobj.crv.stateManager.getComponentState (this.id); - var sessionID = state.common.reportSourceSessionID; - var lang = bobj.crv.getLangCode (); - - FLEXUI.setMasterCallBack (this.id, VIEWERFLEX); - FLEXUI.createSWF (this.id, divID, servletURL, true, lang, sessionID); - } else { - this._promptDlg.closeCB = closeCB; - this._promptDlg.style.display = ''; - FLEXUI.init (this.id); - } - - this.setDisplayModalBackground (true); - }, - - sendPromptingAsyncRequest : function (evArgs){ - MochiKit.Signal.signal(this, 'crprompt_asyncrequest', evArgs); - }, - setDisplayModalBackground : function (isDisplay) { - isDisplay = this.isDisplayModalBG || isDisplay; //viewer.isDisplayModalBG has higher priority - if(this._modalBackground) - this._modalBackground.show(isDisplay); - }, - - _onShowPromptDialog : function() { - this._adjustWindowScrollBars (); - this.setDisplayModalBackground (true); - }, - - _onHidePromptDialog : function() { - this._adjustWindowScrollBars (); - document.onkeypress = this._originalDocumentOnKeyPress; - this.setDisplayModalBackground (false); - }, - - isPromptDialogVisible: function () { - return this._promptDlg && this._promptDlg.isVisible && this._promptDlg.isVisible (); - }, - - hidePromptDialog : function() { - if (this.isPromptDialogVisible()) { - this._promptDlg.show (false); - } - }, - - /** - * Hide the flex prompt dialog - */ - hideFlexPromptDialog : function() { - if (this._promptDlg) { - if (_ie) - { - /* IE has an issue where if a user calls back from a swf - and closes the containing div then when the div is shown - again the swf will lose any external interface calls. To get around - this we must set the focus to something other than the swf first - before hiding the window. */ - this._promptDlg.focus(); - } - - this._promptDlg.style.visibility = 'hidden'; - this._promptDlg.style.display = 'none'; - this.setDisplayModalBackground (false); - - if (this._promptDlg.closeCB) - this._promptDlg.closeCB(); - } - }, - - _adjustWindowScrollBars : function() { - if (_ie && this.layoutType == bobj.crv.Viewer.LayoutTypes.CLIENT && this._promptDlg && this._promptDlg.layer && MochiKit.DOM.currentDocument ().body) { - var bodyOverFlow, pageOverFlow; - var body = MochiKit.DOM.currentDocument ().body; - var promptDlgLayer = this._promptDlg.layer; - - if (this.getReportPage () && this.getReportPage ().layer) { - var reportPageLayer = this.getReportPage ().layer; - } - - if (!window["bodyOverFlow"]) { - window["bodyOverFlow"] = MochiKit.DOM.getStyle (body, 'overflow'); - } - - if (body.offsetHeight < (promptDlgLayer.offsetTop + promptDlgLayer.offsetHeight)) { - if (window["bodyOverFlow"] == "hidden") { - bodyOverFlow = "scroll"; - } - pageOverFlow = "hidden"; - } else { - bodyOverFlow = window["bodyOverFlow"]; - pageOverFlow = "auto"; - } - - body.style.overflow = bodyOverFlow; - if (reportPageLayer) { - reportPageLayer.style.overflow = pageOverFlow; - } - } - }, - - /** - * Display an error message dialog. - * - * @param text [String] Short, user-friendly error message - * @param details [String] Technical info that's hidden unless the user chooses to see it - */ - showError : function(text, details) { - var dlg = bobj.crv.ErrorDialog.getInstance (); - dlg.setText (text, details); - dlg.setTitle (L_bobj_crv_Error); - dlg.show (true); - }, - - /** - * Update the UI using the given properties - * - * @param update [Object] Component properties - */ - update : function(update) { - if (!update || update.cons != "bobj.crv.newViewer") - return; - - if(update.args) - this.isDisplayModalBG = update.args.isDisplayModalBG; - - /* - * With CR2010 DCP prompting we want to keep open the prompt dialog until all parameters - * are resolved (ADAPT01346079). Unfortunately, as soon as the parameters resolved, server - * calls the getPage and returns the page content, so we don't know when to close the dialog. - */ - this.hidePromptDialog(); - - for ( var childNum in update.children) { - var child = update.children[childNum]; - if (child) { - switch (child.cons) { - case "bobj.crv.newReportAlbum": - if (this._reportAlbum) { - this._reportAlbum.update (child); - } - break; - case "bobj.crv.newToolbar": - if (this._topToolbar) { - this._topToolbar.update (child); - } - break; - case "bobj.crv.newStatusbar": - if (this._statusbar) { - this._statusbar.update (child); - } - break; - case "bobj.crv.newLeftPanel": - if (this._leftPanel) - this._leftPanel.update (child); - else { - this._leftPanel = bobj.crv.createWidget(child); - if(this.layer) { - append(this.layer, this._leftPanel.getHTML()) - this._initLeftPanelSignals (); - this._leftPanel.init(); - } - - if(this._leftPanel && this._leftPanel.isToolPanelDisplayed()) - this._leftPanelResizeGrabber.setDisplay(true); - } - break; - case "bobj.crv.newExportUI": - if (this._export) { - this._export.update (child); - } - break; - } - } - } - - this._doLayout (); - this.scrollToHighlighted (); - this.setDisplayModalBackground (this.isDisplayModalBG); - }, - - getToolPanel : function() { - if(this._leftPanel) - return this._leftPanel.getToolPanel(); - - return null; - }, - - getParameterPanel : function() { - var toolPanel = this.getToolPanel (); - if (toolPanel) - return toolPanel.getParameterPanel (); - - return null; - }, - - getReportPage : function() { - if (this._reportAlbum) { - var view = this._reportAlbum.getSelectedView(); - if (view) { - return view.reportPage; - } - } - - return null; - }, - - scrollToHighlighted : function() { - if(!this._reportAlbum) - return; - - var currentView = this._reportAlbum.getSelectedView (); - - if (currentView) { - currentView.scrollToHighlighted(this.layoutType.toLowerCase () == bobj.crv.Viewer.LayoutTypes.FITREPORT); - } - }, - - addViewerEventListener : function (e, l) { - var ls = this._eventListeners[e]; - if (!ls) { - this._eventListeners[e] = [l]; - return; - } - - ls[ls.length] = l; - }, - - removeViewerEventListener : function (e, l) { - var ls = this._eventListeners[e]; - if (ls) { - for (var i = 0, lsLen = ls.length; i < lsLen; i++) { - if (ls[i] == l){ - ls.splice(i, 1); - return; - } - } - } - }, - - getEventListeners : function (e) { - return this._eventListeners[e]; - } -}; - - - -bobj.crv.BoundaryControl = function(id) { - this.id = id; -}; - -bobj.crv.BoundaryControl.prototype = { - updateBoundary : function(width,height,left,top) { - if(!this.layer) { - this._init(); - } - if(this.layer) { - this.layer.style.width = width + "px"; - this.layer.style.height = height + "px"; - this.layer.style.left = left + "px"; - this.layer.style.top = top + "px"; - } - - }, - - _getStyle : function () { - return { - display:'block', - visibility:'hidden', - position:'absolute' - }; - }, - - _getHTML : function () { - return bobj.html.DIV({id : this.id, style : this._getStyle()}); - }, - - _init: function() { - if(!this.layer){ - append2(_curDoc.body,this._getHTML ()); - this.layer = getLayer(this.id); - this.layer.onselectstart = function () {return false;}; - this.layer.onmousedown = eventCancelBubble; - if (this.mouseupCB) - this.layer.onmouseup = this.mouseupCB; - } - } -}; - -bobj.crv.ModalBackground = function (id, mouseupCB) { - this.id = id; - this.mouseupCB = mouseupCB; -}; - -bobj.crv.ModalBackground.prototype = new bobj.crv.BoundaryControl(); -MochiKit.Base.update(bobj.crv.ModalBackground.prototype, { - _getStyle : function () { - return { - 'background-color' : '#888888', - position : 'absolute', - opacity : 0.30, - display : 'block', - filter : 'alpha(opacity=30);', - 'z-index' : bobj.constants.modalLayerIndex - 2, - visibility : 'hidden' - }; - }, - - show : function (show) { - if(!this.layer) { - this._init(); - } - - this.layer.style.visibility = show ? "visible" : "hidden"; - } - -}); diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ViewerFlexParameterAdapter.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ViewerFlexParameterAdapter.js deleted file mode 100644 index 44ce678a9..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ViewerFlexParameterAdapter.js +++ /dev/null @@ -1,547 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/* - ================================================================================ - ViewerFlexParameterAdapter.js - - Viewer's implementaion for flex prompting UI - ================================================================================ - */ - -bobj.crv.params.ViewerFlexParameterAdapter = { - _viewerLayoutType : [], - _promptData : [], - _paramCtrl : [], - _iParam : [], - _iPromptUnitData : [], - _iParamData : [], - _moveArea : null, - - /////////////////////////// - // Member setters - ////////////////////////// - setViewerLayoutType : function(id, l) { - this._viewerLayoutType[id] = l; - }, - - setPromptData : function(id, d, forIParams) { - if (!forIParams){ - /* Full prompt UI data */ - this._promptData[id] = d; - this.clearIParamPromptUnitData(id); - }else{ - /* Interactive prompt UI data */ - for(var i = 0, l = d.length; i < l; i++) { - var unit = d[i]; - this._addIParamPromptUnitData(id, unit.id, unit.names, unit.data); - } - } - }, - - setCurrentIParamInfo : function(id, c, p) { - this._paramCtrl[id] = c; - this._iParam[id] = p; - }, - - getShowMinUI : function (id) { - return this.hasIParamPromptUnitData(id); - }, - - getWidth : function (id) { - if(this.hasIParamPromptUnitData(id)) - return 300; - else - return this.getSWFWidth(id); - }, - - getHeight : function (id) { - if(this.hasIParamPromptUnitData(id)) - return 315; - else - return this.getSWFHeight(id); - }, - - getScreenHeight : function (id) { - var lDim = MochiKit.Style.getElementDimensions(getLayer(id)); - return lDim.h - 2; - }, - - getScreenWidth : function (id) { - var lDim = MochiKit.Style.getElementDimensions(getLayer(id)); - return lDim.w - 2; - }, - - /* - * Returns the ideal height of the prompting window - */ - getSWFHeight : function(id) { - var lTypes = bobj.crv.Viewer.LayoutTypes; - var layout = lTypes.CLIENT; - if (this._viewerLayoutType[id]) { - layout = this._viewerLayoutType[id]; - } - - var min = layout === lTypes.FIXED ? 0 : 480; - var sH = this.getScreenHeight(id); - return Math.max(min, sH - 200); - }, - - getSWFWidth : function(id) { - var sW = this.getScreenWidth(id); - return Math.min(600, sW - 20); - }, - - getAllowFullScreen : function(id) - { - return !this.hasIParamPromptUnitData(id); - }, - - hasIParamPromptUnitData : function (id) { - return (this._iPromptUnitData[id] != null) && (this._iParamData[id] != null) && (this._iParam[id] != null); - }, - - _addIParamPromptUnitData : function(id, unitID, names, data) { - if (!this.hasIParamPromptUnitData(id)) { - this._iPromptUnitData[id] = []; - this._iParamData[id] = []; - } - - this._iPromptUnitData[id][unitID] = data; - for ( var i = 0, len = names.length; i < len; i++) { - this._iParamData[id][names[i]] = unitID; - } - }, - - clearIParamPromptUnitData : function (id) { - if (!this.hasIParamPromptUnitData(id)) { - return; - } - - delete this._iPromptUnitData[id]; - delete this._iParamData[id]; - delete this._iParam[id]; - }, - - /////////////////////////// - // Callbacks - ////////////////////////// - - getPromptData : function (id) { - if (this.hasIParamPromptUnitData(id)) { - var promptUUID = this._iParamData[id][this._iParam[id].paramName]; - if (promptUUID) { - return this._iPromptUnitData[id][promptUUID]; - } - } - - return this._promptData[id]; - }, - - /** - * Flex callback to start moving the dialog - */ - startDrag : function(id) { - var swf = bobj.crv.params.FlexParameterBridge.getSWF(id); - if (swf) { - if (this._moveArea) { - return; - } - - this._moveArea = document.createElement('div'); - this._moveArea.id = bobj.uniqueId(); - - MOVE_STYLE = this._moveArea.style; - - var STYLE = swf.style; - var P_STYLE = swf.parentNode.style; - - MOVE_STYLE.top = P_STYLE.top; - MOVE_STYLE.left = P_STYLE.left; - MOVE_STYLE.width = STYLE.width ? STYLE.width : swf.width + 'px'; - MOVE_STYLE.height = STYLE.height ? STYLE.height : swf.height + 'px';; - MOVE_STYLE.border = '1px'; - MOVE_STYLE.borderStyle = 'solid'; - MOVE_STYLE.borderColor = '#000000'; - MOVE_STYLE.backgroundColor = '#FFFFFF'; - MOVE_STYLE.position = 'absolute'; - MOVE_STYLE.opacity = 0.50; - MOVE_STYLE.filter = 'alpha(opacity=50)'; - MOVE_STYLE.zIndex = bobj.constants.modalLayerIndex - 1; - - document.body.appendChild(this._moveArea); - document.body.style.cursor = 'move'; - } - }, - - /** - * Flex callback when finished moving the dialog - */ - stopDrag : function(id) { - if (this._moveArea) { - var p = MochiKit.Style.getElementPosition(this._moveArea); - this.move(id, p.x, p.y); - - document.body.removeChild(this._moveArea); - delete this._moveArea; - - document.body.style.cursor = 'default'; - } - }, - - /** - * Flex callback for moving the dialog. - * x is the amount to move on the x axis, -:left +:right - * y is the amount to move on the y axis, -:up +:down - */ - drag : function(id, x, y) { - var LOG = bobj.crv.logger; - LOG.info('doMove Called viewer:' + id + ' x:' + x + ' y:' + y); - - var l = getLayer(id); - if (!l) { - LOG.error('Shifting SWF could not find the viewer:' + id); - return; - } - - var m = this._moveArea; - if (!m) { - LOG.error('Unable to move SWF, no move area available'); - return; - } - - var mX = m.offsetLeft; - var mY = m.offsetTop; - var mH = m.offsetHeight; - var mW = m.offsetWidth; - var vX = l.offsetLeft; - var vY = l.offsetTop; - var vH = l.offsetHeight; - var vW = l.offsetWidth; - - var newX = mX + x; - var newY = mY + y; - - if (newY < vY) { - newY = vY; - } else if (newY + mH > vY + vH) { - newY = vH - mH; - } - - if (newX < vX) { - newX = vX; - } else if (newX + mW > vX + vW) { - newX = vW - mW; - } - - m.style.top = newY + 'px'; - m.style.left = newX + 'px'; - - LOG.info('Moved the SWF to x:' + newX + ' y:' + newY); - }, - - - /** - * Flex callback when finished moving the dialog - */ - move : function(id, x, y) { - var swf = bobj.crv.params.FlexParameterBridge.getSWF(id); - if (swf) { - var p = new MochiKit.Style.Coordinates(x,y); - MochiKit.Style.setElementPosition(swf.parentNode, p); - } - }, - - setParamValues : function(id, valueData) { - bobj.crv.logger.info('setting parameter values'); - if (this.hasIParamPromptUnitData(id)){ - this._setIParamValues (id, valueData); - } else { - this._setFullParamValues (id, valueData); - this.closeDialog(id); - } - }, - - _setFullParamValues : function (id, valueData) { - bobj.event.publish('crprompt_flexparam', id, valueData); - }, - - _setIParamValues : function (id, valueData) { - var param = this._iParam[id]; - var ctrl = this._paramCtrl[id]; - var data = this._iParamData[id]; - var unitData = this._iPromptUnitData[id]; - - if (!param || !ctrl || !data || !unitData || valueData.length != 1) { - return; - } - - var vPromptUnit = valueData[0]; - var vPrompts = vPromptUnit.prompts; - for (var i = 0, len = vPrompts.length; i < len; i++) { - var vPrompt = vPrompts[i]; - - if (!vPrompt || !vPrompt.name || !vPrompt.values) { - continue; - } - - ctrl.updateParameter(decodeURI(vPrompt.name), this._convertFlexValues(vPrompt, param.valueDataType)); - } - - ctrl._updateToolbar(); - - this._updatePromptData(id, vPromptUnit, param.valueDataType); - - this.closeDialog(id); - }, - - _updatePromptData: function (id, newUnitData, type){ - var newPrompts = newUnitData.prompts; - - var data = this._iPromptUnitData[id][newUnitData.id]; - var unitData = data.promptUnits[0]; - var prompts = unitData.prompts; - for (var i = 0, pLen = prompts.length; i < pLen; i++) { - var prompt = prompts[i]; - for (var j = 0, npLen = newPrompts.length; j < npLen; j++) { - var newPrompt = newPrompts[j]; - if (prompt.id == newPrompt.id){ - prompt.values = this._unescapeFlexValues(newPrompt.values, type); - break; - } - } - } - }, - - _unescapeFlexValues: function (fValues, type){ - if (type != bobj.crv.params.DataTypes.STRING) { - return fValues; - } - - for (var i = 0, len = fValues.length; i < len; i++) { - this._unescapeFlexValue(fValues[i], type); - } - - return fValues; - }, - - _unescapeFlexValue: function (fValue, type) { - if (type != bobj.crv.params.DataTypes.STRING) { - return; - } - - if ((fValue.value !== undefined && fValue.value !== null)){ - fValue.value = decodeURI(fValue.value); - - if (fValue.labels !== undefined && fValue.labels !== null){ - for (var i = 0, len = fValue.labels.length; i < len; i++) { - fValue.labels[i] = decodeURI(fValue.labels[i]); - } - } - - } else { - // Range - if (fValue.start){ - this._unescapeFlexValue(fValue.start, type); - } - - if (fValue.end){ - this._unescapeFlexValue(fValue.end, type); - } - } - }, - - _getDescriptionIndex: function (prompt) - { - var vIndex = prompt.lovValueIndex; - var types = prompt.lovFieldTypes; - if (vIndex !== undefined && types !== undefined) - { - for (var i=0, len=types.length; i -1 && fValue.labels && fValue.labels.length > dIndex){ - jsValue.desc = decodeURI(fValue.labels[dIndex]); - } - - var Type = bobj.crv.params.DataTypes; - switch (type) { - case Type.DATE: - case Type.TIME: - case Type.DATE_TIME: - jsValue.value = this._convertDateTimeFlexValue(fValue.value, type); - break; - default: - jsValue.value = decodeURI(fValue.value); - break; - } - - } else { - // Range - if (fValue.start){ - jsValue.lowerBoundType = fValue.start.inc == true ? 2 : 1; - jsValue.beginValue = this._convertFlexValue(fValue.start, type); - } else { - jsValue.lowerBoundType = 0; - } - - if (fValue.end){ - jsValue.upperBoundType = fValue.end.inc == true ? 2 : 1; - jsValue.endValue = this._convertFlexValue(fValue.end, type); - } else { - jsValue.upperBoundType = 0; - } - } - - return jsValue; - }, - - _convertDateTimeFlexValue : function (fValue, type) { - var Type = bobj.crv.params.DataTypes; - var dValue = {}; - var parts = fValue.split(','); - switch(type) { - case Type.DATE: - dValue.y = parseInt(parts[0].substring(5), 10); - dValue.m = parseInt(parts[1], 10) - 1; - dValue.d = parseInt(parts[2].substring(parts[2].length - 1, 0), 10); - break; - - case Type.TIME: - dValue.h = parseInt(parts[0].substring(5), 10); - dValue.min = parseInt(parts[1], 10); - dValue.s = parseInt(parts[2].substring(parts[2].length - 1, 0), 10); - dValue.ms = 0; - break; - - case Type.DATE_TIME: - dValue.y = parseInt(parts[0].substring(9), 10); - dValue.m = parseInt(parts[1], 10) - 1; - dValue.d = parseInt(parts[2], 10); - dValue.h = parseInt(parts[3], 10); - dValue.min = parseInt(parts[4]); - dValue.s = parseInt(parts[5].substring(parts[5].length - 1, 0), 10); - dValue.ms = 0; - break; - } - return dValue; - }, - - - logon : function(id, logonData) { - bobj.crv.logger.info('logging on'); - this.closeDialog(id); - bobj.event.publish('crprompt_flexlogon', id, logonData); - }, - - processingCancel : function(id) { - var v = getWidgetFromID(id); - if (v && v._reportProcessing) { - v._reportProcessing.cancelShow(); - } - }, - - processingDelayedShow : function(id) { - var v = getWidgetFromID(id); - if (v && v._reportProcessing) { - v._reportProcessing.delayedShow(); - } - }, - - logger : function(text) { - bobj.crv.logger.info(text); - }, - - getSWFBaseURL : function() { - return bobj.crvUri("../../swf/"); - }, - - getSWFID : function() { - return bobj.uniqueId(); - }, - - getZIndex : function() { - return bobj.constants.modalLayerIndex; - }, - - getUseSavedData : function(id) { - return this.hasIParamPromptUnitData(id); - }, - - closeDialog : function(id) { - var v = getWidgetFromID(id); - if (v) { - v.hideFlexPromptDialog(); - } - }, - - getUseOKCancelButtons : function(id) { - return this.hasIParamPromptUnitData(id); - }, - - getIsDialog : function(id) { - return true; - }, - - getShouldAutoResize : function(id) { - return true; - }, - - setVisibility : function(id) { - var swf = bobj.crv.params.FlexParameterBridge.getSWF(id); - if (swf) { - var P_STYLE = swf.parentNode.style; - - P_STYLE.position = 'absolute'; - P_STYLE.visibility = 'visible'; - P_STYLE.borderStyle = 'none'; - P_STYLE.opacity = 1; - - if (swf.focus !== undefined) { - swf.focus(); - } - } - }, - - getReportStateInfo : function(id) { - var s = bobj.crv.stateManager.getComponentState(id); - if (s && s.common && s.common.reqCtx) { - return MochiKit.Base.serializeJSON(s.common.reqCtx); - } - }, - - setReportStateInfo : function(id, rsInfo) { - var s = bobj.crv.stateManager.getComponentState(id); - if (s && s.common && s.common.reqCtx) { - s.common.reqCtx = MochiKit.Base.evalJSON(unescape(rsInfo)); - } - }, - - sendAsyncRequest : function(id, args) { - bobj.event.publish('crprompt_asyncrequest', id, args); - }, - - readyToShow: function(id) { - this.processingCancel(id); - } -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ViewerListener.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ViewerListener.js deleted file mode 100644 index c02f99ec4..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/ViewerListener.js +++ /dev/null @@ -1,1110 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/** - * ViewerListener Constructor. Handles Viewer UI events. - */ - -if(typeof(bobj.crv.Async) == 'undefined') { - bobj.crv.Async = {}; -} - -bobj.crv.ViewerListener = function(viewerName, ioHandler) { - this._name = viewerName; - this._viewer = null; - this._promptPage = null; - this._paramCtrl = null; - this._ioHandler = ioHandler; - this._reportProcessing = null; - - var connect = MochiKit.Signal.connect; - var subscribe = bobj.event.subscribe; - var bind = MochiKit.Base.bind; - - var widget = window[viewerName]; - if (widget) { - if (widget.widgetType == 'Viewer') { - this._viewer = widget; - this._reportProcessing = this._viewer._reportProcessing; - } - else if (widget.widgetType == 'PromptPage') { - this._promptPage = widget; - this._reportProcessing = this._promptPage._reportProcessing; - } - } - - if (this._viewer) { - // ReportAlbum events - connect(this._viewer, 'selectView', this, '_onSelectView'); - connect(this._viewer, 'removeView', this, '_onRemoveView'); - - // Toolbar events - connect(this._viewer, 'firstPage', this, '_onFirstPage'); - connect(this._viewer, 'prevPage', this, '_onPrevPage'); - connect(this._viewer, 'nextPage', this, '_onNextPage'); - connect(this._viewer, 'lastPage', this, '_onLastPage'); - connect(this._viewer, 'selectPage', this, '_onSelectPage'); - connect(this._viewer, 'zoom', this, '_onZoom'); - connect(this._viewer, 'drillUp', this, '_onDrillUp'); - connect(this._viewer, 'refresh', this, '_onRefresh'); - connect(this._viewer, 'search', this, '_onSearch'); - connect(this._viewer, 'export', this, '_onExport'); - connect(this._viewer, 'print', this, '_onPrint'); - - // Tool Panel events - connect(this._viewer, 'resizeToolPanel', this, '_onResizeToolPanel'); - connect(this._viewer, 'hideToolPanel', this, '_onHideToolPanel'); - connect(this._viewer, 'grpDrilldown', this, '_onDrilldownGroupTree'); - connect(this._viewer, 'grpNodeRetrieveChildren', this, '_onRetrieveGroupTreeNodeChildren'); - connect(this._viewer, 'grpNodeCollapse', this, '_onCollapseGroupTreeNode'); - connect(this._viewer, 'grpNodeExpand', this, '_onExpandGroupTreeNode'); - connect(this._viewer, 'showParamPanel', this, '_onShowParamPanel'); - connect(this._viewer, 'showGroupTree', this, '_onShowGroupTree'); - connect(this._viewer, 'viewChanged', this, '_onChangeView'); - connect(this._viewer, 'resetParamPanel', this, '_onResetParamPanel'); - connect(this._viewer, 'printSubmitted', this, '_onSubmitPrintPdf'); - connect(this._viewer, 'exportSubmitted', this, '_onSubmitExport'); - connect(this._viewer, 'initialized', this, '_onViewerInitialization'); - - } - - // Report Page Events - subscribe('drilldown', this._forwardTo('_onDrilldown')); - subscribe('drilldownGraph', this._forwardTo('_onDrilldownGraph')); - subscribe('drilldownSubreport', this._forwardTo('_onDrilldownSubreport')); - subscribe('sort', this._forwardTo('_onSort')); - subscribe('hyperlinkClicked', this._forwardTo('_onHyperlinkClicked')); - subscribe('displayError', this._forwardTo('_displayError')); - - // Prompt events - subscribe('crprompt_param', this._forwardTo('_onSubmitStaticPrompts')); - subscribe('crprompt_pmtEngine', this._forwardTo('_onSubmitPromptEnginePrompts')); - subscribe('crprompt_logon', this._forwardTo('_onSubmitDBLogon')); - subscribe('crprompt_cancel',this._forwardTo('_onCancelParamDlg')); - subscribe('crprompt_flexparam', this._forwardTo('_onFlexParam')); - subscribe('crprompt_flexlogon', this._forwardTo('_onFlexLogon')); - subscribe('crprompt_asyncrequest', this._forwardTo('_onPromptingAsyncRequest')); - - - // Report Part Events - subscribe('pnav', this._forwardTo('_onNavigateReportPart')); - subscribe ('navbookmark', this._forwardTo('_onNavigateBookmark')); - subscribe ('updatePromptDlg', this._forwardTo('_onPromptDialogUpdate')); - - // Universal Events, No Target Checks - subscribe('saveViewState', bind(this._onSaveViewState, this)); - - if(widget) { - widget.init(); //must initialize widget after connecting event listeners as signals might be thrown during initialization - } - - if(bobj.isObject(window.jsUnit) && !window.jsUnit.testSuite) { - window.jsUnit.testSuite = new jsUnit.crViewerTestSuite(this); - } -}; - -bobj.crv.ViewerListener.prototype = { - - /** - * Public - * - * @return The current report view - */ - getCurrentView: function() { - if(this._viewer && this._viewer._reportAlbum) { - return this._viewer._reportAlbum.getSelectedView(); - } - - return null; - }, - - getPromptingType : function () { - return this._getCommonProperty('promptingType'); - }, - - _displayError : function(args) { - args = MochiKit.Base.parseQueryString(args); - - if (args && this._viewer ) { - var errorMessage = args.errorMessage || L_bobj_crv_RequestError; - var debug = args.debug || ""; - this.showError(errorMessage, debug); - } - }, - - /** - * Private. Wraps an event handler function with an event target check. - * - * @param handlerName [String] Name of the event handler method - * - * @return Function that can be used as a callback for subscriptions - */ - _forwardTo: function(handlerName) { - return MochiKit.Base.bind(function(target) { - if (target == this._name) { - var args = bobj.slice(arguments, 1); - this[handlerName].apply(this, args); - } - }, this); - }, - - _onViewerInitialization: function (isLoadContentOnInit) { - if(isLoadContentOnInit) { - this._initialLoadViewerContent (); - } - }, - - _onSaveViewState: function() { - this._saveViewState(); - }, - - _onSelectView: function(view) { - if (view) { - bobj.crv.logger.info('UIAction View.Select'); - - // Since "restore state" happens before events, we need to - // change the curViewId before making the server request - var state = bobj.crv.stateManager.getComponentState(this._name); - if (state) { - state.curViewId = view.viewStateId; - this._request({selectView: view.viewStateId}, bobj.crv.config.useAsync, true); - } - } - }, - - _onRemoveView: function(view) { - if (view) { - bobj.crv.logger.info('UIAction View.Remove'); - var viewerState = bobj.crv.stateManager.getComponentState(this._name); - if (viewerState) { - // Remove view from viewer state - delete viewerState[view.viewStateId]; - } - - var commonState = this._getCommonState(); - if (commonState) { - // Remove view from taborder - var idx = MochiKit.Base.findValue(commonState.rptAlbumOrder, view.viewStateId); - if (idx != -1) { - arrayRemove(commonState, 'rptAlbumOrder', idx); - } - } - } - }, - - _initialLoadViewerContent: function() { - bobj.crv.logger.info('UIAction InitLoad'); - this._request({ajaxInitLoad : true}, bobj.crv.config.useAsync, true); - }, - - _onFirstPage: function() { - bobj.crv.logger.info('UIAction Toolbar.FirstPage'); - this._request({tb:'first'}, bobj.crv.config.useAsync, true); - }, - - _onPrevPage: function() { - bobj.crv.logger.info('UIAction Toolbar.PrevPage'); - this._request({tb:'prev'}, bobj.crv.config.useAsync, true); - }, - - _onNextPage: function() { - bobj.crv.logger.info('UIAction Toolbar.NextPage'); - this._request({tb:'next'}, bobj.crv.config.useAsync, true); - }, - - _onLastPage: function() { - bobj.crv.logger.info('UIAction Toolbar.LastPage'); - this._request({tb:'last'}, bobj.crv.config.useAsync, true); - }, - - _onDrillUp: function() { - bobj.crv.logger.info('UIAction Toolbar.DrillUp'); - this._request({tb:'drillUp'}, bobj.crv.config.useAsync, true); - }, - - _onChangeView: function() { - if(this._paramCtrl) { - this._paramCtrl.onChangeView(); - } - }, - - _onResetParamPanel: function() { - if(this._isResettingParamPanel) { - return; - } - - this._isResettingParamPanel = true; - - if(this._paramCtrl) { - this._paramCtrl.setParameters([]); - delete this._paramCtrl; - } - - this.clearAdvancedPromptData(); - - var onFinishCB = bobj.bindFunctionToObject( function () { - this._isResettingParamPanel = false; - }, this); - - this._setInteractiveParams(null, onFinishCB); - }, - - _onSelectPage: function(pgTxt) { - bobj.crv.logger.info('UIAction Toolbar.SelectPage ' + pgTxt); - this._request({tb:'gototext', text:pgTxt}, bobj.crv.config.useAsync, true); - }, - - _onZoom: function(zoomTxt) { - bobj.crv.logger.info('UIAction Toolbar.Zoom ' + zoomTxt); - this._request({tb:'zoom', value:zoomTxt}, bobj.crv.config.useAsync, true); - }, - - _onExport: function(closeCB) { - var exportComponent = this._viewer._export; - if (exportComponent) { - if (closeCB) exportComponent.setCloseCB (closeCB); - - bobj.crv.logger.info('UIAction Toolbar.Export'); - exportComponent.show(true); - } - }, - - _onPrint: function(closeCB) { - var printComponent = this._viewer._print; - if (printComponent) { - if (closeCB) printComponent.setCloseCB (closeCB); - - if (printComponent.isActxPrinting) { - bobj.crv.logger.info('UIAction Toolbar.Print ActiveX'); - var pageState = bobj.crv.stateManager.getCompositeState(); - var postBackData = this._ioHandler.getPostDataForPrinting(pageState, this._name); - this._viewer._print.show(true, postBackData); - } - else { - var isOneClickPrint = this._getCommonProperty('pdfOCP') && bobj.hasPDFReaderWithJSFunctionality(); - if (isOneClickPrint) { - this._onSubmitPrintPdf(0, 0, isOneClickPrint); - } - else { - bobj.crv.logger.info('UIAction Toolbar.Print PDF'); - this._viewer._print.show(true); - } - } - } - }, - - _onResizeToolPanel: function(width) { - this._setCommonProperty('toolPanelWidth', width); - this._setCommonProperty('toolPanelWidthUnit', 'px'); - }, - - _onHideToolPanel: function() { - bobj.crv.logger.info('UIAction Toolbar.HideToolPanel'); - this._setCommonProperty('toolPanelType', bobj.crv.ToolPanelType.None); - }, - - _onShowParamPanel: function() { - bobj.crv.logger.info('UIAction Toolbar.ShowParamPanel'); - this._setCommonProperty('toolPanelType', bobj.crv.ToolPanelType.ParameterPanel); - }, - - _onShowGroupTree: function() { - bobj.crv.logger.info('UIAction Toolbar.ShowGroupTree'); - this._setCommonProperty('toolPanelType', bobj.crv.ToolPanelType.GroupTree); - }, - - _onDrilldown: function(drillargs) { - bobj.crv.logger.info('UIAction Report.Drilldown'); - this._request(drillargs, bobj.crv.config.useAsync, true); - }, - - _onDrilldownSubreport: function(drillargs) { - bobj.crv.logger.info('UIAction Report.DrilldownSubreport'); - this._request(drillargs, bobj.crv.config.useAsync, true); - }, - - _onDrilldownGraph: function(event, graphName, branch, offsetX, offsetY, pageNumber, nextpart, twipsPerPixel) { - if (event) { - bobj.crv.logger.info('UIAction Report.DrilldownGraph'); - var mouseX, mouseY; - - if(_ie || _saf || _ie11Up) { - mouseX = event.offsetX; - mouseY = event.offsetY; - } - else { - mouseX = event.layerX; - mouseY = event.layerY; - } - - var zoomFactor = parseInt(this._getCommonProperty('zoom'), 10); - zoomFactor = (isNaN(zoomFactor) ? 1 : zoomFactor/100); - - this._request({ name:encodeURIComponent(graphName), - brch:branch, - coord:(mouseX*twipsPerPixel/zoomFactor + parseInt(offsetX, 10)) + '-' + (mouseY*twipsPerPixel/zoomFactor +parseInt(offsetY, 10)), - pagenumber:pageNumber, - nextpart:encodeURIComponent(nextpart)}, - bobj.crv.config.useAsync, - true); - } - }, - - _onDrilldownGroupTree: function(groupName, groupPath, isVisible, groupNamePath) { - bobj.crv.logger.info('UIAction GroupTree.Drilldown'); - var encodedGroupName = encodeURIComponent(groupName); - var evtArgs = {drillname: encodedGroupName, gnpath: groupNamePath}; - if(isVisible) { - evtArgs.grp = groupPath; - } - else { - evtArgs.brch = groupPath; - } - - this._request(evtArgs, bobj.crv.config.useAsync, true); - }, - - _onRetrieveGroupTreeNodeChildren: function(groupPath) { - this._request({grow:groupPath}, bobj.crv.config.useAsync, true); - }, - - /* - * Removes groupPath from currentExpandedPaths in current view's state - */ - _onCollapseGroupTreeNode: function(groupPath) { - bobj.crv.logger.info('UIAction GroupTree.CollapseNode'); - var expPathPointer = this.getCurrentExpandedPaths(); // expPathPointer is assigned to expanded paths in memory - var groupPathArray = groupPath.split('-'); - - for(var i = 0 , end = groupPathArray.length - 1; i <= end ; i++) { - var nodeID = groupPathArray[i]; - if(expPathPointer[nodeID]) { - if(i == end) { - delete expPathPointer[nodeID]; - return; - } - expPathPointer = expPathPointer[nodeID]; - } - else { - return; - } - } - - }, - - showError: function(message,detailText) { - if(this._viewer) { - this._viewer.showError(message, detailText); - } - }, - - _onExpandGroupTreeNode: function(groupPath) { - bobj.crv.logger.info('UIAction GroupTree.ExpandNode'); - var expPathPointer = this.getCurrentExpandedPaths(); - var groupPathArray = groupPath.split('-'); - // Iterates through groupPath, and adds indxes to currentExpandedPaths if not existing - for(var i = 0 , end = groupPathArray.length; i < end; i++) { - var nodeID = groupPathArray[i]; - if(!expPathPointer[nodeID]) { - expPathPointer[nodeID] = {}; - } - expPathPointer = expPathPointer[nodeID]; - } - - }, - - _onRefresh: function() { - bobj.crv.logger.info('UIAction Toolbar.Refresh'); - - var commonState = this._getCommonState(); - var useAsyncForRefresh = true; - if (commonState && commonState.useAsyncForRefresh !== undefined) { - useAsyncForRefresh = commonState.useAsyncForRefresh; - } - - this._request({tb:'refresh'}, bobj.crv.config.useAsync && useAsyncForRefresh, true); - }, - - _onSearch: function(searchText) { - bobj.crv.logger.info('UIAction Toolbar.Search'); - this._request({tb:'search', text:encodeURIComponent(searchText)}, bobj.crv.config.useAsync, true); - }, - - /** - * Full Prompt page should use post back request even if ajax is enabled as it is unable to process the ajax response - */ - _canUseAsync : function () { - return this._viewer != null && bobj.crv.config.useAsync; - }, - - _onFlexParam: function(paramData){ - this._request({'crprompt':'flexPromptingSetValues', 'paramList':paramData, 'isFullPrompt': true}, this._canUseAsync()); - }, - - _onFlexLogon: function(logonData) { - for (var i = 0, len = logonData.length; i < len; i++) { - this._addRequestField(logonData[i].field, logonData[i].value); - } - - this._request({'crprompt':'logon'}, this._canUseAsync()); - }, - - /** - * - * @param isFullPrompt [String] a flag indicating whether the current prompt is full prompt which refreshes report content - * @return - */ - _onSubmitPromptEnginePrompts: function(isFullPrompt) { - - isFullPrompt = eval(isFullPrompt); //converting it to boolean type - var useAjax = this._viewer && this._viewer.isPromptDialogVisible(); //use ajax request when prompt dialog is visible - - /* - * this._name is used to get a unique id for prompt variables - * For dhtml and JSF viewer it will be the name of the viewer - * For webform viewer it will be the 'unique UI id' - */ - var valueIDKey = 'ValueID' + this._name; - var contextIDKey = 'ContextID' + this._name; - var contextHandleIDKey = 'ContextHandleID' + this._name; - - var valueID = document.getElementById(valueIDKey); - if (valueID) { - this._addRequestField(valueIDKey, valueID.value); - } - - var contextID = document.getElementById(contextIDKey); - if (contextID) { - this._addRequestField(contextIDKey, contextID.value); - } - - var contextHandleID = document.getElementById(contextHandleIDKey); - if (contextHandleID) { - this._addRequestField(contextHandleIDKey, contextHandleID.value); - } - - this._request({'crprompt':'pmtEngine', 'isFullPrompt': isFullPrompt}, useAjax); - - // These elements are dynamically created - we should delete them as soon after their job is done. - this._removeRequestField(valueIDKey); - this._removeRequestField(contextIDKey); - this._removeRequestField(contextHandleIDKey); - - }, - - _onSubmitStaticPrompts: function(formName) { - this._addRequestFields(formName); - this._request({'crprompt':'param'}, false); - }, - - _onSubmitDBLogon: function(formName) { - var useAjax = this._viewer && this._viewer.isPromptDialogVisible(); //use ajax request when prompt dialog is visible - - if(this._viewer) - this._viewer.hidePromptDialog(); - this._addRequestFieldsFromContent(formName); - /** - * use async when viewer is loaded (instead of promptpage) and it's allowed to make async requests - */ - - this._request({'crprompt':'logon'}, useAjax); - }, - - _onSubmitPrintPdf: function (start, end, isOneClickPrint) { - this._handlePrintOrExport (start, end, 'PDF', isOneClickPrint); - }, - - _onSubmitExport: function (start, end, format) { - this._handlePrintOrExport (start, end, format); - }, - - _handlePrintOrExport: function (start, end, format, isOneClickPrint) { - var isRange = true; - var useIframe = false; - if (!start && !end) { - isRange = false; - } - - if (!format) { - format = 'PDF'; - } - - var isOneClickPDFPrinting = (format == 'PDF' && isOneClickPrint); - var reqObj = {text:format, range:isRange+''}; - reqObj.tb = isOneClickPDFPrinting ? 'crpdfprint' : 'crexport'; - if (isRange) { - reqObj['from'] = start + ''; - reqObj['to'] = end + ''; - } - - bobj.crv.logger.info('UIAction Export.Submit ' + format); - // we want to redirect export requests to a Servlet (ASP should do nothing different) - if (this._ioHandler instanceof bobj.crv.ServletAdapter || this._ioHandler instanceof bobj.crv.FacesAdapter) { - useIframe = true; //always use iframe for exporting/printing in Java DHTML Viewer - this._ioHandler.redirectToServlet (); - this._ioHandler.addRequestField ('ServletTask', 'Export'); - this._ioHandler.addRequestField ('LoadInIFrame', useIframe); - } - else if(this._ioHandler instanceof bobj.crv.AspDotNetAdapter){ - useIframe = true;//always use iframe for exporting/printing in ASP - } - else { - useIframe = isOneClickPDFPrinting; - } - this._request(reqObj, false, false, useIframe); - }, - - _onCancelParamDlg: function() { - bobj.crv.logger.info('UIAction PromptDialog.Cancel'); - this._viewer.hidePromptDialog(); - }, - - _onReceiveParamDlg: function(html) { - this._viewer.showPromptDialog(html); - }, - - _onSort: function(sortArgs) { - bobj.crv.logger.info('UIAction Report.Sort'); - this._request(sortArgs, bobj.crv.config.useAsync, true); - }, - - _onNavigateReportPart: function(navArgs) { - bobj.crv.logger.info('UIAction ReportPart.Navigate'); - this._request(navArgs, false); - }, - - _onNavigateBookmark: function(navArgs) { - bobj.crv.logger.info('UIAction Report.Navigate'); - this._request(navArgs, bobj.crv.config.useAsync, true); - }, - - getCurrentExpandedPaths: function() { - var viewState = this._getViewState(); - if(viewState) { - return viewState.gpTreeCurrentExpandedPaths; - } - - //This return shouldn't get exectued - return {}; - }, - - applyParams: function(params) { - // TODO Dave can we just set the parsm into state since they've - // gone through client side validation? - if (params) { - bobj.crv.logger.info('UIAction ParameterPanel.Apply'); - var clonedParams = []; - var cloneFunc = MochiKit.Base.clone; - for(var i = 0, len = params.length; i < len; i++) { - var clonedParam = cloneFunc(params[i]); - clonedParam.modifiedValue = null; - clonedParam.value = cloneFunc(params[i].value); /* _encodeParameter modifes deep copy of value so I have to make a copy of it before encoding it */ - if (this._ioHandler instanceof bobj.crv.ServletAdapter || this._ioHandler instanceof bobj.crv.FacesAdapter) { - this._encodeParameter(clonedParam); - } - clonedParams.push(clonedParam); - } - - this._request({crprompt: 'paramPanel', paramList: clonedParams}, bobj.crv.config.useAsync, true); - } - }, - - getServletURI : function () { - var servletURL = ""; - if (this._ioHandler instanceof bobj.crv.ServletAdapter - || this._ioHandler instanceof bobj.crv.FacesAdapter) { - servletURL = this._ioHandler._servletUrl; - } - - return servletURL; - }, - - /** - * The loading time of HTML prompting resources is changed from initialization to on demand to reduce the initial loading time. - * When a request for advance dialog is triggered, resources are loaded prior to sending the request to server - * @param callBack - * @return - */ - showAdvancedParamDialog : function(param) { - var paramOpts = this._getCommonProperty('paramOpts'); - if(!paramOpts.canOpenAdvancedDialog) { - this.showError(L_bobj_crv_AdvancedDialog_NoAjax, L_bobj_crv_EnableAjax); - } - else { - this._focusedParamName = param.paramName; - - if (this._isPromptingTypeFlex()) { - var flexAdapter = bobj.crv.params.ViewerFlexParameterAdapter; - flexAdapter.setCurrentIParamInfo (this._name, this._paramCtrl, param); - - if (!flexAdapter.hasIParamPromptUnitData(this._name)) { - /* Need to fetch the interactive prompt data*/ - this._request({promptDlg: this._cloneParameter(param)}, true); - } else { - /* Already have enough data to prompt*/ - /* Creating 5+ range controls can take a long time */ - if (param.allowMultiValue && param.allowRangeValue && - param.modifiedValue.length > 5) { - if (this._reportProcessing) { - this._reportProcessing.Show(); - } - } - var closeCB = this._getPromptDialogCloseCB(); - this._viewer.showFlexPromptDialog(this.getServletURI(), closeCB); - } - } else { - /* Need to fetch the interactive parameter HTML*/ - this._request({promptDlg: this._cloneParameter(param)}, true); - } - } - }, - - _cloneParameter : function(param) { - var clonedParam = MochiKit.Base.clone(param); - clonedParam.defaultValues = null; // ADAPT00776482 - clonedParam.modifiedValue = null; - if (this._ioHandler instanceof bobj.crv.ServletAdapter || this._ioHandler instanceof bobj.crv.FacesAdapter) { - // we need to clone the value again - clonedParam.value = MochiKit.Base.clone(param.value); - clonedParam = this._encodeParameter(clonedParam); - } - return clonedParam; - }, - - _encodeParameter: function(p) { - // we only worry about the "%" sign in the "string" values, param name and the report name. - // ignore the other properties of the parameter because they are not used on the server side - if (p) { - if (p.value && p.valueDataType == bobj.crv.params.DataTypes.STRING) { - for (var i = 0, valuesLen = p.value.length; i < valuesLen; i++) { - if (bobj.isString(p.value[i])) { //discrete value - p.value[i] = encodeURIComponent(p.value[i]); - } - else if (bobj.isObject(p.value[i])) { //range value - var actualValue = null; - if (p.value[i].beginValue) { - actualValue = bobj.crv.params.getValue(p.value[i].beginValue); - p.value[i].beginValue = encodeURIComponent(actualValue); - } - if (p.value[i].endValue) { - actualValue = bobj.crv.params.getValue(p.value[i].endValue); - p.value[i].endValue = encodeURIComponent(actualValue); - } - } - } - } - - if (p.paramName) { - p.paramName = encodeURIComponent(p.paramName); - } - - if (p.reportName) { - p.reportName = encodeURIComponent(p.reportName); - } - } - - return p; - }, - - /** - * Set a property in the state associated with the current report view - * - * @param propName [String] The name of the property to set - * @param propValue [Any] The value of the property to set - */ - _setViewProperty: function(propName, propValue) { - var viewState = this._getViewState(); - if (viewState) { - viewState[propName] = propValue; - } - }, - - /** - * Get a property in the state associated with the current report view - * - * @param propName [String] The name of the property to retrieve - */ - _getViewProperty: function(propName) { - var viewState = this._getViewState(); - if (viewState) { - return viewState[propName]; - } - return null; - }, - - /** - * Set a property that's shared by all report views from the state - * - * @param propName [String] The name of the property to set - * @param propValue [String] The value to set - */ - _setCommonProperty: function(propName, propValue) { - var state = this._getCommonState(); - if (state) { - state[propName] = propValue; - } - }, - - /** - * Get a property that's shared by all report views from the state - * - * @param propName [String] The name of the property to retrieve - */ - _getCommonProperty: function(propName) { - var state = this._getCommonState(); - if (state) { - return state[propName]; - } - return null; - }, - - /** - * Set the UI properties to match the state associated with viewId - * - * @param viewId [String - optional] - */ - _updateUIState: function(viewId) { - - }, - - /** - * Get the state associated with the current report view - * - * @return State object or null - */ - _getViewState: function() { - var compState = bobj.crv.stateManager.getComponentState(this._name); - if (compState && compState.curViewId !== undefined) { - return compState[compState.curViewId]; - } - return null; - }, - - /** - * Get the state that's common to all report views - * - * @return State object or null - */ - _getCommonState: function() { - var compState = bobj.crv.stateManager.getComponentState(this._name); - if (compState) { - return compState.common; - } - return null; - }, - - /** - * Create CRPrompt instances from interactive parameters in state and pass - * them to the Viewer widget so it can display them in the parameter panel. - */ - _setInteractiveParams: function(paramList, onFinishCB) { - if (!this._ioHandler.canUseAjax()) { - var paramPanel = this._viewer.getParameterPanel(); - if (paramPanel) { - paramPanel.showError(L_bobj_crv_InteractiveParam_NoAjax); - } - onFinishCB(); - return; - } - - if (!paramList) { - var stateParamList = this._getCommonProperty('iactParams'); - - var unusedParamList = []; - if (stateParamList) { - var Parameter = bobj.crv.params.Parameter; - var paramList = []; - - for (var i = 0; i < stateParamList.length; ++i) { - if (stateParamList[i].isInUse != null && !stateParamList[i].isInUse) - unusedParamList.push(new Parameter(stateParamList[i])); - else - paramList.push(new Parameter(stateParamList[i])); - } - } - } - - if (paramList && paramList.length) { - var callback = function (viewerListener, paramList) { - return function () { - var paramPanel = viewerListener._viewer.getParameterPanel(); - if (paramPanel) { - var paramOpts = viewerListener._getCommonProperty('paramOpts'); - viewerListener._paramCtrl = new bobj.crv.params.ParameterController(paramPanel, viewerListener, paramOpts); - viewerListener._paramCtrl.setParameters(paramList, onFinishCB); - viewerListener._paramCtrl.setUnusedParameters(unusedParamList); - } - } - } - - bobj.loadJSResourceAndExecCallBack(bobj.crv.config.resources.ParameterControllerAndDeps, callback(this, paramList)); - } - else { - onFinishCB(); - } - }, - - _isPromptingTypeFlex: function() { - var type = this.getPromptingType(); - return (type && type.toLowerCase() == bobj.crv.Viewer.PromptingTypes.FLEX); - }, - - clearAdvancedPromptData: function() { - if (this._isPromptingTypeFlex()){ - bobj.crv.params.ViewerFlexParameterAdapter.clearIParamPromptUnitData(this._name); - } - }, - - _onPromptDialogUpdate: function(update) { - if (update.resolvedFields) { - this._viewer.hidePromptDialog(); - - if(this._paramCtrl) { - for (var i = 0; i < update.resolvedFields.length; i++) { - var param = new bobj.crv.params.Parameter(update.resolvedFields[i]); - this._paramCtrl.updateParameter(param.paramName, param.getValue()); - } - this._paramCtrl._updateToolbar(); - } - } - else { - if (this._isPromptingTypeFlex()) { - if(update.script) { - /* update.script contains JavaScript code for updating ViewerFlexParameterAdapter class*/ - bobj.evalInWindow(update.script); - var closeCB = this._getPromptDialogCloseCB(); - this._viewer.showFlexPromptDialog(this.getServletURI(), closeCB); - } - } - else - { - if(update.html) { - if (this._viewer.isPromptDialogVisible()) { - this._viewer.updatePromptDialog(update.html); - } - else { - var closeCB = this._getPromptDialogCloseCB(); - this._viewer.showPromptDialog(update.html, closeCB); - } - } - } - - } - }, - - _getPromptDialogCloseCB: function () { - var closeCB = null; - if (this._paramCtrl && this._focusedParamName) { - closeCB = this._paramCtrl.getFocusAdvButtonCB(this._focusedParamName); - - /* Clear the name so that if the dialog is used for a full prompt */ - /* it won't have the focus callback */ - this._focusedParamName = null; - } - return closeCB; - }, - - _onPromptingAsyncRequest: function(evArgs) { - this._request(evArgs, true, false, false); - }, - - _request: function(evArgs, allowAsynch, showIndicator, useIframe, callback) { - var pageState = bobj.crv.stateManager.getCompositeState(); - var bind = MochiKit.Base.bind; - var defaultCallback = callback ? callback : bind(this._onResponse, this, evArgs); - var defaultErrCallback = bind(this._onIOError, this); - if (!bobj.isBoolean (showIndicator)) { - showIndicator = true; - } - - if (this._reportProcessing && showIndicator) { - this._reportProcessing.delayedShow (); - } - - var deferred = this._ioHandler.request(pageState, this._name, evArgs, allowAsynch, useIframe, defaultCallback, defaultErrCallback); - - if (deferred) { - if (this._reportProcessing && showIndicator) { - this._reportProcessing.setDeferred (deferred); - } - - deferred.addCallback(defaultCallback); - - deferred.addErrback(defaultErrCallback); - } - }, - - _onResponse: function(evArgs, response) { - var json = null; - if (bobj.isString(response)) { - json = MochiKit.Base.evalJSON(response); - } else { - json = MochiKit.Async.evalJSONRequest(response); - } - - if (json) { - if (json.needsReload) { - this._request(evArgs, false, true); - return; - } - - if(json.redirect) { - window.location = json.redirect; - return; - } - - if (json.status && this._viewer && (json.status.errorMessage || json.status.debug) ) { - var errorMessage = json.status.errorMessage || L_bobj_crv_RequestError; - this.showError(errorMessage, json.status.debug); - } - - if (json.state) { - var jsonState = json.state; - if (bobj.isString(jsonState)) { - jsonState = MochiKit.Base.evalJSON(jsonState); - } - bobj.crv.stateManager.setComponentState(this._name, jsonState); - } - - if (json.update) { - if (json.update.promptDlg) { - this._onPromptDialogUpdate(json.update.promptDlg); - bobj.crv.logger.info('Update InteractiveParams'); - } - else if (this._viewer) { - this._viewer.update(json.update); - bobj.crv.logger.info('Update Viewer'); - } - } - - if (json.script && json.script.length > 0) { - bobj.evalInWindow(json.script); - bobj.crv.logger.info('Execute Script'); - } - - } - - if (this._reportProcessing) { - this._reportProcessing.cancelShow (); - } - - if(bobj.isParentWindowTestRunner()) - MochiKit.Signal.signal(this._viewer, "updated"); - }, - _onIOError: function(response) { - - if (this._reportProcessing.wasCancelled () == true) { - return; - } - - if (this._viewer) { - var error = this._ioHandler.processError (response); - var detailText = ''; - if (bobj.isString(error)) { - detailText = error; - } - else { - for (var i in error) { - if (bobj.isString(error[i]) || bobj.isNumber(error[i])) { - detailText += i + ': ' + error[i] + '\n'; - } - } - } - - this.showError(L_bobj_crv_RequestError, detailText); - } - - if (this._reportProcessing) { - this._reportProcessing.cancelShow (); - } - }, - - _saveViewState: function() { - var pageState = bobj.crv.stateManager.getCompositeState(); - this._ioHandler.saveViewState(pageState, this._name); - }, - - /** - * Private. Retrieve all children of the given form and add them to the request. - * - * @param formName [String] Name of the form - */ - _addRequestFields: function(formName) { - var frm = document.getElementById(formName); - if (frm) { - for (var i in frm) { - var frmElem = frm[i]; - if (frmElem && frmElem.name && frmElem.value) { - this._addRequestField(frmElem.name, frmElem.value); - } - } - } - }, - - /** - * Private. Retrieve all input fields inside the content div element and add them to the request. - * - * @param contentId [String] Id of the containing div element - */ - _addRequestFieldsFromContent: function(contentId) { - var parent = document.getElementById(contentId); - if (!parent) - return; - - var elements = MochiKit.DOM.getElementsByTagAndClassName("input", null, parent); - - for (var i in elements) { - var inputElement = elements[i]; - if(inputElement.type && inputElement.type.toLowerCase() == "checkbox" && inputElement.name) { - if(inputElement.checked) - this._addRequestField(inputElement.name, inputElement.value ); - } - else if (inputElement && inputElement.name && inputElement.value) { - this._addRequestField(inputElement.name, inputElement.value); - } - } - }, - - /** - * Private. Add the given name and value as a request variable. - * - * @param fldName [String] Name of the field - * @param fldValue [String] Value of the field - */ - _addRequestField: function(fldName, fldValue) { - this._ioHandler.addRequestField(fldName, fldValue); - }, - - /** - * Private. Add the given name and value as a request variable. - * - * @param fldName [String] Name of the field - */ - _removeRequestField: function(fldName) { - this._ioHandler.removeRequestField(fldName); - }, - - _onHyperlinkClicked: function(args) { - args = MochiKit.Base.parseQueryString(args); - var ls = this._viewer.getEventListeners('hyperlinkClicked'); - var handled = false; - if (ls) { - for (var i = 0, lsLen = ls.length; i < lsLen; i++) { - if (ls[i](args) == true){ - handled = true; - } - } - } - - if (handled) {return;} - - var w = window; - if (args.target && args.target != '_self'){ - w.open(args.url, args.target); - } else { - w.location = args.url; - } - - } -}; - - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/WarningPopup.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/WarningPopup.js deleted file mode 100644 index 8443a1a76..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/WarningPopup.js +++ /dev/null @@ -1,65 +0,0 @@ -if (typeof bobj === 'undefined') { - bobj = {}; -} -if (typeof bobj.crv === 'undefined') { - bobj.crv = {}; -} -if (typeof bobj.crv.WarningPopup === 'undefined') { - bobj.crv.WarningPopup = {}; -} - -bobj.crv.WarningPopup.getInstance = function() { - if (bobj.crv.WarningPopup.__instance === undefined) - bobj.crv.WarningPopup.__instance = new bobj.crv.WarningPopup.Class(); - - return bobj.crv.WarningPopup.__instance; -}; - -bobj.crv.WarningPopup.Class = function() { - this.layer = null; - this.id = bobj.uniqueId(); -}; - -bobj.crv.WarningPopup.Class.prototype = { - show : function(text, xPos, yPos) { - if (!this.layer) { - this.init(); - } - - this.layer.style.top = yPos + "px"; - this.layer.style.left = xPos + "px"; - this.txtLayer.innerHTML = text; - this.layer.style.display = "block"; - }, - - hide : function() { - if (this.layer) - this.layer.style.display = "none"; - }, - - getHTML : function() { - return bobj.html.DIV( { - 'class' : 'WarningPopup', - id : this.id - }, bobj.html.IMG( { - id : this.id + "img", - style : { - position : 'absolute', - left : '10px', - top : '-19px' - }, - src : bobj.crvUri('images/WarningPopupTriangle.gif') - }), bobj.html.DIV( { - id : this.id + "txt", - style : { - padding : "5px" - } - })); - - }, - init : function() { - append2(document.body, this.getHTML()); - this.layer = getLayer(this.id); - this.txtLayer = getLayer(this.id + "txt"); - } -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/api.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/api.js deleted file mode 100644 index 3cc3d3fb4..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/api.js +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright (c) Business Objects 2010. All rights reserved. -// CrystalReports DHTML Viewer SDK -// Version: Internal (Unsupported) -// ################################################################################### -// CRViewer object contains utilities that allow interaction with the CrystalReports DHTML viewer. -// CRViewer has the following properties and methods defined. -// CRViewer.getViewer() -// returns an CRViewer.Viewer object that represents the DHTML viewer on the current page. Use this object to interact with the DHTML viewer. -// CRViewer.getViewer().addEventListener (event type, listener function) -// Registers a listener function with the given event type. The listener function should return true if the event was handled and normal viewer processing should not occur. -// CRViewer.getViewer().removeEventListener (event type, listener function) -// Removes the listener for the given event type. -// CRViewer.Events -// returns an Array of event types that can be handled using event listeners -// CRViewer.Events.HyperlinkClicked -// An event that will be fired when a hyperlink is clicked. Note this event will only occur if the viewer is configured to render hyperlinks using javascript. -// Arguments to listeners of these events will be as follows: { url : 'url string', target : 'target for the link'} -// ################################################################################### - -if (typeof (CRViewer) == "undefined") { - CRViewer = { - - getViewer : function (/* optional */ viewerName) { - return this._getViewer(viewerName); - }, - - Events : { - HyperlinkClicked : "hyperlinkClicked" - }, - - _viewersMap : [], - _getViewer : function (viewerName) { - var map = this._viewersMap; - if (viewerName) { - for (var i = 0, len = map.length; i < len; i++) { - if (map[i].id == viewerName) { - return map[i]; - } - } - } else if (map.length > 0) { - return map[0]; - } - - return this._createViewer(viewerName); - }, - - _getRealViewer : function (viewerName) - { - if (viewerName) { - return getWidgetFromID(viewerName); - } else { - if (_widgets) { - for (var i = 0, len = _widgets.length; i < len; i++) { - if (_widgets[i].widgetType == "Viewer") { - return _widgets[i]; - } - } - } - } - }, - - _createViewer : function (viewerName) - { - var realViewer = this._getRealViewer(viewerName); - - if (realViewer && realViewer.widgetType == "Viewer") { - var o = {}; - o.id = realViewer.id; - o.realViewer = realViewer; - - o.addEventListener = function (event, listener) { - this.realViewer.addViewerEventListener(event, listener); - } - - o.removeEventListener = function (event, listener) { - this.realViewer.removeViewerEventListener(event, listener); - } - - this._viewersMap[this._viewersMap.length] = o; - return o; - } - } - }; -} \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/bobjcallback.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/bobjcallback.js deleted file mode 100644 index 4c6062249..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/bobjcallback.js +++ /dev/null @@ -1,34 +0,0 @@ -function bobj_WebForm_Callback (viewerID, callbackEventArgument, formID) { - if (!viewerID || !formID) { - return; - } - - var frm = document.getElementById(formID); // get the form by using viewerID - - if (!frm) { - return; - } - - var strArr = []; - for (var i = 0, itemCount = frm.elements.length; i < itemCount; i++) { - var elem = frm.elements[i]; - if (elem.name && elem.value) { - strArr.push(elem.name); - strArr.push('='); - strArr.push(encodeURIComponent(elem.value)); - strArr.push('&'); - } - } - - strArr.push('__BOBJ_CALLBACK_EVENTTARGET='); - strArr.push(encodeURIComponent(viewerID)); - strArr.push('&__BOBJ_CALLBACK_EVENTARGUMENT='); - strArr.push(encodeURIComponent(callbackEventArgument)); - var qryString = strArr.join(''); - - var req = MochiKit.Async.getXMLHttpRequest(); - req.open("POST", frm.action, true); - req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - req.setRequestHeader('Accept','application/json'); - return MochiKit.Async.sendXMLHttpRequest(req, qryString); -} \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/common.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/common.js deleted file mode 100644 index bd5f33821..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/common.js +++ /dev/null @@ -1,776 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof bobj == 'undefined') { - bobj = {}; -} - -if (typeof bobj.constants == 'undefined') { - bobj.constants = { - modalLayerIndex:1000 - }; -} - -/** - * @return [String] Returns a different id each time it's called - */ -bobj.uniqueId = function() { - return 'bobjid_' + (++bobj.uniqueId._count); -}; - -if (typeof bobj.uniqueId._count == 'undefined') { - bobj.uniqueId._count = new Date().getTime(); -} - -/** - * Like MochiKit.Base.update except that it checks each item in obj against - * a test function before adding it to self. - * - * @param test [Function] function that returns a boolean when passed (self, obj, key) - * @param self [Object|null] object to be updated - * @param obj [Object] object to copy properties from - */ -bobj.updateIf = function (test, self, obj/*, ... */) { - if (self === null) { - self = {}; - } - for (var i = 1, len = arguments.length; i < len; i++) { - var o = arguments[i]; - if (typeof(o) != 'undefined' && o !== null) { - for (var k in o) { - if (test(self, obj, k)) { - self[k] = o[k]; - } - } - } - } - return self; -}; - -/** - * Copy properties from obj to self if the properties are undefined in self - */ -bobj.fillIn = function (self, obj) { - var test = function(self, obj, k) { - return (typeof(self[k]) == 'undefined'); - } - bobj.updateIf(test, self, obj); -}; - - -bobj.isObject = function(obj) { - return (obj && typeof obj == 'object'); -}; - -bobj.isArray = function(obj) { - if(bobj.isObject(obj)) { - try { - return obj.constructor == Array; - } - catch(e) { - return false; - } - } - - return false; -}; - -bobj.isString = function(obj) { - return (typeof(obj) == 'string'); -}; - -bobj.isNumber = function(obj) { - return typeof(obj) == 'number' && isFinite(obj); -}; - -bobj.isBoolean = function(obj) { - return typeof obj == 'boolean'; -}; - -bobj.isFunction = function(obj) { - return typeof(obj) == 'function'; -}; - -/** - * Checks for the border box model, where css width includes padding and borders. - * IE uses this box model when a strict dtd is not specified. - * - * @return [boolean] Returns true if the border box model is being used - */ -bobj.isBorderBoxModel = function() { - if (typeof bobj.isBorderBoxModel._cachedValue == 'undefined') { - /* - * TODO: It is unnecessary to create DIV to check border box model. All we need to do is check _ie && quirksMode - * I didn't remove it for sake of not breaking different scenarios (requires alot of testing) - */ - if(document.body) { - var box = document.createElement('div'); - box.style.width = '10px'; - box.style.padding = '1px'; - box.style.position = 'absolute'; - box.style.visibility = 'hidden'; - - document.body.appendChild(box); - bobj.isBorderBoxModel._cachedValue = (box.offsetWidth == 10); - document.body.removeChild(box); - } - else { - return _ie && bobj.isQuirksMode(); - } - } - return bobj.isBorderBoxModel._cachedValue; -}; - -/** - * @return [boolean] True if the document is rendering in quirks mode - */ -bobj.isQuirksMode = function() { - return (document.compatMode != 'CSS1Compat'); -}; - -/* Sets the visual style of the specified element - * - * @param element [DOM node] - * @param visualStyle {} object containing visual styles - */ -bobj.setVisualStyle =function(element,visualStyle) { - - if(element === null || visualStyle === null) { - return; - } - - var elemStyle = element.style; - - if(visualStyle.className) - element.className = visualStyle.className; - - MochiKit.Iter.forEach ( [ "background", "borderWidth", "borderStyle", "borderColor", "fontFamily", "fontStyle", "fontSize", - "fontWeight", "textDecoration", "color", "width", "height", "left", "top" ], function(styleName) { - if (visualStyle[styleName]) - elemStyle[styleName] = visualStyle[styleName]; - }); - -}; - -/** - * Sets the outer size of an element, including padding, borders and margins. - * - * Note: Non-pixel units are ignored - * - * @param node [DOM node] - * @param w [Int - optional] Width in pixels - * @param h [Int - optional] Height in pixels - * @param excludeMargins [bool - optional] When true, margins are not included - * in the box size. - */ -bobj.setOuterSize = function(node, w, h, excludeMargins) { - var origStyle = null; - var nodeStyle = node.style; - if (nodeStyle.display == 'none') { - // Nodes have to be displayed to get their calculated styles. - // We display them but make them invisible and absolutely positioned - // so they don't affect the layout. - origStyle = { - visibility: nodeStyle.visibility, - position: nodeStyle.position, - display: 'none' - }; - - nodeStyle.visibility = 'hidden'; - nodeStyle.position = 'absolute'; - nodeStyle.display = ''; - } - - function pixels (selector) { - var value = MochiKit.DOM.getStyle(node, selector); - if (bobj.isString(value) && value.substring(value.length - 2 == 'px')) { - return (parseInt(value, 10) || 0); - } - return 0; - } - - if (bobj.isNumber(w)) { - if (!bobj.isBorderBoxModel()) { - w -= pixels('border-left-width'); - w -= pixels('border-right-width'); - w -= pixels('padding-left'); - w -= pixels('padding-right'); - - if(excludeMargins) { - w -= pixels('margin-left'); - w -= pixels('margin-right'); - } - } - nodeStyle.width = Math.max(0, w) + 'px'; - } - - if (bobj.isNumber(h)) { - if (!bobj.isBorderBoxModel()) { - if(excludeMargins) { - h -= pixels('margin-top'); - h -= pixels('margin-bottom'); - } - h -= pixels('border-top-width'); - h -= pixels('border-bottom-width'); - h -= pixels('padding-top'); - h -= pixels('padding-bottom'); - } - nodeStyle.height = Math.max(0, h) + 'px'; - } - - if (origStyle) { - nodeStyle.display = origStyle.display; - nodeStyle.position = origStyle.position; - nodeStyle.visibility = origStyle.visibility; - } -}; - -/** - * Get the node that contains a child widget. - * - * @param child [object] the widget whose parent node to be looked for - */ -bobj.getContainer = function(child) { - if (child && child.layer) { - return child.layer.parentNode; - } - return null; -}; - -/** - * Checks whether elem has a parent with the tag name equivalent to parentTagName - * - * @param elem [HTML node] the element whose parent is checked against parentTagName - * @param parentTagName [String] Parent's tagName ie) TABLE - * - * - * @return [boolean] True if elem has a parent with tagName equivalent to parentTagName - */ -bobj.checkParent = function(elem,parentTagName) { - var foundParent = false; - if(elem && parentTagName) { - parentTagName = parentTagName.toUpperCase(); - var parent = elem.parentNode; - - while(parent) { - if(parent.tagName == parentTagName) { - foundParent = true; - break; - } - parent = parent.parentNode; - } - } - - return foundParent; -}; - -/** - * Implements Array.slice for array-like objects. For example, the special - * "arguments" variable within function calls is array-like but doesn't have - * a slice method. - * - * @param arrayLike [Object] An array-like object as defined by MochiKit.Base.isArrayLike. - * @param begin [Number] Zero-based index at which to begin extraction. - * @param end [Number] Zero-based index at which to end extraction. - * Extracts up to but not including end. - * - * @return [Array] A shallow copy of the portion of the array specified or null if invalid argument. - */ -bobj.slice = function(arrayLike, begin, end) { - if (bobj.isArray(arrayLike)) { - return arrayLike.slice(begin, end); - } - else if (MochiKit.Base.isArrayLike(arrayLike)) { - var retArray = []; - - var endIdx = arrayLike.length; - if (bobj.isNumber(end) && end < endIdx) { - endIdx = end; - } - - begin = Math.max(begin, 0); - - for (var i = begin; i < endIdx; ++i) { - retArray.push(arrayLike[i]); - } - - return retArray; - } - return null; -}; - -/** - * Extract a range of elements from a string or array-like list (non-destructive) - * - * @param list [String | Array-Like] - * @param start [Int] Index of start, inclusive - * @param end [Int] Index of end, exclusive - * - * @return Array of extracted elements or Null - */ -bobj.extractRange = function(list, start, end) { - if (list && bobj.isNumber(start)) { - if (!bobj.isNumber(end) || end > list.length) { - end = list.length; - } - - start = Math.max(0, start); - - if (start < end) { - var s1 = 0, e1 = start; - var s2 = end, e2 = list.length; - - if (list.substring) { - return (list.substring(s1, e1) + list.substring(s2, e2)); - } - else { - return bobj.slice(list, s1, e1).concat(bobj.slice(list, s2, e2)); - } - } - } - return list; -}; - -/** - * Returns a value with a unit appended - * - * @param val [int or string] - * @param unit [sring - optional] Defaults to 'px' - * - * @return [string] Returns val as a string with unit appended if val is a - * number. Returns val without modification if val is not a number. - */ -bobj.unitValue = function(val, unit) { - if (bobj.isNumber(val)) { - return val + (unit || 'px'); - } - return val; -}; - -/** - * Evaluate an expression in the window (global) scope - * - * @param expression [String] Expression to evaluate - * - * @return Returns the result of the evaluation - */ -bobj.evalInWindow = function(expression) { - if (window.execScript) { // Internet Explorer - return window.execScript(expression); - } - else { - return MochiKit.Base.bind(eval, window, expression).call(); - } -}; - -/** - * Loads specified resource and executes callback - */ -bobj.loadJSResourceAndExecCallBack = function(resource, callback) -{ - if(!resource || !callback) - return; // if arguments are not defined, just return - - /* - * If bobj.crv.config.useCompressedScripts is true, then the resource is already loaded and we can skip loading - */ - if(!resource.isLoaded) { - var onLoad = function(resource, callback, response) { - resource.isLoaded = true; - bobj.evalInWindow(response.responseText); - callback.apply(); - }; - - var req = MochiKit.Async.getXMLHttpRequest(); - req.open("GET", bobj.crvUri(resource.path), true); - req.setRequestHeader('Accept','application/x-javascript,application/javascript, text/javascript'); - var deferred = MochiKit.Async.sendXMLHttpRequest(req); - deferred.addCallback(MochiKit.Base.bind(onLoad, this, resource, callback)); - } - else { - setTimeout(function(){callback.apply()},0); - } -}; - -/** - * Remove whitespace from the left end of a string. - * - * @param str [String] - * - * @return [String] Returns a string with no leading whitespace - */ -bobj.trimLeft = function(str) { - str = str || ''; - return str.replace(/^\s+/g, ''); -}; - -/** - * Remove whitespace from the right end of a string. - * - * @param str [String] - * - * @return [String] Returns a string with no trailing whitespace - */ -bobj.trimRight = function(str) { - str = str || ''; - return str.replace(/\s+$/g, ''); -}; - -/** - * Remove whitespace from both ends of a string. - * - * @param str [String] - * - * @return [String] Returns a string with no leading or trailing whitespace - */ -bobj.trim = function(str) { - return bobj.trimLeft(bobj.trimRight(str)); -}; - -/** - * Check if the two inputs (and their contents) are equal. - * - * @param obj1 [Any] - * @param obj2 [Any] - * - * @return [boolean] Returns true if the two inputs are equal. - */ -bobj.equals = function (obj1, obj2) { - if (typeof(obj1) != typeof(obj2)) { - return false; - } - - if (bobj.isObject(obj1)) { - var same = true; - for (var prop in obj1) { - same = same && bobj.equals(obj1[prop], obj2[prop]); - } - return same; - } - else { - return obj1 == obj2; - } -}; - -/** - * Creates a stylesheet link and adds it to document body - * @param1 href [String] location of css file - * - */ -bobj.includeLink = function(href) { - var head = document.getElementsByTagName("head")[0]; - var body = document.body; - - var link = document.createElement("link"); - link.setAttribute("rel","stylesheet"); - link.setAttribute("type","text/css"); - link.setAttribute("href",href); - - if(head) { - head.appendChild(link); - } - else if(body) { - body.appendChild(link); - } - -}; - -/** - * @param hrefArray Array of url of css files - * @param callback function that gets executed once all css files are loaded - */ -bobj.includeCSSLinksAndExecuteCallback = function (hrefArray, callback) { - if(hrefArray == null || hrefArray.length < 1) { - callback.apply(); - return; - } - - var cb = function () { - var me = arguments.callee; - var callback = me.callback; - me.hrefCount--; - if(me.hrefCount == 0) - callback.apply(); - } - - cb.hrefCount = hrefArray.length; - cb.callback = callback; - - for(var i = 0, len = hrefArray.length; i < len; i++) { - bobj.includeCSSLinkAndExecuteCallback(hrefArray[i], cb); - } -}; - -bobj.includeCSSLinkAndExecuteCallback = function(href, callback) { - var cssLinkId = encodeURIComponent(href); - - /*if a css file with same href is already added, execute cb and continue */ - if(getLayer(cssLinkId)) { - callback.apply(); - return; - } - - /*if css file successfully loads, add css text and call callback*/ - var onLoad = function(callback, linkId, response) { - bobj.addStyleSheet(response.responseText, linkId); - callback.apply(); - }; - - /*if css file fails to load, continue with callback */ - var onError = function(callback) { - callback.apply(); - }; - - var req = MochiKit.Async.getXMLHttpRequest(); - req.open("GET", href, true); - req.setRequestHeader('Accept','text/css'); - var deferred = MochiKit.Async.sendXMLHttpRequest(req); - var cb = MochiKit.Base.bind(onLoad, this, callback, cssLinkId) - var eb = MochiKit.Base.bind(onError, this, callback) - deferred.addCallbacks(cb, eb); -}; - -bobj.addStyleSheet = function(stylesheet,id) { - var style = document.createElement('style'); - style.setAttribute("type", "text/css"); - - if(id) { - style.setAttribute("id", id); - } - - if (style.styleSheet) { - style.styleSheet.cssText = stylesheet; - } - else { - style.appendChild(document.createTextNode(stylesheet)); - } - - var head = document.getElementsByTagName('head'); - var body = document.getElementsByTagName('body'); - - if(head && head[0]) { - head[0].appendChild(style); - } - else if(body && body[0]) { - body[0].appendChild(style); - } - -}; - -bobj.removeAllChildElements = function(elem) { - if(elem) { - while(elem.lastChild) { - elem.removeChild(elem.lastChild); - } - } -}; - -bobj.getValueHashCode = function(valueType, value) { - var Types = bobj.crv.params.DataTypes; - switch(valueType) { - case Types.BOOLEAN : - case Types.CURRENCY: - case Types.NUMBER: - case Types.STRING: - return '' + value; - case Types.TIME: - return '' + value.h + ',' + value.min + ',' + value.s + ',' + value.ms; - case Types.DATE: - return '' + value.y + ',' + value.m + ',' + value.d; - case Types.DATE_TIME: - return '' + value.y + ',' +value.m + ',' + value.d + ',' + value.h + ',' + value.min + ',' + value.s + ',' + value.ms; - } -}; - -/** - * Checks if there's a DOM element whose ID attribute matches the given string. If not, continue to search for a DOM element - * whose Name attribute matches the given string. - * - * @param idOrName [string] The ID or Name of the element to search for. - * @return [DOM element] Returns a DOM element, or null. - */ -bobj.getElementByIdOrName = function (idOrName) { - if (!idOrName) { - return null; - } - - var elem = document.getElementById(idOrName); - if (elem) { - return elem; - } - - var elems = document.getElementsByName(idOrName); - if (elems && elems.length > 0) { - return elems[0]; - } - - return null; -}; - -/* - * Returns a rectangle that can be used for css clip property - * @param top, right, bottom, left [Int] - * @return [String] returns rect(top,right,bottom,left) in pixel unit - */ -bobj.getRect = function(top, right, bottom, left) { - return "rect(" + top + "px, "+ right + "px," + bottom + "px," + left + "px)"; -} - -bobj.getBodyScrollDimension = function() { - var w = 0; - var h = 0; - var bodyTags = document.getElementsByTagName("Body"); - if(bodyTags && bodyTags[0]) { - w = bodyTags[0].scrollWidth; - h = bodyTags[0].scrollHeight; - } - - return {w : w, h : h}; -} -/** - * Disables tabbing on element specified - * @param layer, The layer that will be modified - * @param dis [boolean], true would disable tabbing on element - */ -bobj.disableTabbingKey = function(layer, dis) { - if(layer) { - //Setting tabIndex value to (-1) would prevent tabbing to the DOM layer - layer.tabIndex = dis ? -1 : 0; - } -} - - -bobj.getStringWidth = function(string, fontFamily, fontSize) { - if(document.body) { - var span = document.createElement('span'); - span.appendChild(document.createTextNode(string)); - span.style.position = 'absolute'; - span.style.visibility = 'hidden'; - - if(fontFamily) - span.style.fontFamily = fontFamily; - - if(fontSize) - span.style.fontSize = fontSize; - - document.body.appendChild(span); - var width = span.offsetWidth; - document.body.removeChild(span); - return width; - } - - return 0; -} - -bobj.deleteWidget = function(widget) { - if(widget && widget.widx) { - if(widget.layer) { - - //Helps GC reclaim memory. Essential to IE memory leak - widget.layer.click = null; - widget.layer.onmouseup = null; - widget.layer.onmousedown = null; - widget.layer.onmouseover = null; - widget.layer.onmousemove = null; - widget.layer.onmouseout = null; - widget.layer.onchange = null; - widget.layer.onfocus = null; - widget.layer.onkeydown = null; - widget.layer.onkeyup = null; - widget.layer.onkeypress = null; - - var parent = widget.layer.parentNode; - if(parent) { - parent.removeChild(widget.layer); //removing child from parent - } - delete widget.layer; - } - - delete widget.css; - delete _widgets[widget.widx]; // cleans DHTML_Lib collection of widgets - _widgets[widget.widx] = null; /* for debugging purpose only */ - - delete widget; - } -}; - -bobj.cloneArray = function(array) { - return array.slice(); -}; - -/** - * returns a function that would execute obj.func with obj as the context - * Similar to MochiKit.Base.bind, but this is a lot faster - */ -bobj.bindFunctionToObject = function(func, obj) { - return function () { - return func.apply(obj, arguments); - }; -}; -/** - * Object.superClass will be populated with all functions defined in superClass - */ -bobj.extendClass = function(object, ObjectClassDefinition, superClass) { - MochiKit.Base.update(object, ObjectClassDefinition); - - object.superClass = {}; - for ( var funcName in superClass) { - object.superClass[funcName] = bobj.bindFunctionToObject(superClass[funcName], object);; - } -}; - -bobj.displayElementWithAnimation = function (element) { - if(element != null) { - MochiKit.DOM.setOpacity(element, 0); //to reserve the element's space - MochiKit.Style.setDisplayForElement("block", element); - new MochiKit.Visual.appear(element, {duration: 0.5}); - } -}; - -/** - * Returns dimension of element when it is invisible.DOM.offsetHeight should be used when - * element is visible to avoid execution cost of this method - */ -bobj.getHiddenElementDimensions = function (element) { - var size = { w : 0, h : 0}; - if(element) { - var body = document.body; - var clonedNode = element.cloneNode(true); //clone and append the node to body as - var nodeStyle = clonedNode.style; - nodeStyle.display = ""; - nodeStyle.visibility = "hidden"; - nodeStyle.width = ""; - nodeStyle.height = ""; - nodeStyle.position = "absolute"; - nodeStyle.left = "-1000px"; - nodeStyle.top = "-1000px"; - body.appendChild(clonedNode); - size = { w : clonedNode.offsetWidth, h : clonedNode.offsetHeight}; - body.removeChild(clonedNode); - } - - return size; -} - -/** - * Checks for PDF reader that has the ability to process JavaScript. - * Currently, it checks for Adobe Acrobat Reader version >= 7 on IE and Version >= 8 on other browsers. - */ -bobj.hasPDFReaderWithJSFunctionality = function() { - if (navigator.plugins) { - var plugins = navigator.plugins; - for (var i=0, len=plugins.length; i < len; i++) { - if (plugins[i].description.indexOf('Adobe PDF Plug-In') != -1) { - return true; - } - } - } - - try { - var pdfReader = new ActiveXObject('AcroPDF.PDF.1'); - if (pdfReader) { - return true; - } - } catch (e) {} - - return false; -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/crv.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/crv.js deleted file mode 100644 index 2f2d3b284..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/crv.js +++ /dev/null @@ -1,536 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof(bobj) == 'undefined') { - bobj = {}; -} - -if (typeof(bobj.crv) == 'undefined') { - bobj.crv = {}; - - // Constants used in the viewer - bobj.crv.ActxPrintControl_CLSID = 'B7DA1CA9-1EF8-4831-868A-A767093EA685'; - bobj.crv.ActxPrintControl_Version = '13,0,15,1840'; - - // Configuration for ALL viewers in a page - // TODO The dhtmllib doesn't currently suport widgets from different locales - // on the same page. We will need that support for the viewer. - bobj.crv.config = { - isDebug : false, - scriptUri: null, // The uri for the viewer script dir (that holds crv.js) - skin: "skin_standard", - needFallback: true, - lang: "en", - useCompressedScripts: true, - useAsync : true, - indicatorOnly: false, - resources : { - 'HTMLPromptingSDK' : {isLoaded: false, path : '../../promptengine-compressed.js'}, - 'ParameterControllerAndDeps' : {isLoaded: false, path: '../../parameterUIController-compressed.js'} - }, - logging: { enabled: false, id: 0} - }; - - bobj.crv.logger = { - info: function(){ /* Do Nothing */} - }; - - // Udate configuration with properties from crv_config, if it exists - if (typeof(crv_config) == 'object') { - for (var i in crv_config) { - bobj.crv.config[i] = crv_config[i]; - } - } - - // If the uri for the bobj.crv script dir wasn't set, try to figure it out - if (!bobj.crv.config.scriptUri) { - var scripts = document.getElementsByTagName("script"); - var reCrvJs = /(.*)crv\.js$/i; - - for(var i = 0; i < scripts.length; i++) { - var src = scripts[i].getAttribute("src"); - if(!src) { continue; } - - var matches = src.match(reCrvJs); - - if(matches && matches.length) { - bobj.crv.config.scriptUri = matches[1]; - break; - } - } - - if (!bobj.crv.config.scriptUri ) { - bobj.crv.config.scriptUri = ''; - if (bobj.crv.config.isDebug) { - throw "bobj.crv.config.scriptUri is undefined"; - } - } - } - - /** - * Parse a URI into its constitutents as defined in RFC2396 - * - * @param uri [String] Uri to parse - * - * @return Returns object has string values for the uri's components - */ - bobj.parseUri = function(uri) { - var regExp = "^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$"; - var result = uri.match(new RegExp(regExp)); - return { - scheme : result[2], - authority : result[4], - path : result[5], - query : result[7], - fragment : result[9] - }; - }; - - - bobj.crvUri = function(uri) { - return bobj.crv.config.scriptUri + uri; - }; - - /** - * A helper method for evaluating whether parent window is JSUnit test runner - */ - bobj.isParentWindowTestRunner = function() { - try { - var tempTop = top || window; - while(tempTop.top && tempTop.top != tempTop) { - tempTop = tempTop.top; - } - - return tempTop.jsUnitTestSuite !== undefined; - } - - catch(err){} - - return false; - }; - - bobj.skinUri = function(uri) { - return bobj.crvUri("../dhtmllib/images/") + bobj.crv.config.skin + "/" + uri; - }; - - /** - * Create a widget using json - * eg. - * createWidget({ - * cons: bobj.crv.myWidget, - * args: {foo: 'bar'}, - * children: [ {cons: ...}, ...] - * }); - * - * @param json [Object] Object representing the widget - * @return Returns the widget or null if creation failed - */ - bobj.crv.createWidget = function(json) { - if (!bobj.isObject(json)){ - return null; - } - - var constructor = json.cons; - if (bobj.isString(constructor)) { - try { - constructor = eval(constructor); - } - catch (err) { - if (bobj.crv.config.isDebug) { - throw "bobj.crv.createWidget: invalid constructor"; - } - } - } - - if (!bobj.isFunction(constructor)) { - if (bobj.crv.config.isDebug) { - throw "bobj.crv.createWidget: invalid constructor"; - } - return null; - } - - var widget = constructor(json.args); - - if (bobj.isArray(json.children)) { - if (widget.delayedBatchAdd) { - widget.delayedBatchAdd(json.children); - } - else if (widget.addChild){ - for (var i = 0, len = json.children.length; i < len; ++i) { - var child = bobj.crv.createWidget(json.children[i]); - widget.addChild(child); - } - } - } - - return widget; - }; - - /** - * Create a widget using bobj.crv.createWidget and write it to the document. - * If optional element is given, the innerHTML is written instead and scripts - * are executed. - * - * @param json [Object] Object representing the widget - * @return Returns the widget or null if creation failed - */ - bobj.crv.writeWidget = function(json, element) { - - var widget = bobj.crv.createWidget(json); - if (widget) { - if(element){ - var html = widget.getHTML(); - var ext = bobj.html.extractHtml(html); - var links = ext.links; - element.innerHTML = html; - for(var iLinks = 0, linksLen = links.length; iLinks < linksLen; ++iLinks){ - bobj.includeLink(links[iLinks]); - } - - var scripts = ext.scripts; - for (var iScripts = 0, scriptsLen = scripts.length; iScripts < scriptsLen; ++iScripts) { - var script = scripts[iScripts]; - if (!script) {continue;} - - if (script.text) { - try { - bobj.evalInWindow(script.text); - } - catch(err) {} - } - } - - var styleText = ""; - for (var i = 0, len = ext.styles.length; i < len ; i++) { - styleText += ext.styles[i].text + '\n'; - } - - if(styleText.length > 0) { - bobj.addStyleSheet(styleText); - } - } - else { - widget.write(); - } - } - return widget; - }; - - /** - * Initialize a widget. - * - * @param widx [Int] Widget index - * @param initElt [DOM Node, opt] The element that called the init event - */ - bobj.crv._initWidget = function(widx, initElt) { - try { - var widget = _widgets[widx]; - widget.init(); - - if (initElt) { - MochiKit.DOM.removeElement(initElt); - } - } - catch (err) { - if (bobj.crv.config.isDebug) { - var msg = "bobj.crv._initWidget: Couldn't initialize widget: "; - msg += 'widx=' + widx; - msg += ', type='; - if (!_widgets[widx]) { - msg += 'null'; - } - else if (bobj.isString(_widgets[widx].widgetType)) { - msg += _widgets[widx].widgetType; - } - else - { - msg += 'unknown'; - } - msg += ' because: ' + err; - throw msg; - } - } - }; - - /** - * Creates an hidden image tag that initializes a widget using its onload - * event. The tag should be appended to the html of the widget. - * - * Note: doesn't work in Opera 9, but we don't support that yet - * - * TODO nested widgets fail in Firefox because parent's init method has to - * be called after child's init method and the timing of the img onload - * events looks to be unpredictable. onerror might be more predictable if - * no src is specified... is it supported in Safari? - * - * @param widx [Int] Widget index - * - * @return Returns html that initializes the widget with index == widx - - bobj.crv.getInitHTML = function(widx) { - return bobj.html.IMG({ - style: {display:'none'}, - //onload: 'bobj.crv._initWidget(' + widx + ', this);', - onload: "alert('loading " + widx + "')", - src: bobj.crvUri("../dhtmllib/images/transp.gif") - }); - }*/ - - /** - * Returns HTML that auto-intializes a widget. - */ - bobj.crv.getInitHTML = function(widx) { - var scriptId = 'bobj_crv_getInitHTML_' + widx; - return ''; - }; - - bobj.crv._preloadProcessingIndicatorImages = function() { - var relativeImgPath = bobj.crvUri("../dhtmllib/images/" + bobj.crv.config.skin + "/"); - var images = []; - var imgNames = [ - "wait01.gif", - "dialogtitle.gif", - "dialogelements.gif", - "../transp.gif"]; - - for(var i = 0, len = imgNames.length; i < len; i++){ - images[i] = new Image(); - images[i].src = relativeImgPath + imgNames[i]; - } - }; - - bobj.crv._loadJavaScript = function(scriptFile) { - if (scriptFile) { - document.write(''); - } - }; - - /** - * Include the viewer's scripts in the document. - */ - bobj.crv._includeAll = function() { - - bobj.crv._includeLocaleStrings(); - - if (bobj.crv.config.useCompressedScripts) { - if (bobj.crv.config.indicatorOnly) { - bobj.crv._loadJavaScript('../../processindicator.js'); - } - else { - bobj.crv._loadJavaScript('../../allInOne.js'); - if(!bobj.crv.config.useAsync) { - for(var name in bobj.crv.config.resources) { - var resource = bobj.crv.config.resources[name]; - resource.isLoaded = true; - bobj.crv._loadJavaScript(resource.path); - } - } - if (bobj.crv.config.logging.enabled) { - bobj.crv._loadJavaScript('../log4javascript/log4javascript.js'); - } - } - return; - } - else { - // list of script uris relative to crv.js - var scripts = []; - if (bobj.crv.config.indicatorOnly) { - scripts = [ - '../MochiKit/Base.js', - '../dhtmllib/dom.js', - 'initDhtmlLib.js', - '../dhtmllib/dialog.js', - '../dhtmllib/waitdialog.js', - 'common.js', - 'Dialogs.js' - ]; - } - else { - scripts = [ - '../MochiKit/Base.js', - '../MochiKit/Async.js', - '../MochiKit/DOM.js', - '../MochiKit/Style.js', - '../MochiKit/Signal.js', - '../MochiKit/New.js', - '../MochiKit/Color.js', - '../MochiKit/Iter.js', - '../MochiKit/Visual.js', - '../log4javascript/log4javascript_uncompressed.js', - '../external/date.js', - '../dhtmllib/dom.js', - 'initDhtmlLib.js', - '../dhtmllib/palette.js', - '../dhtmllib/menu.js', - '../dhtmllib/psheet.js', - '../dhtmllib/treeview.js', - '../dhtmllib/dialog.js', - '../dhtmllib/waitdialog.js', - '../../prompting/js/promptengine_prompts2.js', - '../../prompting/js/promptengine_calendar2.js', - '../swfobject/swfobject.js', - 'common.js', - 'encoding.js', - 'html.js', - 'ImageSprites.js', - 'Toolbar.js', - 'Statusbar.js', - 'PanelNavigator.js', - 'PanelNavigatorItem.js', - 'PanelHeader.js', - 'LeftPanel.js', - 'GroupTreeNode.js', - 'GroupTree.js', - 'GroupTreeListener.js', - 'ToolPanel.js', - 'ReportPage.js', - 'ReportView.js', - 'ButtonList.js', - 'ReportAlbum.js', - 'Separator.js', - 'Viewer.js', - 'ViewerListener.js', - 'StateManager.js', - 'IOAdapters.js', - 'ArgumentNormalizer.js', - 'event.js', - 'PromptPage.js', - 'Dialogs.js', - 'StackedTab.js', - 'StackedPanel.js', - 'Parameter.js', - 'ParameterController.js', - 'Colors.js', - 'TextField.js', - 'TextCombo.js', - 'RangeField.js', - 'ParameterValueRow.js', - 'ParameterInfoRow.js', - 'OptionalParameterValueRow.js', - 'ParameterUI.js', - 'OptionalParameterUI.js', - 'ParameterDialog.js', - 'ParameterPanelToolbar.js', - 'ParameterPanel.js', - 'bobjcallback.js', - 'Calendar.js', - 'WarningPopup.js', - '../FlexParameterBridge.js', - 'ViewerFlexParameterAdapter.js', - 'SignalDisposer.js' - ]; - } - - if(bobj.isParentWindowTestRunner()) { - scripts.push('../jsunit/tests/crViewerTestSuite.js'); - } - - for (var i = 0, len = scripts.length; i < len; i++) { - document.write(''); - } - - for(var i in bobj.crv.config.resources){ - //all Resources are automatically loaded at initialization when useCompressedScripts is false (in debug mode) - bobj.crv.config.resources[i].isLoaded = true; - } - } - }; - - bobj.crv.getLangCode = function () { - var splitChar = '_'; // default to java's locale split character - if (bobj.crv.config.lang.indexOf ('-') > 0) { - splitChar = '-'; // must be .Net's locale split - } - var lang = bobj.crv.config.lang.split(splitChar); - - // TODO (Julian): Java server side now handles the chinese variants due to language pack fix - // We'll do the same for WebForm and then the following code can be removed. - // For Chinese locales "zh" we only support "TW" & "CN" - // zh_HK / zh_MO / zh_MY, are all mapped to zh_TW, everything else is zh_CN - if(lang[0].toLowerCase() == "zh") { - if(lang.length > 1 ) { - var region = lang[1].toUpperCase(); - if(region == "TW" || region == "HK" || region == "MO" || region == "MY") { - lang[1] = "TW"; - } else { - lang[1] = "CN"; - } - } else { - lang[1] = "CN"; - } - } - - // .NET webform viewers don't support variants from server side - until we fix this chop-off variant code for all other than "zh" - if (lang.length > 1 && (!bobj.crv.config.needFallback || lang[0].toLowerCase() == "zh")) { - - lang = lang[0] + "_" + lang[1]; - } - else { - lang = lang[0]; - } - - return lang; - }; - - bobj.crv._includeLocaleStrings = function() { - var lang = bobj.crv.getLangCode (); - - if (bobj.crv.config.needFallback) { - bobj.crv._loadJavaScript('../../allStrings_en.js'); - if (lang == 'en') return; // DO NOT load 'en' strings below again! - } - - bobj.crv._loadJavaScript('../../allStrings_' + lang + '.js'); - }; - - - if (typeof MochiKit == 'undefined') { - MochiKit = {}; - } - if (typeof MochiKit.__export__ == 'undefined') { - MochiKit.__export__ = false; // don't export symbols into the global namespace - } - - if (!bobj.crv.config.useAsync) bobj.crv._preloadProcessingIndicatorImages(); - bobj.crv._includeAll(); - - bobj.crv.initLog = function(logLevel, handlerUri) { - bobj.crv.logger = log4javascript.getLogger(); - log4javascript.setEnabled(bobj.crv.config.logging.enabled); - - if (bobj.crv.config.logging.enabled) { - bobj.crv.logger.setLevel(logLevel); - var uri = handlerUri + '?ServletTask=Log'; - var ajaxAppender = new log4javascript.AjaxAppender(uri); - bobj.crv.logger.addAppender(ajaxAppender); - - var oldLogFunc = bobj.crv.logger.log; - bobj.crv.logger.log = function(level, message, exception) { - oldLogFunc(level, bobj.crv.config.logging.id + ' ' + message, exception); - }; - - bobj.crv.logger.info('Logging Initialized'); - } - }; - - bobj.crv.invokeActionAdapter = function (args) { - var n = "invokeAction"; - var f = window[n]; - if (!f && window.parent){ - f = window.parent[n]; - } - - if (f){ - f(args.url, args.actionId, args.objectId, args.containerId, args.actionType, null); - } - }; -} - -if(typeof(Sys)!=='undefined' && typeof(Sys.Application)!== 'undefined' && typeof(Sys.Application.notifyScriptLoaded)!== 'undefined') { - Sys.Application.notifyScriptLoaded(); -} diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/dom.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/dom.js deleted file mode 100644 index 7912d8943..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/dom.js +++ /dev/null @@ -1,6 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof(bobj.dom) == 'undefined') { - bobj.dom = {}; -} - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/encoding.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/encoding.js deleted file mode 100644 index 37e8eb219..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/encoding.js +++ /dev/null @@ -1,72 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof bobj == 'undefined') { - bobj = {}; -} - -bobj.encodeUTF8 = function(string) { - var arr = []; - var strLen = string.length; - for(var i = 0; i < strLen; i++) { - var c = string.charCodeAt(i); - if(c < 0x80) { - arr.push(c); - } - else if(c < 0x0800) { - arr.push((c >> 6) | 0xc0); - arr.push(c & 0x3f | 0x80); - } - else if(c < 0xd800 || c >= 0xe000) { - arr.push((c >> 12) | 0xe0); - arr.push((c >> 6) & 0x3f | 0x80); - arr.push(c & 0x3f | 0x80); - } - else if(c < 0xdc00) { - var c2 = string.charCodeAt(i + 1); - if(isNaN(c2) || c2 < 0xdc00 || c2 >= 0xe000) { - arr.push(0xef, 0xbf, 0xbd); - continue; - } - i++; - val = ((c & 0x3ff) << 10) | (c2 & 0x3ff); - val += 0x10000; - arr.push((val >> 18) | 0xf0); - arr.push((val >> 12) & 0x3f | 0x80); - arr.push((val >> 6) & 0x3f | 0x80); - arr.push(val & 0x3f | 0x80); - } - else { - arr.push(0xef, 0xbf, 0xbd); - } - } - return arr; -}; - -bobj.encodeBASE64 = function(byteArray) { - var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; - var arr = []; - var c1, c2, c3, e1, e2, e3, e4; - var i = 0, arrLen = byteArray.length; - - while(i < arrLen) { - c1 = byteArray[i++]; - c2 = byteArray[i++]; - c3 = byteArray[i++]; - - e1 = c1 >> 2; - e2 = ((c1 & 3) << 4) | (c2 >> 4); - e3 = ((c2 & 15) << 2) | (c3 >> 6); - e4 = c3 & 63; - - if (isNaN(c2)) { - e3 = e4 = 64; - } else if(isNaN(c3)) { - e4 = 64; - } - arr.push(keyStr.charAt(e1)); - arr.push(keyStr.charAt(e2)); - arr.push(keyStr.charAt(e3)); - arr.push(keyStr.charAt(e4)); - } - return arr.join(''); -}; \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/event.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/event.js deleted file mode 100644 index de821af77..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/event.js +++ /dev/null @@ -1,136 +0,0 @@ -/** - * Publish/Subscribe event system for anonymous message passing - * - */ - -if (typeof bobj == 'undefined') { - bobj = {}; -} - -if (typeof bobj.event == 'undefined') { - bobj.event = {}; - bobj.event._topicSubscriptions = {}; - bobj.event._globalSubscriptions = []; -} - -/** - * Publish an event for subscribers to receive - * - * @param topic [String] The event topic - * @param arguments Unnamed args will be passed to subscribers - */ -bobj.event.publish = function(topic) { - var args = bobj.slice(arguments, 1); - - var topicSubs = bobj.event._topicSubscriptions[topic]; - if (topicSubs) { - for (var i = 0; i < topicSubs.length; ++i) { - topicSubs[i]._notify.apply(null, args); - } - } - - var globalSubs = bobj.event._globalSubscriptions; - for (var j = 0; j < globalSubs.length; ++j) { - globalSubs[j]._notify.apply(null, args); - } -}; - -/** - * Subscribe to a topic - * - * @param topic [String] The event topic - * @param callback [Function] Function to be call with topic's arguments - * @param target [Object] Object to notify (requires methName) - * @param methName [String] Name of method to call when target is notified - * - * Arguments may be passed in any of the following combinations: - * (topic, target, methName) - * (topic, callback) - * (target, methName) - * (callback) - * - * When a topic is not specified, the subscriber receives all topics - * - * @return Subscription object that can be used to unsubscribe - */ -bobj.event.subscribe = function() { - var nmlr = bobj.event.subscribe._normalizer; - if (!nmlr) { - nmlr = bobj.event.subscribe._normalizer = new bobj.ArgumentNormalizer(); - - // If 3 args: (topic, target, methName) - nmlr.addRule('topic', 'target', 'methName'); - - // If 2 args and first is a string: (topic, callback) - nmlr.addRule([bobj.isString, 'topic'], 'callback'); - - // If 2 args: (target, methName) - nmlr.addRule('target', 'methName'); - - // If 1 arg: (callback) - nmlr.addRule('callback'); - } - - return bobj.event.kwSubscribe(nmlr.normalizeArray(arguments)); -}; - -/** - * Subscribe to a topic using keyword arguments - * - * @param kwArgs.topic [String] The event topic - * @param kwArgs.callback [Function] Function to be call with topic's arguments - * @param kwArgs.target [Object] Object to notify (requires methName) - * @param kwArgs.methName [String] Name of method to call when target is notified - * - * @see bobj.event.subscribe - * - * @return Subscription object that can be used to unsubscribe - */ -bobj.event.kwSubscribe = function(kwArgs) { - var bind = MochiKit.Base.bind; - var subscription = {}; - - if (kwArgs.callback) { - subscription._notify = kwArgs.callback; - } - else { - subscription._notify = bind(kwArgs.target[kwArgs.methName], kwArgs.target); - } - - if (kwArgs.topic) { - subscription.topic = kwArgs.topic; - - var subs = bobj.event._topicSubscriptions; - if (!subs[kwArgs.topic]) { - subs[kwArgs.topic] = []; - } - subs[kwArgs.topic].push(subscription); - } - else { - bobj.event._globalSubscriptions.push(subscription); - } - - return subscription; -}; - -/** - * Unsubscribe from a topic - * - * @param subscription [Subscription] The object returned by subscribe - */ -bobj.event.unsubscribe = function(subscription) { - var subsList = bobj.event._globalSubscriptions; - - if (subscription.topic) { - subsList = bobj.event._topicSubscriptions[subscription.topic]; - } - - if (subsList) { - var idx = MochiKit.Base.findIdentical(subsList, subscription); - if (idx != -1) { - subsList.splice(idx, 1); // remove the subscription - delete subscription._notify; // prevent leaks - } - } -}; - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/html.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/html.js deleted file mode 100644 index af83b4931..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/crviewer/html.js +++ /dev/null @@ -1,219 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof(bobj.html) == 'undefined') { - bobj.html = {}; -} - -bobj.html.openTag = function(tag, atts) { - var html = '<' + tag; - - for (var i in atts) { - - html += ' ' + i + '="'; - - var value = atts[i]; - - if (bobj.isArray(value)) { - value = value.join(' '); - } - else if (bobj.isObject(value)) { - // create a string of the form "foo:bar;baz:garply" - var stringValue = "" - for (var k in value) { - stringValue += k + ':' + value[k] + ';'; - } - value = stringValue; - } - - html += value + '"'; - } - - return html + '>' -}; - -bobj.html.closeTag = function(tag) { - return ''; -}; - -bobj.html.createHtml = function(tag, atts, innerHtml /*, innerHtml...*/) { - var html = bobj.html.openTag(tag, atts); - - for (var i = 2; i < arguments.length; ++i) { - html += arguments[i]; - } - - html += bobj.html.closeTag(tag); - return html; -}; - -bobj.html.TABLE = MochiKit.Base.partial(bobj.html.createHtml, 'table'); -bobj.html.UL = MochiKit.Base.partial(bobj.html.createHtml, "ul"); -bobj.html.OL = MochiKit.Base.partial(bobj.html.createHtml, "ol"); -bobj.html.LI = MochiKit.Base.partial(bobj.html.createHtml, "li"); -bobj.html.TD = MochiKit.Base.partial(bobj.html.createHtml, "td"); -bobj.html.TR = MochiKit.Base.partial(bobj.html.createHtml, "tr"); -bobj.html.TBODY = MochiKit.Base.partial(bobj.html.createHtml, "tbody"); -bobj.html.THEAD = MochiKit.Base.partial(bobj.html.createHtml, "thead"); -bobj.html.TFOOT = MochiKit.Base.partial(bobj.html.createHtml, "tfoot"); -bobj.html.TABLE = MochiKit.Base.partial(bobj.html.createHtml, "table"); -bobj.html.TH = MochiKit.Base.partial(bobj.html.createHtml, "th"); -bobj.html.INPUT = MochiKit.Base.partial(bobj.html.createHtml, "input"); -bobj.html.SPAN = MochiKit.Base.partial(bobj.html.createHtml, "span"); -bobj.html.A = MochiKit.Base.partial(bobj.html.createHtml, "a"); -bobj.html.DIV = MochiKit.Base.partial(bobj.html.createHtml, "div"); -bobj.html.IMG = MochiKit.Base.partial(bobj.html.createHtml, "img"); -bobj.html.BUTTON = MochiKit.Base.partial(bobj.html.createHtml, "button"); -bobj.html.TT = MochiKit.Base.partial(bobj.html.createHtml, "tt"); -bobj.html.PRE = MochiKit.Base.partial(bobj.html.createHtml, "pre"); -bobj.html.H1 = MochiKit.Base.partial(bobj.html.createHtml, "h1"); -bobj.html.H2 = MochiKit.Base.partial(bobj.html.createHtml, "h2"); -bobj.html.H3 = MochiKit.Base.partial(bobj.html.createHtml, "h3"); -bobj.html.BR = MochiKit.Base.partial(bobj.html.createHtml, "br"); -bobj.html.HR = MochiKit.Base.partial(bobj.html.createHtml, "hr"); -bobj.html.LABEL = MochiKit.Base.partial(bobj.html.createHtml, "label"); -bobj.html.TEXTAREA = MochiKit.Base.partial(bobj.html.createHtml, "textarea"); -bobj.html.FORM = MochiKit.Base.partial(bobj.html.createHtml, "form"); -bobj.html.P = MochiKit.Base.partial(bobj.html.createHtml, "p"); -bobj.html.SELECT = MochiKit.Base.partial(bobj.html.createHtml, "select"); -bobj.html.OPTION = MochiKit.Base.partial(bobj.html.createHtml, "option"); -bobj.html.OPTGROUP = MochiKit.Base.partial(bobj.html.createHtml, "optgroup"); -bobj.html.LEGEND = MochiKit.Base.partial(bobj.html.createHtml, "legend"); -bobj.html.FIELDSET = MochiKit.Base.partial(bobj.html.createHtml, "fieldset"); -bobj.html.STRONG = MochiKit.Base.partial(bobj.html.createHtml, "strong"); -bobj.html.CANVAS = MochiKit.Base.partial(bobj.html.createHtml, "canvas"); -bobj.html.IFRAME = MochiKit.Base.partial(bobj.html.createHtml, "iframe"); -bobj.html.SCRIPT = MochiKit.Base.partial(bobj.html.createHtml, "script"); - - -/** - * Extract scripts from an html fragment. - * - * @param html [String] html fragment - * - * @return [Object] Returns an object with a list of scripts and html without - * scripts - * i.e. {scripts: [{src:[String], text:[String]},...], html:[String]} - */ -bobj.html.extractScripts = function(html) { - // Match script tags with or without closing tags - // 1 - Attributes of tag that doesn't have closing tag (e.g. - - - - - - - - - - -
    -
    - - Filter List

    - Drag and Drop is enabled (CTRL to copy). You can use DEL to delete an item
    Double click on a node to change is kind (AND or OR)
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Add an item
    Add a custom item
    Add a node
    Remove a node or an item
    index
    - - -
    -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/basicDialog.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/basicDialog.html deleted file mode 100644 index b96ba4dd5..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/basicDialog.html +++ /dev/null @@ -1,314 +0,0 @@ - - - - - - - Basic dialog window - - - - - - - - - - - - - - - - - - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - - - - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/blockWhileWait.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/blockWhileWait.html deleted file mode 100644 index c6d093bdd..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/blockWhileWait.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - -
    -
    - -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/bolist.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/bolist.html deleted file mode 100644 index 01e842381..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/bolist.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - - - - -
    -
    - - - - - - - - -
    Add an item
    -
    - -
    - - - - Wrapped BO List

    - -
    To delete an item, select it and press DEL, to move an item, drag and drop it (also between lists); to copy an item, use CTRL with drag and drop
    -
    - -
    - -
    - Vertical BO List

    -
    - -
    - -
    - Horizontal BO List

    -
    - -
    - -
    -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/borderswidget.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/borderswidget.html deleted file mode 100644 index 528f08706..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/borderswidget.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - -
    -
    - - IconBordersMenuwidget

    - -
    - -
    -
    - - - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/buttons.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/buttons.html deleted file mode 100644 index 17ed01415..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/buttons.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - -
    -
    - - - -
    -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/calendar.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/calendar.html deleted file mode 100644 index 88c0819f1..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/calendar.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - - - -
    -
    - - Calendar

    -
    - -
    -

    -
    - -
    -

    -
    -

    - resize text - - -
    -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/checktree.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/checktree.html deleted file mode 100644 index c777589ca..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/checktree.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - -
    -
    - - Tree View with check boxes

    - -
    - -
    -
    - -
    -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/default.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/default.html deleted file mode 100644 index d2509b746..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/default.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - -Library samples - - - - - - - - - - - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/dim.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/dim.gif deleted file mode 100644 index f388e3d547e781e60489dc33c94c9823d6b118ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 907 zcmZ?wbhEHbRALZd_|Cw<5VV$I%J-;y|C8_i&%XD+`1$|p=l@%t|L=MJe+m%2|3Byb z|E2H$uYLc2>-+zEf$01HW8eRu`~Ls`IfnnEU^E1VcnB!|WMO1r5N6N;W(5XNo?zg} zU{L3f@z}87U^9oXR?LYF3lFz4DtYlRJXmm$D%7@tbr8;~H z7A)~><_l4CC^*n?dOAz$B@>4SYJQD8X>uA42@U7x8}katCX_t(Z#13GCGg-+zEf$01HW8eRu`~Ls`IfnnEU^E1VcnB!|WMO1r5N6N;W(5XNo?zgJ zVo>Lh@z}87U^9m>Tf_+ihK43yNu~-91E&^tJ_#KUgN+ZG*?CRWEG|r3&^&=tK*k`T wNWp6=8^;!r6ADionONA)%$abB;T)rtCST0Y;0A_;oRhU;PlY5nFfdpH067y9LI3~& diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/dim_open.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/dim_open.gif deleted file mode 100644 index 34cfb4422fdfca6e5b5a99e215f5208e30ca3ad1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 936 zcmZ?wbhEHbRALZd_|5Je-N;2;12i9~a) - - -Library samples - - - - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/eventsDialog.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/eventsDialog.html deleted file mode 100644 index c12352119..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/eventsDialog.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - Basic events window - - - - - - - - - - - this is a sample text - - - - - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/fieldswidget.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/fieldswidget.html deleted file mode 100644 index b457c3320..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/fieldswidget.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - -
    -
    - - Text Field with help text
    - -


    - - Text Field maxchar = 10
    - -


    - Int Field min = -10, max = 1000, maxchar = 5
    - -


    - Float Field Value =3.50, min = 0, max = 10, precision = 2 decimales, maxchar = 7
    - -


    - -


    - txtArea = newTextAreaWidget("txtArea", 3, 36); - - -
    -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/format.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/format.gif deleted file mode 100644 index d9fca033db8f17bb3efc571a0b24379e7cc85861..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1476 zcmZ?wbhEHboWP*K@SOn!yg*=SOH0d~IdhgSU3%@>wf_tZ|3|@S2#kObQ2fcl$iTqP zpaaSYpgh6A@sEL@L&jsnf`iQ*!dfvWHY_~E#Kabg0(QXOjtUDDO9x--uEBZaL z5NJ3#StF3k=j5j+r>5z6T7|3>N<7NI#MHAzQc&^CG^1v*mXiic{TWmzs-4MnSmf6t zp!`mSgQ4;2>WKAPe^*{nxW3qB<*b^UrVCFprtR+Yl{mn_#K^X&O6A7p<=59#teqw* zb>%7Jeopo^wzHUMd`pxgaKV+`m7DXPzM5W?db(Qw{Z}rA+*^m(Z%3J4Fk6?j ztIMCiS7+w>>;+t``Eskuwq>xe6&;^yz2W15;~|mBb7iI#7v4Jle;sShhc|}~HgmHb zSi9SykwN~so}EDH)`Gq3e*VkilllAN2-8!}Y4>{nKK8i3w{iU+zPO#Ko2GoM7xlJT z`~11-#?-r|do7nmm93oWBG0tBwLP%Nll8=Ozqf@UqP0g3rp;+PQTQUE#gKQ)g0LBL zw`0IQ!%CnTp?s!nQ*Jb7Uz+r-Y)9Oq-2X^xIu zmd_oSbyh5ynYyZS!c4cam(Qkh-<+v7uTjh-Wpb&S*Rt7NuR7J{RI7QZFRB06zH$+Z z$*mO=9g`~4r%&SIda+>nqFJjJtrFYyWZ~lce>XFicbj=ln7@6RRpzoBrI6*TJ5E`> z-mr~JL~Bv`Gtc;?J2uTqoga1YR@SU(Ueaqe9BEpqxnj1~@7S%og}h!k?%(B=vh&6z zucecZGi7SbTe@u3tCbP!v~rhb_MLjYEce{6`IF;jS*_cCsImLm=HH*RgXeG`Kb?MP z@4ee=y7;BN-yD@lpR;z|?lPVw#}wNCXzrDpUej - - - - - - - -
    -
    - - Premier exemple fait par Minh - -
    - - date: 23 janvier 2004 - - -
    - - Zone Retaillable - - - -
    -
    - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/grabber.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/grabber.html deleted file mode 100644 index d58a36c2e..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/grabber.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/iconlistpopupwidget.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/iconlistpopupwidget.html deleted file mode 100644 index 6665735aa..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/iconlistpopupwidget.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - -
    -
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    -
    -
    -

    - -
    - -
    - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/iconscrollmenuwidget.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/iconscrollmenuwidget.html deleted file mode 100644 index 8b58e8a92..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/iconscrollmenuwidget.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - -
    -
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    -
    - -

    - -
    - Icon scroll menu widget -

    - -
    -
    -
    - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/imgtabs.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/imgtabs.gif deleted file mode 100644 index bc612f9762aff7525beaab05174eb395f2fc4696..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1061 zcmZ?wbhEHb6kt$b_|5 z>;H4-{-3+{|G(4!Q7{?;gEa&cf3h$#0JDM)C@X;S1OvxE2FHdA3m!5tH*yGbJ$bN@ znT?B+$HT-xVIdp8qD{_*4GK;j{UU;CFFqVx$jr)O*JdEFNU4Kc!YpCOgM>zgsmw)T za~u{jwNB>XVBuJ>snMHLz)#EKgTqtz#T=p{Gk!5NgsxUxz?JfH%jz%zo%LO;6RxV> zSQmG;O}6{1cK8 - - - - - - - - - - - - - - - -
    -
    - - Icon widget with button behaviour: (click to disable/enable next icon)
    - - - Disabled Icon widget with button behaviour:
    - - -

    Icon widget with check box behaviour:
    - - -

    Icon widget with toggle behaviour:
    - - - -

    Icon widget with radio button behaviour:

    -
    - - - -
    - - Color menu widget

    - -
    - -
    - - Icon menu widget

    - -
    - - Button menu widget

    - -
    - - - Button scroll menu widget

    - -
    - - Horizontal Table Icon widget

    - -
    - - Vertical Table Icon widget

    - -
    - - -
    -
    - - - - - - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/infowidget.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/infowidget.html deleted file mode 100644 index 5b58cce93..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/infowidget.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - -
    -
    - - Info zone:

    - -


    - Change the text -
    - Change the title -
    - Change the bold title -
    - - -
    -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/lov.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/lov.html deleted file mode 100644 index 1b3a8a713..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/lov.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/measure.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/measure.gif deleted file mode 100644 index 1b209913527a139153ed4b857aff2ca499f7a262..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 900 zcmZ?wbhEHbRALZd_|CxK#NZUfQ5?mPJw>2rj= zb?rIFwdacWo*UkKZh7yy)4lgzK=k~5F%Z3fU;X}j&-?FdzklEQ{r@?J|L1_@|4}d+ z0z)MP6o0ZXGB8Lo=r8~QC{HkOBr+It$arj6aIl#}SS#klhJ}aQ1?0nK2rxRjw27M} z%y@9%z|j^_lY$Egj7*KJ^89`W78E))F*5~8^%xvvI?BSra6;$C0Y(;feeNT7JOdh= Yrn9pNm{uq>TwWTm*lVtqu>ylN03VD5PXGV_ diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/measure_o.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/measure_o.gif deleted file mode 100644 index 4397eb94da3e4df66c192489ad8a367c90200f41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 885 zcmZ?wbhEHb2rj= zb?rIFwdacWo*UkKZh7yy)4lgzK=k~5F%Z3fU;X}j&-?FdzklEQ{r@?J|L1_@|4}d+ z0z)MP6o0ZXGB8Lo=r8~QC{HkO1Th$M$arj6aIl#}Sj!|L(TRnHQ$OQ?!NJDHW>J%Z z3ki%&jjU|y2{SAd4>B^cDf?`AV8F=8z$R_c@ZdlS;}kYg4TH)AheOPaO?on3TV5P$ IU|_HY0K{ebwg3PC diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/menu.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/menu.html deleted file mode 100644 index d978c3fad..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/menu.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - - - - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - - - - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/navigation.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/navigation.html deleted file mode 100644 index 9ded9a802..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/navigation.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - Navigation page - - - - - -
    - - Simple widgets

    - - - - - - - - - - - - - - - - - - - -
    Icon widgetsInfo widget
    FrameZone widgetGrabber Widget
    Field widgets text, int, floatButton Widget
    Tooltip widget
    - - - -


    - List and tree widgets

    - - - - - - - - - - - - - - - - -
    Tree widgetBOList widget
    Filter widgetPrompt tree widget
    Simple list widgetCheck Tree widget
    - -


    - GUI Emulation Widgets

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Menu widgetTab panel widget
    Dialog Box WidgetWaitDialog Widget
    Office-like palettesLOV Widget
    Calendar WidgetScrollTabs
    TextCombo WidgetIconScrollMenu Widget
    iconListPopup WidgetPane Manager
    Borders Widget
    - - - -
    - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/palettes.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/palettes.html deleted file mode 100644 index c2803a1ce..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/palettes.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/pane.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/pane.html deleted file mode 100644 index 5ea4d307f..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/pane.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - -
    -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/parent_dialog.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/parent_dialog.html deleted file mode 100644 index 05af2c79b..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/parent_dialog.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - -
    - - - -
    - - - ' - - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/progressBar.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/progressBar.html deleted file mode 100644 index 221846eda..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/progressBar.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - Progress Bar - - - - - - - - - - - - - - - - -
    - -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/prompttree.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/prompttree.html deleted file mode 100644 index e4061a771..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/prompttree.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - -
    -
    - - Tree View

    -
    - -
    - - change
    - change with empty values
    - -
    - -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/qualif.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/qualif.gif deleted file mode 100644 index 9a7985099e717f598f7937492f23ab2609a38507..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1057 zcmZ?wbhEHb6ku>*_|58d+%{vd#-rzx#7KgQP-Y3-FxqK?|t#}_to$JpJVv{ zpP>Z^p8xLw>V5uy&insM-~V6x{{PnZ|M$NC|Gnq^_qE@@Z~cDk`~UyvfcQVeA*1AI z2+%nM6o0ZXGBC(6=z#16 - - - - - - - - - - - -
    -
    - -


    - Tab bar

    -
    - -
    - -
    - -
    -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/simplelist.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/simplelist.html deleted file mode 100644 index 40e3805e1..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/simplelist.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - -
    -
    - - - - - - - - - - -

    - - - -

    -
    this is a sample text using dialogzone CSS class
    -
    this is a sample text using dialogzonebold CSS class
    - -
    -
    - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/skinIntl.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/skinIntl.html deleted file mode 100644 index c4a3dae03..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/skinIntl.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - Skin and Language - - - - - - - - - - - - - - -
    skin:language:
    - - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/tabs.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/tabs.html deleted file mode 100644 index cf1d72ce7..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/tabs.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - - - - - - - -
    -
    - - Single Top Tab, no image

    - - -
    -

    - Single Bottom Tab, no image

    - - -
    -
    - - - -


    - Tab bar

    -
    - -
    - -
    - - - -


    - Tabdeb zone

    - - - - - test du premier tab

    - test test - - - - test du deuxieme tab
    - qsd fqsd dsqf sqdf test test dkjsfhqsdk kqsdh kjqdshf kjdsqh kf qsdk fkqsdh kjsdqhf sdqjk hfksqdhf kjqsdkjsqd kjhsdqk hksdjq - - - - - -
    -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/textcombowidget.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/textcombowidget.html deleted file mode 100644 index b315a5f81..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/textcombowidget.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - -
    -
    - - TextCombo widget

    - -
    - - - - -
    - -
    -
    - - - - - - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/tooltipwidget.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/tooltipwidget.html deleted file mode 100644 index 1c17ba7bd..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/tooltipwidget.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - -
    -
    - - Tooltip widget

    - Move you mouse over here -
    - Move you mouse over here -
    - -
    -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/treeicons.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/treeicons.gif deleted file mode 100644 index 3e06537b30baaeb27b1fd9f95229d6f776ae304d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1471 zcmeH`@lRW26owD1!Uf89r3DHSw&GR_B@MU@=_IqnPfpH{&&hd{ zH}6nxmO@K{2@w1PAtDt38UO=;5lAB_3}DP4D4;Z8P!qLAP#HmO&{3dvf`*1#FBk*E z>8MUH16ToE06qW)fP+mb2Fgr<)d6N7SP|Gb=tST^q>Ib&V$~N|!(bIcYJ_zRHZZuB z#YPs}jL=D1ZKTTqHV0vIi#na)@PeBr-Hh1Df{hI*z{wCkMAEF7VKW#;<6|j?Q!$95 zk;WTvakVUG1z{MqY%y2>DoyS&VRifAjl)|92A*uk(TcjzHSx3!9w) z;xY6P33~1M$)@0Ei>0j({2`VYQD)8WWW|ls(b1*kO zLpcW~g)y??HNM(>=2m=ql&M45s%sbAl+K3!Ii+|!AshS3(LkzcrTs)@{% zPUWbx-)puUt^807L`mI+=A&=ScC^H|EtQ{cEz$RDQzgENHu1Pf*9OD0{`RFqm!7sr z>@yd`l)+Uxf%-3zJ?ubuvHdJHCaQctn~HOs$ycX1at@wQbO`tUwsc1;H^&WV&oqpoQk8zZYD0@RleCMUis{;knw8a?5jO1qwu-u##Mjwa-(3L zt~wc78-Cv`s-qPhL8658qNv-cZ-)qikDYG_*&-DeMHNb`>8Pv+e$Nw$Ch{8Zp=S9S rKd&Q$7kt=i3JyD5C+m;k&wDJSmfA5HTG36UL6AMcbmc?{51#uQ58u`q diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/treeview.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/treeview.html deleted file mode 100644 index c5882ce1c..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/treeview.html +++ /dev/null @@ -1,416 +0,0 @@ - - - - - - - - - - - -
    -
    - - Tree View

    - - - -
    - -

    Rewrite Tree -

    -
    -
    -
    -
    -
    -
    -
    - - - -

    Rewrite Tree No Icons -
    - - - -

    -
    -
    -
    -
    - - - - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/unv_close.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/unv_close.gif deleted file mode 100644 index ff97209cce29ddff721abbd4c2889a06d88f9ff7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1012 zcmZ?wbhEHbRALZd_|5 zOknS^@Bhy+>^;}={M`5d_c*RS2O`CL&kgTAx4ie<>E3%UAbS437>M4#uYUi%=l%D! z-@k7K>G==TaPI#o7!3hBgn;5t7DfgJ0|p&XP5|Wz29Apii5xN>8x#&QvI%R&Xl!U; zXyH-T(s@w8;L<6P7_cV8@KIyGf}_-(7Xb{7lQlS5G%6Gly_-~Im$^tLs2-edz`%24 zrQtFLemS$80|ALnzSEdXxt`qI%)l+GVU=^ip@gYrv3W7mja8FZx``Xct diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/unv_o.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/unv_o.gif deleted file mode 100644 index 5872ca22da58e16b0d94a190217684a2c1a46550..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 571 zcmZ?wbhEHb6krfwc*Xz%|NsAgZhz;c@BR1X&p&p&`q1(66vO`Y3`-X=%yegPe#mj< z4#$PVBDDT!m zKhJ+(z%hHGSnsd%KjRrPW(aLL(fTNqrzF*78dLB(hKZl!ZvT(J{XgZ-|I|DG)9(Jy zy7xcl-v8Wt|MTzvFMaU8?7{!ahySY{{cm{uzxm1k)+hhlpZxE8_P_tx|4GmPPkH`- z*318MU;dx}^8eD;|Chh{zw*uhjqm<%e)oUZhyS}j{6GBZ|B28489p*Fd|+VcXJF`N zVCZCE=wM)IWngG#U}$1sXaso~?Dc^s6o0ZXGB5-&=zyF8iW3I*84W>A%|6X-?Msx4TkraHC1KVZ>9RaMVv9v*@2Zm!ObcGjzd)_aJH zGV{7PIoMj6@7yIRBPAvvYj0y|W_(;ihEbYLP*KUk)JXq0i zOknS^@Bhy+>^;}={M`5d_c*RS2O`CL&kgTAx4ie<>E3%UAbS437>M4#uYUi%=l%D! z-@k7K>G==TaPI#o7!3hBgn;5t7DfgJ0|p&XP5|Wz298q8x#&QvI%R&Xl!U; zXyH-T(s@w8;L<6P7_cV8@KIyGf}_-(7Xb{7lQlS5G%6Gly_-~Im$^tLs2-fIlXy(z z!NJ3Ayb@YID`s9+IM*f;xx(RMVsqO9VFiJ`oXicOs}1_hN(3Lbb_t0a_;fHlJb0xs zigj74V6t0}n7T%T!tVtKBe&}DuBx~gdbFK~Q^6wRz=OPNdsqWkWNiGx%*xy>DYC88 rEXAW)#cPhn$Loif4snSDoQnu(>DVu+GU40|#>UrIHyE?AFjxZs4uu$$ diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/waitDialog.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/waitDialog.html deleted file mode 100644 index ad242ea18..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/samples/waitDialog.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - Waiting dialog window - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/treeview.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/treeview.js deleted file mode 100644 index fa9a91864..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/treeview.js +++ /dev/null @@ -1,3027 +0,0 @@ -// - - - - - - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/validator/validator_res.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/validator/validator_res.html deleted file mode 100644 index 95725ab30..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/validator/validator_res.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - -
    Restrict to file:
    Restrict children of tag with id:

        

    -

    - - - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/waitdialog.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/waitdialog.js deleted file mode 100644 index a28cb36d8..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/dhtmllib/waitdialog.js +++ /dev/null @@ -1,220 +0,0 @@ -// ','','','','
    ','
    ','
    ','Filters:','','','','','','','','
    ','','
    ','Options:','','','','','','','
    ','
    ','
    ','
    ','','' ]};function ConsoleAppender(){}var consoleAppenderIdCounter=1;ConsoleAppender.prototype=new Appender();ConsoleAppender.prototype.create=function(inPage,containerElement,layout,lazyInit,focusConsoleWindow,useOldPopUp,complainAboutPopUpBlocking,newestMessageAtTop,scrollToLatestMessage,initiallyMinimized,width,height,reopenWhenClosed,maxMessages){var appender=this;if(layout){this.setLayout(layout)}else{this.setLayout(this.defaults.layout)}var initialized=false;var consoleWindowLoaded=false;var queuedLoggingEvents=[];var isSupported=true;var consoleAppenderId=consoleAppenderIdCounter++;lazyInit=extractBooleanFromParam(lazyInit,true);newestMessageAtTop=extractBooleanFromParam(newestMessageAtTop,this.defaults.newestMessageAtTop);scrollToLatestMessage=extractBooleanFromParam(scrollToLatestMessage,this.defaults.scrollToLatestMessage);width=width?width:this.defaults.width;height=height?height:this.defaults.height;maxMessages=maxMessages?maxMessages:this.defaults.maxMessages;var init,safeToAppend,getConsoleWindow;var appenderName=inPage?"InPageAppender":"PopUpAppender";var checkCanConfigure=function(configOptionName){if(initialized){handleError(appenderName+": configuration option '"+configOptionName+"' may not be set after the appender has been initialized");return false}return true};this.isNewestMessageAtTop=function(){return newestMessageAtTop};this.setNewestMessageAtTop=function(newestMessageAtTopParam){newestMessageAtTop=bool(newestMessageAtTopParam);if(consoleWindowLoaded&&isSupported){getConsoleWindow().setNewestAtTop(newestMessageAtTop)}};this.isScrollToLatestMessage=function(){return scrollToLatestMessage};this.setScrollToLatestMessage=function(scrollToLatestMessageParam){scrollToLatestMessage=bool(scrollToLatestMessageParam);if(consoleWindowLoaded&&isSupported){getConsoleWindow().setScrollToLatest(scrollToLatestMessage)}};this.getWidth=function(){return width};this.setWidth=function(widthParam){if(checkCanConfigure("width")){width=extractStringFromParam(widthParam,width)}};this.getHeight=function(){return height};this.setHeight=function(heightParam){if(checkCanConfigure("height")){height=extractStringFromParam(heightParam,height)}};this.getMaxMessages=function(){return maxMessages};this.setMaxMessages=function(maxMessagesParam){maxMessages=extractIntFromParam(maxMessagesParam,maxMessages);if(consoleWindowLoaded&&isSupported){getConsoleWindow().setMaxMessages(maxMessages)}};this.append=function(loggingEvent){if(isSupported){queuedLoggingEvents.push(loggingEvent);var isSafeToAppend=safeToAppend();if(!initialized||(consoleClosed&&reopenWhenClosed)){init()}if(safeToAppend()){appendQueuedLoggingEvents()}}};var appendQueuedLoggingEvents=function(loggingEvent){while(queuedLoggingEvents.length>0){var currentLoggingEvent=queuedLoggingEvents.shift();var formattedMessage=appender.getLayout().format(currentLoggingEvent);if(appender.getLayout().ignoresThrowable()){formattedMessage+=currentLoggingEvent.getThrowableStrRep()}getConsoleWindow().log(currentLoggingEvent.level,formattedMessage)}if(focusConsoleWindow){getConsoleWindow().focus()}};var writeHtml=function(doc){var lines=getConsoleHtmlLines();doc.open();for(var i=0;i";iframeContainerDiv.innerHTML=iframeHtml;consoleClosed=false;var iframeDocumentExistsTest=function(win){return bool(win)&&bool(win.document)};if(iframeDocumentExistsTest(getConsoleWindow())){writeToDocument()}else{pollConsoleWindow(iframeDocumentExistsTest,writeToDocument,initErrorMessage)}initialized=true};getConsoleWindow=function(){var iframe=window.frames[iframeId];if(iframe){return iframe}};safeToAppend=function(){if(isSupported&&!consoleClosed){if(!consoleWindowLoaded&&getConsoleWindow()&&getConsoleWindow().loaded){consoleWindowLoaded=true}return consoleWindowLoaded}return false}}else{useOldPopUp=extractBooleanFromParam(useOldPopUp,appender.defaults.useOldPopUp);complainAboutPopUpBlocking=extractBooleanFromParam(complainAboutPopUpBlocking,appender.defaults.complainAboutPopUpBlocking);reopenWhenClosed=extractBooleanFromParam(reopenWhenClosed,this.defaults.reopenWhenClosed);this.isUseOldPopUp=function(){return useOldPopUp};this.setUseOldPopUp=function(useOldPopUpParam){if(checkCanConfigure("useOldPopUp")){useOldPopUp=bool(useOldPopUpParam)}};this.isComplainAboutPopUpBlocking=function(){return complainAboutPopUpBlocking};this.setComplainAboutPopUpBlocking=function(complainAboutPopUpBlockingParam){if(checkCanConfigure("complainAboutPopUpBlocking")){complainAboutPopUpBlocking=bool(complainAboutPopUpBlockingParam)}};this.isFocusPopUp=function(){return focusConsoleWindow};this.setFocusPopUp=function(focusPopUpParam){focusConsoleWindow=bool(focusPopUpParam)};this.isReopenWhenClosed=function(){return reopenWhenClosed};this.setReopenWhenClosed=function(reopenWhenClosedParam){reopenWhenClosed=bool(reopenWhenClosedParam)};this.close=function(){try{popUp.close()}catch(e){}consoleClosed=true};var popUp;init=function(){var windowProperties="width="+width+",height="+height+",status,resizable";var windowName="PopUp_"+location.host.replace(/[^a-z0-9]/gi,"_")+"_"+consoleAppenderId;if(!useOldPopUp){windowName=windowName+"_"+uniqueId}function finalInit(){consoleWindowLoaded=true;getConsoleWindow().setNewestAtTop(newestMessageAtTop);getConsoleWindow().setScrollToLatest(scrollToLatestMessage);getConsoleWindow().setMaxMessages(maxMessages);appendQueuedLoggingEvents()}try{popUp=window.open("",windowName,windowProperties);consoleClosed=false;if(popUp){if(useOldPopUp&&popUp.loaded){popUp.mainPageReloaded();finalInit()}else{writeHtml(popUp.document);var popUpLoadedTest=function(win){return bool(win)&&win.loaded};if(popUp.loaded){finalInit()}else{pollConsoleWindow(popUpLoadedTest,finalInit,"PopUpAppender.init: unable to create console window")}}}else{isSupported=false;logLog.warn("PopUpAppender.init: pop-ups blocked, please unblock to use PopUpAppender");if(complainAboutPopUpBlocking){handleError("log4javascript: pop-up windows appear to be blocked. Please unblock them to use pop-up logging.")}}}catch(ex){handleError("PopUpAppender.init: error creating pop-up",ex)}initialized=true};getConsoleWindow=function(){return popUp};safeToAppend=function(){if(isSupported&&!isUndefined(popUp)&&!consoleClosed){if(popUp.closed||(consoleWindowLoaded&&isUndefined(popUp.closed))){consoleClosed=true;logLog.debug("PopUpAppender: pop-up closed");return false}if(!consoleWindowLoaded&&popUp.loaded){consoleWindowLoaded=true}}return isSupported&&consoleWindowLoaded&&!consoleClosed}}if(enabled&&!lazyInit){init()}this.getConsoleWindow=getConsoleWindow};var PopUpAppender=function(lazyInit,layout,focusPopUp,useOldPopUp,complainAboutPopUpBlocking,newestMessageAtTop,scrollToLatestMessage,reopenWhenClosed,width,height,maxMessages){var focusConsoleWindow=extractBooleanFromParam(focusPopUp,this.defaults.focusPopUp);this.create(false,null,layout,lazyInit,focusConsoleWindow,useOldPopUp,complainAboutPopUpBlocking,newestMessageAtTop,scrollToLatestMessage,null,width,height,reopenWhenClosed,maxMessages)};PopUpAppender.prototype=new ConsoleAppender();PopUpAppender.prototype.defaults={layout:new PatternLayout("%d{HH:mm:ss} %-5p - %m{1}%n"),focusPopUp:false,lazyInit:true,useOldPopUp:true,complainAboutPopUpBlocking:true,newestMessageAtTop:false,scrollToLatestMessage:true,width:"600",height:"400",reopenWhenClosed:false,maxMessages:null};PopUpAppender.prototype.toString=function(){return "[PopUpAppender]"};log4javascript.PopUpAppender=PopUpAppender;var InPageAppender=function(containerElement,lazyInit,layout,initiallyMinimized,newestMessageAtTop,scrollToLatestMessage,width,height,maxMessages){this.create(true,containerElement,layout,lazyInit,false,null,null,newestMessageAtTop,scrollToLatestMessage,initiallyMinimized,width,height,null,maxMessages)};InPageAppender.prototype=new ConsoleAppender();InPageAppender.prototype.defaults={layout:new PatternLayout("%d{HH:mm:ss} %-5p - %m{1}%n"),initiallyMinimized:false,lazyInit:true,newestMessageAtTop:false,scrollToLatestMessage:true,width:"100%",height:"250px",maxMessages:null};InPageAppender.prototype.toString=function(){return "[InPageAppender]"};log4javascript.InPageAppender=InPageAppender;log4javascript.InlineAppender=InPageAppender})();var BrowserConsoleAppender=function(layout){if(layout){this.setLayout(layout)}};BrowserConsoleAppender.prototype=new log4javascript.Appender();BrowserConsoleAppender.prototype.layout=new NullLayout();BrowserConsoleAppender.prototype.threshold=Level.DEBUG;BrowserConsoleAppender.prototype.append=function(loggingEvent){var appender=this;var getFormattedMessage=function(){var layout=appender.getLayout();var formattedMessage=layout.format(loggingEvent);if(layout.ignoresThrowable()&&loggingEvent.exception){formattedMessage+=loggingEvent.getThrowableStrRep()}return formattedMessage};if((typeof opera!="undefined")&&opera.postError){opera.postError(getFormattedMessage())}else if(window.console&&window.console.log){var formattedMesage=getFormattedMessage();if(window.console.debug&&Level.DEBUG.isGreaterOrEqual(loggingEvent.level)){window.console.debug(formattedMesage)}else if(window.console.info&&Level.INFO.equals(loggingEvent.level)){window.console.info(formattedMesage)}else if(window.console.warn&&Level.WARN.equals(loggingEvent.level)){window.console.warn(formattedMesage)}else if(window.console.error&&loggingEvent.level.isGreaterOrEqual(Level.ERROR)){window.console.error(formattedMesage)}else{window.console.log(formattedMesage)}}};BrowserConsoleAppender.prototype.toString=function(){return "[BrowserConsoleAppender]"};log4javascript.BrowserConsoleAppender=BrowserConsoleAppender})(); \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/log4javascript/log4javascript_stub.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/log4javascript/log4javascript_stub.js deleted file mode 100644 index 65e3d3b84..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/log4javascript/log4javascript_stub.js +++ /dev/null @@ -1 +0,0 @@ -var log4javascript;(function(){function ff(){return function(){}}function copy(obj,props){for(var i in props){obj[i]=props[i]}}var f=ff();var Logger=ff();copy(Logger.prototype,{addAppender:f,removeAppender:f,removeAllAppenders:f,log:f,setLevel:f,getLevel:f,trace:f,debug:f,info:f,warn:f,error:f,fatal:f});var getLogger=function(){return new Logger()};log4javascript={isStub:true,version:"dummy",logLog:{setQuietMode:f,setAlertAllErrors:f,debug:f,warn:f,error:f},addErrorListener:f,removeErrorListener:f,setEnabled:f,setShowStackTraces:f,isEnabled:f,evalInScope:f,getLogger:getLogger,getDefaultLogger:getLogger,getNullLogger:getLogger,Level:ff(),LoggingEvent:ff(),Layout:ff(),Appender:ff()};log4javascript.LoggingEvent.prototype={getThrowableStrRep:f};log4javascript.Level.prototype={toString:f,equals:f,isGreaterOrEqual:f};var level=new log4javascript.Level();copy(log4javascript.Level,{ALL:level,TRACE:level,DEBUG:level,INFO:level,WARN:level,ERROR:level,FATAL:level,OFF:level});log4javascript.Layout.prototype={defaults:{},format:f,ignoresThrowable:f,getContentType:f,allowBatching:f,getDataValues:f,setKeys:f,setCustomField:f,hasCustomFields:f};log4javascript.SimpleLayout=ff();log4javascript.SimpleLayout.prototype=new log4javascript.Layout();log4javascript.XmlLayout=ff();log4javascript.XmlLayout.prototype=new log4javascript.Layout();log4javascript.XmlLayout.prototype.escapeCdata=f;log4javascript.JsonLayout=ff();log4javascript.JsonLayout.prototype=new log4javascript.Layout();copy(log4javascript.JsonLayout.prototype,{setReadable:f,isReadable:f});log4javascript.HttpPostDataLayout=ff();log4javascript.HttpPostDataLayout.prototype=new log4javascript.Layout();log4javascript.PatternLayout=ff();log4javascript.PatternLayout.prototype=new log4javascript.Layout();log4javascript.NullLayout=ff();log4javascript.NullLayout.prototype=new log4javascript.Layout();log4javascript.Appender=ff();log4javascript.Appender.prototype={layout:new log4javascript.PatternLayout(),threshold:log4javascript.Level.ALL,doAppend:f,append:f,setLayout:f,getLayout:f,setThreshold:f,getThreshold:f,toString:f};log4javascript.AlertAppender=ff();log4javascript.AlertAppender.prototype=new log4javascript.Appender();log4javascript.ArrayAppender=ff();log4javascript.ArrayAppender.prototype=new log4javascript.Appender();log4javascript.AjaxAppender=ff();log4javascript.AjaxAppender.prototype=new log4javascript.Appender();copy(log4javascript.AjaxAppender.prototype,{isTimed:f,setTimed:f,getTimerInterval:f,setTimerInterval:f,isWaitForResponse:f,setWaitForResponse:f,getBatchSize:f,setBatchSize:f,setRequestSuccessCallback:f,setFailCallback:f,sendAll:f,defaults:{requestSuccessCallback:null,failCallback:null}});function ConsoleAppender(){}ConsoleAppender.prototype=new log4javascript.Appender();copy(ConsoleAppender.prototype,{create:f,isNewestMessageAtTop:f,setNewestMessageAtTop:f,isScrollToLatestMessage:f,setScrollToLatestMessage:f,getWidth:f,setWidth:f,getHeight:f,setHeight:f,getMaxMessages:f,setMaxMessages:f});log4javascript.InPageAppender=ff();log4javascript.InPageAppender.prototype=new ConsoleAppender();copy(log4javascript.InPageAppender.prototype,{isInitiallyMinimized:f,setInitiallyMinimized:f,hide:f,show:f,isVisible:f,close:f,defaults:{layout:new log4javascript.PatternLayout(),maxMessages:null}});log4javascript.InlineAppender=log4javascript.InPageAppender;log4javascript.PopUpAppender=ff();log4javascript.PopUpAppender.prototype=new ConsoleAppender();copy(log4javascript.PopUpAppender.prototype,{isUseOldPopUp:f,setUseOldPopUp:f,isComplainAboutPopUpBlocking:f,setComplainAboutPopUpBlocking:f,isFocusPopUp:f,setFocusPopUp:f,isReopenWhenClosed:f,setReopenWhenClosed:f,close:f,defaults:{layout:new log4javascript.PatternLayout(),maxMessages:null}});log4javascript.BrowserConsoleAppender=ff();log4javascript.BrowserConsoleAppender.prototype=new log4javascript.Appender()})();var log4javascript_dummy=log4javascript; \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/log4javascript/log4javascript_stub_uncompressed.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/log4javascript/log4javascript_stub_uncompressed.js deleted file mode 100644 index 1553d4d2e..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/log4javascript/log4javascript_stub_uncompressed.js +++ /dev/null @@ -1,224 +0,0 @@ -var log4javascript; -(function() { - function ff() { - return function() {}; - } - function copy(obj, props) { - for (var i in props) { - obj[i] = props[i]; - } - } - var f = ff(); - - // Loggers - var Logger = ff(); - copy(Logger.prototype, { - addAppender: f, - removeAppender: f, - removeAllAppenders: f, - log: f, - setLevel: f, - getLevel: f, - trace: f, - debug: f, - info: f, - warn: f, - error: f, - fatal: f - }); - - var getLogger = function() { - return new Logger(); - }; - - log4javascript = { - isStub: true, - version: "dummy", - logLog: { - setQuietMode: f, - setAlertAllErrors: f, - debug: f, - warn: f, - error: f - }, - addErrorListener: f, - removeErrorListener: f, - setEnabled: f, - setShowStackTraces: f, - isEnabled: f, - evalInScope: f, - getLogger: getLogger, - getDefaultLogger: getLogger, - getNullLogger: getLogger, - Level: ff(), - LoggingEvent: ff(), - Layout: ff(), - Appender: ff() - }; - - // LoggingEvents - log4javascript.LoggingEvent.prototype = { - getThrowableStrRep: f - }; - - // Levels - log4javascript.Level.prototype = { - toString: f, - equals: f, - isGreaterOrEqual: f - }; - var level = new log4javascript.Level(); - copy(log4javascript.Level, { - ALL: level, - TRACE: level, - DEBUG: level, - INFO: level, - WARN: level, - ERROR: level, - FATAL: level, - OFF: level - }); - - // Layouts - log4javascript.Layout.prototype = { - defaults: {}, - format: f, - ignoresThrowable: f, - getContentType: f, - allowBatching: f, - getDataValues: f, - setKeys: f, - setCustomField: f, - hasCustomFields: f - }; - - // SimpleLayout - log4javascript.SimpleLayout = ff(); - log4javascript.SimpleLayout.prototype = new log4javascript.Layout(); - - // XmlLayout - log4javascript.XmlLayout = ff(); - log4javascript.XmlLayout.prototype = new log4javascript.Layout(); - log4javascript.XmlLayout.prototype.escapeCdata = f; - - // JsonLayout - log4javascript.JsonLayout = ff(); - log4javascript.JsonLayout.prototype = new log4javascript.Layout(); - copy(log4javascript.JsonLayout.prototype, { - setReadable: f, - isReadable: f - }); - - // HttpPostDataLayout - log4javascript.HttpPostDataLayout = ff(); - log4javascript.HttpPostDataLayout.prototype = new log4javascript.Layout(); - - // PatternLayout - log4javascript.PatternLayout = ff(); - log4javascript.PatternLayout.prototype = new log4javascript.Layout(); - - // NullLayout - log4javascript.NullLayout = ff(); - log4javascript.NullLayout.prototype = new log4javascript.Layout(); - - // Appenders - log4javascript.Appender = ff(); - log4javascript.Appender.prototype = { - layout: new log4javascript.PatternLayout(), - threshold: log4javascript.Level.ALL, - doAppend: f, - append: f, - setLayout: f, - getLayout: f, - setThreshold: f, - getThreshold: f, - toString: f - }; - - // AlertAppender - log4javascript.AlertAppender = ff(); - log4javascript.AlertAppender.prototype = new log4javascript.Appender(); - - // AlertAppender - log4javascript.ArrayAppender = ff(); - log4javascript.ArrayAppender.prototype = new log4javascript.Appender(); - - // AjaxAppender - log4javascript.AjaxAppender = ff(); - log4javascript.AjaxAppender.prototype = new log4javascript.Appender(); - copy(log4javascript.AjaxAppender.prototype, { - isTimed: f, - setTimed: f, - getTimerInterval: f, - setTimerInterval: f, - isWaitForResponse: f, - setWaitForResponse: f, - getBatchSize: f, - setBatchSize: f, - setRequestSuccessCallback: f, - setFailCallback: f, - sendAll: f, - defaults: { - requestSuccessCallback: null, - failCallback: null - } - }); - - // ConsoleAppender - function ConsoleAppender() {} - ConsoleAppender.prototype = new log4javascript.Appender(); - copy(ConsoleAppender.prototype, { - create: f, - isNewestMessageAtTop: f, - setNewestMessageAtTop: f, - isScrollToLatestMessage: f, - setScrollToLatestMessage: f, - getWidth: f, - setWidth: f, - getHeight: f, - setHeight: f, - getMaxMessages: f, - setMaxMessages: f - }); - - // InPageAppender - log4javascript.InPageAppender = ff(); - log4javascript.InPageAppender.prototype = new ConsoleAppender(); - copy(log4javascript.InPageAppender.prototype, { - isInitiallyMinimized: f, - setInitiallyMinimized: f, - hide: f, - show: f, - isVisible: f, - close: f, - defaults: { - layout: new log4javascript.PatternLayout(), - maxMessages: null - } - }); - log4javascript.InlineAppender = log4javascript.InPageAppender; - - // PopUpAppender - log4javascript.PopUpAppender = ff(); - log4javascript.PopUpAppender.prototype = new ConsoleAppender(); - copy(log4javascript.PopUpAppender.prototype, { - isUseOldPopUp: f, - setUseOldPopUp: f, - isComplainAboutPopUpBlocking: f, - setComplainAboutPopUpBlocking: f, - isFocusPopUp: f, - setFocusPopUp: f, - isReopenWhenClosed: f, - setReopenWhenClosed: f, - close: f, - defaults: { - layout: new log4javascript.PatternLayout(), - maxMessages: null - } - }); - - // BrowserConsoleAppender - log4javascript.BrowserConsoleAppender = ff(); - log4javascript.BrowserConsoleAppender.prototype = new log4javascript.Appender(); -})(); -var log4javascript_dummy = log4javascript; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/log4javascript/log4javascript_uncompressed.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/log4javascript/log4javascript_uncompressed.js deleted file mode 100644 index 06a7ecdf7..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/log4javascript/log4javascript_uncompressed.js +++ /dev/null @@ -1,3199 +0,0 @@ -/** - * Copyright 2006 Tim Down. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * log4javascript - * - * log4javascript is a logging framework for JavaScript based on log4j - * for Java. This file contains all core log4javascript code and is the only - * file required to use log4javascript. If you wish to disable log4javascript - * in production code, replace log4javascript.js with the stub file - * log4javascript_stub.js, included in the distribution. Also included in the - * distribution is log4javascript.js, a compressed but functionally - * identical version of this file. - * - * Author: Tim Down - * Version: 1.3.1 - * Last modified: 8/11/2006 - * Website: http://www.timdown.co.uk/log4javascript - */ - -/* ------------------------------------------------------------------------- */ - -// Array-related stuff - -// Next three methods are solely for IE5, which is missing them -if (!Array.prototype.push) { - Array.prototype.push = function() { - for (var i = 0; i < arguments.length; i++){ - this[this.length] = arguments[i]; - } - return this.length; - }; -} - -if (!Array.prototype.shift) { - Array.prototype.shift = function() { - if (this.length > 0) { - var firstItem = this[0]; - for (var i = 0; i < this.length - 1; i++) { - this[i] = this[i + 1]; - } - this.length = this.length - 1; - return firstItem; - } - }; -} - -if (!Array.prototype.splice) { - Array.prototype.splice = function(startIndex, deleteCount) { - var itemsAfterDeleted = this.slice(startIndex + deleteCount); - var itemsDeleted = this.slice(startIndex, startIndex + deleteCount); - this.length = startIndex; - // Copy the arguments into a proper Array object - var argumentsArray = []; - for (var i = 0; i < arguments.length; i++) { - argumentsArray[i] = arguments[i]; - } - var itemsToAppend = (argumentsArray.length > 2) ? - itemsAfterDeleted = argumentsArray.slice(2).concat(itemsAfterDeleted) : itemsAfterDeleted; - for (i = 0; i < itemsToAppend.length; i++) { - this.push(itemsToAppend[i]); - } - return itemsDeleted; - }; -} - -/* ------------------------------------------------------------------------- */ - -var log4javascript; -var SimpleDateFormat; - -(function() { - function isUndefined(obj) { - return typeof obj == "undefined"; - } - - // Date-related stuff - (function() { - var regex = /('[^']*')|(G+|y+|M+|w+|W+|D+|d+|F+|E+|a+|H+|k+|K+|h+|m+|s+|S+|Z+)|([a-zA-Z]+)|([^a-zA-Z']+)/; - var monthNames = ["January", "February", "March", "April", "May", "June", - "July", "August", "September", "October", "November", "December"]; - var dayNames = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; - var TEXT2 = 0, TEXT3 = 1, NUMBER = 2, YEAR = 3, MONTH = 4, TIMEZONE = 5; - var types = { - G : TEXT2, - y : YEAR, - Y : YEAR, - M : MONTH, - w : NUMBER, - W : NUMBER, - D : NUMBER, - d : NUMBER, - F : NUMBER, - E : TEXT3, - a : TEXT2, - H : NUMBER, - k : NUMBER, - K : NUMBER, - h : NUMBER, - m : NUMBER, - s : NUMBER, - S : NUMBER, - Z : TIMEZONE - }; - var ONE_DAY = 24 * 60 * 60 * 1000; - var ONE_WEEK = 7 * ONE_DAY; - var DEFAULT_MINIMAL_DAYS_IN_FIRST_WEEK = 1; - - Date.prototype.getDifference = function(date) { - return this.getTime() - date.getTime(); - }; - - Date.prototype.isBefore = function(d) { - return this.getTime() < d.getTime(); - }; - - Date.prototype.getWeekInYear = function(minimalDaysInFirstWeek) { - if (isUndefined(this.minimalDaysInFirstWeek)) { - minimalDaysInFirstWeek = DEFAULT_MINIMAL_DAYS_IN_FIRST_WEEK; - } - var previousSunday = new Date(this.getTime() - this.getDay() * ONE_DAY); - previousSunday = new Date(previousSunday.getFullYear(), previousSunday.getMonth(), previousSunday.getDate()); - var startOfYear = new Date(this.getFullYear(), 0, 1); - var numberOfSundays = previousSunday.isBefore(startOfYear) ? - 0 : 1 + Math.floor((previousSunday.getTime() - startOfYear.getTime()) / ONE_WEEK); - var numberOfDaysInFirstWeek = 7 - startOfYear.getDay(); - var weekInYear = numberOfSundays; - if (numberOfDaysInFirstWeek >= minimalDaysInFirstWeek) { - weekInYear++; - } - return weekInYear; - }; - - Date.prototype.getWeekInMonth = function(minimalDaysInFirstWeek) { - if (isUndefined(this.minimalDaysInFirstWeek)) { - minimalDaysInFirstWeek = DEFAULT_MINIMAL_DAYS_IN_FIRST_WEEK; - } - var previousSunday = new Date(this.getTime() - this.getDay() * ONE_DAY); - previousSunday = new Date(previousSunday.getFullYear(), previousSunday.getMonth(), previousSunday.getDate()); - var startOfMonth = new Date(this.getFullYear(), this.getMonth(), 1); - var numberOfSundays = previousSunday.isBefore(startOfMonth) ? - 0 : 1 + Math.floor((previousSunday.getTime() - startOfMonth.getTime()) / ONE_WEEK); - var numberOfDaysInFirstWeek = 7 - startOfMonth.getDay(); - var weekInMonth = numberOfSundays; - if (numberOfDaysInFirstWeek >= minimalDaysInFirstWeek) { - weekInMonth++; - } - return weekInMonth; - }; - - Date.prototype.getDayInYear = function() { - var startOfYear = new Date(this.getFullYear(), 0, 1); - return 1 + Math.floor((this.getTime() - startOfYear.getTime()) / ONE_DAY); - }; - - /* ----------------------------------------------------------------- */ - - SimpleDateFormat = function(formatString) { - this.formatString = formatString; - }; - - /** - * Sets the minimum number of days in a week in order for that week to - * be considered as belonging to a particular month or year - */ - SimpleDateFormat.prototype.setMinimalDaysInFirstWeek = function(days) { - this.minimalDaysInFirstWeek = days; - }; - - SimpleDateFormat.prototype.getMinimalDaysInFirstWeek = function(days) { - return isUndefined(this.minimalDaysInFirstWeek) ? - DEFAULT_MINIMAL_DAYS_IN_FIRST_WEEK : this.minimalDaysInFirstWeek; - }; - - SimpleDateFormat.prototype.format = function(date) { - var formattedString = ""; - var result; - - var padWithZeroes = function(str, len) { - while (str.length < len) { - str = "0" + str; - } - return str; - }; - - var formatText = function(data, numberOfLetters, minLength) { - return (numberOfLetters >= 4) ? data : data.substr(0, Math.max(minLength, numberOfLetters)); - }; - - var formatNumber = function(data, numberOfLetters) { - var dataString = "" + data; - // Pad with 0s as necessary - return padWithZeroes(dataString, numberOfLetters); - }; - - var searchString = this.formatString; - while ((result = regex.exec(searchString))) { - var matchedString = result[0]; - var quotedString = result[1]; - var patternLetters = result[2]; - var otherLetters = result[3]; - var otherCharacters = result[4]; - - // If the pattern matched is quoted string, output the text between the quotes - if (quotedString) { - if (quotedString == "''") { - formattedString += "'"; - } else { - formattedString += quotedString.substring(1, quotedString.length - 1); - } - } else if (otherLetters) { - // Swallow non-pattern letters by doing nothing here - } else if (otherCharacters) { - // Simply output other characters - formattedString += otherCharacters; - } else if (patternLetters) { - // Replace pattern letters - var patternLetter = patternLetters.charAt(0); - var numberOfLetters = patternLetters.length; - var rawData = ""; - switch (patternLetter) { - case "G": - rawData = "AD"; - break; - case "y": - rawData = date.getFullYear(); - break; - case "M": - rawData = date.getMonth(); - break; - case "w": - rawData = date.getWeekInYear(this.getMinimalDaysInFirstWeek()); - break; - case "W": - rawData = date.getWeekInMonth(this.getMinimalDaysInFirstWeek()); - break; - case "D": - rawData = date.getDayInYear(); - break; - case "d": - rawData = date.getDate(); - break; - case "F": - rawData = 1 + Math.floor((date.getDate() - 1) / 7); - break; - case "E": - rawData = dayNames[date.getDay()]; - break; - case "a": - rawData = (date.getHours() >= 12) ? "PM" : "AM"; - break; - case "H": - rawData = date.getHours(); - break; - case "k": - rawData = 1 + date.getHours(); - break; - case "K": - rawData = date.getHours() % 12; - break; - case "h": - rawData = 1 + (date.getHours() % 12); - break; - case "m": - rawData = date.getMinutes(); - break; - case "s": - rawData = date.getSeconds(); - break; - case "S": - rawData = date.getMilliseconds(); - break; - case "Z": - rawData = date.getTimezoneOffset(); // This returns the number of minutes since GMT was this time. - break; - } - // Format the raw data depending on the type - switch (types[patternLetter]) { - case TEXT2: - formattedString += formatText(rawData, numberOfLetters, 2); - break; - case TEXT3: - formattedString += formatText(rawData, numberOfLetters, 3); - break; - case NUMBER: - formattedString += formatNumber(rawData, numberOfLetters); - break; - case YEAR: - if (numberOfLetters <= 2) { - // Output a 2-digit year - var dataString = "" + rawData; - formattedString += dataString.substr(2, 2); - } else { - formattedString += formatNumber(rawData, numberOfLetters); - } - break; - case MONTH: - if (numberOfLetters >= 3) { - formattedString += formatText(monthNames[rawData], numberOfLetters, numberOfLetters); - } else { - // NB. Months returned by getMonth are zero-based - formattedString += formatNumber(rawData + 1, numberOfLetters); - } - break; - case TIMEZONE: - var isPositive = (rawData > 0); - // The following line looks like a mistake but isn't - // because of the way getTimezoneOffset measures. - var prefix = isPositive ? "-" : "+"; - var absData = Math.abs(rawData); - - // Hours - var hours = "" + Math.floor(absData / 60); - hours = padWithZeroes(hours, 2); - // Minutes - var minutes = "" + (absData % 60); - minutes = padWithZeroes(minutes, 2); - - formattedString += prefix + hours + minutes; - break; - } - } - searchString = searchString.substr(result.index + result[0].length); - } - return formattedString; - }; - })(); - - /* ------------------------------------------------------------------------- */ - - var applicationStartDate = new Date(); - var uniqueId = "log4javascript_" + applicationStartDate.getTime() + "_" + - Math.floor(Math.random() * 100000000); - var emptyFunction = function() {}; - var newLine = "\r\n"; - - // Create logging object; this will be assigned properties and returned - log4javascript = {}; - log4javascript.version = "1.3.1"; - - // Returns a nicely formatted representation of an error - function getExceptionStringRep(ex) { - if (ex) { - var exStr = "Exception: "; - if (ex.message) { - exStr += ex.message; - } else if (ex.description) { - exStr += ex.description; - } - if (ex.lineNumber) { - exStr += " on line number " + ex.lineNumber; - } - if (ex.fileName) { - exStr += " in file " + ex.fileName; - } - if (showStackTraces && ex.stack) { - exStr += newLine + "Stack trace:" + newLine + ex.stack; - } - return exStr; - } - return null; - } - - function formatObjectExpansion(obj, depth, indentation) { - var i, output, childDepth, childIndentation, childLines; - if ((obj instanceof Array) && depth > 0) { - if (!indentation) { - indentation = ""; - } - output = "[" + newLine; - childDepth = depth - 1; - childIndentation = indentation + " "; - childLines = []; - for (i = 0; i < obj.length; i++) { - childLines.push(childIndentation + formatObjectExpansion(obj[i], childDepth, childIndentation)); - } - output += childLines.join("," + newLine) + newLine + indentation + "]"; - return output; - } else if (typeof obj == "object" && depth > 0) { - if (!indentation) { - indentation = ""; - } - output = "" + "{" + newLine; - childDepth = depth - 1; - childIndentation = indentation + " "; - childLines = []; - for (i in obj) { - childLines.push(childIndentation + i + ": " + formatObjectExpansion(obj[i], childDepth, childIndentation)); - } - output += childLines.join("," + newLine) + newLine + indentation + "}"; - return output; - } else if (typeof obj == "string") { - return obj; - } else { - return obj.toString(); - } - } - - function escapeNewLines(str) { - return str.replace(/\r\n|\r|\n/g, "\\r\\n"); - } - - function urlEncode(str) { - return escape(str).replace(/\+/g, "%2B").replace(/"/g, "%22").replace(/'/g, "%27").replace(/\//g, "%2F"); - } - - function bool(obj) { - return Boolean(obj); - } - - function array_remove(arr, val) { - var index = -1; - for (var i = 0; i < arr.length; i++) { - if (arr[i] === val) { - index = i; - break; - } - } - if (index >= 0) { - arr.splice(index, 1); - return true; - } else { - return false; - } - } - - function extractBooleanFromParam(param, defaultValue) { - if (isUndefined(param)) { - return defaultValue; - } else { - return bool(param); - } - } - - function extractStringFromParam(param, defaultValue) { - if (isUndefined(param)) { - return defaultValue; - } else { - return String(param); - } - } - - function extractIntFromParam(param, defaultValue) { - if (isUndefined(param)) { - return defaultValue; - } else { - try { - var value = parseInt(param, 10); - return isNaN(value) ? defaultValue : value; - } catch (ex) { - logLog.warn("Invalid int param " + param, ex); - return defaultValue; - } - } - } - - function extractFunctionFromParam(param, defaultValue) { - if (typeof param == "function") { - return param; - } else { - return defaultValue; - } - } - - /* --------------------------------------------------------------------- */ - - // Simple logging for log4javascript itself - - var logLog = { - quietMode: false, - - setQuietMode: function(quietMode) { - this.quietMode = bool(quietMode); - }, - - numberOfErrors: 0, - - alertAllErrors: false, - - setAlertAllErrors: function(alertAllErrors) { - this.alertAllErrors = alertAllErrors; - }, - - debug: function(message, exception) { - }, - - warn: function(message, exception) { - }, - - error: function(message, exception) { - if (++this.numberOfErrors == 1 || this.alertAllErrors) { - if (!this.quietMode) { - var alertMessage = "log4javascript error: " + message; - if (exception) { - alertMessage += newLine + newLine + "Original error: " + getExceptionStringRep(exception); - } - alert(alertMessage); - } - } - } - }; - log4javascript.logLog = logLog; - - /* --------------------------------------------------------------------- */ - - var errorListeners = []; - - log4javascript.addErrorListener = function(listener) { - if (typeof listener == "function") { - errorListeners.push(listener); - } else { - handleError("addErrorListener: listener supplied was not a function"); - } - }; - - log4javascript.removeErrorListener = function(listener) { - array_remove(errorListeners, listener); - }; - - function handleError(message, exception) { - logLog.error(message, exception); - for (var i = 0; i < errorListeners.length; i++) { - errorListeners[i](message, exception); - } - } - - /* --------------------------------------------------------------------- */ - - var enabled = (typeof log4javascript_disabled != "undefined") && - log4javascript_disabled ? false : true; - - log4javascript.setEnabled = function(enable) { - enabled = bool(enable); - }; - - log4javascript.isEnabled = function() { - return enabled; - }; - - // This evaluates the given expression in the current scope, thus allowing - // scripts to access private variables. Particularly useful for testing - log4javascript.evalInScope = function(expr) { - return eval(expr); - }; - - var showStackTraces = false; - - log4javascript.setShowStackTraces = function(show) { - showStackTraces = bool(show); - }; - - /* --------------------------------------------------------------------- */ - - function Logger(name) { - this.name = name; - var appenders = []; - var loggerLevel = Level.DEBUG; - - // Create methods that use the appenders variable in this scope - this.addAppender = function(appender) { - if (appender instanceof log4javascript.Appender) { - appenders.push(appender); - } else { - handleError("Logger.addAppender: appender supplied is not a subclass of Appender"); - } - }; - - this.removeAppender = function(appender) { - array_remove(appenders, appender); - }; - - this.removeAllAppenders = function(appender) { - appenders.length = 0; - }; - - this.log = function(level, message, exception) { - if (level.isGreaterOrEqual(loggerLevel)) { - var loggingEvent = new LoggingEvent( - this, new Date(), level, message, exception); - for (var i = 0; i < appenders.length; i++) { - appenders[i].doAppend(loggingEvent); - } - } - }; - - this.setLevel = function(level) { - loggerLevel = level; - }; - - this.getLevel = function() { - return loggerLevel; - }; - } - - Logger.prototype = { - trace: function(message, exception) { - this.log(Level.TRACE, message, exception); - }, - - debug: function(message, exception) { - this.log(Level.DEBUG, message, exception); - }, - - info: function(message, exception) { - this.log(Level.INFO, message, exception); - }, - - warn: function(message, exception) { - this.log(Level.WARN, message, exception); - }, - - error: function(message, exception) { - this.log(Level.ERROR, message, exception); - }, - - fatal: function(message, exception) { - this.log(Level.FATAL, message, exception); - } - }; - - Logger.prototype.trace.isEntryPoint = true; - Logger.prototype.debug.isEntryPoint = true; - Logger.prototype.info.isEntryPoint = true; - Logger.prototype.warn.isEntryPoint = true; - Logger.prototype.error.isEntryPoint = true; - Logger.prototype.fatal.isEntryPoint = true; - - /* --------------------------------------------------------------------- */ - - // Hashtable of loggers keyed by logger name - var loggers = {}; - - log4javascript.getLogger = function(loggerName) { - // Use default logger if loggerName is not specified or invalid - if (!(typeof loggerName == "string")) { - loggerName = "[anonymous]"; - } - - // Create the logger for this name if it doesn't already exist - if (!loggers[loggerName]) { - loggers[loggerName] = new Logger(loggerName); - } - return loggers[loggerName]; - }; - - var defaultLogger = null; - log4javascript.getDefaultLogger = function() { - if (!defaultLogger) { - defaultLogger = log4javascript.getLogger("[default]"); - var a = new log4javascript.PopUpAppender(); - defaultLogger.addAppender(a); - } - return defaultLogger; - }; - - var nullLogger = null; - log4javascript.getNullLogger = function() { - if (!nullLogger) { - nullLogger = log4javascript.getLogger("[null]"); - } - return nullLogger; - }; - - /* --------------------------------------------------------------------- */ - - var Level = function(level, name) { - this.level = level; - this.name = name; - }; - - Level.prototype = { - toString: function() { - return this.name; - }, - equals: function(level) { - return this.level == level.level; - }, - isGreaterOrEqual: function(level) { - return this.level >= level.level; - } - }; - - Level.ALL = new Level(Number.MIN_VALUE, "ALL"); - Level.TRACE = new Level(10000, "TRACE"); - Level.DEBUG = new Level(20000, "DEBUG"); - Level.INFO = new Level(30000, "INFO"); - Level.WARN = new Level(40000, "WARN"); - Level.ERROR = new Level(50000, "ERROR"); - Level.FATAL = new Level(60000, "FATAL"); - Level.OFF = new Level(Number.MAX_VALUE, "OFF"); - - log4javascript.Level = Level; - - /* --------------------------------------------------------------------- */ - - var LoggingEvent = function(logger, timeStamp, level, message, - exception) { - this.logger = logger; - this.timeStamp = timeStamp; - this.timeStampInSeconds = Math.floor(timeStamp.getTime() / 1000); - this.level = level; - this.message = message; - this.exception = exception; - }; - - LoggingEvent.prototype.getThrowableStrRep = function() { - return this.exception ? - getExceptionStringRep(this.exception) : ""; - }; - - log4javascript.LoggingEvent = LoggingEvent; - - /* --------------------------------------------------------------------- */ - - // Layout "abstract class" - var Layout = function() { - }; - - Layout.prototype = { - defaults: { - loggerKey: "logger", - timeStampKey: "timestamp", - levelKey: "level", - messageKey: "message", - exceptionKey: "exception", - urlKey: "url" - }, - loggerKey: "logger", - timeStampKey: "timestamp", - levelKey: "level", - messageKey: "message", - exceptionKey: "exception", - urlKey: "url", - batchHeader: "", - batchFooter: "", - batchSeparator: "", - - format: function(loggingEvent) { - handleError("Layout.format: layout supplied has no format() method"); - }, - - ignoresThrowable: function() { - handleError("Layout.ignoresThrowable: layout supplied has no ignoresThrowable() method"); - }, - - getContentType: function() { - return "text/plain"; - }, - - allowBatching: function() { - return true; - }, - - getDataValues: function(loggingEvent) { - var dataValues = [ - [this.loggerKey, loggingEvent.logger.name], - [this.timeStampKey, loggingEvent.timeStampInSeconds], - [this.levelKey, loggingEvent.level.name], - [this.urlKey, window.location.href], - [this.messageKey, loggingEvent.message] - ]; - if (loggingEvent.exception) { - dataValues.push([this.exceptionKey, getExceptionStringRep(loggingEvent.exception)]); - } - if (this.hasCustomFields()) { - for (var i = 0; i < this.customFields.length; i++) { - dataValues.push([this.customFields[i].name, this.customFields[i].value]); - } - } - return dataValues; - }, - - setKeys: function(loggerKey, timeStampKey, levelKey, messageKey, - exceptionKey, urlKey) { - this.loggerKey = extractStringFromParam(loggerKey, this.defaults.loggerKey); - this.timeStampKey = extractStringFromParam(timeStampKey, this.defaults.timeStampKey); - this.levelKey = extractStringFromParam(levelKey, this.defaults.levelKey); - this.messageKey = extractStringFromParam(messageKey, this.defaults.messageKey); - this.exceptionKey = extractStringFromParam(exceptionKey, this.defaults.exceptionKey); - this.urlKey = extractStringFromParam(urlKey, this.defaults.urlKey); - }, - - setCustomField: function(name, value) { - var fieldUpdated = false; - for (var i = 0; i < this.customFields.length; i++) { - if (this.customFields[i].name === name) { - this.customFields[i].value = value; - fieldUpdated = true; - } - } - if (!fieldUpdated) { - this.customFields.push({"name": name, "value": value}); - } - }, - - hasCustomFields: function() { - return (this.customFields.length > 0); - } - }; - - log4javascript.Layout = Layout; - - /* --------------------------------------------------------------------- */ - - // SimpleLayout - var SimpleLayout = function() { - this.customFields = []; - }; - - SimpleLayout.prototype = new Layout(); - - SimpleLayout.prototype.format = function(loggingEvent) { - return loggingEvent.level.name + " - " + loggingEvent.message; - }; - - SimpleLayout.prototype.ignoresThrowable = function(loggingEvent) { - return true; - }; - - log4javascript.SimpleLayout = SimpleLayout; - - /* --------------------------------------------------------------------- */ - - // NullLayout - var NullLayout = function() { - this.customFields = []; - }; - - NullLayout.prototype = new Layout(); - - NullLayout.prototype.format = function(loggingEvent) { - return loggingEvent.message; - }; - - NullLayout.prototype.ignoresThrowable = function(loggingEvent) { - return true; - }; - - log4javascript.NullLayout = NullLayout; - - /* --------------------------------------------------------------------- */ - - // XmlLayout - var XmlLayout = function() { - this.customFields = []; - }; - - XmlLayout.prototype = new Layout(); - - XmlLayout.prototype.getContentType = function() { - return "text/xml"; - }; - - XmlLayout.prototype.escapeCdata = function(str) { - return str.replace(/\]\]>/, "]]>]]>" + newLine + "" + newLine; - if (this.hasCustomFields()) { - for (var i = 0; i < this.customFields.length; i++) { - str += "" + newLine; - } - } - if (loggingEvent.exception) { - str += "" + newLine; - } - str += "" + newLine + newLine; - return str; - }; - - XmlLayout.prototype.ignoresThrowable = function(loggingEvent) { - return false; - }; - - log4javascript.XmlLayout = XmlLayout; - - /* --------------------------------------------------------------------- */ - - // JsonLayout - var JsonLayout = function(readable, loggerKey, timeStampKey, - levelKey, messageKey, exceptionKey, urlKey) { - this.readable = bool(readable); - this.batchHeader = this.readable ? "[" + newLine : "["; - this.batchFooter = this.readable ? "]" + newLine : "]"; - this.batchSeparator = this.readable ? "," + newLine : ","; - this.setKeys(loggerKey, timeStampKey, levelKey, messageKey, - exceptionKey, urlKey); - this.propertySeparator = this.readable ? ", " : ","; - this.colon = this.readable ? ": " : ":"; - this.customFields = []; - }; - - JsonLayout.prototype = new Layout(); - - JsonLayout.prototype.setReadable = function(readable) { - this.readable = bool(readable); - }; - - JsonLayout.prototype.isReadable = function() { - return this.readable; - }; - - JsonLayout.prototype.format = function(loggingEvent) { - var dataValues = this.getDataValues(loggingEvent); - var str = "{"; - if (this.readable) { - str += newLine; - } - for (var i = 0; i < dataValues.length; i++) { - if (this.readable) { - str += "\t"; - } - // Check the type of the data value to decide whether quotation marks - // are required - var valType = typeof dataValues[i][1]; - var val = (valType != "number" && valType != "boolean") ? - "\"" + escapeNewLines(dataValues[i][1].toString().replace(/\"/g, "\\\"")) + "\"" : - dataValues[i][1]; - str += "\"" + dataValues[i][0] + "\"" + this.colon + val; - if (i < dataValues.length - 1) { - str += this.propertySeparator; - } - if (this.readable) { - str += newLine; - } - } - str += "}"; - if (this.readable) { - str += newLine; - } - return str; - }; - - JsonLayout.prototype.ignoresThrowable = function(loggingEvent) { - return false; - }; - - log4javascript.JsonLayout = JsonLayout; - - /* --------------------------------------------------------------------- */ - - // HttpPostDataLayout - var HttpPostDataLayout = function(loggerKey, timeStampKey, - levelKey, messageKey, exceptionKey, urlKey) { - this.setKeys(loggerKey, timeStampKey, levelKey, messageKey, - exceptionKey, urlKey); - this.customFields = []; - }; - - HttpPostDataLayout.prototype = new Layout(); - - // Disable batching - HttpPostDataLayout.prototype.allowBatching = function() { - return false; - }; - - HttpPostDataLayout.prototype.format = function(loggingEvent) { - var dataValues = this.getDataValues(loggingEvent); - var queryBits = []; - for (var i = 0; i < dataValues.length; i++) { - queryBits.push(urlEncode(dataValues[i][0]) + "=" + urlEncode(dataValues[i][1])); - } - return queryBits.join("&"); - }; - - HttpPostDataLayout.prototype.ignoresThrowable = function(loggingEvent) { - return false; - }; - - log4javascript.HttpPostDataLayout = HttpPostDataLayout; - - /* --------------------------------------------------------------------- */ - - // PatternLayout - var PatternLayout = function(pattern) { - if (pattern) { - this.pattern = pattern; - } else { - this.pattern = PatternLayout.DEFAULT_CONVERSION_PATTERN; - } - this.customFields = []; - }; - - PatternLayout.TTCC_CONVERSION_PATTERN = "%r %p %c - %m%n"; - PatternLayout.DEFAULT_CONVERSION_PATTERN = "%m%n"; - PatternLayout.ISO8601_DATEFORMAT = "yyyy-MM-dd HH:mm:ss,SSS"; - PatternLayout.DATETIME_DATEFORMAT = "dd MMM yyyy HH:mm:ss,SSS"; - PatternLayout.ABSOLUTETIME_DATEFORMAT = "HH:mm:ss,SSS"; - - PatternLayout.prototype = new Layout(); - - PatternLayout.prototype.format = function(loggingEvent) { - var regex = /%(-?[0-9]+)?(\.?[0-9]+)?([cdfmMnpr%])(\{([^\}]+)\})?|([^%]+)/; - var formattedString = ""; - var result; - var searchString = this.pattern; - - // Cannot use regex global flag since it doesn't work with exec in IE5 - while ((result = regex.exec(searchString))) { - var matchedString = result[0]; - var padding = result[1]; - var truncation = result[2]; - var conversionCharacter = result[3]; - var specifier = result[5]; - var text = result[6]; - - // Check if the pattern matched was just normal text - if (text) { - formattedString += "" + text; - } else { - // Create a raw replacement string based on the conversion - // character and specifier - var replacement = ""; - switch(conversionCharacter) { - case "c": // Logger name - var loggerName = loggingEvent.logger.name; - if (specifier) { - var precision = parseInt(specifier, 10); - var loggerNameBits = loggingEvent.logger.name.split("."); - if (precision >= loggerNameBits.length) { - replacement = loggerName; - } else { - replacement = loggerNameBits.slice(loggerNameBits.length - precision).join("."); - } - } else { - replacement = loggerName; - } - break; - case "d": // Date - var dateFormat = PatternLayout.ISO8601_DATEFORMAT; - if (specifier) { - dateFormat = specifier; - // Pick up special cases - if (dateFormat == "ISO8601") { - dateFormat = PatternLayout.ISO8601_DATEFORMAT; - } else if (dateFormat == "ABSOLUTE") { - dateFormat = PatternLayout.ABSOLUTETIME_DATEFORMAT; - } else if (dateFormat == "DATE") { - dateFormat = PatternLayout.DATETIME_DATEFORMAT; - } - } - // Format the date - replacement = (new SimpleDateFormat(dateFormat)).format(loggingEvent.timeStamp); - break; - case "f": // Custom field - if (this.hasCustomFields()) { - var fieldIndex = 0; - if (specifier) { - fieldIndex = parseInt(specifier, 10); - if (isNaN(fieldIndex)) { - handleError("PatternLayout.format: invalid specifier '" + - specifier + "' for conversion character 'f' - should be a number"); - } else if (fieldIndex === 0) { - handleError("PatternLayout.format: invalid specifier '" + - specifier + "' for conversion character 'f' - must be greater than zero"); - } else if (fieldIndex > this.customFields.length) { - handleError("PatternLayout.format: invalid specifier '" + - specifier + "' for conversion character 'f' - there aren't that many custom fields"); - } else { - fieldIndex = fieldIndex - 1; - } - } - replacement = this.customFields[fieldIndex].value; - } - break; - case "m": // Message - if (specifier) { - var depth = parseInt(specifier, 10); - if (isNaN(depth)) { - handleError("PatternLayout.format: invalid specifier '" + - specifier + "' for conversion character 'm' - should be a number"); - replacement = loggingEvent.message; - } else { - replacement = formatObjectExpansion(loggingEvent.message, depth); - } - } else { - replacement = loggingEvent.message; - } - break; - case "n": // New line - replacement = newLine; - break; - case "p": // Level - replacement = loggingEvent.level.name; - break; - case "r": // Milliseconds since log4javascript startup - replacement = "" + loggingEvent.timeStamp.getDifference(applicationStartDate); - break; - case "%": // Literal % sign - replacement = "%"; - break; - default: - replacement = matchedString; - break; - } - // Format the replacement according to any padding or - // truncation specified - var len; - - // First, truncation - if (truncation) { - len = parseInt(truncation.substr(1), 10); - var strLen = replacement.length; - if (len < strLen) { - replacement = replacement.substring(strLen - len, strLen); - } - } - // Next, padding - if (padding) { - if (padding.charAt(0) == "-") { - len = parseInt(padding.substr(1), 10); - // Right pad with spaces - while (replacement.length < len) { - replacement += " "; - } - } else { - len = parseInt(padding, 10); - // Left pad with spaces - while (replacement.length < len) { - replacement = " " + replacement; - } - } - } - formattedString += replacement; - } - searchString = searchString.substr(result.index + result[0].length); - } - return formattedString; - }; - - PatternLayout.prototype.ignoresThrowable = function(loggingEvent) { - return true; - }; - - log4javascript.PatternLayout = PatternLayout; - - /* --------------------------------------------------------------------- */ - - // Appender "abstract class" - var Appender = function() {}; - - // Performs threshold checks before delegating actual logging to the - // subclass's specific append method. - Appender.prototype = { - layout: new PatternLayout(), - threshold: Level.ALL, - - doAppend: function(loggingEvent) { - if (enabled && loggingEvent.level.level >= this.threshold.level) { - this.append(loggingEvent); - } - }, - - append: function(loggingEvent) {}, - - setLayout: function(layout) { - if (layout instanceof Layout) { - this.layout = layout; - } else { - handleError("Appender.setLayout: layout supplied to " + - this.toString() + " is not a subclass of Layout"); - } - }, - - getLayout: function() { - return this.layout; - }, - - setThreshold: function(threshold) { - if (threshold instanceof Level) { - this.threshold = threshold; - } else { - handleError("Appender.setThreshold: threshold supplied to " + - this.toString() + " is not a subclass of Level"); - } - }, - - getThreshold: function() { - return this.threshold; - }, - - toString: function() { - return "[Base Appender]"; - } - }; - - log4javascript.Appender = Appender; - - /* --------------------------------------------------------------------- */ - - // AlertAppender - var AlertAppender = function(layout) { - if (layout) { - this.setLayout(layout); - } - }; - - AlertAppender.prototype = new Appender(); - - AlertAppender.prototype.layout = new SimpleLayout(); - - AlertAppender.prototype.append = function(loggingEvent) { - var formattedMessage = this.getLayout().format(loggingEvent); - if (this.getLayout().ignoresThrowable()) { - formattedMessage += loggingEvent.getThrowableStrRep(); - } - alert(formattedMessage); - }; - - AlertAppender.prototype.toString = function() { - return "[AlertAppender]"; - }; - - log4javascript.AlertAppender = AlertAppender; - - /* --------------------------------------------------------------------- */ - - // AjaxAppender - var AjaxAppender = function(url, layout, timed, waitForResponse, - batchSize, timerInterval, requestSuccessCallback, failCallback) { - var appender = this; - var isSupported = true; - if (!url) { - handleError("AjaxAppender: URL must be specified in constructor"); - isSupported = false; - } - - timed = extractBooleanFromParam(timed, this.defaults.timed); - waitForResponse = extractBooleanFromParam(waitForResponse, this.defaults.waitForResponse); - batchSize = extractIntFromParam(batchSize, this.defaults.batchSize); - timerInterval = extractIntFromParam(timerInterval, this.defaults.timerInterval); - requestSuccessCallback = extractFunctionFromParam(requestSuccessCallback, this.defaults.requestSuccessCallback); - failCallback = extractFunctionFromParam(failCallback, this.defaults.failCallback); - var sessionId = null; - - var queuedLoggingEvents = []; - var queuedRequests = []; - var sending = false; - var initialized = false; - - // Configuration methods. The function scope is used to prevent - // direct alteration to the appender configuration properties. - function checkCanConfigure(configOptionName) { - if (initialized) { - handleError("AjaxAppender: configuration option '" + configOptionName + "' may not be set after the appender has been initialized"); - return false; - } - return true; - } - - this.getSessionId = function() { return sessionId; }; - this.setSessionId = function(sessionIdParam) { - sessionId = extractStringFromParam(sessionIdParam, null); - this.layout.setCustomField("sessionid", sessionId); - }; - - this.setLayout = function(layout) { - if (checkCanConfigure("layout")) { - this.layout = layout; - // Set the session id as a custom field on the layout, if not already present - if (sessionId !== null) { - this.setSessionId(sessionId); - } - } - }; - - if (layout) { - this.setLayout(layout); - } - - this.isTimed = function() { return timed; }; - this.setTimed = function(timedParam) { - if (checkCanConfigure("timed")) { - timed = bool(timedParam); - } - }; - - this.getTimerInterval = function() { return timerInterval; }; - this.setTimerInterval = function(timerIntervalParam) { - if (checkCanConfigure("timerInterval")) { - timerInterval = extractIntFromParam(timerIntervalParam, timerInterval); - } - }; - - this.isWaitForResponse = function() { return waitForResponse; }; - this.setWaitForResponse = function(waitForResponseParam) { - if (checkCanConfigure("waitForResponse")) { - waitForResponse = bool(waitForResponseParam); - } - }; - - this.getBatchSize = function() { return batchSize; }; - this.setBatchSize = function(batchSizeParam) { - if (checkCanConfigure("batchSize")) { - batchSize = extractIntFromParam(batchSizeParam, batchSize); - } - }; - - this.setRequestSuccessCallback = function(requestSuccessCallbackParam) { - requestSuccessCallback = extractFunctionFromParam(requestSuccessCallbackParam, requestSuccessCallback); - }; - - this.setFailCallback = function(failCallbackParam) { - failCallback = extractFunctionFromParam(failCallbackParam, failCallback); - }; - - // Internal functions - function sendAll() { - if (isSupported && enabled) { - sending = true; - var currentRequestBatch; - if (waitForResponse) { - // Send the first request then use this function as the callback once - // the response comes back - if (queuedRequests.length > 0) { - currentRequestBatch = queuedRequests.shift(); - sendRequest(preparePostData(currentRequestBatch), sendAll); - } else { - sending = false; - if (timed) { - scheduleSending(); - } - } - } else { - // Rattle off all the requests without waiting to see the response - while ((currentRequestBatch = queuedRequests.shift())) { - sendRequest(preparePostData(currentRequestBatch)); - } - sending = false; - if (timed) { - scheduleSending(); - } - } - } - } - - this.sendAll = sendAll; - - function preparePostData(batchedLoggingEvents) { - // Format the logging events - var formattedMessages = []; - var currentLoggingEvent; - var postData = ""; - while ((currentLoggingEvent = batchedLoggingEvents.shift())) { - var currentFormattedMessage = appender.getLayout().format(currentLoggingEvent); - if (appender.getLayout().ignoresThrowable()) { - currentFormattedMessage += loggingEvent.getThrowableStrRep(); - } - formattedMessages.push(currentFormattedMessage); - } - // Create the post data string - if (batchedLoggingEvents.length == 1) { - postData = formattedMessages.join(""); - } else { - postData = appender.getLayout().batchHeader + - formattedMessages.join(appender.getLayout().batchSeparator) + - appender.getLayout().batchFooter; - } - return postData; - } - - function scheduleSending() { - setTimeout(sendAll, timerInterval); - } - - function getXmlHttp() { - var xmlHttp = null; - if (typeof XMLHttpRequest == "object" || typeof XMLHttpRequest == "function") { - xmlHttp = new XMLHttpRequest(); - } else { - try { - xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); - } catch (e2){ - try { - xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); - } catch (e3) { - var msg = "AjaxAppender: could not create XMLHttpRequest object. AjaxAppender disabled"; - handleError(msg); - isSupported = false; - if (failCallback) { - failCallback(msg); - } - } - } - } - return xmlHttp; - } - - function sendRequest(postData, successCallback) { - try { - var xmlHttp = getXmlHttp(); - if (isSupported) { - if (xmlHttp.overrideMimeType) { - xmlHttp.overrideMimeType(appender.getLayout().getContentType()); - } - xmlHttp.onreadystatechange = function() { - if (xmlHttp.readyState == 4) { - var success = (isUndefined(xmlHttp.status) || xmlHttp.status === 0 || - (xmlHttp.status >= 200 && xmlHttp.status < 300)); - if (success) { - if (requestSuccessCallback) { - requestSuccessCallback(xmlHttp); - } - if (successCallback) { - successCallback(xmlHttp); - } - } else { - var msg = "AjaxAppender.append: XMLHttpRequest request to URL " + - url + " returned status code " + xmlHttp.status; - handleError(msg); - if (failCallback) { - failCallback(msg); - } - } - xmlHttp.onreadystatechange = emptyFunction; - xmlHttp = null; - } - }; - xmlHttp.open("POST", url, true); - try { - xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); - } catch (headerEx) { - var msg = "AjaxAppender.append: your browser's XMLHttpRequest implementation" + - " does not support setRequestHeader, therefore cannot post data. AjaxAppender disabled"; - handleError(msg); - isSupported = false; - if (failCallback) { - failCallback(msg); - } - return; - } - xmlHttp.send(postData); - } - } catch (ex) { - var msg = "AjaxAppender.append: error sending log message to " + url; - handleError(msg, ex); - if (failCallback) { - failCallback(msg + ". Details: " + getExceptionStringRep(ex)); - } - } - } - - this.append = function(loggingEvent) { - if (isSupported) { - if (!initialized) { - init(); - } - queuedLoggingEvents.push(loggingEvent); - var actualBatchSize = this.getLayout().allowBatching() ? batchSize : 1; - - if (queuedLoggingEvents.length >= actualBatchSize) { - var currentLoggingEvent; - var postData = ""; - var batchedLoggingEvents = []; - while ((currentLoggingEvent = queuedLoggingEvents.shift())) { - batchedLoggingEvents.push(currentLoggingEvent); - } - // Queue this batch of log entries - queuedRequests.push(batchedLoggingEvents); - - // If using a timer, the queue of requests will be processed by the - // timer function, so nothing needs to be done here. - if (!timed) { - if (!waitForResponse || (waitForResponse && !sending)) { - sendAll(); - } - } - } - } - }; - - function init() { - initialized = true; - // Start timer - if (timed) { - scheduleSending(); - } - } - }; - - AjaxAppender.prototype = new Appender(); - - AjaxAppender.prototype.defaults = { - waitForResponse: false, - timed: false, - timerInterval: 1000, - batchSize: 1, - requestSuccessCallback: null, - failCallback: null - }; - - AjaxAppender.prototype.layout = new HttpPostDataLayout(); - - AjaxAppender.prototype.toString = function() { - return "[AjaxAppender]"; - }; - - log4javascript.AjaxAppender = AjaxAppender; - - /* --------------------------------------------------------------------- */ - - // BaseConsoleAppender - // Create an anonymous function to protect base console methods - - (function() { - var getConsoleHtmlLines = function() { - return [ -'', -'', -' ', -' log4javascript', -' ', -' ', -' ', -' ', -'', -' ', -'
    ', -'
    ', -'
    ', -' Filters:', -' ', -' ', -' ', -' ', -' ', -' ', -' ', -'
    ', -' ', -'
    ', -' Options:', -' ', -' ', -' ', -' ', -' ', -' ', -'
    ', -'
    ', -'', -'
    ', -'
    ', -' ', -'' -]; - }; - - function ConsoleAppender() {} - - var consoleAppenderIdCounter = 1; - - ConsoleAppender.prototype = new Appender(); - - ConsoleAppender.prototype.create = function(inPage, containerElement, - layout, lazyInit, focusConsoleWindow, useOldPopUp, - complainAboutPopUpBlocking, newestMessageAtTop, - scrollToLatestMessage, initiallyMinimized, width, height, - reopenWhenClosed, maxMessages) { - var appender = this; - - // Common properties - if (layout) { - this.setLayout(layout); - } else { - this.setLayout(this.defaults.layout); - } - var initialized = false; - var consoleWindowLoaded = false; - var queuedLoggingEvents = []; - var isSupported = true; - var consoleAppenderId = consoleAppenderIdCounter++; - - // Params - lazyInit = extractBooleanFromParam(lazyInit, true); - newestMessageAtTop = extractBooleanFromParam(newestMessageAtTop, this.defaults.newestMessageAtTop); - scrollToLatestMessage = extractBooleanFromParam(scrollToLatestMessage, this.defaults.scrollToLatestMessage); - width = width ? width : this.defaults.width; - height = height ? height : this.defaults.height; - maxMessages = maxMessages ? maxMessages : this.defaults.maxMessages; - - // Functions whose implementations vary between subclasses - var init, safeToAppend, getConsoleWindow; - - // Configuration methods. The function scope is used to prevent - // direct alteration to the appender configuration properties. - var appenderName = inPage ? "InPageAppender" : "PopUpAppender"; - var checkCanConfigure = function(configOptionName) { - if (initialized) { - handleError(appenderName + ": configuration option '" + configOptionName + "' may not be set after the appender has been initialized"); - return false; - } - return true; - }; - - this.isNewestMessageAtTop = function() { return newestMessageAtTop; }; - this.setNewestMessageAtTop = function(newestMessageAtTopParam) { - newestMessageAtTop = bool(newestMessageAtTopParam); - if (consoleWindowLoaded && isSupported) { - getConsoleWindow().setNewestAtTop(newestMessageAtTop); - } - }; - - this.isScrollToLatestMessage = function() { return scrollToLatestMessage; }; - this.setScrollToLatestMessage = function(scrollToLatestMessageParam) { - scrollToLatestMessage = bool(scrollToLatestMessageParam); - if (consoleWindowLoaded && isSupported) { - getConsoleWindow().setScrollToLatest(scrollToLatestMessage); - } - }; - - this.getWidth = function() { return width; }; - this.setWidth = function(widthParam) { - if (checkCanConfigure("width")) { - width = extractStringFromParam(widthParam, width); - } - }; - - this.getHeight = function() { return height; }; - this.setHeight = function(heightParam) { - if (checkCanConfigure("height")) { - height = extractStringFromParam(heightParam, height); - } - }; - - this.getMaxMessages = function() { return maxMessages; }; - this.setMaxMessages = function(maxMessagesParam) { - maxMessages = extractIntFromParam(maxMessagesParam, maxMessages); - if (consoleWindowLoaded && isSupported) { - getConsoleWindow().setMaxMessages(maxMessages); - } - }; - - // Common methods - this.append = function(loggingEvent) { - if (isSupported) { - queuedLoggingEvents.push(loggingEvent); - // Force a check of whether the window is closed - var isSafeToAppend = safeToAppend(); - if (!initialized || (consoleClosed && reopenWhenClosed)) { - init(); - } - if (safeToAppend()) { - appendQueuedLoggingEvents(); - } - } - }; - - var appendQueuedLoggingEvents = function(loggingEvent) { - while (queuedLoggingEvents.length > 0) { - var currentLoggingEvent = queuedLoggingEvents.shift(); - var formattedMessage = appender.getLayout().format(currentLoggingEvent); - if (appender.getLayout().ignoresThrowable()) { - formattedMessage += currentLoggingEvent.getThrowableStrRep(); - } - getConsoleWindow().log(currentLoggingEvent.level, formattedMessage); - } - if (focusConsoleWindow) { - getConsoleWindow().focus(); - } - }; - - var writeHtml = function(doc) { - var lines = getConsoleHtmlLines(); - doc.open(); - for (var i = 0; i < lines.length; i++) { - doc.writeln(lines[i]); - } - doc.close(); - }; - - var consoleClosed = false; - - var pollConsoleWindow = function(windowTest, successCallback, errorMessage) { - function pollConsoleWindowLoaded() { - try { - // Test if the console has been closed while polling - if (consoleClosed) { - clearInterval(poll); - } - if (windowTest(getConsoleWindow())) { - clearInterval(poll); - successCallback(); - } - } catch (ex) { - clearInterval(poll); - isSupported = false; - handleError(errorMessage, ex); - } - } - - // Poll the pop-up since the onload event is not reliable - var poll = setInterval(pollConsoleWindowLoaded, 100); - }; - - // Define methods and properties that vary between subclasses - if (inPage) { - // InPageAppender - - // Extract params - if (!containerElement || !containerElement.appendChild) { - isSupported = false; - handleError("InPageAppender.init: a container DOM element must be supplied for the console window"); - return; - } - initiallyMinimized = extractBooleanFromParam(initiallyMinimized, appender.defaults.initiallyMinimized); - - // Configuration methods. The function scope is used to prevent - // direct alteration to the appender configuration properties. - this.isInitiallyMinimized = function() { return initiallyMinimized; }; - this.setInitiallyMinimized = function(initiallyMinimizedParam) { - if (checkCanConfigure("initiallyMinimized")) { - initiallyMinimized = bool(initiallyMinimizedParam); - } - }; - - // Define useful variables - var minimized = false; - var iframeContainerDiv; - var iframeId = uniqueId + "_InPageAppender_" + consoleAppenderId; - - this.hide = function() { - iframeContainerDiv.style.display = "none"; - minimized = true; - }; - - this.show = function() { - iframeContainerDiv.style.display = "block"; - minimized = false; - }; - - this.isVisible = function() { - return !minimized; - }; - - this.close = function() { - if (!consoleClosed) { - iframeContainerDiv.parentNode.removeChild(iframeContainerDiv); - consoleClosed = true; - } - }; - - // Create init, getConsoleWindow and safeToAppend functions - init = function() { - var initErrorMessage = "InPageAppender.init: unable to create console iframe"; - function finalInit() { - try { - getConsoleWindow().setNewestAtTop(newestMessageAtTop); - getConsoleWindow().setScrollToLatest(scrollToLatestMessage); - getConsoleWindow().setMaxMessages(maxMessages); - consoleWindowLoaded = true; - appendQueuedLoggingEvents(); - if (initiallyMinimized) { - appender.hide(); - } - } catch (ex) { - isSupported = false; - handleError(initErrorMessage, ex); - } - } - - function writeToDocument() { - try { - var windowTest = function(win) { return bool(win.loaded); }; - writeHtml(getConsoleWindow().document); - if (windowTest(getConsoleWindow())) { - finalInit(); - } else { - pollConsoleWindow(windowTest, finalInit, initErrorMessage); - } - } catch (ex) { - isSupported = false; - handleError(initErrorMessage, ex); - } - } - - minimized = initiallyMinimized; - iframeContainerDiv = containerElement.appendChild(document.createElement("div")); - - iframeContainerDiv.style.width = width; - iframeContainerDiv.style.height = height; - iframeContainerDiv.style.border = "solid gray 1px"; - - // Adding an iframe using the DOM would be preferable, but it doesn't work - // in IE5 on Windows, or in Konqueror prior to version 3.5 - in Konqueror - // it creates the iframe fine but I haven't been able to find a way to obtain - // the iframe's window object - var iframeHtml = ""; - iframeContainerDiv.innerHTML = iframeHtml; - consoleClosed = false; - - // Write the console HTML to the iframe - var iframeDocumentExistsTest = function(win) { return bool(win) && bool(win.document); }; - if (iframeDocumentExistsTest(getConsoleWindow())) { - writeToDocument(); - } else { - pollConsoleWindow(iframeDocumentExistsTest, writeToDocument, initErrorMessage); - } - - initialized = true; - }; - - getConsoleWindow = function() { - var iframe = window.frames[iframeId]; - if (iframe) { - return iframe; - } - }; - - safeToAppend = function() { - if (isSupported && !consoleClosed) { - if (!consoleWindowLoaded && getConsoleWindow() && getConsoleWindow().loaded) { - consoleWindowLoaded = true; - } - return consoleWindowLoaded; - } - return false; - }; - } else { - // PopUpAppender - - // Extract params - useOldPopUp = extractBooleanFromParam(useOldPopUp, appender.defaults.useOldPopUp); - complainAboutPopUpBlocking = extractBooleanFromParam(complainAboutPopUpBlocking, appender.defaults.complainAboutPopUpBlocking); - reopenWhenClosed = extractBooleanFromParam(reopenWhenClosed, this.defaults.reopenWhenClosed); - - // Configuration methods. The function scope is used to prevent - // direct alteration to the appender configuration properties. - this.isUseOldPopUp = function() { return useOldPopUp; }; - this.setUseOldPopUp = function(useOldPopUpParam) { - if (checkCanConfigure("useOldPopUp")) { - useOldPopUp = bool(useOldPopUpParam); - } - }; - - this.isComplainAboutPopUpBlocking = function() { return complainAboutPopUpBlocking; }; - this.setComplainAboutPopUpBlocking = function(complainAboutPopUpBlockingParam) { - if (checkCanConfigure("complainAboutPopUpBlocking")) { - complainAboutPopUpBlocking = bool(complainAboutPopUpBlockingParam); - } - }; - - this.isFocusPopUp = function() { return focusConsoleWindow; }; - this.setFocusPopUp = function(focusPopUpParam) { - // This property can be safely altered after logging has started - focusConsoleWindow = bool(focusPopUpParam); - }; - - this.isReopenWhenClosed = function() { return reopenWhenClosed; }; - this.setReopenWhenClosed = function(reopenWhenClosedParam) { - // This property can be safely altered after logging has started - reopenWhenClosed = bool(reopenWhenClosedParam); - }; - - this.close = function() { - try { - popUp.close(); - } catch (e) { - // Do nothing - } - consoleClosed = true; - }; - - // Define useful variables - var popUp; - - // Create init, getConsoleWindow and safeToAppend functions - init = function() { - var windowProperties = "width=" + width + ",height=" + height + ",status,resizable"; - var windowName = "PopUp_" + location.host.replace(/[^a-z0-9]/gi, "_") + "_" + consoleAppenderId; - if (!useOldPopUp) { - // Ensure a previous window isn't used by using a unique name - windowName = windowName + "_" + uniqueId; - } - - function finalInit() { - consoleWindowLoaded = true; - getConsoleWindow().setNewestAtTop(newestMessageAtTop); - getConsoleWindow().setScrollToLatest(scrollToLatestMessage); - getConsoleWindow().setMaxMessages(maxMessages); - appendQueuedLoggingEvents(); - } - - try { - popUp = window.open("", windowName, windowProperties); - consoleClosed = false; - if (popUp) { - if (useOldPopUp && popUp.loaded) { - popUp.mainPageReloaded(); - finalInit(); - } else { - writeHtml(popUp.document); - // Check if the pop-up window object is available - var popUpLoadedTest = function(win) { return bool(win) && win.loaded; }; - if (popUp.loaded) { - finalInit(); - } else { - pollConsoleWindow(popUpLoadedTest, finalInit, "PopUpAppender.init: unable to create console window"); - } - } - } else { - isSupported = false; - logLog.warn("PopUpAppender.init: pop-ups blocked, please unblock to use PopUpAppender"); - if (complainAboutPopUpBlocking) { - handleError("log4javascript: pop-up windows appear to be blocked. Please unblock them to use pop-up logging."); - } - } - } catch (ex) { - handleError("PopUpAppender.init: error creating pop-up", ex); - } - initialized = true; - }; - - getConsoleWindow = function() { - return popUp; - }; - - safeToAppend = function() { - if (isSupported && !isUndefined(popUp) && !consoleClosed) { - if (popUp.closed || - (consoleWindowLoaded && isUndefined(popUp.closed))) { // Extra check for Opera - consoleClosed = true; - logLog.debug("PopUpAppender: pop-up closed"); - return false; - } - if (!consoleWindowLoaded && popUp.loaded) { - consoleWindowLoaded = true; - } - } - return isSupported && consoleWindowLoaded && !consoleClosed; - }; - } - - if (enabled && !lazyInit) { - init(); - } - - // Expose getConsoleWindow so that automated tests can check the DOM - this.getConsoleWindow = getConsoleWindow; - }; - - /* ----------------------------------------------------------------- */ - - var PopUpAppender = function(lazyInit, layout, focusPopUp, - useOldPopUp, complainAboutPopUpBlocking, newestMessageAtTop, - scrollToLatestMessage, reopenWhenClosed, width, height, - maxMessages) { - - var focusConsoleWindow = extractBooleanFromParam(focusPopUp, this.defaults.focusPopUp); - - this.create(false, null, layout, lazyInit, focusConsoleWindow, - useOldPopUp, complainAboutPopUpBlocking, - newestMessageAtTop, scrollToLatestMessage, null, width, height, - reopenWhenClosed, maxMessages); - }; - - PopUpAppender.prototype = new ConsoleAppender(); - - PopUpAppender.prototype.defaults = { - layout: new PatternLayout("%d{HH:mm:ss} %-5p - %m{1}%n"), - focusPopUp: false, - lazyInit: true, - useOldPopUp: true, - complainAboutPopUpBlocking: true, - newestMessageAtTop: false, - scrollToLatestMessage: true, - width: "600", - height: "400", - reopenWhenClosed: false, - maxMessages: null - }; - - PopUpAppender.prototype.toString = function() { - return "[PopUpAppender]"; - }; - - log4javascript.PopUpAppender = PopUpAppender; - - /* ----------------------------------------------------------------- */ - - var InPageAppender = function(containerElement, lazyInit, - layout, initiallyMinimized, newestMessageAtTop, - scrollToLatestMessage, width, height, maxMessages) { - - this.create(true, containerElement, layout, lazyInit, false, - null, null, newestMessageAtTop, scrollToLatestMessage, - initiallyMinimized, width, height, null, maxMessages); - }; - - InPageAppender.prototype = new ConsoleAppender(); - - InPageAppender.prototype.defaults = { - layout: new PatternLayout("%d{HH:mm:ss} %-5p - %m{1}%n"), - initiallyMinimized: false, - lazyInit: true, - newestMessageAtTop: false, - scrollToLatestMessage: true, - width: "100%", - height: "250px", - maxMessages: null - }; - - InPageAppender.prototype.toString = function() { - return "[InPageAppender]"; - }; - - log4javascript.InPageAppender = InPageAppender; - - // Next line for backwards compatibility - log4javascript.InlineAppender = InPageAppender; - })(); - - /* --------------------------------------------------------------------- */ - - // BrowserConsoleAppender (only works in Opera and Safari and Firefox with - // FireBug extension) - var BrowserConsoleAppender = function(layout) { - if (layout) { - this.setLayout(layout); - } - }; - - BrowserConsoleAppender.prototype = new log4javascript.Appender(); - BrowserConsoleAppender.prototype.layout = new NullLayout(); - BrowserConsoleAppender.prototype.threshold = Level.DEBUG; - - BrowserConsoleAppender.prototype.append = function(loggingEvent) { - var appender = this; - - var getFormattedMessage = function() { - var layout = appender.getLayout(); - var formattedMessage = layout.format(loggingEvent); - if (layout.ignoresThrowable() && loggingEvent.exception) { - formattedMessage += loggingEvent.getThrowableStrRep(); - } - return formattedMessage; - }; - - if ((typeof opera != "undefined") && opera.postError) { // Opera - opera.postError(getFormattedMessage()); - } else if (window.console && window.console.log) { // Safari and FireBug - var formattedMesage = getFormattedMessage(); - // Log to FireBug using its logging methods or revert to the console.log - // method in Safari - if (window.console.debug && Level.DEBUG.isGreaterOrEqual(loggingEvent.level)) { - window.console.debug(formattedMesage); - } else if (window.console.info && Level.INFO.equals(loggingEvent.level)) { - window.console.info(formattedMesage); - } else if (window.console.warn && Level.WARN.equals(loggingEvent.level)) { - window.console.warn(formattedMesage); - } else if (window.console.error && loggingEvent.level.isGreaterOrEqual(Level.ERROR)) { - window.console.error(formattedMesage); - } else { - window.console.log(formattedMesage); - } - } - }; - - BrowserConsoleAppender.prototype.toString = function() { - return "[BrowserConsoleAppender]"; - }; - - log4javascript.BrowserConsoleAppender = BrowserConsoleAppender; -})(); \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/log4javascript/main.css b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/log4javascript/main.css deleted file mode 100644 index 959706cb5..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/log4javascript/main.css +++ /dev/null @@ -1,221 +0,0 @@ -body { - font-family: Verdana, Arial, Helvetica, Sans-serif; - font-size: 75%; - color: black; - background-color: #eeeeee; - text-align: center; - padding: 0px; - margin: 0px; -} - -div#container { - width: 770px; - text-align: left; - line-height: 150%; - border-width: 0px 1px 1px 1px; - border-color: #cccccc; - border-style: solid; - background-color: white; - color: black; - padding: 10px; - margin: 0px auto 10px auto; -} - -div#header { - margin: 0px; - border-bottom: solid #cccccc 1px; -} - -div#header h1 { - font-family: Courier New, Courier, Monospace, Serif; - padding: 10px 0px; - margin: 0px; - font-size: 200%; - font-weight: bold; - text-align: right; -} - -div#header h1 a { - color: black; -} - -div#nav { - float: right; - font-size: 91.66%; - font-weight: bold; - padding-top: 5px; -} - -div#container.nonav div#content { - float: none; - width: auto; -} - -*.externallinkinfo { - float: right; - font-style: italic; -} - -div#content h1 { - padding: 5px 3px; - margin: 5px 0px; - font-size: 175%; - font-weight: normal; -} - -div#content h2 { - background-color: darkgreen; - color: white; - padding: 0px 3px; - font-size: 116.66%; - font-weight: bold; -} - -div#content h2 a { - color: white; -} - -div#content h3 { - padding: 0px 3px; - font-size: 116.66%; - font-weight: bold; - border-style: solid; - border-color: #003399; - border-width: 1px 0px; -} - -div#content h4 { - padding: 0px 3px; - font-size: 100%; - font-weight: bold; - border-top: solid #eeeeee 1px; -} - -div#content h5 { - padding: 0px; - margin: 3px 0px; -} - -div#footer { - margin-top: 20px; - padding: 2px; - border-top: solid #cccccc 1px; - font-size: 91.66%; -} - -a { - color: #003399; - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} - -a.bold { - font-weight: bold; -} - -a img { - border-width: 0px; -} - -br.clear { - clear: both; -} - -table { - font-size: 100%; -} - -/* Code */ -pre, code { - font-family: Courier New, Courier; - font-size: 108.33%; -} - -pre.code { - border: solid 1px #cccccc; - background-color: #eeeeee; - padding: 3px; -} - -div.example, div.panel { - border: solid 1px #cccccc; - background-color: #f5f5f5; - padding: 3px; -} - -div.panel h2 { - margin: 5px 0px; -} - -div.padded { - padding: 10px; -} - -div.hidden { - display: none; -} - -div.active { - background-color: #fcfffc; - border-color: green; -} - -label.rightofinput, input.rightoflabel { - margin-right: 20px; -} - -/* 'Back to top' link */ -p.linktotop { - text-align: right; -} - -ul.propertieslist li.method, ul.propertieslist li.property { - margin: 0; - padding: 0px 0px 15px 0px; -} - -ul.propertieslist li *.name { - font-size: 116.66%; - font-weight: bold; -} - -ul.propertieslist li.method div.methodsignature { - margin: 10px 0px; - font-size: 116.66%; - background-color: #eeeeee; -} - -ul.propertieslist li.method *.paramsheading { - font-weight: bold; -} - -ul.propertieslist li.method *.params { - padding-top: 5px; - padding-bottom: 5px; -} - -ul.propertieslist li.method *.params li.param { - padding-bottom: 10px; -} - -ul.propertieslist li.method *.params li.param *.paramname { - font-style: italic; -} - -div.serverlog { - height: 200px; - /*border: solid 1px #cccccc;*/ -} - -div#inPageConsole { - margin-top: 10px; -} - -div.iframecontainer { - background-color: white; - border: solid #cccccc 1px; - width: 100%; -} \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/previewerror.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/previewerror.js deleted file mode 100644 index 5a429cf73..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/previewerror.js +++ /dev/null @@ -1,42 +0,0 @@ -function writeError(header, message) -{ - document.write( - '' + - '' + - '' + - '' + - '
    ' + header + '
    ' + - '' + - '' + - '
    ' + - '' + - '' + - '
    ' + message + '
    ' + - '
    ' + - '
    \n' ); -} - -function loadResources(locale) -{ - var lang = locale.split('-'); - var locales = []; - - locales.push('en'); - - if(lang.length >= 1) { - locales.push(lang[0]); - } - - if(lang.length >= 2) { - locales.push(lang[0] + '_' + lang[1]); - } - - for(var i =0 ; i < locales.length; i++) { - _loadStrings(locales[i]); - } -} - -function _loadStrings(locale) -{ - document.write(''); -} \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/prompts.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/prompts.js deleted file mode 100644 index 7f7153d3e..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/prompts.js +++ /dev/null @@ -1,360 +0,0 @@ -////////////////////////////// -// FOR DEBUGGING ONLY -var debug = false; -function dumpFormFields(formName) -{ - theForm = document.forms[formName]; - for ( idx = 0; idx < theForm.elements.length; ++idx ) - alert ( theForm.elements[idx].name + " - " + theForm.elements[idx].value ); -} - -////////////////////////////// -// GLOBAL VAR -var needURLEncode = false; // only need to do url encode in java -var promptPrefix = "promptex-"; - -/////////////////////////////// -// properly encode prompt values -function encodePrompt (prompt) -{ - if (needURLEncode) - { - return encodeURIComponent(prompt); - } - else - { - return prompt; - } -} - -//////////////////////////////// -// add number, currency, string from dropdown/textbox to list box -// where multiple prompt values are supported -function addPromptDiscreteValue ( inForm, type , paramName) -{ - var widget, obj; - widget = obj = inForm[paramName + "DiscreteValue"]; - if ( obj.type && obj.type.toLowerCase() != "text" && - obj.type.toLowerCase() != "hidden" && obj.type.toLowerCase() != "password") - { - //select box not a textbox - obj = obj.options[obj.selectedIndex]; - } - if ( ! checkSingleValue ( obj.value, type ) ) - { - if (widget.focus && widget.type.toLowerCase() != "hidden") - widget.focus(); - return false; - } - promptValue = encodePrompt(obj.value); - displayString = ( obj.text ) ? obj.text : obj.value; - promptEntry = new Option(displayString,promptValue,false,false); - theList = inForm[paramName + "ListBox"]; - theList.options[theList.length] = promptEntry; - if (widget.focus && widget.type.toLowerCase() != "hidden") - widget.focus (); - if ( widget.select ) - widget.select (); - if ( widget.type.toLowerCase != "text" && - widget.type.toLowerCase != "hidden" && - widget.type.toLowerCase != "password") - if ( widget.selectedIndex < widget.length - 1 ) - widget.selectedIndex = widget.selectedIndex + 1; //... or move to next selection in listbox -} - -//////////////////////////////////// -// adds Range prompt to listbox where multiple values are supported -function addPromptRangeValue ( inForm, type , paramName ) -{ - lowerBound = inForm[paramName + "LowerBound"]; - upperBound = inForm[paramName + "UpperBound"]; - //handle select box, not text box case - if ( lowerBound.type.toLowerCase () != "text" && - lowerBound.type.toLowerCase () != "hidden" && - lowerBound.type.toLowerCase () != "password" ) //either upper or lower, doesn't matter - { - lowerBound = lowerBound.options[lowerBound.selectedIndex]; - upperBound = upperBound.options[upperBound.selectedIndex]; - } - - lowerUnBounded = inForm[paramName + "NoLowerBoundCheck"].checked; - upperUnBounded = inForm[paramName + "NoUpperBoundCheck"].checked; - lvalue = uvalue = ""; - - if ( ! lowerUnBounded ) - { - if ( ! checkSingleValue ( lowerBound.value, type ) ) { - if ( lowerBound.focus && lowerBound.type.toLowerCase () != "hidden") - lowerBound.focus (); - return false; - } - lvalue = lowerBound.value; - } - if ( ! upperUnBounded ) - { - if ( ! checkSingleValue ( upperBound.value, type ) ) { - if ( upperBound.focus && upperBound.type.toLowerCase () != "hidden") - upperBound.focus (); - return false; - } - uvalue = upperBound.value; - } - ldisplay = (lowerBound.text && !lowerUnBounded) ? lowerBound.text : lvalue; - udisplay = (upperBound.text && !upperUnBounded) ? upperBound.text : uvalue; - - lowerChecked = inForm[paramName + "LowerCheck"].checked; - upperChecked = inForm[paramName + "UpperCheck"].checked; - - value = ( lowerChecked && ! lowerUnBounded ) ? "[" : "("; - if ( ! lowerUnBounded ) //unbounded is empty string not quoted empty string (e.g not "_crEMPTY_") - value += encodePrompt(lvalue); - value += "_crRANGE_" - if ( ! upperUnBounded ) - value += encodePrompt(uvalue); - value += (upperChecked && ! upperUnBounded ) ? "]" : ")"; - if ( debug ) alert (value); - - display = ( lowerChecked && ! lowerUnBounded ) ? "[" : "("; - display += ldisplay; - display += " .. " - display += udisplay; - display += (upperChecked && ! upperUnBounded ) ? "]" : ")"; - - promptEntry = new Option(display,value,false,false); - theList = inForm[paramName + "ListBox"]; - theList.options[theList.length] = promptEntry; - -} - -//////////////////////////////////// -// disable check boxes based on user selection on the range parameters -function disableBoundCheck(lowOrUpBound, inform, paramName) { - if (lowOrUpBound == 0) { - if (inform[paramName + "NoLowerBoundCheck"].checked) { - inform[paramName + "NoUpperBoundCheck"].disabled = true; - inform[paramName + "LowerCheck"].disabled = true; - inform[paramName + "LowerBound"].disabled = true; - } - else { - inform[paramName + "NoUpperBoundCheck"].disabled = false; - inform[paramName + "LowerCheck"].disabled = false; - inform[paramName + "LowerBound"].disabled = false; - } - } else if (lowOrUpBound == 1) { - if (inform[paramName + "NoUpperBoundCheck"].checked) { - inform[paramName + "NoLowerBoundCheck"].disabled = true; - inform[paramName + "UpperCheck"].disabled = true; - inform[paramName + "UpperBound"].disabled = true; - } else { - inform[paramName + "NoLowerBoundCheck"].disabled = false; - inform[paramName + "UpperCheck"].disabled = false; - inform[paramName + "UpperBound"].disabled = false; - } - } -} - -//////////////////////////////////// -// puts "select" value into text box for an editable prompt which also has defaults -function setSelectedValue (inForm, selectCtrl, textCtrl) -{ - selectedOption = inForm[selectCtrl].options[inForm[selectCtrl].selectedIndex]; - inForm[textCtrl].value = selectedOption.value; -} - -/////////////////////////////////// -// remove value from listbox where multiple value prompts are supported -function removeFromListBox ( inForm, paramName ) -{ - lbox = inForm[paramName + "ListBox"]; - for ( var idx = 0; idx < lbox.options.length; ) - { - if ( lbox.options[idx].selected ) - lbox.options[idx] = null; - else - idx++; - } -} - -///////////////////////////////////// -// sets prompt value into the hidden form field in proper format so that it can be submitted -function setPromptSingleValue (inform, type, paramName) -{ - hiddenField = inform[promptPrefix + paramName]; - value = ""; - if ( inform[paramName + "NULL"] != null && inform[paramName + "NULL"].checked ) - value = "_crNULL_"; //NULL is a literal for, uhmm.. a NULL - else - { - discreteVal = inform[paramName + "DiscreteValue"]; - if ( discreteVal.type.toLowerCase () != "text" && - discreteVal.type.toLowerCase () != "hidden" && - discreteVal.type.toLowerCase () != "password") - value = discreteVal.options[discreteVal.selectedIndex].value; - else - value = discreteVal.value; - if ( ! checkSingleValue ( value, type ) ) { - if (discreteVal.focus && discreteVal.type.toLowerCase ()) - discreteVal.focus (); - return false; - } - else - value = encodePrompt(value); - } - hiddenField.value = value; - return true; -} - -///////////////////////////////////// -// sets prompt value for a range into the hidden form field in proper format so that it can be submitted -function setPromptRangeValue (inform, type, paramName) -{ - hiddenField = inform[promptPrefix + paramName]; - - if ( inform[paramName + "NULL"] != null && inform[paramName + "NULL"].checked ) - { - value = "_crNULL_"; //NULL is a literal for, uhmm.. a NULL - hiddenField.value = value; - return true; - } - - lowerBound = inform[paramName + "LowerBound"]; - upperBound = inform[paramName + "UpperBound"]; - //handle select box, not text box case - if ( lowerBound.type.toLowerCase () != "text" && - lowerBound.type.toLowerCase () != "hidden" && - lowerBound.type.toLowerCase () != "password") //either upper or lower, doesn't matter - { - lowerBound = lowerBound.options[lowerBound.selectedIndex]; - upperBound = upperBound.options[upperBound.selectedIndex]; - } - lowerUnBounded = inform[paramName + "NoLowerBoundCheck"].checked; - upperUnBounded = inform[paramName + "NoUpperBoundCheck"].checked; - lowerChecked = inform[paramName + "LowerCheck"].checked; - upperChecked = inform[paramName + "UpperCheck"].checked; - uvalue = lvalue = ""; - - if ( ! lowerUnBounded ) - { - if ( ! checkSingleValue ( lowerBound.value, type ) ) { - if ( lowerBound.focus && lowerBound.type.toLowerCase () != "hidden") - lowerBound.focus(); - return false; - } - lvalue = lowerBound.value; - } - if ( ! upperUnBounded ) - { - if ( ! checkSingleValue ( upperBound.value, type ) ) { - if ( upperBound.focus && upperBound.type.toLowerCase () != "hidden") - upperBound.focus (); - return false; - } - uvalue = upperBound.value; - } - value = ( lowerChecked && ! lowerUnBounded ) ? "[" : "("; - if ( ! lowerUnBounded ) - value += encodePrompt(lvalue); - value += "_crRANGE_" - if ( ! upperUnBounded ) - value += encodePrompt(uvalue); - value += (upperChecked && ! upperUnBounded ) ? "]" : ")"; - if ( debug ) - alert (value); - hiddenField.value = value; - return true; -} - -///////////////////////////////////// -// sets prompt value into the hidden form field in proper format so that it can be submitted -function setPromptMultipleValue (inform, type, paramName) -{ - hiddenField = inform[promptPrefix + paramName]; - values = inform[paramName + "ListBox"].options; - - if ( inform[paramName + "NULL"] != null && inform[paramName + "NULL"].checked ) - { - value = "_crNULL_"; //NULL is a literal for, uhmm.. a NULL - hiddenField.value = value; - return true; - } - - if ( values.length == 0 ) - { - value = "_crEMPTY_"; //if value is empty, set to empty string - } - else - { - value = ""; - for ( idx = 0; idx < values.length; ++idx ) - { - // first value could be empty string, then chcking value.length != 0 could miss one empty string - if ( idx != 0 ) - value += "_crMULT_" - value += values[idx].value; - } - } - - if ( debug ) - alert (value); - hiddenField.value = value; - //NOTE: we'll always return true as the validation is done before values are added to select box - return true; -} - -/////////////////////////////////////// -// check and alert user about any errors based on type of prompt -var regNumber = /^(\+|-)?((\d+(\.|,| |\u00A0)?\d*)+|(\d*(\.|,| |\u00A0)?\d+)+)$/ -var regCurrency = regNumber; -var regDate = /^(D|d)(A|a)(T|t)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *\)$/ -var regDateTime = /^(D|d)(A|a)(T|t)(E|e)(T|t)(I|i)(M|m)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *, *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/ -var regTime = /^(T|t)(I|i)(M|m)(E|e) *\( *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/ - -function checkSingleValue ( value, type ) -{ - if ( type == 'n' && ! regNumber.test ( value ) ) - { - alert ( L_BadNumber ); - return false; - } - else if ( type == 'c' && ! regCurrency.test ( value ) ) - { - alert ( L_BadCurrency ); - return false; - } - else if ( type == 'd' && ! regDate.test ( value ) ) - { - alert ( L_BadDate ); - return false; - } - else if ( type == "dt" && ! regDateTime.test ( value ) ) - { - alert ( L_BadDateTime ); - return false; - } - else if ( type == 't' && ! regTime.test ( value ) ) - { - alert ( L_BadTime ); - return false; - } - - //by default let it go... - return true; -} - -function checkValue(evt) { - - if (navigator.appName == "Netscape") - { - if (evt.which == 13 && (evt.target.type == "text" || evt.target.type == "password")) - { - checkSetAndSubmitValues (); - } - } - else - { - if (window.event.keyCode == 13 && (window.event.srcElement.type == "text" || window.event.srcElement.type == "password")) - { - checkSetAndSubmitValues (); - } - } -} \ No newline at end of file diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/prompts_param.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/prompts_param.js deleted file mode 100644 index a61c7c55b..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/prompts_param.js +++ /dev/null @@ -1,1727 +0,0 @@ - -////////////////////////////// -// FOR DEBUGGING ONLY -var debug = false; -function dumpFormFields(formName) -{ - theForm = document.forms[formName]; - for ( idx = 0; idx < theForm.elements.length; ++idx ) - alert ( theForm.elements[idx].name + " - " + theForm.elements[idx].value ); -} - -////////////////////////////// -// GLOBAL VAR -var needURLEncode = false; // only need to do url encode in java -var promptPrefix = "promptex-"; -var CR_NULL = "_crNULL_"; -var CR_USE_VALUE = "_crUseValue_"; -var promptMinValue = "_minValue"; -var promptMaxValue = "_maxValue"; -var warningMaxValue = "_warnMSG"; - -var _bver = parseInt(navigator.appVersion); -var Nav4 = ((navigator.appName == "Netscape") && _bver==4); -var Nav4plus = ((navigator.appName == "Netscape") && _bver >= 4); -var IE4plus = ((navigator.userAgent.indexOf("MSIE") != -1) && _bver>4); - -if (Nav4plus) - var userLanguage = (navigator.language.substr(0, 2)); -else - var userLanguage = (navigator.browserLanguage.substr(0, 2)); - -/////////////////////////////// -// substitue range string -function ConstructRangeDisplayString(rangeStr, param0, param1) -{ - var newString = rangeStr.replace("{0}", param0); - newString = newString.replace("{1}", param1); - return newString; -} - -/////////////////////////////// -// Display string for range value in ListBox -function GetRangeValueDisplayText(rangeStr, param0, param1, paramType) -{ - if (paramType == "dt" || paramType == "d" || paramType == "t") - { - if (param0.length != 0) - { - if (this.formatJsDate) - param0 = formatJsDate(NeutralDT2Date(param0)); - else - param0 = NeutralDT2D(param0); - } - - if (param1.length != 0) - { - if (this.formatJsDate) - param1 = formatJsDate(NeutralDT2Date(param1)); - else - param1 = NeutralDT2D(param1); - } - } - - return ConstructRangeDisplayString(rangeStr, param0, param1); -} - -/////////////////////////////// -// properly encode prompt values -function encodePrompt (prompt) -{ - if (needURLEncode) - { - return encodeURIComponent(prompt); - } - else - { - return prompt; - } -} - -function clickSetNullCheckBox(inForm, paramName, suffix) -{ - var nullCtrl = inForm[paramName + "NULL"]; - var textCtrl = inForm[paramName + suffix]; - var hiddenCtrl = inForm[paramName + suffix + "Hidden"]; - var hourCtrl = inForm[paramName + suffix + "Hour"]; - var minuteCtrl = inForm[paramName + suffix + "Minute"]; - var secondCtrl = inForm[paramName + suffix + "Second"]; - var ampmCtrl = inForm[paramName + suffix + "AMPM"]; - if (nullCtrl.checked) - { - if (textCtrl != null) textCtrl.disabled = true; - if (hourCtrl != null) hourCtrl.disabled = true; - if (minuteCtrl != null) minuteCtrl.disabled = true; - if (secondCtrl != null) secondCtrl.disabled = true; - if (ampmCtrl != null) ampmCtrl.disabled = true; - } - else - { - if (textCtrl != null) textCtrl.disabled = false; - if (hourCtrl != null) hourCtrl.disabled = false; - if (minuteCtrl != null) minuteCtrl.disabled = false; - if (secondCtrl != null) secondCtrl.disabled = false; - if (ampmCtrl != null) ampmCtrl.disabled = false; - - } -} - -function ClearListBoxAndSetNULL(theList) -{ - // delete everything in the listbox, add _crNULL_ as an item - promptEntry = new Option(L_NoValue, CR_NULL,false,false); - for ( var idx = 0; idx < theList.options.length; ) - { - theList.options[0] = null; - idx++; - } - - theList.options[0] = promptEntry; - return; -} - -//////////////////////////////// -// add number, currency, string from dropdown/textbox to list box -// where multiple prompt values are supported -function DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl) -{ - var promptValue = ""; - - var year; - var month; - var day; - if ((type == "dt") || (type == "d")) - { - var d = hiddenCtrl.value; - if (d.length == 0) - { - alert(L_NoDateEntered); - return ""; - } - var leftIndex = d.indexOf("("); - var rightIndex = d.indexOf(")"); - d = d.substr(leftIndex + 1, rightIndex - leftIndex - 1); - var dArray = d.split(","); - year = dArray[0]; - month = dArray[1]; - day = dArray[2]; - } - - if (type == "dt") - { - promptValue = "DateTime("; - promptValue += year; - promptValue += ","; - promptValue += month; - promptValue += ","; - promptValue += day; - promptValue += ","; - - var hour = 0; - if (ampmCtrl != undefined) - { - var i = 0; - if (ampmCtrl.selectedIndex == 1) - i = 1; - hour = hourCtrl.selectedIndex + 1 + i * 12; - if (hour == 12) hour = 0; - else if (hour == 24) hour = 12; - } - else - { - hour = hourCtrl.selectedIndex; - } - - promptValue += hour; - promptValue += ","; - promptValue += minuteCtrl.selectedIndex; - promptValue += ","; - promptValue += secondCtrl.selectedIndex; - - promptValue += ")"; - } - else if (type == "d") - { - promptValue = "Date("; - promptValue += year; - promptValue += ","; - promptValue += month; - promptValue += ","; - promptValue += day; - promptValue += ")"; - - } - else if (type == "t") - { - promptValue = "Time(" - - var hour = 0; - if (ampmCtrl != undefined) - { - var i = 0; - if (ampmCtrl.selectedIndex == 1) - i = 1; - hour = hourCtrl.selectedIndex + 1 + i * 12; - if (hour == 12) hour = 0; - else if (hour == 24) hour = 12; - } - else - { - hour = hourCtrl.selectedIndex; - } - - - promptValue += hour; - promptValue += ","; - promptValue += minuteCtrl.selectedIndex; - promptValue += ","; - promptValue += secondCtrl.selectedIndex; - promptValue += ")"; - } - - return promptValue; -} - - -function DateTimeDisplayStringHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl) -{ - var neutralstring = DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl); - if (type == "d" && this.formatJsDate) - return formatJsDate(NeutralDT2Date(neutralstring)); - else if (type == "t" && this.formatJsTime) - return formatJsTime(NeutralDT2Date(neutralstring)); - else if (type == "dt" && this.formatJsDate && this.formatJsTime) - return formatJsDate(NeutralDT2Date(neutralstring)) + ' ' + formatJsTime(NeutralDT2Date(neutralstring)); - else - return NeutralDT2D(neutralstring); -} - - -function addPromptDiscreteValueHelper(inForm, type, paramName, suffix) -{ - theList = inForm[paramName + "ListBox"]; - - // if there is a NULL checkbox and it is set - if ( inForm[paramName + "NULL"] != null && inForm[paramName + "NULL"].checked ) - { - // delete everything in the listbox, add _crNULL_ as an item - ClearListBoxAndSetNULL(theList); - return; - } - - // if the listbox already has a NULL value in it, don't do anything, unless user removes NULl value from the listbox - if (theList.options.length > 0 && theList.options[0].value == CR_NULL) - { - alert(L_NoValueAlready); - return; - } - - // if defaultdropdownlist selected item is _crNULL_, put it into multiple listbox - var dropDownListName = ""; - if (suffix == "DiscreteValue") - dropDownListName = paramName + "SelectValue"; - else - dropDownListName = paramName + "SelectLowerBound"; - var dropDownListCtrl = inForm[dropDownListName]; - if (dropDownListCtrl != null) - { - if (dropDownListCtrl.options[dropDownListCtrl.selectedIndex].value == CR_NULL) - { - // delete everything in the listbox, add _crNULL_ as an item - ClearListBoxAndSetNULL(theList); - return; - } - } - - var textCtrl = inForm[paramName + suffix]; - var hiddenCtrl = inForm[paramName + suffix + "Hidden"]; - var hourCtrl = inForm[paramName + suffix + "Hour"]; - var minuteCtrl = inForm[paramName + suffix + "Minute"]; - var secondCtrl = inForm[paramName + suffix + "Second"]; - var ampmCtrl = inForm[paramName + suffix + "AMPM"]; - - var obj; - var editables = true; - - if (textCtrl == undefined && hourCtrl == undefined) - { - //select box not a textbox, hour, minute, and second, ampm dropdown are not there either - editables = false; - obj = dropDownListCtrl; - obj = obj.options[obj.selectedIndex]; - } - else - { - if (type == "t") - obj = hourCtrl; - else - obj = textCtrl; - } - - if (type == "dt" || type == "d" || type == "t") - { - promptValue = DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl); - if (promptValue.length == 0) return false; - - if (editables) - displayString = DateTimeDisplayStringHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl); - else - displayString = DateTimeDisplayStringHelper(type, obj.text, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl); - } - else - { - promptValue = encodePrompt(obj.value); - displayString = ( obj.text ) ? obj.text : obj.value; - } - - if ( ! checkSingleValue (promptValue, type ) ) - { - return false; - } - - promptEntry = new Option(displayString,promptValue,false,false); - theList.options[theList.length] = promptEntry; -} - -function addPromptDiscreteValueHelperWithChecking(inForm, type, paramName, suffix, minValue, maxValue, errorMessage ) -{ - theList = inForm[paramName + "ListBox"]; - - // if there is a NULL checkbox and it is set - if ( inForm[paramName + "NULL"] != null && inForm[paramName + "NULL"].checked ) - { - // delete everything in the listbox, add _crNULL_ as an item - ClearListBoxAndSetNULL(theList); - return; - } - - // if the listbox already has a NULL value in it, don't do anything, unless user removes NULl value from the listbox - if (theList.options.length > 0 && theList.options[0].value == CR_NULL) - { - alert(L_NoValueAlready); - return; - } - - // if defaultdropdownlist selected item is _crNULL_, put it into multiple listbox - var dropDownListName = ""; - if (suffix == "DiscreteValue") - dropDownListName = paramName + "SelectValue"; - else - dropDownListName = paramName + "SelectLowerBound"; - var dropDownListCtrl = inForm[dropDownListName]; - if (dropDownListCtrl != null) - { - if (dropDownListCtrl.options[dropDownListCtrl.selectedIndex].value == CR_NULL) - { - // delete everything in the listbox, add _crNULL_ as an item - ClearListBoxAndSetNULL(theList); - return; - } - } - - var textCtrl = inForm[paramName + suffix]; - var hiddenCtrl = inForm[paramName + suffix + "Hidden"]; - var hourCtrl = inForm[paramName + suffix + "Hour"]; - var minuteCtrl = inForm[paramName + suffix + "Minute"]; - var secondCtrl = inForm[paramName + suffix + "Second"]; - var ampmCtrl = inForm[paramName + suffix + "AMPM"]; - - var obj; - var editables = true; - - if (textCtrl == undefined && hourCtrl == undefined) - { - //select box not a textbox, hour, minute, and second, ampm dropdown are not there either - editables = false; - obj = dropDownListCtrl; - obj = obj.options[obj.selectedIndex]; - } - else - { - if (type == "t") - obj = hourCtrl; - else - obj = textCtrl; - } - - if (type == "dt" || type == "d" || type == "t") - { - promptValue = DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl); - if (promptValue.length == 0) return false; - - if (editables) - displayString = DateTimeDisplayStringHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl); - else - displayString = DateTimeDisplayStringHelper(type, obj.text, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl); - } - else - { - promptValue = encodePrompt(obj.value); - displayString = ( obj.text ) ? obj.text : obj.value; - } - - if ( ! checkSingleValueWithMinMax (promptValue, type, minValue, maxValue, errorMessage ) ) - { - return false; - } - - promptEntry = new Option(displayString,promptValue,false,false); - theList.options[theList.length] = promptEntry; -} - -function addPromptDiscreteValue ( inForm, type , paramName) -{ - addPromptDiscreteValueHelper(inForm, type, paramName, "DiscreteValue"); -} - -function addPromptDiscreteValueWithChecking ( inForm, type , paramName, minValue, maxValue, errorMessage ) -{ - addPromptDiscreteValueHelperWithChecking(inForm, type, paramName, "DiscreteValue", minValue, maxValue, errorMessage); -} - -//////////////////////////////////// -// adds Range prompt to listbox where multiple values are supported -function addPromptDiscreteRangeValue ( inForm, type , paramName ) -{ - lowerOption = inForm[paramName + "SelectLowerOptions"]; - - // exactly - if (lowerOption.selectedIndex == 1) - { - // add discrete - addPromptDiscreteValueHelper(inForm, type, paramName, "LowerBound"); - } - else - { - // add range - addPromptRangeValue(inForm, type, paramName); - } -} - -// adds Range prompt with Checking to listbox where multiple values are supported -function addPromptDiscreteRangeValueWithChecking ( inForm, type , paramName, minValue, maxValue, errorMessage ) -{ - lowerOption = inForm[paramName + "SelectLowerOptions"]; - - // exactly - if (lowerOption.selectedIndex == 1) - { - // add discrete - addPromptDiscreteValueHelperWithChecking(inForm, type, paramName, "LowerBound", minValue, maxValue, errorMessage); - } - else - { - // add range - addPromptRangeValueWithChecking(inForm, type, paramName, minValue, maxValue, errorMessage); - } -} - -//////////////////////////////////// -// adds Range prompt to listbox where multiple values are supported -function addPromptRangeValue ( inForm, type , paramName ) -{ - - theList = inForm[paramName + "ListBox"]; - - // if there is a NULL checkbox and it is set - if ( inForm[paramName + "NULL"] != null && inForm[paramName + "NULL"].checked ) - { - // delete everything in the listbox, add _crNULL_ as an item - ClearListBoxAndSetNULL(theList); - return; - } - - // if the listbox already has a NULL value in it, don't do anything, unless user removed NULl value from the listbox - if (theList.options.length > 0 && theList.options[0].value == CR_NULL) - { - alert(L_NoValueAlready); - return; - } - - // if both defaultdropdownlists selected item is _crNULL_, put it into multiple listbox - // if one of them is _crNULL_, it is not a valid option, do nothing - var lowerDropDownListName = paramName + "SelectLowerBound"; - var upperDropDownListName = paramName + "SelectUpperBound"; - var lowerDropDownListCtrl = inForm[lowerDropDownListName]; - var upperDropDownListCtrl = inForm[upperDropDownListName]; - if (lowerDropDownListCtrl != null && upperDropDownListCtrl != null) - { - if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL - && upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL) - { - // delete everything in the listbox, add _crNULL_ as an item - ClearListBoxAndSetNULL(theList); - return; - } - else if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL - || upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL) - { - alert(L_BadValue); - return; - } - } - - lowerOption = inForm[paramName + "SelectLowerOptions"]; - upperOption = inForm[paramName + "SelectUpperOptions"]; - - lowerBound = inForm[paramName + "LowerBound"]; - upperBound = inForm[paramName + "UpperBound"]; - - lowerBoundHidden = inForm[paramName + "LowerBoundHidden"]; - upperBoundHidden = inForm[paramName + "UpperBoundHidden"]; - - var lhourCtrl = inForm[paramName+"LowerBound" + "Hour"]; - var lminuteCtrl = inForm[paramName + "LowerBound" + "Minute"]; - var lsecondCtrl = inForm[paramName + "LowerBound" + "Second"]; - var lampmCtrl = inForm[paramName + "LowerBound" + "AMPM"]; - - var uhourCtrl = inForm[paramName+"UpperBound" + "Hour"]; - var uminuteCtrl = inForm[paramName + "UpperBound" + "Minute"]; - var usecondCtrl = inForm[paramName + "UpperBound" + "Second"]; - var uampmCtrl = inForm[paramName + "UpperBound" + "AMPM"]; - - var editable = true; - - //handle select box, not text box case - if ( lowerBound == undefined && lhourCtrl == undefined)//either upper or lower, doesn't matter - { - editable = false; - - lowerBound = inForm[paramName + "SelectLowerBound"]; - upperBound = inForm[paramName + "SelectUpperBound"]; - lowerBound = lowerBound.options[lowerBound.selectedIndex]; - upperBound = upperBound.options[upperBound.selectedIndex]; - } - - lowerUnBounded = (inForm[paramName+"SelectLowerOptions"].selectedIndex == (inForm[paramName + "SelectLowerOptions"].options.length - 1)); - upperUnBounded = (inForm[paramName+"SelectUpperOptions"].selectedIndex == (inForm[paramName + "SelectUpperOptions"].options.length - 1)); - - - lvalue = uvalue = ""; - - if ( ! lowerUnBounded ) - { - if ((type == "dt" || type == "d" || type == "t") && (editable)) - { - lvalue = DateTimePromptValueHelper(type, lowerBoundHidden, lhourCtrl, lminuteCtrl, lsecondCtrl, lampmCtrl); - if (lvalue.length == 0) return false; - } - else - lvalue = lowerBound.value; - - if ( ! checkSingleValue ( lvalue, type ) ) { - if ( lowerBound.focus && lowerBound.type.toLowerCase () != "hidden") - lowerBound.focus (); - return false; - } - } - if ( ! upperUnBounded ) - { - if ((type == "dt" || type == "d" || type == "t") && (editable)) - { - uvalue = DateTimePromptValueHelper(type, upperBoundHidden, uhourCtrl, uminuteCtrl, usecondCtrl, uampmCtrl); - if (uvalue.length == 0) return false; - } - else - uvalue = upperBound.value; - - if ( ! checkSingleValue ( uvalue, type ) ) { - if ( upperBound.focus && upperBound.type.toLowerCase () != "hidden") - upperBound.focus (); - return false; - } - } - - var ldisplay = ""; - var udisplay = ""; - if ((type == "dt" || type == "d" || type == "t") && (editable)) - { - if (!lowerUnBounded) - ldisplay = DateTimeDisplayStringHelper(type, lowerBoundHidden, lhourCtrl, lminuteCtrl, lsecondCtrl, lampmCtrl); - if (!upperUnBounded) - udisplay = DateTimeDisplayStringHelper(type, upperBoundHidden, uhourCtrl, uminuteCtrl, usecondCtrl, uampmCtrl); - } - else - { - ldisplay = lvalue; - udisplay = uvalue; - } - - lowerChecked = (inForm[paramName+"SelectLowerOptions"].selectedIndex == 0); - upperChecked = (inForm[paramName+"SelectUpperOptions"].selectedIndex == 0); - - value = lowerUnBounded ? "{" : lowerChecked ? "[" : "("; - if ( ! lowerUnBounded ) //unbounded is empty string not quoted empty string (e.g not "_crEMPTY_") - value += encodePrompt(lvalue); - value += "_crRANGE_" - if ( ! upperUnBounded ) - value += encodePrompt(uvalue); - value += upperUnBounded ? "}" : upperChecked ? "]" : ")"; - if ( debug ) alert (value); - - if ( !lowerUnBounded && !upperUnBounded && !checkRangeValue(lvalue, uvalue, type)) - { - return false; - } - - var display = ""; - if (lowerChecked && upperUnBounded) - { - display = ConstructRangeDisplayString(L_FROM, ldisplay, ""); - } - else if (lowerUnBounded && upperChecked) - { - display = ConstructRangeDisplayString(L_TO, udisplay, ""); - } - else if (!lowerChecked && upperUnBounded) - { - display = ConstructRangeDisplayString(L_AFTER, ldisplay, ""); - } - else if (lowerUnBounded && !upperChecked) - { - display = ConstructRangeDisplayString(L_BEFORE, udisplay, ""); - } - else if (lowerChecked && upperChecked) - { - display = ConstructRangeDisplayString(L_FROM_TO, ldisplay, udisplay); - } - else if (lowerChecked && !upperUnBounded && !upperChecked) - { - display = ConstructRangeDisplayString(L_FROM_BEFORE, ldisplay, udisplay); - } - else if (!lowerChecked && !lowerUnBounded && upperChecked) - { - display = ConstructRangeDisplayString(L_AFTER_TO, ldisplay, udisplay); - } - else if (!lowerChecked && !lowerUnBounded && !upperChecked && !upperUnBounded) - { - display = ConstructRangeDisplayString(L_AFTER_BEFORE, ldisplay, udisplay); - } - - if ((!lowerUnBounded) || (!upperUnBounded)) - { - promptEntry = new Option(display,value,false,false); - theList.options[theList.length] = promptEntry; - } - else - { - alert(L_BadBound); - } - -} - -//////////////////////////////////// -// adds Range prompt with Checking to listbox where multiple values are supported -function addPromptRangeValueWithChecking ( inForm, type , paramName, minValue, maxValue, errorMessage ) -{ - - theList = inForm[paramName + "ListBox"]; - - // if there is a NULL checkbox and it is set - if ( inForm[paramName + "NULL"] != null && inForm[paramName + "NULL"].checked ) - { - // delete everything in the listbox, add _crNULL_ as an item - ClearListBoxAndSetNULL(theList); - return; - } - - // if the listbox already has a NULL value in it, don't do anything, unless user removed NULl value from the listbox - if (theList.options.length > 0 && theList.options[0].value == CR_NULL) - { - alert(L_NoValueAlready); - return; - } - - // if both defaultdropdownlists selected item is _crNULL_, put it into multiple listbox - // if one of them is _crNULL_, it is not a valid option, do nothing - var lowerDropDownListName = paramName + "SelectLowerBound"; - var upperDropDownListName = paramName + "SelectUpperBound"; - var lowerDropDownListCtrl = inForm[lowerDropDownListName]; - var upperDropDownListCtrl = inForm[upperDropDownListName]; - if (lowerDropDownListCtrl != null && upperDropDownListCtrl != null) - { - if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL - && upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL) - { - // delete everything in the listbox, add _crNULL_ as an item - ClearListBoxAndSetNULL(theList); - return; - } - else if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL - || upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL) - { - alert(L_BadValue); - return; - } - } - - lowerOption = inForm[paramName + "SelectLowerOptions"]; - upperOption = inForm[paramName + "SelectUpperOptions"]; - - lowerBound = inForm[paramName + "LowerBound"]; - upperBound = inForm[paramName + "UpperBound"]; - - lowerBoundHidden = inForm[paramName + "LowerBoundHidden"]; - upperBoundHidden = inForm[paramName + "UpperBoundHidden"]; - - var lhourCtrl = inForm[paramName+"LowerBound" + "Hour"]; - var lminuteCtrl = inForm[paramName + "LowerBound" + "Minute"]; - var lsecondCtrl = inForm[paramName + "LowerBound" + "Second"]; - var lampmCtrl = inForm[paramName + "LowerBound" + "AMPM"]; - - var uhourCtrl = inForm[paramName+"UpperBound" + "Hour"]; - var uminuteCtrl = inForm[paramName + "UpperBound" + "Minute"]; - var usecondCtrl = inForm[paramName + "UpperBound" + "Second"]; - var uampmCtrl = inForm[paramName + "UpperBound" + "AMPM"]; - - var editable = true; - - //handle select box, not text box case - if ( lowerBound == undefined && lhourCtrl == undefined)//either upper or lower, doesn't matter - { - editable = false; - - lowerBound = inForm[paramName + "SelectLowerBound"]; - upperBound = inForm[paramName + "SelectUpperBound"]; - lowerBound = lowerBound.options[lowerBound.selectedIndex]; - upperBound = upperBound.options[upperBound.selectedIndex]; - } - - lowerUnBounded = (inForm[paramName+"SelectLowerOptions"].selectedIndex == (inForm[paramName + "SelectLowerOptions"].options.length - 1)); - upperUnBounded = (inForm[paramName+"SelectUpperOptions"].selectedIndex == (inForm[paramName + "SelectUpperOptions"].options.length - 1)); - - - lvalue = uvalue = ""; - - if ( ! lowerUnBounded ) - { - if ((type == "dt" || type == "d" || type == "t") && (editable)) - { - lvalue = DateTimePromptValueHelper(type, lowerBoundHidden, lhourCtrl, lminuteCtrl, lsecondCtrl, lampmCtrl); - if (lvalue.length == 0) return false; - } - else - lvalue = lowerBound.value; - - if ( ! checkSingleValue ( lvalue, type ) ) { - if ( lowerBound.focus && lowerBound.type.toLowerCase () != "hidden") - lowerBound.focus (); - return false; - } - } - if ( ! upperUnBounded ) - { - if ((type == "dt" || type == "d" || type == "t") && (editable)) - { - uvalue = DateTimePromptValueHelper(type, upperBoundHidden, uhourCtrl, uminuteCtrl, usecondCtrl, uampmCtrl); - if (uvalue.length == 0) return false; - } - else - uvalue = upperBound.value; - - if ( ! checkSingleValue ( uvalue, type ) ) { - if ( upperBound.focus && upperBound.type.toLowerCase () != "hidden") - upperBound.focus (); - return false; - } - } - - var ldisplay = ""; - var udisplay = ""; - if ((type == "dt" || type == "d" || type == "t") && (editable)) - { - if (!lowerUnBounded) - ldisplay = DateTimeDisplayStringHelper(type, lowerBoundHidden, lhourCtrl, lminuteCtrl, lsecondCtrl, lampmCtrl); - if (!upperUnBounded) - udisplay = DateTimeDisplayStringHelper(type, upperBoundHidden, uhourCtrl, uminuteCtrl, usecondCtrl, uampmCtrl); - } - else - { - ldisplay = lvalue; - udisplay = uvalue; - } - - lowerChecked = (inForm[paramName+"SelectLowerOptions"].selectedIndex == 0); - upperChecked = (inForm[paramName+"SelectUpperOptions"].selectedIndex == 0); - - value = lowerUnBounded ? "{" : lowerChecked ? "[" : "("; - if ( ! lowerUnBounded ) //unbounded is empty string not quoted empty string (e.g not "_crEMPTY_") - value += encodePrompt(lvalue); - value += "_crRANGE_" - if ( ! upperUnBounded ) - value += encodePrompt(uvalue); - value += upperUnBounded ? "}" : upperChecked ? "]" : ")"; - if ( debug ) alert (value); - - if ( !lowerUnBounded && !upperUnBounded && !checkRangeValueWithMinMax(lvalue, uvalue, type, minValue, maxValue, errorMessage)) - { - return false; - } - - var display = ""; - if (lowerChecked && upperUnBounded) - { - display = ConstructRangeDisplayString(L_FROM, ldisplay, ""); - } - else if (lowerUnBounded && upperChecked) - { - display = ConstructRangeDisplayString(L_TO, udisplay, ""); - } - else if (!lowerChecked && upperUnBounded) - { - display = ConstructRangeDisplayString(L_AFTER, ldisplay, ""); - } - else if (lowerUnBounded && !upperChecked) - { - display = ConstructRangeDisplayString(L_BEFORE, udisplay, ""); - } - else if (lowerChecked && upperChecked) - { - display = ConstructRangeDisplayString(L_FROM_TO, ldisplay, udisplay); - } - else if (lowerChecked && !upperUnBounded && !upperChecked) - { - display = ConstructRangeDisplayString(L_FROM_BEFORE, ldisplay, udisplay); - } - else if (!lowerChecked && !lowerUnBounded && upperChecked) - { - display = ConstructRangeDisplayString(L_AFTER_TO, ldisplay, udisplay); - } - else if (!lowerChecked && !lowerUnBounded && !upperChecked && !upperUnBounded) - { - display = ConstructRangeDisplayString(L_AFTER_BEFORE, ldisplay, udisplay); - } - - if ((!lowerUnBounded) || (!upperUnBounded)) - { - promptEntry = new Option(display,value,false,false); - theList.options[theList.length] = promptEntry; - } - else - { - alert(L_BadBound); - } - -} - -//////////////////////////////////// -// disable check boxes based on user selection on the range parameters -function disableBoundCheck(lowOrUpBound, inform, paramName) { - if (lowOrUpBound == 0) { - if (inform[paramName + "NoLowerBoundCheck"].checked) { - inform[paramName + "NoUpperBoundCheck"].disabled = true; - inform[paramName + "LowerCheck"].disabled = true; - inform[paramName + "LowerBound"].disabled = true; - } - else { - inform[paramName + "NoUpperBoundCheck"].disabled = false; - inform[paramName + "LowerCheck"].disabled = false; - inform[paramName + "LowerBound"].disabled = false; - } - } else if (lowOrUpBound == 1) { - if (inform[paramName + "NoUpperBoundCheck"].checked) { - inform[paramName + "NoLowerBoundCheck"].disabled = true; - inform[paramName + "UpperCheck"].disabled = true; - inform[paramName + "UpperBound"].disabled = true; - } else { - inform[paramName + "NoLowerBoundCheck"].disabled = false; - inform[paramName + "UpperCheck"].disabled = false; - inform[paramName + "UpperBound"].disabled = false; - } - } -} - -//////////////////////////////////// -// puts "select" value into text box for an editable prompt which also has defaults -function setSelectedValue (inForm, selectCtrlName, textCtrlName, type, namePlusFix) -{ - var textCtrl = inForm[textCtrlName]; - var selectCtrl = inForm[selectCtrlName]; - var hiddenCtrl = inForm[namePlusFix+"Hidden"]; - var hourCtrl = inForm[namePlusFix+"Hour"]; - var minuteCtrl = inForm[namePlusFix+"Minute"]; - var secondCtrl = inForm[namePlusFix+"Second"]; - var ampmCtrl = inForm[namePlusFix+"AMPM"]; - - // if no editable input fields are there, return, do nothing; - if (textCtrl == null && hourCtrl == null) - return; - - // if selectedItem is UseValue,do nothing, and return - if (selectCtrl.options[selectCtrl.selectedIndex].value == CR_USE_VALUE) - { - return; - } - - if (selectCtrl.options[selectCtrl.selectedIndex].value == CR_NULL) - { - if (textCtrl != null) textCtrl.disabled = true; - if (hourCtrl != null) hourCtrl.disabled = true; - if (minuteCtrl != null) minuteCtrl.disabled = true; - if (secondCtrl != null) secondCtrl.disabled = true; - if (ampmCtrl != null) ampmCtrl.disabled = true; - return; - } - else - { - if (textCtrl != null) textCtrl.disabled = false; - if (hourCtrl != null) hourCtrl.disabled = false; - if (minuteCtrl != null) minuteCtrl.disabled = false; - if (secondCtrl != null) secondCtrl.disabled = false; - if (ampmCtrl != null) ampmCtrl.disabled = false; - } - - var year, month, day; - var hour, minute, second; - if (type == "dt" || type == "d" || type == "t") - { - var sDateTime = selectCtrl.options[selectCtrl.selectedIndex].value; - if (sDateTime.length == 0) - return; - - var leftIndex = sDateTime.indexOf("("); - sDateTime = sDateTime.substr(leftIndex+1, sDateTime.length - leftIndex); - var rightIndex = sDateTime.indexOf(")"); - sDateTime = sDateTime.substr(0, rightIndex); - var a = sDateTime.split(","); - - if (type == "dt") - { - year = a[0]; - month = a[1]; - day = a[2]; - - hour = parseInt(a[3]); - minute = parseInt(a[4]); - second = parseInt(a[5]); - } - else if (type == "d") - { - year = a[0]; - month = a[1]; - day = a[2]; - } - else if (type == "t") - { - hour = parseInt(a[0]); - minute = parseInt(a[1]); - second = parseInt(a[2]); - } - } - - selectedOption = selectCtrl.options[selectCtrl.selectedIndex]; - if (type == "dt") - { - var dt = new Date(year, month - 1, day, hour, minute, second); - if (this.formatJsDate) - textCtrl.value = formatJsDate(dt); - else - textCtrl.value = GLDT(dt,true, false); - hiddenCtrl.value = "Date("; - hiddenCtrl.value += year; - hiddenCtrl.value += ","; - hiddenCtrl.value += month; - hiddenCtrl.value += ","; - hiddenCtrl.value += day; - hiddenCtrl.value += ")"; - - if (ampmCtrl != undefined) - { - if (hour == 0 || hour == 12) - hourCtrl.selectedIndex = 11; - else if (hour > 12) - hourCtrl.selectedIndex = hour - 12 - 1; - else - hourCtrl.selectedIndex = hour - 1; - } - else - hourCtrl.selectedIndex = hour; - minuteCtrl.selectedIndex = minute; - secondCtrl.selectedIndex = second; - if (ampmCtrl != null) - { - if ( hour >= 12) - ampmCtrl.selectedIndex = 1; - else - ampmCtrl.selectedIndex = 0; - } - } - else if (type == "d") - { - var dt = new Date(year, month - 1, day, 0, 0, 0); - if (this.formatJsDate) - textCtrl.value = formatJsDate(dt); - else - textCtrl.value = GLDT(dt,true, false); - hiddenCtrl.value = "Date("; - hiddenCtrl.value += year; - hiddenCtrl.value += ","; - hiddenCtrl.value += month; - hiddenCtrl.value += ","; - hiddenCtrl.value += day; - hiddenCtrl.value += ")"; - } - else if (type == "t") - { - if (ampmCtrl != null) - { - if (hour == 0 || hour == 12) - hourCtrl.selectedIndex = 11; - else if (hour > 12) - hourCtrl.selectedIndex = hour - 12 - 1; - else - hourCtrl.selectedIndex = hour - 1; - } - else - hourCtrl.selectedIndex = hour; - minuteCtrl.selectedIndex = minute; - secondCtrl.selectedIndex = second; - if (ampmCtrl != null) - { - if ( hour >= 12) - ampmCtrl.selectedIndex = 1; - else - ampmCtrl.selectedIndex = 0; - } - } - else - { - textCtrl.value = selectedOption.value; - } - - if (selectCtrl.options[0].value == CR_USE_VALUE) - { - // always show USE_VALUE as selectedItem for the dropdownlist - selectCtrl.selectedIndex = 0; - } -} - -/////////////////////////////////// -// remove value from listbox where multiple value prompts are supported -function removeFromListBox ( inForm, paramName ) -{ - lbox = inForm[paramName + "ListBox"]; - for ( var idx = 0; idx < lbox.options.length; ) - { - if ( lbox.options[idx].selected ) - lbox.options[idx] = null; - else - idx++; - } -} - -///////////////////////////////////// -// sets prompt value into the hidden form field in proper format so that it can be submitted -function setPromptSingleValue (inform, type, paramName) -{ - //alert("SetPromptSingleValue"); - hiddenField = inform[promptPrefix + paramName]; - var hiddenMinValue = ""; - var hiddenMaxValue = ""; - var hiddenWarnMsg = ""; - if (typeof(inform[promptPrefix + paramName + promptMinValue]) != "undefined") - hiddenMinValue = (inform[promptPrefix + paramName + promptMinValue]).value; - if (typeof(inform[promptPrefix + paramName + promptMaxValue])!= "undefined") - hiddenMaxValue = (inform[promptPrefix + paramName + promptMaxValue]).value; - if (typeof(inform[promptPrefix + paramName + warningMaxValue]) != "undefined") - hiddenWarnMsg = (inform[promptPrefix + paramName + warningMaxValue]).value; - value = ""; - if ( inform[paramName + "NULL"] != null && inform[paramName + "NULL"].checked ) - { - value = CR_NULL; //NULL is a literal for, uhmm.. a NULL - hiddenField.value = value; - return true; - } - - // if defaultdropdownlist selected item is _crNULL_, put it into multiple listbox - var dropDownListName = paramName + "SelectValue"; - var dropDownListCtrl = inform[dropDownListName]; - if (dropDownListCtrl != null) - { - if (dropDownListCtrl.options[dropDownListCtrl.selectedIndex].value == CR_NULL) - { - hiddenField.value = CR_NULL; - return true; - } - } - - - discreteVal = inform[paramName + "DiscreteValue"]; - if (discreteVal != undefined || inform[paramName + "DiscreteValueHour"] != undefined) - { // editable - - if ( type == "dt" || type == "d" || type == "t") - { - var hiddenCtrl = inform[paramName+"DiscreteValueHidden"]; - var hourCtrl = inform[paramName+"DiscreteValueHour"]; - var minuteCtrl = inform[paramName + "DiscreteValueMinute"]; - var secondCtrl = inform[paramName + "DiscreteValueSecond"]; - var ampmCtrl = inform[paramName + "DiscreteValueAMPM"]; - value = DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl); - if (value.length == 0) return false; - } - else - value = discreteVal.value; - } - else - { - // not editable - discreteVal = inform[paramName+"SelectValue"]; - value = discreteVal.options[discreteVal.selectedIndex].value; - //alert(value); - } - if ( (hiddenMinValue.length==0 && hiddenMaxValue.length==0 && hiddenWarnMsg.length==0) && ! checkSingleValue ( value, type ) ) { - if (discreteVal.focus && discreteVal.type.toLowerCase ()) - discreteVal.focus (); - return false; - } - else if ( (hiddenMinValue.length>0 && hiddenMaxValue.length>0 && hiddenWarnMsg.length>0) && ! checkSingleValueWithMinMax ( value, type, hiddenMinValue, hiddenMaxValue, hiddenWarnMsg ) ) { - if (typeof(discreteVal)!="undefined" && discreteVal.focus && discreteVal.type.toLowerCase ()) - discreteVal.focus (); - return false; - } - else - value = encodePrompt(value); - - hiddenField.value = value; - return true; -} - -///////////////////////////////////// -// sets prompt value for a range into the hidden form field in proper format so that it can be submitted -function setPromptRangeValue (inform, type, paramName) -{ - - hiddenField = inform[promptPrefix + paramName]; - var hiddenMinValue = ""; - var hiddenMaxValue = ""; - var hiddenWarnMsg = ""; - if (typeof(inform[promptPrefix + paramName + promptMinValue]) != "undefined") - hiddenMinValue = (inform[promptPrefix + paramName + promptMinValue]).value; - if (typeof(inform[promptPrefix + paramName + promptMaxValue])!= "undefined") - hiddenMaxValue = (inform[promptPrefix + paramName + promptMaxValue]).value; - if (typeof(inform[promptPrefix + paramName + warningMaxValue]) != "undefined") - hiddenWarnMsg = (inform[promptPrefix + paramName + warningMaxValue]).value; - - if ( inform[paramName + "NULL"] != null && inform[paramName + "NULL"].checked ) - { - value = CR_NULL; //NULL is a literal for, uhmm.. a NULL - hiddenField.value = value; - return true; - } - - // if both defaultdropdownlists selected item is _crNULL_, put it into hiddenfield - // if one of them is _crNULL_, it is not a valid option, do nothing - var lowerDropDownListName = paramName + "SelectLowerBound"; - var upperDropDownListName = paramName + "SelectUpperBound"; - var lowerDropDownListCtrl = inform[lowerDropDownListName]; - var upperDropDownListCtrl = inform[upperDropDownListName]; - if (lowerDropDownListCtrl != null && upperDropDownListCtrl != null) - { - if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL - && upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL) - { - hiddenField.value = "_crNULL_"; - return true; - } - else if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL - || upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL) - { - alert(L_BadValue); - return false; - } - } - - lowerOptions = inform[paramName + "SelectLowerOptions"]; - upperOptions = inform[paramName + "SelectUpperOptions"]; - - lowerBound = inform[paramName + "LowerBound"]; - upperBound = inform[paramName + "UpperBound"]; - - lowerBoundHidden = inform[paramName + "LowerBoundHidden"]; - upperBoundHidden = inform[paramName + "UpperBoundHidden"]; - - lowerBoundDropdown = inform[paramName + "SelectLowerBound"]; - upperBoundDropdown = inform[paramName + "SelectUpperBound"]; - - var editables = true; - - //handle select box, not text box case - if (lowerBound == undefined && inform[paramName + "LowerBound" + "Hour"] == undefined) - { - editables = false; - lowerBound = lowerBoundDropdown; - upperBound = upperBoundDropdown; - lowerBound = lowerBound.options[lowerBound.selectedIndex]; - upperBound = upperBound.options[upperBound.selectedIndex]; - } - - lowerUnBounded = (lowerOptions.selectedIndex == (lowerOptions.length - 1)); - upperUnBounded = (upperOptions.selectedIndex == (upperOptions.length - 1)); - - lowerChecked = (lowerOptions.selectedIndex == 0); - upperChecked = (upperOptions.selectedIndex == 0); - - uvalue = lvalue = ""; - - if ( ! lowerUnBounded ) - { - if ( (type == "dt" || type == "d" || type == "t") && (editables)) - { - var lhourCtrl = inform[paramName+"LowerBound" + "Hour"]; - var lminuteCtrl = inform[paramName + "LowerBound" + "Minute"]; - var lsecondCtrl = inform[paramName + "LowerBound" + "Second"]; - var lampmCtrl = inform[paramName + "LowerBound" + "AMPM"]; - lvalue = DateTimePromptValueHelper(type, lowerBoundHidden, lhourCtrl, lminuteCtrl, lsecondCtrl, lampmCtrl); - if (lvalue.length == 0) return false; - } - else - lvalue = lowerBound.value; - - if ( ! checkSingleValue ( lvalue, type ) ) { - if (lowerBound != undefined && lowerBound.focus) - lowerBound.focus(); - return false; - } - } - if ( ! upperUnBounded ) - { - if (( type == "dt" || type == "d" || type == "t") && (editables)) - { - var uhourCtrl = inform[paramName+"UpperBound" + "Hour"]; - var uminuteCtrl = inform[paramName + "UpperBound" + "Minute"]; - var usecondCtrl = inform[paramName + "UpperBound" + "Second"]; - var uampmCtrl = inform[paramName + "UpperBound" + "AMPM"]; - uvalue = DateTimePromptValueHelper(type, upperBoundHidden, uhourCtrl, uminuteCtrl, usecondCtrl, uampmCtrl); - if (uvalue.length == 0) return false; - } - else - uvalue = upperBound.value; - - if ( ! checkSingleValue ( uvalue, type ) ) { - if (upperBound != undefined && upperBound.focus) - upperBound.focus(); - return false; - } - } - - value = lowerUnBounded ? "{" : lowerChecked ? "[" : "("; - if ( ! lowerUnBounded ) - value += encodePrompt(lvalue); - value += "_crRANGE_" - if ( ! upperUnBounded ) - value += encodePrompt(uvalue); - value += upperUnBounded ? "}" : upperChecked ? "]" : ")"; - if ( debug ) - alert (value); - - if (lowerUnBounded && upperUnBounded) - { - alert(L_BadBound); - return false; - } - - if ((hiddenMinValue.length==0 && hiddenMaxValue.length==0 && hiddenWarnMsg.length==0) && !lowerUnBounded && !upperUnBounded && !checkRangeValue(lvalue, uvalue, type)) - { - return false; - } - else if ((hiddenMinValue.length>0 && hiddenMaxValue.length>0 && hiddenWarnMsg.length>0) && !lowerUnBounded && !upperUnBounded && !checkRangeValueWithMinMax(lvalue, uvalue, type, hiddenMinValue, hiddenMaxValue, hiddenWarnMsg)) - { - return false; - } - - hiddenField.value = value; - return true; -} - -///////////////////////////////////// -// sets prompt value into the hidden form field in proper format so that it can be submitted -function setPromptMultipleValue (inform, type, paramName) -{ - hiddenField = inform[promptPrefix + paramName]; - values = inform[paramName + "ListBox"].options; - - if ( values.length == 0 ) - { - value = "_crEMPTY_"; //if value is empty, set to empty string - } - else - { - value = ""; - for ( idx = 0; idx < values.length; ++idx ) - { - // first value could be empty string, then chcking value.length != 0 could miss one empty string - if ( idx != 0 ) - value += "_crMULT_" - value += values[idx].value; - } - } - - if ( debug ) - alert (value); - - hiddenField.value = value; - //NOTE: we'll always return true as the validation is done before values are added to select box - return true; -} - -/////////////////////////////////////// -// check and alert user about any errors based on type of prompt -var regNumber = /^(\+|-)?((\d+(\.|,| |\u00A0)?\d*)+|(\d*(\.|,| |\u00A0)?\d+)+)$/ -var regCurrency = regNumber; -var regDate = /^(D|d)(A|a)(T|t)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *\)$/ -var regDateTime = /^(D|d)(A|a)(T|t)(E|e)(T|t)(I|i)(M|m)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *, *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/ -var regTime = /^(T|t)(I|i)(M|m)(E|e) *\( *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/ - -function checkSingleValue ( value, type ) -{ - if ( type == 'n' && ! regNumber.test ( value ) ) - { - alert ( L_BadNumber ); - return false; - } - else if ( type == 'c' && ! regCurrency.test ( value ) ) - { - alert ( L_BadCurrency ); - return false; - } - /*else if ( type == 'd' && ! regDate.test ( value ) ) - { - alert ( L_BadDate ); - return false; - } - else if ( type == "dt" && ! regDateTime.test ( value ) ) - { - alert ( L_BadDateTime ); - return false; - } - else if ( type == 't' && ! regTime.test ( value ) ) - { - alert ( L_BadTime ); - return false; - }*/ - - //by default let it go... - return true; -} - -function checkSingleValueWithMinMax ( value, type, minValue, maxValue, errorMessage ) -{ - if ( type == 'n' ) - { - if (! regNumber.test ( value ) || isNaN(DelocalizeNum (value)) || isNaN(DelocalizeNum (minValue)) || isNaN(DelocalizeNum (maxValue))) - { - alert ( L_BadNumber ); - return false; - } - if (minValue.length>0 && maxValue.length>0){ - //check min and max - if (eval (DelocalizeNum (value)) < eval (DelocalizeNum (minValue)) || eval (DelocalizeNum (value)) > eval (DelocalizeNum (maxValue))) - { - alert (errorMessage); - return false; - } - } - } - else if ( type == 'c' ) - { - if (! regCurrency.test ( value ) || isNaN(DelocalizeNum (value)) || isNaN(DelocalizeNum (minValue)) || isNaN(DelocalizeNum (maxValue))) - { - alert ( L_BadCurrency ); - return false; - } - if (minValue.length>0 && maxValue.length>0){ - //check min and max - if (eval (DelocalizeNum (value)) < eval (DelocalizeNum (minValue)) || eval (DelocalizeNum (value)) > eval (DelocalizeNum (maxValue))) - { - alert (errorMessage); - return false; - } - } - } - else if ( type == 'd' ) - { - if (minValue.length>0 && maxValue.length>0){ - var comp = NeutralDT2Date(value); - //check min and max - var dMin = Date.parse(minValue); - var dMax = Date.parse(maxValue); - // since Date month as a value is from 0-11, the string represenatation as a value of 1-12, NeutralDT2Date handle it - // The number of milliseconds after midnight January 1, 1970 - // Set to GMT for consistent comparison on the client side - var offset = comp.getTimezoneOffset()*60*1000; - var dComp = Date.parse(comp) - offset; - if (dComp < dMin || dComp > dMax) - { - alert (errorMessage); - return false; - } - } - } - else if ( type == "dt" ) - { - if (minValue.length>0 && maxValue.length>0){ - var comp = NeutralDT2Date(value); - //check min and max - var dtMin = Date.parse(minValue); - var dtMax = Date.parse(maxValue); - // since Date month as a value is from 0-11, the string represenatation as a value of 1-12, NeutralDT2Date handle it - // The number of milliseconds after midnight January 1, 1970 - // Set to GMT for consistent comparison on the client side - var offset = comp.getTimezoneOffset()*60*1000; - var dtComp = Date.parse(comp) - offset; - if (dtComp < dtMin || dtComp > dtMax) - { - alert (errorMessage); - return false; - } - } - } - else if ( type == 't' ) - { - if (minValue.length>0 && maxValue.length>0){ - var comp = eval("new Date(0,0,0," + value.substring(value.indexOf('(') + 1, value.indexOf(')') + 1)); - //var comp = NeutralDT2Date(value); - //check min and max - //getTimeFromIETFFormat to remove the difference of the year, month and day components - var tMinComponents = getTimeFromIETFFormat(minValue); - var tMaxComponents = getTimeFromIETFFormat(maxValue); - var tMinTEFT = eval("new Date(0,0,0," + tMinComponents[0] + "," + tMinComponents[1] + "," + tMinComponents[2] + ")"); - var tMaxTEFT = eval("new Date(0,0,0," + tMaxComponents[0] + "," + tMaxComponents[1] + "," + tMaxComponents[2] + ")"); - // check am or pm - var index1 = minValue.indexOf(" PM "); - if (index1>-1) - { - tMinTEFT.setTime(tMinTEFT.getTime()+(12*3600*1000)); - } - var index2 = maxValue.indexOf(" PM "); - if (index2>-1) - { - tMaxTEFT.setTime(tMaxTEFT.getTime()+(12*3600*1000)); - } - var tMin = Date.parse(tMinTEFT); - var tMax = Date.parse(tMaxTEFT); - // Both new Date() make consistent comparison on the client side - var tComp = Date.parse(comp); - if (tComp < tMin || tComp > tMax) - { - alert (errorMessage); - return false; - } - } - } - else if (type == "text" || type == 's') - { - // is a string - //check min and max - if (value.length < eval (DelocalizeNum (minValue)) || value.length > eval (DelocalizeNum (maxValue))) - { - alert (errorMessage); - return false; - } - } - //by default let it go... - return true; -} - -function checkRangeValue (fvalue, tvalue, type) -{ - // determine if the start is smaller than the end - if ((type == "n") || (type == "c")) - { - // Is a number, or currency - if (eval (DelocalizeNum (fvalue)) > eval (DelocalizeNum (tvalue))) - { - alert(L_RangeError); - return false; - } - } - else if (type == "d"){ - //Is a Date - if (eval("new " + fvalue) > eval("new " + tvalue)){ - alert(L_RangeError); - return false; - } - }else if (type == "t"){ - //Is a Time - var comp1 = eval("new Date(0,0,0," + fvalue.substring(fvalue.indexOf('(') + 1, fvalue.indexOf(')') + 1)); - var comp2 = eval("new Date(0,0,0," + tvalue.substring(tvalue.indexOf('(') + 1, tvalue.indexOf(')') + 1)); - if (comp1 > comp2){ - alert(L_RangeError); - return false; - } - }else if (type == "dt"){ - //Is a DateTime - var comp1 = eval("new Date" + fvalue.substring(8, fvalue.length)); - var comp2 = eval("new Date" + tvalue.substring(8, tvalue.length)); - if (comp1 > comp2){ - alert(L_RangeError); - return false; - } - } - else if (type == "text") - { - // is a string - if (fvalue.toLowerCase() > tvalue.toLowerCase()) - { - alert(L_RangeError); - return false; - } - } - // otherwise, let it go - - return true; -} - -function checkRangeValueWithMinMax (fvalue, tvalue, type, minValue, maxValue, errorMessage) -{ - // determine if the start is smaller than the end - if ((type == "n") || (type == "c")) - { - // check invalid number - if (isNaN (DelocalizeNum(fvalue)) || isNaN(DelocalizeNum (minValue)) || isNaN(DelocalizeNum (tvalue)) || isNaN(DelocalizeNum (maxValue))) - { - alert ( L_BadNumber ); - return false; - } - // Is a number, or currency - if (eval (DelocalizeNum (fvalue)) > eval (DelocalizeNum (tvalue))) - { - alert(L_RangeError); - return false; - } - if (minValue.length>0 && maxValue.length>0){ - //check min and max - if (eval (DelocalizeNum (fvalue)) < eval (DelocalizeNum (minValue)) || eval (DelocalizeNum (tvalue)) > eval (DelocalizeNum (maxValue))) - { - alert (errorMessage); - return false; - } - } - } - else if (type == "d"){ - //Is a Date - var comp1 = NeutralDT2Date(fvalue); - var comp2 = NeutralDT2Date(tvalue); - if (comp1 > comp2){ - alert(L_RangeError); - return false; - } - //check min and max - if (minValue.length>0 && maxValue.length>0){ - var dMin = Date.parse(minValue); - var dMax = Date.parse(maxValue); - // since Date month as a value is from 0-11, the string represenatation as a value of 1-12, NeutralDT2Date handle it - // The number of milliseconds after midnight January 1, 1970 - // Set to GMT for consistent comparison on the client side - var offset1 = comp1.getTimezoneOffset()*60*1000; - var offset2 = comp2.getTimezoneOffset()*60*1000; - var dComp1 = Date.parse(comp1) - offset1; - var dComp2 = Date.parse(comp2) - offset2; - if (dComp1 < dMin || dComp2 > dMax) - { - alert (errorMessage); - return false; - } - } - }else if (type == "t"){ - //Is a Time - var comp1 = eval("new Date(0,0,0," + fvalue.substring(fvalue.indexOf('(') + 1, fvalue.indexOf(')') + 1)); - var comp2 = eval("new Date(0,0,0," + tvalue.substring(tvalue.indexOf('(') + 1, tvalue.indexOf(')') + 1)); - //var comp1 = NeutralDT2Date(fvalue); - //var comp2 = NeutralDT2Date(tvalue); - if (comp1 > comp2){ - alert(L_RangeError); - return false; - } - //check min and max - if (minValue.length>0 && maxValue.length>0){ - //getTimeFromIETFFormat to remove the difference of the year, month and day components - var tMinComponents = getTimeFromIETFFormat(minValue); - var tMaxComponents = getTimeFromIETFFormat(maxValue); - var tMinTEFT = eval("new Date(0,0,0," + tMinComponents[0] + "," + tMinComponents[1] + "," + tMinComponents[2] + ")"); - var tMaxTEFT = eval("new Date(0,0,0," + tMaxComponents[0] + "," + tMaxComponents[1] + "," + tMaxComponents[2] + ")"); - // check am or pm - var index1 = minValue.indexOf(" PM "); - if (index1>-1) - { - tMinTEFT.setTime(tMinTEFT.getTime()+(12*3600*1000)); - } - var index2 = maxValue.indexOf(" PM "); - if (index2>-1) - { - tMaxTEFT.setTime(tMaxTEFT.getTime()+(12*3600*1000)); - } - var tMin = Date.parse(tMinTEFT); - var tMax = Date.parse(tMaxTEFT); - // Both new Date() make consistent comparison on the client side - var tComp1 = Date.parse(comp1); - var tComp2 = Date.parse(comp2); - if (tComp1 < tMin || tComp2 > tMax) - { - alert (errorMessage); - return false; - } - } - }else if (type == "dt"){ - //Is a DateTime - var comp1 = NeutralDT2Date(fvalue); - var comp2 = NeutralDT2Date(tvalue); - if (comp1 > comp2){ - alert(L_RangeError); - return false; - } - //check min and max - if (minValue.length>0 && maxValue.length>0){ - var dtMin = Date.parse(minValue); - var dtMax = Date.parse(maxValue); - // since Date month as a value is from 0-11, the string represenatation as a value of 1-12, NeutralDT2Date handle it - // The number of milliseconds after midnight January 1, 1970 - // Set to GMT for consistent comparison on the client side - var offset1 = comp1.getTimezoneOffset()*60*1000; - var offset2 = comp2.getTimezoneOffset()*60*1000; - var dtComp1 = Date.parse(comp1) - offset1; - var dtComp2 = Date.parse(comp2) - offset2; - if (dtComp1 < dtMin || dtComp2 > dtMax) - { - alert (errorMessage); - return false; - } - } - } - else if (type == "text" || type == 's') - { - // is a string - if (fvalue.toLowerCase() > tvalue.toLowerCase()) - { - alert(L_RangeError); - return false; - } - if (minValue.length>0 && maxValue.length>0){ - //check min and max - if (fvalue.length < eval (DelocalizeNum (minValue)) || fvalue.length > eval (DelocalizeNum(maxValue)) || tvalue.length > eval (DelocalizeNum (maxValue)) || tvalue.length < eval (DelocalizeNum (minValue))) - { - alert (errorMessage); - return false; - } - } - } - // otherwise, let it go - - return true; -} - -function DelocalizeNum(value) -{ - // trim spaces first - var numStr = value.replace(/\s/g, ""); - - // get rid of grouping first - var tempStr = ""; - var index = numStr.indexOf(groupSep); - - while (index != -1) - { - tempStr += numStr.substr(0, index); - numStr = numStr.substr(index + groupSep.length, numStr.length - index - groupSep.length); - index = numStr.indexOf(groupSep); - } - - tempStr += numStr; - - index = tempStr.indexOf(decimalSep); - var neutralStr = ""; - if (index != -1) - { - neutralStr += tempStr.substr(0, index); - neutralStr += "."; - neutralStr += tempStr.substr(index + decimalSep.length, tempStr.length - index - decimalSep.length); - } - else - { - neutralStr = tempStr; - } - - return neutralStr; -} - -// Disable enter key checking for multibyte languages since the enter key is used for committing characters -var isEnabledLanguage = (! ((userLanguage == "ja") || (userLanguage == "ko") || (userLanguage == "zh")) ) - -var isNav = (navigator.appName == "Netscape"); -if (isEnabledLanguage) -{ - if(isNav) { - document.captureEvents(Event.KEYUP); - } - document.onkeyup = checkValue; -} - -function checkValue(evt) { - var buttonVal = ""; - if (isNav) { - if (evt.which == 13 && (evt.target.type == "text" || evt.target.type == "password")) { - buttonVal = evt.target.value; - } - } else { - if (window.event.keyCode == 13 && (window.event.srcElement.type == "text" || window.event.srcElement.type == "password")) { - buttonVal = window.event.srcElement.value; - } - } - - if (buttonVal != "") { - submitValues (); - } -} - -// To retrieve Time components of IETF format -function getTimeFromIETFFormat (strIETF) { - - var components = strIETF.split(" "); - for (var i=0; i1) { - return y; - } - } -} diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/swfobject/swfobject.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/swfobject/swfobject.js deleted file mode 100644 index c3831232b..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/js/swfobject/swfobject.js +++ /dev/null @@ -1,5 +0,0 @@ -/* SWFObject v2.0 - Copyright (c) 2007 Geoff Stearns, Michael Williams, and Bobby van der Sluis - This software is released under the MIT License -*/ -var swfobject=function(){var Z="undefined",P="object",B="Shockwave Flash",h="ShockwaveFlash.ShockwaveFlash",W="application/x-shockwave-flash",K="SWFObjectExprInst",G=window,g=document,N=navigator,f=[],H=[],Q=null,L=null,T=null,S=false,C=false;var a=function(){var l=typeof g.getElementById!=Z&&typeof g.getElementsByTagName!=Z&&typeof g.createElement!=Z&&typeof g.appendChild!=Z&&typeof g.replaceChild!=Z&&typeof g.removeChild!=Z&&typeof g.cloneNode!=Z,t=[0,0,0],n=null;if(typeof N.plugins!=Z&&typeof N.plugins[B]==P){n=N.plugins[B].description;if(n){n=n.replace(/^.*\s+(\S+\s+\S+$)/,"$1");t[0]=parseInt(n.replace(/^(.*)\..*$/,"$1"),10);t[1]=parseInt(n.replace(/^.*\.(.*)\s.*$/,"$1"),10);t[2]=/r/.test(n)?parseInt(n.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof G.ActiveXObject!=Z){var o=null,s=false;try{o=new ActiveXObject(h+".7")}catch(k){try{o=new ActiveXObject(h+".6");t=[6,0,21];o.AllowScriptAccess="always"}catch(k){if(t[0]==6){s=true}}if(!s){try{o=new ActiveXObject(h)}catch(k){}}}if(!s&&o){try{n=o.GetVariable("$version");if(n){n=n.split(" ")[1].split(",");t=[parseInt(n[0],10),parseInt(n[1],10),parseInt(n[2],10)]}}catch(k){}}}}var v=N.userAgent.toLowerCase(),j=N.platform.toLowerCase(),r=/webkit/.test(v)?parseFloat(v.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,i=false,q=j?/win/.test(j):/win/.test(v),m=j?/mac/.test(j):/mac/.test(v);/*@cc_on i=true;@if(@_win32)q=true;@elif(@_mac)m=true;@end@*/return{w3cdom:l,pv:t,webkit:r,ie:i,win:q,mac:m}}();var e=function(){if(!a.w3cdom){return }J(I);if(a.ie&&a.win){try{g.write(" - - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/html/calendarbottom.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/html/calendarbottom.html deleted file mode 100644 index 90b83a1c3..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/html/calendarbottom.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/html/calendartop.html b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/html/calendartop.html deleted file mode 100644 index 800ece7a4..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/html/calendartop.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/addallfield.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/addallfield.gif deleted file mode 100644 index 170f97defa457fbda203e666667fe294d224b28c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 453 zcmV;$0XqIiNk%w1VHE%r0M$AGetw<({r&&{|KsEC%E{T%(ceWxXwS~v^Yi!X>+$#Z z`PS9p%*)#P`up11+109>+sFX+x`6h&d%KM@ALfq{rvs@)z#t5 z%-hz~;rjdg&d%NU_xj`E>izuv($U`1(%$Fh?c(CSe0dZI2#1M^hl+@K4;2rQ29gGm zl9DMYc?q7M2A&2uB%UQDBzX}d5v#2RtOgr48?_sG9~~IE7#$x5y#^mQG8h)RS2y?A(d&Qz{{8mt=l}ozU0pIhe*F6Q(d)l|{+>R4`^x2q zH*P$6`{vX6^Y6A8&)>ax{{F=An=hWfyLb1+nNzpFef@Fw&Wn3@p8x#$ z=gr$sCr{isdE(~XyD#qDeSYEmy+42ce*O02^5utLzy3UZ>h}5bcQ2g3`|-oqZ{L1g zICt;wpMN*5Ke>71@#V`8K7IW9_U$L2n;C{OQ2fcl$iU#hpab#*C{7sI|2H@=G`F<2 zwKmBzclY%6b;~w0F;1B}ZTb|ZNi*h5o5e7B?%erIVq)@QN;*o*mZ++7 z3UKZg*s)7Mz+~4FOMNq5URG0S))V@?($W`}aB&H9840sqyDe;c^Xd|AZX3a8+^o-7 zxvd2sb1zZRQ`c3I`N}FI!>Xa7C!_8mEAb-XK_e5pj7Y(O4G$QDl#Nm(1eshK1r)h@ z7!C#|aRiA=7z7+#aG+J5)g>-KaMD56AR!)!2@aPV`ezvx-&1H^*wo2oY>;3esGPw% z-$Lt%!qUb=&FoV1mSx;BIm*oC=c(xMfU&V*U5wy?8?PK0cx2~W2}GRUw)XbciR>)0 Lv$8on6d0@l+#mr z;o8~c%*)#P`ujyhXy)eb@9*^Q@AKZ>=lc5m{r&#)^Y-`l`QF~=*45(P-RS4$?&9L> z%*)&3;_BJi+109>+sIb-0<)7{QdpT z&fWL-`uzR==jQFw(cb<1{m;(b*3{wS;p)=T-unCd%*@->)#3mD{{R300000000000 z00000A^8LW0024wEC2ui02Kff000KzKpkL6EE`VS2y?A(d&Qz{{8mt=l}ozA3u8i@#EJUH=g|c^Y`@W+gC0> zeEa5;t4qe4H=lm~{C(#1?MIJZpFe-^%H;{qyJV?%jQH{P^8JfB!yz{{F)GdvD%;I)Cooy}Qr9ef{y``MbM!pPxB( z`{&O;Cr{k?`t|46Z$Iwcd4BT5&AWGA+`aqa&!4}SFF(9+?%ua=KmPvtck{;Mo7bOQ zIDhxTxx3F_y#M&&>!*)jPoKJd>P4dj$J-vP1^36<)Q>IRvK80!0j5*V0F-)F2cRrK2xP-X0zVtE)ZE0z3 z2?_lrnwp&aoV)pV?BeIQ+qJ|*$x={I$&ttEgp#0&%7rCdTtZyNLf3h&3pw1px`dtG zT=W^cg(%Nsd(p@2OXO4y4COSwe&bQq(^J(jSi;58qOgI%k&R7JL&W2iONW5EMahE$ zjR*ULWsU5fIIKF@#H#FImhhm^u~|@6dcv%P0|#2BvsE3)@tn-Ql1I!ZB4MIpbElY% z?vpi%3t2UJMPw{4EC^u@TB0Qr;Niu^$RxnQlCZbSp)FK^DdonGFO3a1H)mX))vNMi NLbS6J6B8qYH2|sa4zvIO diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/back.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/back.gif deleted file mode 100644 index 17e9cf8b5cbe58d38d322558e4eaec525ff0697b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1053 zcmZ?wbhEHb6lD-$_|CvkS2y?X-@pI=|9|}W-Kmo|FI~KU{@k6yZ7(Eynp}s-reWFe*O9T_uuEw-@bqQdGFryYgZrLyZhq# zvv-dky*_jL_TxvdZr*(I=;7<*$M63B_2>EXceidnee>$WqerjKp1%F}&%f8NKD>VY z;oP}9AKrfk8g%a5-S6LlCjNW=?CqtC_x}F*d;Z+rYgZmVe)#IrrF*}A|2}i(_SLHo zf$n4&1*0KAy%5j=83oD<3>^O%SQ#WdHY_;U#N@~mabm;5!>tNzYyu7&7ai>uVfNs0 zXnfqspdV4PMB&n6o?Zr~mJER;r)FtA^&L41lT(?eFbYK6=sdv6G}pe7>1gGG7mZx* z-C+*1zG$2i)mCtsU}f6Wyh>n+(}7MU*De;$fC(NC6b?pg$SBN;Sk2hh#?I$rGei4( zW6T_Bvnv`G7q&F>%3IYi+-Wp8$1P-(GC|>CQ}a=AJ%_lS;>M?}ayAiV28TAapPOH( zC9zh4otH;K#KOVWYAe$mR<0WzvdY`u-riWaYR1At4&2NKnz`BgCNnb2$VkjEn77B0 hneTL=& zeEa5;t4qe4H=lm~{C(#1?MIJZpFe-^%H;{qyJV?%jQH{P^8JfB!yz{{F)GdvD%;I)Cooy}Qr9ef{y``MbM!pPxB( z`{&O;Cr{k?`t|46Z$Iwcd4BT5&AWGA+`aqa&!4}SFF(9+?%ua=KmPvtck{;Mo7bOQ zIDhxTxx3F_y#M&&>!*)jPoKJdFQU}fXcHp_`j;Dl%*N%d~CPprPxuiS2jEh^?C$VxlNboFVU_RI= z$gXx$(WQfLg8!R@1C7q?eCjgu6>cURY+_Tks!wC6I>>RJ*W;7Hfn8r)IBj|M%sWuU zbW%(#YsQ8IMdofXHKQNfHdr%zvWsX~1UNc67mM=AWOUq{vxHZY$w9$Efw{5lJ=30i aq5nS`8-9L%ad~#X#)k#f%`8kz4AubQjvL7U diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/background_field.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/background_field.gif deleted file mode 100644 index a125dda0fd7ffa3fa383ab2a5ea223425ad7b4b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 813 zcmZ?wbhEHbWMmLx_|Cxa`s4R^pMQM%_Uqe^-#>o+`Ss`TpTGZr;Q#;s45MH)1crME i=zu&3$_oq}LJWco3<3@Z7?@ajWE>7`P(0kgU=09w4k7UX diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/button.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/button.gif deleted file mode 100644 index 2c54908e63e110d3052dc1642cbb1f60fc9b87c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1344 zcmZ?wbhEHbWM$aP@STC7u5Rvs28QFu@18n&^UUd6XHMTfd;0d7Gq=y3yK^3d?q0fh z@6yHlmoDAAcIDxA(ox z#6vAt1r!}3z8<)y#l|bOCTc;z!Bs80!?Nu*+)`K`%EBcOVe8P)aCIT`8o9Zzrf3E) zXILa>v+F~v^BNtMO&JRhB|R6G3Y??y@Zw^RiON<}LiQ>yZQ~Y+3R_{I_$+p>fWnhI zXE&E8E?^PhUuwg=>G3kZUZa-A8|oM4+9tkPmMOfW!#PFKqG<$=e&;>->?TQ?*!a4|*Sox6Qm>>h?AVd4x0M_C!7<>pMC7MePf)gdCb zmenCGhEahztV=f~G^9t9b$;*>PV)o)tO5ZJ`8IEl9bhtj`m7;W$VDNVRb)q*BiriI z2M05i8v>*_Ra%x!OxIeoAd*`*hOL?Bi084!LV2MjF@+* zvb$aeYo5*JkgZjbb2q3+lXEqQStjSqCi~=GaNp7G7ec-;Cd?20$;rl0&+y{we3mfI zjL^pHt*i`DS&SDHBBWhcG=+*pl_rLTWJ=t0l-(!()IpKUeNm@|+5)9+Gsh2$eB=$! lMJ)C*f3`z8%dU=P$pj67%qK1$S|?Rf{hUsQI503+0|3bsU*Z4& diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/button_left_normal.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/button_left_normal.gif deleted file mode 100644 index 0cc483c533b3d8bda4d6176fa40afef59ed47394..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 351 zcmZ?wbhEHbEiwG-+#V-{qfnech{~y zdjJ0O=g;4N{rY|D=94q0Z{551{QdhcH*Y?uTb2A_|tEEkv3LM|V+|T^$*$0h@}e761SM diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/button_middle_normal.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/button_middle_normal.gif deleted file mode 100644 index d1d65b7dbf6c08605c36202786704a9699566f77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmZ?wbhEHbWMU9uIKsg2|NsBGy1B1ke>{Kg&b6x#FI~L<>(`&hkKdg-dGpz`cV|xD z`u^?b=g;51e+QD^@7;a=_|dEP??3du&6`i2KYw@Y=F|7@zudd~ zf&mpM{$v3Q=zvI&oeZq<2?8?g3?Y*eO}HPYOjJ-2cd?a96LbmWVLr;zXwd1zU=0BG Cr&PWG diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/button_right_normal.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/button_right_normal.gif deleted file mode 100644 index 941f6fe47991c063fbcc27c1f3722a079f6b5917..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350 zcmZ?wbhEHbEiwG-+#V-{qfnech{~y zdjJ0O=g;4N{rY|D=94q0Z{551{QdhcH*Y?9Z|T#*ym`y%m=A zp%o|~AS~RkD;&tjCnPjoNI8&ezS4YI*+8~sn#-02vaDIVCXioz<3(9-UC;zMrTZhii|Nn5Z{{R30A^8LW000L7 zEC2ui01yBW0009TNY7X$Awnl9XLJrrhTHq#u jj79PR3&Io4HUQ*=ykhDXn@L?$;=#u4Y9Zh-BLM(AoLe*D diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/cfilter.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/cfilter.gif deleted file mode 100644 index 06ce507aa2c7ec69357eebb808bb810512a92d56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 686 zcmc)H+e=dc9KiA4Zf)uk$8-)Vb2y!br5Q=u%~H~J0qy7(!RYcH^iV!ZPVHgqMp;&1 z+EXM1fyIJBMWI7?!{O%U+|ixsW;?m9PCA|E_zU|d`uqdmhi|j?%#pfl1&|L>J@~xg z*}x)>gWC)ox0T6kl4Ohw#T@pa%@zs-7JXidqUcyOLDRp;&~kchgJIGUDxOUK+03x% z^hPGbMxzOI!fas4X%Dg-=W@+aVH#%ueSq`8v0D@sM+(-z)u62?m1Jl-6^kX%4HyT{ z6zQ7|GuFzrFI6c^Im>O~Z$LZXDtNtNWc3~oi4)*(1S8=%W(v^@E?04!TkaH%J46<5W0f&9o?V9sU%|{}M$%z2Raa~=52!Q{< zf1=tD@&NQux!vD>0%E+QZ|~{tyW3~XYBS%v|G=EpL+JXSJ{#yK9v@c;3E{3+!_~y# z5b?5|5ao*$3X!OzL#G(ky~}?~6yz1C)d%)hjar)XK3f}Pd}qzc;(eC$hf8HLtNfhY z*|N7}?1MmFR%Xpz&gCo5TC^68rqNnhUbw0(D!Fi|UT}IRzt&&+TF_&Zb~c$0HuMT* zb;@f0?S<}c(+;UpRkLt?Oe~iEoE$EO3E-VrSLQXG()RN@dGP*f)F`SrCcX64IPQ31 z9hU6LE^RUKT6L0-s#`Np-n0%$KDAL54>h|@H~mXZ0>0+T_xc~%3Y*_>(KBMO*WMTr TKF^^po7BsX42^m|503r?jBPfQ diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/cfilter_over.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/cfilter_over.gif deleted file mode 100644 index b69a02af22ee3a3de4bb2c2b6e2e4ebfbbba2aa4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 688 zcmc(c%T5yk7)JjgSSSQDwzXV@QYr{y1tiMNs1cM)M8loN#H6fDT(Qx(B85^npbM;k z3K4^(55U4ShA1Y|8&DF!ww4){R;JN%tIniDXZ)p4;dy}XNoTNwGmo$`td8cm+9!oazPLsHXpsg;O9e&Kv4|ZRJa8A6KE>L zvC&1Be}9j~2%yj{3V(4MR@^kpMLlDwdvA+;-Thu!CL`H_Z|Wg6E257H?rgh2?zi&&21MNwS%fi^CWe*#Hp&~+LIO^-|iWZTg2<0nI;vAx6mY;?@rJ~BQr`l9pccvn|< z$Mnqe5sgN!R@Yp;Fl{+6mp8s@&&f%ct7}%Bwp=MK)HYdflwY5#&d;2EL*!o0wMrye zl7ymK%O%SfiB&4CP%4W~WS*h0s2!4kLkUn0R~bE?rhyA3!DQlTOa6?TW0T? zl~#>H*J@}OOimb{AZz|K_GenNvNOu2h;>=p%xFfh{$2?{HjHa3v<6b2(<~(d^1(B` UX#wYCYURjO-NUpVX(C+w2MGN#8~^|S diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/dialogelements.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/dialogelements.gif deleted file mode 100644 index 35d803283b7155a9742c93da652260f6f1423879..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 zcmZ?wbhEHb6kFaOL+j@W5?ni46Jl%Zk#m>`j z4qkkB{OZRux4vAw_x;+VpSPa=zWd@2!zdUHfngB>Iv`(w@&W^gID@i7#e)Tm&8%EP S3Kj_q7#bOwm>4)X7_0$hU@|=b diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/error.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/error.gif deleted file mode 100644 index cbb3bdaf2fdbe0651b608628065c4e85d70b492f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1482 zcmV;*1vUCdNk%w1VITk?0QUd@|NsAq007!tT-6d1_Uh`H006-N0I2`~^nHD`008v# z^w|sy!ee8*GBV11e2^0p^y1>Z0065I5%S#J>lGBVNJy(oORWF^d;$WiJ3HOGyP;H6 zkpKX(007KvZ1Y=Ml>h*Y4GrXeecGO$o*W$1$jHi6RIxfb$&8Gp7#QEMu+0hz^n!x& zbad3w(TxBA>P=0>O--Nx0NL5urE6>Ly}jfb8k`Ui%PK1C#l@sGHMT`X(h3UInVIB? ziM=W+^Gr;|e}AtxH{GVD%SuYxbabs68nhxJ`uh6Yf`ZcSKhga82bW@gJeI-L#<={h>)<>k)K&Y>nI;{gH1#l`fp zvdSYP>w9~h1_r)tZ2tcK$8~kRP*BAH0HzNQ!)e-QCU>7Igpsf&c)fAt9sy0E!3*!DnZwdU~rQB!veD?bOuSaBtr}KJAs2?dRsO zKR=!O4#&Q}yG%=s1qG)pEbSW_=g-gRuCDy< z?!lv@z$PZ`U0vaJcCG~l?Q?U}LPF9_P1`^~zoMeI1_k615$ep$wig%LkB{gI3HNt+ z`PJ3ZFE896Ae{&ZhY1P3Mn=6|U8P)H;%#m3Zf^FYqq#ad_@JQqtE#3MC zHU0hl>yD1**VnH!H139m!*FlRCML~fW1s^AqXPr*GBT4SB)Eu(kp~C$#l`l>$EFh# z;|B+}P*Ct;Vf15T$}usd0|T}Q2)R>Jx>r}23=GY}!q5N!*8l+22M6$&n6h47_MM%o zgM-+!HXmAiO9GA( z03;9uyP?rXMgr3b3IxDr@JT)!gMg&}K_J3|9Rh;y%xHwJ&xHtjPRn><%;173@$D4Hj~xB0v;^IWfa8kfeak* zVh|5iz+npoRFs2-GIBg;h5{P4W59<7XmJ6Fi`a(`A;|n8%P3S_@>~`hoPz`sF8pAC z9uXvP02CZB(Oo_Zcmande*_~Kk^!LM&m9WbvrGaBT%bq+99UqG4~7hoB_Yp9M?(M{ z6mWw-PPB2#9tSux4x2$3l*1gI7{Y@#rkIgMKX}S;0T(2c;6@y<+)zgyeH1XwK}En5 zjv*^Nrdo_0#X`)K5kmt4OB=DDvS_D7(FN<#snqDEc47X9~2M(JKCIk;Q#;t diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/errormsg.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/errormsg.gif deleted file mode 100644 index 06234bf91db0444d2f480f36f4071396347513db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560 zcmZ?wbhEHb zuwbja{0#wtnORvo(^(` z-pk4^QB!-($#J8q>LD-h21SJ*%*>CuxnFT|ygPgLl(zP_XU`5uN*$9Be_33-CnaT< zjLc41+5cHt*B30fUR`~km+$txd2gmqKa!q)B{A`iiptl#yeFllXGKLfnVNo)midvJ z`|AApV-gapEG;ex3xAwCb*+-}cV_0jhK6@5Dvs&vU)0ce&B5_()~q+-;fE6v&WMVx zGc$X~&i+VIX_=bpiL|tPbLT$c=K1yH$^Ed<-%p-=fBN*OxWxBUr`~dKoJ~pIEi1E1 zS$VCJ(#ycW<*F(-`2{XSN56=OI4C6r3@!$$0>z&!j0_B^3_2iFL2<&s-rJCx8s-@9 zZzkax-jo{Y#q8%1oM>sPni`VKZ0#(i!sQ?mt!}I!!=R@WCCH$uYZPiIXTu;W%)rLT z@9oa3%xuoUpv9=cW2Gj}%O!M(&rV0uHz~r$Vh10CJSRI#P>dUcD`ScQgHr&vbReh8 mE*?d8Mh>P_0Tb3Z*4PAD4%;4a(JgjNY^9Xfb(E@5`#$N93b7I zRvR7m4d45M)iK`YPSFiIos}F1UqaqpA`yilU3_&`oxdr5giGLNT>KN(MmQ?k!x z9Vu&O#iyq$xo&P~>ftlBr}8UV+@z!yrQo0-*t@s)c|=4$Yp|kiD?=`ejTKg}@4GCM z@)DaQ*CDf&#fcV|^qiI5hSUggas8JJc{mq3STGrK2O#DG!G4feDGd_~L{L;c!^*Ae zqtyKIiLZqfmEqwvFTM|tD`$GlkzF%;qT63fKU@i|Q4|Pc`x;fgD8t(-fytg+Go>(3 WUv18v`LxoMRdtJ%QkD=7<$nR$Lst6$ diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/filter_over.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/filter_over.gif deleted file mode 100644 index 0d22a499c335ec3d4eb928494f0e843e48139115..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcmb`E+fPyf9DskQ;lZ}n9I2$@UD2U-v8I`;WhvOrtmv{zj2!<$y*RvJ4_@ZVv{^15 zSX--y)9E`FU$nSvHg7Z%3j{(GwaL(tV347xjYu@ca-6|H`lt<~(e7NK zeAK3sqyp<9yUokcVUncK3OEO|Gmb^es(IdtW(a>ff%({rVVzCrqE0nO@K3itZZT4>Hm<&v40pQY`1ybuSFOD>+s%LlVic`#A%o|+R+I# z9YHVP25fzjAS?f+6C(ErJ-~b^H<=t5O~rLU2VhK$VLrx+ki9{YKAY8x+#E81$OgA) zi^YYk!n~th0_v?87h(Cuz6CS6JuVFfX@-e#95*#-ZEG9Ff53ktCz8MeP=j>WxBCPV zQKN3{?9z5?JCg7B^!D}lBzLMF3_cqg9#lPf{&Hxf_37y7D^*#UFgI7OJbUa;Ro%U6 zq41PmERG*Ld^f+Spx8UXq zp%(}$MWW1%f(xbR;i||l&=;plnu^muhMRb+XS7MF$935SI#+vl+z7#IbZI6Z$H^`# zzbZSli79o!JLGDY_ov88C5=#P+LKcWlK1evVML$NCGhCfX`&nmWE@;edc)^eq!B-K z6ObhxDE!<4{9+=B*sswoB`Dq%5)xxW$!QJ2o6^;!E46k)B~;kL`4he5_`~hxzI@+6 LbFDg#2i1Q8CZAWu diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/forward.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/forward.gif deleted file mode 100644 index e1a47d71c3b3c71bb4c9e46903c50f5029c989d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452 zcmV;#0XzOjNk%w1VHE%r0M$AGetw<({r&&{|KsEC%E{T%(cjO`-1GDI_xJhh>+#mr z;o8~c%*)#P`ujyhXy)eb@9*^Q@AKZ>=lc5m{r&#)^Y-`l`QF~=*45(P-RS4$?&9L> z%*)&3;_BJi+109>+sIb-0<)7{QdpT z&fWL-`uzR==jQFw(cb<1{m;(b*3{wS;p)=T-unCd%*@->)#3mD{{R300000000000 z00000A^8LW0024wEC2ui02Kff000KzKpkL6EE`VS2y?A(d&Qz{{8mt=l}ozA3u8i@#EJUH=g|c^Y`@W+gC0> zeEa5;t4qe4H=lm~{C(#1?MIJZpFe-^%H;{qyJV?%jQH{P^8JfB!yz{{F)GdvD%;I)Cooy}Qr9ef{y``MbM!pPxB( z`{&O;Cr{k?`t|46Z$Iwcd4BT5&AWGA+`aqa&!4}SFF(9+?%ua=KmPvtck{;Mo7bOQ zIDhxTxx3F_y#M&&>!*)jPoKJd>P4dj$J-vP1^36<)Q>IRvK80!0j5*V0F-)F2cRrK2xP-X0zVtE)ZE0z3 z2?_lrnwp&aoV)pV?BeIQ+qJ|*$x={I$&ttEgp#0&%7rCdTtZyNLf3h&3pw1px`dtG zT=W^cg(%Nsd(p@2OXO4y4COSwe&bQq(^J(jSi;58qOgI%k&R7JL&W2iONW5EMahE$ zjR*ULWsU5fIIKF@#H#FImhhm^u~|@6dcv%P0|#2BvsE3)@tn-Ql1I!ZB4MIpbElY% z?vpi%3t2UJMPw{4EC^u@TB0Qr;Niu^$RxnQlCZbSp)FK^DdonGFO3a1H)mX))vNMi NLbS6J6B8qYH2|sa4zvIO diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/info.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/info.gif deleted file mode 100644 index c24c40f3f775155c76e57423e94280fa56612ec0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1501 zcmV<31tR)KNk%w1VITk?0QUd@t>6FA@A{+A?X}(cw&DGHm&w!W^JI#>Cry$pSgMn{ z;rajnGfQ;k@%aD$|2AQ+T7JG@i^yVx!b@waq`K0?=KVQZn5EYE#OnPUFH)ji%0nozAnw;hDkUsoed&<^JUJ^lOsIPIbAi-T6FbvasO(;`{!r z)$+38|MmX=Re8Ia%JID2^Fe8|E?TOiy~@ez|M33*&F=p@WwF-r`b~4U%-`bq`~B?j z_qpW$QhdIs+4!s5`^weofVJkX-~O!L{+X`UgPg;s*Y-YWv-0}=_4xWkYOd)0|2bo@ zScJn$aka+N>8{!GCP|G-cDl0K_t@&|y5jra_y5-Q|1(~#G+(Wj%JZVd=*sT@TZqS< z&hwVQ>5|9st>68o%;dV?`Mb#7n6TH^@Bc7ct6YG;YM0TP&Genj?i~Ci^Q(l`1Je!be`0_6Be zyV5jYu+#Ma&*$`_)cB;)^!)$-Hejl^+3mI7_QBlghosVIhr+bs{P6nwR(-#Jwdb76 z@z?M2J71!5kH)Rt{Kn_@PIiKxRqVWq3k?9S);kHPE6==IR)`$KKK z>ihm%ey#2K`huduqsH94*ycoLs4h~KfuGT=-~O!M|ESmat=|5Xy4WH(VBGTcpR?Hb z`T99zw2!RV)A0My^ZrqGweI!&h_&FO((s+O#-PyjhPmgZ(ejeO6b&QFh~u|!ihy(0pgh?jr6Gj}RiN?u zRLc>D5s~UBPA6HiT38V^r!{~LE`WIdGx*>D4_ym%?`G1#038`JJPi=Ff>LGhcw`r( zvFpl*^bW|uKqJ>MAjli>P{9Qp`4~|d04|7ujX??2aLNZSq~}966HMSsEFMUJ$PuO_ zLBfM`43GeY7CLc5hD$Wij|KJIBEb>q&=SK1Cw}*X87mf)04xTu;KT3$TWdC2w@3cs6pWYbojx-Ax<~}2s6f5pv)SGXkbbZMmV^^92FFzA3@H1(@Ow; zWT9sk%w+J3C1`38Mj#Ka@PiEytYHucT)?wRGnZ%~=_45+fXyTYP-6}s!h8p38c(2c zP!0!>gTWU#;P6Erl_n4e3Pg;$k%2akU<9u?f?S>QS8tL zA4ME$OB{wIv;z=RU{QiRRO|tP1fkTCN(e`caRC7~q_M~(3Q3{D3G>W>&M-01q6iVC z5TOV+G1yT-8o&Z@kbCF2$4w}T_hZXIht5e!7Pi!Ar(VXpr8aB=(Hk4AVRb< zfEg9oLP#8w{OeE%O6&my9%6j#MIjJ8F+;Q)4a5#9Ibc(f8Y-+IYRy0gE%eX}1q1*) DxKT5J diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/infomsg.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/infomsg.gif deleted file mode 100644 index 028b5d1f653f803c01bcc1194a48e0ee140fe061..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 551 zcmZ?wbhEHb>O7c}+$%dZI?M>=;u534yial>6>r$?tGfjedOb>|C=8E|MvTT-pun|yPh9^`9EXY`MB0Y zYw!P`yzy2-+o8Mr#|F6IQfAaB+Z^fx(4A2jp;2oG`Gr zG`P6v2*`49NXalZx#$Wh7&|E|iRtmUSPQ8eI;-$o@d+|93Mg_5i!!hpPOqHGoPjjo0O@MqvdH{5pi}IF>{Fnr==xX8JPrC kc{%Mxq_r2j@G!|~*cpgRGEHw{WMyY#V}H!T%EVv|0AfSE;{X5v diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/minus.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/minus.gif deleted file mode 100644 index 9cb5eb9960494a9167288f977fc535fdeed750cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100 zcmZ?wbhEHb6lM@%Sj52a|NsAnhKBn3dIm5XNJ4<(PZm}Y1{MY#5ErDDfmzdI*PVX` sr#!PoEFMcX{Ac{$_=uw=$b8M=$i5e;yI#sT&q{k+^Zvhs6BC0q019*>p8x;= diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/next.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/next.gif deleted file mode 100644 index 8540d35e9ca4428cb6f0bb54772547dae3b3538c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452 zcmV;#0XzOjNk%w1VHE%r0M$JJ*45$K+2rr<^!oby`uhC$_WAw&{@&f^@9*=>%iHtw z_UGpA=H~9l$KB%M>)zey*45(K+2rHm>fYYx`}+Ln=kEOd{r&v@>+A5&&fM$j@Y>ns z@bB~D;_Bkz>&?sC{rvsR%-i?(`s3m1{Qdst= z?DEpl-t6k|*3{wa>+#IX+V}VQ^Yi!8(cjO`+~ec!%E{SMQg8kJ{eFI(|NsC0|Nj60 z00000A^8LW002DzEC2ui02Kff000Kzz}{|1EEwb0Goo+xG5C{V|oPct-DQVrTFx&V2Ga`Ehe0d5qG>0@fiie7bc>)Lmk^(t7 zlL(mt92|KuprMyJF)tdR7#JFP3>6Hm45K*=3n~k@3waVA4!aJrIUN!mBMuIE2M-g; z6S4=-4-W?uc^eS{)&Zj|0TI^$;CTQ55aSS+B@hrWE92vNHSzK}E%Gk$Ch>VT{Qds? uCv0R$ks*(a4+&%>Tqxt9!VnGf;Fw6UqQ!}68erLIC5n(EAdU100suRCO8_YV diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/next_over.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/next_over.gif deleted file mode 100644 index 801c2306d6acb937920d1b13c904fe539cfd79eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmV;=0WkhYNk%w1VHE%r0M$PL?dDY?(FUI&(7ZU_W0f0=+o2T-QDNO$l3Y%{OITJ_4WDQ-RR!j=luNr$;jBt z%G=o2Lluex3jS z|NsC0A^8LW002J#EC2ui02Kff000K;z+Z1jEEYcwJaObKI-urL@_BvK-GItfK0p;O@X3JNWHWG@^u1_m5DIy8wK1|T4jWCaBb z1tScMI+zSNnwDe)1The&oI0c~5TpcTDHb9yDI}>n7Ah(hBqC%1zze{s77ND00c0K& z6dorNoBOZk$(gX$uYXAs` BBjf-8 diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/prev.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/prev.gif deleted file mode 100644 index ec66dc2b41b126451d1a2d6c6afdcd54bf0c7b69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 447 zcmV;w0YLsoNk%w1VHE%r0M$AG@9*>4+2s2A`|t1c_xAby{r>v;{LIVS-reW(^Y-TE z?&s$2*45(P-sjobe|`m`}+L-{Qm3e@ayaF{Qdps=kCtV+~VQu z&CA>3;_C44^X%&I%*@;R`}^bJ>izuv($U`1(%#R`-PY9M{Qds-_xjGx-PP6M=jQF! z)#2;w@yyHG_xJhp^Y_or+|tqCwa%q+)Y3c7z_e8+z@iNDd`)G0NeNdFe!Tke0d2mF^7qYHi?Lcc>@3gl9B)b zHa3%!9v*ovprIcwnKl-n7Z(^c@i5Cx)8E99TFWP5D<9?4-Lo- z4YCNx4+sr;6Al5@0oSDt*4Y7hEiDY;4CO7ECoAFMc{A?s@HQmwCGL4L`1$(yDl!@- p8uGm0aNtG3gD(ae1d%XLjfW5;N_?0m0+x$bq6j&{(TI*906Pbg^-=%; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/prev_over.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/prev_over.gif deleted file mode 100644 index 76318a28f4b775cde3a7237d0e9ef0e3cc32feb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 467 zcmV;^0WAJUNk%w1VHE%r0M$PL{rvso;_LD8_1M_t%gfvG@%H)o`|RxU;^OPn)8NU+ z+04t^?d*W}R7-u?Xk_V)PG)8Nq0-O$e6+1TUu_W4p$Z~guK#>Lluex3jS z|NsC0A^8LW002J#EC2ui02Kff000K?z+Z1jEEQz#?~OUYuEoGg};L{cJqJcI>dzrgGA3ov?QG8r}(7a1fOH##~Q7a$;!WDX7q z4lD@?B#t@>HJX-W0|Ph{r~{rl12Ge&17s*2DlaG^t2!MiDIFpzWC6km!U3xY$ix9; zCL0?j5ET#*o)y;45M&1o3>@7D2h=(T9NP>BWCa2O1?>VH?K`V+30v0y339#z%7ziphw2Lc8rC4lKI@qHipA~Xqql#;rkm0H&8bQep H3=Gx)sGJ&^ diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/transp.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/transp.gif deleted file mode 100644 index d2ac90fe2eb741c765b954ee94aa8f2ee8d9d0fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85 zcmZ?wbhEHbWMp7u*vtR|4Pe{=rW$~}hK2(N4m310{0EBvXZR1MfHaT=1d2ad7=hvp QIv@gM1_KL|fD3~)04TK>bN~PV diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/warning.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/warning.gif deleted file mode 100644 index 7496185eae6e7b96c4629880510184cc7ace01d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1538 zcmV+d2L1U*Nk%w1VITk?0QUd@N=i!B*4BuKhM<@ae|twyO)jdXUBkOFqMTCO*sS5& zSy4|g_VH?(lMeIq^481}^6W*EjXeDO^ooQup_)CjtV#U))#~WR`T6FI!fVE+B;^zBUi z`oi?_tMTeS^6Wn9;~#>3Gw1UZPBycyZlRhH@8~Y% z+a1Tg5tfe>@9*#0(G{AMPW}DmXJaM({qFMYO7!hX)y^8+)Edvo9O&oPe|%8v=91~= zv)$Xn=io2%?}^gRjqd4dySux_z#n#UJo)vKr>2z2!D86g)t;9W;nx@7+hF0?7y9?U z?d;!RTr2nVqx$!$`uC=mkSV03q_wl6=H}+5pkLZ7(Z>_EbT(@5pg%Bcz-X_w$P6+8Ba; z9Kyes($dn)!!eVCe|=i$-yFxk6|1Hg zUtUk=-yr+>$W>HC0001~rA+khsFjdM_V8tXcr5$+<>T5Rx3N;awpqWrQ2YAmwX$IA zHofks!O&CSAOsg`();9SL=!eVNZ@MPAsC|#P*Bv80zm|yB*^Bd3i%S!u?rjI zJOKazo-nIeD|C3-L6Z%8aCUj23m~4^HpZ45VaxEvu_~K_$Qevm9|XMhO6+CWAx4IM zIf8KTMp%KT!`2itP6!FXn@&04K(RrWof0sPptaJ*1D}J1qx^RI5<3hWx&j#N8G}m2 zI!;RxtTy<4j{h5ivxvx zA)XILv=fRtvjlR-1qNYYhyhguF#`-J3^08|dP~7&zcS z#;7=iK$r=SW$UB|h{j4l&>WAV4RO+QKR#SGe$)kWi oG7zBj(o8qKv?8RS69O!3JGHkUg#Z8m diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/warningmsg.gif b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/images/warningmsg.gif deleted file mode 100644 index 20bfc954fbd420ac84f74e500ab0ce63fb4c867a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 314 zcmZ?wbhEHbE0OzUk~1|4;cP`a`5#K{{R0! z$OU8p#h)yU3=BFz2m~NMF|dU@Oe^rv*(AZ#R=C4x0mJDw=cWpW?gf1b6L#|1PdzL4 z=;J0S)w9"); - }, - - loadLocaleStrings: function() { - var localeFiles = [ - 'js/dhtmllib/language/en/labels.js', - 'js/crviewer/strings_en.js' - ] - - var splitChar = '_'; // default to java's locale split character - if (this.locale.indexOf ('-') > 0) - splitChar = '-'; // must be .Net's locale split - - var lang = this.locale.split(splitChar); - - if(lang.length >= 1) { - localeFiles.push('js/dhtmllib/language/' + lang[0] + '/labels.js'); - localeFiles.push('js/crviewer/strings_' + lang[0] + '.js'); - } - - if(lang.length >= 2) { - localeFiles.push('js/dhtmllib/language/' + lang[0] + '_' + lang[1] + '/labels.js'); - localeFiles.push('js/crviewer/strings_' + lang[0] + '_' + lang[1] + '.js'); - } - - for (var i = 0; i < localeFiles.length; i++) { - this.loadJsFile(localeFiles[i]); - } - }, - - loadFiles : function() { - if(typeof(bobj.crv) == "undefined" || typeof(bobj.crv.Calendar) == "undefined") { - window["promptengine_skin"] = this.crystalreportviewerPath + "js/dhtmllib/images/skin_standard/"; - window["promptengine_style"] = this.crystalreportviewerPath + "js/crviewer/images/"; - window["promptengine_lang"] = this.locale; - this.loadLocaleStrings(); - this.loadJsResources(); - } - - } -}; diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_prompts.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_prompts.js deleted file mode 100644 index e25c293c4..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_prompts.js +++ /dev/null @@ -1,1110 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -////////////////////////////// -// FOR DEBUGGING ONLY -var debug = false; -function dumpFormFields(formName) -{ - theForm = document.forms[formName]; - for ( idx = 0; idx < theForm.elements.length; ++idx ) - alert ( theForm.elements[idx].name + " - " + theForm.elements[idx].value ); -} - -////////////////////////////// -// GLOBAL VAR -var isJava = false; // do encodeURIComponent for Java only - -var isNetscape = navigator.appName.indexOf("Netscape") != -1; - -var LEFT_ARROW_KEY = 37; -var RIGHT_ARROW_KEY = 39; -var ENTER_KEY = 13; - -var DateTimeFormatSetting = { -"datePattern":"Y-M-D", -"isTwoDigitMonth":true, -"isTwoDigitDay":true, -"dateRegex":null, -"dateTimeRegex":null -}; - -/////////////////////////////// -// functions for DateTimeFormatSetting - -function promptengine_getDatePattern() -{ - return DateTimeFormatSetting.datePattern; -} - -function promptengine_setDatePattern(pattern) -{ - DateTimeFormatSetting.datePattern = pattern; -} - -function promptengine_getIsTwoDigitMonth() -{ - return DateTimeFormatSetting.isTwoDigitMonth; -} - -function promptengine_setIsTwoDigitMonth(isTwoDigitMonth) -{ - DateTimeFormatSetting.isTwoDigitMonth = isTwoDigitMonth; -} - -function promptengine_getIsTwoDigitDay() -{ - return DateTimeFormatSetting.isTwoDigitDay; -} - -function promptengine_setIsTwoDigitDay(isTwoDigitDay) -{ - DateTimeFormatSetting.isTwoDigitDay = isTwoDigitDay; -} - -function promptengine_getDateRegex() -{ - return DateTimeFormatSetting.dateRegex; -} - -function promptengine_setDateRegex(dateRegex) -{ - DateTimeFormatSetting.dateRegex = dateRegex; -} - -function promptengine_getDateTimeRegex() -{ - return DateTimeFormatSetting.dateTineRegex; -} - -function promptengine_setDateTimeRegex(dateTineRegex) -{ - DateTimeFormatSetting.dateTineRegex = dateTineRegex; -} - -/////////////////////////////// -// properly encode prompt values -function promptengine_encodePrompt (prompt) -{ - if (isJava) - { - return encodeURIComponent(prompt); - } - else - { - return promptengine_urlEncode(prompt); - } -} - -//////////////////////////////// -// add number, currency, string from dropdown/textbox to list box -// where multiple prompt values are supported -function promptengine_addDiscreteValue ( - form, - type , - promptID) -{ - var widget, obj; - widget = obj = form[promptID + "DiscreteValue"]; - if ( obj.type && obj.type.toLowerCase() != "text" && - obj.type.toLowerCase() != "hidden" && obj.type.toLowerCase() != "password") - { - //select box not a textbox - obj = obj.options[obj.selectedIndex]; - } - if ( ! promptengine_checkValue ( obj.value, type ) ) - { - if (widget.focus && widget.type.toLowerCase() != "hidden") - widget.focus(); - return false; - } - promptValue = obj.value; - displayString = ( obj.text ) ? obj.text : obj.value; - promptEntry = new Option(displayString,promptValue,false,false); - theList = form[promptID + "ListBox"]; - theList.options[theList.length] = promptEntry; - if (widget.focus && widget.type.toLowerCase() != "hidden" && !widget.disabled) - widget.focus (); - if ( widget.select ) - widget.select (); - if ( widget.type.toLowerCase != "text" && - widget.type.toLowerCase != "hidden" && - widget.type.toLowerCase != "password") - if ( widget.selectedIndex < widget.length - 1 ) - widget.selectedIndex = widget.selectedIndex + 1; //... or move to next selection in listbox -} - -function promptengine_deselectAllItems(listbox) -{ - for (var i = 0; i < listbox.length; i++) - listbox.options[i].selected = false; -} - -function promptengine_addAvailableItem( - availableList, - index, - selectedList) -{ - for (var i = 0; i < selectedList.length; i++) - { - if (selectedList.options[i].value == availableList.options[index].value && - selectedList.options[i].text == availableList.options[index].text) - { - selectedList.options[i].selected = true; - return false; - } - } - - var promptEntry = new Option(availableList.options[index].text, availableList.options[index].value, false, true); - selectedList.options[selectedList.length] = promptEntry; - return true; -} - -//////////////////////////////// -// add number, currency, string from available list box to selected list box -// where multiple prompt values are supported -function promptengine_addValueFromPickList( - form, - type, - promptID) -{ - var AvailableList, SelectedList; - AvailableList = form[promptID + "AvailableList"]; - SelectedList = form[promptID + "ListBox"]; - - promptengine_deselectAllItems(SelectedList); - - var changed = false; - - var lastSelected = -1; - for (var i = 0; i < AvailableList.length; i++) - { - if (AvailableList.options[i].selected) - { - var added = promptengine_addAvailableItem(AvailableList, i, SelectedList); - if (added == true) - changed = true; - lastSelected = i; - } - } - - // set focus to the next item on the available list - if (lastSelected++ >= 0 && lastSelected < AvailableList.length) - { - promptengine_deselectAllItems(AvailableList); - AvailableList.options[lastSelected].selected = true; - } - - return changed; -} - -//////////////////////////////// -// add all number, currency, string from available list box to selected list box -// where multiple prompt values are supported -function promptengine_addAllValues( - form, - type, - promptID) -{ - var AvailableList, SelectedList; - AvailableList = form[promptID + "AvailableList"]; - SelectedList = form[promptID + "ListBox"]; - - promptengine_deselectAllItems(SelectedList); - - var changed = false; - for (var i = 0; i < AvailableList.length; i++) - { - var added = promptengine_addAvailableItem(AvailableList, i, SelectedList); - if (added == true) - changed = true; - } - - return changed; -} - -//////////////////////////////////// -// adds Range prompt to listbox where multiple values are supported -function promptengine_addRangeValue ( - form, - type , - promptID ) -{ - var lowerBoundPickList = form[promptID + "SelectLowerRangeValue"]; - var upperBoundPickList = form[promptID + "SelectUpperRangeValue"]; - - lowerBound = form[promptID + "LowerBound"]; - upperBound = form[promptID + "UpperBound"]; - //handle select box, not text box case - if ( lowerBound.type.toLowerCase () != "text" && - lowerBound.type.toLowerCase () != "hidden" && - lowerBound.type.toLowerCase () != "password" ) //either upper or lower, doesn't matter - { - lowerBound = lowerBound.options[lowerBound.selectedIndex]; - upperBound = upperBound.options[upperBound.selectedIndex]; - } - - lowerUnBounded = form[promptID + "NoLBoundCheck"].checked; - upperUnBounded = form[promptID + "NoUBoundCheck"].checked; - lvalue = uvalue = ""; - - if ( ! lowerUnBounded ) - { - if ( ! promptengine_checkRangeBoundValue ( lowerBound.value, type ) ) { - if ( lowerBound.focus && lowerBound.type.toLowerCase () != "hidden") - lowerBound.focus (); - return false; - } - lvalue = lowerBound.value; - } - if ( ! upperUnBounded ) - { - if ( ! promptengine_checkRangeBoundValue ( upperBound.value, type ) ) { - if ( upperBound.focus && upperBound.type.toLowerCase () != "hidden") - upperBound.focus (); - return false; - } - uvalue = upperBound.value; - } - - var ldisplay = ""; - var udisplay = ""; - - var found = false; - if (lowerBoundPickList != null && lvalue != null && lvalue.length > 0) - { - var cItems = lowerBoundPickList.length; - for (var item = 0; item < cItems; item++) - { - var value = lowerBoundPickList.options[item].value; - if (value != null && value.length > 0 && value == lvalue) - { - ldisplay = lowerBoundPickList.options[item].text; - found = true; - break; - } - } - } - if (!found) - ldisplay = (lowerBound.text && !lowerUnBounded) ? lowerBound.text : lvalue; - - found = false; - if (upperBoundPickList != null && uvalue != null && uvalue.length > 0) - { - var cItems = upperBoundPickList.length; - for (var item = 0; item < cItems; item++) - { - var value = upperBoundPickList.options[item].value; - if (value != null && value == uvalue) - { - udisplay = upperBoundPickList.options[item].text; - found = true; - break; - } - } - } - if (!found) - udisplay = (upperBound.text && !upperUnBounded) ? upperBound.text : uvalue; - - lowerChecked = form[promptID + "LowerCheck"].checked; - upperChecked = form[promptID + "UpperCheck"].checked; - - // value for showing in the list box only, no need encode here - value = ( lowerChecked && ! lowerUnBounded ) ? "[" : "("; - if ( ! lowerUnBounded ) //unbounded is empty string not quoted empty string (e.g not "_crEMPTY_") - value += (lvalue); - value += "_crRANGE_" - if ( ! upperUnBounded ) - value += (uvalue); - value += (upperChecked && ! upperUnBounded ) ? "]" : ")"; - if ( debug ) alert (value); - - display = ( lowerChecked && ! lowerUnBounded ) ? "[" : "("; - display += ldisplay; - display += " .. " - display += udisplay; - display += (upperChecked && ! upperUnBounded ) ? "]" : ")"; - - promptEntry = new Option(display,value,false,false); - theList = form[promptID + "ListBox"]; - - // search the list/select box for the new option, if the returned index is -1, i.e., no such option, add it - // otherwise, highlight that option - var idx = promptengine_findOptionInList(theList, value); - if (idx > -1) - theList.selectedIndex = idx; - else - theList.options[theList.length] = promptEntry; - - return true; -} - -//////////////////////////////////// -// search the given select object for the given option value, and returns its index. -function promptengine_findOptionInList(selectObj, optionValue) -{ - if (selectObj == null || optionValue == null || optionValue == "") - return -1; - - for (var i = 0; i < selectObj.options.length; i++) - { - if (selectObj.options[i].value == optionValue) - return i; - } - - return -1; -} - -//////////////////////////////////// -// disable check boxes / dropdowns / textboxes based on user selection on the range parameters -function promptengine_onNoBoundCheckClicked( - form, - promptID, - lowOrUpBound) -{ - if (lowOrUpBound == 0) { - if (form[promptID + "NoLBoundCheck"].checked) { - form[promptID + "NoUBoundCheck"].disabled = true; - form[promptID + "LowerCheck"].disabled = true; - form[promptID + "LowerBound"].disabled = true; - if (form[promptID + "SelectLowerRangeValue"] != null) - form[promptID + "SelectLowerRangeValue"].disabled = true; - } - else { - form[promptID + "NoUBoundCheck"].disabled = false; - form[promptID + "LowerCheck"].disabled = false; - form[promptID + "LowerBound"].disabled = false; - if (form[promptID + "SelectLowerRangeValue"] != null) - form[promptID + "SelectLowerRangeValue"].disabled = false; - } - } else if (lowOrUpBound == 1) { - if (form[promptID + "NoUBoundCheck"].checked) { - form[promptID + "NoLBoundCheck"].disabled = true; - form[promptID + "UpperCheck"].disabled = true; - form[promptID + "UpperBound"].disabled = true; - if (form[promptID + "SelectUpperRangeValue"] != null) - form[promptID + "SelectUpperRangeValue"].disabled = true; - } else { - form[promptID + "NoLBoundCheck"].disabled = false; - form[promptID + "UpperCheck"].disabled = false; - form[promptID + "UpperBound"].disabled = false; - if (form[promptID + "SelectUpperRangeValue"] != null) - form[promptID + "SelectUpperRangeValue"].disabled = false; - } - } -} - -//////////////////////////////////// -// disable text boxes / list boxes based on whether setNull is checked -function promptengine_onSetNullCheckClicked( - form, - promptID) -{ - if (form[promptID + "NULL"].checked) - { - if (form[promptID + "DiscreteValue"] != null) - form[promptID + "DiscreteValue"].disabled = true; - if (form[promptID + "SelectValue"] != null) - form[promptID + "SelectValue"].disabled = true; - } - else - { - if (form[promptID + "DiscreteValue"] != null) - form[promptID + "DiscreteValue"].disabled = false; - if (form[promptID + "SelectValue"] != null) - form[promptID + "SelectValue"].disabled = false; - } -} - -//////////////////////////////////// -// puts "select" value into text box for an editable prompt which also has defaults -function promptengine_selectValue( - form, - selectCtrl, - textCtrl) -{ - // If no selection, return unchanged. - if(form[selectCtrl].selectedIndex < 0) - return false; - - selectedOption = form[selectCtrl].options[form[selectCtrl].selectedIndex]; - if (selectedOption.value == null && form[textCtrl].value == null) - return false; - - var changed = true; - if (selectedOption.value == form[textCtrl].value) - changed = false; - - form[textCtrl].value = selectedOption.value; - return changed; -} - -function promptengine_hasValueInTextBox( - form, - textboxID) -{ - if (form[textboxID].value == null) - return false; - return true; -} - -///////////////////////////////////////// -// set cascading prompt id into value field. -function promptengine_setCascadingPID( - form, - valueID, - promptID) -{ - valueField = form[valueID]; - - curVal = valueField.value; - - if (curVal.length > 0) - curVal += "&"; - curVal += "cascadingPID" + "=" + promptID; - - if ( debug ) - alert (curVal); - - valueField.value = curVal; - return true; -} - -///////////////////////////////////////////////// -// remove selected values from multi-value prompt -function promptengine_removeValue( - form, - promptID) -{ - var lbox = form[promptID + "ListBox"]; - var changed = false; - - var lastSelected = -1; - for ( var idx = 0; idx < lbox.options.length; ) - { - if ( lbox.options[idx].selected ) - { - lbox.options[idx] = null; - changed = true; - lastSelected = idx; - } - else - idx++; - } - - if (lastSelected >= 0 && lastSelected < lbox.length) - { - // highlight the next item - promptengine_deselectAllItems(lbox); - lbox.options[lastSelected].selected = true; - } - else if (lastSelected == lbox.length && lastSelected > 0) - { - // highlight the last item - promptengine_deselectAllItems(lbox); - lbox.options[lastSelected - 1].selected = true; - } - - return changed; -} - -function promptengine_onRemoveValue( - form, - promptID) -{ - promptengine_removeValue(form, promptID); -} - -///////////////////////////////////////////////// -// remove all values from multi-value prompt -function promptengine_removeAllValues( - form, - promptID) -{ - var lbox = form[promptID + "ListBox"]; - - var changed = false; - - if (lbox.options.length > 0) - changed = true; - - for ( var idx = 0; idx < lbox.options.length; ) - { - lbox.options[idx] = null; - } - - return changed; -} - -function promptengine_onRemoveAllValues( - form, - promptID) -{ - promptengine_removeAllValues(form, promptID); -} - -///////////////////////////////////// -// update hidden value field with encoded value -function promptengine_updateValueField ( - form, - valueID, - promptID, - value) -{ - valueField = form[valueID]; - - curVal = valueField.value; - - if (curVal.length > 0) - curVal += "&"; - curVal += promptID + "=" + value; - - if ( debug ) - alert (curVal); - - valueField.value = curVal; - - return true; -} - -/////////////////////////////////////// -// reset hidden value field -function promptengine_resetValueField ( - form, - valueID) -{ - valueField = form[valueID]; - valueField.value = ""; -} - -///////////////////////////////////// -// sets prompt value into the hidden form field in proper format so that it can be submitted -function promptengine_updateDiscreteValue ( - form, - valueID, - promptID, - type, - checkValue) -{ - var value = ""; - - if (form[promptID + "NULL"] != null && - form[promptID + "NULL"].checked ) - { - value = "_crNULL_"; //NULL is a literal for, uhmm.. a NULL - } - else - { - valueField = form[promptID + "DiscreteValue"]; - - if (valueField.type.toLowerCase () != "text" && - valueField.type.toLowerCase () != "hidden" && - valueField.type.toLowerCase () != "password") - { - value = valueField.options[valueField.selectedIndex].value; - } - else - { - value = valueField.value; - } - - if ( checkValue && !promptengine_checkValue ( value, type ) ) - { - if (valueField.focus) - { - if(valueField.type.toLowerCase () != "hidden") - valueField.focus (); - else - { - var valueSelectField = form[promptID + "SelectValue"]; - if(valueSelectField && valueSelectField.focus) - valueSelectField.focus (); - } - } - - return false; - } - else - { - value = promptengine_encodePrompt(value); - } - } - - return promptengine_updateValueField(form, valueID, promptID, value); -} - -///////////////////////////////////// -// sets prompt value for a range into the hidden form field in proper format so that it can be submitted -function promptengine_updateRangeValue ( - form, - valueID, - promptID, - type, - checkValue) -{ - if (form[promptID + "NULL"] != null && - form[promptID + "NULL"].checked ) - { - value = "_crNULL_"; //NULL is a literal for, uhmm.. a NULL - } - else - { - lowerBound = form[promptID + "LowerBound"]; - upperBound = form[promptID + "UpperBound"]; - - //handle select box, not text box case - if (lowerBound.type.toLowerCase () != "text" && - lowerBound.type.toLowerCase () != "hidden" && - lowerBound.type.toLowerCase () != "password") //either upper or lower, doesn't matter - { - lowerBound = lowerBound.options[lowerBound.selectedIndex]; - upperBound = upperBound.options[upperBound.selectedIndex]; - } - lowerUnBounded = form[promptID + "NoLBoundCheck"].checked; - upperUnBounded = form[promptID + "NoUBoundCheck"].checked; - lowerChecked = form[promptID + "LowerCheck"].checked; - upperChecked = form[promptID + "UpperCheck"].checked; - uvalue = lvalue = ""; - - if ( ! lowerUnBounded ) - { - if ( checkValue && !promptengine_checkRangeBoundValue ( lowerBound.value, type ) ) { - if ( lowerBound.focus && lowerBound.type.toLowerCase () != "hidden") - lowerBound.focus(); - return false; - } - lvalue = lowerBound.value; - } - if ( ! upperUnBounded ) - { - if ( checkValue && !promptengine_checkRangeBoundValue ( upperBound.value, type ) ) { - if ( upperBound.focus && upperBound.type.toLowerCase () != "hidden") - upperBound.focus (); - return false; - } - uvalue = upperBound.value; - } - value = ( lowerChecked && ! lowerUnBounded ) ? "[" : "("; - if ( ! lowerUnBounded ) - value += promptengine_encodePrompt(lvalue); - value += "_crRANGE_" - if ( ! upperUnBounded ) - value += promptengine_encodePrompt(uvalue); - value += (upperChecked && ! upperUnBounded ) ? "]" : ")"; - } - - return promptengine_updateValueField(form, valueID, promptID, value); -} - -///////////////////////////////////// -// sets prompt value into the hidden form field in proper format so that it can be submitted -function promptengine_updateMultiValue ( - form, - valueID, - promptID, - type, - checkValue) -{ - values = form[promptID + "ListBox"].options; - value = ""; - - if (form[promptID + "NULL"] != null && - form[promptID + "NULL"].checked) - { - value = "_crNULL_"; //NULL is a literal for, uhmm.. a NULL - } - else - { - if ( values.length == 0 ) - { - value = "_crEMPTY_"; //if value is empty, set to empty string - } - else - { - for ( i = 0; i < values.length; i++ ) - { - // first value could be empty string, then chcking value.length != 0 could miss one empty string - if ( i != 0 ) - value += "_crMULT_" - value += promptengine_encodePrompt(values[i].value); - } - } - } - - //NOTE: we'll always return true as the validation is done before values are added to select box - return promptengine_updateValueField(form, valueID, promptID, value); -} - -/////////////////////////////////////// -// check and alert user about any errors based on type of prompt -var regNumber = /^(\+|-)?((\d+(\.|,|'| |\xA0)?\d*)+|(\d*(\.|,| |\xA0)?\d+)+)$/ -var regCurrency = regNumber; -var regDate = /^(D|d)(A|a)(T|t)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *\)$/ -var regDateTime = /^(D|d)(A|a)(T|t)(E|e)(T|t)(I|i)(M|m)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *, *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/ -var regTime = /^(T|t)(I|i)(M|m)(E|e) *\( *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/ -var regDateTimeHTML = /^ *\d{4} *- *(0?[1-9]|1[0-2]) *- *((0?[1-9]|[1-2]\d)|3(0|1)) * *([0-1]?\d|2[0-3]) *: *[0-5]?\d *: *[0-5]?\d *$/ -var regDateHTML = /^ *\d{4} *- *(0?[1-9]|1[0-2]) *- *((0?[1-9]|[1-2]\d)|3(0|1)) *$/ -var regTimeHTML = /^ *([0-1]?\d|2[0-3]) *: *[0-5]?\d *: *[0-5]?\d *$/ - -function promptengine_getDateSpec() -{ - var datePattern = promptengine_getDatePattern(); - datePattern = datePattern.replace("Y", L_YYYY); - datePattern = datePattern.replace("M", L_MM); - datePattern = datePattern.replace("D", L_DD); - return datePattern; -} - -function promptengine_checkValue ( - value, - type ) -{ - if (value == null) - return false; - - if (value == "_crNULL_") - return true; - - if ( type == 'n' && ! regNumber.test ( value ) ) - { - if (value.length > 0) - alert ( L_BadNumber ); - else - alert ( (typeof L_Empty) != 'undefined'? L_Empty : L_NoValue ); - - return false; - } - else if ( type == 'c' && ! regCurrency.test ( value ) ) - { - if (value.length > 0) - alert ( L_BadCurrency ); - else - alert ( (typeof L_Empty) != 'undefined'? L_Empty : L_NoValue ); - - return false; - } - else if ( type == 'd' ) - { - var regex = promptengine_getDateRegex(); - if((regex == null || !regex.test(value)) && ! regDate.test ( value ) && !regDateHTML.test( value )) - { - if (value.length > 0) - { - var badDate = L_BadDate.replace("%1", promptengine_getDateSpec()); - alert ( badDate ); - } - else - alert ( (typeof L_Empty) != 'undefined'? L_Empty : L_NoValue ); - return false; - } - } - else if ( type == "dt" ) - { - var regex = promptengine_getDateTimeRegex(); - if((regex == null || !regex.test(value)) && ! regDateTime.test ( value ) && !regDateTimeHTML.test( value )) - { - if (value.length > 0) - { - var badDateTime = L_BadDateTime.replace("%1", promptengine_getDateSpec()); - alert ( badDateTime ); - } - else - alert ( (typeof L_Empty) != 'undefined'? L_Empty : L_NoValue ); - return false; - } - } - else if ( type == 't' && ! regTime.test ( value ) && !regTimeHTML.test( value ) ) - { - if (value.length > 0) - alert ( L_BadTime ); - else - alert ( (typeof L_Empty) != 'undefined'? L_Empty : L_NoValue ); - - return false; - } - - //by default let it go... - return true; -} - -function promptengine_checkRangeBoundValue ( - value, - type ) -{ - if (value == null || value.length == 0) - { - alert ( (typeof L_Empty) != 'undefined'? L_Empty : L_NoValue ); - return false; - } - - return promptengine_checkValue(value, type); -} - -function promptengine_isSubmitEvent(evt) -{ - if (isNetscape) - { - if (evt.which == ENTER_KEY && (evt.target.type == "text" || evt.target.type == "password")) - return true; - } - else - { - if (window.event.keyCode == ENTER_KEY && (window.event.srcElement.type == "text" || window.event.srcElement.type == "password")) - return true; - } - - return false; -} - -function promptengine_isEnterKey(evt) -{ - if (isNetscape) - { - if (evt.which == ENTER_KEY && evt.target.tagName.toLowerCase() != "a") - return true; - } - else - { - if (window.event.keyCode == ENTER_KEY && window.event.srcElement.tagName.toLowerCase() != "a") - return true; - } -} - -//This function should only be called from the COM components. -//Use encodeURIComponent for Java -function promptengine_urlEncode(strToBeEncoded) -{ - var encodedString = new String(""); - for( var i = 0; i < strToBeEncoded.length; i++ ) - { - var nextChar = strToBeEncoded.charAt(i); - switch( nextChar ) - { - //Unsafe characters - case '%': - { - encodedString += "%25"; - break; - } - case '+': - { - encodedString += "%2B"; - break; - } - case ' ': - { - encodedString += "%20"; - break; - } - case '<': - { - encodedString += "%3C"; - break; - } - case '>': - { - encodedString += "%3E"; - break; - } - case '"': - { - encodedString += "%22"; - break; - } - case '\'': - { - encodedString += "%27"; - break; - } - case '#': - { - encodedString += "%23"; - break; - } - case '{': - { - encodedString += "%7B"; - break; - } - case '}': - { - encodedString += "%7D"; - break; - } - case '|': - { - encodedString += "%7C"; - break; - } - case '\\': - { - encodedString += "%5C"; - break; - } - case '^': - { - encodedString += "%5E"; - break; - } - case '~': - { - encodedString += "%7E"; - break; - } - case '`': - { - encodedString += "%60"; - break; - } - case '[': - { - encodedString += "%5B"; - break; - } - case ']': - { - encodedString += "%5D"; - break; - } - //Reserved characters - case ';': - { - encodedString += "%3B"; - break; - } - case '/': - { - encodedString += "%2F"; - break; - } - case '?': - { - encodedString += "%3F"; - break; - } - case ':': - { - encodedString += "%3A"; - break; - } - case '@': - { - encodedString += "%40"; - break; - } - case '=': - { - encodedString += "%3D"; - break; - } - case '&': - { - encodedString += "%26"; - break; - } - default: - { - encodedString += nextChar; - break; - } - } - } - - return encodedString; -} - -function promptengine_CancelRightClick(evt) -{ - if (isNetscape) - { - if (evt.target.type != "text" && evt.target.type != "textarea") - { - evt.preventDefault(); - evt.cancelBubble = true; - return true; - } - } - else - { - if (window.event.srcElement.type != "text" && window.event.srcElement.type != "textarea") - { - window.event.cancelBubble = true; - window.event.returnValue = false; - } - } -} - -function promptengine_showHidePromptByKey(fieldSetId, imgId, currentImgPath, changeImgPath, evt) -{ - var correctKey = false; - var fieldSet = document.getElementById(fieldSetId); - - if (fieldSet == null) - return; - - if (isNetscape) - { - if ( (evt.which == LEFT_ARROW_KEY && fieldSet.style.display == "") || - (evt.which == RIGHT_ARROW_KEY && fieldSet.style.display == "none") ) - correctKey = true; - } - else - { - if ( (window.event.keyCode == LEFT_ARROW_KEY && fieldSet.style.display == "") || - (window.event.keyCode == RIGHT_ARROW_KEY && fieldSet.style.display == "none") ) - correctKey = true; - } - - if (correctKey == true) - promptengine_showHidePrompt(fieldSetId, imgId, currentImgPath, changeImgPath, evt) -} - -function promptengine_showHidePrompt(fieldSetId, imgId, currentImgPath, changeImgPath, evt) -{ - var imgElem; - imgElem = document.getElementById(imgId); - - if (imgElem!= null && fieldSetId != null) - { - if (!imgElem.origImage) - imgElem.origImage = imgElem.src; - - var fieldSet = document.getElementById(fieldSetId); - if (fieldSet != null) - { - if (fieldSet.style.display == "") - fieldSet.style.display = "none"; - else - fieldSet.style.display = ""; - - if (!imgElem.changed || imgElem.changed == false) - { - imgElem.src = changeImgPath; - imgElem.changed = true; - } - else - { - imgElem.src = currentImgPath; - imgElem.changed = false; - } - } - } -} - -function promptengine_scrollTo(elt) -{ - if (!elt) return; - - var offsetTop = elt.offsetTop; - if (!offsetTop) return; - - var myOffsetParent = elt.offsetParent; - while( myOffsetParent ) - { - offsetTop += myOffsetParent.offsetTop; - myOffsetParent = myOffsetParent.offsetParent; - } - - window.scrollTo(0, offsetTop); -} - - /* Crystal Decisions Confidential Proprietary Information */ diff --git a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_prompts2.js b/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_prompts2.js deleted file mode 100644 index 0c22ba392..000000000 --- a/aspnet_client/system_web/2_0_50727/crystalreportviewers13/prompting/js/promptengine_prompts2.js +++ /dev/null @@ -1,3405 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ -var PE_VALUE_DESC_SEPARATOR = ' - '; - -if(typeof(_pe) == 'undefined') { - -_pe = new function() -{ -var o=this -o._ie=(document.all!=null)?true:false -o._dom=(document.getElementById!=null)?true:false -o._isQuirksMode = (document.compatMode != 'CSS1Compat'); -o._moz=o._dom&&!o._ie -o._appVer=navigator.appVersion.toLowerCase(); -o._mac=(o._appVer.indexOf('macintosh')>=0)||(o._appVer.indexOf('macos')>=0); -o._userAgent=navigator.userAgent?navigator.userAgent.toLowerCase():null -o._saf=o._moz&&(o._userAgent.indexOf("safari")>=0) -o._ie6=o._ie&&(o._appVer.indexOf("msie 6")>=0) - -o._root = '' -o._images= o._root + '/images/' - -// prompt section -o._prompts=new Array -o._lovBS=1000 - -o._st='s' -o._nm='n' -o._cy='c' -o._bo='b' -o._da='d' -o._tm='t' -o._dt='dt' - -_BlockWaitWidgetID = "PEBlockWidgetID" - -// dialog secion -o._theLYR=null -o._dlgResize=null -o._widgets=new Array -o.DlgBox_modals=new Array; -o.DlgBox_instances=new Array -o.DlgBox_current=null - -o._show='visible' -o._hide='hidden' -o._hand=o._ie?"hand":"pointer" - -// functions -o.init=PE_init -o.canSubmit=PE_canSubmit -o.beginBlocking=PE_beginBlocking -o.endBlocking=PE_endBlocking - -// commands -o.setLOVMsg=PE_setLOVMsg -} -} - -function PE_init(root,lovBS) -{ -var o=this -if (root && root.length > 0) -{ -if (root.charAt(root.length - 1)!='/') root += '/' -o._root = root -o._images = root + 'images/' -} -else -{ -o._root = null -o._images = null -} -if(lovBS>0) o._lovBS=lovBS -} - -function PE_canSubmit() -{ -return (this.DlgBox_current) ? false : true -} - -/* -Commands: -cmd=lov (get values from the active prompt) -ap(active prompt id) -*/ -function PE_setLOVMsg(form,vid,pid) -{ -var fl=document.getElementById(vid); -var fv=fl.value; - -if (fv.length > 0) fv += "&"; -fv += "cmd=1&ap" + "=" + pid; - -fl.value=fv -} - -var DateTimeFormatSetting = { -"datePattern":"Y-M-D", -"isTwoDigitMonth":true, -"isTwoDigitDay":true, -"dateRegex":null, -"dateTimeRegex":null -}; - -/////////////////////////////// -// functions for DateTimeFormatSetting -function promptengine_getDatePattern() -{ - return DateTimeFormatSetting.datePattern; -} - -function promptengine_setDatePattern(pattern) -{ - DateTimeFormatSetting.datePattern = pattern; -} - -function promptengine_getIsTwoDigitMonth() -{ - return DateTimeFormatSetting.isTwoDigitMonth; -} - -function promptengine_setIsTwoDigitMonth(isTwoDigitMonth) -{ - DateTimeFormatSetting.isTwoDigitMonth = isTwoDigitMonth; -} - -function promptengine_getIsTwoDigitDay() -{ - return DateTimeFormatSetting.isTwoDigitDay; -} - -function promptengine_setIsTwoDigitDay(isTwoDigitDay) -{ - DateTimeFormatSetting.isTwoDigitDay = isTwoDigitDay; -} - -function promptengine_getDateRegex() -{ - return DateTimeFormatSetting.dateRegex; -} - -function promptengine_setDateRegex(dateRegex) -{ - DateTimeFormatSetting.dateRegex = dateRegex; -} - -function promptengine_getDateTimeRegex() -{ - return DateTimeFormatSetting.dateTineRegex; -} - -function promptengine_setDateTimeRegex(dateTineRegex) -{ - DateTimeFormatSetting.dateTineRegex = dateTineRegex; -} - -//////////////////////////////////////////// -// helper functions duplicate in dhtml lib -function _convStr(s,nbsp,br) -{ -s=''+s -var ret=s.replace(/&/g,"&").replace(//g,">").replace(/"/g,""") -if (nbsp) -ret=ret.replace(/ /g," ") -if (br) -ret=ret.replace(/\n/g,"
    ") -return ret -} - -function _opt(val,txt,sel) -{ -return '' -} - -function _canScanFrames(w) -{ -var ex=true,d=null -if (_pe._moz) -{ -_oldErrHandler=window.onerror -window.onerror=localErrHandler -} -try -{ -d=w.document -ex=false -} -catch(expt) -{ -} -if (_pe._moz) -window.onerror=_oldErrHandler -return (!ex&&(d!=null)) -} - -function _restoreAllDisabledInputs(win,level) -{ -if (_pe._ie&&window._peInputStackLevel!=null) -{ -win=win?win:window -if (_canScanFrames(win)) -{ -if (level==null) -level=--window._peInputStackLevel -var b=win.document.body,arr=b?b.getElementsByTagName("SELECT"):null,len=arr?arr.length:0 -for (var i=0;i
    "}function InfoWidget_resize(B,C){var D=this;if(B!=null){D.w=B}if(C!=null){D.h=C}D.oldResize(B,C);if(D.layer){var A=D.textLayer;if(A==null){A=D.textLayer=getLayer("infozone_"+D.id)}if(A){if(D.h!=null){A.style.height=""+Math.max(0,D.h-(_ie?18:28))+"px"}}}}function newCheckWidget(A,H,F,E,I,G,D,C){var B=newWidget(A);B.text=H;B.convText=C;B.changeCB=F;B.idCheckbox="check_"+A;B.checkbox=null;B.kind="checkbox";B.name=B.idCheckbox;B.bold=E;B.imgUrl=I;B.imgW=G;B.imgH=D;B.getHTML=CheckWidget_getHTML;B.setText=CheckWidget_setText;B.parentInit=Widget_init;B.init=CheckWidget_init;B.check=CheckWidget_check;B.isChecked=CheckWidget_isChecked;B.setDisabled=CheckWidget_setDisabled;B.isDisabled=CheckWidget_isDisabled;B.uncheckOthers=CheckWidget_uncheckOthers;B.isIndeterminate=CheckWidget_isIndeterminate;B.setIndeterminate=CheckWidget_setIndeterminate;B.layerClass=("dialogzone"+(B.bold?"bold":""));B.nobr=true;return B}function CheckWidget_getHTML(){var B=this,A=B.layerClass;return'"+(B.imgUrl?'":"")+"
    "+(B.nobr?"":"")+'"+(B.nobr?"":"")+"
    "}function CheckWidget_setText(A){var B=this;B.text=A;if(B.layer){if(B.labelLyr==null){B.labelLyr=getLayer("label_"+B.id)}B.labelLyr.innerHTML=B.convText?convStr(A):A}}function CheckWidget_init(){this.parentInit();this.checkbox=getLayer(this.idCheckbox)}function CheckWidget_check(A){this.checkbox.checked=A;if(A){this.uncheckOthers()}}function CheckWidget_isChecked(){return this.checkbox.checked}function CheckWidget_changeCB(B,A){var C=getWidget(A);C.uncheckOthers();if(C.changeCB){C.changeCB(B)}}function CheckWidget_setDisabled(A){this.checkbox.disabled=A;if(_moz){this.checkbox.className=(A?"dialogzone":"")}}function CheckWidget_isDisabled(){return this.checkbox.disabled}function CheckWidget_uncheckOthers(){}function CheckWidget_isIndeterminate(){return this.checkbox.indeterminate}function CheckWidget_setIndeterminate(A){this.checkbox.indeterminate=A}function newRadioWidget(A,I,J,G,F,K,H,D,C){var B=newCheckWidget(A,J,G,F,K,H,D,C);B.kind="radio";B.name=I;if(_RadioWidget_groups[I]==null){_RadioWidget_groups[I]=new Array}B.groupInstance=_RadioWidget_groups[I];var E=B.groupInstance;B.groupIdx=E.length;E[E.length]=B;B.uncheckOthers=RadioWidget_uncheckOthers;return B}var _RadioWidget_groups=new Array;function RadioWidget_uncheckOthers(){var D=this.groupInstance,B=this.groupIdx,A=D.length;for(var C=0;C'}function TextFieldWidget_getValue(){var A=this;if(A.isHelpTxt){return""}else{return A.layer?A.layer.value:A.oldValue}}function TextFieldWidget_setValue(A){var B=this;if(B.layer){B.eraseHelpTxt();B.layer.value=""+A}else{B.oldValue=A}}function TextFieldWidget_changeCB(B,A){var C=getWidget(A);C.eraseHelpTxt();if(C.beforeChange){C.beforeChange()}if(C.changeCB){C.changeCB(B)}}function TextFieldWidget_keyPressCB(B,A){var C=getWidget(A);if(eventGetKey(B)==13){C.enterKeyPressed=true;return false}else{C.enterKeyPressed=false}return true}function TextFieldWidget_keyUpCB(B,A){var C=getWidget(A);C.eraseHelpTxt();if(eventGetKey(B)==13&&C.enterKeyPressed){if(C.beforeChange){C.beforeChange()}if(C.enterCB){if(C.enterCancelBubble){eventCancelBubble(B)}C.enterCB(B)}return false}else{if(C.keyUpCB){C.keyUpCB(B)}}C.enterKeyPressed=false;return true}function TextFieldWidget_keyDownCB(B,A){var C=getWidget(A);C.eraseHelpTxt();C.enterKeyPressed=false;if(eventGetKey(B)==13){return true}else{if(eventGetKey(B)==8){eventCancelBubble(B)}}return true}function TextFieldWidget_eraseHelpTxt(){var A=this;if(A.isHelpTxt){A.layer.value=""}A.isHelpTxt=false;A.layer.style.color="black"}function TextFieldWidget_focus(A){var B=getWidget(A);B.eraseHelpTxt();if(B.focusCB){B.focusCB()}}function TextFieldWidget_blur(A){var B=getWidget(A);if(B.beforeChange){B.beforeChange()}if(B.blurCB){B.blurCB()}}function TextFieldWidget_intValue(A){var B=parseInt(this.getValue());return isNaN(B)?A:B}function TextFieldWidget_intPosValue(A){var B=this.intValue(A);return(B<0)?A:B}function TextFieldWidget_select(){this.layer.select()}function TextFieldWidget_setHelpTxt(A){var B=this;B.helpTxt=A;if(B.layer&&(B.layer.value=="")){B.isHelpTxt=true;B.layer.value=A;B.layer.style.color="#808080"}}function newIntFieldWidget(C,G,I,F,H,B,J,D,A){var E=newTextFieldWidget(C,G,I,F,H,B,J,D);E.min=-Number.MAX_VALUE;E.max=Number.MAX_VALUE;E.customCheckCB=A;E.setMin=IntFieldWidget_setMin;E.setMax=IntFieldWidget_setMax;E.setValue=IntFieldWidget_setValue;E.beforeChange=IntFieldWidget_checkChangeCB;E.value="";return E}function IntFieldWidget_setMin(A){if(!isNaN(A)){this.min=A}}function IntFieldWidget_setMax(A){if(!isNaN(A)){this.max=A}}function IntFieldWidget_setValue(B){var C=this,A=C.layer;B=""+B;if(B==""){if(A){A.value=""}C.oldValue="";return }var D=parseInt(B);value="";if(!isNaN(D)&&(D>=C.min)&&(D<=C.max)&&((C.customCheckCB==null)||C.customCheckCB(D))){value=D;C.oldValue=value}else{if(C.oldValue){value=C.oldValue}}if(A){A.value=""+value}}function IntFieldWidget_checkChangeCB(){var A=this;A.setValue(A.layer.value)}function newFrameZoneWidget(E,A,C,B){var D=newWidget(E);D.w=(A!=null)?""+Math.max(0,A-10)+"px":null;D.h=(C!=null)?""+Math.max(0,C-10)+"px":null;D.reverse=(B!=null)?B:false;D.cont=null;D.beginHTML=FrameZoneWidget_beginHTML;D.endHTML=FrameZoneWidget_endHTML;D.oldResize=D.resize;D.resize=FrameZoneWidget_resize;return D}function FrameZoneWidget_resize(A,B){var D=this;var C=D.layer.display!="none";if(C&_moz&&!_saf){D.setDisplay(false)}D.oldResize(A,B);if(C&_moz&&!_saf){D.setDisplay(true)}}function FrameZoneWidget_beginHTML(){var A=this;return'
    '}function FrameZoneWidget_endHTML(){var A=this;return"
    "}function arrayAdd(E,G,D,B){var F=E[G],A=F.length;if((B==null)||(typeof B!="number")){B=-1}if((B<0)||(B>A)){B=A}if(B!=A){var C=F.slice(B);F.length=B+1;F[B]=D;F=F.concat(C)}else{F[B]=D}E[G]=F;return B}function arrayRemove(D,F,A){var E=D[F],C=E.length-1;if(A==null){E.length=0;D[F]=E;return -1}if((A<0)||(A>C)){return -1}if(A==C){E.length=C}else{var B=E.slice(A+1);E.length=A;E=E.concat(B)}D[F]=E;return A}function getFrame(name,par){if(par==null){par=self}var frames=par.frames,w=eval("frames."+name);if(w==null){return w}var l=frames.length;for(var i=0;i/g,">").replace(/"/g,""");if(A){B=B.replace(/ /g," ")}if(C){B=B.replace(/\n/g,"
    ")}return B}function escapeCR(B){B=""+B;var A=B.replace(/\r/g,"").replace(/\n/g,"\\n");return A}function addDblClickCB(B,A){if(B.addEventListener&&!_saf){B.addEventListener("dblclick",A,false)}else{B.ondblclick=A}}function img(E,A,C,F,B,D){B=(B?B:"");if(D==null){D=""}return""}function imgOffset(A,G,D,J,I,B,F,C,H,E){return img(_skin+"../transp.gif",G,D,E,(F?F:"")+" "+attr("id",B)+' style="float:left;'+backImgOffset(A,J,I)+(H?H:"")+'"',C)}function simpleImgOffset(A,G,D,J,I,B,F,C,H,E){if(_ie){if(J==null){J=0}if(I==null){I=0}return"
    '+img(A,null,null,(E?E:"top"),'style="margin:0px;position:relative;top:'+(-I)+"px;left:"+(-J)+'px" tabIndex="-1"',C)+"
    "}else{return imgOffset(A,G,D,J,I,B,F,C,H,E)}}function changeSimpleOffset(E,B,A,D,F){if(_ie){E=E.childNodes[0];var C=E.style;if((D!=null)&&(D!=E.src)){E.src=D}if(B!=null){C.left=""+(-B)+"px"}if(A!=null){C.top=""+(-A)+"px"}if(F!=null){E.title=F;E.alt=F}}else{changeOffset(E,B,A,D,F)}}function backImgOffset(C,B,A){return"background-image:url('"+C+"');background-position:"+(-B)+"px "+(-A)+"px;"}function changeOffset(E,B,A,D,F){var C=E.style;if(C){if((B!=null)&&(A!=null)){C.backgroundPosition=""+(-B)+"px "+(-A)+"px"}if(D){C.backgroundImage="url('"+D+"')"}}if(F){E.title=F}}function includeCSS(B,C){if(typeof (_skin)=="string"&&_skin!=""){var A="";if(C){A=_skin+"../"+B}else{A=_skin+B}A+=".css";_curDoc.write('')}}function getLayer(A){return _curDoc.getElementById(A)}function setLayerTransp(A,B){if(_ie){A.style.filter=(B==null)?"":"progid:DXImageTransform.Microsoft.Alpha( style=0,opacity="+B+")"}else{A.style.MozOpacity=(B==null)?1:B/100}}function getPos(B,A){A=A?A:null;for(var D=0,C=0;(B!=null)&&(B!=A);D+=B.offsetLeft,C+=B.offsetTop,B=B.offsetParent){}return{x:D,y:C}}function getPos2(B,A){var A=A?A:null;var D=0;var C=0;while(B.parentNode||B.offsetParent){if(B.offsetParent){D+=B.offsetLeft;C+=B.offsetTop;B=B.offsetParent}else{if(B.parentNode){if(B.style){if(B.style.left){D+=B.style.left}if(B.style.top){C+=B.style.top}}B=B.parentNode}else{break}}}if(A){relToCord=getPos2(A);D-=relToCord.x;C-=relToCord.y}return{x:D,y:C}}function getPosScrolled(C,B){B=B?B:null;if(_ie){for(var E=0,D=0;(C!=null)&&(C!=B);E+=C.offsetLeft-C.scrollLeft,D+=C.offsetTop-C.scrollTop,C=C.offsetParent){}}else{var A=C;for(var E=0,D=0;(C!=null)&&(C!=B);E+=C.offsetLeft,D+=C.offsetTop,C=C.offsetParent){}for(C=A;(C!=null)&&(C!=B);C=C.parentNode){if(C.scrollLeft!=null){E-=C.scrollLeft;D-=C.scrollTop}}}E+=getScrollX();D+=getScrollY();return{x:E,y:D}}function getWidget(B){if(B==null){return null}var A=B._widget;if(A!=null){return _widgets[A]}else{return getWidget(B.parentNode)}}function getWidgetFromID(B){if(B==null){return null}var A=getLayer(B);return getWidget(A)}function attr(A,B){return(B!=null?" "+A+'="'+B+'" ':"")}function sty(A,B){return(B!=null?A+":"+B+";":"")}function getSep(B,A){if(B==null){B=0}var C=B>0?''+getSpace(B,1)+"":"";return''+C+''+C+"
    "}function writeSep(B,A){_curDoc.write(getSep(B,A))}function getSpace(A,B){return'
    '+img(_skin+"../transp.gif",A,B)+"
    "}function writeSpace(A,B){_curDoc.write(getSpace(A,B))}function documentWidth(B){var B=B?B:_curWin;var A=Math.max(document.body.clientWidth,document.documentElement.clientWidth);A=Math.max(A,document.body.scrollWidth);return A}function documentHeight(B){var B=B?B:_curWin;var A=Math.max(document.body.clientHeight,document.documentElement.clientHeight);A=Math.max(A,document.body.scrollHeight);return A}function winWidth(B){var A;var B=B?B:_curWin;if(_ie){if(_isQuirksMode){A=B.document.body.clientWidth}else{A=B.document.documentElement.clientWidth}}else{A=B.innerWidth}return A}function winHeight(B){var B=B?B:_curWin;var A;if(_ie){if(_isQuirksMode){A=document.body.clientHeight}else{A=document.documentElement.clientHeight}}else{A=B.innerHeight}return A}function getScrollX(A){var B=0;var A=A?A:_curWin;if(typeof (A.scrollX)=="number"){B=A.scrollX}else{B=Math.max(A.document.body.scrollLeft,A.document.documentElement.scrollLeft)}return B}function getScrollY(B){var A=0;var B=B?B:_curWin;if(typeof (B.scrollY)=="number"){A=window.scrollY}else{A=Math.max(B.document.body.scrollTop,B.document.documentElement.scrollTop)}return A}function winScrollTo(A,C,B){B=B?B:_curWin;B.scrollTo(A,C)}function eventGetKey(B,A){A=A?A:_curWin;return _ie?A.event.keyCode:B.keyCode}function eventGetX(A){return _ie?_curWin.event.clientX:A.clientX?A.clientX:A.pageX}function eventGetY(A){return _ie?_curWin.event.clientY:A.clientY?A.clientY:A.pageY}function xpos(D,C,B,A){if((A==null)||(!_ie)){A=1}return((C.clientX/A)-getPos(D).x)+getScrollX()}function ypos(D,C,B,A){if((A==null)||(!_ie)){A=1}return((C.clientY/A)-getPos(D).y)+(_ie?B.body.scrollTop:0)}function absxpos(B,A){if((A==null)||(!_ie)){return B.clientX}else{return B.clientX/A}}function absypos(B,A){if((A==null)||(!_ie)){return B.clientY}else{return B.clientY/A}}function eventCancelBubble(C,B){B=B?B:_curWin;var A=_ie?B.event:C;if(A){A.cancelBubble=true;if(A.stopPropagation){A.stopPropagation()}}}function isHidden(B){if((B==null)||(B.tagName=="BODY")){return false}var A=B.style;if((A==null)||(A.visibility==_hide)||(A.display=="none")){return true}return isHidden(B.parentNode)}function opt(C,A,B){return'"}function lnk(C,D,A,F,B,E){if(D==null){D="return false"}B=B?B:"";return""+C+""}_oldErrHandler=null;function localErrHandler(){return true}function canScanFrames(A){var B=true,D=null;if(_moz){_oldErrHandler=window.onerror;window.onerror=localErrHandler}try{D=A.document;B=false}catch(C){}if(_moz){window.onerror=_oldErrHandler}return(!B&&(D!=null))}function getBGIframe(A){return''}function getDynamicBGIFrameLayer(){var A=false;if(_curWin.BGIFramePool){BGIFrames=_curWin.BGIFramePool.split(",");BGIFCount=BGIFrames.length;for(var B=0;B'}function BlockWhileWaitWidget_show(A){var B=this;if(B.layer==null){B.layer=getLayer(B.id);if(B.layer==null){targetApp(B.getPrivateHTML());B.layer=getLayer(B.id);B.css=B.layer.style}else{B.css=B.layer.style}}B.setDisplay(A)}function isTextInput(A){var B=_ie?A.srcElement:A.target;var C=false;if(B.tagName=="TEXTAREA"){C=true}if((B.tagName=="INPUT")&&((B.type.toLowerCase()=="text")||(B.type.toLowerCase()=="password"))){C=true}return C}function isTextArea(A){var B=_ie?A.srcElement:A.target;if(B.tagName=="TEXTAREA"){return true}else{return false}}function LZ(A){return(A<0||A>9?"":"0")+A}if(bobj.crv.config.isDebug){localErrHandler=null}initDom(bobj.crvUri("../dhtmllib/images/")+bobj.crv.config.skin+"/","",bobj.crv.config.lang);styleSheet();_allBOIcons=new Array;_allBOIconsMenus=new Array;_menuType_simple=0;_menuType_color=1;_menuType_border=2;function NewLabelWidget(D,C,A){var B=newWidget(D);B.text=C;B.convBlanks=A;B.getHTML=LabelWidget_getHTML;B.setDisabled=LabelWidget_setDisabled;B.dis=false;return B}function LabelWidget_setDisabled(A){var B=this;if(B.dis!=A){B.dis=A;if(B.layer){B.layer.className="iconText"+(A?"Dis":"")}}}function LabelWidget_getHTML(){var A=this;return'
    '+convStr(A.text,A.convBlanks)+"
    "}function newIconWidget(C,B,M,I,F,H,G,N,K,A,L,J,E){var D=newWidget(C);D.src=B;D.clickCB=M;D.text=I;D.alt=F;D.isTabEnabled=J;D.ariaHasPopUp=E;D.width=null;D.txtAlign="left";D.border=4;D.txtNoPadding=false;D.allowDblClick=false;if(B){D.w=(H!=null)?H:16;D.h=(G!=null)?G:16;D.dx=(N!=null)?N:0;D.dy=(K!=null)?K:0;D.disDx=(A!=null)?A:0;D.disDy=(L!=null)?L:0}else{D.w=1;D.h=16}D.dis=false;D.disp=true;D.margin=1;D.extraHTML="";D.imgLayer=null;D.txtLayer=null;D.overCB="IconWidget_overCB";D.outCB="IconWidget_outCB";D.isDisplayed=IconWidget_isDisplayed;D.setDisplay=IconWidget_setDisplay;D.getHTML=IconWidget_getHTML;D.getTxtWidth=IconWidget_getTxtWidth;D.index=_allBOIcons.length++;D.nocheckClass="iconnocheck";D.hoverClass="iconhover";D.checkClass="iconcheck";D.checkhoverClass="iconcheckhover";D.currentClass=D.nocheckClass;D.currentHoverClass=D.hoverClass;D.setClasses=IconWidget_setClasses;D.internalUpCB=null;D.internalDownCB=IconWidget_internalDownCB;D.internalUpCB=IconWidget_internalUpCB;D.isHover=false;D.changeTooltip=IconWidget_changeTooltip;D.changeText=IconWidget_changeText;D.changeImg=IconWidget_changeImg;D.setDisabled=IconWidget_setDisabled;D.isDisabled=IconWidget_isDisabled;D.acceptClick=IconWidget_acceptClick;_allBOIcons[D.index]=D;D.outEnable=true;D.setCrs=IconWidget_setCrs;D.oldRes=D.resize;D.resize=IconWidget_resize;D.iconOldInit=D.init;D.init=IconWidget_init;return D}function newIconMenuWidget(C,B,O,K,F,J,G,P,L,A,N,E,I,H){var D=newWidget(C);if(typeof (H)=="undefined"){H=E?_menuType_color:_menuType_simple}D.menuItemType=E?_isColor:_isNotColor;var M=_openMenu.replace("{0}",(K?K:(F?F:"")));D.icon=newIconWidget("iconMenu_icon_"+C,B,IconMenuWidget_iconClickCB,K,F,J,G,P,L,A,N,false);D.arrow=newIconWidget("iconMenu_arrow_"+C,_skin+"menus.gif",IconMenuWidget_arrowClickCB,null,M,7,16,0,81,0,97,true);switch(H){case _menuType_color:D.menu=newMenuColorWidget("iconMenu_menu_"+C,IconMenuWidget_hideCB);break;case _menuType_border:D.menu=newMenuBordersWidget("iconMenu_menu_"+C,IconMenuWidget_hideCB,I,IconBordersMenuWidget_internalClickCB);break;default:case _menuType_simple:D.menu=newMenuWidget("iconMenu_menu_"+C,IconMenuWidget_hideCB,I);break}D.icon.par=D;D.arrow.par=D;D.menu.parIcon=D;D.icon.margin=0;D.arrow.margin=0;D.icon.overCB="IconWidget_none";D.icon.outCB="IconWidget_none";D.arrow.overCB="IconWidget_none";D.arrow.outCB="IconWidget_none";D.margin=1;D.spc=0;D.getHTML=IconMenuWidget_getHTML;D.clickCB=O;D.getMenu=IconMenuWidget_getMenu;D.menIcnOldInit=D.init;D.init=IconMenuWidget_init;D.removeAllMenuItems=IconMenuWidget_removeAllMenuItems;D.index=_allBOIconsMenus.length++;_allBOIconsMenus[D.index]=D;D.setDisabled=IconMenuWidget_setDisabled;D.isDisabled=IconMenuWidget_isDisabled;D.disableMenu=IconMenuWidget_disableMenu;D.changeText=IconMenuWidget_changeText;D.imwpResize=D.resize;D.resize=IconMenuWidget_resize;D.focus=IconMenuWidget_focus;D.changeArrowTooltip=IconMenuWidget_changeArrowTooltip;D.disp=true;D.isDisplayed=IconWidget_isDisplayed;D.setDisplay=IconWidget_setDisplay;return D}function IconMenuWidget_removeAllMenuItems(){this.menu.removeAll();this.menu.resetItemCount()}function IconMenuWidget_changeText(A){this.icon.changeText(A)}function IconMenuWidget_changeArrowTooltip(A){this.arrow.changeTooltip(A,false)}function IconMenuWidget_resize(A,B){var D=this;if(A!=null){A=Math.max(0,A-2*D.margin)}var C=D.layer.display!="none";if(C&_moz&&!_saf){D.setDisplay(false)}D.imwpResize(A,B);if(A!=null){D.icon.resize(Math.max(0,A-13-D.spc))}if(C&_moz&&!_saf){D.setDisplay(true)}}function IconMenuWidget_setDisabled(A){var B=this;if(A){if(B.menu.isShown()){B.menu.show(false)}IconMenuWidgetOutCB(B.index)}B.icon.setDisabled(A);B.arrow.setDisabled(A)}function IconMenuWidget_isDisabled(){return(this.icon.dis==true)}function IconMenuWidget_internalCB(){var C=this,A=null;if(C.id!=null){A=(C.menuItemType!=_isLastUsedColor)?C.id.slice(6):C.color}var B=C.par.parIcon;B.oldColor=B.curColor;B.curColor=A;if(B.curColor!=null){B.showSample()}if(B.clickColor){B.clickColor()}}function IconMenuWidget_focus(){var A=this;A.arrow.focus()}function IconMenuWidget_disableMenu(A){var B=this;B.arrow.setDisabled(A);B.menu.setDisabled(A)}function IconMenuWidget_getMenu(){return this.menu}function IconWidget_none(){}function IconMenuWidget_init(){var B=this;B.menIcnOldInit();B.icon.init();B.arrow.init();B.menu.init();var A=B.layer;A.onmouseover=IconMenuWidget_OverCB;A.onmouseout=IconMenuWidget_OutCB}function IconMenuWidget_getHTML(){var B=this,A=B.disp?"":"display:none;";return'
    '+B.icon.getHTML()+''+B.arrow.getHTML()+"
    "}function IconMenuWidget_OverCB(){IconMenuWidgetOverCB(getWidget(this).index);return true}function IconMenuWidget_OutCB(){IconMenuWidgetOutCB(getWidget(this).index)}function IconMenuWidgetOverCB(A){o=_allBOIconsMenus[A];IconWidget_overCB(o.icon.index);IconWidget_overCB(o.arrow.index)}function IconMenuWidgetOutCB(A){o=_allBOIconsMenus[A];if(!o.menu.isShown()){IconWidget_outCB(o.icon.index);IconWidget_outCB(o.arrow.index)}else{IconWidget_overCB(o.icon.index);IconWidget_overCB(o.arrow.index)}}function IconMenuWidget_iconClickCB(){var C=this.par;if(C.clickCB==null){var B=C.layer;var A=getPos2(B);C.menu.show(!C.menu.isShown(),A.x,A.y+C.getHeight()+1,null,null,C);IconMenuWidgetOverCB(C.index)}else{C.clickCB()}}function IconMenuWidget_arrowClickCB(){var C=this.par,B=C.layer;var A=getPos2(B);C.menu.show(!C.menu.isShown(),A.x,A.y+C.getHeight()+1,null,null,C);IconMenuWidgetOverCB(C.index)}function IconMenuWidget_hideCB(){var A=this.parIcon;if(A.arrow){A.arrow.focus()}IconMenuWidgetOutCB(A.index)}function newSingleIconMenuWidget(C,B,N,J,F,I,G,O,K,A,M,E,H){var L=_openMenu.replace("{0}",(J?J:(F?F:"")));var D=newIconWidget(C,B,SingleIconMenuWidget_clickCB,null,L,I,G,O,K,A,M,true);D.icon=newIconWidget("singleIconMenu_icon_"+C,B,null,J,null,I,G,O,K,A,M,false);D.arrow=newIconWidget("singleIcon_arrow_"+C,_skin+"menus.gif",SingleIconMenuWidget_iconClickCB,null,L,7,16,0,81,0,97,false);D.menu=newMenuWidget("singleIconMenu_menu_"+C,SingleIconMenuWidget_hideCB,H);D.icon.par=D;D.arrow.par=D;D.menu.parIcon=D;D.icon.margin=0;D.arrow.margin=0;D.icon.overCB="IconWidget_none";D.icon.outCB="IconWidget_none";D.arrow.overCB="IconWidget_none";D.arrow.outCB="IconWidget_none";D.margin=1;D.spc=0;D.getHTML=SingleIconMenuWidget_getHTML;D.getMenu=IconMenuWidget_getMenu;D.menIcnOldInit=D.init;D.init=SingleIconMenuWidget_init;D.removeAllMenuItems=IconMenuWidget_removeAllMenuItems;D.index=_allBOIconsMenus.length++;_allBOIconsMenus[D.index]=D;D.setDisabled=IconMenuWidget_setDisabled;D.isDisabled=IconMenuWidget_isDisabled;D.disableMenu=IconMenuWidget_disableMenu;D.changeText=IconMenuWidget_changeText;D.imwpResize=D.resize;D.resize=IconMenuWidget_resize;D.changeArrowTooltip=IconMenuWidget_changeArrowTooltip;D.disp=true;D.isDisplayed=IconWidget_isDisplayed;D.setDisplay=IconWidget_setDisplay;return D}function SingleIconMenuWidget_init(){var B=this;B.menIcnOldInit();B.menu.init();var A=B.layer;A.onmouseover=SingleIconMenuWidget_OverCB;A.onmouseout=SingleIconMenuWidget_OutCB}function SingleIconMenuWidget_getHTML(){var B=this,A=B.disp?"":"display:none;";return'
    '+B.icon.getHTML()+''+B.arrow.getHTML()+'
    '}function SingleIconMenuWidget_OverCB(){SingleIconMenuWidgetOverCB(getWidget(this).index);return true}function SingleIconMenuWidget_OutCB(){SingleIconMenuWidgetOutCB(getWidget(this).index)}function SingleIconMenuWidgetOverCB(A){o=_allBOIconsMenus[A];IconWidget_overCB(o.index)}function SingleIconMenuWidgetOutCB(A){o=_allBOIconsMenus[A];if(!o.menu.isShown()){IconWidget_outCB(o.index)}else{IconWidget_overCB(o.index)}}function SingleIconMenuWidget_clickCB(){var C=this,B=C.layer;var A=getPos2(B);C.menu.show(!C.menu.isShown(),A.x,A.y+C.getHeight()+1,null,null,C);SingleIconMenuWidgetOverCB(C.index)}function SingleIconMenuWidget_iconClickCB(){}function SingleIconMenuWidget_hideCB(){var A=this.parIcon;A.focus();SingleIconMenuWidgetOutCB(A.index)}function newIconCheckWidget(C,B,K,H,E,G,F,L,I,A,J){var D=newIconWidget(C,B,K,H,E,G,F,L,I,A,J);D.checked=false;D.internalUpCB=IconCheckWidget_internalUpCB;D.internalDownCB=IconCheckWidget_internalDownCB;D.check=IconCheckWidget_check;D.isChecked=IconCheckWidget_isChecked;D.oldInit=D.init;D.init=IconCheckWidget_init;D.isRadio=false;return D}function newPaletteContainerWidget(D,A,B){var C=newWidget(D);C.beginHTML=PaletteContainerWidget_beginHTML;C.endHTML=PaletteContainerWidget_endHTML;C.add=PaletteContainerWidget_add;C.palettes=new Array;C.contextMenu=A;C.margin=(B!=null)?B:4;return C}function newPaletteWidget(C,A){var B=newWidget(C);B.getHTML=PaletteWidget_getHTML;B.add=PaletteWidget_add;B.disableChildren=PaletteWidget_disableChildren;B.items=new Array;B.oldInit=B.init;B.init=PaletteWidget_init;B.beginRightZone=PaletteWidget_beginRightZone;B.height=A;B.rightZoneIndex=-1;B.sepCount=0;B.vertPadding=4;B.isLeftTableFixed=false;return B}function newPaletteVerticalSepWidget(B){var A=newWidget(B);A.getHTML=PaletteVerticalSepWidget_getHTML;A.isSeparator=true;return A}function PaletteVerticalSepWidget_getHTML(){return img(_skin+"iconsep.gif",6,22,null,' id="'+this.id+'" ')}function getPaletteSep(){return img(_skin+"iconsep.gif",6,22)}function IconRadioWidget_uncheckOthers(){var D=this.groupInstance,B=this.groupIdx,A=D.length;for(var C=0;C'+getSpace(1,2)+""}function PaletteContainerWidget_beginHTML(){var B=this;var A=B.contextMenu?('oncontextmenu="'+_codeWinName+'.PaletteContainerWidget_contextMenu(this,event);return false"'):"";return"
    '}_delayedMenu=null;function PaletteContainerWidget_contextMenu(B,A){if(_ie){A=_curWin.event}_delayedMenu=getWidget(B).contextMenu;setTimeout("_delayedMenu.par=null;_delayedMenu.show(true,"+absxpos(A)+","+absypos(A)+")",1)}function PaletteContainerWidget_endHTML(){return"
    "}function PaletteContainerWidget_add(A){this.palettes[this.palettes.length]=A;return A}function PaletteWidget_getHTML(){var G=this,C=G.items,B=C.length,A=new Array;j=0;A[j++]='';A[j++]='
    ';var F=false;for(var D=0;D
    ';F=true}var E=C[D];A[j++]=""}if(!F){A[j++]='
    "+E.getHTML()+"
    '}A[j++]="
    ";return A.join("")}function PaletteWidget_add(A){if(A==null){A=newPaletteVerticalSepWidget(this.id+"_palettesep_"+(this.sepCount++))}this.items[this.items.length]=A;return A}function PaletteWidget_disableChildren(B){var A=this.items;for(var C in A){var D=A[C];if(D&&(D.isSep!=true)){D.setDisabled(B)}}}function PaletteWidget_init(){this.oldInit();var A=this.items;for(var B in A){var C=A[B];if(C){C.init()}}}function IconWidget_isDisplayed(){return this.disp}function IconWidget_setDisplay(C){var B=this;if(B.css){var A=C?"block":"none";if(B.css.display!=A){B.css.display=A}}B.disp=C}function IconWidget_getTxtWidth(){var B=this,A=B.width;if(A!=null){A=A-(B.margin*2);A=A-(B.src?B.w+B.border:1);A=A-(B.txtNoPadding?0:((B.src?4:2)+2));if(_ie){A-=2}else{A-=2}return Math.max(0,A)}else{return -1}}function IconWidget_init(){var D=this,B=false;D.iconOldInit();var A=D.layer;A.tabIndex=D.dis?-1:0;A.title=(D.alt?D.alt:(D.text?D.text:""));if(D.clickCB){A.onclick=IconWidget_upCB;A.onmousedown=IconWidget_downCB;if(D.allowDblClick&&(_ie||_saf)){B=true;addDblClickCB(A,IconWidget_upCB)}A.onkeydown=IconWidget_keydownCB;A.onmouseover=IconWidget_realOverCB;A.onmouseout=IconWidget_realOutCB}if(!B){addDblClickCB(A,IconWidget_retFalse)}A.onselectstart=IconWidget_retFalse;var C=D.disp?"block":"none";if(D.css.display!=C){D.css.display=C}}function IconWidget_getHTML(){var E=this,B=E.src?'
    '+simpleImgOffset(E.src,E.w,E.h,E.dis?E.disDx:E.dx,E.dis?E.disDy:E.dy,"IconImg_"+E.id,null,E.alt,"margin:2px;")+E.extraHTML+"
    ":'
    ';var A='style="white-space:nowrap;',D=E.getTxtWidth();if(D>=0){A+="text-overflow:ellipsis;overflow:hidden;width:"+D+"px"}A+='"';var C=E.disp?"":"display:none;";return'"+(E.text?'":"")+"
    '+((E.clickCB&&_ie)?lnk(B,null,null,null,' tabIndex="-1"'):B)+"
    "+convStr(E.text)+"
    "}function IconWidget_realOutCB(){var o=getWidget(this);eval(o.outCB+"("+o.index+")")}function IconWidget_realOverCB(){var o=getWidget(this);eval(o.overCB+"("+o.index+")");return true}function IconWidget_retFalse(){return false}function IconWidget_resize(A,B){var D=this;if(D.layer){D.oldRes(A,B)}if(D.txtLayer==null){D.txtLayer=getLayer("IconImg_Txt_"+D.id)}if(A!=null){D.width=A;var C=D.getTxtWidth();if(D.txtLayer&&(C>=0)){D.txtLayer.style.width=""+C+"px"}}if(B!=null){D.h=B?(B-D.border):D.h;if(D.txtLayer&&(D.h>=0)){D.txtLayer.style.height=""+D.h+"px"}}}function IconWidget_changeTooltip(B,A){var C=this;if(B==null){return }if(!A){C.alt=B}if(C.layer){C.layer.title=B}if(C.imgLayer==null){C.imgLayer=getLayer("IconImg_"+this.id)}if(C.imgLayer){changeSimpleOffset(C.imgLayer,null,null,null,B)}}function IconWidget_changeText(A){var B=this;B.text=A;if(B.layer){if(B.txtLayer==null){B.txtLayer=getLayer("IconImg_Txt_"+B.id)}B.txtLayer.innerHTML=convStr(A)}}function IconWidget_changeImg(B,A,D){var C=this;if(D){C.src=D}if(B!=null){C.dx=B}if(A!=null){C.dy=A}if(C.layer&&(C.imgLayer==null)){C.imgLayer=getLayer("IconImg_"+this.id)}if(C.imgLayer){changeSimpleOffset(C.imgLayer,B,A,C.src)}}function IconWidget_internalDownCB(){if(!this.dis){this.currentHoverClass=this.checkhoverClass}}function IconWidget_internalUpCB(){if(!this.dis){this.currentHoverClass=this.hoverClass}}function IconWidget_setCrs(){var B=this,A=(B.clickCB?(!B.acceptClick()?"default":_hand):"default");B.css.cursor=A;if(B.src){if(B.imgLayer==null){B.imgLayer=getLayer("IconImg_"+B.id)}if(B.imgLayer){B.imgLayer.style.cursor=A}}}function IconWidget_downCB(){var A=getWidget(this);if((A.layer)&&(A.acceptClick())){A.internalDownCB();A.layer.className=A.currentHoverClass;if((A.par!=null&&A.par.menu==_globMenuCaptured)||(A!=null&&A.menu&&A.menu==_globMenuCaptured)){MenuWidget_releaseGlobMenuCaptured()}}if(_ie||_saf){return false}}function IconWidget_upCB(){var A=getWidget(this);if((A.layer)&&(A.acceptClick())){A.internalUpCB();A.layer.className=A.isHover?A.currentHoverClass:A.currentClass;A.setCrs();delayedClickCB(A.index)}}function IconWidget_keydownCB(A){if(eventGetKey(A)==13||eventGetKey(A)==32){var B=getWidget(this);if((B.layer)&&(B.acceptClick())){B.internalUpCB();B.layer.className=B.isHover?B.currentHoverClass:B.currentClass;B.setCrs();setTimeout("delayedClickCB("+B.index+")",1)}eventCancelBubble(A)}}function delayedClickCB(A){var B=_allBOIcons[A];if(B.beforeClickCB){B.beforeClickCB()}if(B.clickCB){B.clickCB()}}function IconWidget_overCB(A){var B=_allBOIcons[A];B.setCrs();if((B.layer)&&(!B.dis)&&!(B.par&&B.par.checked)){B.isHover=true;B.layer.className=B.currentHoverClass}}function IconWidget_outCB(A){var B=_allBOIcons[A];if((B.layer)&&(B.outEnable)&&!(B.par&&B.par.checked)){B.isHover=false;B.layer.className=B.currentClass}}function IconCheckWidget_init(){var A=this;A.oldInit();A.check(A.checked,true)}function IconCheckWidget_internalDownCB(){var A=this;if(A.acceptClick()){A.currentHoverClass=A.checked?A.hoverClass:A.checkhoverClass}}function IconCheckWidget_internalUpCB(){var A=this;if(A.acceptClick()){A.checked=A.isRadio?true:!A.checked;A.currentClass=A.checked?this.checkClass:this.nocheckClass;A.currentHoverClass=A.checked?this.checkhoverClass:this.hoverClass}}function IconCheckWidget_check(A,B){var C=this;if((C.checked!=A)||B){C.checked=A;if(C.layer){C.layer.className=C.currentClass=C.checked?this.checkClass:this.nocheckClass;C.currentHoverClass=C.checked?this.checkhoverClass:this.hoverClass}}if(C.checked&&C.beforeClickCB){if(C.layer){C.beforeClickCB()}}}function IconCheckWidget_isChecked(){return this.checked}function IconWidget_setClasses(B,A,C,D){var E=this;E.nocheckClass=B;E.checkClass=A;E.hoverClass=C;E.checkhoverClass=D;E.currentClass=E.nocheckClass;E.currentHoverClass=E.hoverClass}function IconWidget_setDisabled(A){var B=this;if(B.dis!=A){B.dis=A;if(B.layer){B.setCrs();if(B.src){if(B.imgLayer==null){B.imgLayer=getLayer("IconImg_"+this.id)}changeSimpleOffset(B.imgLayer,A?B.disDx:B.dx,A?B.disDy:B.dy)}if(B.text){if(B.txtLayer==null){B.txtLayer=getLayer("IconImg_Txt_"+B.id)}B.txtLayer.className="iconText"+(A?"Dis":"");if(A){B.layer.className=B.currentClass}}if(B.isTabEnabled){B.layer.tabIndex=B.dis?-1:0}}}}function IconWidget_isDisabled(){return this.dis?this.dis:false}function IconWidget_acceptClick(){var A=this;if(A.isDisabled()){return false}if(A.isRadio&&A.checked){return false}return true}function newCustomCombo(D,H,B,E,M,C,I,G,L,J,A,K){var F=newIconMenuWidget(D,C,null," ",M,I,G,L,J,A,K);F.icon.width=E!=null?Math.max(0,E-13):50-(2*F.margin);F.icon.setClasses("combonocheck","combocheck","combohover","combocheck");F.icon.clip;F.arrow.setClasses("iconnocheck","combobtnhover","combobtnhover","combobtnhover");F.spc=0;F.margin=2;if(C==null){F.icon.h=12;F.arrow.h=12;F.arrow.dy+=2;F.arrow.disDy+=2}F.counter=0;F.changeCB=H;F.selectedItem=null;F.setOldDid=F.setDisabled;F.disabled=false;F.ccomboOldInit=F.init;F.init=CustomCombo_init;F.add=CustomCombo_add;F.addSeparator=CustomCombo_addSeparator;F.addMenuItem=CustomCombo_addMenuItem;F.select=CustomCombo_select;F.getSelection=CustomCombo_getSelection;F.valueShow=CustomCombo_valueShow;F.valueSelect=CustomCombo_valueSelect;F.setUndefined=CustomCombo_setUndefined;F.setDisabled=CustomCombo_setDisabled;F.getVisibleItemsCount=CustomCombo_getVisibleItemsCount;F.selectItem=CustomCombo_selectItem;F.getItemByIndex=CustomCombo_getItemByIndex;F.getItemIndex=CustomCombo_getItemIndex;F.setItemDisabled=CustomCombo_setItemDisabled;return F}function CustomCombo_init(){var B=this;B.ccomboOldInit();if(B.disabled){B.icon.changeTooltip(B.icon.alt?B.icon.alt:"",true)}var A=_openMenu.replace("{0}",(B.icon.alt?B.icon.alt:""));B.arrow.changeTooltip(A)}function CustomCombo_add(B,E,A){var D=this;var C=D.menu.addCheck(D.id+"_it_"+(D.counter++),B,CustomCombo_internalCB);C.val=""+E;C.parCombo=D;C.isComboVal=true;if((D.selectedItem==null)||A){D.selectItem(C)}}function CustomCombo_addSeparator(){this.menu.addSeparator()}function CustomCombo_addMenuItem(B,F,C,E,I,G,D,A,H){this.menu.add(B,F,C,E,I,G,D,A,H)}function CustomCombo_internalCB(){var A=this,B=A.parCombo;B.selectItem(A);if(B.changeCB){B.changeCB()}}function CustomCombo_getItemByIndex(A){var B=this.menu.items;return((A>=0)&&(A'}function ComboTextFieldWidget_setDisabled(B){var A=this;A.oldSetDisabled(B)}function newTextComboWidget(A,H,J,G,E,B,F,I){var C=newWidget(A);C.text=newComboTextFieldWidget((I?I:"text_"+A),TextComboWidget_checkCB,H,null,TextComboWidget_enterCB,true,J,G-13);var D=_openMenu.replace("{0}",(J?J:""));C.arrow=newIconWidget("arrow_"+A,_skin+"menus.gif",TextComboWidget_arrowClickCB,null,D,7,16,0,81,0,97,true,true);C.menu=newMenuWidget("menu_"+A,TextComboWidget_hideCB,F);C.arrow.setClasses("iconnocheck","combobtnhover","combobtnhover","combobtnhover");C.text.par=C;C.arrow.par=C;C.menu.parIcon=C;C.arrow.margin=0;C.arrow.overCB="IconWidget_none";C.arrow.outCB="IconWidget_none";C.margin=0;C.spc=0;C.counter=0;C.arrow.h=12;C.arrow.dy+=2;C.arrow.disDy+=2;C.index=_allBOIconsMenus.length++;_allBOIconsMenus[C.index]=C;C.menIcnOldInit=C.init;C.init=TextComboWidget_init;C.imwpResize=C.resize;C.resize=TextComboWidget_resize;C.getHTML=TextComboWidget_getHTML;C.setDisabled=TextComboWidget_setDisabled;C.isDisabled=TextComboWidget_isDisabled;C.add=TextComboWidget_add;C.addSeparator=TextComboWidget_addSeparator;C.addMenuItem=TextComboWidget_addMenuItem;C.select=TextComboWidget_select;C.getSelection=TextComboWidget_getSelection;C.valueShow=TextComboWidget_valueShow;C.valueSelect=TextComboWidget_valueSelect;C.setUndefined=TextComboWidget_setUndefined;C.setContentEditable=TextComboWidget_setContentEditable;C.isContentEditable=TextComboWidget_isContentEditable;C.changeCB=E;C.checkCB=B;C.clickCB=TextComboWidget_clickCB;C.selectItem=TextComboWidget_selectItem;C.getItemByIndex=TextComboWidget_getItemByIndex;C.getItemIndex=TextComboWidget_getItemIndex;C.setItemDisabled=TextComboWidget_setItemDisabled;C.text.enterCancelBubble=false;return C}function TextComboWidget_init(){var B=this;B.menIcnOldInit();B.text.init();B.arrow.init();B.menu.init();var A=B.layer;A.onmouseover=TextCombo_OverCB;A.onmouseout=TextCombo_OutCB}function TextComboWidget_getHTML(){var B=this,A="";A+='';A+="";A+='";A+="
    "+B.text.getHTML()+"'+B.arrow.getHTML()+"
    ";return A}function TextComboWidget_resize(A,B){var D=this;if(A!=null){A=Math.max(0,A-2*D.margin)}var C=D.layer.display!="none";if(C&_moz&&!_saf){D.setDisplay(false)}D.imwpResize(A,B);if(C&_moz&&!_saf){D.setDisplay(true)}}function TextComboWidget_add(B,E,A){var D=this;var C=D.menu.addCheck(D.id+"_it_"+(D.counter++),B,TextComboWidget_internalCB);C.val=""+E;C.parCombo=D;C.isComboVal=true;if((D.selectedItem==null)||A){D.selectItem(C)}}function TextComboWidget_addSeparator(){this.menu.addSeparator()}function TextComboWidget_addMenuItem(B,F,C,E,I,G,D,A,H){this.menu.add(B,F,C,E,I,G,D,A,H)}function TextComboWidget_setDisabled(B){var A=this;A.text.setDisabled(B);A.arrow.setDisabled(B);A.menu.setDisabled(B);A.disabled=B}function TextComboWidget_isDisabled(){var A=this;return A.disabled}function TextComboWidget_select(A){var C=this,B=C.getItemByIndex(A);if(B){C.selectItem(B)}}function TextComboWidget_setItemDisabled(A,B){var D=this,C=D.getItemByIndex(A);if(C){C.setDisabled(B)}}function TextComboWidget_getSelection(){var C=this,B=C.selectedItem;var A=C.text.getValue();if(B){return{index:C.getItemIndex(B),value:B.val}}else{return{index:-1,value:A}}}function TextComboWidget_valueSelect(C){C=""+C;var F=this,B=F.menu.items,A=B.length;for(var D=0;D=0)&&(A=0)&&(B';B[C++]='";B[C++]="";if(E.needsRightPart){if(E.accel!=null){B[C++]='"}else{B[C++]='"}}else{B[C++]='"}B[C++]="";return B.join("")}else{return'"}}function MenuItem_dynHTML(){var A=this;if(A.par.layer==null){return }var F=A.par.layer.childNodes[0],I=F.insertRow(A.menuIndex),J=I.style;I.onmousedown=_minb;I.onmouseup=_minb;I.id=(A.par.id+"_item_"+A.id);if((A.icon!=null)||(A.text!=null)){var D=I.insertCell(0),C=I.insertCell(1),B=I.insertCell(2),H=D.style,G=C.style,E=B.style;I.onclick=MenuItem_clickCallTrue;I.oncontextmenu=MenuItem_clickCallFalse;I.onmouseover=MenuItem_invertCall1;I.onmouseout=MenuItem_invertCall0;J.height=""+_mitemH+"px";J.width="24px";J.cursor=(A.disabled?"default":_hand);D.id=(A.par.id+"_item_td_"+A.id);H.width="23px";H.height=""+_mitemH+"px";D.innerHTML=A.getHTMLPart(0);D.align="center";D.className=A.leftZoneClass;if(A.centered){C.align="center"}G.height=""+_mitemH+"px";C.id=(A.par.id+"_text_"+A.id);C.className="menuTextPart"+(A.disabled?"Disabled":"");C.innerHTML=A.getHTMLPart(1);if(A.accel){B.className="menuTextPart"+(A.disabled?"Disabled":"");B.align="right";E.height=""+_mitemH+"px";B.innerHTML=A.getHTMLPart(4)}else{B.className="menuRightPart";B.align="right";E.width="40px";E.height=""+_mitemH+"px";B.innerHTML=A.getHTMLPart(2)}A.init()}else{I.onclick=_minb;I.style.height="3px";var D=I.insertCell(0),C=I.insertCell(1),H=D.style,G=C.style;D.className=A.leftZoneClass;H.width="24px";H.height="3px";H.border="0px";C.colSpan="2";G.paddingLeft="5px";G.paddingRight="5px";C.innerHTML=A.getHTMLPart(3)}}function MenuItem_isChecked(){return this.checked}function MenuItem_setText(A){var B=this,C=B.par.id;B.text=A;if(B.textLayer){B.textLayer.innerHTML=B.getHTMLPart(1);B.textOnlyLayer=getLayer(C+"_span_text_"+B.id)}}function MenuItem_setAccelerator(B,A){var C=this,D=C.par.id;C.accel=((A!=null)?_modifiers[A]:"")+B;if(C.accelLayer){C.accelLayer.innerHTML=C.getHTMLPart(4)}}function MenuItem_setIcon(B,A,E,D,C){var F=this;F.url=C?C:F.url;F.dx=(B!=null)?B:F.dx;F.dy=(A!=null)?A:F.dy;F.disDx=(E!=null)?E:F.disDx;F.disDy=(D!=null)?D:F.disDy;if(F.icon&&F.iconLayer){changeSimpleOffset(F.iconLayer,F.disabled?F.disDx:F.dx,F.disabled?F.disDy:F.dy,F.url)}}function MenuItem_show(A){var B=this;B.isShown=A;if(B.layer!=null){B.layer.style.display=A?"":"none"}}function _micl(B,C){eventCancelBubble(C);var A=B._boIndex,D=_menusItems[A];D.layer=B;if(!D.disabled){if(D.sub){D.par.nextSub=D.menuIndex;MenuItem_callShowSub(A)}else{D.par.show(false,0,0,true);if(D.isCheck){if(D.par.uncheckAll){D.par.uncheckAll()}D.check(!D.checked)}if(D.par.container&&D.par.container.updateButton){D.par.container.updateButton(A)}_mii(B,0,A);D.par.nextSub=-1;if(D.cb){setTimeout("MenuItem_delayedClick("+A+")",1)}}}}function _mikd(E,G){while(E&&!E._boIndex){E=E.parentNode}if(!E||!E._boIndex){return }var B=E._boIndex,H=_menusItems[B];H.layer=E;var D=eventGetKey(G);switch(D){case 32:case 13:_micl(E,G);break;case 107:case 39:if(!H.disabled&&H.sub){_micl(E,G)}break;case 109:case 37:break;case 40:var C=H.par.items,A=C.length;for(var F=H.menuIndex+1;F=0;F--){if(C[F].isShown&&!C[F].isSeparator){C[F].focus();break}}break}}function MenuItem_callShowSub(A,B){var C=_menusItems[A];if(B){setTimeout("MenuItem_delayedShowSub("+A+")",500)}else{MenuItem_delayedShowSub(A)}}function MenuItem_delayedShowSub(A){var B=_menusItems[A];B.par.showSub()}function _minb(A){eventCancelBubble(A)}function MenuItem_delayedClick(A){var B=_menusItems[A];if(B.cb){B.cb()}}function MenuItem_clickCallTrue(A){_micl(this,A);return true}function MenuItem_clickCallFalse(A){_micl(this,A);return false}function MenuItem_invertCall0(A){_mii(this,0)}function MenuItem_invertCall1(A){_mii(this,1)}function MenuItem_focus(){var A=this;if(isLayerDisplayed(A.layer)&&A.textOnlyLayer&&A.textOnlyLayer.focus){A.textOnlyLayer.focus()}}function MenuItem_updateTooltip(){var B=this;if(B.textOnlyLayer&&!B.isSeparator){if(B.textOnlyLayer.innerHTML){B.textOnlyLayer.title=B.textOnlyLayer.innerHTML}B.textOnlyLayer.title+=B.checked?" "+_menuCheckLab:"";if(B.disabled){B.textOnlyLayer.title=(B.textOnlyLayer.title!=null?B.textOnlyLayer.title:"")+" "+_menuDisableLab}if(B.hiddenLabelLayer){var A=((_moz&&B.textOnlyLayer.title)?B.textOnlyLayer.title:"")+B.itemNo+_of+B.par.getTotalNumItems();B.hiddenLabelLayer.innerHTML=A}}}function newScrollMenuWidget(A,I,H,B,N,M,K,G,F,J,D,L,E){var C=newWidget(A);C.list=newListWidget("list_"+A,ScrollMenuWidget_changeCB,H,B,N,M,ScrollMenuWidget_dblClickCB,ScrollMenuWidget_keyUpCB,ScrollMenuWidget_clickCB);C.list.par=C;C.label=NewLabelWidget("label_"+A,J,D);C.showLabel=F;C.changeCB=I;C.menuClickCB=E;C.dblClickCB=K;C.keyUpCB=G;C.beforeShowCB=L;C.zIndex=_menusZIndex;C.init=ScrollMenuWidget_init;C.justInTimeInit=ScrollMenuWidget_justInTimeInit;C.setDisabled=ScrollMenuWidget_setDisabled;C.write=ScrollMenuWidget_write;C.getHTML=ScrollMenuWidget_getHTML;C.show=ScrollMenuWidget_show;C.add=ScrollMenuWidget_add;C.del=ScrollMenuWidget_del;C.getSelection=ScrollMenuWidget_getSelection;C.select=ScrollMenuWidget_select;C.clearSelection=ScrollMenuWidget_clearSelection;C.valueSelect=ScrollMenuWidget_valueSelect;C.getCount=ScrollMenuWidget_getCount;C.isShown=MenuWidget_isShown;C.captureClicks=MenuWidget_captureClicks;C.releaseClicks=MenuWidget_releaseClicks;C.clickCB=new Array;C.clickCBDocs=new Array;return C}function ScrollMenuWidget_init(){}function ScrollMenuWidget_clearSelection(){var A=this;if(A.list){A.list.clearSelection()}}function ScrollMenuWidget_justInTimeInit(){var A=this;A.layer=getLayer(A.id);if(A.layer==null){append2(_curDoc.body,A.getHTML());A.layer=getLayer(A.id)}A.layer._widget=A.widx;A.css=A.layer.style;A.css.visibility="hidden";A.list.init();A.label.init()}function ScrollMenuWidget_setDisabled(){}function ScrollMenuWidget_write(){}function ScrollMenuWidget_getHTML(){var B=this;var A="";A+='';A+='";A+='";A+="";return A}function ScrollMenuWidget_show(H,G,F){var B=this;if(B.layer==null){B.justInTimeInit()}var D=B.css;if(H){if(B.beforeShowCB){B.beforeShowCB()}B.captureClicks();D.display="block";D.zIndex=(B.zIndex+1);D.visibility="hidden";D.left="-1000px";D.top="-1000px";var I=B.getWidth();var C=B.getHeight();if(B.alignLeft){G-=I}var A=G+I+4,E=F+C+4;if(A>winWidth()){G=Math.max(0,G-4-I)}if(E>winHeight()){F=Math.max(0,F-4-C)}D.left=""+G+"px";D.top=""+F+"px";D.visibility="visible";B.iframeLyr=getDynamicBGIFrameLayer();B.iframeCss=B.iframeLyr.style;iCss=B.iframeCss;iCss.left=""+G+"px";iCss.top=""+F+"px";iCss.width=""+I+"px";iCss.height=""+C+"px";iCss.zIndex=B.zIndex-1;iCss.display="block";if(_ie){F-=2;G-=2}}else{releaseBGIFrame(B.iframeLyr.id);D.display="none";iCss.display="none";B.releaseClicks()}}function ScrollMenuWidget_add(A,D,B,E){var C=this;if(C.layer==null){C.justInTimeInit()}C.list.add(A,D,B,E)}function ScrollMenuWidget_del(A){var B=this;if(B.layer==null){B.justInTimeInit()}B.list.del(A)}function ScrollMenuWidget_getSelection(){var A=this;if(A.layer==null){A.justInTimeInit()}return A.list.getSelection()}function ScrollMenuWidget_select(A){var B=this;if(B.layer==null){B.justInTimeInit()}B.list.select(A)}function ScrollMenuWidget_valueSelect(A){var B=this;if(B.layer==null){B.justInTimeInit()}B.list.valueSelect(A)}function ScrollMenuWidget_getCount(){var A=this;if(A.layer==null){A.justInTimeInit()}return A.list.getCount()}function ScrollMenuWidget_changeCB(){var A=this;if(A.par.changeCB){A.par.changeCB()}}function ScrollMenuWidget_clickCB(){var A=this;A.par.show(false);if(A.par.menuClickCB){A.par.menuClickCB()}}function ScrollMenuWidget_dblClickCB(){var A=this;A.par.show(false);if(A.par.dblClickCB){A.par.dblClickCB()}}function ScrollMenuWidget_keyUpCB(C){var E=13,B=27;var D=this;var A=eventGetKey(C);if(A==E||A==B){D.par.show(false)}if(D.par.keyUpCB){D.par.keyUpCB()}}if(window._DHTML_LIB_PSHEET_JS_LOADED==null){_DHTML_LIB_PSHEET_JS_LOADED=true;_boAllTabs=new Array;_vertTabImgW=3;_vertTabLBorderToTxt=20-_vertTabImgW-1;_vertTabLBorderToIcon=12-_vertTabImgW-1;_vertTabIconToTxt=8;_vertTabIconSize=16;_tabImgLeft=0;_tabImgMid=1;_tabImgRight=2;_tabTxt=3;_tabScrollBar=4;_tabList=5;_VertTab=2;_VertTabWithIcon=3;_HorizTabTop=4;_HorizTabBottom=5;_HorizTabTopWithClose=6;_menuBarTab=7;_vertTabHover=0;_vertTabSelected=1;_vertTabPressed=2;_vertTabNormal=3;_vertTabCSS=[["menuLeftMostSel","naviVTabLSelected","naviVTabLPressed","naviVTabNormal"],["menuLeftPartSel","naviVTabMSelected","naviVTabMPressed","naviVTabNormal"],["menuRightMostSel","naviVTabRSelected","naviVTabRPressed","naviVTabNormal"]];_vertNaviPanelMinW=120;_vertNaviPanelMaxW=180;_vertNaviPanelWithIconW=150;_vertNaviPanelH=23*8;_naviHorzTabH=24;_horizTabSelected=0;_horizTabNormal=1;_horizTabHover=2;_horizTabSelHover=3;_horizTabPressed=4;_tabListNormal=0;_tabListHover=1;_tabListPressed=2;_horizTabCSS=[["naviHTabLSelected","naviHTabLNormal","naviHTabLHover","naviHTabLSelHover","naviHTabLNormal"],["naviHTabMSelected","naviHTabMNormal","naviHTabMHover","naviHTabMSelHover","naviHTabMNormal"],["naviHTabRSelected","naviHTabRNormal","naviHTabRHover","naviHTabRSelHover","naviHTabRNormal"],["naviHTabTextSel","naviHTabText","naviHTabTextHover","naviHTabTextSelHover","naviHTabText"],["naviHScrollBarL","naviHScrollBarM","naviHScrollBarR","naviHScrlBarFirstArrow naviHScrlBarArrowPos","naviHScrlBarPrevArrow naviHScrlBarArrowPos","naviHScrlBarNextArrow naviHScrlBarArrowPos","naviHScrlBarLastArrow naviHScrlBarArrowPos","naviHScrlBarHover","naviHScrlBarPressed","naviHScrlBarDisabled","naviHScrlBarFirstDis naviHScrlBarArrowPos","naviHScrlBarPrevDis naviHScrlBarArrowPos","naviHScrlBarNextDis naviHScrlBarArrowPos","naviHScrlBarLastDis naviHScrlBarArrowPos"],["tabListTop","tabListTopHover","tabListTopPressed"]];_horizTabWithCloseCSS=[["naviHTabLSelected","naviHTabLNormal","naviHTabLHover","naviHTabLSelHover","naviHTabLNormal"],["naviHTabMSelected","naviHTabMNormal","naviHTabMHover","naviHTabMSelHover","naviHTabMNormal"],["naviHTabWithCloseRSel","naviHTabRWithCloseNormal","naviHTabWithCloseRHover","naviHTabWithCloseRSelHover","naviHTabRWithCloseNormal"],["naviHTabTextSel","naviHTabText","naviHTabTextHover","naviHTabTextSelHover","naviHTabText"],["naviHScrollBarL","naviHScrollBarM","naviHScrollBarR","naviHScrlBarFirstArrow naviHScrlBarArrowPos","naviHScrlBarPrevArrow naviHScrlBarArrowPos","naviHScrlBarNextArrow naviHScrlBarArrowPos","naviHScrlBarLastArrow naviHScrlBarArrowPos","naviHScrlBarHover","naviHScrlBarPressed","naviHScrlBarDisabled","naviHScrlBarFirstDis naviHScrlBarArrowPos","naviHScrlBarPrevDis naviHScrlBarArrowPos","naviHScrlBarNextDis naviHScrlBarArrowPos","naviHScrlBarLastDis naviHScrlBarArrowPos"]];_horizTabImgL=4;_horizTabImgR=23;_horizTabTxtPaddingL=15;_horizTabTxtPaddingR=3;_horizTabTxtPaddingB=5;_horizTabImgPadL=8;_horizTabImgToTxt=6;_horizBottomTabTxtPadB=7;_horizTabTxtToClose=5;_horizTabClosePadR=1;_noScrollBar=0;_ScrollBarAtBegin=1;_ScrollBarAtEnd=2;_horizBarWidth=100;_defaultMenuBarWidth=200;_menuBarTabHeight=22;_tabListIconWidth=19}function newTabbedZone(F,C,A,B,D){var E=newFrameZoneWidget(F,B,D);E.w=B;E.h=D;E.cb=A;E.oldIndex=-1;E.tzOldInit=E.init;E.add=TabbedZoneWidget_add;E.select=TabbedZoneWidget_select;E.getTabCSS=TabbedZoneWidget_getTabCSS;E.init=TabbedZoneWidget_init;E.beginHTML=TabbedZoneWidget_beginHTML;E.oldFrameZoneEndHTML=E.endHTML;E.endHTML=TabbedZoneWidget_endHTML;if(!C){E.tabs=newTabBarWidget("tzone_tabs_"+F,true,TabbedZone_itemClick);E.tabs.parentTabbedZone=E}else{E.tabs=C}E.beginTabHTML=TabbedZoneWidget_beginTabHTML;E.endTabHTML=TabbedZoneWidget_endTabHTML;E.beginTab=TabbedZoneWidget_beginTab;E.endTab=TabbedZoneWidget_endTab;E.showTab=TabbedZoneWidget_showTab;E.tzOldResize=E.resize;E.resize=TabbedZoneWidget_resize;return E}function TabbedZone_itemClick(){var B=this.parentTabbedZone,A=this.getSelection().index;B.select(A);if(B.cb){B.cb(A)}}function TabbedZoneWidget_add(B,E,C,H,A,F,D){var G=this;G.tabs.add(B,E,-1,C,H,A,F,D)}function TabbedZoneWidget_init(){var A=this;A.tzOldInit();A.tabs.init();A.select(0)}function TabbedZoneWidget_getTabCSS(A){if(A!=null){if(!A.zoneLayer){A.zoneLayer=getLayer(A.zoneId)}if(A.zoneLayer){return A.zoneLayer.style}}return null}function TabbedZoneWidget_showTab(B,A){var C=this.tabs.items[B];if(C){C.setDisplay(A)}}function TabbedZoneWidget_resize(B,D){var F=this;if(B!=null){F.w=B}if(D!=null){F.h=D}F.tzOldResize(B,D);var A=getLayer(F.id+"_container");if(A){if(F.w){A.style.width=F.w+"px"}if(F.h){A.style.height=F.h+"px"}}var E=F.tabs.items[F.oldIndex];if(E){var C=getLayer(E.zoneId);if(C){if(F.w){C.style.width=F.w+"px"}if(F.h){C.style.height=F.h+"px"}}}}function TabbedZoneWidget_select(D){var A=this,G=A.tabs,B=G.getSelection(),H=A.oldIndex,F;var I=G.items[A.oldIndex];A.tabs.select(D);if(I){F=A.getTabCSS(I);if(F){F.display="none"}}else{var E=G.items.length;for(var C=0;C'+imgOffset(_skin+"dialogframe.gif",5,5,0,0)+''+A.tabs.getHTML()+""+imgOffset(_skin+"dialogframe.gif",5,5,5,0)+'
    '}function TabbedZoneWidget_endHTML(){return'
    '+imgOffset(_skin+"dialogframe.gif",5,5,0,5)+''+imgOffset(_skin+"dialogframe.gif",5,5,5,5)+""}function TabbedZoneWidget_beginTabHTML(A){var B=this;return'"}function TabbedZoneWidget_beginTab(A){_curDoc.write(this.beginTabHTML(A))}function TabbedZoneWidget_endTab(){_curDoc.write(this.endTabHTML())}function newNaviTabWidget(C,A,L,E,F,D,M,J,B,K,I,H,G){return new_NaviTabWidget({id:C,name:A,value:L,tabType:E,clickCB:F,dblclickCB:D,tooltip:M,icon:J,iconW:B,iconH:K,iconOffX:I,iconOffY:H,closeTabCB:G})}function new_NaviTabWidget(A){var B=new_Widget(A);B.superInit=B.init;B.init=NaviTabWidget_init;B.getHTML=NaviTabWidget_getHTML;B.hasCloseButton=NaviTabWidget_hasCloseButton;B.select=NaviTabWidget_select;B.setUserData=NaviTabWidget_setUserData;B.getUserData=NaviTabWidget_getUserData;B.setMenu=NaviTabWidget_setMenu;B.getMenu=NaviTabWidget_getMenu;B.setHtml=NaviTabWidget_setHtml;B.getHtml=NaviTabWidget_getHtml;B.zoneId="tzone_tab_"+Math.round(Math.random()*12345)+new Date().getTime();B.tabType=Widget_param(A,"tabType",_HorizTabTop);B.name=Widget_param(A,"name","Tab");B.value=Widget_param(A,"value",0);B.cb=Widget_param(A,"clickCB",null);B.dblClick=Widget_param(A,"dblclickCB",null);B.icon=Widget_param(A,"icon",null);B.iconW=Widget_param(A,"iconW",(B.icon?_vertTabIconSize:1));B.iconH=Widget_param(A,"iconH",(B.icon?_vertTabIconSize:1));B.iconOffX=Widget_param(A,"iconOffX",0);B.iconOffY=Widget_param(A,"iconOffY",0);B.tooltip=Widget_param(A,"tooltip",null);B.closeTabCB=Widget_param(A,"closeTabCB",null);B.isSelected=false;B.leftimgid="naviTabL_"+B.id;B.midimgid="naviTabM_"+B.id;B.rightimgid="naviTabR_"+B.id;B.txtid="naviTabTxt_"+B.id;B.sepid="naviTabSep_"+B.id;B.closeid="naviTabClose_"+B.id;B.iconid="naviTabIcon_"+B.id;switch(B.tabType){case _VertTab:case _VertTabWithIcon:B.tabCSSTable=_vertTabCSS;break;case _HorizTabBottom:B.tabCSSTable=_horizBottomTabCSS;break;case _HorizTabTopWithClose:B.tabCSSTable=_horizTabWithCloseCSS;break;case _HorizTabTop:default:B.tabCSSTable=_horizTabCSS;break;case _menuBarTab:B.tabCSSTable=_menuBarTabCSS;break}B.mover=NaviTabWidget_mover;B.mdown=NaviTabWidget_mdown;B.keydownCB=NaviTabWidget_keydownCB;B.contextMenuCB=NaviTabWidget_contextMenuCB;B.changeState=NaviTabWidget_changeState;B.getVertHTML=NaviTabWidget_getVertHTML;B.getHorizHTML=NaviTabWidget_getHorizHTML;B.displaySep=NaviTabWidget_displaySep;B.isVert=NaviTabWidget_isVert;B.updateCloseIcon=NaviTabWidget_updateCloseIcon;B.mdown_closeIcon=NaviTabWidget_mdown_closeIcon;B.kdown_closeIcon=NaviTabWidget_kdown_closeIcon;B.clickCB=NaviTabWidget_clickCB;B.dblClickCB=NaviTabWidget_dblClickCB;B.leftimgLyr=null;B.midimgLyr=null;B.rightimgLyr=null;B.txtLyr=null;B.iconLyr=null;B.sepLyr=null;B.closeLyr=null;B.data=new Object;return B}function NaviTabWidget_init(){var A=this;A.superInit();if(A.layer){A.layer.onmouseover=A.mover;A.layer.onmouseout=A.mover;A.layer.onmousedown=A.mdown;A.layer.onmouseup=A.mdown;A.layer.onclick=A.clickCB;if(_ie){A.layer.ondblclick=A.dblClickCB}A.layer.onkeydown=A.keydownCB;A.layer.onselectstart=function(){return false};A.layer.ondragstart=function(){return false};A.layer.oncontextmenu=A.contextMenuCB}A.leftimgLyr=getLayer(A.leftimgid);A.midimgLyr=getLayer(A.midimgid);A.rightimgLyr=getLayer(A.rightimgid);A.txtLyr=getLayer(A.txtid);A.iconLyr=getLayer(A.iconid);A.sepLyr=getLayer(A.sepid);if(A.hasCloseButton()){A.closeLyr=getLayer(A.closeid);A.closeLyr.onmousedown=A.mdown_closeIcon;A.closeLyr.onkeypress=A.kdown_closeIcon;A.closeLyr.onmouseup=A.mdown_closeIcon;A.updateCloseIcon("naviHTabCloseSel",A.isSelected)}}function NaviTabWidget_getVertHTML(){var E=this;var B="";B='';B+='';var C=E.isSelected?_vertTabSelected:_vertTabNormal;B+='';var A=E.par.w-2*_vertTabImgW;B+='";B+='';B+="
    ';if(E.tabType==_VertTabWithIcon){B+='';B+='';B+='";var D=Math.max(40,A-_vertTabLBorderToIcon-_vertTabIconSize);B+='";B+="
    '+imgOffset((E.icon?E.icon:(_skin+"../transp.gif")),_vertTabIconSize,E.iconH,E.iconOffX,E.iconOffY,E.iconid)+"';B+='
    "}else{B+='"}B+="
    ";return B}function NaviTabWidget_hasCloseButton(){var A=this;return _HorizTabTopWithClose==A.tabType&&(!A.par.getTabIndexByName(A.name)==0||A.isFirstTabClosable)}function NaviTabWidget_getHorizHTML(){var F=this;var C='';C+='';var E=F.isSelected?_horizTabSelected:_horizTabNormal;C+='';C+='";C+='';C+='';C+="
    ';C+='';C+='';if(_menuBarTab!=F.tabType){var B=(_HorizTabTop==F.tabType||_HorizTabTopWithClose==F.tabType)?"margin-bottom:3px;":"margin-bottom:6px;";B=B+"margin-left:"+((F.iconW>1)?_horizTabImgPadL:0)+"px;";C+='"}var D=' style="padding-left:'+((F.iconW>1)?_horizTabImgToTxt:_horizTabTxtPaddingL)+"px;padding-right:"+((_HorizTabTopWithClose==F.tabType)?_horizTabTxtToClose:_horizTabTxtPaddingR)+"px;padding-bottom:"+((_HorizTabTop==F.tabType||_HorizTabTopWithClose==F.tabType)?_horizTabTxtPaddingB:_horizBottomTabTxtPadB)+'px;" ';var A='";C+='";if(F.hasCloseButton()){C+=''}C+="
    '+imgOffset((F.icon?F.icon:(_skin+"../transp.gif")),F.iconW,F.iconH,F.iconOffX,F.iconOffY,F.iconid,null,null,B)+"'+A+"';C+='
    ";C+="
    ';C+='
    ';C+='
    ";return C}function NaviTabWidget_isVert(){var A=this;return(A.tabType==_VertTabWithIcon||A.tabType==_VertTab)}function NaviTabWidget_getHTML(){var A=this;return(A.isVert())?A.getVertHTML():A.getHorizHTML()}function NaviTabWidget_select(A){var B=this;B.isSelected=A;B.changeState(B.isVert()?(A?_vertTabSelected:_vertTabNormal):(A?_horizTabSelected:_horizTabNormal));B.updateCloseIcon("naviHTabCloseSel",B.isSelected)}function NaviTabWidget_updateCloseIcon(B,A){var C=this;if(C.tabType==_HorizTabTopWithClose&&C.closeLyr){C.closeLyr.className=B;C.closeLyr.style.visibility=A?_show:_hide}}function NaviTabWidget_changeState(A){var B=this;if(B.layer){B.leftimgLyr.className=B.tabCSSTable[_tabImgLeft][A];B.midimgLyr.className=B.tabCSSTable[_tabImgMid][A];B.rightimgLyr.className=B.tabCSSTable[_tabImgRight][A]}if(B.txtLyr&&!B.isVert()){B.txtLyr.className=B.tabCSSTable[_tabTxt][A]}}function NaviTabWidget_mover(B){var G=getWidget(this);var B=getEvent(B);var E=(B&&B.type=="mouseover")?true:false;if(G.isVert()){G.changeState(E?_vertTabHover:(G.isSelected?_vertTabSelected:_vertTabNormal))}else{G.changeState(G.isSelected?(E?_horizTabSelHover:_horizTabSelected):(E?_horizTabHover:_horizTabNormal));var C=G.par.getPrevNextTabs(G.idx);if(!C){return }var D=C.prevTab;var A=C.nextTab;if(!G.isSelected){var F=false;if(!E){F=true;if(A){if(A.isSelected){F=false}}else{F=false}}G.displaySep(F,true);if(D){D.displaySep(E?false:((D.isSelected)?false:true),true)}}else{G.displaySep(false);if(D){D.displaySep(false)}}G.updateCloseIcon((E?"naviHTabCloseHover":"naviHTabCloseSel"),(G.isSelected||E))}}function NaviTabWidget_mdown(A){var B=getWidget(this);var A=getEvent(A);var C=(A&&A.type=="mousedown")?true:false;if(B.isVert()){B.changeState(C?_vertTabPressed:(B.isSelected?_vertTabSelected:_vertTabNormal))}}function NaviTabWidget_mdown_closeIcon(A){var B=getWidget(this);var A=getEvent(A);var C=(A&&A.type=="mousedown")?true:false;B.updateCloseIcon((C?"naviHTabClosePressed":"naviHTabCloseSel"),(C||B.isSelected));if(!C){if(B.par&&B.par.closeTab){B.par.closeTab(B.par.findTabIndex(B),B.closeTabCB)}}}function NaviTabWidget_kdown_closeIcon(B){var A=eventGetKey(B);if(A==32||A==13){eventCancelBubble(B);var C=getWidget(this);if(C.par&&C.par.closeTab){C.par.closeTab(C.par.findTabIndex(C),C.closeTabCB)}}}function NaviTabWidget_clickCB(A){var A=getEvent(A);var B=getWidget(this);if(B&&B.cb){B.cb()}eventCancelBubble(A);return false}function NaviTabWidget_dblClickCB(A){var A=getEvent(A);var B=getWidget(this);if(B&&B.dblClick){B.dblClick()}eventCancelBubble(A);return false}function NaviTabWidget_keydownCB(B){var A=eventGetKey(B);if(A==13){eventCancelBubble(B);var C=getWidget(this);if(C&&C.cb){C.cb()}}}function NaviTabWidget_displaySep(C,A){var B=this;if(!B.isVert()&&B.sepLyr){B.sepLyr.style.visibility=C?_show:_hide}}function NaviTabWidget_setUserData(A){this.data.userdata=A}function NaviTabWidget_getUserData(){return this.data.userdata}function NaviTabWidget_contextMenuCB(A){A=getEvent(A);var C=getWidget(this);var B=C.par;if(C&&C.cb){C.cb()}if(B&&B.showTabMenu){B.showTabMenu(A,C.idx)}eventCancelBubble(A);return false}function NaviTabWidget_setMenu(A){this.data.menu=A}function NaviTabWidget_getMenu(){return this.data.menu}function NaviTabWidget_setHtml(A){this.data.html=A}function NaviTabWidget_getHtml(){return this.data.html}function new_NaviBarWidget(D){var F=new_Widget(D);F.superInit=F.init;F.oldResize=F.resize;F.init=NaviBarWidget_init;F.getHTML=NaviBarWidget_getHTML;F.add=NaviBarWidget_add;F.addByPrms=NaviBarWidget_addByPrms;F.remove=NaviBarWidget_remove;F.removeAll=NaviBarWidget_removeAll;F.getCount=NaviBarWidget_getCount;F.select=NaviBarWidget_select;F.getSelection=NaviBarWidget_getSelection;F.getBarType=NaviBarWidget_getBarType;F.getMenu=NaviBarWidget_getMenu;F.showMenu=NaviBarWidget_showMenu;F.getTabMenu=NaviBarWidget_getTabMenu;F.showTabMenu=NaviBarWidget_showTabMenu;F.setShowContextMenuAllowed=NaviBarWidget_setShowContextMenuAllowed;F.getTab=NaviBarWidget_getTab;F.findTabIndex=NaviBarWidget_findTabIndex;F.getSelectedTab=NaviBarWidget_getSelectedTab;F.showTab=NaviBarWidget_showTab;F.resize=NaviBarWidget_resize;F.setTabHTML=NaviBarWidget_setTabHTML;F.getTabHTML=NaviBarWidget_getTabHTML;F.getTabIndexByName=NaviBarWidget_getTabIndexByName;F.getTabIndexByValue=NaviBarWidget_getTabIndexByValue;F.getTabID=NaviBarWidget_getTabID;var B=Widget_param(D,"w",null);var E=Widget_param(D,"h",null);F.cb=Widget_param(D,"cb",null);F.isFirstTabClosable=Widget_param(D,"isFirstTabClosable",true);F.dblclick=Widget_param(D,"dblclick",null);F.beforeShowTabMenu=Widget_param(D,"beforeShowTabMenu",null);F.type=Widget_param(D,"naviBarType",_VertTab);F.counter=0;F.items=new Array;F.selIndex=-1;F.leftLimit=0;F.showContextMenuAllowed=true;F.menu=newMenuWidget("naviBarMenu_"+F.id,null,Widget_param(D,"beforeShowMenu",null));F.tabList=null;F.showScrollBar=_noScrollBar;F.isVert=((F.type==_VertTab)||(F.type==_VertTabWithIcon))?true:false;if(F.isVert){if(B){B=Math.max(_vertNaviPanelMinW,B);B=Math.min(B,_vertNaviPanelMaxW)}F.w=(B?B:((F.type==_VertTab)?_vertNaviPanelMinW:_vertNaviPanelWithIconW))+2;if(E){var G=Math.ceil(E/_mitemH);E=(Math.max(1,G))*_mitemH}F.h=(E?E:_vertNaviPanelH)+2}else{var C=Widget_param(D,"showTabList",false);if(C){F.tabList=newMenuWidget("naviBarTabListMenu_"+F.id,null,NaviBarWidget_beforeShowTabListCB,NaviBarWidget_TabListonPositionCB);F.tabList.navibar=F}else{var A=Widget_param(D,"showScrollBar",false);F.showScrollBar=A?((_HorizTabBottom==F.type)?_ScrollBarAtBegin:_ScrollBarAtEnd):_noScrollBar}F.w=B?B:(_horizBarWidth+_scrollBarWidth);F.h=_naviHorzTabH}switch(F.type){case _VertTab:case _VertTabWithIcon:F.tabCSSTable=_vertTabCSS;break;case _HorizTabBottom:F.tabCSSTable=_horizBottomTabCSS;break;case _HorizTabTop:default:F.tabCSSTable=_horizTabCSS;break}F.trid="naviBarTR_"+F.id;F.trLyr=null;F.divid="naviBarDIV_"+F.id;F.divLyr=null;F.scrollbarid="scrlbar_"+F.id;F.firstid="f_"+F.id;F.previd="p_"+F.id;F.nextid="n_"+F.id;F.lastid="l_"+F.id;F.scrollbarLyr=null;F.firstLyr=null;F.prevLyr=null;F.nexttLyr=null;F.lastLyr=null;F.updateSepDisplay=NaviBarWidget_updateSepDisplay;F.getPrevNextTabs=NaviBarWidget_getPrevNextTabs;F.closeTab=NaviBarWidget_closeTab;F.getBarIndex=NaviBarWidget_getBarIndex;F.mover_scrollbar=NaviBarWidget_mover_scrollbar;F.mdown_scrollbar=NaviBarWidget_mdown_scrollbar;F.contextMenuCB=NaviBarWidget_contextMenuCB;F.dblclickCB=NaviBarWidget_dblclickCB;F.getItemXPos=NaviBarWidget_getItemXPos;F.par=null;F.tablistid="bartablist_"+F.id;F.tablistLyr=null;F.mover_tablist=NaviBarWidget_mover_tablist;F.mdown_tablist=NaviBarWidget_mdown_tablist;F.kdown_tablist=NaviBarWidget_kdown_tablist;F.onfocus_tablist=NaviBarWidget_onfocus_tablist;F.onblur_tablist=NaviBarWidget_onblur_tablist;F.click_tablist=NaviBarWidget_click_tablist;F.onChangeTabList=NaviBarWidget_onChangeTabList;F.showTabListIcon=NaviBarWidget_showTabListIcon;F.buildTabList=NaviBarWidget_buildTabList;return F}function newNaviBarWidget(B,J,C,D,I,E,K,H,G,A,F){return new_NaviBarWidget({id:B,naviBarType:J,cb:C,dblclick:D,w:I,h:E,beforeShowTabMenu:K,beforeShowMenu:H,showScrollBar:G,showTabList:A,isFirstTabClosable:F})}function NaviBarWidget_getBarType(){return this.type}function NaviBarWidget_init(){var F=this,C=F.items;F.superInit();F.trLyr=getLayer(F.trid);F.divLyr=getLayer(F.divid);var B=C.length;for(var D=0;D';F+='";if(G.isVert){for(var E=0;E"}}else{F+="";var A="";if(G.showScrollBar!=_noScrollBar){A=""}if(G.showScrollBar==_ScrollBarAtBegin){F+=A}var C=G.w;if(G.showScrollBar!=_noScrollBar){C=Math.max(C-_scrollBarWidth,_horizBarWidth)}F+='";if(G.tabList){F+='"}if(G.showScrollBar==_ScrollBarAtEnd){F+=A}F+=""}F+="";return F}function NaviBarWidget_add(A,H,I,F,B,G,E,D,J,C){return this.addByPrms({name:A,value:H,tooltip:J,icon:F,iconW:B,iconH:G,iconOffX:E,iconOffY:D,closeTabCB:C},I)}function NaviBarWidget_addByPrms(H,I){var B=this,A=B.counter++;H.id="naviTab_"+A+"_"+B.id;H.tabType=B.type;H.clickCB=NaviBarWidget_itemClick;H.dblclickCB=NaviBarWidget_itemDblClick;var E=new_NaviTabWidget(H);E.par=B;E.idx=A;arrayAdd(B,"items",E,I);var G=B.items.length;if(B.isVert&&B.layer!=null){var C=document.createElement("td");C.innerHTML=E.getHTML();var F=document.createElement("tr");F.appendChild(C);var D=B.layer.childNodes[0].childNodes[0];if((typeof (I)=="undefined")||(G==1)||(I==null)||(I==-1)||(I>=G)){D.appendChild(F);I=G-1}else{if(D.childNodes[parseInt(I)]){D.insertBefore(F,D.childNodes[parseInt(I)])}}E.init()}else{if(B.trLyr){var C=document.createElement("td");C.innerHTML=E.getHTML();if((typeof (I)=="undefined")||(G==1)||(I==null)||(I==-1)||(I>=G)){B.trLyr.appendChild(C);I=G-1}else{B.trLyr.insertBefore(C,B.trLyr.childNodes[parseInt(I)])}E.init();B.showTabListIcon()}}if((B.selIndex!=null)&&(B.selIndex>=0)){if(I<=B.selIndex){B.selIndex++}}B.updateSepDisplay();return E}function NaviBarWidget_getBarIndex(D){var E=this,B=E.items,A=B.length;for(var C=0;C=0)&&(C=0)&&(D.selIndex!=C)&&(D.selIndex=0)&&(II){A.cb(A.selIndex-1)}else{if((A.selIndex==I)&&(F>0)){A.cb(Math.min(I,F-1))}}}if(F==0){A.selIndex=null}A.showTabListIcon()}}function NaviBarWidget_removeAll(){var D=this,B=D.items,A=B.length;for(var C=A-1;C>=0;C--){D.remove(C)}}function NaviBarWidget_setTabHTML(A,B){var C=this;if(typeof (A)=="undefined"||A==null){A=C.items.length-1}if(A>=0&&A<=(C.items.length-1)){C.items[A].setHtml(B)}}function NaviBarWidget_getTabHTML(A){var B=this;if(A>=0&&A<=(B.items.length-1)){return B.items[A].getHtml()}return""}function NaviBarWidget_getSelection(){var C=this;if(C.getCount()==0){C.selIndex=-1;return null}var A=C.selIndex;if((A!=null)&&(A>=0)&&C.items[A]){var B=new Object;B.index=A;B.valueOf=C.items[A].value;B.name=C.items[A].name;return B}else{return null}}function NaviBarWidget_getMenu(){return this.menu}function NaviBarWidget_getTabMenu(C){var E=null;var D=this,B=D.items,A=B.length;if((C>=0)&&(C=0)&&(D1)?_show:_hide}}function NaviBarWidget_tabListMenuItemsCB(){var B=this.par.navibar;if(!B){return }var A=B.getBarIndex(parseInt(this.id));if((A>=0)&&(AB.divLyr.offsetWidth){if(D=0){if((H[E].getWidth()+D)=0){B.divLyr.scrollLeft=B.getItemXPos(I)}}function NaviBarWidget_buildTabList(){var D=this;var B=D.items,A=B.length;D.tabList.removeAll();for(var C=0;C=0)&&(A=0)&&(B=0){var C=_TreeWidgetElemInstances[D.selId];C.unselect();D.selId=-1}if(D.multiSelection){var A=D.selIds.length,E;for(var B=A-1;B>=0;B--){var C=_TreeWidgetElemInstances[D.selIds[B]];if(C){C.unselect()}}D.selIds.length=0;D.layer._BOselIds=""}D.unhlPath()}function TreeWidget_selectByData(C,A){var D=this,B=D.findByData(C);if(B){B.select(A)}}function TreeWidget_selectById(D,A){var C=this,B=C.findById(D);if(B){B.select(A)}}function TreeWidget_findByData(D){var E=this,B=E.sub,C=null;for(var A in B){C=B[A].findByData(D);if(C){return C}}return null}function TreeWidget_findById(E){var D=this,B=D.sub,C=null;for(var A in B){C=B[A].findById(E);if(C){return C}}return null}function TreeWidget_add(D,B){var E=this,C=E.sub,A=C.length;D.treeView=E;C[A]=D;D.expanded=(A==0);if(B){D.extraIndent=B}return D}function TreeWidget_getHTML(){var F=this,E=F.sub,A=E.length,B=new Array(A+3),C=0;B[C++]=F.beginHTML()+'';for(var D in E){B[C++]=E[D].getHTML(F.initialIndent,D==0)}B[C++]=""+F.endHTML();return B.join("")}function TreeWidget_deleteAll(){var B=this.sub;for(var A in B){B[A].deleteAll();B[A]=null}B.length=0;if(this.elems){this.elems.length=0}}function TreeWidget_rebuildHTML(){var G=this,F=G.sub,A=F.length,B=new Array(A),C=0,E=G.initialIndent;for(var D in F){B[C++]=F[D].getHTML(E,D==0)}G.treeLyr.innerHTML=B.join("");G.selId=-1;G.layer._BOselId=-1;G.selIds.length=0;G.layer._BOselIds="";this.buildElems()}function TreeWidget_init(){this.oldInit();var B=this.treeLyr=getLayer("treeCont_"+this.id);if(this.dragDrop){this.dragDrop.attachCallbacks(this.layer)}var A=this.layer._BOselId;if(A!=null){this.selId=A}var D=this.layer._BOselIds;if(D!=null&&D!=""){this.selIds.length=0;this.selIds=D.split(";")}var C=this.sub}function TreeWidget_buildElems(elem){with(this){if(elem==null){elem=this}else{var pos=elems.length;elems[pos]=elem;elem.elemPos=pos}var subArr=elem.sub,len=subArr.length;for(var i=0;i=0)?_TreeWidgetElemInstances[A]:null}function TreeWidget_getSelections(){var C=this;if(C.multiSelection){return C.getSelectedItems()}else{var A=C.getSelectedItem(),B=new Array;if(A!=null){B[0]=A}return B}}function TreeWidget_setFocus(A){var B=_TreeWidgetElemInstances[A];if(B!=null){B.init();safeSetFocus(B.domElem)}}function TreeWidget_setDragDrop(C,B,A,D){this.dragCB=C;this.acceptDropCB=B;this.dropCB=A;this.dragEndCB=D;this.dragDrop=newDragDropData(this,TreeWidget_dragStartCB,TreeWidget_dragCB,TreeWidget_dragEndCB,TreeWidget_acceptDropCB,TreeWidget_leaveDropCB,TreeWidget_dropCB)}function TreeWidget_dragStartCB(E){var C=E.getSelections(),B=E.iconOrientVertical;E.dragCB(E);if(C&&C.length==1){var D=C[0];var A=D.iconId;newTooltipWidget().show(true,D.getDragTooltip(),A>=0?E.icns:null,E.iconW,E.iconH,B?0:E.iconW*A,B?E.iconH*A:0)}}function TreeWidget_setRightClickMenuCB(A){this.rightClickMenuCB=A}function TreeWidget_getCount(){var A=this;if(A.sub!=null){return A.sub.length}else{return 0}}function TreeWidget_setTooltipOnMouseOver(A){this.mouseOverTooltip=A}function TreeWidget_setMouseOverCB(A){this.mouseOverCB=A}function TreeWidget_dragCB(A){newTooltipWidget().setPos()}function TreeWidget_dragEndCB(A){newTooltipWidget().show(false);if(A.dragEndCB){A.dragEndCB()}}function TreeWidget_dragOverEnterCB(A,D){var B=_TreeWidgetElemInstances[D];if(A.ondrop==null){B.treeView.dragDrop.attachCallbacks(A,true);A.domEltID=D}var C=_ddData[A._dragDropData],B=_curWin.event;B.dataTransfer.dropEffect=B.ctrlKey?"copy":"move";if(C.acceptDropCB(window._globalDDD,C.widget,B.ctrlKey,B.ctrlKey?false:B.shiftKey,A,false)){B.returnValue=false}B.cancelBubble=true}function TreeWidget_acceptDropCB(E,D,C,A,B){return D.acceptDropCB(E,D,C,A,B)}function TreeWidget_leaveDropCB(D,C,B,A){if(C.dropWidget&&C.dropWidget.layer){if(C.dropWidget.layer.className!=C.dropWidget.nonselectedClass){C.dropWidget.layer.className=C.dropWidget.nonselectedClass}}}function TreeWidget_dropCB(F,D,C,A,B,E){newTooltipWidget().show(false);D.dropCB(F,D,C,A)}function TreeWidget_setMultiSelection(A){if((!this.multiSelection&&A)||(this.multiSelection&&!A)){this.unselect()}this.multiSelection=A}function TreeWidget_getSelectedItems(){var D=new Array;var A=this.selIds.length,E,C=0;for(var B=0;B=0){D[C]=_TreeWidgetElemInstances[E];C++}}return D}function TreeWidget_getCheckedItems(){var C=new Array;var A=_TreeWidgetElemInstances.length,D=0;for(var B=0;B0){for(var B=0;B(D.initialX+A))||(E<(D.initialY-A))||(E>(D.initialY+A))){this.dragDrop();D.clicked=false}}}}function TreeWidgetElem_mouseUp(){var B=_treeWClickedW,A=_curWin.event;B.select(null,A);B.domElem.onmouseup=null}function TreeWidgetElem_init(C){var G=this;if(G.layer==null){var D=G.sub,A=D.length,F=(A>0)||G.isIncomplete;G.layer=C?C:getLayer(_codeWinName+"TWe_"+G.id);if(G.layer==null){return }var H=G.layer.childNodes,E=H.length;G.plusLyr=F?H[0].childNodes[1]:null;G.icnTooltipLyr=F?H[0].childNodes[0]:null;G.icnLyr=(G.iconId>-1)?H[F?1:0]:null;G.checkElem=G.isCheck?H[E-2]:null;G.domElem=H[E-1];G.txtTooltipLyr=H[E-1].childNodes[1];if(G.layer.nextSibling&&G.layer.nextSibling.id==_codeWinName+"trTog"+G.id){G.toggleLyr=G.layer.nextSibling}if(G.treeView.mouseOverTooltip||G.treeView.mouseOverCB){G.domElem.onmouseout=TreeFuncMouseout}if(F){addDblClickCB(G.plusLyr,_tpdb)}if(F&&G.generated){for(var B in D){D[B].init()}}if(G.enableDoubleClick){addDblClickCB(G.domElem,_tpdb)}}}function TreeIdToIdx(B){if(B){var C=B.id;if(C){var A=C.lastIndexOf("TWe_");if(A>=0){return parseInt(C.slice(A+4))}else{return -1}}else{return TreeIdToIdx(B.parentNode)}}return -1}function TreeFuncMouseout(A){_tmoc(this,TreeIdToIdx(this),false,A)}function _tmvc(A,B){_tmoc(A,TreeIdToIdx(A),true,B)}function _tpl(A,B){TreeWidget_clickCB(TreeIdToIdx(A),true,B,true);return false}function _tkl(A,C){var B=eventGetKey(C);if(B==13){return _tpl(A,C)}}function _tkt(A,C){var B=eventGetKey(C);if(B==13){return _tpt(A,C)}}function _tpt(A,B){TreeWidget_clickCB(TreeIdToIdx(A),false,B,true);return false}function _tpdb(A){treeDblClickCB(TreeIdToIdx(this),_ie?event:A);return false}function _tfcc(A,B){treeFCCB(A,TreeIdToIdx(A),true,B);A.onblur=_tblc}function _tblc(A){treeFCCB(this,TreeIdToIdx(this),false,A)}function TreeWidgetElem_getHTML(indent,isFirst){var s="";with(this){htmlWritten=true,isRoot=(par==null);var len=sub.length,exp=(len>0)||isIncomplete,a=new Array,i=0;if(this.extraIndent){indent+=_trIndent*extraIndent}var keyCB='onkeydown=" return '+_codeWinName+'._tkt(this,event)" ';var mouseCB='onclick="return '+_codeWinName+'._tpt(this,event)" ';if(treeView.mouseOverTooltip||treeView.mouseOverCB){mouseCB+='onmouseover="'+_codeWinName+'._tmvc(this,event)" '}var contextMenu="";if(treeView.rightClickMenuCB!=null){contextMenu=' oncontextmenu="'+_codeWinName+".treeContextMenuCB('"+id+"', event);return false\" "}var acceptDD="";if((treeView.acceptDropCB!=null)&&(_ie)){acceptDD=' ondragenter="'+_codeWinName+".TreeWidget_dragOverEnterCB(this,'"+id+"');\" ";acceptDD+=' ondragover="'+_codeWinName+".TreeWidget_dragOverEnterCB(this,'"+id+"');\" "}a[i++]='
    ";var onkeydown='onkeydown="return '+_codeWinName+'._tkl(this,event)" ';var onclick='onclick="return '+_codeWinName+'._tpl(this,event)" ';if(exp){var expIcon;var iconTooltip;if(expanded){if(treeView.minIcon!=null){expIcon=treeView.minIcon}else{expIcon=_skin+"../min.gif"}iconTooltip=_collapseNode.replace("%1",name)}else{if(treeView.plusIcon!=null){expIcon=treeView.plusIcon}else{expIcon=_skin+"../plus.gif"}iconTooltip=_expandNode.replace("%1",name)}a[i++]="'+iconTooltip+''}if(iconId>-1){var iconClass="trIcn"+(exp||isRoot?"Plus":"");if(this.cursorClass){iconClass+=" "+this.cursorClass}a[i++]="'}else{if(!exp&&!isRoot){a[i++]=""}}if(isCheck){a[i++]='"}var textClass=nonselectedClass;if(this.cursorClass){textClass+=" "+this.cursorClass}var textTooltip=this.getTooltip();a[i++]='';a[i++]=(isHTML?name:convStr(name));a[i++]=''+textTooltip+"";a[i++]="";a[i++]="
    ";if(exp){a[i++]='
    '}if(expanded){generated=true;for(var j=0;j"}}return a.join("")}function TreeWidgetElem_setGrayStyle(B){var C=this,A=B?C.grayTxt:C.blackTxt;if(A!=C.nonselectedClass){C.nonselectedClass=A;C.init();if(C.domElem&&(C.domElem.className!=C.selectedClass)){C.domElem.className=A}}}function TreeWidgetElem_isGrayStyle(){return this.nonselectedClass==this.grayTxt}function TreeWidgetElem_setIncomplete(A){this.isIncomplete=true;this.querycompleteCB=A}function TreeWidgetElem_finishComplete(){this.isIncomplete=false;TreeWidget_toggleCB(this.id);this.treeView.buildElems()}function TreeWidgetElem_findByData(D){var E=this;if(E.userData==D){return E}var B=E.sub;for(var A in B){var C=B[A].findByData(D);if(C!=null){return C}}return null}function TreeWidgetElem_findById(E){var D=this;if(D.id==E){return D}var B=D.sub;for(var A in B){var C=B[A].findById(E);if(C!=null){return C}}return null}function treeInitDropFunc(A,C){var B=_TreeWidgetElemInstances[C];if(A.ondrop==null){B.treeView.dragDrop.attachCallbacks(A,true);A.domEltID=C}}function TreeWidget_toggleCB(D,B){var C=_TreeWidgetElemInstances[D];if(C.sub.length==0){C.plusLyr.style.visibility="hidden";return }C.expanded=!C.expanded;C.init();if(B){dispIcn(D)}else{setTimeout(C.treeView.dispIcnFuncName+"("+D+")",1)}var A=C.treeView;if(C.expanded&&A.expandCB){A.expandCB(C.userData)}if(!C.expanded&&A.collapseCB){A.collapseCB(C.userData)}}function dispIcn(eId){var e=_TreeWidgetElemInstances[eId];with(e){if(expanded&&!generated){generated=true;var a=new Array,i=0,len=sub.length,newInd=nodeIndent+_trIndent;for(var j=0;j1){var iconL=icnLyr.childNodes[1];changeOffset(iconL,treeView.iconOrientVertical?0:treeView.iconW*(expanded?iconSelId:iconId),treeView.iconOrientVertical?treeView.iconH*(expanded?iconSelId:iconId):0)}}}function TreeWidgetElem_add(elem){with(this){elem.treeView=treeView;elem.par=this;sub[sub.length]=elem}return elem}function TreeWidgetElem_getHiddenParent(){var A=this.par;if(A==null){return null}if(!A.expanded){return A}return ;A.getHiddenParent()}function TreeWidgetElem_getNextPrev(delta){with(this){if(elemPos==-1){treeView.buildElems()}var newPos=elemPos+delta;if((newPos>=0)&&(newPos
    "}function PromptDialog_getHTML(){var C=this;var B=PromptDialog_getimgPath(C.promptType);var A=PromptDialog_getimgAlt(C.promptType);return C.beginHTML()+'
    '+img(B,32,32,null,'id="dlg_img_'+C.id+'"',A)+''+convStr(C.text,false,true)+"
    "+getSep()+'
    '+(C.yes?"":"")+(C.no?"":"")+"
    "+C.yes.getHTML()+""+C.no.getHTML()+"
    "+C.endHTML()}function PromptDialog_defaultCB(){var o=this;if(o.yesCB){if(typeof o.yesCB!="string"){o.yesCB()}else{eval(o.yesCB)}}this.show(false)}function PromptDialog_cancelCB(){var o=this;if(o.noCB){if(typeof o.noCB!="string"){o.noCB()}else{eval(o.noCB)}}this.show(false)}function PromptDialog_yesCB(A){DialogBoxWidget_instances[A].defaultCB()}function PromptDialog_noCB(A){DialogBoxWidget_instances[A].cancelCB()}function newWaitDialogBoxWidget(A,I,E,G,C,H,K,J,F){var D=250;var L=150;if(I';A+=''+B.frZone.beginHTML();A+='
    '+img(_skin+"wait01.gif",200,40)+'
    '+convStr(B.label.text,false,true)+"
    ";A+=B.frZone.endHTML()+"";A+=''+B.cancelButton.getHTML()+"";A+="";A+=B.endHTML();return A}function WaitDialog_FrameZoneWidget_beginHTML(){var A=this;return'
    '}function WaitDialog_FrameZoneWidget_endHTML(){var A=this;return"
    "}function WaitDialogBoxWidget_setShowCancel(A,C){var B=this;B.showCancel=A;B.cancelButton.setDisabled(false);B.cancelButton.setDisplay(A);B.cancelCB=C}function WaitDialogBoxWidget_setShowLabel(A,C){var B=this;B.showLabel=A;B.label.text=C;B.label.setHTML(C);B.label.setDisplay(A)}function WaitDialogBoxWidget_cancelCB(){var A=this;if(A.cancelCB!=null){A.cancelCB();A.cancelButton.setDisabled(true)}}function CancelButton_cancelCB(){var A=this;if(A.par.cancelCB!=null){A.par.cancelCB();A.par.cancelButton.setDisabled(true)}}var swfobject=function(){var Z="undefined",P="object",B="Shockwave Flash",h="ShockwaveFlash.ShockwaveFlash",W="application/x-shockwave-flash",K="SWFObjectExprInst",G=window,g=document,N=navigator,f=[],H=[],Q=null,L=null,T=null,S=false,C=false;var a=function(){var l=typeof g.getElementById!=Z&&typeof g.getElementsByTagName!=Z&&typeof g.createElement!=Z&&typeof g.appendChild!=Z&&typeof g.replaceChild!=Z&&typeof g.removeChild!=Z&&typeof g.cloneNode!=Z,t=[0,0,0],n=null;if(typeof N.plugins!=Z&&typeof N.plugins[B]==P){n=N.plugins[B].description;if(n){n=n.replace(/^.*\s+(\S+\s+\S+$)/,"$1");t[0]=parseInt(n.replace(/^(.*)\..*$/,"$1"),10);t[1]=parseInt(n.replace(/^.*\.(.*)\s.*$/,"$1"),10);t[2]=/r/.test(n)?parseInt(n.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof G.ActiveXObject!=Z){var o=null,s=false;try{o=new ActiveXObject(h+".7")}catch(k){try{o=new ActiveXObject(h+".6");t=[6,0,21];o.AllowScriptAccess="always"}catch(k){if(t[0]==6){s=true}}if(!s){try{o=new ActiveXObject(h)}catch(k){}}}if(!s&&o){try{n=o.GetVariable("$version");if(n){n=n.split(" ")[1].split(",");t=[parseInt(n[0],10),parseInt(n[1],10),parseInt(n[2],10)]}}catch(k){}}}}var v=N.userAgent.toLowerCase(),j=N.platform.toLowerCase(),r=/webkit/.test(v)?parseFloat(v.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,i=false,q=j?/win/.test(j):/win/.test(v),m=j?/mac/.test(j):/mac/.test(v); -/*@cc_on i=true;@if(@_win32)q=true;@elif(@_mac)m=true;@end@*/ -return{w3cdom:l,pv:t,webkit:r,ie:i,win:q,mac:m}}();var e=function(){if(!a.w3cdom){return }J(I);if(a.ie&&a.win){try{g.write(" - - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/html/calendarbottom.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/html/calendarbottom.html deleted file mode 100644 index e451708d1..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/html/calendarbottom.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/html/calendartop.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/html/calendartop.html deleted file mode 100644 index 61b9466a6..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/html/calendartop.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/imagehandlerdotnetbridge.aspx b/aspnet_client/system_web/4_6_81/crystalreportviewers/imagehandlerdotnetbridge.aspx deleted file mode 100644 index ad906cd26..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/imagehandlerdotnetbridge.aspx +++ /dev/null @@ -1,14 +0,0 @@ -<%@ Language=VBScript codepage=65001 aspcompat=true%> - -<% - Dim handler - On Error Resume Next - handler = CreateObject("CrystalReports.CrystalImageHandler") - Call handler.HandleDotNetBridgeImage() - if Err.number <> 0 then - Response.Write (Err.Description) - Err.Clear - end if -%> - - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/buttonl.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/buttonl.gif deleted file mode 100644 index ef003aa83fc0ae66d80456412ba559fe60d56850..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 351 zcmZ?wbhEHbEiwG-+#V-{qghX@9*D# zzIOG|vuE#q{rY|H-t#l3Z{522UbNcqZyU*Xh|ML0sw?_|O|NZ;#`0=~X zpS^qY>cgW)udiKw`2E|@v!`!Adid(^pMRGw-n(|?;iE^de*gM&@9vA|&)?m;`SkCf zzu&+Adi?0spTB=!zxu#H7Et`j0@kMkB0+v)V5>R6nBbw4#&tqPNI<}1zF(SF3ui(^ zXxic{9WGL_&khz_tT@HKOm$+!X5BMgPU~i9&*=EGY-zfY9}ka|RHKi!xQw`pLZ^?2 z8XupC$V49vpeaH#1bk#=xw(}Wa{I6?XH#0?!?JeWS|5ISVg4;!e3*Cc+Q}dp5a8tM I>d0UX08yf-(EtDd diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/buttonm.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/buttonm.gif deleted file mode 100644 index 364d5109fb5c0163edd9555a8627ccbc6c185213..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 168 zcmZ?wbhEHbWMU9uIKseCS2y?6$(v_R-#T;p_W5&nE?vBT?dqdjH=o?Q_x#br*N+~( ze*E~|vuE#KzyA2<)ra@*Kfizf<@4unpFe;9{{82#U%!9-`tuhA{{8>|p8*@t0SSWa zV&KqaU}T8cz`)$bEv6AN!@$vrg@a$pBH@68BNGb;pNv7m0tZGW7B&tJfddN;G%#2L E0Q&$?LI3~& diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/buttonr.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/buttonr.gif deleted file mode 100644 index ca6d3ab02dcd5e40a8167bbb282328b31bda771b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350 zcmZ?wbhEHbEiwG-+#V-{qghX@9*D# zzIOG|vuE#q{rY|H-t#l3Z{522UbNcqZyU*Xh|ML0sw?_|O|NZ;#`0=~X zpS^qY>cgW)udiKw`2E|@v!`!Adid(^pMRGw-n(|?;iE^de*gM&@9vA|&)?m;`SkCf zzu&+Adi?0spTB=!zxu#H7Et`j0@kMkB0+v)V5@d$D6o(b={u3krjTJZo6&*c@F5@P zl^IJecI0^XzDQgnRm~UZowU|3Vo_IDlHPh3a}F2o`Ta%`Qd0HmJb~ge3M%d5+JSt0 zA|m~2B7p(|LPFDpGy=KjE6I9gcF}S+slwI; zinhtp4u#SVMKX@XGL9v(P9>_2sd~-{TCVB(?&&5z*;awM3hvcbK}CiEm5!nLj-dt7 z8I@VtxkZJAMMcHMC8Z@mR0;%TKu``u<>ghCmG*h-EOR!xB(%EaFLN(m>r=AAqhx(Z z)mrzm%`PQdT}rpPmTvc}+~{Au&Ano$Pt^|px;>sX2fgc$L^o`RXx89w^=ntJU$X#OP=GJu$CmJ7OL^av@#D&8;won&OXp+C#P~8vOt~bECjYiV z5Ko&;q6y<^l4zgTK#-lgPc&q%c|#JY8Db2B$-zw zSxvIqbcvx zR`zMAeVQx%YFfWGzf)J-yIj({T-2+l_3N&%mZ_{2Dr>cJ(8#E*VK4x-b#)9TlQ}#! zJIt9InVuWv&W&*;<2=a(PdYIpo#acW_)?BQHZ7EKg)*LKo-dYH4J=i&wACyfovp7Q zHa3l{HjS<}kLsJp4A;g1M*7X$^`n40O_O(-+>I{L<{)R0EnFR$)ep}a*y45Z;)+D6 zm#XwKm404rkZTMJOU4D=9feY<)#?_Pj0&w$sWYl{!2Y5$tpB>T^YGEr2TxvZJ>K2= zZFd{6^K5(P`JXRd?CtIE?E?<>_xBGD4)zb;zXN)I*oO!GKgR8?*@tWY!#(^HAj@~4 zhd)=;H)2~(SfV9;ceFd!dJ#2^NW4u!L>e&e~ZY z<{-B4{-_muXW4!%(Pvy5cJ6m)c>V)%5I-WC>5em;o04p-ho-C3Ksj7OHC<(C{V#zo z@?DvnLyUn?b62N0Ef;Q1#|}i?1QDtrRZitBlIT9u>0Wdnq`O7&G4t5f3G9zseDv}zb^fjL5?`dbkP>dC3LclZt+=Wm5Ig2i718HarhPstWQa5hiM=`wyK?9q#}D diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortActive200.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortActive200.gif deleted file mode 100644 index b4b3d84d19c7563bab4d4f430bd7db0f901e9624..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 849 zcmZ?wbhEHbRA7)`_{PA%$jHdV#KXqH!^zFdz$(PdEyBq!CMcmOEvLvJWXLRGDzB=i zpr)s!p|7TGsHJDDYhYqzY-V9;rEBSB;1Z|fl58KG>*ng>7@8j+pWq%@Wzjcf5nud+>kRa<U z-LxgVaYuB^u9UXT>7840dbcHa?ak`jn>TS^@#Nhh&4=Q;kEQk=$m~Cu&~qYp(xKvM zhstIgsh)kLboQD0`6r9#T&P)eslB~p_O$-#Qzp)uHfiq6DYIwISTJW=@9cFG=B{s@ zv3cVB4O16xoV|4O{1salt=_h6*Z#wY_O~uP-n#fy&$3euOD?ysy4JJ$@{Z%TmmPYx z^6>Mu$6jte{d(8M_j@mYIDYid$rHzqTz-D=+Q(zJKA*b#<-)xW7ao4Q`Sjb@uiw7? z`v33WKL*l);!hT^CLIt7iW3I*e+_v}d7*+rf*k^a0s{Q}e0;nUd3kuax!GlMo9D<% zdbznTTI}Ju)N_T~3Quo0@tir$vY~nDSy>tB>1j!c`w|l355~vE#tO%5oV_{I%>0~* ziJ^h6mX4;H!Yz4uIXTX-jZL!2*$&}OP7Zc9jH zyKc;pP3pYwDgiaQytZxP5nq-jj_E75xh>>Qb)VIZ(9t36G><%nF;rLoJSo%y9-$#@G41Md*rYpV9iCprwxC&E0j;P zG5Tpf2{^c2D6tPqLK{@8W>-*ZW32;P_Qn4 z$9O<^$ES(Bl3Kx+ygN79d5LIzSZFfyeoJSqdaB*4`{(QJBOP=8s4q~M{pb4q#y_k~ G4AuY-31#^J diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortActive250.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortActive250.gif deleted file mode 100644 index eb2dfabc55070c9a1bc57ed8225dea9fd3e54e76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 995 zcmV<9104KENk%w1VJH9|0QLX?000362MPuV3kV7f00tKm86N-*AOjF079cGYAu=B- zI4db9C^0-WH8eOkH8(dnJUcoyJx4b`NH{-8Jwr+_LRl_FV=YE#GEsa&M@>XYPD)Kt zPf=4+Q&eJNVrpt?cXxMqcz7{aiZ5K4GhdlCVV*r^ojhluJ#DQ!Zm~abvO{X0Qg4)7 zcbZ>%onm{OLv5!?Z=y+XqC|18N_47Gb){5zr&M~bT79WQasw_}RD zX^y^fj%5#>)b(zI|oyB&W$b6p4eW1;K zq0obagNKowl$4Z%l&OrGtdgFtjG(%lrn9W9tbm`#grUcVq{@z|%bBpwgs0PrsnDCU z(4e)@qq^C~#l^|W%H!kX>+9?8^!)z*{r~^~000000000000000A^8LV00000EC2ui z04M++000O6fO>+0cpe=bh#QKE8jTtm85EL}5fc%Y3}bnNoSS3<5DlWEqzG!a78$Bi2_vd;Jz(jKojCA$;=FhD?n0A>Z4J*yT# zf*$@xyTZ!$wPc$Y0s!dU%a<<(xbaFX^tvtIlsHE6_Fa4duFM=H2qb+)w=hI5a9jjf z%=f~Ot#OeO=BAGrm=>EkU#POfqfC$nYSI$(H6Jl>VNf$>Z7|17(Q{)t#96G%u`etJ zbhh#m^zX^A?&Vw41q@1`P!#C3aD^a29bAFWUTV@fm7iI#AgG`vh|7ZDeIJGXN_u&e z{-9hb0!8Bxf<>XAf?VSjHq1%mWPy=?FM$^teVp6_#)0Pj1P~EVq!UDQAB`YhbhF6u zi%x8K!IMu{q*#PG1NG2D4l3|)!iR%o^MM{{L@`AaJR;%a5l7%4qzzfgAj1ksnnF;* z2_n$Qi5i?mDJ5S7V4;g0b);d&8D?~8Mj2n0A!Zp&EK%kXODLgc5^Nelhc0l&Dd(Iu RVzUXIc;>0+p05M~06XX-t7rfK diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortActive300.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortActive300.gif deleted file mode 100644 index 9afaa6e5f31638731703fb2b6e26803145e8149c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1623 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 diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortActive400.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortActive400.gif deleted file mode 100644 index 2c733b82e84670f5e49319314e56a0abf91607f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1993 zcmeH``#;kQ1INE(XAa_QD{OL`Gg5~VBO^81Y(uLsm&yI^jB-6->%E~Qh`O`V=RPv;MK{(|TI!~2)dZ=cWWL#EnU;Qa`|A>b469Vkp* zPC-e27eWE9s({o~RaI3|)low2gR5b7t7B1G`f6GR%9UyRKj0IMI zzmbs<4u?Y+IjbI~Ynaisjxey6u0LBc4jl7P!v|a2kc@1-Oo^UHC|*_$KBi<}9L3k_ zWWXWXZ)VPkR&Fek9hpp_QYaKU-Gy+U=noQ zI^u>wK>NY4E;D9_8M6z2uG=cQm+Y777?|!7&N&%TN(im?j=$^@d-eRqB4SjFLtHaC zwv8HpiAw-9FsA zL13qER<}Rc8=l`EQP>w%+?Q~rKY`az&m8v77W(9l2ILOki{SWt!A24JC&ZEmX=q^Evm}DQd3e4oqs>0R#ezDp3yMHx&DOPG@W;IuJqCUT{CMqn}5*V|$Li7L?r#g2`$@=LUO0gDw ztbPBK3e4br<;yT<_Hmcn;R`RpOqVLpBaroBaJL?{WXhf)?zmA$DbgX8@0Bm|qULYT zC6}lneJFWa7kGetvuj&2RM}s)QL1iM@UPg7XZ7MzBag1Lvn(N4^nhBxHTPfPY^dXy zjgyb~fU?8craToMr69tFIgbmz7CaGfC}c8W*@=@Awa>jM$@Li?e1|-fNo}UkdXssIE3*KDR$UAft(5&iQguDw zQH6Xn7*fu9FYM6VcV_|S9oc)y&F;c#(BQ1fW^$=-tRiEYAODFI`ZPoGZ!(&*7O_2> zqg@^^oBlyFeo1Gs#vK#rRhjA+tnPhAl2av2IH6?SZeE)V+B7bK2EVV9(8EFI{G4h$ zVlK&KvN7bW)I@i`F3$xltIo)P+H*A` z;pKLFxecjy>e+eA>nQ)T7!Ha~7}WboF=a!-gfBKM!3h~(hJPY_l?-1$HXxBzFdkqJ zHGMOv)M;wgpP$vcRH1LaTAaE^20|N{!^)<0hTGS+EKs*IWdP_yrX$4S)#mMoV^||# zFJalc?VS{VnFk&PD|CDf;mp<_ery}*kfOyaw7|Lh+TE*Fzdi=YxWRe^@8bZWvs%lu8Wlj$u=&aEbVb&DjZQDGUQ@dBJukm=ujR^{JskE^p$5rT}^By~c;!Bv`JGNdMgo>6-?zZoD1k z)xRD0C#C0?_bte+wflKM_#+rXwmpJWDH0lWrg_sALcj!pg?B!q4nc&D;4y27q%X~a z)um|r_FgxK)#qr>J#HM8(FpzR>6!(0*s6{5jbD4y3?qXB)oxMdRovGPb`{3nUM#M@ znj`4kDv|4}OuCoOysErNd$3WR2Cco84Plg7tKN~u_>8ecgpy>gO! z@!H_B#mRLG66%*lG;As9T2|AyJhgLMaO?5XX$M-TuI`$(cJ|_R3zx2LTXT2A?h~8# zp5C9$a14b1D+)z?t%O{>_L#x$R zL0)tdZC#YE7ZyygM97y$YN@4G=9~_5rE5;-wx_LsqMJT^cy14z!;_tJ{D8DD8d31n zAqe9T&L9*(6oaiIq$EPJ8|nL4#TgWxS1Xm3#mcG@Rdq>Ob!l0RQeC4e*OZlO)D^Y$ zCAeA+-9_lDp{<3k7WXc(+YQh+L3fSQx8Z&>o;JbMgpOvITJYp1Ot+wI+iAL+yx7YY z``Aw_TeV_#7&Bv-9%as9w)la~jq|Y;u~H(}J9wa&lzTQYN{x$eT+(1qBpDK~EA@U8t;U2+?9RnheJ02IC83(8obv z4)k^P_jg$bEY?Ab^_^vW$ZVf5+b7M=X|w%HkIgnq>pzxVZja};$KwtJ0z^S6w84M= zQ3FY9;eV6ULO1jih%msvDt*>H*tj8Dn4#*Hy-ujt4C`Jk_eRF=TAWF^4PmJ4~kWn#SmvosI87G{K anHLM%rD~!0da`&^{NcuA#hvZZIQR$0^&S%d diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortHover150.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortHover150.gif deleted file mode 100644 index 17f5abec3b15b18532ae72adf38e8331ccde1430..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1121 zcmcJO`%_c}6vw}Nx$7Dj4;91dhcwH~3{f8PhJaWe60*>C$4H}$!DccLA!nioFGpRe zWH89JnM9isXhf$Un#M_C6(*OL?6M%c#6whE*j?fcd+$Bn^?&F)pZUx==ZEvtIm+b3 z(6Agoti>W+VPs$!$XTqCL$M0pp78O6w-?rWVZ(a7;vW?h6ddmlbsWnjfO`|166!Q? z$>37JrGncFPHNMk-Um)11Dpz6CbBts@e!F)8L?|m;_grhWnh>xI7}H5p0p<-DKsKE zEHXJfDkUO1H8MIiDrRq7eEMev`_t7qM~@bjlzdtK0V+O3MJ_51qcR^Ag*Z`&%3_>6 zhSnw+ufpCAdncy#Sh$N7J)9C95IVtkgSz49fx`et9~}K~m|-1~ISt@@Alw6Q0QJJz z2fhzv1W7i5`XLw@>Sf8ml98o8xpM$3gW&Ij1|gb35`)b0Kj1AO3;1D>#1KQnj9_NT zqL?0ma}4|_Xbkj#agKu@2R(%N7$otCp%IqGS$f3s6QBu*Pry$?m;_ltPZ*kHgemYg znK%WSg5ZE)mysQ!%M4jrvaw`m>A`B}G=zUa(-2*j(F|x7;;f8j8JdGQC!={8ErJ#p znqg_4r9}lTyAdxV0*MT*u(Tvi6ttosfhCd?xf6Mmm7Ojx*Hl-ZZM&&$zp1@_;~39=fX2{q=D0`rW^ElaqRzt;1pOayYuCtV6WWXS3M_ensG&g5VS-MCUS3JkJY) zgg_*Su8@?cNBVzh^D_H%^$wR^KY`UES`ND@G^LsiudADq3hGBs`Mex=hQpTU|Ij@5 zQ9x?(6xaOioin~p-;TO#2lWRMbjRHox@DjuXz_=Gx`TL)$Rt@;TP)}SlI6Q#fiFg3djT823iz5s;*T2 zrV2Sf(JSu^TMDhpekW)wp}7b>XHUBOc2~dqP00BmAFuGpPrK#s&3}9`?yHF#uj(Fa zKG~jFk@v&q`}R~-Lspgh{FU5GQJ>GmG?yMKU%KVDDKdZLyHZ`H$NI6%AddU~FP!X=M>%#}Mhr5E-E8?BbS?5LZ&1pORf%T3Xy(#L!vF&|ASUv5KL; znPFlZ!=x^Tg%cPKY-PBxm*L$phKHva-k)Xob(HbbDTaS%82_H;e1C=E{cVPSR~SFu zXZUxA@!bQ4FV7hMJ!bs(n(^N!rvHB#|9|5=x~=-y?y9T%3XUBvId-t>>$QTfHwymW zE%^JlqNAg|r+;p5--7-L3nxxq`1f1e|9>t2|4;k>f5x$+i@!cz@&Emny?amZ+kffc z!Gp(+o%#R&>bGxS|NZ;NFld0{PZqFSbU-91P8it#H3T*V`tl3#^YeA`_3-xb@=WC6 zp28;HJR?v-)Y);K(}IPIoSdDPI6H_0%xseI_P2B0w0X-`7grY-Vb3*zV%}~>#zsdB z4E1z%^>lR9bu={8E(u!i74va7HZ?wc#PGh}L!Hy-H8h26X0E<|^Ue{Y`^S$zIdlH` z%QbKA+s%pt%b zkkH`C#LT2nz}9=~SdM8%4THnxWxfnDNjy^mbmI?68KvCYveQxBL`2F^F~{8JMF6ki zshQqY0l|lA9j)(NQCNJ>uX)CoL{YXT2H$mGmx$fTaG7mgk!9i{GD9I*a__VR_RiXB zpEfQD#=TC9yEvIAZ*$mvbhY%1o7boR-u0K+{k-9&J>GZof_VaDHj8|(`YW)2q4DMA z75?%DwF^ocS!}Bu3!7Bh`)+T~e{t{Z@3!9i7E``R`R&>9=JAPM?RY&60S0RToOl<$ diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortHover250.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortHover250.gif deleted file mode 100644 index 9787ba76070054129467d2696cbac948832c3c8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 880 zcmZ?wbhEHb)L@Wf_{PA%$jHFQ%fP|GA;ixhBFLaC$DpakV4=ZaXU3oj1co-Ire+ov z=GIo$9@Y##E({gf3}&`&=Jp;I_8vCQUQTX4uAY7#KK?#_f&PI(LBSzONl95*ndRkW z6+l!`URhb$Udqs2&d^`UFtLVV^JIpT^Vtt>WH_>u;pAS1N1Iq4?`CACF@_Ik82+7Mcyfj1$!+EjR~Y_ZX83TM;olvG-)DvYToL|rTlmu>hJTM4 z{=H`S|C#asABI1lIR88n{_{ro&u7sGw={o!(fajM>&GX{3!D88uZcRkIpXM^h@%IC zj~pF7e_^DGTA3uKl`t|GgU;q67_m6=t zK=CIF*d84a35pX2_J0krO-<3#QWBEw5)$IQqT-^WVxl5brwR!R3kq|E#56CMAIikb zy=?i4mCJZ|mapaI}n=d7))taaG~ zcgzo#k9BvrXYXMD$nMD#%jf1V&5hrfYq1CHx^>6#-or=sPoF*i^UC<$hbOtO)A-}< zitT=_jQ;*Uc2CS_j<(&)^%M8YyuM`0!|`$2k*fR0rk+j|RCaFQFTD9EZM{3cj6v>$ z4UUtS^~^R(np2{2UU`CoJr9F|z=Dj6jBfo*1rrv_`bXVt5agMp#L%!hVso1A!^4{H zQ|q5kNxwhZm^&jnzaIA0T5>q?YyoqVY{(1)12WH-45gr$h2(z0le9**g j^zcD5znhPVyln%+ z-UU{NW;5U3!f2E-@bi^4le)qb>08J>;M1VvwYKmefy3aIdb;w*)u=BAN%wBMPq}tkS($Db={~6ml9MDQrixD! z6BiSmBN7tZvardYVd=8vD^{*rDZFTrFK>KQ+?K7|w(r;(7w^Zjt~oxzhd&`Y==h0~ zCxTA}1)d8G48C~Diz|44vkz}Vq|1HhhYuZ{9iKVcy|l5hd;Qw-gSokl8jIV_CLg}L z_y0b4{QTU~;OpmN`zlpAWDct5%->$;{BJ6EMxKIoxy^&8A0`$&T(8T!TlAy4-<$(o zFRpDp{jpD#tMz8n%g4|AJv_Tab(5~Vc)av@j`8N6mWt0RR^4`G8_rZLRzK6PD1U8B zrf`C#ynAWdofnf6FD!IvVPL$pc+E}OjLYv1927flGw)yQ$J)PPE=&!KjGtcJ)o##d z;Bb6o`B&3xnRC6pz?vu?hGVCe6*kJTiH8{`hbY%%+^Kk^8Ib4H*&`F=((#C4I%AJS z(uPd;^?V0|e9uUH?NG2bzosm6%E0%OV7*L&PST0Ko@mADf1*=TLX{3NE^t$2`hIF! zbK+;_=t&)Y53lrY*XAg%)R=JAHF&L;Uwdq@Vp~uB_Nl8Y0}pQ#Huaq4qABo+Hzc6; z=3gNn;mKE1f&?4{1f5u16iQ`-S-sSR0z-XM{4AKxU5{!#qv~V#mOm9;0Fqo;-`EvQJx~j~j TOQvPLTDfA`DlLgd1_o;YS~9N= diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortHover350.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortHover350.gif deleted file mode 100644 index eda5bd781cc5bd965446053c72849ea6fec97d14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1227 zcmb7B|2xxp0Do^RwZ_=Zp-Jm}>0${*IrAkCvvEC(FdQ$Y_i+T^U#D z@|;?E+SyaF?T{9pv@22PYjurov#hpipR4|Zdp)n`^}Jrs^ZM!ailUIV2c~QXp1=S; z1GO61p@9PyIAVdFot=}Dlj|C=$sPE4fIu%0>;rdmb0ZK4X^9}61{kS;nFWe7U`Mk+ z2?JJg99F`D7Z+`#P{_##Y4jgT3JdegGGM$+SalAJmj_Ot0QJRy!@xJNfrtY-s)6K; zv$O>#mDotzanjCD##wpJq3;?{4}d31Fs=g2{lGK;^eXUC1@sRA^bqJLfO!%?YBcl& z4UJ>o%mVW#E&xamgFXUic_lQq(eNP1q$Zjsh$j6e(=5@nNHi@Gr8nu&e7H#;2EB|k z8W`sHIp+6AvkS_ZCr;%RSDoP2oUEwh@px=@HJ{HHoT+7hiq(S3+6KO$NhlQ5H#Unz zBC)ttBIz=|<@fXq+!~rtDwU(7qa%}=xw$!w=K12{KU%FutJQvZZ-5}^%cB27)*CIq zvIUA-o`exu9jH!1TlpwbWC>Ftv%l*$xG>p#jmWZ6R_qnA7OqL>{+DlnWzqC6v0 zrpV-&n5d}v7cU}XB47U-@j5~u^NrQcMu+uodX!7 zb>#Lol=E7fxxosrmg^hBz>1CAC9M=566beAY>^sK<#+thWS{S&+a(Yj>6T>c&Tp`x zkvhrPS(s=dw9GeJSBC$<%m~&SMDzu1I6I;XBFu!DeuY_ zeC^1#u)iH?v!t4_EwLj>Yt!0hPK&zDi!ZvpPyh~p`Ru-I8xsbir|{9PThew!=LR4! z;>NthRT)$Mw^;#$!z!3%p-Xm9rORGlMM%#5&2(vqB(HY)>9Sg<4qd@tZ7DY;x)zZy zWx6sKsCSKHLi+Mk2M)U6)jRn&F!_lPFCffKJJ`~nJ zPenTYifP7(d1<=~^S^#XUuC=-n|=tHE)-^ZDx9dhd?`)o0q0m)*4;qeR3i03!sBS$ zK+`jh`hu?ft7Ky@mqL7Fs|in=@ex^HytS2!`gpj7A0*`XrrCj zKZ2VYx^os;sOOi^cPkb#{ zs9aL1RPg@|r$qi2v-sjKp8#qliJ8J;1ycO{D83oK-aZ^}PfssTk35eOe?PEUWBRV+*!>d=CRm}6yB!*v3>o-s;S z4e^>)d?j5sc0roVzvGl)v#W=j6Rn|x)`&_}Vx{>x#>jMS5;f|TBiq{SZMJO{{;7e! zO=LIj73l0V=|J0sW|z3$SQF@yJ0Zb8Eg;&@DA0-k=iN@4nxVZjLT~nN$?LfIwW!Wa zpNks$RMUG6cUH(ob_E-~N_~V(n+t-Pp8URQE&V#TGD3JqB{sH`TgEph7Be%$5DkR!On#_{ILC45#@eHZ6} zxvwGs_w3phGxz&5!tj;X+`Y5fZ{Dm?R-s$qxpqTHFbD~x`yX}yaec4Yh88PwRS%RpwDFZi-6_HC9H$rd|uv zG2O3)b}pE{^FlC`mvkcXMI&ExRGOLi7pc@>U~eTuSe2x$fR@y zelyM$h%SXq1k+CMe30wLYdv@GFAmYiG zXHGM7tf=dhA;UyMUgkV^CHCzv?Qh$@o^ZGxU99C5xgLQdskQ&OUIR8Ken4nok(LT| z2i=GUb&N??%%5&%M@i}!hh;^#M*zKEjd;?fKAZLjyQ;M|q_Rn7noXbY4Y}gbxH`OA zer7c;6F&CGq(kGtS$|K*HT2UXPlu9FRtv+a*h6txm3B(!>v95zW7A`6MI6l`U+5U& bn2D6*1!t#}{}iQLExr-lh+LdV2C)AZ+znjH diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortHover50.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortHover50.gif deleted file mode 100644 index b0e5c02fb0b42835a77dae5d9340079c12f1a82c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmZ?wbhEHbDFuRdq&kT;uOPNmYW4OGL`R;b+`#YGQ?_#}p zl;PeX)?3Hezny3Je4FXV4Tc|Y8U6#&e}=VlLiX-1IlMLW*p`r^yTgwk47hQl{?48H zhxh6>Z|c2u>*DQOmv7#I_|RnnMW(Ogv3Tv6AaRXs7MWyAUJ#W?76e&FP}Jf_4K8i zH?Cd1a^vom8~3i>ym#dCvs2feAGq}D__bFjZoR*G=fTapPj20RcHz$J3wPfgxccGH z^-t&TeZ2PI?cFDDE^!ckG6t5ep&;7QL3_p@^(6=G6279D0k*I#+1BQiLdSyaxVs^+TZ zME-f^`44&yDm~$5?`Nv-;#ip2)WRXaXT!0;Rbhd#>okq9NlOYRDfxbqnCCOI$brEc E0K}SM!~g&Q diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortInactive150.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortInactive150.gif deleted file mode 100644 index a931bde7eeb09b8458b262c554779bc106e4f2f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1161 zcmb8u`A?e#9LMn{Y-A*Akbn+dv~wXDun9U~1qyV)L+Q9rR~#GF3a$$iFlOWUVSr3C zkrCVlh+}akunoE8?)kK(T&3sJyQM8Hw6srwmb0b8{0n^Lo$qg-AHP^!5-O5#65)f` zMj(9s{QUj>k!LRihg=8?3kye~BO(urxfm6Lii(Mhj*UXcMx*1x`mabf7Bm{?3~ z93~B+cz-Q-Q&Bqtw3knED*HZDMv;tCQ;Vt}ErB{i!a*E1`#W#p0H%q^( z_`3AY&9d91@~Vo8ikh05y1Kgh`udiZmbTWX?QN~??QPFG+8ZBrwmcsi87I@Il;{0m z_sDeb#7y_t{MaOQe2O+frcILRQxy6jW$xva=oMM~iX!fzh+b15GL=rDGAK002%Sr2 z%=S_@r^D;9>4lgJyT%}bcTUwOr1J5PgmTE0BokgOBWjd>3*{U|cq9q%o-xTW{65YB?XOrqTWy_mtqfNT( zP#W#3701#Fys~OGnayjKBUY;whGC7-rdwUtnl|*Njb-zu#$?y6Z5!6?#>1@JE0#?Y z?9iC^^p+hXyt52D&9<#I+m?BK*R-*3-PkeP-ByRoX5Zb|+S}aP+uq)>Z#&m_-Hsin zW7lQhJ#aYPJ1+O0^I+fQb{=s#UH>_F!+qdBg7}|K?;d-zICpf9egbjg0HN-vX4g|2 zyxu*9D(dW9s{QHsJ8xkwSv!DVBKOcFFpKvI@UypHklpy;84y-gIMk(sqRXUR0rDS$ zA9ts>hSCTLY-Z;pxS*=NxDg7~$IfUv9K#@eh2MB=K+^)2zhUQlK zJpftzZBO=xKv&9>;Pj@Gfpx_Dj|WP+Jzd9}6pe_WPir*IrxUyo@sb~JtbdP8Awv&2 zeICBaZ$}dSufN_4J{3-y%=WH?EQJr=Z=)v?{*;zy68`uVsQyOFp7=Nv)9v+Jr3o1R z@^;U7zt;0*c=4UV1AMur>AIfiQ$1|TZ_aoqUb9YBhKv-0MI}8!4qX0U7fCZUl>-e8 z$j-O)ZeK3#j!qoEdY^Jo>ecE~fUF4;qOGgma0!kZKzZ q`%$HY0QlvF(miS9=`nr00 zs#*qGdd7N&CPpS^re+paR#v*^E{0Za#x@?#PLA$AAz@*mu`$t!3Gx1sDM3-mQOS9+ z8Kp@{iJ2MciRt+%*(Djd#o2}BB_$=Lm34&`4VAS`y}dmX`uiqL?4LS$;*4pNm#*8n zcJr={+xBeTxo`jeeRDRQTeIi4@?LD|<|JjAxFD>7Fb@je$tM}j7ci`~agEzMx zy1e(q_031`Y&&sp*Xet^&ph0J;mP5{M-HF8ee}ZpQr6;GaKRbKl`H`!y zPF#C=?$*l-*B@NC_58-YXP583K6dltwTEwSJ$`%c!MD55KHPcn{o2!?PoF$_@cjLg z*Pma$`}*kJpEn=BJ^T3o?dPBGe*FLX_3Ov4zrOtW|L@;FaL7@CQ2faPHbnXp0A1^QWByJ8~cBQoDS*nt{nwnbLi?p>C>S*h%T&b(8EjDvj zld93it!Zh=I}?)=6XV5$wx(}RkBtk94GRtQ@%Hj^a9d>NqOhJir2dpMH9u`#)-pqF^ zYlF9u@oW{H9Kj_A*X-ZoYc9EFdQJ}~TeL&L1tk~RxTy)d+76o^JIcTx)g$unxQL-s z_0vsvDw@t2ICM?Bn>6oJ3fKOU{~JD)Sowdnz2tLF({ZjDr%h%0sVN_u0%TsQ`=(uf zw{h{IEMH9~6@v*68W^9OExxVduyDbP=*rrGPdHjwQjG;4r TfB*3KxRmz(eSaew85pbq^0sY@ diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortInactive250.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/DownArrowSortInactive250.gif deleted file mode 100644 index 84e09794e290a8978c039dbee840b2ae6c5f513c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1017 zcmVi-C?_T=C?_B# zEhZ@~D=H`{F+4RiG&nakGB-XuJ32KzM>ju7I6p`{LrOtLO+`sgN=;EuQBzV=R8m=D zR$ggaU}slgY+7P$Vq#)zYina{cy)DkczAewh?s+egNTuxl$4Z&l&PJjvXZ5}mZ-j? zqoS>?t)#5Bpsc#6uehwTxv{pqwz|H%yStaF!<($ap0LNEvBjsh$f&o-ue{8*eh9=|00000 z00000000000000000000000000000000000000000000000000A^8LV00000EC2ui z04M++000O6fN+9>W*{0F7>F2)7#EI?7LgT`6%!Q_5)%z4YlEI`a3}#04yC52s16UN ztE&+R4xX}bCM2`BxUyssxwN)wz-MM>UBz3+R#;V3R7*=xNJvLQN-PFcx1hCfZE9<0 z;9y`~$6Hlc%u`E9OGigPKSMSJOS#)^YinrWW#e32SduYo=In^Hcq`lXgVokc3k{Iz$63Oc-KcwqVg&rOJ|K zO5DZkSP$2|HEzyu>5`>s&ni%w8A)=42$79fUm7TS>zBK(?&evJ#fSlczA7 zFOdFUfdClM#D(3vcWbl&P=blZBMG_A+UDl#nKwNKILXz zV7@H)FeYmIcG=0Jz;=Up1>PBGh(pd60GY!~679Vw88*u~lm~ n%s{6MF}$GXo-e2X!xp^+D(E0J4r=Hvg&wNtqKr1`Ngx0_^5F)=ziIz&W6PEJizQ&L)5Sx8f0Qd(qGUTa%mW>;WrTVrl!W@Tb$ZEI_5 zU}tb-YjbICbY*UNZE<#IaeZrZesXnqc6fSxe0*?$mv)Ale2JTWkEMZ)orI8|nVFe| zlA(;2qm7uSlbfcLpRAalsFI(sm!YkjqpY2#u$-&Er>Cc-sjjK1sidp4s;;uDu(z+Y zxwEsgv$wmpxV*c(zNfOlqPNkdxznn>)~dePt-#u}#MiRK+qcQyyUX6N#^JNcAuzT#KgqS&CS!()7;(N!O!5t(&Wn4<;>XU#MSG^+3wBS>CoEd+27~X z-s{QS^U&Y&+TiEb;O*Pv?a$%%)Zy~o=JD6(``YOG}00000000000000000000A^8LV00000EC2ui z05AX~000O6fO&$0c`PI)B#9%7BOs0*kR6g88XO!L7?&6q7ZsipJ!^!cfCq&f_FY;Cr;xVdk;Z??R>yKQ+o3$UX)4aRwRf_Ti%(9U;vb=B2$ad|xob;^P` zvw3lGb8v2OaAjs@USVNc@L5muOG@=dM@K|NNG1hN-tyo`X6MeFJ8|G7Oq0eAq%Dk(*VGR-@teR8)EBMiM$^$YF*75eQRZ9#sg? z0UAqmr4(bP4JgugRjmcb7YG1AMRfsmphk&IBt;X7ddVk9a|tc9RvKSu5P%g|1pdH* z8b>ivPdz+x$5(woG4v1~A`n0T25WF-Q9U#Tm?CZjUI+(UD21^F9UWNEWkp_{C}COQ z7-XhZ50$Y+8EDAG6+QOUR9cU8{y0rZXI`ZeTw7%klaqm>cpEIp@MRF945_4MOGaHJ z=XTyyT988KV7N{gUtksw7M(5epi*}g(S$#f#geR8&+j8l zS7L8lV{KPsaa?9`VrXwHYY;t*Xb$4=gdUbewdV76fZh?M(fN+13b%T|7 zg_V7YmwkzugM)&Ki;IGen~0L0j+dd7o1~earkkLqo};Lsq^YK;tgf!ErLViLv$?Xe zvc0{%ovp#Gx5J~g%d@=3qPNkfyVR_`)1kT8tH0Qw zuE*%N%jCPv;Iqr=ywU8#!^FqO$jr>lz|P;$(9qf0*}>1@#M0!-*5%9C=fc$L$k*z| z+3(HS=+N5d)ZXmF*YL{S^26Q!+~Vif;OyJv?$Y7(-RAJt<@ws@_}uCF{{R30A^8LV00000EC2ui z06+jQ000O6fPR95gL6ARK07*#IypHwk2W_qHZ_(tG?|$*oHH_?pD&^>Eu}3iD_&B4 zgsrW75CF2Xw6(UkxVbQ{yoCS|78Su3#Kp!H$jQpf%*_@A3%$L206)^#*x7y<(X86k zJAHiOed2uMdwhH8>+N}Xczf{hcJ=o6b#-=eb`=VF-m-xcq;5~1Joyr)VZ%lZ88U0g zc$rsuW4n2M3_2{N@to zx`X~#v*z5%vnyCGPNd{@Lbhzvr%~Cyqju`wIatc|nh&;||DNz7P{nlxk5kLkjmeMT%;s#kBagmQKX z$ECLQd@zrmI^}q#$AEd7FDEHYsJxpRlC6ru( zi6)(J@`)!duwcYT70Q+thSGTFM`#Dx;YS0xjKsp#T5~VE$mi z1xz;Sq?1clzzqN)d|`x-+Hn^oK{Fwg2OJI*pv6jrz=6O4LbQe@U@%UzAB}L;kw+W| z08qt@tOWQSOf&kC1popVL4|#1uYz!qL`w61-YVfOB!gwcwXTx=}Vg$MyG0EZv_{{HL57LxS^ z+gS&1Ib)*U%H0zRC~g%|0H)uVkQO<^36*vJZUK3I{KMi+MkA;8HLZ805D zYHljqc5U)9)sXaxTpD_B^bmmo-G+ZPlCE^5LcN zwMes#?9KVefm0lkNB5h2!ntap;?jU~&K`5v<9Qu&oR`LV>WRS~P}9PPMHBKhk;Lyw zj8udWPoRamo6btphaTnVVW9H{Ca7Q=)SF?(8rFyLMHppJ;r$e!XW*A@i~wMO0tzRT zpuPzsj8Fmz@RK0I2qK6Of(RglpnnJ*fB-@V9pC^50=NMV6i@>j*nkE+U;qXjj~89sEKWoLVg^Ly~T(f)Wx}9q`@7cI<(~j-i zw(Q)$bJy;fs}Idub9lp!Lp$~y+P&}4_I)SzA33%C$d#?fZXY{;`{aciH*Vg#dGpro z+qZAszH|G|y*qdBAGz`V!K0^7o;-Q<^u^0pZ{ELu_x}C+4^i!VoEWA@-mE7Pk39Zlx0|WabMe Ue=-nYnlH++`Cx*@N(BaM09Lwt?EnA( diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortActive100.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortActive100.gif deleted file mode 100644 index eba9b24977879bdd2202901e36b2d26af0f217d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 583 zcmZ?wbhEHb6kyOCUP1kO4?@1dN%wjE(+$M zO6DP|R-u}<;i5K$x(*SB&QYdr(dHg;R-UoeUUAY6g))xCGL9v3P9=u^mG)8fu3@=> z(HZr1)%JO7t@F3I6|QnEUguf5KCp6)OX)VxvQ1v)TU^U_xR>v6tJoD@w>h9@YjFL} zp!(e&H3wpvwuCh94QbjN(X=zMb8kl9{(}B((QOA(`VMDLJeV{2SkaUN#ZwO!PCZmM z{cy#MLlrX*Rn0nFJ^M)2>|@n)j@8aRUNYlk>8z8r^G{XIKiAyU*w)h2*4o_O+T7aG z(%#zA(bnA8*SBK%(sgTAtzWx({n|C_*R9#Oer?nI;|+_>cC9$yzxw=?b>~}FT${D& z;+!p)R~@*s_7D)=U3>WMy2JPOpS-r==)(=i9v(b(?ck~FN6z0rdEw@vi%-9O`}*}8 z1bqMb^ViQ`An@nUpTB?q{sV#kKmZPJ6hiSQ3z)C?pWDwhB-q(8z|~04fSC~}r~{G! zMH2)2#D>bI=9bo$;*QR))*$Zyp9vEJC(GwIpCr&UcX-XU@49hU*cET_*Y zZY-jpFRG|7u4EvgY$&N>D6MKFqh=(hZY-~1te|0}sA;04WumTc!KLiRqZ!Dn6~wC( zDqSXfnAVUsx7B4L_c%1q0Yxpuj$?F%;tP`og>Y+*?G;)sgH5tU0~YL>*-E^{v4>|V0b zv1p59@mA;JEl$PTJW4itm2dQ|-0WMm*{^Dof7K?hitR4tyS*!S`q%96uifESvn!xx zOGxdOp!%Ib^}E6wwudzCi)z{t*}NyRd2d|D{`ijlNe#=A8<%IauFPp)mEW}{t#^NB z-`>K$%~g{(7fjk$I&Hsy!=aGoLs4x9qT3I~b{>rAIF{6XAf@+UO7D^6{u7xK4rfk0 zmOtfa?$i?nlMj?lJ5Vu|-aBeipm*3LazKksPq%#$T^&R5Sp zSv~J${rr@pzQes0%_<-VH-kDR#o z=-K^8&mTN_@%ZVB7q36OdH?12pTB?p{Q3L$@4tWl{{IJ}|IpMopp@cI7O?$_|GE8K zLxPY9FGqRHAD@< zGVYu(JjT^;%yY>iv}cBA(lVcKQJJT%XapHe^wRHK% zd&f0?CAIv#x$4x>l$!dh@ozr@42|l!V`%$n1VfSly@T z&kMt-vcwH1QgZhlc@ePCA+M!x;T!4CTl~-DIc<$vy0S{qG4IA4!Ou^*Bn0*^ziQFe z#W&ZoV3AFx5=#fayv2ss4>7V!=S(=*BpTpwkVVkp0RuCiO#)94uxzmg0Kmf3 AX#fBK diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortActive200.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortActive200.gif deleted file mode 100644 index 2e03498585d1ec42c744bb333384e2c3c904d63b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 845 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 Q$ed%{&?wBx%EDj`0KEGUTmS$7 diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortActive350.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortActive350.gif deleted file mode 100644 index 2e686ff98453623a0ef401d1fc8726aee30de7d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1777 zcmeHG`8U)F0H1M;?-1s2j&nlJ81ftu!wfU7Os)H7C}J2#L(QZiM@ZuqW|_&6BXZ>^ zCX-`1mXEaO+NQ{rFg}=7B zi_uwkQ#()fvte5HWJ_YOjcf2JT&$sUtPwHZ%st-vLV_kP=@gM>;z2X>pjwiWY`s!! zeCW7~(OBOUd;rZYBo!aba1BZG2&Z3+Vnjw=in znf?A5kA0Z~fmwrLxq}h;Los)Glww{|DbG85G%%MRTJT%worx%xApGtGrG$T_d^)+} zIqjZ+!5&MldC91qj;)+as}s_>vyA)mV>_y=k9Q}}rk5O4$% zg{l%eIs97y(jaJ}lRKIV({g1KyY7z_$bg}*qKn9yEEQb3Er9s3i<`U6K`pwn)0G%< zUsly+7S3JkIQ5DmoQ zX@_)RE0HXcfo{ej#z#>eN`l*p349T8NrkulRbG9n4Ns|>H8DqXdg-=bM>c0>v0EqA zrjUkyY`;k!p1!}jmc6iMx@wh_je^r86zPMIw-LQ#`%W_2k;Q><_m$LT*|of-&}%2) z%l<1FX#{sB%62Sa_HJ01@%yS19W)0qu;^(Ya(1rFzjN4ilGW~BtgK)`zJQt zZS8$hyP5{QP_89K4jQRa2HmZ6v^-?7xr#U%hF4)u6xF$ zQM?zz3At;t1Dig}<*|Ds8oZIwj=jd$g)TQ#7X8SSUD?0CeLp>%@Ets%7AQ9~wsCg< z@C(wB;FD5~mE-!$#w~=2z84?XCuvXw@LUyiKOZs~!Q_fh8TPn4O=Cvg1v_{EEs!My zt?fAw3NJtqrw2F;sTcht&%fy7>oTD_Wnm)F*DOq?#GBN)3<)%~lMg{-sLXlb6Ssx; zmqZj37KHM4R<>#G9Fja}gAE_)?S`I%>S*#M`nJHb43;P$_wK-g3WgnWw83DI%|8s% BWIF%= diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortActive400.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortActive400.gif deleted file mode 100644 index d1b51c4df9bc8a9bea6eaab3525f6e5414e5e2f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1477 zcmV;$1v>giNk%w1VL$*d0QLX?000052MPuV3l0tr3Jw$v5f=&)9T5={5*Ho|6(bHA zDiIzo4<0fQA2SpnFBKs%8znLxC^IcBEg~v3C@wcVJUk>dODQ)>EICRbHBdB3WF$v+ zE=+SJNO&tvc`;3MGf;InQ+6~{d_zM+OG`^jUw1`bePm>0DNlnvT7W)gn=xjsJ#DQs zYqm9QxI1#ZLtleMV1h|wgimOPP-%x&Y>8ZPj8AWwP;s1TdXY_Vpha@7OLwnOb*E5v zs8@TdT7IoYbg@Zxvrc-mLUp@Kd%RP9wLf{uMtQ(Ze!*9Ow_Jj=SAe)%gSlUbylINE zV28S5iM(l!zHgGfag)7Og~D8i!Cs2QWRAmTki~3~!Df-jXp_lvmcnahc6~ zpUh*D(R7^Ad!WyDpw@e#(5|kova+(fySsp&#)F{7grdocrpt_|%#^Lpgr?GsuGf~Y z(3Y^!oV3!Ryx!;M=j!U}&+1T6N*n-x&BodI*XrPJZ=emv4XSsB3ZuV>VYh+*iUtRxN zv`CRMMT(OqQJgSgqNL%FhdhJ`3BrTOg9JqINTVi5&KEZL_<8x_rHdAm0|!EJ!m>$2 zBT61VoVX*%4i-39ykKCUg+_QB^~_n*rVX2Z{Qmt*DJ5Z)gbiQH91^5z5S%!7CUEhS zQ9MC!*034-MNPkwOQ#52`BdRTCjL{Y(!|Qb#e$w)7k%CHW~@=9{**GsVlW|-CJToc zk!kfR))x&7aNQ_Rs93T{m3B#~1;>poP@ueptN5W+B6N33&Z}r|*s(|Xg+aSiOO!Gi z1T4t{1#x1T6RoD^IT@(DJ#%2k?x%U+7!v^i6aa$7$lJw?h2LZWc{OE0$=UqPEEr6T zSOk7Ju}->lWA0fa7xx-;C~Ux*wV0S?fQJ)@F_|XZWAd?<$X?-L#+*`MAV3QNJX{eV zW5LnoLV@4uA;)FQCH0RP7ex2q4ebdyAa}$Wh{#?W64hZ~VPIfObQy@j!$XU`_gISG z?XjVF%bC@M88V7kO8_BM{xOw~IJv;URw^EXAcvX7Xv-`hD4FAlD0*icSXB12#uG+f z2|#ooC`lEUFDT$8eaCHRRBT?bL4|{6&XOb#J4obMRy=;G$7`6`=}exopjkytRSoy1 zUL5fy)?Z}YiKs0cB*7?rUCsyTaS5*R1ssQ7I!kmM5V6B{P4eVZkM^;l1{@`nY3eL0 z6tU`#kG2*mp<~q`z_7#y5CE~m0w930#TqL>02xdqgrlDNTG@|evEjwGRCHU=6HT$? zL_$WCyOG?2bgi1t=o zeNGhcmy!aBpI|BewUzKfh)oq-qb%H{TD1p88taQn2~;t{qm{O$!*zAqZXvFPxnOMv zk89XrOknpAqkp>GV_0+cqej6@S?pF~I&W-Ypm645UmK#H)m%y|jjNDvDi5)$5Ukeq zB*-fU^@bX2kd2fVRCGZ_K`DvLl6B<{abrYVcm46pgiMo$Aa%qMha7RhA-LdVm|+GP zU?dL47FlGm#THjYegzX%RMA8gL=>Sp5u68c1cr_9BEbkFP%y#isG|-+1gt~g`s=Sh z@Bjp|%TD_P4lJ;M0=h5IfB+1<3Qq;6-fFxo2?!4l8qDWl!}B)OAieZ7R8NBp*vkMz f4BW$z!uJy?h#>y>B6v`~2k3XO0SYS^7zhA6$Xb_b diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortActive50.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortActive50.gif deleted file mode 100644 index 8a576bbc5990650c03f2718281ec09afe4dcee80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 290 zcmZ?wbhEHb*5!LQ-wU#m6*0Ejs(bMcxrdp-UwN6{;kl5>+ zKPS9wUQE@(q`C#wUGvkMmuI%E4ro2qGG*1|*-QK9Z<)Gq!<0o^SFhjFwDR_bT_-l~ zIko-pr7JfdT)p+++N}rI?>u?&>dn_r@4kL||Lya;?_WNC{qp(y*H7QSe*W?GK-NfW7+ uQR_mVHEj$~SajL#a)b|`oT$4HgM`q$5OpUB5fR0(rwt^f@a{812(0ImuMMgi9V*MV*TjRVFZ6EDba0>26L4`4!Q2nx1=PXne2BFThQ zG{R(885+^x8iVT$zrkb^4BgToWiV@`yb-Apu^wpy<$HVkoR2y06VB^)4{+Qd$9XxY zmvecYuBSeq@73!!e*dh0bZ%5ICU`eCJ|7FsMMHs@ARO3=2BItPQ>pD#Dw#~CGP{2> z89_Rm&G0-=DMb|E-lhK&;&lGrRE!53wKvRal}TH9{vyfC{Ux`^y$SX|=NvA#r{7~6 z9J1N%w*FhqZEYN`no!UL05ai;<9!%DdqBWWwKMHl9GGlx6Mk0 z=0M&_X=z1Z!Bnk13{WVO%y)lKA6Z+HekEJA}(4kZIstJT62wE zz#$cl2D2<3xO)*to1|Ny;R9VC?gQKrae?dMloHBA7wCpO-E+_Rbm*_>z1Keb?EC%Y z^ULS6b9Y8cs%ZscFo(r3hOjW`G&*n`!Z}1lKp%ls%dt8RLNd~lAtZ4^3WQV$TOn+N z@G1Q;>H~fCr}(Cl*}lN}uW;=L^jw5^3DQpxuVC;BB+XUaYlnCplBSIl zJ0RL2-GpR^cpK6!NO#fagy@9ihU9_N%?5iQ`Sd|IWH;tJA$LOQ(lEt?5g%Ll6`^h@ z-Jl)~Q+mRJUMRhwUZ`G>*7t$>nA*?O-#F6ra^wvU4S;+IiHt;q20gW*{(;)i!&*m&)n&K2 zZrNP7ZLT{u*Ilh|bUJJ>!F&Gk`>HCFDu+TLMT<(R zs**O)|2u0Ixc>%RLr=byo}DGUk(r+O;$|Jw9$#4eSX>iCs;G;K+tpIvQFfnZ;R6qcIV z@?&S~rJs{bVp{R~?)ZJJ=_}WnQVzc|o*b)pSxxr)zqD=n>qcf(G#j$-tbR7>!wt^n zs~5#Rbuj@`p5F6qV$O}Gcg`fNXnNCGx22?@(SLf`@z{;0M=OSR)lBdBME013jOh4P dMZRJ$vsXmT2euDTVMka5Z(Qxp)Go=ke*q;b+(7^U diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortHover200.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortHover200.gif deleted file mode 100644 index 43414a350a93799a0fd2948547b7686bb4c337ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 780 zcmZ?wbhEHbRA7)`_{PA%$jHFK&cMyhATPn7r^cYG$zY_(V5P@sY0O}4rC?xWZf9o` zVaE{Z$dKa6P?XM4oXL<7V(RDTo0t%jl9HUCpIcI#pOaf$T2fe4RMk?<&|1SVv6OLA zHN(VahKXH_>t-@+nai+s5yQ5X47)ZlT-wQS_cFt)(+t0kGJZPG@b3)c-&35=Z!o;N z!SMGo!=KxXf1fb?eZ%jhtL6#Tqh@c&^!etuJaaZ^E2 zOIvHp@83PYe^2}Wf7XEm`~Ux6`sLY{-FwdM+jsHOrArqt-adcf$^ZXP|NZ;NFo=QT zPZqH26#sMkxrPKgI|jHK=@~FH0tIzI5};^eVE@NKHgGllIsM1>@+ZEP0W+AdnQXr;|kYpxDS4=+b&$E{npY}vMXm!M0#n5(_v;ll>{ z$29fzPHSpuX-xc-CFdfM8&7FQgu-#luhs$lZ)l%CdOp66|1 zZZBUS(Pd>&O46BZ?%!&eb!|gtw<0rRL%SkNS8>?8xP@G0)nP zHapR2rQclUAd!>;=D9qp

    r)IBd(g$!B!Bbn2?Sw%d~7TH^w!s2xP1r->%@7j65Esr65+qO*%TO23ke0xZpUhB|&QOxWP?Nz>SI7_= z8k&-lQeIwGQBhu3SGR5s!~G2`k2Wzs+Npm22*bsr43Cd9JU_?q1YnQ#^+zuE1T?%ftmPe18oj757`i#jr6XS~}syud` z_J_<3ZyOriGthsi_xQ2yvuD~bRk*C%C*5$fG`ekY_ufN&gC|e*o@?vAu80wy)-1iZ z+8|=Vh2!V%?{8p!EV)J8kByC4M`GKH_IC@J8r$v(n*4a{%EQONpy2Vb>HdB(IY+ss z@Par`Nu{7=HWL=b@2`K!pf@42!{F*p#$%Tk z2ndGGy`Fpf(%P84Wh_4olN|Hb8>ub0d+Tee&-O2m&bjV>$a-dXlKZg<3lrbp;nF*> zjaR1sO)E18pT|6(N~5HsF5IEAXKvoJty=j4$QcRAwB&L#BedB1=o)Bpd14hQBp2#91XV0B?-Vz34P Dsbw$! diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortHover300.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortHover300.gif deleted file mode 100644 index 35871f30eccdfeb717a0ebb6424a3c4bd5ce3991..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 991 zcmZ?wbhEHbG+|{8#hvD^Jh6_g+E}md`dxYWbDTd$282+ANczc=Q z?Hz`HR~WwCV)%EP;q7CFe?at_;s0lb|Gydj-&Fj6Rr~*Kof*@oO`bY;`SRr}R;<{( zdGo$~`ws7#`Re8FqeqV(J9hHasZ+;JUO9Q{+Rqxx1VcBu(M-;tC5}oGb2z?2P6TCCIJ-vPX6DCfY zJZ0*%>60C8XWQD$nLls#!a0lQ&#~)qWLUjs?Yi|F)^qk)b2>V@?%cI|&)$7It+=)v z^7cG-{KUyqr;pilxOZD~d%KxjGrnPLXk=_;aL?eOzP^FpGwm1JT3Y&&tY#N4dtCc+ z{ie~6pAVlt`>Xdt&rIZiVE)NHRW~<0{oIx>Z(q;ADipHCSz?mZm$Vzf7LQ#I*XkYm z>do$)WYT@jKSm zwj?7k=h)7T3>^~|ZdD84>mwLi=cCmlfkms?_&Nt%}@U#9M9h%(Jsb1)iQ=kE#KeE+qL|7(731lvz(6mo!`?wzTHq4UUu1hllJd3@7@;9)^DEU zEHTxwB)GVhMLa%)OIKyGrTg0OS;ZP(r%Y&)pL*Co=enSWM*&CXlm|}t8(Oa0GwV&2 zt*OgBGT)A`H)Ikczu1fhA%`Og$vnCbZa8u4e0h=FugNl#iOYFWLJFtq0_}!_jD|vw t4wnQR3Oc~s^CW7l@24FG8valilo diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortHover350.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortHover350.gif deleted file mode 100644 index b90c898e7df7e64de2e1477681c753d15d824b5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1195 zcmd6k>o?m69EZOdazkWlt-C{vGSt#(V>1#G%}`AVI?6B|jS+l0n(T9>p(HO0^!m%3MeTlZJ&^YVG#Jm-8)eC0`Tj-Y@oYyzNApos@< zZEam57#swWA&^W7By+GMfd$F(=uxsS4gB1J?FG?+5FG;N!XZ5gGE(4NOk`Ya)YWLn zjYSnFL)8V8Fbg=zWPUD)azMlbQ8`?%MoIHPTm(%#XefuK3TUo|z7`mI2*Z6K?}0Zm z*c^o2LD(M#WK>5r4k`s8Pj!$<9b`&xQ3-2GP`v`xG9c?HWFL?XoJdIDm{L<3m z%F5Eay-fr`;D0dl9rgbz%n?mr2HW3*#$u2i9Mw?&Lc90k{Y`*TW&3k-uIA?D7Zet8 zdBr6^mX`fgUQv0CU*hNIFRZB*ibXYIj^KJ@RZ|noM|$gaYulY)q~0e>d~wj#{ouEU zJ-yxd+Crf>9MC&3EE^epBA4so@eN!bXy!3-0|mlKmY)}GZhqd)jk>t#`nT)qn(LPv zn=Y<~Xli}otiO8_wm^G5|_tHDxATdpRTY^PVXy2^TNLr3e(-6&|&&=Qd|bnzH! z6wAaJZRjI;vQV7wW$lo#$hJPkU`z2%%+^mlj8#_0W|+3g%LBYqn)K+m>+w(P&KA$c zf>@n!Gp#x>vrgVJ?v8L&8phk`m!WyzP{w`MZw=hZFyjlxIxW5aI37QKZ}_|ZXEH(c z<&myu`hPW3Pu{kVC7r+lDzl7Y7r1&}Qje(|S-tRcpRo;AofJVzmkI0*^F1$x*q5}N z$IVecbkXN54%o~xMht@d=vk9fr8Os6y)T{wvJ5OVaoA|f!mRB@pn7MypQBY*D#W%(2_v< z4{774BZ@z^xD?r(`%!$(eR@zvRNT-FH;7{DR;;Wx*o3A{Zdl#K<=GAp%Wc>m@r@QS zBB4P?t9!i^@24*4X)ut8!?FSnYaKsJj46MtU)E1Bqc73g&3KMd%tZPM4Wmf^GXZOq zMEn4wj47pI=gHYUjRl{XXP2!A4n5*JnkM%XCSrs~I!!Nj(J)9NG4Y-SaK&@dhirS)JXA4dwaB%=4(bmlwJl$cn8?s>q;^&1>sZ=_h&iV#ebO_lD;ah;k zMB;YAq1}+Y7g#J7o6U}okIzj7i3qAnpjHI+B2bD!UJCL`s4oZQ8BkV%QU=P)pj6ms z%8);2 zq1ZTzy$5U#u=nWf6bYLlVRK|`#$BOMD3y&jZnV!%4H*muqtQ4!H9R>vIX7$i_;DJ; zurH(kFGiWceW^mh7KH^y>|`;yf!=GqERg@gHJ`!fn_z)i$W714%*xKmJ(VZQFAx_N z6_=bobGGzcS$RceRrPsE#dc|}tWJL6;w5$wXDM90)~IY!HMcD0a>Q(~=(v3wZ-MXb z(5Ub9sI}ToAh(G_kswZc|5M#Se;X%E|9nt4qx&^ z|HAQ>^V>tYYUgrx8@Bp6SW17%Q=@- zok|ZYvdM@qIz}<@fXUrwC+%NGi`|74IL$Hro5&;w+WF3G+LHk2r~YljV;cMI_ozO%QZV z>}oexjP1Aja6TKTplV1EC6q&QZX?Sc+{i$h9l--W< z7(cv86)%c;Fw%*Jcf`jPWILsL*u1VIxPgn1ASnwp$|&DE>-3`wt3xl5^CFOaTM-=I zl~F4WTJ=U&K;#O61S`j4mpD`GcaJvwo`EiRs3Tf8)(KeF_1=c^08ieogh*a^P9!ge zl4TcbffA~1{E+q4@rUgr1qrb!QPQi*qh+osyKbE=kE)_wHyp_=mDe=%R4gSm^E*yS zo1Q7`8?I-!ja6G$Ws|Ctqf$f)g|Wr+B`$|ILvCo6{_yr@@51PY)(OZI Yb{=8xX}(E+Fr&sauu{$CyTayw0f7G!S^xk5 diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortHover50.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortHover50.gif deleted file mode 100644 index 3052bb657062f25398fa888028c5cc1f247e9874..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 290 zcmZ?wbhEHb<3u!-U7E`}@n86Iw8 zc(Q}_^iCcO>h=;mq4NYwq2y z+r4Y%^CyijAD@5m=+cYFm)<_V^#1L$m#_c6eEskBo4>E${eAoH|GW49-viO-|DQhn z`1hqlW^^LInnE0J!dWNB{r; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortInactive100.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortInactive100.gif deleted file mode 100644 index b7d433c670b9730c6c3ead62105cae20ec1d0ab6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmZ?wbhEHb6ky+lf2dPTb#j_Ws7>kG7n6xb4*AU1uKdKKppb*=IY> zKHq=g@%}6C51hJj<;LABH||}%dGE^2`?qi1ym9;f(Myj`Tzzup=JTW1ULL>p^2D_l z=Wo3@ee3OoThA}weR1K=n`;kVUw`=i?xPoXpMSdl;`9BNUthm^@!`Y!2QNN8dhy}m z%g;~Ve0}!z+w*tdUcCMM;_cU$@4miz|LygM?{7bRee?0h*RNl{eFuSGAn+Rq{{H#> z^UuFuAoTy&-~WI9{P_z+fB*jb_wWCI5CNosfB^$2{$v4*DgNj7a}5c0b_{Se(lcOY z1PbbaBtX%`z&@#=vZ=YHwIwSzH>P=8N%A1Sw4 z+WE;*;b!`NCPo$_PP5ck#|P*r>UkMjN^Gml*pVEo8j-7PU~PVA`)VE6%G?McU7HJ) znd+5}9D=+&{LGT}!j4UMcLw=-m|2@1e0AhrN_<#wfS0@Rt*`fLGB!9kGBLApaYS%5 Kc+GQQum%985li6! diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortInactive150.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortInactive150.gif deleted file mode 100644 index 9be806b0984d7735bff0d988c44423b131a2a2d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1155 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 diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortInactive300.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/images/isort/UpArrowSortInactive300.gif deleted file mode 100644 index 6809740babd2864ece26e9450ed631c22ccab847..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1161 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 diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/FlexParameterBridge.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/FlexParameterBridge.js deleted file mode 100644 index aeedd4613..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/FlexParameterBridge.js +++ /dev/null @@ -1,336 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof (bobj) == 'undefined') { - bobj = {}; -} - -if (typeof (bobj.crv) == 'undefined') { - bobj.crv = {}; -} - -if (typeof (bobj.crv.params) == 'undefined') { - bobj.crv.params = {}; -} - -/* - ================================================================================ - FlexParameterBridge - - Base functionality for flex prompting UI - ================================================================================ - */ - -bobj.crv.params.FlexParameterBridge = { - _swfID : [], - _swf : [], - _cb : [], - - // TODO: Ryan - clean this up when the CAF actions are also cleaned up - _promptData : [], - - setPromptData : function(id, d) { - this._promptData[id] = d; - }, - - setMasterCallBack : function(viewerName, callBack) { - this._cb[viewerName] = callBack; - }, - - getSWF : function(viewerName) { - if (this._swf[viewerName]) { - return this._swf[viewerName]; - } else { - var swf = document.getElementById(this._swfID[viewerName]); - this._swf[viewerName] = swf; - return swf; - } - }, - - getInstallHTML : function() { - return L_bobj_crv_FlashRequired.replace("{0}", "
    ") + ""; - }, - - checkFlashPlayer : function() { - return swfobject.hasFlashPlayerVersion("9.0.0"); - }, - - /** - * Creates the swf and replaces the div specified with the flash object. - */ - createSWF : function(viewerName, divID, servletURL, showMinUI, locale, rptSrcKey) { - var cb = this._cb[viewerName]; - if (!cb) { - return; - } - - if (cb.logger) { - cb.logger('Create the SWF'); - } - - if (this.checkFlashPlayer()) { - - var swfBaseURL = cb.getSWFBaseURL(); - var swfPath = swfBaseURL + "prompting.swf"; - var swfID = cb.getSWFID(); - var useSavedData = cb.getUseSavedData ? cb.getUseSavedData(viewerName) : false; - var useOKCancelButtons = cb.getUseOKCancelButtons ? cb.getUseOKCancelButtons(viewerName) : false; - var isDialog = cb.getIsDialog ? cb.getIsDialog (viewerName) : false; - var allowFullScreen = cb.getAllowFullScreen ? cb.getAllowFullScreen (viewerName) : false; - var enforceRequiredPrompt = cb.getEnforceRequiredPrompt ? cb.getEnforceRequiredPrompt () : true; - var shouldAutoResize = cb.getShouldAutoResize ? cb.getShouldAutoResize(viewerName) : false; - - var flashvars = { - "eventTarget" : viewerName, - "locale" : locale, - "showMinUI" : showMinUI, - "baseURL" : swfBaseURL, - "servletURL" : servletURL, // The SWF will use javascript to handle all async requests if this is null or empty - "reportSourceKey" : rptSrcKey, - "useSavedData" : useSavedData, - "useOKCancelButtons" : useOKCancelButtons, - "isDialog" : isDialog, - "allowFullScreen" : allowFullScreen, - "enforceRequiredPrompt" : enforceRequiredPrompt, - "shouldAutoResize" : shouldAutoResize - }; - - // Important: Do not specify play=true as one of the params. If this - // is set to true we could end up in an infinite loop reloading - // the swf when viewing using the embedded browser in eclipse. - var params = { - menu : "false", - wmode : "window", - allowscriptaccess : "sameDomain" - }; - - var attributes = { - id : swfID, - name : swfID, - style : 'z-index:' + cb.getZIndex() - }; - - if (cb.processingDelayedShow) { - cb.processingDelayedShow('hidden', divID); - } - - var h = cb.getSWFHeight ? cb.getSWFHeight(viewerName) + "" : "600"; - var w = cb.getSWFWidth ? cb.getSWFWidth(viewerName) + "" : "800"; - - swfobject.embedSWF(swfPath, divID, w, h, "9.0.0", "", flashvars, params, attributes); - this._swfID[viewerName] = swfID; - - if (cb.processingDelayedShow) { - cb.processingDelayedShow(); - } - - } else { - document.getElementById(divID).innerHTML = "

    " + cb.getInstallHTML() + "

    "; - } - }, - - /** - * This function will initialize the data in the flex swf with the - * current state of the parameter ui. The Flex swf will call back to - * this method when it has first been created and all external interface - * connections have been setup. If the swf has already been created this will - * be called when showing the parameter UI. - */ - - init : function(viewerName) { - if (!viewerName) { - return; - } - - var cb = this._cb[viewerName]; - var swf = this.getSWF(viewerName); - if (!swf || !cb) { - return; - } - - if (cb.logger) { - cb.logger('Init the SWF'); - } - - if(swf.setShowMinUI && cb.getShowMinUI) { - swf.setShowMinUI(cb.getShowMinUI(viewerName)); - } - - if(swf.setUseSavedData && cb.getUseSavedData) { - swf.setUseSavedData(cb.getUseSavedData(viewerName)); - } - - if(swf.setUseOKCancelButtons && cb.getUseOKCancelButtons) { - swf.setUseOKCancelButtons(cb.getUseOKCancelButtons(viewerName)); - } - - if(swf.setAllowFullScreen && cb.getAllowFullScreen) { - swf.setAllowFullScreen(cb.getAllowFullScreen(viewerName)); - } - - if (swf.setReportStateInfo && cb.getReportStateInfo) { - swf.setReportStateInfo(cb.getReportStateInfo(viewerName)); - } - - if (swf.setPromptData) { - if (cb.getPromptData && cb.getPromptData(viewerName)) { - swf.setPromptData(cb.getPromptData(viewerName)); - } else { - swf.setPromptData(this._promptData[viewerName]); - } - } - - if (cb.getShouldAutoResize && cb.getShouldAutoResize(viewerName)) - this.resize(viewerName, 1, 1, true); - else if (cb.getSWFHeight && cb.getSWFWidth) - this.resize(viewerName, cb.getSWFHeight(viewerName), cb.getSWFWidth(viewerName), true); - }, - - /** - * Flex callback for closing the current dialog window. - */ - closeDialog : function (viewerName){ - var cb = this._cb[viewerName]; - if (cb && cb.closeDialog) { - cb.closeDialog(viewerName); - } - }, - - /** - * Flex callback for adjusting the size of the swf to fit the number of - * prompts being displayed. - */ - - resize : function(viewerName, height, width, shouldCenter) { - var swf = this.getSWF(viewerName); - var cb = this._cb[viewerName]; - if (swf && cb) { - cb.logger('Resizing the SWF h:' + height + ' w:' + width); - - if (cb.getScreenHeight && cb.getScreenWidth) - { - var screenHeight = cb.getScreenHeight(viewerName); - var screenWidth = cb.getScreenWidth(viewerName); - var p = MochiKit.Style.getElementPosition(swf.parentNode); - - // Do not allow resizing beyond the screen size - if ((p.x >= 0) && ((p.x + width) >= screenWidth) && !shouldCenter) { - width = screenWidth - p.x; - } - else if (width > screenWidth) { - width = screenWidth; - } - - if ((p.y >= 0) && ((p.y + height) >= screenHeight) && !shouldCenter) { - height = screenHeight - p.y; - } - else if (height > screenHeight) { - height = screenHeight; - } - } - - if(swf.setWidth && swf.setHeight) { - swf.setWidth(width); - swf.setHeight(height); - } - - swf.style.width = width + 'px'; - swf.style.height = height + 'px'; - - if (shouldCenter) { - this.move(viewerName, ((screenWidth - width) / 2), ((screenHeight - height) / 2)); - } - - cb.setVisibility(viewerName); - - swf._isMaximized = false; - } - }, - - fitScreen : function (viewerName){ - var swf = this.getSWF(viewerName); - var cb = this._cb[viewerName]; - if (swf && cb && cb.getScreenHeight && cb.getScreenWidth && swf.setHeight && swf.setWidth) { - cb.logger('Fitting SWF to the screen'); - var h = cb.getScreenHeight(viewerName); - var w = cb.getScreenWidth(viewerName); - - // Resize the html object - // We must call move before resize so that we can calculate the width/height appropriately when resizing - this.move(viewerName, 0, 0); - this.resize(viewerName, h, w, false); - - swf._isMaximized = true; - } - }, - - startDrag : function(viewerName) { - var cb = this._cb[viewerName]; - if (cb && cb.startDrag) { - cb.startDrag(viewerName); - } - }, - - stopDrag : function(viewerName) { - var cb = this._cb[viewerName]; - if (cb && cb.stopDrag) { - cb.stopDrag(viewerName); - } - }, - - drag : function(viewerName, x, y) { - var cb = this._cb[viewerName]; - if (cb && cb.drag) { - cb.drag(viewerName, x, y); - } - }, - - move : function(viewerName, x, y) { - var cb = this._cb[viewerName]; - if (cb && cb.move) { - cb.move(viewerName, x, y); - } - }, - - setParamValues : function(viewerName, paramData) { - var cb = this._cb[viewerName]; - if (cb && cb.setParamValues) { - cb.setParamValues(viewerName, paramData); - } - }, - - logon : function(viewerName, logonData) { - var cb = this._cb[viewerName]; - if (cb && cb.logon) { - cb.logon(viewerName, logonData); - } - }, - - setReportStateInfo : function(viewerName, rsInfo) { - var cb = this._cb[viewerName]; - if (cb && cb.setReportStateInfo) { - cb.setReportStateInfo(viewerName, rsInfo); - } - }, - - sendAsyncRequest : function(viewerName, args) { - var cb = this._cb[viewerName]; - if (cb && cb.sendAsyncRequest) { - cb.sendAsyncRequest(viewerName, args); - } - }, - - handleAsyncResponse : function(viewerName, args) { - var swf = this.getSWF(viewerName); - if (swf && swf.handleAsyncResponse){ - swf.handleAsyncResponse(args); - } - }, - - readyToShow: function(viewerName) { - var cb = this._cb[viewerName]; - if (cb && cb.readyToShow) { - cb.readyToShow(viewerName); - } - } - -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/KeyDownEvent.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/KeyDownEvent.js deleted file mode 100644 index 2f1f8b595..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/KeyDownEvent.js +++ /dev/null @@ -1,44 +0,0 @@ -/* - File Version Start - Do not remove this if you are modifying the file - Build: 9.5.0 - File Version End -*/ -/* - this function is used to verify whether the 'Enter' key is pressed. - if the 'Enter' key is pressed, then either call the event handler function passed in as a parameter (evntHdlrName) - or if evntHdlrName is an empty string, submit the form that contains the input box (that triggers this function). - The form name is passed in as the third parameter, if it's an empty string, it's set to 0 by default. - The first parameter is an event object - - written by Paul Chong, 17th May 01 -*/ - -function keydownfn(e, evntHdlrName, formName) -{ - var nav4; - var keyPressed; - - //check if the brower is Netscape Navigator 4 or not - var nav4 = window.Event ? true : false; - - //if browser is Navigator 4, the key pressed is called .which else it's called .keyCode - keyPressed = nav4 ? e.which : e.keyCode; - - if (keyPressed == 13) - { - if (evntHdlrName != "") - { - // append empty parentheses if none given - if(evntHdlrName.substr(evntHdlrName.length-1) != ")") - evntHdlrName += "()"; - eval(evntHdlrName); - } - else - { - if (formName == "") - formName = 0; - document.forms[formName].submit(); - } - } - return true; -} diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/3rdParty.txt b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/3rdParty.txt deleted file mode 100644 index 6f2acbad2..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/3rdParty.txt +++ /dev/null @@ -1,66 +0,0 @@ -MochiKit is dual-licensed software. It is available under the terms of the -MIT License, or the Academic Free License version 2.1. The full text of -each license is included below. - -MIT License -=========== - -Copyright (c) 2005 Bob Ippolito. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - -Academic Free License v. 2.1 -============================ - -Copyright (c) 2005 Bob Ippolito. All rights reserved. - -This Academic Free License (the "License") applies to any original work of authorship (the "Original Work") whose owner (the "Licensor") has placed the following notice immediately following the copyright notice for the Original Work: - -Licensed under the Academic Free License version 2.1 - -1) Grant of Copyright License. Licensor hereby grants You a world-wide, royalty-free, non-exclusive, perpetual, sublicenseable license to do the following: - -a) to reproduce the Original Work in copies; - -b) to prepare derivative works ("Derivative Works") based upon the Original Work; - -c) to distribute copies of the Original Work and Derivative Works to the public; - -d) to perform the Original Work publicly; and - -e) to display the Original Work publicly. - -2) Grant of Patent License. Licensor hereby grants You a world-wide, royalty-free, non-exclusive, perpetual, sublicenseable license, under patent claims owned or controlled by the Licensor that are embodied in the Original Work as furnished by the Licensor, to make, use, sell and offer for sale the Original Work and Derivative Works. - -3) Grant of Source Code License. The term "Source Code" means the preferred form of the Original Work for making modifications to it and all available documentation describing how to modify the Original Work. Licensor hereby agrees to provide a machine-readable copy of the Source Code of the Original Work along with each copy of the Original Work that Licensor distributes. Licensor reserves the right to satisfy this obligation by placing a machine-readable copy of the Source Code in an information repository reasonably calculated to permit inexpensive and convenient access by You for as long as Licensor continues to distribute the Original Work, and by publishing the address of that information repository in a notice immediately following the copyright notice that applies to the Original Work. - -4) Exclusions From License Grant. Neither the names of Licensor, nor the names of any contributors to the Original Work, nor any of their trademarks or service marks, may be used to endorse or promote products derived from this Original Work without express prior written permission of the Licensor. Nothing in this License shall be deemed to grant any rights to trademarks, copyrights, patents, trade secrets or any other intellectual property of Licensor except as expressly stated herein. No patent license is granted to make, use, sell or offer to sell embodiments of any patent claims other than the licensed claims defined in Section 2. No right is granted to the trademarks of Licensor even if such marks are included in the Original Work. Nothing in this License shall be interpreted to prohibit Licensor from licensing under different terms from this License any Original Work that Licensor otherwise would have a right to license. - -5) This section intentionally omitted. - -6) Attribution Rights. You must retain, in the Source Code of any Derivative Works that You create, all copyright, patent or trademark notices from the Source Code of the Original Work, as well as any notices of licensing and any descriptive text identified therein as an "Attribution Notice." You must cause the Source Code for any Derivative Works that You create to carry a prominent Attribution Notice reasonably calculated to inform recipients that You have modified the Original Work. - -7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that the copyright in and to the Original Work and the patent rights granted herein by Licensor are owned by the Licensor or are sublicensed to You under the terms of this License with the permission of the contributor(s) of those copyrights and patent rights. Except as expressly stated in the immediately proceeding sentence, the Original Work is provided under this License on an "AS IS" BASIS and WITHOUT WARRANTY, either express or implied, including, without limitation, the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No license to Original Work is granted hereunder except under this disclaimer. - -8) Limitation of Liability. Under no circumstances and under no legal theory, whether in tort (including negligence), contract, or otherwise, shall the Licensor be liable to any person for any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or the use of the Original Work including, without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses. This limitation of liability shall not apply to liability for death or personal injury resulting from Licensor's negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You. - -9) Acceptance and Termination. If You distribute copies of the Original Work or a Derivative Work, You must make a reasonable effort under the circumstances to obtain the express assent of recipients to the terms of this License. Nothing else but this License (or another written agreement between Licensor and You) grants You permission to create Derivative Works based upon the Original Work or to exercise any of the rights granted in Section 1 herein, and any attempt to do so except under the terms of this License (or another written agreement between Licensor and You) is expressly prohibited by U.S. copyright law, the equivalent laws of other countries, and by international treaty. Therefore, by exercising any of the rights granted to You in Section 1 herein, You indicate Your acceptance of this License and all of its terms and conditions. - -10) Termination for Patent Action. This License shall terminate automatically and You may no longer exercise any of the rights granted to You by this License as of the date You commence an action, including a cross-claim or counterclaim, against Licensor or any licensee alleging that the Original Work infringes a patent. This termination provision shall not apply for an action alleging patent infringement by combinations of the Original Work with other software or hardware. - -11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this License may be brought only in the courts of a jurisdiction wherein the Licensor resides or in which Licensor conducts its primary business, and under the laws of that jurisdiction excluding its conflict-of-law provisions. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any use of the Original Work outside the scope of this License or after its termination shall be subject to the requirements and penalties of the U.S. Copyright Act, 17 U.S.C. § 101 et seq., the equivalent laws of other countries, and international treaty. This section shall survive the termination of this License. - -12) Attorneys Fees. In any action to enforce the terms of this License or seeking damages relating thereto, the prevailing party shall be entitled to recover its costs and expenses, including, without limitation, reasonable attorneys' fees and costs incurred in connection with such action, including any appeal of such action. This section shall survive the termination of this License. - -13) Miscellaneous. This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. - -14) Definition of "You" in This License. "You" throughout this License, whether in upper or lower case, means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with you. For purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -15) Right to Use. You may use the Original Work in all ways not otherwise restricted or conditioned by this License or by law, and Licensor promises not to interfere with or be responsible for such uses by You. - -This license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights reserved. Permission is hereby granted to copy and distribute this license without modification. This license may not be modified without the express written permission of its copyright owner. \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Async.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Async.js deleted file mode 100644 index 4e910e212..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Async.js +++ /dev/null @@ -1,602 +0,0 @@ -/*** - -MochiKit.Async 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide("MochiKit.Async"); - dojo.require("MochiKit.Base"); -} -if (typeof(JSAN) != 'undefined') { - JSAN.use("MochiKit.Base", []); -} - -try { - if (typeof(MochiKit.Base) == 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.Async depends on MochiKit.Base!"; -} - -if (typeof(MochiKit.Async) == 'undefined') { - MochiKit.Async = {}; -} - -MochiKit.Async.NAME = "MochiKit.Async"; -MochiKit.Async.VERSION = "1.4"; -MochiKit.Async.__repr__ = function () { - return "[" + this.NAME + " " + this.VERSION + "]"; -}; -MochiKit.Async.toString = function () { - return this.__repr__(); -}; - -MochiKit.Async.Deferred = function (/* optional */ canceller) { - this.chain = []; - this.id = this._nextId(); - this.fired = -1; - this.paused = 0; - this.results = [null, null]; - this.canceller = canceller; - this.silentlyCancelled = false; - this.chained = false; -}; - -MochiKit.Async.Deferred.prototype = { - repr: function () { - var state; - if (this.fired == -1) { - state = 'unfired'; - } else if (this.fired === 0) { - state = 'success'; - } else { - state = 'error'; - } - return 'Deferred(' + this.id + ', ' + state + ')'; - }, - - toString: MochiKit.Base.forwardCall("repr"), - - _nextId: MochiKit.Base.counter(), - - cancel: function () { - var self = MochiKit.Async; - if (this.fired == -1) { - if (this.canceller) { - this.canceller(this); - } else { - this.silentlyCancelled = true; - } - if (this.fired == -1) { - this.errback(new self.CancelledError(this)); - } - } else if ((this.fired === 0) && (this.results[0] instanceof self.Deferred)) { - this.results[0].cancel(); - } - }, - - _resback: function (res) { - /*** - - The primitive that means either callback or errback - - ***/ - this.fired = ((res instanceof Error) ? 1 : 0); - this.results[this.fired] = res; - this._fire(); - }, - - _check: function () { - if (this.fired != -1) { - if (!this.silentlyCancelled) { - throw new MochiKit.Async.AlreadyCalledError(this); - } - this.silentlyCancelled = false; - return; - } - }, - - callback: function (res) { - this._check(); - if (res instanceof MochiKit.Async.Deferred) { - throw new Error("Deferred instances can only be chained if they are the result of a callback"); - } - this._resback(res); - }, - - errback: function (res) { - this._check(); - var self = MochiKit.Async; - if (res instanceof self.Deferred) { - throw new Error("Deferred instances can only be chained if they are the result of a callback"); - } - if (!(res instanceof Error)) { - res = new self.GenericError(res); - } - this._resback(res); - }, - - addBoth: function (fn) { - if (arguments.length > 1) { - fn = MochiKit.Base.partial.apply(null, arguments); - } - return this.addCallbacks(fn, fn); - }, - - addCallback: function (fn) { - if (arguments.length > 1) { - fn = MochiKit.Base.partial.apply(null, arguments); - } - return this.addCallbacks(fn, null); - }, - - addErrback: function (fn) { - if (arguments.length > 1) { - fn = MochiKit.Base.partial.apply(null, arguments); - } - return this.addCallbacks(null, fn); - }, - - addCallbacks: function (cb, eb) { - if (this.chained) { - throw new Error("Chained Deferreds can not be re-used"); - } - this.chain.push([cb, eb]); - if (this.fired >= 0) { - this._fire(); - } - return this; - }, - - _fire: function () { - /*** - - Used internally to exhaust the callback sequence when a result - is available. - - ***/ - var chain = this.chain; - var fired = this.fired; - var res = this.results[fired]; - var self = this; - var cb = null; - while (chain.length > 0 && this.paused === 0) { - // Array - var pair = chain.shift(); - var f = pair[fired]; - if (f === null) { - continue; - } - try { - res = f(res); - fired = ((res instanceof Error) ? 1 : 0); - if (res instanceof MochiKit.Async.Deferred) { - cb = function (res) { - self._resback(res); - self.paused--; - if ((self.paused === 0) && (self.fired >= 0)) { - self._fire(); - } - }; - this.paused++; - } - } catch (err) { - fired = 1; - if (!(err instanceof Error)) { - err = new MochiKit.Async.GenericError(err); - } - res = err; - } - } - this.fired = fired; - this.results[fired] = res; - if (cb && this.paused) { - // this is for "tail recursion" in case the dependent deferred - // is already fired - res.addBoth(cb); - res.chained = true; - } - } -}; - -MochiKit.Base.update(MochiKit.Async, { - evalJSONRequest: function (/* req */) { - return eval('(' + arguments[0].responseText + ')'); - }, - - succeed: function (/* optional */result) { - var d = new MochiKit.Async.Deferred(); - d.callback.apply(d, arguments); - return d; - }, - - fail: function (/* optional */result) { - var d = new MochiKit.Async.Deferred(); - d.errback.apply(d, arguments); - return d; - }, - - getXMLHttpRequest: function () { - var self = arguments.callee; - if (!self.XMLHttpRequest) { - var tryThese = [ - function () { return new XMLHttpRequest(); }, - function () { return new ActiveXObject('Msxml2.XMLHTTP'); }, - function () { return new ActiveXObject('Microsoft.XMLHTTP'); }, - function () { return new ActiveXObject('Msxml2.XMLHTTP.4.0'); }, - function () { - throw new MochiKit.Async.BrowserComplianceError("Browser does not support XMLHttpRequest"); - } - ]; - for (var i = 0; i < tryThese.length; i++) { - var func = tryThese[i]; - try { - self.XMLHttpRequest = func; - return func(); - } catch (e) { - // pass - } - } - } - return self.XMLHttpRequest(); - }, - - _xhr_onreadystatechange: function (d) { - // MochiKit.Logging.logDebug('this.readyState', this.readyState); - var m = MochiKit.Base; - if (this.readyState == 4) { - // IE SUCKS - try { - this.onreadystatechange = null; - } catch (e) { - try { - this.onreadystatechange = m.noop; - } catch (e) { - } - } - var status = null; - try { - status = this.status; - if (!status && m.isNotEmpty(this.responseText)) { - // 0 or undefined seems to mean cached or local - status = 304; - } - } catch (e) { - // pass - // MochiKit.Logging.logDebug('error getting status?', repr(items(e))); - } - // 200 is OK, 304 is NOT_MODIFIED - if (status == 200 || status == 304) { // OK - d.callback(this); - } else { - var err = new MochiKit.Async.XMLHttpRequestError(this, "Request failed"); - if (err.number) { - // XXX: This seems to happen on page change - d.errback(err); - } else { - // XXX: this seems to happen when the server is unreachable - d.errback(err); - } - } - } - }, - - _xhr_canceller: function (req) { - // IE SUCKS - try { - req.onreadystatechange = null; - } catch (e) { - try { - req.onreadystatechange = MochiKit.Base.noop; - } catch (e) { - } - } - req.abort(); - }, - - - sendXMLHttpRequest: function (req, /* optional */ sendContent) { - if (typeof(sendContent) == "undefined" || sendContent === null) { - sendContent = ""; - } - - var m = MochiKit.Base; - var self = MochiKit.Async; - var d = new self.Deferred(m.partial(self._xhr_canceller, req)); - - try { - req.onreadystatechange = m.bind(self._xhr_onreadystatechange, - req, d); - req.send(sendContent); - } catch (e) { - try { - req.onreadystatechange = null; - } catch (ignore) { - // pass - } - d.errback(e); - } - - return d; - - }, - - doSimpleXMLHttpRequest: function (url/*, ...*/) { - var self = MochiKit.Async; - var req = self.getXMLHttpRequest(); - if (arguments.length > 1) { - var m = MochiKit.Base; - var qs = m.queryString.apply(null, m.extend(null, arguments, 1)); - if (qs) { - url += "?" + qs; - } - } - req.open("GET", url, true); - return self.sendXMLHttpRequest(req); - }, - - loadJSONDoc: function (url) { - var self = MochiKit.Async; - var d = self.doSimpleXMLHttpRequest.apply(self, arguments); - d = d.addCallback(self.evalJSONRequest); - return d; - }, - - wait: function (seconds, /* optional */value) { - var d = new MochiKit.Async.Deferred(); - var m = MochiKit.Base; - if (typeof(value) != 'undefined') { - d.addCallback(function () { return value; }); - } - var timeout = setTimeout( - m.bind("callback", d), - Math.floor(seconds * 1000)); - d.canceller = function () { - try { - clearTimeout(timeout); - } catch (e) { - // pass - } - }; - return d; - }, - - callLater: function (seconds, func) { - var m = MochiKit.Base; - var pfunc = m.partial.apply(m, m.extend(null, arguments, 1)); - return MochiKit.Async.wait(seconds).addCallback( - function (res) { return pfunc(); } - ); - } -}); - - -MochiKit.Async.DeferredLock = function () { - this.waiting = []; - this.locked = false; - this.id = this._nextId(); -}; - -MochiKit.Async.DeferredLock.prototype = { - __class__: MochiKit.Async.DeferredLock, - acquire: function () { - d = new MochiKit.Async.Deferred(); - if (this.locked) { - this.waiting.push(d); - } else { - this.locked = true; - d.callback(this); - } - return d; - }, - release: function () { - if (!this.locked) { - throw TypeError("Tried to release an unlocked DeferredLock"); - } - this.locked = false; - if (this.waiting.length > 0) { - this.locked = true; - this.waiting.shift().callback(this); - } - }, - _nextId: MochiKit.Base.counter(), - repr: function () { - var state; - if (this.locked) { - state = 'locked, ' + this.waiting.length + ' waiting'; - } else { - state = 'unlocked'; - } - return 'DeferredLock(' + this.id + ', ' + state + ')'; - }, - toString: MochiKit.Base.forwardCall("repr") - -}; - -MochiKit.Async.DeferredList = function (list, /* optional */fireOnOneCallback, fireOnOneErrback, consumeErrors, canceller) { - - // call parent constructor - MochiKit.Async.Deferred.apply(this, [canceller]); - - this.list = list; - var resultList = []; - this.resultList = resultList; - - this.finishedCount = 0; - this.fireOnOneCallback = fireOnOneCallback; - this.fireOnOneErrback = fireOnOneErrback; - this.consumeErrors = consumeErrors; - - var cb = MochiKit.Base.bind(this._cbDeferred, this); - for (var i = 0; i < list.length; i++) { - var d = list[i]; - resultList.push(undefined); - d.addCallback(cb, i, true); - d.addErrback(cb, i, false); - } - - if (list.length === 0 && !fireOnOneCallback) { - this.callback(this.resultList); - } - -}; - -MochiKit.Async.DeferredList.prototype = new MochiKit.Async.Deferred(); - -MochiKit.Async.DeferredList.prototype._cbDeferred = function (index, succeeded, result) { - this.resultList[index] = [succeeded, result]; - this.finishedCount += 1; - if (this.fired !== 0) { - if (succeeded && this.fireOnOneCallback) { - this.callback([index, result]); - } else if (!succeeded && this.fireOnOneErrback) { - this.errback(result); - } else if (this.finishedCount == this.list.length) { - this.callback(this.resultList); - } - } - if (!succeeded && this.consumeErrors) { - result = null; - } - return result; -}; - -MochiKit.Async.gatherResults = function (deferredList) { - var d = new MochiKit.Async.DeferredList(deferredList, false, true, false); - d.addCallback(function (results) { - var ret = []; - for (var i = 0; i < results.length; i++) { - ret.push(results[i][1]); - } - return ret; - }); - return d; -}; - -MochiKit.Async.maybeDeferred = function (func) { - var self = MochiKit.Async; - var result; - try { - var r = func.apply(null, MochiKit.Base.extend([], arguments, 1)); - if (r instanceof self.Deferred) { - result = r; - } else if (r instanceof Error) { - result = self.fail(r); - } else { - result = self.succeed(r); - } - } catch (e) { - result = self.fail(e); - } - return result; -}; - - -MochiKit.Async.EXPORT = [ - "AlreadyCalledError", - "CancelledError", - "BrowserComplianceError", - "GenericError", - "XMLHttpRequestError", - "Deferred", - "succeed", - "fail", - "getXMLHttpRequest", - "doSimpleXMLHttpRequest", - "loadJSONDoc", - "wait", - "callLater", - "sendXMLHttpRequest", - "DeferredLock", - "DeferredList", - "gatherResults", - "maybeDeferred" -]; - -MochiKit.Async.EXPORT_OK = [ - "evalJSONRequest" -]; - -MochiKit.Async.__new__ = function () { - var m = MochiKit.Base; - var ne = m.partial(m._newNamedError, this); - ne("AlreadyCalledError", - function (deferred) { - /*** - - Raised by the Deferred if callback or errback happens - after it was already fired. - - ***/ - this.deferred = deferred; - } - ); - - ne("CancelledError", - function (deferred) { - /*** - - Raised by the Deferred cancellation mechanism. - - ***/ - this.deferred = deferred; - } - ); - - ne("BrowserComplianceError", - function (msg) { - /*** - - Raised when the JavaScript runtime is not capable of performing - the given function. Technically, this should really never be - raised because a non-conforming JavaScript runtime probably - isn't going to support exceptions in the first place. - - ***/ - this.message = msg; - } - ); - - ne("GenericError", - function (msg) { - this.message = msg; - } - ); - - ne("XMLHttpRequestError", - function (req, msg) { - /*** - - Raised when an XMLHttpRequest does not complete for any reason. - - ***/ - this.req = req; - this.message = msg; - try { - // Strange but true that this can raise in some cases. - this.number = req.status; - } catch (e) { - // pass - } - } - ); - - - this.EXPORT_TAGS = { - ":common": this.EXPORT, - ":all": m.concat(this.EXPORT, this.EXPORT_OK) - }; - - m.nameFunctions(this); - -}; - -MochiKit.Async.__new__(); - -MochiKit.Base._exportSymbols(this, MochiKit.Async); diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Base.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Base.js deleted file mode 100644 index 24f0db5df..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Base.js +++ /dev/null @@ -1,1259 +0,0 @@ -/*** - -MochiKit.Base 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide("MochiKit.Base"); -} - -if (typeof(MochiKit) == 'undefined') { - MochiKit = {}; -} -if (typeof(MochiKit.Base) == 'undefined') { - MochiKit.Base = {}; -} - -MochiKit.Base.VERSION = "1.4"; -MochiKit.Base.NAME = "MochiKit.Base"; -MochiKit.Base.update = function (self, obj/*, ... */) { - if (self === null) { - self = {}; - } - for (var i = 1; i < arguments.length; i++) { - var o = arguments[i]; - if (typeof(o) != 'undefined' && o !== null) { - for (var k in o) { - self[k] = o[k]; - } - } - } - return self; -}; - -MochiKit.Base.update(MochiKit.Base, { - __repr__: function () { - return "[" + this.NAME + " " + this.VERSION + "]"; - }, - - toString: function () { - return this.__repr__(); - }, - - camelize: function (selector) { - /* from dojo.style.toCamelCase */ - var arr = selector.split('-'); - var cc = arr[0]; - for (var i = 1; i < arr.length; i++) { - cc += arr[i].charAt(0).toUpperCase() + arr[i].substring(1); - } - return cc; - }, - - counter: function (n/* = 1 */) { - if (arguments.length === 0) { - n = 1; - } - return function () { - return n++; - }; - }, - - clone: function (obj) { - var me = arguments.callee; - if (arguments.length == 1) { - me.prototype = obj; - return new me(); - } - }, - -// _flattenArray: function (res, lst) { -// for (var i = 0; i < lst.length; i++) { -// var o = lst[i]; -// if (o instanceof Array) { -// arguments.callee(res, o); -// } else { -// res.push(o); -// } -// } -// return res; -// }, -// flattenArray: function (lst) { -// return MochiKit.Base._flattenArray([], lst); -// }, -// flattenArguments: function (lst/* ...*/) { -// var res = []; -// var m = MochiKit.Base; -// var args = m.extend(null, arguments); -// while (args.length) { -// var o = args.shift(); -// if (o && typeof(o) == "object" && typeof(o.length) == "number") { -// for (var i = o.length - 1; i >= 0; i--) { -// args.unshift(o[i]); -// } -// } else { -// res.push(o); -// } -// } -// return res; -// }, - - - extend: function (self, obj, /* optional */skip) { - // Extend an array with an array-like object starting - // from the skip index - if (!skip) { - skip = 0; - } - if (obj) { - // allow iterable fall-through, but skip the full isArrayLike - // check for speed, this is called often. - var l = obj.length; - if (typeof(l) != 'number' /* !isArrayLike(obj) */) { - if (typeof(MochiKit.Iter) != "undefined") { - obj = MochiKit.Iter.list(obj); - l = obj.length; - } else { - throw new TypeError("Argument not an array-like and MochiKit.Iter not present"); - } - } - if (!self) { - self = []; - } - for (var i = skip; i < l; i++) { - self.push(obj[i]); - } - } - // This mutates, but it's convenient to return because - // it's often used like a constructor when turning some - // ghetto array-like to a real array - return self; - }, - - - updatetree: function (self, obj/*, ...*/) { - if (self === null) { - self = {}; - } - for (var i = 1; i < arguments.length; i++) { - var o = arguments[i]; - if (typeof(o) != 'undefined' && o !== null) { - for (var k in o) { - var v = o[k]; - if (typeof(self[k]) == 'object' && typeof(v) == 'object') { - arguments.callee(self[k], v); - } else { - self[k] = v; - } - } - } - } - return self; - }, - - setdefault: function (self, obj/*, ...*/) { - if (self === null) { - self = {}; - } - for (var i = 1; i < arguments.length; i++) { - var o = arguments[i]; - for (var k in o) { - if (!(k in self)) { - self[k] = o[k]; - } - } - } - return self; - }, -// -// keys: function (obj) { -// var rval = []; -// for (var prop in obj) { -// rval.push(prop); -// } -// return rval; -// }, - -// items: function (obj) { -// var rval = []; -// var e; -// for (var prop in obj) { -// var v; -// try { -// v = obj[prop]; -// } catch (e) { -// continue; -// } -// rval.push([prop, v]); -// } -// return rval; -// }, -// -// - _newNamedError: function (module, name, func) { - func.prototype = new MochiKit.Base.NamedError(module.NAME + "." + name); - module[name] = func; - }, - - - operator: { - // unary logic operators -// truth: function (a) { return !!a; }, -// lognot: function (a) { return !a; }, - identity: function (a) { return a; } -// -// // bitwise unary operators -// not: function (a) { return ~a; }, -// neg: function (a) { return -a; }, -// -// // binary operators -// add: function (a, b) { return a + b; }, -// sub: function (a, b) { return a - b; }, -// div: function (a, b) { return a / b; }, -// mod: function (a, b) { return a % b; }, -// mul: function (a, b) { return a * b; }, -// -// // bitwise binary operators -// and: function (a, b) { return a & b; }, -// or: function (a, b) { return a | b; }, -// xor: function (a, b) { return a ^ b; }, -// lshift: function (a, b) { return a << b; }, -// rshift: function (a, b) { return a >> b; }, -// zrshift: function (a, b) { return a >>> b; }, -// -// // near-worthless built-in comparators -// eq: function (a, b) { return a == b; }, -// ne: function (a, b) { return a != b; }, -// gt: function (a, b) { return a > b; }, -// ge: function (a, b) { return a >= b; }, -// lt: function (a, b) { return a < b; }, -// le: function (a, b) { return a <= b; }, -// -// // strict built-in comparators -// seq: function (a, b) { return a === b; }, -// sne: function (a, b) { return a !== b; }, -// -// // compare comparators -// ceq: function (a, b) { return MochiKit.Base.compare(a, b) === 0; }, -// cne: function (a, b) { return MochiKit.Base.compare(a, b) !== 0; }, -// cgt: function (a, b) { return MochiKit.Base.compare(a, b) == 1; }, -// cge: function (a, b) { return MochiKit.Base.compare(a, b) != -1; }, -// clt: function (a, b) { return MochiKit.Base.compare(a, b) == -1; }, -// cle: function (a, b) { return MochiKit.Base.compare(a, b) != 1; }, -// -// // binary logical operators -// logand: function (a, b) { return a && b; }, -// logor: function (a, b) { return a || b; }, -// contains: function (a, b) { return b in a; } - }, - - forwardCall: function (func) { - return function () { - return this[func].apply(this, arguments); - }; - }, - -// itemgetter: function (func) { -// return function (arg) { -// return arg[func]; -// }; -// }, - - typeMatcher: function (/* typ */) { - var types = {}; - for (var i = 0; i < arguments.length; i++) { - var typ = arguments[i]; - types[typ] = typ; - } - return function () { - for (var i = 0; i < arguments.length; i++) { - if (!(typeof(arguments[i]) in types)) { - return false; - } - } - return true; - }; - }, - - isNull: function (/* ... */) { - for (var i = 0; i < arguments.length; i++) { - if (arguments[i] !== null) { - return false; - } - } - return true; - }, - - isUndefinedOrNull: function (/* ... */) { - for (var i = 0; i < arguments.length; i++) { - var o = arguments[i]; - if (!(typeof(o) == 'undefined' || o === null)) { - return false; - } - } - return true; - }, - - isEmpty: function (obj) { - return !MochiKit.Base.isNotEmpty.apply(this, arguments); - }, - - isNotEmpty: function (obj) { - for (var i = 0; i < arguments.length; i++) { - var o = arguments[i]; - if (!(o && o.length)) { - return false; - } - } - return true; - }, - - isArrayLike: function () { - for (var i = 0; i < arguments.length; i++) { - var o = arguments[i]; - var typ = typeof(o); - if ( - (typ != 'object' && !(typ == 'function' && typeof(o.item) == 'function')) || - o === null || - typeof(o.length) != 'number' || - o.nodeType === 3 - ) { - return false; - } - } - return true; - }, - - isDateLike: function () { - for (var i = 0; i < arguments.length; i++) { - var o = arguments[i]; - if (typeof(o) != "object" || o === null - || typeof(o.getTime) != 'function') { - return false; - } - } - return true; - }, - - - xmap: function (fn/*, obj... */) { - if (fn === null) { - return MochiKit.Base.extend(null, arguments, 1); - } - var rval = []; - for (var i = 1; i < arguments.length; i++) { - rval.push(fn(arguments[i])); - } - return rval; - }, - - map: function (fn, lst/*, lst... */) { - var m = MochiKit.Base; - var itr = MochiKit.Iter; - var isArrayLike = m.isArrayLike; - if (arguments.length <= 2) { - // allow an iterable to be passed - if (!isArrayLike(lst)) { - if (itr) { - // fast path for map(null, iterable) - lst = itr.list(lst); - if (fn === null) { - return lst; - } - } else { - throw new TypeError("Argument not an array-like and MochiKit.Iter not present"); - } - } - // fast path for map(null, lst) - if (fn === null) { - return m.extend(null, lst); - } - // disabled fast path for map(fn, lst) - /* - if (false && typeof(Array.prototype.map) == 'function') { - // Mozilla fast-path - return Array.prototype.map.call(lst, fn); - } - */ - var rval = []; - for (var i = 0; i < lst.length; i++) { - rval.push(fn(lst[i])); - } - return rval; - } else { - // default for map(null, ...) is zip(...) - if (fn === null) { - fn = Array; - } - var length = null; - for (i = 1; i < arguments.length; i++) { - // allow iterables to be passed - if (!isArrayLike(arguments[i])) { - if (itr) { - return itr.list(itr.imap.apply(null, arguments)); - } else { - throw new TypeError("Argument not an array-like and MochiKit.Iter not present"); - } - } - // find the minimum length - var l = arguments[i].length; - if (length === null || length > l) { - length = l; - } - } - rval = []; - for (i = 0; i < length; i++) { - var args = []; - for (var j = 1; j < arguments.length; j++) { - args.push(arguments[j][i]); - } - rval.push(fn.apply(this, args)); - } - return rval; - } - }, - - xfilter: function (fn/*, obj... */) { - var rval = []; - if (fn === null) { - fn = MochiKit.Base.operator.truth; - } - for (var i = 1; i < arguments.length; i++) { - var o = arguments[i]; - if (fn(o)) { - rval.push(o); - } - } - return rval; - }, - - filter: function (fn, lst, self) { - var rval = []; - // allow an iterable to be passed - var m = MochiKit.Base; - if (!m.isArrayLike(lst)) { - if (MochiKit.Iter) { - lst = MochiKit.Iter.list(lst); - } else { - throw new TypeError("Argument not an array-like and MochiKit.Iter not present"); - } - } - if (fn === null) { - fn = m.operator.truth; - } - if (typeof(Array.prototype.filter) == 'function') { - // Mozilla fast-path - return Array.prototype.filter.call(lst, fn, self); - } else if (typeof(self) == 'undefined' || self === null) { - for (var i = 0; i < lst.length; i++) { - var o = lst[i]; - if (fn(o)) { - rval.push(o); - } - } - } else { - for (i = 0; i < lst.length; i++) { - o = lst[i]; - if (fn.call(self, o)) { - rval.push(o); - } - } - } - return rval; - }, - - - _wrapDumbFunction: function (func) { - return function () { - // fast path! - switch (arguments.length) { - case 0: return func(); - case 1: return func(arguments[0]); - case 2: return func(arguments[0], arguments[1]); - case 3: return func(arguments[0], arguments[1], arguments[2]); - } - var args = []; - for (var i = 0; i < arguments.length; i++) { - args.push("arguments[" + i + "]"); - } - return eval("(func(" + args.join(",") + "))"); - }; - }, - - methodcaller: function (func/*, args... */) { - var args = MochiKit.Base.extend(null, arguments, 1); - if (typeof(func) == "function") { - return function (obj) { - return func.apply(obj, args); - }; - } else { - return function (obj) { - return obj[func].apply(obj, args); - }; - } - }, - - method: function (self, func) { - var m = MochiKit.Base; - return m.bind.apply(this, m.extend([func, self], arguments, 2)); - }, - - compose: function (f1, f2/*, f3, ... fN */) { - var fnlist = []; - var m = MochiKit.Base; - if (arguments.length === 0) { - throw new TypeError("compose() requires at least one argument"); - } - for (var i = 0; i < arguments.length; i++) { - var fn = arguments[i]; - if (typeof(fn) != "function") { - throw new TypeError(repr(fn) + " is not a function"); - } - fnlist.push(fn); - } - return function () { - var args = arguments; - for (var i = fnlist.length - 1; i >= 0; i--) { - args = [fnlist[i].apply(this, args)]; - } - return args[0]; - }; - }, - - bind: function (func, self/* args... */) { - if (typeof(func) == "string") { - func = self[func]; - } - var im_func = func.im_func; - var im_preargs = func.im_preargs; - var im_self = func.im_self; - var m = MochiKit.Base; - if (typeof(func) == "function" && typeof(func.apply) == "undefined") { - // this is for cases where JavaScript sucks ass and gives you a - // really dumb built-in function like alert() that doesn't have - // an apply - func = m._wrapDumbFunction(func); - } - if (typeof(im_func) != 'function') { - im_func = func; - } - if (typeof(self) != 'undefined') { - im_self = self; - } - if (typeof(im_preargs) == 'undefined') { - im_preargs = []; - } else { - im_preargs = im_preargs.slice(); - } - m.extend(im_preargs, arguments, 2); - var newfunc = function () { - var args = arguments; - var me = arguments.callee; - if (me.im_preargs.length > 0) { - args = m.concat(me.im_preargs, args); - } - var self = me.im_self; - if (!self) { - self = this; - } - return me.im_func.apply(self, args); - }; - newfunc.im_self = im_self; - newfunc.im_func = im_func; - newfunc.im_preargs = im_preargs; - return newfunc; - }, - - bindMethods: function (self) { - var bind = MochiKit.Base.bind; - for (var k in self) { - var func = self[k]; - if (typeof(func) == 'function') { - self[k] = bind(func, self); - } - } - }, - - registerComparator: function (name, check, comparator, /* optional */ override) { - MochiKit.Base.comparatorRegistry.register(name, check, comparator, override); - }, - - _primitives: {'boolean': true, 'string': true, 'number': true}, - - compare: function (a, b) { - if (a == b) { - return 0; - } - var aIsNull = (typeof(a) == 'undefined' || a === null); - var bIsNull = (typeof(b) == 'undefined' || b === null); - if (aIsNull && bIsNull) { - return 0; - } else if (aIsNull) { - return -1; - } else if (bIsNull) { - return 1; - } - var m = MochiKit.Base; - // bool, number, string have meaningful comparisons - var prim = m._primitives; - if (!(typeof(a) in prim && typeof(b) in prim)) { - try { - return m.comparatorRegistry.match(a, b); - } catch (e) { - if (e != m.NotFound) { - throw e; - } - } - } - if (a < b) { - return -1; - } else if (a > b) { - return 1; - } - // These types can't be compared - var repr = m.repr; - throw new TypeError(repr(a) + " and " + repr(b) + " can not be compared"); - }, - - compareDateLike: function (a, b) { - return MochiKit.Base.compare(a.getTime(), b.getTime()); - }, - - compareArrayLike: function (a, b) { - var compare = MochiKit.Base.compare; - var count = a.length; - var rval = 0; - if (count > b.length) { - rval = 1; - count = b.length; - } else if (count < b.length) { - rval = -1; - } - for (var i = 0; i < count; i++) { - var cmp = compare(a[i], b[i]); - if (cmp) { - return cmp; - } - } - return rval; - }, - - registerRepr: function (name, check, wrap, /* optional */override) { - MochiKit.Base.reprRegistry.register(name, check, wrap, override); - }, - - repr: function (o) { - if (typeof(o) == "undefined") { - return "undefined"; - } else if (o === null) { - return "null"; - } - try { - if (typeof(o.__repr__) == 'function') { - return o.__repr__(); - } else if (typeof(o.repr) == 'function' && o.repr != arguments.callee) { - return o.repr(); - } - return MochiKit.Base.reprRegistry.match(o); - } catch (e) { - if (typeof(o.NAME) == 'string' && ( - o.toString == Function.prototype.toString || - o.toString == Object.prototype.toString - )) { - return o.NAME; - } - } - try { - var ostring = (o + ""); - } catch (e) { - return "[" + typeof(o) + "]"; - } - if (typeof(o) == "function") { - o = ostring.replace(/^\s+/, ""); - var idx = o.indexOf("{"); - if (idx != -1) { - o = o.substr(0, idx) + "{...}"; - } - } - return ostring; - }, - - reprArrayLike: function (o) { - var m = MochiKit.Base; - return "[" + m.map(m.repr, o).join(", ") + "]"; - }, - - reprString: function (o) { - return ('"' + o.replace(/(["\\])/g, '\\$1') + '"' - ).replace(/[\f]/g, "\\f" - ).replace(/[\b]/g, "\\b" - ).replace(/[\n]/g, "\\n" - ).replace(/[\t]/g, "\\t" - ).replace(/[\r]/g, "\\r"); - }, - - reprNumber: function (o) { - return o + ""; - }, - - registerJSON: function (name, check, wrap, /* optional */override) { - MochiKit.Base.jsonRegistry.register(name, check, wrap, override); - }, - - - evalJSON: function () { - return eval("(" + arguments[0] + ")"); - }, - - serializeJSON: function (o) { - var objtype = typeof(o); - if (objtype == "undefined") { - return "undefined"; - } else if (objtype == "number" || objtype == "boolean") { - return o + ""; - } else if (o === null) { - return "null"; - } - var m = MochiKit.Base; - var reprString = m.reprString; - if (objtype == "string") { - return reprString(o); - } - // recurse - var me = arguments.callee; - // short-circuit for objects that support "json" serialization - // if they return "self" then just pass-through... - var newObj; - if (typeof(o.__json__) == "function") { - newObj = o.__json__(); - if (o !== newObj) { - return me(newObj); - } - } - if (typeof(o.json) == "function") { - newObj = o.json(); - if (o !== newObj) { - return me(newObj); - } - } - // array - if (objtype != "function" && typeof(o.length) == "number") { - var res = []; - for (var i = 0; i < o.length; i++) { - var val = me(o[i]); - if (typeof(val) != "string") { - val = "undefined"; - } - res.push(val); - } - return "[" + res.join(", ") + "]"; - } - // look in the registry - try { - newObj = m.jsonRegistry.match(o); - if (o !== newObj) { - return me(newObj); - } - } catch (e) { - if (e != m.NotFound) { - // something really bad happened - throw e; - } - } - // it's a function with no adapter, bad - if (objtype == "function") { - return null; - } - // generic object code path - res = []; - for (var k in o) { - var useKey; - if (typeof(k) == "number") { - useKey = '"' + k + '"'; - } else if (typeof(k) == "string") { - useKey = reprString(k); - } else { - // skip non-string or number keys - continue; - } - val = me(o[k]); - if (typeof(val) != "string") { - // skip non-serializable values - continue; - } - res.push(useKey + ":" + val); - } - return "{" + res.join(", ") + "}"; - }, - - - objEqual: function (a, b) { - return (MochiKit.Base.compare(a, b) === 0); - }, - - arrayEqual: function (self, arr) { - if (self.length != arr.length) { - return false; - } - return (MochiKit.Base.compare(self, arr) === 0); - }, - - concat: function (/* lst... */) { - var rval = []; - var extend = MochiKit.Base.extend; - for (var i = 0; i < arguments.length; i++) { - extend(rval, arguments[i]); - } - return rval; - }, - - keyComparator: function (key/* ... */) { - // fast-path for single key comparisons - var m = MochiKit.Base; - var compare = m.compare; - if (arguments.length == 1) { - return function (a, b) { - return compare(a[key], b[key]); - }; - } - var compareKeys = m.extend(null, arguments); - return function (a, b) { - var rval = 0; - // keep comparing until something is inequal or we run out of - // keys to compare - for (var i = 0; (rval === 0) && (i < compareKeys.length); i++) { - var key = compareKeys[i]; - rval = compare(a[key], b[key]); - } - return rval; - }; - }, - - reverseKeyComparator: function (key) { - var comparator = MochiKit.Base.keyComparator.apply(this, arguments); - return function (a, b) { - return comparator(b, a); - }; - }, - - partial: function (func) { - var m = MochiKit.Base; - return m.bind.apply(this, m.extend([func, undefined], arguments, 1)); - }, - - listMinMax: function (which, lst) { - if (lst.length === 0) { - return null; - } - var cur = lst[0]; - var compare = MochiKit.Base.compare; - for (var i = 1; i < lst.length; i++) { - var o = lst[i]; - if (compare(o, cur) == which) { - cur = o; - } - } - return cur; - }, - - objMax: function (/* obj... */) { - return MochiKit.Base.listMinMax(1, arguments); - }, - - objMin: function (/* obj... */) { - return MochiKit.Base.listMinMax(-1, arguments); - }, - - findIdentical: function (lst, value, start/* = 0 */, /* optional */end) { - if (typeof(end) == "undefined" || end === null) { - end = lst.length; - } - if (typeof(start) == "undefined" || start === null) { - start = 0; - } - for (var i = start; i < end; i++) { - if (lst[i] === value) { - return i; - } - } - return -1; - }, - - mean: function(/* lst... */) { - /* http://www.nist.gov/dads/HTML/mean.html */ - var sum = 0; - - var m = MochiKit.Base; - var args = m.extend(null, arguments); - var count = args.length; - - while (args.length) { - var o = args.shift(); - if (o && typeof(o) == "object" && typeof(o.length) == "number") { - count += o.length - 1; - for (var i = o.length - 1; i >= 0; i--) { - sum += o[i]; - } - } else { - sum += o; - } - } - - if (count <= 0) { - throw new TypeError('mean() requires at least one argument'); - } - - return sum/count; - }, - - median: function(/* lst... */) { - /* http://www.nist.gov/dads/HTML/median.html */ - var data = MochiKit.Base.flattenArguments(arguments); - if (data.length === 0) { - throw new TypeError('median() requires at least one argument'); - } - data.sort(compare); - if (data.length % 2 == 0) { - var upper = data.length / 2; - return (data[upper] + data[upper - 1]) / 2; - } else { - return data[(data.length - 1) / 2]; - } - }, - - findValue: function (lst, value, start/* = 0 */, /* optional */end) { - if (typeof(end) == "undefined" || end === null) { - end = lst.length; - } - if (typeof(start) == "undefined" || start === null) { - start = 0; - } - var cmp = MochiKit.Base.compare; - for (var i = start; i < end; i++) { - if (cmp(lst[i], value) === 0) { - return i; - } - } - return -1; - }, - - nodeWalk: function (node, visitor) { - var nodes = [node]; - var extend = MochiKit.Base.extend; - while (nodes.length) { - var res = visitor(nodes.shift()); - if (res) { - extend(nodes, res); - } - } - }, - - - nameFunctions: function (namespace) { - var base = namespace.NAME; - if (typeof(base) == 'undefined') { - base = ''; - } else { - base = base + '.'; - } - for (var name in namespace) { - var o = namespace[name]; - if (typeof(o) == 'function' && typeof(o.NAME) == 'undefined') { - try { - o.NAME = base + name; - } catch (e) { - // pass - } - } - } - }, - - - queryString: function (names, values) { - // check to see if names is a string or a DOM element, and if - // MochiKit.DOM is available. If so, drop it like it's a form - // Ugliest conditional in MochiKit? Probably! - if (typeof(MochiKit.DOM) != "undefined" && arguments.length == 1 - && (typeof(names) == "string" || ( - typeof(names.nodeType) != "undefined" && names.nodeType > 0 - )) - ) { - var kv = MochiKit.DOM.formContents(names); - names = kv[0]; - values = kv[1]; - } else if (arguments.length == 1) { - var o = names; - names = []; - values = []; - for (var k in o) { - var v = o[k]; - if (typeof(v) != "function") { - names.push(k); - values.push(v); - } - } - } - var rval = []; - var len = Math.min(names.length, values.length); - var urlEncode = MochiKit.Base.urlEncode; - for (var i = 0; i < len; i++) { - v = values[i]; - if (typeof(v) != 'undefined' && v !== null) { - rval.push(urlEncode(names[i]) + "=" + urlEncode(v)); - } - } - return rval.join("&"); - }, - - - parseQueryString: function (encodedString, useArrays) { - var pairs = encodedString.replace(/\+/g, "%20").split("&"); - var o = {}; - var decode; - if (typeof(decodeURIComponent) != "undefined") { - decode = decodeURIComponent; - } else { - decode = unescape; - } - if (useArrays) { - for (var i = 0; i < pairs.length; i++) { - var pair = pairs[i].split("="); - var name = decode(pair[0]); - var arr = o[name]; - if (!(arr instanceof Array)) { - arr = []; - o[name] = arr; - } - arr.push(decode(pair[1])); - } - } else { - for (i = 0; i < pairs.length; i++) { - pair = pairs[i].split("="); - o[decode(pair[0])] = decode(pair[1]); - } - } - return o; - } -}); - -MochiKit.Base.AdapterRegistry = function () { - this.pairs = []; -}; - -MochiKit.Base.AdapterRegistry.prototype = { - register: function (name, check, wrap, /* optional */ override) { - if (override) { - this.pairs.unshift([name, check, wrap]); - } else { - this.pairs.push([name, check, wrap]); - } - }, - - match: function (/* ... */) { - for (var i = 0; i < this.pairs.length; i++) { - var pair = this.pairs[i]; - if (pair[1].apply(this, arguments)) { - return pair[2].apply(this, arguments); - } - } - throw MochiKit.Base.NotFound; - }, - - unregister: function (name) { - for (var i = 0; i < this.pairs.length; i++) { - var pair = this.pairs[i]; - if (pair[0] == name) { - this.pairs.splice(i, 1); - return true; - } - } - return false; - } -}; - - -MochiKit.Base.EXPORT = [ - "flattenArray", - "noop", - "camelize", - "counter", - "clone", - "extend", - "update", - "updatetree", - "setdefault", - "keys", - "items", - "NamedError", - "operator", - "forwardCall", - "itemgetter", - "typeMatcher", - "isCallable", - "isUndefined", - "isUndefinedOrNull", - "isNull", - "isEmpty", - "isNotEmpty", - "isArrayLike", - "isDateLike", - "xmap", - "map", - "xfilter", - "filter", - "methodcaller", - "compose", - "bind", - "bindMethods", - "NotFound", - "AdapterRegistry", - "registerComparator", - "compare", - "registerRepr", - "repr", - "objEqual", - "arrayEqual", - "concat", - "keyComparator", - "reverseKeyComparator", - "partial", - "merge", - "listMinMax", - "listMax", - "listMin", - "objMax", - "objMin", - "nodeWalk", - "zip", - "urlEncode", - "queryString", - "serializeJSON", - "registerJSON", - "evalJSON", - "parseQueryString", - "findValue", - "findIdentical", - "flattenArguments", - "method", - "average", - "mean", - "median" -]; - -MochiKit.Base.EXPORT_OK = [ - "nameFunctions", - "comparatorRegistry", - "reprRegistry", - "jsonRegistry", - "compareDateLike", - "compareArrayLike", - "reprArrayLike", - "reprString", - "reprNumber" -]; - -MochiKit.Base._exportSymbols = function (globals, module) { - if (typeof(MochiKit.__export__) == "undefined") { - MochiKit.__export__ = (MochiKit.__compat__ || - (typeof(JSAN) == 'undefined' && typeof(dojo) == 'undefined') - ); - } - if (!MochiKit.__export__) { - return; - } - var all = module.EXPORT_TAGS[":all"]; - for (var i = 0; i < all.length; i++) { - globals[all[i]] = module[all[i]]; - } -}; - -MochiKit.Base.__new__ = function () { - // A singleton raised when no suitable adapter is found - var m = this; - - // convenience - m.noop = m.operator.identity; - - // Backwards compat - m.forward = m.forwardCall; - m.find = m.findValue; - - if (typeof(encodeURIComponent) != "undefined") { - m.urlEncode = function (unencoded) { - return encodeURIComponent(unencoded).replace(/\'/g, '%27'); - }; - } else { - m.urlEncode = function (unencoded) { - return escape(unencoded - ).replace(/\+/g, '%2B' - ).replace(/\"/g,'%22' - ).rval.replace(/\'/g, '%27'); - }; - } - - m.NamedError = function (name) { - this.message = name; - this.name = name; - }; - m.NamedError.prototype = new Error(); - m.update(m.NamedError.prototype, { - repr: function () { - if (this.message && this.message != this.name) { - return this.name + "(" + m.repr(this.message) + ")"; - } else { - return this.name + "()"; - } - }, - toString: m.forwardCall("repr") - }); - - m.NotFound = new m.NamedError("MochiKit.Base.NotFound"); - - - m.listMax = m.partial(m.listMinMax, 1); - m.listMin = m.partial(m.listMinMax, -1); - - m.isCallable = m.typeMatcher('function'); - m.isUndefined = m.typeMatcher('undefined'); - - m.merge = m.partial(m.update, null); - m.zip = m.partial(m.map, null); - - m.average = m.mean; - - m.comparatorRegistry = new m.AdapterRegistry(); - m.registerComparator("dateLike", m.isDateLike, m.compareDateLike); - m.registerComparator("arrayLike", m.isArrayLike, m.compareArrayLike); - - m.reprRegistry = new m.AdapterRegistry(); - m.registerRepr("arrayLike", m.isArrayLike, m.reprArrayLike); - m.registerRepr("string", m.typeMatcher("string"), m.reprString); - m.registerRepr("numbers", m.typeMatcher("number", "boolean"), m.reprNumber); - - m.jsonRegistry = new m.AdapterRegistry(); - - var all = m.concat(m.EXPORT, m.EXPORT_OK); - m.EXPORT_TAGS = { - ":common": m.concat(m.EXPORT_OK), - ":all": all - }; - - m.nameFunctions(this); - -}; - -MochiKit.Base.__new__(); - -// -// XXX: Internet Explorer blows -// -if (MochiKit.__export__) { - compare = MochiKit.Base.compare; -} - -MochiKit.Base._exportSymbols(this, MochiKit.Base); diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Color.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Color.js deleted file mode 100644 index 1064c597b..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Color.js +++ /dev/null @@ -1,845 +0,0 @@ -/*** - -MochiKit.Color 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito and others. All rights Reserved. - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.Color'); - dojo.require('MochiKit.Base'); - dojo.require('MochiKit.DOM'); - dojo.require('MochiKit.Style'); -} - -if (typeof(JSAN) != 'undefined') { - JSAN.use("MochiKit.Base", []); - JSAN.use("MochiKit.DOM", []); - JSAN.use("MochiKit.Style", []); -} - -try { - if (typeof(MochiKit.Base) == 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.Color depends on MochiKit.Base"; -} - -try { - if (typeof(MochiKit.Base) == 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.Color depends on MochiKit.DOM"; -} - -try { - if (typeof(MochiKit.Base) == 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.Color depends on MochiKit.Style"; -} - -if (typeof(MochiKit.Color) == "undefined") { - MochiKit.Color = {}; -} - -MochiKit.Color.NAME = "MochiKit.Color"; -MochiKit.Color.VERSION = "1.4"; - -MochiKit.Color.__repr__ = function () { - return "[" + this.NAME + " " + this.VERSION + "]"; -}; - -MochiKit.Color.toString = function () { - return this.__repr__(); -}; - - -MochiKit.Color.Color = function (red, green, blue, alpha) { - if (typeof(alpha) == 'undefined' || alpha === null) { - alpha = 1.0; - } - this.rgb = { - r: red, - g: green, - b: blue, - a: alpha - }; -}; - - -// Prototype methods -MochiKit.Color.Color.prototype = { - - __class__: MochiKit.Color.Color, - -// colorWithAlpha: function (alpha) { -// var rgb = this.rgb; -// var m = MochiKit.Color; -// return m.Color.fromRGB(rgb.r, rgb.g, rgb.b, alpha); -// }, -// -// colorWithHue: function (hue) { -// // get an HSL model, and set the new hue... -// var hsl = this.asHSL(); -// hsl.h = hue; -// var m = MochiKit.Color; -// // convert back to RGB... -// return m.Color.fromHSL(hsl); -// }, -// -// colorWithSaturation: function (saturation) { -// // get an HSL model, and set the new hue... -// var hsl = this.asHSL(); -// hsl.s = saturation; -// var m = MochiKit.Color; -// // convert back to RGB... -// return m.Color.fromHSL(hsl); -// }, -// -// colorWithLightness: function (lightness) { -// // get an HSL model, and set the new hue... -// var hsl = this.asHSL(); -// hsl.l = lightness; -// var m = MochiKit.Color; -// // convert back to RGB... -// return m.Color.fromHSL(hsl); -// }, -// -// darkerColorWithLevel: function (level) { -// var hsl = this.asHSL(); -// hsl.l = Math.max(hsl.l - level, 0); -// var m = MochiKit.Color; -// return m.Color.fromHSL(hsl); -// }, -// -// lighterColorWithLevel: function (level) { -// var hsl = this.asHSL(); -// hsl.l = Math.min(hsl.l + level, 1); -// var m = MochiKit.Color; -// return m.Color.fromHSL(hsl); -// }, -// -// blendedColor: function (other, /* optional */ fraction) { -// if (typeof(fraction) == 'undefined' || fraction === null) { -// fraction = 0.5; -// } -// var sf = 1.0 - fraction; -// var s = this.rgb; -// var d = other.rgb; -// var df = fraction; -// return MochiKit.Color.Color.fromRGB( -// (s.r * sf) + (d.r * df), -// (s.g * sf) + (d.g * df), -// (s.b * sf) + (d.b * df), -// (s.a * sf) + (d.a * df) -// ); -// }, -// -// compareRGB: function (other) { -// var a = this.asRGB(); -// var b = other.asRGB(); -// return MochiKit.Base.compare( -// [a.r, a.g, a.b, a.a], -// [b.r, b.g, b.b, b.a] -// ); -// }, -// -// isLight: function () { -// return this.asHSL().b > 0.5; -// }, -// -// isDark: function () { -// return (!this.isLight()); -// }, -// -// toHSLString: function () { -// var c = this.asHSL(); -// var ccc = MochiKit.Color.clampColorComponent; -// var rval = this._hslString; -// if (!rval) { -// var mid = ( -// ccc(c.h, 360).toFixed(0) -// + "," + ccc(c.s, 100).toPrecision(4) + "%" -// + "," + ccc(c.l, 100).toPrecision(4) + "%" -// ); -// var a = c.a; -// if (a >= 1) { -// a = 1; -// rval = "hsl(" + mid + ")"; -// } else { -// if (a <= 0) { -// a = 0; -// } -// rval = "hsla(" + mid + "," + a + ")"; -// } -// this._hslString = rval; -// } -// return rval; -// }, -// -// toRGBString: function () { -// var c = this.rgb; -// var ccc = MochiKit.Color.clampColorComponent; -// var rval = this._rgbString; -// if (!rval) { -// var mid = ( -// ccc(c.r, 255).toFixed(0) -// + "," + ccc(c.g, 255).toFixed(0) -// + "," + ccc(c.b, 255).toFixed(0) -// ); -// if (c.a != 1) { -// rval = "rgba(" + mid + "," + c.a + ")"; -// } else { -// rval = "rgb(" + mid + ")"; -// } -// this._rgbString = rval; -// } -// return rval; -// }, -// -// asRGB: function () { -// return MochiKit.Base.clone(this.rgb); -// }, -// -// toHexString: function () { -// var m = MochiKit.Color; -// var c = this.rgb; -// var ccc = MochiKit.Color.clampColorComponent; -// var rval = this._hexString; -// if (!rval) { -// rval = ("#" + -// m.toColorPart(ccc(c.r, 255)) + -// m.toColorPart(ccc(c.g, 255)) + -// m.toColorPart(ccc(c.b, 255)) -// ); -// this._hexString = rval; -// } -// return rval; -// }, -// -// asHSV: function () { -// var hsv = this.hsv; -// var c = this.rgb; -// if (typeof(hsv) == 'undefined' || hsv === null) { -// hsv = MochiKit.Color.rgbToHSV(this.rgb); -// this.hsv = hsv; -// } -// return MochiKit.Base.clone(hsv); -// }, -// -// asHSL: function () { -// var hsl = this.hsl; -// var c = this.rgb; -// if (typeof(hsl) == 'undefined' || hsl === null) { -// hsl = MochiKit.Color.rgbToHSL(this.rgb); -// this.hsl = hsl; -// } -// return MochiKit.Base.clone(hsl); -// }, - - toString: function () { - return this.toRGBString(); - }, - - repr: function () { - var c = this.rgb; - var col = [c.r, c.g, c.b, c.a]; - return this.__class__.NAME + "(" + col.join(", ") + ")"; - } - -}; - -// Constructor methods -MochiKit.Base.update(MochiKit.Color.Color, { -// fromRGB: function (red, green, blue, alpha) { -// // designated initializer -// var Color = MochiKit.Color.Color; -// if (arguments.length == 1) { -// var rgb = red; -// red = rgb.r; -// green = rgb.g; -// blue = rgb.b; -// if (typeof(rgb.a) == 'undefined') { -// alpha = undefined; -// } else { -// alpha = rgb.a; -// } -// } -// return new Color(red, green, blue, alpha); -// }, -// -// fromHSL: function (hue, saturation, lightness, alpha) { -// var m = MochiKit.Color; -// return m.Color.fromRGB(m.hslToRGB.apply(m, arguments)); -// }, -// -// fromHSV: function (hue, saturation, value, alpha) { -// var m = MochiKit.Color; -// return m.Color.fromRGB(m.hsvToRGB.apply(m, arguments)); -// }, -// -// fromName: function (name) { -// var Color = MochiKit.Color.Color; -// // Opera 9 seems to "quote" named colors(?!) -// if (name.charAt(0) == '"') { -// name = name.substr(1, name.length - 2); -// } -// var htmlColor = Color._namedColors[name.toLowerCase()]; -// if (typeof(htmlColor) == 'string') { -// return Color.fromHexString(htmlColor); -// } else if (name == "transparent") { -// return Color.transparentColor(); -// } -// return null; -// }, -// -// fromString: function (colorString) { -// var self = MochiKit.Color.Color; -// var three = colorString.substr(0, 3); -// if (three == "rgb") { -// return self.fromRGBString(colorString); -// } else if (three == "hsl") { -// return self.fromHSLString(colorString); -// } else if (colorString.charAt(0) == "#") { -// return self.fromHexString(colorString); -// } -// return self.fromName(colorString); -// }, -// -// -// fromHexString: function (hexCode) { -// if (hexCode.charAt(0) == '#') { -// hexCode = hexCode.substring(1); -// } -// var components = []; -// var i, hex; -// if (hexCode.length == 3) { -// for (i = 0; i < 3; i++) { -// hex = hexCode.substr(i, 1); -// components.push(parseInt(hex + hex, 16) / 255.0); -// } -// } else { -// for (i = 0; i < 6; i += 2) { -// hex = hexCode.substr(i, 2); -// components.push(parseInt(hex, 16) / 255.0); -// } -// } -// var Color = MochiKit.Color.Color; -// return Color.fromRGB.apply(Color, components); -// }, -// -// -// _fromColorString: function (pre, method, scales, colorCode) { -// // parses either HSL or RGB -// if (colorCode.indexOf(pre) === 0) { -// colorCode = colorCode.substring(colorCode.indexOf("(", 3) + 1, colorCode.length - 1); -// } -// var colorChunks = colorCode.split(/\s*,\s*/); -// var colorFloats = []; -// for (var i = 0; i < colorChunks.length; i++) { -// var c = colorChunks[i]; -// var val; -// var three = c.substring(c.length - 3); -// if (c.charAt(c.length - 1) == '%') { -// val = 0.01 * parseFloat(c.substring(0, c.length - 1)); -// } else if (three == "deg") { -// val = parseFloat(c) / 360.0; -// } else if (three == "rad") { -// val = parseFloat(c) / (Math.PI * 2); -// } else { -// val = scales[i] * parseFloat(c); -// } -// colorFloats.push(val); -// } -// return this[method].apply(this, colorFloats); -// }, - - fromComputedStyle: function (elem, style) { - var d = MochiKit.DOM; - var cls = MochiKit.Color.Color; - for (elem = d.getElement(elem); elem; elem = elem.parentNode) { - var actualColor = MochiKit.Style.computedStyle.apply(d, arguments); - if (!actualColor) { - continue; - } - var color = cls.fromString(actualColor); - if (!color) { - break; - } - if (color.asRGB().a > 0) { - return color; - } - } - return null; - }, - - fromBackground: function (elem) { - var cls = MochiKit.Color.Color; - return cls.fromComputedStyle( - elem, "backgroundColor", "background-color") || cls.whiteColor(); - }, - - fromText: function (elem) { - var cls = MochiKit.Color.Color; - return cls.fromComputedStyle( - elem, "color", "color") || cls.blackColor(); - }, - - namedColors: function () { - return MochiKit.Base.clone(MochiKit.Color.Color._namedColors); - } -}); - -// Module level functions -MochiKit.Base.update(MochiKit.Color, { -// clampColorComponent: function (v, scale) { -// v *= scale; -// if (v < 0) { -// return 0; -// } else if (v > scale) { -// return scale; -// } else { -// return v; -// } -// }, -// -// _hslValue: function (n1, n2, hue) { -// if (hue > 6.0) { -// hue -= 6.0; -// } else if (hue < 0.0) { -// hue += 6.0; -// } -// var val; -// if (hue < 1.0) { -// val = n1 + (n2 - n1) * hue; -// } else if (hue < 3.0) { -// val = n2; -// } else if (hue < 4.0) { -// val = n1 + (n2 - n1) * (4.0 - hue); -// } else { -// val = n1; -// } -// return val; -// }, -// -// hsvToRGB: function (hue, saturation, value, alpha) { -// if (arguments.length == 1) { -// var hsv = hue; -// hue = hsv.h; -// saturation = hsv.s; -// value = hsv.v; -// alpha = hsv.a; -// } -// var red; -// var green; -// var blue; -// if (saturation === 0) { -// red = 0; -// green = 0; -// blue = 0; -// } else { -// var i = Math.floor(hue * 6); -// var f = (hue * 6) - i; -// var p = value * (1 - saturation); -// var q = value * (1 - (saturation * f)); -// var t = value * (1 - (saturation * (1 - f))); -// switch (i) { -// case 1: red = q; green = value; blue = p; break; -// case 2: red = p; green = value; blue = t; break; -// case 3: red = p; green = q; blue = value; break; -// case 4: red = t; green = p; blue = value; break; -// case 5: red = value; green = p; blue = q; break; -// case 6: // fall through -// case 0: red = value; green = t; blue = p; break; -// } -// } -// return { -// r: red, -// g: green, -// b: blue, -// a: alpha -// }; -// }, -// -// hslToRGB: function (hue, saturation, lightness, alpha) { -// if (arguments.length == 1) { -// var hsl = hue; -// hue = hsl.h; -// saturation = hsl.s; -// lightness = hsl.l; -// alpha = hsl.a; -// } -// var red; -// var green; -// var blue; -// if (saturation === 0) { -// red = lightness; -// green = lightness; -// blue = lightness; -// } else { -// var m2; -// if (lightness <= 0.5) { -// m2 = lightness * (1.0 + saturation); -// } else { -// m2 = lightness + saturation - (lightness * saturation); -// } -// var m1 = (2.0 * lightness) - m2; -// var f = MochiKit.Color._hslValue; -// var h6 = hue * 6.0; -// red = f(m1, m2, h6 + 2); -// green = f(m1, m2, h6); -// blue = f(m1, m2, h6 - 2); -// } -// return { -// r: red, -// g: green, -// b: blue, -// a: alpha -// }; -// }, -// -// rgbToHSV: function (red, green, blue, alpha) { -// if (arguments.length == 1) { -// var rgb = red; -// red = rgb.r; -// green = rgb.g; -// blue = rgb.b; -// alpha = rgb.a; -// } -// var max = Math.max(Math.max(red, green), blue); -// var min = Math.min(Math.min(red, green), blue); -// var hue; -// var saturation; -// var value = max; -// if (min == max) { -// hue = 0; -// saturation = 0; -// } else { -// var delta = (max - min); -// saturation = delta / max; -// -// if (red == max) { -// hue = (green - blue) / delta; -// } else if (green == max) { -// hue = 2 + ((blue - red) / delta); -// } else { -// hue = 4 + ((red - green) / delta); -// } -// hue /= 6; -// if (hue < 0) { -// hue += 1; -// } -// if (hue > 1) { -// hue -= 1; -// } -// } -// return { -// h: hue, -// s: saturation, -// v: value, -// a: alpha -// }; -// }, -// -// rgbToHSL: function (red, green, blue, alpha) { -// if (arguments.length == 1) { -// var rgb = red; -// red = rgb.r; -// green = rgb.g; -// blue = rgb.b; -// alpha = rgb.a; -// } -// var max = Math.max(red, Math.max(green, blue)); -// var min = Math.min(red, Math.min(green, blue)); -// var hue; -// var saturation; -// var lightness = (max + min) / 2.0; -// var delta = max - min; -// if (delta === 0) { -// hue = 0; -// saturation = 0; -// } else { -// if (lightness <= 0.5) { -// saturation = delta / (max + min); -// } else { -// saturation = delta / (2 - max - min); -// } -// if (red == max) { -// hue = (green - blue) / delta; -// } else if (green == max) { -// hue = 2 + ((blue - red) / delta); -// } else { -// hue = 4 + ((red - green) / delta); -// } -// hue /= 6; -// if (hue < 0) { -// hue += 1; -// } -// if (hue > 1) { -// hue -= 1; -// } -// -// } -// return { -// h: hue, -// s: saturation, -// l: lightness, -// a: alpha -// }; -// }, -// -// toColorPart: function (num) { -// num = Math.round(num); -// var digits = num.toString(16); -// if (num < 16) { -// return '0' + digits; -// } -// return digits; -// }, - - __new__: function () { - var m = MochiKit.Base; -// this.Color.fromRGBString = m.bind( -// this.Color._fromColorString, this.Color, "rgb", "fromRGB", -// [1.0/255.0, 1.0/255.0, 1.0/255.0, 1] -// ); -// this.Color.fromHSLString = m.bind( -// this.Color._fromColorString, this.Color, "hsl", "fromHSL", -// [1.0/360.0, 0.01, 0.01, 1] -// ); -// -// var third = 1.0 / 3.0; -// var colors = { -// // NSColor colors plus transparent -// black: [0, 0, 0], -// blue: [0, 0, 1], -// brown: [0.6, 0.4, 0.2], -// cyan: [0, 1, 1], -// darkGray: [third, third, third], -// gray: [0.5, 0.5, 0.5], -// green: [0, 1, 0], -// lightGray: [2 * third, 2 * third, 2 * third], -// magenta: [1, 0, 1], -// orange: [1, 0.5, 0], -// purple: [0.5, 0, 0.5], -// red: [1, 0, 0], -// transparent: [0, 0, 0, 0], -// white: [1, 1, 1], -// yellow: [1, 1, 0] -// }; -// -// var makeColor = function (name, r, g, b, a) { -// var rval = this.fromRGB(r, g, b, a); -// this[name] = function () { return rval; }; -// return rval; -// }; -// -// for (var k in colors) { -// var name = k + "Color"; -// var bindArgs = m.concat( -// [makeColor, this.Color, name], -// colors[k] -// ); -// this.Color[name] = m.bind.apply(null, bindArgs); -// } -// -// var isColor = function () { -// for (var i = 0; i < arguments.length; i++) { -// if (!(arguments[i] instanceof Color)) { -// return false; -// } -// } -// return true; -// }; -// -// var compareColor = function (a, b) { -// return a.compareRGB(b); -// }; - - m.nameFunctions(this); - -// m.registerComparator(this.Color.NAME, isColor, compareColor); - - this.EXPORT_TAGS = { - ":common": this.EXPORT, - ":all": m.concat(this.EXPORT, this.EXPORT_OK) - }; - - } -}); - -MochiKit.Color.EXPORT = [ - "Color" -]; - -MochiKit.Color.EXPORT_OK = [ - "clampColorComponent", - "rgbToHSL", - "hslToRGB", - "rgbToHSV", - "hsvToRGB", - "toColorPart" -]; - -MochiKit.Color.__new__(); - -MochiKit.Base._exportSymbols(this, MochiKit.Color); - -// Full table of css3 X11 colors - -//MochiKit.Color.Color._namedColors = { -// aliceblue: "#f0f8ff", -// antiquewhite: "#faebd7", -// aqua: "#00ffff", -// aquamarine: "#7fffd4", -// azure: "#f0ffff", -// beige: "#f5f5dc", -// bisque: "#ffe4c4", -// black: "#000000", -// blanchedalmond: "#ffebcd", -// blue: "#0000ff", -// blueviolet: "#8a2be2", -// brown: "#a52a2a", -// burlywood: "#deb887", -// cadetblue: "#5f9ea0", -// chartreuse: "#7fff00", -// chocolate: "#d2691e", -// coral: "#ff7f50", -// cornflowerblue: "#6495ed", -// cornsilk: "#fff8dc", -// crimson: "#dc143c", -// cyan: "#00ffff", -// darkblue: "#00008b", -// darkcyan: "#008b8b", -// darkgoldenrod: "#b8860b", -// darkgray: "#a9a9a9", -// darkgreen: "#006400", -// darkgrey: "#a9a9a9", -// darkkhaki: "#bdb76b", -// darkmagenta: "#8b008b", -// darkolivegreen: "#556b2f", -// darkorange: "#ff8c00", -// darkorchid: "#9932cc", -// darkred: "#8b0000", -// darksalmon: "#e9967a", -// darkseagreen: "#8fbc8f", -// darkslateblue: "#483d8b", -// darkslategray: "#2f4f4f", -// darkslategrey: "#2f4f4f", -// darkturquoise: "#00ced1", -// darkviolet: "#9400d3", -// deeppink: "#ff1493", -// deepskyblue: "#00bfff", -// dimgray: "#696969", -// dimgrey: "#696969", -// dodgerblue: "#1e90ff", -// firebrick: "#b22222", -// floralwhite: "#fffaf0", -// forestgreen: "#228b22", -// fuchsia: "#ff00ff", -// gainsboro: "#dcdcdc", -// ghostwhite: "#f8f8ff", -// gold: "#ffd700", -// goldenrod: "#daa520", -// gray: "#808080", -// green: "#008000", -// greenyellow: "#adff2f", -// grey: "#808080", -// honeydew: "#f0fff0", -// hotpink: "#ff69b4", -// indianred: "#cd5c5c", -// indigo: "#4b0082", -// ivory: "#fffff0", -// khaki: "#f0e68c", -// lavender: "#e6e6fa", -// lavenderblush: "#fff0f5", -// lawngreen: "#7cfc00", -// lemonchiffon: "#fffacd", -// lightblue: "#add8e6", -// lightcoral: "#f08080", -// lightcyan: "#e0ffff", -// lightgoldenrodyellow: "#fafad2", -// lightgray: "#d3d3d3", -// lightgreen: "#90ee90", -// lightgrey: "#d3d3d3", -// lightpink: "#ffb6c1", -// lightsalmon: "#ffa07a", -// lightseagreen: "#20b2aa", -// lightskyblue: "#87cefa", -// lightslategray: "#778899", -// lightslategrey: "#778899", -// lightsteelblue: "#b0c4de", -// lightyellow: "#ffffe0", -// lime: "#00ff00", -// limegreen: "#32cd32", -// linen: "#faf0e6", -// magenta: "#ff00ff", -// maroon: "#800000", -// mediumaquamarine: "#66cdaa", -// mediumblue: "#0000cd", -// mediumorchid: "#ba55d3", -// mediumpurple: "#9370db", -// mediumseagreen: "#3cb371", -// mediumslateblue: "#7b68ee", -// mediumspringgreen: "#00fa9a", -// mediumturquoise: "#48d1cc", -// mediumvioletred: "#c71585", -// midnightblue: "#191970", -// mintcream: "#f5fffa", -// mistyrose: "#ffe4e1", -// moccasin: "#ffe4b5", -// navajowhite: "#ffdead", -// navy: "#000080", -// oldlace: "#fdf5e6", -// olive: "#808000", -// olivedrab: "#6b8e23", -// orange: "#ffa500", -// orangered: "#ff4500", -// orchid: "#da70d6", -// palegoldenrod: "#eee8aa", -// palegreen: "#98fb98", -// paleturquoise: "#afeeee", -// palevioletred: "#db7093", -// papayawhip: "#ffefd5", -// peachpuff: "#ffdab9", -// peru: "#cd853f", -// pink: "#ffc0cb", -// plum: "#dda0dd", -// powderblue: "#b0e0e6", -// purple: "#800080", -// red: "#ff0000", -// rosybrown: "#bc8f8f", -// royalblue: "#4169e1", -// saddlebrown: "#8b4513", -// salmon: "#fa8072", -// sandybrown: "#f4a460", -// seagreen: "#2e8b57", -// seashell: "#fff5ee", -// sienna: "#a0522d", -// silver: "#c0c0c0", -// skyblue: "#87ceeb", -// slateblue: "#6a5acd", -// slategray: "#708090", -// slategrey: "#708090", -// snow: "#fffafa", -// springgreen: "#00ff7f", -// steelblue: "#4682b4", -// tan: "#d2b48c", -// teal: "#008080", -// thistle: "#d8bfd8", -// tomato: "#ff6347", -// turquoise: "#40e0d0", -// violet: "#ee82ee", -// wheat: "#f5deb3", -// white: "#ffffff", -// whitesmoke: "#f5f5f5", -// yellow: "#ffff00", -// yellowgreen: "#9acd32" -//}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Controls.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Controls.js deleted file mode 100644 index f29e3a8ec..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Controls.js +++ /dev/null @@ -1,1284 +0,0 @@ -/*** -Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) - (c) 2005 Ivan Krstic (http://blogs.law.harvard.edu/ivan) - (c) 2005 Jon Tirsen (http://www.tirsen.com) -Contributors: - Richard Livsey - Rahul Bhargava - Rob Wills - Mochi-ized By Thomas Herve (_firstname_@nimail.org) - -See scriptaculous.js for full license. - -Autocompleter.Base handles all the autocompletion functionality -that's independent of the data source for autocompletion. This -includes drawing the autocompletion menu, observing keyboard -and mouse events, and similar. - -Specific autocompleters need to provide, at the very least, -a getUpdatedChoices function that will be invoked every time -the text inside the monitored textbox changes. This method -should get the text for which to provide autocompletion by -invoking this.getToken(), NOT by directly accessing -this.element.value. This is to allow incremental tokenized -autocompletion. Specific auto-completion logic (AJAX, etc) -belongs in getUpdatedChoices. - -Tokenized incremental autocompletion is enabled automatically -when an autocompleter is instantiated with the 'tokens' option -in the options parameter, e.g.: -new Ajax.Autocompleter('id','upd', '/url/', { tokens: ',' }); -will incrementally autocomplete with a comma as the token. -Additionally, ',' in the above example can be replaced with -a token array, e.g. { tokens: [',', '\n'] } which -enables autocompletion on multiple tokens. This is most -useful when one of the tokens is \n (a newline), as it -allows smart autocompletion after linebreaks. - -***/ - -MochiKit.Base.update(MochiKit.Base, { - ScriptFragment: '(?:)((\n|\r|.)*?)(?:<\/script>)', - - stripScripts: function (str) { - return str.replace(new RegExp(MochiKit.Base.ScriptFragment, 'img'), ''); - }, - - stripTags: function(str) { - return str.replace(/<\/?[^>]+>/gi, ''); - }, - - extractScripts: function (str) { - var matchAll = new RegExp(MochiKit.Base.ScriptFragment, 'img'); - var matchOne = new RegExp(MochiKit.Base.ScriptFragment, 'im'); - return MochiKit.Base.map(function (scriptTag) { - return (scriptTag.match(matchOne) || ['', ''])[1]; - }, str.match(matchAll) || []); - }, - - evalScripts: function (str) { - return MochiKit.Base.map(function (scr) { - eval(scr); - }, MochiKit.Base.extractScripts(str)); - } -}); - -MochiKit.Form = { - serialize: function (form) { - var elements = MochiKit.Form.getElements(form); - var queryComponents = []; - - for (var i = 0; i < elements.length; i++) { - var queryComponent = MochiKit.Form.serializeElement(elements[i]); - if (queryComponent) { - queryComponents.push(queryComponent); - } - } - - return queryComponents.join('&'); - }, - - getElements: function (form) { - form = MochiKit.DOM.getElement(form); - var elements = []; - - for (tagName in MochiKit.Form.Serializers) { - var tagElements = form.getElementsByTagName(tagName); - for (var j = 0; j < tagElements.length; j++) { - elements.push(tagElements[j]); - } - } - return elements; - }, - - serializeElement: function (element) { - element = MochiKit.DOM.getElement(element); - var method = element.tagName.toLowerCase(); - var parameter = MochiKit.Form.Serializers[method](element); - - if (parameter) { - var key = encodeURIComponent(parameter[0]); - if (key.length === 0) { - return; - } - - if (!(parameter[1] instanceof Array)) { - parameter[1] = [parameter[1]]; - } - - return parameter[1].map(function (value) { - return key + '=' + encodeURIComponent(value); - }).join('&'); - } - } -}; - -MochiKit.Form.Serializers = { - input: function (element) { - switch (element.type.toLowerCase()) { - case 'submit': - case 'hidden': - case 'password': - case 'text': - return MochiKit.Form.Serializers.textarea(element); - case 'checkbox': - case 'radio': - return MochiKit.Form.Serializers.inputSelector(element); - } - return false; - }, - - inputSelector: function (element) { - if (element.checked) { - return [element.name, element.value]; - } - }, - - textarea: function (element) { - return [element.name, element.value]; - }, - - select: function (element) { - return MochiKit.Form.Serializers[element.type == 'select-one' ? - 'selectOne' : 'selectMany'](element); - }, - - selectOne: function (element) { - var value = '', opt, index = element.selectedIndex; - if (index >= 0) { - opt = element.options[index]; - value = opt.value; - if (!value && !('value' in opt)) { - value = opt.text; - } - } - return [element.name, value]; - }, - - selectMany: function (element) { - var value = []; - for (var i = 0; i < element.length; i++) { - var opt = element.options[i]; - if (opt.selected) { - var optValue = opt.value; - if (!optValue && !('value' in opt)) { - optValue = opt.text; - } - value.push(optValue); - } - } - return [element.name, value]; - } -}; - -var Ajax = { - activeRequestCount: 0 -}; - -Ajax.Responders = { - responders: [], - - register: function (responderToAdd) { - if (MochiKit.Base.find(this.responders, responderToAdd) == -1) { - this.responders.push(responderToAdd); - } - }, - - unregister: function (responderToRemove) { - this.responders = this.responders.without(responderToRemove); - }, - - dispatch: function (callback, request, transport, json) { - MochiKit.Iter.forEach(this.responders, function (responder) { - if (responder[callback] && - typeof(responder[callback]) == 'function') { - try { - responder[callback].apply(responder, [request, transport, json]); - } catch (e) {} - } - }); - } -}; - -Ajax.Responders.register({ - onCreate: function () { - Ajax.activeRequestCount++; - }, - - onComplete: function () { - Ajax.activeRequestCount--; - } -}); - -Ajax.Base = function () {}; - -Ajax.Base.prototype = { - setOptions: function (options) { - this.options = { - method: 'post', - asynchronous: true, - parameters: '' - } - MochiKit.Base.update(this.options, options || {}); - }, - - responseIsSuccess: function () { - return this.transport.status == undefined - || this.transport.status === 0 - || (this.transport.status >= 200 && this.transport.status < 300); - }, - - responseIsFailure: function () { - return !this.responseIsSuccess(); - } -}; - -Ajax.Request = function (url, options) { - this.__init__(url, options); -}; - -Ajax.Request.Events = ['Uninitialized', 'Loading', 'Loaded', - 'Interactive', 'Complete']; - -MochiKit.Base.update(Ajax.Request.prototype, Ajax.Base.prototype); - -MochiKit.Base.update(Ajax.Request.prototype, { - __init__: function (url, options) { - this.transport = MochiKit.Async.getXMLHttpRequest(); - this.setOptions(options); - this.request(url); - }, - - request: function (url) { - var parameters = this.options.parameters || ''; - if (parameters.length > 0){ - parameters += '&_='; - } - - try { - this.url = url; - if (this.options.method == 'get' && parameters.length > 0) { - this.url += (this.url.match(/\?/) ? '&' : '?') + parameters; - } - Ajax.Responders.dispatch('onCreate', this, this.transport); - - this.transport.open(this.options.method, this.url, - this.options.asynchronous); - - if (this.options.asynchronous) { - this.transport.onreadystatechange = MochiKit.Base.bind(this.onStateChange, this); - setTimeout(MochiKit.Base.bind(function () { - this.respondToReadyState(1); - }, this), 10); - } - - this.setRequestHeaders(); - - var body = this.options.postBody ? this.options.postBody : parameters; - this.transport.send(this.options.method == 'post' ? body : null); - - } catch (e) { - this.dispatchException(e); - } - }, - - setRequestHeaders: function () { - var requestHeaders = ['X-Requested-With', 'XMLHttpRequest']; - - if (this.options.method == 'post') { - requestHeaders.push('Content-type', - 'application/x-www-form-urlencoded'); - - /* Force 'Connection: close' for Mozilla browsers to work around - * a bug where XMLHttpRequest sends an incorrect Content-length - * header. See Mozilla Bugzilla #246651. - */ - if (this.transport.overrideMimeType) { - requestHeaders.push('Connection', 'close'); - } - } - - if (this.options.requestHeaders) { - requestHeaders.push.apply(requestHeaders, this.options.requestHeaders); - } - - for (var i = 0; i < requestHeaders.length; i += 2) { - this.transport.setRequestHeader(requestHeaders[i], requestHeaders[i+1]); - } - }, - - onStateChange: function () { - var readyState = this.transport.readyState; - if (readyState != 1) { - this.respondToReadyState(this.transport.readyState); - } - }, - - header: function (name) { - try { - return this.transport.getResponseHeader(name); - } catch (e) {} - }, - - evalJSON: function () { - try { - return eval(this.header('X-JSON')); - } catch (e) {} - }, - - evalResponse: function () { - try { - return eval(this.transport.responseText); - } catch (e) { - this.dispatchException(e); - } - }, - - respondToReadyState: function (readyState) { - var event = Ajax.Request.Events[readyState]; - var transport = this.transport, json = this.evalJSON(); - - if (event == 'Complete') { - try { - (this.options['on' + this.transport.status] - || this.options['on' + (this.responseIsSuccess() ? 'Success' : 'Failure')] - || MochiKit.Base.noop)(transport, json); - } catch (e) { - this.dispatchException(e); - } - - if ((this.header('Content-type') || '').match(/^text\/javascript/i)) { - this.evalResponse(); - } - } - - try { - (this.options['on' + event] || MochiKit.Base.noop)(transport, json); - Ajax.Responders.dispatch('on' + event, this, transport, json); - } catch (e) { - this.dispatchException(e); - } - - /* Avoid memory leak in MSIE: clean up the oncomplete event handler */ - if (event == 'Complete') { - this.transport.onreadystatechange = MochiKit.Base.noop; - } - }, - - dispatchException: function (exception) { - (this.options.onException || MochiKit.Base.noop)(this, exception); - Ajax.Responders.dispatch('onException', this, exception); - } -}); - -Ajax.Updater = function (container, url, options) { - this.__init__(container, url, options); -}; - -MochiKit.Base.update(Ajax.Updater.prototype, Ajax.Request.prototype); - -MochiKit.Base.update(Ajax.Updater.prototype, { - __init__: function (container, url, options) { - this.containers = { - success: container.success ? MochiKit.DOM.getElement(container.success) : MochiKit.DOM.getElement(container), - failure: container.failure ? MochiKit.DOM.getElement(container.failure) : - (container.success ? null : MochiKit.DOM.getElement(container)) - } - this.transport = MochiKit.Async.getXMLHttpRequest(); - this.setOptions(options); - - var onComplete = this.options.onComplete || MochiKit.Base.noop; - this.options.onComplete = MochiKit.Base.bind(function (transport, object) { - this.updateContent(); - onComplete(transport, object); - }, this); - - this.request(url); - }, - - updateContent: function () { - var receiver = this.responseIsSuccess() ? - this.containers.success : this.containers.failure; - var response = this.transport.responseText; - - if (!this.options.evalScripts) { - response = MochiKit.Base.stripScripts(response); - } - - if (receiver) { - if (this.options.insertion) { - new this.options.insertion(receiver, response); - } else { - MochiKit.DOM.getElement(receiver).innerHTML = - MochiKit.Base.stripScripts(response); - setTimeout(function () { - MochiKit.Base.evalScripts(response); - }, 10); - } - } - - if (this.responseIsSuccess()) { - if (this.onComplete) { - setTimeout(MochiKit.Base.bind(this.onComplete, this), 10); - } - } - } -}); - -var Field = { - clear: function () { - for (var i = 0; i < arguments.length; i++) { - MochiKit.DOM.getElement(arguments[i]).value = ''; - } - }, - - focus: function (element) { - MochiKit.DOM.getElement(element).focus(); - }, - - present: function () { - for (var i = 0; i < arguments.length; i++) { - if (MochiKit.DOM.getElement(arguments[i]).value == '') { - return false; - } - } - return true; - }, - - select: function (element) { - MochiKit.DOM.getElement(element).select(); - }, - - activate: function (element) { - element = MochiKit.DOM.getElement(element); - element.focus(); - if (element.select) { - element.select(); - } - }, - - scrollFreeActivate: function (field) { - setTimeout(function () { - Field.activate(field); - }, 1); - } -}; - -var Autocompleter = {}; - -Autocompleter.Base = function () {}; - -Autocompleter.Base.prototype = { - baseInitialize: function (element, update, options) { - this.element = MochiKit.DOM.getElement(element); - this.update = MochiKit.DOM.getElement(update); - this.hasFocus = false; - this.changed = false; - this.active = false; - this.index = 0; - this.entryCount = 0; - - if (this.setOptions) { - this.setOptions(options); - } - else { - this.options = options || {}; - } - - this.options.paramName = this.options.paramName || this.element.name; - this.options.tokens = this.options.tokens || []; - this.options.frequency = this.options.frequency || 0.4; - this.options.minChars = this.options.minChars || 1; - this.options.onShow = this.options.onShow || function (element, update) { - if (!update.style.position || update.style.position == 'absolute') { - update.style.position = 'absolute'; - MochiKit.Position.clone(element, update, { - setHeight: false, - offsetTop: element.offsetHeight - }); - } - MochiKit.Visual.appear(update, {duration:0.15}); - }; - this.options.onHide = this.options.onHide || function (element, update) { - MochiKit.Visual.fade(update, {duration: 0.15}); - }; - - if (typeof(this.options.tokens) == 'string') { - this.options.tokens = new Array(this.options.tokens); - } - - this.observer = null; - - this.element.setAttribute('autocomplete', 'off'); - - MochiKit.Style.hideElement(this.update); - - MochiKit.Signal.connect(this.element, 'onblur', this, this.onBlur); - MochiKit.Signal.connect(this.element, 'onkeypress', this, this.onKeyPress, this); - }, - - show: function () { - if (MochiKit.DOM.getStyle(this.update, 'display') == 'none') { - this.options.onShow(this.element, this.update); - } - if (!this.iefix && MochiKit.Base.isIE() && MochiKit.Base.isOpera() && - (MochiKit.DOM.getStyle(this.update, 'position') == 'absolute')) { - new Insertion.After(this.update, - ''); - this.iefix = MochiKit.DOM.getElement(this.update.id + '_iefix'); - } - if (this.iefix) { - setTimeout(MochiKit.Base.bind(this.fixIEOverlapping, this), 50); - } - }, - - fixIEOverlapping: function () { - MochiKit.Position.clone(this.update, this.iefix); - this.iefix.style.zIndex = 1; - this.update.style.zIndex = 2; - MochiKit.Style.showElement(this.iefix); - }, - - hide: function () { - this.stopIndicator(); - if (MochiKit.DOM.getStyle(this.update, 'display') != 'none') { - this.options.onHide(this.element, this.update); - } - if (this.iefix) { - MochiKit.Style.hideElement(this.iefix); - } - }, - - startIndicator: function () { - if (this.options.indicator) { - MochiKit.Style.showElement(this.options.indicator); - } - }, - - stopIndicator: function () { - if (this.options.indicator) { - MochiKit.Style.hideElement(this.options.indicator); - } - }, - - onKeyPress: function (event) { - if (this.active) { - if (event.keyString == "KEY_TAB" || event.keyString == "KEY_RETURN") { - this.selectEntry(); - MochiKit.Event.stop(event); - } else if (event.keyString == "KEY_ESCAPE") { - this.hide(); - this.active = false; - MochiKit.Event.stop(event); - return; - } else if (event.keyString == "KEY_LEFT" || event.keyString == "KEY_RIGHT") { - return; - } else if (event.keyString == "KEY_UP") { - this.markPrevious(); - this.render(); - if (MochiKit.Base.isSafari()) { - event.stop(); - } - return; - } else if (event.keyString == "KEY_DOWN") { - this.markNext(); - this.render(); - if (MochiKit.Base.isSafari()) { - event.stop(); - } - return; - } - } else { - if (event.keyString == "KEY_TAB" || event.keyString == "KEY_RETURN") { - return; - } - } - - this.changed = true; - this.hasFocus = true; - - if (this.observer) { - clearTimeout(this.observer); - } - this.observer = setTimeout(MochiKit.Base.bind(this.onObserverEvent, this), - this.options.frequency*1000); - }, - - findElement: function (event, tagName) { - var element = event.target; - while (element.parentNode && (!element.tagName || - (element.tagName.toUpperCase() != tagName.toUpperCase()))) { - element = element.parentNode; - } - return element; - }, - - onHover: function (event) { - var element = this.findElement(event, 'LI'); - if (this.index != element.autocompleteIndex) { - this.index = element.autocompleteIndex; - this.render(); - } - event.stop(); - }, - - onClick: function (event) { - var element = this.findElement(event, 'LI'); - this.index = element.autocompleteIndex; - this.selectEntry(); - this.hide(); - }, - - onBlur: function (event) { - // needed to make click events working - setTimeout(MochiKit.Base.bind(this.hide, this), 250); - this.hasFocus = false; - this.active = false; - }, - - render: function () { - if (this.entryCount > 0) { - for (var i = 0; i < this.entryCount; i++) { - this.index == i ? - MochiKit.DOM.addElementClass(this.getEntry(i), 'selected') : - MochiKit.DOM.removeElementClass(this.getEntry(i), 'selected'); - } - if (this.hasFocus) { - this.show(); - this.active = true; - } - } else { - this.active = false; - this.hide(); - } - }, - - markPrevious: function () { - if (this.index > 0) { - this.index-- - } else { - this.index = this.entryCount-1; - } - }, - - markNext: function () { - if (this.index < this.entryCount-1) { - this.index++ - } else { - this.index = 0; - } - }, - - getEntry: function (index) { - return this.update.firstChild.childNodes[index]; - }, - - getCurrentEntry: function () { - return this.getEntry(this.index); - }, - - selectEntry: function () { - this.active = false; - this.updateElement(this.getCurrentEntry()); - }, - - collectTextNodesIgnoreClass: function (element, className) { - return MochiKit.Base.flattenArray(MochiKit.Base.map(function (node) { - if (node.nodeType == 3) { - return node.nodeValue; - } else if (node.hasChildNodes() && !MochiKit.DOM.hasElementClass(node, className)) { - return this.collectTextNodesIgnoreClass(node, className); - } - return ''; - }, MochiKit.DOM.getElement(element).childNodes)).join(''); - }, - - updateElement: function (selectedElement) { - if (this.options.updateElement) { - this.options.updateElement(selectedElement); - return; - } - var value = ''; - if (this.options.select) { - var nodes = document.getElementsByClassName(this.options.select, selectedElement) || []; - if (nodes.length > 0) { - value = MochiKit.DOM.scrapeText(nodes[0]); - } - } else { - value = this.collectTextNodesIgnoreClass(selectedElement, 'informal'); - } - var lastTokenPos = this.findLastToken(); - if (lastTokenPos != -1) { - var newValue = this.element.value.substr(0, lastTokenPos + 1); - var whitespace = this.element.value.substr(lastTokenPos + 1).match(/^\s+/); - if (whitespace) { - newValue += whitespace[0]; - } - this.element.value = newValue + value; - } else { - this.element.value = value; - } - this.element.focus(); - - if (this.options.afterUpdateElement) { - this.options.afterUpdateElement(this.element, selectedElement); - } - }, - - updateChoices: function (choices) { - if (!this.changed && this.hasFocus) { - this.update.innerHTML = choices; - var d = MochiKit.DOM; - d.removeEmptyTextNodes(this.update); - d.removeEmptyTextNodes(this.update.firstChild); - - if (this.update.firstChild && this.update.firstChild.childNodes) { - this.entryCount = this.update.firstChild.childNodes.length; - for (var i = 0; i < this.entryCount; i++) { - var entry = this.getEntry(i); - entry.autocompleteIndex = i; - this.addObservers(entry); - } - } else { - this.entryCount = 0; - } - - this.stopIndicator(); - - this.index = 0; - this.render(); - } - }, - - addObservers: function (element) { - MochiKit.Signal.connect(element, 'onmouseover', this, this.onHover); - MochiKit.Signal.connect(element, 'onclick', this, this.onClick); - }, - - onObserverEvent: function () { - this.changed = false; - if (this.getToken().length >= this.options.minChars) { - this.startIndicator(); - this.getUpdatedChoices(); - } else { - this.active = false; - this.hide(); - } - }, - - getToken: function () { - var tokenPos = this.findLastToken(); - if (tokenPos != -1) { - var ret = this.element.value.substr(tokenPos + 1).replace(/^\s+/,'').replace(/\s+$/,''); - } else { - var ret = this.element.value; - } - return /\n/.test(ret) ? '' : ret; - }, - - findLastToken: function () { - var lastTokenPos = -1; - - for (var i = 0; i < this.options.tokens.length; i++) { - var thisTokenPos = this.element.value.lastIndexOf(this.options.tokens[i]); - if (thisTokenPos > lastTokenPos) { - lastTokenPos = thisTokenPos; - } - } - return lastTokenPos; - } -} - -Ajax.Autocompleter = function (element, update, url, options) { - this.__init__(element, update, url, options); -}; - -MochiKit.Base.update(Ajax.Autocompleter.prototype, Autocompleter.Base.prototype); - -MochiKit.Base.update(Ajax.Autocompleter.prototype, { - __init__: function (element, update, url, options) { - this.baseInitialize(element, update, options); - this.options.asynchronous = true; - this.options.onComplete = MochiKit.Base.bind(this.onComplete, this); - this.options.defaultParams = this.options.parameters || null; - this.url = url; - }, - - getUpdatedChoices: function () { - var entry = encodeURIComponent(this.options.paramName) + '=' + - encodeURIComponent(this.getToken()); - - this.options.parameters = this.options.callback ? - this.options.callback(this.element, entry) : entry; - - if (this.options.defaultParams) { - this.options.parameters += '&' + this.options.defaultParams; - } - new Ajax.Request(this.url, this.options); - }, - - onComplete: function (request) { - this.updateChoices(request.responseText); - } -}); - -/*** - -The local array autocompleter. Used when you'd prefer to -inject an array of autocompletion options into the page, rather -than sending out Ajax queries, which can be quite slow sometimes. - -The constructor takes four parameters. The first two are, as usual, -the id of the monitored textbox, and id of the autocompletion menu. -The third is the array you want to autocomplete from, and the fourth -is the options block. - -Extra local autocompletion options: -- choices - How many autocompletion choices to offer - -- partialSearch - If false, the autocompleter will match entered - text only at the beginning of strings in the - autocomplete array. Defaults to true, which will - match text at the beginning of any *word* in the - strings in the autocomplete array. If you want to - search anywhere in the string, additionally set - the option fullSearch to true (default: off). - -- fullSsearch - Search anywhere in autocomplete array strings. - -- partialChars - How many characters to enter before triggering - a partial match (unlike minChars, which defines - how many characters are required to do any match - at all). Defaults to 2. - -- ignoreCase - Whether to ignore case when autocompleting. - Defaults to true. - -It's possible to pass in a custom function as the 'selector' -option, if you prefer to write your own autocompletion logic. -In that case, the other options above will not apply unless -you support them. - -***/ - -Autocompleter.Local = function (element, update, array, options) { - this.__init__(element, update, array, options); -}; - -MochiKit.Base.update(Autocompleter.Local.prototype, Autocompleter.Base.prototype); - -MochiKit.Base.update(Autocompleter.Local.prototype, { - __init__: function (element, update, array, options) { - this.baseInitialize(element, update, options); - this.options.array = array; - }, - - getUpdatedChoices: function () { - this.updateChoices(this.options.selector(this)); - }, - - setOptions: function (options) { - this.options = MochiKit.Base.update({ - choices: 10, - partialSearch: true, - partialChars: 2, - ignoreCase: true, - fullSearch: false, - selector: function (instance) { - var ret = []; // Beginning matches - var partial = []; // Inside matches - var entry = instance.getToken(); - var count = 0; - - for (var i = 0; i < instance.options.array.length && - ret.length < instance.options.choices ; i++) { - - var elem = instance.options.array[i]; - var foundPos = instance.options.ignoreCase ? - elem.toLowerCase().indexOf(entry.toLowerCase()) : - elem.indexOf(entry); - - while (foundPos != -1) { - if (foundPos === 0 && elem.length != entry.length) { - ret.push('
  • ' + elem.substr(0, entry.length) + '' + - elem.substr(entry.length) + '
  • '); - break; - } else if (entry.length >= instance.options.partialChars && - instance.options.partialSearch && foundPos != -1) { - if (instance.options.fullSearch || /\s/.test(elem.substr(foundPos - 1, 1))) { - partial.push('
  • ' + elem.substr(0, foundPos) + '' + - elem.substr(foundPos, entry.length) + '' + elem.substr( - foundPos + entry.length) + '
  • '); - break; - } - } - - foundPos = instance.options.ignoreCase ? - elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) : - elem.indexOf(entry, foundPos + 1); - - } - } - if (partial.length) { - ret = ret.concat(partial.slice(0, instance.options.choices - ret.length)) - } - return '
      ' + ret.join('') + '
    '; - } - }, options || {}); - } -}); - -/*** - -AJAX in-place editor - -see documentation on http://wiki.script.aculo.us/scriptaculous/show/Ajax.InPlaceEditor - -Use this if you notice weird scrolling problems on some browsers, -the DOM might be a bit confused when this gets called so do this -waits 1 ms (with setTimeout) until it does the activation - -***/ - -Ajax.InPlaceEditor = function (element, url, options) { - this.__init__(element, url, options); -}; - -Ajax.InPlaceEditor.defaultHighlightColor = '#FFFF99'; - -Ajax.InPlaceEditor.prototype = { - __init__: function (element, url, options) { - this.url = url; - this.element = MochiKit.DOM.getElement(element); - - this.options = MochiKit.Base.update({ - okButton: true, - okText: 'ok', - cancelLink: true, - cancelText: 'cancel', - savingText: 'Saving...', - clickToEditText: 'Click to edit', - okText: 'ok', - rows: 1, - onComplete: function (transport, element) { - new MochiKit.Visual.Highlight(element, {startcolor: this.options.highlightcolor}); - }, - onFailure: function (transport) { - alert('Error communicating with the server: ' + MochiKit.Base.stripTags(transport.responseText)); - }, - callback: function (form) { - return MochiKit.DOM.formContents(form); - }, - handleLineBreaks: true, - loadingText: 'Loading...', - savingClassName: 'inplaceeditor-saving', - loadingClassName: 'inplaceeditor-loading', - formClassName: 'inplaceeditor-form', - highlightcolor: Ajax.InPlaceEditor.defaultHighlightColor, - highlightendcolor: '#FFFFFF', - externalControl: null, - submitOnBlur: false, - ajaxOptions: {} - }, options || {}); - - if (!this.options.formId && this.element.id) { - this.options.formId = this.element.id + '-inplaceeditor'; - if (MochiKit.DOM.getElement(this.options.formId)) { - // there's already a form with that name, don't specify an id - this.options.formId = null; - } - } - - if (this.options.externalControl) { - this.options.externalControl = MochiKit.DOM.getElement(this.options.externalControl); - } - - this.originalBackground = MochiKit.DOM.getStyle(this.element, 'background-color'); - if (!this.originalBackground) { - this.originalBackground = 'transparent'; - } - - this.element.title = this.options.clickToEditText; - - this.onclickListener = MochiKit.Signal.connect(this.element, 'onclick', this, this.enterEditMode); - this.mouseoverListener = MochiKit.Signal.connect(this.element, 'onmouseover', this, this.enterHover); - this.mouseoutListener = MochiKit.Signal.connect(this.element, 'onmouseout', this, this.leaveHover); - if (this.options.externalControl) { - this.onclickListenerExternal = MochiKit.Signal.connect(this.options.externalControl, - 'onclick', this, this.enterEditMode); - this.mouseoverListenerExternal = MochiKit.Signal.connect(this.options.externalControl, - 'onmouseover', this, this.enterHover); - this.mouseoutListenerExternal = MochiKit.Signal.connect(this.options.externalControl, - 'onmouseout', this, this.leaveHover); - } - }, - - enterEditMode: function (evt) { - if (this.saving) { - return; - } - if (this.editing) { - return; - } - this.editing = true; - this.onEnterEditMode(); - if (this.options.externalControl) { - MochiKit.Style.hideElement(this.options.externalControl); - } - MochiKit.Style.hideElement(this.element); - this.createForm(); - this.element.parentNode.insertBefore(this.form, this.element); - Field.scrollFreeActivate(this.editField); - // stop the event to avoid a page refresh in Safari - if (evt) { - evt.stop(); - } - return false; - }, - - createForm: function () { - this.form = document.createElement('form'); - this.form.id = this.options.formId; - MochiKit.DOM.addElementClass(this.form, this.options.formClassName) - this.form.onsubmit = MochiKit.Base.bind(this.onSubmit, this); - - this.createEditField(); - - if (this.options.textarea) { - var br = document.createElement('br'); - this.form.appendChild(br); - } - - if (this.options.okButton) { - okButton = document.createElement('input'); - okButton.type = 'submit'; - okButton.value = this.options.okText; - this.form.appendChild(okButton); - } - - if (this.options.cancelLink) { - cancelLink = document.createElement('a'); - cancelLink.href = '#'; - cancelLink.appendChild(document.createTextNode(this.options.cancelText)); - cancelLink.onclick = MochiKit.Base.bind(this.onclickCancel, this); - this.form.appendChild(cancelLink); - } - }, - - hasHTMLLineBreaks: function (string) { - if (!this.options.handleLineBreaks) { - return false; - } - return string.match(/
    /i); - }, - - convertHTMLLineBreaks: function (string) { - return string.replace(/
    /gi, '\n').replace(//gi, '\n').replace(/<\/p>/gi, '\n').replace(/

    /gi, ''); - }, - - createEditField: function () { - var text; - if (this.options.loadTextURL) { - text = this.options.loadingText; - } else { - text = this.getText(); - } - - var obj = this; - - if (this.options.rows == 1 && !this.hasHTMLLineBreaks(text)) { - this.options.textarea = false; - var textField = document.createElement('input'); - textField.obj = this; - textField.type = 'text'; - textField.name = 'value'; - textField.value = text; - textField.style.backgroundColor = this.options.highlightcolor; - var size = this.options.size || this.options.cols || 0; - if (size !== 0) { - textField.size = size; - } - if (this.options.submitOnBlur) { - textField.onblur = MochiKit.Base.bind(this.onSubmit, this); - } - this.editField = textField; - } else { - this.options.textarea = true; - var textArea = document.createElement('textarea'); - textArea.obj = this; - textArea.name = 'value'; - textArea.value = this.convertHTMLLineBreaks(text); - textArea.rows = this.options.rows; - textArea.cols = this.options.cols || 40; - if (this.options.submitOnBlur) { - textArea.onblur = MochiKit.Base.bind(this.onSubmit, this); - } - this.editField = textArea; - } - - if (this.options.loadTextURL) { - this.loadExternalText(); - } - this.form.appendChild(this.editField); - }, - - getText: function () { - return this.element.innerHTML; - }, - - loadExternalText: function () { - MochiKit.DOM.addElementClass(this.form, this.options.loadingClassName); - this.editField.disabled = true; - new Ajax.Request( - this.options.loadTextURL, - MochiKit.Base.update({ - asynchronous: true, - onComplete: MochiKit.Base.bind(this.onLoadedExternalText, this) - }, this.options.ajaxOptions) - ); - }, - - onLoadedExternalText: function (transport) { - MochiKit.DOM.removeElementClass(this.form, this.options.loadingClassName); - this.editField.disabled = false; - this.editField.value = MochiKit.Base.stripTags(transport); - }, - - onclickCancel: function () { - this.onComplete(); - this.leaveEditMode(); - return false; - }, - - onFailure: function (transport) { - this.options.onFailure(transport); - if (this.oldInnerHTML) { - this.element.innerHTML = this.oldInnerHTML; - this.oldInnerHTML = null; - } - return false; - }, - - onSubmit: function () { - // onLoading resets these so we need to save them away for the Ajax call - var form = this.form; - var value = this.editField.value; - - // do this first, sometimes the ajax call returns before we get a - // chance to switch on Saving which means this will actually switch on - // Saving *after* we have left edit mode causing Saving to be - // displayed indefinitely - this.onLoading(); - - new Ajax.Updater( - { - success: this.element, - // dont update on failure (this could be an option) - failure: null - }, - this.url, - MochiKit.Base.update({ - parameters: this.options.callback(form, value), - onComplete: MochiKit.Base.bind(this.onComplete, this), - onFailure: MochiKit.Base.bind(this.onFailure, this) - }, this.options.ajaxOptions) - ); - // stop the event to avoid a page refresh in Safari - if (arguments.length > 1) { - arguments[0].stop(); - } - return false; - }, - - onLoading: function () { - this.saving = true; - this.removeForm(); - this.leaveHover(); - this.showSaving(); - }, - - showSaving: function () { - this.oldInnerHTML = this.element.innerHTML; - this.element.innerHTML = this.options.savingText; - MochiKit.DOM.addElementClass(this.element, this.options.savingClassName); - this.element.style.backgroundColor = this.originalBackground; - MochiKit.Style.showElement(this.element); - }, - - removeForm: function () { - if (this.form) { - if (this.form.parentNode) { - MochiKit.DOM.removeElement(this.form); - } - this.form = null; - } - }, - - enterHover: function () { - if (this.saving) { - return; - } - this.element.style.backgroundColor = this.options.highlightcolor; - if (this.effect) { - this.effect.cancel(); - } - MochiKit.DOM.addElementClass(this.element, this.options.hoverClassName) - }, - - leaveHover: function () { - if (this.options.backgroundColor) { - this.element.style.backgroundColor = this.oldBackground; - } - MochiKit.DOM.removeElementClass(this.element, this.options.hoverClassName) - if (this.saving) { - return; - } - this.effect = new MochiKit.Visual.Highlight(this.element, { - startcolor: this.options.highlightcolor, - endcolor: this.options.highlightendcolor, - restorecolor: this.originalBackground - }); - }, - - leaveEditMode: function () { - MochiKit.DOM.removeElementClass(this.element, this.options.savingClassName); - this.removeForm(); - this.leaveHover(); - this.element.style.backgroundColor = this.originalBackground; - MochiKit.Style.showElement(this.element); - if (this.options.externalControl) { - MochiKit.Style.showElement(this.options.externalControl); - } - this.editing = false; - this.saving = false; - this.oldInnerHTML = null; - this.onLeaveEditMode(); - }, - - onComplete: function (transport) { - this.leaveEditMode(); - MochiKit.Base.bind(this.options.onComplete, this)(transport, this.element); - }, - - onEnterEditMode: function () {}, - - onLeaveEditMode: function () {}, - - dispose: function () { - if (this.oldInnerHTML) { - this.element.innerHTML = this.oldInnerHTML; - } - this.leaveEditMode(); - MochiKit.Signal.disconnect(this.onclickListener); - MochiKit.Signal.disconnect(this.mouseoverListener); - MochiKit.Signal.disconnect(this.mouseoutListener); - if (this.options.externalControl) { - MochiKit.Signal.disconnect(this.onclickListenerExternal); - MochiKit.Signal.disconnect(this.mouseoverListenerExternal); - MochiKit.Signal.disconnect(this.mouseoutListenerExternal); - } - } -}; - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/DOM.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/DOM.js deleted file mode 100644 index b3771c095..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/DOM.js +++ /dev/null @@ -1,926 +0,0 @@ -/*** - -MochiKit.DOM 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide("MochiKit.DOM"); - dojo.require("MochiKit.Base"); -} -if (typeof(JSAN) != 'undefined') { - JSAN.use("MochiKit.Base", []); -} - -try { - if (typeof(MochiKit.Base) == 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.DOM depends on MochiKit.Base!"; -} - -if (typeof(MochiKit.DOM) == 'undefined') { - MochiKit.DOM = {}; -} - -MochiKit.DOM.NAME = "MochiKit.DOM"; -MochiKit.DOM.VERSION = "1.4"; -MochiKit.DOM.__repr__ = function () { - return "[" + this.NAME + " " + this.VERSION + "]"; -}; -MochiKit.DOM.toString = function () { - return this.__repr__(); -}; - -MochiKit.DOM.EXPORT = [ - "removeEmptyTextNodes", - "formContents", - "currentWindow", - "currentDocument", - "withWindow", - "withDocument", - "registerDOMConverter", - "coerceToDOM", - "createDOM", - "createDOMFunc", - "getNodeAttribute", - "setNodeAttribute", - "updateNodeAttributes", - "appendChildNodes", - "replaceChildNodes", - "removeElement", - "swapDOM", - "BUTTON", - "TT", - "PRE", - "H1", - "H2", - "H3", - "BR", - "CANVAS", - "HR", - "LABEL", - "TEXTAREA", - "FORM", - "STRONG", - "SELECT", - "OPTION", - "OPTGROUP", - "LEGEND", - "FIELDSET", - "P", - "UL", - "OL", - "LI", - "TD", - "TR", - "THEAD", - "TBODY", - "TFOOT", - "TABLE", - "TH", - "INPUT", - "SPAN", - "A", - "DIV", - "IMG", - "getElement", - "$", - "getElementsByTagAndClassName", - "addToCallStack", - "addLoadEvent", - "focusOnLoad", - "setElementClass", - "toggleElementClass", - "addElementClass", - "removeElementClass", - "swapElementClass", - "hasElementClass", - "escapeHTML", - "toHTML", - "emitHTML", - "scrapeText" -]; - -MochiKit.DOM.EXPORT_OK = [ - "domConverters" -]; - -MochiKit.DOM.DEPRECATED = [ - ['computedStyle', 'MochiKit.Style.computedStyle', '1.4'], - ['elementDimensions', 'MochiKit.Style.getElementDimensions', '1.4'], - ['elementPosition', 'MochiKit.Style.getElementPosition', '1.4'], - ['hideElement', 'MochiKit.Style.hideElement', '1.4'], - ['setElementDimensions', 'MochiKit.Style.setElementDimensions', '1.4'], - ['setElementPosition', 'MochiKit.Style.setElementPosition', '1.4'], - ['setDisplayForElement', 'MochiKit.Style.setDisplayForElement', '1.4'], - ['setOpacity', 'MochiKit.Style.setOpacity', '1.4'], - ['showElement', 'MochiKit.Style.showElement', '1.4'], - ['Coordinates', 'MochiKit.Style.Coordinates', '1.4'], // FIXME: broken - ['Dimensions', 'MochiKit.Style.Dimensions', '1.4'] // FIXME: broken -]; - -MochiKit.DOM.getViewportDimensions = new Function('' + - 'if (!MochiKit["Style"]) {' + - ' throw new Error("This function has been deprecated and depends on MochiKit.Style.");' + - '}' + - 'return MochiKit.Style.getViewportDimensions.apply(this, arguments);'); - -MochiKit.Base.update(MochiKit.DOM, { - - currentWindow: function () { - return MochiKit.DOM._window; - }, - - currentDocument: function () { - return MochiKit.DOM._document; - }, - - withWindow: function (win, func) { - var self = MochiKit.DOM; - var oldDoc = self._document; - var oldWin = self._win; - var rval; - try { - self._window = win; - self._document = win.document; - rval = func(); - } catch (e) { - self._window = oldWin; - self._document = oldDoc; - throw e; - } - self._window = oldWin; - self._document = oldDoc; - return rval; - }, - - formContents: function (elem/* = document */) { - var names = []; - var values = []; - var m = MochiKit.Base; - var self = MochiKit.DOM; - if (typeof(elem) == "undefined" || elem === null) { - elem = self._document; - } else { - elem = self.getElement(elem); - } - m.nodeWalk(elem, function (elem) { - var name = elem.name; - if (m.isNotEmpty(name)) { - var tagName = elem.nodeName; - if (tagName == "INPUT" - && (elem.type == "radio" || elem.type == "checkbox") - && !elem.checked - ) { - return null; - } - if (tagName == "SELECT") { - if (elem.type == "select-one") { - if (elem.selectedIndex >= 0) { - var opt = elem.options[elem.selectedIndex]; - names.push(name); - values.push((opt.value) ? opt.value : opt.text); - return null; - } - // no form elements? - names.push(name); - values.push(""); - return null; - } else { - var opts = elem.options; - if (!opts.length) { - names.push(name); - values.push(""); - return null; - } - for (var i = 0; i < opts.length; i++) { - var opt = opts[i]; - if (!opt.selected) { - continue; - } - names.push(name); - values.push((opt.value) ? opt.value : opt.text); - } - return null; - } - } - if (tagName == "FORM" || tagName == "P" || tagName == "SPAN" - || tagName == "DIV" - ) { - return elem.childNodes; - } - names.push(name); - values.push(elem.value || ''); - return null; - } - return elem.childNodes; - }); - return [names, values]; - }, - - withDocument: function (doc, func) { - var self = MochiKit.DOM; - var oldDoc = self._document; - var rval; - try { - self._document = doc; - rval = func(); - } catch (e) { - self._document = oldDoc; - throw e; - } - self._document = oldDoc; - return rval; - }, - - registerDOMConverter: function (name, check, wrap, /* optional */override) { - MochiKit.DOM.domConverters.register(name, check, wrap, override); - }, - - coerceToDOM: function (node, ctx) { - var m = MochiKit.Base; - var im = MochiKit.Iter; - var self = MochiKit.DOM; - if (im) { - var iter = im.iter; - var repeat = im.repeat; - var map = m.map; - } - var domConverters = self.domConverters; - var coerceToDOM = arguments.callee; - var NotFound = m.NotFound; - while (true) { - if (typeof(node) == 'undefined' || node === null) { - return null; - } - if (typeof(node.nodeType) != 'undefined' && node.nodeType > 0) { - return node; - } - if (typeof(node) == 'number' || typeof(node) == 'boolean') { - node = node.toString(); - // FALL THROUGH - } - if (typeof(node) == 'string') { - return self._document.createTextNode(node); - } - if (typeof(node.__dom__) == 'function') { - node = node.__dom__(ctx); - continue; - } - if (typeof(node.dom) == 'function') { - node = node.dom(ctx); - continue; - } - if (typeof(node) == 'function') { - node = node.apply(ctx, [ctx]); - continue; - } - - if (im) { - // iterable - var iterNodes = null; - try { - iterNodes = iter(node); - } catch (e) { - // pass - } - if (iterNodes) { - return map(coerceToDOM, iterNodes, repeat(ctx)); - } - } - - // adapter - try { - node = domConverters.match(node, ctx); - continue; - } catch (e) { - if (e != NotFound) { - throw e; - } - } - - // fallback - return self._document.createTextNode(node.toString()); - } - // mozilla warnings aren't too bright - return undefined; - }, - - setNodeAttribute: function (node, attr, value) { - var o = {}; - o[attr] = value; - try { - return MochiKit.DOM.updateNodeAttributes(node, o); - } catch (e) { - // pass - } - return null; - }, - - getNodeAttribute: function (node, attr) { - var self = MochiKit.DOM; - var rename = self.attributeArray.renames[attr]; - node = self.getElement(node); - try { - if (rename) { - return node[rename]; - } - return node.getAttribute(attr); - } catch (e) { - // pass - } - return null; - }, - - updateNodeAttributes: function (node, attrs) { - var elem = node; - var self = MochiKit.DOM; - if (typeof(node) == 'string') { - elem = self.getElement(node); - } - if (attrs) { - var updatetree = MochiKit.Base.updatetree; - if (self.attributeArray.compliant) { - // not IE, good. - for (var k in attrs) { - var v = attrs[k]; - if (typeof(v) == 'object' && typeof(elem[k]) == 'object') { - updatetree(elem[k], v); - } else if (k.substring(0, 2) == "on") { - if (typeof(v) == "string") { - v = new Function(v); - } - elem[k] = v; - } else { - elem.setAttribute(k, v); - } - } - } else { - // IE is insane in the membrane - var renames = self.attributeArray.renames; - for (k in attrs) { - v = attrs[k]; - var renamed = renames[k]; - if (k == "style" && typeof(v) == "string") { - elem.style.cssText = v; - } else if (typeof(renamed) == "string") { - elem[renamed] = v; - } else if (typeof(elem[k]) == 'object' - && typeof(v) == 'object') { - updatetree(elem[k], v); - } else if (k.substring(0, 2) == "on") { - if (typeof(v) == "string") { - v = new Function(v); - } - elem[k] = v; - } else { - elem.setAttribute(k, v); - } - } - } - } - return elem; - }, - - appendChildNodes: function (node/*, nodes...*/) { - var elem = node; - var self = MochiKit.DOM; - if (typeof(node) == 'string') { - elem = self.getElement(node); - } - var nodeStack = [ - self.coerceToDOM( - MochiKit.Base.extend(null, arguments, 1), - elem - ) - ]; - var concat = MochiKit.Base.concat; - while (nodeStack.length) { - var n = nodeStack.shift(); - if (typeof(n) == 'undefined' || n === null) { - // pass - } else if (typeof(n.nodeType) == 'number') { - elem.appendChild(n); - } else { - nodeStack = concat(n, nodeStack); - } - } - return elem; - }, - - replaceChildNodes: function (node/*, nodes...*/) { - var elem = node; - var self = MochiKit.DOM; - if (typeof(node) == 'string') { - elem = self.getElement(node); - arguments[0] = elem; - } - var child; - while ((child = elem.firstChild)) { - elem.removeChild(child); - } - if (arguments.length < 2) { - return elem; - } else { - return self.appendChildNodes.apply(this, arguments); - } - }, - - createDOM: function (name, attrs/*, nodes... */) { - var elem; - var self = MochiKit.DOM; - var m = MochiKit.Base; - if (typeof(attrs) == "string" || typeof(attrs) == "number") { - var args = m.extend([name, null], arguments, 1); - return arguments.callee.apply(this, args); - } - if (typeof(name) == 'string') { - // Internet Explorer is dumb - if (attrs && !self.attributeArray.compliant) { - // http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/name_2.asp - var contents = ""; - if ('name' in attrs) { - contents += ' name="' + self.escapeHTML(attrs.name) + '"'; - } - if (name == 'input' && 'type' in attrs) { - contents += ' type="' + self.escapeHTML(attrs.type) + '"'; - } - if (contents) { - name = "<" + name + contents + ">"; - } - } - elem = self._document.createElement(name); - } else { - elem = name; - } - if (attrs) { - self.updateNodeAttributes(elem, attrs); - } - if (arguments.length <= 2) { - return elem; - } else { - var args = m.extend([elem], arguments, 2); - return self.appendChildNodes.apply(this, args); - } - }, - - createDOMFunc: function (/* tag, attrs, *nodes */) { - var m = MochiKit.Base; - return m.partial.apply( - this, - m.extend([MochiKit.DOM.createDOM], arguments) - ); - }, - - removeElement: function (elem) { - var e = MochiKit.DOM.getElement(elem); - e.parentNode.removeChild(e); - return e; - }, - - swapDOM: function (dest, src) { - var self = MochiKit.DOM; - dest = self.getElement(dest); - var parent = dest.parentNode; - if (src) { - src = self.getElement(src); - parent.replaceChild(src, dest); - } else { - parent.removeChild(dest); - } - return src; - }, - - getElement: function (id) { - var self = MochiKit.DOM; - if (arguments.length == 1) { - return ((typeof(id) == "string") ? - self._document.getElementById(id) : id); - } else { - return MochiKit.Base.map(self.getElement, arguments); - } - }, - - getElementsByTagAndClassName: function (tagName, className, - /* optional */parent) { - var self = MochiKit.DOM; - if (typeof(tagName) == 'undefined' || tagName === null) { - tagName = '*'; - } - if (typeof(parent) == 'undefined' || parent === null) { - parent = self._document; - } - parent = self.getElement(parent); - var children = (parent.getElementsByTagName(tagName) - || self._document.all); - if (typeof(className) == 'undefined' || className === null) { - return MochiKit.Base.extend(null, children); - } - - var elements = []; - for (var i = 0; i < children.length; i++) { - var child = children[i]; - var classNames = child.className.split(' '); - for (var j = 0; j < classNames.length; j++) { - if (classNames[j] == className) { - elements.push(child); - break; - } - } - } - - return elements; - }, - - _newCallStack: function (path, once) { - var rval = function () { - var callStack = arguments.callee.callStack; - for (var i = 0; i < callStack.length; i++) { - if (callStack[i].apply(this, arguments) === false) { - break; - } - } - if (once) { - try { - this[path] = null; - } catch (e) { - // pass - } - } - }; - rval.callStack = []; - return rval; - }, - - addToCallStack: function (target, path, func, once) { - var self = MochiKit.DOM; - var existing = target[path]; - var regfunc = existing; - if (!(typeof(existing) == 'function' - && typeof(existing.callStack) == "object" - && existing.callStack !== null)) { - regfunc = self._newCallStack(path, once); - if (typeof(existing) == 'function') { - regfunc.callStack.push(existing); - } - target[path] = regfunc; - } - regfunc.callStack.push(func); - }, - - addLoadEvent: function (func) { - var self = MochiKit.DOM; - self.addToCallStack(self._window, "onload", func, true); - - }, - - focusOnLoad: function (element) { - var self = MochiKit.DOM; - self.addLoadEvent(function () { - element = self.getElement(element); - if (element) { - element.focus(); - } - }); - }, - - setElementClass: function (element, className) { - var self = MochiKit.DOM; - var obj = self.getElement(element); - if (self.attributeArray.compliant) { - obj.setAttribute("class", className); - } else { - obj.setAttribute("className", className); - } - }, - - toggleElementClass: function (className/*, element... */) { - var self = MochiKit.DOM; - for (var i = 1; i < arguments.length; i++) { - var obj = self.getElement(arguments[i]); - if (!self.addElementClass(obj, className)) { - self.removeElementClass(obj, className); - } - } - }, - - addElementClass: function (element, className) { - var self = MochiKit.DOM; - var obj = self.getElement(element); - var cls = obj.className; - // trivial case, no className yet - if (cls.length === 0) { - self.setElementClass(obj, className); - return true; - } - // the other trivial case, already set as the only class - if (cls == className) { - return false; - } - var classes = obj.className.split(" "); - for (var i = 0; i < classes.length; i++) { - // already present - if (classes[i] == className) { - return false; - } - } - // append class - self.setElementClass(obj, cls + " " + className); - return true; - }, - - removeElementClass: function (element, className) { - var self = MochiKit.DOM; - var obj = self.getElement(element); - var cls = obj.className; - // trivial case, no className yet - if (cls.length === 0) { - return false; - } - // other trivial case, set only to className - if (cls == className) { - self.setElementClass(obj, ""); - return true; - } - var classes = obj.className.split(" "); - for (var i = 0; i < classes.length; i++) { - // already present - if (classes[i] == className) { - // only check sane case where the class is used once - classes.splice(i, 1); - self.setElementClass(obj, classes.join(" ")); - return true; - } - } - // not found - return false; - }, - - swapElementClass: function (element, fromClass, toClass) { - var obj = MochiKit.DOM.getElement(element); - var res = MochiKit.DOM.removeElementClass(obj, fromClass); - if (res) { - MochiKit.DOM.addElementClass(obj, toClass); - } - return res; - }, - - hasElementClass: function (element, className/*...*/) { - var obj = MochiKit.DOM.getElement(element); - var classes = obj.className.split(" "); - for (var i = 1; i < arguments.length; i++) { - var good = false; - for (var j = 0; j < classes.length; j++) { - if (classes[j] == arguments[i]) { - good = true; - break; - } - } - if (!good) { - return false; - } - } - return true; - }, - - escapeHTML: function (s) { - return s.replace(/&/g, "&" - ).replace(/"/g, """ - ).replace(//g, ">"); - }, - - toHTML: function (dom) { - return MochiKit.DOM.emitHTML(dom).join(""); - }, - - emitHTML: function (dom, /* optional */lst) { - if (typeof(lst) == 'undefined' || lst === null) { - lst = []; - } - // queue is the call stack, we're doing this non-recursively - var queue = [dom]; - var self = MochiKit.DOM; - var escapeHTML = self.escapeHTML; - var attributeArray = self.attributeArray; - while (queue.length) { - dom = queue.pop(); - if (typeof(dom) == 'string') { - lst.push(dom); - } else if (dom.nodeType == 1) { - // we're not using higher order stuff here - // because safari has heisenbugs.. argh. - // - // I think it might have something to do with - // garbage collection and function calls. - lst.push('<' + dom.nodeName.toLowerCase()); - var attributes = []; - var domAttr = attributeArray(dom); - for (var i = 0; i < domAttr.length; i++) { - var a = domAttr[i]; - attributes.push([ - " ", - a.name, - '="', - escapeHTML(a.value), - '"' - ]); - } - attributes.sort(); - for (i = 0; i < attributes.length; i++) { - var attrs = attributes[i]; - for (var j = 0; j < attrs.length; j++) { - lst.push(attrs[j]); - } - } - if (dom.hasChildNodes()) { - lst.push(">"); - // queue is the FILO call stack, so we put the close tag - // on first - queue.push(""); - var cnodes = dom.childNodes; - for (i = cnodes.length - 1; i >= 0; i--) { - queue.push(cnodes[i]); - } - } else { - lst.push('/>'); - } - } else if (dom.nodeType == 3) { - lst.push(escapeHTML(dom.nodeValue)); - } - } - return lst; - }, - - scrapeText: function (node, /* optional */asArray) { - var rval = []; - (function (node) { - var cn = node.childNodes; - if (cn) { - for (var i = 0; i < cn.length; i++) { - arguments.callee.call(this, cn[i]); - } - } - var nodeValue = node.nodeValue; - if (typeof(nodeValue) == 'string') { - rval.push(nodeValue); - } - })(MochiKit.DOM.getElement(node)); - if (asArray) { - return rval; - } else { - return rval.join(""); - } - }, - - removeEmptyTextNodes: function (element) { - element = MochiKit.DOM.getElement(element); - for (var i = 0; i < element.childNodes.length; i++) { - var node = element.childNodes[i]; - if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) { - node.parentNode.removeChild(node); - } - } - }, - - __new__: function (win) { - - var m = MochiKit.Base; - if (typeof(document) != "undefined") { - this._document = document; - } else if (MochiKit.MockDOM) { - this._document = MochiKit.MockDOM.document; - } - this._window = win; - - this.domConverters = new m.AdapterRegistry(); - - var __tmpElement = this._document.createElement("span"); - var attributeArray; - if (__tmpElement && __tmpElement.attributes && - __tmpElement.attributes.length > 0) { - // for braindead browsers (IE) that insert extra junk - var filter = m.filter; - attributeArray = function (node) { - return filter(attributeArray.ignoreAttrFilter, node.attributes); - }; - attributeArray.ignoreAttr = {}; - var attrs = __tmpElement.attributes; - var ignoreAttr = attributeArray.ignoreAttr; - for (var i = 0; i < attrs.length; i++) { - var a = attrs[i]; - ignoreAttr[a.name] = a.value; - } - attributeArray.ignoreAttrFilter = function (a) { - return (attributeArray.ignoreAttr[a.name] != a.value); - }; - attributeArray.compliant = false; - attributeArray.renames = { - "class": "className", - "checked": "defaultChecked", - "usemap": "useMap", - "for": "htmlFor", - "readonly": "readOnly" - }; - } else { - attributeArray = function (node) { - /*** - - Return an array of attributes for a given node, - filtering out attributes that don't belong for - that are inserted by "Certain Browsers". - - ***/ - return node.attributes; - }; - attributeArray.compliant = true; - attributeArray.renames = {}; - } - this.attributeArray = attributeArray; - - // FIXME: this really belongs in Base, and could probably be cleaner - var _deprecated = function(fromModule, arr) { - var modules = arr[1].split('.'); - var str = ''; - var obj = {}; - - str += 'if (!MochiKit.' + modules[1] + ') { throw new Error("'; - str += 'This function has been deprecated and depends on MochiKit.'; - str += modules[1] + '.");}'; - str += 'return MochiKit.' + modules[1] + '.' + arr[0]; - str += '.apply(this, arguments);'; - - obj[modules[2]] = new Function(str); - MochiKit.Base.update(MochiKit[fromModule], obj); - } - for (var i; i < MochiKit.DOM.DEPRECATED.length; i++) { - _deprecated('DOM', MochiKit.DOM.DEPRECATED[i]); - } - - // shorthand for createDOM syntax - var createDOMFunc = this.createDOMFunc; - this.UL = createDOMFunc("ul"); - this.OL = createDOMFunc("ol"); - this.LI = createDOMFunc("li"); - this.TD = createDOMFunc("td"); - this.TR = createDOMFunc("tr"); - this.TBODY = createDOMFunc("tbody"); - this.THEAD = createDOMFunc("thead"); - this.TFOOT = createDOMFunc("tfoot"); - this.TABLE = createDOMFunc("table"); - this.TH = createDOMFunc("th"); - this.INPUT = createDOMFunc("input"); - this.SPAN = createDOMFunc("span"); - this.A = createDOMFunc("a"); - this.DIV = createDOMFunc("div"); - this.IMG = createDOMFunc("img"); - this.BUTTON = createDOMFunc("button"); - this.TT = createDOMFunc("tt"); - this.PRE = createDOMFunc("pre"); - this.H1 = createDOMFunc("h1"); - this.H2 = createDOMFunc("h2"); - this.H3 = createDOMFunc("h3"); - this.BR = createDOMFunc("br"); - this.HR = createDOMFunc("hr"); - this.LABEL = createDOMFunc("label"); - this.TEXTAREA = createDOMFunc("textarea"); - this.FORM = createDOMFunc("form"); - this.P = createDOMFunc("p"); - this.SELECT = createDOMFunc("select"); - this.OPTION = createDOMFunc("option"); - this.OPTGROUP = createDOMFunc("optgroup"); - this.LEGEND = createDOMFunc("legend"); - this.FIELDSET = createDOMFunc("fieldset"); - this.STRONG = createDOMFunc("strong"); - this.CANVAS = createDOMFunc("canvas"); - - this.$ = this.getElement; - - this.EXPORT_TAGS = { - ":common": this.EXPORT, - ":all": m.concat(this.EXPORT, this.EXPORT_OK) - }; - - m.nameFunctions(this); - - } -}); - - -MochiKit.DOM.__new__(((typeof(window) == "undefined") ? this : window)); - -// -// XXX: Internet Explorer blows -// -if (MochiKit.__export__) { - withWindow = MochiKit.DOM.withWindow; - withDocument = MochiKit.DOM.withDocument; -} - -MochiKit.Base._exportSymbols(this, MochiKit.DOM); diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/DateTime.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/DateTime.js deleted file mode 100644 index c094a864c..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/DateTime.js +++ /dev/null @@ -1,208 +0,0 @@ -/*** - -MochiKit.DateTime 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.DateTime'); -} - -if (typeof(MochiKit) == 'undefined') { - MochiKit = {}; -} - -if (typeof(MochiKit.DateTime) == 'undefined') { - MochiKit.DateTime = {}; -} - -MochiKit.DateTime.NAME = "MochiKit.DateTime"; -MochiKit.DateTime.VERSION = "1.4"; -MochiKit.DateTime.__repr__ = function () { - return "[" + this.NAME + " " + this.VERSION + "]"; -}; -MochiKit.DateTime.toString = function () { - return this.__repr__(); -}; - -MochiKit.DateTime.isoDate = function (str) { - str = str + ""; - if (typeof(str) != "string" || str.length === 0) { - return null; - } - var iso = str.split('-'); - if (iso.length === 0) { - return null; - } - return new Date(iso[0], iso[1] - 1, iso[2]); -}; - -MochiKit.DateTime._isoRegexp = /(\d{4,})(?:-(\d{1,2})(?:-(\d{1,2})(?:[T ](\d{1,2}):(\d{1,2})(?::(\d{1,2})(?:\.(\d+))?)?(?:(Z)|([+-])(\d{1,2})(?::(\d{1,2}))?)?)?)?)?/; - -MochiKit.DateTime.isoTimestamp = function (str) { - str = str + ""; - if (typeof(str) != "string" || str.length === 0) { - return null; - } - var res = str.match(MochiKit.DateTime._isoRegexp); - if (typeof(res) == "undefined" || res === null) { - return null; - } - var year, month, day, hour, min, sec, msec; - year = parseInt(res[1], 10); - if (typeof(res[2]) == "undefined" || res[2] === '') { - return new Date(year); - } - month = parseInt(res[2], 10) - 1; - day = parseInt(res[3], 10); - if (typeof(res[4]) == "undefined" || res[4] === '') { - return new Date(year, month, day); - } - hour = parseInt(res[4], 10); - min = parseInt(res[5], 10); - sec = (typeof(res[6]) != "undefined" && res[6] !== '') ? parseInt(res[6], 10) : 0; - if (typeof(res[7]) != "undefined" && res[7] !== '') { - msec = Math.round(1000.0 * parseFloat("0." + res[7])); - } else { - msec = 0; - } - if ((typeof(res[8]) == "undefined" || res[8] === '') && (typeof(res[9]) == "undefined" || res[9] === '')) { - return new Date(year, month, day, hour, min, sec, msec); - } - var ofs; - if (typeof(res[9]) != "undefined" && res[9] !== '') { - ofs = parseInt(res[10], 10) * 3600000; - if (typeof(res[11]) != "undefined" && res[11] !== '') { - ofs += parseInt(res[11], 10) * 60000; - } - if (res[9] == "-") { - ofs = -ofs; - } - } else { - ofs = 0; - } - return new Date(Date.UTC(year, month, day, hour, min, sec, msec) - ofs); -}; - -MochiKit.DateTime.toISOTime = function (date, realISO/* = false */) { - if (typeof(date) == "undefined" || date === null) { - return null; - } - var hh = date.getHours(); - var mm = date.getMinutes(); - var ss = date.getSeconds(); - var lst = [ - ((realISO && (hh < 10)) ? "0" + hh : hh), - ((mm < 10) ? "0" + mm : mm), - ((ss < 10) ? "0" + ss : ss) - ]; - return lst.join(":"); -}; - -MochiKit.DateTime.toISOTimestamp = function (date, realISO/* = false*/) { - if (typeof(date) == "undefined" || date === null) { - return null; - } - var sep = realISO ? "T" : " "; - var foot = realISO ? "Z" : ""; - if (realISO) { - date = new Date(date.getTime() + (date.getTimezoneOffset() * 60000)); - } - return MochiKit.DateTime.toISODate(date) + sep + MochiKit.DateTime.toISOTime(date, realISO) + foot; -}; - -MochiKit.DateTime.toISODate = function (date) { - if (typeof(date) == "undefined" || date === null) { - return null; - } - var _padTwo = MochiKit.DateTime._padTwo; - return [ - date.getFullYear(), - _padTwo(date.getMonth() + 1), - _padTwo(date.getDate()) - ].join("-"); -}; - -MochiKit.DateTime.americanDate = function (d) { - d = d + ""; - if (typeof(d) != "string" || d.length === 0) { - return null; - } - var a = d.split('/'); - return new Date(a[2], a[0] - 1, a[1]); -}; - -MochiKit.DateTime._padTwo = function (n) { - return (n > 9) ? n : "0" + n; -}; - -MochiKit.DateTime.toPaddedAmericanDate = function (d) { - if (typeof(d) == "undefined" || d === null) { - return null; - } - var _padTwo = MochiKit.DateTime._padTwo; - return [ - _padTwo(d.getMonth() + 1), - _padTwo(d.getDate()), - d.getFullYear() - ].join('/'); -}; - -MochiKit.DateTime.toAmericanDate = function (d) { - if (typeof(d) == "undefined" || d === null) { - return null; - } - return [d.getMonth() + 1, d.getDate(), d.getFullYear()].join('/'); -}; - -MochiKit.DateTime.EXPORT = [ - "isoDate", - "isoTimestamp", - "toISOTime", - "toISOTimestamp", - "toISODate", - "americanDate", - "toPaddedAmericanDate", - "toAmericanDate" -]; - -MochiKit.DateTime.EXPORT_OK = []; -MochiKit.DateTime.EXPORT_TAGS = { - ":common": MochiKit.DateTime.EXPORT, - ":all": MochiKit.DateTime.EXPORT -}; - -MochiKit.DateTime.__new__ = function () { - // MochiKit.Base.nameFunctions(this); - var base = this.NAME + "."; - for (var k in this) { - var o = this[k]; - if (typeof(o) == 'function' && typeof(o.NAME) == 'undefined') { - try { - o.NAME = base + k; - } catch (e) { - // pass - } - } - } -}; - -MochiKit.DateTime.__new__(); - -if (typeof(MochiKit.Base) != "undefined") { - MochiKit.Base._exportSymbols(this, MochiKit.DateTime); -} else { - (function (globals, module) { - if ((typeof(JSAN) == 'undefined' && typeof(dojo) == 'undefined') - || (MochiKit.__export__ === false)) { - var all = module.EXPORT_TAGS[":all"]; - for (var i = 0; i < all.length; i++) { - globals[all[i]] = module[all[i]]; - } - } - })(this, MochiKit.DateTime); -} diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/DragAndDrop.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/DragAndDrop.js deleted file mode 100644 index 3b64298b4..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/DragAndDrop.js +++ /dev/null @@ -1,774 +0,0 @@ -/*** -MochiKit.DragAndDrop 1.4 - -See for documentation, downloads, license, etc. - -Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) - Mochi-ized By Thomas Herve (_firstname_@nimail.org) - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.DragAndDrop'); - dojo.require('MochiKit.Base'); - dojo.require('MochiKit.DOM'); - dojo.require('MochiKit.Iter'); - dojo.require('MochiKit.Visual'); - dojo.require('MochiKit.Signal'); -} - -if (typeof(JSAN) != 'undefined') { - JSAN.use("MochiKit.Base", []); - JSAN.use("MochiKit.DOM", []); - JSAN.use("MochiKit.Visual", []); - JSAN.use("MochiKit.Iter", []); - JSAN.use("MochiKit.Signal", []); -} - -try { - if (typeof(MochiKit.Base) == 'undefined' || - typeof(MochiKit.DOM) == 'undefined' || - typeof(MochiKit.Visual) == 'undefined' || - typeof(MochiKit.Signal) == 'undefined' || - typeof(MochiKit.Iter) == 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.DragAndDrop depends on MochiKit.Base, MochiKit.DOM, MochiKit.Visual, MochiKit.Signal and MochiKit.Iter!"; -} - -if (typeof(MochiKit.DragAndDrop) == 'undefined') { - MochiKit.DragAndDrop = {}; -} - -MochiKit.DragAndDrop.NAME = 'MochiKit.DragAndDrop'; -MochiKit.DragAndDrop.VERSION = '1.4'; - -MochiKit.DragAndDrop.__repr__ = function () { - return '[' + this.NAME + ' ' + this.VERSION + ']'; -}; - -MochiKit.DragAndDrop.toString = function () { - return this.__repr__(); -}; - -MochiKit.DragAndDrop.EXPORT = [ - "Droppable", - "Draggable" -]; - -MochiKit.DragAndDrop.EXPORT_OK = [ - "Droppables", - "Draggables" -]; - -MochiKit.DragAndDrop.Droppables = { - /*** - - Manage all droppables. Shouldn't be used, use the Droppable object instead. - - ***/ - drops: [], - - remove: function (element) { - this.drops = MochiKit.Base.filter(function (d) { - return d.element != MochiKit.DOM.getElement(element) - }, this.drops); - }, - - register: function (drop) { - this.drops.push(drop); - }, - - unregister: function (drop) { - this.drops = MochiKit.Base.filter(function (d) { - return d != drop; - }, this.drops); - }, - - prepare: function (element) { - MochiKit.Base.map(function (drop) { - if (drop.isAccepted(element)) { - if (drop.options.activeclass) { - MochiKit.DOM.addElementClass(drop.element, - drop.options.activeclass); - } - drop.options.onactive(drop.element, element); - } - }, this.drops); - }, - - findDeepestChild: function (drops) { - deepest = drops[0]; - - for (i = 1; i < drops.length; ++i) { - if (MochiKit.DOM.isParent(drops[i].element, deepest.element)) { - deepest = drops[i]; - } - } - return deepest; - }, - - show: function (point, element) { - if (!this.drops.length) { - return; - } - var affected = []; - - if (this.last_active) { - this.last_active.deactivate(); - } - MochiKit.Iter.forEach(this.drops, function (drop) { - if (drop.isAffected(point, element)) { - affected.push(drop); - } - }); - if (affected.length > 0) { - drop = this.findDeepestChild(affected); - MochiKit.Position.within(drop.element, point.page.x, point.page.y); - drop.options.onhover(element, drop.element, - MochiKit.Position.overlap(drop.options.overlap, drop.element)); - drop.activate(); - } - }, - - fire: function (event, element) { - if (!this.last_active) { - return; - } - MochiKit.Position.prepare(); - - if (this.last_active.isAffected(event.mouse(), element)) { - this.last_active.options.ondrop(element, - this.last_active.element, event); - } - }, - - reset: function (element) { - MochiKit.Base.map(function (drop) { - if (drop.options.activeclass) { - MochiKit.DOM.removeElementClass(drop.element, - drop.options.activeclass); - } - drop.options.ondesactive(drop.element, element); - }, this.drops); - if (this.last_active) { - this.last_active.deactivate(); - } - } -}; - -MochiKit.DragAndDrop.Droppable = function (element, options) { - this.__init__(element, options); -}; - -MochiKit.DragAndDrop.Droppable.prototype = { - /*** - - A droppable object. Simple use is to create giving an element: - - new MochiKit.DragAndDrop.Droppable('myelement'); - - Generally you'll want to define the 'ondrop' function and maybe the - 'accept' option to filter draggables. - - ***/ - __class__: MochiKit.DragAndDrop.Droppable, - - __init__: function (element, /* optional */options) { - var d = MochiKit.DOM; - var b = MochiKit.Base; - this.element = d.getElement(element); - this.options = b.update({ - greedy: true, - hoverclass: null, - activeclass: null, - hoverfunc: b.noop, - accept: null, - onactive: b.noop, - ondesactive: b.noop, - onhover: b.noop, - ondrop: b.noop, - containment: [], - tree: false - }, options || {}); - - // cache containers - this.options._containers = []; - b.map(MochiKit.Base.bind(function (c) { - this.options._containers.push(d.getElement(c)); - }, this), this.options.containment); - - d.makePositioned(this.element); // fix IE - - MochiKit.DragAndDrop.Droppables.register(this); - }, - - isContained: function (element) { - if (this._containers) { - var containmentNode; - if (this.options.tree) { - containmentNode = element.treeNode; - } else { - containmentNode = element.parentNode; - } - return MochiKit.Iter.some(this._containers, function (c) { - return containmentNode == c; - }); - } else { - return true; - } - }, - - isAccepted: function (element) { - return ((!this.options.accept) || MochiKit.Iter.some( - this.options.accept, function (c) { - return MochiKit.DOM.hasElementClass(element, c); - })); - }, - - isAffected: function (point, element) { - return ((this.element != element) && - this.isContained(element) && - this.isAccepted(element) && - MochiKit.Position.within(this.element, point.page.x, - point.page.y)); - }, - - deactivate: function () { - /*** - - A droppable is deactivate when a draggable has been over it and left. - - ***/ - if (this.options.hoverclass) { - MochiKit.DOM.removeElementClass(this.element, - this.options.hoverclass); - } - this.options.hoverfunc(this.element, false); - MochiKit.DragAndDrop.Droppables.last_active = null; - }, - - activate: function () { - /*** - - A droppable is active when a draggable is over it. - - ***/ - if (this.options.hoverclass) { - MochiKit.DOM.addElementClass(this.element, this.options.hoverclass); - } - this.options.hoverfunc(this.element, true); - MochiKit.DragAndDrop.Droppables.last_active = this; - }, - - destroy: function () { - /*** - - Delete this droppable. - - ***/ - MochiKit.DragAndDrop.Droppables.unregister(this); - }, - - repr: function () { - return '[' + this.__class__.NAME + ", options:" + MochiKit.Base.repr(this.options) + "]"; - } -}; - -MochiKit.DragAndDrop.Draggables = { - /*** - - Manage draggables elements. Not intended to direct use. - - ***/ - drags: [], - - observers: [], - - register: function (draggable) { - if (this.drags.length === 0) { - var conn = MochiKit.Signal.connect; - this.eventMouseUp = conn(document, 'onmouseup', this, this.endDrag); - this.eventMouseMove = conn(document, 'onmousemove', this, - this.updateDrag); - this.eventKeypress = conn(document, 'onkeypress', this, - this.keyPress); - } - this.drags.push(draggable); - }, - - unregister: function (draggable) { - this.drags = MochiKit.Base.filter(function (d) { - return d != draggable; - }, this.drags); - if (this.drags.length === 0) { - var disc = MochiKit.Signal.disconnect - disc(this.eventMouseUp); - disc(this.eventMouseMove); - disc(this.eventKeypress); - } - }, - - activate: function (draggable) { - // allows keypress events if window is not currently focused - // fails for Safari - window.focus(); - this.activeDraggable = draggable; - }, - - deactivate: function () { - this.activeDraggable = null; - }, - - updateDrag: function (event) { - if (!this.activeDraggable) { - return; - } - var pointer = event.mouse(); - // Mozilla-based browsers fire successive mousemove events with - // the same coordinates, prevent needless redrawing (moz bug?) - if (this._lastPointer && (MochiKit.Base.repr(this._lastPointer.page) == - MochiKit.Base.repr(pointer.page))) { - return; - } - this._lastPointer = pointer; - this.activeDraggable.updateDrag(event, pointer); - }, - - endDrag: function (event) { - if (!this.activeDraggable) { - return; - } - this._lastPointer = null; - this.activeDraggable.endDrag(event); - this.activeDraggable = null; - }, - - keyPress: function (event) { - if (this.activeDraggable) { - this.activeDraggable.keyPress(event); - } - }, - - addObserver: function (observer) { - this.observers.push(observer); - this._cacheObserverCallbacks(); - }, - - removeObserver: function (element) { - // element instead of observer fixes mem leaks - this.observers = MochiKit.Base.filter(function (o) { - return o.element != element; - }, this.observers); - this._cacheObserverCallbacks(); - }, - - notify: function (eventName, draggable, event) { - // 'onStart', 'onEnd', 'onDrag' - if (this[eventName + 'Count'] > 0) { - MochiKit.Base.map(function (o) { - if (o[eventName]) { - o[eventName](eventName, draggable, event); - } - }, this.observers); - } - }, - - _cacheObserverCallbacks: function () { - var b = MochiKit.Base; - var self = MochiKit.DragAndDrop.Draggables; - b.map(function (eventName) { - self[eventName + 'Count'] = b.filter(function (o) { - return o[eventName]; - }, self.observers).length; - }, ['onStart', 'onEnd', 'onDrag']); - } -}; - -MochiKit.DragAndDrop.Draggable = function (element, options) { - this.__init__(element, options); -}; - -MochiKit.DragAndDrop.Draggable.prototype = { - /*** - - A draggable object. Simple instantiate : - - new MochiKit.DragAndDrop.Draggable('myelement'); - - ***/ - __class__ : MochiKit.DragAndDrop.Draggable, - - __init__: function (element, /* optional */options) { - var v = MochiKit.Visual; - var b = MochiKit.Base; - options = b.update({ - handle: false, - starteffect: function (innerelement) { - this._savedOpacity = MochiKit.DOM.getOpacity(innerelement) || 1.0; - new v.Opacity(innerelement, {duration:0.2, from:this._savedOpacity, to:0.7}); - }, - reverteffect: function (innerelement, top_offset, left_offset) { - var dur = Math.sqrt(Math.abs(top_offset^2) + - Math.abs(left_offset^2))*0.02; - return new v.Move(innerelement, - {x: -left_offset, y: -top_offset, duration: dur}); - }, - endeffect: function (innerelement) { - new v.Opacity(innerelement, {duration:0.2, from:0.7, to:this._savedOpacity}); - }, - onchange: b.noop, - zindex: 1000, - revert: false, - scroll: false, - scrollSensitivity: 20, - scrollSpeed: 15, - // false, or xy or [x, y] or function (x, y){return [x, y];} - snap: false - }, options || {}); - - var d = MochiKit.DOM; - this.element = d.getElement(element); - - if (options.handle && (typeof(options.handle) == 'string')) { - this.handle = d.getFirstElementByTagAndClassName(null, - options.handle, this.element); - } - if (!this.handle) { - this.handle = d.getElement(options.handle); - } - if (!this.handle) { - this.handle = this.element; - } - - if (options.scroll && !options.scroll.scrollTo && !options.scroll.outerHTML) { - options.scroll = d.getElement(options.scroll); - } - - d.makePositioned(this.element); // fix IE - - this.delta = this.currentDelta(); - this.options = options; - this.dragging = false; - - this.eventMouseDown = MochiKit.Signal.connect(this.handle, - 'onmousedown', this, this.initDrag); - MochiKit.DragAndDrop.Draggables.register(this); - }, - - destroy: function () { - MochiKit.Signal.disconnect(this.eventMouseDown); - MochiKit.DragAndDrop.Draggables.unregister(this); - }, - - currentDelta: function () { - var s = MochiKit.DOM.getStyle; - return [ - parseInt(s(this.element, 'left') || '0'), - parseInt(s(this.element, 'top') || '0')]; - }, - - initDrag: function (event) { - if (!event.mouse().button.left) { - return; - } - // abort on form elements, fixes a Firefox issue - var src = event.target; - if (src.tagName && ( - src.tagName == 'INPUT' || src.tagName == 'SELECT' || - src.tagName == 'OPTION' || src.tagName == 'BUTTON' || - src.tagName == 'TEXTAREA')) { - return; - } - - if (this._revert) { - this._revert.cancel(); - this._revert = null; - } - - var pointer = event.mouse(); - var pos = MochiKit.Position.cumulativeOffset(this.element); - this.offset = [pointer.page.x - pos.x, pointer.page.y - pos.y] - - MochiKit.DragAndDrop.Draggables.activate(this); - event.stop(); - }, - - startDrag: function (event) { - this.dragging = true; - if (this.options.selectclass) { - MochiKit.DOM.addElementClass(this.element, - this.options.selectclass); - } - if (this.options.zindex) { - this.originalZ = parseInt(MochiKit.DOM.getStyle(this.element, - 'z-index') || '0'); - this.element.style.zIndex = this.options.zindex; - } - - if (this.options.ghosting) { - this._clone = this.element.cloneNode(true); - this.ghostPosition = MochiKit.Position.absolutize(this.element); - this.element.parentNode.insertBefore(this._clone, this.element); - } - - if (this.options.scroll) { - if (this.options.scroll == window) { - var where = this._getWindowScroll(this.options.scroll); - this.originalScrollLeft = where.left; - this.originalScrollTop = where.top; - } else { - this.originalScrollLeft = this.options.scroll.scrollLeft; - this.originalScrollTop = this.options.scroll.scrollTop; - } - } - - MochiKit.DragAndDrop.Droppables.prepare(this.element); - MochiKit.DragAndDrop.Draggables.notify('onStart', this, event); - if (this.options.starteffect) { - this.options.starteffect(this.element); - } - }, - - updateDrag: function (event, pointer) { - if (!this.dragging) { - this.startDrag(event); - } - MochiKit.Position.prepare(); - MochiKit.DragAndDrop.Droppables.show(pointer, this.element); - MochiKit.DragAndDrop.Draggables.notify('onDrag', this, event); - this.draw(pointer); - this.options.onchange(this); - - if (this.options.scroll) { - this.stopScrolling(); - var p, q; - if (this.options.scroll == window) { - var s = this._getWindowScroll(this.options.scroll); - p = new MochiKit.Style.Coordinates(s.left, s.top); - q = new MochiKit.Style.Coordinates(s.left + s.width, - s.top + s.height); - } else { - p = MochiKit.Position.page(this.options.scroll); - p.x += this.options.scroll.scrollLeft; - p.y += this.options.scroll.scrollTop; - q = new MochiKit.Style.Coordinates(p.x + this.options.scroll.offsetWidth, - p.y + this.options.scroll.offsetHeight); - } - var speed = [0, 0]; - if (pointer.page.x > (q.x - this.options.scrollSensitivity)) { - speed[0] = pointer.page.x - (q.x - this.options.scrollSensitivity); - } else if (pointer.page.x < (p.x + this.options.scrollSensitivity)) { - speed[0] = pointer.page.x - (p.x + this.options.scrollSensitivity); - } - if (pointer.page.y > (q.y - this.options.scrollSensitivity)) { - speed[1] = pointer.page.y - (q.y - this.options.scrollSensitivity); - } else if (pointer.page.y < (p.y + this.options.scrollSensitivity)) { - speed[1] = pointer.page.y - (p.y + this.options.scrollSensitivity); - } - this.startScrolling(speed); - } - - // fix AppleWebKit rendering - if (MochiKit.Base.isSafari()) { - window.scrollBy(0, 0); - } - event.stop(); - }, - - finishDrag: function (event, success) { - var dr = MochiKit.DragAndDrop; - this.dragging = false; - if (this.options.selectclass) { - MochiKit.DOM.removeElementClass(this.element, - this.options.selectclass); - } - - if (this.options.ghosting) { - // XXX: from a user point of view, it would be better to remove - // the node only *after* the MochiKit.Visual.Move end when used - // with revert. - MochiKit.Position.relativize(this.element, this.ghostPosition); - MochiKit.DOM.removeElement(this._clone); - this._clone = null; - } - - if (success) { - dr.Droppables.fire(event, this.element); - } - dr.Draggables.notify('onEnd', this, event); - - var revert = this.options.revert; - if (revert && typeof(revert) == 'function') { - revert = revert(this.element); - } - - var d = this.currentDelta(); - if (revert && this.options.reverteffect) { - this._revert = this.options.reverteffect(this.element, - d[1] - this.delta[1], d[0] - this.delta[0]); - } else { - this.delta = d; - } - - if (this.options.zindex) { - this.element.style.zIndex = this.originalZ; - } - - if (this.options.endeffect) { - this.options.endeffect(this.element); - } - - dr.Draggables.deactivate(); - dr.Droppables.reset(this.element); - }, - - keyPress: function (event) { - if (event.keyString != "KEY_ESCAPE") { - return; - } - this.finishDrag(event, false); - event.stop(); - }, - - endDrag: function (event) { - if (!this.dragging) { - return; - } - this.stopScrolling(); - this.finishDrag(event, true); - event.stop(); - }, - - draw: function (point) { - var pos = MochiKit.Position.cumulativeOffset(this.element); - var d = this.currentDelta(); - pos.x -= d[0]; - pos.y -= d[1]; - - if (this.options.scroll && !this.options.scroll.scrollTo) { - pos.x -= this.options.scroll.scrollLeft - this.originalScrollLeft; - pos.y -= this.options.scroll.scrollTop - this.originalScrollTop; - } - - var p = [point.page.x - pos.x - this.offset[0], - point.page.y - pos.y - this.offset[1]] - - if (this.options.snap) { - if (typeof(this.options.snap) == 'function') { - p = this.options.snap(p[0], p[1]); - } else { - if (this.options.snap instanceof Array) { - var i = -1; - p = MochiKit.Base.map(MochiKit.Base.bind(function (v) { - i += 1; - return Math.round(v/this.options.snap[i]) * - this.options.snap[i] - }, this), p) - } else { - p = MochiKit.Base.map(MochiKit.Base.bind(function (v) { - return Math.round(v/this.options.snap) * - this.options.snap - }, this), p) - } - } - } - var style = this.element.style; - if ((!this.options.constraint) || - (this.options.constraint == 'horizontal')) { - style.left = p[0] + 'px'; - } - if ((!this.options.constraint) || - (this.options.constraint == 'vertical')) { - style.top = p[1] + 'px'; - } - if (style.visibility == 'hidden') { - style.visibility = ''; // fix gecko rendering - } - }, - - stopScrolling: function () { - if (this.scrollInterval) { - clearInterval(this.scrollInterval); - this.scrollInterval = null; - } - }, - - startScrolling: function (speed) { - if (!speed[0] || !speed[1]) { - return; - } - this.scrollSpeed = [speed[0] * this.options.scrollSpeed, - speed[1] * this.options.scrollSpeed]; - this.lastScrolled = new Date(); - this.scrollInterval = setInterval(MochiKit.Base.bind(this.scroll, this), 10); - }, - - scroll: function () { - var current = new Date(); - var delta = current - this.lastScrolled; - this.lastScrolled = current; - - if (this.options.scroll == window) { - var s = this._getWindowScroll(this.options.scroll); - if (this.scrollSpeed[0] || this.scrollSpeed[1]) { - var d = delta / 1000; - this.options.scroll.scrollTo(s.left + d * this.scrollSpeed[0], - s.top + d * this.scrollSpeed[1]); - } - } else { - this.options.scroll.scrollLeft += this.scrollSpeed[0] * delta / 1000; - this.options.scroll.scrollTop += this.scrollSpeed[1] * delta / 1000; - } - - var d = MochiKit.DragAndDrop; - - MochiKit.Position.prepare(); - d.Droppables.show(d.Draggables._lastPointer, this.element); - this.draw(d.Draggables._lastPointer); - this.options.onchange(this); - }, - - _getWindowScroll: function (w) { - var T, L, W, H; - with (w.document) { - if (w.document.documentElement && documentElement.scrollTop) { - T = documentElement.scrollTop; - L = documentElement.scrollLeft; - } else if (w.document.body) { - T = body.scrollTop; - L = body.scrollLeft; - } - if (w.innerWidth) { - W = w.innerWidth; - H = w.innerHeight; - } else if (w.document.documentElement && documentElement.clientWidth) { - W = documentElement.clientWidth; - H = documentElement.clientHeight; - } else { - W = body.offsetWidth; - H = body.offsetHeight - } - } - return {top: T, left: L, width: W, height: H}; - }, - - repr: function () { - return '[' + this.__class__.NAME + ", options:" + MochiKit.Base.repr(this.options) + "]"; - } -}; - -MochiKit.DragAndDrop.__new__ = function () { - MochiKit.Base.nameFunctions(this); - - this.EXPORT_TAGS = { - ":common": this.EXPORT, - ":all": MochiKit.Base.concat(this.EXPORT, this.EXPORT_OK) - }; -}; - -MochiKit.DragAndDrop.__new__(); - -MochiKit.Base._exportSymbols(this, MochiKit.DragAndDrop); - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Format.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Format.js deleted file mode 100644 index 9b02a2bcc..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Format.js +++ /dev/null @@ -1,294 +0,0 @@ -/*** - -MochiKit.Format 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.Format'); -} - -if (typeof(MochiKit) == 'undefined') { - MochiKit = {}; -} - -if (typeof(MochiKit.Format) == 'undefined') { - MochiKit.Format = {}; -} - -MochiKit.Format.NAME = "MochiKit.Format"; -MochiKit.Format.VERSION = "1.4"; -MochiKit.Format.__repr__ = function () { - return "[" + this.NAME + " " + this.VERSION + "]"; -}; -MochiKit.Format.toString = function () { - return this.__repr__(); -}; - -MochiKit.Format._numberFormatter = function (placeholder, header, footer, locale, isPercent, precision, leadingZeros, separatorAt, trailingZeros) { - return function (num) { - num = parseFloat(num); - if (typeof(num) == "undefined" || num === null || isNaN(num)) { - return placeholder; - } - var curheader = header; - var curfooter = footer; - if (num < 0) { - num = -num; - } else { - curheader = curheader.replace(/-/, ""); - } - var me = arguments.callee; - var fmt = MochiKit.Format.formatLocale(locale); - if (isPercent) { - num = num * 100.0; - curfooter = fmt.percent + curfooter; - } - num = MochiKit.Format.roundToFixed(num, precision); - var parts = num.split(/\./); - var whole = parts[0]; - var frac = (parts.length == 1) ? "" : parts[1]; - var res = ""; - while (whole.length < leadingZeros) { - whole = "0" + whole; - } - if (separatorAt) { - while (whole.length > separatorAt) { - var i = whole.length - separatorAt; - //res = res + fmt.separator + whole.substring(i, whole.length); - res = fmt.separator + whole.substring(i, whole.length) + res; - whole = whole.substring(0, i); - } - } - res = whole + res; - if (precision > 0) { - while (frac.length < trailingZeros) { - frac = frac + "0"; - } - res = res + fmt.decimal + frac; - } - return curheader + res + curfooter; - }; -}; - -MochiKit.Format.numberFormatter = function (pattern, placeholder/* = "" */, locale/* = "default" */) { - // http://java.sun.com/docs/books/tutorial/i18n/format/numberpattern.html - // | 0 | leading or trailing zeros - // | # | just the number - // | , | separator - // | . | decimal separator - // | % | Multiply by 100 and format as percent - if (typeof(placeholder) == "undefined") { - placeholder = ""; - } - var match = pattern.match(/((?:[0#]+,)?[0#]+)(?:\.([0#]+))?(%)?/); - if (!match) { - throw TypeError("Invalid pattern"); - } - var header = pattern.substr(0, match.index); - var footer = pattern.substr(match.index + match[0].length); - if (header.search(/-/) == -1) { - header = header + "-"; - } - var whole = match[1]; - var frac = (typeof(match[2]) == "string" && match[2] != "") ? match[2] : ""; - var isPercent = (typeof(match[3]) == "string" && match[3] != ""); - var tmp = whole.split(/,/); - var separatorAt; - if (typeof(locale) == "undefined") { - locale = "default"; - } - if (tmp.length == 1) { - separatorAt = null; - } else { - separatorAt = tmp[1].length; - } - var leadingZeros = whole.length - whole.replace(/0/g, "").length; - var trailingZeros = frac.length - frac.replace(/0/g, "").length; - var precision = frac.length; - var rval = MochiKit.Format._numberFormatter( - placeholder, header, footer, locale, isPercent, precision, - leadingZeros, separatorAt, trailingZeros - ); - var m = MochiKit.Base; - if (m) { - var fn = arguments.callee; - var args = m.concat(arguments); - rval.repr = function () { - return [ - self.NAME, - "(", - map(m.repr, args).join(", "), - ")" - ].join(""); - }; - } - return rval; -}; - -MochiKit.Format.formatLocale = function (locale) { - if (typeof(locale) == "undefined" || locale === null) { - locale = "default"; - } - if (typeof(locale) == "string") { - var rval = MochiKit.Format.LOCALE[locale]; - if (typeof(rval) == "string") { - rval = arguments.callee(rval); - MochiKit.Format.LOCALE[locale] = rval; - } - return rval; - } else { - return locale; - } -}; - -MochiKit.Format.twoDigitAverage = function (numerator, denominator) { - if (denominator) { - var res = numerator / denominator; - if (!isNaN(res)) { - return MochiKit.Format.twoDigitFloat(numerator / denominator); - } - } - return "0"; -}; - -MochiKit.Format.twoDigitFloat = function (someFloat) { - var sign = (someFloat < 0 ? '-' : ''); - var s = Math.floor(Math.abs(someFloat) * 100).toString(); - if (s == '0') { - return s; - } - if (s.length < 3) { - while (s.charAt(s.length - 1) == '0') { - s = s.substring(0, s.length - 1); - } - return sign + '0.' + s; - } - var head = sign + s.substring(0, s.length - 2); - var tail = s.substring(s.length - 2, s.length); - if (tail == '00') { - return head; - } else if (tail.charAt(1) == '0') { - return head + '.' + tail.charAt(0); - } else { - return head + '.' + tail; - } -}; - -MochiKit.Format.lstrip = function (str, /* optional */chars) { - str = str + ""; - if (typeof(str) != "string") { - return null; - } - if (!chars) { - return str.replace(/^\s+/, ""); - } else { - return str.replace(new RegExp("^[" + chars + "]+"), ""); - } -}; - -MochiKit.Format.rstrip = function (str, /* optional */chars) { - str = str + ""; - if (typeof(str) != "string") { - return null; - } - if (!chars) { - return str.replace(/\s+$/, ""); - } else { - return str.replace(new RegExp("[" + chars + "]+$"), ""); - } -}; - -MochiKit.Format.strip = function (str, /* optional */chars) { - var self = MochiKit.Format; - return self.rstrip(self.lstrip(str, chars), chars); -}; - -MochiKit.Format.truncToFixed = function (aNumber, precision) { - aNumber = Math.floor(aNumber * Math.pow(10, precision)); - var res = (aNumber * Math.pow(10, -precision)).toFixed(precision); - if (res.charAt(0) == ".") { - res = "0" + res; - } - return res; -}; - -MochiKit.Format.roundToFixed = function (aNumber, precision) { - return MochiKit.Format.truncToFixed( - aNumber + 0.5 * Math.pow(10, -precision), - precision - ); -}; - -MochiKit.Format.percentFormat = function (someFloat) { - return MochiKit.Format.twoDigitFloat(100 * someFloat) + '%'; -}; - -MochiKit.Format.EXPORT = [ - "truncToFixed", - "roundToFixed", - "numberFormatter", - "formatLocale", - "twoDigitAverage", - "twoDigitFloat", - "percentFormat", - "lstrip", - "rstrip", - "strip" -]; - -MochiKit.Format.LOCALE = { - en_US: {separator: ",", decimal: ".", percent: "%"}, - de_DE: {separator: ".", decimal: ",", percent: "%"}, - fr_FR: {separator: " ", decimal: ",", percent: "%"}, - "default": "en_US" -}; - -MochiKit.Format.EXPORT_OK = []; -MochiKit.Format.EXPORT_TAGS = { - ':all': MochiKit.Format.EXPORT, - ':common': MochiKit.Format.EXPORT -}; - -MochiKit.Format.__new__ = function () { - // MochiKit.Base.nameFunctions(this); - var base = this.NAME + "."; - var k, v, o; - for (k in this.LOCALE) { - o = this.LOCALE[k]; - if (typeof(o) == "object") { - o.repr = function () { return this.NAME; }; - o.NAME = base + "LOCALE." + k; - } - } - for (k in this) { - o = this[k]; - if (typeof(o) == 'function' && typeof(o.NAME) == 'undefined') { - try { - o.NAME = base + k; - } catch (e) { - // pass - } - } - } -}; - -MochiKit.Format.__new__(); - -if (typeof(MochiKit.Base) != "undefined") { - MochiKit.Base._exportSymbols(this, MochiKit.Format); -} else { - (function (globals, module) { - if ((typeof(JSAN) == 'undefined' && typeof(dojo) == 'undefined') - || (MochiKit.__export__ === false)) { - var all = module.EXPORT_TAGS[":all"]; - for (var i = 0; i < all.length; i++) { - globals[all[i]] = module[all[i]]; - } - } - })(this, MochiKit.Format); -} diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Iter.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Iter.js deleted file mode 100644 index 55ffb656e..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Iter.js +++ /dev/null @@ -1,807 +0,0 @@ -/*** - -MochiKit.Iter 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.Iter'); - dojo.require('MochiKit.Base'); -} - -if (typeof(JSAN) != 'undefined') { - JSAN.use("MochiKit.Base", []); -} - -try { - if (typeof(MochiKit.Base) == 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.Iter depends on MochiKit.Base!"; -} - -if (typeof(MochiKit.Iter) == 'undefined') { - MochiKit.Iter = {}; -} - -MochiKit.Iter.NAME = "MochiKit.Iter"; -MochiKit.Iter.VERSION = "1.4"; -MochiKit.Base.update(MochiKit.Iter, { - __repr__: function () { - return "[" + this.NAME + " " + this.VERSION + "]"; - }, - toString: function () { - return this.__repr__(); - }, - - registerIteratorFactory: function (name, check, iterfactory, /* optional */ override) { - MochiKit.Iter.iteratorRegistry.register(name, check, iterfactory, override); - }, - - iter: function (iterable, /* optional */ sentinel) { - var self = MochiKit.Iter; - if (arguments.length == 2) { - return self.takewhile( - function (a) { return a != sentinel; }, - iterable - ); - } - if (typeof(iterable.next) == 'function') { - return iterable; - } else if (typeof(iterable.iter) == 'function') { - return iterable.iter(); - /* - } else if (typeof(iterable.__iterator__) == 'function') { - // - // XXX: We can't support JavaScript 1.7 __iterator__ directly - // because of Object.prototype.__iterator__ - // - return iterable.__iterator__(); - */ - } - - try { - return self.iteratorRegistry.match(iterable); - } catch (e) { - var m = MochiKit.Base; - if (e == m.NotFound) { - e = new TypeError(typeof(iterable) + ": " + m.repr(iterable) + " is not iterable"); - } - throw e; - } - }, - -// count: function (n) { -// if (!n) { -// n = 0; -// } -// var m = MochiKit.Base; -// return { -// repr: function () { return "count(" + n + ")"; }, -// toString: m.forwardCall("repr"), -// next: m.counter(n) -// }; -// }, - -// cycle: function (p) { -// var self = MochiKit.Iter; -// var m = MochiKit.Base; -// var lst = []; -// var iterator = self.iter(p); -// return { -// repr: function () { return "cycle(...)"; }, -// toString: m.forwardCall("repr"), -// next: function () { -// try { -// var rval = iterator.next(); -// lst.push(rval); -// return rval; -// } catch (e) { -// if (e != self.StopIteration) { -// throw e; -// } -// if (lst.length === 0) { -// this.next = function () { -// throw self.StopIteration; -// }; -// } else { -// var i = -1; -// this.next = function () { -// i = (i + 1) % lst.length; -// return lst[i]; -// }; -// } -// return this.next(); -// } -// } -// }; -// }, - - repeat: function (elem, /* optional */n) { - var m = MochiKit.Base; - if (typeof(n) == 'undefined') { - return { - repr: function () { - return "repeat(" + m.repr(elem) + ")"; - }, - toString: m.forwardCall("repr"), - next: function () { - return elem; - } - }; - } - return { - repr: function () { - return "repeat(" + m.repr(elem) + ", " + n + ")"; - }, - toString: m.forwardCall("repr"), - next: function () { - if (n <= 0) { - throw MochiKit.Iter.StopIteration; - } - n -= 1; - return elem; - } - }; - }, - - next: function (iterator) { - return iterator.next(); - }, - -// izip: function (p, q/*, ...*/) { -// var m = MochiKit.Base; -// var self = MochiKit.Iter; -// var next = self.next; -// var iterables = m.map(self.iter, arguments); -// return { -// repr: function () { return "izip(...)"; }, -// toString: m.forwardCall("repr"), -// next: function () { return m.map(next, iterables); } -// }; -// }, - - ifilter: function (pred, seq) { - var m = MochiKit.Base; - seq = MochiKit.Iter.iter(seq); - if (pred === null) { - pred = m.operator.truth; - } - return { - repr: function () { return "ifilter(...)"; }, - toString: m.forwardCall("repr"), - next: function () { - while (true) { - var rval = seq.next(); - if (pred(rval)) { - return rval; - } - } - // mozilla warnings aren't too bright - return undefined; - } - }; - }, - - ifilterfalse: function (pred, seq) { - var m = MochiKit.Base; - seq = MochiKit.Iter.iter(seq); - if (pred === null) { - pred = m.operator.truth; - } - return { - repr: function () { return "ifilterfalse(...)"; }, - toString: m.forwardCall("repr"), - next: function () { - while (true) { - var rval = seq.next(); - if (!pred(rval)) { - return rval; - } - } - // mozilla warnings aren't too bright - return undefined; - } - }; - }, - -// islice: function (seq/*, [start,] stop[, step] */) { -// var self = MochiKit.Iter; -// var m = MochiKit.Base; -// seq = self.iter(seq); -// var start = 0; -// var stop = 0; -// var step = 1; -// var i = -1; -// if (arguments.length == 2) { -// stop = arguments[1]; -// } else if (arguments.length == 3) { -// start = arguments[1]; -// stop = arguments[2]; -// } else { -// start = arguments[1]; -// stop = arguments[2]; -// step = arguments[3]; -// } -// return { -// repr: function () { -// return "islice(" + ["...", start, stop, step].join(", ") + ")"; -// }, -// toString: m.forwardCall("repr"), -// next: function () { -// var rval; -// while (i < start) { -// rval = seq.next(); -// i++; -// } -// if (start >= stop) { -// throw self.StopIteration; -// } -// start += step; -// return rval; -// } -// }; -// }, - - imap: function (fun, p, q/*, ...*/) { - var m = MochiKit.Base; - var self = MochiKit.Iter; - var iterables = m.map(self.iter, m.extend(null, arguments, 1)); - var map = m.map; - var next = self.next; - return { - repr: function () { return "imap(...)"; }, - toString: m.forwardCall("repr"), - next: function () { - return fun.apply(this, map(next, iterables)); - } - }; - }, - -// applymap: function (fun, seq, self) { -// seq = MochiKit.Iter.iter(seq); -// var m = MochiKit.Base; -// return { -// repr: function () { return "applymap(...)"; }, -// toString: m.forwardCall("repr"), -// next: function () { -// return fun.apply(self, seq.next()); -// } -// }; -// }, - -// chain: function (p, q/*, ...*/) { -// // dumb fast path -// var self = MochiKit.Iter; -// var m = MochiKit.Base; -// if (arguments.length == 1) { -// return self.iter(arguments[0]); -// } -// var argiter = m.map(self.iter, arguments); -// return { -// repr: function () { return "chain(...)"; }, -// toString: m.forwardCall("repr"), -// next: function () { -// while (argiter.length > 1) { -// try { -// return argiter[0].next(); -// } catch (e) { -// if (e != self.StopIteration) { -// throw e; -// } -// argiter.shift(); -// } -// } -// if (argiter.length == 1) { -// // optimize last element -// var arg = argiter.shift(); -// this.next = m.bind("next", arg); -// return this.next(); -// } -// throw self.StopIteration; -// } -// }; -// }, - -// takewhile: function (pred, seq) { -// var self = MochiKit.Iter; -// seq = self.iter(seq); -// return { -// repr: function () { return "takewhile(...)"; }, -// toString: MochiKit.Base.forwardCall("repr"), -// next: function () { -// var rval = seq.next(); -// if (!pred(rval)) { -// this.next = function () { -// throw self.StopIteration; -// }; -// this.next(); -// } -// return rval; -// } -// }; -// }, - -// dropwhile: function (pred, seq) { -// seq = MochiKit.Iter.iter(seq); -// var m = MochiKit.Base; -// var bind = m.bind; -// return { -// "repr": function () { return "dropwhile(...)"; }, -// "toString": m.forwardCall("repr"), -// "next": function () { -// while (true) { -// var rval = seq.next(); -// if (!pred(rval)) { -// break; -// } -// } -// this.next = bind("next", seq); -// return rval; -// } -// }; -// }, - -// _tee: function (ident, sync, iterable) { -// sync.pos[ident] = -1; -// var m = MochiKit.Base; -// var listMin = m.listMin; -// return { -// repr: function () { return "tee(" + ident + ", ...)"; }, -// toString: m.forwardCall("repr"), -// next: function () { -// var rval; -// var i = sync.pos[ident]; -// -// if (i == sync.max) { -// rval = iterable.next(); -// sync.deque.push(rval); -// sync.max += 1; -// sync.pos[ident] += 1; -// } else { -// rval = sync.deque[i - sync.min]; -// sync.pos[ident] += 1; -// if (i == sync.min && listMin(sync.pos) != sync.min) { -// sync.min += 1; -// sync.deque.shift(); -// } -// } -// return rval; -// } -// }; -// }, - -// tee: function (iterable, n/* = 2 */) { -// var rval = []; -// var sync = { -// "pos": [], -// "deque": [], -// "max": -1, -// "min": -1 -// }; -// if (arguments.length == 1 || typeof(n) == "undefined" || n === null) { -// n = 2; -// } -// var self = MochiKit.Iter; -// iterable = self.iter(iterable); -// var _tee = self._tee; -// for (var i = 0; i < n; i++) { -// rval.push(_tee(i, sync, iterable)); -// } -// return rval; -// }, - - list: function (iterable) { - // Fast-path for Array and Array-like - var m = MochiKit.Base; - if (typeof(iterable.slice) == 'function') { - return iterable.slice(); - } else if (m.isArrayLike(iterable)) { - return m.concat(iterable); - } - - var self = MochiKit.Iter; - iterable = self.iter(iterable); - var rval = []; - try { - while (true) { - rval.push(iterable.next()); - } - } catch (e) { - if (e != self.StopIteration) { - throw e; - } - return rval; - } - // mozilla warnings aren't too bright - return undefined; - }, - - -// reduce: function (fn, iterable, /* optional */initial) { -// var i = 0; -// var x = initial; -// var self = MochiKit.Iter; -// iterable = self.iter(iterable); -// if (arguments.length < 3) { -// try { -// x = iterable.next(); -// } catch (e) { -// if (e == self.StopIteration) { -// e = new TypeError("reduce() of empty sequence with no initial value"); -// } -// throw e; -// } -// i++; -// } -// try { -// while (true) { -// x = fn(x, iterable.next()); -// } -// } catch (e) { -// if (e != self.StopIteration) { -// throw e; -// } -// } -// return x; -// }, - -// range: function (/* [start,] stop[, step] */) { -// var start = 0; -// var stop = 0; -// var step = 1; -// if (arguments.length == 1) { -// stop = arguments[0]; -// } else if (arguments.length == 2) { -// start = arguments[0]; -// stop = arguments[1]; -// } else if (arguments.length == 3) { -// start = arguments[0]; -// stop = arguments[1]; -// step = arguments[2]; -// } else { -// throw new TypeError("range() takes 1, 2, or 3 arguments!"); -// } -// if (step === 0) { -// throw new TypeError("range() step must not be 0"); -// } -// return { -// next: function () { -// if ((step > 0 && start >= stop) || (step < 0 && start <= stop)) { -// throw MochiKit.Iter.StopIteration; -// } -// var rval = start; -// start += step; -// return rval; -// }, -// repr: function () { -// return "range(" + [start, stop, step].join(", ") + ")"; -// }, -// toString: MochiKit.Base.forwardCall("repr") -// }; -// }, -// -// sum: function (iterable, start/* = 0 */) { -// if (typeof(start) == "undefined" || start === null) { -// start = 0; -// } -// var x = start; -// var self = MochiKit.Iter; -// iterable = self.iter(iterable); -// try { -// while (true) { -// x += iterable.next(); -// } -// } catch (e) { -// if (e != self.StopIteration) { -// throw e; -// } -// } -// return x; -// }, - -// exhaust: function (iterable) { -// var self = MochiKit.Iter; -// iterable = self.iter(iterable); -// try { -// while (true) { -// iterable.next(); -// } -// } catch (e) { -// if (e != self.StopIteration) { -// throw e; -// } -// } -// }, - - forEach: function (iterable, func, /* optional */self) { - var m = MochiKit.Base; - if (arguments.length > 2) { - func = m.bind(func, self); - } - // fast path for array - if (m.isArrayLike(iterable)) { - try { - for (var i = 0; i < iterable.length; i++) { - func(iterable[i]); - } - } catch (e) { - if (e != MochiKit.Iter.StopIteration) { - throw e; - } - } - } else { - self = MochiKit.Iter; - self.exhaust(self.imap(func, iterable)); - } - }, - - every: function (iterable, func) { - var self = MochiKit.Iter; - try { - self.ifilterfalse(func, iterable).next(); - return false; - } catch (e) { - if (e != self.StopIteration) { - throw e; - } - return true; - } - }, - -// sorted: function (iterable, /* optional */cmp) { -// var rval = MochiKit.Iter.list(iterable); -// if (arguments.length == 1) { -// cmp = MochiKit.Base.compare; -// } -// rval.sort(cmp); -// return rval; -// }, - -// reversed: function (iterable) { -// var rval = MochiKit.Iter.list(iterable); -// rval.reverse(); -// return rval; -// }, -// -// some: function (iterable, func) { -// var self = MochiKit.Iter; -// try { -// self.ifilter(func, iterable).next(); -// return true; -// } catch (e) { -// if (e != self.StopIteration) { -// throw e; -// } -// return false; -// } -// }, -// -// iextend: function (lst, iterable) { -// if (MochiKit.Base.isArrayLike(iterable)) { -// // fast-path for array-like -// for (var i = 0; i < iterable.length; i++) { -// lst.push(iterable[i]); -// } -// } else { -// var self = MochiKit.Iter; -// iterable = self.iter(iterable); -// try { -// while (true) { -// lst.push(iterable.next()); -// } -// } catch (e) { -// if (e != self.StopIteration) { -// throw e; -// } -// } -// } -// return lst; -// }, - -// groupby: function(iterable, /* optional */ keyfunc) { -// var m = MochiKit.Base; -// var self = MochiKit.Iter; -// if (arguments.length < 2) { -// keyfunc = m.operator.identity; -// } -// iterable = self.iter(iterable); -// -// // shared -// var pk = undefined; -// var k = undefined; -// var v; -// -// function fetch() { -// v = iterable.next(); -// k = keyfunc(v); -// }; -// -// function eat() { -// var ret = v; -// v = undefined; -// return ret; -// }; -// -// var first = true; -// return { -// repr: function () { return "groupby(...)"; }, -// next: function() { -// // iterator-next -// -// // iterate until meet next group -// while (k == pk) { -// fetch(); -// if (first) { -// first = false; -// break; -// } -// } -// pk = k; -// return [k, { -// next: function() { -// // subiterator-next -// if (v == undefined) { // Is there something to eat? -// fetch(); -// } -// if (k != pk) { -// throw self.StopIteration; -// } -// return eat(); -// } -// }]; -// } -// }; -// }, - -// groupby_as_array: function (iterable, /* optional */ keyfunc) { -// var m = MochiKit.Base; -// var self = MochiKit.Iter; -// if (arguments.length < 2) { -// keyfunc = m.operator.identity; -// } -// -// iterable = self.iter(iterable); -// var result = []; -// var first = true; -// var prev_key; -// while (true) { -// try { -// var value = iterable.next(); -// var key = keyfunc(value); -// } catch (e) { -// if (e == self.StopIteration) { -// break; -// } -// throw e; -// } -// if (first || key != prev_key) { -// var values = []; -// result.push([key, values]); -// } -// values.push(value); -// first = false; -// prev_key = key; -// } -// return result; -// }, - - arrayLikeIter: function (iterable) { - var i = 0; - return { - repr: function () { return "arrayLikeIter(...)"; }, - toString: MochiKit.Base.forwardCall("repr"), - next: function () { - if (i >= iterable.length) { - throw MochiKit.Iter.StopIteration; - } - return iterable[i++]; - } - }; - }, - - hasIterateNext: function (iterable) { - return (iterable && typeof(iterable.iterateNext) == "function"); - }, - - iterateNextIter: function (iterable) { - return { - repr: function () { return "iterateNextIter(...)"; }, - toString: MochiKit.Base.forwardCall("repr"), - next: function () { - var rval = iterable.iterateNext(); - if (rval === null || rval === undefined) { - throw MochiKit.Iter.StopIteration; - } - return rval; - } - }; - } -}); - - -MochiKit.Iter.EXPORT_OK = [ - "iteratorRegistry", - "arrayLikeIter", - "hasIterateNext", - "iterateNextIter", -]; - -MochiKit.Iter.EXPORT = [ - "StopIteration", - "registerIteratorFactory", - "iter", - "count", - "cycle", - "repeat", - "next", - "izip", - "ifilter", - "ifilterfalse", - "islice", - "imap", - "applymap", - "chain", - "takewhile", - "dropwhile", - "tee", - "list", - "reduce", - "range", - "sum", - "exhaust", - "forEach", - "every", - "sorted", - "reversed", - "some", - "iextend", - "groupby", - "groupby_as_array" -]; - -MochiKit.Iter.__new__ = function () { - var m = MochiKit.Base; - // Re-use StopIteration if exists (e.g. SpiderMonkey) - if (typeof(StopIteration) != "undefined") { - this.StopIteration = StopIteration; - } else { - this.StopIteration = new m.NamedError("StopIteration"); - } - this.iteratorRegistry = new m.AdapterRegistry(); - // Register the iterator factory for arrays - this.registerIteratorFactory( - "arrayLike", - m.isArrayLike, - this.arrayLikeIter - ); - - this.registerIteratorFactory( - "iterateNext", - this.hasIterateNext, - this.iterateNextIter - ); - - this.EXPORT_TAGS = { - ":common": this.EXPORT, - ":all": m.concat(this.EXPORT, this.EXPORT_OK) - }; - - m.nameFunctions(this); - -}; - -MochiKit.Iter.__new__(); - -// -// XXX: Internet Explorer blows -// -if (MochiKit.__export__) { - reduce = MochiKit.Iter.reduce; -} - -MochiKit.Base._exportSymbols(this, MochiKit.Iter); diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/License.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/License.js deleted file mode 100644 index e6eba2933..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/License.js +++ /dev/null @@ -1,9 +0,0 @@ -/*** - -MochiKit.Base 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Logging.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Logging.js deleted file mode 100644 index b329f913e..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Logging.js +++ /dev/null @@ -1,299 +0,0 @@ -/*** - -MochiKit.Logging 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.Logging'); - dojo.require('MochiKit.Base'); -} - -if (typeof(JSAN) != 'undefined') { - JSAN.use("MochiKit.Base", []); -} - -try { - if (typeof(MochiKit.Base) == 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.Logging depends on MochiKit.Base!"; -} - -if (typeof(MochiKit.Logging) == 'undefined') { - MochiKit.Logging = {}; -} - -MochiKit.Logging.NAME = "MochiKit.Logging"; -MochiKit.Logging.VERSION = "1.4"; -MochiKit.Logging.__repr__ = function () { - return "[" + this.NAME + " " + this.VERSION + "]"; -}; - -MochiKit.Logging.toString = function () { - return this.__repr__(); -}; - - -MochiKit.Logging.EXPORT = [ - "LogLevel", - "LogMessage", - "Logger", - "alertListener", - "logger", - "log", - "logError", - "logDebug", - "logFatal", - "logWarning" -]; - - -MochiKit.Logging.EXPORT_OK = [ - "logLevelAtLeast", - "isLogMessage", - "compareLogMessage" -]; - - -MochiKit.Logging.LogMessage = function (num, level, info) { - this.num = num; - this.level = level; - this.info = info; - this.timestamp = new Date(); -}; - -MochiKit.Logging.LogMessage.prototype = { - repr: function () { - var m = MochiKit.Base; - return 'LogMessage(' + - m.map( - m.repr, - [this.num, this.level, this.info] - ).join(', ') + ')'; - }, - toString: MochiKit.Base.forwardCall("repr") -}; - -MochiKit.Base.update(MochiKit.Logging, { - logLevelAtLeast: function (minLevel) { - var self = MochiKit.Logging; - if (typeof(minLevel) == 'string') { - minLevel = self.LogLevel[minLevel]; - } - return function (msg) { - var msgLevel = msg.level; - if (typeof(msgLevel) == 'string') { - msgLevel = self.LogLevel[msgLevel]; - } - return msgLevel >= minLevel; - }; - }, - - isLogMessage: function (/* ... */) { - var LogMessage = MochiKit.Logging.LogMessage; - for (var i = 0; i < arguments.length; i++) { - if (!(arguments[i] instanceof LogMessage)) { - return false; - } - } - return true; - }, - - compareLogMessage: function (a, b) { - return MochiKit.Base.compare([a.level, a.info], [b.level, b.info]); - }, - - alertListener: function (msg) { - alert( - "num: " + msg.num + - "\nlevel: " + msg.level + - "\ninfo: " + msg.info.join(" ") - ); - } - -}); - -MochiKit.Logging.Logger = function (/* optional */maxSize) { - this.counter = 0; - if (typeof(maxSize) == 'undefined' || maxSize === null) { - maxSize = -1; - } - this.maxSize = maxSize; - this._messages = []; - this.listeners = {}; - this.useNativeConsole = false; -}; - -MochiKit.Logging.Logger.prototype = { - clear: function () { - this._messages.splice(0, this._messages.length); - }, - - logToConsole: function (msg) { - if (typeof(window) != "undefined" && window.console - && window.console.log) { - // Safari and FireBug 0.4 - // Percent replacement is a workaround for cute Safari crashing bug - window.console.log(msg.replace(/%/g, '\uFF05')); - } else if (typeof(opera) != "undefined" && opera.postError) { - // Opera - opera.postError(msg); - } else if (typeof(printfire) == "function") { - // FireBug 0.3 and earlier - printfire(msg); - } else if (typeof(Debug) != "undefined" && Debug.writeln) { - // IE Web Development Helper (?) - // http://www.nikhilk.net/Entry.aspx?id=93 - Debug.writeln(msg); - } else if (typeof(debug) != "undefined" && debug.trace) { - // Atlas framework (?) - // http://www.nikhilk.net/Entry.aspx?id=93 - debug.trace(msg); - } - }, - - dispatchListeners: function (msg) { - for (var k in this.listeners) { - var pair = this.listeners[k]; - if (pair.ident != k || (pair[0] && !pair[0](msg))) { - continue; - } - pair[1](msg); - } - }, - - addListener: function (ident, filter, listener) { - if (typeof(filter) == 'string') { - filter = MochiKit.Logging.logLevelAtLeast(filter); - } - var entry = [filter, listener]; - entry.ident = ident; - this.listeners[ident] = entry; - }, - - removeListener: function (ident) { - delete this.listeners[ident]; - }, - - baseLog: function (level, message/*, ...*/) { - var msg = new MochiKit.Logging.LogMessage( - this.counter, - level, - MochiKit.Base.extend(null, arguments, 1) - ); - this._messages.push(msg); - this.dispatchListeners(msg); - if (this.useNativeConsole) { - this.logToConsole(msg.level + ": " + msg.info.join(" ")); - } - this.counter += 1; - while (this.maxSize >= 0 && this._messages.length > this.maxSize) { - this._messages.shift(); - } - }, - - getMessages: function (howMany) { - var firstMsg = 0; - if (!(typeof(howMany) == 'undefined' || howMany === null)) { - firstMsg = Math.max(0, this._messages.length - howMany); - } - return this._messages.slice(firstMsg); - }, - - getMessageText: function (howMany) { - if (typeof(howMany) == 'undefined' || howMany === null) { - howMany = 30; - } - var messages = this.getMessages(howMany); - if (messages.length) { - var lst = map(function (m) { - return '\n [' + m.num + '] ' + m.level + ': ' + m.info.join(' '); - }, messages); - lst.unshift('LAST ' + messages.length + ' MESSAGES:'); - return lst.join(''); - } - return ''; - }, - - debuggingBookmarklet: function (inline) { - if (typeof(MochiKit.LoggingPane) == "undefined") { - alert(this.getMessageText()); - } else { - MochiKit.LoggingPane.createLoggingPane(inline || false); - } - } -}; - - -MochiKit.Logging.__new__ = function () { - this.LogLevel = { - ERROR: 40, - FATAL: 50, - WARNING: 30, - INFO: 20, - DEBUG: 10 - }; - - var m = MochiKit.Base; - m.registerComparator("LogMessage", - this.isLogMessage, - this.compareLogMessage - ); - - var partial = m.partial; - - var Logger = this.Logger; - var baseLog = Logger.prototype.baseLog; - m.update(this.Logger.prototype, { - debug: partial(baseLog, 'DEBUG'), - log: partial(baseLog, 'INFO'), - error: partial(baseLog, 'ERROR'), - fatal: partial(baseLog, 'FATAL'), - warning: partial(baseLog, 'WARNING') - }); - - // indirectly find logger so it can be replaced - var self = this; - var connectLog = function (name) { - return function () { - self.logger[name].apply(self.logger, arguments); - }; - }; - - this.log = connectLog('log'); - this.logError = connectLog('error'); - this.logDebug = connectLog('debug'); - this.logFatal = connectLog('fatal'); - this.logWarning = connectLog('warning'); - this.logger = new Logger(); - this.logger.useNativeConsole = true; - - this.EXPORT_TAGS = { - ":common": this.EXPORT, - ":all": m.concat(this.EXPORT, this.EXPORT_OK) - }; - - m.nameFunctions(this); - -}; - -if (typeof(printfire) == "undefined" && - typeof(document) != "undefined" && document.createEvent && - typeof(dispatchEvent) != "undefined") { - // FireBug really should be less lame about this global function - printfire = function () { - printfire.args = arguments; - var ev = document.createEvent("Events"); - ev.initEvent("printfire", false, true); - dispatchEvent(ev); - }; -} - -MochiKit.Logging.__new__(); - -MochiKit.Base._exportSymbols(this, MochiKit.Logging); diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/LoggingPane.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/LoggingPane.js deleted file mode 100644 index b5f53b759..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/LoggingPane.js +++ /dev/null @@ -1,356 +0,0 @@ -/*** - -MochiKit.LoggingPane 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.LoggingPane'); - dojo.require('MochiKit.Logging'); - dojo.require('MochiKit.Base'); -} - -if (typeof(JSAN) != 'undefined') { - JSAN.use("MochiKit.Logging", []); - JSAN.use("MochiKit.Base", []); -} - -try { - if (typeof(MochiKit.Base) == 'undefined' || typeof(MochiKit.Logging) == 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.LoggingPane depends on MochiKit.Base and MochiKit.Logging!"; -} - -if (typeof(MochiKit.LoggingPane) == 'undefined') { - MochiKit.LoggingPane = {}; -} - -MochiKit.LoggingPane.NAME = "MochiKit.LoggingPane"; -MochiKit.LoggingPane.VERSION = "1.4"; -MochiKit.LoggingPane.__repr__ = function () { - return "[" + this.NAME + " " + this.VERSION + "]"; -}; - -MochiKit.LoggingPane.toString = function () { - return this.__repr__(); -}; - -MochiKit.LoggingPane.createLoggingPane = function (inline/* = false */) { - var m = MochiKit.LoggingPane; - inline = !(!inline); - if (m._loggingPane && m._loggingPane.inline != inline) { - m._loggingPane.closePane(); - m._loggingPane = null; - } - if (!m._loggingPane || m._loggingPane.closed) { - m._loggingPane = new m.LoggingPane(inline, MochiKit.Logging.logger); - } - return m._loggingPane; -}; - -MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = MochiKit.Logging.logger */) { - /* Use a div if inline, pop up a window if not */ - /* Create the elements */ - if (typeof(logger) == "undefined" || logger === null) { - logger = MochiKit.Logging.logger; - } - this.logger = logger; - var update = MochiKit.Base.update; - var updatetree = MochiKit.Base.updatetree; - var bind = MochiKit.Base.bind; - var clone = MochiKit.Base.clone; - var win = window; - var uid = "_MochiKit_LoggingPane"; - if (typeof(MochiKit.DOM) != "undefined") { - win = MochiKit.DOM.currentWindow(); - } - if (!inline) { - // name the popup with the base URL for uniqueness - var url = win.location.href.split("?")[0].replace(/[:\/.><&-]/g, "_"); - var name = uid + "_" + url; - var nwin = win.open("", name, "dependent,resizable,height=200"); - if (!nwin) { - alert("Not able to open debugging window due to pop-up blocking."); - return undefined; - } - nwin.document.write( - '' - + '[MochiKit.LoggingPane]' - + '' - ); - nwin.document.close(); - nwin.document.title += ' ' + win.document.title; - win = nwin; - } - var doc = win.document; - this.doc = doc; - - // Connect to the debug pane if it already exists (i.e. in a window orphaned by the page being refreshed) - var debugPane = doc.getElementById(uid); - var existing_pane = !!debugPane; - if (debugPane && typeof(debugPane.loggingPane) != "undefined") { - debugPane.loggingPane.logger = this.logger; - debugPane.loggingPane.buildAndApplyFilter(); - return debugPane.loggingPane; - } - - if (existing_pane) { - // clear any existing contents - var child; - while ((child = debugPane.firstChild)) { - debugPane.removeChild(child); - } - } else { - debugPane = doc.createElement("div"); - debugPane.id = uid; - } - debugPane.loggingPane = this; - var levelFilterField = doc.createElement("input"); - var infoFilterField = doc.createElement("input"); - var filterButton = doc.createElement("button"); - var loadButton = doc.createElement("button"); - var clearButton = doc.createElement("button"); - var closeButton = doc.createElement("button"); - var logPaneArea = doc.createElement("div"); - var logPane = doc.createElement("div"); - - /* Set up the functions */ - var listenerId = uid + "_Listener"; - this.colorTable = clone(this.colorTable); - var messages = []; - var messageFilter = null; - - var messageLevel = function (msg) { - var level = msg.level; - if (typeof(level) == "number") { - level = MochiKit.Logging.LogLevel[level]; - } - return level; - }; - - var messageText = function (msg) { - return msg.info.join(" "); - }; - - var addMessageText = bind(function (msg) { - var level = messageLevel(msg); - var text = messageText(msg); - var c = this.colorTable[level]; - var p = doc.createElement("span"); - p.className = "MochiKit-LogMessage MochiKit-LogLevel-" + level; - p.style.cssText = "margin: 0px; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; white-space: pre-line; word-wrap: break-word; wrap-option: emergency; color: " + c; - p.appendChild(doc.createTextNode(level + ": " + text)); - logPane.appendChild(p); - logPane.appendChild(doc.createElement("br")); - if (logPaneArea.offsetHeight > logPaneArea.scrollHeight) { - logPaneArea.scrollTop = 0; - } else { - logPaneArea.scrollTop = logPaneArea.scrollHeight; - } - }, this); - - var addMessage = function (msg) { - messages[messages.length] = msg; - addMessageText(msg); - }; - - var buildMessageFilter = function () { - var levelre, infore; - try { - /* Catch any exceptions that might arise due to invalid regexes */ - levelre = new RegExp(levelFilterField.value); - infore = new RegExp(infoFilterField.value); - } catch(e) { - /* If there was an error with the regexes, do no filtering */ - logDebug("Error in filter regex: " + e.message); - return null; - } - - return function (msg) { - return ( - levelre.test(messageLevel(msg)) && - infore.test(messageText(msg)) - ); - }; - }; - - var clearMessagePane = function () { - while (logPane.firstChild) { - logPane.removeChild(logPane.firstChild); - } - }; - - var clearMessages = function () { - messages = []; - clearMessagePane(); - }; - - var closePane = bind(function () { - if (this.closed) { - return; - } - this.closed = true; - if (MochiKit.LoggingPane._loggingPane == this) { - MochiKit.LoggingPane._loggingPane = null; - } - this.logger.removeListener(listenerId); - - debugPane.loggingPane = null; - - if (inline) { - debugPane.parentNode.removeChild(debugPane); - } else { - this.win.close(); - } - }, this); - - var filterMessages = function () { - clearMessagePane(); - - for (var i = 0; i < messages.length; i++) { - var msg = messages[i]; - if (messageFilter === null || messageFilter(msg)) { - addMessageText(msg); - } - } - }; - - this.buildAndApplyFilter = function () { - messageFilter = buildMessageFilter(); - - filterMessages(); - - this.logger.removeListener(listenerId); - this.logger.addListener(listenerId, messageFilter, addMessage); - }; - - - var loadMessages = bind(function () { - messages = this.logger.getMessages(); - filterMessages(); - }, this); - - var filterOnEnter = bind(function (event) { - event = event || window.event; - key = event.which || event.keyCode; - if (key == 13) { - this.buildAndApplyFilter(); - } - }, this); - - /* Create the debug pane */ - var style = "display: block; z-index: 1000; left: 0px; bottom: 0px; position: fixed; width: 100%; background-color: white; font: " + this.logFont; - if (inline) { - style += "; height: 10em; border-top: 2px solid black"; - } else { - style += "; height: 100%;"; - } - debugPane.style.cssText = style; - - if (!existing_pane) { - doc.body.appendChild(debugPane); - } - - /* Create the filter fields */ - style = {"cssText": "width: 33%; display: inline; font: " + this.logFont}; - - updatetree(levelFilterField, { - "value": "FATAL|ERROR|WARNING|INFO|DEBUG", - "onkeypress": filterOnEnter, - "style": style - }); - debugPane.appendChild(levelFilterField); - - updatetree(infoFilterField, { - "value": ".*", - "onkeypress": filterOnEnter, - "style": style - }); - debugPane.appendChild(infoFilterField); - - /* Create the buttons */ - style = "width: 8%; display:inline; font: " + this.logFont; - - filterButton.appendChild(doc.createTextNode("Filter")); - filterButton.onclick = bind("buildAndApplyFilter", this); - filterButton.style.cssText = style; - debugPane.appendChild(filterButton); - - loadButton.appendChild(doc.createTextNode("Load")); - loadButton.onclick = loadMessages; - loadButton.style.cssText = style; - debugPane.appendChild(loadButton); - - clearButton.appendChild(doc.createTextNode("Clear")); - clearButton.onclick = clearMessages; - clearButton.style.cssText = style; - debugPane.appendChild(clearButton); - - closeButton.appendChild(doc.createTextNode("Close")); - closeButton.onclick = closePane; - closeButton.style.cssText = style; - debugPane.appendChild(closeButton); - - /* Create the logging pane */ - logPaneArea.style.cssText = "overflow: auto; width: 100%"; - logPane.style.cssText = "width: 100%; height: " + (inline ? "8em" : "100%"); - - logPaneArea.appendChild(logPane); - debugPane.appendChild(logPaneArea); - - this.buildAndApplyFilter(); - loadMessages(); - - if (inline) { - this.win = undefined; - } else { - this.win = win; - } - this.inline = inline; - this.closePane = closePane; - this.closed = false; - - return this; -}; - -MochiKit.LoggingPane.LoggingPane.prototype = { - "logFont": "8pt Verdana,sans-serif", - "colorTable": { - "ERROR": "red", - "FATAL": "darkred", - "WARNING": "blue", - "INFO": "black", - "DEBUG": "green" - } -}; - - -MochiKit.LoggingPane.EXPORT_OK = [ - "LoggingPane" -]; - -MochiKit.LoggingPane.EXPORT = [ - "createLoggingPane" -]; - -MochiKit.LoggingPane.__new__ = function () { - this.EXPORT_TAGS = { - ":common": this.EXPORT, - ":all": MochiKit.Base.concat(this.EXPORT, this.EXPORT_OK) - }; - - MochiKit.Base.nameFunctions(this); - - MochiKit.LoggingPane._loggingPane = null; - -}; - -MochiKit.LoggingPane.__new__(); - -MochiKit.Base._exportSymbols(this, MochiKit.LoggingPane); diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/MochiKit.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/MochiKit.js deleted file mode 100644 index 2b8d6991b..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/MochiKit.js +++ /dev/null @@ -1,149 +0,0 @@ -/*** - -MochiKit.MochiKit 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ - -if (typeof(MochiKit) == 'undefined') { - MochiKit = {}; -} - -if (typeof(MochiKit.MochiKit) == 'undefined') { - MochiKit.MochiKit = {}; -} - -MochiKit.MochiKit.NAME = "MochiKit.MochiKit"; -MochiKit.MochiKit.VERSION = "1.4"; -MochiKit.MochiKit.__repr__ = function () { - return "[" + this.NAME + " " + this.VERSION + "]"; -}; - -MochiKit.MochiKit.toString = function () { - return this.__repr__(); -}; - -MochiKit.MochiKit.SUBMODULES = [ - "Base", - "Iter", - "Logging", - "DateTime", - "Format", - "Async", - "DOM", - "Style", - "LoggingPane", - "Color", - "Signal", - "Visual" -]; - -if (typeof(JSAN) != 'undefined' || typeof(dojo) != 'undefined') { - if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.MochiKit'); - dojo.require("MochiKit.*"); - } - if (typeof(JSAN) != 'undefined') { - (function (lst) { - for (var i = 0; i < lst.length; i++) { - JSAN.use("MochiKit." + lst[i], []); - } - })(MochiKit.MochiKit.SUBMODULES); - } - (function () { - var extend = MochiKit.Base.extend; - var self = MochiKit.MochiKit; - var modules = self.SUBMODULES; - var EXPORT = []; - var EXPORT_OK = []; - var EXPORT_TAGS = {}; - var i, k, m, all; - for (i = 0; i < modules.length; i++) { - m = MochiKit[modules[i]]; - extend(EXPORT, m.EXPORT); - extend(EXPORT_OK, m.EXPORT_OK); - for (k in m.EXPORT_TAGS) { - EXPORT_TAGS[k] = extend(EXPORT_TAGS[k], m.EXPORT_TAGS[k]); - } - all = m.EXPORT_TAGS[":all"]; - if (!all) { - all = extend(null, m.EXPORT, m.EXPORT_OK); - } - var j; - for (j = 0; j < all.length; j++) { - k = all[j]; - self[k] = m[k]; - } - } - self.EXPORT = EXPORT; - self.EXPORT_OK = EXPORT_OK; - self.EXPORT_TAGS = EXPORT_TAGS; - }()); - -} else { - if (typeof(MochiKit.__compat__) == 'undefined') { - MochiKit.__compat__ = true; - } - (function () { - if (typeof(document) == "undefined") { - return; - } - var scripts = document.getElementsByTagName("script"); - var kXULNSURI = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; - var base = null; - var baseElem = null; - var allScripts = {}; - var i; - for (i = 0; i < scripts.length; i++) { - var src = scripts[i].getAttribute("src"); - if (!src) { - continue; - } - allScripts[src] = true; - if (src.match(/MochiKit.js$/)) { - base = src.substring(0, src.lastIndexOf('MochiKit.js')); - baseElem = scripts[i]; - } - } - if (base === null) { - return; - } - var modules = MochiKit.MochiKit.SUBMODULES; - for (var i = 0; i < modules.length; i++) { - if (MochiKit[modules[i]]) { - continue; - } - var uri = base + modules[i] + '.js'; - if (uri in allScripts) { - continue; - } - if (document.documentElement && - document.documentElement.namespaceURI == kXULNSURI) { - // XUL - var s = document.createElementNS(kXULNSURI, 'script'); - s.setAttribute("id", "MochiKit_" + base + modules[i]); - s.setAttribute("src", uri); - s.setAttribute("type", "application/x-javascript"); - baseElem.parentNode.appendChild(s); - } else { - // HTML - /* - DOM can not be used here because Safari does - deferred loading of scripts unless they are - in the document or inserted with document.write - - This is not XHTML compliant. If you want XHTML - compliance then you must use the packed version of MochiKit - or include each script individually (basically unroll - these document.write calls into your XHTML source) - - */ - document.write(''); - } - }; - })(); -} diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/MockDOM.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/MockDOM.js deleted file mode 100644 index abab10fe5..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/MockDOM.js +++ /dev/null @@ -1,88 +0,0 @@ -/*** - -MochiKit.MockDOM 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ -if (typeof(MochiKit) == "undefined") { - MochiKit = {}; -} - -if (typeof(MochiKit.MockDOM) == "undefined") { - MochiKit.MockDOM = {}; -} - -MochiKit.MockDOM.NAME = "MochiKit.MockDOM"; -MochiKit.MockDOM.VERSION = "1.4"; - -MochiKit.MockDOM.__repr__ = function () { - return "[" + this.NAME + " " + this.VERSION + "]"; -}; - -MochiKit.MockDOM.toString = function () { - return this.__repr__(); -}; - -MochiKit.MockDOM.createDocument = function () { - var doc = new MochiKit.MockDOM.MockElement("DOCUMENT"); - doc.body = doc.createElement("BODY"); - doc.appendChild(doc.body); - return doc; -}; - -MochiKit.MockDOM.MockElement = function (name, data) { - this.nodeName = name.toUpperCase(); - if (typeof(data) == "string") { - this.nodeValue = data; - this.nodeType = 3; - } else { - this.nodeType = 1; - this.childNodes = []; - } - if (name.substring(0, 1) == "<") { - var nameattr = name.substring( - name.indexOf('"') + 1, name.lastIndexOf('"')); - name = name.substring(1, name.indexOf(" ")); - this.nodeName = name.toUpperCase(); - this.setAttribute("name", nameattr); - } -}; - -MochiKit.MockDOM.MockElement.prototype = { - createElement: function (nodeName) { - return new MochiKit.MockDOM.MockElement(nodeName); - }, - createTextNode: function (text) { - return new MochiKit.MockDOM.MockElement("text", text); - }, - setAttribute: function (name, value) { - this[name] = value; - }, - getAttribute: function (name) { - return this[name]; - }, - appendChild: function (child) { - this.childNodes.push(child); - }, - toString: function () { - return "MockElement(" + this.nodeName + ")"; - } -}; - -MochiKit.MockDOM.EXPORT_OK = [ - "mockElement", - "createDocument" -]; - -MochiKit.MockDOM.EXPORT = [ - "document" -]; - -MochiKit.MockDOM.__new__ = function () { - this.document = this.createDocument(); -}; - -MochiKit.MockDOM.__new__(); diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/New.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/New.js deleted file mode 100644 index 97bfe8a60..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/New.js +++ /dev/null @@ -1,365 +0,0 @@ - -MochiKit.Base.update(MochiKit.Base, { - isIE: function () { - return /MSIE/.test(navigator.userAgent); - }, - - isGecko: function () { - return /Gecko/.test(navigator.userAgent); - }, - - isKHTML: function () { - return /Konqueror|Safari|KHTML/.test(navigator.userAgent) - }, - - isSafari: function () { - return /AppleWebKit'/.test(navigator.appVersion); - }, - - isOpera: function () { - return /Opera/.test(navigator.userAgent); - } -}); - -MochiKit.Base.update(MochiKit.DOM, { - getStyle: function (element, style) { - element = MochiKit.DOM.getElement(element); - var value = element.style[MochiKit.Base.camelize(style)]; - if (!value) { - if (document.defaultView && document.defaultView.getComputedStyle) { - var css = document.defaultView.getComputedStyle(element, null); - value = css ? css.getPropertyValue(style) : null; - } else if (element.currentStyle) { - value = element.currentStyle[MochiKit.Base.camelize(style)]; - } - } - - if (MochiKit.Base.isOpera() && (MochiKit.Base.find(['left', 'top', 'right', 'bottom'], style))) { - if (MochiKit.DOM.getStyle(element, 'position') == 'static') { - value = 'auto'; - } - } - - return value == 'auto' ? null : value; - }, - - setStyle: function (element, style) { - element = MochiKit.DOM.getElement(element); - for (var name in style) { - element.style[MochiKit.Base.camelize(name)] = style[name]; - } - }, - - getOpacity: function (element) { - var opacity; - if (opacity = MochiKit.DOM.getStyle(element, 'opacity')) { - return parseFloat(opacity); - } - if (opacity = (MochiKit.DOM.getStyle(element, 'filter') || '').match(/alpha\(opacity=(.*)\)/)) { - if (opacity[1]) { - return parseFloat(opacity[1]) / 100; - } - } - return 1.0; - }, - - getInlineOpacity: function (element) { - return MochiKit.DOM.getElement(element).style.opacity || ''; - }, - - setOpacity: function (element, value) { - element = MochiKit.DOM.getElement(element); - if (value == 1) { - var cssText = element.style.cssText; - if(MochiKit.Base.isIE()) - cssText = cssText.replace(/filter: ?alpha\([^\)]*\);?/gi, ''); - - element.style.cssText = cssText.replace(/opacity: ?\d\.?\d*/gi, ''); - } else { - if (value < 0.00001) { - value = 0; - } - MochiKit.DOM.setStyle(element, {opacity: value}); - if (MochiKit.Base.isIE()) { - MochiKit.DOM.setStyle(element, - {filter: MochiKit.DOM.getStyle(element, 'filter').replace(/alpha\([^\)]*\)/gi, '') + 'alpha(opacity=' + value * 100 + ')' }); - } - } - }, - - isVisible: function (element) { - return MochiKit.DOM.getElement(element).style.display != 'none'; - }, - - makeClipping: function (element) { - element = MochiKit.DOM.getElement(element); - if (element._overflow) { - return; - } - element._overflow = element.style.overflow; - if ((MochiKit.DOM.getStyle(element, 'overflow') || 'visible') != 'hidden') { - element.style.overflow = 'hidden'; - } - }, - - undoClipping: function (element) { - element = MochiKit.DOM.getElement(element); - if (!element._overflow) { - return; - } - element.style.overflow = element._overflow; - element._overflow = undefined; - }, - - makePositioned: function (element) { - element = MochiKit.DOM.getElement(element); - /*if (!element.style) { - alert(element); - }*/ - var pos = MochiKit.DOM.getStyle(element, 'position'); - if ((pos == 'static' || !pos) && !element._madePositioned) { - element._madePositioned = true; - element.style.position = 'relative'; - // Opera returns the offset relative to the positioning context, - // when an element is position relative but top and left have - // not been defined - if (MochiKit.Base.isOpera()) { - element.style.top = 0; - element.style.left = 0; - } - } - }, - - undoPositioned: function (element) { - element = MochiKit.DOM.getElement(element); - if (element._madePositioned) { - element._madePositioned = undefined; - element.style.position = element.style.top = element.style.left = element.style.bottom = element.style.right = ''; - } - }, - - getFirstElementByTagAndClassName: function (tagName, className, - /* optional */parent) { - var self = MochiKit.DOM; - if (typeof(tagName) == 'undefined' || tagName === null) { - tagName = '*'; - } - if (typeof(parent) == 'undefined' || parent === null) { - parent = self._document; - } - parent = self.getElement(parent); - var children = (parent.getElementsByTagName(tagName) - || self._document.all); - if (typeof(className) == 'undefined' || className === null) { - return MochiKit.Base.extend(null, children); - } - - for (var i = 0; i < children.length; i++) { - var child = children[i]; - var classNames = child.className.split(' '); - for (var j = 0; j < classNames.length; j++) { - if (classNames[j] == className) { - return child; - } - } - } - }, - - isParent: function (child, element) { - if (!child.parentNode || child == element) { - return false; - } - - if (child.parentNode == element) { - return true; - } - - return MochiKit.DOM.isParent(child.parentNode, element); - } -}); - -MochiKit.Position = { - // set to true if needed, warning: firefox performance problems - // NOT neeeded for page scrolling, only if draggable contained in - // scrollable elements - includeScrollOffsets: false, - - prepare: function () { - var deltaX = window.pageXOffset - || document.documentElement.scrollLeft - || document.body.scrollLeft - || 0; - var deltaY = window.pageYOffset - || document.documentElement.scrollTop - || document.body.scrollTop - || 0; - this.windowOffset = new MochiKit.Style.Coordinates(deltaX, deltaY); - }, - - cumulativeOffset: function (element) { - var valueT = 0; - var valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - element = element.offsetParent; - } while (element); - return new MochiKit.Style.Coordinates(valueL, valueT); - }, - - realOffset: function (element) { - var valueT = 0; - var valueL = 0; - do { - valueT += element.scrollTop || 0; - valueL += element.scrollLeft || 0; - element = element.parentNode; - } while (element); - return new MochiKit.Style.Coordinates(valueL, valueT); - }, - - within: function (element, x, y) { - if (this.includeScrollOffsets) { - return this.withinIncludingScrolloffsets(element, x, y); - } - this.xcomp = x; - this.ycomp = y; - this.offset = this.cumulativeOffset(element); - if (element.style.position == "fixed") { - this.offset.x += this.windowOffset.x; - this.offset.y += this.windowOffset.y; - } - - return (y >= this.offset.y && - y < this.offset.y + element.offsetHeight && - x >= this.offset.x && - x < this.offset.x + element.offsetWidth); - }, - - withinIncludingScrolloffsets: function (element, x, y) { - var offsetcache = this.realOffset(element); - - this.xcomp = x + offsetcache.x - this.windowOffset.x; - this.ycomp = y + offsetcache.y - this.windowOffset.y; - this.offset = this.cumulativeOffset(element); - - return (this.ycomp >= this.offset.y && - this.ycomp < this.offset.y + element.offsetHeight && - this.xcomp >= this.offset.x && - this.xcomp < this.offset.x + element.offsetWidth); - }, - - // within must be called directly before - overlap: function (mode, element) { - if (!mode) { - return 0; - } - if (mode == 'vertical') { - return ((this.offset.y + element.offsetHeight) - this.ycomp) / - element.offsetHeight; - } - if (mode == 'horizontal') { - return ((this.offset.x + element.offsetWidth) - this.xcomp) / - element.offsetWidth; - } - }, - - absolutize: function (element) { - element = MochiKit.DOM.getElement(element); - if (element.style.position == 'absolute') { - return; - } - MochiKit.Position.prepare(); - - var offsets = MochiKit.Position.positionedOffset(element); - var width = element.clientWidth; - var height = element.clientHeight; - - var oldStyle = { - 'position': element.style.position, - 'left': offsets.x - parseFloat(element.style.left || 0), - 'top': offsets.y - parseFloat(element.style.top || 0), - 'width': element.style.width, - 'height': element.style.height - }; - - element.style.position = 'absolute'; - element.style.top = offsets.y + 'px'; - element.style.left = offsets.x + 'px'; - element.style.width = width + 'px'; - element.style.height = height + 'px'; - - return oldStyle; - }, - - positionedOffset: function (element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - element = element.offsetParent; - if (element) { - p = MochiKit.DOM.getStyle(element, 'position'); - if (p == 'relative' || p == 'absolute') { - break; - } - } - } while (element); - return new MochiKit.Style.Coordinates(valueL, valueT); - }, - - relativize: function (element, oldPos) { - element = MochiKit.DOM.getElement(element); - if (element.style.position == 'relative') { - return; - } - MochiKit.Position.prepare(); - - var top = parseFloat(element.style.top || 0) - - (oldPos['top'] || 0); - var left = parseFloat(element.style.left || 0) - - (oldPos['left'] || 0); - - element.style.position = oldPos['position']; - element.style.top = top + 'px'; - element.style.left = left + 'px'; - element.style.width = oldPos['width']; - element.style.height = oldPos['height']; - }, - - clone: function (source, target) { - source = MochiKit.DOM.getElement(source); - target = MochiKit.DOM.getElement(target); - target.style.position = 'absolute'; - var offsets = this.cumulativeOffset(source); - target.style.top = offsets.y + 'px'; - target.style.left = offsets.x + 'px'; - target.style.width = source.offsetWidth + 'px'; - target.style.height = source.offsetHeight + 'px'; - }, - - page: function (forElement) { - var valueT = 0; - var valueL = 0; - - var element = forElement; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - - // Safari fix - if (element.offsetParent == document.body && MochiKit.DOM.getStyle(element, 'position') == 'absolute') { - break; - } - } while (element = element.offsetParent); - - element = forElement; - do { - valueT -= element.scrollTop || 0; - valueL -= element.scrollLeft || 0; - } while (element = element.parentNode); - - return new MochiKit.Style.Coordinates(valueL, valueT); - } -}; - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Signal.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Signal.js deleted file mode 100644 index 192839a1c..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Signal.js +++ /dev/null @@ -1,712 +0,0 @@ -/*** - -MochiKit.Signal 1.4 - -See for documentation, downloads, license, etc. - -(c) 2006 Jonathan Gardner, Beau Hartshorne, Bob Ippolito. All rights Reserved. - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.Signal'); - dojo.require('MochiKit.Base'); - dojo.require('MochiKit.DOM'); - dojo.require('MochiKit.Style'); -} -if (typeof(JSAN) != 'undefined') { - JSAN.use('MochiKit.Base', []); - JSAN.use('MochiKit.DOM', []); -} - -try { - if (typeof(MochiKit.Base) == 'undefined') { - throw ''; - } -} catch (e) { - throw 'MochiKit.Signal depends on MochiKit.Base!'; -} - -try { - if (typeof(MochiKit.DOM) == 'undefined') { - throw ''; - } -} catch (e) { - throw 'MochiKit.Signal depends on MochiKit.DOM!'; -} - -try { - if (typeof(MochiKit.Style) == 'undefined') { - throw ''; - } -} catch (e) { - throw 'MochiKit.Signal depends on MochiKit.Style!'; -} - -if (typeof(MochiKit.Signal) == 'undefined') { - MochiKit.Signal = {}; -} - -MochiKit.Signal.NAME = 'MochiKit.Signal'; -MochiKit.Signal.VERSION = '1.4'; - -MochiKit.Signal._observers = []; - -MochiKit.Signal.Event = function (src, e) { - this._event = e || window.event; - this._src = src; -}; - -MochiKit.Base.update(MochiKit.Signal.Event.prototype, { - - __repr__: function() { - var repr = MochiKit.Base.repr; - var str = '{event(): ' + repr(this.event()) + - ', src(): ' + repr(this.src()) + - ', type(): ' + repr(this.type()) + - ', target(): ' + repr(this.target()) + - ', modifier(): ' + '{alt: ' + repr(this.modifier().alt) + - ', ctrl: ' + repr(this.modifier().ctrl) + - ', meta: ' + repr(this.modifier().meta) + - ', shift: ' + repr(this.modifier().shift) + - ', any: ' + repr(this.modifier().any) + '}'; - - if (this.type() && this.type().indexOf('key') === 0) { - str += ', key(): {code: ' + repr(this.key().code) + - ', string: ' + repr(this.key().string) + '}'; - } - - if (this.type() && ( - this.type().indexOf('mouse') === 0 || - this.type().indexOf('click') != -1 || - this.type() == 'contextmenu')) { - - str += ', mouse(): {page: ' + repr(this.mouse().page) + - ', client: ' + repr(this.mouse().client); - - if (this.type() != 'mousemove') { - str += ', button: {left: ' + repr(this.mouse().button.left) + - ', middle: ' + repr(this.mouse().button.middle) + - ', right: ' + repr(this.mouse().button.right) + '}}'; - } else { - str += '}'; - } - } - if (this.type() == 'mouseover' || this.type() == 'mouseout') { - str += ', relatedTarget(): ' + repr(this.relatedTarget()); - } - str += '}'; - return str; - }, - - toString: function () { - return this.__repr__(); - }, - - src: function () { - return this._src; - }, - - event: function () { - return this._event; - }, - - type: function () { - return this._event.type || undefined; - }, - - target: function () { - return this._event.target || this._event.srcElement; - }, - - _relatedTarget: null, - relatedTarget: function () { - if (this._relatedTarget !== null) { - return this._relatedTarget; - } - - var elem = null; - if (this.type() == 'mouseover') { - elem = (this._event.relatedTarget || - this._event.fromElement); - } else if (this.type() == 'mouseout') { - elem = (this._event.relatedTarget || - this._event.toElement); - } - if (elem !== null) { - this._relatedTarget = elem; - return elem; - } - - return undefined; - }, - - _modifier: null, - modifier: function () { - if (this._modifier !== null) { - return this._modifier; - } - var m = {}; - m.alt = this._event.altKey; - m.ctrl = this._event.ctrlKey; - m.meta = this._event.metaKey || false; // IE and Opera punt here - m.shift = this._event.shiftKey; - m.any = m.alt || m.ctrl || m.shift || m.meta; - this._modifier = m; - return m; - }, - - _key: null, - key: function () { - if (this._key !== null) { - return this._key; - } - var k = {}; - if (this.type() && this.type().indexOf('key') === 0) { - - /* - - If you're looking for a special key, look for it in keydown or - keyup, but never keypress. If you're looking for a Unicode - chracter, look for it with keypress, but never keyup or - keydown. - - Notes: - - FF key event behavior: - key event charCode keyCode - DOWN ku,kd 0 40 - DOWN kp 0 40 - ESC ku,kd 0 27 - ESC kp 0 27 - a ku,kd 0 65 - a kp 97 0 - shift+a ku,kd 0 65 - shift+a kp 65 0 - 1 ku,kd 0 49 - 1 kp 49 0 - shift+1 ku,kd 0 0 - shift+1 kp 33 0 - - IE key event behavior: - (IE doesn't fire keypress events for special keys.) - key event keyCode - DOWN ku,kd 40 - DOWN kp undefined - ESC ku,kd 27 - ESC kp 27 - a ku,kd 65 - a kp 97 - shift+a ku,kd 65 - shift+a kp 65 - 1 ku,kd 49 - 1 kp 49 - shift+1 ku,kd 49 - shift+1 kp 33 - - Safari key event behavior: - (Safari sets charCode and keyCode to something crazy for - special keys.) - key event charCode keyCode - DOWN ku,kd 63233 40 - DOWN kp 63233 63233 - ESC ku,kd 27 27 - ESC kp 27 27 - a ku,kd 97 65 - a kp 97 97 - shift+a ku,kd 65 65 - shift+a kp 65 65 - 1 ku,kd 49 49 - 1 kp 49 49 - shift+1 ku,kd 33 49 - shift+1 kp 33 33 - - */ - - /* look for special keys here */ - if (this.type() == 'keydown' || this.type() == 'keyup') { - k.code = this._event.keyCode; - k.string = (MochiKit.Signal._specialKeys[k.code] || - 'KEY_UNKNOWN'); - this._key = k; - return k; - - /* look for characters here */ - } else if (this.type() == 'keypress') { - - /* - - Special key behavior: - - IE: does not fire keypress events for special keys - FF: sets charCode to 0, and sets the correct keyCode - Safari: sets keyCode and charCode to something stupid - - */ - - k.code = 0; - k.string = ''; - - if (typeof(this._event.charCode) != 'undefined' && - this._event.charCode !== 0 && - !MochiKit.Signal._specialMacKeys[this._event.charCode]) { - k.code = this._event.charCode; - k.string = String.fromCharCode(k.code); - } else if (this._event.keyCode && - typeof(this._event.charCode) == 'undefined') { // IE - k.code = this._event.keyCode; - k.string = String.fromCharCode(k.code); - } - - this._key = k; - return k; - } - } - return undefined; - }, - - _mouse: null, - mouse: function () { - if (this._mouse !== null) { - return this._mouse; - } - - var m = {}; - var e = this._event; - - if (this.type() && ( - this.type().indexOf('mouse') === 0 || - this.type().indexOf('click') != -1 || - this.type() == 'contextmenu')) { - - m.client = new MochiKit.Style.Coordinates(0, 0); - if (e.clientX || e.clientY) { - m.client.x = (!e.clientX || e.clientX < 0) ? 0 : e.clientX; - m.client.y = (!e.clientY || e.clientY < 0) ? 0 : e.clientY; - } - - m.page = new MochiKit.Style.Coordinates(0, 0); - if (e.pageX || e.pageY) { - m.page.x = (!e.pageX || e.pageX < 0) ? 0 : e.pageX; - m.page.y = (!e.pageY || e.pageY < 0) ? 0 : e.pageY; - } else { - /* - - The IE shortcut can be off by two. We fix it. See: - http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/getboundingclientrect.asp - - This is similar to the method used in - MochiKit.Style.getElementPosition(). - - */ - var de = MochiKit.DOM._document.documentElement; - var b = MochiKit.DOM._document.body; - - m.page.x = e.clientX + - (de.scrollLeft || b.scrollLeft) - - (de.clientLeft || 0); - - m.page.y = e.clientY + - (de.scrollTop || b.scrollTop) - - (de.clientTop || 0); - - } - if (this.type() != 'mousemove') { - m.button = {}; - m.button.left = false; - m.button.right = false; - m.button.middle = false; - - /* we could check e.button, but which is more consistent */ - if (e.which) { - m.button.left = (e.which == 1); - m.button.middle = (e.which == 2); - m.button.right = (e.which == 3); - - /* - - Mac browsers and right click: - - - Safari doesn't fire any click events on a right - click: - http://bugzilla.opendarwin.org/show_bug.cgi?id=6595 - - - Firefox fires the event, and sets ctrlKey = true - - - Opera fires the event, and sets metaKey = true - - oncontextmenu is fired on right clicks between - browsers and across platforms. - - */ - - } else { - m.button.left = !!(e.button & 1); - m.button.right = !!(e.button & 2); - m.button.middle = !!(e.button & 4); - } - } - this._mouse = m; - return m; - } - return undefined; - }, - - stop: function () { - this.stopPropagation(); - this.preventDefault(); - }, - - stopPropagation: function () { - if (this._event.stopPropagation) { - this._event.stopPropagation(); - } else { - this._event.cancelBubble = true; - } - }, - - preventDefault: function () { - if (this._event.preventDefault) { - this._event.preventDefault(); - } else if (this._confirmUnload === null) { - this._event.returnValue = false; - } - }, - - _confirmUnload: null, - confirmUnload: function (msg) { - if (this.type() == 'beforeunload') { - this._confirmUnload = msg; - this._event.returnValue = msg; - } - } -}); - -/* Safari sets keyCode to these special values onkeypress. */ -MochiKit.Signal._specialMacKeys = { - 3: 'KEY_ENTER', - 63289: 'KEY_NUM_PAD_CLEAR', - 63276: 'KEY_PAGE_UP', - 63277: 'KEY_PAGE_DOWN', - 63275: 'KEY_END', - 63273: 'KEY_HOME', - 63234: 'KEY_ARROW_LEFT', - 63232: 'KEY_ARROW_UP', - 63235: 'KEY_ARROW_RIGHT', - 63233: 'KEY_ARROW_DOWN', - 63302: 'KEY_INSERT', - 63272: 'KEY_DELETE' -}; - -/* for KEY_F1 - KEY_F12 */ -for (i = 63236; i <= 63242; i++) { - MochiKit.Signal._specialMacKeys[i] = 'KEY_F' + (i - 63236 + 1); // no F0 -} - -/* Standard keyboard key codes. */ -MochiKit.Signal._specialKeys = { - 8: 'KEY_BACKSPACE', - 9: 'KEY_TAB', - 12: 'KEY_NUM_PAD_CLEAR', // weird, for Safari and Mac FF only - 13: 'KEY_ENTER', - 16: 'KEY_SHIFT', - 17: 'KEY_CTRL', - 18: 'KEY_ALT', - 19: 'KEY_PAUSE', - 20: 'KEY_CAPS_LOCK', - 27: 'KEY_ESCAPE', - 32: 'KEY_SPACEBAR', - 33: 'KEY_PAGE_UP', - 34: 'KEY_PAGE_DOWN', - 35: 'KEY_END', - 36: 'KEY_HOME', - 37: 'KEY_ARROW_LEFT', - 38: 'KEY_ARROW_UP', - 39: 'KEY_ARROW_RIGHT', - 40: 'KEY_ARROW_DOWN', - 44: 'KEY_PRINT_SCREEN', - 45: 'KEY_INSERT', - 46: 'KEY_DELETE', - 59: 'KEY_SEMICOLON', // weird, for Safari and IE only - 91: 'KEY_WINDOWS_LEFT', - 92: 'KEY_WINDOWS_RIGHT', - 93: 'KEY_SELECT', - 106: 'KEY_NUM_PAD_ASTERISK', - 107: 'KEY_NUM_PAD_PLUS_SIGN', - 109: 'KEY_NUM_PAD_HYPHEN-MINUS', - 110: 'KEY_NUM_PAD_FULL_STOP', - 111: 'KEY_NUM_PAD_SOLIDUS', - 144: 'KEY_NUM_LOCK', - 145: 'KEY_SCROLL_LOCK', - 186: 'KEY_SEMICOLON', - 187: 'KEY_EQUALS_SIGN', - 188: 'KEY_COMMA', - 189: 'KEY_HYPHEN-MINUS', - 190: 'KEY_FULL_STOP', - 191: 'KEY_SOLIDUS', - 192: 'KEY_GRAVE_ACCENT', - 219: 'KEY_LEFT_SQUARE_BRACKET', - 220: 'KEY_REVERSE_SOLIDUS', - 221: 'KEY_RIGHT_SQUARE_BRACKET', - 222: 'KEY_APOSTROPHE' - // undefined: 'KEY_UNKNOWN' -}; - -/* for KEY_0 - KEY_9 */ -for (var i = 48; i <= 57; i++) { - MochiKit.Signal._specialKeys[i] = 'KEY_' + (i - 48); -} - -/* for KEY_A - KEY_Z */ -for (i = 65; i <= 90; i++) { - MochiKit.Signal._specialKeys[i] = 'KEY_' + String.fromCharCode(i); -} - -/* for KEY_NUM_PAD_0 - KEY_NUM_PAD_9 */ -for (i = 96; i <= 105; i++) { - MochiKit.Signal._specialKeys[i] = 'KEY_NUM_PAD_' + (i - 96); -} - -/* for KEY_F1 - KEY_F12 */ -for (i = 112; i <= 123; i++) { - MochiKit.Signal._specialKeys[i] = 'KEY_F' + (i - 112 + 1); // no F0 -} - -MochiKit.Base.update(MochiKit.Signal, { - - __repr__: function () { - return '[' + this.NAME + ' ' + this.VERSION + ']'; - }, - - toString: function () { - return this.__repr__(); - }, - - _unloadCache: function () { - var self = MochiKit.Signal; - var observers = self._observers; - - for (var i = 0; i < observers.length; i++) { - self._disconnect(observers[i]); - } - - delete self._observers; - - try { - window.onload = undefined; - } catch(e) { - // pass - } - - try { - window.onunload = undefined; - } catch(e) { - // pass - } - }, - - _listener: function (src, func, obj, isDOM) { - var E = MochiKit.Signal.Event; - if (!isDOM) { - return MochiKit.Base.bind(func, obj); - } - obj = obj || src; - if (typeof(func) == "string") { - return function (nativeEvent) { - obj[func].apply(obj, [new E(src, nativeEvent)]); - }; - } else { - return function (nativeEvent) { - func.apply(obj, [new E(src, nativeEvent)]); - }; - } - }, - - connect: function (src, sig, objOrFunc/* optional */, funcOrStr) { - src = MochiKit.DOM.getElement(src); - var self = MochiKit.Signal; - - if (typeof(sig) != 'string') { - throw new Error("'sig' must be a string"); - } - - var obj = null; - var func = null; - if (typeof(funcOrStr) != 'undefined') { - obj = objOrFunc; - func = funcOrStr; - if (typeof(funcOrStr) == 'string') { - if (typeof(objOrFunc[funcOrStr]) != "function") { - throw new Error("'funcOrStr' must be a function on 'objOrFunc'"); - } - } else if (typeof(funcOrStr) != 'function') { - throw new Error("'funcOrStr' must be a function or string"); - } - } else if (typeof(objOrFunc) != "function") { - throw new Error("'objOrFunc' must be a function if 'funcOrStr' is not given"); - } else { - func = objOrFunc; - } - if (typeof(obj) == 'undefined' || obj === null) { - obj = src; - } - - var isDOM = !!(src.addEventListener || src.attachEvent); - var listener = self._listener(src, func, obj, isDOM); - - if (src.addEventListener) { - src.addEventListener(sig.substr(2), listener, false); - } else if (src.attachEvent) { - src.attachEvent(sig, listener); // useCapture unsupported - } - - var ident = [src, sig, listener, isDOM, objOrFunc, funcOrStr]; - self._observers.push(ident); - - - return ident; - }, - - _disconnect: function (ident) { - // check isDOM - if (!ident[3]) { return; } - var src = ident[0]; - var sig = ident[1]; - var listener = ident[2]; - if (src.removeEventListener) { - src.removeEventListener(sig.substr(2), listener, false); - } else if (src.detachEvent) { - src.detachEvent(sig, listener); // useCapture unsupported - } else { - throw new Error("'src' must be a DOM element"); - } - }, - - disconnect: function (ident) { - var self = MochiKit.Signal; - var observers = self._observers; - var m = MochiKit.Base; - if (arguments.length > 1) { - // compatibility API - var src = MochiKit.DOM.getElement(arguments[0]); - var sig = arguments[1]; - var obj = arguments[2]; - var func = arguments[3]; - for (var i = observers.length - 1; i >= 0; i--) { - var o = observers[i]; - if (o[0] === src && o[1] === sig && o[4] === obj && o[5] === func) { - self._disconnect(o); - observers.splice(i, 1); - return true; - } - } - } else { - var idx = m.findIdentical(observers, ident); - if (idx >= 0) { - self._disconnect(ident); - observers.splice(idx, 1); - return true; - } - } - return false; - }, - - disconnectAll: function(src/* optional */, sig) { - src = MochiKit.DOM.getElement(src); - var m = MochiKit.Base; - var signals = m.flattenArguments(m.extend(null, arguments, 1)); - var self = MochiKit.Signal; - var disconnect = self._disconnect; - var observers = self._observers; - if (signals.length === 0) { - // disconnect all - for (var i = observers.length - 1; i >= 0; i--) { - var ident = observers[i]; - if (ident[0] === src) { - disconnect(ident); - observers.splice(i, 1); - } - } - } else { - var sigs = {}; - for (var i = 0; i < signals.length; i++) { - sigs[signals[i]] = true; - } - for (var i = observers.length - 1; i >= 0; i--) { - var ident = observers[i]; - if (ident[0] === src && ident[1] in sigs) { - disconnect(ident); - observers.splice(i, 1); - } - } - } - - }, - - signal: function (src, sig) { - var observers = MochiKit.Signal._observers; - src = MochiKit.DOM.getElement(src); - var args = MochiKit.Base.extend(null, arguments, 2); - var errors = []; - for (var i = 0; i < observers.length; i++) { - var ident = observers[i]; - if (ident[0] === src && ident[1] === sig) { - try { - ident[2].apply(src, args); - } catch (e) { - errors.push(e); - } - } - } - if (errors.length == 1) { - throw errors[0]; - } else if (errors.length > 1) { - var e = new Error("Multiple errors thrown in handling 'sig', see errors property"); - e.errors = errors; - throw e; - } - } - -}); - -MochiKit.Signal.EXPORT_OK = []; - -MochiKit.Signal.EXPORT = [ - 'connect', - 'disconnect', - 'signal', - 'disconnectAll' -]; - -MochiKit.Signal.__new__ = function (win) { - var m = MochiKit.Base; - this._document = document; - this._window = win; - - try { - this.connect(window, 'onunload', this._unloadCache); - } catch (e) { - // pass: might not be a browser - } - - this.EXPORT_TAGS = { - ':common': this.EXPORT, - ':all': m.concat(this.EXPORT, this.EXPORT_OK) - }; - - m.nameFunctions(this); -}; - -MochiKit.Signal.__new__(this); - -// -// XXX: Internet Explorer blows -// -if (MochiKit.__export__) { - connect = MochiKit.Signal.connect; - disconnect = MochiKit.Signal.disconnect; - disconnectAll = MochiKit.Signal.disconnectAll; - signal = MochiKit.Signal.signal; -} - -MochiKit.Base._exportSymbols(this, MochiKit.Signal); diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Sortable.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Sortable.js deleted file mode 100644 index de70455ce..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Sortable.js +++ /dev/null @@ -1,531 +0,0 @@ -/*** -Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) - Mochi-ized By Thomas Herve (_firstname_@nimail.org) - -See scriptaculous.js for full license. - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.DragAndDrop'); - dojo.require('MochiKit.Base'); - dojo.require('MochiKit.DOM'); - dojo.require('MochiKit.Iter'); -} - -if (typeof(JSAN) != 'undefined') { - JSAN.use("MochiKit.Base", []); - JSAN.use("MochiKit.DOM", []); - JSAN.use("MochiKit.Iter", []); -} - -try { - if (typeof(MochiKit.Base) == 'undefined' || - typeof(MochiKit.DOM) == 'undefined' || - typeof(MochiKit.Iter) == 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.DragAndDrop depends on MochiKit.Base, MochiKit.DOM and MochiKit.Iter!"; -} - -if (typeof(MochiKit.Sortable) == 'undefined') { - MochiKit.Sortable = {}; -} - -MochiKit.Sortable.NAME = 'MochiKit.Sortable'; -MochiKit.Sortable.VERSION = '1.4'; - -MochiKit.Sortable.__repr__ = function () { - return '[' + this.NAME + ' ' + this.VERSION + ']'; -}; - -MochiKit.Sortable.toString = function () { - return this.__repr__(); -}; - -MochiKit.Sortable.EXPORT = [ - "SortableObserver" -]; - -MochiKit.DragAndDrop.EXPORT_OK = [ - "Sortable" -]; - -MochiKit.Sortable.SortableObserver = function (element, observer) { - this.__init__(element, observer); -}; - -MochiKit.Sortable.SortableObserver.prototype = { - /*** - - Observe events of drag and drop sortables. - - ***/ - __init__: function (element, observer) { - this.element = MochiKit.DOM.getElement(element); - this.observer = observer; - this.lastValue = MochiKit.Sortable.Sortable.serialize(this.element); - }, - - onStart: function () { - this.lastValue = MochiKit.Sortable.Sortable.serialize(this.element); - }, - - onEnd: function () { - MochiKit.Sortable.Sortable.unmark(); - if (this.lastValue != MochiKit.Sortable.Sortable.serialize(this.element)) { - this.observer(this.element) - } - } -}; - -MochiKit.Sortable.Sortable = { - /*** - - Manage sortables. Mainly use the create function to add a sortable. - - ***/ - sortables: {}, - - _findRootElement: function (element) { - while (element.tagName != "BODY") { - if (element.id && MochiKit.Sortable.Sortable.sortables[element.id]) { - return element; - } - element = element.parentNode; - } - }, - - options: function (element) { - element = MochiKit.Sortable.Sortable._findRootElement(MochiKit.DOM.getElement(element)); - if (!element) { - return; - } - return MochiKit.Sortable.Sortable.sortables[element.id]; - }, - - destroy: function (element){ - var s = MochiKit.Sortable.Sortable.options(element); - var b = MochiKit.Base; - var d = MochiKit.DragAndDrop; - - if (s) { - d.Draggables.removeObserver(s.element); - b.map(function (dr) { - d.Droppables.remove(dr); - }, s.droppables); - b.map(function (dr) { - dr.destroy(); - }, s.draggables); - - delete MochiKit.Sortable.Sortable.sortables[s.element.id]; - } - }, - - create: function (element, options) { - element = MochiKit.DOM.getElement(element); - var self = MochiKit.Sortable.Sortable; - options = MochiKit.Base.update({ - element: element, - tag: 'li', // assumes li children, override with tag: 'tagname' - dropOnEmpty: false, - tree: false, - treeTag: 'ul', - overlap: 'vertical', // one of 'vertical', 'horizontal' - constraint: 'vertical', // one of 'vertical', 'horizontal', false - // also takes array of elements (or ids); or false - containment: [element], - handle: false, // or a CSS class - only: false, - hoverclass: null, - ghosting: false, - scroll: false, - scrollSensitivity: 20, - scrollSpeed: 15, - format: /^[^_]*_(.*)$/, - onChange: MochiKit.Base.noop, - onUpdate: MochiKit.Base.noop, - accept: null - }, options); - - // clear any old sortable with same element - self.destroy(element); - - // build options for the draggables - var options_for_draggable = { - revert: true, - ghosting: options.ghosting, - scroll: options.scroll, - scrollSensitivity: options.scrollSensitivity, - scrollSpeed: options.scrollSpeed, - constraint: options.constraint, - handle: options.handle - }; - - if (options.starteffect) { - options_for_draggable.starteffect = options.starteffect; - } - - if (options.reverteffect) { - options_for_draggable.reverteffect = options.reverteffect; - } else if (options.ghosting) { - options_for_draggable.reverteffect = function (innerelement) { - innerelement.style.top = 0; - innerelement.style.left = 0; - }; - } - - if (options.endeffect) { - options_for_draggable.endeffect = options.endeffect; - } - - if (options.zindex) { - options_for_draggable.zindex = options.zindex; - } - - // build options for the droppables - var options_for_droppable = { - overlap: options.overlap, - containment: options.containment, - hoverclass: options.hoverclass, - onhover: self.onHover, - tree: options.tree, - accept: options.accept - } - - var options_for_tree = { - onhover: self.onEmptyHover, - overlap: options.overlap, - containment: options.containment, - hoverclass: options.hoverclass, - accept: options.accept - } - - // fix for gecko engine - MochiKit.DOM.removeEmptyTextNodes(element); - - options.draggables = []; - options.droppables = []; - - // drop on empty handling - if (options.dropOnEmpty || options.tree) { - new MochiKit.DragAndDrop.Droppable(element, options_for_tree); - options.droppables.push(element); - } - MochiKit.Base.map(function (e) { - // handles are per-draggable - var handle = options.handle ? - MochiKit.DOM.getFirstElementByTagAndClassName(null, - options.handle, e) : e; - options.draggables.push( - new MochiKit.DragAndDrop.Draggable(e, - MochiKit.Base.update(options_for_draggable, - {handle: handle}))); - new MochiKit.DragAndDrop.Droppable(e, options_for_droppable); - if (options.tree) { - e.treeNode = element; - } - options.droppables.push(e); - }, (self.findElements(element, options) || [])); - - if (options.tree) { - MochiKit.Base.map(function (e) { - new MochiKit.DragAndDrop.Droppable(e, options_for_tree); - e.treeNode = element; - options.droppables.push(e); - }, (self.findTreeElements(element, options) || [])); - } - - // keep reference - self.sortables[element.id] = options; - - // for onupdate - MochiKit.DragAndDrop.Draggables.addObserver( - new MochiKit.Sortable.SortableObserver(element, options.onUpdate)); - }, - - // return all suitable-for-sortable elements in a guaranteed order - findElements: function (element, options) { - return MochiKit.Sortable.Sortable.findChildren( - element, options.only, options.tree ? true : false, options.tag); - }, - - findTreeElements: function (element, options) { - return MochiKit.Sortable.Sortable.findChildren( - element, options.only, options.tree ? true : false, options.treeTag); - }, - - findChildren: function (element, only, recursive, tagName) { - if (!element.hasChildNodes()) { - return null; - } - tagName = tagName.toUpperCase(); - if (only) { - only = MochiKit.Base.flattenArray([only]); - } - var elements = []; - MochiKit.Base.map(function (e) { - if (e.tagName && - e.tagName.toUpperCase() == tagName && - (!only || - MochiKit.Iter.some(only, function (c) { - return MochiKit.DOM.hasElementClass(e, c); - }))) { - elements.push(e); - } - if (recursive) { - var grandchildren = MochiKit.Sortable.Sortable.findChildren(e, only, recursive, tagName); - if (grandchildren && grandchildren.length > 0) { - elements = elements.concat(grandchildren); - } - } - }, element.childNodes); - return elements; - }, - - onHover: function (element, dropon, overlap) { - if (MochiKit.DOM.isParent(dropon, element)) { - return; - } - var self = MochiKit.Sortable.Sortable; - - if (overlap > .33 && overlap < .66 && self.options(dropon).tree) { - return; - } else if (overlap > 0.5) { - self.mark(dropon, 'before'); - if (dropon.previousSibling != element) { - var oldParentNode = element.parentNode; - element.style.visibility = 'hidden'; // fix gecko rendering - dropon.parentNode.insertBefore(element, dropon); - if (dropon.parentNode != oldParentNode) { - self.options(oldParentNode).onChange(element); - } - self.options(dropon.parentNode).onChange(element); - } - } else { - self.mark(dropon, 'after'); - var nextElement = dropon.nextSibling || null; - if (nextElement != element) { - var oldParentNode = element.parentNode; - element.style.visibility = 'hidden'; // fix gecko rendering - dropon.parentNode.insertBefore(element, nextElement); - if (dropon.parentNode != oldParentNode) { - self.options(oldParentNode).onChange(element); - } - self.options(dropon.parentNode).onChange(element); - } - } - }, - - _offsetSize: function (element, type) { - if (type == 'vertical' || type == 'height') { - return element.offsetHeight; - } else { - return element.offsetWidth; - } - }, - - onEmptyHover: function (element, dropon, overlap) { - var oldParentNode = element.parentNode; - var self = MochiKit.Sortable.Sortable; - var droponOptions = self.options(dropon); - - if (!MochiKit.DOM.isParent(dropon, element)) { - var index; - - var children = self.findElements(dropon, {tag: droponOptions.tag, - only: droponOptions.only}); - var child = null; - - if (children) { - var offset = self._offsetSize(dropon, droponOptions.overlap) * (1.0 - overlap); - - for (index = 0; index < children.length; index += 1) { - if (offset - self._offsetSize(children[index], droponOptions.overlap) >= 0) { - offset -= self._offsetSize(children[index], droponOptions.overlap); - } else if (offset - (self._offsetSize (children[index], droponOptions.overlap) / 2) >= 0) { - child = index + 1 < children.length ? children[index + 1] : null; - break; - } else { - child = children[index]; - break; - } - } - } - - dropon.insertBefore(element, child); - - self.options(oldParentNode).onChange(element); - droponOptions.onChange(element); - } - }, - - unmark: function () { - var m = MochiKit.Sortable.Sortable._marker; - if (m) { - MochiKit.Style.hideElement(m); - } - }, - - mark: function (dropon, position) { - // mark on ghosting only - var d = MochiKit.DOM; - var self = MochiKit.Sortable.Sortable; - var sortable = self.options(dropon.parentNode); - if (sortable && !sortable.ghosting) { - return; - } - - if (!self._marker) { - self._marker = d.getElement('dropmarker') || - document.createElement('DIV'); - MochiKit.Style.hideElement(self._marker); - d.addElementClass(self._marker, 'dropmarker'); - self._marker.style.position = 'absolute'; - document.getElementsByTagName('body').item(0).appendChild(self._marker); - } - var offsets = MochiKit.Position.cumulativeOffset(dropon); - self._marker.style.left = offsets.x + 'px'; - self._marker.style.top = offsets.y + 'px'; - - if (position == 'after') { - if (sortable.overlap == 'horizontal') { - self._marker.style.left = (offsets.x + dropon.clientWidth) + 'px'; - } else { - self._marker.style.top = (offsets.y + dropon.clientHeight) + 'px'; - } - } - MochiKit.Style.showElement(self._marker); - }, - - _tree: function (element, options, parent) { - var self = MochiKit.Sortable.Sortable; - var children = self.findElements(element, options) || []; - - for (var i = 0; i < children.length; ++i) { - var match = children[i].id.match(options.format); - - if (!match) { - continue; - } - - var child = { - id: encodeURIComponent(match ? match[1] : null), - element: element, - parent: parent, - children: [], - position: parent.children.length, - container: self._findChildrenElement(children[i], options.treeTag.toUpperCase()) - } - - /* Get the element containing the children and recurse over it */ - if (child.container) { - self._tree(child.container, options, child) - } - - parent.children.push (child); - } - - return parent; - }, - - /* Finds the first element of the given tag type within a parent element. - Used for finding the first LI[ST] within a L[IST]I[TEM].*/ - _findChildrenElement: function (element, containerTag) { - if (element && element.hasChildNodes) { - for (var i = 0; i < element.childNodes.length; ++i) { - if (element.childNodes[i].tagName == containerTag) { - return element.childNodes[i]; - } - } - } - return null; - }, - - tree: function (element, options) { - element = MochiKit.DOM.getElement(element); - var sortableOptions = MochiKit.Sortable.Sortable.options(element); - options = MochiKit.Base.update({ - tag: sortableOptions.tag, - treeTag: sortableOptions.treeTag, - only: sortableOptions.only, - name: element.id, - format: sortableOptions.format - }, options || {}); - - var root = { - id: null, - parent: null, - children: new Array, - container: element, - position: 0 - } - - return MochiKit.Sortable.Sortable._tree(element, options, root); - }, - - setSequence: function (element, newSequence, options) { - var self = MochiKit.Sortable.Sortable; - var b = MochiKit.Base; - element = MochiKit.DOM.getElement(element); - options = b.update(self.options(element), options || {}); - - var nodeMap = {}; - b.map(function (n) { - var m = n.id.match(options.format); - if (m) { - nodeMap[m[1]] = [n, n.parentNode]; - } - n.parentNode.removeChild(n); - }, self.findElements(element, options)); - - b.map(function (ident) { - var n = nodeMap[ident]; - if (n) { - n[1].appendChild(n[0]); - delete nodeMap[ident]; - } - }, newSequence); - }, - - /* Construct a [i] index for a particular node */ - _constructIndex: function (node) { - var index = ''; - do { - if (node.id) { - index = '[' + node.position + ']' + index; - } - } while ((node = node.parent) != null); - return index; - }, - - sequence: function (element, options) { - element = MochiKit.DOM.getElement(element); - var self = MochiKit.Sortable.Sortable; - var options = MochiKit.Base.update(self.options(element), options || {}); - - return MochiKit.Base.map(function (item) { - return item.id.match(options.format) ? item.id.match(options.format)[1] : ''; - }, MochiKit.DOM.getElement(self.findElements(element, options) || [])); - }, - - serialize: function (element, options) { - element = MochiKit.DOM.getElement(element); - var self = MochiKit.Sortable.Sortable; - options = MochiKit.Base.update(self.options(element), options || {}); - var name = encodeURIComponent(options.name || element.id); - - if (options.tree) { - return MochiKit.Base.flattenArray(MochiKit.Base.map(function (item) { - return [name + self._constructIndex(item) + "[id]=" + - encodeURIComponent(item.id)].concat(item.children.map(arguments.callee)); - }, self.tree(element, options).children)).join('&'); - } else { - return MochiKit.Base.map(function (item) { - return name + "[]=" + encodeURIComponent(item); - }, self.sequence(element, options)).join('&'); - } - } -}; - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Style.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Style.js deleted file mode 100644 index e9b798b7d..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Style.js +++ /dev/null @@ -1,374 +0,0 @@ -/*** - -MochiKit.Style 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005-2006 Bob Ippolito, Beau Hartshorne. All rights Reserved. - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.Style'); - dojo.require('MochiKit.Base'); - dojo.require('MochiKit.DOM'); -} -if (typeof(JSAN) != 'undefined') { - JSAN.use('MochiKit.Base', []); -} - -try { - if (typeof(MochiKit.Base) == 'undefined') { - throw ''; - } -} catch (e) { - throw 'MochiKit.Style depends on MochiKit.Base!'; -} - -try { - if (typeof(MochiKit.DOM) == 'undefined') { - throw ''; - } -} catch (e) { - throw 'MochiKit.Style depends on MochiKit.DOM!'; -} - - -if (typeof(MochiKit.Style) == 'undefined') { - MochiKit.Style = {}; -} - -MochiKit.Style.NAME = 'MochiKit.Style'; -MochiKit.Style.VERSION = '1.4'; -MochiKit.Style.__repr__ = function () { - return '[' + this.NAME + ' ' + this.VERSION + ']'; -}; -MochiKit.Style.toString = function () { - return this.__repr__(); -}; - -MochiKit.Style.EXPORT_OK = []; - -MochiKit.Style.EXPORT = [ - 'setOpacity', - 'computedStyle', - 'getElementDimensions', - 'elementDimensions', // deprecated - 'setElementDimensions', - 'getElementPosition', - 'elementPosition', // deprecated - 'setElementPosition', - 'setDisplayForElement', - 'hideElement', - 'showElement', - 'getViewportDimensions', - 'Dimensions', - 'Coordinates' -]; - - -/* - - Dimensions - -*/ -MochiKit.Style.Dimensions = function (w, h) { - this.w = w; - this.h = h; -}; - -MochiKit.Style.Dimensions.prototype.__repr__ = function () { - var repr = MochiKit.Base.repr; - return '{w: ' + repr(this.w) + ', h: ' + repr(this.h) + '}'; -}; - -MochiKit.Style.Dimensions.prototype.toString = function () { - return this.__repr__(); -}; - - -/* - - Coordinates - -*/ -MochiKit.Style.Coordinates = function (x, y) { - this.x = x; - this.y = y; -}; - -MochiKit.Style.Coordinates.prototype.__repr__ = function () { - var repr = MochiKit.Base.repr; - return '{x: ' + repr(this.x) + ', y: ' + repr(this.y) + '}'; -}; - -MochiKit.Style.Coordinates.prototype.toString = function () { - return this.__repr__(); -}; - - -MochiKit.Base.update(MochiKit.Style, { - - computedStyle: function (elem, cssProperty) { - var dom = MochiKit.DOM; - var d = dom._document; - - elem = dom.getElement(elem); - cssProperty = MochiKit.Base.camelize(cssProperty); - - if (!elem || elem == d) { - return undefined; - } - - /* from YUI 0.10.0 */ - if (cssProperty == 'opacity' && elem.filters) { // IE opacity - try { - return elem.filters.item('DXImageTransform.Microsoft.Alpha' - ).opacity / 100; - } catch(e) { - try { - return elem.filters.item('alpha').opacity / 100; - } catch(e) {} - } - } - - if (elem.currentStyle) { - return elem.currentStyle[cssProperty]; - } - if (typeof(d.defaultView) == 'undefined') { - return undefined; - } - if (d.defaultView === null) { - return undefined; - } - var style = d.defaultView.getComputedStyle(elem, null); - if (typeof(style) == 'undefined' || style === null) { - return undefined; - } - - var selectorCase = cssProperty.replace(/([A-Z])/g, '-$1' - ).toLowerCase(); // from dojo.style.toSelectorCase - - return style.getPropertyValue(selectorCase); - }, - - setOpacity: function(elem, o) { - elem = MochiKit.DOM.getElement(elem); - MochiKit.DOM.updateNodeAttributes(elem, {'style': { - 'opacity': o, - '-moz-opacity': o, - '-khtml-opacity': o, - 'filter':' alpha(opacity=' + (o * 100) + ')' - }}); - }, - - /* - - getElementPosition is adapted from YAHOO.util.Dom.getXY v0.9.0. - Copyright: Copyright (c) 2006, Yahoo! Inc. All rights reserved. - License: BSD, http://developer.yahoo.net/yui/license.txt - - */ - getElementPosition: function (elem, /* optional */relativeTo, doc) { - var self = MochiKit.Style; - var dom = MochiKit.DOM; - elem = dom.getElement(elem); - - if (!elem || - (!(elem.x && elem.y) && - (!elem.parentNode == null || - self.computedStyle(elem, 'display') == 'none'))) { - return undefined; - } - - var c = new self.Coordinates(0, 0); - var box = null; - var parent = null; - - var d = doc ? doc : MochiKit.DOM._document; - var de = d.documentElement; - var b = d.body; - - if (!elem.parentNode && elem.x && elem.y) { - /* it's just a MochiKit.Style.Coordinates object */ - c.x += elem.x || 0; - c.y += elem.y || 0; - } else if (elem.getBoundingClientRect) { // IE shortcut - /* - - The IE shortcut can be off by two. We fix it. See: - http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/getboundingclientrect.asp - - This is similar to the method used in - MochiKit.Signal.Event.mouse(). - - */ - box = elem.getBoundingClientRect(); - - c.x += box.left + - (de.scrollLeft || b.scrollLeft) - - (de.clientLeft || 0); - - c.y += box.top + - (de.scrollTop || b.scrollTop) - - (de.clientTop || 0); - - } else if (elem.offsetParent) { - c.x += elem.offsetLeft; - c.y += elem.offsetTop; - parent = elem.offsetParent; - - if (parent != elem) { - while (parent) { - c.x += parent.offsetLeft; - c.y += parent.offsetTop; - parent = parent.offsetParent; - } - } - - /* - - Opera < 9 and old Safari (absolute) incorrectly account for - body offsetTop and offsetLeft. - - */ - var ua = navigator.userAgent.toLowerCase(); - if ((typeof(opera) != 'undefined' && - parseFloat(opera.version()) < 9) || - (ua.indexOf('safari') != -1 && - self.computedStyle(elem, 'position') == 'absolute')) { - - c.x -= b.offsetLeft; - c.y -= b.offsetTop; - - } - } - - if (typeof(relativeTo) != 'undefined') { - relativeTo = arguments.callee(relativeTo); - if (relativeTo) { - c.x -= (relativeTo.x || 0); - c.y -= (relativeTo.y || 0); - } - } - - if (elem.parentNode) { - parent = elem.parentNode; - } else { - parent = null; - } - - while (parent && parent.tagName != 'BODY' && - parent.tagName != 'HTML') { - c.x -= parent.scrollLeft; - c.y -= parent.scrollTop; - if (parent.parentNode) { - parent = parent.parentNode; - } else { - parent = null; - } - } - - return c; - }, - - setElementPosition: function (elem, newPos/* optional */, units) { - elem = MochiKit.DOM.getElement(elem); - if (typeof(units) == 'undefined') { - units = 'px'; - } - MochiKit.DOM.updateNodeAttributes(elem, {'style': { - 'left': newPos.x + units, - 'top': newPos.y + units - }}); - }, - - getElementDimensions: function (elem) { - var self = MochiKit.Style; - var dom = MochiKit.DOM; - if (typeof(elem.w) == 'number' || typeof(elem.h) == 'number') { - return new self.Dimensions(elem.w || 0, elem.h || 0); - } - elem = dom.getElement(elem); - if (!elem) { - return undefined; - } - if (self.computedStyle(elem, 'display') != 'none') { - return new self.Dimensions(elem.offsetWidth || 0, - elem.offsetHeight || 0); - } - var s = elem.style; - var originalVisibility = s.visibility; - var originalPosition = s.position; - s.visibility = 'hidden'; - s.position = 'absolute'; - s.display = ''; - var originalWidth = elem.offsetWidth; - var originalHeight = elem.offsetHeight; - s.display = 'none'; - s.position = originalPosition; - s.visibility = originalVisibility; - return new self.Dimensions(originalWidth, originalHeight); - }, - - setElementDimensions: function (elem, newSize/* optional */, units) { - elem = MochiKit.DOM.getElement(elem); - if (typeof(units) == 'undefined') { - units = 'px'; - } - MochiKit.DOM.updateNodeAttributes(elem, {'style': { - 'width': newSize.w + units, - 'height': newSize.h + units - }}); - }, - - setDisplayForElement: function (display, element/*, ...*/) { - var elements = MochiKit.Base.extend(null, arguments, 1); - var getElement = MochiKit.DOM.getElement; - for (var i = 0; i < elements.length; i++) { - var element = getElement(elements[i]); - if (element) { - element.style.display = display; - } - } - }, - - getViewportDimensions: function() { - var d = new MochiKit.Style.Dimensions(); - - var w = MochiKit.DOM._window; - var b = MochiKit.DOM._document.body; - - if (w.innerWidth) { - d.w = w.innerWidth; - d.h = w.innerHeight; - } else if (b.parentElement.clientWidth) { - d.w = b.parentElement.clientWidth; - d.h = b.parentElement.clientHeight; - } else if (b && b.clientWidth) { - d.w = b.clientWidth; - d.h = b.clientHeight; - } - return d; - }, - - __new__: function () { - var m = MochiKit.Base; - - this.elementPosition = this.getElementPosition; - this.elementDimensions = this.getElementDimensions; - - this.hideElement = m.partial(this.setDisplayForElement, 'none'); - this.showElement = m.partial(this.setDisplayForElement, 'block'); - - this.EXPORT_TAGS = { - ':common': this.EXPORT, - ':all': m.concat(this.EXPORT, this.EXPORT_OK) - }; - - m.nameFunctions(this); - } -}); - -MochiKit.Style.__new__(); -MochiKit.Base._exportSymbols(this, MochiKit.Style); diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Test.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Test.js deleted file mode 100644 index 632356a43..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Test.js +++ /dev/null @@ -1,181 +0,0 @@ -/*** - -MochiKit.Test 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito. All rights Reserved. - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.Test'); - dojo.require('MochiKit.Base'); -} - -if (typeof(JSAN) != 'undefined') { - JSAN.use("MochiKit.Base", []); -} - -try { - if (typeof(MochiKit.Base) == 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.Test depends on MochiKit.Base!"; -} - -if (typeof(MochiKit.Test) == 'undefined') { - MochiKit.Test = {}; -} - -MochiKit.Test.NAME = "MochiKit.Test"; -MochiKit.Test.VERSION = "1.4"; -MochiKit.Test.__repr__ = function () { - return "[" + this.NAME + " " + this.VERSION + "]"; -}; - -MochiKit.Test.toString = function () { - return this.__repr__(); -}; - - -MochiKit.Test.EXPORT = ["runTests"]; -MochiKit.Test.EXPORT_OK = []; - -MochiKit.Test.runTests = function (obj) { - if (typeof(obj) == "string") { - obj = JSAN.use(obj); - } - var suite = new MochiKit.Test.Suite(); - suite.run(obj); -}; - -MochiKit.Test.Suite = function () { - this.testIndex = 0; - MochiKit.Base.bindMethods(this); -}; - -MochiKit.Test.Suite.prototype = { - run: function (obj) { - try { - obj(this); - } catch (e) { - this.traceback(e); - } - }, - traceback: function (e) { - var items = MochiKit.Iter.sorted(MochiKit.Base.items(e)); - print("not ok " + this.testIndex + " - Error thrown"); - for (var i = 0; i < items.length; i++) { - var kv = items[i]; - if (kv[0] == "stack") { - kv[1] = kv[1].split(/\n/)[0]; - } - this.print("# " + kv.join(": ")); - } - }, - print: function (s) { - print(s); - }, - is: function (got, expected, /* optional */message) { - var res = 1; - var msg = null; - try { - res = MochiKit.Base.compare(got, expected); - } catch (e) { - msg = "Can not compare " + typeof(got) + ":" + typeof(expected); - } - if (res) { - msg = "Expected value did not compare equal"; - } - if (!res) { - return this.testResult(true, message); - } - return this.testResult(false, message, - [[msg], ["got:", got], ["expected:", expected]]); - }, - - testResult: function (pass, msg, failures) { - this.testIndex += 1; - if (pass) { - this.print("ok " + this.testIndex + " - " + msg); - return; - } - this.print("not ok " + this.testIndex + " - " + msg); - if (failures) { - for (var i = 0; i < failures.length; i++) { - this.print("# " + failures[i].join(" ")); - } - } - }, - - isDeeply: function (got, expected, /* optional */message) { - var m = MochiKit.Base; - var res = 1; - try { - res = m.compare(got, expected); - } catch (e) { - // pass - } - if (res === 0) { - return this.ok(true, message); - } - var gk = m.keys(got); - var ek = m.keys(expected); - gk.sort(); - ek.sort(); - if (m.compare(gk, ek)) { - // differing keys - var cmp = {}; - var i; - for (i = 0; i < gk.length; i++) { - cmp[gk[i]] = "got"; - } - for (i = 0; i < ek.length; i++) { - if (ek[i] in cmp) { - delete cmp[ek[i]]; - } else { - cmp[ek[i]] = "expected"; - } - } - var diffkeys = m.keys(cmp); - diffkeys.sort(); - var gotkeys = []; - var expkeys = []; - while (diffkeys.length) { - var k = diffkeys.shift(); - if (k in Object.prototype) { - continue; - } - (cmp[k] == "got" ? gotkeys : expkeys).push(k); - } - - - } - - return this.testResult((!res), msg, - (msg ? [["got:", got], ["expected:", expected]] : undefined) - ); - }, - - ok: function (res, message) { - return this.testResult(res, message); - } -}; - -MochiKit.Test.__new__ = function () { - var m = MochiKit.Base; - - this.EXPORT_TAGS = { - ":common": this.EXPORT, - ":all": m.concat(this.EXPORT, this.EXPORT_OK) - }; - - m.nameFunctions(this); - -}; - -MochiKit.Test.__new__(); - -MochiKit.Base._exportSymbols(this, MochiKit.Test); diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Visual.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Visual.js deleted file mode 100644 index 64b55a1b2..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/Visual.js +++ /dev/null @@ -1,1735 +0,0 @@ -/*** - -MochiKit.Visual 1.4 - -See for documentation, downloads, license, etc. - -(c) 2005 Bob Ippolito and others. All rights Reserved. - -***/ - -if (typeof(dojo) != 'undefined') { - dojo.provide('MochiKit.Visual'); - dojo.require('MochiKit.Base'); - dojo.require('MochiKit.DOM'); - dojo.require('MochiKit.Style'); - dojo.require('MochiKit.Color'); - dojo.require('MochiKit.Iter'); -} - -if (typeof(JSAN) != 'undefined') { - JSAN.use("MochiKit.Base", []); - JSAN.use("MochiKit.DOM", []); - JSAN.use("MochiKit.Style", []); - JSAN.use("MochiKit.Color", []); - JSAN.use("MochiKit.Iter", []); -} - -try { - if (typeof(MochiKit.Base) === 'undefined' || - typeof(MochiKit.DOM) === 'undefined' || - typeof(MochiKit.Style) === 'undefined' || - typeof(MochiKit.Color) === 'undefined' || - typeof(MochiKit.Iter) === 'undefined') { - throw ""; - } -} catch (e) { - throw "MochiKit.Visual depends on MochiKit.Base, MochiKit.DOM, MochiKit.Style, MochiKit.Color and MochiKit.Iter!"; -} - -if (typeof(MochiKit.Visual) == "undefined") { - MochiKit.Visual = {}; -} - -MochiKit.Visual.NAME = "MochiKit.Visual"; -MochiKit.Visual.VERSION = "1.4"; - -MochiKit.Visual.__repr__ = function () { - return "[" + this.NAME + " " + this.VERSION + "]"; -}; - -MochiKit.Visual.toString = function () { - return this.__repr__(); -}; - -//MochiKit.Visual._RoundCorners = function (e, options) { -// e = MochiKit.DOM.getElement(e); -// this._setOptions(options); -// if (this.options.__unstable__wrapElement) { -// e = this._doWrap(e); -// } -// -// var color = this.options.color; -// var C = MochiKit.Color.Color; -// if (this.options.color === "fromElement") { -// color = C.fromBackground(e); -// } else if (!(color instanceof C)) { -// color = C.fromString(color); -// } -// this.isTransparent = (color.asRGB().a <= 0); -// -// var bgColor = this.options.bgColor; -// if (this.options.bgColor === "fromParent") { -// bgColor = C.fromBackground(e.offsetParent); -// } else if (!(bgColor instanceof C)) { -// bgColor = C.fromString(bgColor); -// } -// -// this._roundCornersImpl(e, color, bgColor); -//}; -// -//MochiKit.Visual._RoundCorners.prototype = { -// _doWrap: function (e) { -// var parent = e.parentNode; -// var doc = MochiKit.DOM.currentDocument(); -// if (typeof(doc.defaultView) === "undefined" -// || doc.defaultView === null) { -// return e; -// } -// var style = doc.defaultView.getComputedStyle(e, null); -// if (typeof(style) === "undefined" || style === null) { -// return e; -// } -// var wrapper = MochiKit.DOM.DIV({"style": { -// display: "block", -// // convert padding to margin -// marginTop: style.getPropertyValue("padding-top"), -// marginRight: style.getPropertyValue("padding-right"), -// marginBottom: style.getPropertyValue("padding-bottom"), -// marginLeft: style.getPropertyValue("padding-left"), -// // remove padding so the rounding looks right -// padding: "0px" -// /* -// paddingRight: "0px", -// paddingLeft: "0px" -// */ -// }}); -// wrapper.innerHTML = e.innerHTML; -// e.innerHTML = ""; -// e.appendChild(wrapper); -// return e; -// }, -// -// _roundCornersImpl: function (e, color, bgColor) { -// if (this.options.border) { -// this._renderBorder(e, bgColor); -// } -// if (this._isTopRounded()) { -// this._roundTopCorners(e, color, bgColor); -// } -// if (this._isBottomRounded()) { -// this._roundBottomCorners(e, color, bgColor); -// } -// }, -// -// _renderBorder: function (el, bgColor) { -// var borderValue = "1px solid " + this._borderColor(bgColor); -// var borderL = "border-left: " + borderValue; -// var borderR = "border-right: " + borderValue; -// var style = "style='" + borderL + ";" + borderR + "'"; -// el.innerHTML = "

    " + el.innerHTML + "
    "; -// }, -// -// _roundTopCorners: function (el, color, bgColor) { -// var corner = this._createCorner(bgColor); -// for (var i = 0; i < this.options.numSlices; i++) { -// corner.appendChild( -// this._createCornerSlice(color, bgColor, i, "top") -// ); -// } -// el.style.paddingTop = 0; -// el.insertBefore(corner, el.firstChild); -// }, -// -// _roundBottomCorners: function (el, color, bgColor) { -// var corner = this._createCorner(bgColor); -// for (var i = (this.options.numSlices - 1); i >= 0; i--) { -// corner.appendChild( -// this._createCornerSlice(color, bgColor, i, "bottom") -// ); -// } -// el.style.paddingBottom = 0; -// el.appendChild(corner); -// }, -// -// _createCorner: function (bgColor) { -// var dom = MochiKit.DOM; -// return dom.DIV({style: {backgroundColor: bgColor.toString()}}); -// }, -// -// _createCornerSlice: function (color, bgColor, n, position) { -// var slice = MochiKit.DOM.SPAN(); -// -// var inStyle = slice.style; -// inStyle.backgroundColor = color.toString(); -// inStyle.display = "block"; -// inStyle.height = "1px"; -// inStyle.overflow = "hidden"; -// inStyle.fontSize = "1px"; -// -// var borderColor = this._borderColor(color, bgColor); -// if (this.options.border && n === 0) { -// inStyle.borderTopStyle = "solid"; -// inStyle.borderTopWidth = "1px"; -// inStyle.borderLeftWidth = "0px"; -// inStyle.borderRightWidth = "0px"; -// inStyle.borderBottomWidth = "0px"; -// // assumes css compliant box model -// inStyle.height = "0px"; -// inStyle.borderColor = borderColor.toString(); -// } else if (borderColor) { -// inStyle.borderColor = borderColor.toString(); -// inStyle.borderStyle = "solid"; -// inStyle.borderWidth = "0px 1px"; -// } -// -// if (!this.options.compact && (n == (this.options.numSlices - 1))) { -// inStyle.height = "2px"; -// } -// -// this._setMargin(slice, n, position); -// this._setBorder(slice, n, position); -// -// return slice; -// }, -// -// _setOptions: function (options) { -// this.options = { -// corners: "all", -// color: "fromElement", -// bgColor: "fromParent", -// blend: true, -// border: false, -// compact: false, -// __unstable__wrapElement: false -// }; -// MochiKit.Base.update(this.options, options); -// -// this.options.numSlices = (this.options.compact ? 2 : 4); -// }, -// -// _whichSideTop: function () { -// var corners = this.options.corners; -// if (this._hasString(corners, "all", "top")) { -// return ""; -// } -// -// var has_tl = (corners.indexOf("tl") != -1); -// var has_tr = (corners.indexOf("tr") != -1); -// if (has_tl && has_tr) { -// return ""; -// } -// if (has_tl) { -// return "left"; -// } -// if (has_tr) { -// return "right"; -// } -// return ""; -// }, -// -// _whichSideBottom: function () { -// var corners = this.options.corners; -// if (this._hasString(corners, "all", "bottom")) { -// return ""; -// } -// -// var has_bl = (corners.indexOf('bl') != -1); -// var has_br = (corners.indexOf('br') != -1); -// if (has_bl && has_br) { -// return ""; -// } -// if (has_bl) { -// return "left"; -// } -// if (has_br) { -// return "right"; -// } -// return ""; -// }, -// -// _borderColor: function (color, bgColor) { -// if (color == "transparent") { -// return bgColor; -// } else if (this.options.border) { -// return this.options.border; -// } else if (this.options.blend) { -// return bgColor.blendedColor(color); -// } -// return ""; -// }, -// -// -// _setMargin: function (el, n, corners) { -// var marginSize = this._marginSize(n) + "px"; -// var whichSide = ( -// corners == "top" ? this._whichSideTop() : this._whichSideBottom() -// ); -// var style = el.style; -// -// if (whichSide == "left") { -// style.marginLeft = marginSize; -// style.marginRight = "0px"; -// } else if (whichSide == "right") { -// style.marginRight = marginSize; -// style.marginLeft = "0px"; -// } else { -// style.marginLeft = marginSize; -// style.marginRight = marginSize; -// } -// }, -// -// _setBorder: function (el, n, corners) { -// var borderSize = this._borderSize(n) + "px"; -// var whichSide = ( -// corners == "top" ? this._whichSideTop() : this._whichSideBottom() -// ); -// -// var style = el.style; -// if (whichSide == "left") { -// style.borderLeftWidth = borderSize; -// style.borderRightWidth = "0px"; -// } else if (whichSide == "right") { -// style.borderRightWidth = borderSize; -// style.borderLeftWidth = "0px"; -// } else { -// style.borderLeftWidth = borderSize; -// style.borderRightWidth = borderSize; -// } -// }, -// -// _marginSize: function (n) { -// if (this.isTransparent) { -// return 0; -// } -// -// var o = this.options; -// if (o.compact && o.blend) { -// var smBlendedMarginSizes = [1, 0]; -// return smBlendedMarginSizes[n]; -// } else if (o.compact) { -// var compactMarginSizes = [2, 1]; -// return compactMarginSizes[n]; -// } else if (o.blend) { -// var blendedMarginSizes = [3, 2, 1, 0]; -// return blendedMarginSizes[n]; -// } else { -// var marginSizes = [5, 3, 2, 1]; -// return marginSizes[n]; -// } -// }, -// -// _borderSize: function (n) { -// var o = this.options; -// var borderSizes; -// if (o.compact && (o.blend || this.isTransparent)) { -// return 1; -// } else if (o.compact) { -// borderSizes = [1, 0]; -// } else if (o.blend) { -// borderSizes = [2, 1, 1, 1]; -// } else if (o.border) { -// borderSizes = [0, 2, 0, 0]; -// } else if (this.isTransparent) { -// borderSizes = [5, 3, 2, 1]; -// } else { -// return 0; -// } -// return borderSizes[n]; -// }, -// -// _hasString: function (str) { -// for (var i = 1; i< arguments.length; i++) { -// if (str.indexOf(arguments[i]) != -1) { -// return true; -// } -// } -// return false; -// }, -// -// _isTopRounded: function () { -// return this._hasString(this.options.corners, -// "all", "top", "tl", "tr" -// ); -// }, -// -// _isBottomRounded: function () { -// return this._hasString(this.options.corners, -// "all", "bottom", "bl", "br" -// ); -// }, -// -// _hasSingleTextChild: function (el) { -// return (el.childNodes.length == 1 && el.childNodes[0].nodeType == 3); -// } -//}; -// -//MochiKit.Visual.roundElement = function (e, options) { -// new MochiKit.Visual._RoundCorners(e, options); -//}; - -//MochiKit.Visual.roundClass = function (tagName, className, options) { -// var elements = MochiKit.DOM.getElementsByTagAndClassName( -// tagName, className -// ); -// for (var i = 0; i < elements.length; i++) { -// MochiKit.Visual.roundElement(elements[i], options); -// } -//}; -// -//MochiKit.Visual.tagifyText = function (element, /* optional */tagifyStyle) { -// /*** -// -// Change a node text to character in tags. -// -// @param tagifyStyle: the style to apply to character nodes, default to -// 'position: relative'. -// -// ***/ -// var tagifyStyle = tagifyStyle || 'position:relative'; -// if (MochiKit.Base.isIE()) { -// tagifyStyle += ';zoom:1'; -// } -// element = MochiKit.DOM.getElement(element); -// var fe = MochiKit.Iter.forEach; -// fe(element.childNodes, function (child) { -// if (child.nodeType == 3) { -// fe(child.nodeValue.split(''), function (character) { -// element.insertBefore( -// MochiKit.DOM.SPAN({style: tagifyStyle}, -// character == ' ' ? String.fromCharCode(160) : character), child); -// }); -// MochiKit.DOM.removeElement(child); -// } -// }); -//}; - -MochiKit.Visual.forceRerendering = function (element) { - try { - element = MochiKit.DOM.getElement(element); - var n = document.createTextNode(' '); - element.appendChild(n); - element.removeChild(n); - } catch(e) { - } -}; -// -//MochiKit.Visual.multiple = function (elements, effect, /* optional */options) { -// /*** -// -// Launch the same effect subsequently on given elements. -// -// ***/ -// options = MochiKit.Base.update({ -// speed: 0.1, delay: 0.0 -// }, options || {}); -// var masterDelay = options.delay; -// var index = 0; -// MochiKit.Iter.forEach(elements, function (innerelement) { -// options.delay = index * options.speed + masterDelay; -// new effect(innerelement, options); -// index += 1; -// }); -//}; - -MochiKit.Visual.PAIRS = { - 'slide': ['slideDown', 'slideUp'], - 'blind': ['blindDown', 'blindUp'], - 'appear': ['appear', 'fade'], - 'size': ['grow', 'shrink'] -}; - -//MochiKit.Visual.toggle = function (element, /* optional */effect, /* optional */options) { -// /*** -// -// Toggle an item between two state depending of its visibility, making -// a effect between these states. Default effect is 'appear', can be -// 'slide' or 'blind'. -// -// ***/ -// element = MochiKit.DOM.getElement(element); -// effect = (effect || 'appear').toLowerCase(); -// options = MochiKit.Base.update({ -// queue: {position: 'end', scope: (element.id || 'global'), limit: 1} -// }, options || {}); -// var v = MochiKit.Visual; -// v[MochiKit.DOM.isVisible(element) ? -// v.PAIRS[effect][1] : v.PAIRS[effect][0]](element, options); -//}; - -/*** - -Transitions: define functions calculating variations depending of a position. - -***/ - -MochiKit.Visual.Transitions = {} - -MochiKit.Visual.Transitions.linear = function (pos) { - return pos; -}; - -MochiKit.Visual.Transitions.sinoidal = function (pos) { - return (-Math.cos(pos*Math.PI)/2) + 0.5; -}; - -MochiKit.Visual.Transitions.reverse = function (pos) { - return 1 - pos; -}; - -MochiKit.Visual.Transitions.flicker = function (pos) { - return ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4; -}; - -MochiKit.Visual.Transitions.wobble = function (pos) { - return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5; -}; - -MochiKit.Visual.Transitions.pulse = function (pos) { - return (Math.floor(pos*10) % 2 == 0 ? - (pos*10 - Math.floor(pos*10)) : 1 - (pos*10 - Math.floor(pos*10))); -}; - -MochiKit.Visual.Transitions.none = function (pos) { - return 0; -}; - -MochiKit.Visual.Transitions.full = function (pos) { - return 1; -}; - -/*** - -Core effects - -***/ - -MochiKit.Visual.ScopedQueue = function () { - this.__init__(); -}; - -MochiKit.Base.update(MochiKit.Visual.ScopedQueue.prototype, { - __init__: function () { - this.effects = []; - this.interval = null; - }, - - add: function (effect) { - var timestamp = new Date().getTime(); - - var position = (typeof(effect.options.queue) == 'string') ? - effect.options.queue : effect.options.queue.position; - - var fe = MochiKit.Iter.forEach; - switch (position) { - case 'front': - // move unstarted effects after this effect - fe(this.effects, function (e) { - if (e.state == 'idle') { - e.startOn += effect.finishOn; - e.finishOn += effect.finishOn; - } - }); - break; - case 'end': - var finish; - // start effect after last queued effect has finished - fe(this.effects, function (e) { - var i = e.finishOn; - if (i >= (finish || i)) { - finish = i; - } - }); - timestamp = finish || timestamp; - break; - } - - effect.startOn += timestamp; - effect.finishOn += timestamp; - if (!effect.options.queue.limit || - this.effects.length < effect.options.queue.limit) { - this.effects.push(effect); - } - - if (!this.interval) { - this.interval = setInterval(MochiKit.Base.bind(this.loop, this), - 40); - } - }, - - remove: function (effect) { - this.effects = MochiKit.Base.filter(function (e) { - return e != effect; - }, this.effects); - if (this.effects.length == 0) { - clearInterval(this.interval); - this.interval = null; - } - }, - - loop: function () { - var timePos = new Date().getTime(); - MochiKit.Iter.forEach(this.effects, function (effect) { - effect.loop(timePos); - }); - } -}); - -MochiKit.Visual.Queues = { - instances: {}, - - get: function (queueName) { - if (typeof(queueName) != 'string') { - return queueName; - } - - if (!this.instances[queueName]) { - this.instances[queueName] = new MochiKit.Visual.ScopedQueue(); - } - return this.instances[queueName]; - } -}; - -MochiKit.Visual.Queue = MochiKit.Visual.Queues.get('global'); - -MochiKit.Visual.DefaultOptions = { - transition: MochiKit.Visual.Transitions.sinoidal, - duration: 1.0, // seconds - fps: 25.0, // max. 25fps due to MochiKit.Visual.Queue implementation - sync: false, // true for combining - from: 0.0, - to: 1.0, - delay: 0.0, - queue: 'parallel' -}; - -MochiKit.Visual.Base = function () {}; - -MochiKit.Visual.Base.prototype = { - /*** - - Basic class for all Effects. Define a looping mechanism called for each step - of an effect. Don't instantiate it, only subclass it. - - ***/ - - __class__ : MochiKit.Visual.Base, - - start: function (options) { - var v = MochiKit.Visual; - this.options = MochiKit.Base.setdefault(options || {}, - v.DefaultOptions); - this.currentFrame = 0; - this.state = 'idle'; - this.startOn = this.options.delay*1000; - this.finishOn = this.startOn + (this.options.duration*1000); - this.event('beforeStart'); - if (!this.options.sync) { - v.Queues.get(typeof(this.options.queue) == 'string' ? - 'global' : this.options.queue.scope).add(this); - } - }, - - loop: function (timePos) { - if (timePos >= this.startOn) { - if (timePos >= this.finishOn) { - this.render(1.0); - this.cancel(); - this.event('beforeFinish'); - this.finish(); - this.event('afterFinish'); - return; - } - var pos = (timePos - this.startOn) / (this.finishOn - this.startOn); - var frame = - Math.round(pos * this.options.fps * this.options.duration); - if (frame > this.currentFrame) { - this.render(pos); - this.currentFrame = frame; - } - } - }, - - render: function (pos) { - if (this.state == 'idle') { - this.state = 'running'; - this.event('beforeSetup'); - this.setup(); - this.event('afterSetup'); - } - if (this.state == 'running') { - if (this.options.transition) { - pos = this.options.transition(pos); - } - pos *= (this.options.to - this.options.from); - pos += this.options.from; - this.event('beforeUpdate'); - this.update(pos); - this.event('afterUpdate'); - } - }, - - cancel: function () { - if (!this.options.sync) { - MochiKit.Visual.Queues.get(typeof(this.options.queue) == 'string' ? - 'global' : this.options.queue.scope).remove(this); - } - this.state = 'finished'; - }, - - setup: function () { - }, - - finish: function () { - }, - - update: function (position) { - }, - - event: function (eventName) { - if (this.options[eventName + 'Internal']) { - this.options[eventName + 'Internal'](this); - } - if (this.options[eventName]) { - this.options[eventName](this); - } - }, - - repr: function () { - return '[' + this.__class__.NAME + ', options:' + - MochiKit.Base.repr(this.options) + ']'; - } -} - -//MochiKit.Visual.Parallel = function (effects, options) { -// this.__init__(effects, options); -//}; -// -//MochiKit.Visual.Parallel.prototype = new MochiKit.Visual.Base(); -// -//MochiKit.Base.update(MochiKit.Visual.Parallel.prototype, { -// /*** -// -// Run multiple effects at the same time. -// -// ***/ -// __init__: function (effects, options) { -// this.effects = effects || []; -// this.start(options); -// }, -// -// update: function (position) { -// MochiKit.Iter.forEach(this.effects, function (effect) { -// effect.render(position); -// }); -// }, -// -// finish: function () { -// MochiKit.Iter.forEach(this.effects, function (effect) { -// effect.render(1.0); -// effect.cancel(); -// effect.event('beforeFinish'); -// effect.finish(); -// effect.event('afterFinish'); -// }); -// } -//}); - -MochiKit.Visual.Opacity = function (element, options) { - this.__init__(element, options); -}; - -MochiKit.Visual.Opacity.prototype = new MochiKit.Visual.Base(); - -MochiKit.Base.update(MochiKit.Visual.Opacity.prototype, { - /*** - - Change the opacity of an element. - - @param options: 'from' and 'to' change the starting and ending opacities. - Must be between 0.0 and 1.0. Default to current opacity and 1.0. - - ***/ - __init__: function (element, /* optional */options) { - var b = MochiKit.Base; - var d = MochiKit.DOM; - this.element = d.getElement(element); - // make this work on IE on elements without 'layout' - if (b.isIE() && (!this.element.currentStyle.hasLayout)) { - d.setStyle(this.element, {zoom: 1}); - } - options = b.update({ - from: d.getOpacity(this.element) || 0.0, - to: 1.0 - }, options || {}); - this.start(options); - }, - - update: function (position) { - MochiKit.DOM.setOpacity(this.element, position); - } -}); - -MochiKit.Visual.Move = function (element, options) { - this.__init__(element, options); -}; - -MochiKit.Visual.Move.prototype = new MochiKit.Visual.Base(); - -MochiKit.Base.update(MochiKit.Visual.Move.prototype, { - /*** - - Move an element between its current position to a defined position - - @param options: 'x' and 'y' for final positions, default to 0, 0. - - ***/ - __init__: function (element, /* optional */options) { - this.element = MochiKit.DOM.getElement(element); - options = MochiKit.Base.update({ - x: 0, - y: 0, - mode: 'relative' - }, options || {}); - this.start(options); - }, - - setup: function () { - var d = MochiKit.DOM; - // Bug in Opera: Opera returns the 'real' position of a static element - // or relative element that does not have top/left explicitly set. - // ==> Always set top and left for position relative elements in your - // stylesheets (to 0 if you do not need them) - d.makePositioned(this.element); - - var s = this.element.style; - var originalVisibility = s.visibility; - var originalDisplay = s.display; - if (originalDisplay == 'none') { - s.visibility = 'hidden'; - s.display = ''; - } - - this.originalLeft = parseFloat(d.getStyle(this.element, 'left') || '0'); - this.originalTop = parseFloat(d.getStyle(this.element, 'top') || '0'); - - if (this.options.mode == 'absolute') { - // absolute movement, so we need to calc deltaX and deltaY - this.options.x -= this.originalLeft; - this.options.y -= this.originalTop; - } - if (originalDisplay == 'none') { - s.visibility = originalVisibility; - s.display = originalDisplay; - } - }, - - update: function (position) { - MochiKit.DOM.setStyle(this.element, { - left: Math.round(this.options.x * position + this.originalLeft) + 'px', - top: Math.round(this.options.y * position + this.originalTop) + 'px' - }); - } -}); - -MochiKit.Visual.Scale = function (element, percent, options) { - this.__init__(element, percent, options); -}; - -MochiKit.Visual.Scale.prototype = new MochiKit.Visual.Base(); - -MochiKit.Base.update(MochiKit.Visual.Scale.prototype, { - /*** - - Change the size of an element. - - @param percent: final_size = percent*original_size - - @param options: several options changing scale behaviour - - ***/ - __init__: function (element, percent, /* optional */options) { - this.element = MochiKit.DOM.getElement(element) - options = MochiKit.Base.update({ - scaleX: true, - scaleY: true, - scaleContent: true, - scaleFromCenter: false, - scaleMode: 'box', // 'box' or 'contents' or {} with provided values - scaleFrom: 100.0, - scaleTo: percent - }, options || {}); - this.start(options); - }, - - setup: function () { - this.restoreAfterFinish = this.options.restoreAfterFinish || false; - this.elementPositioning = MochiKit.DOM.getStyle(this.element, - 'position'); - - var fe = MochiKit.Iter.forEach; - var b = MochiKit.Base.bind; - this.originalStyle = {}; - fe(['top', 'left', 'width', 'height', 'fontSize'], - b(function (k) { - this.originalStyle[k] = this.element.style[k]; - }, this)); - - this.originalTop = this.element.offsetTop; - this.originalLeft = this.element.offsetLeft; - - var fontSize = MochiKit.DOM.getStyle(this.element, - 'font-size') || '100%'; - fe(['em', 'px', '%'], - b(function (fontSizeType) { - if (fontSize.indexOf(fontSizeType) > 0) { - this.fontSize = parseFloat(fontSize); - this.fontSizeType = fontSizeType; - } - }, this)); - - this.factor = (this.options.scaleTo - this.options.scaleFrom)/100; - - if (/^content/.test(this.options.scaleMode)) { - this.dims = [this.element.scrollHeight, this.element.scrollWidth]; - } else if (this.options.scaleMode == 'box') { - this.dims = [this.element.offsetHeight, this.element.offsetWidth]; - } else { - this.dims = [this.options.scaleMode.originalHeight, - this.options.scaleMode.originalWidth]; - } - }, - - update: function (position) { - var currentScale = (this.options.scaleFrom/100.0) + - (this.factor * position); - if (this.options.scaleContent && this.fontSize) { - MochiKit.DOM.setStyle(this.element, { - fontSize: this.fontSize * currentScale + this.fontSizeType - }); - } - this.setDimensions(this.dims[0] * currentScale, - this.dims[1] * currentScale); - }, - - finish: function () { - if (this.restoreAfterFinish) { - MochiKit.DOM.setStyle(this.element, this.originalStyle); - } - }, - - setDimensions: function (height, width) { - var d = {}; - if (this.options.scaleX) { - d.width = Math.round(width) + 'px'; - } - if (this.options.scaleY) { - d.height = Math.round(height) + 'px'; - } - if (this.options.scaleFromCenter) { - var topd = (height - this.dims[0])/2; - var leftd = (width - this.dims[1])/2; - if (this.elementPositioning == 'absolute') { - if (this.options.scaleY) { - d.top = this.originalTop - topd + 'px'; - } - if (this.options.scaleX) { - d.left = this.originalLeft - leftd + 'px'; - } - } else { - if (this.options.scaleY) { - d.top = -topd + 'px'; - } - if (this.options.scaleX) { - d.left = -leftd + 'px'; - } - } - } - MochiKit.DOM.setStyle(this.element, d); - } -}); - -//MochiKit.Visual.Highlight = function (element, options) { -// this.__init__(element, options); -//}; -// -//MochiKit.Visual.Highlight.prototype = new MochiKit.Visual.Base(); -// -//MochiKit.Base.update(MochiKit.Visual.Highlight.prototype, { -// /*** -// -// Highlight an item of the page. -// -// @param options: 'startcolor' for choosing highlighting color, default -// to '#ffff99'. -// -// ***/ -// __init__: function (element, /* optional */options) { -// this.element = MochiKit.DOM.getElement(element); -// options = MochiKit.Base.update({ -// startcolor: '#ffff99' -// }, options || {}); -// this.start(options); -// }, -// -// setup: function () { -// var d = MochiKit.DOM; -// var b = MochiKit.Base; -// // Prevent executing on elements not in the layout flow -// if (d.getStyle(this.element, 'display') == 'none') { -// this.cancel(); -// return; -// } -// // Disable background image during the effect -// this.oldStyle = { -// backgroundImage: d.getStyle(this.element, 'background-image') -// }; -// d.setStyle(this.element, { -// backgroundImage: 'none' -// }); -// -// if (!this.options.endcolor) { -// this.options.endcolor = -// MochiKit.Color.Color.fromBackground(this.element).toHexString(); -// } -// if (!this.options.restorecolor) { -// this.options.restorecolor = d.getStyle(this.element, -// 'background-color'); -// } -// // init color calculations -// this._base = b.map(b.bind(function (i) { -// return parseInt( -// this.options.startcolor.slice(i*2 + 1, i*2 + 3), 16); -// }, this), [0, 1, 2]); -// this._delta = b.map(b.bind(function (i) { -// return parseInt(this.options.endcolor.slice(i*2 + 1, i*2 + 3), 16) -// - this._base[i]; -// }, this), [0, 1, 2]); -// }, -// -// update: function (position) { -// var m = '#'; -// MochiKit.Iter.forEach([0, 1, 2], MochiKit.Base.bind(function (i) { -// m += MochiKit.Color.toColorPart(Math.round(this._base[i] + -// this._delta[i]*position)); -// }, this)); -// MochiKit.DOM.setStyle(this.element, { -// backgroundColor: m -// }); -// }, -// -// finish: function () { -// MochiKit.DOM.setStyle(this.element, -// MochiKit.Base.update(this.oldStyle, { -// backgroundColor: this.options.endcolor -// })); -// } -//}); - -//MochiKit.Visual.ScrollTo = function (element, options) { -// this.__init__(element, options); -//}; -// -//MochiKit.Visual.ScrollTo.prototype = new MochiKit.Visual.Base(); -// -//MochiKit.Base.update(MochiKit.Visual.ScrollTo.prototype, { -// /*** -// -// Scroll to an element in the page. -// -// ***/ -// __init__: function (element, /* optional */options) { -// this.element = MochiKit.DOM.getElement(element); -// this.start(options || {}); -// }, -// -// setup: function () { -// var p = MochiKit.Position; -// p.prepare(); -// var offsets = p.cumulativeOffset(this.element); -// if (this.options.offset) { -// offsets.y += this.options.offset; -// } -// var max; -// if (window.innerHeight) { -// max = window.innerHeight - window.height; -// } else if (document.documentElement && -// document.documentElement.clientHeight) { -// max = document.documentElement.clientHeight - -// document.body.scrollHeight; -// } else if (document.body) { -// max = document.body.clientHeight - document.body.scrollHeight; -// } -// this.scrollStart = p.windowOffset.y; -// this.delta = (offsets.y > max ? max : offsets.y) - this.scrollStart; -// }, -// -// update: function (position) { -// var p = MochiKit.Position; -// p.prepare(); -// window.scrollTo(p.windowOffset.x, this.scrollStart + (position * this.delta)); -// } -//}); - -/*** - -Combination effects. - -***/ - -MochiKit.Visual.fade = function (element, /* optional */ options) { - /*** - - Fade a given element: change its opacity and hide it in the end. - - @param options: 'to' and 'from' to change opacity. - - ***/ - var d = MochiKit.DOM; - var oldOpacity = d.getInlineOpacity(element); - options = MochiKit.Base.update({ - from: d.getOpacity(element) || 1.0, - to: 0.0, - afterFinishInternal: function (effect) { - if (effect.options.to !== 0) { - return; - } - MochiKit.Style.hideElement(effect.element); - d.setStyle(effect.element, {opacity: oldOpacity}); - } - }, options || {}); - return new MochiKit.Visual.Opacity(element, options); -}; - -MochiKit.Visual.appear = function (element, /* optional */ options) { - /*** - - Make an element appear. - - @param options: 'to' and 'from' to change opacity. - - ***/ - var d = MochiKit.DOM; - var v = MochiKit.Visual; - options = MochiKit.Base.update({ - from: (d.getStyle(element, 'display') == 'none' ? 0.0 : - d.getOpacity(element) || 0.0), - to: 1.0, - // force Safari to render floated elements properly - afterFinishInternal: function (effect) { - v.forceRerendering(effect.element); - }, - beforeSetupInternal: function (effect) { - d.setOpacity(effect.element, effect.options.from); - MochiKit.Style.showElement(effect.element); - } - }, options || {}); - return new v.Opacity(element, options); -}; - -//MochiKit.Visual.puff = function (element, /* optional */ options) { -// /*** -// -// 'Puff' an element: grow it to double size, fading it and make it hidden. -// -// ***/ -// var d = MochiKit.DOM; -// var v = MochiKit.Visual; -// element = d.getElement(element); -// var oldStyle = { -// opacity: d.getInlineOpacity(element), -// position: d.getStyle(element, 'position') -// }; -// options = MochiKit.Base.update({ -// beforeSetupInternal: function (effect) { -// d.setStyle(effect.effects[0].element, -// {position: 'absolute'}); -// }, -// afterFinishInternal: function (effect) { -// MochiKit.Style.hideElement(effect.effects[0].element); -// d.setStyle(effect.effects[0].element, oldStyle); -// } -// }, options || {}); -// return new v.Parallel( -// [new v.Scale(element, 200, -// {sync: true, scaleFromCenter: true, -// scaleContent: true, restoreAfterFinish: true}), -// new v.Opacity(element, {sync: true, to: 0.0 })], -// options); -//}; - -MochiKit.Visual.blindUp = function (element, /* optional */ options) { - /*** - - Blind an element up: change its vertical size to 0. - - ***/ - var d = MochiKit.DOM; - element = d.getElement(element); - d.makeClipping(element); - options = MochiKit.Base.update({ - scaleContent: false, - scaleX: false, - restoreAfterFinish: true, - afterFinishInternal: function (effect) { - MochiKit.Style.hideElement(effect.element); - d.undoClipping(effect.element); - } - }, options || {}); - - return new MochiKit.Visual.Scale(element, 0, options); -}; - -MochiKit.Visual.blindDown = function (element, /* optional */ options) { - /*** - - Blind an element down: restore its vertical size. - - ***/ - var d = MochiKit.DOM; - element = d.getElement(element); - var elementDimensions = MochiKit.Style.getElementDimensions(element); - options = MochiKit.Base.update({ - scaleContent: false, - scaleX: false, - scaleFrom: 0, - scaleMode: {originalHeight: elementDimensions.h, - originalWidth: elementDimensions.w}, - restoreAfterFinish: true, - afterSetupInternal: function (effect) { - d.makeClipping(effect.element); - d.setStyle(effect.element, {height: '0px'}); - MochiKit.Style.showElement(effect.element); - }, - afterFinishInternal: function (effect) { - d.undoClipping(effect.element); - } - }, options || {}); - return new MochiKit.Visual.Scale(element, 100, options); -}; - -//MochiKit.Visual.switchOff = function (element, /* optional */ options) { -// /*** -// -// Apply a switch-off-like effect. -// -// ***/ -// var d = MochiKit.DOM; -// element = d.getElement(element); -// var oldOpacity = d.getInlineOpacity(element); -// var options = MochiKit.Base.update({ -// duration: 0.3, -// scaleFromCenter: true, -// scaleX: false, -// scaleContent: false, -// restoreAfterFinish: true, -// beforeSetupInternal: function (effect) { -// d.makePositioned(effect.element); -// d.makeClipping(effect.element); -// }, -// afterFinishInternal: function (effect) { -// MochiKit.Style.hideElement(effect.element); -// d.undoClipping(effect.element); -// d.undoPositioned(effect.element); -// d.setStyle(effect.element, {opacity: oldOpacity}); -// } -// }, options || {}); -// var v = MochiKit.Visual; -// return new v.appear(element, { -// duration: 0.4, -// from: 0, -// transition: v.Transitions.flicker, -// afterFinishInternal: function (effect) { -// new v.Scale(effect.element, 1, options) -// } -// }); -//}; - -//MochiKit.Visual.dropOut = function (element, /* optional */ options) { -// /*** -// -// Make an element fall and disappear. -// -// ***/ -// var d = MochiKit.DOM; -// element = d.getElement(element); -// var oldStyle = { -// top: d.getStyle(element, 'top'), -// left: d.getStyle(element, 'left'), -// opacity: d.getInlineOpacity(element) -// }; -// -// options = MochiKit.Base.update({ -// duration: 0.5, -// beforeSetupInternal: function (effect) { -// d.makePositioned(effect.effects[0].element); -// }, -// afterFinishInternal: function (effect) { -// MochiKit.Style.hideElement(effect.effects[0].element); -// d.undoPositioned(effect.effects[0].element); -// d.setStyle(effect.effects[0].element, oldStyle); -// } -// }, options || {}); -// var v = MochiKit.Visual; -// return new v.Parallel( -// [new v.Move(element, {x: 0, y: 100, sync: true}), -// new v.Opacity(element, {sync: true, to: 0.0})], -// options); -//}; - -//MochiKit.Visual.shake = function (element, /* optional */ options) { -// /*** -// -// Move an element from left to right several times. -// -// ***/ -// var d = MochiKit.DOM; -// var v = MochiKit.Visual; -// element = d.getElement(element); -// options = MochiKit.Base.update({ -// x: -20, -// y: 0, -// duration: 0.05, -// afterFinishInternal: function (effect) { -// d.undoPositioned(effect.element); -// d.setStyle(effect.element, oldStyle); -// } -// }, options || {}); -// var oldStyle = { -// top: d.getStyle(element, 'top'), -// left: d.getStyle(element, 'left') }; -// return new v.Move(element, -// {x: 20, y: 0, duration: 0.05, afterFinishInternal: function (effect) { -// new v.Move(effect.element, -// {x: -40, y: 0, duration: 0.1, afterFinishInternal: function (effect) { -// new v.Move(effect.element, -// {x: 40, y: 0, duration: 0.1, afterFinishInternal: function (effect) { -// new v.Move(effect.element, -// {x: -40, y: 0, duration: 0.1, afterFinishInternal: function (effect) { -// new v.Move(effect.element, -// {x: 40, y: 0, duration: 0.1, afterFinishInternal: function (effect) { -// new v.Move(effect.element, options -// ) }}) }}) }}) }}) }}); -//}; - -//MochiKit.Visual.slideDown = function (element, /* optional */ options) { -// /*** -// -// Slide an element down. -// It needs to have the content of the element wrapped in a container -// element with fixed height. -// -// ***/ -// var d = MochiKit.DOM; -// var b = MochiKit.Base; -// element = d.getElement(element); -// if (!element.firstChild) { -// throw "MochiKit.Visual.slideDown must be used on a element with a child"; -// } -// d.removeEmptyTextNodes(element); -// var oldInnerBottom = d.getStyle(element.firstChild, 'bottom') || 0; -// var elementDimensions = MochiKit.Style.getElementDimensions(element); -// options = b.update({ -// scaleContent: false, -// scaleX: false, -// scaleFrom: 0, -// scaleMode: {originalHeight: elementDimensions.h, -// originalWidth: elementDimensions.w}, -// restoreAfterFinish: true, -// afterSetupInternal: function (effect) { -// d.makePositioned(effect.element); -// d.makePositioned(effect.element.firstChild); -// if (b.isOpera()) { -// d.setStyle(effect.element, {top: ''}); -// } -// d.makeClipping(effect.element); -// d.setStyle(effect.element, {height: '0px'}); -// MochiKit.Style.showElement(effect.element); -// }, -// afterUpdateInternal: function (effect) { -// d.setStyle(effect.element.firstChild, -// {bottom: (effect.dims[0] - effect.element.clientHeight) + 'px'}) -// }, -// afterFinishInternal: function (effect) { -// d.undoClipping(effect.element); -// // IE will crash if child is undoPositioned first -// if (b.isIE()) { -// d.undoPositioned(effect.element); -// d.undoPositioned(effect.element.firstChild); -// } else { -// d.undoPositioned(effect.element.firstChild); -// d.undoPositioned(effect.element); -// } -// d.setStyle(effect.element.firstChild, -// {bottom: oldInnerBottom}); -// } -// }, options || {}); -// -// return new MochiKit.Visual.Scale(element, 100, options); -//}; - -//MochiKit.Visual.slideUp = function (element, /* optional */ options) { -// /*** -// -// Slide an element up. -// It needs to have the content of the element wrapped in a container -// element with fixed height. -// -// ***/ -// var d = MochiKit.DOM; -// var b = MochiKit.Base; -// element = d.getElement(element); -// if (!element.firstChild) { -// throw "MochiKit.Visual.slideUp must be used on a element with a child"; -// } -// d.removeEmptyTextNodes(element); -// var oldInnerBottom = d.getStyle(element.firstChild, 'bottom'); -// options = b.update({ -// scaleContent: false, -// scaleX: false, -// scaleMode: 'box', -// scaleFrom: 100, -// restoreAfterFinish: true, -// beforeStartInternal: function (effect) { -// d.makePositioned(effect.element); -// d.makePositioned(effect.element.firstChild); -// if (b.isOpera()) { -// d.setStyle(effect.element, {top: ''}); -// } -// d.makeClipping(effect.element); -// MochiKit.Style.showElement(effect.element); -// }, -// afterUpdateInternal: function (effect) { -// d.setStyle(effect.element.firstChild, -// {bottom: (effect.dims[0] - effect.element.clientHeight) + 'px'}); -// }, -// afterFinishInternal: function (effect) { -// MochiKit.Style.hideElement(effect.element); -// d.undoClipping(effect.element); -// d.undoPositioned(effect.element.firstChild); -// d.undoPositioned(effect.element); -// d.setStyle(effect.element.firstChild, {bottom: oldInnerBottom}); -// } -// }, options || {}); -// return new MochiKit.Visual.Scale(element, 0, options); -//}; - -// Bug in opera makes the TD containing this element expand for a instance -// after finish -//MochiKit.Visual.squish = function (element, /* optional */ options) { -// /*** -// -// Reduce an element and make it disappear. -// -// ***/ -// var d = MochiKit.DOM; -// var b = MochiKit.Base; -// options = b.update({ -// restoreAfterFinish: true, -// beforeSetupInternal: function (effect) { -// d.makeClipping(effect.element); -// }, -// afterFinishInternal: function (effect) { -// MochiKit.Style.hideElement(effect.element); -// d.undoClipping(effect.element); -// } -// }, options || {}); -// -// return new MochiKit.Visual.Scale(element, b.isOpera() ? 1 : 0, options); -//}; -// -//MochiKit.Visual.grow = function (element, /* optional */ options) { -// /*** -// -// Grow an element to its original size. Make it zero-sized before -// if necessary. -// -// ***/ -// var d = MochiKit.DOM; -// var v = MochiKit.Visual; -// element = d.getElement(element); -// options = MochiKit.Base.update({ -// direction: 'center', -// moveTransition: v.Transitions.sinoidal, -// scaleTransition: v.Transitions.sinoidal, -// opacityTransition: v.Transitions.full -// }, options || {}); -// var oldStyle = { -// top: element.style.top, -// left: element.style.left, -// height: element.style.height, -// width: element.style.width, -// opacity: d.getInlineOpacity(element) -// }; -// -// var dims = MochiKit.Style.getElementDimensions(element); -// var initialMoveX, initialMoveY; -// var moveX, moveY; -// -// switch (options.direction) { -// case 'top-left': -// initialMoveX = initialMoveY = moveX = moveY = 0; -// break; -// case 'top-right': -// initialMoveX = dims.w; -// initialMoveY = moveY = 0; -// moveX = -dims.w; -// break; -// case 'bottom-left': -// initialMoveX = moveX = 0; -// initialMoveY = dims.h; -// moveY = -dims.h; -// break; -// case 'bottom-right': -// initialMoveX = dims.w; -// initialMoveY = dims.h; -// moveX = -dims.w; -// moveY = -dims.h; -// break; -// case 'center': -// initialMoveX = dims.w / 2; -// initialMoveY = dims.h / 2; -// moveX = -dims.w / 2; -// moveY = -dims.h / 2; -// break; -// } -// -// var optionsParallel = MochiKit.Base.update({ -// beforeSetupInternal: function (effect) { -// d.setStyle(effect.effects[0].element, {height: '0px'}); -// MochiKit.Style.showElement(effect.effects[0].element); -// }, -// afterFinishInternal: function (effect) { -// d.undoClipping(effect.effects[0].element); -// d.undoPositioned(effect.effects[0].element); -// d.setStyle(effect.effects[0].element, oldStyle); -// } -// }, options || {}); -// -// return new v.Move(element, { -// x: initialMoveX, -// y: initialMoveY, -// duration: 0.01, -// beforeSetupInternal: function (effect) { -// MochiKit.Style.hideElement(effect.element); -// d.makeClipping(effect.element); -// d.makePositioned(effect.element); -// }, -// afterFinishInternal: function (effect) { -// new v.Parallel( -// [new v.Opacity(effect.element, { -// sync: true, to: 1.0, from: 0.0, -// transition: options.opacityTransition -// }), -// new v.Move(effect.element, { -// x: moveX, y: moveY, sync: true, -// transition: options.moveTransition -// }), -// new v.Scale(effect.element, 100, { -// scaleMode: {originalHeight: dims.h, -// originalWidth: dims.w}, -// sync: true, -// scaleFrom: MochiKit.Base.isOpera() ? 1 : 0, -// transition: options.scaleTransition, -// restoreAfterFinish: true -// }) -// ], optionsParallel -// ); -// } -// }); -//}; -// -//MochiKit.Visual.shrink = function (element, /* optional */ options) { -// /*** -// -// Shrink an element and make it disappear. -// -// ***/ -// var d = MochiKit.DOM; -// var v = MochiKit.Visual; -// element = d.getElement(element); -// options = MochiKit.Base.update({ -// direction: 'center', -// moveTransition: v.Transitions.sinoidal, -// scaleTransition: v.Transitions.sinoidal, -// opacityTransition: v.Transitions.none -// }, options || {}); -// var oldStyle = { -// top: element.style.top, -// left: element.style.left, -// height: element.style.height, -// width: element.style.width, -// opacity: d.getInlineOpacity(element) -// }; -// -// var dims = MochiKit.Style.getElementDimensions(element); -// var moveX, moveY; -// -// switch (options.direction) { -// case 'top-left': -// moveX = moveY = 0; -// break; -// case 'top-right': -// moveX = dims.w; -// moveY = 0; -// break; -// case 'bottom-left': -// moveX = 0; -// moveY = dims.h; -// break; -// case 'bottom-right': -// moveX = dims.w; -// moveY = dims.h; -// break; -// case 'center': -// moveX = dims.w / 2; -// moveY = dims.h / 2; -// break; -// } -// -// var optionsParallel = MochiKit.Base.update({ -// beforeStartInternal: function (effect) { -// d.makePositioned(effect.effects[0].element); -// d.makeClipping(effect.effects[0].element); -// }, -// afterFinishInternal: function (effect) { -// MochiKit.Style.hideElement(effect.effects[0].element); -// d.undoClipping(effect.effects[0].element); -// d.undoPositioned(effect.effects[0].element); -// d.setStyle(effect.effects[0].element, oldStyle); -// } -// }, options || {}); -// -// return new v.Parallel( -// [new v.Opacity(element, { -// sync: true, to: 0.0, from: 1.0, -// transition: options.opacityTransition -// }), -// new v.Scale(element, MochiKit.Base.isOpera() ? 1 : 0, { -// sync: true, transition: options.scaleTransition, -// restoreAfterFinish: true -// }), -// new v.Move(element, { -// x: moveX, y: moveY, sync: true, transition: options.moveTransition -// }) -// ], optionsParallel -// ); -//}; -// -//MochiKit.Visual.pulsate = function (element, /* optional */ options) { -// /*** -// -// Pulse an element between appear/fade. -// -// ***/ -// var d = MochiKit.DOM; -// var v = MochiKit.Visual; -// var b = MochiKit.Base; -// element = d.getElement(element); -// var oldOpacity = d.getInlineOpacity(element); -// options = b.update({ -// duration: 3.0, -// from: 0, -// afterFinishInternal: function (effect) { -// d.setStyle(effect.element, {opacity: oldOpacity}); -// } -// }, options || {}); -// var transition = options.transition || v.Transitions.sinoidal; -// var reverser = b.bind(function (pos) { -// return transition(1 - v.Transitions.pulse(pos)); -// }, transition); -// b.bind(reverser, transition); -// return new v.Opacity(element, b.update({ -// transition: reverser}, options)); -//}; -// -//MochiKit.Visual.fold = function (element, /* optional */ options) { -// /*** -// -// Fold an element, first vertically, then horizontally. -// -// ***/ -// var d = MochiKit.DOM; -// var v = MochiKit.Visual; -// element = d.getElement(element); -// var oldStyle = { -// top: element.style.top, -// left: element.style.left, -// width: element.style.width, -// height: element.style.height -// }; -// d.makeClipping(element); -// options = MochiKit.Base.update({ -// scaleContent: false, -// scaleX: false, -// afterFinishInternal: function (effect) { -// new v.Scale(element, 1, { -// scaleContent: false, -// scaleY: false, -// afterFinishInternal: function (effect) { -// MochiKit.Style.hideElement(effect.element); -// d.undoClipping(effect.element); -// d.setStyle(effect.element, oldStyle); -// } -// }); -// } -// }, options || {}); -// return new v.Scale(element, 5, options); -//}; - - -// Compatibility with MochiKit 1.0 -MochiKit.Visual.Color = MochiKit.Color.Color; -MochiKit.Visual.getElementsComputedStyle = MochiKit.DOM.computedStyle; - -/* end of Rico adaptation */ - -MochiKit.Visual.__new__ = function () { - var m = MochiKit.Base; - - m.nameFunctions(this); - - this.EXPORT_TAGS = { - ":common": this.EXPORT, - ":all": m.concat(this.EXPORT, this.EXPORT_OK) - }; - -}; - -MochiKit.Visual.EXPORT = [ - "roundElement", - "roundClass", - "tagifyText", - "multiple", - "toggle", - "Base", - "Parallel", - "Opacity", - "Move", - "Scale", - "Highlight", - "ScrollTo", - "fade", - "appear", - "puff", - "blindUp", - "blindDown", - "switchOff", - "dropOut", - "shake", - "slideDown", - "slideUp", - "squish", - "grow", - "shrink", - "pulsate", - "fold" -]; - -MochiKit.Visual.EXPORT_OK = [ - "PAIRS" -]; - -MochiKit.Visual.__new__(); - -MochiKit.Base._exportSymbols(this, MochiKit.Visual); diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/__package__.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/__package__.js deleted file mode 100644 index 4c58c3947..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/MochiKit/__package__.js +++ /dev/null @@ -1,19 +0,0 @@ -dojo.hostenv.conditionalLoadModule({ - "common": [ - "MochiKit.Base", - "MochiKit.Iter", - "MochiKit.Logging", - "MochiKit.DateTime", - "MochiKit.Format", - "MochiKit.Async", - "MochiKit.Color" - ], - "browser": [ - "MochiKit.DOM", - "MochiKit.Style", - "MochiKit.Signal", - "MochiKit.LoggingPane", - "MochiKit.Visual" - ] -}); -dojo.hostenv.moduleLoaded("MochiKit.*"); diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/calendar.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/calendar.js deleted file mode 100644 index 1f3ee394b..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/calendar.js +++ /dev/null @@ -1,695 +0,0 @@ -// BEGIN USER-EDITABLE SECTION ----------------------------------------------------- - -// CALENDAR COLORS -topBackground = "black"; // BG COLOR OF THE TOP FRAME -bottomBackground = "white"; // BG COLOR OF THE BOTTOM FRAME -tableBGColor = "black"; // BG COLOR OF THE BOTTOM FRAME'S TABLE -cellColor = "lightgrey"; // TABLE CELL BG COLOR OF THE DATE CELLS IN THE BOTTOM FRAME -headingCellColor = "white"; // TABLE CELL BG COLOR OF THE WEEKDAY ABBREVIATIONS -headingTextColor = "black"; // TEXT COLOR OF THE WEEKDAY ABBREVIATIONS -dateColor = "blue"; // TEXT COLOR OF THE LISTED DATES (1-28+) -focusColor = "#ff0000"; // TEXT COLOR OF THE SELECTED DATE (OR CURRENT DATE) -hoverColor = "darkred"; // TEXT COLOR OF A LINK WHEN YOU HOVER OVER IT -fontStyle = "12pt arial, helvetica"; // TEXT STYLE FOR DATES -headingFontStyle = "bold 12pt arial, helvetica"; // TEXT STYLE FOR WEEKDAY ABBREVIATIONS - -// FORMATTING PREFERENCES -bottomBorder = false; // TRUE/FALSE (WHETHER TO DISPLAY BOTTOM CALENDAR BORDER) -tableBorder = 0; // SIZE OF CALENDAR TABLE BORDER (BOTTOM FRAME) 0=none - -var DateTimeFormat = true; //"DateTime" if true, else a "Date" - -// END USER-EDITABLE SECTION ------------------------------------------------------- - -// DETERMINE BROWSER BRAND -var isNav = false; -var isIE = false; - -// ASSUME IT'S EITHER NETSCAPE OR MSIE -if (navigator.appName == "Netscape") { - isNav = true; -} -else { - isIE = true; -} - -// global variable for top frame and bottom frame -var calDocTop; -var calDocBottom; - -// PRE-BUILD PORTIONS OF THE CALENDAR WHEN THIS JS LIBRARY LOADS INTO THE BROWSER -buildCalParts(); - -// CALENDAR FUNCTIONS BEGIN HERE --------------------------------------------------- - -// SET THE INITIAL VALUE OF THE GLOBAL DATE FIELD -function setDateField(formName, dateField) { - - // ASSIGN THE INCOMING FIELD OBJECT TO A GLOBAL VARIABLE - thisform = document.forms[formName]; - calDateField = thisform[dateField]; - - // GET THE VALUE OF THE INCOMING FIELD - inDate = thisform[dateField].value; - - // SET calDate TO THE DATE IN THE INCOMING FIELD OR DEFAULT TO TODAY'S DATE - setInitialDate(); - - // THE CALENDAR FRAMESET DOCUMENTS ARE CREATED BY JAVASCRIPT FUNCTIONS - calDocTop = buildTopCalFrame(); - calDocBottom = buildBottomCalFrame(); -} - - -// SET THE INITIAL CALENDAR DATE TO TODAY OR TO THE EXISTING VALUE IN dateField -function setInitialDate() { - - calDate = ParseDate(inDate, DateTimeFormat); - - // IF THE INCOMING DATE IS INVALID, USE THE CURRENT DATE - if (isNaN(calDate)) { - - // ADD CUSTOM DATE PARSING HERE - // IF IT FAILS, SIMPLY CREATE A NEW DATE OBJECT WHICH DEFAULTS TO THE CURRENT DATE - calDate = new Date(); - } - - // KEEP TRACK OF THE CURRENT DAY VALUE - calDay = calDate.getDate(); - - // SET DAY VALUE TO 1... TO AVOID JAVASCRIPT DATE CALCULATION ANOMALIES - // (IF THE MONTH CHANGES TO FEB AND THE DAY IS 30, THE MONTH WOULD CHANGE TO MARCH - // AND THE DAY WOULD CHANGE TO 2. SETTING THE DAY TO 1 WILL PREVENT THAT) - calDate.setDate(1); -} - -// CREATE THE TOP CALENDAR FRAME -function buildTopCalFrame() { - - // CREATE THE TOP FRAME OF THE CALENDAR - var calDoc = - "" + - "" + - "" + - "" + - "
    " + - "
    " + - "" + - "" + - "" + - "" + - "" + - "" + - "
    " + - "
    " + - getMonthSelect() + - "" + - "
    " + - "
    " + - "
    " + - "" + - "
    " + - "
    " + - "
    " + - "
    " + - "" + - ""; - - return calDoc; -} - -// CREATE THE BOTTOM CALENDAR FRAME -// (THE MONTHLY CALENDAR) -function buildBottomCalFrame() { - // START CALENDAR DOCUMENT - var calDoc = calendarBegin; - - // GET MONTH, AND YEAR FROM GLOBAL CALENDAR DATE - month = calDate.getMonth(); - year = calDate.getFullYear(); - - - // GET GLOBALLY-TRACKED DAY VALUE (PREVENTS JAVASCRIPT DATE ANOMALIES) - day = calDay; - - var i = 0; - - // DETERMINE THE NUMBER OF DAYS IN THE CURRENT MONTH - var days = getDaysInMonth(); - - // IF GLOBAL DAY VALUE IS > THAN DAYS IN MONTH, HIGHLIGHT LAST DAY IN MONTH - if (day > days) { - day = days; - } - - // DETERMINE WHAT DAY OF THE WEEK THE CALENDAR STARTS ON - var firstOfMonth = new Date (year, month, 1); - - // GET THE DAY OF THE WEEK THE FIRST DAY OF THE MONTH FALLS ON - var startingPos = firstOfMonth.getDay(); - days += startingPos; - - // KEEP TRACK OF THE COLUMNS, START A NEW ROW AFTER EVERY 7 COLUMNS - var columnCount = 0; - - // MAKE BEGINNING NON-DATE CELLS BLANK - for (i = 0; i < startingPos; i++) { - - calDoc += blankCell; - columnCount++; - } - - // SET VALUES FOR DAYS OF THE MONTH - var currentDay = 0; - var dayType = "weekday"; - - // DATE CELLS CONTAIN A NUMBER - for (i = startingPos; i < days; i++) { - - var paddingChar = " "; - - // ADJUST SPACING SO THAT ALL LINKS HAVE RELATIVELY EQUAL WIDTHS - if (i-startingPos+1 < 10) { - padding = "  "; - } - else { - padding = " "; - } - - // GET THE DAY CURRENTLY BEING WRITTEN - currentDay = i-startingPos+1; - - // SET THE TYPE OF DAY, THE focusDay GENERALLY APPEARS AS A DIFFERENT COLOR - if (currentDay == day) { - dayType = "focusDay"; - } - else { - dayType = "weekDay"; - } - - // ADD THE DAY TO THE CALENDAR STRING - calDoc += "" + - "" + padding + currentDay + paddingChar + ""; - - columnCount++; - - // START A NEW ROW WHEN NECESSARY - if (columnCount % 7 == 0) { - calDoc += ""; - } - } - - // MAKE REMAINING NON-DATE CELLS BLANK - for (i=days; i<42; i++) { - - calDoc += blankCell; - columnCount++; - - // START A NEW ROW WHEN NECESSARY - if (columnCount % 7 == 0) { - calDoc += ""; - if (i<41) { - calDoc += ""; - } - } - } - - // FINISH THE NEW CALENDAR PAGE - calDoc += calendarEnd; - - // RETURN THE COMPLETED CALENDAR PAGE - return calDoc; -} - - -// WRITE THE MONTHLY CALENDAR TO THE BOTTOM CALENDAR FRAME -function writeCalendar() { - // CREATE THE NEW CALENDAR FOR THE SELECTED MONTH & YEAR - calDocBottom = buildBottomCalFrame(); - - if (document.getElementById) { // ns6 & ie - top.newWin.frames['bottomCalFrame'].document.getElementById('bottomDiv').innerHTML = calDocBottom; - } else { - // WRITE THE NEW CALENDAR TO THE BOTTOM FRAME - top.newWin.frames['bottomCalFrame'].document.open(); - top.newWin.frames['bottomCalFrame'].document.write(calDocBottom); - top.newWin.frames['bottomCalFrame'].document.close(); - } -} - -// SET THE CALENDAR TO TODAY'S DATE AND DISPLAY THE NEW CALENDAR -function setToday() { - - // SET GLOBAL DATE TO TODAY'S DATE - calDate = new Date(); - - // SET DAY MONTH AND YEAR TO TODAY'S DATE - var month = calDate.getMonth(); - var year = calDate.getFullYear(); - - // SET MONTH IN DROP-DOWN LIST - top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex = month; - - // SET YEAR VALUE - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - - // SET THE DAY VALUE - calDay = calDate.getDate(); - - // DISPLAY THE NEW CALENDAR - writeCalendar(); -} - - -// SET THE GLOBAL DATE TO THE NEWLY ENTERED YEAR AND REDRAW THE CALENDAR -function setYear() { - - // GET THE NEW YEAR VALUE - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - - // IF IT'S A FOUR-DIGIT YEAR THEN CHANGE THE CALENDAR - if (isFourDigitYear(year)) { - calDate.setFullYear(year); - writeCalendar(); - top.newWin.frames['topCalFrame'].document.calControl.year.blur(); - } - else { - // HIGHLIGHT THE YEAR IF THE YEAR IS NOT FOUR DIGITS IN LENGTH - top.newWin.frames['topCalFrame'].document.calControl.year.focus(); - top.newWin.frames['topCalFrame'].document.calControl.year.select(); - } -} - - -// SET THE GLOBAL DATE TO THE SELECTED MONTH AND REDRAW THE CALENDAR -function setCurrentMonth() { - - // GET THE NEWLY SELECTED MONTH AND CHANGE THE CALENDAR ACCORDINGLY - var month = top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex; - - calDate.setMonth(month); - writeCalendar(); -} - - -// SET THE GLOBAL DATE TO THE PREVIOUS YEAR AND REDRAW THE CALENDAR -function setPreviousYear() { - - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - - if (isFourDigitYear(year) && year > 1000) { - year--; - calDate.setFullYear(year); - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - writeCalendar(); - } -} - - -// SET THE GLOBAL DATE TO THE PREVIOUS MONTH AND REDRAW THE CALENDAR -function setPreviousMonth() { - - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - if (isFourDigitYear(year)) { - var month = top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex; - - // IF MONTH IS JANUARY, SET MONTH TO DECEMBER AND DECREMENT THE YEAR - if (month == 0) { - month = 11; - if (year > 1000) { - year--; - calDate.setFullYear(year); - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - } - } - else { - month--; - } - calDate.setMonth(month); - top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex = month; - writeCalendar(); - } -} - - -// SET THE GLOBAL DATE TO THE NEXT MONTH AND REDRAW THE CALENDAR -function setNextMonth() { - - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - - if (isFourDigitYear(year)) { - var month = top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex; - - // IF MONTH IS DECEMBER, SET MONTH TO JANUARY AND INCREMENT THE YEAR - if (month == 11) { - month = 0; - year++; - calDate.setFullYear(year); - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - } - else { - month++; - } - calDate.setMonth(month); - top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex = month; - writeCalendar(); - } -} - - -// SET THE GLOBAL DATE TO THE NEXT YEAR AND REDRAW THE CALENDAR -function setNextYear() { - - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - if (isFourDigitYear(year)) { - year++; - calDate.setFullYear(year); - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - writeCalendar(); - } -} - - -// GET NUMBER OF DAYS IN MONTH -function getDaysInMonth() { - - var days; - var month = calDate.getMonth()+1; - var year = calDate.getFullYear(); - - // RETURN 31 DAYS - if (month==1 || month==3 || month==5 || month==7 || month==8 || - month==10 || month==12) { - days=31; - } - // RETURN 30 DAYS - else if (month==4 || month==6 || month==9 || month==11) { - days=30; - } - // RETURN 29 DAYS - else if (month==2) { - if (isLeapYear(year)) { - days=29; - } - // RETURN 28 DAYS - else { - days=28; - } - } - return (days); -} - - -// CHECK TO SEE IF YEAR IS A LEAP YEAR -function isLeapYear (Year) { - - if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) { - return (true); - } - else { - return (false); - } -} - - -// ENSURE THAT THE YEAR IS FOUR DIGITS IN LENGTH -function isFourDigitYear(year) { - - if (year == null || year.match(/^[0-9]{4}$/) == null){ - top.newWin.frames['topCalFrame'].document.calControl.year.value = calDate.getFullYear(); - top.newWin.frames['topCalFrame'].document.calControl.year.select(); - top.newWin.frames['topCalFrame'].document.calControl.year.focus(); - } - else { - return true; - } -} - - -// BUILD THE MONTH SELECT LIST -function getMonthSelect() { - - monthArray = new Array(L_January, L_February, L_March, L_April, L_May, L_June, - L_July, L_August, L_September, L_October, L_November, L_December); - - - // DETERMINE MONTH TO SET AS DEFAULT - var activeMonth = calDate.getMonth(); - - // START HTML SELECT LIST ELEMENT - monthSelect = ""; - - // RETURN A STRING VALUE WHICH CONTAINS A SELECT LIST OF ALL 12 MONTHS - return monthSelect; -} - - -// SET DAYS OF THE WEEK DEPENDING ON LANGUAGE -function createWeekdayList() { - - weekdayArray = new Array(L_Su,L_Mo,L_Tu,L_We,L_Th,L_Fr,L_Sa); - - - // START HTML TO HOLD WEEKDAY NAMES IN TABLE FORMAT - var weekdays = ""; - - // LOOP THROUGH WEEKDAY ARRAY - for (i in weekdayArray) { - - weekdays += "" + weekdayArray[i] + ""; - } - weekdays += ""; - - // RETURN TABLE ROW OF WEEKDAY ABBREVIATIONS TO DISPLAY ABOVE THE CALENDAR - return weekdays; -} - - -// PRE-BUILD PORTIONS OF THE CALENDAR (FOR PERFORMANCE REASONS) -function buildCalParts() { - - // GENERATE WEEKDAY HEADERS FOR THE CALENDAR - weekdays = createWeekdayList(); - - // BUILD THE BLANK CELL ROWS - blankCell = "   "; - - // BUILD THE TOP PORTION OF THE CALENDAR PAGE USING CSS TO CONTROL SOME DISPLAY ELEMENTS - calendarBegin = - "" + - "" + - // STYLESHEET DEFINES APPEARANCE OF CALENDAR - "" + - - "" + - ""; - if (document.getElementById) { // ns6 & ie - calendarBegin += - "
    "; - } - calendarBegin += - "
    "; - - // NAVIGATOR NEEDS A TABLE CONTAINER TO DISPLAY THE TABLE OUTLINES PROPERLY - if (isNav) { - calendarBegin += - "
    "; - } - - // BUILD WEEKDAY HEADINGS - calendarBegin += - "" + - weekdays + - ""; - - - // BUILD THE BOTTOM PORTION OF THE CALENDAR PAGE - calendarEnd = ""; - - // WHETHER OR NOT TO DISPLAY A THICK LINE BELOW THE CALENDAR - if (bottomBorder) { - calendarEnd += ""; - } - - // NAVIGATOR NEEDS A TABLE CONTAINER TO DISPLAY THE BORDERS PROPERLY - if (isNav) { - calendarEnd += "
    "; - } - - // END THE TABLE AND HTML DOCUMENT - calendarEnd += - "
    " + - "
    "; - if (document.getElementById) { // ns6 & ie - calendarEnd += - "
    "; - } - calendarEnd += - "" + - ""; -} - - -// REPLACE ALL INSTANCES OF find WITH replace -// inString: the string you want to convert -// find: the value to search for -// replace: the value to substitute -// -// usage: jsReplace(inString, find, replace); -// example: jsReplace("To be or not to be", "be", "ski"); -// result: "To ski or not to ski" -// -function jsReplace(inString, find, replace) { - - var outString = ""; - - if (!inString) { - return ""; - } - - // REPLACE ALL INSTANCES OF find WITH replace - if (inString.indexOf(find) != -1) { - // SEPARATE THE STRING INTO AN ARRAY OF STRINGS USING THE VALUE IN find - t = inString.split(find); - - // JOIN ALL ELEMENTS OF THE ARRAY, SEPARATED BY THE VALUE IN replace - return (t.join(replace)); - } - else { - return inString; - } -} - - -// JAVASCRIPT FUNCTION -- DOES NOTHING (USED FOR THE HREF IN THE CALENDAR CALL) -function doNothing() { -} - - -// ENSURE THAT VALUE IS TWO DIGITS IN LENGTH -function makeTwoDigit(inValue) { - - var numVal = parseInt(inValue, 10); - - // VALUE IS LESS THAN TWO DIGITS IN LENGTH - if (numVal < 10) { - - // ADD A LEADING ZERO TO THE VALUE AND RETURN IT - return("0" + numVal); - } - else { - return numVal; - } -} - - -// SET FIELD VALUE TO THE DATE SELECTED AND CLOSE THE CALENDAR WINDOW -function returnDate(inDay) -{ - // inDay = THE DAY THE USER CLICKED ON - calDate.setDate(inDay); - - // SET THE DATE RETURNED TO THE USER - var day = calDate.getDate(); - var month = calDate.getMonth()+1; - var year = calDate.getFullYear(); - - if ( DateTimeFormat == true ) - outDate = "DateTime("; - else - outDate = "Date("; - - outDate += year + ","; - outDate += month + ","; - outDate += day; - - if ( DateTimeFormat == true ) { - outDate += ","; - outDate += gHour + ","; gHour = "0"; - outDate += gMin + ","; gMin = "0"; - outDate += gSec; gSec = "0"; - } - outDate += ")"; - - // SET THE VALUE OF THE FIELD THAT WAS PASSED TO THE CALENDAR - calDateField.value = outDate; - - // GIVE FOCUS BACK TO THE DATE FIELD - calDateField.focus(); - - // CLOSE THE CALENDAR WINDOW - top.newWin.close() -} - -var gHour = "0"; -var gMin = "0"; -var gSec = "0"; -var regDateTimePrompt = /^(D|d)(A|a)(T|t)(E|e)(T|t)(I|i)(M|m)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *, *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/ -function ParseDateTimePrompt(inDate) -{ - if ( regDateTimePrompt.test ( inDate ) ) - { - var sDate = inDate.substr ( inDate.indexOf("(")+1 ); //move past "DateTime (" - sDate = sDate.substr ( 0, sDate.lastIndexOf(")") ); //remove trailing ")" - var dateArray = sDate.split (','); - var _date = new Date ( dateArray[0], Number(dateArray[1]) - 1, dateArray[2] ); - gHour = dateArray[3]; gMin = dateArray[4]; gSec = dateArray[5]; - return _date; - } - return new Date (); -} - -var regDatePrompt = /^(D|d)(A|a)(T|t)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *\)$/ -function ParseDatePrompt(inDate) -{ - if ( regDatePrompt.test ( inDate ) ) - { - var sDate = inDate.substr ( inDate.indexOf("(")+1 ); //move past "Date (" - sDate = sDate.substr ( 0, sDate.lastIndexOf(")") ); //remove trailing ")" - var dateArray = sDate.split (','); - return new Date ( dateArray[0], Number(dateArray[1]) - 1, dateArray[2] ); - } - return new Date(); -} - -function ParseDate(inDate, bDateTimeFormat) -{ - var result; - - if (bDateTimeFormat == true) { - result = ParseDateTimePrompt(inDate); - } else { - result = ParseDatePrompt(inDate); - } - - return result; -} diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/calendar_param.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/calendar_param.js deleted file mode 100644 index 5d70cbc82..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/calendar_param.js +++ /dev/null @@ -1,704 +0,0 @@ -// Modified Date: 11/30/1999 -// Modified By: Robert W. Husted -// Notes: Added frameset support (changed reference for "newWin" to "top.newWin") -// Also changed Spanish "March" from "Marcha" to "Marzo" -// Fixed JavaScript Date Anomaly affecting days > 28 -// -// Modified by Crystal Decisions -// Removed large amounts of comments to shrink file size. -// Removed multi language support as language set by user as accept-language and navigator.language don't necessarily match -// Removed formatting code as only format wanted is for Crystal Reports Date/DateTime parameters -// Moved resource strings to top of file for translation -// Added A.whatever:visited styles so that followed links appear as if they weren't followed - - -// BEGIN USER-EDITABLE SECTION ----------------------------------------------------- - -// CALENDAR COLORS -topBackground = "black"; // BG COLOR OF THE TOP FRAME -bottomBackground = "white"; // BG COLOR OF THE BOTTOM FRAME -tableBGColor = "black"; // BG COLOR OF THE BOTTOM FRAME'S TABLE -cellColor = "lightgrey"; // TABLE CELL BG COLOR OF THE DATE CELLS IN THE BOTTOM FRAME -headingCellColor = "white"; // TABLE CELL BG COLOR OF THE WEEKDAY ABBREVIATIONS -headingTextColor = "black"; // TEXT COLOR OF THE WEEKDAY ABBREVIATIONS -dateColor = "blue"; // TEXT COLOR OF THE LISTED DATES (1-28+) -focusColor = "#ff0000"; // TEXT COLOR OF THE SELECTED DATE (OR CURRENT DATE) -hoverColor = "darkred"; // TEXT COLOR OF A LINK WHEN YOU HOVER OVER IT -fontStyle = "12pt arial, helvetica"; // TEXT STYLE FOR DATES -headingFontStyle = "bold 12pt arial, helvetica"; // TEXT STYLE FOR WEEKDAY ABBREVIATIONS - -// FORMATTING PREFERENCES -bottomBorder = false; // TRUE/FALSE (WHETHER TO DISPLAY BOTTOM CALENDAR BORDER) -tableBorder = 0; // SIZE OF CALENDAR TABLE BORDER (BOTTOM FRAME) 0=none - -var DateTimeFormat = true; //"DateTime" if true, else a "Date" - -// END USER-EDITABLE SECTION ------------------------------------------------------- - -// DETERMINE BROWSER BRAND -var isNav = false; -var isIE = false; - -// ASSUME IT'S EITHER NETSCAPE OR MSIE -if (navigator.appName == "Netscape") { - isNav = true; -} -else { - isIE = true; -} - -// global variable for top frame and bottom frame -var calDocTop; -var calDocBottom; - -// PRE-BUILD PORTIONS OF THE CALENDAR WHEN THIS JS LIBRARY LOADS INTO THE BROWSER -buildCalParts(); - -// CALENDAR FUNCTIONS BEGIN HERE --------------------------------------------------- - -// SET THE INITIAL VALUE OF THE GLOBAL DATE FIELD -function setDateField(formName, dateField, hiddenField) { - - // ASSIGN THE INCOMING FIELD OBJECT TO A GLOBAL VARIABLE - thisform = document.forms[formName]; - calDateField = thisform[dateField]; - calHiddenField = thisform[hiddenField]; - - // GET THE VALUE OF THE INCOMING FIELD - inDate = thisform[hiddenField].value; - - // SET calDate TO THE DATE IN THE INCOMING FIELD OR DEFAULT TO TODAY'S DATE - setInitialDate(); - - // THE CALENDAR FRAMESET DOCUMENTS ARE CREATED BY JAVASCRIPT FUNCTIONS - calDocTop = buildTopCalFrame(); - calDocBottom = buildBottomCalFrame(); -} - - -// SET THE INITIAL CALENDAR DATE TO TODAY OR TO THE EXISTING VALUE IN dateField -function setInitialDate() { - - calDate = ParseDate(inDate, DateTimeFormat); - - // IF THE INCOMING DATE IS INVALID, USE THE CURRENT DATE - if (isNaN(calDate)) { - - // ADD CUSTOM DATE PARSING HERE - // IF IT FAILS, SIMPLY CREATE A NEW DATE OBJECT WHICH DEFAULTS TO THE CURRENT DATE - calDate = new Date(); - } - - // KEEP TRACK OF THE CURRENT DAY VALUE - calDay = calDate.getDate(); - - // SET DAY VALUE TO 1... TO AVOID JAVASCRIPT DATE CALCULATION ANOMALIES - // (IF THE MONTH CHANGES TO FEB AND THE DAY IS 30, THE MONTH WOULD CHANGE TO MARCH - // AND THE DAY WOULD CHANGE TO 2. SETTING THE DAY TO 1 WILL PREVENT THAT) - calDate.setDate(1); -} - -// CREATE THE TOP CALENDAR FRAME -function buildTopCalFrame() { - - // CREATE THE TOP FRAME OF THE CALENDAR - var calDoc = - "" + - "" + - "" + - "" + - "
    " + - "
    " + - "" + - "" + - "" + - "" + - "" + - "" + - "
    " + - "
    " + - getMonthSelect() + - "" + - "
    " + - "
    " + - "
    " + - "" + - "
    " + - "
    " + - "
    " + - "
    " + - "" + - ""; - - return calDoc; -} - -// CREATE THE BOTTOM CALENDAR FRAME -// (THE MONTHLY CALENDAR) -function buildBottomCalFrame() { - // START CALENDAR DOCUMENT - var calDoc = calendarBegin; - - // GET MONTH, AND YEAR FROM GLOBAL CALENDAR DATE - month = calDate.getMonth(); - year = calDate.getFullYear(); - - - // GET GLOBALLY-TRACKED DAY VALUE (PREVENTS JAVASCRIPT DATE ANOMALIES) - day = calDay; - - var i = 0; - - // DETERMINE THE NUMBER OF DAYS IN THE CURRENT MONTH - var days = getDaysInMonth(); - - // IF GLOBAL DAY VALUE IS > THAN DAYS IN MONTH, HIGHLIGHT LAST DAY IN MONTH - if (day > days) { - day = days; - } - - // DETERMINE WHAT DAY OF THE WEEK THE CALENDAR STARTS ON - var firstOfMonth = new Date (year, month, 1); - - // GET THE DAY OF THE WEEK THE FIRST DAY OF THE MONTH FALLS ON - var startingPos = firstOfMonth.getDay(); - days += startingPos; - - // KEEP TRACK OF THE COLUMNS, START A NEW ROW AFTER EVERY 7 COLUMNS - var columnCount = 0; - - // MAKE BEGINNING NON-DATE CELLS BLANK - for (i = 0; i < startingPos; i++) { - - calDoc += blankCell; - columnCount++; - } - - // SET VALUES FOR DAYS OF THE MONTH - var currentDay = 0; - var dayType = "weekday"; - - // DATE CELLS CONTAIN A NUMBER - for (i = startingPos; i < days; i++) { - - var paddingChar = " "; - - // ADJUST SPACING SO THAT ALL LINKS HAVE RELATIVELY EQUAL WIDTHS - if (i-startingPos+1 < 10) { - padding = "  "; - } - else { - padding = " "; - } - - // GET THE DAY CURRENTLY BEING WRITTEN - currentDay = i-startingPos+1; - - // SET THE TYPE OF DAY, THE focusDay GENERALLY APPEARS AS A DIFFERENT COLOR - if (currentDay == day) { - dayType = "focusDay"; - } - else { - dayType = "weekDay"; - } - - // ADD THE DAY TO THE CALENDAR STRING - calDoc += "" + - "" + padding + currentDay + paddingChar + ""; - - columnCount++; - - // START A NEW ROW WHEN NECESSARY - if (columnCount % 7 == 0) { - calDoc += ""; - } - } - - // MAKE REMAINING NON-DATE CELLS BLANK - for (i=days; i<42; i++) { - - calDoc += blankCell; - columnCount++; - - // START A NEW ROW WHEN NECESSARY - if (columnCount % 7 == 0) { - calDoc += ""; - if (i<41) { - calDoc += ""; - } - } - } - - // FINISH THE NEW CALENDAR PAGE - calDoc += calendarEnd; - - // RETURN THE COMPLETED CALENDAR PAGE - return calDoc; -} - - -// WRITE THE MONTHLY CALENDAR TO THE BOTTOM CALENDAR FRAME -function writeCalendar() { - // CREATE THE NEW CALENDAR FOR THE SELECTED MONTH & YEAR - calDocBottom = buildBottomCalFrame(); - - if (document.getElementById) { // ns6 & ie - top.newWin.frames['bottomCalFrame'].document.getElementById('bottomDiv').innerHTML = calDocBottom; - } else { - // WRITE THE NEW CALENDAR TO THE BOTTOM FRAME - top.newWin.frames['bottomCalFrame'].document.open(); - top.newWin.frames['bottomCalFrame'].document.write(calDocBottom); - top.newWin.frames['bottomCalFrame'].document.close(); - } -} - -// SET THE CALENDAR TO TODAY'S DATE AND DISPLAY THE NEW CALENDAR -function setToday() { - - // SET GLOBAL DATE TO TODAY'S DATE - calDate = new Date(); - - // SET DAY MONTH AND YEAR TO TODAY'S DATE - var month = calDate.getMonth(); - var year = calDate.getFullYear(); - - // SET MONTH IN DROP-DOWN LIST - top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex = month; - - // SET YEAR VALUE - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - - // SET THE DAY VALUE - calDay = calDate.getDate(); - - // DISPLAY THE NEW CALENDAR - writeCalendar(); -} - - -// SET THE GLOBAL DATE TO THE NEWLY ENTERED YEAR AND REDRAW THE CALENDAR -function setYear() { - - // GET THE NEW YEAR VALUE - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - - // IF IT'S A FOUR-DIGIT YEAR THEN CHANGE THE CALENDAR - if (isFourDigitYear(year)) { - calDate.setFullYear(year); - writeCalendar(); - top.newWin.frames['topCalFrame'].document.calControl.year.blur(); - } - else { - // HIGHLIGHT THE YEAR IF THE YEAR IS NOT FOUR DIGITS IN LENGTH - top.newWin.frames['topCalFrame'].document.calControl.year.focus(); - top.newWin.frames['topCalFrame'].document.calControl.year.select(); - } -} - - -// SET THE GLOBAL DATE TO THE SELECTED MONTH AND REDRAW THE CALENDAR -function setCurrentMonth() { - - // GET THE NEWLY SELECTED MONTH AND CHANGE THE CALENDAR ACCORDINGLY - var month = top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex; - - calDate.setMonth(month); - writeCalendar(); -} - - -// SET THE GLOBAL DATE TO THE PREVIOUS YEAR AND REDRAW THE CALENDAR -function setPreviousYear() { - - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - - if (isFourDigitYear(year) && year > 1000) { - year--; - calDate.setFullYear(year); - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - writeCalendar(); - } -} - - -// SET THE GLOBAL DATE TO THE PREVIOUS MONTH AND REDRAW THE CALENDAR -function setPreviousMonth() { - - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - if (isFourDigitYear(year)) { - var month = top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex; - - // IF MONTH IS JANUARY, SET MONTH TO DECEMBER AND DECREMENT THE YEAR - if (month == 0) { - month = 11; - if (year > 1000) { - year--; - calDate.setFullYear(year); - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - } - } - else { - month--; - } - calDate.setMonth(month); - top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex = month; - writeCalendar(); - } -} - - -// SET THE GLOBAL DATE TO THE NEXT MONTH AND REDRAW THE CALENDAR -function setNextMonth() { - - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - - if (isFourDigitYear(year)) { - var month = top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex; - - // IF MONTH IS DECEMBER, SET MONTH TO JANUARY AND INCREMENT THE YEAR - if (month == 11) { - month = 0; - year++; - calDate.setFullYear(year); - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - } - else { - month++; - } - calDate.setMonth(month); - top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex = month; - writeCalendar(); - } -} - - -// SET THE GLOBAL DATE TO THE NEXT YEAR AND REDRAW THE CALENDAR -function setNextYear() { - var year = top.newWin.frames['topCalFrame'].document.calControl.year.value; - if (isFourDigitYear(year)) { - year++; - calDate.setFullYear(year); - top.newWin.frames['topCalFrame'].document.calControl.year.value = year; - writeCalendar(); - } -} - - -// GET NUMBER OF DAYS IN MONTH -function getDaysInMonth() { - - var days; - var month = calDate.getMonth()+1; - var year = calDate.getFullYear(); - - // RETURN 31 DAYS - if (month==1 || month==3 || month==5 || month==7 || month==8 || - month==10 || month==12) { - days=31; - } - // RETURN 30 DAYS - else if (month==4 || month==6 || month==9 || month==11) { - days=30; - } - // RETURN 29 DAYS - else if (month==2) { - if (isLeapYear(year)) { - days=29; - } - // RETURN 28 DAYS - else { - days=28; - } - } - return (days); -} - - -// CHECK TO SEE IF YEAR IS A LEAP YEAR -function isLeapYear (Year) { - - if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) { - return (true); - } - else { - return (false); - } -} - - -// ENSURE THAT THE YEAR IS FOUR DIGITS IN LENGTH -function isFourDigitYear(year) { - - if (year == null || year.match(/^[0-9]{4}$/) == null){ - top.newWin.frames['topCalFrame'].document.calControl.year.value = calDate.getFullYear(); - top.newWin.frames['topCalFrame'].document.calControl.year.select(); - top.newWin.frames['topCalFrame'].document.calControl.year.focus(); - } - else { - return true; - } -} - - -// BUILD THE MONTH SELECT LIST -function getMonthSelect() { - - monthArray = new Array(L_January, L_February, L_March, L_April, L_May, L_June, - L_July, L_August, L_September, L_October, L_November, L_December); - - - // DETERMINE MONTH TO SET AS DEFAULT - var activeMonth = calDate.getMonth(); - - // START HTML SELECT LIST ELEMENT - monthSelect = ""; - - // RETURN A STRING VALUE WHICH CONTAINS A SELECT LIST OF ALL 12 MONTHS - return monthSelect; -} - - -// SET DAYS OF THE WEEK DEPENDING ON LANGUAGE -function createWeekdayList() { - - weekdayArray = new Array(L_Su,L_Mo,L_Tu,L_We,L_Th,L_Fr,L_Sa); - - - // START HTML TO HOLD WEEKDAY NAMES IN TABLE FORMAT - var weekdays = ""; - - // LOOP THROUGH WEEKDAY ARRAY - for (i in weekdayArray) { - - weekdays += "" + weekdayArray[i] + ""; - } - weekdays += ""; - - // RETURN TABLE ROW OF WEEKDAY ABBREVIATIONS TO DISPLAY ABOVE THE CALENDAR - return weekdays; -} - - -// PRE-BUILD PORTIONS OF THE CALENDAR (FOR PERFORMANCE REASONS) -function buildCalParts() { - - // GENERATE WEEKDAY HEADERS FOR THE CALENDAR - weekdays = createWeekdayList(); - - // BUILD THE BLANK CELL ROWS - blankCell = "   "; - - // BUILD THE TOP PORTION OF THE CALENDAR PAGE USING CSS TO CONTROL SOME DISPLAY ELEMENTS - calendarBegin = - "" + - "" + - // STYLESHEET DEFINES APPEARANCE OF CALENDAR - "" + - - "" + - ""; - if (document.getElementById) { // ns6 & ie - calendarBegin += - "
    "; - } - calendarBegin += - "
    "; - - // NAVIGATOR NEEDS A TABLE CONTAINER TO DISPLAY THE TABLE OUTLINES PROPERLY - if (isNav) { - calendarBegin += - "
    "; - } - - // BUILD WEEKDAY HEADINGS - calendarBegin += - "" + - weekdays + - ""; - - - // BUILD THE BOTTOM PORTION OF THE CALENDAR PAGE - calendarEnd = ""; - - // WHETHER OR NOT TO DISPLAY A THICK LINE BELOW THE CALENDAR - if (bottomBorder) { - calendarEnd += ""; - } - - // NAVIGATOR NEEDS A TABLE CONTAINER TO DISPLAY THE BORDERS PROPERLY - if (isNav) { - calendarEnd += "
    "; - } - - // END THE TABLE AND HTML DOCUMENT - calendarEnd += - "
    " + - "
    "; - if (document.getElementById) { // ns6 & ie - calendarEnd += - "
    "; - } - calendarEnd += - "" + - ""; -} - - -// REPLACE ALL INSTANCES OF find WITH replace -// inString: the string you want to convert -// find: the value to search for -// replace: the value to substitute -// -// usage: jsReplace(inString, find, replace); -// example: jsReplace("To be or not to be", "be", "ski"); -// result: "To ski or not to ski" -// -function jsReplace(inString, find, replace) { - - var outString = ""; - - if (!inString) { - return ""; - } - - // REPLACE ALL INSTANCES OF find WITH replace - if (inString.indexOf(find) != -1) { - // SEPARATE THE STRING INTO AN ARRAY OF STRINGS USING THE VALUE IN find - t = inString.split(find); - - // JOIN ALL ELEMENTS OF THE ARRAY, SEPARATED BY THE VALUE IN replace - return (t.join(replace)); - } - else { - return inString; - } -} - - -// JAVASCRIPT FUNCTION -- DOES NOTHING (USED FOR THE HREF IN THE CALENDAR CALL) -function doNothing() { -} - - -// ENSURE THAT VALUE IS TWO DIGITS IN LENGTH -function makeTwoDigit(inValue) { - - var numVal = parseInt(inValue, 10); - - // VALUE IS LESS THAN TWO DIGITS IN LENGTH - if (numVal < 10) { - - // ADD A LEADING ZERO TO THE VALUE AND RETURN IT - return("0" + numVal); - } - else { - return numVal; - } -} - - -// SET FIELD VALUE TO THE DATE SELECTED AND CLOSE THE CALENDAR WINDOW -function returnDate(inDay) -{ - // inDay = THE DAY THE USER CLICKED ON - calDate.setDate(inDay); - - // SET THE DATE RETURNED TO THE USER - var day = calDate.getDate(); - var month = calDate.getMonth()+1; - var year = calDate.getFullYear(); - - // SET THE VALUE OF THE FIELD THAT WAS PASSED TO THE CALENDAR - var dt = new Date(year, month - 1, day, 0, 0, 0); - if (this.formatJsDate) - calDateField.value = formatJsDate(dt); - else - calDateField.value = GLDT(dt,true, false); - - calHiddenField.value = "Date("; - calHiddenField.value += year; - calHiddenField.value += ","; - calHiddenField.value += month; - calHiddenField.value += ","; - calHiddenField.value += day; - calHiddenField.value += ")"; - - // GIVE FOCUS BACK TO THE DATE FIELD - calDateField.focus(); - - // CLOSE THE CALENDAR WINDOW - top.newWin.close() -} - -var gHour = "0"; -var gMin = "0"; -var gSec = "0"; -var regDateTimePrompt = /^(D|d)(A|a)(T|t)(E|e)(T|t)(I|i)(M|m)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *, *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/ -function ParseDateTimePrompt(inDate) -{ - if ( regDateTimePrompt.test ( inDate ) ) - { - var sDate = inDate.substr ( inDate.indexOf("(")+1 ); //move past "DateTime (" - sDate = sDate.substr ( 0, sDate.lastIndexOf(")") ); //remove trailing ")" - var dateArray = sDate.split (','); - var _date = new Date ( dateArray[0], Number(dateArray[1]) - 1, dateArray[2] ); - gHour = dateArray[3]; gMin = dateArray[4]; gSec = dateArray[5]; - return _date; - } - return new Date (); -} - -var regDatePrompt = /^(D|d)(A|a)(T|t)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *\)$/ -function ParseDatePrompt(inDate) -{ - if ( regDatePrompt.test ( inDate ) ) - { - var sDate = inDate.substr ( inDate.indexOf("(")+1 ); //move past "Date (" - sDate = sDate.substr ( 0, sDate.lastIndexOf(")") ); //remove trailing ")" - var dateArray = sDate.split (','); - return new Date ( dateArray[0], Number(dateArray[1]) - 1, dateArray[2] ); - } - return new Date(); -} - -function ParseDate(inDate, bDateTimeFormat) -{ - var result; - - if (bDateTimeFormat == true) { - result = ParseDateTimePrompt(inDate); - } else { - result = ParseDatePrompt(inDate); - } - - return result; -} diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ArgumentNormalizer.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ArgumentNormalizer.js deleted file mode 100644 index 5898e9011..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ArgumentNormalizer.js +++ /dev/null @@ -1,126 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/** - * ArgumentNormalizer names and transforms function arguments based upon a - * set of rules provided by the user. - */ - -if (typeof bobj == 'undefined') { - bobj = {}; -} - -bobj.ArgumentNormalizer = function() { - this._rules = []; -}; - -bobj.ArgumentNormalizer.prototype = { - - /** - * Add a rule for naming and transforming arguments. - * When arguments are normalized each rule is applied until a match is - * found. A rule is a set of elements of the following form: - * - * { - * test: [function, null], - * name: [string], - * xform: [function - optional] - * } - * - * There should be one element of the above form for each argument expected - * by the rule. A rule is a match if and only if true is returned by every - * element's test function when passed its corresponding argument. A null - * test function is considered to return true. Rules are tested in the order - * they were added until one matches or there are no more to test. - * - * When a rule matches, it applies the optional xform (transform) functions - * to it arguments and saves the results in a return object with properties - * specified by the names in the rule elements. - * - * Example: - * - * n.addRule({test:isString, name:'description', xform:trim}, - * {test:isNumber, name:'id'}); - * n.addRule({test:isString, name:'description', xform:trim}, - * {test:isString, name:'id', xform:parseInt}); - * - * n.normalize(" Blue car", 11); // First rule matches - * -> {description: "Blue car", id: 11} - * - * n.normalize("Green car ", "55"); // Second rule matches - * -> {description: "Green car", id: 55} - * - * Rule elements may be passed as arrays for brevity. The first rule - * from the example above would be added as follows: - * - * n.addRule([isString, 'description', trim], [isNumber, 'id']); - * - * When an element simply names an argument (no test or transform is - * desired), it may be specified as a string. For example: - * - * n.addRule([isString, 'description', trim], 'id'); - */ - addRule: function() { - this._rules.push(arguments); - }, - - /** - * Normalize the arguments based upon the rules that have been added - * - * @param arguments Arguments to be normalized - * - * @return An object with a property for each transformed argument or null - */ - normalize: function() { - for (var rIdx = 0, nRules = this._rules.length; rIdx < nRules; ++rIdx) { - var rule = this._rules[rIdx]; - - if (rule.length == arguments.length) { - var normalArgs = {}; - - for (var aIdx = 0, nArgs = rule.length; aIdx < nArgs; ++aIdx) { - var argVal = arguments[aIdx]; - var element = rule[aIdx]; - - if (bobj.isString(element)) { // No test specified, just name the argument - var argTest = null; - var argName = element; - var argXform = null; - } - else if (bobj.isArray(element)) { - var argTest = element[0]; - var argName = element[1]; - var argXform = element[2]; - } - else { - var argTest = element.test; - var argName = element.name; - var argXform = element.xform; - } - - if (!argTest || argTest(argVal)) { - normalArgs[argName] = argXform ? argXform(argVal) : argVal; - if (aIdx+1 == nArgs) { // if no more args to check - return normalArgs; // Rule matched, return normalized args - } - } - else { - break; // Rule didn't match, try the next one - } - } - } - } - return null; - }, - - /** - * Applies an array of arguments to normalize() - * - * @param argsArray [Array] Array of arguments to normalize - * - * @return Normalized arguments or null - */ - normalizeArray: function(argsArray) { - return this.normalize.apply(this, argsArray); - } -}; - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ButtonList.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ButtonList.js deleted file mode 100644 index 4e1c18965..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ButtonList.js +++ /dev/null @@ -1,244 +0,0 @@ - -//** ButtonList Widget ************************************************************* - -/** - * ButtonList Constructor - */ -bobj.crv.newButtonList = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - numLines: null, // null allows the height to grow (will fit within the viewport) - buttonWidth: 24, - buttonTooltip: L_bobj_crv_TabList, - changeCB: null, - label: null, - tabIndex: 0, - multiSelect: false, - menuWidth: null, - menuTooltip: null - }, kwArgs); - - var o = newButtonWidget( - kwArgs.id, - kwArgs.label, - bobj.crv.ButtonList._onClick, - kwArgs.buttonWidth, - null, - kwArgs.buttonTooltip, - kwArgs.tabIndex, - 0, _skin+"menus.gif", 7, 16, 0, 81, true, 0, 97); - - o._menu = newListWidget( - kwArgs.id + "_menu", - MochiKit.Base.bind(bobj.crv.ButtonList._onChange, o), - kwArgs.multiSelect, - kwArgs.menuWidth, - kwArgs.numLines || 2, - kwArgs.menuTooltip, - null, //dblClickCB - null); //keyUpCB - - o._listItems = []; - o._blOldInit = o.init; - o._blOldGetHTML = o.getHTML; - o._menuDiv = null; - - o._captureClicks = MenuWidget_captureClicks; - o._releaseClicks = MenuWidget_releaseClicks; - - bobj.fillIn(o, kwArgs); - o.widgetType = 'ButtonList'; - MochiKit.Base.update(o, bobj.crv.ButtonList); - - return o; -}; - -bobj.crv.ButtonList = { - /** - * @return [Widget] Menu/list widget associated with this button. - */ - getMenu : function() { - return this._menu; - }, - - /** - * Add an item to the menu - * - * @param label [String] The text to display in the menu - * @param value [any - opt.] The value associated with the new menu item - * @param isSelected [bool - opt.] True if item should be selected after being added - * @param id [String - opt.] DHTML id associated with menu item; - */ - add : function(label, value, isSelected, id) { - if (this._menu && this._menu.layer) - this._menu.add (label, value, isSelected, id); - - else - this._listItems.push ( { - lbl : label, - val : value, - sel : isSelected, - id : id - }); - }, - - init : function() { - var menu = this._menu; - this._blOldInit (); - menu.init (); - - this._menuDiv = getLayer (this.id + '_menuDiv'); - - var listItems = this._listItems; - for ( var i = 0, len = listItems.length; i < len; ++i) { - var it = listItems[i]; - menu.add (it.lbl, it.val, it.sel, it.id); - } - this._listItems = []; - }, - - getHTML : function() { - var h = bobj.html; - - var menuDivAtts = { - id : this.id + '_menuDiv', - onmousedown : 'event.cancelBubble=true', - 'class' : 'menuFrame', - style : { - visibility : 'hidden', - position : 'absolute', - 'z-index' : 5000 - } - }; - return this._blOldGetHTML () + h.DIV (menuDivAtts, this._menu.getHTML ()); - }, - - /** - * @return [bool] True if and only if the menu is visible - */ - isMenuShowing : function() { - return this._menuDiv && this._menuDiv.style.visibility != 'hidden'; - }, - - /** - * Hide the menu - */ - hideMenu : function() { - if (this._menuDiv) { - this._menuDiv.style.visibility = 'hidden'; - } - }, - - /** - * Position and show the menu - */ - showMenu : function() { - if (this._menuDiv) { - this._captureClicks (); - - var body = document.body; - - if (this._menuDiv.parentNode !== body) { - body.appendChild (this._menuDiv); - } - - var divStyle = this._menuDiv.style; - divStyle.left = '-1000px'; - divStyle.top = '-1000px'; - divStyle.visibility = 'visible'; - - var winDim = MochiKit.Style.getViewportDimensions (); - - var w = this._menu.layer.offsetWidth; - var h = this._menu.getHeight (); - - /* - * If numLines wasn't specified, use as much space as necessary while remaining within the viewport - */ - if (!this.numLines) { - h = Math.min (this._menu.layer.scrollHeight + 10, winDim.h - 10); - this._menu.resize (null, h); - } - - /* Place the menu below the button and aligned with the left edge */ - var btnPos = getPosScrolled (this.layer); - var x = btnPos.x; - var y = btnPos.y + this.getHeight (); - - /* Change coordinates so the whole menu is on the screen */ - var xRight = x + w + 4; - var yBottom = y + h + 4; - - var xMax = winDim.w + body.scrollLeft - Math.max (0, (winDim.w - body.offsetWidth)); - if (xRight > xMax) { - x = Math.max (0, x - (xRight - xMax)); - } - - var yMax = winDim.h + body.scrollTop; - if (yBottom > yMax) { - y = Math.max (0, y - (yBottom - yMax)); - } - - divStyle.left = x + 'px'; - divStyle.top = y + 'px'; - } - }, - - /** - * Private. Capture clicks in the current document so that the menu can be hidden automatically. - */ - _captureClicks : function() { - var BIND = MochiKit.Base.bind; - try { - this.layer.onmousedown = BIND (this._onCaptureClick, this, true); - this._oldMousedown = document.onmousedown; - document.onmousedown = BIND (this._onCaptureClick, this, false); - } catch (ex) { - if (bobj.crv.config.isDebug) { - throw ex; - } - } - }, - - /** - * Private. Stop capturing clicks. - */ - _releaseClicks : function() { - if (this.layer.onmousedown) { /* non-null if clicks are being captured */ - this.layer.onmousedown = null; - document.onmousedown = this._oldMousedown; - } - }, - - - /** - * Private. Button click callback. - */ - _onClick : function() { - if (!this._cancelNextClick) - this.showMenu (); - - this._cancelNextClick = false; - }, - - /** - * Private. Menu change callback. - */ - _onChange : function() { - this._releaseClicks (); - this.hideMenu (); - - if (this.changeCB) - this.changeCB (); - }, - - /** - * Private. Called when a click is captured (after _captureClicks has been called) - */ - _onCaptureClick : function(cancelNext, e) { - this._cancelNextClick = cancelNext; - eventCancelBubble (e); - this.hideMenu (); - this._releaseClicks (); - } -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Calendar.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Calendar.js deleted file mode 100644 index 4960b1f87..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Calendar.js +++ /dev/null @@ -1,539 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof bobj == 'undefined') { - bobj = {}; -} -if (typeof bobj.crv == 'undefined') { - bobj.crv = {}; -} -if (typeof bobj.crv.Calendar == 'undefined') { - bobj.crv.Calendar = {}; -} - -/* -================================================================================ -Calendar Widget -================================================================================ -*/ - -/** - * Get a shared calendar instance - */ -bobj.crv.Calendar.getInstance = function() { - if (!bobj.crv.Calendar.__instance) { - bobj.crv.Calendar.__instance = bobj.crv.newCalendar(); - } - return bobj.crv.Calendar.__instance; -}; - -bobj.crv.Calendar.Signals = { - OK_CLICK: 'okClick', - CANCEL_CLICK: 'cancelClick', - ON_HIDE: 'onHide' -}; - -bobj.crv.newCalendar = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - kwArgs = UPDATE({ - id: bobj.uniqueId() + "_calendar", - showTime: false, - date: new Date(), - // List of formats to match in order of preference. Once a format is - // matched, the time field will be displayed in that format. - timeFormats: ["HH:mm:ss", "H:mm:ss", "H:m:s", "HH:mm", "H:mm", "H:m", - "h:mm:ss a", "h:m:s a", "h:mm:ssa", "h:m:sa", "h:mm a", "h:m a", - "h:mma", "h:ma"] - }, kwArgs); - - var o = newMenuWidget( ); - - o.widgetType = 'Calendar'; - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - - // Update instance with member functions - o._menuJustInTimeInit = o.justInTimeInit; - UPDATE(o, bobj.crv.Calendar); - - o._curTimeFormat = o.timeFormats[0]; - o._cells = []; - o._firstDay = 0; - o._numDays = 0; - - return o; -}; - -bobj.crv.Calendar._createHeaderButtons = function() { - var w = 8; - var h = 4; - var dx = 46; - var dyUp = 0; - var dyDown = 12; - - var bind = MochiKit.Base.bind; - - this._prevMonthBtn = newIconWidget(this.id+"_pm",_skin+'../lov.gif',bind(this._onPrevMonthClick, this),"",_calendarPrevMonthLab,w,h,dx,dyDown); - this._prevYearBtn = newIconWidget(this.id+"_py",_skin+'../lov.gif',bind(this._onPrevYearClick, this),"",_calendarPrevYearLab,w,h,dx,dyDown); - this._nextMonthBtn = newIconWidget(this.id+"_nm",_skin+'../lov.gif',bind(this._onNextMonthClick, this),"",_calendarNextMonthLab,w,h,dx,dyUp); - this._nextYearBtn = newIconWidget(this.id+"_ny",_skin+'../lov.gif',bind(this._onNextYearClick, this),"",_calendarNextYearLab,w,h,dx,dyUp); -}; - -bobj.crv.Calendar._createTimeTextField = function() { - var bind = MochiKit.Base.bind; - - this._timeField = newTextFieldWidget( - this.id + '_time', - bind(this._onTimeChange, this), //changeCB - null, //maxChar - null, //keyUpCB - null, //enterCB - true, //noMargin - null, //tooltip - null, //width - null, //focusCB - null); //blurCB -}; - -bobj.crv.Calendar._createOKCancelButtons = function() { - var bind = MochiKit.Base.bind; - this._okBtn = newButtonWidget(this.id + "_ok", L_bobj_crv_OK, bind(this._onOKClick, this)); - this._cancelBtn = newButtonWidget(this.id + "_cancel", L_bobj_crv_Cancel, bind(this._onCancelClick, this)); -}; - -/** - * Widget will auto-initialize the first time its show method is called. - * Client code shoud not call this method. - */ -bobj.crv.Calendar.justInTimeInit = function() { - this._menuJustInTimeInit(); - - this._prevMonthBtn.init(); - this._prevYearBtn.init(); - this._nextMonthBtn.init(); - this._nextYearBtn.init(); - - this._okBtn.init(); - this._cancelBtn.init(); - - this._timeField.init(); - this._timeField.layer.style.width = '100%'; - this._timeField.setValue(bobj.external.date.formatDate(this.date, this._curTimeFormat)); - - this._timeRow = getLayer(this.id + '_timeRow'); - this._timeSep = getLayer(this.id + '_timeSep'); - - this._month = getLayer(this.id + "_month"); - this._year = getLayer(this.id + "_year"); - - var numCells = 6 * 7; // six rows in the calendar with 7 days each - for (var i = 0; i < numCells; i++) { - this._cells[i] = getLayer(this.id + '_c' + i); - } - - this._update(); -}; - -/** - * Widget will be written into the document the first time its show method is called. - * Client code shoud not call this method. - */ -bobj.crv.Calendar.getHTML = function() { - var h = bobj.html; - var TABLE = h.TABLE; - var TBODY = h.TBODY; - var TR = h.TR; - var TD = h.TD; - var DIV = h.DIV; - var SPAN = h.SPAN; - var A = h.A; - - this._createHeaderButtons(); - this._createTimeTextField(); - this._createOKCancelButtons(); - - var onkeydown = "MenuWidget_keyDown('" + this.id + "', event); return true"; - var onmousedown = "eventCancelBubble(event)"; - var onmouseup = "eventCancelBubble(event)"; - var onkeypress = "eventCancelBubble(event)"; - - var dayHeaderAtt = {'class':"calendarTextPart"}; - - var html = TABLE({dir: 'ltr', id: this.id, border:"0", cellpadding:"0", cellspacing:"0", - onkeydown: onkeydown, onmousedown: onmousedown, onmouseup: onmouseup, onkeypress: onkeypress, - 'class':"menuFrame", style:{cursor:"default", visibility:"hidden",'z-index': 10000}}, - TBODY(null, - TR(null, TD(null, this._getMonthYearHTML())), - TR(null, TD({align:"center"}, - TABLE({border:"0", cellspacing:"0", cellpadding:"0", style:{margin:"2px", 'margin-top': "6px"}}, - TR({align:"center"}, - TD(dayHeaderAtt, L_bobj_crv_SundayShort), - TD(dayHeaderAtt, L_bobj_crv_MondayShort), - TD(dayHeaderAtt, L_bobj_crv_TuesdayShort), - TD(dayHeaderAtt, L_bobj_crv_WednesdayShort), - TD(dayHeaderAtt, L_bobj_crv_ThursdayShort), - TD(dayHeaderAtt, L_bobj_crv_FridayShort), - TD(dayHeaderAtt, L_bobj_crv_SaturdayShort)), - TR(null, TD({colspan:"7", style:{padding:"2px"}}, this._getSeparatorHTML())), - this._getDaysHTML(), - TR(null, TD({colspan:"7", style:{padding:"2px"}}, this._getSeparatorHTML())), - TR({id:this.id + '_timeRow', style:{display:this.showTime ? '' : 'none'}}, - TD({colspan:"7", style:{'padding-top':"3px", 'padding-bottom':"3px", 'padding-right':"10px", 'padding-left':"10px"}}, - this._timeField.getHTML())), - TR({id:this.id + '_timeSep',style:{display:this.showTime ? '' : 'none'}}, - TD({colspan:"7", style:{padding:"2px"}}, this._getSeparatorHTML())), - TR(null, TD({colspan:"7", align:"right", style:{'padding-bottom':"3px", 'padding-top':"3px"}}, - TABLE(null, TBODY(null, TR(null, - TD(null, this._okBtn.getHTML()), - TD(null, this._cancelBtn.getHTML()))))))))))); - - return this._getLinkHTML('startLink_' + this.id) + html + this._getLinkHTML('endLink_' + this.id); -}; - -bobj.crv.Calendar._getMonthYearHTML = function() { - var h = bobj.html; - var TABLE = h.TABLE; - var TBODY = h.TBODY; - var TR = h.TR; - var TD = h.TD; - var DIV = h.DIV; - var SPAN = h.SPAN; - - return TABLE({'class':"dialogzone", width:"100%", cellpadding:"0", cellspacing:"0"}, - TBODY(null, - TR(null, - TD({style:{'padding-top':"1px"}}, this._nextMonthBtn.getHTML()), - TD({rowspan:"2", width:"100%", align:"center", 'class':"dialogzone"}, - SPAN({id:this.id + "_month", tabIndex:"0"}, _month[this.date.getMonth()]), - "  ", - SPAN({id:this.id + "_year", tabIndex:"0"}, this.date.getFullYear())), - TD({style:{'pading-top':"1px"}}, this._nextYearBtn.getHTML())), - TR({valign:"top"}, - TD({style:{'padding-bottom':"1px"}}, this._prevMonthBtn.getHTML()), - TD({style:{'padding-bottom':"1px"}}, this._prevYearBtn.getHTML())))); -}; - -bobj.crv.Calendar._getSeparatorHTML = function() { - var h = bobj.html; - var TABLE = h.TABLE; - var TBODY = h.TBODY; - var TR = h.TR; - var TD = h.TD; - - return TABLE({width:"100%", - height:"3", - cellpadding:"0", - cellspacing:"0", - border:"0", - style:backImgOffset(_skin+"menus.gif",0,80)}, - TBODY(null, TR(null, TD()))); -}; - -bobj.crv.Calendar._getLinkHTML = function(id) { - return bobj.html.A({ - id: id, - href: "javascript:void(0)", - onfocus: "MenuWidget_keepFocus('"+this.id+"')", - style:{ - visibility:"hidden", - position:"absolute" - }}); -}; - -bobj.crv.Calendar._getDaysHTML = function() { - var TD = bobj.html.TD; - var DIV = bobj.html.DIV; - var html = ''; - - for (i = 0; i < 6; ++i) { - html += ''; - - for (j = 0; j < 7; ++j) { - var cellNum = j + (i * 7); - var eventArgs = "(this," + cellNum + "," + "event);"; - - html += TD({id: this.id + '_c' + (i * 7 + j), - 'class':"calendarTextPart", - onmousedown: "bobj.crv.Calendar._onDayMouseDown" + eventArgs, - onmouseover: "bobj.crv.Calendar._onDayMouseOver" + eventArgs, - onmouseout: "bobj.crv.Calendar._onDayMouseOut" + eventArgs, - ondblclick: "bobj.crv.Calendar._onDayDoubleClick" + eventArgs, - onkeydown: "bobj.crv.Calendar._onDayKeyDown" + eventArgs}, - DIV({'class':"menuCalendar"})); - } - - html += ''; - } - - return html; -}; - -/** - * Update the calendar's display using the current date value - */ -bobj.crv.Calendar._update = function() { - var numCells = 6 * 7; // six rows in the calendar with 7 days each - var curDate = this.date.getDate(); - - var info = this._getMonthInfo(this.date.getMonth(), this.date.getFullYear()); - - var firstCellInMonth = info.firstDay; - this._firstDay = info.firstDay; - this._numDays = info.numDays; - - var year = "" + this.date.getFullYear(); - while (year.length < 4) { - year = "0" + year; - } - this._year.innerHTML = year; - this._month.innerHTML = _month[this.date.getMonth()]; - - this._selectedDate = null; - - for (var cellNum = 0; cellNum < numCells; cellNum++) { - var cell = this._cells[cellNum].firstChild; - var cssClass = "menuCalendar"; - var cellDate = this._getDateFromCellNum(cellNum); - - if (cellDate < 1 || cellDate > info.numDays) { - cell.innerHTML = ""; - cell.tabIndex = "-1"; - } - else { - cell.innerHTML = "" + cellDate; - cell.tabIndex = "0"; - if (cellDate == curDate) { - cssClass = "menuCalendarSel"; - this._selectedDay = cell; - } - } - - cell.className = cssClass; - } -}; - -bobj.crv.Calendar._getMonthInfo = function(month, year) { - var date = new Date(); - date.setDate(1); - date.setFullYear(year); - date.setMonth(month); - - var firstDay = date.getDay(); // First day of the week in this month - - date.setDate(28); - var lastDate = 28; // Last date in this month - - for (var i = 29; i < 32; i++) { - date.setDate(i); - if (date.getMonth() != month) { - break; - } - lastDate = i; - } - - return {firstDay: firstDay, numDays: lastDate}; -}; - -bobj.crv.Calendar._setDayOfMonth = function(date) { - if (date > 0 && date <= this._numDays) { - var prevDate = this.date.getDate(); - - if (date != prevDate) { - var prevCell = this._getCellFromDate(prevDate); - - if (prevCell) { - prevCell.firstChild.className = "menuCalendar"; - } - - this._getCellFromDate(date).firstChild.className = "menuCalendarSel"; - this.date.setDate(date); - } - } -}; - -bobj.crv.Calendar._getCellFromDate = function(date) { - var cellNum = date + this._firstDay - 1; - return this._cells[cellNum]; -}; - -bobj.crv.Calendar._getDateFromCellNum = function(cellNum) { - return cellNum - this._firstDay + 1; -}; - -bobj.crv.Calendar._onDayMouseOver = function(node, cellNum, event) { - var o = getWidget(node); - var div = node.firstChild; - - var date = cellNum - o._firstDay + 1; - if (date < 1 || date > o._numDays) { - div.className = "menuCalendar"; - } - else { - div.className = "menuCalendarSel"; - } -}; - -bobj.crv.Calendar._onDayMouseOut = function(node, cellNum, event) { - var o = getWidget(node); - var div = node.firstChild; - - var date = cellNum - o._firstDay + 1; - - if (date != o.date.getDate()) { - div.className = "menuCalendar"; - } -}; - -bobj.crv.Calendar._onDayMouseDown = function(node, cellNum, event) { - var o = getWidget(node); - var date = cellNum - o._firstDay + 1; - o._setDayOfMonth(date); -}; - -bobj.crv.Calendar._onDayDoubleClick = function(node, cellNum, event) { - var o = getWidget(node); - o._onOKClick(); -}; - -bobj.crv.Calendar._onDayKeyDown = function(node, cellNum, event) { - event = new MochiKit.Signal.Event(node, event); - var key = event.key().string; - if (key === "KEY_ENTER") { - var o = getWidget(node); - var date = cellNum - o._firstDay + 1; - o._setDayOfMonth(date); - } -}; - -bobj.crv.Calendar._onPrevMonthClick = function() { - var d = this.date; - var oldMonth = d.getMonth(); - if(d.getMonth() === 0) { - d.setYear(d.getFullYear() -1); - d.setMonth(11); - } - else { - d.setMonth(d.getMonth() - 1); - if (oldMonth === d.getMonth()) { - // that means we have decremented 0 month instead of 1. This happens if the current date is Oct 31, for eg. Since there's no Sept 31, it jumps to October 1. - d.setMonth(oldMonth-1); - } - } - this._update(); -}; - -bobj.crv.Calendar._onPrevYearClick = function() { - this.date.setFullYear(this.date.getFullYear() - 1); - this._update(); -}; - -bobj.crv.Calendar._onNextMonthClick = function() { - var d = this.date; - var oldMonth = d.getMonth(); - d.setMonth(d.getMonth() + 1); - if ((oldMonth+1) < d.getMonth()) { - // that means we have incremented 2 months instead of 1. This happens if the current date is Oct 31, for eg. Since there's no Nov 31, it jumps to Dec 1. - // For Dec 31, we don't need to worry because there's Jan 31. - d.setMonth(oldMonth+1); - } - this._update(); -}; - -bobj.crv.Calendar._onNextYearClick = function() { - this.date.setFullYear(this.date.getFullYear() + 1); - this._update(); -}; - -bobj.crv.Calendar._onOKClick = function() { - this.restoreFocus(); - MochiKit.Signal.signal(this, this.Signals.OK_CLICK, this._copyDate(this.date)); - this.show(false); -}; - -bobj.crv.Calendar._copyDate = function(date) { - if (date) { - return new Date(date.getFullYear(), - date.getMonth(), - date.getDate(), - date.getHours(), - date.getMinutes(), - date.getSeconds(), - date.getMilliseconds()); - } - return new Date(); -}; - -bobj.crv.Calendar._onCancelClick = function() { - this.restoreFocus(); - this.show(false); - MochiKit.Signal.signal(this, this.Signals.CANCEL_CLICK); -}; - -bobj.crv.Calendar._onTimeChange = function() { - var text = this._timeField.getValue(); - var date = null; - var format = null; - - for (var i = 0; i < this.timeFormats.length && date === null; ++i) { - format = this.timeFormats[i]; - date = bobj.external.date.getDateFromFormat(text, format); - } - - if (date) { - this._curTimeFormat = format; - this.date.setHours(date.getHours()); - this.date.setMinutes(date.getMinutes()); - this.date.setSeconds(date.getSeconds()); - this.date.setMilliseconds(date.getMilliseconds()); - } - else { - this._timeField.setValue(bobj.external.date.formatDate(this.date, this._curTimeFormat)); - } -}; - -bobj.crv.Calendar.setShowTime = function(isShow) { - var disp = isShow ? '' : 'none'; - this.showTime = isShow; - if (this.layer) { - this._timeRow.style.display = disp; - this._timeSep.style.display = disp; - } -}; - -bobj.crv.Calendar.setDate = function(date) { - this.date = date; - if (this.layer) { - this._timeField.setValue(bobj.external.date.formatDate(this.date, this._curTimeFormat)); - this._update(); - } -}; - -/** - * Show the calendar. Will write out the HTML and init the widget also. - * - * @param isShow [bool] Show calendar if true. Hide it if false. - * @param x [int] x coordinate for left of calendar - * @param y [int] y coordinate for top of calendar - * @param isAlignRight [bool, optional] When true, the x coordinate applies to - * the right edge of the calendar - * @param isAlignBottom [bool, optional] When true, the y coordinate applies to - * the bottom edge of the calendar - */ -bobj.crv.Calendar.show = function(isShow, x, y, isAlignRight, isAlignBottom) { - ScrollMenuWidget_show.call(this, isShow, x, y); - if(isShow) { - this.focus(); - } - else { - MochiKit.Signal.signal(this, this.Signals.ON_HIDE); - } -}; - -/** - * Set focus on the Calendar. The currently selected day will receive focus. - */ -bobj.crv.Calendar.focus = function() { - if (this._selectedDay) { - this._selectedDay.focus(); - } -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Colors.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Colors.js deleted file mode 100644 index a3f87af31..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Colors.js +++ /dev/null @@ -1,8 +0,0 @@ -if (typeof bobj == 'undefined') { - bobj = {}; -}; - -bobj.Colors = { - BLACK :'#000000', - GRAY :'#a5a5a5' -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Dialogs.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Dialogs.js deleted file mode 100644 index 8838e5cb6..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Dialogs.js +++ /dev/null @@ -1,933 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof bobj.crv.PrintUI == 'undefined') { - bobj.crv.PrintUI = {}; -} - -if (typeof bobj.crv.ExportUI == 'undefined') { - bobj.crv.ExportUI = {}; -} - -if (typeof bobj.crv.ErrorDialog == 'undefined') { - bobj.crv.ErrorDialog = {}; -} - -if (typeof bobj.crv.ReportProcessingUI == 'undefined') { - bobj.crv.ReportProcessingUI = {}; -} - -/* -================================================================================ -PrintUI -================================================================================ -*/ - -bobj.crv.newPrintUI = function(kwArgs) { - if (!kwArgs.id) { - kwArgs = MochiKit.Base.update({id: bobj.uniqueId()}, kwArgs); - } - - var lbl = kwArgs.submitBtnLabel; - if (!lbl) { - lbl = L_bobj_crv_submitBtnLbl; - } - - var infoTitle = kwArgs.infoTitle; - if (!infoTitle) { - infoTitle = L_bobj_crv_PrintInfoTitle; - } - - var dialogTitle = kwArgs.dialogTitle; - if (!dialogTitle) { - if (kwArgs.isActxPrinting) { - dialogTitle = L_bobj_crv_ActiveXPrintDialogTitle; - } - else { - dialogTitle = L_bobj_crv_PDFPrintDialogTitle; - } - } - - var infoMsg = kwArgs.infoMsg; - if (!infoMsg) { - infoMsg = L_bobj_crv_PrintInfo1; - infoMsg += '\n'; - infoMsg += L_bobj_crv_PrintInfo2; - } - - var o = newDialogBoxWidget(kwArgs.id + '_dialog', - dialogTitle, - 300, - 100, - null, - bobj.crv.PrintUI._cancel, - false); - o.infoMsg = infoMsg; - o.infoTitle = infoTitle; - o.actxId = o.id + '_actx'; - o.actxContainerId = o.id + '_actxdiv'; - o._processingPrinting = false; - o._initOld = o.init; - o._showOld = o.show; - - if (!kwArgs.isActxPrinting) { - o._fromBox = newIntFieldWidget(o.id + "_fromBox", - null, - null, - null, - null, - true, - '', - 50); - o._fromBox.setDisabled = bobj.crv.PrintUI.disabledTextFieldWidget; - o._toBox = newIntFieldWidget(o.id + "_toBox", - null, - null, - null, - null, - true, - '', - 50); - o._toBox.setDisabled = bobj.crv.PrintUI.disabledTextFieldWidget; - - o._submitBtn = newButtonWidget(o.id + "_submitBtn", - lbl, - MochiKit.Base.bind(bobj.crv.PrintUI._submitBtnCB, o)); - - o._submitBtn.setDelayCallback(false); - o._allRadio = newRadioWidget(o.id + "_allRadio", - o.id + "_grp", - L_bobj_crv_PrintAllLbl, - MochiKit.Base.bind(bobj.crv.PrintUI.disabledPageRange ,o, true)); - - o._allRadio.layerClass= "dlgContent"; - - o._rangeRadio = newRadioWidget(o.id + "_rangeRadio", - o.id + "_grp", - L_bobj_crv_PrintPagesLbl, - MochiKit.Base.bind(bobj.crv.PrintUI.disabledPageRange ,o, false)); - - o._rangeRadio.layerClass= "dlgContent"; - } - - o.widgetType = 'PrintUI'; - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - - // Update instance with member functions - MochiKit.Base.update(o, bobj.crv.PrintUI); - - return o; -}; -bobj.crv.PrintUI.disabledTextFieldWidget = function(disabled) -{ - TextFieldWidget_setDisabled.call(this,disabled); - - if(disabled) - { - MochiKit.DOM.addElementClass(this.layer, "textDisabled"); - } - else { - MochiKit.DOM.removeElementClass(this.layer, "textDisabled"); - } -} - -bobj.crv.PrintUI.disabledPageRange = function(bool) -{ - if(this._fromBox && this._toBox) - { - this._fromBox.setDisabled(bool); - this._toBox.setDisabled(bool); - } -} - -bobj.crv.PrintUI._submitBtnCB = function() { - var start = null; - var end = null; - if (this._rangeRadio.isChecked()) { - start = parseInt(this._fromBox.getValue(), 10); - end = parseInt(this._toBox.getValue(), 10); - - if (!start || !end || (start < 0) || (start > end)) { - alert(L_bobj_crv_PrintPageRangeError); - return; - } - } - - if (this.widgetType == 'PrintUI') { - MochiKit.Signal.signal(this, 'printSubmitted', start, end); - } - else { - MochiKit.Signal.signal(this, 'exportSubmitted', start, end, this._comboBox.getSelection().value); - } - - this.show(false); -}; - -bobj.crv.PrintUI._getRPSafeURL = function(url) { - if (!url) { - return; - } - - if (url.indexOf('/') === 0) { - return url; - } - - var winLoc = window.location.href; - - var qPos = winLoc.lastIndexOf('?'); - if (qPos > 0) { - winLoc = winLoc.substring(0, qPos) - } - - var lPos = winLoc.lastIndexOf('/'); - - if (lPos < 0) { - return url; - } - - winLoc = winLoc.substring(0, lPos); - return winLoc + '/' + url; -}; - -bobj.crv.PrintUI._getObjectTag = function(postData) { - var oa = []; - - oa.push(''); - - oa.push(''); - - oa.push(''); - - if (this.lcid) { - oa.push(''); - } - - if (this.url) { - oa.push(''); - } - - if (this.title) { - oa.push(''); - } - - if (this.maxPage) { - oa.push(''); - } - - if (this.paperOrientation) { - oa.push(''); - } - - if (this.paperSize) { - oa.push(''); - } - - if (this.paperWidth) { - oa.push(''); - } - - if (this.paperLength) { - oa.push(''); - } - - if (this.driverName) { - oa.push(''); - } - - if (this.useDefPrinter) { - oa.push(''); - } - - if (this.useDefPrinterSettings) { - oa.push(''); - } - - if (this.sendPostDataOnce) { - oa.push(''); - } - oa.push(''); - - // Add waiting UI while the control is loading - oa.push(''); - oa.push('
    '); - - // Frame Zone - var o = this; - var zoneW=o.getContainerWidth()-10; - var zoneH=o.getContainerHeight()-(2*o.pad+21+10); - oa.push('
    '); - - oa.push(''); - oa.push(''); - oa.push('
    '); - oa.push(img(_skin+'wait01.gif',200,40)); - oa.push('
    '); - oa.push('
    '); - oa.push(convStr(L_bobj_crv_PrintControlProcessingMessage,false,true)); - oa.push('
    '); - - oa.push('
    '); - - oa.push('
    '); - - return oa.join(''); -}; - -bobj.crv.PrintUI._cancel = function () { - if (this.isActxPrinting) { - document.getElementById(this.actxContainerId).innerHTML = ''; - this._processingPrinting = false; - } -}; - -bobj.crv.PrintUI._processPrinting = function(){ - if (!this._processingPrinting){ - var o = document.getElementById(this.actxId); - var w = document.getElementById(this.actxId + '_wait'); - if (o && w){ - o.width = "100%"; - o.height = "100%"; - w.style.display="none"; - } - this._processingPrinting = true; - } - -}; - -bobj.crv.PrintUI.show = function(visible, postBackData) { - this._processingPrinting = false; - if (visible) { - if (!this.layer) { - targetApp(this.getHTML()); - this.init(); - } - if (this.isActxPrinting) { - document.getElementById(this.actxContainerId).innerHTML = this._getObjectTag(postBackData); - } - this._showOld(true); - } - else if (this.layer) { - this._showOld(false); - } -}; - -bobj.crv.PrintUI.init = function() { - this._initOld(); - - if (!this.isActxPrinting) { - this._fromBox.init(); - this._toBox.init(); - this._submitBtn.init(); - - this._allRadio.init(); - this._rangeRadio.init(); - - this._allRadio.check(true); - this._toBox.setDisabled(true); - this._fromBox.setDisabled(true); - - if (this.widgetType == 'ExportUI') { - this._updateExportList(); - } - } -}; - -bobj.crv.PrintUI.getHTML = function(){ - var h = bobj.html; - var o = this; - - var html = o.beginHTML(); - - if (!this.isActxPrinting) { - html += "" + - "" + - "" + - "" + - "" + - "" + - "" + - "
    " + - "
    " + - "" + - "" + - "" + - "" + - "
    " + - "
    " + - "
    " + - "" + - "" + - "
    " + - this._submitBtn.getHTML() + - "
    " + - "
    "; - - - } - else { - html += "
    " + - '' + - '' ; - } - - html += o.endHTML(); - html += bobj.crv.getInitHTML(this.widx); - - return html; -}; - -/* -================================================================================ -ExportUI -================================================================================ -*/ -bobj.crv.newExportUI = function(kwArgs) { - kwArgs = MochiKit.Base.update({ submitBtnLabel:L_bobj_crv_ExportBtnLbl, - dialogTitle:L_bobj_crv_ExportDialogTitle, - infoTitle:L_bobj_crv_ExportInfoTitle, - infoMsg:L_bobj_crv_PrintInfo1, - isExporting:true}, kwArgs); - - var o = bobj.crv.newPrintUI(kwArgs); - - o._comboBox = newCustomCombo( - o.id + "_combo", - MochiKit.Base.bind(bobj.crv.ExportUI._onSelectFormat, o), - false, - 270, - L_bobj_crv_ExportFormatLbl, - _skin + "../transp.gif", // Screen reader can't read its text without transp.gif - 0, - 14); - - //Adjustment to combo box after adding transp.gif as icon - if(o._comboBox) { - o._comboBox.icon.border=0; - o._comboBox.icon.h=14; - o._comboBox.arrow.h=12; - o._comboBox.arrow.dy+=2 - o._comboBox.arrow.disDy+=2 - } - - o.widgetType = 'ExportUI'; - MochiKit.Base.update(o, bobj.crv.ExportUI); - - return o; -}; - -bobj.crv.ExportUI._onSelectFormat = function() { - var format = this._comboBox.getSelection().value; - if (format == 'CrystalReports' || format == 'RPTR' || format == 'RecordToMSExcel' || format == 'RecordToMSExcel2007' || format == 'CharacterSeparatedValues' || format == 'XML') { - this._fromBox.setDisabled(true); - this._toBox.setDisabled(true); - - this._rangeRadio.check(false); - this._rangeRadio.setDisabled(true); - - this._allRadio.check(true); - } - else { - this._rangeRadio.setDisabled(false); - } -}; - -bobj.crv.ExportUI.update = function (update) { - if (!update || update.cons !== "bobj.crv.newExportUI") { - return; - } - - this.availableFormats = update.args.availableFormats; - - if(this._comboBox.initialized()) { - /* - * Uninitialized combobox is not required to be updated as it will - * be updated during initialization - */ - this._updateExportList(); - } -}; - -bobj.crv.ExportUI._updateExportList = function() { - if(!this._comboBox.initialized()) { - this._comboBox.init(); - } - - this._updateComboItems(); - - var item0 = this._comboBox.getItemByIndex(0); - if(item0 != null) - this._comboBox.selectItem(item0); - - this._onSelectFormat(); -}; - -bobj.crv.ExportUI._updateComboItems = function () { - this._comboBox.removeAllMenuItems(); - var itemsCount = (bobj.isArray(this.availableFormats) ? this.availableFormats.length : 0); - - for (var i = 0; i < itemsCount; i++) { - var item = this.availableFormats[i]; - this._comboBox.add(item.name, item.value, item.isSelected); - } -}; - -bobj.crv.ExportUI._getExportList = function() { - return "" + - "" + - (_ie?"" + - "" + - "" + - "
     
    " + - "
    " + - this._comboBox.getHTML() + - "
    "; -}; - -/* -================================================================================ -ErrorDialog - -TODO Dave: If time permits, make dialog resizable with mouse -================================================================================ -*/ - -/** - * Static function. - * @returns [ErrorDialog] Returns a shared Error Dialog - */ -bobj.crv.ErrorDialog.getInstance = function() { - if (!bobj.crv.ErrorDialog.__instance) { - bobj.crv.ErrorDialog.__instance = bobj.crv.newErrorDialog(); - } - return bobj.crv.ErrorDialog.__instance; -}; - -bobj.crv.newErrorDialog = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - title: L_bobj_crv_Error, - text: null, - detailText: null, - okLabel: L_bobj_crv_OK, - promptType: _promptDlgCritical - }, kwArgs); - - var o = newPromptDialog( - kwArgs.id, - kwArgs.title, - kwArgs.text, - kwArgs.okLabel, - null, // cancelLabel - kwArgs.promptType, - null, // yesCB - null, // noCB, - true, // noCloseButton - true); // isAlert - - o.widgetType = 'ErrorDialog'; - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - - // Update instance with member functions - o._promptDlgInit = o.init; - o._promptDialogSetText = o.setText; - o._promptDialogShow = o.show; - o._promptDialogSetTitle = o.setTitle; - o._promptDialogSetPromptType = o.setPromptType; - MochiKit.Base.update(o, bobj.crv.ErrorDialog); - - o.noCB = MochiKit.Base.bind(o._onClose, o); - o.yesCB = o.noCB; - - o._detailBtn = newIconWidget( - o.id + "_detailBtn", - bobj.skinUri('../help.gif'), - MochiKit.Base.bind(bobj.crv.ErrorDialog._onDetailBtnClick, o), - L_bobj_crv_showDetails, // Text - L_bobj_crv_showDetails, // Tooltip - 16,16,0,0,22,0, - true); // Tabbing is enabled - - return o; -}; - -bobj.crv.ErrorDialog.init = function() { - this._promptDlgInit(); - this._detailBtn.init(); - this._detailRow = document.getElementById(this.id + '_detRow'); - this._detailArea = document.getElementById(this.id + '_detArea'); - - if (!this.detailText) { - this._detailBtn.show(false); - } -}; - -bobj.crv.ErrorDialog.getHTML = function() { - var TABLE = bobj.html.TABLE; - var TBODY = bobj.html.TBODY; - var TR = bobj.html.TR; - var TD = bobj.html.TD; - var PRE = bobj.html.PRE; - var DIV = bobj.html.DIV; - - var imgPath = PromptDialog_getimgPath(this.promptType); - var imgAlt = PromptDialog_getimgAlt(this.promptType); - - var width = "320"; - var detailWidth = "300px"; - var detailHeight = "100px"; - - var contentHTML = - TABLE({'class':"dlgBody", width: width, cellpadding:"0", cellspacing:"5", border:"0"}, - TBODY(null, - TR(null, TD(null, - TABLE({'class':"dlgBody", cellpadding:"5", cellspacing:"0", border:"0"}, - TBODY(null, - TR(null, - TD({align:"right", width:"32"}, - img(imgPath, 32, 32, null, 'id="dlg_img_' + this.id + '"', imgAlt)), - TD(), - TD({id:"dlg_txt_" + this.id, align:"left"}, - DIV({tabindex:"0"}, convStr(this.text, false, true)))))))), - TR({id: this.id + '_detRow', style: {display: "none"}}, - TD(null, DIV({'class': "infozone", style: {width: detailWidth, 'height': detailHeight, overflow: "auto"}}, - PRE({id: this.id + '_detArea'}, this.detailText)))), - TR(null, TD(null, getSep())), - TR(null, TD(null, - TABLE({cellpadding:"5", cellspacing:"0", border:"0", width:"100%"}, - TBODY(null, - TR(null, - TD({align:"left"}, this._detailBtn.getHTML()), - TD({align:"right"}, this.yes.getHTML())))))))); - - - return this.beginHTML() + contentHTML + this.endHTML(); -}; - -/** - * Set the error message and detail text. - * - * @param text [String] Error message - * @param detailText [String] Detailed error message or technical info - */ -bobj.crv.ErrorDialog.setText = function (text, detailText) { - this.text = text; - this.detailText = detailText; - - if (this.layer) { - this._promptDialogSetText(text || ''); - - if (this._detailArea) { - this._detailArea.innerHTML = detailText || ''; - } - - var showDetails = detailText ? true : false; - this._detailBtn.show(showDetails); - if (!showDetails) { - this.showDetails(false); - } - } -}; - -bobj.crv.ErrorDialog.setTitle = function (title) { - this.title = title; - if (this.layer) { - this._promptDialogSetTitle(title || ''); - } -}; - -bobj.crv.ErrorDialog.setPromptType = function (promptType) { - this.promptType = promptType; - if (this.layer) { - this._promptDialogSetPromptType(promptType); - } -}; - -/** - * Show/Hide the dialog - * - * @param isShow [bool(=true)] True value displays the dialog, false hides it. - * @param closeCB [function] Callback to call after the next close event - */ -bobj.crv.ErrorDialog.show = function(isShow, closeCB) { - if (typeof isShow == 'undefined') { - isShow = true; - } - - if (isShow) { - this._closeCB = closeCB; - if (!this.layer) { - targetApp(this.getHTML()); - this.init(); - } - this.layer.onkeyup = DialogBoxWidget_keypress; - DialogBoxWidget_keypress = MochiKit.Base.noop; - - this._promptDialogShow(true); - } - else if (this.layer){ - this._closeCB = null; - this._promptDialogShow(false); - } -}; - -/** - * Show/Hide the detailed error message - * - * @param isShow [bool(=true)] True value displays the details, false hides them. - */ -bobj.crv.ErrorDialog.showDetails = function(isShow) { - if (typeof isShow == 'undefined') { - isShow = true; - } - - if (this._detailRow && this._detailBtn) { - if (isShow) { - this._detailRow.style.display = ''; - this._detailBtn.changeText(L_bobj_crv_hideDetails); - } - else { - this._detailRow.style.display = 'none'; - this._detailBtn.changeText(L_bobj_crv_showDetails); - } - } -}; - -/** - * Private. Handles detail button clicks. - */ -bobj.crv.ErrorDialog._onDetailBtnClick = function() { - if (this._detailRow) { - this.showDetails(this._detailRow.style.display == 'none'); - } -}; - -/** - * Private. Notifies listener that dialog has closed; - */ -bobj.crv.ErrorDialog._onClose = function() { - if (this._closeCB) { - this._closeCB(); - this._closeCB = null; - } - DialogBoxWidget_keypress = this.layer.onkeyup; - this.layer.onkeyup = null; -}; - -/* -================================================================================ -Report Processing Dialog -================================================================================ -kwArgs -delay - the wait time prior to showing the dialog. -message - a customized message to display in the dialog. -*/ -bobj.crv.newReportProcessingUI = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - delay: 250, - message: L_bobj_crv_ReportProcessingMessage - }, kwArgs); - - /* Since JSON escapes the '\' in unicode character references (\uXXXX) in Viewer - * process indicator text is converted to html numeric referece (&#ddddd) which Javascript - * don't display as expected. Little hack here to it as HTML string */ - var d = document.createElement('div'); - d.style.visibility = 'hidden'; - d.innerHTML = kwArgs.message; - var newMsg = d.innerHTML; - d = null; - - var o = newWaitDialogBoxWidget( - kwArgs.id, // id - 0, // width - 0, // height - '', // title - false, // show cancel - bobj.crv.ReportProcessingUI.cancelCB, // cancel callback - true, // show label - newMsg, // label text - true // no close button - ); - - - o.widgetType = 'ReportProcessingUI'; - o.delay = kwArgs.delay; - - // Update instance with member functions - MochiKit.Base.update(o, bobj.crv.ReportProcessingUI); - - return o; -}; - -bobj.crv.reportProcessingDialog = null; -bobj.crv.timerID = null; - -bobj.crv.ReportProcessingUI.cancelCB = function () -{ - bobj.crv.reportProcessingDialog.cancelled = true; - - if (bobj.crv.reportProcessingDialog.deferred !== null) { - bobj.crv.reportProcessingDialog.deferred.cancel (); - } - - bobj.crv.reportProcessingDialog.cancelShow (); -}; - -bobj.crv.ReportProcessingUI.wasCancelled = function () -{ - return bobj.crv.reportProcessingDialog.cancelled; -}; - -bobj.crv.ReportProcessingUI._prepareToShow = function () { - // cleanup any existing dialog? - if (bobj.crv.reportProcessingDialog !== null) { - bobj.crv.reportProcessingDialog.cancelShow (); - } - - if (!this.layer) { - append2(document.body, this.getHTML()); - this.init(); - } - - this.deferred = null; - bobj.crv.reportProcessingDialog = this; -}; - -bobj.crv.ReportProcessingUI.Show = function () { - this._prepareToShow(); - bobj.crv.reportProcessingDialog.show(true); -}; - -bobj.crv.ReportProcessingUI.delayedShow = function () { - this._prepareToShow(); - bobj.crv.timerID = setTimeout("bobj.crv._showReportProcessingDialog ()", bobj.crv.reportProcessingDialog.delay); -}; - -bobj.crv.ReportProcessingUI.cancelShow = function () { - if (bobj.crv.timerID) { - clearTimeout (bobj.crv.timerID); - } - - if (bobj.crv.reportProcessingDialog){ - bobj.crv.reportProcessingDialog.show (false); - } - - bobj.crv.reportProcessingDialog = null; - bobj.crv.timerID = null; -}; - -bobj.crv.ReportProcessingUI.setDeferred = function (deferred) { - bobj.crv.reportProcessingDialog.deferred = deferred; - - if (bobj.crv.reportProcessingDialog.wasCancelled () === true) { - deferred.cancel (); - } -}; - -bobj.crv._showReportProcessingDialog = function () { - if (bobj.crv.reportProcessingDialog && bobj.crv.reportProcessingDialog.delay !== 0) { - bobj.crv.logger.info('ShowReportProcessingDialog'); - bobj.crv.reportProcessingDialog.show (true); - } -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/GroupTree.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/GroupTree.js deleted file mode 100644 index f95877c50..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/GroupTree.js +++ /dev/null @@ -1,270 +0,0 @@ -/* - ================================================================================ - GroupTree - ================================================================================ - */ - -/** - * GroupTree constructor. - * - * @param kwArgs.id [String] DOM node id - * @param kwArgs.icns [String] URL to magnifying glass icon - * @param kwArgs.minIcon [String] URL to min.gif - * @param kwArgs.plusIcon [String] URL to plus.gif - */ -bobj.crv.newGroupTree = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - kwArgs = UPDATE ( { - id : bobj.uniqueId (), - visualStyle : { - className : null, - backgroundColor : null, - borderWidth : null, - borderStyle : null, - borderColor : null, - fontFamily : null, - fontWeight : null, - textDecoration : null, - color : null, - width : null, - height : null, - fontStyle : null, - fontSize : null - }, - icns : bobj.crvUri ('images/magnify.gif'), - minIcon : bobj.crvUri ('images/min.gif'), - plusIcon : bobj.crvUri ('images/plus.gif') - }, kwArgs); - - var o = newTreeWidget (kwArgs.id + '_tree', '100%', '100%', kwArgs.icns, null, null, 'groupTree', - bobj.crv.GroupTree._expand, bobj.crv.GroupTree._collapse, null, kwArgs.minIcon, kwArgs.plusIcon); - - o._children = []; - o._modalChildren = []; - o._lastNodeIdInitialized = -1; - o._lastNodeInitialized = null; - o._curSigs = []; - bobj.fillIn (o, kwArgs); - o.widgetType = 'GroupTree'; - o.initOld = o.init; - - UPDATE (o, bobj.crv.GroupTree); - - return o; -}; - -bobj.crv.GroupTree = { - /** - * Disposes group tree - */ - dispose : function() { - /* removes all the signals */ - while (this._curSigs.length > 0) { - bobj.crv.SignalDisposer.dispose (this._curSigs.pop ()); - } - - /* disposes all the children*/ - while (this._children.length > 0) { - var child = this._children.pop (); - child.dispose (); - bobj.deleteWidget (child); - delete child; - } - - this._lastNodeIdInitialized = -1; - this._lastNodeInitialized = null; - this.sub = []; - bobj.removeAllChildElements(this.treeLyr); - }, - - getModalChildren : function () { - return this._modalChildren; - }, - - /** - * Adds a child widget as a group tree node. - * - * @param widget - * [Widget] Child tree node widget - */ - addChild : function(widget) { - var Base = MochiKit.Base; - var Signal = MochiKit.Signal; - var connect = Signal.connect; - - widget.expandPath = this._children.length + ''; - this._children.push (widget); - - widget._updateProperty (this.enableDrilldown, this.enableNavigation); - this.add (widget); - widget.delayedAddChild (this.enableDrilldown, this.enableNavigation); - - this._curSigs.push (connect (widget, 'grpDrilldown', Base.partial (Signal.signal, this, 'grpDrilldown'))); - this._curSigs.push (connect (widget, 'grpNodeRetrieveChildren', Base.partial (Signal.signal, this, 'grpNodeRetrieveChildren'))); - }, - - /** - * Since GroupTree nodes are delay loaded, we would have to store the timeout ids to cancel them in case user drill down to another views - */ - delayedBatchAdd : function(children) { - if (!children || children.length == 0) - return; - - this._modalChildren = children; - var childrenHTML = ""; - - var numChildrenToRender = children.length > 100 ? 100 : children.length; - if(numChildrenToRender > 0) { - for(var i = 0 ; i < numChildrenToRender ; i++) { - var child = bobj.crv.createWidget (this._modalChildren[i]); - this.addChild(child); - if(this.initialized()) - childrenHTML += child.getHTML(0); - } - } - - if(this.initialized()) { - this.appendChildrenHTML (childrenHTML); - this.initChildren (); - } - }, - - appendChildrenHTML : function (childrenHTML) { - append (this.treeLyr, childrenHTML); - }, - - init : function() { - this.initOld (); - bobj.setVisualStyle (this.layer, this.visualStyle); - this.css.verticalAlign = "top"; - - this.initChildren (); - - this._groupTreeListener = new bobj.crv.GroupTreeListener(this); - }, - - update : function(update) { - if (update.cons == "bobj.crv.newGroupTree") { - var args = update.args; - var path = args.lastExpandedPath; - /* if path specified, then update specific path, otherwise recreate grouptree */ - // if user has expands a node after session timeout -> the whole gt must be rerendered - if (path.length > 0 && this._children.length > 0) { - this.updateNode (path, update); - } else { - this.refreshChildNodes (update) - } - } - }, - - delayedAddChild : function(widget) { - this.addChild (widget); - append (this.treeLyr, widget.getHTML (this.initialIndent)); - }, - - initChildren : function () { - while(this._lastNodeIdInitialized < this._children.length - 1) - this.initNextChild (); - }, - - initNextChild : function () { - var nextNode = null; - var nextNodeId = -1; - if(this._lastNodeIdInitialized == -1) { - var treeSpanLayer = getLayer("treeCont_" + this.id); - nextNode = treeSpanLayer.firstChild; - nextNodeId = 0; - } - else { - nextNode = this._lastNodeInitialized.nextSibling; - while(!(nextNode.id && nextNode.id.indexOf("TWe_") > -1)) - nextNode = nextNode.nextSibling; - - nextNodeId = this._lastNodeIdInitialized + 1; - } - - if(nextNodeId < this._children.length && nextNode != null) { - this._children[nextNodeId].init(nextNode); - this._lastNodeInitialized = nextNode; - this._lastNodeIdInitialized = nextNodeId; - } - }, - - getBestFitHeight : function () { - return bobj.getHiddenElementDimensions (this.layer).h; - /** - * Since container of tree could be invisible, getHiddenElementDimensions has to be called - * instead of element.getHeight() - */ - }, - - /** - * refreshes group tree by removing all nodes and adding new ones - */ - refreshChildNodes : function(update) { - this.dispose (); - this.delayedBatchAdd (update.children); - MochiKit.Signal.signal(this, "refreshed"); - }, - - /** - * @param path - * path to the node that should be updated eg) 0-1-2 - * @param newTree - * the new tree sent in update - * - * Updates children of node specified by path - */ - updateNode : function(path, newTree) { - if (path && path.length > 0) { - var pathArray = path.split ('-'); - var node = this; - var newNode = newTree; - - /* Navigating to the node that requires update */ - for ( var i = 0, len = pathArray.length; i < len; i++) { - if (node && newNode) { - var childIndex = parseInt (pathArray[i]); - newNode = newNode.children[childIndex]; - node = node._children[childIndex]; - } else { - break; - } - } - - /* if we found the node that requires update, then update its children */ - if (node && newNode && newNode.args.groupPath == node.groupPath && node._children.length == 0) { - for ( var nodeNum in newNode.children) { - var newChildnode = bobj.crv.createWidget (newNode.children[nodeNum]); - node.addChild (newChildnode); - } - - node.delayedAddChild (this.enableDrilldown, this.enableNavigation); - node.expand (); - } - } - }, - - getChildrenCount : function () { - return this.sub.length; - }, - - /** - * Private. Callback function when a (complete) group tree node is collapsed. - */ - _collapse : function(expandPath) { - MochiKit.Signal.signal (this, 'grpNodeCollapse', expandPath); - }, - - /** - * Private. Callback function when a (complete) group tree node is expanded. - */ - _expand : function(expandPath) { - MochiKit.Signal.signal (this, 'grpNodeExpand', expandPath); - }, - - resize : function(width, height) { - bobj.setOuterSize (this.layer, width, height); - MochiKit.Signal.signal(this, "resized"); - } -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/GroupTreeListener.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/GroupTreeListener.js deleted file mode 100644 index 7392c30f9..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/GroupTreeListener.js +++ /dev/null @@ -1,165 +0,0 @@ -bobj.crv.GroupTreeListener = function(groupTree) { - this._groupTree = groupTree; - this._groupTreePrevState = this.getTreeState (); - this._lastNodeRendererd = this.getNumberOfNodesRendered () - 1; - this._nodeHeight = -1; - this._futreNodesPlaceHolder = null; - this.actionIDs = []; - this.addFutureNodesPlaceHolder (); - - MochiKit.Signal.connect(groupTree.layer, "onscroll", bobj.bindFunctionToObject(this.detectTreeChanges, this)); - MochiKit.Signal.connect(groupTree, "refreshed", this, this.reset); - MochiKit.Signal.connect(groupTree, "resized", this, this.detectTreeChanges); -}; - -bobj.crv.GroupTreeListener.prototype = { - /** - * - * @return number of nodes rendered by group tree - */ - getNumberOfNodesRendered : function() { - return this._groupTree.getChildrenCount (); - }, - - /** - * - * @return number of nodes that have not been rendered yet - */ - getNumberOfNodesMissing : function() { - return this._groupTree.getModalChildren ().length - this._lastNodeRendererd - 1; - }, - - getTreeState : function() { - var gt = this._groupTree; - return { - height :gt.getHeight (), - scrollTop :gt.layer.scrollTop - }; - }, - - /** - * - * @return number of nodes required to be rendered to fill up the group tree height - */ - getNumberOfNodesToRender : function() { - if (this.getNumberOfNodesMissing() == 0) - return 0; - - var lastNodeRendered = this._groupTree.sub[this._lastNodeRendererd]; - var treeNewState = this.getTreeState (); - - if (lastNodeRendered != null) { - var offsetY = lastNodeRendered.layer.offsetTop; - if (offsetY < treeNewState.scrollTop + treeNewState.height) { - var freeSpace = treeNewState.scrollTop + treeNewState.height - offsetY; - return Math.floor (freeSpace / this.getNodeHeight ()); - } - } - - return 0; - }, - - /** - * - * @return a single node height - */ - getNodeHeight : function() { - if (this._nodeHeight > -1) - return this._nodeHeight; - else if (this.getNumberOfNodesRendered () > 0) { - var node = this._groupTree.sub[0]; - this._nodeHeight = bobj.getHiddenElementDimensions (node.layer).h; - return this._nodeHeight; - } - - return 0; - }, - - /** - * - * Adds as many nodes as it can to fill up the grouptree's height - */ - updateTreeChildren : function() { - var numNodesToRender = this.getNumberOfNodesToRender (); - var groupTreeModalChildren = this._groupTree.getModalChildren (); - - if (numNodesToRender > 0) { - var childrenHTML = ""; - for ( var i = this._lastNodeRendererd + 1, lastNode = this._lastNodeRendererd + numNodesToRender; i <= lastNode; i++) { - var modalChild = groupTreeModalChildren[i]; - if (modalChild != null) { - var treeNode = bobj.crv.createWidget (modalChild); - this._groupTree.addChild (treeNode); - childrenHTML += treeNode.getHTML(0); - this._lastNodeRendererd = i; - } - } - - this._groupTree.appendChildrenHTML(childrenHTML); - this._groupTree.initChildren(); - } - - this.updateFutureNodesPlaceHolderHeight (); - }, - - /** - * Detects if the tree UI has changed and calls update function - * - */ - detectTreeChanges : function() { - if (this.isTreeStateChanged ()) - this.actionIDs.push(setTimeout(bobj.bindFunctionToObject(this.updateTreeChildren, this), 200)); - - this._groupTreePrevState = this.getTreeState (); - }, - - isTreeStateChanged : function() { - var currentState = this.getTreeState (); - if (currentState.height != this._groupTreePrevState.height) - return true; - if (currentState.scrollTop != this._groupTreePrevState.scrollTop) - return true; - - return false; - }, - - /** - * - * Results listener's internal state when grouptree is refreshed - */ - reset : function() { - this._groupTreePrevState = this.getTreeState (); - this._lastNodeRendererd = this.getNumberOfNodesRendered () - 1; - this.clearActions (); - this.updateFutureNodesPlaceHolderHeight (); - }, - - clearActions : function () { - while(this.actionIDs.length > 0) { - clearTimeout(this.actionIDs.pop()); - } - }, - - updateFutureNodesPlaceHolderHeight : function() { - var futurePlaceHolderLayer = this.getFutureNodesPlaceHolderLayer (); - if (futurePlaceHolderLayer != null) { - futurePlaceHolderLayer.style.height = (this.getNumberOfNodesMissing () * this.getNodeHeight ()) + "px"; - } - }, - - getFutureNodesPlaceHolderLayer : function() { - return this._futreNodesPlaceHolder; - }, - - addFutureNodesPlaceHolder : function() { - this._futreNodesPlaceHolder = MochiKit.DOM.DIV ( { - id :bobj.uniqueId () + "_futureHolder", - style : { - width :'0px', - height :(this.getNumberOfNodesMissing () * this.getNodeHeight ()) + "px" - } - }); - this._groupTree.layer.appendChild (this._futreNodesPlaceHolder); - - } -} diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/GroupTreeNode.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/GroupTreeNode.js deleted file mode 100644 index 827d7d83c..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/GroupTreeNode.js +++ /dev/null @@ -1,203 +0,0 @@ -/** - * GroupTreeNode constructor. - * - * @param kwArgs.id [String] DOM node id - * @param kwArgs.groupName [String] Name of the group - * @param kwArgs.groupPath [String] Path of the group - */ -bobj.crv.newGroupTreeNode = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - kwArgs = UPDATE ( { - id : bobj.uniqueId () - }, kwArgs); - var iconAlt = null; - var iconId = -1; // by default, no icon - if (!kwArgs.isVisible) { - iconId = 0; - iconAlt = L_bobj_crv_Tree_Drilldown_Node.replace ('%1', kwArgs.groupName); - } - - var o = newTreeWidgetElem (iconId, kwArgs.groupName, kwArgs.groupPath, null, null, null, iconAlt, null, null, false); - - o._children = []; - o._curSigs = []; - bobj.fillIn (o, kwArgs); - - o.widgetType = 'GroupTreeNode'; - o.initOld = o.init; - o.selectOld = o.select; - o.select = bobj.crv.GroupTreeNode._drilldown; - - if (!kwArgs.isVisible) { - o.setCursorClass('drill_cursor'); - } - - UPDATE (o, bobj.crv.GroupTreeNode); - - return o; -}; - -bobj.crv.GroupTreeNode = { - /** - * Diposes grouptree node. Deletes all signals and children - */ - dispose : function() { - while (this._curSigs.length > 0) { - bobj.crv.SignalDisposer.dispose (this._curSigs.pop ()); - } - - while (this._children.length > 0) { - var child = this._children.pop (); - child.dispose (); - - bobj.deleteWidget (child); - delete child; - } - - this.sub = []; - - //layers of all GroupTreeNodes are disposed in GroupTree.dispose in one batch for performance reason - }, - - init : function(layer) { - this.initOld (layer); - this._setVisualStyle (); - - if (this.isStatic) { - /*"treeNormal" is the default css class for tree node text */ - var spans = MochiKit.DOM.getElementsByTagAndClassName ("span", "treeNormal", this.layer); - if (spans && spans.length > 0) - spans[0].style.cursor = 'text'; - - } - }, - - /** - * @return boolean true if node is expanded - */ - isExpanded : function() { - var elemId = TreeIdToIdx (this.layer); - return _TreeWidgetElemInstances[elemId].expanded; - }, - - /** - * expands node and shows its children - */ - - expand : function() { - var elemId = TreeIdToIdx (this.layer); - _TreeWidgetElemInstances[elemId].expanded = false - TreeWidget_toggleCB (elemId); - }, - - collapse : function() { - var elemId = TreeIdToIdx (this.layer); - _TreeWidgetElemInstances[elemId].expanded = true - TreeWidget_toggleCB (elemId); - }, - - _setVisualStyle : function() { - try { - var textNode = this.layer.lastChild; - var parentNode = this.treeView; - } catch (err) { - return; - } - - var pvStyle = parentNode.visualStyle; - var tStyle = textNode.style; - - if (pvStyle.fontFamily) - tStyle.fontFamily = pvStyle.fontFamily; - - if (pvStyle.fontWeight) - tStyle.fontWeight = pvStyle.fontWeight; - - if (pvStyle.textDecoration) - tStyle.textDecoration = pvStyle.textDecoration; - - if (pvStyle.color) - tStyle.color = pvStyle.color; - - if (pvStyle.fontStyle) - tStyle.fontStyle = pvStyle.fontStyle; - - if (pvStyle.fontSize) - tStyle.fontSize = pvStyle.fontSize; - }, - - /** - * Delay add the child nodes to a node recursively. - * The addition of nodes has to happen in a top-down fashion because each node has a reference to the tree - * and this reference is retrieved from the parent node. - */ - - delayedAddChild : function(enableDrilldown, enableNavigation) { - var CONNECT = MochiKit.Signal.connect; - var SIGNAL = MochiKit.Signal.signal; - var PARTIAL = MochiKit.Base.partial; - var childCount = this._children.length; - - if (childCount > 0) { - this.expanded = true; - } else { - this.expanded = false; - if (!this.leaf) { - this.setIncomplete (bobj.crv.GroupTreeNode._getChildren); - } - } - - var children = this._children; - for ( var i = 0; i < childCount; i++) { - var childNode = children[i]; - childNode.expandPath = this.expandPath + '-' + i; - childNode._updateProperty (enableDrilldown, enableNavigation); - this.add (childNode); - this._curSigs.push (CONNECT (childNode, 'grpDrilldown', PARTIAL (SIGNAL, this, 'grpDrilldown'))); - this._curSigs.push (CONNECT (childNode, 'grpNodeRetrieveChildren', PARTIAL (SIGNAL, this, 'grpNodeRetrieveChildren'))); - childNode.delayedAddChild (enableDrilldown, enableNavigation); - } - }, - - addChild : function(widget) { - this._children.push (widget); - }, - - getLevel : function() { - return this.expandPath.split('-').length; - }, - - /** - * Private. Callback function when a group tree node is clicked, which is a group drilldown. - */ - _drilldown : function() { - this.selectOld (); - MochiKit.Signal.signal (this, 'grpDrilldown', this.groupName, this.groupPath, this.isVisible, this.groupNamePath); - }, - - /** - * Private. Callback function when an incomplete group tree node is expanded. - */ - _getChildren : function() { - this.plusLyr.src = _skin + '../loading.gif'; - MochiKit.Signal.signal (this, 'grpNodeRetrieveChildren', this.expandPath); - }, - - /** - * Private. Change the select event handler and text style class based on the two given flags. - */ - _updateProperty : function(enableDrilldown, enableNavigation) { - var isStatic = false; - if (this.isVisible && !enableNavigation) { - isStatic = true; - } else if (!this.isVisible && !enableDrilldown) { - isStatic = true; - } - - if (isStatic) { - this.select = MochiKit.Base.noop; - } - - this.isStatic = isStatic; - } -}; \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/IOAdapters.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/IOAdapters.js deleted file mode 100644 index 0aa63e81a..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/IOAdapters.js +++ /dev/null @@ -1,599 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - - - - -/** - * Abstract base class. IOAdapters allow the ViewerListener to request data from - * a server without knowing the details of how a particular framework requires - * the request to be made. - */ -bobj.crv.IOAdapterBase = { - /** - * Send a viewer request to the Server. - * - * @param pageState [Object] The composite view state for all viewers on the page - * @param viewerName [String] The name of the viewer that should handle the request - * @param eventArgs [Object] Event arguements - * @param allowAsynch [bool] True if asynchronous requests are allowed - * - * @return [MochiKit.Async.Deferred] Returns a Deferred if an asynchronous - * request is pending. - */ - request: function() {}, - - /** - * Add a parameter to server requests. - * - * @param fldName [String] Name of the parameter - * @param fldValue [String] Value of the parameter - */ - addRequestField: function(fldName, fldValue) {}, - - /** - * Remove a parameter from server requests. - * - * @param fldName [String] Name of the parameter - */ - removeRequestField: function(fldName) {}, - - /** - * Save the page state. Persist the state in a manner apropriate - * for the framework. - * - * @param pageState [Object] The composite view state for all viewers on the page - * @param viewerName [String] The name of the viewer that making the request - */ - saveViewState: function(pageState, viewerName) {}, - - /** - * Get the postback data queryString to use for Active X print control - * - * @param pageState [Object] The composite view state for all viewers on the page - * @param viewerName [String] The name of the viewer that making the request - * @return [String] the postback data in a query string format - */ - getPostDataForPrinting: function(pageState, viewerName) {}, - - /** - * Allows the IOAdapter to manipulate the error before the Viewer processes it for display to the user. - */ - processError: function(response) {return response;}, - - canUseAjax: function() { - try { - return (MochiKit.Async.getXMLHttpRequest() !== null); - } - catch (e) { - return false; - } - }, - - /** - * Ensures that there is a hidden iframe to be used for postbacks. - */ - _getPostbackIframe: function() { - if (!this._iframe) { - ifrm = document.createElement("IFRAME"); - ifrm.id = bobj.uniqueId(); - ifrm.name = ifrm.id; - ifrm.style.width = '0px'; - ifrm.style.height = '0px'; - ifrm.style.position = 'absolute'; - ifrm.style.top = '0px'; - ifrm.style.left = '0px'; - ifrm.style.visibility = 'hidden'; - document.body.appendChild(ifrm); - // in IE, we need to set the window name again - if (!ifrm.contentWindow.name) { - ifrm.contentWindow.name = ifrm.id; - } - - this._iframe = ifrm; - } - - return this._iframe; - } -}; - -/* -================================================================================ -ServletAdapter. ServletAdapter issues requests to the Java DHTML viewer. -================================================================================ -*/ - -/** - * Constructor for ServletAdapter. - * - * @param pageUrl [string] URL of the page - * @param servletUrl [string] URL to which requests to a servlet should be made - * It doubles as the url for all asyncronous requests - */ -bobj.crv.ServletAdapter = function(pageUrl, servletUrl) { - this._pageUrl = pageUrl; - this._servletUrl = servletUrl; - this._form = null; -}; - -bobj.crv.ServletAdapter._requestParams = { - STATE: 'CRVCompositeViewState', - TARGET: 'CRVEventTarget', - ARGUMENT: 'CRVEventArgument' -}; - - -bobj.crv.ServletAdapter.prototype = MochiKit.Base.merge(bobj.crv.IOAdapterBase, { - - request: function(pageState, viewerName, eventArgs, allowAsync, useIframe) { - if (!this._form) { - this._createForm(); - } - - var rp = bobj.crv.ServletAdapter._requestParams; - var toJSON = MochiKit.Base.serializeJSON; - - this._form[rp.STATE].value = encodeURIComponent(toJSON(pageState)); - this._form[rp.TARGET].value = encodeURIComponent(viewerName); - this._form[rp.ARGUMENT].value = encodeURIComponent(toJSON(eventArgs)); - - var deferred = null; - if (allowAsync && this._servletUrl) { - var req = MochiKit.Async.getXMLHttpRequest(); - req.open("POST", this._servletUrl, true); - req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - req.setRequestHeader('Accept','application/json'); - deferred = MochiKit.Async.sendXMLHttpRequest(req, MochiKit.Base.queryString(this._form)); - } - else { - if (useIframe) { - this._form.target = this._getPostbackIframe().id; - } - this._form.submit(); - } - - // once the form is submitted it is not intended to be reused. - - MochiKit.DOM.removeElement(this._form); - this._form = null; - return deferred; - }, - - redirectToServlet: function () { - if (!this._form) { - this._createForm(); - } - - this._form.action = this._servletUrl; - }, - - _createForm: function() { - var d = MochiKit.DOM; - var rp = bobj.crv.ServletAdapter._requestParams; - - this._form = d.FORM({ - name: bobj.uniqueId(), - style: 'display:none', - method: 'POST', - enctype: 'application/x-www-form-urlencoded;charset=utf-8', - action: this._pageUrl}, - d.INPUT({type: 'hidden', name: rp.STATE}), - d.INPUT({type: 'hidden', name: rp.TARGET}), - d.INPUT({type: 'hidden', name: rp.ARGUMENT})); - - document.body.appendChild(this._form); - }, - - addRequestField: function(fldName, fldValue) { - if (fldName && fldValue) { - if (!this._form) { - this._createForm(); - } - - var existingElem = this._form[fldName]; - if (existingElem) { - existingElem.value = fldValue; - } - else { - this._form.appendChild(MochiKit.DOM.INPUT({type: 'hidden', name:fldName, value:fldValue})); - } - } - }, - - removeRequestField: function(fldName) { - if (fldName) { - var form = this._form; - - if (form) { - var existingElem = form[fldName]; - if (existingElem) { - MochiKit.DOM.removeElement(existingElem); - if(form[fldName]) { // Fix for FF - form[fldName] = null; - } - } - - existingElem = null; - } - } - }, - - getPostDataForPrinting: function(pageState, viewerName) { - var toJSON = MochiKit.Base.serializeJSON; - var rp = bobj.crv.ServletAdapter._requestParams; - var state = toJSON(pageState); - - var postData = {}; - postData[rp.STATE] = encodeURIComponent(state); - postData[rp.TARGET] = encodeURIComponent(viewerName); - postData[rp.ARGUMENT] = encodeURIComponent('"axprint="'); - if(document.getElementById('com.sun.faces.VIEW')) { - postData['com.sun.faces.VIEW'] = encodeURIComponent(document.getElementById('com.sun.faces.VIEW').value); - } - - return MochiKit.Base.queryString(postData); - }, - - processError: function(response) { - if (!(typeof(response.number) == 'undefined') && response.number == 404) { - return L_bobj_crv_ServletMissing; - } - - return response; - } -}); - -/* -================================================================================ -AspDotNetAdapter. AspDotNetAdapter issues requests to the WebForm DHTML viewer. -================================================================================ -*/ - -/** - * Constructor for AspDotNetAdapter. - * - * @param postbackEventReference [string] The full functiona call to the ASP.NET dopostback function - * @param replacementParameter [string] the string to replace in the dopostback function - * @param stateID [string] the name of the input field to save the state to - */ -bobj.crv.AspDotNetAdapter = function(postbackEventReference, replacementParameter, stateID, callbackEventReference, aspnetVersion) { - this._postbackEventReference = postbackEventReference; - this._replacementParameter = replacementParameter; - this._stateID = stateID; - this._aspnetVersion = aspnetVersion; - this._form = null; - this._callbackEventReference = callbackEventReference; - this._additionalReqFlds = null; - var tmpState = bobj.getElementByIdOrName(this._stateID); - if (tmpState) { - this._form = tmpState.form; - } - - if(this._isAspNetVersionPriorToVersion4()) { - WebForm_CallbackComplete = this.WebForm_CallbackComplete; - } -}; - - -bobj.crv.AspDotNetAdapter.prototype = MochiKit.Base.merge(bobj.crv.IOAdapterBase, { - - request: function(pageState, viewerName, eventArgs, allowAsync, useIframe, callbackHandler, errbackHandler) { - var toJSON = MochiKit.Base.serializeJSON; - if (eventArgs && this._additionalReqFlds) { - eventArgs = MochiKit.Base.update(eventArgs, this._additionalReqFlds); - } - this._additionalReqFlds = null; - - var jsonEventArgs = toJSON(eventArgs); - this.saveViewState(pageState, viewerName); - - if (allowAsync) { - if(typeof WebForm_InitCallback == "function") { - __theFormPostData = ""; //Used by WeForm_InitCallback - __theFormPostCollection = []; //Used by WeForm_InitCallback - WebForm_InitCallback(); //Need to call this to work around a problem where ASP.NET2 callback does not collect form data prior to request - } - var callback = this._callbackEventReference.replace("'arg'", "jsonEventArgs"); - callback = callback.replace("'cb'", "callbackHandler"); - callback = callback.replace("'errcb'", "errbackHandler"); - callback = callback.replace("'frmID'", "this._form.id"); - return eval(callback); - } - else { - if (useIframe) { - this._form.target = this._getPostbackIframe().id; - } - - var postbackCall; - if(this._postbackEventReference.indexOf("'" + this._replacementParameter + "'") >= 0){ - postbackCall = this._postbackEventReference.replace("'" + this._replacementParameter + "'", "jsonEventArgs"); - } - else { - postbackCall = this._postbackEventReference.replace('"' + this._replacementParameter + '"', "jsonEventArgs"); - } - eval(postbackCall); - this._clearEventFields(); - this._form.target = ""; //Give back the target of the form after using, or the form cannot get focused - } - }, - - /** - * @return true if aspnet verion is prior to version 4 - */ - _isAspNetVersionPriorToVersion4 : function () { - if(this._aspnetVersion != null) { - var sep = this._aspnetVersion.split("."); - if(eval(sep[0]) < 4) - return true; - } - - return false; - }, - - saveViewState: function(pageState, viewerName) { - var toJSON = MochiKit.Base.serializeJSON; - var viewState = pageState[viewerName]; - var state = bobj.getElementByIdOrName(this._stateID); - if (state) { - state.value = toJSON(viewState); - } - }, - - getPostDataForPrinting: function(pageState, viewerName) { - this.saveViewState(pageState, viewerName); - var nv = MochiKit.DOM.formContents(this.form); - var names = nv[0]; - var values = nv[1]; - names.push('crprint'); - values.push(viewerName); - var queryString = MochiKit.Base.queryString(names, values); - return queryString; - }, - - addRequestField: function(fldName, fldValue) { - if (!this._additionalReqFlds) { - this._additionalReqFlds = {}; - } - this._additionalReqFlds[fldName] = fldValue; - - /*if (fldName && fldValue) { - var existingElem = this._form[fldName]; - if (existingElem) { - existingElem.value = fldValue; - } - else { - this._form.appendChild(MochiKit.DOM.INPUT({type: 'hidden', name:fldName, value:fldValue})); - } - }*/ - }, - - _clearRequestField: function(fldName) { - if (fldName) { - if (this._form) { - var existingElem = this._form[fldName]; - if (existingElem) { - existingElem.value = ""; - } - } - } - }, - - _clearEventFields: function() { - this._clearRequestField("__EVENTTARGET"); - this._clearRequestField("__EVENTARGUMENT"); - }, - - /* - * Overriding WebForm_CallbackComplete provided by .Net framework 2(WebResource.asx) as it was incorrect. - * The code below is taken from .Net 4 copy of this function - * This code can be removed once the support for .Net 2 is terminated - */ - WebForm_CallbackComplete : function () { - for (var i = 0; i < __pendingCallbacks.length; i++) { - callbackObject = __pendingCallbacks[i]; - if (callbackObject && callbackObject.xmlRequest && (callbackObject.xmlRequest.readyState == 4)) { - if (!__pendingCallbacks[i].async) { - __synchronousCallBackIndex = -1; - } - __pendingCallbacks[i] = null; - var callbackFrameID = "__CALLBACKFRAME" + i; - var xmlRequestFrame = document.getElementById(callbackFrameID); - if (xmlRequestFrame) { - xmlRequestFrame.parentNode.removeChild(xmlRequestFrame); - } - WebForm_ExecuteCallback(callbackObject); - } - } - - } -}); - -/* -================================================================================ -FacesAdapter. FacesAdapter issues requests to a JSF viewer component. -================================================================================ -*/ - -/** - * Constructor for FacesAdapter. - * - * @param formName [string] Name of the form to submit - * @param servletUrl [string] URL to which requests to a servlet should be made - * It doubles as the url for all asyncronous requests - */ -bobj.crv.FacesAdapter = function(formName, servletUrl) { - this._formName = formName; - this._servletUrl = servletUrl; - this._useServlet = false; - if (!bobj.crv.FacesAdapter._hasInterceptedSubmit) { - this._interceptSubmit(); - bobj.crv.FacesAdapter._hasInterceptedSubmit = true; - } -}; - -bobj.crv.FacesAdapter._requestParams = { - STATE: 'CRVCompositeViewState', - TARGET: 'CRVEventTarget', - ARGUMENT: 'CRVEventArgument' -}; - -bobj.crv.FacesAdapter.prototype = MochiKit.Base.merge(bobj.crv.IOAdapterBase, { - - request: function(pageState, viewerName, eventArgs, allowAsync, useIframe) { - - var rp = bobj.crv.FacesAdapter._requestParams; - var toJSON = MochiKit.Base.serializeJSON; - var INPUT = MochiKit.DOM.INPUT; - - var deferred = null; - - var form = this._getForm(); - if (!form) { - return; - } - - if (!form[rp.TARGET]) { - form.appendChild( INPUT({type: 'hidden', name: rp.TARGET}) ); - } - form[rp.TARGET].value = encodeURIComponent(viewerName); - - if (!form[rp.ARGUMENT]) { - form.appendChild( INPUT({type: 'hidden', name: rp.ARGUMENT}) ); - } - form[rp.ARGUMENT].value = encodeURIComponent(toJSON(eventArgs)); - - if (!form[rp.STATE]) { - form.appendChild( INPUT({type: 'hidden', name: rp.STATE}) ); - } - form[rp.STATE].value = encodeURIComponent(toJSON(pageState)); - - if (allowAsync && this._servletUrl) { - var req = MochiKit.Async.getXMLHttpRequest(); - req.open("POST", this._servletUrl, true); - req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - req.setRequestHeader('Accept','application/json'); - deferred = MochiKit.Async.sendXMLHttpRequest(req, MochiKit.Base.queryString(form)); - } - else { - var pageUrl = form.action; - if (this._useServlet === true) { - form.action = this._servletUrl; - } - - var origTarget = form.target; - if (useIframe) { - form.target = this._getPostbackIframe().id; - } - - form.submit(); - - form.action = pageUrl; - form.target = origTarget; - this._useServlet = false; - } - - // clear out the request fields so that the form can be reused - form[rp.TARGET].value = ""; - form[rp.ARGUMENT].value = ""; - form[rp.STATE].value = ""; - - // TODO Post Titan: we shouldn't need to have explicit knowledge of this parameter - this.removeRequestField ('ServletTask'); - - return deferred; - }, - - redirectToServlet: function () { - this._useServlet = true; - }, - - addRequestField: function(fldName, fldValue) { - if (fldName && fldValue) { - var form = this._getForm(); - - if (form) { - var existingElem = form[fldName]; - if (existingElem) { - existingElem.value = fldValue; - } - else { - form.appendChild(MochiKit.DOM.INPUT({type: 'hidden', name:fldName, value:fldValue})); - } - } - } - }, - - removeRequestField: function(fldName) { - if (fldName) { - var form = this._getForm(); - - if (form) { - var existingElem = form[fldName]; - if (existingElem) { - MochiKit.DOM.removeElement(existingElem); - if(form[fldName]) { // Fix for FF - form[fldName] = null; - } - } - - existingElem = null; - } - } - }, - - saveViewState: function(pageState, viewerName) { - if (!bobj.crv.FacesAdapter._isStateSaved) { - var form = this._getForm(); - if (form) { - var rp = bobj.crv.FacesAdapter._requestParams; - var toJSON = MochiKit.Base.serializeJSON; - var INPUT = MochiKit.DOM.INPUT; - - if (!form[rp.STATE]) { - form.appendChild( INPUT({type: 'hidden', name: rp.STATE}) ); - } - form[rp.STATE].value = encodeURIComponent(toJSON(pageState)); - } - bobj.crv.FacesAdapter._isStateSaved = true; - } - }, - - _getForm: function() { - return document.forms[this._formName]; - }, - - _interceptSubmit: function() { - var form = this._getForm(); - if (form) { - var oldSubmit = form.submit; - form.submit = function() { - bobj.event.publish('saveViewState'); - form.submit = oldSubmit; // IE needs this - form.submit(); // Can't apply args because IE misbehaves - }; - } - }, - - getPostDataForPrinting: function(pageState, viewerName) { - var toJSON = MochiKit.Base.serializeJSON; - var rp = bobj.crv.ServletAdapter._requestParams; - var state = toJSON(pageState); - - var postData = {}; - postData[rp.STATE] = encodeURIComponent(state); - postData[rp.TARGET] = encodeURIComponent(viewerName); - postData[rp.ARGUMENT] = encodeURIComponent('"axprint="'); - if(document.getElementById('com.sun.faces.VIEW')) { - postData['com.sun.faces.VIEW'] = encodeURIComponent(document.getElementById('com.sun.faces.VIEW').value); - } - - return MochiKit.Base.queryString(postData); - }, - - processError: function(response) { - if (!(typeof(response.number) == 'undefined') && response.number == 404) { - return L_bobj_crv_ServletMissing; - } - - return response; - } -}); \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ImageSprites.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ImageSprites.js deleted file mode 100644 index bc526c006..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ImageSprites.js +++ /dev/null @@ -1,37 +0,0 @@ -// allInOne.gif - icon images with different width and heights - disabled states are on the right -bobj.crv.allInOne = (function () { - var o = new Object(); - o.uri = bobj.crvUri('images/allInOne.gif'); - - var iconHeight22 = 22; - var offset = 0; - - // Toolbar icons are 22 pixels height and have 3 pixels place holder - offset += 3; - offset = o.toolbarExportDy = offset; - offset = o.toolbarPrintDy = offset + iconHeight22; - - offset = o.toolbarRefreshDy = offset + iconHeight22; - offset = o.toolbarSearchDy = offset + iconHeight22; - offset = o.toolbarUpDy = offset + iconHeight22; - // Rest of the images don't need the place holder - offset -= 3; - - // These are 22 pixels height - offset = o.groupTreeToggleDy = offset + iconHeight22; - offset = o.paramPanelToggleDy = offset + iconHeight22; - - // These two are 20 pixels height - offset = o.toolbarPrevPageDy = offset + iconHeight22; // 22x20 - offset = o.toolbarNextPageDy = offset + 20; // 22x20 - - offset = o.paramRunDy = offset + 20; // 22x22 - offset = o.paramDataFetchingDy = offset + 22; // 16x16 - offset = o.closePanelDy = offset + 16; // 8x7 - offset = o.openParameterArrowDy = offset + 7; // 15x15 - offset = o.plusDy = offset + 15; // 13x12 - offset = o.minusDy = offset + 12; // 13x12 - offset = o.undoDy = offset + 12; // 16x16 - - return o; -})(); diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/LeftPanel.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/LeftPanel.js deleted file mode 100644 index f664cdee1..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/LeftPanel.js +++ /dev/null @@ -1,289 +0,0 @@ -/** - * LeftPanel is a container class managing PanelNavigator and ToolPanel classes - */ - -bobj.crv.newLeftPanel = function(kwArgs) { - kwArgs = MochiKit.Base.update ( { - id : bobj.uniqueId () + "_leftPanel", - hasToggleGroupTreeButton : true, - hasToggleParameterPanelButton : true, - paramIconImg : null, - treeIconImg : null - }, kwArgs); - - return new bobj.crv.LeftPanel (kwArgs.id, kwArgs.hasToggleGroupTreeButton, kwArgs.hasToggleParameterPanelButton, kwArgs.paramIconImg, kwArgs.treeIconImg); -}; - -bobj.crv.LeftPanel = function(id, hasToggleGroupTreeButton, hasToggleParameterPanelButton, paramIconImg, treeIconImg) { - this._panelNavigator = null; - this._panelHeader = null; - this._toolPanel = null; - this.id = id; - this.widgetType = 'LeftPanel'; - this.hasToggleParameterPanelButton = hasToggleParameterPanelButton; - this.hasToggleGroupTreeButton = hasToggleGroupTreeButton; - this.paramIconImg = paramIconImg; - this.treeIconImg = treeIconImg; - this._lastViewedPanel = null; -}; - -bobj.crv.LeftPanel.prototype = { - getHTML : function() { - var toolPanelHTML = this._toolPanel ? this._toolPanel.getHTML () : ''; - var panelHeaderHTML = this._panelHeader ? this._panelHeader.getHTML () : ''; - var navigatorHTML = this._panelNavigator ? this._panelNavigator.getHTML () : ''; - - return bobj.html.DIV ( { - 'class' : 'leftPanel', - id : this.id - }, navigatorHTML, panelHeaderHTML, toolPanelHTML); - }, - - /** - * @return width that would best fit both navigator and toolpanel - */ - getBestFitWidth : function() { - var w = 0; - if (this._panelNavigator) - w += this._panelNavigator.getWidth (); - - if (this._toolPanel && this._toolPanel.isDisplayed()) - w += this._toolPanel.getWidth(); - else - w += 5; //The padding between navigator and reportAlbum when no toolpanel exist - - return w; - }, - - getBestFitHeight : function () { - var toolPanelHeight = 0; - var panelNavigatorHeight = 0; - - if(this._panelHeader) - toolPanelHeight += this._panelHeader.getHeight() - if(this._toolPanel) - toolPanelHeight += this._toolPanel.getBestFitHeight(); - if(this._panelNavigator) - panelNavigatorHeight = this._panelNavigator.getBestFitHeight(); - - return Math.max (toolPanelHeight, panelNavigatorHeight); - }, - - /** - * AJAX update flow - * @param update - * @return - */ - update : function(update) { - if (!update || update.cons != "bobj.crv.newLeftPanel") { - return; - } - - for ( var childNum in update.children) { - var child = update.children[childNum]; - if (child && child.cons == "bobj.crv.newToolPanel") { - if (this._toolPanel) - this._toolPanel.update (child); - break; - } - } - }, - - /** - * Initializes widgets and connects signals - */ - init : function() { - this.layer = getLayer (this.id); - this.css = this.layer.style; - - if (this._toolPanel) - this._toolPanel.init (); - - if (this._panelHeader) { - this._panelHeader.init (); - if(!this.isToolPanelDisplayed()) - this._panelHeader.setDisplay(false); - } - - if (this._panelNavigator) - this._panelNavigator.init (); - }, - - /** - * Connects signals - * @return - */ - _initSignals : function() { - var partial = MochiKit.Base.partial; - var signal = MochiKit.Signal.signal; - var connect = MochiKit.Signal.connect; - - if (this._toolPanel) { - MochiKit.Iter.forEach ( [ 'grpDrilldown', 'grpNodeRetrieveChildren', 'grpNodeCollapse', 'grpNodeExpand', 'resetParamPanel', - 'resizeToolPanel' ], function(sigName) { - connect (this._toolPanel, sigName, partial (signal, this, sigName)); - }, this); - } - - if (this._panelNavigator) - connect (this._panelNavigator, "switchPanel", this, '_switchPanel'); - - if(this._panelHeader) - connect (this._panelHeader, "switchPanel", this, '_switchPanel'); - }, - - /** - * @return true if toolpanel is displayed - */ - isToolPanelDisplayed : function() { - return this._toolPanel && this._toolPanel.isDisplayed (); - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - displayLastViewedPanel : function () { - if(this._toolPanel) { - switch(this._lastViewedPanel) - { - case bobj.crv.ToolPanelType.GroupTree: - this._switchPanel (bobj.crv.ToolPanelType.GroupTree); - break; - case bobj.crv.ToolPanelType.ParameterPanel: - this._switchPanel (bobj.crv.ToolPanelType.ParameterPanel); - break; - default : - this._switchPanel (bobj.crv.ToolPanelType.GroupTree); - } - } - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - hideToolPanel : function () { - this._switchPanel (bobj.crv.ToolPanelType.None); - }, - - /** - * - * @param panelType [bobj.crv.ToolPanelType] - * @return - */ - _switchPanel : function(panelType) { - if (this._toolPanel) { - this._toolPanel.setView (panelType); - if(panelType == bobj.crv.ToolPanelType.None) { - this._toolPanel.setDisplay(false); - this._panelHeader.setDisplay(false); - } - else { - this._toolPanel.setDisplay(true); - this._panelHeader.setDisplay(true); - this._lastViewedPanel = panelType; - } - } - - if (this._panelHeader) - var title = bobj.crv.ToolPanelTypeDetails[panelType].title; - this._panelHeader.setTitle (title); - - if (this._panelNavigator) - this._panelNavigator.selectChild (panelType); - - MochiKit.Signal.signal (this, 'switchPanel', panelType); - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getPanelNavigator : function () { - return this._panelNavigator; - }, - - getToolPanel : function() { - return this._toolPanel; - }, - - addChild : function(child) { - if (child.widgetType == "ToolPanel") { - this._toolPanel = child; - this.updateChildren (); - this._initSignals (); - } - }, - - /** - * Update Navigator and Header with toolPanel's children - * @return - */ - updateChildren : function() { - if (this._toolPanel) { - - this._panelNavigator = new bobj.crv.PanelNavigator (); - this._panelHeader = new bobj.crv.PanelHeader (); - var newChild = null; - - if (this._toolPanel.hasParameterPanel () && this.hasToggleParameterPanelButton) { - newChild = { - name : bobj.crv.ToolPanelType.ParameterPanel, - img : this.paramIconImg ? this.paramIconImg : bobj.crv.ToolPanelTypeDetails.ParameterPanel.img, - title : bobj.crv.ToolPanelTypeDetails.ParameterPanel.title - }; - this._panelNavigator.addChild (newChild); - } - if (this._toolPanel.hasGroupTree () && this.hasToggleGroupTreeButton) { - newChild = { - name : bobj.crv.ToolPanelType.GroupTree, - img : this.treeIconImg ? this.treeIconImg : bobj.crv.ToolPanelTypeDetails.GroupTree.img, - title : bobj.crv.ToolPanelTypeDetails.GroupTree.title - }; - this._panelNavigator.addChild (newChild); - } - - this._lastViewedPanel = this._toolPanel.initialViewType; - - this._panelNavigator.selectChild (this._toolPanel.initialViewType); - this._panelHeader.setTitle (bobj.crv.ToolPanelTypeDetails[this._toolPanel.initialViewType].title); - - if (!this._panelNavigator.hasChildren()) - { - this._panelHeader.hideCloseButton(); - this._toolPanel.addLeftBorder(); - } - } - }, - - resize : function(w, h) { - bobj.setOuterSize (this.layer, w, h); - this._doLayout (); - }, - - /** - * Layouts children where PanelHeader appears on top of toolPanel and panelNavigator to left of both header and toolpanel - * @return - */ - _doLayout : function() { - if(!this._toolPanel || !this._panelNavigator || !this._panelHeader) - return; - - var w = this.getWidth (); - var h = this.getHeight (); - var navigatorW = this._panelNavigator.getWidth (); - var newToolPanelWidth = w - navigatorW; - var newToolPanelHeight = h - this._panelHeader.getHeight (); - - if (this._toolPanel.isDisplayed()) { - this._toolPanel.resize (newToolPanelWidth, newToolPanelHeight); - this._toolPanel.move (navigatorW, this._panelHeader.getHeight ()); - } - - this._panelHeader.resize (newToolPanelWidth, null); - this._panelHeader.move (navigatorW, 0); - this._panelNavigator.resize(navigatorW, h); - }, - - move : Widget_move, - getWidth : Widget_getWidth, - getHeight : Widget_getHeight -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/OptionalParameterUI.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/OptionalParameterUI.js deleted file mode 100644 index e07b38ea1..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/OptionalParameterUI.js +++ /dev/null @@ -1,35 +0,0 @@ -/** - * OptionalParameterUI extends ParameterUI - */ - -bobj.crv.params.newOptionalParameterUI = function(kwArgs) { - kwArgs = MochiKit.Base.update( { - noValueDisplayText :'', - isEmptyStringNoValue: true, - clearValuesCB : null - }, kwArgs); - - var o = bobj.crv.params.newParameterUI(kwArgs); - - /* - * The reason I'm using bobj.extendClass is that it would populate all functions defined in ParameterUI - * in this.superClass so I can call any function on parent class - */ - bobj.extendClass(o, bobj.crv.params.OptionalParameterUI, bobj.crv.params.ParameterUI); - - return o; -}; - -bobj.crv.params.OptionalParameterUI = { - _getNewValueRowConstructor : function() { - return bobj.crv.params.newOptionalParameterValueRow; - }, - - _getNewValueRowArgs : function(value) { - var args = this.superClass._getNewValueRowArgs(value); - args.noValueDisplayText = this.noValueDisplayText; - args.isEmptyStringNoValue = this.isEmptyStringNoValue; - args.clearValuesCB = this.clearValuesCB; - return args; - } -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/OptionalParameterValueRow.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/OptionalParameterValueRow.js deleted file mode 100644 index 791baa1dd..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/OptionalParameterValueRow.js +++ /dev/null @@ -1,143 +0,0 @@ - -/** - * OptionalParameterValueRow extends ParamterValueRow. This class displays a info message for 'undefined' value and - * clears the info message when its control get focus - */ -bobj.crv.params.newOptionalParameterValueRow = function(kwArgs) { - kwArgs = MochiKit.Base.update( { - noValueDisplayText :'', - isEmptyStringNoValue : true, - clearValuesCB : null - }, kwArgs); - - var o = bobj.crv.params.newParameterValueRow(kwArgs); - bobj.extendClass(o, bobj.crv.params.OptionalParameterValueRow, bobj.crv.params.ParameterValueRow); - - if (o.canChangeOnPanel) { - o._clearValueButton = newIconWidget( - o.id + '_clearBtn', - bobj.crvUri('images/clear_x.gif'), - o.clearValuesCB, - null, //text - L_bobj_crv_ParamsClearValues,//tooltip, - 10, 10, 2, 2); //width, height, dx, dy, disDx, disDy, cancelEventPropagation - - o._clearValueButton.setClasses("", "iconcheck", "", "iconcheckhover"); - o._clearValueButton.margin = 2; - } - - return o; -}; - -bobj.crv.params.OptionalParameterValueRow = { - /** - * Returns arguments required for creating new ValueWidget(TextField, TextCombo, RangeField) - */ - getNewValueWidgetArgs : function() { - var args = this.superClass.getNewValueWidgetArgs(); - - if (this.value == undefined) { - //If value is undefined, the valueWidget should display noValueDisplayText - args.cleanValue = this.noValueDisplayText; - args.foreColor = bobj.Colors.GRAY; - } - - return args; - }, - - init : function () { - this.superClass.init(); - if(this._clearValueButton) { - this._clearValueButton.init(); - } - - this.updateUI (); - }, - - getHTML : function () { - var rowHTML = this.superClass.getHTML(); - if (this.canChangeOnPanel) { - var h = bobj.html; - rowHTML = h.DIV({style : {position : 'relative'}}, rowHTML , h.DIV({'class' : 'clearValueBtnCtn'},this._clearValueButton.getHTML())); - } - - return rowHTML; - }, - - /** - * When receiving focus if noValueDisplayText is being displayed (happens when current value is undefined and param is editable on panel), - * it must be cleared so user can type something - */ - onFocus : function() { - this.superClass.onFocus(); - if (this.canChangeOnPanel) { - if(this.value == undefined) - this._valueWidget.setValue(''); - } - }, - - onBlur : function() { - this.superClass.onBlur(); - - if (this.canChangeOnPanel) { - if (this.value == undefined) - this._valueWidget.setValue(this.noValueDisplayText); - } - }, - - /** - * When user changes value, value stored in OptionalParmeterUI gets updated and - */ - _onChange : function() { - this.value = this._valueWidget.getValue(); - if(this.isEmptyStringNoValue && this.value != null && this.value.length == 0) - this.value = undefined; - - this.updateUI(); - if (this.changeCB) - this.changeCB(); - - }, - - updateUI: function() { - if (this._valueWidget) { - if(this.isReadOnlyParam) { - this._valueWidget.setForeColor(bobj.Colors.GRAY); - this._valueWidget.setTextItalic(false); - } - else { - if(this.value == undefined) { - this._valueWidget.setForeColor(bobj.Colors.GRAY); - if(this._clearValueButton) - this._clearValueButton.setDisplay(false); - } - else { - this._valueWidget.setForeColor(bobj.Colors.BLACK); - if(this._clearValueButton) - this._clearValueButton.setDisplay(true); - } - } - } - }, - - getValueWidgetDisplayValue: function(value) { - return (value == undefined) ? this.noValueDisplayText : value; - }, - - setValue : function(value) { - this.value = value; - this._valueWidget.setValue(this.getValueWidgetDisplayValue(value)); - this.updateUI(); - - this.setWarning(null); //Since value is set through parameterController it cannot contain any errors - }, - - reset : function(value) { - this.superClass.reset(value); - if(this._valueWidget) { - this._valueWidget.reset(this.getValueWidgetDisplayValue(value)); - } - - this.updateUI(); - } -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/PanelHeader.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/PanelHeader.js deleted file mode 100644 index c02a4a299..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/PanelHeader.js +++ /dev/null @@ -1,99 +0,0 @@ -/** - * The header that appears above toolPanel. It consists of a title and close button. - */ -bobj.crv.PanelHeader = function() { - this.id = bobj.uniqueId () + "_panelHeader"; - - this._closeButton = newIconWidget (this.id + "_close", bobj.crv.allInOne.uri, bobj - .bindFunctionToObject (this._closeButtonOnClick, this), null, L_bobj_crv_Close, 8, 7, 0, bobj.crv.allInOne.closePanelDy,null,null,true); - - this.normalCssClass = "panelHeaderCloseButton"; - this.highlightedCssClass = "panelHeaderCloseButtonHighlighted"; - - this._closeButton.setClasses (this.normalCssClass, this.normalCssClass, this.highlightedCssClass, this.highlightedCssClass); - this._title = ""; -}; - -bobj.crv.PanelHeader.prototype = { - getHTML : function() { - var DIV = bobj.html.DIV; - var style = {height : bobj.isBorderBoxModel() ? '21px' : '20px'}; - - return DIV ( { - 'class' : 'panelHeader', - id : this.id, - style : style - }, DIV ( { - 'class' : 'panelHeaderTitle', - id : this.id + "_title" - }, this._title), DIV ( { - 'class' : 'panelHeaderButtonCtn' - }, this._closeButton.getHTML ())); - }, - - init : function() { - this.layer = getLayer (this.id); - this.css = this.layer.style; - this._closeButton.init (); - - var cbLayer = this._closeButton.layer - if (cbLayer) { - MochiKit.Signal.connect (cbLayer, "onfocus", this, this._closeButtonOnFocus); - MochiKit.Signal.connect (cbLayer, "onblur", this, this._closeButtonOnBlur); - } - }, - - /** - * - * @return [DOM element] of title - */ - _getTitleLayer : function() { - return getLayer (this.id + "_title"); - }, - - /** - * Sets title on panel header - * @param title - * @return - */ - setTitle : function(title) { - this._title = title; - this._closeButton.changeTooltip(L_bobj_crv_Close + " " + title); - var l = this._getTitleLayer (); - if (l) - l.innerHTML = title; - }, - - _closeButtonOnFocus : function() { - if (this._closeButton && this._closeButton.layer) - MochiKit.DOM.addElementClass (this._closeButton.layer, this.highlightedCssClass); - }, - - _closeButtonOnBlur : function() { - if (this._closeButton && this._closeButton.layer) - MochiKit.DOM.removeElementClass (this._closeButton.layer, this.highlightedCssClass); - }, - - _closeButtonOnClick : function() { - MochiKit.Signal.signal (this, 'switchPanel', bobj.crv.ToolPanelType.None); - }, - - resize : function(w, h) { - if (this.layer) - bobj.setOuterSize (this.layer, w, h); - - var titleLayer = this._getTitleLayer (); - if(titleLayer) - bobj.setOuterSize (titleLayer, w - 30); - }, - - hideCloseButton : function() { - if (this._closeButton) - this._closeButton.setDisplay(false); - }, - - getWidth : Widget_getWidth, - getHeight : Widget_getHeight, - move : Widget_move, - setDisplay : Widget_setDisplay -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/PanelNavigator.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/PanelNavigator.js deleted file mode 100644 index f0404ff9a..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/PanelNavigator.js +++ /dev/null @@ -1,124 +0,0 @@ -/** - * Navigator on left of viewer, controlling which panel is shown - */ -bobj.crv.PanelNavigator = function() { - this._children = []; - this.widgetType = "PanelNavigator"; - this.id = bobj.uniqueId () + "_panelNav"; -}; - -bobj.crv.PanelNavigator.prototype = { - getHTML : function() { - var childrenHTML = ""; - for ( var i = 0; i < this._children.length; i++) - childrenHTML += this._children[i].getHTML (); - - var DIV = bobj.html.DIV; - var style = { width : bobj.isBorderBoxModel() ? '37px' : '35px'}; - - - return DIV ( { - 'class' : 'panelNavigator', - id : this.id, - style : style - }, DIV ( { id : this.id + "_innerBorder", - 'class' : 'panelNavigatorInnerBorder' - }, childrenHTML)); - }, - - /** - * Initializes its layer and calls init on children - * @return - */ - init : function() { - this.layer = getLayer (this.id); - this._innerBorder = getLayer(this.id + "_innerBorder"); - this.css = this.layer.style; - - if(this._children.length == 0) { - this.css.display = "none"; - } - else { - for ( var i = 0; i < this._children.length; i++) - this._children[i].init (); - } - }, - - /** - * Sets selection on specified child and removes selection from any other child - * @return - */ - selectChild : function(childName) { - for ( var i = 0; i < this._children.length; i++) { - var child = this._children[i]; - child.setSelected (child.getName () == childName); - } - }, - - getChild : function (childName) { - for ( var i = 0; i < this._children.length; i++) { - var child = this._children[i]; - if(child.getName () == childName) - return child; - } - return null; - }, - - hasChildren : function () { - return (this._children.length > 0); - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getGroupTreeButton : function () { - return this.getChild (bobj.crv.ToolPanelType.GroupTree); - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getParamPanelButton : function () { - return this.getChild (bobj.crv.ToolPanelType.ParameterPanel); - }, - - - /** - * - * @param kwArgs [JSON] creates PanelNavigatorItem with properties specified in kwArgs and connects signals - * @return - */ - addChild : function(kwArgs) { - kwArgs = MochiKit.Base.update ( { - name : '', - title : '', - img : { uri: '', dx: 0, dy: 0 } - }, kwArgs); - - var partial = MochiKit.Base.partial; - var signal = MochiKit.Signal.signal; - var connect = MochiKit.Signal.connect; - - var navItem = new bobj.crv.PanelNavigatorItem (kwArgs.name, kwArgs.img, kwArgs.title, 35 * this._children.length); - - connect (navItem, "switchPanel", partial (signal, this, "switchPanel")); - this._children.push (navItem); - }, - - resize : function(w, h) { - bobj.setOuterSize (this.layer, w, h); - bobj.setOuterSize (this._innerBorder, w -2, h -2); //Since border size is 1px for all edges - }, - - getBestFitHeight : function () { - var height = 0; - for ( var i = 0; i < this._children.length; i++) - height += this._children[i].getHeight(); - - return height; - }, - - move : Widget_move, - getWidth : Widget_getWidth - -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/PanelNavigatorItem.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/PanelNavigatorItem.js deleted file mode 100644 index c91393627..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/PanelNavigatorItem.js +++ /dev/null @@ -1,105 +0,0 @@ -/** - * - * @param name [String] Name of itme - * @param img [String] uri location of icon image - * @param title [String] tooltip - */ -bobj.crv.PanelNavigatorItem = function(name, img, title, topOffset) { - this._name = name; - this._img = img; - this._isSelected = false; - this._title = title; - this.topOffset = topOffset; - this.widgetType = 'PanelNavigatorItem'; - - this.id = bobj.uniqueId () + "_navItem_" + name; -}; - -bobj.crv.PanelNavigatorItem.prototype = { - getHTML : function() { - var h = bobj.html; - var img = this._img; - - return h.DIV ( { - id : this.id, - 'class' : 'panelNavigatorItem', - 'tabindex' : '0', - style : {top : this.topOffset + "px"}, - title : this._title, - role : 'button' - }, imgOffset(img.uri, 22, 22, img.dx, img.dy, null, 'class="panelNavigatorItemImage" title="' + this._title + '"') - ); - }, - - getName : function() { - return this._name; - }, - - init : function() { - this.layer = getLayer (this.id); - this.css = this.layer.style; - - var connect = MochiKit.Signal.connect; - connect (this.layer, "onclick", this, this._onClick); - connect (this.layer, "onkeydown", this, this._onKeyDown); - connect (this.layer, "onmouseover", this, this._onMouseOver); - connect (this.layer, "onmouseout", this, this._onMouseOut); - connect (this.layer, "onfocus", this, this._onFocus); - connect (this.layer, "onblur", this, this._onBlur); - - this.setSelected (this._isSelected); - }, - - _onFocus : function () { - MochiKit.DOM.addElementClass (this.layer, "highlighted"); - }, - - _onBlur : function () { - MochiKit.DOM.removeElementClass (this.layer, "highlighted"); - }, - - _onMouseOver : function () { - MochiKit.DOM.addElementClass (this.layer, "highlighted"); - }, - - _onMouseOut : function () { - MochiKit.DOM.removeElementClass (this.layer, "highlighted"); - }, - - _onKeyDown : function(ev) { - if (ev && ev.key () && (ev.key ().code == 13 || ev.key ().code == 32)) // On Enter or spacebar, signal swith panel - this._signalSwitchPanel(); - }, - - _onClick : function() { - this._signalSwitchPanel (); - }, - - /** - * Signals switch panel if it's not currently selected - * @return - */ - _signalSwitchPanel : function () { - if(!this._isSelected) - MochiKit.Signal.signal (this, "switchPanel", this._name); - }, - - /** - * @param isSelected [Boolean] is item selected or not selected - */ - setSelected : function(isSelected) { - this._isSelected = isSelected; - var DOM = MochiKit.DOM; - if (this.layer) { - if (isSelected) - DOM.addElementClass (this.layer, "selected"); - else - DOM.removeElementClass (this.layer, "selected"); - } - }, - - getWidth : Widget_getWidth, - getHeight: Widget_getHeight, - setDisplay : Widget_setDisplay, - isDisplayed : Widget_isDisplayed -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Parameter.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Parameter.js deleted file mode 100644 index 52488d0cf..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Parameter.js +++ /dev/null @@ -1,511 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof bobj.crv.params == 'undefined') { - bobj.crv.params = {}; -} - - bobj.crv.params.DataTypes = { - DATE: "d", - DATE_TIME: "dt", - TIME: "t", - STRING: "s", - NUMBER: "n", - CURRENCY: "c", - BOOLEAN: "b" - }; - - bobj.crv.params.RangeBoundTypes = { - UNBOUNDED: 0, - EXCLUSIVE: 1, - INCLUSIVE: 2 - }; - - bobj.crv.params.DefaultDisplayTypes = { - Description: 0, - DescriptionAndValue: 1 - }; - - bobj.crv.params.CompareResults = { - TOO_BIG: 1, - TOO_SMALL: -1, - EQUAL: 0 - }; - -/* -================================================================================ -Parameter -================================================================================ -*/ - -/** - * Constructor. - */ -bobj.crv.params.Parameter = function(paramInfo) { - var PARAMS = bobj.crv.params; - var displayTypes = PARAMS.DefaultDisplayTypes; - MochiKit.Base.update(this, { - paramName: null, - reportName: null, - description: null, - valueDataType: null, - value: null, - modifiedValue: null, - defaultValues: null, - defaultDisplayType : displayTypes.DescriptionAndValue, - maxValue: null, - minValue: null, - allowCustomValue: true, - allowDiscreteValue: true, - allowMultiValue: false, - allowNullValue: false, - allowRangeValue: false, - editMask: null, - isOptionalPrompt: false, - isEditable: true, - isHidden: false, - isDataFetching: false, - attributes: null - }, paramInfo); - -}; - -/** - * IMPORTANT! Use getValue and setValue to access the value of the parameter, instead of the property itself. - */ -bobj.crv.params.Parameter.prototype = { - getTitle: function() { - return (this.description || this.paramName); - }, - - getName: function () { - return this.paramName; - }, - - hasLOV: function() { - return (this.defaultValues != null && this.defaultValues.length > 0); - }, - - hasDescription: function() { - return this.description != null; - }, - - isPassword: function() { - return (this.editMask !== null && this.editMask.toLowerCase() == "password"); - }, - - getValue: function() { - this._initModifiedValue(); - return this.modifiedValue; - }, - - /* - * Undos any modifications done on parameter that have not been commited - */ - reset: function() { - delete this.modifiedValue; - }, - - removeValueAt: function(index) { - this._initModifiedValue(); - var value = this.modifiedValue[index]; - this.modifiedValue.splice(index, 1); - }, - - // setValue accepts either an array, or an int + an object. - setValue: function (i, newValue) { - this._initModifiedValue(); - - if (arguments.length == 1 && bobj.isArray(arguments[0])) { - var value= arguments[0]; - this.modifiedValue = value; - } - else if (arguments.length == 2) { - var oldValue = this.modifiedValue[i]; - this.modifiedValue[i] = newValue; - } - }, - - clearValue: function() { - this._initModifiedValue(); - this.modifiedValue = []; - }, - - // commitValue will actually apply the changes made so far - commitValue: function() { - this._initModifiedValue(); - this.value = this.modifiedValue.slice(0); - }, - - _initModifiedValue: function() { - if (!this.modifiedValue) { - if (bobj.isArray(this.value)) { - this.modifiedValue = this.value.slice(0); // make a deep copy of "value" - } - else { - this.modifiedValue = []; - } - } - }, - - isDCP: function () { - if (this.attributes != null) { - if (this.attributes['IsDCP'] === true) { - return true; - } - } - - return false; - } -}; - -/* -================================================================================ -Validator for Parameters -================================================================================ -*/ -bobj.crv.params.Validator = function(){}; - -bobj.crv.params.Validator.ValueStatus = { - OK: 0, - ERROR: 1, - VALUE_MISSING: 2, // Required value is missing - VALUE_INVALID_TYPE: 3, // Value has the wrong data type - VALUE_TOO_LONG: 4, // Value's length is less than the minimum - VALUE_TOO_SHORT: 5, // Value's length is greater than the maximum - VALUE_TOO_BIG: 6, // Value is greater than the maximum - VALUE_TOO_SMALL: 7, // Value is less than the minimum - VALUE_DUPLICATE: 8 -}; - -bobj.crv.params.Validator.getInstance = function(){ - if (!bobj.crv.params.Validator.__instance) { - bobj.crv.params.Validator.__instance = new bobj.crv.params.Validator(); - } - return bobj.crv.params.Validator.__instance; -}; - -bobj.crv.params.Validator.prototype = { - /** - * Validate a Parameter instance and return a status object - */ - validateParameter: function(param) { - var PARAMS = bobj.crv.params; - if (!param) {return null;} - - var Status = PARAMS.Validator.ValueStatus; - - if (!bobj.isArray(param.value) || !param.value.length) { - return { - isValid: false, - reason: Status.VALUE_MISSING - }; - } - - var isValid = true; - var statusList = []; - - for (var i = 0, len = param.values.length; i < len; ++i) { - var status = PARAMS.validateValue(param, i); - statusList.push(status); - isValid = isValid && (status === ValueStatus.OK); - } - - return { - isValid: isValid, - statusList: statusList - }; - - }, - - /** - * Validate a parameter value and return a status code - */ - validateValue: function(param, value) { - var Status = bobj.crv.params.Validator.ValueStatus; - - if (!param || !bobj.isArray(param.value) || (value === undefined)) { - return Status.ERROR; - } - - var validatorFunc = this._getTypeValidatorFunc(param.valueDataType); - if (!validatorFunc) { - return Status.ERROR; - } - - var actualValue = bobj.crv.params.getValue(value); - return validatorFunc(param, actualValue); - }, - - _getTypeValidatorFunc: function(type) { - var Type = bobj.crv.params.DataTypes; - - switch (type) { - case Type.STRING: - return this._validateString; - case Type.NUMBER: - case Type.CURRENCY: - return this._validateNumber; - case Type.DATE: - case Type.TIME: - case Type.DATE_TIME: - return this._validateDateTime; - case Type.BOOLEAN: - return this._validateBoolean; - default: - return null; - } - }, - - _validateString: function(param, value) { - var Status = bobj.crv.params.Validator.ValueStatus; - - if (!bobj.isString(value)) { - return Status.VALUE_INVALID_TYPE; - } - - var maxValue = param.maxValue; - var minValue = param.minValue; - if (bobj.isNumber(maxValue) && value.length > maxValue) { - return Status.VALUE_TOO_LONG; - } - - if (bobj.isNumber(minValue) && value.length < minValue) { - return Status.VALUE_TOO_SHORT; - } - - return Status.OK; - }, - - _validateNumber: function(param, value) { - //the "value" passed in here is a number that has at most one decimal separator and no group separator - var Status = bobj.crv.params.Validator.ValueStatus; - var regNumber = /^(\+|-)?(\d+((\.\d+)|(\.))?|\.\d+)$/; - - if(bobj.isString(value) && regNumber.test(value)) { - value = parseFloat(value); - } - else if(!bobj.isNumber(value)) { - return Status.VALUE_INVALID_TYPE; - } - - var maxValue = param.maxValue; - var minValue = param.minValue; - if(maxValue !== null && value > maxValue) { - return Status.VALUE_TOO_BIG; - } - else if(minValue !== null && value < minValue) { - return Status.VALUE_TOO_SMALL; - } - else { - return Status.OK; - } - }, - - _validateDateTime: function(param, value) { - var Result = bobj.crv.params.CompareResults; - var Status = bobj.crv.params.Validator.ValueStatus; - - if (bobj.isObject(value)) { - var isNumber = function(sel) {return bobj.isNumber(value[sel]);}; - if (MochiKit.Iter.every(['d','m', 'y', 'h', 'min', 's', 'ms'], isNumber)) { - - var compareFunc = bobj.crv.params.getDateCompareFunc(param.valueDataType); - if(param.minValue && compareFunc(param.minValue,value) == Result.TOO_BIG) { - return Status.VALUE_TOO_SMALL; - } - else if(param.maxValue && compareFunc(param.maxValue,value) == Result.TOO_SMALL) { - return Status.VALUE_TOO_BIG; - } - else { - return Status.OK; - } - } - } - - return Status.VALUE_INVALID_TYPE; - }, - - _validateBoolean: function(param, value) { - return bobj.crv.params.Validator.ValueStatus.OK; - } -}; - -/* -================================================================================ -Utility Functions -================================================================================ -*/ - -/** - * Get an object that represents a Date and can be serialized to a json string - * - * @param date [Date] The Date instance that should be represented as json - * - * @return [Object] Object representing the date with (key, value) pairs - */ -bobj.crv.params.dateToJson = function(date) { - return { - d: date.getDate(), - m: date.getMonth(), - y: date.getFullYear(), - h: date.getHours(), - min: date.getMinutes(), - s: date.getSeconds(), - ms: date.getMilliseconds() - }; -}; - -bobj.crv.params.getDateCompareFunc = function(type) { - var PARAMS = bobj.crv.params; - var Type = PARAMS.DataTypes; - - switch (type) { - case Type.DATE: - return PARAMS.compareDate; - case Type.TIME: - return PARAMS.compareTime; - case Type.DATE_TIME: - return PARAMS.compareDateTime; - default: - return null; - } -}; - -bobj.crv.params.compareDateTime = function(dateTimeA, dateTimeB) { - var PARAMS = bobj.crv.params; - var Result = PARAMS.CompareResults; - - var dateResult = PARAMS.compareDate(dateTimeA,dateTimeB); - var timeResult = PARAMS.compareTime(dateTimeA,dateTimeB); - - if(dateResult == Result.EQUAL && timeResult == Result.EQUAL) { - return Result.EQUAL; - } - - if(dateResult != Result.EQUAL) { - return dateResult; - } - else { - return timeResult; - } -}; - -/* - * Compares two dates - * @param dateA [JSON DateTime {y,m,d,h,m,s,ms}] first date value - * @param dateB [JSON DateTime {y,m,d,h,m,s,ms}] second date value - * - * @return - * 0: dateA = dateB - * 1: dateA > dateB - * -1: dateA < dateB - */ -bobj.crv.params.compareDate = function(dateTimeA, dateTimeB) { - var Result = bobj.crv.params.CompareResults; - - if( dateTimeA.d == dateTimeB.d && dateTimeA.m == dateTimeB.m && dateTimeA.y == dateTimeB.y){ - return Result.EQUAL; - } - - if( dateTimeA.y > dateTimeB.y) { - return Result.TOO_BIG; - } - else if(dateTimeA.y < dateTimeB.y) { - return Result.TOO_SMALL; - } - - if(dateTimeA.m > dateTimeB.m) { - return Result.TOO_BIG; - } - else if(dateTimeA.m < dateTimeB.m) { - return Result.TOO_SMALL; - } - - if(dateTimeA.d > dateTimeB.d) { - return Result.TOO_BIG; - } - else if(dateTimeA.d < dateTimeB.d) { - return Result.TOO_SMALL; - } -}; - -/* - * Compares two times - * @param timeA [JSON DateTime {y,m,d,h,m,s,ms}] first time value - * @param timeB [JSON DateTime {y,m,d,h,m,s,ms}] second time value - * - * @return - * 0: dateA = dateB - * 1: dateA > dateB - * -1: dateA < dateB - */ -bobj.crv.params.compareTime = function(dateTimeA,dateTimeB) { - var Result = bobj.crv.params.CompareResults; - - if(dateTimeA.h == dateTimeB.h && dateTimeA.min == dateTimeB.min && dateTimeA.s == dateTimeB.s && dateTimeA.ms == dateTimeB.ms) { - return Result.EQUAL; - } - - if(dateTimeA.h > dateTimeB.h) { - return Result.TOO_BIG; - } - else if(dateTimeA.h < dateTimeB.h){ - return Result.TOO_SMALL; - } - - if(dateTimeA.min > dateTimeB.min) { - return Result.TOO_BIG; - } - else if(dateTimeA.min < dateTimeB.min) { - return Result.TOO_SMALL; - } - - if(dateTimeA.s > dateTimeB.s) { - return Result.TOO_BIG; - } - else if(dateTimeA.s < dateTimeB.s) { - return Result.TOO_SMALL; - } - - if(dateTimeA.ms > dateTimeB.ms) { - return Result.TOO_BIG; - } - else if(dateTimeA.ms < dateTimeB.ms){ - return Result.TOO_SMALL; - } -}; - -/** - * Get a Date instance from an object containing (key, value) pairs - * - * @param json [Object] Object with keys that match Date properties - * - * @return [Date] Returns a Date instance - */ -bobj.crv.params.jsonToDate = function(json) { - var date = new Date(); - - if (json) { - date.setFullYear(json.y || 0, json.m || 0, json.d || 1); - date.setHours(json.h || 0); - date.setMinutes(json.min || 0); - date.setSeconds(json.s || 0); - date.setMilliseconds(json.ms || 0); - } - - return date; -}; - -bobj.crv.params.getValue = function (pair) { - if (pair === undefined || pair === null || pair.value === undefined) - return pair; - - return pair.value; -}; - -bobj.crv.params.getDescription = function (pair) { - if (pair === undefined || pair === null || pair.desc === undefined) - return null; - - return pair.desc; -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterController.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterController.js deleted file mode 100644 index a7b1c1361..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterController.js +++ /dev/null @@ -1,1203 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/* TODO Dave - * - Use delete button to set value to empty string if it can't be removed - */ - -/** - * ParameterController creates and controls the widgets that show and edit - * parameter values in the interactive parameter panel. - * - * @param panel [ParameterPanel] Panel that will contain the parameter widgets - * @param viewerCtrl [ViewerListener] Controller for the entire viewer - * @param paramOpts [Object] Parameter options, such as dateTimeFormat - */ -bobj.crv.params.ParameterController = function(panel, viewerCtrl, paramOpts) { - this._panel = panel; - this._viewerCtrl = viewerCtrl; - this._paramOpts = paramOpts; - this._paramList = null; - this._unusedParamList = null; - - var applyClickCB = bobj.bindFunctionToObject(this._onClickTbApplyButton,this); - var resetClickCB = bobj.bindFunctionToObject(this._onClickTbResetButton,this); - this._panel.setToolbarCallBacks(applyClickCB,resetClickCB); -}; - -bobj.crv.params.ParameterController.prototype = { - - /** - * Set the list of parameters to display in the parameter panel. - * - * @param paramList [Array] List of bobj.crv.params.Parameter instances - */ - setParameters: function(paramList, finishCB) { - var Type = bobj.crv.params.DataTypes; - var map = MochiKit.Base.map; - var bind = MochiKit.Base.bind; - - this._deleteWidgets(); - var TIMEER_INTERVAL = 50; - - this._paramList = paramList; - - for (var i = 0; i < paramList.length; ++i) { - var param = paramList[i]; - - var getDisplayText = bind(this._getDisplayText, this, param); - var getDefaultValue = bind(this._getDefaultValue, this, param.valueDataType,param.defaultDisplayType); - var panelCanChangeValues = this._canPanelChangeValues(param); - var minMaxText = this._getMinMaxText(param.valueDataType, param.minValue, param.maxValue); - var openAdvDialogCB = bind(this._onClickTbAdvButton, this, param); - var clearValuesCB = bind(this.clearParameterValues, this, param); - var isReadOnly = !param.isEditable; - var paramValue = param.getValue(); - var isValueOptional = param.isOptionalPrompt || param.allowNullValue; - var calendarProperties = { - hasButton : param.allowCustomValue && panelCanChangeValues && (param.valueDataType === Type.DATE || param.valueDataType === Type.DATE_TIME), - isTimeShown : param.valueDataType === Type.DATE_TIME, - displayValueFormat : this._getDateTimeFormat(param.valueDataType), - iconUrl : bobj.crvUri('images/calendar.gif') - }; - - if(isValueOptional) - paramValue = this.convertOptionalParameterValue(paramValue); - - var paramWidgetConstructor = isValueOptional ? bobj.crv.params.newOptionalParameterUI : bobj.crv.params.newParameterUI; - var canOpenAdvDialog = param.isEditable && (param.allowRangeValue || param.allowMultiValue || param.isDCP() || param.editMask); - - var newParamWidgetArgs = { - values :map(getDisplayText, paramValue), - canChangeOnPanel :panelCanChangeValues, - allowCustom :param.allowCustomValue, - allowRange :param.allowRangeValue, - canAddValues :param.allowMultiValue && panelCanChangeValues, - isReadOnlyParam :isReadOnly, - isPassword :param.isPassword(), - defaultValues :map(getDefaultValue, param.defaultValues || []), - openAdvDialogCB : openAdvDialogCB, - maxNumParameterDefaultValues :this._paramOpts.maxNumParameterDefaultValues, - tooltip :param.getTitle(), - calendarProperties :calendarProperties, - clearValuesCB : clearValuesCB, - canOpenAdvDialog : canOpenAdvDialog - }; - - if(isValueOptional) { - newParamWidgetArgs.noValueDisplayText = this._getNoValueDisplayText(param.valueDataType, panelCanChangeValues) - newParamWidgetArgs.isEmptyStringNoValue = param.valueDataType != Type.STRING; - } - - var paramWidget = paramWidgetConstructor(newParamWidgetArgs); - this._observeParamWidget(paramWidget); - - var addParameter = function(panel, param, paramWidget, openAdvDialogCB, isValueOptional, panelCanChangeValues, clearValuesCB, isLast, finishCB) { - return function() { - panel.addParameter({paramUI: paramWidget, - label : param.getTitle(), - name : param.getName(), - isDataFetching: param.isDataFetching, - openAdvCB: openAdvDialogCB - }); - - if(isLast && finishCB) - finishCB(); - }; - }; - - setTimeout(addParameter(this._panel, param, paramWidget, canOpenAdvDialog ? openAdvDialogCB : null, isValueOptional, panelCanChangeValues, clearValuesCB, i == paramList.length -1, finishCB), TIMEER_INTERVAL * i); - } - - if(paramList) { - var updatePanel = function (panel) { - return function() { - //Parameter panel has to be resized in case scroll bars appear - panel.resize(); - - // Force the panel to be redrawn to fix a problem - // in IE if the prompt text is too long to be displayed. - if (MochiKit.Base.isIE ()){ - var curDisplay = panel.isDisplayed(); - panel.setDisplay(!curDisplay); - panel.setDisplay(curDisplay); - } - }; - }; - setTimeout(updatePanel(this._panel), TIMEER_INTERVAL * paramList.length ); - } - - //Panel should be disabled when current view is not main report view - this._panel.setDisabled(!this._isCurrentViewMainReport()); - //Disables all buttons on param toolbar -> necessary when refreshing report via ajax request - this._panel.setApplyButtonEnabled(false); - this._panel.setResetButtonEnabled(false); - }, - - setUnusedParameters: function(unusedParamList) { - this._unusedParamList = unusedParamList; - }, - - convertOptionalParameterValue: function(values) { - if(values === undefined || values.length === undefined) - return []; - - var newValues = bobj.cloneArray (values); - if(newValues.length == 0 || newValues[0] == null) - newValues[0] = undefined; - - return newValues; - }, - - /** - * Get the list of params that are displayed in the panel - * - * @return [Array] List of bobj.crv.params.Parameter instances or null - */ - getParameters: function() { - return this._paramList; - }, - - /** - * When view changes, ParameterController must disable panel if current view is not main report view - * @return - */ - onChangeView: function() { - this._panel.setDisabled(!this._isCurrentViewMainReport()); - }, - - /** - * - * @return true if panel is edittable - */ - _isPanelEditable: function() { - return this._isCurrentViewMainReport(); - }, - - /** - * @return true if current view is the main report view - */ - _isCurrentViewMainReport: function() { - var currentView = this._viewerCtrl.getCurrentView (); - return currentView && currentView.isMainReport(); - }, - - findParamIndexByName : function( paramName) { - for (var i = 0; i < this._paramList.length; ++i) { - if (this._paramList[i].paramName === paramName) { - return i; - } - } - - return -1; - }, - - findUnusedParamIndexByName : function(paramName) { - for (var i = 0; i < this._unusedParamList.length; ++i) { - if (this._unusedParamList[i].paramName === paramName) { - return i; - } - } - - return -1; - }, - - findParamByName : function(paramName) { - var index = this.findParamIndexByName(paramName); - if(index == -1) - return null; - else - return this._paramList[index]; - }, - - /** - * Sets the current values of the param with the same name as the one passed - * in and updates the UI. - * - * @param [Parameter] - */ - updateParameter: function(paramName, paramValue) { - if (paramName) { - var index = this.findParamIndexByName(paramName); - - if (index != -1) { - var param = this._paramList[index]; - param.setValue(paramValue); - - var paramUI = this._panel.getParameter(index); - var getDisplayText = MochiKit.Base.bind(this._getDisplayText, this, this._paramList[index]); - - if (param.isOptionalPrompt || param.allowNullValue) - paramValue = this.convertOptionalParameterValue(paramValue); - - paramUI.setValues( MochiKit.Base.map(getDisplayText, paramValue) ); - - var paramTab = this._panel.getParameterTab(index); - if(paramTab) - paramTab.setDirty(true); - } - else { - index = this.findUnusedParamIndexByName(paramName); - - if (index != -1) { - var param = this._unusedParamList[index]; - param.setValue(paramValue); - } - } - } - }, - - getFocusAdvButtonCB: function (paramName) { - return MochiKit.Base.bind(this._focusAdvButton, this, paramName); - }, - - _focusAdvButton: function(paramName) { - if (paramName) { - var index = this.findParamIndexByName(paramName); - - if (index != -1) { - var paramTab = this._panel.getParameterTab(index); - - if(paramTab) - paramTab.focusAdvButton(); - } - } - }, - - /** - * Checks whether a parameter can be edited directly in the panel. Params - * that can't be edited in the panel are either read-only or must be - * edited in the Advanced Dialog. - * - * @param param [Parameter] - * - * @return [bool] True if ParameterPanel is capable of changing the - * parameter's values. False otherwise. - */ - _canPanelChangeValues: function(param) { - return param && param.isEditable && !param.allowRangeValue && !param.editMask && !param.isDCP() && !param.allowMultiValue; - }, - - /** - * Private. Deletes the parameter widgets in the panel. - */ - _deleteWidgets: function() { - var paramUI = this._panel.getParameter(0); - while (paramUI) { - delete _widgets[paramUI.widx]; - this._panel.removeParameter(0); - paramUI = this._panel.getParameter(0); - } - }, - - /** - * Restores original state of parameter panel - */ - resetParamPanel: function() { - - // Resets value of all parameters in panel to values stored in view state - for(var i = 0, iLen = this._paramList.length; i < iLen; i++) { - var param = this._paramList[i]; - param.reset(); - - var paramUI = this._findWidget(param); - var getDisplayText = MochiKit.Base.bind(this._getDisplayText, this, param); - - var paramValue = param.getValue(); - if (param.isOptionalPrompt || param.allowNullValue) - paramValue = this.convertOptionalParameterValue(paramValue); - - var values = MochiKit.Base.map(getDisplayText, paramValue); - paramUI.resetValues(values); - } - - for(var i = 0, l = this._panel.getParameterCount(); i < l; i++) { - var paramTab = this._panel.getParameterTab(i); - if(paramTab) - paramTab.setDirty(false); - } - - this._viewerCtrl.clearAdvancedPromptData (); - - //Disables all buttons on param toolbar - this._panel.setApplyButtonEnabled(false); - this._panel.setResetButtonEnabled(false); - }, - - /** - * Private. Compares 2 objects that have date like members (y, m, d, h, min, s, ms) - * returns true if all members match, false otherwise. - */ - _compareCustomDateObject: function(valA, valB) { - if (valA.y != valB.y) { - return false; - } - - if (valA.m != valB.m) { - return false; - } - - if (valA.d != valB.d) { - return false; - } - - if (valA.h != valB.h) { - return false; - } - - if (valA.min != valB.min) { - return false; - } - - if (valA.s != valB.s) { - return false; - } - - if (valA.ms != valB.ms) { - return false; - } - - return true; - }, - - /** - * Private. Erom doesn't give us NULL in all cases so we need to compare against the boundary values for each type. - * type - the value type - * minValue - the value to check - * returns true if the minValue is NOT equal NULL or the MIN value for the given datatype. - */ - _hasMinBound: function(type,minValue) { - if (minValue == null) { - return false; - } - - var Type = bobj.crv.params.DataTypes; - switch(type) { - case Type.STRING: - if (minValue == 0) { - return false; - } - return true; - case Type.DATE: - case Type.DATE_TIME: - absoluteMin = {y:1753, m:0, d:1, h:0, min:0, s:0, ms:0}; - return !this._compareCustomDateObject (absoluteMin, minValue); - case Type.TIME: - absoluteMin = {y:1899, m:11, d:30, h:0, min:0, s:0, ms:0}; - return !this._compareCustomDateObject (absoluteMin, minValue); - case Type.NUMBER: - case Type.CURRENCY: - if (minValue == -3.40282346638529e+38) { - return false; - } - return true; - } - - // should not get here! - return false; - }, - - /** - * Private. Erom doesn't give us NULL in all cases so we need to compare against the boundary values for each type. - * type - the value type - * minValue - the value to check - * returns true if the maxValue is NOT equal NULL or the MAX value for the given datatype. - */ - _hasMaxBound: function(type,maxValue) { - if (maxValue == null) { - return false; - } - - var Type = bobj.crv.params.DataTypes; - switch(type) { - case Type.STRING: - if (maxValue == 65534) { - return false; - } - return true; - case Type.DATE: - absoluteMax = {y:9999, m:11, d:12, h:0, min:0, s:0, ms:0}; - return !this._compareCustomDateObject (absoluteMax, maxValue); - case Type.TIME: - absoluteMax = {y:1899, m:11, d:30, h:23, min:59, s:59, ms:0}; - return !this._compareCustomDateObject (absoluteMax, maxValue); - case Type.DATE_TIME: - absoluteMax = {y:9999, m:11, d:12, h:23, min:59, s:59, ms:0}; - return !this._compareCustomDateObject (absoluteMax, maxValue); - case Type.NUMBER: - case Type.CURRENCY: - if (maxValue == 3.40282346638529e+38) { - return false; - } - return true; - } - - // should not get here! - return false; - }, - - _getNoValueDisplayText : function(valueType, isEditableOnPanel) { - if(!isEditableOnPanel) { - return L_bobj_crv_ParamsNoneSelected; - } - else { - var DataTypes = bobj.crv.params.DataTypes; - var valueTypeText = ''; - switch(valueType) { - case DataTypes.DATE : - valueTypeText = L_bobj_crv_Date; - break; - case DataTypes.DATE_TIME: - valueTypeText = L_bobj_crv_DateTime; - break; - case DataTypes.TIME: - valueTypeText = L_bobj_crv_Time; - break; - case DataTypes.STRING : - valueTypeText = L_bobj_crv_Text; - break; - case DataTypes.NUMBER : - valueTypeText = L_bobj_crv_Number; - break; - case DataTypes.CURRENCY : - valueTypeText = L_bobj_crv_Number; - break; - case DataTypes.BOOLEAN : - valueTypeText = L_bobj_crv_Boolean; - break; - } - - return L_bobj_crv_ParamsEnterOptional.replace("%1", valueTypeText); - } - }, - - _getMinMaxText: function(type,minValue,maxValue) { - - var Type = bobj.crv.params.DataTypes; - var maxValueDisplay,minValueDisplay; - - if(type == Type.STRING) { - /* because min/max of string are in number format */ - minValueDisplay = this._getValueText(Type.NUMBER , minValue); - maxValueDisplay = this._getValueText(Type.NUMBER, maxValue); - } - else { - minValueDisplay = this._getValueText(type, minValue); - maxValueDisplay = this._getValueText(type, maxValue); - } - - if(type == Type.BOOLEAN || (minValue == null && maxValue == null)) { - return null; - } - - var displayType,returnString; - - switch(type) { - case Type.DATE: - displayType = L_bobj_crv_Date; - break; - case Type.TIME: - displayType = L_bobj_crv_Time; - break; - case Type.DATE_TIME: - displayType = L_bobj_crv_DateTime; - break; - case Type.NUMBER: - displayType = L_bobj_crv_Number; - break; - case Type.CURRENCY: - displayType = L_bobj_crv_Number; - break; - } - - var hasMinBound = this._hasMinBound (type, minValue); - var hasMaxBound = this._hasMaxBound (type, maxValue); - switch(type) { - case Type.STRING: - if(hasMinBound && hasMaxBound) { - returnString = L_bobj_crv_ParamsStringMinAndMaxTooltip.replace("%1", minValueDisplay); - returnString = returnString.replace("%2",maxValueDisplay); - } - else if(hasMinBound) { - returnString = L_bobj_crv_ParamsStringMinOrMaxTooltip.replace("%1", L_bobj_crv_Minimum); - returnString = returnString.replace("%2", minValueDisplay); - } - else if(hasMaxBound) { - returnString = L_bobj_crv_ParamsStringMinOrMaxTooltip.replace("%1", L_bobj_crv_Maximum); - returnString = returnString.replace("%2", maxValueDisplay); - } - break; - default: - if(hasMinBound && hasMaxBound) { - returnString = L_bobj_crv_ParamsMinAndMaxTooltip.replace("%1", displayType); - returnString = returnString.replace("%2",minValueDisplay); - returnString = returnString.replace("%3",maxValueDisplay); - } - else if(hasMinBound) { - returnString = L_bobj_crv_ParamsMinTooltip.replace("%1", displayType); - returnString = returnString.replace("%2", minValueDisplay); - } - else if(hasMaxBound) { - returnString = L_bobj_crv_ParamsMaxTooltip.replace("%1", displayType); - returnString = returnString.replace("%2", maxValueDisplay); - } - } - - return returnString; - }, - /** - * Constructs description and display value for default values - * @param type [bobj.crv.params.DataTypes] - * @param displayType [bobj.crv.params.DefaultValueDisplayTypes] - * @param value [Object] Parameter value to convert to text - * - * @return {value: convertedValue, desc: description} - */ - _getDefaultValue: function(type, displayType, valueObj) { - var displayTypes = bobj.crv.params.DefaultDisplayTypes; - var valueText = this._getValueText(type, valueObj.value); - var valueDesc; - - switch(displayType) { - case displayTypes.Description: - if(valueObj.desc != null && valueObj.desc.length > 0) { - valueDesc = valueObj.desc; - } - else { - valueDesc = valueText; - } - break; - case displayTypes.DescriptionAndValue: // Value And Description - valueDesc = valueText; - if(valueObj.desc != null && valueObj.desc.length > 0) { - valueDesc += ' - ' + valueObj.desc; - } - break; - - } - - return valueDesc; - - }, - - /* - * Private. Convert value text which could contains description to value text based on default values of param - * @param param [bobj.crv.params.Parameter] Value's data type (bobj.crv.params.DataTypes) - * @param desc [string] - */ - _getValueTextFromDefValueDesc: function(param, desc) { - if(param.defaultValues && bobj.isArray(param.defaultValues)) { - for(var i = 0 ; i < param.defaultValues.length;i++) { - var defValueDesc = this._getDefaultValue(param.valueDataType,param.defaultDisplayType, param.defaultValues[i]); - if(defValueDesc == desc) { - // if desc is equal to one of LOV's row desc, then get value text of that row - return this._getValueText(param.valueDataType, param.defaultValues[i].value); - } - } - } - return null; - }, - - - /** - * Private. Converts a parameter value to display text. - * - * @param type [int] Value's data type (bobj.crv.params.DataTypes) - * @param isRange [bool] - * @param value [Object] Parameter value to convert to text - * - * @return [String] Returns display text representing the value - */ - _getValueText: function(type, value) { - if (value === undefined) { - return undefined; - } - - // Get the actual value to be used. When setting values from the param - // panel advanced UI it's possible the value will be an object such as - // {value:'the value'} or {value:'the value', desc:'description'} - value = bobj.crv.params.getValue (value); - - var Type = bobj.crv.params.DataTypes; - switch(type) { - case Type.DATE: - return this._getDateTimeText(value, this._paramOpts.dateFormat); - case Type.TIME: - return this._getDateTimeText(value, this._paramOpts.timeFormat); - case Type.DATE_TIME: - return this._getDateTimeText(value, this._paramOpts.dateTimeFormat); - case Type.NUMBER: - case Type.CURRENCY: - return this._getNumberText(value,this._paramOpts.numberFormat); - case Type.BOOLEAN: - return this._getBooleanText(value,this._paramOpts.booleanFormat); - case Type.STRING: - default: - return '' + value; - } - }, - - _getBooleanText: function(value, booleanFormat) { - - return booleanFormat[''+value]; - }, - - /** - * Private. Converts a Number value into display text. - * - * @param value [int] Parameter value to convert to text - * @param format [{decimalSeperator,groupSeperator}] Number format - * - * @return [String] Returns display text for the value - */ - _getNumberText: function(value,format) { - var dcSeperator = format.decimalSeperator; - var gpSeperator = format.groupSeperator; - var valueSplitted = ('' + value).split("."); - var leftVal,rightVal,formattedValue; - var numberSign = null; - - leftVal = valueSplitted[0]; - if(leftVal.length > 0 && leftVal.slice(0,1) == '-' || leftVal.slice(0,1) == '+') { - numberSign = leftVal.slice(0,1); - leftVal = leftVal.slice(1,leftVal.length); - } - - rightVal = (valueSplitted.length == 2) ? valueSplitted[1] : null; - formattedLeftVal = null; - - if(leftVal.length <= 3) { - formattedLeftVal = leftVal; - } - else { - var gp = null; - var sliceIndex = null; - while(leftVal.length > 0) { - sliceIndex = (leftVal.length > 3) ? leftVal.length - 3 : 0; - gp = leftVal.slice(sliceIndex,leftVal.length); - leftVal = leftVal.slice(0, sliceIndex); - formattedLeftVal = (formattedLeftVal == null) ? gp : gp + gpSeperator + formattedLeftVal; - } - } - - formattedValue = (rightVal != null) ? formattedLeftVal + dcSeperator + rightVal : formattedLeftVal; - formattedValue = (numberSign != null) ? numberSign + formattedValue : formattedValue; - return formattedValue; - }, - - /** - * Private. Converts a DateTime value into display text. - * - * @param value [Object] Parameter value to convert to text - * @param format [String] DateTime format - * - * @return [String] Returns display text for the value - */ - _getDateTimeText: function(value, format) { - var date = bobj.crv.params.jsonToDate(value); - if (date) { - return bobj.external.date.formatDate(date, format); - } - return ''; - }, - - /* - * Looks up value in the param's defualt values list, and if it's existing, get value/desc based on valueDisplayType - * @param value [Object] Parameter value to convert to text - */ - _getValueTextFromDefaultValue: function(param, value) { - var desc = bobj.crv.params.getDescription (value); - if (desc !== null) { - return this._getDefaultValue(param.valueDataType, param.defaultDisplayType, value); - } - - // Get the actual value to be used, then try to match the description in the LOV - value = bobj.crv.params.getValue (value); - - if(bobj.isArray(param.defaultValues)) { - var hashValue = bobj.getValueHashCode(param.valueDataType,value); - for(var i = 0 ; i < param.defaultValues.length; i++) { - if(hashValue == bobj.getValueHashCode(param.valueDataType,param.defaultValues[i].value)) { - return this._getDefaultValue(param.valueDataType, param.defaultDisplayType, param.defaultValues[i]); - } - } - } - - return null; - }, - - /* - * Converts value object to value text in order to be displayed on ParameterUI. takes into account valueDisplayType - * IMPORTANT : use _getValueText if you want to convert param value Obj to param value text - */ - _getDisplayText: function(param,value) { - if (value === undefined) { - return undefined; - } - - if (value.lowerBoundType !== undefined || value.upperBoundType !== undefined) { - return this._getRangeDisplayText(param, value); - } - - var valueText = this._getValueTextFromDefaultValue(param,value); - - if(valueText == null) { - valueText = this._getValueText(param.valueDataType, value); - } - - return valueText; - }, - - /** - * Private. Converts a range value into display text. - * - * @param value [Object] Parameter value to convert to text - * @param type [int] Value's data type (bobj.crv.params.DataTypes) - * - * @return [String] Returns display text for the value - */ - _getRangeDisplayText: function(param, value) { - var displayText = new Object; - displayText.lowerBound = {type : value.lowerBoundType, value : this._getDisplayText(param, value.beginValue)}; - displayText.upperBound = {type : value.upperBoundType, value : this._getDisplayText(param, value.endValue)}; - - return displayText; - }, - - /** - * Private. Converts text into a parameter value. - * - * @param type [int] Value's data type (bobj.crv.params.DataTypes) - * @param text [String] Value's display text - * - * @return [Object] Parameter value - */ - _getParamValue: function(type, text) { - if (type === undefined) { - return undefined; - } - - var Type = bobj.crv.params.DataTypes; - switch(type) { - case Type.DATE: - return this._getDateTimeParamValue(text, this._paramOpts.dateFormat); - case Type.TIME: - return this._getDateTimeParamValue(text, this._paramOpts.timeFormat); - case Type.DATE_TIME: - return this._getDateTimeParamValue(text, this._paramOpts.dateTimeFormat); - case Type.NUMBER: - case Type.CURRENCY: - return this._getNumberParamValue(text,this._paramOpts.numberFormat); - case Type.BOOLEAN: - return this._getBooleanParamValue(text,this._paramOpts.booleanFormat); - case Type.STRING: - default: - return text; - } - }, - - /** - * Private. Converts boolean text to a paramter value - * @param text [String] Value's display text - * @param booleanFormat [boolean format] {true: text : false : text} - * @return [String] - */ - _getBooleanParamValue: function(text,booleanFormat) { - if(text != null && text.length != 0) { - return booleanFormat["true"] == text; - } - else { - return null; - } - }, - - clearParameterValues : function(param) { - if(param.allowNullValue) - this.updateParameter(param.paramName, [null]); - else - this.updateParameter(param.paramName, []); - - this._updateToolbar(); - }, - - /** - * Private. Converts Number text to a paramter value - * @param text [String] Value's display text - * @param format [{decimalSeperator,groupSeperator}] number format - * - * @return [String] - */ - _getNumberParamValue: function(text,format) { - if(text == null) { - return null; - } - - var value = ''; - - if (/[ \f\n\r\t\v\u00A0\u2028\u2029]/.test(format.groupSeperator)) { - value = text.replace(/[ \f\n\r\t\v\u00A0\u2028\u2029]/g, ''); - } - else { - var gpRE = new RegExp( "\\" + format.groupSeperator, "g" ); - value = text.replace(gpRE,"") - } - - return value.replace(format.decimalSeperator, "."); - }, - - /** - * Private. Converts DateTime text into a parameter value. - * - * @param text [String] Value's display text - * @param format [String] DateTime format - * - * @return [Object] DateTime parameter value or the original value if getDateFromFormat fails - */ - _getDateTimeParamValue: function(text, format) { - var date = bobj.external.date.getDateFromFormat(text, format); - if (date) { - return bobj.crv.params.dateToJson(date); - } - return text; - }, - - /** - * Private. Attach callbacks to a parameter widget - * - * @param widget [ParameterUI] - */ - _observeParamWidget: function(widget) { - if (widget) { - var bind = MochiKit.Base.bind; - widget.changeValueCB = bind(this._onChangeValue, this, widget); - widget.enterPressCB = bind(this._onEnterPress, this, widget); - } - }, - - /** - * Private ParameterUI callback. Updates the UI when a param value is edited. - * - * @param widget [ParameterUI] The source of the event - * @param valueIdx [int] The index of the value that changed - * @param new Value [String] The new value (display text) at valueIdx - */ - _onChangeValue: function(widget, valueIdx, newValue) { - if (!this._isPanelEditable()) { - return; - } - - var parameterTab = this._panel.getParameterTabByWidget(widget); - if(parameterTab) - parameterTab.setDirty(true); - - this._checkAndSetValue(widget, valueIdx); - this._updateToolbar(); - }, - - /** - * Private ParameterUI callback. Attempts to apply change param values to - * the report when the Enter key is pressed while editing a value. - * - * @param widget [ParameterUI] The source of the event - * @param valueIdx [int] The index of the value that has focus - */ - _onEnterPress: function(widget, valueIdx) { - if(this._panel.isApplyButtonEnabled()) - this._applyValues(); - }, - - /** - * Private ParameterPanel callback. Applies changed parameter values to the - * report when the run button is clicked on the panel's toolbar. - */ - _onClickTbApplyButton: function() { - this._applyValues(); - }, - - _onClickTbResetButton: function() { - this.resetParamPanel(); - }, - - /** - * Private ParameterPanel callback. Shows the advanced dialog for the - * selected parameter when the advanced dialog button is clicked on the - * panel's toolbar. - */ - _onClickTbAdvButton: function(param) { - if (this._isPanelEditable()) { - this._viewerCtrl.showAdvancedParamDialog(param); - } - }, - - /** - * Private. Attempts to apply changed parameter values to the report. - * Changed display text will be converted to parameter values and validated. - * Validation failure will cause a warning to appear instead of updating the - * report. - */ - _applyValues: function() { - - var numParams = this._paramList.length; - var badParamIdx = -1; - var badValueIdx = -1; - var warning = null; - var paramUI = null; - - for (var i = 0; (i < numParams) && !warning; ++i) { - paramUI = this._panel.getParameter(i); - var numValues = paramUI.getNumValues(); - for (var j = 0; (j < numValues) && !warning; ++j) { - warning = paramUI.getWarning(j); - if (warning) { - badParamIdx = i; - badValueIdx = j; - } - } - } - - if (warning) { - paramUI = this._panel.getParameter(badParamIdx); - paramUI.setFocusOnRow(badValueIdx); - } - else { - // make all value changes permanent - for (var i = 0, c = this._paramList.length; i < c; i++) { - this._paramList[i].commitValue(); - } - for (var i = 0, c = this._unusedParamList.length; i < c; i++) { - this._unusedParamList[i].commitValue(); - } - this._viewerCtrl.applyParams(this._paramList.concat(this._unusedParamList)); - this._panel.setApplyButtonEnabled(false); - } - }, - - /** - * Private. Finds the Parameter associated with a given ParameterUI. - * - * @param widget [ParameterUI] - * - * @return [Parameter] - */ - _findParam: function(widget) { - return this._paramList[this._panel.getIndex(widget)]; - }, - - _findWidget: function(param) { - for(var i = 0 ; i < this._paramList.length; i++) { - if(this._paramList[i].paramName == param.paramName) { - return this._panel.getParameter(i) - } - } - return null; - }, - - /** - * Private. Updates the state of the parameter panel's toolbar buttons. - */ - _updateToolbar: function() { - if (!this._isPanelEditable()) { - return; - } - - this._panel.setApplyButtonEnabled(true); //FIXME: should only enable when panel is dirty - this._panel.setResetButtonEnabled(true); //FIXME: should only enable when panel is dirty - }, - - /** - * Private. Selects a Date/Time format string from paramOpts based on the - * give parameter value type. - * - * @param dataType [bobj.crv.params.DataTypes] - * - * @return [String] Returns a DateTime format string. - */ - _getDateTimeFormat: function(dataType) { - var Type = bobj.crv.params.DataTypes; - switch(dataType) { - case Type.DATE: - return this._paramOpts.dateFormat; - case Type.TIME: - return this._paramOpts.timeFormat; - case Type.DATE_TIME: - return this._paramOpts.dateTimeFormat; - default: return null; - } - }, - - /** - * Private. Convert display text to a param value, validate it, and update - * the value of the associated Parameter instance when validation succeeds. - * Sets the warning text of the value when validation fails. - * - * @param widget [ParameterUI] - * @param valueIdx [int] Index of value to validate and update - */ - _checkAndSetValue: function(widget, valueIdx) { - /* - * Return if parameter value is modified in advanced dialog as the parameter value is already set by updateParameter - */ - if(!widget.canChangeOnPanel) { - return; - } - - var parameter = this._findParam(widget); - var valueText = widget.getValueAt(valueIdx); - - // Checking if value exists in defaultValues and if it does, get the value from defaultValue - var defValue = this._getValueTextFromDefValueDesc(parameter,valueText); - if(defValue != null) { - valueText = defValue; - } - - var paramValue = this._getParamValue(parameter.valueDataType, valueText); - - - // if the following condition is true, the user is providing 'no value' to an optional parameter - if (valueIdx == 0 && paramValue == undefined) { - if(parameter.allowNullValue && parameter.getValue().length == 0) { - parameter.setValue(0, null); - } - - if(parameter.isOptionalPrompt) { - parameter.clearValue(); - } - - widget.setWarning(valueIdx,null); // Removes warning if there is any - - return; - } - - var Status = bobj.crv.params.Validator.ValueStatus; - var code = Status.OK; - var warningMsg = null; - - code = bobj.crv.params.Validator.getInstance().validateValue(parameter, paramValue); - - if (Status.OK === code) { - var cText = this._getValueTextFromDefaultValue(parameter,paramValue); - if(cText != null) { - widget.setValueAt(valueIdx,cText); - } - widget.setWarning(valueIdx,null); // Removes warning - parameter.setValue(valueIdx, paramValue); //checks for duplicates when setting a value - - - } - else { - warningMsg = this._getWarningText(parameter, code); - widget.setWarning(valueIdx, {code : code, message : warningMsg }); - } - - }, - - /** - * Private. Convert a validation error code into a readable warning message. - * - * @param param [Parameter] Parameter that has the erroroneous value - * @param code [ValueStatus] Validation error code - * - * @return [String] Returns a warning message suitable for display in the UI - */ - _getWarningText: function(param, code) { - var Type = bobj.crv.params.DataTypes; - - switch(param.valueDataType) { - case Type.DATE: - case Type.TIME: - case Type.DATE_TIME: - return this._getDateTimeWarning(param,code); - case Type.STRING: - return this._getStringWarning(param, code); - case Type.NUMBER: - case Type.CURRENCY: - return this._getNumberWarning(param,code); - default: - return null; - } - }, - - /** - * Private. Create warning message for invalid datetime value - * @param param [Parameter] Parameter that has the erroroneous value - * @param code [ValueStatus] Validation error code - * - * @return [String] Returns a warning message suitable for display in the UI - */ - _getDateTimeWarning: function(param,code) { - var dataTypes = bobj.crv.params.DataTypes; - var ValueStatus = bobj.crv.params.Validator.ValueStatus; - var dateFormat = this._paramOpts.dateFormat; - - dateFormat = dateFormat.replace('yyyy', '%1'); - dateFormat = dateFormat.replace(/M+/, '%2'); - dateFormat = dateFormat.replace(/d+/, '%3'); - dateFormat = dateFormat.replace('%1', L_bobj_crv_ParamsYearToken); - dateFormat = dateFormat.replace('%2', L_bobj_crv_ParamsMonthToken); - dateFormat = dateFormat.replace('%3', L_bobj_crv_ParamsDayToken); - - if(code == ValueStatus.ERROR || code == ValueStatus.VALUE_INVALID_TYPE) { - switch(param.valueDataType) { - case dataTypes.DATE: - return L_bobj_crv_ParamsBadDate.replace("%1",dateFormat); - case dataTypes.DATE_TIME: - return L_bobj_crv_ParamsBadDateTime.replace("%1",dateFormat); - break; - case dataTypes.TIME: - return L_bobj_crv_ParamsBadTime - break; - } - } - else if(code == ValueStatus.VALUE_TOO_BIG || code == ValueStatus.VALUE_TOO_SMALL){ - return this._getMinMaxText(param.valueDataType,param.minValue,param.maxValue); - } - - return null; - }, - - /** - * Private. Create a warning message for String parameter - * - * @param param [Parameter] Parameter that has the erroroneous value - * @param code [ValueStatus] Validation error code - * - * @return [String] Returns a warning message suitable for display in the UI - */ - _getStringWarning: function(param, code) { - var Status = bobj.crv.params.Validator.ValueStatus; - if (Status.VALUE_TOO_LONG === code) { - return L_bobj_crv_ParamsTooLong.replace('%1', param.maxValue); - } - else if(Status.VALUE_TOO_SHORT === code){ - return L_bobj_crv_ParamsTooShort.replace('%1', param.minValue); - } - return null; - }, - - /** - * Private. Create warning message for invalid datetime value - * @param param [Parameter] Parameter that has the erroroneous value - * @param code [ValueStatus] Validation error code - * - * @return [String] Returns a warning message suitable for display in the UI - */ - _getNumberWarning : function(param,code) { - var ValueStatus = bobj.crv.params.Validator.ValueStatus; - var dataTypes = bobj.crv.params.DataTypes; - switch(code) { - case ValueStatus.ERROR: - case ValueStatus.VALUE_INVALID_TYPE: - if(param.valueDataType == dataTypes.NUMBER) { - return L_bobj_crv_ParamsBadNumber; - } - else if(param.valueDataType == dataTypes.CURRENCY) { - return L_bobj_crv_ParamsBadCurrency; - } - case ValueStatus.VALUE_TOO_BIG: - case ValueStatus.VALUE_TOO_SMALL: - return this._getMinMaxText(param.valueDataType,param.minValue,param.maxValue); - default: - return null; - - } - } -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterDialog.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterDialog.js deleted file mode 100644 index 1e5e325ae..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterDialog.js +++ /dev/null @@ -1,170 +0,0 @@ -/* -================================================================================ -ParameterDialog - -Advanced Dialog for editing parameters using the prompt engine -================================================================================ -*/ - -bobj.crv.params.newParameterDialog = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - prompt: null, - showCB : null, - hideCB : null - }, kwArgs); - - var o = newDialogBoxWidget( - kwArgs.id, - L_bobj_crv_ParamsDlgTitle, - kwArgs.width, - kwArgs.height /*,defaultCB,cancelCB,noCloseButton*/); - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - - // Update instance with member functions - o._showDialogBox = o.show; - o._initDialogBox = o.init; - o._resizeSignal = null; - MochiKit.Base.update(o, bobj.crv.params.ParameterDialog); - - return o; -}; - -bobj.crv.params.ParameterDialog = { - init : function() { - this._initDialogBox (); - this._form = document.getElementById (this.id + '_form'); - window.paramWindow = this; - }, - - _checkInitialization : function() { - if (!this.layer) { - targetApp (this.getHTML ()); - this.init (); - } - }, - - show : function(show) { - if (show) { - this._checkInitialization (); - this.doLayout (); - this.setResize (MochiKit.Base.noop); - this._showDialogBox (true); - o._resizeSignal = MochiKit.Signal.connect(window, 'onresize', this, '_onWindowResize'); - } else { - if (this.layer) - this._showDialogBox (false); - bobj.crv.SignalDisposer.dispose(o._resizeSignal, true); - } - - if (show && this.showCB) { - this.showCB (); - } else if (!show && this.hideCB) { - this.hideCB (); - } - }, - - isVisible : function() { - return (this.initialized () && this.isDisplayed ()); - }, - - /* if dialog's height is less than window's height, it would return dialog's height - if dialog's height is greater than window's height, it would return window's height - 100 - if dialog's height is less than 100, it would return 100 - */ - getPreferredHeight : function () { - return Math.min(Math.max (100, winHeight() - 100), this.getFormHeight()); - }, - - getFormHeight : function () { - var form = this._form.cloneNode(true); - form.style.display = "none"; - form.style.height =""; - document.body.appendChild(form); - var dimension = MochiKit.Style.getElementDimensions(form); - form.innerHTML = ""; // http://support.microsoft.com/kb/925014 - document.body.removeChild(form); - - return dimension.h; - }, - - _onWindowResize : function () { - window.paramWindow.doLayout(); - window.paramWindow.center(); - }, - - doLayout: function () { - if(this._form) { - this._form.style.height = this.getPreferredHeight() + "px"; - } - }, - - updateHtmlAndDisplay : function(html) { - if (html) { - this._checkInitialization (); - - if (this.isDisplayed ()) { - this.show (false); - } - - var ext = bobj.html.extractHtml (html); - - var styleText = ""; - for ( var i = 0, len = ext.styles.length; i < len; i++) { - styleText += ext.styles[i].text + '\n'; - } - - var styleLayerID = this.id + '_stylesheet'; - - var styleLayer = getLayer(styleLayerID); - if(styleLayer) { - MochiKit.DOM.removeElement (styleLayer); - } - - if(styleText.length > 0) { - bobj.addStyleSheet (styleText, styleLayerID); - } - - if (this._form) { - this._form.innerHTML = '
    ' + ext.html + '
    '; - } - - var callback = function (parameterDialog, scripts) { - return function () { - - //Must show dialog before executing scripts as scripts could change scroll position - parameterDialog.show(true); - - for ( var iScripts = 0, scriptsLen = scripts.length; iScripts < scriptsLen; ++iScripts) { - var script = scripts[iScripts]; - if (!script) { - continue; - } - - if (script.text) { - bobj.evalInWindow (script.text); - } - } - } - }(this, ext.scripts); - - //CSS links in extracted html are first loaded, then dialog is shown to correctly calcualte - //the width and height of dialog - - bobj.includeCSSLinksAndExecuteCallback ( ext.links, callback); - - } - }, - - getHTML : function(html) { - var FORM = bobj.html.FORM; - var DIV = bobj.html.DIV; - var onsubmit = 'eventCancelBubble(event);return false;'; - - return this.beginHTML() + - DIV({'class' : 'dlgFrame naviBarFrame', style : { padding : '20px 15px 5px 20px'}}, FORM({id: this.id + '_form', style : {overflow : 'auto'}, onsubmit: onsubmit})) + - this.endHTML(); - } -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterInfoRow.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterInfoRow.js deleted file mode 100644 index 5e85fa7a6..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterInfoRow.js +++ /dev/null @@ -1,88 +0,0 @@ -/* -================================================================================ -ParameterInfoRow - -Internal class for use by ParameterUI. Draws a UI for a single info row. -This row is always displayed as last child of parameterUI -================================================================================ - */ - -bobj.crv.params.ParameterInfoRow = function(parentId) { - this.layer = null; - this.parentId = parentId; - this.id = bobj.uniqueId(); -}; - -bobj.crv.params.ParameterInfoRow.prototype = { - setTabDisabled : function(dis) { - if (this.layer) { - bobj.disableTabbingKey(this.layer, dis) - } - }, - - init : function() { - var parent = getLayer(this.parentId); - if (parent) { - append2(parent, this.getHTML()); - this.layer = getLayer(this.id); - } - - if(this.layer) { - MochiKit.Signal.connect(this.layer, "onclick", this, '_onClick'); - MochiKit.Signal.connect(this.layer, "onkeydown", this, '_onKeyDown'); - } - - }, - - getHTML : function() { - return bobj.html.DIV( { - 'class' :'parameterInfoRow', - id :this.id, - "tabIndex" : "0" - }); - }, - - setText : function(text) { - if (!this.layer) - this.init(); - - this.layer.innerHTML = text; - }, - - setVisible : function(isVisible) { - if (isVisible) { - if (!this.layer) - this.init(); - - this.shiftToLastRow(); - this.layer.style.display = "block"; - } else { - if (this.layer) - this.layer.style.display = "none"; - } - }, - - /** - * ParamterInfoRow must always be displayed after all ParmeterValueRows - * @return - */ - shiftToLastRow : function() { - var parentNode = getLayer(this.parentId); - if (this.layer && parentNode) { - parentNode.removeChild(this.layer); - parentNode.appendChild(this.layer); - } - }, - - _onClick : function (ev) { - MochiKit.Signal.signal(this, "switch"); - ev.stop(); - }, - - _onKeyDown : function (ev) { - if(ev && ev.key() && ev.key().code == 13) { - MochiKit.Signal.signal(this, "switch"); - ev.stop(); - } - } -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterPanel.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterPanel.js deleted file mode 100644 index 6b77f1923..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterPanel.js +++ /dev/null @@ -1,277 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/* -================================================================================ -ParameterPanel -================================================================================ -*/ - -/** - * Constructor - */ -bobj.crv.params.newParameterPanel = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId() + '_IPPanel' - }, kwArgs); - - var o = newWidget(kwArgs.id); - o.widgetType = 'ParameterPanel'; - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - - // Update instance with member functions - MochiKit.Base.update(o, bobj.crv.params.ParameterPanel); - - o._tabPanel = bobj.crv.newStackedPanel({ - id: o.id + '_ParamtersStack' - }); - - //Layer that appears on top of panel when it is disabled; necessary for preventing user to select parameters/widgets - o._overlayLayer = new bobj.crv.params.ParameterPanel.OverlayLayer(o.id); - o._toolbar = bobj.crv.params.newParameterPanelToolbar({ - id: o.id + '_IPToolbar' - }); - - return o; -}; - -bobj.crv.params.ParameterPanel = { - setToolbarCallBacks : function(applyClickCB, resetClickCB) { - if(this._toolbar) { - this._toolbar.applyClickCB = applyClickCB; - this._toolbar.resetClickCB = resetClickCB; - } - }, - - /** - * Disables panel by showing modal layer on top of panel, reducing opacity of panel, and disabling tabbing between widgets - */ - setDisabled : function(dis) { - this._overlayLayer.setVisible (dis); - this.setTabDisabled (dis); - }, - - /** - * Disables tabbing for toolbar and all parameters within panel - */ - setTabDisabled : function(dis) { - this._toolbar.setTabDisabled (dis); - this._tabPanel.setTabDisabled (dis); - }, - - init : function() { - Widget_init.call (this); - this._toolbar.init (); - if (this._tabPanel) { - this._tabPanel.init (); - } - - MochiKit.Signal.signal (this, "resetParamPanel"); - }, - - update : function (update) { - if (update && update.cons == "bobj.crv.params.newParameterPanel") { - if(update.args && update.args.isResetParamPanel) - MochiKit.Signal.signal (this, "resetParamPanel"); - } - }, - - getHTML : function() { - var DIV = bobj.html.DIV; - var layerStyle = { - overflow : 'hidden', - width : this.width ? bobj.unitValue(this.width) : 'auto', - height : this.height ? bobj.unitValue(this.height) : 'auto' - } - - var innerHTML = this._toolbar.getHTML (); - if (this._tabPanel) { - innerHTML += this._tabPanel.getHTML (); - } - - return DIV ( { - id : this.id, - style : layerStyle - }, innerHTML); - }, - - getBestFitHeight : function () { - var height = 0; - if(this._tabPanel) { - /** - * Since container of parampanel could be invisible, getHiddenElementDimensions has to be called - * instead of element.getHeight() - */ - height += bobj.getHiddenElementDimensions(this._tabPanel.layer).h; - } - - if(this._toolbar) - height += this._toolbar.getHeight (); - - return height; - }, - - /** - * Resize the panel - * - * @param w [int - optional] Width in pixels - * @param h [int - optional] Height in pixels - */ - resize : function(w, h) { - Widget_resize.call (this, w, h); - - if (this._toolbar) { - w = this.layer.clientWidth; - this._toolbar.resize (w); - if (this._tabPanel) { - h = this.layer.clientHeight - this._toolbar.getHeight (); - this._tabPanel.resize (w, h); - } - } - }, - - /** - * Add a ParameterUI instance to the panel - * - * @param paramUI [ParameterUI] - * @param label [String] Parameter title - * @param isDataFetching [bool] Shows the data fetching icon when true - */ - addParameter : function(kwArgs) { - kwArgs = MochiKit.Base.update ( { - paramUI : null, - label : null, - isDataFetching : false, - openAdvCB : null, - clearValuesCB : null, - id : this._tabPanel.id + '_P' + (this._tabPanel.getNumTabs () + 1) - }, kwArgs); - - if (kwArgs.paramUI) { - var paramTab = bobj.crv.newStackedTab (kwArgs); - paramTab.setContent (kwArgs.paramUI); - this._tabPanel.addTab (paramTab); - } - }, - - - /** - * Remove a ParameterUI instance from the panel - * - * @param index [int] Index of the widget - */ - removeParameter : function(index) { - this._tabPanel.removeTab(index); - }, - - getWidth : function() { - if (this.layer) { - return this.layer.offsetWidth; - } - return this.width; - }, - - setResetButtonEnabled : function(isEnabled) { - this._toolbar.resetButton.setDisabled (!isEnabled); - var tooltip = isEnabled ? L_bobj_crv_ResetTip : L_bobj_crv_ResetDisabledTip; - this._toolbar.resetButton.changeTooltip (tooltip, true); - }, - - setApplyButtonEnabled : function(isEnabled) { - this._toolbar.applyButton.setDisabled (!isEnabled); - var tooltip = isEnabled ? L_bobj_crv_ParamsApplyTip : L_bobj_crv_ParamsApplyDisabledTip; - this._toolbar.applyButton.changeTooltip (tooltip, true); - }, - - isApplyButtonEnabled : function () { - return this._toolbar != null && this._toolbar.applyButton != null && !this._toolbar.applyButton.isDisabled(); - }, - - getIndex : function(paramUI) { - var numTabs = this._tabPanel.getNumTabs (); - for ( var idx = 0; idx < numTabs; ++idx) { - var tab = this._tabPanel.getTab (idx); - if (tab.getContent () === paramUI) { - return idx; - } - } - return -1; - }, - - getParameterTabByWidget : function(paramUI) { - var index = this.getIndex (paramUI); - if (index >= 0) - return this._tabPanel.getTab (index); - - return null; - }, - - getParameter : function(index) { - var tab = this._tabPanel.getTab (index); - if (tab) { - return tab.getContent (); - } - return null; - }, - - /** - * @return ParameterTab, tab specified by index - */ - getParameterTab : function(index) { - return this._tabPanel.getTab (index); - }, - - /** - * return Number of tabs/parameters in panel - */ - getParameterCount : function() { - return this._tabPanel.getNumTabs (); - } -}; - -/** - * A layer that appears on top of panel when it is disabled. Prevents user from selecting widgets - * inside panel - */ -bobj.crv.params.ParameterPanel.OverlayLayer = function(paramPanelID) { - this.paramPanelId = paramPanelID; - this.layer = null; - this.id = bobj.uniqueId(); - this.widx = _widgets.length - _widgets[this.widx] = this; - - return this; -}; - -bobj.crv.params.ParameterPanel.OverlayLayer.prototype = { - setVisible: function(visible) { - if(!this.layer) { - this.init(); - } - if(this.css) { - this.css.visibility = visible ? "visible" : "hidden"; - } - }, - - isVisible: function() { - if(!this.layer) { - this.init(); - } - return this.css.visibility == "visible"; - }, - - getHTML: function() { - return '
    '+(_ie?img(_skin+'../transp.gif','100%','100%',null,'ISMAP'):'')+'
    ' - }, - - init: function() { - var paramPanelLayer = getLayer(this.paramPanelId); - - if(paramPanelLayer) { - append2(paramPanelLayer, this.getHTML()); //adds overlay layer to parameter panel layer - } - - Widget_init.call(this); - } -} diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterPanelToolbar.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterPanelToolbar.js deleted file mode 100644 index 06b9eaed0..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterPanelToolbar.js +++ /dev/null @@ -1,104 +0,0 @@ - -/* -================================================================================ -ParameterPanelToolbar - -Contains the Delete and Run buttons -================================================================================ -*/ - -/** - * Constructor - */ -bobj.crv.params.newParameterPanelToolbar = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId() - }, kwArgs); - var o = newPaletteContainerWidget(kwArgs.id); - - bobj.fillIn(o, kwArgs); - o.widgetType = 'ParameterPanelToolbar'; - - // Attach member functions - o._paletteContainerInit = o.init; - MochiKit.Base.update(o, bobj.crv.params.ParameterPanelToolbar); - - o._palette = newPaletteWidget(o.id + "_palette"); - o.add(o._palette); - - var bind = MochiKit.Base.bind; - - o.applyButton = newIconWidget( - o.id + '_applyBtn', - bobj.crv.allInOne.uri, - bind(o._onApplyClick, o), //clickCB, - L_bobj_crv_ParamsApply, //text - L_bobj_crv_ParamsApplyDisabledTip,//tooltip, - 16, 16, 3, 3 + bobj.crv.allInOne.paramRunDy, 25, 3 + bobj.crv.allInOne.paramRunDy, false); //width, height, dx, dy, disDx, disDy - - o.applyButton.setClasses("", "", "", ""); //FIXME : saeed, Assign css class - o.resetButton = newIconWidget( - o.id + '_resetBtn', - bobj.crv.allInOne.uri, - bind(o._onResetClick, o), //clickCB, - L_bobj_crv_Reset, //text - L_bobj_crv_ResetDisabledTip,//tooltip, - 16, 16, 0, bobj.crv.allInOne.undoDy, 16, bobj.crv.allInOne.undoDy, false); //width, height, dx, dy, disDx, disDy - - o.resetButton.setClasses("", "", "", ""); //FIXME : saeed, Assign css class - o._palette.add(o.applyButton); - o._palette.add(); // separator - o._palette.add(o.resetButton); - - return o; -}; - -bobj.crv.params.ParameterPanelToolbar = { - init : function() { - this._paletteContainerInit (); - this._palette.init (); - this.applyButton.setDisabled (true); - this.resetButton.setDisabled (true); - }, - - /** - * Disables tabbing for all buttons in toolbar - */ - setTabDisabled : function(dis) { - var items = [ this.applyButton, this.resetButton ]; - - for ( var i = 0, len = items.length; i < len; i++) { - var item = items[i]; - if (item) { - bobj.disableTabbingKey (item.layer, dis); - } - } - }, - - /** - * Overrides parent. Opens the toolbar's tags. - */ - beginHTML : function() { - return bobj.html.openTag ('div', { - id : this.id, - 'class' : 'parameterPanelToolbar' - }); - }, - - getHTML : function() { - return (this.beginHTML () + this._palette.getHTML () + this.endHTML ()); - }, - - _onApplyClick : function() { - if (this.applyClickCB) { - bobj.crv.logger.info ('UIAction ParameterPanel.Apply'); - this.applyClickCB (); - } - }, - - _onResetClick : function() { - if (this.resetClickCB) { - this.resetClickCB (); - } - } -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterUI.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterUI.js deleted file mode 100644 index 33bb11e83..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterUI.js +++ /dev/null @@ -1,404 +0,0 @@ - -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/* -================================================================================ -ParameterUI - -Widget for displaying and editing parameter values. Contains one or many -ParameterValueRows and, optionally, UI that allows rows to be added. -================================================================================ -*/ - -bobj.crv.params.newParameterUI = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - canChangeOnPanel: false, - allowCustom: false, - isPassword : false, - isReadOnlyParam: true, - allowRange : false, - values: [], - defaultValues: null, - width: '200px', - changeValueCB: null, - enterPressCB: null, - openAdvDialogCB: null, - maxNumParameterDefaultValues: 200, - tooltip : null, - calendarProperties : {displayValueFormat : '' , isTimeShown : false, hasButton : false, iconUrl : ''}, - maxNumValuesDisplayed : 7, - canOpenAdvDialog : false - }, kwArgs); - - var o = newWidget(kwArgs.id); - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - - o.displayAllValues = false; - - // Update instance with member functions - MochiKit.Base.update(o, bobj.crv.params.ParameterUI); - - o._createMenu(); - o._rows = []; - o._infoRow = new bobj.crv.params.ParameterInfoRow(o.id); - return o; -}; - -bobj.crv.params.ParameterUI = { - /** - * Creates single menubar for all parameter value rows of current param UI - */ - _createMenu : function() { - var dvLength = this.defaultValues.length; - if (dvLength > 0) { - var kwArgs = { - originalValues : this.defaultValues - }; - - if (dvLength == this.maxNumParameterDefaultValues) { - kwArgs.originalValues[this.maxNumParameterDefaultValues] = L_bobj_crv_ParamsMaxNumDefaultValues; - MochiKit.Base.update (kwArgs, { - openAdvDialogCB : this.openAdvDialogCB, - maxNumParameterDefaultValues : this.maxNumParameterDefaultValues - }); - } - - this._defaultValuesMenu = bobj.crv.params.newScrollMenuWidget (kwArgs); - } else { - this._defaultValuesMenu = null; - } - }, - - setFocusOnRow : function(rowIndex) { - var row = this._rows[rowIndex]; - if (row) - row.focus (); - }, - - /* - * Disables tabbing if dis is true - */ - setTabDisabled : function(dis) { - for(var i = 0, len = this._rows.length; i < len; i++) { - this._rows[i].setTabDisabled(dis); - } - - this._infoRow.setTabDisabled(dis); - }, - - init : function() { - Widget_init.call (this); - - var rows = this._rows; - for ( var i = 0, len = rows.length; i < len; ++i) { - rows[i].init (); - } - - MochiKit.Signal.connect(this._infoRow, "switch", this, '_onSwitchDisplayAllValues'); - this.refreshUI (); - }, - - /** - * Processes actions triggered by clicks on "x more values" or "collapse" button displayed in inforow - */ - _onSwitchDisplayAllValues: function() { - this.displayAllValues = !this.displayAllValues; - var TIME_INTERVAL = 10; /* 10 msec or 100 actions per second */ - var timerIndex = 0; - - if(this.displayAllValues) { - if (this.values.length > this._rows.length) { - for(var i = this._rows.length, l = this.values.length; i < l; i++) { - var addRow = function(paramUI, value) { - return function() { return paramUI._addRow(value); }; - }; - - timerIndex++; - setTimeout(addRow(this, this.values[i]), TIME_INTERVAL * timerIndex); - } - } - } - else { - if(this._rows.length > this.maxNumValuesDisplayed) { - for(var i = this._rows.length -1; i >= this.maxNumValuesDisplayed; i--) { - var deleteRow = function(paramUI, rowIndex) { - return function() { return paramUI.deleteValue(rowIndex); }; - }; - - timerIndex++; - setTimeout(deleteRow(this, i), TIME_INTERVAL * timerIndex); - } - } - } - - var signalResize = function(paramUI) { - return function() {MochiKit.Signal.signal(paramUI, 'ParameterUIResized'); }; - }; - - setTimeout(signalResize(this), TIME_INTERVAL * timerIndex); - }, - - getHTML : function() { - var rowsHtml = ''; - - var values = this.values; - var rows = this._rows; - - var rowsCount = Math.min (values.length, this.maxNumValuesDisplayed); - for ( var i = 0; i < rowsCount; ++i) { - rows.push (this._getRow (values[i])); - rowsHtml += rows[i].getHTML (); - } - - return bobj.html.DIV ( { - id : this.id, - style : { - width : bobj.unitValue (this.width), - 'padding-left' : '20px' - } - }, rowsHtml); - }, - - _getNewValueRowArgs : function(value) { - return { - value : value, - defaultValues : this.defaultValues, - width : this.width, - isReadOnlyParam : this.isReadOnlyParam, - canChangeOnPanel : this.canChangeOnPanel, - allowCustom : this.allowCustom, - isPassword : this.isPassword, - calendarProperties : this.calendarProperties, - defaultValuesMenu : this._defaultValuesMenu, - tooltip : this.tooltip, - isRangeValue : this.allowRange, - canOpenAdvDialog : this.canOpenAdvDialog - }; - }, - - _getNewValueRowConstructor : function() { - return bobj.crv.params.newParameterValueRow; - }, - - _getRow : function(value) { - var row = this._getNewValueRowConstructor()(this._getNewValueRowArgs(value)); - var bind = MochiKit.Base.bind; - - row.changeCB = bind(this._onChangeValue, this, row); - row.enterCB = bind(this._onEnterValue, this, row); - - return row; - }, - - _addRow : function(value) { - var row = this._getRow (value); - this._rows.push (row); - append (this.layer, row.getHTML ()); - - row.init (); - - this.refreshUI (); - return row; - }, - - _onChangeValue : function(row) { - if (this.changeValueCB) { - this.changeValueCB (this._getRowIndex (row), row.getValue ()); - } - }, - - _onEnterValue : function(row) { - if (this.enterPressCB) { - this.enterPressCB (this._getRowIndex (row)); - } - }, - - _getRowIndex : function(row) { - if (row) { - var rows = this._rows; - for ( var i = 0, len = rows.length; i < len; ++i) { - if (rows[i] === row) { - return i; - } - } - } - return -1; - }, - - getNumValues : function() { - return this._rows.length; - }, - - - refreshUI : function() { - if (this.allowRange) - this.alignRangeRows (); - - var displayInfoRow = false; - var infoRowText = ""; - - if (this.values.length > this.maxNumValuesDisplayed) { - displayInfoRow = true; - - if(this.displayAllValues) - infoRowText = L_bobj_crv_Collapse; - else { - var hiddenValuesCount = this.values.length - this.maxNumValuesDisplayed; - infoRowText = (hiddenValuesCount == 1) ? L_bobj_crv_ParamsMoreValue : L_bobj_crv_ParamsMoreValues; - infoRowText = infoRowText.replace ("%1", hiddenValuesCount); - } - } - - this._infoRow.setText (infoRowText); - this._infoRow.setVisible (displayInfoRow); - }, - - getValueAt : function(index) { - var row = this._rows[index]; - if (row) { - return row.getValue (); - } - return null; - }, - - getValues : function() { - var values = []; - for ( var i = 0, len = this._rows.length; i < len; ++i) { - values.push (this._rows[i].getValue ()); - } - return values; - }, - - setValueAt : function(index, value) { - var row = this._rows[index]; - if (row) { - row.setValue (value); - } - - this.refreshUI (); - }, - - resetValues : function(values) { - if (!values) { - return; - } - - this.values = values; - var valuesLen = values.length; - var rowsLen = this._rows.length; - - //Resets value - for ( var i = 0; i < valuesLen && i < rowsLen; ++i) { - this._rows[i].reset (values[i]); - } - - //removes newly added values that are not commited - if (rowsLen > valuesLen) { - for ( var i = rowsLen - 1; i >= valuesLen; --i) { - // delete from the end to minimize calls to setBgColor - this.deleteValue (i); - } - } - //re-adds removed values - else if (valuesLen > rowsLen) { - for ( var i = rowsLen; i < valuesLen && (this.displayAllValues || i < this.maxNumValuesDisplayed); ++i) { - var row = this._addRow (values[i]); - - } - } - - MochiKit.Signal.signal(this, 'ParameterUIResized'); - this.refreshUI (); - }, - - alignRangeRows : function() { - if (!this.allowRange) - return; - - var lowerBoundWidth = 0; - for ( var i = 0, l = this._rows.length; i < l; i++) { - var row = this._rows[i]; - var rangeField = row._valueWidget; - lowerBoundWidth = Math.max (lowerBoundWidth, rangeField.getLowerBoundValueWidth ()); - } - - for ( var i = 0, l = this._rows.length; i < l; i++) { - var row = this._rows[i]; - var rangeField = row._valueWidget; - rangeField.setLowerBoundValueWidth (lowerBoundWidth); - } - }, - - setValues : function(values) { - if (!values) - return; - - this.values = values; - var valuesLen = values.length; - var rowsLen = this._rows.length; - - for ( var i = 0; i < valuesLen && i < rowsLen; ++i) { - this._rows[i].setValue (values[i]); - } - - if (rowsLen > valuesLen) { - for ( var i = rowsLen - 1; i >= valuesLen; --i) { - // delete from the end to minimize calls to setBgColor - this.deleteValue (i); - } - } else if (valuesLen > rowsLen) { - for ( var i = rowsLen; i < valuesLen && (this.displayAllValues || i < this.maxNumValuesDisplayed); ++i) { - this._addRow (values[i]); - } - } - - MochiKit.Signal.signal(this, 'ParameterUIResized'); - this.refreshUI (); - }, - - setCleanValue : function(index, value) { - var row = this._rows[index]; - if (row) - row.setCleanValue (value); - }, - - deleteValue : function(index) { - if (index >= 0 && index < this._rows.length) { - var row = this._rows[index]; - row.layer.parentNode.removeChild (row.layer); - _widgets[row.widx] = null; - - this._rows.splice (index, 1); - var rowsLen = this._rows.length; - } - - this.refreshUI (); - }, - - setWarning : function(index, warning) { - var row = this._rows[index]; - if (row) { - row.setWarning (warning); - } - }, - - getWarning : function(index) { - var row = this._rows[index]; - if (row) - return row.getWarning (); - - return null; - }, - - resize : function(w) { - if (w !== null) { - this.width = w; - if (this.layer) { - bobj.setOuterSize (this.layer, w); - } - } - } -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterValueRow.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterValueRow.js deleted file mode 100644 index fe4815b80..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ParameterValueRow.js +++ /dev/null @@ -1,505 +0,0 @@ -/* -================================================================================ -ParameterValueRow - -Internal class for use by ParameterUI. Darws a UI for a single parameter value. -================================================================================ -*/ - -bobj.crv.params.newParameterValueRow = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - value: '', - defaultValues: null, - isReadOnlyParam: true, - canChangeOnPanel: false, - isRangeValue : false, - allowCustom: false, - isPassword: false, - calendarProperties : {displayValueFormat : '' , isTimeShown : false, hasButton : false, iconUrl : '', clickCB : null}, - changeCB: null, - enterCB: null, - defaultValuesMenu: null, - tooltip : null, - canOpenAdvDialog : false - }, kwArgs); - - var o = newWidget(kwArgs.id); - o.widgetType = 'ParameterValueRow'; - o._prevValueString = kwArgs.value; - o._warning = null; - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - - // Update instance with member functions - MochiKit.Base.update(o, bobj.crv.params.ParameterValueRow); - - return o; -}; - -bobj.crv.params.ParameterValueRow = { - setTabDisabled : function(dis) { - if (this._valueWidget) - this._valueWidget.setTabDisabled (dis); - - if (this._calendarButton) - bobj.disableTabbingKey (this._calendarButton.layer, dis); - }, - - /** - * Resets widget, Restores old value, hides warning and adv dialog icons - */ - reset : function(value) { - this.value = value; - this._prevValueString = value; - this.setWarning(null); - /* Removing Red border color if previous value was errorneous */ - MochiKit.DOM.removeElementClass(this.layer, "hasError"); - - if(this._valueWidget) { - this._valueWidget.reset(value); - } - }, - - init : function() { - Widget_init.call (this); - this._valueWidget.init (); - if (this._calendarButton) { - this._calendarButton.init (); - } - - this._valueCtn = getLayer (this.id + '_vc'); - this._btnCtn = getLayer (this.id + '_bc'); - this._valBtnCtn = getLayer (this.id + '_vab'); - - if (MochiKit.Base.isIE ()) { - /* IE's 100% is different than other browsers, - even in standards compliant mode.... */ - var marg = parseInt (MochiKit.Style.computedStyle (this._valueCtn, 'margin-right'), 10); - if (bobj.isNumber (marg)) { - this._valueWidget.layer.style.marginRight = (-1 * marg) + 'px'; - } - } - }, - - calendarSetValue : function(value) { - this.setValue (value); - this.changeCB (); - }, - - getHTML : function() { - if (!this._valueWidget) { - this._valueWidget = this._getValueWidget (); - } - if (this.calendarProperties.hasButton && !this._calendarButton) { - var getValueCB = bobj.bindFunctionToObject (this.getValue, this); - var setValueCB = bobj.bindFunctionToObject (this.calendarSetValue, this); - this._calendarButton = bobj.crv.params.newCalendarButton ( { - calendarProperties : this.calendarProperties, - getValueCB : getValueCB, - setValueCB : setValueCB - }); - } - - var DIV = bobj.html.DIV; - var IMG = bobj.html.IMG; - - var cssClass = ' iactParamRow'; - - if (this.canChangeOnPanel) - cssClass += ' editable'; - else - cssClass += ' readOnly'; - - if (MochiKit.Base.isIE () && bobj.isQuirksMode ()) { - cssClass += ' ' + 'iactParamRowIE'; - } - - return DIV ( { - id : this.id, - 'class' : cssClass - }, this.calendarProperties.hasButton ? this._getValueAndCalendarHTML () : this._getValueHTML ()); - }, - - - /** - * @return [String] Returns HTML for the the value - */ - _getValueHTML : function() { - var DIV = bobj.html.DIV; - var style = {}; - - if (MochiKit.Base.isIE () && bobj.isQuirksMode ()) { - style.position = "absolute"; - style.top = "0px"; - style.left = "0px"; - } - - return DIV ( { - id : this.id + '_vc', - 'class' : 'iactParamValue', - style : style - }, this._valueWidget.getHTML ()); - }, - - /** - * @return [String] Returns HTML for the value and a button beside it - */ - _getValueAndCalendarHTML : function() { - var style = {}; - if (MochiKit.Base.isIE () && bobj.isQuirksMode ()) { - style.width = '100%'; - } - - var DIV = bobj.html.DIV; - - var buttonRightOffset = (this._valueWidget.widgetType == "TextCombo") ? 16 : 0; - buttonRightOffset += "px"; - - var html = DIV ( { - id : this.id + "_vab", - style : style, - 'class' : "iactParamValueAndButton" - }, this._getValueHTML (), DIV ( { - id : this.id + "_bc", - 'class' : "iactValueIcon", - style : { - position : "absolute", - right : buttonRightOffset, - top : "0", - cursor : _hand - } - }, this._calendarButton.getHTML ())); - - return html; - }, - - getNewValueWidgetConstructor : function() { - var showDefVals = this.defaultValuesMenu !== null && !this.isReadOnlyParam && this.canChangeOnPanel; - - if (this.isRangeValue) - return bobj.crv.params.newRangeField; - else if (showDefVals) - return bobj.crv.params.newTextCombo; - else - return bobj.crv.params.newTextField; - }, - - getNewValueWidgetArgs : function() { - var isEditable = this.allowCustom && this.canChangeOnPanel; - return { - password : this.isPassword, - cleanValue : this.value, - editable : isEditable, - enterCB : bobj.bindFunctionToObject (this._onEnterPress, this), - keyUpCB : isEditable ? bobj.bindFunctionToObject (this._onKeyUp, this) : null, - tooltip : this.tooltip, - foreColor : this.isReadOnlyParam ? bobj.Colors.GRAY : bobj.Colors.BLACK, - focusCB : bobj.bindFunctionToObject (this.onFocus, this), - blurCB : bobj.bindFunctionToObject (this.onBlur, this), - canOpenAdvDialog : this.canOpenAdvDialog - }; - }, - - /** - * Creates a widget to display/edit the value. - * - * @return [Widget] - */ - _getValueWidget : function() { - var cons = this.getNewValueWidgetConstructor (); - var widget = cons (this.getNewValueWidgetArgs ()); - var showDefVals = this.defaultValuesMenu !== null && !this.isReadOnlyParam && this.canChangeOnPanel; - - if (showDefVals) { - widget.setMenu (this.defaultValuesMenu); - widget.changeCB = bobj.bindFunctionToObject (this._onChange, this); - } - - return widget; - }, - - onFocus : function() { - this.refreshWarningPopup (); - MochiKit.DOM.removeElementClass (this.layer, "hasError"); - }, - - refreshWarningPopup : function() { - if (this._warning) { - var pos = getPosScrolled (this.layer); - var fontFamily = MochiKit.Style.computedStyle (this.layer, 'fontFamily'); - var fontSize = MochiKit.Style.computedStyle (this.layer, 'fontSize'); - var valueWidth = bobj.getStringWidth (this.getValue (), fontFamily, fontSize); - var leftOffset = this.layer.offsetWidth < valueWidth ? this.layer.offsetWidth : valueWidth; - var topOffset = 33; - bobj.crv.WarningPopup.getInstance ().show (this._warning.message, pos.x + leftOffset, pos.y + topOffset); - } else { - bobj.crv.WarningPopup.getInstance ().hide (); - MochiKit.DOM.removeElementClass (this.layer, "hasError"); - } - - var tooltipText = this._warning ? this.tooltip + this._warning.message : this.tooltip; - if (this._valueWidget) - this._valueWidget.setTooltip (tooltipText); - }, - - onBlur : function() { - if (this._warning) { - bobj.crv.WarningPopup.getInstance ().hide (); - MochiKit.DOM.addElementClass (this.layer, "hasError"); - } - }, - - getValue : function() { - return this.value; - }, - - setValue : function(value) { - this.value = value; - if (this._valueWidget) - this._valueWidget.setValue (value); - }, - - setCleanValue : function(value) { - if (this._valueWidget) - this._valueWidget.setCleanValue(value); - - }, - - /** - * Set keyboard focus to the widget and mark it as selected - */ - focus : function() { - if (this._valueWidget.widgetType == "TextCombo") - this._valueWidget.text.focus (); - else - this._valueWidget.focus (); - }, - - /** - * Display a warning icon with a tooltip message - * - * @param warning - * [String] Tooltip message. If null, warning is hidden. - */ - setWarning : function(warning) { - this._warning = warning; - this.refreshWarningPopup (); - }, - - getWarning : function() { - return this._warning; - }, - - /** - * Change the outer dimensions of the widget - * - * @param w - * [int, optional] Width in pixels - * @param h - * [int, optional] Height in pixels - */ - resize : function(w, h) { - bobj.setOuterSize (this.layer, w, h); - }, - - deleteValue : function() { - this._valueWidget.setValue ('', true); - }, - - /** - * Handle keyUp events when editing values or using keyboard navigation. - * - * @param e - * [keyup event] - */ - _onKeyUp : function(e) { - var event = new MochiKit.Signal.Event (src, e); - var key = event.key ().string; - var newValueString = this._valueWidget.getValue (); - - switch (key) { - case "KEY_ESCAPE": - this._valueWidget.setValue (this._valueWidget.cleanValue); - this._onChange (); - break; - - case "KEY_ARROW_LEFT": - case "KEY_ARROW_RIGHT": - case "KEY_HOME": - case "KEY_END": - case "KEY_TAB": - break; - - default: - if (newValueString !== this._prevValueString) { - this._onChange () - this._prevValueString = newValueString; - } - break; - } - }, - - /** - * Delete the current value - */ - deleteValue : function() { - this._valueWidget.setValue ('', true); - }, - - _onChange : function() { - this.value = this._valueWidget.getValue(); - if (this.changeCB) - this.changeCB(); - }, - - /** - * Handles Enter key press events. - */ - _onEnterPress : function() { - if(this.enterCB) - this.enterCB(); - } -}; - - - -/* -================================================================================ -CalendarButton - -Internal class. Button that fits inline with parameter values -================================================================================ -*/ -bobj.crv.params.newCalendarButton = function(kwArgs) { - kwArgs = MochiKit.Base.update( { - id : bobj.uniqueId(), - calendarProperties : null, - getValueCB : null, - setValueCB : null, - calendarSignals : { - okSignal : null, - hideSignal : null, - cancelSignal : null - } - }, kwArgs); - - if (kwArgs.getValueCB == null || kwArgs.setValueCB == null || kwArgs.calendarProperties == null) - throw "InvalidArgumentException"; - - var o = newIconWidget( - kwArgs.id, - kwArgs.calendarProperties.iconUrl, - null, - null, - L_bobj_crv_ParamsCalBtn, - 14,14,0,0,0,0); - - o.setClasses("", "", "", "iconcheckhover"); - - bobj.fillIn(o, kwArgs); - - // Update instance with member functions - o.margin = 0; - o.oldInit = o.init; - - MochiKit.Base.update(o, bobj.crv.params.CalendarButton); - o.clickCB = bobj.bindFunctionToObject(o.onClick, o); - - return o; -}; - -bobj.crv.params.CalendarButton = { - onClick : function() { - var calendar = bobj.crv.Calendar.getInstance (); - var date = bobj.external.date.getDateFromFormat (this.getValueCB (), this.calendarProperties.displayValueFormat); - var connect = MochiKit.Signal.connect; - if (date) - calendar.setDate (date); - - this.calendarSignals = { - okSignal : connect (calendar, calendar.Signals.OK_CLICK, this, 'onClickCalendarOKButton'), - cancelSignal : connect (calendar, calendar.Signals.CANCEL_CLICK, this, 'onClickCalendarCancelButton'), - hideSignal : connect (calendar, calendar.Signals.ON_HIDE, this, 'onHideCalendar') - }; - - var absPos = getPosScrolled (this.layer); - var x = absPos.x + this.getWidth (); - var y = absPos.y + this.getHeight () + 1; - - calendar.setShowTime (this.calendarProperties.isTimeShown); - calendar.show (true, x, y); - }, - - onClickCalendarOKButton : function(date) { - var strValue = bobj.external.date.formatDate (date, this.calendarProperties.displayValueFormat); - this.setValueCB (strValue); - }, - - onClickCalendarCancelButton : function() { - this.clearCalendarSignals (); - }, - - clearCalendarSignals : function() { - for ( var identName in this.calendarSignals) { - bobj.crv.SignalDisposer.dispose(this.calendarSignals[identName], true); - this.calendarSignals[identName] = null; - } - }, - - onHideCalendar : function() { - this.clearCalendarSignals (); - if (this.layer.focus) - this.layer.focus (); - }, - - init : function() { - this.oldInit (); - this.layer.onfocus = IconWidget_realOverCB; - this.layer.onblur = IconWidget_realOutCB; - }, - - getHTML : function() { - var imgCode; - var h = bobj.html; - if (this.src) { - imgCode = h.DIV( { - style : { - overflow : 'hidden', - height : '14px', - position : 'relative', - top : '2px', - width : this.w + 'px' - } - }, simpleImgOffset(this.src, this.w, this.h, this.dx, this.dy, 'IconImg_' + this.id, null, this.alt, - 'cursor:' + _hand), this.extraHTML); - } else { - imgCode = h.DIV( { - 'class' : 'iconText', - 'style' : { - width : '1px', - height : (this.h + this.border) + 'px' - } - }); - } - - var divStyle = { - margin : this.margin + 'px', - padding : '1px' - }; - - if (this.width) { - divStyle.width = this.width + 'px'; - } - if (!this.disp) { - divStyle.display = 'none'; - } - - return h.DIV( { - style : divStyle, - id : this.id, - 'class' : this.nocheckClass - }, (this.clickCB && _ie) ? lnk(imgCode, null, null, null, ' tabIndex="-1"') : imgCode); - } -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/PromptPage.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/PromptPage.js deleted file mode 100644 index 9bf885226..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/PromptPage.js +++ /dev/null @@ -1,295 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/** - * PromptPage constructor - * - * @param kwArgs.id [String] DOM node id - * @param kwArgs.contentId [String] DOM node id of report page content container - * @param kwArgs.bgColor [String] Background color of the page - * @param kwArgs.width [Int] Page content's width in pixels - * @param kwArgs.height [Int] Page content's height in pixels - * @param kwArgs.topMargin [Int] Top margin of report page in pixels - * @param kwArgs.rightMargin [Int] Right margin of report page in pixels - * @param kwArgs.bottomMargin [Int] Bottom margin of report page in pixels - * @param kwArgs.leftMargin [Int] Left margin of report page in pixels - */ -bobj.crv.newPromptPage = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - layoutType: 'fixed', - content : null, - width: 800, - height: 600, - padding: 5, - top: 0, - left: 0 - }, kwArgs); - - var o = newWidget(kwArgs.id); - o.widgetType = 'PromptPage'; - o._reportProcessing = null; - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - - // Update instance with member functions - o.initOld = o.init; - MochiKit.Base.update(o, bobj.crv.PromptPage); - - window[o.id] = o; - - return o; -}; - -bobj.crv.PromptPage = { - /** - * Overrides parent. Sets the content of the report page. - * - * @param content - * [String|DOM Node] Html or Node to use as report page content - */ - setHTML : function(content) { - var pageNode = this._pageNode; - if (bobj.isString (content)) { - var ext = bobj.html.extractHtml(content); - pageNode.innerHTML = ext.html; - - var links = ext.links; - for(var iLinks = 0, linksLen = links.length; iLinks < linksLen; ++iLinks) { - bobj.includeLink(links[iLinks]); - } - - var scripts = ext.scripts; - for (var iScripts = 0, scriptsLen = scripts.length; iScripts < scriptsLen; ++iScripts) { - var script = scripts[iScripts]; - if (!script) {continue;} - - if (script.text) { - bobj.evalInWindow(script.text); - } - } - } else if (bobj.isObject (content)) { - pageNode.innerHTML = ''; - pageNode.appendChild (content); - var contentStyle = content.style; - contentStyle.display = 'block'; - contentStyle.visibility = 'visible'; - } - }, - - getHTML : function() { - var h = bobj.html; - var isBorderBoxModel = bobj.isBorderBoxModel (); - - var pageOuterHeight = this.height + this.topMargin + this.bottomMargin; - var pageOuterWidth = this.width + this.leftMargin + this.rightMargin; - - var contentHeight = isBorderBoxModel ? pageOuterHeight : this.height; - var contentWidth = isBorderBoxModel ? pageOuterWidth : this.width; - - var layerStyle = { - position : 'relative', - width : contentWidth + 'px', - height : contentHeight + 'px', - top : this.top + "px", - left : this.left + "px", - border : 'none', - 'z-index' : 1, - 'background-color' : this.bgColor - }; - - /* To support the width and height */ - if (this.layoutType == 'fixed') { - layerStyle.overflow = 'auto'; - } - - var pageStyle = { - 'padding' : this.padding + 'px' - }; - - var html = h.DIV ( { - id : this.id, - style : layerStyle - }, h.DIV ( { - id : this.id + '_page', - style : pageStyle - })); - - return html; - }, - - init : function() { - this._pageNode = document.getElementById (this.id + '_page'); - - this.initOld (); - - if (this.contentId) { - var content = document.getElementById (this.contentId); - if (content) { - this.setHTML (content); - } - } - else if(this.content) { - this.setHTML(this.content); - delete this.content; - } - - var connect = MochiKit.Signal.connect; - - if (this.layoutType.toLowerCase () == 'client') { - connect (window, 'onresize', this, '_doLayout'); - } - - this._doLayout (); - }, - - /* TODO: fix the layout (fitreport) to behave like XIR2 */ - _doLayout : function() { - var layout = this.layoutType.toLowerCase (); - - if ('client' == layout) { - this.css.width = '100%'; - this.css.height = '100%'; - } else if ('fitreport' == layout) { - this.css.width = '100%'; - this.css.height = '100%'; - } else { /* fixed layout */ - if(this.width != null && this.width.length > 0) { - if(this.width.indexOf("px") > 0 || this.width.indexOf("%") > 0) - this.css.width = this.width; - else - this.css.width = this.width + 'px'; - } - if(this.height != null && this.height.length > 0) { - if(this.height.indexOf("px") > 0 || this.height.indexOf("%") > 0) - this.css.height = this.height; - else - this.css.height = this.height + 'px'; - } - } - - var rptProcessing = this._reportProcessing; - if (rptProcessing && rptProcessing.layer) { - rptProcessing.center (); - } - }, - - addChild : function(widget) { - if (widget.widgetType == 'ReportProcessingUI') { - this._reportProcessing = widget; - } - } -}; - - -/** - * FlexPromptPage constructor - * - * @param kwArgs.id [String] DOM node id - * @param kwArgs.contentId [String] DOM node id of report page content container - * @param kwArgs.bgColor [String] Background color of the page - * @param kwArgs.width [Int] Page content's width in pixels - * @param kwArgs.height [Int] Page content's height in pixels - * @param kwArgs.topMargin [Int] Top margin of report page in pixels - * @param kwArgs.rightMargin [Int] Right margin of report page in pixels - * @param kwArgs.bottomMargin [Int] Bottom margin of report page in pixels - * @param kwArgs.leftMargin [Int] Left margin of report page in pixels - */ -bobj.crv.newFlexPromptPage = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - layoutType: 'fixed', - width: 800, - height: 600, - padding: 5, - top: 0, - left: 0 - }, kwArgs); - - var o = newWidget(kwArgs.id); - o.widgetType = 'FlexPromptPage'; - o._reportProcessing = null; - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - - // Update instance with member functions - o.initOld = o.init; - MochiKit.Base.update(o, bobj.crv.FlexPromptPage); - window[o.id] = o; - - return o; -}; - -bobj.crv.FlexPromptPage = { - /** - * Overrides parent. Does nothing because the swf content will replace the DIV later - * - * @param content [String|DOM Node] Html or Node to use as report page content - */ - setHTML : MochiKit.Base.noop, - - getHTML : function() { - var isBorderBoxModel = bobj.isBorderBoxModel (); - - var pageOuterHeight = this.height + this.topMargin + this.bottomMargin; - var pageOuterWidth = this.width + this.leftMargin + this.rightMargin; - - var contentHeight = isBorderBoxModel ? pageOuterHeight : this.height; - var contentWidth = isBorderBoxModel ? pageOuterWidth : this.width; - - var useSize = this.layoutType.toLowerCase () == bobj.crv.Viewer.LayoutTypes.FIXED; - - var layerStyle = { - position : 'relative', - width : useSize ? contentWidth + 'px' : '100%', - height : useSize ? contentHeight + 'px' : '100%', - top : this.top + "px", - left : this.left + "px", - border : 'none', - 'z-index' : 1, - 'background-color' : this.bgColor - }; - - var pageStyle = { - 'padding': this.padding + 'px', - position: 'absolute' // Must be absolute to avoid double initialization in firefox ADAPT01260507 - }; - - bobj.crv.params.ViewerFlexParameterAdapter.setViewerLayoutType (this.id, this.layoutType); - - var h = bobj.html; - return h.DIV ( { - id : this.id, - style : layerStyle - }, h.DIV ( { - id : this.id + '_page', - style : pageStyle - }, h.DIV ( { - id : this.contentId - }))); - }, - - init : function() { - var connect = MochiKit.Signal.connect; - if (this.layoutType.toLowerCase () == 'client') { - connect (window, 'onresize', this, '_doLayout'); - } - - this._doLayout (); - }, - - _doLayout : function() { - var rptProcessing = this._reportProcessing; - if (rptProcessing && rptProcessing.layer) { - rptProcessing.center (); - } - }, - - addChild : function(widget) { - if (widget.widgetType == 'ReportProcessingUI') { - this._reportProcessing = widget; - } - } - -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/RangeField.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/RangeField.js deleted file mode 100644 index 18ab39cd1..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/RangeField.js +++ /dev/null @@ -1,215 +0,0 @@ - -/* - * ================================================================================ - * Range Field - * - * ================================================================================ - */ - -bobj.crv.params.newRangeField = function(kwArgs) { - return new bobj.crv.params.RangeField(kwArgs); -}; - -bobj.crv.params.RangeField = function(kwArgs) { - kwArgs = MochiKit.Base.update( { - id : bobj.uniqueId(), - cleanValue : {}, - foreColor : 'black', - isTextItalic: false, - tooltip : '' - }, kwArgs); - - this.widgetType = 'RangeField'; - this.value = kwArgs.cleanValue; - - // Update instance with constructor arguments - bobj.fillIn(this, kwArgs); -}; - -bobj.crv.params.RangeField.prototype = { - setTabDisabled : function(dis) { - if(this.layer) { - var tds = this.layer.getElementsByTagName("TD"); - for(var i = 0, len = tds.length; i < len ; i++) { - bobj.disableTabbingKey(tds[i], dis); - } - } - }, - - setTooltip : function(text) { - if(this.layer) { - this.layer.title = text; - } - }, - - setForeColor : function(color) { - if(this.layer) { - this.layer.style.color = color; - } - }, - - setTextItalic : function(isItalic) { - if(this.layer) { - this.layer.style.fontStyle = isItalic ? 'italic' : ''; - } - }, - - /** - * Generates HTML for either lower or upper bound value - * @param value - the value of upper/lower bound - * @param isRightAligned - a flag for indicating whether left align or right align the generated HTML - * @return - */ - getValueHTML : function(value, isRightAligned) { - value = value ? value : ' '; - var style = { - 'text-align' : isRightAligned ? 'right' : 'left' - }; - - return bobj.html.TD( { - style : style, - tabIndex : 0 - }, bobj.html.SPAN(null, value)); - - }, - - isValueValidRange: function() { - return this.value != null && this.value.lowerBound != null && this.value.upperBound != null; - }, - - getHTML : function() { - var TR = ""; - var h = bobj.html; - - if(this.isValueValidRange()) { - TR = h.TR(null, this.getValueHTML(this.getValue().lowerBound.value, true), this - .getMiddleImageHTML(), this.getValueHTML(this.getValue().upperBound.value, false)) - } - else { - TR = h.TR(null, this.getValueHTML(this.getValue(), false)) - } - - return h.TABLE( { - id : this.id, - 'class' : 'iactRangeFieldTable', - title: this.tooltip, - style : {color : this.foreColor, "font-style" : this.isTextItalic ? 'italic' :''} - }, TR); - }, - - /** - * - * @return HTML for Range type (INCLUSIVE / EXCLUSIVE / UNBOUND) - */ - getMiddleImageHTML : function() { - var lowerImageSrc = ""; - var upperImageSrc = ""; - var lineSrc = "images/line.gif"; - - switch (this.getValue().lowerBound.type) { - case bobj.crv.params.RangeBoundTypes.EXCLUSIVE: - lowerImageSrc = "images/hollowCircle.gif"; - break; - case bobj.crv.params.RangeBoundTypes.INCLUSIVE: - lowerImageSrc = "images/filledCircle.gif"; - break; - case bobj.crv.params.RangeBoundTypes.UNBOUNDED: - lowerImageSrc = "images/leftTriangle.gif"; - break; - } - - switch (this.getValue().upperBound.type) { - case bobj.crv.params.RangeBoundTypes.EXCLUSIVE: - upperImageSrc = "images/hollowCircle.gif"; - break; - case bobj.crv.params.RangeBoundTypes.INCLUSIVE: - upperImageSrc = "images/filledCircle.gif"; - break; - case bobj.crv.params.RangeBoundTypes.UNBOUNDED: - upperImageSrc = "images/rightTriangle.gif"; - break; - } - - var TDStyle = { - 'vertical-align' : 'middle' - }; - - var IMG = bobj.html.IMG; - return bobj.html.TD( { - style : TDStyle - }, IMG( { - src : bobj.crvUri(lowerImageSrc) - }), IMG( { - src : bobj.crvUri(lineSrc) - }), IMG( { - src : bobj.crvUri(upperImageSrc) - })); - }, - - /** - * Initializes the widget - */ - init : function() { - this.layer = getLayer(this.id); - }, - - /** - * - * @return the evaluated width of lower bound TD - */ - getLowerBoundValueWidth : function() { - if(!this.isValueValidRange()) - return 0; - - var value = this.getValue().lowerBound.value; - - var fontFamily = MochiKit.Style.computedStyle(this.layer, 'fontFamily'); - var fontSize = MochiKit.Style.computedStyle(this.layer, 'fontSize'); - - if (!fontFamily) - fontFamily = "arial , sans-serif"; - - if (!fontSize) - fontSize = "12px"; - - return bobj.getStringWidth(value, fontFamily, fontSize); - }, - - getLowerBoundTD : function() { - if (this.layer) - return this.layer.getElementsByTagName("TD")[0]; - - return null; - }, - - setLowerBoundValueWidth : function(w) { - if (this.getLowerBoundTD()) - this.getLowerBoundTD().style.width = w + "px"; - }, - - reset : function(value) { - this.value = value; - this.cleanValue = value; - this.updateUI(); - }, - - updateUI : function() { - var parent = this.layer.parentNode; - MochiKit.DOM.removeElement(this.layer); - append2(parent, this.getHTML()); - this.init(); - }, - - setValue : function(rangeValue) { - this.value = rangeValue; - this.updateUI(); - }, - - setCleanValue : function(rangeValue) { - this.cleanValue = rangeValue; - }, - - getValue : function() { - return this.value; - } -}; \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ReportAlbum.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ReportAlbum.js deleted file mode 100644 index a752060d4..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ReportAlbum.js +++ /dev/null @@ -1,335 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/** - * ReportAlbum Constructor - */ -bobj.crv.newReportAlbum = function(kwArgs) { - var mb = MochiKit.Base; - var UPDATE = mb.update; - var BIND = mb.bind; - var ALBUM = bobj.crv.ReportAlbum; - - kwArgs = UPDATE({ - id: bobj.uniqueId(), - initTabIdx: 0, // Index of tab to select when initializing - width: 800, - height: 500, - displayDrilldownTab : true - }, kwArgs); - - - // Override TabbedZone's TabBarWidget - var tabbar = newNaviBarWidget(bobj.uniqueId(), _HorizTabTopWithClose, null, null, kwArgs.width, null, null, null, false, true, false); - var o = newTabbedZone(kwArgs.id, tabbar, kwArgs.width, kwArgs.height); - - tabbar.cb = BIND(ALBUM._onSelectTab, o); - tabbar.closeTab = BIND(ALBUM._removeView, o, true); - bobj.fillIn(o, kwArgs); - o.widgetType = 'ReportAlbum'; - o._views = []; - o._hideFrame = false; - - // Attach member functions - o.selectOld = o.select; - UPDATE(o, ALBUM); - - return o; -}; - -bobj.crv.ReportAlbum = { - getTabBarHeight : function() { - return this.tabs.getHeight (); - }, - - init : function() { - /* - * This is not nice... Copied super class' init code here so that select will be called only once. - */ - this.tzOldInit (); - this.tabs.init (); - this.showDrilldownTab (this.displayDrilldownTab); - - var views = this._views; - if (views.length > 0) { - for ( var i = 0, len = views.length; i < len; i++) { - /* Since views are not initializing themself (as before through - adding bobj.crv.getInitHtml to their HTML) - it is report album's responsibility to initialize its children */ - views[i].init (); - - } - - if (this.initTabIdx < 0 || this.initTabIdx >= views.length) { - this.initTabIdx = 0; - } - - this.select (this.initTabIdx); - } - }, - - showDrilldownTab : function (isDisplay) { - this.displayDrilldownTab = isDisplay; - try - { - /* IE supports table-row since IE8. */ - var displayStyle; - if (_ie && !_ie8Up) - displayStyle = "block"; - else - displayStyle = "table-row"; - this.tabs.layer.parentNode.parentNode.style.display = isDisplay ? displayStyle : "none"; - } - catch(e){} - }, - - isDisplayDrilldownTab : function () { - return this.displayDrilldownTab; - }, - - setHideFrame : function(hide) { - this._hideFrame = hide; - var selectedView = this.getSelectedView (); - if (selectedView && this._hideFrame) - selectedView.hideFrame(); - }, - - update : function(update) { - if (!update || update.cons !== "bobj.crv.newReportAlbum") { - return; - } - - /* Updates all views */ - for ( var i = 0, len = update.children.length; i < len; i++) { - var updateView = update.children[i]; - var view = this._views[i]; - if (view) { - view.update (updateView); /* updates current view */ - } - } - - var updateChildrenLength = update.children.length; - var currentViewsLength = this._views.length; - - /* Adds any new view created by drill down action */ - if (updateChildrenLength > currentViewsLength) { - for ( var i = currentViewsLength, len = updateChildrenLength; i < len; i++) { - this.delayedAddChild (bobj.crv.createWidget (update.children[i])); - } - } - /* Removes views that are have been removed from viewstate */ - else if (updateChildrenLength < currentViewsLength) { - for ( var i = currentViewsLength -1, len = updateChildrenLength; i >= len; i--) { - this._removeView (false, i); /* removes non-existing views */ - } - } - - this.initTabIdx = update.args.initTabIdx; - this.select (this.initTabIdx); - }, - - /** - * @return index of the tab specified by viewstateid - */ - findTabNumber : function(viewStateId) { - var views = this._views; - for ( var i = 0, len = views.length; i < len; i++) - if (views[i].viewStateId == viewStateId) - return i; - - return -1; - }, - - /** - * Adds view to its list of views. Since this method can be called after initialization time, its HTML - * is first added to report album, and then widget is intialized. - */ - delayedAddChild : function(view) { - this._views.push (view); - var tab = this.tabs.add(view.label, view.tooltip); - var tabHTML = this.getTabHTML (this._views.length - 1); - append (getLayer (this.id + "_container"), tabHTML); - view.init (); - }, - - addChild : function(view) { - if (view) { - this._views.push (view); - this.add (view.label, view.tooltip); - } - }, - - getHTML : function() { - var html = this.beginHTML (); - var children = this._views; - for ( var i = 0, len = children.length; i < len; ++i) { - html += this.getTabHTML (i); - } - - html += this.endHTML (); - return html; - }, - - - /** - * @param index, - * index of tab to create HTML for - * @return creates HTML for tab specified by index - */ - getTabHTML : function(index) { - var tab = this.tabs.items[index]; - var view = this._views[index]; - html = ''; - - if (tab && view) { - html += this.beginTabHTML (tab); - html += view.getHTML (); - html += this.endTabHTML (); - } - - return html; - }, - - /** - * Resize the outer dimensions of the ReportAlbum. The standard resize method, inherited from TabbedZoneWidget, resizes the container. We - * can't override it without breaking things. - */ - resizeOuter : function(w, h) { - var tabHeight = 33; - var frameWidth = 10; - - if(bobj.isNumber (h)) { - if(this.displayDrilldownTab) - h -= tabHeight; - h = Math.max(h, 0); - } - - if(bobj.isNumber (w)) { - if(!this._hideFrame) - w -= frameWidth; - - w = Math.max(w, 0); - } - - - this.resize (w, h); - this.tabs.resize (w); - - var selectedView = this.getSelectedView (); - if (selectedView) { - selectedView.resize (); /* Notify ReportView of resize */ - } - }, - - - - /** - * @return Returns a suggested size for the widget as an object with width and height integer properties that specify the dimensions in - * pixels. - */ - getBestFitSize : function() { - var w = this._hideFrame ? 0 : 10; - var h = this.displayDrilldownTab ? 33 : 0; - var selectedView = this.getSelectedView (); - if (selectedView) { - var viewSize = selectedView.getBestFitSize (); - w += viewSize.width; - h += viewSize.height; - } - - return { - width : w, - height : h - }; - }, - - /** - * Overrides parent. Opens a tab with a positioned div. The positioning prevents - * the ReportView from disappearing in IE. - */ - beginTabHTML : function(tab) { - return bobj.html.openTag ('div', { - id : tab.zoneId, - style : { - display : 'none', - width : this.w + 'px', - height : this.h + 'px', - position : 'relative' - } - }); - }, - - /** - * @return Returns the select ReportView or null if no view is selected - */ - getSelectedView : function() { - return this._views[this.oldIndex]; - }, - - - /** - * Overrides parent. Selects a report view to display. - * - * @param index [int] Index of the report view - */ - select : function(index) { - var partial = MochiKit.Base.partial; - - if (index >= 0 && index < this._views.length && index != this.oldIndex) { - - /* Disposes currently selected view */ - var selectedView = this.getSelectedView (); - if (selectedView) { - selectedView.dispose (); - } - - /* Creates new signals for newly selected view */ - var selectedView = this._views[index]; - - /* Does the dirty DOM manipulation to actually change the view */ - this.selectOld (index); - - /* - * Notifies parameter controller that view has changes so it can enable/disable panel based on view's type - */ - MochiKit.Signal.signal (this, "viewChanged"); - } - }, - - /** - * Removes view specified by index from view list - * - * @param autoSelectNext - * [boolean] indicates whether another view should be auto selected after view specified by index is removed - * @param index - * [Number} index of view that would be removed - */ - _removeView : function(autoSelectNext, index) { - var removedView = this._views[index]; - var removedTab = this.tabs.items[index]; - - autoSelectNext = (removedTab != null && removedTab.isSelected && autoSelectNext); - - if (removedView) { - removedView.dispose (); - bobj.deleteWidget (removedView); - MochiKit.Signal.signal (this, 'removeView', removedView); - } - - if (removedTab.isSelected) { - /* oldIndex (index of currently selected view) needs to be reset so when - response for the next selected view arrives - viewer think that view has changed */ - this.oldIndex = -1; - } - - arrayRemove (this, '_views', index); - this.tabs.remove (index, autoSelectNext); - bobj.deleteWidget (removedTab); - }, - - _onSelectTab : function(index) { - if(index != this.oldIndex) - MochiKit.Signal.signal (this, 'selectView', this._views[index]); - } -}; - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ReportPage.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ReportPage.js deleted file mode 100644 index e5b0f46e1..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ReportPage.js +++ /dev/null @@ -1,280 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/** - * ReportPage constructor - * - * @param kwArgs.id [String] DOM node id - * @param kwArgs.bgColor [String] Background color of the page - * @param kwArgs.width [Int] Page content's width in pixels - * @param kwArgs.height [Int] Page content's height in pixels - * @param kwArgs.topMargin [Int] Top margin of report page in pixels - * @param kwArgs.rightMargin [Int] Right margin of report page in pixels - * @param kwArgs.bottomMargin [Int] Bottom margin of report page in pixels - * @param kwArgs.leftMargin [Int] Left margin of report page in pixels - * @param kwArgs.extraCssFileUrl [String] The path of an extra CSS file used in report page - */ - -bobj.crv.newReportPage = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - bgColor: '#FFFFFF', - width: 720, - height: 984, - extraCssFileUrl: "", - documentView: bobj.crv.ReportPage.DocumentView.PRINT_LAYOUT - }, kwArgs); - - var o = newWidget(kwArgs.id); - o.widgetType = 'ReportPage'; - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - - // Update instance with member functions - o.initOld = o.init; - o.resizeOld = o.resize; - MochiKit.Base.update(o, bobj.crv.ReportPage); - - return o; -}; - -bobj.crv.ReportPage = { - DocumentView : { - WEB_LAYOUT : 'weblayout', - PRINT_LAYOUT : 'printlayout' - }, - - /** - * Disposes report page by removing its layer and stylesheet from DOM - */ - dispose : function() { - MochiKit.DOM.removeElement (this.layer); - }, - - /** - * DO NOT REMOVE. USED BY WEB ELEMENTS - */ - displayScrollBars : function (isDisplay) { - this.layer.style.overflow = isDisplay ? "auto" : "hidden"; - }, - - /** - * DO NOT REMOVE. USED BY WEB ELEMENTS - */ - isDisplayScrollBars : function () { - this.layer.style.overflow == "auto"; - }, - - - update : function(update) { - if (update && update.cons == "bobj.crv.newReportPage") { - this.updateSize ( { - width : update.args.width, - height : update.args.height - }); - - this.layer.scrollLeft = 0; - this.layer.scrollTop = 0; - this.updateHTML (update.args.content, false); - } - }, - - scrollToHighlighted : function (scrollWindow) { - if(this._iframe) { - var iframeDoc = _ie ? this._iframe.contentWindow.document : this._iframe.contentDocument; - var e = iframeDoc.getElementById("CrystalHighLighted"); - if(e) { - var ePosition = MochiKit.Style.getElementPosition (e, null, iframeDoc); - if(scrollWindow) { - var reportPagePos = MochiKit.Style.getElementPosition (this.layer); - window.scrollTo (reportPagePos.x + ePosition.x , reportPagePos.y + ePosition.y); - } - else { - this.layer.scrollLeft = ePosition.x; - this.layer.scrollTop = ePosition.y; - } - } - } - }, - - updateHTML : function(content, useAnimation) { - if (content) { - if(!this._iframe) { - this._iframe = MochiKit.DOM.createDOM('IFRAME', {id : this.id + '_iframe', width : '100%', height : '100%', frameBorder : '0', margin : '0'}) - this._pageNode.appendChild(this._iframe); - } - - if(useAnimation) - this._iframe.style.display = "none"; - - var iframeDoc = _ie ? this._iframe.contentWindow.document : this._iframe.contentDocument; - iframeDoc.open(); - iframeDoc.write(this.getIFrameHTML (content)); - iframeDoc.close(); - - if(useAnimation) - bobj.displayElementWithAnimation(this._iframe); - } - }, - - getIFrameHTML : function (content) { - var extraCssFileLink = ""; - if (this.extraCssFileUrl != "") { - extraCssFileLink = "\r\n"; - } - - return "" + - "\r\n" + - "\r\n" + - extraCssFileLink + - "\r\n" + - "\r\n" + - "\r\n" + - content + - "\r\n" + - ""; - }, - - /* - * Updates size of report page based on update object - * @param update [{width,height,marginLeft,marginRight,marginTop}] dimension and margins - * of report p - */ - updateSize : function(sizeObject) { - - if (sizeObject) { - this.width = (sizeObject.width != undefined) ? sizeObject.width : this.width; - this.height = (sizeObject.height != undefined) ? sizeObject.height : this.height; - } - - if (this._pageNode) { - var isBBM = bobj.isBorderBoxModel (); - this._pageNode.style.width = (isBBM ? this.width + 2: this.width) + 'px'; - this._pageNode.style.height = (isBBM ? this.height + 2: this.height) + 'px'; - } - - if (this._shadowNode) { - this._shadowNode.style.width = (isBBM ? this.width + 2: this.width) + 'px'; - this._shadowNode.style.height = (isBBM ? this.height + 2: this.height) + 'px'; - } - }, - - getHTML : function() { - var h = bobj.html; - var isBBM = bobj.isBorderBoxModel (); - - var layerStyle = { - width : '100%', - height : '100%', - overflow : 'auto', - position : 'absolute' - }; - - var pageStyle = { - position : 'relative', - width : (isBBM ? this.width + 2: this.width) + 'px', - height : (isBBM ? this.height + 2: this.height) + 'px', - 'z-index' : 1, - 'border-width' : '1px', - 'border-style' : 'solid', - 'background-color' : this.bgColor, - overflow : 'hidden', - 'text-align' : 'left' - }; - - var shadowStyle = { - position : 'absolute', - 'z-index' : 0, - display : 'none', - width : (isBBM ? this.width + 2: this.width) + 'px', - height : (isBBM ? this.height + 2: this.height) + 'px', - top : '0px', - left : '0px' - }; - - - var shadowHTML = ''; - if (this.documentView.toLowerCase () == bobj.crv.ReportPage.DocumentView.PRINT_LAYOUT) { - layerStyle['background-color'] = '#8E8E8E'; - pageStyle['border-color'] = '#000000'; - shadowStyle['background-color'] = '#737373'; - shadowHTML = h.DIV ( { - id : this.id + '_shadow', - 'class' : 'menuShadow', - style : shadowStyle - }) - /* page should appear in the center for print layouts */ - layerStyle['text-align'] = 'center'; /* For page centering in IE quirks mode */ - pageStyle['margin'] = '0 auto'; /* center the page horizontally - CSS2 */ - pageStyle['top'] = "6px"; - } else { - /* Web Layout*/ - layerStyle['background-color'] = '#FFFFFF'; - pageStyle['border-color'] = '#FFFFFF'; - /* page should appear in left for web layouts */ - pageStyle['margin'] = '0'; - } - - var html = h.DIV ( { - id : this.id, - style : layerStyle, - 'class' : 'insetBorder' - }, h.DIV ( { - id : this.id + '_page', - style : pageStyle - }), shadowHTML); - - return html; - }, - - init : function() { - this._pageNode = getLayer (this.id + '_page'); - this._shadowNode = getLayer (this.id + '_shadow'); - - this.initOld (); - - this.updateHTML (this.content, true); - }, - - updateShadowLocation : function () { - var updateFunc = function () { - if(this._shadowNode && this._pageNode) { - this._shadowNode.style.display = "none"; //Must hide dropshadow as it can cause scrollbars to appear - var pageNodPos = {x : this._pageNode.offsetLeft, y : this._pageNode.offsetTop}; - this._shadowNode.style.display = "block"; - this._shadowNode.style.top = pageNodPos.y + (bobj.isBorderBoxModel() ? 4 : 6) + "px"; - this._shadowNode.style.left = pageNodPos.x + (bobj.isBorderBoxModel() ? 4 : 6) + "px"; - } - } - - setTimeout(bobj.bindFunctionToObject(updateFunc,this), 0); // Must be executed after viewer has finished doLayout - }, - - /** - * Resizes the outer dimensions of the widget. - */ - resize : function (w, h) { - bobj.setOuterSize(this.layer, w, h); - if(_moz) - this.css.clip = bobj.getRect(0,w,h,0); - - this.updateShadowLocation (); - }, - - /** - * @return Returns an object with width and height properties such that there - * would be no scroll bars around the page if they were applied to the widget. - */ - getBestFitSize : function() { - var page = this._pageNode; - return { - width: page.offsetWidth + 30, - height: page.offsetHeight + 30 - }; - }, - - hideFrame : function() { - this.css.borderStyle = 'none'; - this._pageNode.style.border = ''; - } -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ReportView.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ReportView.js deleted file mode 100644 index 815c99d78..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ReportView.js +++ /dev/null @@ -1,156 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/** - * ReportView Constructor - */ -bobj.crv.newReportView = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - viewStateId: null, - isMainReport: false - }, kwArgs); - var o = newWidget(kwArgs.id); - - bobj.fillIn(o, kwArgs); - o.widgetType = 'ReportView'; - - o.reportPage = null; - - o._lastPanelWidth = null; - - // Attach member functions - o.initOld = o.init; - o.isMainReportFlag = o.isMainReport; - MochiKit.Base.update(o, bobj.crv.ReportView); - - return o; -}; - -bobj.crv.ReportView = { - init : function() { - this.initOld (); - if (this.reportPage) - this.reportPage.init (); - }, - - addChild : function(widget) { - if (widget.widgetType == 'ReportPage') - this.reportPage = widget; - }, - - /** - * This method should be called after viewer has initialized. Adds a child to view by first appending its html - * to view and then intializing it. - */ - delayedAddChild : function(widget) { - this.addChild (widget); - append2 (this.layer, widget.getHTML ()); - widget.init (); - - }, - - scrollToHighlighted : function (scrollWindow) { - if(this.reportPage) { - this.reportPage.scrollToHighlighted(scrollWindow); - } - }, - - update : function(update) { - if (update && update.cons == "bobj.crv.newReportView") { - if(update.args) - this.viewStateId = update.args.viewStateId; - - for ( var childVar in update.children) { - var child = update.children[childVar]; - if (child && child.cons == "bobj.crv.newReportPage") { - if (!this.reportPage) { - /* adds reportPage if not existing */ - this.delayedAddChild (bobj.crv.createWidget (child)); - } else { - /* updates reportpage */ - this.reportPage.update (child); - } - - break; /* There is only one child */ - } - } - } - }, - - getHTML : function() { - var h = bobj.html; - - var layerStyle = { - width : '100%', - height : '100%', - overflow : 'hidden', - position : 'relative' - }; - - var html = h.DIV ( { - id : this.id, - style : layerStyle - }, this.reportPage ? this.reportPage.getHTML () : ''); - - return html; - }, - - _doLayout : function() { - if (this.reportPage) - this.reportPage.resize (this.getWidth (), this.getHeight ()); - }, - - isMainReport : function() { - return this.isMainReportFlag; - }, - - /** - * ReportView will always fill its container but it should be told when to - * resize so that the layout of its contents will be updated. - */ - resize : function() { - this._doLayout (); - }, - - dispose : function() { - if (this.reportPage) { - this.reportPage.dispose (); - bobj.deleteWidget (this.reportPage); - delete this.reportPage; - } - - bobj.removeAllChildElements (this.layer); - }, - - /** - * @return Returns a suggested size for the widget as an object with width and height integer properties that specify the dimensions in - * pixels. - */ - getBestFitSize : function() { - var w = 0; - var h = 0; - - var pageSize = this.reportPage ? this.reportPage.getBestFitSize () : null; - if (pageSize) { - w += pageSize.width; - h += pageSize.height; - } - - return { - width : w, - height : h - }; - }, - - /** - * @return True if the view has report content. False if the view is empty. - */ - hasContent : function() { - return this.reportPage != null; - }, - - hideFrame : function() { - if (this.reportPage) - this.reportPage.hideFrame(); - } -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Separator.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Separator.js deleted file mode 100644 index f22dddecb..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Separator.js +++ /dev/null @@ -1,71 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof(bobj.crv.Separator) == 'undefined') { - bobj.crv.Separator = {}; -} - -/** - * Separator Constructor. Simple horizontal separator. - * - */ -bobj.crv.newSeparator = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - kwArgs = UPDATE({ - id: bobj.uniqueId(), - marginLeft: 4, - marginRight: 4, - marginTop: 0, - marginBottom: 2 - }, kwArgs); - var o = newWidget(kwArgs.id); - - bobj.fillIn(o, kwArgs); - o.widgetType = 'Separator'; - - // Attach member functions - UPDATE(o, bobj.crv.Separator); - - return o; -}; - -bobj.crv.Separator.getHTML = function() { - var HTML = bobj.html; - var htmlStr = ''; - if (bobj.isBorderBoxModel()) { - htmlStr = HTML.IMG({ - id: this.id, - src: bobj.skinUri('sep.gif'), - style: { - 'height': 2 + 'px', - 'width':'100%', - 'margin-left': this.marginLeft + 'px', - 'margin-right': this.marginRight + 'px', - 'margin-top': this.marginTop + 'px', - 'margin-bottom': this.marginBottom + 'px' - }}); - } - else { - htmlStr = HTML.DIV({ - id : this.id, - style: { - 'height': 2 + 'px', - 'margin-left': this.marginLeft + 'px', - 'margin-right': this.marginRight + 'px', - 'margin-top': this.marginTop + 'px', - 'margin-bottom': this.marginBottom + 'px', - 'background-image': 'url(' + bobj.skinUri('sep.gif') + ')', - 'background-repeat': 'repeat-x', - 'overflow': 'hidden' - - - }}); - } - return htmlStr + bobj.crv.getInitHTML(this.widx); -}; - -/** - * @return Returns the outer height of the widget, including margins - */ -bobj.crv.Separator.getHeight = function() { - return this.layer.offsetHeight + this.marginTop + this.marginBottom; -}; \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/SharedWidgetHolder.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/SharedWidgetHolder.js deleted file mode 100644 index 92e2d4fc5..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/SharedWidgetHolder.js +++ /dev/null @@ -1,183 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof(bobj.crv.SharedWidgetHolder) == 'undefined') { - bobj.crv.SharedWidgetHolder = {}; - bobj.crv.SharedWidgetHolder._registry = {}; -} - -/** - * Constructor. SharedWidgetHolder is a placeholder for a widget. - * SharedWidgetHolder instances belong to groups, in which one managed - * widget will be shown in one placeholder at a time. When show(true) is called - * for any member of the group, the managed widget will be displayed in that - * member. - * - * @param id [String] DHTML id - * @param group [String] Group the new instance will belong to - * @param width [int | String] Width of the placeholder - * @param height [int | String] Height of the placeholder - * @param resizeWidget [bool] Resize to the placeholder's dimensions - */ -bobj.crv.newSharedWidgetHolder = function(kwArgs) { - var mb = MochiKit.Base; - var ms = MochiKit.Signal; - - kwArgs = mb.update({ - id: bobj.uniqueId(), - group: 'SharedWidgetHolder', - width: null, - height: null, - resizeWidget: true - }, kwArgs); - - var o = newWidget(kwArgs.id); - o.widgetType = 'SharedWidgetHolder'; - bobj.fillIn(o, kwArgs); - - o._setVisible = o.show; - o._resizeHolder = o.resize; - o._initHolder = o.init; - mb.update(o, bobj.crv.SharedWidgetHolder); - - o._register(); - - return o; -}; - -bobj.crv.SharedWidgetHolder.init = function() { - this._initHolder(); - var regInfo = this._regInfo; - if (regInfo.managedWidget && this === regInfo.visibleHolder) { - regInfo.managedWidget.init(); - this.resize(); - } -}; - -bobj.crv.SharedWidgetHolder.getHTML = function() { - var ISNUMBER = bobj.isNumber; - var ISSTRING = bobj.isString; - - var vis = this.isHoldingWidget() ? 'visible' : 'hidden'; - var innerHTML = this.isHoldingWidget() ? this._regInfo.managedWidget.getHTML() : ''; - - var style = {visibility: vis}; - - var width = this.width; - if (ISNUMBER(width)) { - width = width + 'px'; - } - if (ISSTRING(width)) { - style.width = width; - } - - var height = this.height; - if (ISNUMBER(height)) { - height = height + 'px'; - } - if (ISSTRING(height)) { - style.height = height; - } - - return bobj.html.DIV({id: this.id, style: style}, innerHTML); -}; - -/** - * Private. Register this instance in a group. - */ -bobj.crv.SharedWidgetHolder._register = function() { - var registry = bobj.crv.SharedWidgetHolder._registry; - var holderInfo = registry[this.group]; - - if (!holderInfo) { - holderInfo = { - managedWidget: null, - visibleHolder: this - }; - registry[this.group] = holderInfo; - } - - this._regInfo = holderInfo; -}; - -/** - * @return [bool] True if and only if this instance is currently holding a - * non-null managed widget. Only one member of a group can return - * true at any given time. - */ -bobj.crv.SharedWidgetHolder.isHoldingWidget = function() { - var regInfo = this._regInfo; - return ((regInfo.visibleHolder === this) && regInfo.managedWidget); -}; - -/** - * @return [Widget] The widget that is managed by the holder group that this - * instance belongs to. - */ -bobj.crv.SharedWidgetHolder.getManagedWidget = function() { - return this._regInfo.managedWidget; -}; - -/** - * Set the widget that is managed by the group that this isntance belongs to. - * The widget will be displayed in the currently visible member of the group. - * - * @param widget [Widget] The widget that should be managed. - */ -bobj.crv.SharedWidgetHolder.setManagedWidget = function(widget) { - var regInfo = this._regInfo; - var oldWidget = regInfo.managedWidget; - regInfo.managedWidget = widget; - - if (oldWidget && oldWidget.layer) { - MochiKit.DOM.removeElement(oldWidget.layer); - } - - if (!regInfo.visibleHolder) { - regInfo.visibleHolder = this; - } - - var holder = regInfo.visibleHolder; - - if (holder.layer && widget && widget.layer) { - holder.layer.appendChild(widget.layer); - holder.resize(); - } -}; - -/** - * Alias for setManagedWidget. Allows instantiation using bobj.crv.createWidget(); - */ -bobj.crv.SharedWidgetHolder.addChild = bobj.crv.SharedWidgetHolder.setManagedWidget; - -/** - * Show or hide the managed widget in this holder instance. - * - * @param show [bool] If true, the managed widget will be displayed in this - * instance. If false and this holder is currently showing - * the managed widget, the widget will be hidden. - */ -bobj.crv.SharedWidgetHolder.show = function(show) { - var regInfo = this._regInfo; - if (show && (regInfo.visibleHolder !== this) && regInfo.managedWidget) { - this.layer.appendChild(regInfo.managedWidget.layer); - regInfo.visibleHolder._setVisible(false); - regInfo.visibleHolder = this; - this.resize(); - } - this._setVisible(show); -}; - -/** - * Resize the holder instance. If resizeWidget property is true, the managed - * widget will be resized to the dimensions of the placeholder. - * - * @param w [width, optional] Width in pixels - * @param h [height, optional] Height in pixels - */ -bobj.crv.SharedWidgetHolder.resize = function(w, h) { - this._resizeHolder(w, h); - - if (this.resizeWidget && this.isHoldingWidget()) { - this._regInfo.managedWidget.resize(this.getWidth(), this.getHeight()); - } -}; \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/SignalDisposer.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/SignalDisposer.js deleted file mode 100644 index 1ee5f8ad4..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/SignalDisposer.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Disposes signals synchronously and asynchronously. - */ -if (typeof(bobj.crv.SignalDisposer) == 'undefined') { - bobj.crv.SignalDisposer = new function() { - var signals = []; //private variable - var timerID = null; //private variable - var CLEAN_SIGNALS_PER_TASK = 20; - var disconnect = MochiKit.Signal.disconnect; - - this.dispose = function(signal, sync) { - if(signal != null) { - if(sync) { - disconnect(signal); - } - else { - signals.push (signal); - if (timerID == null) - timerID = setInterval (bobj.bindFunctionToObject (cleanTask, this), 100); - } - } - }; - - cleanTask = function() { - var count = CLEAN_SIGNALS_PER_TASK; - while (signals.length > 0 && count > 0) { - disconnect (signals.pop ()); - count--; - } - - if (signals.length == 0 && timerID != null) { - clearInterval (timerID); - timerID = null; - } - } - }; -} - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/StackedPanel.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/StackedPanel.js deleted file mode 100644 index 0167fa0dc..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/StackedPanel.js +++ /dev/null @@ -1,160 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof(bobj.crv.StackedPanel) == 'undefined') { - bobj.crv.StackedPanel = {}; -} - -/** - * Constructor. - * - * @param id [String] DHTML id - * @param width [int] Width of the panel in pixels - * @param height [int] Height of the panel in pixels - */ -bobj.crv.newStackedPanel = function(kwArgs) { - var mb = MochiKit.Base; - var UPDATE = mb.update; - var BIND = mb.bind; - - kwArgs = UPDATE({ - id: bobj.uniqueId(), - width: null, - height: null - }, kwArgs); - - var o = newWidget(kwArgs.id); - o.widgetType = 'StackedPanel'; - bobj.fillIn(o, kwArgs); - - o._tabs = []; - - o._initWidget = o.init; - o._resizeWidget = o.resize; - UPDATE(o, bobj.crv.StackedPanel); - - - return o; -}; - -bobj.crv.StackedPanel = { - init : function() { - this._initWidget (); - - var tabs = this._tabs; - /* Tabs that were added after getHTML must be written now */ - var index = this._numTabsWritten; - while (index < tabs.length) { - append (this.layer, tabs[index].getHTML (), document); - index++; - } - - for ( var i = 0, len = tabs.length; i < len; ++i) { - tabs[i].init (); - } - }, - - setTabDisabled : function(dis) { - for ( var i = 0, len = this._tabs.length; i < len; i++) { - this._tabs[i].setTabDisabled (dis); - } - }, - - getHTML : function() { - var DIV = bobj.html.DIV; - - var layerStyle = {}; - - if (this.height) { - layerStyle.height = bobj.unitValue (this.height); - } - - if (this.width) { - layerStyle.width = bobj.unitValue (this.width); - } - - return DIV ( { - id : this.id, - style : layerStyle, - 'class' : 'stackedPanel', - tabIndex : "-1" - }, this._getTabsHTML ()); - }, - - _getTabsHTML : function() { - var tabsHTML = ''; - var tabs = this._tabs; - var tabsLen = tabs.length; - for ( var i = 0; i < tabsLen; ++i) { - tabsHTML += tabs[i].getHTML (); - } - this._numTabsWritten = tabsLen; - return tabsHTML; - }, - - /** - * Add a tab to the panel. Must be called before getHTML is called. - * - * @param tab - * [StackedTab] - */ - addTab : function(tab) { - if (tab) { - this._tabs.push (tab); - if (this.layer) { - append (this.layer, tab.getHTML ()); - tab.init (); - } - - if (this.layer) - tab.resize(this.layer.clientWidth); - - MochiKit.Signal.connect(tab, "StackedTabResized", this, '_onStackedTabResize'); - } - }, - - getNumTabs : function() { - return this._tabs.length; - }, - - getTab : function(index) { - return this._tabs[index]; - }, - - removeTab : function(index) { - if (index >= 0 && index < this._tabs.length) { - var tab = this._tabs[index]; - this._tabs.splice (index, 1); - delete _widgets[this._tabs.widx]; - if (tab.layer) { - tab.layer.parentNode.removeChild (tab.layer); - } - } - }, - - _onStackedTabResize: function () { - this.resize (this.getWidth()); - }, - - resize : function(w, h) { - /* Exclude margins for safari as it miscalculates left/top margins */ - var excludeMargins = !_saf; - bobj.setOuterSize(this.layer, w, h, excludeMargins); - var tabs = this._tabs; - var tabsLen = tabs.length; - if (tabsLen) { - /* Ensure that the vertical scrollbar never covers the content*/ - var tabWidth = this.layer.clientWidth; - - /* IE changes the value of clientWidth after resizing the first child... */ - tabs[0].resize(tabWidth); - if (tabWidth != this.layer.clientWidth) { - tabWidth = this.layer.clientWidth; - tabs[0].resize(tabWidth); - } - - for (var i = 1; i < tabsLen; ++i) { - tabs[i].resize(tabWidth); - } - } - } -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/StackedTab.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/StackedTab.js deleted file mode 100644 index 2d9d4d3a9..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/StackedTab.js +++ /dev/null @@ -1,230 +0,0 @@ - -/* -================================================================================ -StackedTab -================================================================================ -*/ -bobj.crv.newStackedTab = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - - kwArgs = UPDATE({ - id: bobj.uniqueId(), - label: '', - width: 300, - height: null, // null height means grow as big as necessary - openAdvCB: null, - name : '', - isDataFetching: false - }, kwArgs); - - var o = newWidget(kwArgs.id); - o.widgetType = 'StackedTab'; - bobj.fillIn(o, kwArgs); - - o._content = null; - - if(o.openAdvCB) { - o._advanceButton = newIconWidget( - o.id + '_advBtn', - bobj.crv.allInOne.uri, - o.openAdvCB, - null, //text - L_bobj_crv_paramsOpenAdvance.replace("%1", o.name),//tooltip, - 10, 10, 3, bobj.crv.allInOne.openParameterArrowDy + (_ie ? 2 : 3)); //width, height, dx, dy, disDx, disDy, cancelEventPropagation - bobj.crv.setAllClasses(o._advanceButton, 'arrow_button'); - o._advanceButton.margin = 0; - } - - o._initWidget = o.init; - o._resizeWidget = o.resize; - UPDATE(o, bobj.crv.StackedTab); - - return o; -}; - -bobj.crv.StackedTab = { - setTabDisabled : function(dis) { - if (this._content) - this._content.setTabDisabled (dis); - - if (this._advanceButton && this._advanceButton.layer) - bobj.disableTabbingKey (this._advanceButton.layer, dis); - - if (this._textCtn) - bobj.disableTabbingKey (this._textCtn, dis); - - if(this._dataFetchLayer) - bobj.disableTabbingKey (this._dataFetchLayer, dis); - }, - - init : function() { - var connect = MochiKit.Signal.connect; - var signal = MochiKit.Signal.signal; - var partial = MochiKit.Base.partial; - - this._initWidget (); - - if (this._content) { - this._content.init (); - } - - if (this._advanceButton) { - this._advanceButton.init (); - this._onAdvanceButtonClickOld = MochiKit.Base.bind(this._advanceButton.layer.onclick, this._advanceButton.layer); - this._advanceButton.layer.onclick = MochiKit.Base.bind(this.advButtonOnClick, this); - this._advanceButton.css.width = "14px"; - } - - this._dataFetchLayer = getLayer(this.id + "_df"); - this._labelCtn = getLayer (this.id + '_labelCtn'); - this._textCtn = getLayer (this.id + '_textCtn'); - this._contentCtn = getLayer (this.id + '_contentCtn'); - - if (this._advanceButton) { - var advButtonLayer = this._advanceButton.layer; - var bind = bobj.bindFunctionToObject; - connect (this.layer, 'onclick', bind(IconWidget_upCB, advButtonLayer)); - connect (this.layer, 'onmouseover', bind(IconWidget_realOverCB, advButtonLayer)); - connect (this.layer, 'onmouseout', bind(IconWidget_realOutCB, advButtonLayer)); - connect (this.layer, 'onmousedown', bind(IconWidget_downCB, advButtonLayer)); - - } - - connect(this._content, 'ParameterUIResized', partial (signal, this, "StackedTabResized")); - }, - - getHTML : function() { - var h = bobj.html; - var DIV = h.DIV; - var IMG = h.IMG; - - var stackedTabAtt = { - 'class' : 'stackedTab', - cellpadding : "0", - id : this.id, - style : { - cursor : this._advanceButton ? _hand : 'default' - } - }; - - var labelCtnAtt = { - id: this.id + '_labelCtn', - cellpadding : "0", - 'class': 'crvnoselect stackedTabTitle' - }; - - var contentHTML = this._content ? this._content.getHTML() : ''; - var advButtonHTML = this._advanceButton ? h.TD ({width : '17px'}, this._advanceButton.getHTML()) : ''; /* 14 for arrow height + 3px right margin */ - var dataFetchHTML = ""; - - if (this.isDataFetching) { - var URL_TAG = "url(%1);" - dataFetchHTML = h.TD ({width : '20px'}, IMG ( { - src : _skin + '../transp.gif', - title : L_bobj_crv_ParamsDataTip, - tabindex: 0, - id: this.id + "_df", - style : { - width : "16px", - height : "16px", - "background-image" : URL_TAG.replace("%1", bobj.crv.allInOne.uri), - "background-position" : "0px " + (-bobj.crv.allInOne.paramDataFetchingDy) + "px", - "margin-right" : '4px', - 'vertical-align' : 'middle' - } - })); - } - - var html = DIV (stackedTabAtt, DIV (labelCtnAtt, h.TABLE ( { - cellpadding : "0", - width : '100%', - height : '20px', - style : { - 'table-layout' : 'fixed' - } - }, h.TD ({style : {"vertical-align" : "top", "overflow" : "hidden"}}, DIV ( { - 'class' :'stackedTabText', - id :this.id + '_textCtn', - title :this.label, - 'tabIndex' :0, - style : { - 'font-weight' : 'bold', - 'color' : '#4F5C72' - } - }, convStr (this.label)) - ), dataFetchHTML, advButtonHTML) - ), DIV ( { - id :this.id + '_contentCtn', - 'class' :'stackedTabContentCtn' - }, contentHTML)); - - return html; - }, - - setDirty : function(isDirty) { - if(this._textCtn) { - this._textCtn.style.fontStyle = isDirty ? "italic" : ""; - this._textCtn.title = isDirty ? this.label + " " + L_bobj_crv_ParamsDirtyTip : this.label; - } - - if(this._labelCtn) { - var titleClassName = isDirty ? "stackedTabTitleDirty" : "stackedTabTitle"; - - // IE 7 uses "className" - this._labelCtn.setAttribute("className", titleClassName); - - // IE 8, FireFox, and Safari use "class" - this._labelCtn.setAttribute("class", titleClassName); - } - }, - - resize : function(w) { - w = w - 4; // TODO exclude margins properly - if(this._labelCtn) { - // Exclude margins for safari as it miscalculates left/top margins - var excludeMargins = !_saf; - bobj.setOuterSize(this._labelCtn, w , null, excludeMargins); - } - if (this._content) { - this._content.resize(w -2); - } - bobj.setOuterSize(this.layer, w); - }, - - /** - * Set the widget that is displayed below the tab. Must be called before getHTML. - * - * @param widget [Widget] Widget that appears below the tab when the tab is expanded - */ - setContent : function(widget) { - this._content = widget; - }, - - /** - * Get the widget that is displayed below the tab. - * - * @return [Widget] Widget that appears below the tab - */ - getContent : function() { - return this._content; - }, - - /** - * Focus the advanced button if available - */ - focusAdvButton : function() { - if (this._advanceButton && this._advanceButton.focus) - this._advanceButton.focus(); - }, - - /** - * Override default onclick for the advanced button to cancel propagating the event. - */ - advButtonOnClick : function(e) { - if (this._onAdvanceButtonClickOld) - { - this._onAdvanceButtonClickOld(e); - eventCancelBubble(e); - } - } -}; \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/StateManager.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/StateManager.js deleted file mode 100644 index b9b354909..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/StateManager.js +++ /dev/null @@ -1,86 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/** - * Constructor. StateManager holds state for multiple viewers. - */ -bobj.crv.StateManager = function() { - this._state = {}; -}; - -bobj.crv.StateManager.prototype = { - /** - * Set the state object for a report view - * - * @param viewerName [String] - * @param stateName [String] The name of the report view - * @param viewState [Object] The state associated with the report view - */ - setViewState: function(viewerName, stateName, viewState) { - var state = this._state; - - if (!state[viewerName]) { - state[viewerName] = {}; - } - - state[viewerName][stateName] = viewState; - }, - - /** - * Get the state object for a report view - * - * @param viewerName [String] - * @param stateName [String] The name of the report view - * - * @return [Object] Returns the state object for the report view or null - * if no object is associated with (viewerName, stateName) - */ - getViewState: function(viewerName, stateName) { - var state = this._state; - - if (!state[viewerName]) { - return null; - } - return state[viewerName][stateName]; - }, - - /** - * Set the compound state object for a viewer components. This object - * should contain a state object for every report view displayed by the - * viewer. - * - * @param viewerName [String] - * @param state [Object] All report view states for the viewer - */ - setComponentState: function(viewerName, state) { - this._state[viewerName] = state; - }, - - /** - * Get the compound state object for a viewer component. This object - * should contain a state object for every report view displayed by the - * viewer. - * - * @param viewerName [String] - * - * @return [Object] Returns all report view states for the viewer - */ - getComponentState: function(viewerName) { - return this._state[viewerName]; - }, - - /** - * Get the state for all viewer components on the page. - * - * @return [Object] Returns the state of all viewers on the page, mapped - * by the id of the viewer widgets. - */ - getCompositeState: function() { - return this._state; - } -}; - -// Create a single StateManager for all viewers in the page to share -if (typeof bobj.crv.viewerState == 'undefined') { - bobj.crv.stateManager = new bobj.crv.StateManager(); -} - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Statusbar.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Statusbar.js deleted file mode 100644 index 4a9985838..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Statusbar.js +++ /dev/null @@ -1,257 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/** - * Statusbar widget constructor ({id: String}) - */ -bobj.crv.newStatusbar = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - kwArgs = UPDATE({ - id: bobj.uniqueId(), - visualStyle : { - className : null, - backgroundColor : null, - borderWidth : null, - borderStyle : null, - borderColor : null, - fontFamily : null, - fontWeight : null, - textDecoration : null, - color : null, - width : null, - height : null, - fontStyle : null, - fontSize : null - } - }, kwArgs); - - var o = newPaletteContainerWidget(kwArgs.id); - - o.margin = 0; - bobj.fillIn(o, kwArgs); - o._rightZoneWgts = []; - o.widgetType = 'Statusbar'; - - // Attach member functions (since we can't use prototypes) - o.initOld = o.init; - UPDATE(o, bobj.crv.Statusbar); - - o.palette = newPaletteWidget(o.id + "_palette"); - o.palette.isLeftTableFixed = true; - o.add(o.palette); - - return o; -}; - -bobj.crv.Statusbar = { - /** - * Overrides parent - */ - init : function() { - this.initOld (); - bobj.setVisualStyle (this.layer, this.visualStyle); - this.palette.init (); - }, - - /** - * Overrides parent - */ - beginHTML : function() { - return bobj.html.openTag ('div', { - id : this.id, - 'class' : 'dialogzone', - style : { - width : '100%', - overflow : 'hidden', - margin : this.margin + 'px', - padding : '2px 0px', - position : 'absolute' - } - }); - }, - - /** - * Overrides parent - */ - getHTML : function() { - this._addRightZone (); - return (this.beginHTML () + this.palette.getHTML () + this.endHTML ()); - }, - - /** - * Private. Adds right-aligned widgets to the right zone of the palette - */ - _addRightZone : function() { - this.palette.beginRightZone (); - - var w = null; - while (w = this._rightZoneWgts.pop ()) { - this.palette.add (w); - } - - delete this._rightZoneWgts; - }, - - /** - * Overrides parent - */ - write : function() { - this._addRightZone (); - this.begin (); - this.palette.write (); - this.end (); - document.write (bobj.crv.getInitHTML (this.widx)); - }, - - /** - * Add child widgets to the statusbar - left or right - */ - addChild : function(widget) { - switch (widget.widgetType) { - case 'StatusbarBreadcrumb': - this.breadcrumb = widget; - break; - case 'StatusbarVersionIndicator': - this.versionIndicator = widget; - break; - } - - /* Delay adding right-aligned widgets due to the semantics of the palette */ - if (widget.layoutAlign == 'right') { - this._rightZoneWgts.push (widget); - } else { - this.palette.add (widget); - } - }, - - /** - * Update child widgets - if they are exists in the statusbar - */ - update : function(update) { - if (update) { - for ( var childNum in update.children) { - var child = update.children[childNum]; - if (child) { - switch (child.cons) { - case "bobj.crv.newStatusbarBreadcrumb": - if (this.breadcrumb) { - this.breadcrumb.update (child.args); - } - break; - case "bobj.crv.newStatusbarVersionIndicator": - if (this.versionIndicator) { - this.versionIndicator.update (child.args); - } - break; - } - } - } - } - }, - - doLayout : function() { - if (this.breadcrumb) { - this.breadcrumb._doLayout(); - } - } -}; - -/** - * StatusbarBreadcrumb widget constructor ({values: String[]}) - */ -bobj.crv.newStatusbarBreadcrumb = function(kwArgs) { - var o = newWidget(bobj.uniqueId()); - - o.widgetType = 'StatusbarBreadcrumb'; - o.values = kwArgs.values; - o.layoutAlign = 'left'; - - o._separatorImage = img(bobj.crvUri('images/breadcrumbSep.gif'), 14, 9); - - MochiKit.Base.update(o, bobj.crv.StatusbarBreadcrumb); - return o; -}; - -bobj.crv.StatusbarBreadcrumb = { - /** - * Update the breadcrumbs ({values: String[]}) - */ - update : function(kwArgs) { - this.values = kwArgs.values; - this.layer.innerHTML = this._render (); - }, - - /** - * Overrides parent - */ - getHTML : function() { - return bobj.html.DIV ( { - 'class' : 'statusbar_breadcrumb' - }, bobj.html.DIV ( { - id : this.id - }, this._render ())); - }, - - /** - * Render the breadcrumbs as table cells separated by an image - called by getHTML and update - */ - _render : function() { - var html = ''; - if (this.values && this.values.length > 0) { - var cells = ''; - for (i = 0; i < this.values.length; i++) { - if (i > 0) { /* insert a separate image before values - except first one */ - cells += bobj.html.TD (null, this._separatorImage); - } - cells += bobj.html.TD ( { - style : { - 'white-space' : 'nowrap' - } - }, this.values[i]); - } - - html = bobj.html.TABLE ( { - 'class' : 'iconText', - cellspacing : '0', - cellpadding : '0' - }, bobj.html.TR (null, cells)); - } - return html; - }, - - _doLayout : function() { - var needsRightAlign = (this.layer.parentNode.scrollWidth > this.layer.parentNode.offsetWidth) || (this.layer.offsetLeft < 0); - if (needsRightAlign) { - this.layer.style.position = "absolute"; - this.layer.style.top = "0px"; - this.layer.style.right = "0px"; - } - else { - this.layer.style.position = ""; - } - } -}; - - -/** - * StatusbarVersionIndicator widget constructor ({value: String}) - */ -bobj.crv.newStatusbarVersionIndicator = function(kwArgs) { - var text = (kwArgs && kwArgs.value) ? L_bobj_crv_LastRefreshed + ": " + kwArgs.value : ' '; - var o = NewLabelWidget(bobj.uniqueId(), text, true); - - o.widgetType = 'StatusbarVersionIndicator'; - o.layoutAlign = 'right'; - - MochiKit.Base.update(o, bobj.crv.StatusbarVersionIndicator); - return o; -}; - -bobj.crv.StatusbarVersionIndicator = { - /** - * Update the last refreshed value - */ - update : function(kwArgs) { - var text = (kwArgs && kwArgs.value) ? L_bobj_crv_LastRefreshed + ": " + kwArgs.value : ' '; - this.layer.innerHTML = text; - } -}; \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/TextCombo.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/TextCombo.js deleted file mode 100644 index 2617de6cf..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/TextCombo.js +++ /dev/null @@ -1,377 +0,0 @@ - -/* -================================================================================ -TextCombo - -Internal class. Editable combo box that renders correctly in a Parameter UI -================================================================================ -*/ - -/** - * Constructor. TextCombo extends TextComboWidget from the dhtmllib. - */ -bobj.crv.params.newTextCombo = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - var PARAMS = bobj.crv.params; - kwArgs = UPDATE({ - id: bobj.uniqueId(), - width: '100%', - maxChar: null, - tooltip: null, - disabled: false, - editable: false, - changeCB: null, - enterCB: null, - keyUpCB: null, - isTextItalic: false - }, kwArgs); - - var o = newTextComboWidget( - kwArgs.id, - kwArgs.maxChar, - kwArgs.tooltip, - null, // width - kwArgs.changeCB, - null, // check CB - null, // beforeShowCB - null);// formName - - o.widgetType = 'TextCombo'; - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - o.width = kwArgs.width; - - // Update instance with member functions - o.init_TextCombo = o.init; - UPDATE(o, PARAMS.TextCombo); - - o._createTextField(); // Override parent's text property - o._createArrow(); - o.arrow.dy += 2; // Center the arrow - o.arrow.disDy += 2; - - return o; -}; - -bobj.crv.params.TextCombo = { - setTextItalic : function(isTextItalic) { - if (this.text) { - this.text.setTextItalic (isTextItalic); - } - }, - - setForeColor : function(color) { - if (this.text) - this.text.setForeColor (color); - }, - - setTooltip : function(tooltip) { - if (this.text) { - this.text.setTooltip (tooltip); - } - }, - - setTabDisabled : function(dis) { - if (this.text) - this.text.setTabDisabled (dis); - - if (this.arrow) - bobj.disableTabbingKey (this.arrow.layer, dis); - }, - - setMenu : function(menu) { - this.menu = menu; - }, - - init : function() { - this.init_TextCombo (); - this.arrowContainer = getLayer (this.id + '_arrowCtn'); - - if (this.arrow) { - this.arrow.layer.onfocus = IconWidget_realOverCB; - this.arrow.layer.onblur = IconWidget_realOutCB; - } - - this.text.setValue (this.cleanValue); - }, - - toggleMenu : function() { - var menu = this.menu; - menu.parIcon = this; - var toShow = !menu.isShown(); - menu.show (toShow); - if (toShow) - menu.valueSelect (this.text.getValue () + ''); - }, - - _createArrow : function() { - var tooltip = _openMenu.replace("{0}", this.tooltip? this.tooltip: ''); - this.arrow = newIconWidget(this.id + "arrow_", - bobj.skinUri("menus.gif"), - bobj.bindFunctionToObject(this.toggleMenu,this), - null, - tooltip, - 7, /* w */ - 12, /* h */ - 0, /* dx */ - 83, /* dy */ - 0, /* disDx */ - 99); /* disDy */ - - this.arrow.setClasses("iconnocheck", "combobtnhover", "combobtnhover", "combobtnhover"); - this.arrow.par = this; - }, - - _createTextField : function() { - this.text = bobj.crv.params.newTextField ( { - id : this.id + '_text', - cleanValue : this.cleanValue, - width : '100%', - maxChar : null, - tooltip : this.tooltip, - disabled : false, - editable : this.editable, - password : false, - focusCB : this.focusCB, - blurCB : this.blurCB, - keyUpCB : bobj.bindFunctionToObject (this._onKeyUp, this), - enterCB : this.enterCB, - foreColor : this.foreColor, - isTextItalic : this.isTextItalic - }); - }, - - getHTML : function() { - var h = bobj.html; - - var arrowClassName = 'iactTextComboArrow'; - var arrowStyle = {}; - arrowStyle.right = "0px"; - - if (MochiKit.Base.isIE ()) { - arrowStyle.height = "18px"; - - } else { - arrowStyle.height = "16px"; - } - - var html = h.DIV ( { - id : this.id, - style : { - width : "100%", - position : "relative" - } - }, h.DIV ( { - style : { - position : "relative" - }, - 'class' : 'iactTextComboTextField' - }, this.text.getHTML ()), h.DIV ( { - 'class' : arrowClassName, - id : this.id + '_arrowCtn', - style : arrowStyle - }, this.arrow.getHTML ())); - - return html; - }, - - /** - * Resets TextCombo. sets original value and hides arrow icon - */ - reset : function(value) { - this.text.reset (value); - }, - - /** - * Set the content of the text box and update the menu selection - * - * @param text [String] - */ - setValue : function(text) { - this.text.setValue(text); - }, - - setCleanValue : function(text) { - this.text.setCleanValue (text); - }, - - /** - * Private. Overrides parent. - */ - selectItem : function(item) { - if (item) { - this.val = item.value; - this.text.setValue (item.value, true); /* keep the previous clean value */ - this.menu.select (item.index); - } - }, - - /** - * Get the content on the text box - * - * @return [String] - */ - getValue : function() { - return this.text.getValue (); - }, - - _onKeyUp : function(e) { - var text = this.text.getValue (); - - if (this.keyUpCB) - this.keyUpCB (e); - } -}; - - -/** - * ScrollMenuWidget - */ - -bobj.crv.params.newScrollMenuWidget = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id : bobj.uniqueId(), - originalValues: [], - hasProperWidth: false, - hasValueList: false, - maxVisibleItems: 10, - openAdvDialogCB: null, - maxNumParameterDefaultValues: null - },kwArgs); - - var visibleLines = (kwArgs.originalValues.length >= kwArgs.maxVisibleItems) ? kwArgs.maxVisibleItems : kwArgs.originalValues.length; - if (visibleLines === 1) { - visibleLines++; - } - - var o = newScrollMenuWidget( - "menu_"+ kwArgs.id, //id - bobj.crv.params.ScrollMenuWidget.onChange, //changeCB - false, //multi - null, - visibleLines, //lines - null, //tooltip - null,//dblClickCB - null, //keyUpCB - false, //showLabel - '', //label - '',//convBlanks - null, //beforeShowCB - null); //menuClickCB - - o.oldShow = o.show; - MochiKit.Base.update(o,kwArgs, bobj.crv.params.ScrollMenuWidget); - - return o; -}; - -bobj.crv.params.ScrollMenuWidget = { - onChange : function() { - var o = this.parIcon; - var item = this.getSelection (); - - if (item) { - if (this.maxNumParameterDefaultValues && item.index == this.maxNumParameterDefaultValues) { - if (this.openAdvDialogCB) { - this.openAdvDialogCB (); - this.clearSelection (); - } - } else { - o.val = item.value; - o.text.setValue (item.value); - } - } else { - o.val = null; - o.text.setValue (""); - } - - if (o.changeCB) { - o.changeCB (); - } - }, - - getPosition : function() { - if (this.parIcon === null) { - return; - } - - var layer = this.parIcon.layer; - var getDimensions = MochiKit.Style.getElementDimensions; - var position = getPosScrolled (layer); - var xPos = position.x + 2; - var yPos = position.y + getDimensions (layer).h + 3; - if (MochiKit.Base.isIE ()) { - xPos -= 1; - if (bobj.isQuirksMode ()) { - yPos -= 2; - } - } - - return { - x : xPos, - y : yPos - }; - - }, - - setProperWidth : function() { - if (this.hasProperWidth === false) { - this.css.display = "block"; - this.orginalWidth = this.layer.offsetWidth; - this.css.display = "none"; - this.hasProperWidth = true; - } - }, - - setValueList : function() { - if (this.hasValueList === false) { - this.hasValueList = true; - var origValues = this.originalValues; - for ( var i = 0, len = origValues.length; i < len; i++) { - this.add (origValues[i], origValues[i], false); - } - } - }, - - setFocus : function(focus) { - if (focus) { - var focusCB = bobj.bindFunctionToObject (this.list.focus, this.list); - setTimeout (focusCB, 300); - } else { - if (this.parIcon.selected === true) { - this.parIcon.arrow.focus (); - } - } - }, - - show : function(show) { - if (this.layer === null) - this.justInTimeInit (); - - if (this.hasValueList === false) - this.setValueList (); - - if (this.parIcon === null) - return; - - if (this.hasProperWidth === false) - this.setProperWidth (); - - if (this.parIcon && this.parIcon.layer) { - var layer = this.parIcon.layer; - if (layer.clientWidth > this.orginalWidth) { - this.css.width = layer.clientWidth + "px"; - this.list.css.width = layer.clientWidth + "px"; - } else { - this.css.width = this.orginalWidth + "px"; - this.list.css.width = this.orginalWidth + "px"; - } - } - - var pos = this.getPosition (); - this.oldShow (show, pos.x, pos.y); - - this.setFocus (show); - } -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/TextField.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/TextField.js deleted file mode 100644 index bfe95499c..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/TextField.js +++ /dev/null @@ -1,151 +0,0 @@ -/* - * ================================================================================ - * TextField - * - * Internal class. Text box that renders correctly in a Parameter UI - * ================================================================================ - */ - -/** - * Constructor. TextField extends TextFieldWidget from the dhtmllib. - */ -bobj.crv.params.newTextField = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - cleanValue: '', - width: '100%', - maxChar: null, - tooltip: null, - disabled: false, - editable: true, - password: false, - focusCB: null, - blurCB: null, - changeCB: null, - keyUpCB: null, - enterCB: null, - foreColor : 'black', - isTextItalic : false, - canOpenAdvDialog : false - }, kwArgs); - - var o = newTextFieldWidget( - kwArgs.id, - kwArgs.changeCB, - kwArgs.maxChar, - kwArgs.keyUpCB, - kwArgs.enterCB, - true, //nomargin - kwArgs.tooltip, - null, //width - kwArgs.focusCB, - kwArgs.blurCB); - - o.widgetType = 'TextField'; - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - o.disabled = kwArgs.disabled; - o.width = kwArgs.width; - - // Update instance with member functions - MochiKit.Base.update(o, bobj.crv.params.TextField); - - if (kwArgs.cleanValue) { - o.setValue(kwArgs.cleanValue); - } - - return o; -}; - -bobj.crv.params.TextField = { - setForeColor : function(color) { - this.foreColor = color; - if (this.css) - this.css.color = color; - }, - - setTextItalic : function(isTextItalic) { - this.isTextItalic = isTextItalic; - if (this.css) - this.css.fontStyle = isTextItalic ? 'italic' : ''; - }, - - setTabDisabled : function(dis) { - bobj.disableTabbingKey (this.layer, dis); - }, - - eraseHelpTxt: MochiKit.Base.noop, - - getHTML : function() { - var style = { - width : bobj.unitValue (this.width) - }; - - var isIE = MochiKit.Base.isIE (); - var className = 'iactTextField'; - - var attributes = { - type : this.password ? 'password' : 'text', - name : this.id, - id : this.id, - maxLength : this.maxChar, - style : style, - 'class' : className, - oncontextmenu : "event.cancelBubble=true;return true", - onfocus : "TextFieldWidget_focus(this)", - onblur : "TextFieldWidget_blur(this)", - onchange : "TextFieldWidget_changeCB(event, this)", - onkeydown : "return TextFieldWidget_keyDownCB(event, this);", - onkeyup : "return TextFieldWidget_keyUpCB(event, this);", - onkeypress : "return TextFieldWidget_keyPressCB(event, this);", - ondragstart : "event.cancelBubble=true; return true;", - onselectstart : "event.cancelBubble=true; return true;" - }; - - if (this.disabled) { - attributes.disabled = "disabled"; - } - - if (this.isTextItalic) { - style["font-style"] = "italic"; - } - - style.color = this.foreColor; - - if (!this.editable) { - attributes.readonly = "readonly"; - - if (this.canOpenAdvDialog) { - style.cursor = "pointer"; - } - else { - style.cursor = "default"; - } - } - - if (this.tooltip) { - attributes.title = this.tooltip.replace(/"/g, """); - } - - return bobj.html.INPUT (attributes); - }, - - /** - * Resets textField object. Sets clean value, current value - */ - reset : function(value) { - this.value = value; - this.cleanValue = value; - this.setValue (value); - }, - - setValue : function(value) { - TextFieldWidget_setValue.call (this, value); - }, - - setCleanValue : function(value) { - this.cleanValue = value; - } -}; - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ToolPanel.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ToolPanel.js deleted file mode 100644 index 097cc6f26..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ToolPanel.js +++ /dev/null @@ -1,295 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -bobj.crv.ToolPanelType = { //values must match server's expectations - None: 'None', - GroupTree : 'GroupTree', - ParameterPanel: 'ParameterPanel' -}; - -bobj.crv.ToolPanelTypeDetails = { - None : { - title : null, - img : null, - alt : null - }, - GroupTree : { - title : L_bobj_crv_GroupTree, - img : { uri: bobj.crv.allInOne.uri, dx: 0, dy: bobj.crv.allInOne.groupTreeToggleDy }, - alt : L_bobj_crv_GroupTree - }, - ParameterPanel : { - title : L_bobj_crv_ParamPanel, - img : { uri: bobj.crv.allInOne.uri, dx: 0, dy: bobj.crv.allInOne.paramPanelToggleDy }, - alt : L_bobj_crv_ParamPanel - } -}; - -/** - * ToolPanel constructor - * - * @param kwArgs.id [String] DOM node id - * @param kwArgs.width [String] Width - * @param kwArgs.height [String] Height - */ -bobj.crv.newToolPanel = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId() + "_toolPanel", - width: '300px', - height: '100%', - initialViewType: bobj.crv.ToolPanelType.None - }, kwArgs); - - - var o = newWidget(kwArgs.id); - - // Update instance with constructor arguments - bobj.fillIn(o, kwArgs); - - o.widgetType = 'ToolPanel'; - - o._children = []; - o._selectedChild = null; - o._groupTree = null; - o._paramPanel = null; - - // Update instance with member functions - o.initOld = o.init; - o.resizeOld = o.resize; - MochiKit.Base.update(o, bobj.crv.ToolPanel); - - o.needLeftBorder = false; - - return o; -}; - -bobj.crv.ToolPanel = { - hasGroupTree : function() { - return this._groupTree != null; - }, - - /** - * Adds a child widget as a view. If the child has an isSelected attribute - * that evaluates as true, it will be the selected (active) view. - * - * This function must be called before getHTML() is called. - * - * @param widget [Widget] Child view widget - */ - addChild : function(widget) { - if (!widget) { - return; - } - - var connect = MochiKit.Signal.connect; - var partial = MochiKit.Base.partial; - var signal = MochiKit.Signal.signal; - var Type = bobj.crv.ToolPanelType; - - if (widget.widgetType == 'GroupTree') { - this._groupTree = widget; - - MochiKit.Iter.forEach ( [ 'grpDrilldown', 'grpNodeRetrieveChildren', 'grpNodeCollapse', 'grpNodeExpand' ], function(sigName) { - connect (this._groupTree, sigName, partial (signal, this, sigName)); - }, this); - - if (this.initialViewType == Type.GroupTree) { - this._selectedChild = widget; - } - } else if (widget.widgetType == 'ParameterPanel') { - this._paramPanel = widget; - connect (this._paramPanel, 'resetParamPanel', partial (signal, this, 'resetParamPanel')); - if (this.initialViewType == Type.ParameterPanel) { - this._selectedChild = widget; - } - } - - this._children.push (widget); - }, - - hasParameterPanel : function () { - return this._paramPanel != null; - }, - - getParameterPanel : function() { - return this._paramPanel; - }, - - /** - * This method must be called after viewer has been initialized. Adds new child to toolpanel. - */ - delayedAddChild : function(widget) { - this.addChild (widget); - - var display = widget === this._selectedChild ? '' : 'none'; - append2 (this.layer, bobj.html.DIV ( { - style : { - display : display - } - }, widget.getHTML ())); - widget.init (); - }, - - /* - * The caller is responsible for calling doLayout after making a call to setView. calling doLayout is very expensive and want to avoid it if - * possible. - */ - setView : function(panelType) { - var prevSelectedChild = this._selectedChild; - this.updateSelectedChild (panelType); - var nextSelectedChild = this._selectedChild; - - if(prevSelectedChild != nextSelectedChild) { - if (prevSelectedChild) { - var container = bobj.getContainer (prevSelectedChild); - if (container) { - container.style.display = 'none'; - } - } - - if(nextSelectedChild) { - var container = bobj.getContainer (nextSelectedChild); - if (container) { - bobj.displayElementWithAnimation(container); - } - } - } - }, - - updateSelectedChild : function (panelType) { - var Type = bobj.crv.ToolPanelType; - switch(panelType) { - case Type.GroupTree: - this._selectedChild = this._groupTree; - break; - case Type.ParameterPanel: - this._selectedChild = this._paramPanel; - break; - default: - this._selectedChild = null; - } - }, - - getHTML : function() { - var h = bobj.html; - - var content = ''; - var children = this._children; - for ( var i = 0, len = children.length; i < len; ++i) { - var child = children[i]; - var display = child === this._selectedChild ? '' : 'none'; - content += h.DIV ( { - style : { - display : display - } - }, child.getHTML ()); - } - - var isDisplayed = (bobj.crv.ToolPanelType.None !== this.initialViewType); - var toolPanelClass = 'toolPanel'; - if (this.needLeftBorder) - toolPanelClass += ' leftBorder'; - - - var layerAtt = { - id : this.id, - 'class' : toolPanelClass, - style : { - position : 'absolute', - margin : '0', - width : this.width, - height : this.height, - overflow : 'hidden', - display : isDisplayed ? '' : 'none' - } - }; - - var html = h.DIV (layerAtt, content); - - return html; - }, - - init : function() { - this.initOld (); - if (this._groupTree) - this._groupTree.init (); - - if (this._paramPanel) - this._paramPanel.init (); - }, - - update : function(update) { - if (update && update.cons == "bobj.crv.newToolPanel") { - for ( var childVar in update.children) { - var child = update.children[childVar]; - if (child) { - switch (child.cons) { - case "bobj.crv.newGroupTree": - /* if there is a group tree, update it */ - if (this._groupTree) { - this._groupTree.update (child); - } - /* else create and add one */ - else { - this.delayedAddChild (bobj.crv.createWidget (child)); - } - break; - case "bobj.crv.params.newParameterPanel": - if (this._paramPanel) { - this._paramPanel.update (child); - } - else { - this.delayedAddChild (bobj.crv.createWidget (child)); - } - break; - } - } - } - - this.initialViewType = update.args.initialViewType; - this.setView (this.initialViewType); - this.css.width = update.args.width; - } - }, - - getBestFitHeight : function () { - var height = 0; - if(this._selectedChild != null) - height = this._selectedChild.getBestFitHeight(); - - return height; - }, - - hasPercentWidth : function () { - return (this.width != null) && (this.width.length > 0) && (this.width.charAt(this.width.length - 1) == '%'); - }, - - getPercentWidth : function () { - return parseInt(this.width) / 100; - }, - - _doLayout : function() { - var innerWidth = this.layer.clientWidth; - var contentHeight = this.layer.clientHeight; - - if (this._selectedChild) { - this._selectedChild.setDisplay (true); - this._selectedChild.resize (innerWidth, contentHeight); - } - }, - - resize : function(w, h) { - bobj.setOuterSize (this.layer, w, h); - this._doLayout (); - - var width = _ie && _isQuirksMode ? this.layer.offsetWidth : this.layer.clientWidth; - var height = _ie && _isQuirksMode ? this.layer.offsetWidth : this.layer.clientWidth; - MochiKit.Signal.signal (this, 'resizeToolPanel', width, height); - - // do not have a percent width if we have resized the tool panel - this.width = width; - }, - - addLeftBorder : function() { - this.needLeftBorder = true; - } -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Toolbar.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Toolbar.js deleted file mode 100644 index bc6370fd5..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Toolbar.js +++ /dev/null @@ -1,1213 +0,0 @@ -/* - * set default, depressed and hover behaviours of a widget using classes - */ -bobj.crv.setAllClasses = function (widget, prefix) -{ - if (widget && widget.setClasses) - { - if (prefix) - widget.setClasses(prefix + '_default', prefix + '_depressed', prefix + '_hover', prefix + '_depressed'); - else - widget.setClasses(null, null, null, null); - } -}; - -/** - * Toolbar Constructor - */ -bobj.crv.newToolbar = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - kwArgs = UPDATE({ - id: bobj.uniqueId(), - visualStyle : { - className : null, - backgroundColor : null, - borderWidth : null, - borderStyle : null, - borderColor : null, - fontFamily : null, - fontWeight : null, - textDecoration : null, - color : null, - width : null, - height : null, - fontStyle : null, - fontSize : null - } - - }, kwArgs); - - var o = newPaletteContainerWidget(kwArgs.id); - - o.margin = 0; - bobj.fillIn(o, kwArgs); - o._rightZoneWgts = []; - o.widgetType = 'Toolbar'; - - // Attach member functions (since we can't use prototypes) - o.initOld = o.init; - UPDATE(o, bobj.crv.Toolbar); - - o.palette = newPaletteWidget(o.id + "_palette"); - o.add(o.palette); - return o; -}; - -bobj.crv.Toolbar = { - - /** - * Adds a widget to the toolbar and attaches callbacks to known types. - * - * @param widget - * [Widget] The control to be displayed in the toolbar. - */ - addChild : function(widget) { - if(!widget) - return; - - var SIGNAL = MochiKit.Signal.signal; - var PARTIAL = MochiKit.Base.partial; - var BIND = MochiKit.Base.bind; - - /* Connect callbacks that broadcast events as signals */ - switch (widget.widgetType) { - case 'ToolbarMenu': - this.menu = widget; - if (widget.exportMenuItem) - widget.exportMenuItem.cb = PARTIAL (SIGNAL, this, 'export'); - if (widget.printMenuItem) - widget.printMenuItem.cb = PARTIAL (SIGNAL, this, 'print'); - break; - case 'ToolbarButtonGroup': - this.group = widget; - if (widget.printButton) - widget.printButton.clickCB = PARTIAL (SIGNAL, this, 'print', widget.printButton.closeCB); - if (widget.exportButton) - widget.exportButton.clickCB = PARTIAL (SIGNAL, this, 'export', widget.exportButton.closeCB); - if (widget.refreshButton) - widget.refreshButton.clickCB = PARTIAL (SIGNAL, this, 'refresh'); - if (widget.drillUpButton) - widget.drillUpButton.clickCB = PARTIAL (SIGNAL, this, 'drillUp'); - break; - case 'PrevPageButton': - this.prevPageButton = widget; - widget.clickCB = PARTIAL (SIGNAL, this, 'prevPage'); - break; - case 'NextPageButton': - this.nextPageButton = widget; - widget.clickCB = PARTIAL (SIGNAL, this, 'nextPage'); - break; - case 'ZoomControl': - this.zoomControl = widget; - widget.zoomCB = PARTIAL (SIGNAL, this, 'zoom'); - break; - case 'SelectPageControl': - this.selectPageControl = widget; - widget.selectPageCB = PARTIAL (SIGNAL, this, 'selectPage'); - if (widget.firstPage && widget.lastPage) { - widget.firstPage.cb = PARTIAL (SIGNAL, this, 'firstPage'); - widget.lastPage.cb = PARTIAL (SIGNAL, this, 'lastPage'); - } - break; - case 'SearchTextControl': - this.searchTextControl = widget; - widget.searchTextCB = PARTIAL (SIGNAL, this, 'search'); - break; - default: - break; - } - - /* Delay adding right-aligned widgets due to the semantics of the palette*/ - if (widget.layoutAlign == 'right') { - this._rightZoneWgts.push (widget); - } else { - this.palette.add (widget); - } - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getSearchTextControl : function () { - return this.searchTextControl; - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getZoomControl : function () { - return this.zoomControl; - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getSelectPageControl : function () { - return this.selectPageControl; - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getButtonGroup : function () { - return this.group; - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getNextPageButton : function () { - return this.nextPageButton; - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getPrevPageButton : function () { - return this.prevPageButton; - }, - - init : function() { - this.initOld (); - bobj.setVisualStyle (this.layer, this.visualStyle); - this.palette.init (); - this._updateNavButtons (); - }, - - write : function() { - this._addRightZone (); - this.begin (); - this.palette.write (); - this.end (); - document.write (bobj.crv.getInitHTML (this.widx)); - }, - - /** - * Overrides parent. Opens the toolbar's tags. - */ - beginHTML : function() { - return bobj.html.openTag ('div', { - id : this.id, - 'class' : 'crtoolbar', - style : { - height : '28px', - overflow : 'hidden', - margin : this.margin + 'px' - } - }); - }, - - getHTML : function() { - this._addRightZone (); - return (this.beginHTML () + this.palette.getHTML () + this.endHTML ()); - }, - - getWidth : function() { - var itemLayer; - var width = 0; - var items = this.palette.items; - for ( var i = 0, len = items.length; i < len; i++) { - itemLayer = items[i].layer; - if (itemLayer.offsetWidth) { - width += itemLayer.offsetWidth; - } - if (itemLayer.offsetLeft) { - width += (itemLayer.offsetLeft * 2); - } - } - return width; - }, - - /** - * Private. Adds right-aligned widgets to the right zone of the palette - */ - _addRightZone : function() { - this.palette.beginRightZone (); - - var w = null; - while (w = this._rightZoneWgts.pop ()) { - this.palette.add (w); - } - - delete this._rightZoneWgts; - }, - - /** - * Private. Updates the enabled state of navigation buttons based on the current page number and the number of pages. - */ - _updateNavButtons : function() { - if (this.selectPageControl) { - var curPg = this.selectPageControl.getCurrentPage (); - if (this.selectPageControl.firstPage) { - this.selectPageControl.firstPage.setDisabled (curPg == 1); - } - if (this.prevPageButton) { - this.prevPageButton.setDisabled (curPg == 1); - } - - var numPgsStr = this.selectPageControl.getNumPages (); - var lastPgKnown = numPgsStr.indexOf ('+') == -1; - var numPgs = parseInt (numPgsStr, 10); - var fwdDisabled = lastPgKnown && numPgs == curPg; - - if (this.nextPageButton) { - this.nextPageButton.setDisabled (fwdDisabled); - } - if (this.selectPageControl.lastPage) { - this.selectPageControl.lastPage.setDisabled (fwdDisabled); - } - } - }, - - setPageNumber : function(curPage, numPages) { - if (this.selectPageControl) { - if (curPage) - this.selectPageControl.setCurrentPage (curPage); - - if (numPages) - this.selectPageControl.setNumPages (numPages); - - this._updateNavButtons (); - } - }, - - update : function(update) { - if (update) { - for ( var childNum in update.children) { - var child = update.children[childNum]; - if (child) { - switch (child.cons) { - case "bobj.crv.newSelectPageControl": - if (this.selectPageControl) { - this.selectPageControl.update (child); - this._updateNavButtons (); - } - break; - case "bobj.crv.newSearchTextControl": - if (this.searchTextControl) { - this.searchTextControl.update (child); - } - break; - case "bobj.crv.newZoomControl": - if(this.zoomControl) { - this.zoomControl.update(child); - } - break; - case "bobj.crv.newToolbarButtonGroup": - if(this.group) { - this.group.update(child); - } - break; - } - } - } - } - } -}; - -/** - * ToolbarMenu Constructor - */ - -bobj.crv.newToolbarMenu = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - icon: null, - text: L_bobj_crv_File, - tooltip: L_bobj_crv_FileMenu - }, kwArgs); - - var o = newSingleIconMenuWidget(kwArgs.id, kwArgs.icon, null, kwArgs.text, kwArgs.tooltip); - o.widgetType = 'ToolbarMenu'; - - o._tbBtnOldInit = o.init; - - bobj.crv.setAllClasses(o.icon, null); - bobj.crv.setAllClasses(o.arrow, null); - bobj.crv.setAllClasses(o, 'filemenu'); - o.arrow.resize(13, (_ie?20:18)); - - MochiKit.Base.update(o, bobj.crv.ToolbarMenu); - return o; -}; - -bobj.crv.ToolbarMenu = { - init : function() { - this._tbBtnOldInit (); - bobj.disableTabbingKey (this.icon.layer, true); - - /* If menu does not have any items make it look like a 'label' */ - if (this.getMenu ().items.length == 0) { - this.arrow.setDisplay (false); - bobj.crv.setAllClasses (this.icon, null); - this.icon.clickCB = null; - } - }, - - /** - * Add toolbar menu items to toolbar - */ - addChild : function(widget) { - var menu = this.getMenu (); - switch (widget.widgetType) { - case 'ExportMenuItem': - var icon = bobj.crv.allInOne.uri; - var dy = bobj.crv.allInOne.toolbarExportDy; - var disDy = dy; - - this.exportMenuItem = menu.add (widget.id, L_bobj_crv_submitBtnLbl, null, icon, 3, dy, widget.disabled, 25, disDy, null); - break; - case 'PrintMenuItem': - var icon = bobj.crv.allInOne.uri; - var dy = bobj.crv.allInOne.toolbarPrintDy; - var disDy = dy; - - this.printMenuItem = menu.add (widget.id, L_bobj_crv_ActiveXPrintDialogTitle, null, icon, 3, dy, widget.disabled, 25, disDy, null); - break; - default: - bobj.crv.ToolbarMenu.commonAddChild (menu, widget); - break; - } - }, - - commonAddChild : function(menu, widget) { - switch (widget.widgetType) { - case 'Separator': - menu.addSeparator (); - break; - case 'ScriptMenuItem': - var cb = function() { - bobj.crv.ToolbarMenuItem.scriptItemCB (widget.callback, widget.args); - }; - var menuitem = menu.add (widget.id, widget.text, cb, widget.icon, widget.dx, widget.dy, widget.disabled, widget.disDx, widget.disDy, widget.alt); - if (widget.callback == null) - menuitem.setDisabled (true); - break; - case 'ToolbarSubMenu': - var menuitem = menu.add (widget.id, widget.text, null, widget.icon, widget.dx, widget.dy, widget.disabled, widget.disDx, widget.disDy, widget.alt); - menuitem.attachSubMenu (widget.submenu); - break; - } - } -}; - - -/** - * ToolbarSubMenu Constructor - */ -bobj.crv.newToolbarSubMenu = function(kwArgs) { - var o = MochiKit.Base.update({ - id: bobj.uniqueId(), - text: null, - icon: null, - dx: 0, - dy: 0, - disabled: false, - disDx: 0, - disDy: 0, - alt : null - }, kwArgs); - - o.submenu = newMenuWidget(o.id); - o.widgetType = 'ToolbarSubMenu'; - - MochiKit.Base.update(o, bobj.crv.ToolbarSubMenu); - return o; -}; - -bobj.crv.ToolbarSubMenu = { - /** - * Add toolbar menu items to toolbarsubmenu - */ - addChild : function(widget) { - bobj.crv.ToolbarMenu.commonAddChild (this.submenu, widget); - } -}; - - -/** - * ToolbarMenuItem constructor - */ -bobj.crv.newToolbarMenuItem = function(kwArgs) { - var o = MochiKit.Base.update({ - id: bobj.uniqueId(), - widgetType:null, - text: null, - icon: null, - dx: 0, - dy: 0, - disabled: false, - disDx: 0, - disDy: 0, - alt : null - }, kwArgs); - - MochiKit.Base.update(o, bobj.crv.ToolbarMenuItem); - return o; -}; - -bobj.crv.ToolbarMenuItem = { - scriptItemCB : function(callback, args) { - if (callback) { - var f = eval (callback); - if (typeof f == 'function') { - if (args) - f.call (null, args); - else - f.call (null); - } - } - } -}; - -/** - * Constructor. Base class for toolbar buttons. - */ -bobj.crv.newToolbarButton = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - icon: null, - tooltip: null, - text: null, - isDisabled: false, - isChecked: false, - clickCB: null, - width: 16, - height: 16, - dx: 3, - dy: 3, - disDx: 25, - disDy: 3, - isTabEnabled: true - }, kwArgs); - - var o = newIconWidget( - kwArgs.id, - kwArgs.icon, - kwArgs.clickCB, - kwArgs.text, - kwArgs.tooltip, - kwArgs.width, - kwArgs.height, - kwArgs.dx, - kwArgs.dy, - kwArgs.disDx, - kwArgs.disDy, - kwArgs.isTabEnabled); - - if (kwArgs.text) - bobj.crv.setAllClasses(o, null); - else - bobj.crv.setAllClasses(o, 'toolbar_button'); - - o._tbBtnOldInit = o.init; - o._tbBtnKwArgs = kwArgs; - MochiKit.Base.update(o, bobj.crv.ToolbarButton); - - return o; -}; - -bobj.crv.ToolbarButton = { - init : function() { - this._tbBtnOldInit (); - var kwArgs = this._tbBtnKwArgs; - - this.setDisabled (kwArgs.isDisabled); - }, - - update : function (update) { - if(update && bobj.isBoolean(update.args.isDisabled)) { - this.setDisabled (update.args.isDisabled); - } - } -}; - - -/** - * PrevPageButton constructor - */ -bobj.crv.newPrevPageButton = function(kwArgs) { - var o = bobj.crv.newToolbarButton(MochiKit.Base.update({ - icon: bobj.crv.allInOne.uri, - tooltip: L_bobj_crv_PrevPage, - dx:3, dy:bobj.crv.allInOne.toolbarPrevPageDy + 3, disDx:25, disDy:bobj.crv.allInOne.toolbarPrevPageDy + 3, width:16, height:16 - }, kwArgs)); - - o.widgetType = 'PrevPageButton'; - return o; -}; - -/** - * NextPageButton constructor - */ -bobj.crv.newNextPageButton = function(kwArgs) { - var o = bobj.crv.newToolbarButton(MochiKit.Base.update({ - icon: bobj.crv.allInOne.uri, - tooltip: L_bobj_crv_NextPage, - dx:3, dy:bobj.crv.allInOne.toolbarNextPageDy + 3, disDx:25, disDy:bobj.crv.allInOne.toolbarNextPageDy + 3, width:16, height:16 - }, kwArgs)); - - o.widgetType = 'NextPageButton'; - return o; -}; - -/** - * DrillUp constructor - */ -bobj.crv.newDrillUpButton = function(kwArgs) { - var o = bobj.crv.newToolbarButton(MochiKit.Base.update({ - icon: bobj.crv.allInOne.uri, - tooltip: L_bobj_crv_DrillUp, - dx:0, dy:bobj.crv.allInOne.toolbarUpDy, disDx:22, disDy:bobj.crv.allInOne.toolbarUpDy - }, kwArgs)); - - o.widgetType = 'DrillUpButton'; - return o; -}; - -/** - * RefreshButton constructor - */ -bobj.crv.newRefreshButton = function(kwArgs) { - var o = bobj.crv.newToolbarButton(MochiKit.Base.update({ - icon: bobj.crv.allInOne.uri, - tooltip: L_bobj_crv_Refresh, - dy: bobj.crv.allInOne.toolbarRefreshDy, - disDy: bobj.crv.allInOne.toolbarRefreshDy - }, kwArgs)); - - o.widgetType = 'RefreshButton'; - return o; -}; - -/** - * ExportButton constructor - */ -bobj.crv.newExportButton = function(kwArgs) { - var o = bobj.crv.newToolbarButton(MochiKit.Base.update({ - icon: bobj.crv.allInOne.uri, - tooltip: L_bobj_crv_Export, - dy: bobj.crv.allInOne.toolbarExportDy, - disDy: bobj.crv.allInOne.toolbarExportDy - }, kwArgs)); - - o.widgetType = 'ExportButton'; - o.closeCB = MochiKit.Base.bind(function() { if (this.focus) this.focus(); }, o); - return o; -}; - -/** - * PrintButton constructor - */ -bobj.crv.newPrintButton = function(kwArgs) { - var o = bobj.crv.newToolbarButton(MochiKit.Base.update({ - icon: bobj.crv.allInOne.uri, - tooltip: L_bobj_crv_Print, - dy: bobj.crv.allInOne.toolbarPrintDy, - disDy: bobj.crv.allInOne.toolbarPrintDy - }, kwArgs)); - - o.widgetType = 'PrintButton'; - o.closeCB = MochiKit.Base.bind(function() { if (this.focus) this.focus(); }, o); - return o; -}; - -/** - * LogoButton constructor - */ -bobj.crv.newLogoIcon = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - icon : bobj.crvUri('images/logo.gif') - }, kwArgs); - var o = newIconWidget( - kwArgs.id, - kwArgs.icon, - function() {window.open('http://www.businessobjects.com/ipl/default.asp?destination=ViewerLogoLink&product=crystalreports&version=14%2E0')}, - null, - "SAP Crystal Reports", - 120, - 20, - 0, - 0, - 0, - 0, - true - ); - - bobj.crv.setAllClasses(o, null); - - o.layoutAlign = 'right'; - o.widgetType = 'LogoIcon'; - return o; -}; - -/** - * Catalyst constructor - */ -bobj.crv.newCatalystIcon = function(kwArgs) { - var o = newIconWidget( - kwArgs.id, - bobj.crvUri('images/catalyst.gif'), - function() {window.open('http://www.businessobjects.com/ipl/default.asp?destination=DHTMLViewerLandingPage&product=crystalreports&version=14%2E0')}, - null, - L_bobj_crv_CatalystTip, - 22, - 22, - 0, - 0, - 0, - 0, - true - ); - - bobj.crv.setAllClasses(o, null); - - o.layoutAlign = 'right'; - o.widgetType = 'CatalystIcon'; - return o; -}; - -/** - * ToolbarSeparator constructor - */ -bobj.crv.newToolbarSeparator = function() { - var o = newPaletteVerticalSepWidget(bobj.uniqueId()); - o.getHTML = function() { - return bobj.html.DIV({id: this.id, style: {width: '6px'}}, - bobj.html.IMG({src: _skin+'../transp.gif', 'class':'toolbar_separator'})); - }; - return o; -}; - -/** - * ZoomControl Constructor - */ -bobj.crv.newZoomControl = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - kwArgs = UPDATE({ - initialZoom: '100%', - id: bobj.uniqueId() - }, kwArgs); - if (bobj.isNumber(kwArgs.initialZoom)) { - kwArgs.initialZoom = kwArgs.initialZoom + '%'; - } - - var o = newTextComboWidget( - kwArgs.id, - 5, // max chars - L_bobj_crv_Zoom, // tooltip - 60, // width - bobj.crv.ZoomControl._zoomChangeCB, // change CB - null, // check CB - null, // beforeShow CB - null // form name - ); - - o.arrow.resize(13, (_ie?20:18)); - bobj.crv.setAllClasses(o.arrow, 'toolbar_menuarrow'); - - o.menu.setAccelEnabled(false); - - var zoomList = ['400%','300%','200%','150%','125%','100%','75%','50%','25%']; - - for (var i = 0, len = zoomList.length; i < len; ++i) { - var zoomLevel = zoomList[i]; - o.add(zoomLevel, zoomLevel, (zoomLevel == kwArgs.initialZoom)); - } - o.text.setValue(kwArgs.initialZoom); - - o.zoomCB = null; - o.widgetType = 'ZoomControl'; - - o.initOld = o.init; - o._initZoom = kwArgs.initialZoom; - - UPDATE(o, bobj.crv.ZoomControl); - - return o; -}; - -bobj.crv.ZoomControl = { - init : function() { - this.initOld (); - this.setZoom (this._initZoom); - }, - - update : function(update) { - if(update.cons == "bobj.crv.newZoomControl") { - this.setZoom(update.args.initialZoom); - } - }, - - setZoom : function(lvl) { - var zoomVal = parseInt (lvl, 10); - if (bobj.isNumber (zoomVal)) { - zoomVal += '%'; - - this.valueSelect (zoomVal); - - var si = this.selectedItem; - if (si && si.val != zoomVal) { - si.check (false); - this.selectedItem = null; - } - - this._lastValue = zoomVal; - return true; - } - return false; - }, - - _zoomChangeCB : function() { - var zoomLvl = parseInt (this.text.getValue (), 10); - - if (bobj.isNumber (zoomLvl)) { - if (zoomLvl < 10) { - zoomLvl = 10; - } else if (zoomLvl > 400) { - zoomLvl = 400; - } - } - - if (!this.setZoom (zoomLvl)) { - this.setZoom (this._lastValue); - } else if (this.zoomCB) { - this.zoomCB (zoomLvl); - } - } -}; - -/** - * SelectPageControl constructor - * - * @param kwArgs.curPage [String|Int] Current page number - * @param kwArgs.numPages [String|Int] Number of pages in report - */ -bobj.crv.newSelectPageControl = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - kwArgs = UPDATE({ - id: bobj.uniqueId(), - showMenu: true - }, kwArgs); - - // calculate the text input width on construction time to eliminate resize visual while loading - var textNWidth = bobj.crv.SelectPageControl.getTextAndWidth(kwArgs.curPage, kwArgs.numPages); - - var o = newTextComboWidget( - kwArgs.id, - 75, // max chars - L_bobj_crv_PageNav, // tooltip - textNWidth.width + 13, // calculated width of the input field + what is getting substracted from it this constructor - null, // change CB - null, // check CB - null, // beforeShow CB - null // form name - ); - - // Constructor args - o.curPage = kwArgs.curPage; - o.numPages = kwArgs.numPages; - - if (kwArgs.showMenu) { - o.addMenuItem(bobj.uniqueId(),L_bobj_crv_FirstPage,null,null,0,0,false,0,0); - o.addMenuItem(bobj.uniqueId(),L_bobj_crv_LastPage,null,null,0,0,false,0,0); - - o.firstPage = o.menu.items[0]; - o.lastPage = o.menu.items[1]; - - o.arrow.resize(13, (_ie?20:18)); - bobj.crv.setAllClasses(o.arrow, 'toolbar_menuarrow'); - o.menu.setAccelEnabled(false); - } - else { - o.arrow.setDisplay(false); - } - - o.text.oldSetValue = o.text.setValue; - o.text.setValue = function(newText, newWidth) { - o.text.oldSetValue(newText); - if (newWidth && o.text.layer) { - o.text.resize(newWidth, null); - } - }; - o.text.focusCB = function() { - o.text.setValue(o.curPage); - var l = o.text.layer; - if (l) l.select(); - }; - o.text.blurCB = function() { - var textNWidth = o.getTextAndWidth(o.curPage, o.numPages); - o.text.setValue(textNWidth.text); - }; - o.text.enterCB = function() { - if (o.selectPageCB){ - var value = o.text.getValue(); - o.selectPageCB(value); - } - }; - - // Constants - o.margin = 1; - o.space = 0; - o.fieldWidth = 30; - o.labelWidth = 13 + o.space; - - /* Attach member functions */ - o.selectPageCB = null; - UPDATE(o, bobj.crv.SelectPageControl); - - o.updateTextValue(); - o.widgetType = 'SelectPageControl'; - return o; -}; - -bobj.crv.SelectPageControl = { - getTextAndWidth : function(curPage, numPages) { - var text = L_bobj_crv_of.replace ("%1", curPage).replace ("%2", numPages); - var width = (text.length > 9) ? (text.length * 7) : 60; /* min. width is 60; 7 is a number works for font size 11 */ - return { - 'text' : text, - 'width' : width - }; - }, - - update : function(update) { - if (update && update.cons == "bobj.crv.newSelectPageControl") { - /* Don't call setCurrentPage and setNumPages as each of them calls updateTextValue - we'll end in updating twice!*/ - this.curPage = update.args.curPage; - this.numPages = update.args.numPages; - this.updateTextValue (); - } - }, - - updateTextValue : function() { - var textNWidth = this.getTextAndWidth(this.curPage, this.numPages); - this.text.setValue(textNWidth.text, textNWidth.width); - /* lets not leave the cursor inside this edit box as user could start editing the formatted text, "n of N" */ - var l = this.text.layer; - if (l) l.blur(); - }, - - /** - * @return [Int] Returns the current page number - */ - getCurrentPage : function() { - return this.curPage; - }, - - setCurrentPage : function(val) { - this.curPage = val; - this.updateTextValue(); - }, - - /** - * @return [String] Returns the number of pages label - */ - getNumPages : function() { - return this.numPages; - }, - - setNumPages : function(val) { - this.numPages = val; - this.updateTextValue(); - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getFirstPageButton : function () { - return this.firstPage; - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getLastPageButton : function () { - return this.lastPage; - } -}; - -/** - * searchTextControl constructor - * - * @param kwArgs.searchText [String] Search Text - */ -bobj.crv.newSearchTextControl = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - kwArgs = UPDATE({id: bobj.uniqueId(), - icon : bobj.crv.allInOne.uri, - dy : bobj.crv.allInOne.toolbarSearchDy, - disDy : bobj.crv.allInOne.toolbarSearchDy - }, kwArgs); - var o = newWidget(kwArgs.id); - bobj.fillIn(o, kwArgs); - /* Construct the input box */ - o.textField = newTextFieldWidget( - o.id + "_textField", - null, - null, - null, - MochiKit.Base.bind(bobj.crv.SearchTextControl._searchTextCB, o), - true, - L_bobj_crv_SearchText, - 100); - - o.empty = (o.searchText == ''); - o.textField.focusCB = function() { - if (o.empty) { - o.textField.setValue(''); - } - }; - o.textField.blurCB = function() { - if (o.textField.getValue() == '') { - o.textField.setValue(L_bobj_crv_Find); - o.empty = true; - } - else { - o.empty = false; - } - }; - - o.searchButton = newIconWidget( - o.id + "_button", - kwArgs.icon, - MochiKit.Base.bind(bobj.crv.SearchTextControl._searchTextCB, o), - null, - L_bobj_crv_SearchText, - 16,16,3,kwArgs.dy, kwArgs.disDy,3,true); - - bobj.crv.setAllClasses(o.searchButton, 'toolbar_button'); - - /* Attach member functions */ - o.initOld = o.init; - o.searchTextCB = null; - UPDATE(o, bobj.crv.SearchTextControl); - - o.widgetType = 'SearchTextControl'; - return o; -}; - -bobj.crv.SearchTextControl = { - update : function(update) { - if (update && update.cons == "bobj.crv.newSearchTextControl") { - this.empty = (update.args.searchText == ''); - var text = (this.empty) ? L_bobj_crv_Find : update.args.searchText; - this.textField.setValue (text); - } - }, - - init : function() { - this.initOld (); - this.textField.init (); - var text = (this.empty) ? L_bobj_crv_Find : this.searchText; - this.textField.setValue (text); - this.searchButton.init (); - }, - - getHTML : function() { - var h = bobj.html; - - var labelStyle = { - cursor : 'default', - 'padding-left' : this.space + 'px', - width : this.labelWidth + 'px' - }; - - return h.TABLE ( { - id : this.id, - cellspacing : 0, - cellpadding : 0, - border : 0, - style : { - margin : this.margin + 'px' - } - }, h.TBODY (null, h.TR (null, h.TD (null, this.textField.getHTML ()), h.TD (null, this.searchButton.getHTML ())))); - }, - _searchTextCB : function() { - var text = this.textField.getValue (); - if ((text !== "" || this.searchText != text) && bobj.isFunction (this.searchTextCB)) { - this.searchTextCB (text); - } - } -}; - - -bobj.crv.newToolbarButtonGroup = function(kwArgs) { - var UPDATE = MochiKit.Base.update; - kwArgs = UPDATE({ - id: bobj.uniqueId(), - visualStyle : { - className : null, - backgroundColor : null, - borderWidth : null, - borderStyle : null, - borderColor : null, - fontFamily : null, - fontWeight : null, - textDecoration : null, - color : null, - width : null, - height : null, - fontStyle : null, - fontSize : null - } - - }, kwArgs); - - var o = newPaletteContainerWidget(kwArgs.id); - - o.margin = 2; - bobj.fillIn(o, kwArgs); - o.widgetType = 'ToolbarButtonGroup'; - - // Attach member functions (since we can't use prototypes) - o.initOld = o.init; - UPDATE(o, bobj.crv.ToolbarButtonGroup); - - o.palette = newPaletteWidget(o.id + "_palette"); - o.add(o.palette); - return o; -}; - -bobj.crv.ToolbarButtonGroup = { - addChild : function(widget) { - switch (widget.widgetType) { - case 'ExportButton': - this.exportButton = widget; - break; - case 'PrintButton': - this.printButton = widget; - break; - case 'RefreshButton': - this.refreshButton = widget; - break; - case 'DrillUpButton': - this.drillUpButton = widget; - } - this.palette.add (widget); - }, - - update : function (update) { - if(update != null && update.cons == "bobj.crv.newToolbarButtonGroup") { - for (var childNum in update.children) { - var child = update.children[childNum]; - if (child) { - switch(child.cons) { - case "bobj.crv.newPrintButton": - if(this.printButton) { - this.printButton.update(child); - } - break; - case "bobj.crv.newExportButton": - if(this.exportButton) { - this.exportButton.update(child); - } - break; - case "bobj.crv.newRefreshButton": - if(this.refreshButton) { - this.refreshButton.update(child); - } - break; - case "bobj.crv.newDrillUpButton": - if(this.drillUpButton) { - this.drillUpButton.update(child); - } - break; - } - } - } - } - }, - - isAnyButtonDisplayed : function () { - return (this.printButton != null && this.printButton.isDisplayed()) || - (this.exportButton != null && this.exportButton.isDisplayed()) || - (this.refreshButton != null && this.refreshButton.isDisplayed()) || - (this.drillUpButton != null && this.drillUpButton.isDisplayed()); - }, - - autoDisplay : function () { - if(this.isAnyButtonDisplayed()) - this.setDisplay (true); - else - this.setDisplay(false); - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getExportButton : function () { - return this.exportButton; - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getRefreshButton : function () { - return this.refreshButton; - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getDrillUpButton : function () { - return this.drillUpButton; - }, - - /** - * Do not Remove, Used by WebElements Public API - */ - getPrintButton : function () { - return this.printButton; - }, - - init : function() { - this.initOld (); - bobj.setVisualStyle (this.layer, this.visualStyle); - this.palette.init (); - }, - - /** - * Overrider parent - */ - beginHTML : function() { - var h = bobj.html; - return h.openTag ('table', { - id: this.id, - 'class': 'dialogzone toolbar', - border: '0', - cellspacing: '0', - cellpadding: '0', - style: { - overflow: 'hidden', - margin: this.margin + 'px' - } - }) - + h.openTag ('tr', null) - + h.TD ({ style: { width: '2px' } - }, h.IMG({src: _skin+'../transp.gif', 'class': 'toolbar_buttongroup_left'})) - + h.openTag ('td', {'class': 'toolbar_buttongroup'}); - }, - - /** - * Overrider parent - */ - endHTML : function() { - var h = bobj.html; - return h.closeTag ('td', null) - + h.TD ( - { style: { width: '2px' } - }, h.IMG({src: _skin+'../transp.gif', 'class' : 'toolbar_buttongroup_right'})) - + h.closeTag ('tr', null) - + h.closeTag ('table'); - }, - - getHTML : function() { - return this.beginHTML () + this.palette.getHTML () + this.endHTML (); - } -}; - -bobj.crv.newToolbarButtonGroupSeparator = function() { - return newPaletteVerticalSepWidget(bobj.uniqueId()); -}; \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Viewer.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Viewer.js deleted file mode 100644 index 7c2139e70..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/Viewer.js +++ /dev/null @@ -1,862 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - - -/** - * Viewer Constructor - * - * kwArgs.layoutType [String] Tells the viewer how to size itself. Can be - * "client" (fill window), "fitReport", or "fixed" - * kwArgs.width [Int] Width in pixels when layoutType=fixed - * kwArgs.height [Int] Height in pixels when layoutType=fixed - */ -bobj.crv.newViewer = function(kwArgs) { - kwArgs = MochiKit.Base.update({ - id: bobj.uniqueId(), - isDisplayModalBG : false, - isLoadContentOnInit : false, - layoutType : bobj.crv.Viewer.LayoutTypes.FIXED, - visualStyle : { - className : null, - backgroundColor : null, - borderWidth : null, - borderStyle : null, - borderColor : null, - fontFamily : null, - fontWeight : null, - textDecoration : null, - color : null, - width : '800px', - height : '600px', - fontStyle : null, - fontSize : null, - top : "0px", /* passed by Java DHTML viewer */ - left : "0px" /* passed by Java DHTML viewer */ - } - }, kwArgs); - var o = newWidget(kwArgs.id); - - bobj.fillIn(o, kwArgs); - o.widgetType = 'Viewer'; - - o._topToolbar = null; - o._reportAlbum = null; - o._leftPanel = null; - o._separator = null; - o._print = null; - o._export = null; - o._promptDlg = null; - o._reportProcessing = null; - o._eventListeners = []; - o._statusbar = null; - o._leftPanelResizeGrabber = newGrabberWidget( - o.id + '_leftPanelResizeGrabber', - bobj.bindFunctionToObject(bobj.crv.Viewer.onGrabberMove, o), - 0, // intial left - 0, // intial top - 4, // width - 1, // intial height (has to be pixels so we'll figure it out later) - true); // Moves on the horizontal axis - - // Attach member functions - o.initOld = o.init; - o._boundaryControl = new bobj.crv.BoundaryControl(kwArgs.id + "_bc"); - o._modalBackground = new bobj.crv.ModalBackground( - kwArgs.id + "_mb", - bobj.bindFunctionToObject(bobj.crv.Viewer.keepFocus, o)); - MochiKit.Base.update(o, bobj.crv.Viewer); - window[o.id] = o - - return o; -}; - -bobj.crv.Viewer = { - LayoutTypes : { - FIXED : 'fixed', - CLIENT : 'client', - FITREPORT : 'fitreport' - }, - - PromptingTypes : { - HTML : 'html', - FLEX : 'flex' - }, - - onGrabberMove : function(x) { - if (this._leftPanel) { - this._leftPanel.resize (x, null); - this._doLayout (); - } - }, - - keepFocus : function () { - var swf = bobj.crv.params.FlexParameterBridge.getSWF(this.id); - if (swf) - swf.focus(); - }, - - addChild : function(widget) { - if (widget.widgetType == 'ReportAlbum') { - this._reportAlbum = widget; - } else if (widget.widgetType == 'Toolbar') { - this._topToolbar = widget; - this._separator = bobj.crv.newSeparator (); - } else if (widget.widgetType == 'Statusbar') { - this._statusbar = widget; - } else if (widget.widgetType == 'PrintUI') { - this._print = widget; - } else if (widget.widgetType == 'ExportUI') { - this._export = widget; - } else if (widget.widgetType == 'ReportProcessingUI') { - this._reportProcessing = widget; - } else if (widget.widgetType == 'LeftPanel') { - this._leftPanel = widget; - } - }, - - getHTML : function() { - var h = bobj.html; - - var layerStyle = { - overflow: 'hidden', - position: 'relative', - left : this.visualStyle.left, - top : this.visualStyle.top - }; - - var html = h.DIV({dir: 'ltr', id:this.id, style:layerStyle, 'class':'dialogzone'}, - this._topToolbar ? this._topToolbar.getHTML() : '', - this._separator ? this._separator.getHTML() : '', - this._leftPanel ? this._leftPanel.getHTML() : '', - this._reportAlbum ? this._reportAlbum.getHTML() : '', - this._leftPanelResizeGrabber ? this._leftPanelResizeGrabber.getHTML() : '', - this._statusbar ? this._statusbar.getHTML(): ''); - - return html; - }, - - _onWindowResize : function() { - if (this._currWinSize.w != winWidth () || this._currWinSize.h != winHeight ()) { - this._doLayout (); - this._currWinSize.w = winWidth (); - this._currWinSize.h = winHeight (); - } - }, - - init : function() { - this.initOld (); - this._initSignals (); - - if (this._reportAlbum) - this._reportAlbum.init (); - - if (this._topToolbar) - this._topToolbar.init (); - - if (this._leftPanel) - this._leftPanel.init (); - - if (this._statusbar) - this._statusbar.init (); - - if (this._leftPanelResizeGrabber) { - this._leftPanelResizeGrabber.init (); - - if (!this._leftPanel || !this._leftPanel.isToolPanelDisplayed ()) - this._leftPanelResizeGrabber.setDisplay (false); - } - - this.setDisplayModalBackground(this.isDisplayModalBG); - - bobj.setVisualStyle (this.layer, this.visualStyle); - - this._currWinSize = { - w : winWidth (), - h : winHeight () - }; - var connect = MochiKit.Signal.connect; - var signal = MochiKit.Signal.signal; - - if (this.layoutType.toLowerCase () == bobj.crv.Viewer.LayoutTypes.CLIENT) { - connect (window, 'onresize', this, '_onWindowResize'); - } - - if (!this._topToolbar && !this._statusbar && this._reportAlbum && !this._reportAlbum.isDisplayDrilldownTab()) { - this.layer.className += ' hideFrame'; - this._reportAlbum.setHideFrame(true); - } - - if (this.layer && _ie && bobj.checkParent (this.layer, "TABLE")) { - /* - * delays the call to doLayout to ensure all dom elemment's width and - * height are set beforehand. - */ - connect (window, 'onload', this, '_doLayoutOnLoad'); - this._oldCssVisibility = this.css.visibility; - this.css.visibility = "hidden"; - } else { - this._doLayout (); - } - - this.scrollToHighlighted (); - signal (this, 'initialized', this.isLoadContentOnInit); - }, - - /** - * Connects all the signals during initialization - */ - _initSignals : function() { - var partial = MochiKit.Base.partial; - var signal = MochiKit.Signal.signal; - var connect = MochiKit.Signal.connect; - var fe = MochiKit.Iter.forEach; - - if (this._topToolbar) { - fe ( [ 'zoom', 'drillUp', 'firstPage', 'prevPage', 'nextPage', 'lastPage', 'selectPage', 'refresh', 'search', 'export', 'print' ], function(sigName) { - connect (this._topToolbar, sigName, partial (signal, this, sigName)); - }, this); - } - - this._initLeftPanelSignals (); - - if (this._reportAlbum) { - fe ( [ 'selectView', 'removeView', 'viewChanged' ], function(sigName) { - connect (this._reportAlbum, sigName, partial (signal, this, sigName)); - }, this); - } - - if (this._print) { - connect (this._print, 'printSubmitted', partial (signal, this, 'printSubmitted')); - } - - if (this._export) { - connect (this._export, 'exportSubmitted', partial (signal, this, 'exportSubmitted')); - } - }, - - /** - * DO NOT REMOVE. USED BY WEB ELEMENTS - */ - getLeftPanel : function () { - return this._leftPanel; - }, - - _initLeftPanelSignals : function () { - var partial = MochiKit.Base.partial; - var signal = MochiKit.Signal.signal; - var connect = MochiKit.Signal.connect; - var fe = MochiKit.Iter.forEach; - - if (this._leftPanel) { - fe ( [ 'grpDrilldown', 'grpNodeRetrieveChildren', 'grpNodeCollapse', 'grpNodeExpand', 'resetParamPanel', 'resizeToolPanel' ], function(sigName) { - connect (this._leftPanel, sigName, partial (signal, this, sigName)); - }, this); - - connect (this._leftPanel, 'switchPanel', this, '_onSwitchPanel') - } - }, - - /** - * returns true when main report view is selected in report album - */ - _isMainReportViewSelected : function() { - var currentView = this._reportAlbum.getSelectedView(); - return currentView && currentView.isMainReport(); - }, - - _doLayoutOnLoad : function() { - this.css.visibility = this._oldCssVisibility; - this._doLayout(); - }, - - _doLayout : function() { - var topToolbarH = this._topToolbar ? this._topToolbar.getHeight() : 0; - var topToolbarW = this._topToolbar ? this._topToolbar.getWidth() : 0; - var separatorH = this._separator ? this._separator.getHeight() : 0; - var statusbarH = this._statusbar ? this._statusbar.getHeight() : 0; - var leftPanelW = this._leftPanel ? this._leftPanel.getBestFitWidth() : 0; - - var leftPanelGrabberW = this._leftPanelResizeGrabber && this._leftPanelResizeGrabber.isDisplayed() ? - this._leftPanelResizeGrabber.getWidth() : 0; - - var layout = this.layoutType.toLowerCase(); - - var toolPanel = this._leftPanel ? this._leftPanel.getToolPanel() : null; - var hasPercentWidth = (toolPanel && toolPanel.isDisplayed() && toolPanel.hasPercentWidth()); - - if (bobj.crv.Viewer.LayoutTypes.CLIENT == layout) { - this.css.width = '100%'; - this.css.height = '100%'; - - if (hasPercentWidth) - leftPanelW = Math.max(leftPanelW, (this.getWidth() * toolPanel.getPercentWidth()) - leftPanelGrabberW); - } - else if (bobj.crv.Viewer.LayoutTypes.FITREPORT == layout) { - var viewerWidth = 0; - var viewerHeight = 0; - - if (hasPercentWidth) - leftPanelW += 200; - - if(this._reportAlbum) { - var albumSize = this._reportAlbum.getBestFitSize(); - viewerWidth = (albumSize.width + leftPanelW + leftPanelGrabberW < topToolbarW) ? topToolbarW : albumSize.width + leftPanelW + leftPanelGrabberW; - viewerHeight = (albumSize.height + topToolbarH + separatorH + statusbarH); - } - else if (this._leftPanel) { /* If DisplayPage = false in webformviewer */ - viewerWidth = leftPanelW; - viewerHeight = (this._leftPanel.getBestFitHeight() + topToolbarH + separatorH + statusbarH); ; - } - - this.css.height = viewerHeight + 'px'; - this.css.width = viewerWidth + 'px'; - } - else { /* fixed layout */ - this.css.width = this.visualStyle.width; - this.css.height = this.visualStyle.height; - - if (hasPercentWidth) - leftPanelW = Math.max(leftPanelW, (this.getWidth() * toolPanel.getPercentWidth()) - leftPanelGrabberW); - } - - var albumW = this.getWidth() - leftPanelW - leftPanelGrabberW; - var albumH = Math.max(0, this.getHeight() - topToolbarH - separatorH - statusbarH); - - if (this._reportAlbum) { - this._reportAlbum.resizeOuter(albumW, albumH); - this._reportAlbum.move(leftPanelW + leftPanelGrabberW, topToolbarH + separatorH); - } - - if(this._leftPanel) { - this._leftPanel.resize(leftPanelW, albumH); - this._leftPanel.move(0, topToolbarH + separatorH); - } - - if(this._leftPanelResizeGrabber && this._leftPanelResizeGrabber.isDisplayed()) { - this._leftPanelResizeGrabber.resize(null, albumH); - this._leftPanelResizeGrabber.move(leftPanelW, topToolbarH + separatorH) - } - - if(this._statusbar) { - this._statusbar.doLayout(); - this._statusbar.move(0, topToolbarH + separatorH + albumH) - } - - if (this._print && this._print.layer) { - this._print.center(); - } - - if (this._export && this._export.layer) { - this._export.center(); - } - - if (this._reportProcessing && this._reportProcessing.layer) { - this._reportProcessing.center(); - } - - - var viewerP = MochiKit.Style.getElementPosition(this.layer); - var viewerD = MochiKit.Style.getElementDimensions(this.layer); - - if (this._modalBackground) - this._modalBackground.updateBoundary(viewerD.w, viewerD.h, viewerP.x, viewerP.y); - - var bodyD = bobj.getBodyScrollDimension(); - - var isViewerCutOff = ((viewerP.x + viewerD.w) >= bodyD.w) || ((viewerP.y + viewerD.h) >= bodyD.h); - - if(isViewerCutOff && (layout != bobj.crv.Viewer.LayoutTypes.CLIENT)) { - - /* BoundaryControl adds a hidden div with the same dimension and position as current viewer to body - to fix the problem of IE regarding scrollbar that are hidden when left + viewer's width > body's width - */ - - this._boundaryControl.updateBoundary(viewerD.w, viewerD.h, viewerP.x, viewerP.y); - } - else { - this._boundaryControl.updateBoundary(0, 0, 0, 0); - } - - var FLEXUI = bobj.crv.params.FlexParameterBridge; - var swf = FLEXUI.getSWF(this.id); - if(swf) { - if (this._promptDlg && this._promptDlg.style.visibility != 'hidden') { - if(swf._isMaximized) { - FLEXUI.fitScreen(this.id); - } - else { - FLEXUI.resize(this.id, swf.offsetHeight, swf.offsetWidth, true); - } - } - } - - this._adjustWindowScrollBars(); - }, - - _onSwitchPanel : function(panelType) { - var Type = bobj.crv.ToolPanelType; - - if (Type.GroupTree == panelType) { - MochiKit.Signal.signal (this, 'showGroupTree'); - } else if (Type.ParameterPanel == panelType) { - MochiKit.Signal.signal (this, 'showParamPanel'); - } else if (Type.None == panelType) { - MochiKit.Signal.signal (this, 'hideToolPanel'); - } - this._leftPanelResizeGrabber.setDisplay (!(Type.None == panelType)); - this._doLayout (); - }, - - resize : function(w, h) { - if (bobj.isNumber (w)) { - w = w + 'px'; - } - - if (bobj.isNumber (h)) { - h = h + 'px'; - } - - this.visualStyle.width = w; - this.visualStyle.height = h; - this._doLayout (); - }, - - /** - * Set the page number. Updates toolbars with current page and number of pages - * info. - * - * @param curPageNum [String] - * @param numPages [String] (eg. "1" or "1+"); - */ - setPageNumber : function(curPageNum, numPages) { - if (this._topToolbar) { - this._topToolbar.setPageNumber (curPageNum, numPages); - } - }, - - /** - * Display the prompt dialog. - * - * @param html [string] HTML fragment to display inside the dialog's form. - */ - showPromptDialog : function(html, closeCB) { - if (!this._promptDlg) { - var promptDialog_ShowCB = MochiKit.Base.bind (this._onShowPromptDialog, this); - var promptDialog_HideCB = MochiKit.Base.bind (this._onHidePromptDialog, this); - this._promptDlg = bobj.crv.params.newParameterDialog ( { - id : this.id + '_promptDlg', - showCB : promptDialog_ShowCB, - hideCB : promptDialog_HideCB - }); - } - - this._promptDlg.setCloseCB (closeCB); - this._promptDlg.setNoCloseButton(!closeCB); - - /* The reason for saving document.onkeypress is that prompt dialog steals the document.onkeypress and never sets it back */ - this._originalDocumentOnKeyPress = document.onkeypress; /* - * Must be set before .updateHtmlAndDisplay(html) as this function call modifies - * document.onkeypress; - */ - this.updatePromptDialog(html); - }, - - /** - * Update the prompt dialog - with CR2010 DCP prompting this allow the dialog to be kept open during dependent prompt submits - * - * @param html [string] HTML fragment to display inside the dialog's form - */ - updatePromptDialog : function(html) { - html = html || ''; - - var callback = function(prompt, prompthtml) { - return function() { - prompt.updateHtmlAndDisplay (prompthtml); - } - }; - - /** - * AllInOne.js lacks prompting javascript files (to reduce amount of data transmitted) therefore, prompting data must be loaded on demand - */ - - bobj.loadJSResourceAndExecCallBack(bobj.crv.config.resources.HTMLPromptingSDK, callback(this._promptDlg, html)); - - if (bobj.isParentWindowTestRunner ()) { - /* for testing purposes only*/ - setTimeout (MochiKit.Base.partial (MochiKit.Signal.signal, this, "promptDialogIsVisible"), 5); - } - }, - - showFlexPromptDialog : function(servletURL, closeCB) { - var FLEXUI = bobj.crv.params.FlexParameterBridge; - var VIEWERFLEX = bobj.crv.params.ViewerFlexParameterAdapter; - - if (!FLEXUI.checkFlashPlayer ()) { - var msg = L_bobj_crv_FlashRequired; - this.showError (msg.substr (0, msg.indexOf ('{0}')), FLEXUI.getInstallHTML ()); - return; - } - - VIEWERFLEX.setViewerLayoutType (this.id, this.layoutType); - - if (!this._promptDlg) { - this._promptDlg = document.createElement ('div'); - this._promptDlg.id = this.id + '_promptDlg'; - this._promptDlg.closeCB = closeCB; - - var PROMPT_STYLE = this._promptDlg.style; - PROMPT_STYLE.border = '1px'; - PROMPT_STYLE.borderStyle = 'solid'; - PROMPT_STYLE.borderColor = '#000000'; - PROMPT_STYLE.position = 'absolute'; - PROMPT_STYLE.zIndex = bobj.constants.modalLayerIndex; - - var divID = bobj.uniqueId (); - this._promptDlg.innerHTML = "
    "; - - // generate hidden buttons to prevent tabbing into the viewer - var onfocusCB = bobj.bindFunctionToObject(bobj.crv.Viewer.keepFocus, this); - - var firstLink = MochiKit.DOM.createDOM('BUTTON', { - id : this._promptDlg.id + '_firstLink', - onfocus : onfocusCB, - style : { - width : '0px', - height : '0px', - position : 'absolute', - left : '-30px', - top : '-30px' - } - }); - - var lastLink = MochiKit.DOM.createDOM('BUTTON', { - id : this._promptDlg.id + '_lastLink', - onfocus : onfocusCB, - style : { - width : '0px', - height : '0px', - position : 'absolute', - left : '-30px', - top : '-30px' - } - }); - - document.body.appendChild (firstLink); - document.body.appendChild (this._promptDlg); - document.body.appendChild (lastLink); - - var state = bobj.crv.stateManager.getComponentState (this.id); - var sessionID = state.common.reportSourceSessionID; - var lang = bobj.crv.getLangCode (); - - FLEXUI.setMasterCallBack (this.id, VIEWERFLEX); - FLEXUI.createSWF (this.id, divID, servletURL, true, lang, sessionID); - } else { - this._promptDlg.closeCB = closeCB; - this._promptDlg.style.display = ''; - FLEXUI.init (this.id); - } - - this.setDisplayModalBackground (true); - }, - - sendPromptingAsyncRequest : function (evArgs){ - MochiKit.Signal.signal(this, 'crprompt_asyncrequest', evArgs); - }, - setDisplayModalBackground : function (isDisplay) { - isDisplay = this.isDisplayModalBG || isDisplay; //viewer.isDisplayModalBG has higher priority - if(this._modalBackground) - this._modalBackground.show(isDisplay); - }, - - _onShowPromptDialog : function() { - this._adjustWindowScrollBars (); - this.setDisplayModalBackground (true); - }, - - _onHidePromptDialog : function() { - this._adjustWindowScrollBars (); - document.onkeypress = this._originalDocumentOnKeyPress; - this.setDisplayModalBackground (false); - }, - - isPromptDialogVisible: function () { - return this._promptDlg && this._promptDlg.isVisible && this._promptDlg.isVisible (); - }, - - hidePromptDialog : function() { - if (this.isPromptDialogVisible()) { - this._promptDlg.show (false); - } - }, - - /** - * Hide the flex prompt dialog - */ - hideFlexPromptDialog : function() { - if (this._promptDlg) { - if (_ie) - { - /* IE has an issue where if a user calls back from a swf - and closes the containing div then when the div is shown - again the swf will lose any external interface calls. To get around - this we must set the focus to something other than the swf first - before hiding the window. */ - this._promptDlg.focus(); - } - - this._promptDlg.style.visibility = 'hidden'; - this._promptDlg.style.display = 'none'; - this.setDisplayModalBackground (false); - - if (this._promptDlg.closeCB) - this._promptDlg.closeCB(); - } - }, - - _adjustWindowScrollBars : function() { - if (_ie && this.layoutType == bobj.crv.Viewer.LayoutTypes.CLIENT && this._promptDlg && this._promptDlg.layer && MochiKit.DOM.currentDocument ().body) { - var bodyOverFlow, pageOverFlow; - var body = MochiKit.DOM.currentDocument ().body; - var promptDlgLayer = this._promptDlg.layer; - - if (this.getReportPage () && this.getReportPage ().layer) { - var reportPageLayer = this.getReportPage ().layer; - } - - if (!window["bodyOverFlow"]) { - window["bodyOverFlow"] = MochiKit.DOM.getStyle (body, 'overflow'); - } - - if (body.offsetHeight < (promptDlgLayer.offsetTop + promptDlgLayer.offsetHeight)) { - if (window["bodyOverFlow"] == "hidden") { - bodyOverFlow = "scroll"; - } - pageOverFlow = "hidden"; - } else { - bodyOverFlow = window["bodyOverFlow"]; - pageOverFlow = "auto"; - } - - body.style.overflow = bodyOverFlow; - if (reportPageLayer) { - reportPageLayer.style.overflow = pageOverFlow; - } - } - }, - - /** - * Display an error message dialog. - * - * @param text [String] Short, user-friendly error message - * @param details [String] Technical info that's hidden unless the user chooses to see it - */ - showError : function(text, details) { - var dlg = bobj.crv.ErrorDialog.getInstance (); - dlg.setText (text, details); - dlg.setTitle (L_bobj_crv_Error); - dlg.show (true); - }, - - /** - * Update the UI using the given properties - * - * @param update [Object] Component properties - */ - update : function(update) { - if (!update || update.cons != "bobj.crv.newViewer") - return; - - if(update.args) - this.isDisplayModalBG = update.args.isDisplayModalBG; - - /* - * With CR2010 DCP prompting we want to keep open the prompt dialog until all parameters - * are resolved (ADAPT01346079). Unfortunately, as soon as the parameters resolved, server - * calls the getPage and returns the page content, so we don't know when to close the dialog. - */ - this.hidePromptDialog(); - - for ( var childNum in update.children) { - var child = update.children[childNum]; - if (child) { - switch (child.cons) { - case "bobj.crv.newReportAlbum": - if (this._reportAlbum) { - this._reportAlbum.update (child); - } - break; - case "bobj.crv.newToolbar": - if (this._topToolbar) { - this._topToolbar.update (child); - } - break; - case "bobj.crv.newStatusbar": - if (this._statusbar) { - this._statusbar.update (child); - } - break; - case "bobj.crv.newLeftPanel": - if (this._leftPanel) - this._leftPanel.update (child); - else { - this._leftPanel = bobj.crv.createWidget(child); - if(this.layer) { - append(this.layer, this._leftPanel.getHTML()) - this._initLeftPanelSignals (); - this._leftPanel.init(); - } - - if(this._leftPanel && this._leftPanel.isToolPanelDisplayed()) - this._leftPanelResizeGrabber.setDisplay(true); - } - break; - case "bobj.crv.newExportUI": - if (this._export) { - this._export.update (child); - } - break; - } - } - } - - this._doLayout (); - this.scrollToHighlighted (); - this.setDisplayModalBackground (this.isDisplayModalBG); - }, - - getToolPanel : function() { - if(this._leftPanel) - return this._leftPanel.getToolPanel(); - - return null; - }, - - getParameterPanel : function() { - var toolPanel = this.getToolPanel (); - if (toolPanel) - return toolPanel.getParameterPanel (); - - return null; - }, - - getReportPage : function() { - if (this._reportAlbum) { - var view = this._reportAlbum.getSelectedView(); - if (view) { - return view.reportPage; - } - } - - return null; - }, - - scrollToHighlighted : function() { - if(!this._reportAlbum) - return; - - var currentView = this._reportAlbum.getSelectedView (); - - if (currentView) { - currentView.scrollToHighlighted(this.layoutType.toLowerCase () == bobj.crv.Viewer.LayoutTypes.FITREPORT); - } - }, - - addViewerEventListener : function (e, l) { - var ls = this._eventListeners[e]; - if (!ls) { - this._eventListeners[e] = [l]; - return; - } - - ls[ls.length] = l; - }, - - removeViewerEventListener : function (e, l) { - var ls = this._eventListeners[e]; - if (ls) { - for (var i = 0, lsLen = ls.length; i < lsLen; i++) { - if (ls[i] == l){ - ls.splice(i, 1); - return; - } - } - } - }, - - getEventListeners : function (e) { - return this._eventListeners[e]; - } -}; - - - -bobj.crv.BoundaryControl = function(id) { - this.id = id; -}; - -bobj.crv.BoundaryControl.prototype = { - updateBoundary : function(width,height,left,top) { - if(!this.layer) { - this._init(); - } - if(this.layer) { - this.layer.style.width = width + "px"; - this.layer.style.height = height + "px"; - this.layer.style.left = left + "px"; - this.layer.style.top = top + "px"; - } - - }, - - _getStyle : function () { - return { - display:'block', - visibility:'hidden', - position:'absolute' - }; - }, - - _getHTML : function () { - return bobj.html.DIV({id : this.id, style : this._getStyle()}); - }, - - _init: function() { - if(!this.layer){ - append2(_curDoc.body,this._getHTML ()); - this.layer = getLayer(this.id); - this.layer.onselectstart = function () {return false;}; - this.layer.onmousedown = eventCancelBubble; - if (this.mouseupCB) - this.layer.onmouseup = this.mouseupCB; - } - } -}; - -bobj.crv.ModalBackground = function (id, mouseupCB) { - this.id = id; - this.mouseupCB = mouseupCB; -}; - -bobj.crv.ModalBackground.prototype = new bobj.crv.BoundaryControl(); -MochiKit.Base.update(bobj.crv.ModalBackground.prototype, { - _getStyle : function () { - return { - 'background-color' : '#888888', - position : 'absolute', - opacity : 0.30, - display : 'block', - filter : 'alpha(opacity=30);', - 'z-index' : bobj.constants.modalLayerIndex - 2, - visibility : 'hidden' - }; - }, - - show : function (show) { - if(!this.layer) { - this._init(); - } - - this.layer.style.visibility = show ? "visible" : "hidden"; - } - -}); diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ViewerFlexParameterAdapter.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ViewerFlexParameterAdapter.js deleted file mode 100644 index 44ce678a9..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ViewerFlexParameterAdapter.js +++ /dev/null @@ -1,547 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/* - ================================================================================ - ViewerFlexParameterAdapter.js - - Viewer's implementaion for flex prompting UI - ================================================================================ - */ - -bobj.crv.params.ViewerFlexParameterAdapter = { - _viewerLayoutType : [], - _promptData : [], - _paramCtrl : [], - _iParam : [], - _iPromptUnitData : [], - _iParamData : [], - _moveArea : null, - - /////////////////////////// - // Member setters - ////////////////////////// - setViewerLayoutType : function(id, l) { - this._viewerLayoutType[id] = l; - }, - - setPromptData : function(id, d, forIParams) { - if (!forIParams){ - /* Full prompt UI data */ - this._promptData[id] = d; - this.clearIParamPromptUnitData(id); - }else{ - /* Interactive prompt UI data */ - for(var i = 0, l = d.length; i < l; i++) { - var unit = d[i]; - this._addIParamPromptUnitData(id, unit.id, unit.names, unit.data); - } - } - }, - - setCurrentIParamInfo : function(id, c, p) { - this._paramCtrl[id] = c; - this._iParam[id] = p; - }, - - getShowMinUI : function (id) { - return this.hasIParamPromptUnitData(id); - }, - - getWidth : function (id) { - if(this.hasIParamPromptUnitData(id)) - return 300; - else - return this.getSWFWidth(id); - }, - - getHeight : function (id) { - if(this.hasIParamPromptUnitData(id)) - return 315; - else - return this.getSWFHeight(id); - }, - - getScreenHeight : function (id) { - var lDim = MochiKit.Style.getElementDimensions(getLayer(id)); - return lDim.h - 2; - }, - - getScreenWidth : function (id) { - var lDim = MochiKit.Style.getElementDimensions(getLayer(id)); - return lDim.w - 2; - }, - - /* - * Returns the ideal height of the prompting window - */ - getSWFHeight : function(id) { - var lTypes = bobj.crv.Viewer.LayoutTypes; - var layout = lTypes.CLIENT; - if (this._viewerLayoutType[id]) { - layout = this._viewerLayoutType[id]; - } - - var min = layout === lTypes.FIXED ? 0 : 480; - var sH = this.getScreenHeight(id); - return Math.max(min, sH - 200); - }, - - getSWFWidth : function(id) { - var sW = this.getScreenWidth(id); - return Math.min(600, sW - 20); - }, - - getAllowFullScreen : function(id) - { - return !this.hasIParamPromptUnitData(id); - }, - - hasIParamPromptUnitData : function (id) { - return (this._iPromptUnitData[id] != null) && (this._iParamData[id] != null) && (this._iParam[id] != null); - }, - - _addIParamPromptUnitData : function(id, unitID, names, data) { - if (!this.hasIParamPromptUnitData(id)) { - this._iPromptUnitData[id] = []; - this._iParamData[id] = []; - } - - this._iPromptUnitData[id][unitID] = data; - for ( var i = 0, len = names.length; i < len; i++) { - this._iParamData[id][names[i]] = unitID; - } - }, - - clearIParamPromptUnitData : function (id) { - if (!this.hasIParamPromptUnitData(id)) { - return; - } - - delete this._iPromptUnitData[id]; - delete this._iParamData[id]; - delete this._iParam[id]; - }, - - /////////////////////////// - // Callbacks - ////////////////////////// - - getPromptData : function (id) { - if (this.hasIParamPromptUnitData(id)) { - var promptUUID = this._iParamData[id][this._iParam[id].paramName]; - if (promptUUID) { - return this._iPromptUnitData[id][promptUUID]; - } - } - - return this._promptData[id]; - }, - - /** - * Flex callback to start moving the dialog - */ - startDrag : function(id) { - var swf = bobj.crv.params.FlexParameterBridge.getSWF(id); - if (swf) { - if (this._moveArea) { - return; - } - - this._moveArea = document.createElement('div'); - this._moveArea.id = bobj.uniqueId(); - - MOVE_STYLE = this._moveArea.style; - - var STYLE = swf.style; - var P_STYLE = swf.parentNode.style; - - MOVE_STYLE.top = P_STYLE.top; - MOVE_STYLE.left = P_STYLE.left; - MOVE_STYLE.width = STYLE.width ? STYLE.width : swf.width + 'px'; - MOVE_STYLE.height = STYLE.height ? STYLE.height : swf.height + 'px';; - MOVE_STYLE.border = '1px'; - MOVE_STYLE.borderStyle = 'solid'; - MOVE_STYLE.borderColor = '#000000'; - MOVE_STYLE.backgroundColor = '#FFFFFF'; - MOVE_STYLE.position = 'absolute'; - MOVE_STYLE.opacity = 0.50; - MOVE_STYLE.filter = 'alpha(opacity=50)'; - MOVE_STYLE.zIndex = bobj.constants.modalLayerIndex - 1; - - document.body.appendChild(this._moveArea); - document.body.style.cursor = 'move'; - } - }, - - /** - * Flex callback when finished moving the dialog - */ - stopDrag : function(id) { - if (this._moveArea) { - var p = MochiKit.Style.getElementPosition(this._moveArea); - this.move(id, p.x, p.y); - - document.body.removeChild(this._moveArea); - delete this._moveArea; - - document.body.style.cursor = 'default'; - } - }, - - /** - * Flex callback for moving the dialog. - * x is the amount to move on the x axis, -:left +:right - * y is the amount to move on the y axis, -:up +:down - */ - drag : function(id, x, y) { - var LOG = bobj.crv.logger; - LOG.info('doMove Called viewer:' + id + ' x:' + x + ' y:' + y); - - var l = getLayer(id); - if (!l) { - LOG.error('Shifting SWF could not find the viewer:' + id); - return; - } - - var m = this._moveArea; - if (!m) { - LOG.error('Unable to move SWF, no move area available'); - return; - } - - var mX = m.offsetLeft; - var mY = m.offsetTop; - var mH = m.offsetHeight; - var mW = m.offsetWidth; - var vX = l.offsetLeft; - var vY = l.offsetTop; - var vH = l.offsetHeight; - var vW = l.offsetWidth; - - var newX = mX + x; - var newY = mY + y; - - if (newY < vY) { - newY = vY; - } else if (newY + mH > vY + vH) { - newY = vH - mH; - } - - if (newX < vX) { - newX = vX; - } else if (newX + mW > vX + vW) { - newX = vW - mW; - } - - m.style.top = newY + 'px'; - m.style.left = newX + 'px'; - - LOG.info('Moved the SWF to x:' + newX + ' y:' + newY); - }, - - - /** - * Flex callback when finished moving the dialog - */ - move : function(id, x, y) { - var swf = bobj.crv.params.FlexParameterBridge.getSWF(id); - if (swf) { - var p = new MochiKit.Style.Coordinates(x,y); - MochiKit.Style.setElementPosition(swf.parentNode, p); - } - }, - - setParamValues : function(id, valueData) { - bobj.crv.logger.info('setting parameter values'); - if (this.hasIParamPromptUnitData(id)){ - this._setIParamValues (id, valueData); - } else { - this._setFullParamValues (id, valueData); - this.closeDialog(id); - } - }, - - _setFullParamValues : function (id, valueData) { - bobj.event.publish('crprompt_flexparam', id, valueData); - }, - - _setIParamValues : function (id, valueData) { - var param = this._iParam[id]; - var ctrl = this._paramCtrl[id]; - var data = this._iParamData[id]; - var unitData = this._iPromptUnitData[id]; - - if (!param || !ctrl || !data || !unitData || valueData.length != 1) { - return; - } - - var vPromptUnit = valueData[0]; - var vPrompts = vPromptUnit.prompts; - for (var i = 0, len = vPrompts.length; i < len; i++) { - var vPrompt = vPrompts[i]; - - if (!vPrompt || !vPrompt.name || !vPrompt.values) { - continue; - } - - ctrl.updateParameter(decodeURI(vPrompt.name), this._convertFlexValues(vPrompt, param.valueDataType)); - } - - ctrl._updateToolbar(); - - this._updatePromptData(id, vPromptUnit, param.valueDataType); - - this.closeDialog(id); - }, - - _updatePromptData: function (id, newUnitData, type){ - var newPrompts = newUnitData.prompts; - - var data = this._iPromptUnitData[id][newUnitData.id]; - var unitData = data.promptUnits[0]; - var prompts = unitData.prompts; - for (var i = 0, pLen = prompts.length; i < pLen; i++) { - var prompt = prompts[i]; - for (var j = 0, npLen = newPrompts.length; j < npLen; j++) { - var newPrompt = newPrompts[j]; - if (prompt.id == newPrompt.id){ - prompt.values = this._unescapeFlexValues(newPrompt.values, type); - break; - } - } - } - }, - - _unescapeFlexValues: function (fValues, type){ - if (type != bobj.crv.params.DataTypes.STRING) { - return fValues; - } - - for (var i = 0, len = fValues.length; i < len; i++) { - this._unescapeFlexValue(fValues[i], type); - } - - return fValues; - }, - - _unescapeFlexValue: function (fValue, type) { - if (type != bobj.crv.params.DataTypes.STRING) { - return; - } - - if ((fValue.value !== undefined && fValue.value !== null)){ - fValue.value = decodeURI(fValue.value); - - if (fValue.labels !== undefined && fValue.labels !== null){ - for (var i = 0, len = fValue.labels.length; i < len; i++) { - fValue.labels[i] = decodeURI(fValue.labels[i]); - } - } - - } else { - // Range - if (fValue.start){ - this._unescapeFlexValue(fValue.start, type); - } - - if (fValue.end){ - this._unescapeFlexValue(fValue.end, type); - } - } - }, - - _getDescriptionIndex: function (prompt) - { - var vIndex = prompt.lovValueIndex; - var types = prompt.lovFieldTypes; - if (vIndex !== undefined && types !== undefined) - { - for (var i=0, len=types.length; i -1 && fValue.labels && fValue.labels.length > dIndex){ - jsValue.desc = decodeURI(fValue.labels[dIndex]); - } - - var Type = bobj.crv.params.DataTypes; - switch (type) { - case Type.DATE: - case Type.TIME: - case Type.DATE_TIME: - jsValue.value = this._convertDateTimeFlexValue(fValue.value, type); - break; - default: - jsValue.value = decodeURI(fValue.value); - break; - } - - } else { - // Range - if (fValue.start){ - jsValue.lowerBoundType = fValue.start.inc == true ? 2 : 1; - jsValue.beginValue = this._convertFlexValue(fValue.start, type); - } else { - jsValue.lowerBoundType = 0; - } - - if (fValue.end){ - jsValue.upperBoundType = fValue.end.inc == true ? 2 : 1; - jsValue.endValue = this._convertFlexValue(fValue.end, type); - } else { - jsValue.upperBoundType = 0; - } - } - - return jsValue; - }, - - _convertDateTimeFlexValue : function (fValue, type) { - var Type = bobj.crv.params.DataTypes; - var dValue = {}; - var parts = fValue.split(','); - switch(type) { - case Type.DATE: - dValue.y = parseInt(parts[0].substring(5), 10); - dValue.m = parseInt(parts[1], 10) - 1; - dValue.d = parseInt(parts[2].substring(parts[2].length - 1, 0), 10); - break; - - case Type.TIME: - dValue.h = parseInt(parts[0].substring(5), 10); - dValue.min = parseInt(parts[1], 10); - dValue.s = parseInt(parts[2].substring(parts[2].length - 1, 0), 10); - dValue.ms = 0; - break; - - case Type.DATE_TIME: - dValue.y = parseInt(parts[0].substring(9), 10); - dValue.m = parseInt(parts[1], 10) - 1; - dValue.d = parseInt(parts[2], 10); - dValue.h = parseInt(parts[3], 10); - dValue.min = parseInt(parts[4]); - dValue.s = parseInt(parts[5].substring(parts[5].length - 1, 0), 10); - dValue.ms = 0; - break; - } - return dValue; - }, - - - logon : function(id, logonData) { - bobj.crv.logger.info('logging on'); - this.closeDialog(id); - bobj.event.publish('crprompt_flexlogon', id, logonData); - }, - - processingCancel : function(id) { - var v = getWidgetFromID(id); - if (v && v._reportProcessing) { - v._reportProcessing.cancelShow(); - } - }, - - processingDelayedShow : function(id) { - var v = getWidgetFromID(id); - if (v && v._reportProcessing) { - v._reportProcessing.delayedShow(); - } - }, - - logger : function(text) { - bobj.crv.logger.info(text); - }, - - getSWFBaseURL : function() { - return bobj.crvUri("../../swf/"); - }, - - getSWFID : function() { - return bobj.uniqueId(); - }, - - getZIndex : function() { - return bobj.constants.modalLayerIndex; - }, - - getUseSavedData : function(id) { - return this.hasIParamPromptUnitData(id); - }, - - closeDialog : function(id) { - var v = getWidgetFromID(id); - if (v) { - v.hideFlexPromptDialog(); - } - }, - - getUseOKCancelButtons : function(id) { - return this.hasIParamPromptUnitData(id); - }, - - getIsDialog : function(id) { - return true; - }, - - getShouldAutoResize : function(id) { - return true; - }, - - setVisibility : function(id) { - var swf = bobj.crv.params.FlexParameterBridge.getSWF(id); - if (swf) { - var P_STYLE = swf.parentNode.style; - - P_STYLE.position = 'absolute'; - P_STYLE.visibility = 'visible'; - P_STYLE.borderStyle = 'none'; - P_STYLE.opacity = 1; - - if (swf.focus !== undefined) { - swf.focus(); - } - } - }, - - getReportStateInfo : function(id) { - var s = bobj.crv.stateManager.getComponentState(id); - if (s && s.common && s.common.reqCtx) { - return MochiKit.Base.serializeJSON(s.common.reqCtx); - } - }, - - setReportStateInfo : function(id, rsInfo) { - var s = bobj.crv.stateManager.getComponentState(id); - if (s && s.common && s.common.reqCtx) { - s.common.reqCtx = MochiKit.Base.evalJSON(unescape(rsInfo)); - } - }, - - sendAsyncRequest : function(id, args) { - bobj.event.publish('crprompt_asyncrequest', id, args); - }, - - readyToShow: function(id) { - this.processingCancel(id); - } -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ViewerListener.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ViewerListener.js deleted file mode 100644 index c02f99ec4..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/ViewerListener.js +++ /dev/null @@ -1,1110 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -/** - * ViewerListener Constructor. Handles Viewer UI events. - */ - -if(typeof(bobj.crv.Async) == 'undefined') { - bobj.crv.Async = {}; -} - -bobj.crv.ViewerListener = function(viewerName, ioHandler) { - this._name = viewerName; - this._viewer = null; - this._promptPage = null; - this._paramCtrl = null; - this._ioHandler = ioHandler; - this._reportProcessing = null; - - var connect = MochiKit.Signal.connect; - var subscribe = bobj.event.subscribe; - var bind = MochiKit.Base.bind; - - var widget = window[viewerName]; - if (widget) { - if (widget.widgetType == 'Viewer') { - this._viewer = widget; - this._reportProcessing = this._viewer._reportProcessing; - } - else if (widget.widgetType == 'PromptPage') { - this._promptPage = widget; - this._reportProcessing = this._promptPage._reportProcessing; - } - } - - if (this._viewer) { - // ReportAlbum events - connect(this._viewer, 'selectView', this, '_onSelectView'); - connect(this._viewer, 'removeView', this, '_onRemoveView'); - - // Toolbar events - connect(this._viewer, 'firstPage', this, '_onFirstPage'); - connect(this._viewer, 'prevPage', this, '_onPrevPage'); - connect(this._viewer, 'nextPage', this, '_onNextPage'); - connect(this._viewer, 'lastPage', this, '_onLastPage'); - connect(this._viewer, 'selectPage', this, '_onSelectPage'); - connect(this._viewer, 'zoom', this, '_onZoom'); - connect(this._viewer, 'drillUp', this, '_onDrillUp'); - connect(this._viewer, 'refresh', this, '_onRefresh'); - connect(this._viewer, 'search', this, '_onSearch'); - connect(this._viewer, 'export', this, '_onExport'); - connect(this._viewer, 'print', this, '_onPrint'); - - // Tool Panel events - connect(this._viewer, 'resizeToolPanel', this, '_onResizeToolPanel'); - connect(this._viewer, 'hideToolPanel', this, '_onHideToolPanel'); - connect(this._viewer, 'grpDrilldown', this, '_onDrilldownGroupTree'); - connect(this._viewer, 'grpNodeRetrieveChildren', this, '_onRetrieveGroupTreeNodeChildren'); - connect(this._viewer, 'grpNodeCollapse', this, '_onCollapseGroupTreeNode'); - connect(this._viewer, 'grpNodeExpand', this, '_onExpandGroupTreeNode'); - connect(this._viewer, 'showParamPanel', this, '_onShowParamPanel'); - connect(this._viewer, 'showGroupTree', this, '_onShowGroupTree'); - connect(this._viewer, 'viewChanged', this, '_onChangeView'); - connect(this._viewer, 'resetParamPanel', this, '_onResetParamPanel'); - connect(this._viewer, 'printSubmitted', this, '_onSubmitPrintPdf'); - connect(this._viewer, 'exportSubmitted', this, '_onSubmitExport'); - connect(this._viewer, 'initialized', this, '_onViewerInitialization'); - - } - - // Report Page Events - subscribe('drilldown', this._forwardTo('_onDrilldown')); - subscribe('drilldownGraph', this._forwardTo('_onDrilldownGraph')); - subscribe('drilldownSubreport', this._forwardTo('_onDrilldownSubreport')); - subscribe('sort', this._forwardTo('_onSort')); - subscribe('hyperlinkClicked', this._forwardTo('_onHyperlinkClicked')); - subscribe('displayError', this._forwardTo('_displayError')); - - // Prompt events - subscribe('crprompt_param', this._forwardTo('_onSubmitStaticPrompts')); - subscribe('crprompt_pmtEngine', this._forwardTo('_onSubmitPromptEnginePrompts')); - subscribe('crprompt_logon', this._forwardTo('_onSubmitDBLogon')); - subscribe('crprompt_cancel',this._forwardTo('_onCancelParamDlg')); - subscribe('crprompt_flexparam', this._forwardTo('_onFlexParam')); - subscribe('crprompt_flexlogon', this._forwardTo('_onFlexLogon')); - subscribe('crprompt_asyncrequest', this._forwardTo('_onPromptingAsyncRequest')); - - - // Report Part Events - subscribe('pnav', this._forwardTo('_onNavigateReportPart')); - subscribe ('navbookmark', this._forwardTo('_onNavigateBookmark')); - subscribe ('updatePromptDlg', this._forwardTo('_onPromptDialogUpdate')); - - // Universal Events, No Target Checks - subscribe('saveViewState', bind(this._onSaveViewState, this)); - - if(widget) { - widget.init(); //must initialize widget after connecting event listeners as signals might be thrown during initialization - } - - if(bobj.isObject(window.jsUnit) && !window.jsUnit.testSuite) { - window.jsUnit.testSuite = new jsUnit.crViewerTestSuite(this); - } -}; - -bobj.crv.ViewerListener.prototype = { - - /** - * Public - * - * @return The current report view - */ - getCurrentView: function() { - if(this._viewer && this._viewer._reportAlbum) { - return this._viewer._reportAlbum.getSelectedView(); - } - - return null; - }, - - getPromptingType : function () { - return this._getCommonProperty('promptingType'); - }, - - _displayError : function(args) { - args = MochiKit.Base.parseQueryString(args); - - if (args && this._viewer ) { - var errorMessage = args.errorMessage || L_bobj_crv_RequestError; - var debug = args.debug || ""; - this.showError(errorMessage, debug); - } - }, - - /** - * Private. Wraps an event handler function with an event target check. - * - * @param handlerName [String] Name of the event handler method - * - * @return Function that can be used as a callback for subscriptions - */ - _forwardTo: function(handlerName) { - return MochiKit.Base.bind(function(target) { - if (target == this._name) { - var args = bobj.slice(arguments, 1); - this[handlerName].apply(this, args); - } - }, this); - }, - - _onViewerInitialization: function (isLoadContentOnInit) { - if(isLoadContentOnInit) { - this._initialLoadViewerContent (); - } - }, - - _onSaveViewState: function() { - this._saveViewState(); - }, - - _onSelectView: function(view) { - if (view) { - bobj.crv.logger.info('UIAction View.Select'); - - // Since "restore state" happens before events, we need to - // change the curViewId before making the server request - var state = bobj.crv.stateManager.getComponentState(this._name); - if (state) { - state.curViewId = view.viewStateId; - this._request({selectView: view.viewStateId}, bobj.crv.config.useAsync, true); - } - } - }, - - _onRemoveView: function(view) { - if (view) { - bobj.crv.logger.info('UIAction View.Remove'); - var viewerState = bobj.crv.stateManager.getComponentState(this._name); - if (viewerState) { - // Remove view from viewer state - delete viewerState[view.viewStateId]; - } - - var commonState = this._getCommonState(); - if (commonState) { - // Remove view from taborder - var idx = MochiKit.Base.findValue(commonState.rptAlbumOrder, view.viewStateId); - if (idx != -1) { - arrayRemove(commonState, 'rptAlbumOrder', idx); - } - } - } - }, - - _initialLoadViewerContent: function() { - bobj.crv.logger.info('UIAction InitLoad'); - this._request({ajaxInitLoad : true}, bobj.crv.config.useAsync, true); - }, - - _onFirstPage: function() { - bobj.crv.logger.info('UIAction Toolbar.FirstPage'); - this._request({tb:'first'}, bobj.crv.config.useAsync, true); - }, - - _onPrevPage: function() { - bobj.crv.logger.info('UIAction Toolbar.PrevPage'); - this._request({tb:'prev'}, bobj.crv.config.useAsync, true); - }, - - _onNextPage: function() { - bobj.crv.logger.info('UIAction Toolbar.NextPage'); - this._request({tb:'next'}, bobj.crv.config.useAsync, true); - }, - - _onLastPage: function() { - bobj.crv.logger.info('UIAction Toolbar.LastPage'); - this._request({tb:'last'}, bobj.crv.config.useAsync, true); - }, - - _onDrillUp: function() { - bobj.crv.logger.info('UIAction Toolbar.DrillUp'); - this._request({tb:'drillUp'}, bobj.crv.config.useAsync, true); - }, - - _onChangeView: function() { - if(this._paramCtrl) { - this._paramCtrl.onChangeView(); - } - }, - - _onResetParamPanel: function() { - if(this._isResettingParamPanel) { - return; - } - - this._isResettingParamPanel = true; - - if(this._paramCtrl) { - this._paramCtrl.setParameters([]); - delete this._paramCtrl; - } - - this.clearAdvancedPromptData(); - - var onFinishCB = bobj.bindFunctionToObject( function () { - this._isResettingParamPanel = false; - }, this); - - this._setInteractiveParams(null, onFinishCB); - }, - - _onSelectPage: function(pgTxt) { - bobj.crv.logger.info('UIAction Toolbar.SelectPage ' + pgTxt); - this._request({tb:'gototext', text:pgTxt}, bobj.crv.config.useAsync, true); - }, - - _onZoom: function(zoomTxt) { - bobj.crv.logger.info('UIAction Toolbar.Zoom ' + zoomTxt); - this._request({tb:'zoom', value:zoomTxt}, bobj.crv.config.useAsync, true); - }, - - _onExport: function(closeCB) { - var exportComponent = this._viewer._export; - if (exportComponent) { - if (closeCB) exportComponent.setCloseCB (closeCB); - - bobj.crv.logger.info('UIAction Toolbar.Export'); - exportComponent.show(true); - } - }, - - _onPrint: function(closeCB) { - var printComponent = this._viewer._print; - if (printComponent) { - if (closeCB) printComponent.setCloseCB (closeCB); - - if (printComponent.isActxPrinting) { - bobj.crv.logger.info('UIAction Toolbar.Print ActiveX'); - var pageState = bobj.crv.stateManager.getCompositeState(); - var postBackData = this._ioHandler.getPostDataForPrinting(pageState, this._name); - this._viewer._print.show(true, postBackData); - } - else { - var isOneClickPrint = this._getCommonProperty('pdfOCP') && bobj.hasPDFReaderWithJSFunctionality(); - if (isOneClickPrint) { - this._onSubmitPrintPdf(0, 0, isOneClickPrint); - } - else { - bobj.crv.logger.info('UIAction Toolbar.Print PDF'); - this._viewer._print.show(true); - } - } - } - }, - - _onResizeToolPanel: function(width) { - this._setCommonProperty('toolPanelWidth', width); - this._setCommonProperty('toolPanelWidthUnit', 'px'); - }, - - _onHideToolPanel: function() { - bobj.crv.logger.info('UIAction Toolbar.HideToolPanel'); - this._setCommonProperty('toolPanelType', bobj.crv.ToolPanelType.None); - }, - - _onShowParamPanel: function() { - bobj.crv.logger.info('UIAction Toolbar.ShowParamPanel'); - this._setCommonProperty('toolPanelType', bobj.crv.ToolPanelType.ParameterPanel); - }, - - _onShowGroupTree: function() { - bobj.crv.logger.info('UIAction Toolbar.ShowGroupTree'); - this._setCommonProperty('toolPanelType', bobj.crv.ToolPanelType.GroupTree); - }, - - _onDrilldown: function(drillargs) { - bobj.crv.logger.info('UIAction Report.Drilldown'); - this._request(drillargs, bobj.crv.config.useAsync, true); - }, - - _onDrilldownSubreport: function(drillargs) { - bobj.crv.logger.info('UIAction Report.DrilldownSubreport'); - this._request(drillargs, bobj.crv.config.useAsync, true); - }, - - _onDrilldownGraph: function(event, graphName, branch, offsetX, offsetY, pageNumber, nextpart, twipsPerPixel) { - if (event) { - bobj.crv.logger.info('UIAction Report.DrilldownGraph'); - var mouseX, mouseY; - - if(_ie || _saf || _ie11Up) { - mouseX = event.offsetX; - mouseY = event.offsetY; - } - else { - mouseX = event.layerX; - mouseY = event.layerY; - } - - var zoomFactor = parseInt(this._getCommonProperty('zoom'), 10); - zoomFactor = (isNaN(zoomFactor) ? 1 : zoomFactor/100); - - this._request({ name:encodeURIComponent(graphName), - brch:branch, - coord:(mouseX*twipsPerPixel/zoomFactor + parseInt(offsetX, 10)) + '-' + (mouseY*twipsPerPixel/zoomFactor +parseInt(offsetY, 10)), - pagenumber:pageNumber, - nextpart:encodeURIComponent(nextpart)}, - bobj.crv.config.useAsync, - true); - } - }, - - _onDrilldownGroupTree: function(groupName, groupPath, isVisible, groupNamePath) { - bobj.crv.logger.info('UIAction GroupTree.Drilldown'); - var encodedGroupName = encodeURIComponent(groupName); - var evtArgs = {drillname: encodedGroupName, gnpath: groupNamePath}; - if(isVisible) { - evtArgs.grp = groupPath; - } - else { - evtArgs.brch = groupPath; - } - - this._request(evtArgs, bobj.crv.config.useAsync, true); - }, - - _onRetrieveGroupTreeNodeChildren: function(groupPath) { - this._request({grow:groupPath}, bobj.crv.config.useAsync, true); - }, - - /* - * Removes groupPath from currentExpandedPaths in current view's state - */ - _onCollapseGroupTreeNode: function(groupPath) { - bobj.crv.logger.info('UIAction GroupTree.CollapseNode'); - var expPathPointer = this.getCurrentExpandedPaths(); // expPathPointer is assigned to expanded paths in memory - var groupPathArray = groupPath.split('-'); - - for(var i = 0 , end = groupPathArray.length - 1; i <= end ; i++) { - var nodeID = groupPathArray[i]; - if(expPathPointer[nodeID]) { - if(i == end) { - delete expPathPointer[nodeID]; - return; - } - expPathPointer = expPathPointer[nodeID]; - } - else { - return; - } - } - - }, - - showError: function(message,detailText) { - if(this._viewer) { - this._viewer.showError(message, detailText); - } - }, - - _onExpandGroupTreeNode: function(groupPath) { - bobj.crv.logger.info('UIAction GroupTree.ExpandNode'); - var expPathPointer = this.getCurrentExpandedPaths(); - var groupPathArray = groupPath.split('-'); - // Iterates through groupPath, and adds indxes to currentExpandedPaths if not existing - for(var i = 0 , end = groupPathArray.length; i < end; i++) { - var nodeID = groupPathArray[i]; - if(!expPathPointer[nodeID]) { - expPathPointer[nodeID] = {}; - } - expPathPointer = expPathPointer[nodeID]; - } - - }, - - _onRefresh: function() { - bobj.crv.logger.info('UIAction Toolbar.Refresh'); - - var commonState = this._getCommonState(); - var useAsyncForRefresh = true; - if (commonState && commonState.useAsyncForRefresh !== undefined) { - useAsyncForRefresh = commonState.useAsyncForRefresh; - } - - this._request({tb:'refresh'}, bobj.crv.config.useAsync && useAsyncForRefresh, true); - }, - - _onSearch: function(searchText) { - bobj.crv.logger.info('UIAction Toolbar.Search'); - this._request({tb:'search', text:encodeURIComponent(searchText)}, bobj.crv.config.useAsync, true); - }, - - /** - * Full Prompt page should use post back request even if ajax is enabled as it is unable to process the ajax response - */ - _canUseAsync : function () { - return this._viewer != null && bobj.crv.config.useAsync; - }, - - _onFlexParam: function(paramData){ - this._request({'crprompt':'flexPromptingSetValues', 'paramList':paramData, 'isFullPrompt': true}, this._canUseAsync()); - }, - - _onFlexLogon: function(logonData) { - for (var i = 0, len = logonData.length; i < len; i++) { - this._addRequestField(logonData[i].field, logonData[i].value); - } - - this._request({'crprompt':'logon'}, this._canUseAsync()); - }, - - /** - * - * @param isFullPrompt [String] a flag indicating whether the current prompt is full prompt which refreshes report content - * @return - */ - _onSubmitPromptEnginePrompts: function(isFullPrompt) { - - isFullPrompt = eval(isFullPrompt); //converting it to boolean type - var useAjax = this._viewer && this._viewer.isPromptDialogVisible(); //use ajax request when prompt dialog is visible - - /* - * this._name is used to get a unique id for prompt variables - * For dhtml and JSF viewer it will be the name of the viewer - * For webform viewer it will be the 'unique UI id' - */ - var valueIDKey = 'ValueID' + this._name; - var contextIDKey = 'ContextID' + this._name; - var contextHandleIDKey = 'ContextHandleID' + this._name; - - var valueID = document.getElementById(valueIDKey); - if (valueID) { - this._addRequestField(valueIDKey, valueID.value); - } - - var contextID = document.getElementById(contextIDKey); - if (contextID) { - this._addRequestField(contextIDKey, contextID.value); - } - - var contextHandleID = document.getElementById(contextHandleIDKey); - if (contextHandleID) { - this._addRequestField(contextHandleIDKey, contextHandleID.value); - } - - this._request({'crprompt':'pmtEngine', 'isFullPrompt': isFullPrompt}, useAjax); - - // These elements are dynamically created - we should delete them as soon after their job is done. - this._removeRequestField(valueIDKey); - this._removeRequestField(contextIDKey); - this._removeRequestField(contextHandleIDKey); - - }, - - _onSubmitStaticPrompts: function(formName) { - this._addRequestFields(formName); - this._request({'crprompt':'param'}, false); - }, - - _onSubmitDBLogon: function(formName) { - var useAjax = this._viewer && this._viewer.isPromptDialogVisible(); //use ajax request when prompt dialog is visible - - if(this._viewer) - this._viewer.hidePromptDialog(); - this._addRequestFieldsFromContent(formName); - /** - * use async when viewer is loaded (instead of promptpage) and it's allowed to make async requests - */ - - this._request({'crprompt':'logon'}, useAjax); - }, - - _onSubmitPrintPdf: function (start, end, isOneClickPrint) { - this._handlePrintOrExport (start, end, 'PDF', isOneClickPrint); - }, - - _onSubmitExport: function (start, end, format) { - this._handlePrintOrExport (start, end, format); - }, - - _handlePrintOrExport: function (start, end, format, isOneClickPrint) { - var isRange = true; - var useIframe = false; - if (!start && !end) { - isRange = false; - } - - if (!format) { - format = 'PDF'; - } - - var isOneClickPDFPrinting = (format == 'PDF' && isOneClickPrint); - var reqObj = {text:format, range:isRange+''}; - reqObj.tb = isOneClickPDFPrinting ? 'crpdfprint' : 'crexport'; - if (isRange) { - reqObj['from'] = start + ''; - reqObj['to'] = end + ''; - } - - bobj.crv.logger.info('UIAction Export.Submit ' + format); - // we want to redirect export requests to a Servlet (ASP should do nothing different) - if (this._ioHandler instanceof bobj.crv.ServletAdapter || this._ioHandler instanceof bobj.crv.FacesAdapter) { - useIframe = true; //always use iframe for exporting/printing in Java DHTML Viewer - this._ioHandler.redirectToServlet (); - this._ioHandler.addRequestField ('ServletTask', 'Export'); - this._ioHandler.addRequestField ('LoadInIFrame', useIframe); - } - else if(this._ioHandler instanceof bobj.crv.AspDotNetAdapter){ - useIframe = true;//always use iframe for exporting/printing in ASP - } - else { - useIframe = isOneClickPDFPrinting; - } - this._request(reqObj, false, false, useIframe); - }, - - _onCancelParamDlg: function() { - bobj.crv.logger.info('UIAction PromptDialog.Cancel'); - this._viewer.hidePromptDialog(); - }, - - _onReceiveParamDlg: function(html) { - this._viewer.showPromptDialog(html); - }, - - _onSort: function(sortArgs) { - bobj.crv.logger.info('UIAction Report.Sort'); - this._request(sortArgs, bobj.crv.config.useAsync, true); - }, - - _onNavigateReportPart: function(navArgs) { - bobj.crv.logger.info('UIAction ReportPart.Navigate'); - this._request(navArgs, false); - }, - - _onNavigateBookmark: function(navArgs) { - bobj.crv.logger.info('UIAction Report.Navigate'); - this._request(navArgs, bobj.crv.config.useAsync, true); - }, - - getCurrentExpandedPaths: function() { - var viewState = this._getViewState(); - if(viewState) { - return viewState.gpTreeCurrentExpandedPaths; - } - - //This return shouldn't get exectued - return {}; - }, - - applyParams: function(params) { - // TODO Dave can we just set the parsm into state since they've - // gone through client side validation? - if (params) { - bobj.crv.logger.info('UIAction ParameterPanel.Apply'); - var clonedParams = []; - var cloneFunc = MochiKit.Base.clone; - for(var i = 0, len = params.length; i < len; i++) { - var clonedParam = cloneFunc(params[i]); - clonedParam.modifiedValue = null; - clonedParam.value = cloneFunc(params[i].value); /* _encodeParameter modifes deep copy of value so I have to make a copy of it before encoding it */ - if (this._ioHandler instanceof bobj.crv.ServletAdapter || this._ioHandler instanceof bobj.crv.FacesAdapter) { - this._encodeParameter(clonedParam); - } - clonedParams.push(clonedParam); - } - - this._request({crprompt: 'paramPanel', paramList: clonedParams}, bobj.crv.config.useAsync, true); - } - }, - - getServletURI : function () { - var servletURL = ""; - if (this._ioHandler instanceof bobj.crv.ServletAdapter - || this._ioHandler instanceof bobj.crv.FacesAdapter) { - servletURL = this._ioHandler._servletUrl; - } - - return servletURL; - }, - - /** - * The loading time of HTML prompting resources is changed from initialization to on demand to reduce the initial loading time. - * When a request for advance dialog is triggered, resources are loaded prior to sending the request to server - * @param callBack - * @return - */ - showAdvancedParamDialog : function(param) { - var paramOpts = this._getCommonProperty('paramOpts'); - if(!paramOpts.canOpenAdvancedDialog) { - this.showError(L_bobj_crv_AdvancedDialog_NoAjax, L_bobj_crv_EnableAjax); - } - else { - this._focusedParamName = param.paramName; - - if (this._isPromptingTypeFlex()) { - var flexAdapter = bobj.crv.params.ViewerFlexParameterAdapter; - flexAdapter.setCurrentIParamInfo (this._name, this._paramCtrl, param); - - if (!flexAdapter.hasIParamPromptUnitData(this._name)) { - /* Need to fetch the interactive prompt data*/ - this._request({promptDlg: this._cloneParameter(param)}, true); - } else { - /* Already have enough data to prompt*/ - /* Creating 5+ range controls can take a long time */ - if (param.allowMultiValue && param.allowRangeValue && - param.modifiedValue.length > 5) { - if (this._reportProcessing) { - this._reportProcessing.Show(); - } - } - var closeCB = this._getPromptDialogCloseCB(); - this._viewer.showFlexPromptDialog(this.getServletURI(), closeCB); - } - } else { - /* Need to fetch the interactive parameter HTML*/ - this._request({promptDlg: this._cloneParameter(param)}, true); - } - } - }, - - _cloneParameter : function(param) { - var clonedParam = MochiKit.Base.clone(param); - clonedParam.defaultValues = null; // ADAPT00776482 - clonedParam.modifiedValue = null; - if (this._ioHandler instanceof bobj.crv.ServletAdapter || this._ioHandler instanceof bobj.crv.FacesAdapter) { - // we need to clone the value again - clonedParam.value = MochiKit.Base.clone(param.value); - clonedParam = this._encodeParameter(clonedParam); - } - return clonedParam; - }, - - _encodeParameter: function(p) { - // we only worry about the "%" sign in the "string" values, param name and the report name. - // ignore the other properties of the parameter because they are not used on the server side - if (p) { - if (p.value && p.valueDataType == bobj.crv.params.DataTypes.STRING) { - for (var i = 0, valuesLen = p.value.length; i < valuesLen; i++) { - if (bobj.isString(p.value[i])) { //discrete value - p.value[i] = encodeURIComponent(p.value[i]); - } - else if (bobj.isObject(p.value[i])) { //range value - var actualValue = null; - if (p.value[i].beginValue) { - actualValue = bobj.crv.params.getValue(p.value[i].beginValue); - p.value[i].beginValue = encodeURIComponent(actualValue); - } - if (p.value[i].endValue) { - actualValue = bobj.crv.params.getValue(p.value[i].endValue); - p.value[i].endValue = encodeURIComponent(actualValue); - } - } - } - } - - if (p.paramName) { - p.paramName = encodeURIComponent(p.paramName); - } - - if (p.reportName) { - p.reportName = encodeURIComponent(p.reportName); - } - } - - return p; - }, - - /** - * Set a property in the state associated with the current report view - * - * @param propName [String] The name of the property to set - * @param propValue [Any] The value of the property to set - */ - _setViewProperty: function(propName, propValue) { - var viewState = this._getViewState(); - if (viewState) { - viewState[propName] = propValue; - } - }, - - /** - * Get a property in the state associated with the current report view - * - * @param propName [String] The name of the property to retrieve - */ - _getViewProperty: function(propName) { - var viewState = this._getViewState(); - if (viewState) { - return viewState[propName]; - } - return null; - }, - - /** - * Set a property that's shared by all report views from the state - * - * @param propName [String] The name of the property to set - * @param propValue [String] The value to set - */ - _setCommonProperty: function(propName, propValue) { - var state = this._getCommonState(); - if (state) { - state[propName] = propValue; - } - }, - - /** - * Get a property that's shared by all report views from the state - * - * @param propName [String] The name of the property to retrieve - */ - _getCommonProperty: function(propName) { - var state = this._getCommonState(); - if (state) { - return state[propName]; - } - return null; - }, - - /** - * Set the UI properties to match the state associated with viewId - * - * @param viewId [String - optional] - */ - _updateUIState: function(viewId) { - - }, - - /** - * Get the state associated with the current report view - * - * @return State object or null - */ - _getViewState: function() { - var compState = bobj.crv.stateManager.getComponentState(this._name); - if (compState && compState.curViewId !== undefined) { - return compState[compState.curViewId]; - } - return null; - }, - - /** - * Get the state that's common to all report views - * - * @return State object or null - */ - _getCommonState: function() { - var compState = bobj.crv.stateManager.getComponentState(this._name); - if (compState) { - return compState.common; - } - return null; - }, - - /** - * Create CRPrompt instances from interactive parameters in state and pass - * them to the Viewer widget so it can display them in the parameter panel. - */ - _setInteractiveParams: function(paramList, onFinishCB) { - if (!this._ioHandler.canUseAjax()) { - var paramPanel = this._viewer.getParameterPanel(); - if (paramPanel) { - paramPanel.showError(L_bobj_crv_InteractiveParam_NoAjax); - } - onFinishCB(); - return; - } - - if (!paramList) { - var stateParamList = this._getCommonProperty('iactParams'); - - var unusedParamList = []; - if (stateParamList) { - var Parameter = bobj.crv.params.Parameter; - var paramList = []; - - for (var i = 0; i < stateParamList.length; ++i) { - if (stateParamList[i].isInUse != null && !stateParamList[i].isInUse) - unusedParamList.push(new Parameter(stateParamList[i])); - else - paramList.push(new Parameter(stateParamList[i])); - } - } - } - - if (paramList && paramList.length) { - var callback = function (viewerListener, paramList) { - return function () { - var paramPanel = viewerListener._viewer.getParameterPanel(); - if (paramPanel) { - var paramOpts = viewerListener._getCommonProperty('paramOpts'); - viewerListener._paramCtrl = new bobj.crv.params.ParameterController(paramPanel, viewerListener, paramOpts); - viewerListener._paramCtrl.setParameters(paramList, onFinishCB); - viewerListener._paramCtrl.setUnusedParameters(unusedParamList); - } - } - } - - bobj.loadJSResourceAndExecCallBack(bobj.crv.config.resources.ParameterControllerAndDeps, callback(this, paramList)); - } - else { - onFinishCB(); - } - }, - - _isPromptingTypeFlex: function() { - var type = this.getPromptingType(); - return (type && type.toLowerCase() == bobj.crv.Viewer.PromptingTypes.FLEX); - }, - - clearAdvancedPromptData: function() { - if (this._isPromptingTypeFlex()){ - bobj.crv.params.ViewerFlexParameterAdapter.clearIParamPromptUnitData(this._name); - } - }, - - _onPromptDialogUpdate: function(update) { - if (update.resolvedFields) { - this._viewer.hidePromptDialog(); - - if(this._paramCtrl) { - for (var i = 0; i < update.resolvedFields.length; i++) { - var param = new bobj.crv.params.Parameter(update.resolvedFields[i]); - this._paramCtrl.updateParameter(param.paramName, param.getValue()); - } - this._paramCtrl._updateToolbar(); - } - } - else { - if (this._isPromptingTypeFlex()) { - if(update.script) { - /* update.script contains JavaScript code for updating ViewerFlexParameterAdapter class*/ - bobj.evalInWindow(update.script); - var closeCB = this._getPromptDialogCloseCB(); - this._viewer.showFlexPromptDialog(this.getServletURI(), closeCB); - } - } - else - { - if(update.html) { - if (this._viewer.isPromptDialogVisible()) { - this._viewer.updatePromptDialog(update.html); - } - else { - var closeCB = this._getPromptDialogCloseCB(); - this._viewer.showPromptDialog(update.html, closeCB); - } - } - } - - } - }, - - _getPromptDialogCloseCB: function () { - var closeCB = null; - if (this._paramCtrl && this._focusedParamName) { - closeCB = this._paramCtrl.getFocusAdvButtonCB(this._focusedParamName); - - /* Clear the name so that if the dialog is used for a full prompt */ - /* it won't have the focus callback */ - this._focusedParamName = null; - } - return closeCB; - }, - - _onPromptingAsyncRequest: function(evArgs) { - this._request(evArgs, true, false, false); - }, - - _request: function(evArgs, allowAsynch, showIndicator, useIframe, callback) { - var pageState = bobj.crv.stateManager.getCompositeState(); - var bind = MochiKit.Base.bind; - var defaultCallback = callback ? callback : bind(this._onResponse, this, evArgs); - var defaultErrCallback = bind(this._onIOError, this); - if (!bobj.isBoolean (showIndicator)) { - showIndicator = true; - } - - if (this._reportProcessing && showIndicator) { - this._reportProcessing.delayedShow (); - } - - var deferred = this._ioHandler.request(pageState, this._name, evArgs, allowAsynch, useIframe, defaultCallback, defaultErrCallback); - - if (deferred) { - if (this._reportProcessing && showIndicator) { - this._reportProcessing.setDeferred (deferred); - } - - deferred.addCallback(defaultCallback); - - deferred.addErrback(defaultErrCallback); - } - }, - - _onResponse: function(evArgs, response) { - var json = null; - if (bobj.isString(response)) { - json = MochiKit.Base.evalJSON(response); - } else { - json = MochiKit.Async.evalJSONRequest(response); - } - - if (json) { - if (json.needsReload) { - this._request(evArgs, false, true); - return; - } - - if(json.redirect) { - window.location = json.redirect; - return; - } - - if (json.status && this._viewer && (json.status.errorMessage || json.status.debug) ) { - var errorMessage = json.status.errorMessage || L_bobj_crv_RequestError; - this.showError(errorMessage, json.status.debug); - } - - if (json.state) { - var jsonState = json.state; - if (bobj.isString(jsonState)) { - jsonState = MochiKit.Base.evalJSON(jsonState); - } - bobj.crv.stateManager.setComponentState(this._name, jsonState); - } - - if (json.update) { - if (json.update.promptDlg) { - this._onPromptDialogUpdate(json.update.promptDlg); - bobj.crv.logger.info('Update InteractiveParams'); - } - else if (this._viewer) { - this._viewer.update(json.update); - bobj.crv.logger.info('Update Viewer'); - } - } - - if (json.script && json.script.length > 0) { - bobj.evalInWindow(json.script); - bobj.crv.logger.info('Execute Script'); - } - - } - - if (this._reportProcessing) { - this._reportProcessing.cancelShow (); - } - - if(bobj.isParentWindowTestRunner()) - MochiKit.Signal.signal(this._viewer, "updated"); - }, - _onIOError: function(response) { - - if (this._reportProcessing.wasCancelled () == true) { - return; - } - - if (this._viewer) { - var error = this._ioHandler.processError (response); - var detailText = ''; - if (bobj.isString(error)) { - detailText = error; - } - else { - for (var i in error) { - if (bobj.isString(error[i]) || bobj.isNumber(error[i])) { - detailText += i + ': ' + error[i] + '\n'; - } - } - } - - this.showError(L_bobj_crv_RequestError, detailText); - } - - if (this._reportProcessing) { - this._reportProcessing.cancelShow (); - } - }, - - _saveViewState: function() { - var pageState = bobj.crv.stateManager.getCompositeState(); - this._ioHandler.saveViewState(pageState, this._name); - }, - - /** - * Private. Retrieve all children of the given form and add them to the request. - * - * @param formName [String] Name of the form - */ - _addRequestFields: function(formName) { - var frm = document.getElementById(formName); - if (frm) { - for (var i in frm) { - var frmElem = frm[i]; - if (frmElem && frmElem.name && frmElem.value) { - this._addRequestField(frmElem.name, frmElem.value); - } - } - } - }, - - /** - * Private. Retrieve all input fields inside the content div element and add them to the request. - * - * @param contentId [String] Id of the containing div element - */ - _addRequestFieldsFromContent: function(contentId) { - var parent = document.getElementById(contentId); - if (!parent) - return; - - var elements = MochiKit.DOM.getElementsByTagAndClassName("input", null, parent); - - for (var i in elements) { - var inputElement = elements[i]; - if(inputElement.type && inputElement.type.toLowerCase() == "checkbox" && inputElement.name) { - if(inputElement.checked) - this._addRequestField(inputElement.name, inputElement.value ); - } - else if (inputElement && inputElement.name && inputElement.value) { - this._addRequestField(inputElement.name, inputElement.value); - } - } - }, - - /** - * Private. Add the given name and value as a request variable. - * - * @param fldName [String] Name of the field - * @param fldValue [String] Value of the field - */ - _addRequestField: function(fldName, fldValue) { - this._ioHandler.addRequestField(fldName, fldValue); - }, - - /** - * Private. Add the given name and value as a request variable. - * - * @param fldName [String] Name of the field - */ - _removeRequestField: function(fldName) { - this._ioHandler.removeRequestField(fldName); - }, - - _onHyperlinkClicked: function(args) { - args = MochiKit.Base.parseQueryString(args); - var ls = this._viewer.getEventListeners('hyperlinkClicked'); - var handled = false; - if (ls) { - for (var i = 0, lsLen = ls.length; i < lsLen; i++) { - if (ls[i](args) == true){ - handled = true; - } - } - } - - if (handled) {return;} - - var w = window; - if (args.target && args.target != '_self'){ - w.open(args.url, args.target); - } else { - w.location = args.url; - } - - } -}; - - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/WarningPopup.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/WarningPopup.js deleted file mode 100644 index 8443a1a76..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/WarningPopup.js +++ /dev/null @@ -1,65 +0,0 @@ -if (typeof bobj === 'undefined') { - bobj = {}; -} -if (typeof bobj.crv === 'undefined') { - bobj.crv = {}; -} -if (typeof bobj.crv.WarningPopup === 'undefined') { - bobj.crv.WarningPopup = {}; -} - -bobj.crv.WarningPopup.getInstance = function() { - if (bobj.crv.WarningPopup.__instance === undefined) - bobj.crv.WarningPopup.__instance = new bobj.crv.WarningPopup.Class(); - - return bobj.crv.WarningPopup.__instance; -}; - -bobj.crv.WarningPopup.Class = function() { - this.layer = null; - this.id = bobj.uniqueId(); -}; - -bobj.crv.WarningPopup.Class.prototype = { - show : function(text, xPos, yPos) { - if (!this.layer) { - this.init(); - } - - this.layer.style.top = yPos + "px"; - this.layer.style.left = xPos + "px"; - this.txtLayer.innerHTML = text; - this.layer.style.display = "block"; - }, - - hide : function() { - if (this.layer) - this.layer.style.display = "none"; - }, - - getHTML : function() { - return bobj.html.DIV( { - 'class' : 'WarningPopup', - id : this.id - }, bobj.html.IMG( { - id : this.id + "img", - style : { - position : 'absolute', - left : '10px', - top : '-19px' - }, - src : bobj.crvUri('images/WarningPopupTriangle.gif') - }), bobj.html.DIV( { - id : this.id + "txt", - style : { - padding : "5px" - } - })); - - }, - init : function() { - append2(document.body, this.getHTML()); - this.layer = getLayer(this.id); - this.txtLayer = getLayer(this.id + "txt"); - } -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/api.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/api.js deleted file mode 100644 index 3cc3d3fb4..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/api.js +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright (c) Business Objects 2010. All rights reserved. -// CrystalReports DHTML Viewer SDK -// Version: Internal (Unsupported) -// ################################################################################### -// CRViewer object contains utilities that allow interaction with the CrystalReports DHTML viewer. -// CRViewer has the following properties and methods defined. -// CRViewer.getViewer() -// returns an CRViewer.Viewer object that represents the DHTML viewer on the current page. Use this object to interact with the DHTML viewer. -// CRViewer.getViewer().addEventListener (event type, listener function) -// Registers a listener function with the given event type. The listener function should return true if the event was handled and normal viewer processing should not occur. -// CRViewer.getViewer().removeEventListener (event type, listener function) -// Removes the listener for the given event type. -// CRViewer.Events -// returns an Array of event types that can be handled using event listeners -// CRViewer.Events.HyperlinkClicked -// An event that will be fired when a hyperlink is clicked. Note this event will only occur if the viewer is configured to render hyperlinks using javascript. -// Arguments to listeners of these events will be as follows: { url : 'url string', target : 'target for the link'} -// ################################################################################### - -if (typeof (CRViewer) == "undefined") { - CRViewer = { - - getViewer : function (/* optional */ viewerName) { - return this._getViewer(viewerName); - }, - - Events : { - HyperlinkClicked : "hyperlinkClicked" - }, - - _viewersMap : [], - _getViewer : function (viewerName) { - var map = this._viewersMap; - if (viewerName) { - for (var i = 0, len = map.length; i < len; i++) { - if (map[i].id == viewerName) { - return map[i]; - } - } - } else if (map.length > 0) { - return map[0]; - } - - return this._createViewer(viewerName); - }, - - _getRealViewer : function (viewerName) - { - if (viewerName) { - return getWidgetFromID(viewerName); - } else { - if (_widgets) { - for (var i = 0, len = _widgets.length; i < len; i++) { - if (_widgets[i].widgetType == "Viewer") { - return _widgets[i]; - } - } - } - } - }, - - _createViewer : function (viewerName) - { - var realViewer = this._getRealViewer(viewerName); - - if (realViewer && realViewer.widgetType == "Viewer") { - var o = {}; - o.id = realViewer.id; - o.realViewer = realViewer; - - o.addEventListener = function (event, listener) { - this.realViewer.addViewerEventListener(event, listener); - } - - o.removeEventListener = function (event, listener) { - this.realViewer.removeViewerEventListener(event, listener); - } - - this._viewersMap[this._viewersMap.length] = o; - return o; - } - } - }; -} \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/bobjcallback.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/bobjcallback.js deleted file mode 100644 index 4c6062249..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/bobjcallback.js +++ /dev/null @@ -1,34 +0,0 @@ -function bobj_WebForm_Callback (viewerID, callbackEventArgument, formID) { - if (!viewerID || !formID) { - return; - } - - var frm = document.getElementById(formID); // get the form by using viewerID - - if (!frm) { - return; - } - - var strArr = []; - for (var i = 0, itemCount = frm.elements.length; i < itemCount; i++) { - var elem = frm.elements[i]; - if (elem.name && elem.value) { - strArr.push(elem.name); - strArr.push('='); - strArr.push(encodeURIComponent(elem.value)); - strArr.push('&'); - } - } - - strArr.push('__BOBJ_CALLBACK_EVENTTARGET='); - strArr.push(encodeURIComponent(viewerID)); - strArr.push('&__BOBJ_CALLBACK_EVENTARGUMENT='); - strArr.push(encodeURIComponent(callbackEventArgument)); - var qryString = strArr.join(''); - - var req = MochiKit.Async.getXMLHttpRequest(); - req.open("POST", frm.action, true); - req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - req.setRequestHeader('Accept','application/json'); - return MochiKit.Async.sendXMLHttpRequest(req, qryString); -} \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/common.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/common.js deleted file mode 100644 index bd5f33821..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/common.js +++ /dev/null @@ -1,776 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof bobj == 'undefined') { - bobj = {}; -} - -if (typeof bobj.constants == 'undefined') { - bobj.constants = { - modalLayerIndex:1000 - }; -} - -/** - * @return [String] Returns a different id each time it's called - */ -bobj.uniqueId = function() { - return 'bobjid_' + (++bobj.uniqueId._count); -}; - -if (typeof bobj.uniqueId._count == 'undefined') { - bobj.uniqueId._count = new Date().getTime(); -} - -/** - * Like MochiKit.Base.update except that it checks each item in obj against - * a test function before adding it to self. - * - * @param test [Function] function that returns a boolean when passed (self, obj, key) - * @param self [Object|null] object to be updated - * @param obj [Object] object to copy properties from - */ -bobj.updateIf = function (test, self, obj/*, ... */) { - if (self === null) { - self = {}; - } - for (var i = 1, len = arguments.length; i < len; i++) { - var o = arguments[i]; - if (typeof(o) != 'undefined' && o !== null) { - for (var k in o) { - if (test(self, obj, k)) { - self[k] = o[k]; - } - } - } - } - return self; -}; - -/** - * Copy properties from obj to self if the properties are undefined in self - */ -bobj.fillIn = function (self, obj) { - var test = function(self, obj, k) { - return (typeof(self[k]) == 'undefined'); - } - bobj.updateIf(test, self, obj); -}; - - -bobj.isObject = function(obj) { - return (obj && typeof obj == 'object'); -}; - -bobj.isArray = function(obj) { - if(bobj.isObject(obj)) { - try { - return obj.constructor == Array; - } - catch(e) { - return false; - } - } - - return false; -}; - -bobj.isString = function(obj) { - return (typeof(obj) == 'string'); -}; - -bobj.isNumber = function(obj) { - return typeof(obj) == 'number' && isFinite(obj); -}; - -bobj.isBoolean = function(obj) { - return typeof obj == 'boolean'; -}; - -bobj.isFunction = function(obj) { - return typeof(obj) == 'function'; -}; - -/** - * Checks for the border box model, where css width includes padding and borders. - * IE uses this box model when a strict dtd is not specified. - * - * @return [boolean] Returns true if the border box model is being used - */ -bobj.isBorderBoxModel = function() { - if (typeof bobj.isBorderBoxModel._cachedValue == 'undefined') { - /* - * TODO: It is unnecessary to create DIV to check border box model. All we need to do is check _ie && quirksMode - * I didn't remove it for sake of not breaking different scenarios (requires alot of testing) - */ - if(document.body) { - var box = document.createElement('div'); - box.style.width = '10px'; - box.style.padding = '1px'; - box.style.position = 'absolute'; - box.style.visibility = 'hidden'; - - document.body.appendChild(box); - bobj.isBorderBoxModel._cachedValue = (box.offsetWidth == 10); - document.body.removeChild(box); - } - else { - return _ie && bobj.isQuirksMode(); - } - } - return bobj.isBorderBoxModel._cachedValue; -}; - -/** - * @return [boolean] True if the document is rendering in quirks mode - */ -bobj.isQuirksMode = function() { - return (document.compatMode != 'CSS1Compat'); -}; - -/* Sets the visual style of the specified element - * - * @param element [DOM node] - * @param visualStyle {} object containing visual styles - */ -bobj.setVisualStyle =function(element,visualStyle) { - - if(element === null || visualStyle === null) { - return; - } - - var elemStyle = element.style; - - if(visualStyle.className) - element.className = visualStyle.className; - - MochiKit.Iter.forEach ( [ "background", "borderWidth", "borderStyle", "borderColor", "fontFamily", "fontStyle", "fontSize", - "fontWeight", "textDecoration", "color", "width", "height", "left", "top" ], function(styleName) { - if (visualStyle[styleName]) - elemStyle[styleName] = visualStyle[styleName]; - }); - -}; - -/** - * Sets the outer size of an element, including padding, borders and margins. - * - * Note: Non-pixel units are ignored - * - * @param node [DOM node] - * @param w [Int - optional] Width in pixels - * @param h [Int - optional] Height in pixels - * @param excludeMargins [bool - optional] When true, margins are not included - * in the box size. - */ -bobj.setOuterSize = function(node, w, h, excludeMargins) { - var origStyle = null; - var nodeStyle = node.style; - if (nodeStyle.display == 'none') { - // Nodes have to be displayed to get their calculated styles. - // We display them but make them invisible and absolutely positioned - // so they don't affect the layout. - origStyle = { - visibility: nodeStyle.visibility, - position: nodeStyle.position, - display: 'none' - }; - - nodeStyle.visibility = 'hidden'; - nodeStyle.position = 'absolute'; - nodeStyle.display = ''; - } - - function pixels (selector) { - var value = MochiKit.DOM.getStyle(node, selector); - if (bobj.isString(value) && value.substring(value.length - 2 == 'px')) { - return (parseInt(value, 10) || 0); - } - return 0; - } - - if (bobj.isNumber(w)) { - if (!bobj.isBorderBoxModel()) { - w -= pixels('border-left-width'); - w -= pixels('border-right-width'); - w -= pixels('padding-left'); - w -= pixels('padding-right'); - - if(excludeMargins) { - w -= pixels('margin-left'); - w -= pixels('margin-right'); - } - } - nodeStyle.width = Math.max(0, w) + 'px'; - } - - if (bobj.isNumber(h)) { - if (!bobj.isBorderBoxModel()) { - if(excludeMargins) { - h -= pixels('margin-top'); - h -= pixels('margin-bottom'); - } - h -= pixels('border-top-width'); - h -= pixels('border-bottom-width'); - h -= pixels('padding-top'); - h -= pixels('padding-bottom'); - } - nodeStyle.height = Math.max(0, h) + 'px'; - } - - if (origStyle) { - nodeStyle.display = origStyle.display; - nodeStyle.position = origStyle.position; - nodeStyle.visibility = origStyle.visibility; - } -}; - -/** - * Get the node that contains a child widget. - * - * @param child [object] the widget whose parent node to be looked for - */ -bobj.getContainer = function(child) { - if (child && child.layer) { - return child.layer.parentNode; - } - return null; -}; - -/** - * Checks whether elem has a parent with the tag name equivalent to parentTagName - * - * @param elem [HTML node] the element whose parent is checked against parentTagName - * @param parentTagName [String] Parent's tagName ie) TABLE - * - * - * @return [boolean] True if elem has a parent with tagName equivalent to parentTagName - */ -bobj.checkParent = function(elem,parentTagName) { - var foundParent = false; - if(elem && parentTagName) { - parentTagName = parentTagName.toUpperCase(); - var parent = elem.parentNode; - - while(parent) { - if(parent.tagName == parentTagName) { - foundParent = true; - break; - } - parent = parent.parentNode; - } - } - - return foundParent; -}; - -/** - * Implements Array.slice for array-like objects. For example, the special - * "arguments" variable within function calls is array-like but doesn't have - * a slice method. - * - * @param arrayLike [Object] An array-like object as defined by MochiKit.Base.isArrayLike. - * @param begin [Number] Zero-based index at which to begin extraction. - * @param end [Number] Zero-based index at which to end extraction. - * Extracts up to but not including end. - * - * @return [Array] A shallow copy of the portion of the array specified or null if invalid argument. - */ -bobj.slice = function(arrayLike, begin, end) { - if (bobj.isArray(arrayLike)) { - return arrayLike.slice(begin, end); - } - else if (MochiKit.Base.isArrayLike(arrayLike)) { - var retArray = []; - - var endIdx = arrayLike.length; - if (bobj.isNumber(end) && end < endIdx) { - endIdx = end; - } - - begin = Math.max(begin, 0); - - for (var i = begin; i < endIdx; ++i) { - retArray.push(arrayLike[i]); - } - - return retArray; - } - return null; -}; - -/** - * Extract a range of elements from a string or array-like list (non-destructive) - * - * @param list [String | Array-Like] - * @param start [Int] Index of start, inclusive - * @param end [Int] Index of end, exclusive - * - * @return Array of extracted elements or Null - */ -bobj.extractRange = function(list, start, end) { - if (list && bobj.isNumber(start)) { - if (!bobj.isNumber(end) || end > list.length) { - end = list.length; - } - - start = Math.max(0, start); - - if (start < end) { - var s1 = 0, e1 = start; - var s2 = end, e2 = list.length; - - if (list.substring) { - return (list.substring(s1, e1) + list.substring(s2, e2)); - } - else { - return bobj.slice(list, s1, e1).concat(bobj.slice(list, s2, e2)); - } - } - } - return list; -}; - -/** - * Returns a value with a unit appended - * - * @param val [int or string] - * @param unit [sring - optional] Defaults to 'px' - * - * @return [string] Returns val as a string with unit appended if val is a - * number. Returns val without modification if val is not a number. - */ -bobj.unitValue = function(val, unit) { - if (bobj.isNumber(val)) { - return val + (unit || 'px'); - } - return val; -}; - -/** - * Evaluate an expression in the window (global) scope - * - * @param expression [String] Expression to evaluate - * - * @return Returns the result of the evaluation - */ -bobj.evalInWindow = function(expression) { - if (window.execScript) { // Internet Explorer - return window.execScript(expression); - } - else { - return MochiKit.Base.bind(eval, window, expression).call(); - } -}; - -/** - * Loads specified resource and executes callback - */ -bobj.loadJSResourceAndExecCallBack = function(resource, callback) -{ - if(!resource || !callback) - return; // if arguments are not defined, just return - - /* - * If bobj.crv.config.useCompressedScripts is true, then the resource is already loaded and we can skip loading - */ - if(!resource.isLoaded) { - var onLoad = function(resource, callback, response) { - resource.isLoaded = true; - bobj.evalInWindow(response.responseText); - callback.apply(); - }; - - var req = MochiKit.Async.getXMLHttpRequest(); - req.open("GET", bobj.crvUri(resource.path), true); - req.setRequestHeader('Accept','application/x-javascript,application/javascript, text/javascript'); - var deferred = MochiKit.Async.sendXMLHttpRequest(req); - deferred.addCallback(MochiKit.Base.bind(onLoad, this, resource, callback)); - } - else { - setTimeout(function(){callback.apply()},0); - } -}; - -/** - * Remove whitespace from the left end of a string. - * - * @param str [String] - * - * @return [String] Returns a string with no leading whitespace - */ -bobj.trimLeft = function(str) { - str = str || ''; - return str.replace(/^\s+/g, ''); -}; - -/** - * Remove whitespace from the right end of a string. - * - * @param str [String] - * - * @return [String] Returns a string with no trailing whitespace - */ -bobj.trimRight = function(str) { - str = str || ''; - return str.replace(/\s+$/g, ''); -}; - -/** - * Remove whitespace from both ends of a string. - * - * @param str [String] - * - * @return [String] Returns a string with no leading or trailing whitespace - */ -bobj.trim = function(str) { - return bobj.trimLeft(bobj.trimRight(str)); -}; - -/** - * Check if the two inputs (and their contents) are equal. - * - * @param obj1 [Any] - * @param obj2 [Any] - * - * @return [boolean] Returns true if the two inputs are equal. - */ -bobj.equals = function (obj1, obj2) { - if (typeof(obj1) != typeof(obj2)) { - return false; - } - - if (bobj.isObject(obj1)) { - var same = true; - for (var prop in obj1) { - same = same && bobj.equals(obj1[prop], obj2[prop]); - } - return same; - } - else { - return obj1 == obj2; - } -}; - -/** - * Creates a stylesheet link and adds it to document body - * @param1 href [String] location of css file - * - */ -bobj.includeLink = function(href) { - var head = document.getElementsByTagName("head")[0]; - var body = document.body; - - var link = document.createElement("link"); - link.setAttribute("rel","stylesheet"); - link.setAttribute("type","text/css"); - link.setAttribute("href",href); - - if(head) { - head.appendChild(link); - } - else if(body) { - body.appendChild(link); - } - -}; - -/** - * @param hrefArray Array of url of css files - * @param callback function that gets executed once all css files are loaded - */ -bobj.includeCSSLinksAndExecuteCallback = function (hrefArray, callback) { - if(hrefArray == null || hrefArray.length < 1) { - callback.apply(); - return; - } - - var cb = function () { - var me = arguments.callee; - var callback = me.callback; - me.hrefCount--; - if(me.hrefCount == 0) - callback.apply(); - } - - cb.hrefCount = hrefArray.length; - cb.callback = callback; - - for(var i = 0, len = hrefArray.length; i < len; i++) { - bobj.includeCSSLinkAndExecuteCallback(hrefArray[i], cb); - } -}; - -bobj.includeCSSLinkAndExecuteCallback = function(href, callback) { - var cssLinkId = encodeURIComponent(href); - - /*if a css file with same href is already added, execute cb and continue */ - if(getLayer(cssLinkId)) { - callback.apply(); - return; - } - - /*if css file successfully loads, add css text and call callback*/ - var onLoad = function(callback, linkId, response) { - bobj.addStyleSheet(response.responseText, linkId); - callback.apply(); - }; - - /*if css file fails to load, continue with callback */ - var onError = function(callback) { - callback.apply(); - }; - - var req = MochiKit.Async.getXMLHttpRequest(); - req.open("GET", href, true); - req.setRequestHeader('Accept','text/css'); - var deferred = MochiKit.Async.sendXMLHttpRequest(req); - var cb = MochiKit.Base.bind(onLoad, this, callback, cssLinkId) - var eb = MochiKit.Base.bind(onError, this, callback) - deferred.addCallbacks(cb, eb); -}; - -bobj.addStyleSheet = function(stylesheet,id) { - var style = document.createElement('style'); - style.setAttribute("type", "text/css"); - - if(id) { - style.setAttribute("id", id); - } - - if (style.styleSheet) { - style.styleSheet.cssText = stylesheet; - } - else { - style.appendChild(document.createTextNode(stylesheet)); - } - - var head = document.getElementsByTagName('head'); - var body = document.getElementsByTagName('body'); - - if(head && head[0]) { - head[0].appendChild(style); - } - else if(body && body[0]) { - body[0].appendChild(style); - } - -}; - -bobj.removeAllChildElements = function(elem) { - if(elem) { - while(elem.lastChild) { - elem.removeChild(elem.lastChild); - } - } -}; - -bobj.getValueHashCode = function(valueType, value) { - var Types = bobj.crv.params.DataTypes; - switch(valueType) { - case Types.BOOLEAN : - case Types.CURRENCY: - case Types.NUMBER: - case Types.STRING: - return '' + value; - case Types.TIME: - return '' + value.h + ',' + value.min + ',' + value.s + ',' + value.ms; - case Types.DATE: - return '' + value.y + ',' + value.m + ',' + value.d; - case Types.DATE_TIME: - return '' + value.y + ',' +value.m + ',' + value.d + ',' + value.h + ',' + value.min + ',' + value.s + ',' + value.ms; - } -}; - -/** - * Checks if there's a DOM element whose ID attribute matches the given string. If not, continue to search for a DOM element - * whose Name attribute matches the given string. - * - * @param idOrName [string] The ID or Name of the element to search for. - * @return [DOM element] Returns a DOM element, or null. - */ -bobj.getElementByIdOrName = function (idOrName) { - if (!idOrName) { - return null; - } - - var elem = document.getElementById(idOrName); - if (elem) { - return elem; - } - - var elems = document.getElementsByName(idOrName); - if (elems && elems.length > 0) { - return elems[0]; - } - - return null; -}; - -/* - * Returns a rectangle that can be used for css clip property - * @param top, right, bottom, left [Int] - * @return [String] returns rect(top,right,bottom,left) in pixel unit - */ -bobj.getRect = function(top, right, bottom, left) { - return "rect(" + top + "px, "+ right + "px," + bottom + "px," + left + "px)"; -} - -bobj.getBodyScrollDimension = function() { - var w = 0; - var h = 0; - var bodyTags = document.getElementsByTagName("Body"); - if(bodyTags && bodyTags[0]) { - w = bodyTags[0].scrollWidth; - h = bodyTags[0].scrollHeight; - } - - return {w : w, h : h}; -} -/** - * Disables tabbing on element specified - * @param layer, The layer that will be modified - * @param dis [boolean], true would disable tabbing on element - */ -bobj.disableTabbingKey = function(layer, dis) { - if(layer) { - //Setting tabIndex value to (-1) would prevent tabbing to the DOM layer - layer.tabIndex = dis ? -1 : 0; - } -} - - -bobj.getStringWidth = function(string, fontFamily, fontSize) { - if(document.body) { - var span = document.createElement('span'); - span.appendChild(document.createTextNode(string)); - span.style.position = 'absolute'; - span.style.visibility = 'hidden'; - - if(fontFamily) - span.style.fontFamily = fontFamily; - - if(fontSize) - span.style.fontSize = fontSize; - - document.body.appendChild(span); - var width = span.offsetWidth; - document.body.removeChild(span); - return width; - } - - return 0; -} - -bobj.deleteWidget = function(widget) { - if(widget && widget.widx) { - if(widget.layer) { - - //Helps GC reclaim memory. Essential to IE memory leak - widget.layer.click = null; - widget.layer.onmouseup = null; - widget.layer.onmousedown = null; - widget.layer.onmouseover = null; - widget.layer.onmousemove = null; - widget.layer.onmouseout = null; - widget.layer.onchange = null; - widget.layer.onfocus = null; - widget.layer.onkeydown = null; - widget.layer.onkeyup = null; - widget.layer.onkeypress = null; - - var parent = widget.layer.parentNode; - if(parent) { - parent.removeChild(widget.layer); //removing child from parent - } - delete widget.layer; - } - - delete widget.css; - delete _widgets[widget.widx]; // cleans DHTML_Lib collection of widgets - _widgets[widget.widx] = null; /* for debugging purpose only */ - - delete widget; - } -}; - -bobj.cloneArray = function(array) { - return array.slice(); -}; - -/** - * returns a function that would execute obj.func with obj as the context - * Similar to MochiKit.Base.bind, but this is a lot faster - */ -bobj.bindFunctionToObject = function(func, obj) { - return function () { - return func.apply(obj, arguments); - }; -}; -/** - * Object.superClass will be populated with all functions defined in superClass - */ -bobj.extendClass = function(object, ObjectClassDefinition, superClass) { - MochiKit.Base.update(object, ObjectClassDefinition); - - object.superClass = {}; - for ( var funcName in superClass) { - object.superClass[funcName] = bobj.bindFunctionToObject(superClass[funcName], object);; - } -}; - -bobj.displayElementWithAnimation = function (element) { - if(element != null) { - MochiKit.DOM.setOpacity(element, 0); //to reserve the element's space - MochiKit.Style.setDisplayForElement("block", element); - new MochiKit.Visual.appear(element, {duration: 0.5}); - } -}; - -/** - * Returns dimension of element when it is invisible.DOM.offsetHeight should be used when - * element is visible to avoid execution cost of this method - */ -bobj.getHiddenElementDimensions = function (element) { - var size = { w : 0, h : 0}; - if(element) { - var body = document.body; - var clonedNode = element.cloneNode(true); //clone and append the node to body as - var nodeStyle = clonedNode.style; - nodeStyle.display = ""; - nodeStyle.visibility = "hidden"; - nodeStyle.width = ""; - nodeStyle.height = ""; - nodeStyle.position = "absolute"; - nodeStyle.left = "-1000px"; - nodeStyle.top = "-1000px"; - body.appendChild(clonedNode); - size = { w : clonedNode.offsetWidth, h : clonedNode.offsetHeight}; - body.removeChild(clonedNode); - } - - return size; -} - -/** - * Checks for PDF reader that has the ability to process JavaScript. - * Currently, it checks for Adobe Acrobat Reader version >= 7 on IE and Version >= 8 on other browsers. - */ -bobj.hasPDFReaderWithJSFunctionality = function() { - if (navigator.plugins) { - var plugins = navigator.plugins; - for (var i=0, len=plugins.length; i < len; i++) { - if (plugins[i].description.indexOf('Adobe PDF Plug-In') != -1) { - return true; - } - } - } - - try { - var pdfReader = new ActiveXObject('AcroPDF.PDF.1'); - if (pdfReader) { - return true; - } - } catch (e) {} - - return false; -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/crv.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/crv.js deleted file mode 100644 index 2f2d3b284..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/crv.js +++ /dev/null @@ -1,536 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof(bobj) == 'undefined') { - bobj = {}; -} - -if (typeof(bobj.crv) == 'undefined') { - bobj.crv = {}; - - // Constants used in the viewer - bobj.crv.ActxPrintControl_CLSID = 'B7DA1CA9-1EF8-4831-868A-A767093EA685'; - bobj.crv.ActxPrintControl_Version = '13,0,15,1840'; - - // Configuration for ALL viewers in a page - // TODO The dhtmllib doesn't currently suport widgets from different locales - // on the same page. We will need that support for the viewer. - bobj.crv.config = { - isDebug : false, - scriptUri: null, // The uri for the viewer script dir (that holds crv.js) - skin: "skin_standard", - needFallback: true, - lang: "en", - useCompressedScripts: true, - useAsync : true, - indicatorOnly: false, - resources : { - 'HTMLPromptingSDK' : {isLoaded: false, path : '../../promptengine-compressed.js'}, - 'ParameterControllerAndDeps' : {isLoaded: false, path: '../../parameterUIController-compressed.js'} - }, - logging: { enabled: false, id: 0} - }; - - bobj.crv.logger = { - info: function(){ /* Do Nothing */} - }; - - // Udate configuration with properties from crv_config, if it exists - if (typeof(crv_config) == 'object') { - for (var i in crv_config) { - bobj.crv.config[i] = crv_config[i]; - } - } - - // If the uri for the bobj.crv script dir wasn't set, try to figure it out - if (!bobj.crv.config.scriptUri) { - var scripts = document.getElementsByTagName("script"); - var reCrvJs = /(.*)crv\.js$/i; - - for(var i = 0; i < scripts.length; i++) { - var src = scripts[i].getAttribute("src"); - if(!src) { continue; } - - var matches = src.match(reCrvJs); - - if(matches && matches.length) { - bobj.crv.config.scriptUri = matches[1]; - break; - } - } - - if (!bobj.crv.config.scriptUri ) { - bobj.crv.config.scriptUri = ''; - if (bobj.crv.config.isDebug) { - throw "bobj.crv.config.scriptUri is undefined"; - } - } - } - - /** - * Parse a URI into its constitutents as defined in RFC2396 - * - * @param uri [String] Uri to parse - * - * @return Returns object has string values for the uri's components - */ - bobj.parseUri = function(uri) { - var regExp = "^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$"; - var result = uri.match(new RegExp(regExp)); - return { - scheme : result[2], - authority : result[4], - path : result[5], - query : result[7], - fragment : result[9] - }; - }; - - - bobj.crvUri = function(uri) { - return bobj.crv.config.scriptUri + uri; - }; - - /** - * A helper method for evaluating whether parent window is JSUnit test runner - */ - bobj.isParentWindowTestRunner = function() { - try { - var tempTop = top || window; - while(tempTop.top && tempTop.top != tempTop) { - tempTop = tempTop.top; - } - - return tempTop.jsUnitTestSuite !== undefined; - } - - catch(err){} - - return false; - }; - - bobj.skinUri = function(uri) { - return bobj.crvUri("../dhtmllib/images/") + bobj.crv.config.skin + "/" + uri; - }; - - /** - * Create a widget using json - * eg. - * createWidget({ - * cons: bobj.crv.myWidget, - * args: {foo: 'bar'}, - * children: [ {cons: ...}, ...] - * }); - * - * @param json [Object] Object representing the widget - * @return Returns the widget or null if creation failed - */ - bobj.crv.createWidget = function(json) { - if (!bobj.isObject(json)){ - return null; - } - - var constructor = json.cons; - if (bobj.isString(constructor)) { - try { - constructor = eval(constructor); - } - catch (err) { - if (bobj.crv.config.isDebug) { - throw "bobj.crv.createWidget: invalid constructor"; - } - } - } - - if (!bobj.isFunction(constructor)) { - if (bobj.crv.config.isDebug) { - throw "bobj.crv.createWidget: invalid constructor"; - } - return null; - } - - var widget = constructor(json.args); - - if (bobj.isArray(json.children)) { - if (widget.delayedBatchAdd) { - widget.delayedBatchAdd(json.children); - } - else if (widget.addChild){ - for (var i = 0, len = json.children.length; i < len; ++i) { - var child = bobj.crv.createWidget(json.children[i]); - widget.addChild(child); - } - } - } - - return widget; - }; - - /** - * Create a widget using bobj.crv.createWidget and write it to the document. - * If optional element is given, the innerHTML is written instead and scripts - * are executed. - * - * @param json [Object] Object representing the widget - * @return Returns the widget or null if creation failed - */ - bobj.crv.writeWidget = function(json, element) { - - var widget = bobj.crv.createWidget(json); - if (widget) { - if(element){ - var html = widget.getHTML(); - var ext = bobj.html.extractHtml(html); - var links = ext.links; - element.innerHTML = html; - for(var iLinks = 0, linksLen = links.length; iLinks < linksLen; ++iLinks){ - bobj.includeLink(links[iLinks]); - } - - var scripts = ext.scripts; - for (var iScripts = 0, scriptsLen = scripts.length; iScripts < scriptsLen; ++iScripts) { - var script = scripts[iScripts]; - if (!script) {continue;} - - if (script.text) { - try { - bobj.evalInWindow(script.text); - } - catch(err) {} - } - } - - var styleText = ""; - for (var i = 0, len = ext.styles.length; i < len ; i++) { - styleText += ext.styles[i].text + '\n'; - } - - if(styleText.length > 0) { - bobj.addStyleSheet(styleText); - } - } - else { - widget.write(); - } - } - return widget; - }; - - /** - * Initialize a widget. - * - * @param widx [Int] Widget index - * @param initElt [DOM Node, opt] The element that called the init event - */ - bobj.crv._initWidget = function(widx, initElt) { - try { - var widget = _widgets[widx]; - widget.init(); - - if (initElt) { - MochiKit.DOM.removeElement(initElt); - } - } - catch (err) { - if (bobj.crv.config.isDebug) { - var msg = "bobj.crv._initWidget: Couldn't initialize widget: "; - msg += 'widx=' + widx; - msg += ', type='; - if (!_widgets[widx]) { - msg += 'null'; - } - else if (bobj.isString(_widgets[widx].widgetType)) { - msg += _widgets[widx].widgetType; - } - else - { - msg += 'unknown'; - } - msg += ' because: ' + err; - throw msg; - } - } - }; - - /** - * Creates an hidden image tag that initializes a widget using its onload - * event. The tag should be appended to the html of the widget. - * - * Note: doesn't work in Opera 9, but we don't support that yet - * - * TODO nested widgets fail in Firefox because parent's init method has to - * be called after child's init method and the timing of the img onload - * events looks to be unpredictable. onerror might be more predictable if - * no src is specified... is it supported in Safari? - * - * @param widx [Int] Widget index - * - * @return Returns html that initializes the widget with index == widx - - bobj.crv.getInitHTML = function(widx) { - return bobj.html.IMG({ - style: {display:'none'}, - //onload: 'bobj.crv._initWidget(' + widx + ', this);', - onload: "alert('loading " + widx + "')", - src: bobj.crvUri("../dhtmllib/images/transp.gif") - }); - }*/ - - /** - * Returns HTML that auto-intializes a widget. - */ - bobj.crv.getInitHTML = function(widx) { - var scriptId = 'bobj_crv_getInitHTML_' + widx; - return ''; - }; - - bobj.crv._preloadProcessingIndicatorImages = function() { - var relativeImgPath = bobj.crvUri("../dhtmllib/images/" + bobj.crv.config.skin + "/"); - var images = []; - var imgNames = [ - "wait01.gif", - "dialogtitle.gif", - "dialogelements.gif", - "../transp.gif"]; - - for(var i = 0, len = imgNames.length; i < len; i++){ - images[i] = new Image(); - images[i].src = relativeImgPath + imgNames[i]; - } - }; - - bobj.crv._loadJavaScript = function(scriptFile) { - if (scriptFile) { - document.write(''); - } - }; - - /** - * Include the viewer's scripts in the document. - */ - bobj.crv._includeAll = function() { - - bobj.crv._includeLocaleStrings(); - - if (bobj.crv.config.useCompressedScripts) { - if (bobj.crv.config.indicatorOnly) { - bobj.crv._loadJavaScript('../../processindicator.js'); - } - else { - bobj.crv._loadJavaScript('../../allInOne.js'); - if(!bobj.crv.config.useAsync) { - for(var name in bobj.crv.config.resources) { - var resource = bobj.crv.config.resources[name]; - resource.isLoaded = true; - bobj.crv._loadJavaScript(resource.path); - } - } - if (bobj.crv.config.logging.enabled) { - bobj.crv._loadJavaScript('../log4javascript/log4javascript.js'); - } - } - return; - } - else { - // list of script uris relative to crv.js - var scripts = []; - if (bobj.crv.config.indicatorOnly) { - scripts = [ - '../MochiKit/Base.js', - '../dhtmllib/dom.js', - 'initDhtmlLib.js', - '../dhtmllib/dialog.js', - '../dhtmllib/waitdialog.js', - 'common.js', - 'Dialogs.js' - ]; - } - else { - scripts = [ - '../MochiKit/Base.js', - '../MochiKit/Async.js', - '../MochiKit/DOM.js', - '../MochiKit/Style.js', - '../MochiKit/Signal.js', - '../MochiKit/New.js', - '../MochiKit/Color.js', - '../MochiKit/Iter.js', - '../MochiKit/Visual.js', - '../log4javascript/log4javascript_uncompressed.js', - '../external/date.js', - '../dhtmllib/dom.js', - 'initDhtmlLib.js', - '../dhtmllib/palette.js', - '../dhtmllib/menu.js', - '../dhtmllib/psheet.js', - '../dhtmllib/treeview.js', - '../dhtmllib/dialog.js', - '../dhtmllib/waitdialog.js', - '../../prompting/js/promptengine_prompts2.js', - '../../prompting/js/promptengine_calendar2.js', - '../swfobject/swfobject.js', - 'common.js', - 'encoding.js', - 'html.js', - 'ImageSprites.js', - 'Toolbar.js', - 'Statusbar.js', - 'PanelNavigator.js', - 'PanelNavigatorItem.js', - 'PanelHeader.js', - 'LeftPanel.js', - 'GroupTreeNode.js', - 'GroupTree.js', - 'GroupTreeListener.js', - 'ToolPanel.js', - 'ReportPage.js', - 'ReportView.js', - 'ButtonList.js', - 'ReportAlbum.js', - 'Separator.js', - 'Viewer.js', - 'ViewerListener.js', - 'StateManager.js', - 'IOAdapters.js', - 'ArgumentNormalizer.js', - 'event.js', - 'PromptPage.js', - 'Dialogs.js', - 'StackedTab.js', - 'StackedPanel.js', - 'Parameter.js', - 'ParameterController.js', - 'Colors.js', - 'TextField.js', - 'TextCombo.js', - 'RangeField.js', - 'ParameterValueRow.js', - 'ParameterInfoRow.js', - 'OptionalParameterValueRow.js', - 'ParameterUI.js', - 'OptionalParameterUI.js', - 'ParameterDialog.js', - 'ParameterPanelToolbar.js', - 'ParameterPanel.js', - 'bobjcallback.js', - 'Calendar.js', - 'WarningPopup.js', - '../FlexParameterBridge.js', - 'ViewerFlexParameterAdapter.js', - 'SignalDisposer.js' - ]; - } - - if(bobj.isParentWindowTestRunner()) { - scripts.push('../jsunit/tests/crViewerTestSuite.js'); - } - - for (var i = 0, len = scripts.length; i < len; i++) { - document.write(''); - } - - for(var i in bobj.crv.config.resources){ - //all Resources are automatically loaded at initialization when useCompressedScripts is false (in debug mode) - bobj.crv.config.resources[i].isLoaded = true; - } - } - }; - - bobj.crv.getLangCode = function () { - var splitChar = '_'; // default to java's locale split character - if (bobj.crv.config.lang.indexOf ('-') > 0) { - splitChar = '-'; // must be .Net's locale split - } - var lang = bobj.crv.config.lang.split(splitChar); - - // TODO (Julian): Java server side now handles the chinese variants due to language pack fix - // We'll do the same for WebForm and then the following code can be removed. - // For Chinese locales "zh" we only support "TW" & "CN" - // zh_HK / zh_MO / zh_MY, are all mapped to zh_TW, everything else is zh_CN - if(lang[0].toLowerCase() == "zh") { - if(lang.length > 1 ) { - var region = lang[1].toUpperCase(); - if(region == "TW" || region == "HK" || region == "MO" || region == "MY") { - lang[1] = "TW"; - } else { - lang[1] = "CN"; - } - } else { - lang[1] = "CN"; - } - } - - // .NET webform viewers don't support variants from server side - until we fix this chop-off variant code for all other than "zh" - if (lang.length > 1 && (!bobj.crv.config.needFallback || lang[0].toLowerCase() == "zh")) { - - lang = lang[0] + "_" + lang[1]; - } - else { - lang = lang[0]; - } - - return lang; - }; - - bobj.crv._includeLocaleStrings = function() { - var lang = bobj.crv.getLangCode (); - - if (bobj.crv.config.needFallback) { - bobj.crv._loadJavaScript('../../allStrings_en.js'); - if (lang == 'en') return; // DO NOT load 'en' strings below again! - } - - bobj.crv._loadJavaScript('../../allStrings_' + lang + '.js'); - }; - - - if (typeof MochiKit == 'undefined') { - MochiKit = {}; - } - if (typeof MochiKit.__export__ == 'undefined') { - MochiKit.__export__ = false; // don't export symbols into the global namespace - } - - if (!bobj.crv.config.useAsync) bobj.crv._preloadProcessingIndicatorImages(); - bobj.crv._includeAll(); - - bobj.crv.initLog = function(logLevel, handlerUri) { - bobj.crv.logger = log4javascript.getLogger(); - log4javascript.setEnabled(bobj.crv.config.logging.enabled); - - if (bobj.crv.config.logging.enabled) { - bobj.crv.logger.setLevel(logLevel); - var uri = handlerUri + '?ServletTask=Log'; - var ajaxAppender = new log4javascript.AjaxAppender(uri); - bobj.crv.logger.addAppender(ajaxAppender); - - var oldLogFunc = bobj.crv.logger.log; - bobj.crv.logger.log = function(level, message, exception) { - oldLogFunc(level, bobj.crv.config.logging.id + ' ' + message, exception); - }; - - bobj.crv.logger.info('Logging Initialized'); - } - }; - - bobj.crv.invokeActionAdapter = function (args) { - var n = "invokeAction"; - var f = window[n]; - if (!f && window.parent){ - f = window.parent[n]; - } - - if (f){ - f(args.url, args.actionId, args.objectId, args.containerId, args.actionType, null); - } - }; -} - -if(typeof(Sys)!=='undefined' && typeof(Sys.Application)!== 'undefined' && typeof(Sys.Application.notifyScriptLoaded)!== 'undefined') { - Sys.Application.notifyScriptLoaded(); -} diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/dom.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/dom.js deleted file mode 100644 index 7912d8943..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/dom.js +++ /dev/null @@ -1,6 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof(bobj.dom) == 'undefined') { - bobj.dom = {}; -} - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/encoding.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/encoding.js deleted file mode 100644 index 37e8eb219..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/encoding.js +++ /dev/null @@ -1,72 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof bobj == 'undefined') { - bobj = {}; -} - -bobj.encodeUTF8 = function(string) { - var arr = []; - var strLen = string.length; - for(var i = 0; i < strLen; i++) { - var c = string.charCodeAt(i); - if(c < 0x80) { - arr.push(c); - } - else if(c < 0x0800) { - arr.push((c >> 6) | 0xc0); - arr.push(c & 0x3f | 0x80); - } - else if(c < 0xd800 || c >= 0xe000) { - arr.push((c >> 12) | 0xe0); - arr.push((c >> 6) & 0x3f | 0x80); - arr.push(c & 0x3f | 0x80); - } - else if(c < 0xdc00) { - var c2 = string.charCodeAt(i + 1); - if(isNaN(c2) || c2 < 0xdc00 || c2 >= 0xe000) { - arr.push(0xef, 0xbf, 0xbd); - continue; - } - i++; - val = ((c & 0x3ff) << 10) | (c2 & 0x3ff); - val += 0x10000; - arr.push((val >> 18) | 0xf0); - arr.push((val >> 12) & 0x3f | 0x80); - arr.push((val >> 6) & 0x3f | 0x80); - arr.push(val & 0x3f | 0x80); - } - else { - arr.push(0xef, 0xbf, 0xbd); - } - } - return arr; -}; - -bobj.encodeBASE64 = function(byteArray) { - var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; - var arr = []; - var c1, c2, c3, e1, e2, e3, e4; - var i = 0, arrLen = byteArray.length; - - while(i < arrLen) { - c1 = byteArray[i++]; - c2 = byteArray[i++]; - c3 = byteArray[i++]; - - e1 = c1 >> 2; - e2 = ((c1 & 3) << 4) | (c2 >> 4); - e3 = ((c2 & 15) << 2) | (c3 >> 6); - e4 = c3 & 63; - - if (isNaN(c2)) { - e3 = e4 = 64; - } else if(isNaN(c3)) { - e4 = 64; - } - arr.push(keyStr.charAt(e1)); - arr.push(keyStr.charAt(e2)); - arr.push(keyStr.charAt(e3)); - arr.push(keyStr.charAt(e4)); - } - return arr.join(''); -}; \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/event.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/event.js deleted file mode 100644 index de821af77..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/event.js +++ /dev/null @@ -1,136 +0,0 @@ -/** - * Publish/Subscribe event system for anonymous message passing - * - */ - -if (typeof bobj == 'undefined') { - bobj = {}; -} - -if (typeof bobj.event == 'undefined') { - bobj.event = {}; - bobj.event._topicSubscriptions = {}; - bobj.event._globalSubscriptions = []; -} - -/** - * Publish an event for subscribers to receive - * - * @param topic [String] The event topic - * @param arguments Unnamed args will be passed to subscribers - */ -bobj.event.publish = function(topic) { - var args = bobj.slice(arguments, 1); - - var topicSubs = bobj.event._topicSubscriptions[topic]; - if (topicSubs) { - for (var i = 0; i < topicSubs.length; ++i) { - topicSubs[i]._notify.apply(null, args); - } - } - - var globalSubs = bobj.event._globalSubscriptions; - for (var j = 0; j < globalSubs.length; ++j) { - globalSubs[j]._notify.apply(null, args); - } -}; - -/** - * Subscribe to a topic - * - * @param topic [String] The event topic - * @param callback [Function] Function to be call with topic's arguments - * @param target [Object] Object to notify (requires methName) - * @param methName [String] Name of method to call when target is notified - * - * Arguments may be passed in any of the following combinations: - * (topic, target, methName) - * (topic, callback) - * (target, methName) - * (callback) - * - * When a topic is not specified, the subscriber receives all topics - * - * @return Subscription object that can be used to unsubscribe - */ -bobj.event.subscribe = function() { - var nmlr = bobj.event.subscribe._normalizer; - if (!nmlr) { - nmlr = bobj.event.subscribe._normalizer = new bobj.ArgumentNormalizer(); - - // If 3 args: (topic, target, methName) - nmlr.addRule('topic', 'target', 'methName'); - - // If 2 args and first is a string: (topic, callback) - nmlr.addRule([bobj.isString, 'topic'], 'callback'); - - // If 2 args: (target, methName) - nmlr.addRule('target', 'methName'); - - // If 1 arg: (callback) - nmlr.addRule('callback'); - } - - return bobj.event.kwSubscribe(nmlr.normalizeArray(arguments)); -}; - -/** - * Subscribe to a topic using keyword arguments - * - * @param kwArgs.topic [String] The event topic - * @param kwArgs.callback [Function] Function to be call with topic's arguments - * @param kwArgs.target [Object] Object to notify (requires methName) - * @param kwArgs.methName [String] Name of method to call when target is notified - * - * @see bobj.event.subscribe - * - * @return Subscription object that can be used to unsubscribe - */ -bobj.event.kwSubscribe = function(kwArgs) { - var bind = MochiKit.Base.bind; - var subscription = {}; - - if (kwArgs.callback) { - subscription._notify = kwArgs.callback; - } - else { - subscription._notify = bind(kwArgs.target[kwArgs.methName], kwArgs.target); - } - - if (kwArgs.topic) { - subscription.topic = kwArgs.topic; - - var subs = bobj.event._topicSubscriptions; - if (!subs[kwArgs.topic]) { - subs[kwArgs.topic] = []; - } - subs[kwArgs.topic].push(subscription); - } - else { - bobj.event._globalSubscriptions.push(subscription); - } - - return subscription; -}; - -/** - * Unsubscribe from a topic - * - * @param subscription [Subscription] The object returned by subscribe - */ -bobj.event.unsubscribe = function(subscription) { - var subsList = bobj.event._globalSubscriptions; - - if (subscription.topic) { - subsList = bobj.event._topicSubscriptions[subscription.topic]; - } - - if (subsList) { - var idx = MochiKit.Base.findIdentical(subsList, subscription); - if (idx != -1) { - subsList.splice(idx, 1); // remove the subscription - delete subscription._notify; // prevent leaks - } - } -}; - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/html.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/html.js deleted file mode 100644 index af83b4931..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/crviewer/html.js +++ /dev/null @@ -1,219 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -if (typeof(bobj.html) == 'undefined') { - bobj.html = {}; -} - -bobj.html.openTag = function(tag, atts) { - var html = '<' + tag; - - for (var i in atts) { - - html += ' ' + i + '="'; - - var value = atts[i]; - - if (bobj.isArray(value)) { - value = value.join(' '); - } - else if (bobj.isObject(value)) { - // create a string of the form "foo:bar;baz:garply" - var stringValue = "" - for (var k in value) { - stringValue += k + ':' + value[k] + ';'; - } - value = stringValue; - } - - html += value + '"'; - } - - return html + '>' -}; - -bobj.html.closeTag = function(tag) { - return ''; -}; - -bobj.html.createHtml = function(tag, atts, innerHtml /*, innerHtml...*/) { - var html = bobj.html.openTag(tag, atts); - - for (var i = 2; i < arguments.length; ++i) { - html += arguments[i]; - } - - html += bobj.html.closeTag(tag); - return html; -}; - -bobj.html.TABLE = MochiKit.Base.partial(bobj.html.createHtml, 'table'); -bobj.html.UL = MochiKit.Base.partial(bobj.html.createHtml, "ul"); -bobj.html.OL = MochiKit.Base.partial(bobj.html.createHtml, "ol"); -bobj.html.LI = MochiKit.Base.partial(bobj.html.createHtml, "li"); -bobj.html.TD = MochiKit.Base.partial(bobj.html.createHtml, "td"); -bobj.html.TR = MochiKit.Base.partial(bobj.html.createHtml, "tr"); -bobj.html.TBODY = MochiKit.Base.partial(bobj.html.createHtml, "tbody"); -bobj.html.THEAD = MochiKit.Base.partial(bobj.html.createHtml, "thead"); -bobj.html.TFOOT = MochiKit.Base.partial(bobj.html.createHtml, "tfoot"); -bobj.html.TABLE = MochiKit.Base.partial(bobj.html.createHtml, "table"); -bobj.html.TH = MochiKit.Base.partial(bobj.html.createHtml, "th"); -bobj.html.INPUT = MochiKit.Base.partial(bobj.html.createHtml, "input"); -bobj.html.SPAN = MochiKit.Base.partial(bobj.html.createHtml, "span"); -bobj.html.A = MochiKit.Base.partial(bobj.html.createHtml, "a"); -bobj.html.DIV = MochiKit.Base.partial(bobj.html.createHtml, "div"); -bobj.html.IMG = MochiKit.Base.partial(bobj.html.createHtml, "img"); -bobj.html.BUTTON = MochiKit.Base.partial(bobj.html.createHtml, "button"); -bobj.html.TT = MochiKit.Base.partial(bobj.html.createHtml, "tt"); -bobj.html.PRE = MochiKit.Base.partial(bobj.html.createHtml, "pre"); -bobj.html.H1 = MochiKit.Base.partial(bobj.html.createHtml, "h1"); -bobj.html.H2 = MochiKit.Base.partial(bobj.html.createHtml, "h2"); -bobj.html.H3 = MochiKit.Base.partial(bobj.html.createHtml, "h3"); -bobj.html.BR = MochiKit.Base.partial(bobj.html.createHtml, "br"); -bobj.html.HR = MochiKit.Base.partial(bobj.html.createHtml, "hr"); -bobj.html.LABEL = MochiKit.Base.partial(bobj.html.createHtml, "label"); -bobj.html.TEXTAREA = MochiKit.Base.partial(bobj.html.createHtml, "textarea"); -bobj.html.FORM = MochiKit.Base.partial(bobj.html.createHtml, "form"); -bobj.html.P = MochiKit.Base.partial(bobj.html.createHtml, "p"); -bobj.html.SELECT = MochiKit.Base.partial(bobj.html.createHtml, "select"); -bobj.html.OPTION = MochiKit.Base.partial(bobj.html.createHtml, "option"); -bobj.html.OPTGROUP = MochiKit.Base.partial(bobj.html.createHtml, "optgroup"); -bobj.html.LEGEND = MochiKit.Base.partial(bobj.html.createHtml, "legend"); -bobj.html.FIELDSET = MochiKit.Base.partial(bobj.html.createHtml, "fieldset"); -bobj.html.STRONG = MochiKit.Base.partial(bobj.html.createHtml, "strong"); -bobj.html.CANVAS = MochiKit.Base.partial(bobj.html.createHtml, "canvas"); -bobj.html.IFRAME = MochiKit.Base.partial(bobj.html.createHtml, "iframe"); -bobj.html.SCRIPT = MochiKit.Base.partial(bobj.html.createHtml, "script"); - - -/** - * Extract scripts from an html fragment. - * - * @param html [String] html fragment - * - * @return [Object] Returns an object with a list of scripts and html without - * scripts - * i.e. {scripts: [{src:[String], text:[String]},...], html:[String]} - */ -bobj.html.extractScripts = function(html) { - // Match script tags with or without closing tags - // 1 - Attributes of tag that doesn't have closing tag (e.g. - - - - - - - - - - -
    -
    - - Filter List

    - Drag and Drop is enabled (CTRL to copy). You can use DEL to delete an item
    Double click on a node to change is kind (AND or OR)
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Add an item
    Add a custom item
    Add a node
    Remove a node or an item
    index
    - - -
    -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/basicDialog.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/basicDialog.html deleted file mode 100644 index b96ba4dd5..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/basicDialog.html +++ /dev/null @@ -1,314 +0,0 @@ - - - - - - - Basic dialog window - - - - - - - - - - - - - - - - - - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - this is a sample text - - - - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/blockWhileWait.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/blockWhileWait.html deleted file mode 100644 index c6d093bdd..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/blockWhileWait.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - -
    -
    - -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/bolist.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/bolist.html deleted file mode 100644 index 01e842381..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/bolist.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - - - - -
    -
    - - - - - - - - -
    Add an item
    -
    - -
    - - - - Wrapped BO List

    - -
    To delete an item, select it and press DEL, to move an item, drag and drop it (also between lists); to copy an item, use CTRL with drag and drop
    -
    - -
    - -
    - Vertical BO List

    -
    - -
    - -
    - Horizontal BO List

    -
    - -
    - -
    -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/borderswidget.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/borderswidget.html deleted file mode 100644 index 528f08706..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/borderswidget.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - -
    -
    - - IconBordersMenuwidget

    - -
    - -
    -
    - - - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/buttons.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/buttons.html deleted file mode 100644 index 17ed01415..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/buttons.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - -
    -
    - - - -
    -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/calendar.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/calendar.html deleted file mode 100644 index 88c0819f1..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/calendar.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - - - -
    -
    - - Calendar

    -
    - -
    -

    -
    - -
    -

    -
    -

    - resize text - - -
    -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/checktree.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/checktree.html deleted file mode 100644 index c777589ca..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/checktree.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - -
    -
    - - Tree View with check boxes

    - -
    - -
    -
    - -
    -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/default.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/default.html deleted file mode 100644 index d2509b746..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/default.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - -Library samples - - - - - - - - - - - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/dim.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/dim.gif deleted file mode 100644 index f388e3d547e781e60489dc33c94c9823d6b118ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 907 zcmZ?wbhEHbRALZd_|Cw<5VV$I%J-;y|C8_i&%XD+`1$|p=l@%t|L=MJe+m%2|3Byb z|E2H$uYLc2>-+zEf$01HW8eRu`~Ls`IfnnEU^E1VcnB!|WMO1r5N6N;W(5XNo?zg} zU{L3f@z}87U^9oXR?LYF3lFz4DtYlRJXmm$D%7@tbr8;~H z7A)~><_l4CC^*n?dOAz$B@>4SYJQD8X>uA42@U7x8}katCX_t(Z#13GCGg-+zEf$01HW8eRu`~Ls`IfnnEU^E1VcnB!|WMO1r5N6N;W(5XNo?zgJ zVo>Lh@z}87U^9m>Tf_+ihK43yNu~-91E&^tJ_#KUgN+ZG*?CRWEG|r3&^&=tK*k`T wNWp6=8^;!r6ADionONA)%$abB;T)rtCST0Y;0A_;oRhU;PlY5nFfdpH067y9LI3~& diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/dim_open.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/dim_open.gif deleted file mode 100644 index 34cfb4422fdfca6e5b5a99e215f5208e30ca3ad1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 936 zcmZ?wbhEHbRALZd_|5Je-N;2;12i9~a) - - -Library samples - - - - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/eventsDialog.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/eventsDialog.html deleted file mode 100644 index c12352119..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/eventsDialog.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - Basic events window - - - - - - - - - - - this is a sample text - - - - - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/fieldswidget.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/fieldswidget.html deleted file mode 100644 index b457c3320..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/fieldswidget.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - -
    -
    - - Text Field with help text
    - -


    - - Text Field maxchar = 10
    - -


    - Int Field min = -10, max = 1000, maxchar = 5
    - -


    - Float Field Value =3.50, min = 0, max = 10, precision = 2 decimales, maxchar = 7
    - -


    - -


    - txtArea = newTextAreaWidget("txtArea", 3, 36); - - -
    -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/format.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/format.gif deleted file mode 100644 index d9fca033db8f17bb3efc571a0b24379e7cc85861..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1476 zcmZ?wbhEHboWP*K@SOn!yg*=SOH0d~IdhgSU3%@>wf_tZ|3|@S2#kObQ2fcl$iTqP zpaaSYpgh6A@sEL@L&jsnf`iQ*!dfvWHY_~E#Kabg0(QXOjtUDDO9x--uEBZaL z5NJ3#StF3k=j5j+r>5z6T7|3>N<7NI#MHAzQc&^CG^1v*mXiic{TWmzs-4MnSmf6t zp!`mSgQ4;2>WKAPe^*{nxW3qB<*b^UrVCFprtR+Yl{mn_#K^X&O6A7p<=59#teqw* zb>%7Jeopo^wzHUMd`pxgaKV+`m7DXPzM5W?db(Qw{Z}rA+*^m(Z%3J4Fk6?j ztIMCiS7+w>>;+t``Eskuwq>xe6&;^yz2W15;~|mBb7iI#7v4Jle;sShhc|}~HgmHb zSi9SykwN~so}EDH)`Gq3e*VkilllAN2-8!}Y4>{nKK8i3w{iU+zPO#Ko2GoM7xlJT z`~11-#?-r|do7nmm93oWBG0tBwLP%Nll8=Ozqf@UqP0g3rp;+PQTQUE#gKQ)g0LBL zw`0IQ!%CnTp?s!nQ*Jb7Uz+r-Y)9Oq-2X^xIu zmd_oSbyh5ynYyZS!c4cam(Qkh-<+v7uTjh-Wpb&S*Rt7NuR7J{RI7QZFRB06zH$+Z z$*mO=9g`~4r%&SIda+>nqFJjJtrFYyWZ~lce>XFicbj=ln7@6RRpzoBrI6*TJ5E`> z-mr~JL~Bv`Gtc;?J2uTqoga1YR@SU(Ueaqe9BEpqxnj1~@7S%og}h!k?%(B=vh&6z zucecZGi7SbTe@u3tCbP!v~rhb_MLjYEce{6`IF;jS*_cCsImLm=HH*RgXeG`Kb?MP z@4ee=y7;BN-yD@lpR;z|?lPVw#}wNCXzrDpUej - - - - - - - -
    -
    - - Premier exemple fait par Minh - -
    - - date: 23 janvier 2004 - - -
    - - Zone Retaillable - - - -
    -
    - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/grabber.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/grabber.html deleted file mode 100644 index d58a36c2e..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/grabber.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/iconlistpopupwidget.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/iconlistpopupwidget.html deleted file mode 100644 index 6665735aa..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/iconlistpopupwidget.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - -
    -
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    - Test IconListPopupWidget by right clicking here. The IconListPopupWidget should appear...
    -
    -
    -

    - -
    - -
    - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/iconscrollmenuwidget.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/iconscrollmenuwidget.html deleted file mode 100644 index 8b58e8a92..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/iconscrollmenuwidget.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - -
    -
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    - Test scrollMenuWidget by clicking here. The scrollMenuWidget should appear...
    -
    - -

    - -
    - Icon scroll menu widget -

    - -
    -
    -
    - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/imgtabs.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/imgtabs.gif deleted file mode 100644 index bc612f9762aff7525beaab05174eb395f2fc4696..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1061 zcmZ?wbhEHb6kt$b_|5 z>;H4-{-3+{|G(4!Q7{?;gEa&cf3h$#0JDM)C@X;S1OvxE2FHdA3m!5tH*yGbJ$bN@ znT?B+$HT-xVIdp8qD{_*4GK;j{UU;CFFqVx$jr)O*JdEFNU4Kc!YpCOgM>zgsmw)T za~u{jwNB>XVBuJ>snMHLz)#EKgTqtz#T=p{Gk!5NgsxUxz?JfH%jz%zo%LO;6RxV> zSQmG;O}6{1cK8 - - - - - - - - - - - - - - - -
    -
    - - Icon widget with button behaviour: (click to disable/enable next icon)
    - - - Disabled Icon widget with button behaviour:
    - - -

    Icon widget with check box behaviour:
    - - -

    Icon widget with toggle behaviour:
    - - - -

    Icon widget with radio button behaviour:

    -
    - - - -
    - - Color menu widget

    - -
    - -
    - - Icon menu widget

    - -
    - - Button menu widget

    - -
    - - - Button scroll menu widget

    - -
    - - Horizontal Table Icon widget

    - -
    - - Vertical Table Icon widget

    - -
    - - -
    -
    - - - - - - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/infowidget.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/infowidget.html deleted file mode 100644 index 5b58cce93..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/infowidget.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - -
    -
    - - Info zone:

    - -


    - Change the text -
    - Change the title -
    - Change the bold title -
    - - -
    -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/lov.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/lov.html deleted file mode 100644 index 1b3a8a713..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/lov.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/measure.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/measure.gif deleted file mode 100644 index 1b209913527a139153ed4b857aff2ca499f7a262..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 900 zcmZ?wbhEHbRALZd_|CxK#NZUfQ5?mPJw>2rj= zb?rIFwdacWo*UkKZh7yy)4lgzK=k~5F%Z3fU;X}j&-?FdzklEQ{r@?J|L1_@|4}d+ z0z)MP6o0ZXGB8Lo=r8~QC{HkOBr+It$arj6aIl#}SS#klhJ}aQ1?0nK2rxRjw27M} z%y@9%z|j^_lY$Egj7*KJ^89`W78E))F*5~8^%xvvI?BSra6;$C0Y(;feeNT7JOdh= Yrn9pNm{uq>TwWTm*lVtqu>ylN03VD5PXGV_ diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/measure_o.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/measure_o.gif deleted file mode 100644 index 4397eb94da3e4df66c192489ad8a367c90200f41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 885 zcmZ?wbhEHb2rj= zb?rIFwdacWo*UkKZh7yy)4lgzK=k~5F%Z3fU;X}j&-?FdzklEQ{r@?J|L1_@|4}d+ z0z)MP6o0ZXGB8Lo=r8~QC{HkO1Th$M$arj6aIl#}Sj!|L(TRnHQ$OQ?!NJDHW>J%Z z3ki%&jjU|y2{SAd4>B^cDf?`AV8F=8z$R_c@ZdlS;}kYg4TH)AheOPaO?on3TV5P$ IU|_HY0K{ebwg3PC diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/menu.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/menu.html deleted file mode 100644 index d978c3fad..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/menu.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - - - - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - sdfjgfds lkfjglk sfdkg dflskjg lsdfgldfsjlgk sdfkg lsfdj glsdfjg lksfdjklg sdflk g - - - - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/navigation.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/navigation.html deleted file mode 100644 index 9ded9a802..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/navigation.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - Navigation page - - - - - -
    - - Simple widgets

    - - - - - - - - - - - - - - - - - - - -
    Icon widgetsInfo widget
    FrameZone widgetGrabber Widget
    Field widgets text, int, floatButton Widget
    Tooltip widget
    - - - -


    - List and tree widgets

    - - - - - - - - - - - - - - - - -
    Tree widgetBOList widget
    Filter widgetPrompt tree widget
    Simple list widgetCheck Tree widget
    - -


    - GUI Emulation Widgets

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Menu widgetTab panel widget
    Dialog Box WidgetWaitDialog Widget
    Office-like palettesLOV Widget
    Calendar WidgetScrollTabs
    TextCombo WidgetIconScrollMenu Widget
    iconListPopup WidgetPane Manager
    Borders Widget
    - - - -
    - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/palettes.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/palettes.html deleted file mode 100644 index c2803a1ce..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/palettes.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/pane.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/pane.html deleted file mode 100644 index 5ea4d307f..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/pane.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - -
    -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/parent_dialog.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/parent_dialog.html deleted file mode 100644 index 05af2c79b..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/parent_dialog.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - -
    - - - -
    - - - ' - - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/progressBar.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/progressBar.html deleted file mode 100644 index 221846eda..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/progressBar.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - Progress Bar - - - - - - - - - - - - - - - - -
    - -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/prompttree.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/prompttree.html deleted file mode 100644 index e4061a771..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/prompttree.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - -
    -
    - - Tree View

    -
    - -
    - - change
    - change with empty values
    - -
    - -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/qualif.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/qualif.gif deleted file mode 100644 index 9a7985099e717f598f7937492f23ab2609a38507..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1057 zcmZ?wbhEHb6ku>*_|58d+%{vd#-rzx#7KgQP-Y3-FxqK?|t#}_to$JpJVv{ zpP>Z^p8xLw>V5uy&insM-~V6x{{PnZ|M$NC|Gnq^_qE@@Z~cDk`~UyvfcQVeA*1AI z2+%nM6o0ZXGBC(6=z#16 - - - - - - - - - - - -
    -
    - -


    - Tab bar

    -
    - -
    - -
    - -
    -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/simplelist.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/simplelist.html deleted file mode 100644 index 40e3805e1..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/simplelist.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - -
    -
    - - - - - - - - - - -

    - - - -

    -
    this is a sample text using dialogzone CSS class
    -
    this is a sample text using dialogzonebold CSS class
    - -
    -
    - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/skinIntl.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/skinIntl.html deleted file mode 100644 index c4a3dae03..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/skinIntl.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - Skin and Language - - - - - - - - - - - - - - -
    skin:language:
    - - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/tabs.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/tabs.html deleted file mode 100644 index cf1d72ce7..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/tabs.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - - - - - - - -
    -
    - - Single Top Tab, no image

    - - -
    -

    - Single Bottom Tab, no image

    - - -
    -
    - - - -


    - Tab bar

    -
    - -
    - -
    - - - -


    - Tabdeb zone

    - - - - - test du premier tab

    - test test - - - - test du deuxieme tab
    - qsd fqsd dsqf sqdf test test dkjsfhqsdk kqsdh kjqdshf kjdsqh kf qsdk fkqsdh kjsdqhf sdqjk hfksqdhf kjqsdkjsqd kjhsdqk hksdjq - - - - - -
    -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/textcombowidget.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/textcombowidget.html deleted file mode 100644 index b315a5f81..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/textcombowidget.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - -
    -
    - - TextCombo widget

    - -
    - - - - -
    - -
    -
    - - - - - - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/tooltipwidget.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/tooltipwidget.html deleted file mode 100644 index 1c17ba7bd..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/tooltipwidget.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - -
    -
    - - Tooltip widget

    - Move you mouse over here -
    - Move you mouse over here -
    - -
    -
    - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/treeicons.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/treeicons.gif deleted file mode 100644 index 3e06537b30baaeb27b1fd9f95229d6f776ae304d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1471 zcmeH`@lRW26owD1!Uf89r3DHSw&GR_B@MU@=_IqnPfpH{&&hd{ zH}6nxmO@K{2@w1PAtDt38UO=;5lAB_3}DP4D4;Z8P!qLAP#HmO&{3dvf`*1#FBk*E z>8MUH16ToE06qW)fP+mb2Fgr<)d6N7SP|Gb=tST^q>Ib&V$~N|!(bIcYJ_zRHZZuB z#YPs}jL=D1ZKTTqHV0vIi#na)@PeBr-Hh1Df{hI*z{wCkMAEF7VKW#;<6|j?Q!$95 zk;WTvakVUG1z{MqY%y2>DoyS&VRifAjl)|92A*uk(TcjzHSx3!9w) z;xY6P33~1M$)@0Ei>0j({2`VYQD)8WWW|ls(b1*kO zLpcW~g)y??HNM(>=2m=ql&M45s%sbAl+K3!Ii+|!AshS3(LkzcrTs)@{% zPUWbx-)puUt^807L`mI+=A&=ScC^H|EtQ{cEz$RDQzgENHu1Pf*9OD0{`RFqm!7sr z>@yd`l)+Uxf%-3zJ?ubuvHdJHCaQctn~HOs$ycX1at@wQbO`tUwsc1;H^&WV&oqpoQk8zZYD0@RleCMUis{;knw8a?5jO1qwu-u##Mjwa-(3L zt~wc78-Cv`s-qPhL8658qNv-cZ-)qikDYG_*&-DeMHNb`>8Pv+e$Nw$Ch{8Zp=S9S rKd&Q$7kt=i3JyD5C+m;k&wDJSmfA5HTG36UL6AMcbmc?{51#uQ58u`q diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/treeview.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/treeview.html deleted file mode 100644 index c5882ce1c..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/treeview.html +++ /dev/null @@ -1,416 +0,0 @@ - - - - - - - - - - - -
    -
    - - Tree View

    - - - -
    - -

    Rewrite Tree -

    -
    -
    -
    -
    -
    -
    -
    - - - -

    Rewrite Tree No Icons -
    - - - -

    -
    -
    -
    -
    - - - - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/unv_close.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/unv_close.gif deleted file mode 100644 index ff97209cce29ddff721abbd4c2889a06d88f9ff7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1012 zcmZ?wbhEHbRALZd_|5 zOknS^@Bhy+>^;}={M`5d_c*RS2O`CL&kgTAx4ie<>E3%UAbS437>M4#uYUi%=l%D! z-@k7K>G==TaPI#o7!3hBgn;5t7DfgJ0|p&XP5|Wz29Apii5xN>8x#&QvI%R&Xl!U; zXyH-T(s@w8;L<6P7_cV8@KIyGf}_-(7Xb{7lQlS5G%6Gly_-~Im$^tLs2-edz`%24 zrQtFLemS$80|ALnzSEdXxt`qI%)l+GVU=^ip@gYrv3W7mja8FZx``Xct diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/unv_o.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/unv_o.gif deleted file mode 100644 index 5872ca22da58e16b0d94a190217684a2c1a46550..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 571 zcmZ?wbhEHb6krfwc*Xz%|NsAgZhz;c@BR1X&p&p&`q1(66vO`Y3`-X=%yegPe#mj< z4#$PVBDDT!m zKhJ+(z%hHGSnsd%KjRrPW(aLL(fTNqrzF*78dLB(hKZl!ZvT(J{XgZ-|I|DG)9(Jy zy7xcl-v8Wt|MTzvFMaU8?7{!ahySY{{cm{uzxm1k)+hhlpZxE8_P_tx|4GmPPkH`- z*318MU;dx}^8eD;|Chh{zw*uhjqm<%e)oUZhyS}j{6GBZ|B28489p*Fd|+VcXJF`N zVCZCE=wM)IWngG#U}$1sXaso~?Dc^s6o0ZXGB5-&=zyF8iW3I*84W>A%|6X-?Msx4TkraHC1KVZ>9RaMVv9v*@2Zm!ObcGjzd)_aJH zGV{7PIoMj6@7yIRBPAvvYj0y|W_(;ihEbYLP*KUk)JXq0i zOknS^@Bhy+>^;}={M`5d_c*RS2O`CL&kgTAx4ie<>E3%UAbS437>M4#uYUi%=l%D! z-@k7K>G==TaPI#o7!3hBgn;5t7DfgJ0|p&XP5|Wz298q8x#&QvI%R&Xl!U; zXyH-T(s@w8;L<6P7_cV8@KIyGf}_-(7Xb{7lQlS5G%6Gly_-~Im$^tLs2-fIlXy(z z!NJ3Ayb@YID`s9+IM*f;xx(RMVsqO9VFiJ`oXicOs}1_hN(3Lbb_t0a_;fHlJb0xs zigj74V6t0}n7T%T!tVtKBe&}DuBx~gdbFK~Q^6wRz=OPNdsqWkWNiGx%*xy>DYC88 rEXAW)#cPhn$Loif4snSDoQnu(>DVu+GU40|#>UrIHyE?AFjxZs4uu$$ diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/waitDialog.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/waitDialog.html deleted file mode 100644 index ad242ea18..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/samples/waitDialog.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - Waiting dialog window - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/treeview.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/treeview.js deleted file mode 100644 index fa9a91864..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/treeview.js +++ /dev/null @@ -1,3027 +0,0 @@ -// - - - - - - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/validator/validator_res.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/validator/validator_res.html deleted file mode 100644 index 95725ab30..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/validator/validator_res.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - -
    Restrict to file:
    Restrict children of tag with id:

        

    -

    - - - - - - \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/waitdialog.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/waitdialog.js deleted file mode 100644 index a28cb36d8..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/dhtmllib/waitdialog.js +++ /dev/null @@ -1,220 +0,0 @@ -// ','','','','
    ','
    ','
    ','Filters:','','','','','','','','
    ','','
    ','Options:','','','','','','','
    ','
    ','
    ','
    ','','' ]};function ConsoleAppender(){}var consoleAppenderIdCounter=1;ConsoleAppender.prototype=new Appender();ConsoleAppender.prototype.create=function(inPage,containerElement,layout,lazyInit,focusConsoleWindow,useOldPopUp,complainAboutPopUpBlocking,newestMessageAtTop,scrollToLatestMessage,initiallyMinimized,width,height,reopenWhenClosed,maxMessages){var appender=this;if(layout){this.setLayout(layout)}else{this.setLayout(this.defaults.layout)}var initialized=false;var consoleWindowLoaded=false;var queuedLoggingEvents=[];var isSupported=true;var consoleAppenderId=consoleAppenderIdCounter++;lazyInit=extractBooleanFromParam(lazyInit,true);newestMessageAtTop=extractBooleanFromParam(newestMessageAtTop,this.defaults.newestMessageAtTop);scrollToLatestMessage=extractBooleanFromParam(scrollToLatestMessage,this.defaults.scrollToLatestMessage);width=width?width:this.defaults.width;height=height?height:this.defaults.height;maxMessages=maxMessages?maxMessages:this.defaults.maxMessages;var init,safeToAppend,getConsoleWindow;var appenderName=inPage?"InPageAppender":"PopUpAppender";var checkCanConfigure=function(configOptionName){if(initialized){handleError(appenderName+": configuration option '"+configOptionName+"' may not be set after the appender has been initialized");return false}return true};this.isNewestMessageAtTop=function(){return newestMessageAtTop};this.setNewestMessageAtTop=function(newestMessageAtTopParam){newestMessageAtTop=bool(newestMessageAtTopParam);if(consoleWindowLoaded&&isSupported){getConsoleWindow().setNewestAtTop(newestMessageAtTop)}};this.isScrollToLatestMessage=function(){return scrollToLatestMessage};this.setScrollToLatestMessage=function(scrollToLatestMessageParam){scrollToLatestMessage=bool(scrollToLatestMessageParam);if(consoleWindowLoaded&&isSupported){getConsoleWindow().setScrollToLatest(scrollToLatestMessage)}};this.getWidth=function(){return width};this.setWidth=function(widthParam){if(checkCanConfigure("width")){width=extractStringFromParam(widthParam,width)}};this.getHeight=function(){return height};this.setHeight=function(heightParam){if(checkCanConfigure("height")){height=extractStringFromParam(heightParam,height)}};this.getMaxMessages=function(){return maxMessages};this.setMaxMessages=function(maxMessagesParam){maxMessages=extractIntFromParam(maxMessagesParam,maxMessages);if(consoleWindowLoaded&&isSupported){getConsoleWindow().setMaxMessages(maxMessages)}};this.append=function(loggingEvent){if(isSupported){queuedLoggingEvents.push(loggingEvent);var isSafeToAppend=safeToAppend();if(!initialized||(consoleClosed&&reopenWhenClosed)){init()}if(safeToAppend()){appendQueuedLoggingEvents()}}};var appendQueuedLoggingEvents=function(loggingEvent){while(queuedLoggingEvents.length>0){var currentLoggingEvent=queuedLoggingEvents.shift();var formattedMessage=appender.getLayout().format(currentLoggingEvent);if(appender.getLayout().ignoresThrowable()){formattedMessage+=currentLoggingEvent.getThrowableStrRep()}getConsoleWindow().log(currentLoggingEvent.level,formattedMessage)}if(focusConsoleWindow){getConsoleWindow().focus()}};var writeHtml=function(doc){var lines=getConsoleHtmlLines();doc.open();for(var i=0;i";iframeContainerDiv.innerHTML=iframeHtml;consoleClosed=false;var iframeDocumentExistsTest=function(win){return bool(win)&&bool(win.document)};if(iframeDocumentExistsTest(getConsoleWindow())){writeToDocument()}else{pollConsoleWindow(iframeDocumentExistsTest,writeToDocument,initErrorMessage)}initialized=true};getConsoleWindow=function(){var iframe=window.frames[iframeId];if(iframe){return iframe}};safeToAppend=function(){if(isSupported&&!consoleClosed){if(!consoleWindowLoaded&&getConsoleWindow()&&getConsoleWindow().loaded){consoleWindowLoaded=true}return consoleWindowLoaded}return false}}else{useOldPopUp=extractBooleanFromParam(useOldPopUp,appender.defaults.useOldPopUp);complainAboutPopUpBlocking=extractBooleanFromParam(complainAboutPopUpBlocking,appender.defaults.complainAboutPopUpBlocking);reopenWhenClosed=extractBooleanFromParam(reopenWhenClosed,this.defaults.reopenWhenClosed);this.isUseOldPopUp=function(){return useOldPopUp};this.setUseOldPopUp=function(useOldPopUpParam){if(checkCanConfigure("useOldPopUp")){useOldPopUp=bool(useOldPopUpParam)}};this.isComplainAboutPopUpBlocking=function(){return complainAboutPopUpBlocking};this.setComplainAboutPopUpBlocking=function(complainAboutPopUpBlockingParam){if(checkCanConfigure("complainAboutPopUpBlocking")){complainAboutPopUpBlocking=bool(complainAboutPopUpBlockingParam)}};this.isFocusPopUp=function(){return focusConsoleWindow};this.setFocusPopUp=function(focusPopUpParam){focusConsoleWindow=bool(focusPopUpParam)};this.isReopenWhenClosed=function(){return reopenWhenClosed};this.setReopenWhenClosed=function(reopenWhenClosedParam){reopenWhenClosed=bool(reopenWhenClosedParam)};this.close=function(){try{popUp.close()}catch(e){}consoleClosed=true};var popUp;init=function(){var windowProperties="width="+width+",height="+height+",status,resizable";var windowName="PopUp_"+location.host.replace(/[^a-z0-9]/gi,"_")+"_"+consoleAppenderId;if(!useOldPopUp){windowName=windowName+"_"+uniqueId}function finalInit(){consoleWindowLoaded=true;getConsoleWindow().setNewestAtTop(newestMessageAtTop);getConsoleWindow().setScrollToLatest(scrollToLatestMessage);getConsoleWindow().setMaxMessages(maxMessages);appendQueuedLoggingEvents()}try{popUp=window.open("",windowName,windowProperties);consoleClosed=false;if(popUp){if(useOldPopUp&&popUp.loaded){popUp.mainPageReloaded();finalInit()}else{writeHtml(popUp.document);var popUpLoadedTest=function(win){return bool(win)&&win.loaded};if(popUp.loaded){finalInit()}else{pollConsoleWindow(popUpLoadedTest,finalInit,"PopUpAppender.init: unable to create console window")}}}else{isSupported=false;logLog.warn("PopUpAppender.init: pop-ups blocked, please unblock to use PopUpAppender");if(complainAboutPopUpBlocking){handleError("log4javascript: pop-up windows appear to be blocked. Please unblock them to use pop-up logging.")}}}catch(ex){handleError("PopUpAppender.init: error creating pop-up",ex)}initialized=true};getConsoleWindow=function(){return popUp};safeToAppend=function(){if(isSupported&&!isUndefined(popUp)&&!consoleClosed){if(popUp.closed||(consoleWindowLoaded&&isUndefined(popUp.closed))){consoleClosed=true;logLog.debug("PopUpAppender: pop-up closed");return false}if(!consoleWindowLoaded&&popUp.loaded){consoleWindowLoaded=true}}return isSupported&&consoleWindowLoaded&&!consoleClosed}}if(enabled&&!lazyInit){init()}this.getConsoleWindow=getConsoleWindow};var PopUpAppender=function(lazyInit,layout,focusPopUp,useOldPopUp,complainAboutPopUpBlocking,newestMessageAtTop,scrollToLatestMessage,reopenWhenClosed,width,height,maxMessages){var focusConsoleWindow=extractBooleanFromParam(focusPopUp,this.defaults.focusPopUp);this.create(false,null,layout,lazyInit,focusConsoleWindow,useOldPopUp,complainAboutPopUpBlocking,newestMessageAtTop,scrollToLatestMessage,null,width,height,reopenWhenClosed,maxMessages)};PopUpAppender.prototype=new ConsoleAppender();PopUpAppender.prototype.defaults={layout:new PatternLayout("%d{HH:mm:ss} %-5p - %m{1}%n"),focusPopUp:false,lazyInit:true,useOldPopUp:true,complainAboutPopUpBlocking:true,newestMessageAtTop:false,scrollToLatestMessage:true,width:"600",height:"400",reopenWhenClosed:false,maxMessages:null};PopUpAppender.prototype.toString=function(){return "[PopUpAppender]"};log4javascript.PopUpAppender=PopUpAppender;var InPageAppender=function(containerElement,lazyInit,layout,initiallyMinimized,newestMessageAtTop,scrollToLatestMessage,width,height,maxMessages){this.create(true,containerElement,layout,lazyInit,false,null,null,newestMessageAtTop,scrollToLatestMessage,initiallyMinimized,width,height,null,maxMessages)};InPageAppender.prototype=new ConsoleAppender();InPageAppender.prototype.defaults={layout:new PatternLayout("%d{HH:mm:ss} %-5p - %m{1}%n"),initiallyMinimized:false,lazyInit:true,newestMessageAtTop:false,scrollToLatestMessage:true,width:"100%",height:"250px",maxMessages:null};InPageAppender.prototype.toString=function(){return "[InPageAppender]"};log4javascript.InPageAppender=InPageAppender;log4javascript.InlineAppender=InPageAppender})();var BrowserConsoleAppender=function(layout){if(layout){this.setLayout(layout)}};BrowserConsoleAppender.prototype=new log4javascript.Appender();BrowserConsoleAppender.prototype.layout=new NullLayout();BrowserConsoleAppender.prototype.threshold=Level.DEBUG;BrowserConsoleAppender.prototype.append=function(loggingEvent){var appender=this;var getFormattedMessage=function(){var layout=appender.getLayout();var formattedMessage=layout.format(loggingEvent);if(layout.ignoresThrowable()&&loggingEvent.exception){formattedMessage+=loggingEvent.getThrowableStrRep()}return formattedMessage};if((typeof opera!="undefined")&&opera.postError){opera.postError(getFormattedMessage())}else if(window.console&&window.console.log){var formattedMesage=getFormattedMessage();if(window.console.debug&&Level.DEBUG.isGreaterOrEqual(loggingEvent.level)){window.console.debug(formattedMesage)}else if(window.console.info&&Level.INFO.equals(loggingEvent.level)){window.console.info(formattedMesage)}else if(window.console.warn&&Level.WARN.equals(loggingEvent.level)){window.console.warn(formattedMesage)}else if(window.console.error&&loggingEvent.level.isGreaterOrEqual(Level.ERROR)){window.console.error(formattedMesage)}else{window.console.log(formattedMesage)}}};BrowserConsoleAppender.prototype.toString=function(){return "[BrowserConsoleAppender]"};log4javascript.BrowserConsoleAppender=BrowserConsoleAppender})(); \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/log4javascript/log4javascript_stub.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/log4javascript/log4javascript_stub.js deleted file mode 100644 index 65e3d3b84..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/log4javascript/log4javascript_stub.js +++ /dev/null @@ -1 +0,0 @@ -var log4javascript;(function(){function ff(){return function(){}}function copy(obj,props){for(var i in props){obj[i]=props[i]}}var f=ff();var Logger=ff();copy(Logger.prototype,{addAppender:f,removeAppender:f,removeAllAppenders:f,log:f,setLevel:f,getLevel:f,trace:f,debug:f,info:f,warn:f,error:f,fatal:f});var getLogger=function(){return new Logger()};log4javascript={isStub:true,version:"dummy",logLog:{setQuietMode:f,setAlertAllErrors:f,debug:f,warn:f,error:f},addErrorListener:f,removeErrorListener:f,setEnabled:f,setShowStackTraces:f,isEnabled:f,evalInScope:f,getLogger:getLogger,getDefaultLogger:getLogger,getNullLogger:getLogger,Level:ff(),LoggingEvent:ff(),Layout:ff(),Appender:ff()};log4javascript.LoggingEvent.prototype={getThrowableStrRep:f};log4javascript.Level.prototype={toString:f,equals:f,isGreaterOrEqual:f};var level=new log4javascript.Level();copy(log4javascript.Level,{ALL:level,TRACE:level,DEBUG:level,INFO:level,WARN:level,ERROR:level,FATAL:level,OFF:level});log4javascript.Layout.prototype={defaults:{},format:f,ignoresThrowable:f,getContentType:f,allowBatching:f,getDataValues:f,setKeys:f,setCustomField:f,hasCustomFields:f};log4javascript.SimpleLayout=ff();log4javascript.SimpleLayout.prototype=new log4javascript.Layout();log4javascript.XmlLayout=ff();log4javascript.XmlLayout.prototype=new log4javascript.Layout();log4javascript.XmlLayout.prototype.escapeCdata=f;log4javascript.JsonLayout=ff();log4javascript.JsonLayout.prototype=new log4javascript.Layout();copy(log4javascript.JsonLayout.prototype,{setReadable:f,isReadable:f});log4javascript.HttpPostDataLayout=ff();log4javascript.HttpPostDataLayout.prototype=new log4javascript.Layout();log4javascript.PatternLayout=ff();log4javascript.PatternLayout.prototype=new log4javascript.Layout();log4javascript.NullLayout=ff();log4javascript.NullLayout.prototype=new log4javascript.Layout();log4javascript.Appender=ff();log4javascript.Appender.prototype={layout:new log4javascript.PatternLayout(),threshold:log4javascript.Level.ALL,doAppend:f,append:f,setLayout:f,getLayout:f,setThreshold:f,getThreshold:f,toString:f};log4javascript.AlertAppender=ff();log4javascript.AlertAppender.prototype=new log4javascript.Appender();log4javascript.ArrayAppender=ff();log4javascript.ArrayAppender.prototype=new log4javascript.Appender();log4javascript.AjaxAppender=ff();log4javascript.AjaxAppender.prototype=new log4javascript.Appender();copy(log4javascript.AjaxAppender.prototype,{isTimed:f,setTimed:f,getTimerInterval:f,setTimerInterval:f,isWaitForResponse:f,setWaitForResponse:f,getBatchSize:f,setBatchSize:f,setRequestSuccessCallback:f,setFailCallback:f,sendAll:f,defaults:{requestSuccessCallback:null,failCallback:null}});function ConsoleAppender(){}ConsoleAppender.prototype=new log4javascript.Appender();copy(ConsoleAppender.prototype,{create:f,isNewestMessageAtTop:f,setNewestMessageAtTop:f,isScrollToLatestMessage:f,setScrollToLatestMessage:f,getWidth:f,setWidth:f,getHeight:f,setHeight:f,getMaxMessages:f,setMaxMessages:f});log4javascript.InPageAppender=ff();log4javascript.InPageAppender.prototype=new ConsoleAppender();copy(log4javascript.InPageAppender.prototype,{isInitiallyMinimized:f,setInitiallyMinimized:f,hide:f,show:f,isVisible:f,close:f,defaults:{layout:new log4javascript.PatternLayout(),maxMessages:null}});log4javascript.InlineAppender=log4javascript.InPageAppender;log4javascript.PopUpAppender=ff();log4javascript.PopUpAppender.prototype=new ConsoleAppender();copy(log4javascript.PopUpAppender.prototype,{isUseOldPopUp:f,setUseOldPopUp:f,isComplainAboutPopUpBlocking:f,setComplainAboutPopUpBlocking:f,isFocusPopUp:f,setFocusPopUp:f,isReopenWhenClosed:f,setReopenWhenClosed:f,close:f,defaults:{layout:new log4javascript.PatternLayout(),maxMessages:null}});log4javascript.BrowserConsoleAppender=ff();log4javascript.BrowserConsoleAppender.prototype=new log4javascript.Appender()})();var log4javascript_dummy=log4javascript; \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/log4javascript/log4javascript_stub_uncompressed.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/log4javascript/log4javascript_stub_uncompressed.js deleted file mode 100644 index 1553d4d2e..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/log4javascript/log4javascript_stub_uncompressed.js +++ /dev/null @@ -1,224 +0,0 @@ -var log4javascript; -(function() { - function ff() { - return function() {}; - } - function copy(obj, props) { - for (var i in props) { - obj[i] = props[i]; - } - } - var f = ff(); - - // Loggers - var Logger = ff(); - copy(Logger.prototype, { - addAppender: f, - removeAppender: f, - removeAllAppenders: f, - log: f, - setLevel: f, - getLevel: f, - trace: f, - debug: f, - info: f, - warn: f, - error: f, - fatal: f - }); - - var getLogger = function() { - return new Logger(); - }; - - log4javascript = { - isStub: true, - version: "dummy", - logLog: { - setQuietMode: f, - setAlertAllErrors: f, - debug: f, - warn: f, - error: f - }, - addErrorListener: f, - removeErrorListener: f, - setEnabled: f, - setShowStackTraces: f, - isEnabled: f, - evalInScope: f, - getLogger: getLogger, - getDefaultLogger: getLogger, - getNullLogger: getLogger, - Level: ff(), - LoggingEvent: ff(), - Layout: ff(), - Appender: ff() - }; - - // LoggingEvents - log4javascript.LoggingEvent.prototype = { - getThrowableStrRep: f - }; - - // Levels - log4javascript.Level.prototype = { - toString: f, - equals: f, - isGreaterOrEqual: f - }; - var level = new log4javascript.Level(); - copy(log4javascript.Level, { - ALL: level, - TRACE: level, - DEBUG: level, - INFO: level, - WARN: level, - ERROR: level, - FATAL: level, - OFF: level - }); - - // Layouts - log4javascript.Layout.prototype = { - defaults: {}, - format: f, - ignoresThrowable: f, - getContentType: f, - allowBatching: f, - getDataValues: f, - setKeys: f, - setCustomField: f, - hasCustomFields: f - }; - - // SimpleLayout - log4javascript.SimpleLayout = ff(); - log4javascript.SimpleLayout.prototype = new log4javascript.Layout(); - - // XmlLayout - log4javascript.XmlLayout = ff(); - log4javascript.XmlLayout.prototype = new log4javascript.Layout(); - log4javascript.XmlLayout.prototype.escapeCdata = f; - - // JsonLayout - log4javascript.JsonLayout = ff(); - log4javascript.JsonLayout.prototype = new log4javascript.Layout(); - copy(log4javascript.JsonLayout.prototype, { - setReadable: f, - isReadable: f - }); - - // HttpPostDataLayout - log4javascript.HttpPostDataLayout = ff(); - log4javascript.HttpPostDataLayout.prototype = new log4javascript.Layout(); - - // PatternLayout - log4javascript.PatternLayout = ff(); - log4javascript.PatternLayout.prototype = new log4javascript.Layout(); - - // NullLayout - log4javascript.NullLayout = ff(); - log4javascript.NullLayout.prototype = new log4javascript.Layout(); - - // Appenders - log4javascript.Appender = ff(); - log4javascript.Appender.prototype = { - layout: new log4javascript.PatternLayout(), - threshold: log4javascript.Level.ALL, - doAppend: f, - append: f, - setLayout: f, - getLayout: f, - setThreshold: f, - getThreshold: f, - toString: f - }; - - // AlertAppender - log4javascript.AlertAppender = ff(); - log4javascript.AlertAppender.prototype = new log4javascript.Appender(); - - // AlertAppender - log4javascript.ArrayAppender = ff(); - log4javascript.ArrayAppender.prototype = new log4javascript.Appender(); - - // AjaxAppender - log4javascript.AjaxAppender = ff(); - log4javascript.AjaxAppender.prototype = new log4javascript.Appender(); - copy(log4javascript.AjaxAppender.prototype, { - isTimed: f, - setTimed: f, - getTimerInterval: f, - setTimerInterval: f, - isWaitForResponse: f, - setWaitForResponse: f, - getBatchSize: f, - setBatchSize: f, - setRequestSuccessCallback: f, - setFailCallback: f, - sendAll: f, - defaults: { - requestSuccessCallback: null, - failCallback: null - } - }); - - // ConsoleAppender - function ConsoleAppender() {} - ConsoleAppender.prototype = new log4javascript.Appender(); - copy(ConsoleAppender.prototype, { - create: f, - isNewestMessageAtTop: f, - setNewestMessageAtTop: f, - isScrollToLatestMessage: f, - setScrollToLatestMessage: f, - getWidth: f, - setWidth: f, - getHeight: f, - setHeight: f, - getMaxMessages: f, - setMaxMessages: f - }); - - // InPageAppender - log4javascript.InPageAppender = ff(); - log4javascript.InPageAppender.prototype = new ConsoleAppender(); - copy(log4javascript.InPageAppender.prototype, { - isInitiallyMinimized: f, - setInitiallyMinimized: f, - hide: f, - show: f, - isVisible: f, - close: f, - defaults: { - layout: new log4javascript.PatternLayout(), - maxMessages: null - } - }); - log4javascript.InlineAppender = log4javascript.InPageAppender; - - // PopUpAppender - log4javascript.PopUpAppender = ff(); - log4javascript.PopUpAppender.prototype = new ConsoleAppender(); - copy(log4javascript.PopUpAppender.prototype, { - isUseOldPopUp: f, - setUseOldPopUp: f, - isComplainAboutPopUpBlocking: f, - setComplainAboutPopUpBlocking: f, - isFocusPopUp: f, - setFocusPopUp: f, - isReopenWhenClosed: f, - setReopenWhenClosed: f, - close: f, - defaults: { - layout: new log4javascript.PatternLayout(), - maxMessages: null - } - }); - - // BrowserConsoleAppender - log4javascript.BrowserConsoleAppender = ff(); - log4javascript.BrowserConsoleAppender.prototype = new log4javascript.Appender(); -})(); -var log4javascript_dummy = log4javascript; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/log4javascript/log4javascript_uncompressed.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/log4javascript/log4javascript_uncompressed.js deleted file mode 100644 index 06a7ecdf7..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/log4javascript/log4javascript_uncompressed.js +++ /dev/null @@ -1,3199 +0,0 @@ -/** - * Copyright 2006 Tim Down. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * log4javascript - * - * log4javascript is a logging framework for JavaScript based on log4j - * for Java. This file contains all core log4javascript code and is the only - * file required to use log4javascript. If you wish to disable log4javascript - * in production code, replace log4javascript.js with the stub file - * log4javascript_stub.js, included in the distribution. Also included in the - * distribution is log4javascript.js, a compressed but functionally - * identical version of this file. - * - * Author: Tim Down - * Version: 1.3.1 - * Last modified: 8/11/2006 - * Website: http://www.timdown.co.uk/log4javascript - */ - -/* ------------------------------------------------------------------------- */ - -// Array-related stuff - -// Next three methods are solely for IE5, which is missing them -if (!Array.prototype.push) { - Array.prototype.push = function() { - for (var i = 0; i < arguments.length; i++){ - this[this.length] = arguments[i]; - } - return this.length; - }; -} - -if (!Array.prototype.shift) { - Array.prototype.shift = function() { - if (this.length > 0) { - var firstItem = this[0]; - for (var i = 0; i < this.length - 1; i++) { - this[i] = this[i + 1]; - } - this.length = this.length - 1; - return firstItem; - } - }; -} - -if (!Array.prototype.splice) { - Array.prototype.splice = function(startIndex, deleteCount) { - var itemsAfterDeleted = this.slice(startIndex + deleteCount); - var itemsDeleted = this.slice(startIndex, startIndex + deleteCount); - this.length = startIndex; - // Copy the arguments into a proper Array object - var argumentsArray = []; - for (var i = 0; i < arguments.length; i++) { - argumentsArray[i] = arguments[i]; - } - var itemsToAppend = (argumentsArray.length > 2) ? - itemsAfterDeleted = argumentsArray.slice(2).concat(itemsAfterDeleted) : itemsAfterDeleted; - for (i = 0; i < itemsToAppend.length; i++) { - this.push(itemsToAppend[i]); - } - return itemsDeleted; - }; -} - -/* ------------------------------------------------------------------------- */ - -var log4javascript; -var SimpleDateFormat; - -(function() { - function isUndefined(obj) { - return typeof obj == "undefined"; - } - - // Date-related stuff - (function() { - var regex = /('[^']*')|(G+|y+|M+|w+|W+|D+|d+|F+|E+|a+|H+|k+|K+|h+|m+|s+|S+|Z+)|([a-zA-Z]+)|([^a-zA-Z']+)/; - var monthNames = ["January", "February", "March", "April", "May", "June", - "July", "August", "September", "October", "November", "December"]; - var dayNames = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; - var TEXT2 = 0, TEXT3 = 1, NUMBER = 2, YEAR = 3, MONTH = 4, TIMEZONE = 5; - var types = { - G : TEXT2, - y : YEAR, - Y : YEAR, - M : MONTH, - w : NUMBER, - W : NUMBER, - D : NUMBER, - d : NUMBER, - F : NUMBER, - E : TEXT3, - a : TEXT2, - H : NUMBER, - k : NUMBER, - K : NUMBER, - h : NUMBER, - m : NUMBER, - s : NUMBER, - S : NUMBER, - Z : TIMEZONE - }; - var ONE_DAY = 24 * 60 * 60 * 1000; - var ONE_WEEK = 7 * ONE_DAY; - var DEFAULT_MINIMAL_DAYS_IN_FIRST_WEEK = 1; - - Date.prototype.getDifference = function(date) { - return this.getTime() - date.getTime(); - }; - - Date.prototype.isBefore = function(d) { - return this.getTime() < d.getTime(); - }; - - Date.prototype.getWeekInYear = function(minimalDaysInFirstWeek) { - if (isUndefined(this.minimalDaysInFirstWeek)) { - minimalDaysInFirstWeek = DEFAULT_MINIMAL_DAYS_IN_FIRST_WEEK; - } - var previousSunday = new Date(this.getTime() - this.getDay() * ONE_DAY); - previousSunday = new Date(previousSunday.getFullYear(), previousSunday.getMonth(), previousSunday.getDate()); - var startOfYear = new Date(this.getFullYear(), 0, 1); - var numberOfSundays = previousSunday.isBefore(startOfYear) ? - 0 : 1 + Math.floor((previousSunday.getTime() - startOfYear.getTime()) / ONE_WEEK); - var numberOfDaysInFirstWeek = 7 - startOfYear.getDay(); - var weekInYear = numberOfSundays; - if (numberOfDaysInFirstWeek >= minimalDaysInFirstWeek) { - weekInYear++; - } - return weekInYear; - }; - - Date.prototype.getWeekInMonth = function(minimalDaysInFirstWeek) { - if (isUndefined(this.minimalDaysInFirstWeek)) { - minimalDaysInFirstWeek = DEFAULT_MINIMAL_DAYS_IN_FIRST_WEEK; - } - var previousSunday = new Date(this.getTime() - this.getDay() * ONE_DAY); - previousSunday = new Date(previousSunday.getFullYear(), previousSunday.getMonth(), previousSunday.getDate()); - var startOfMonth = new Date(this.getFullYear(), this.getMonth(), 1); - var numberOfSundays = previousSunday.isBefore(startOfMonth) ? - 0 : 1 + Math.floor((previousSunday.getTime() - startOfMonth.getTime()) / ONE_WEEK); - var numberOfDaysInFirstWeek = 7 - startOfMonth.getDay(); - var weekInMonth = numberOfSundays; - if (numberOfDaysInFirstWeek >= minimalDaysInFirstWeek) { - weekInMonth++; - } - return weekInMonth; - }; - - Date.prototype.getDayInYear = function() { - var startOfYear = new Date(this.getFullYear(), 0, 1); - return 1 + Math.floor((this.getTime() - startOfYear.getTime()) / ONE_DAY); - }; - - /* ----------------------------------------------------------------- */ - - SimpleDateFormat = function(formatString) { - this.formatString = formatString; - }; - - /** - * Sets the minimum number of days in a week in order for that week to - * be considered as belonging to a particular month or year - */ - SimpleDateFormat.prototype.setMinimalDaysInFirstWeek = function(days) { - this.minimalDaysInFirstWeek = days; - }; - - SimpleDateFormat.prototype.getMinimalDaysInFirstWeek = function(days) { - return isUndefined(this.minimalDaysInFirstWeek) ? - DEFAULT_MINIMAL_DAYS_IN_FIRST_WEEK : this.minimalDaysInFirstWeek; - }; - - SimpleDateFormat.prototype.format = function(date) { - var formattedString = ""; - var result; - - var padWithZeroes = function(str, len) { - while (str.length < len) { - str = "0" + str; - } - return str; - }; - - var formatText = function(data, numberOfLetters, minLength) { - return (numberOfLetters >= 4) ? data : data.substr(0, Math.max(minLength, numberOfLetters)); - }; - - var formatNumber = function(data, numberOfLetters) { - var dataString = "" + data; - // Pad with 0s as necessary - return padWithZeroes(dataString, numberOfLetters); - }; - - var searchString = this.formatString; - while ((result = regex.exec(searchString))) { - var matchedString = result[0]; - var quotedString = result[1]; - var patternLetters = result[2]; - var otherLetters = result[3]; - var otherCharacters = result[4]; - - // If the pattern matched is quoted string, output the text between the quotes - if (quotedString) { - if (quotedString == "''") { - formattedString += "'"; - } else { - formattedString += quotedString.substring(1, quotedString.length - 1); - } - } else if (otherLetters) { - // Swallow non-pattern letters by doing nothing here - } else if (otherCharacters) { - // Simply output other characters - formattedString += otherCharacters; - } else if (patternLetters) { - // Replace pattern letters - var patternLetter = patternLetters.charAt(0); - var numberOfLetters = patternLetters.length; - var rawData = ""; - switch (patternLetter) { - case "G": - rawData = "AD"; - break; - case "y": - rawData = date.getFullYear(); - break; - case "M": - rawData = date.getMonth(); - break; - case "w": - rawData = date.getWeekInYear(this.getMinimalDaysInFirstWeek()); - break; - case "W": - rawData = date.getWeekInMonth(this.getMinimalDaysInFirstWeek()); - break; - case "D": - rawData = date.getDayInYear(); - break; - case "d": - rawData = date.getDate(); - break; - case "F": - rawData = 1 + Math.floor((date.getDate() - 1) / 7); - break; - case "E": - rawData = dayNames[date.getDay()]; - break; - case "a": - rawData = (date.getHours() >= 12) ? "PM" : "AM"; - break; - case "H": - rawData = date.getHours(); - break; - case "k": - rawData = 1 + date.getHours(); - break; - case "K": - rawData = date.getHours() % 12; - break; - case "h": - rawData = 1 + (date.getHours() % 12); - break; - case "m": - rawData = date.getMinutes(); - break; - case "s": - rawData = date.getSeconds(); - break; - case "S": - rawData = date.getMilliseconds(); - break; - case "Z": - rawData = date.getTimezoneOffset(); // This returns the number of minutes since GMT was this time. - break; - } - // Format the raw data depending on the type - switch (types[patternLetter]) { - case TEXT2: - formattedString += formatText(rawData, numberOfLetters, 2); - break; - case TEXT3: - formattedString += formatText(rawData, numberOfLetters, 3); - break; - case NUMBER: - formattedString += formatNumber(rawData, numberOfLetters); - break; - case YEAR: - if (numberOfLetters <= 2) { - // Output a 2-digit year - var dataString = "" + rawData; - formattedString += dataString.substr(2, 2); - } else { - formattedString += formatNumber(rawData, numberOfLetters); - } - break; - case MONTH: - if (numberOfLetters >= 3) { - formattedString += formatText(monthNames[rawData], numberOfLetters, numberOfLetters); - } else { - // NB. Months returned by getMonth are zero-based - formattedString += formatNumber(rawData + 1, numberOfLetters); - } - break; - case TIMEZONE: - var isPositive = (rawData > 0); - // The following line looks like a mistake but isn't - // because of the way getTimezoneOffset measures. - var prefix = isPositive ? "-" : "+"; - var absData = Math.abs(rawData); - - // Hours - var hours = "" + Math.floor(absData / 60); - hours = padWithZeroes(hours, 2); - // Minutes - var minutes = "" + (absData % 60); - minutes = padWithZeroes(minutes, 2); - - formattedString += prefix + hours + minutes; - break; - } - } - searchString = searchString.substr(result.index + result[0].length); - } - return formattedString; - }; - })(); - - /* ------------------------------------------------------------------------- */ - - var applicationStartDate = new Date(); - var uniqueId = "log4javascript_" + applicationStartDate.getTime() + "_" + - Math.floor(Math.random() * 100000000); - var emptyFunction = function() {}; - var newLine = "\r\n"; - - // Create logging object; this will be assigned properties and returned - log4javascript = {}; - log4javascript.version = "1.3.1"; - - // Returns a nicely formatted representation of an error - function getExceptionStringRep(ex) { - if (ex) { - var exStr = "Exception: "; - if (ex.message) { - exStr += ex.message; - } else if (ex.description) { - exStr += ex.description; - } - if (ex.lineNumber) { - exStr += " on line number " + ex.lineNumber; - } - if (ex.fileName) { - exStr += " in file " + ex.fileName; - } - if (showStackTraces && ex.stack) { - exStr += newLine + "Stack trace:" + newLine + ex.stack; - } - return exStr; - } - return null; - } - - function formatObjectExpansion(obj, depth, indentation) { - var i, output, childDepth, childIndentation, childLines; - if ((obj instanceof Array) && depth > 0) { - if (!indentation) { - indentation = ""; - } - output = "[" + newLine; - childDepth = depth - 1; - childIndentation = indentation + " "; - childLines = []; - for (i = 0; i < obj.length; i++) { - childLines.push(childIndentation + formatObjectExpansion(obj[i], childDepth, childIndentation)); - } - output += childLines.join("," + newLine) + newLine + indentation + "]"; - return output; - } else if (typeof obj == "object" && depth > 0) { - if (!indentation) { - indentation = ""; - } - output = "" + "{" + newLine; - childDepth = depth - 1; - childIndentation = indentation + " "; - childLines = []; - for (i in obj) { - childLines.push(childIndentation + i + ": " + formatObjectExpansion(obj[i], childDepth, childIndentation)); - } - output += childLines.join("," + newLine) + newLine + indentation + "}"; - return output; - } else if (typeof obj == "string") { - return obj; - } else { - return obj.toString(); - } - } - - function escapeNewLines(str) { - return str.replace(/\r\n|\r|\n/g, "\\r\\n"); - } - - function urlEncode(str) { - return escape(str).replace(/\+/g, "%2B").replace(/"/g, "%22").replace(/'/g, "%27").replace(/\//g, "%2F"); - } - - function bool(obj) { - return Boolean(obj); - } - - function array_remove(arr, val) { - var index = -1; - for (var i = 0; i < arr.length; i++) { - if (arr[i] === val) { - index = i; - break; - } - } - if (index >= 0) { - arr.splice(index, 1); - return true; - } else { - return false; - } - } - - function extractBooleanFromParam(param, defaultValue) { - if (isUndefined(param)) { - return defaultValue; - } else { - return bool(param); - } - } - - function extractStringFromParam(param, defaultValue) { - if (isUndefined(param)) { - return defaultValue; - } else { - return String(param); - } - } - - function extractIntFromParam(param, defaultValue) { - if (isUndefined(param)) { - return defaultValue; - } else { - try { - var value = parseInt(param, 10); - return isNaN(value) ? defaultValue : value; - } catch (ex) { - logLog.warn("Invalid int param " + param, ex); - return defaultValue; - } - } - } - - function extractFunctionFromParam(param, defaultValue) { - if (typeof param == "function") { - return param; - } else { - return defaultValue; - } - } - - /* --------------------------------------------------------------------- */ - - // Simple logging for log4javascript itself - - var logLog = { - quietMode: false, - - setQuietMode: function(quietMode) { - this.quietMode = bool(quietMode); - }, - - numberOfErrors: 0, - - alertAllErrors: false, - - setAlertAllErrors: function(alertAllErrors) { - this.alertAllErrors = alertAllErrors; - }, - - debug: function(message, exception) { - }, - - warn: function(message, exception) { - }, - - error: function(message, exception) { - if (++this.numberOfErrors == 1 || this.alertAllErrors) { - if (!this.quietMode) { - var alertMessage = "log4javascript error: " + message; - if (exception) { - alertMessage += newLine + newLine + "Original error: " + getExceptionStringRep(exception); - } - alert(alertMessage); - } - } - } - }; - log4javascript.logLog = logLog; - - /* --------------------------------------------------------------------- */ - - var errorListeners = []; - - log4javascript.addErrorListener = function(listener) { - if (typeof listener == "function") { - errorListeners.push(listener); - } else { - handleError("addErrorListener: listener supplied was not a function"); - } - }; - - log4javascript.removeErrorListener = function(listener) { - array_remove(errorListeners, listener); - }; - - function handleError(message, exception) { - logLog.error(message, exception); - for (var i = 0; i < errorListeners.length; i++) { - errorListeners[i](message, exception); - } - } - - /* --------------------------------------------------------------------- */ - - var enabled = (typeof log4javascript_disabled != "undefined") && - log4javascript_disabled ? false : true; - - log4javascript.setEnabled = function(enable) { - enabled = bool(enable); - }; - - log4javascript.isEnabled = function() { - return enabled; - }; - - // This evaluates the given expression in the current scope, thus allowing - // scripts to access private variables. Particularly useful for testing - log4javascript.evalInScope = function(expr) { - return eval(expr); - }; - - var showStackTraces = false; - - log4javascript.setShowStackTraces = function(show) { - showStackTraces = bool(show); - }; - - /* --------------------------------------------------------------------- */ - - function Logger(name) { - this.name = name; - var appenders = []; - var loggerLevel = Level.DEBUG; - - // Create methods that use the appenders variable in this scope - this.addAppender = function(appender) { - if (appender instanceof log4javascript.Appender) { - appenders.push(appender); - } else { - handleError("Logger.addAppender: appender supplied is not a subclass of Appender"); - } - }; - - this.removeAppender = function(appender) { - array_remove(appenders, appender); - }; - - this.removeAllAppenders = function(appender) { - appenders.length = 0; - }; - - this.log = function(level, message, exception) { - if (level.isGreaterOrEqual(loggerLevel)) { - var loggingEvent = new LoggingEvent( - this, new Date(), level, message, exception); - for (var i = 0; i < appenders.length; i++) { - appenders[i].doAppend(loggingEvent); - } - } - }; - - this.setLevel = function(level) { - loggerLevel = level; - }; - - this.getLevel = function() { - return loggerLevel; - }; - } - - Logger.prototype = { - trace: function(message, exception) { - this.log(Level.TRACE, message, exception); - }, - - debug: function(message, exception) { - this.log(Level.DEBUG, message, exception); - }, - - info: function(message, exception) { - this.log(Level.INFO, message, exception); - }, - - warn: function(message, exception) { - this.log(Level.WARN, message, exception); - }, - - error: function(message, exception) { - this.log(Level.ERROR, message, exception); - }, - - fatal: function(message, exception) { - this.log(Level.FATAL, message, exception); - } - }; - - Logger.prototype.trace.isEntryPoint = true; - Logger.prototype.debug.isEntryPoint = true; - Logger.prototype.info.isEntryPoint = true; - Logger.prototype.warn.isEntryPoint = true; - Logger.prototype.error.isEntryPoint = true; - Logger.prototype.fatal.isEntryPoint = true; - - /* --------------------------------------------------------------------- */ - - // Hashtable of loggers keyed by logger name - var loggers = {}; - - log4javascript.getLogger = function(loggerName) { - // Use default logger if loggerName is not specified or invalid - if (!(typeof loggerName == "string")) { - loggerName = "[anonymous]"; - } - - // Create the logger for this name if it doesn't already exist - if (!loggers[loggerName]) { - loggers[loggerName] = new Logger(loggerName); - } - return loggers[loggerName]; - }; - - var defaultLogger = null; - log4javascript.getDefaultLogger = function() { - if (!defaultLogger) { - defaultLogger = log4javascript.getLogger("[default]"); - var a = new log4javascript.PopUpAppender(); - defaultLogger.addAppender(a); - } - return defaultLogger; - }; - - var nullLogger = null; - log4javascript.getNullLogger = function() { - if (!nullLogger) { - nullLogger = log4javascript.getLogger("[null]"); - } - return nullLogger; - }; - - /* --------------------------------------------------------------------- */ - - var Level = function(level, name) { - this.level = level; - this.name = name; - }; - - Level.prototype = { - toString: function() { - return this.name; - }, - equals: function(level) { - return this.level == level.level; - }, - isGreaterOrEqual: function(level) { - return this.level >= level.level; - } - }; - - Level.ALL = new Level(Number.MIN_VALUE, "ALL"); - Level.TRACE = new Level(10000, "TRACE"); - Level.DEBUG = new Level(20000, "DEBUG"); - Level.INFO = new Level(30000, "INFO"); - Level.WARN = new Level(40000, "WARN"); - Level.ERROR = new Level(50000, "ERROR"); - Level.FATAL = new Level(60000, "FATAL"); - Level.OFF = new Level(Number.MAX_VALUE, "OFF"); - - log4javascript.Level = Level; - - /* --------------------------------------------------------------------- */ - - var LoggingEvent = function(logger, timeStamp, level, message, - exception) { - this.logger = logger; - this.timeStamp = timeStamp; - this.timeStampInSeconds = Math.floor(timeStamp.getTime() / 1000); - this.level = level; - this.message = message; - this.exception = exception; - }; - - LoggingEvent.prototype.getThrowableStrRep = function() { - return this.exception ? - getExceptionStringRep(this.exception) : ""; - }; - - log4javascript.LoggingEvent = LoggingEvent; - - /* --------------------------------------------------------------------- */ - - // Layout "abstract class" - var Layout = function() { - }; - - Layout.prototype = { - defaults: { - loggerKey: "logger", - timeStampKey: "timestamp", - levelKey: "level", - messageKey: "message", - exceptionKey: "exception", - urlKey: "url" - }, - loggerKey: "logger", - timeStampKey: "timestamp", - levelKey: "level", - messageKey: "message", - exceptionKey: "exception", - urlKey: "url", - batchHeader: "", - batchFooter: "", - batchSeparator: "", - - format: function(loggingEvent) { - handleError("Layout.format: layout supplied has no format() method"); - }, - - ignoresThrowable: function() { - handleError("Layout.ignoresThrowable: layout supplied has no ignoresThrowable() method"); - }, - - getContentType: function() { - return "text/plain"; - }, - - allowBatching: function() { - return true; - }, - - getDataValues: function(loggingEvent) { - var dataValues = [ - [this.loggerKey, loggingEvent.logger.name], - [this.timeStampKey, loggingEvent.timeStampInSeconds], - [this.levelKey, loggingEvent.level.name], - [this.urlKey, window.location.href], - [this.messageKey, loggingEvent.message] - ]; - if (loggingEvent.exception) { - dataValues.push([this.exceptionKey, getExceptionStringRep(loggingEvent.exception)]); - } - if (this.hasCustomFields()) { - for (var i = 0; i < this.customFields.length; i++) { - dataValues.push([this.customFields[i].name, this.customFields[i].value]); - } - } - return dataValues; - }, - - setKeys: function(loggerKey, timeStampKey, levelKey, messageKey, - exceptionKey, urlKey) { - this.loggerKey = extractStringFromParam(loggerKey, this.defaults.loggerKey); - this.timeStampKey = extractStringFromParam(timeStampKey, this.defaults.timeStampKey); - this.levelKey = extractStringFromParam(levelKey, this.defaults.levelKey); - this.messageKey = extractStringFromParam(messageKey, this.defaults.messageKey); - this.exceptionKey = extractStringFromParam(exceptionKey, this.defaults.exceptionKey); - this.urlKey = extractStringFromParam(urlKey, this.defaults.urlKey); - }, - - setCustomField: function(name, value) { - var fieldUpdated = false; - for (var i = 0; i < this.customFields.length; i++) { - if (this.customFields[i].name === name) { - this.customFields[i].value = value; - fieldUpdated = true; - } - } - if (!fieldUpdated) { - this.customFields.push({"name": name, "value": value}); - } - }, - - hasCustomFields: function() { - return (this.customFields.length > 0); - } - }; - - log4javascript.Layout = Layout; - - /* --------------------------------------------------------------------- */ - - // SimpleLayout - var SimpleLayout = function() { - this.customFields = []; - }; - - SimpleLayout.prototype = new Layout(); - - SimpleLayout.prototype.format = function(loggingEvent) { - return loggingEvent.level.name + " - " + loggingEvent.message; - }; - - SimpleLayout.prototype.ignoresThrowable = function(loggingEvent) { - return true; - }; - - log4javascript.SimpleLayout = SimpleLayout; - - /* --------------------------------------------------------------------- */ - - // NullLayout - var NullLayout = function() { - this.customFields = []; - }; - - NullLayout.prototype = new Layout(); - - NullLayout.prototype.format = function(loggingEvent) { - return loggingEvent.message; - }; - - NullLayout.prototype.ignoresThrowable = function(loggingEvent) { - return true; - }; - - log4javascript.NullLayout = NullLayout; - - /* --------------------------------------------------------------------- */ - - // XmlLayout - var XmlLayout = function() { - this.customFields = []; - }; - - XmlLayout.prototype = new Layout(); - - XmlLayout.prototype.getContentType = function() { - return "text/xml"; - }; - - XmlLayout.prototype.escapeCdata = function(str) { - return str.replace(/\]\]>/, "]]>]]>" + newLine + "" + newLine; - if (this.hasCustomFields()) { - for (var i = 0; i < this.customFields.length; i++) { - str += "" + newLine; - } - } - if (loggingEvent.exception) { - str += "" + newLine; - } - str += "" + newLine + newLine; - return str; - }; - - XmlLayout.prototype.ignoresThrowable = function(loggingEvent) { - return false; - }; - - log4javascript.XmlLayout = XmlLayout; - - /* --------------------------------------------------------------------- */ - - // JsonLayout - var JsonLayout = function(readable, loggerKey, timeStampKey, - levelKey, messageKey, exceptionKey, urlKey) { - this.readable = bool(readable); - this.batchHeader = this.readable ? "[" + newLine : "["; - this.batchFooter = this.readable ? "]" + newLine : "]"; - this.batchSeparator = this.readable ? "," + newLine : ","; - this.setKeys(loggerKey, timeStampKey, levelKey, messageKey, - exceptionKey, urlKey); - this.propertySeparator = this.readable ? ", " : ","; - this.colon = this.readable ? ": " : ":"; - this.customFields = []; - }; - - JsonLayout.prototype = new Layout(); - - JsonLayout.prototype.setReadable = function(readable) { - this.readable = bool(readable); - }; - - JsonLayout.prototype.isReadable = function() { - return this.readable; - }; - - JsonLayout.prototype.format = function(loggingEvent) { - var dataValues = this.getDataValues(loggingEvent); - var str = "{"; - if (this.readable) { - str += newLine; - } - for (var i = 0; i < dataValues.length; i++) { - if (this.readable) { - str += "\t"; - } - // Check the type of the data value to decide whether quotation marks - // are required - var valType = typeof dataValues[i][1]; - var val = (valType != "number" && valType != "boolean") ? - "\"" + escapeNewLines(dataValues[i][1].toString().replace(/\"/g, "\\\"")) + "\"" : - dataValues[i][1]; - str += "\"" + dataValues[i][0] + "\"" + this.colon + val; - if (i < dataValues.length - 1) { - str += this.propertySeparator; - } - if (this.readable) { - str += newLine; - } - } - str += "}"; - if (this.readable) { - str += newLine; - } - return str; - }; - - JsonLayout.prototype.ignoresThrowable = function(loggingEvent) { - return false; - }; - - log4javascript.JsonLayout = JsonLayout; - - /* --------------------------------------------------------------------- */ - - // HttpPostDataLayout - var HttpPostDataLayout = function(loggerKey, timeStampKey, - levelKey, messageKey, exceptionKey, urlKey) { - this.setKeys(loggerKey, timeStampKey, levelKey, messageKey, - exceptionKey, urlKey); - this.customFields = []; - }; - - HttpPostDataLayout.prototype = new Layout(); - - // Disable batching - HttpPostDataLayout.prototype.allowBatching = function() { - return false; - }; - - HttpPostDataLayout.prototype.format = function(loggingEvent) { - var dataValues = this.getDataValues(loggingEvent); - var queryBits = []; - for (var i = 0; i < dataValues.length; i++) { - queryBits.push(urlEncode(dataValues[i][0]) + "=" + urlEncode(dataValues[i][1])); - } - return queryBits.join("&"); - }; - - HttpPostDataLayout.prototype.ignoresThrowable = function(loggingEvent) { - return false; - }; - - log4javascript.HttpPostDataLayout = HttpPostDataLayout; - - /* --------------------------------------------------------------------- */ - - // PatternLayout - var PatternLayout = function(pattern) { - if (pattern) { - this.pattern = pattern; - } else { - this.pattern = PatternLayout.DEFAULT_CONVERSION_PATTERN; - } - this.customFields = []; - }; - - PatternLayout.TTCC_CONVERSION_PATTERN = "%r %p %c - %m%n"; - PatternLayout.DEFAULT_CONVERSION_PATTERN = "%m%n"; - PatternLayout.ISO8601_DATEFORMAT = "yyyy-MM-dd HH:mm:ss,SSS"; - PatternLayout.DATETIME_DATEFORMAT = "dd MMM yyyy HH:mm:ss,SSS"; - PatternLayout.ABSOLUTETIME_DATEFORMAT = "HH:mm:ss,SSS"; - - PatternLayout.prototype = new Layout(); - - PatternLayout.prototype.format = function(loggingEvent) { - var regex = /%(-?[0-9]+)?(\.?[0-9]+)?([cdfmMnpr%])(\{([^\}]+)\})?|([^%]+)/; - var formattedString = ""; - var result; - var searchString = this.pattern; - - // Cannot use regex global flag since it doesn't work with exec in IE5 - while ((result = regex.exec(searchString))) { - var matchedString = result[0]; - var padding = result[1]; - var truncation = result[2]; - var conversionCharacter = result[3]; - var specifier = result[5]; - var text = result[6]; - - // Check if the pattern matched was just normal text - if (text) { - formattedString += "" + text; - } else { - // Create a raw replacement string based on the conversion - // character and specifier - var replacement = ""; - switch(conversionCharacter) { - case "c": // Logger name - var loggerName = loggingEvent.logger.name; - if (specifier) { - var precision = parseInt(specifier, 10); - var loggerNameBits = loggingEvent.logger.name.split("."); - if (precision >= loggerNameBits.length) { - replacement = loggerName; - } else { - replacement = loggerNameBits.slice(loggerNameBits.length - precision).join("."); - } - } else { - replacement = loggerName; - } - break; - case "d": // Date - var dateFormat = PatternLayout.ISO8601_DATEFORMAT; - if (specifier) { - dateFormat = specifier; - // Pick up special cases - if (dateFormat == "ISO8601") { - dateFormat = PatternLayout.ISO8601_DATEFORMAT; - } else if (dateFormat == "ABSOLUTE") { - dateFormat = PatternLayout.ABSOLUTETIME_DATEFORMAT; - } else if (dateFormat == "DATE") { - dateFormat = PatternLayout.DATETIME_DATEFORMAT; - } - } - // Format the date - replacement = (new SimpleDateFormat(dateFormat)).format(loggingEvent.timeStamp); - break; - case "f": // Custom field - if (this.hasCustomFields()) { - var fieldIndex = 0; - if (specifier) { - fieldIndex = parseInt(specifier, 10); - if (isNaN(fieldIndex)) { - handleError("PatternLayout.format: invalid specifier '" + - specifier + "' for conversion character 'f' - should be a number"); - } else if (fieldIndex === 0) { - handleError("PatternLayout.format: invalid specifier '" + - specifier + "' for conversion character 'f' - must be greater than zero"); - } else if (fieldIndex > this.customFields.length) { - handleError("PatternLayout.format: invalid specifier '" + - specifier + "' for conversion character 'f' - there aren't that many custom fields"); - } else { - fieldIndex = fieldIndex - 1; - } - } - replacement = this.customFields[fieldIndex].value; - } - break; - case "m": // Message - if (specifier) { - var depth = parseInt(specifier, 10); - if (isNaN(depth)) { - handleError("PatternLayout.format: invalid specifier '" + - specifier + "' for conversion character 'm' - should be a number"); - replacement = loggingEvent.message; - } else { - replacement = formatObjectExpansion(loggingEvent.message, depth); - } - } else { - replacement = loggingEvent.message; - } - break; - case "n": // New line - replacement = newLine; - break; - case "p": // Level - replacement = loggingEvent.level.name; - break; - case "r": // Milliseconds since log4javascript startup - replacement = "" + loggingEvent.timeStamp.getDifference(applicationStartDate); - break; - case "%": // Literal % sign - replacement = "%"; - break; - default: - replacement = matchedString; - break; - } - // Format the replacement according to any padding or - // truncation specified - var len; - - // First, truncation - if (truncation) { - len = parseInt(truncation.substr(1), 10); - var strLen = replacement.length; - if (len < strLen) { - replacement = replacement.substring(strLen - len, strLen); - } - } - // Next, padding - if (padding) { - if (padding.charAt(0) == "-") { - len = parseInt(padding.substr(1), 10); - // Right pad with spaces - while (replacement.length < len) { - replacement += " "; - } - } else { - len = parseInt(padding, 10); - // Left pad with spaces - while (replacement.length < len) { - replacement = " " + replacement; - } - } - } - formattedString += replacement; - } - searchString = searchString.substr(result.index + result[0].length); - } - return formattedString; - }; - - PatternLayout.prototype.ignoresThrowable = function(loggingEvent) { - return true; - }; - - log4javascript.PatternLayout = PatternLayout; - - /* --------------------------------------------------------------------- */ - - // Appender "abstract class" - var Appender = function() {}; - - // Performs threshold checks before delegating actual logging to the - // subclass's specific append method. - Appender.prototype = { - layout: new PatternLayout(), - threshold: Level.ALL, - - doAppend: function(loggingEvent) { - if (enabled && loggingEvent.level.level >= this.threshold.level) { - this.append(loggingEvent); - } - }, - - append: function(loggingEvent) {}, - - setLayout: function(layout) { - if (layout instanceof Layout) { - this.layout = layout; - } else { - handleError("Appender.setLayout: layout supplied to " + - this.toString() + " is not a subclass of Layout"); - } - }, - - getLayout: function() { - return this.layout; - }, - - setThreshold: function(threshold) { - if (threshold instanceof Level) { - this.threshold = threshold; - } else { - handleError("Appender.setThreshold: threshold supplied to " + - this.toString() + " is not a subclass of Level"); - } - }, - - getThreshold: function() { - return this.threshold; - }, - - toString: function() { - return "[Base Appender]"; - } - }; - - log4javascript.Appender = Appender; - - /* --------------------------------------------------------------------- */ - - // AlertAppender - var AlertAppender = function(layout) { - if (layout) { - this.setLayout(layout); - } - }; - - AlertAppender.prototype = new Appender(); - - AlertAppender.prototype.layout = new SimpleLayout(); - - AlertAppender.prototype.append = function(loggingEvent) { - var formattedMessage = this.getLayout().format(loggingEvent); - if (this.getLayout().ignoresThrowable()) { - formattedMessage += loggingEvent.getThrowableStrRep(); - } - alert(formattedMessage); - }; - - AlertAppender.prototype.toString = function() { - return "[AlertAppender]"; - }; - - log4javascript.AlertAppender = AlertAppender; - - /* --------------------------------------------------------------------- */ - - // AjaxAppender - var AjaxAppender = function(url, layout, timed, waitForResponse, - batchSize, timerInterval, requestSuccessCallback, failCallback) { - var appender = this; - var isSupported = true; - if (!url) { - handleError("AjaxAppender: URL must be specified in constructor"); - isSupported = false; - } - - timed = extractBooleanFromParam(timed, this.defaults.timed); - waitForResponse = extractBooleanFromParam(waitForResponse, this.defaults.waitForResponse); - batchSize = extractIntFromParam(batchSize, this.defaults.batchSize); - timerInterval = extractIntFromParam(timerInterval, this.defaults.timerInterval); - requestSuccessCallback = extractFunctionFromParam(requestSuccessCallback, this.defaults.requestSuccessCallback); - failCallback = extractFunctionFromParam(failCallback, this.defaults.failCallback); - var sessionId = null; - - var queuedLoggingEvents = []; - var queuedRequests = []; - var sending = false; - var initialized = false; - - // Configuration methods. The function scope is used to prevent - // direct alteration to the appender configuration properties. - function checkCanConfigure(configOptionName) { - if (initialized) { - handleError("AjaxAppender: configuration option '" + configOptionName + "' may not be set after the appender has been initialized"); - return false; - } - return true; - } - - this.getSessionId = function() { return sessionId; }; - this.setSessionId = function(sessionIdParam) { - sessionId = extractStringFromParam(sessionIdParam, null); - this.layout.setCustomField("sessionid", sessionId); - }; - - this.setLayout = function(layout) { - if (checkCanConfigure("layout")) { - this.layout = layout; - // Set the session id as a custom field on the layout, if not already present - if (sessionId !== null) { - this.setSessionId(sessionId); - } - } - }; - - if (layout) { - this.setLayout(layout); - } - - this.isTimed = function() { return timed; }; - this.setTimed = function(timedParam) { - if (checkCanConfigure("timed")) { - timed = bool(timedParam); - } - }; - - this.getTimerInterval = function() { return timerInterval; }; - this.setTimerInterval = function(timerIntervalParam) { - if (checkCanConfigure("timerInterval")) { - timerInterval = extractIntFromParam(timerIntervalParam, timerInterval); - } - }; - - this.isWaitForResponse = function() { return waitForResponse; }; - this.setWaitForResponse = function(waitForResponseParam) { - if (checkCanConfigure("waitForResponse")) { - waitForResponse = bool(waitForResponseParam); - } - }; - - this.getBatchSize = function() { return batchSize; }; - this.setBatchSize = function(batchSizeParam) { - if (checkCanConfigure("batchSize")) { - batchSize = extractIntFromParam(batchSizeParam, batchSize); - } - }; - - this.setRequestSuccessCallback = function(requestSuccessCallbackParam) { - requestSuccessCallback = extractFunctionFromParam(requestSuccessCallbackParam, requestSuccessCallback); - }; - - this.setFailCallback = function(failCallbackParam) { - failCallback = extractFunctionFromParam(failCallbackParam, failCallback); - }; - - // Internal functions - function sendAll() { - if (isSupported && enabled) { - sending = true; - var currentRequestBatch; - if (waitForResponse) { - // Send the first request then use this function as the callback once - // the response comes back - if (queuedRequests.length > 0) { - currentRequestBatch = queuedRequests.shift(); - sendRequest(preparePostData(currentRequestBatch), sendAll); - } else { - sending = false; - if (timed) { - scheduleSending(); - } - } - } else { - // Rattle off all the requests without waiting to see the response - while ((currentRequestBatch = queuedRequests.shift())) { - sendRequest(preparePostData(currentRequestBatch)); - } - sending = false; - if (timed) { - scheduleSending(); - } - } - } - } - - this.sendAll = sendAll; - - function preparePostData(batchedLoggingEvents) { - // Format the logging events - var formattedMessages = []; - var currentLoggingEvent; - var postData = ""; - while ((currentLoggingEvent = batchedLoggingEvents.shift())) { - var currentFormattedMessage = appender.getLayout().format(currentLoggingEvent); - if (appender.getLayout().ignoresThrowable()) { - currentFormattedMessage += loggingEvent.getThrowableStrRep(); - } - formattedMessages.push(currentFormattedMessage); - } - // Create the post data string - if (batchedLoggingEvents.length == 1) { - postData = formattedMessages.join(""); - } else { - postData = appender.getLayout().batchHeader + - formattedMessages.join(appender.getLayout().batchSeparator) + - appender.getLayout().batchFooter; - } - return postData; - } - - function scheduleSending() { - setTimeout(sendAll, timerInterval); - } - - function getXmlHttp() { - var xmlHttp = null; - if (typeof XMLHttpRequest == "object" || typeof XMLHttpRequest == "function") { - xmlHttp = new XMLHttpRequest(); - } else { - try { - xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); - } catch (e2){ - try { - xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); - } catch (e3) { - var msg = "AjaxAppender: could not create XMLHttpRequest object. AjaxAppender disabled"; - handleError(msg); - isSupported = false; - if (failCallback) { - failCallback(msg); - } - } - } - } - return xmlHttp; - } - - function sendRequest(postData, successCallback) { - try { - var xmlHttp = getXmlHttp(); - if (isSupported) { - if (xmlHttp.overrideMimeType) { - xmlHttp.overrideMimeType(appender.getLayout().getContentType()); - } - xmlHttp.onreadystatechange = function() { - if (xmlHttp.readyState == 4) { - var success = (isUndefined(xmlHttp.status) || xmlHttp.status === 0 || - (xmlHttp.status >= 200 && xmlHttp.status < 300)); - if (success) { - if (requestSuccessCallback) { - requestSuccessCallback(xmlHttp); - } - if (successCallback) { - successCallback(xmlHttp); - } - } else { - var msg = "AjaxAppender.append: XMLHttpRequest request to URL " + - url + " returned status code " + xmlHttp.status; - handleError(msg); - if (failCallback) { - failCallback(msg); - } - } - xmlHttp.onreadystatechange = emptyFunction; - xmlHttp = null; - } - }; - xmlHttp.open("POST", url, true); - try { - xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); - } catch (headerEx) { - var msg = "AjaxAppender.append: your browser's XMLHttpRequest implementation" + - " does not support setRequestHeader, therefore cannot post data. AjaxAppender disabled"; - handleError(msg); - isSupported = false; - if (failCallback) { - failCallback(msg); - } - return; - } - xmlHttp.send(postData); - } - } catch (ex) { - var msg = "AjaxAppender.append: error sending log message to " + url; - handleError(msg, ex); - if (failCallback) { - failCallback(msg + ". Details: " + getExceptionStringRep(ex)); - } - } - } - - this.append = function(loggingEvent) { - if (isSupported) { - if (!initialized) { - init(); - } - queuedLoggingEvents.push(loggingEvent); - var actualBatchSize = this.getLayout().allowBatching() ? batchSize : 1; - - if (queuedLoggingEvents.length >= actualBatchSize) { - var currentLoggingEvent; - var postData = ""; - var batchedLoggingEvents = []; - while ((currentLoggingEvent = queuedLoggingEvents.shift())) { - batchedLoggingEvents.push(currentLoggingEvent); - } - // Queue this batch of log entries - queuedRequests.push(batchedLoggingEvents); - - // If using a timer, the queue of requests will be processed by the - // timer function, so nothing needs to be done here. - if (!timed) { - if (!waitForResponse || (waitForResponse && !sending)) { - sendAll(); - } - } - } - } - }; - - function init() { - initialized = true; - // Start timer - if (timed) { - scheduleSending(); - } - } - }; - - AjaxAppender.prototype = new Appender(); - - AjaxAppender.prototype.defaults = { - waitForResponse: false, - timed: false, - timerInterval: 1000, - batchSize: 1, - requestSuccessCallback: null, - failCallback: null - }; - - AjaxAppender.prototype.layout = new HttpPostDataLayout(); - - AjaxAppender.prototype.toString = function() { - return "[AjaxAppender]"; - }; - - log4javascript.AjaxAppender = AjaxAppender; - - /* --------------------------------------------------------------------- */ - - // BaseConsoleAppender - // Create an anonymous function to protect base console methods - - (function() { - var getConsoleHtmlLines = function() { - return [ -'', -'', -' ', -' log4javascript', -' ', -' ', -' ', -' ', -'', -' ', -'
    ', -'
    ', -'
    ', -' Filters:', -' ', -' ', -' ', -' ', -' ', -' ', -' ', -'
    ', -' ', -'
    ', -' Options:', -' ', -' ', -' ', -' ', -' ', -' ', -'
    ', -'
    ', -'', -'
    ', -'
    ', -' ', -'' -]; - }; - - function ConsoleAppender() {} - - var consoleAppenderIdCounter = 1; - - ConsoleAppender.prototype = new Appender(); - - ConsoleAppender.prototype.create = function(inPage, containerElement, - layout, lazyInit, focusConsoleWindow, useOldPopUp, - complainAboutPopUpBlocking, newestMessageAtTop, - scrollToLatestMessage, initiallyMinimized, width, height, - reopenWhenClosed, maxMessages) { - var appender = this; - - // Common properties - if (layout) { - this.setLayout(layout); - } else { - this.setLayout(this.defaults.layout); - } - var initialized = false; - var consoleWindowLoaded = false; - var queuedLoggingEvents = []; - var isSupported = true; - var consoleAppenderId = consoleAppenderIdCounter++; - - // Params - lazyInit = extractBooleanFromParam(lazyInit, true); - newestMessageAtTop = extractBooleanFromParam(newestMessageAtTop, this.defaults.newestMessageAtTop); - scrollToLatestMessage = extractBooleanFromParam(scrollToLatestMessage, this.defaults.scrollToLatestMessage); - width = width ? width : this.defaults.width; - height = height ? height : this.defaults.height; - maxMessages = maxMessages ? maxMessages : this.defaults.maxMessages; - - // Functions whose implementations vary between subclasses - var init, safeToAppend, getConsoleWindow; - - // Configuration methods. The function scope is used to prevent - // direct alteration to the appender configuration properties. - var appenderName = inPage ? "InPageAppender" : "PopUpAppender"; - var checkCanConfigure = function(configOptionName) { - if (initialized) { - handleError(appenderName + ": configuration option '" + configOptionName + "' may not be set after the appender has been initialized"); - return false; - } - return true; - }; - - this.isNewestMessageAtTop = function() { return newestMessageAtTop; }; - this.setNewestMessageAtTop = function(newestMessageAtTopParam) { - newestMessageAtTop = bool(newestMessageAtTopParam); - if (consoleWindowLoaded && isSupported) { - getConsoleWindow().setNewestAtTop(newestMessageAtTop); - } - }; - - this.isScrollToLatestMessage = function() { return scrollToLatestMessage; }; - this.setScrollToLatestMessage = function(scrollToLatestMessageParam) { - scrollToLatestMessage = bool(scrollToLatestMessageParam); - if (consoleWindowLoaded && isSupported) { - getConsoleWindow().setScrollToLatest(scrollToLatestMessage); - } - }; - - this.getWidth = function() { return width; }; - this.setWidth = function(widthParam) { - if (checkCanConfigure("width")) { - width = extractStringFromParam(widthParam, width); - } - }; - - this.getHeight = function() { return height; }; - this.setHeight = function(heightParam) { - if (checkCanConfigure("height")) { - height = extractStringFromParam(heightParam, height); - } - }; - - this.getMaxMessages = function() { return maxMessages; }; - this.setMaxMessages = function(maxMessagesParam) { - maxMessages = extractIntFromParam(maxMessagesParam, maxMessages); - if (consoleWindowLoaded && isSupported) { - getConsoleWindow().setMaxMessages(maxMessages); - } - }; - - // Common methods - this.append = function(loggingEvent) { - if (isSupported) { - queuedLoggingEvents.push(loggingEvent); - // Force a check of whether the window is closed - var isSafeToAppend = safeToAppend(); - if (!initialized || (consoleClosed && reopenWhenClosed)) { - init(); - } - if (safeToAppend()) { - appendQueuedLoggingEvents(); - } - } - }; - - var appendQueuedLoggingEvents = function(loggingEvent) { - while (queuedLoggingEvents.length > 0) { - var currentLoggingEvent = queuedLoggingEvents.shift(); - var formattedMessage = appender.getLayout().format(currentLoggingEvent); - if (appender.getLayout().ignoresThrowable()) { - formattedMessage += currentLoggingEvent.getThrowableStrRep(); - } - getConsoleWindow().log(currentLoggingEvent.level, formattedMessage); - } - if (focusConsoleWindow) { - getConsoleWindow().focus(); - } - }; - - var writeHtml = function(doc) { - var lines = getConsoleHtmlLines(); - doc.open(); - for (var i = 0; i < lines.length; i++) { - doc.writeln(lines[i]); - } - doc.close(); - }; - - var consoleClosed = false; - - var pollConsoleWindow = function(windowTest, successCallback, errorMessage) { - function pollConsoleWindowLoaded() { - try { - // Test if the console has been closed while polling - if (consoleClosed) { - clearInterval(poll); - } - if (windowTest(getConsoleWindow())) { - clearInterval(poll); - successCallback(); - } - } catch (ex) { - clearInterval(poll); - isSupported = false; - handleError(errorMessage, ex); - } - } - - // Poll the pop-up since the onload event is not reliable - var poll = setInterval(pollConsoleWindowLoaded, 100); - }; - - // Define methods and properties that vary between subclasses - if (inPage) { - // InPageAppender - - // Extract params - if (!containerElement || !containerElement.appendChild) { - isSupported = false; - handleError("InPageAppender.init: a container DOM element must be supplied for the console window"); - return; - } - initiallyMinimized = extractBooleanFromParam(initiallyMinimized, appender.defaults.initiallyMinimized); - - // Configuration methods. The function scope is used to prevent - // direct alteration to the appender configuration properties. - this.isInitiallyMinimized = function() { return initiallyMinimized; }; - this.setInitiallyMinimized = function(initiallyMinimizedParam) { - if (checkCanConfigure("initiallyMinimized")) { - initiallyMinimized = bool(initiallyMinimizedParam); - } - }; - - // Define useful variables - var minimized = false; - var iframeContainerDiv; - var iframeId = uniqueId + "_InPageAppender_" + consoleAppenderId; - - this.hide = function() { - iframeContainerDiv.style.display = "none"; - minimized = true; - }; - - this.show = function() { - iframeContainerDiv.style.display = "block"; - minimized = false; - }; - - this.isVisible = function() { - return !minimized; - }; - - this.close = function() { - if (!consoleClosed) { - iframeContainerDiv.parentNode.removeChild(iframeContainerDiv); - consoleClosed = true; - } - }; - - // Create init, getConsoleWindow and safeToAppend functions - init = function() { - var initErrorMessage = "InPageAppender.init: unable to create console iframe"; - function finalInit() { - try { - getConsoleWindow().setNewestAtTop(newestMessageAtTop); - getConsoleWindow().setScrollToLatest(scrollToLatestMessage); - getConsoleWindow().setMaxMessages(maxMessages); - consoleWindowLoaded = true; - appendQueuedLoggingEvents(); - if (initiallyMinimized) { - appender.hide(); - } - } catch (ex) { - isSupported = false; - handleError(initErrorMessage, ex); - } - } - - function writeToDocument() { - try { - var windowTest = function(win) { return bool(win.loaded); }; - writeHtml(getConsoleWindow().document); - if (windowTest(getConsoleWindow())) { - finalInit(); - } else { - pollConsoleWindow(windowTest, finalInit, initErrorMessage); - } - } catch (ex) { - isSupported = false; - handleError(initErrorMessage, ex); - } - } - - minimized = initiallyMinimized; - iframeContainerDiv = containerElement.appendChild(document.createElement("div")); - - iframeContainerDiv.style.width = width; - iframeContainerDiv.style.height = height; - iframeContainerDiv.style.border = "solid gray 1px"; - - // Adding an iframe using the DOM would be preferable, but it doesn't work - // in IE5 on Windows, or in Konqueror prior to version 3.5 - in Konqueror - // it creates the iframe fine but I haven't been able to find a way to obtain - // the iframe's window object - var iframeHtml = ""; - iframeContainerDiv.innerHTML = iframeHtml; - consoleClosed = false; - - // Write the console HTML to the iframe - var iframeDocumentExistsTest = function(win) { return bool(win) && bool(win.document); }; - if (iframeDocumentExistsTest(getConsoleWindow())) { - writeToDocument(); - } else { - pollConsoleWindow(iframeDocumentExistsTest, writeToDocument, initErrorMessage); - } - - initialized = true; - }; - - getConsoleWindow = function() { - var iframe = window.frames[iframeId]; - if (iframe) { - return iframe; - } - }; - - safeToAppend = function() { - if (isSupported && !consoleClosed) { - if (!consoleWindowLoaded && getConsoleWindow() && getConsoleWindow().loaded) { - consoleWindowLoaded = true; - } - return consoleWindowLoaded; - } - return false; - }; - } else { - // PopUpAppender - - // Extract params - useOldPopUp = extractBooleanFromParam(useOldPopUp, appender.defaults.useOldPopUp); - complainAboutPopUpBlocking = extractBooleanFromParam(complainAboutPopUpBlocking, appender.defaults.complainAboutPopUpBlocking); - reopenWhenClosed = extractBooleanFromParam(reopenWhenClosed, this.defaults.reopenWhenClosed); - - // Configuration methods. The function scope is used to prevent - // direct alteration to the appender configuration properties. - this.isUseOldPopUp = function() { return useOldPopUp; }; - this.setUseOldPopUp = function(useOldPopUpParam) { - if (checkCanConfigure("useOldPopUp")) { - useOldPopUp = bool(useOldPopUpParam); - } - }; - - this.isComplainAboutPopUpBlocking = function() { return complainAboutPopUpBlocking; }; - this.setComplainAboutPopUpBlocking = function(complainAboutPopUpBlockingParam) { - if (checkCanConfigure("complainAboutPopUpBlocking")) { - complainAboutPopUpBlocking = bool(complainAboutPopUpBlockingParam); - } - }; - - this.isFocusPopUp = function() { return focusConsoleWindow; }; - this.setFocusPopUp = function(focusPopUpParam) { - // This property can be safely altered after logging has started - focusConsoleWindow = bool(focusPopUpParam); - }; - - this.isReopenWhenClosed = function() { return reopenWhenClosed; }; - this.setReopenWhenClosed = function(reopenWhenClosedParam) { - // This property can be safely altered after logging has started - reopenWhenClosed = bool(reopenWhenClosedParam); - }; - - this.close = function() { - try { - popUp.close(); - } catch (e) { - // Do nothing - } - consoleClosed = true; - }; - - // Define useful variables - var popUp; - - // Create init, getConsoleWindow and safeToAppend functions - init = function() { - var windowProperties = "width=" + width + ",height=" + height + ",status,resizable"; - var windowName = "PopUp_" + location.host.replace(/[^a-z0-9]/gi, "_") + "_" + consoleAppenderId; - if (!useOldPopUp) { - // Ensure a previous window isn't used by using a unique name - windowName = windowName + "_" + uniqueId; - } - - function finalInit() { - consoleWindowLoaded = true; - getConsoleWindow().setNewestAtTop(newestMessageAtTop); - getConsoleWindow().setScrollToLatest(scrollToLatestMessage); - getConsoleWindow().setMaxMessages(maxMessages); - appendQueuedLoggingEvents(); - } - - try { - popUp = window.open("", windowName, windowProperties); - consoleClosed = false; - if (popUp) { - if (useOldPopUp && popUp.loaded) { - popUp.mainPageReloaded(); - finalInit(); - } else { - writeHtml(popUp.document); - // Check if the pop-up window object is available - var popUpLoadedTest = function(win) { return bool(win) && win.loaded; }; - if (popUp.loaded) { - finalInit(); - } else { - pollConsoleWindow(popUpLoadedTest, finalInit, "PopUpAppender.init: unable to create console window"); - } - } - } else { - isSupported = false; - logLog.warn("PopUpAppender.init: pop-ups blocked, please unblock to use PopUpAppender"); - if (complainAboutPopUpBlocking) { - handleError("log4javascript: pop-up windows appear to be blocked. Please unblock them to use pop-up logging."); - } - } - } catch (ex) { - handleError("PopUpAppender.init: error creating pop-up", ex); - } - initialized = true; - }; - - getConsoleWindow = function() { - return popUp; - }; - - safeToAppend = function() { - if (isSupported && !isUndefined(popUp) && !consoleClosed) { - if (popUp.closed || - (consoleWindowLoaded && isUndefined(popUp.closed))) { // Extra check for Opera - consoleClosed = true; - logLog.debug("PopUpAppender: pop-up closed"); - return false; - } - if (!consoleWindowLoaded && popUp.loaded) { - consoleWindowLoaded = true; - } - } - return isSupported && consoleWindowLoaded && !consoleClosed; - }; - } - - if (enabled && !lazyInit) { - init(); - } - - // Expose getConsoleWindow so that automated tests can check the DOM - this.getConsoleWindow = getConsoleWindow; - }; - - /* ----------------------------------------------------------------- */ - - var PopUpAppender = function(lazyInit, layout, focusPopUp, - useOldPopUp, complainAboutPopUpBlocking, newestMessageAtTop, - scrollToLatestMessage, reopenWhenClosed, width, height, - maxMessages) { - - var focusConsoleWindow = extractBooleanFromParam(focusPopUp, this.defaults.focusPopUp); - - this.create(false, null, layout, lazyInit, focusConsoleWindow, - useOldPopUp, complainAboutPopUpBlocking, - newestMessageAtTop, scrollToLatestMessage, null, width, height, - reopenWhenClosed, maxMessages); - }; - - PopUpAppender.prototype = new ConsoleAppender(); - - PopUpAppender.prototype.defaults = { - layout: new PatternLayout("%d{HH:mm:ss} %-5p - %m{1}%n"), - focusPopUp: false, - lazyInit: true, - useOldPopUp: true, - complainAboutPopUpBlocking: true, - newestMessageAtTop: false, - scrollToLatestMessage: true, - width: "600", - height: "400", - reopenWhenClosed: false, - maxMessages: null - }; - - PopUpAppender.prototype.toString = function() { - return "[PopUpAppender]"; - }; - - log4javascript.PopUpAppender = PopUpAppender; - - /* ----------------------------------------------------------------- */ - - var InPageAppender = function(containerElement, lazyInit, - layout, initiallyMinimized, newestMessageAtTop, - scrollToLatestMessage, width, height, maxMessages) { - - this.create(true, containerElement, layout, lazyInit, false, - null, null, newestMessageAtTop, scrollToLatestMessage, - initiallyMinimized, width, height, null, maxMessages); - }; - - InPageAppender.prototype = new ConsoleAppender(); - - InPageAppender.prototype.defaults = { - layout: new PatternLayout("%d{HH:mm:ss} %-5p - %m{1}%n"), - initiallyMinimized: false, - lazyInit: true, - newestMessageAtTop: false, - scrollToLatestMessage: true, - width: "100%", - height: "250px", - maxMessages: null - }; - - InPageAppender.prototype.toString = function() { - return "[InPageAppender]"; - }; - - log4javascript.InPageAppender = InPageAppender; - - // Next line for backwards compatibility - log4javascript.InlineAppender = InPageAppender; - })(); - - /* --------------------------------------------------------------------- */ - - // BrowserConsoleAppender (only works in Opera and Safari and Firefox with - // FireBug extension) - var BrowserConsoleAppender = function(layout) { - if (layout) { - this.setLayout(layout); - } - }; - - BrowserConsoleAppender.prototype = new log4javascript.Appender(); - BrowserConsoleAppender.prototype.layout = new NullLayout(); - BrowserConsoleAppender.prototype.threshold = Level.DEBUG; - - BrowserConsoleAppender.prototype.append = function(loggingEvent) { - var appender = this; - - var getFormattedMessage = function() { - var layout = appender.getLayout(); - var formattedMessage = layout.format(loggingEvent); - if (layout.ignoresThrowable() && loggingEvent.exception) { - formattedMessage += loggingEvent.getThrowableStrRep(); - } - return formattedMessage; - }; - - if ((typeof opera != "undefined") && opera.postError) { // Opera - opera.postError(getFormattedMessage()); - } else if (window.console && window.console.log) { // Safari and FireBug - var formattedMesage = getFormattedMessage(); - // Log to FireBug using its logging methods or revert to the console.log - // method in Safari - if (window.console.debug && Level.DEBUG.isGreaterOrEqual(loggingEvent.level)) { - window.console.debug(formattedMesage); - } else if (window.console.info && Level.INFO.equals(loggingEvent.level)) { - window.console.info(formattedMesage); - } else if (window.console.warn && Level.WARN.equals(loggingEvent.level)) { - window.console.warn(formattedMesage); - } else if (window.console.error && loggingEvent.level.isGreaterOrEqual(Level.ERROR)) { - window.console.error(formattedMesage); - } else { - window.console.log(formattedMesage); - } - } - }; - - BrowserConsoleAppender.prototype.toString = function() { - return "[BrowserConsoleAppender]"; - }; - - log4javascript.BrowserConsoleAppender = BrowserConsoleAppender; -})(); \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/log4javascript/main.css b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/log4javascript/main.css deleted file mode 100644 index 959706cb5..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/log4javascript/main.css +++ /dev/null @@ -1,221 +0,0 @@ -body { - font-family: Verdana, Arial, Helvetica, Sans-serif; - font-size: 75%; - color: black; - background-color: #eeeeee; - text-align: center; - padding: 0px; - margin: 0px; -} - -div#container { - width: 770px; - text-align: left; - line-height: 150%; - border-width: 0px 1px 1px 1px; - border-color: #cccccc; - border-style: solid; - background-color: white; - color: black; - padding: 10px; - margin: 0px auto 10px auto; -} - -div#header { - margin: 0px; - border-bottom: solid #cccccc 1px; -} - -div#header h1 { - font-family: Courier New, Courier, Monospace, Serif; - padding: 10px 0px; - margin: 0px; - font-size: 200%; - font-weight: bold; - text-align: right; -} - -div#header h1 a { - color: black; -} - -div#nav { - float: right; - font-size: 91.66%; - font-weight: bold; - padding-top: 5px; -} - -div#container.nonav div#content { - float: none; - width: auto; -} - -*.externallinkinfo { - float: right; - font-style: italic; -} - -div#content h1 { - padding: 5px 3px; - margin: 5px 0px; - font-size: 175%; - font-weight: normal; -} - -div#content h2 { - background-color: darkgreen; - color: white; - padding: 0px 3px; - font-size: 116.66%; - font-weight: bold; -} - -div#content h2 a { - color: white; -} - -div#content h3 { - padding: 0px 3px; - font-size: 116.66%; - font-weight: bold; - border-style: solid; - border-color: #003399; - border-width: 1px 0px; -} - -div#content h4 { - padding: 0px 3px; - font-size: 100%; - font-weight: bold; - border-top: solid #eeeeee 1px; -} - -div#content h5 { - padding: 0px; - margin: 3px 0px; -} - -div#footer { - margin-top: 20px; - padding: 2px; - border-top: solid #cccccc 1px; - font-size: 91.66%; -} - -a { - color: #003399; - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} - -a.bold { - font-weight: bold; -} - -a img { - border-width: 0px; -} - -br.clear { - clear: both; -} - -table { - font-size: 100%; -} - -/* Code */ -pre, code { - font-family: Courier New, Courier; - font-size: 108.33%; -} - -pre.code { - border: solid 1px #cccccc; - background-color: #eeeeee; - padding: 3px; -} - -div.example, div.panel { - border: solid 1px #cccccc; - background-color: #f5f5f5; - padding: 3px; -} - -div.panel h2 { - margin: 5px 0px; -} - -div.padded { - padding: 10px; -} - -div.hidden { - display: none; -} - -div.active { - background-color: #fcfffc; - border-color: green; -} - -label.rightofinput, input.rightoflabel { - margin-right: 20px; -} - -/* 'Back to top' link */ -p.linktotop { - text-align: right; -} - -ul.propertieslist li.method, ul.propertieslist li.property { - margin: 0; - padding: 0px 0px 15px 0px; -} - -ul.propertieslist li *.name { - font-size: 116.66%; - font-weight: bold; -} - -ul.propertieslist li.method div.methodsignature { - margin: 10px 0px; - font-size: 116.66%; - background-color: #eeeeee; -} - -ul.propertieslist li.method *.paramsheading { - font-weight: bold; -} - -ul.propertieslist li.method *.params { - padding-top: 5px; - padding-bottom: 5px; -} - -ul.propertieslist li.method *.params li.param { - padding-bottom: 10px; -} - -ul.propertieslist li.method *.params li.param *.paramname { - font-style: italic; -} - -div.serverlog { - height: 200px; - /*border: solid 1px #cccccc;*/ -} - -div#inPageConsole { - margin-top: 10px; -} - -div.iframecontainer { - background-color: white; - border: solid #cccccc 1px; - width: 100%; -} \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/previewerror.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/previewerror.js deleted file mode 100644 index 5a429cf73..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/previewerror.js +++ /dev/null @@ -1,42 +0,0 @@ -function writeError(header, message) -{ - document.write( - '' + - '' + - '' + - '' + - '
    ' + header + '
    ' + - '' + - '' + - '
    ' + - '' + - '' + - '
    ' + message + '
    ' + - '
    ' + - '
    \n' ); -} - -function loadResources(locale) -{ - var lang = locale.split('-'); - var locales = []; - - locales.push('en'); - - if(lang.length >= 1) { - locales.push(lang[0]); - } - - if(lang.length >= 2) { - locales.push(lang[0] + '_' + lang[1]); - } - - for(var i =0 ; i < locales.length; i++) { - _loadStrings(locales[i]); - } -} - -function _loadStrings(locale) -{ - document.write(''); -} \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/prompts.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/prompts.js deleted file mode 100644 index 7f7153d3e..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/prompts.js +++ /dev/null @@ -1,360 +0,0 @@ -////////////////////////////// -// FOR DEBUGGING ONLY -var debug = false; -function dumpFormFields(formName) -{ - theForm = document.forms[formName]; - for ( idx = 0; idx < theForm.elements.length; ++idx ) - alert ( theForm.elements[idx].name + " - " + theForm.elements[idx].value ); -} - -////////////////////////////// -// GLOBAL VAR -var needURLEncode = false; // only need to do url encode in java -var promptPrefix = "promptex-"; - -/////////////////////////////// -// properly encode prompt values -function encodePrompt (prompt) -{ - if (needURLEncode) - { - return encodeURIComponent(prompt); - } - else - { - return prompt; - } -} - -//////////////////////////////// -// add number, currency, string from dropdown/textbox to list box -// where multiple prompt values are supported -function addPromptDiscreteValue ( inForm, type , paramName) -{ - var widget, obj; - widget = obj = inForm[paramName + "DiscreteValue"]; - if ( obj.type && obj.type.toLowerCase() != "text" && - obj.type.toLowerCase() != "hidden" && obj.type.toLowerCase() != "password") - { - //select box not a textbox - obj = obj.options[obj.selectedIndex]; - } - if ( ! checkSingleValue ( obj.value, type ) ) - { - if (widget.focus && widget.type.toLowerCase() != "hidden") - widget.focus(); - return false; - } - promptValue = encodePrompt(obj.value); - displayString = ( obj.text ) ? obj.text : obj.value; - promptEntry = new Option(displayString,promptValue,false,false); - theList = inForm[paramName + "ListBox"]; - theList.options[theList.length] = promptEntry; - if (widget.focus && widget.type.toLowerCase() != "hidden") - widget.focus (); - if ( widget.select ) - widget.select (); - if ( widget.type.toLowerCase != "text" && - widget.type.toLowerCase != "hidden" && - widget.type.toLowerCase != "password") - if ( widget.selectedIndex < widget.length - 1 ) - widget.selectedIndex = widget.selectedIndex + 1; //... or move to next selection in listbox -} - -//////////////////////////////////// -// adds Range prompt to listbox where multiple values are supported -function addPromptRangeValue ( inForm, type , paramName ) -{ - lowerBound = inForm[paramName + "LowerBound"]; - upperBound = inForm[paramName + "UpperBound"]; - //handle select box, not text box case - if ( lowerBound.type.toLowerCase () != "text" && - lowerBound.type.toLowerCase () != "hidden" && - lowerBound.type.toLowerCase () != "password" ) //either upper or lower, doesn't matter - { - lowerBound = lowerBound.options[lowerBound.selectedIndex]; - upperBound = upperBound.options[upperBound.selectedIndex]; - } - - lowerUnBounded = inForm[paramName + "NoLowerBoundCheck"].checked; - upperUnBounded = inForm[paramName + "NoUpperBoundCheck"].checked; - lvalue = uvalue = ""; - - if ( ! lowerUnBounded ) - { - if ( ! checkSingleValue ( lowerBound.value, type ) ) { - if ( lowerBound.focus && lowerBound.type.toLowerCase () != "hidden") - lowerBound.focus (); - return false; - } - lvalue = lowerBound.value; - } - if ( ! upperUnBounded ) - { - if ( ! checkSingleValue ( upperBound.value, type ) ) { - if ( upperBound.focus && upperBound.type.toLowerCase () != "hidden") - upperBound.focus (); - return false; - } - uvalue = upperBound.value; - } - ldisplay = (lowerBound.text && !lowerUnBounded) ? lowerBound.text : lvalue; - udisplay = (upperBound.text && !upperUnBounded) ? upperBound.text : uvalue; - - lowerChecked = inForm[paramName + "LowerCheck"].checked; - upperChecked = inForm[paramName + "UpperCheck"].checked; - - value = ( lowerChecked && ! lowerUnBounded ) ? "[" : "("; - if ( ! lowerUnBounded ) //unbounded is empty string not quoted empty string (e.g not "_crEMPTY_") - value += encodePrompt(lvalue); - value += "_crRANGE_" - if ( ! upperUnBounded ) - value += encodePrompt(uvalue); - value += (upperChecked && ! upperUnBounded ) ? "]" : ")"; - if ( debug ) alert (value); - - display = ( lowerChecked && ! lowerUnBounded ) ? "[" : "("; - display += ldisplay; - display += " .. " - display += udisplay; - display += (upperChecked && ! upperUnBounded ) ? "]" : ")"; - - promptEntry = new Option(display,value,false,false); - theList = inForm[paramName + "ListBox"]; - theList.options[theList.length] = promptEntry; - -} - -//////////////////////////////////// -// disable check boxes based on user selection on the range parameters -function disableBoundCheck(lowOrUpBound, inform, paramName) { - if (lowOrUpBound == 0) { - if (inform[paramName + "NoLowerBoundCheck"].checked) { - inform[paramName + "NoUpperBoundCheck"].disabled = true; - inform[paramName + "LowerCheck"].disabled = true; - inform[paramName + "LowerBound"].disabled = true; - } - else { - inform[paramName + "NoUpperBoundCheck"].disabled = false; - inform[paramName + "LowerCheck"].disabled = false; - inform[paramName + "LowerBound"].disabled = false; - } - } else if (lowOrUpBound == 1) { - if (inform[paramName + "NoUpperBoundCheck"].checked) { - inform[paramName + "NoLowerBoundCheck"].disabled = true; - inform[paramName + "UpperCheck"].disabled = true; - inform[paramName + "UpperBound"].disabled = true; - } else { - inform[paramName + "NoLowerBoundCheck"].disabled = false; - inform[paramName + "UpperCheck"].disabled = false; - inform[paramName + "UpperBound"].disabled = false; - } - } -} - -//////////////////////////////////// -// puts "select" value into text box for an editable prompt which also has defaults -function setSelectedValue (inForm, selectCtrl, textCtrl) -{ - selectedOption = inForm[selectCtrl].options[inForm[selectCtrl].selectedIndex]; - inForm[textCtrl].value = selectedOption.value; -} - -/////////////////////////////////// -// remove value from listbox where multiple value prompts are supported -function removeFromListBox ( inForm, paramName ) -{ - lbox = inForm[paramName + "ListBox"]; - for ( var idx = 0; idx < lbox.options.length; ) - { - if ( lbox.options[idx].selected ) - lbox.options[idx] = null; - else - idx++; - } -} - -///////////////////////////////////// -// sets prompt value into the hidden form field in proper format so that it can be submitted -function setPromptSingleValue (inform, type, paramName) -{ - hiddenField = inform[promptPrefix + paramName]; - value = ""; - if ( inform[paramName + "NULL"] != null && inform[paramName + "NULL"].checked ) - value = "_crNULL_"; //NULL is a literal for, uhmm.. a NULL - else - { - discreteVal = inform[paramName + "DiscreteValue"]; - if ( discreteVal.type.toLowerCase () != "text" && - discreteVal.type.toLowerCase () != "hidden" && - discreteVal.type.toLowerCase () != "password") - value = discreteVal.options[discreteVal.selectedIndex].value; - else - value = discreteVal.value; - if ( ! checkSingleValue ( value, type ) ) { - if (discreteVal.focus && discreteVal.type.toLowerCase ()) - discreteVal.focus (); - return false; - } - else - value = encodePrompt(value); - } - hiddenField.value = value; - return true; -} - -///////////////////////////////////// -// sets prompt value for a range into the hidden form field in proper format so that it can be submitted -function setPromptRangeValue (inform, type, paramName) -{ - hiddenField = inform[promptPrefix + paramName]; - - if ( inform[paramName + "NULL"] != null && inform[paramName + "NULL"].checked ) - { - value = "_crNULL_"; //NULL is a literal for, uhmm.. a NULL - hiddenField.value = value; - return true; - } - - lowerBound = inform[paramName + "LowerBound"]; - upperBound = inform[paramName + "UpperBound"]; - //handle select box, not text box case - if ( lowerBound.type.toLowerCase () != "text" && - lowerBound.type.toLowerCase () != "hidden" && - lowerBound.type.toLowerCase () != "password") //either upper or lower, doesn't matter - { - lowerBound = lowerBound.options[lowerBound.selectedIndex]; - upperBound = upperBound.options[upperBound.selectedIndex]; - } - lowerUnBounded = inform[paramName + "NoLowerBoundCheck"].checked; - upperUnBounded = inform[paramName + "NoUpperBoundCheck"].checked; - lowerChecked = inform[paramName + "LowerCheck"].checked; - upperChecked = inform[paramName + "UpperCheck"].checked; - uvalue = lvalue = ""; - - if ( ! lowerUnBounded ) - { - if ( ! checkSingleValue ( lowerBound.value, type ) ) { - if ( lowerBound.focus && lowerBound.type.toLowerCase () != "hidden") - lowerBound.focus(); - return false; - } - lvalue = lowerBound.value; - } - if ( ! upperUnBounded ) - { - if ( ! checkSingleValue ( upperBound.value, type ) ) { - if ( upperBound.focus && upperBound.type.toLowerCase () != "hidden") - upperBound.focus (); - return false; - } - uvalue = upperBound.value; - } - value = ( lowerChecked && ! lowerUnBounded ) ? "[" : "("; - if ( ! lowerUnBounded ) - value += encodePrompt(lvalue); - value += "_crRANGE_" - if ( ! upperUnBounded ) - value += encodePrompt(uvalue); - value += (upperChecked && ! upperUnBounded ) ? "]" : ")"; - if ( debug ) - alert (value); - hiddenField.value = value; - return true; -} - -///////////////////////////////////// -// sets prompt value into the hidden form field in proper format so that it can be submitted -function setPromptMultipleValue (inform, type, paramName) -{ - hiddenField = inform[promptPrefix + paramName]; - values = inform[paramName + "ListBox"].options; - - if ( inform[paramName + "NULL"] != null && inform[paramName + "NULL"].checked ) - { - value = "_crNULL_"; //NULL is a literal for, uhmm.. a NULL - hiddenField.value = value; - return true; - } - - if ( values.length == 0 ) - { - value = "_crEMPTY_"; //if value is empty, set to empty string - } - else - { - value = ""; - for ( idx = 0; idx < values.length; ++idx ) - { - // first value could be empty string, then chcking value.length != 0 could miss one empty string - if ( idx != 0 ) - value += "_crMULT_" - value += values[idx].value; - } - } - - if ( debug ) - alert (value); - hiddenField.value = value; - //NOTE: we'll always return true as the validation is done before values are added to select box - return true; -} - -/////////////////////////////////////// -// check and alert user about any errors based on type of prompt -var regNumber = /^(\+|-)?((\d+(\.|,| |\u00A0)?\d*)+|(\d*(\.|,| |\u00A0)?\d+)+)$/ -var regCurrency = regNumber; -var regDate = /^(D|d)(A|a)(T|t)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *\)$/ -var regDateTime = /^(D|d)(A|a)(T|t)(E|e)(T|t)(I|i)(M|m)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *, *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/ -var regTime = /^(T|t)(I|i)(M|m)(E|e) *\( *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/ - -function checkSingleValue ( value, type ) -{ - if ( type == 'n' && ! regNumber.test ( value ) ) - { - alert ( L_BadNumber ); - return false; - } - else if ( type == 'c' && ! regCurrency.test ( value ) ) - { - alert ( L_BadCurrency ); - return false; - } - else if ( type == 'd' && ! regDate.test ( value ) ) - { - alert ( L_BadDate ); - return false; - } - else if ( type == "dt" && ! regDateTime.test ( value ) ) - { - alert ( L_BadDateTime ); - return false; - } - else if ( type == 't' && ! regTime.test ( value ) ) - { - alert ( L_BadTime ); - return false; - } - - //by default let it go... - return true; -} - -function checkValue(evt) { - - if (navigator.appName == "Netscape") - { - if (evt.which == 13 && (evt.target.type == "text" || evt.target.type == "password")) - { - checkSetAndSubmitValues (); - } - } - else - { - if (window.event.keyCode == 13 && (window.event.srcElement.type == "text" || window.event.srcElement.type == "password")) - { - checkSetAndSubmitValues (); - } - } -} \ No newline at end of file diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/prompts_param.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/prompts_param.js deleted file mode 100644 index a61c7c55b..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/prompts_param.js +++ /dev/null @@ -1,1727 +0,0 @@ - -////////////////////////////// -// FOR DEBUGGING ONLY -var debug = false; -function dumpFormFields(formName) -{ - theForm = document.forms[formName]; - for ( idx = 0; idx < theForm.elements.length; ++idx ) - alert ( theForm.elements[idx].name + " - " + theForm.elements[idx].value ); -} - -////////////////////////////// -// GLOBAL VAR -var needURLEncode = false; // only need to do url encode in java -var promptPrefix = "promptex-"; -var CR_NULL = "_crNULL_"; -var CR_USE_VALUE = "_crUseValue_"; -var promptMinValue = "_minValue"; -var promptMaxValue = "_maxValue"; -var warningMaxValue = "_warnMSG"; - -var _bver = parseInt(navigator.appVersion); -var Nav4 = ((navigator.appName == "Netscape") && _bver==4); -var Nav4plus = ((navigator.appName == "Netscape") && _bver >= 4); -var IE4plus = ((navigator.userAgent.indexOf("MSIE") != -1) && _bver>4); - -if (Nav4plus) - var userLanguage = (navigator.language.substr(0, 2)); -else - var userLanguage = (navigator.browserLanguage.substr(0, 2)); - -/////////////////////////////// -// substitue range string -function ConstructRangeDisplayString(rangeStr, param0, param1) -{ - var newString = rangeStr.replace("{0}", param0); - newString = newString.replace("{1}", param1); - return newString; -} - -/////////////////////////////// -// Display string for range value in ListBox -function GetRangeValueDisplayText(rangeStr, param0, param1, paramType) -{ - if (paramType == "dt" || paramType == "d" || paramType == "t") - { - if (param0.length != 0) - { - if (this.formatJsDate) - param0 = formatJsDate(NeutralDT2Date(param0)); - else - param0 = NeutralDT2D(param0); - } - - if (param1.length != 0) - { - if (this.formatJsDate) - param1 = formatJsDate(NeutralDT2Date(param1)); - else - param1 = NeutralDT2D(param1); - } - } - - return ConstructRangeDisplayString(rangeStr, param0, param1); -} - -/////////////////////////////// -// properly encode prompt values -function encodePrompt (prompt) -{ - if (needURLEncode) - { - return encodeURIComponent(prompt); - } - else - { - return prompt; - } -} - -function clickSetNullCheckBox(inForm, paramName, suffix) -{ - var nullCtrl = inForm[paramName + "NULL"]; - var textCtrl = inForm[paramName + suffix]; - var hiddenCtrl = inForm[paramName + suffix + "Hidden"]; - var hourCtrl = inForm[paramName + suffix + "Hour"]; - var minuteCtrl = inForm[paramName + suffix + "Minute"]; - var secondCtrl = inForm[paramName + suffix + "Second"]; - var ampmCtrl = inForm[paramName + suffix + "AMPM"]; - if (nullCtrl.checked) - { - if (textCtrl != null) textCtrl.disabled = true; - if (hourCtrl != null) hourCtrl.disabled = true; - if (minuteCtrl != null) minuteCtrl.disabled = true; - if (secondCtrl != null) secondCtrl.disabled = true; - if (ampmCtrl != null) ampmCtrl.disabled = true; - } - else - { - if (textCtrl != null) textCtrl.disabled = false; - if (hourCtrl != null) hourCtrl.disabled = false; - if (minuteCtrl != null) minuteCtrl.disabled = false; - if (secondCtrl != null) secondCtrl.disabled = false; - if (ampmCtrl != null) ampmCtrl.disabled = false; - - } -} - -function ClearListBoxAndSetNULL(theList) -{ - // delete everything in the listbox, add _crNULL_ as an item - promptEntry = new Option(L_NoValue, CR_NULL,false,false); - for ( var idx = 0; idx < theList.options.length; ) - { - theList.options[0] = null; - idx++; - } - - theList.options[0] = promptEntry; - return; -} - -//////////////////////////////// -// add number, currency, string from dropdown/textbox to list box -// where multiple prompt values are supported -function DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl) -{ - var promptValue = ""; - - var year; - var month; - var day; - if ((type == "dt") || (type == "d")) - { - var d = hiddenCtrl.value; - if (d.length == 0) - { - alert(L_NoDateEntered); - return ""; - } - var leftIndex = d.indexOf("("); - var rightIndex = d.indexOf(")"); - d = d.substr(leftIndex + 1, rightIndex - leftIndex - 1); - var dArray = d.split(","); - year = dArray[0]; - month = dArray[1]; - day = dArray[2]; - } - - if (type == "dt") - { - promptValue = "DateTime("; - promptValue += year; - promptValue += ","; - promptValue += month; - promptValue += ","; - promptValue += day; - promptValue += ","; - - var hour = 0; - if (ampmCtrl != undefined) - { - var i = 0; - if (ampmCtrl.selectedIndex == 1) - i = 1; - hour = hourCtrl.selectedIndex + 1 + i * 12; - if (hour == 12) hour = 0; - else if (hour == 24) hour = 12; - } - else - { - hour = hourCtrl.selectedIndex; - } - - promptValue += hour; - promptValue += ","; - promptValue += minuteCtrl.selectedIndex; - promptValue += ","; - promptValue += secondCtrl.selectedIndex; - - promptValue += ")"; - } - else if (type == "d") - { - promptValue = "Date("; - promptValue += year; - promptValue += ","; - promptValue += month; - promptValue += ","; - promptValue += day; - promptValue += ")"; - - } - else if (type == "t") - { - promptValue = "Time(" - - var hour = 0; - if (ampmCtrl != undefined) - { - var i = 0; - if (ampmCtrl.selectedIndex == 1) - i = 1; - hour = hourCtrl.selectedIndex + 1 + i * 12; - if (hour == 12) hour = 0; - else if (hour == 24) hour = 12; - } - else - { - hour = hourCtrl.selectedIndex; - } - - - promptValue += hour; - promptValue += ","; - promptValue += minuteCtrl.selectedIndex; - promptValue += ","; - promptValue += secondCtrl.selectedIndex; - promptValue += ")"; - } - - return promptValue; -} - - -function DateTimeDisplayStringHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl) -{ - var neutralstring = DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl); - if (type == "d" && this.formatJsDate) - return formatJsDate(NeutralDT2Date(neutralstring)); - else if (type == "t" && this.formatJsTime) - return formatJsTime(NeutralDT2Date(neutralstring)); - else if (type == "dt" && this.formatJsDate && this.formatJsTime) - return formatJsDate(NeutralDT2Date(neutralstring)) + ' ' + formatJsTime(NeutralDT2Date(neutralstring)); - else - return NeutralDT2D(neutralstring); -} - - -function addPromptDiscreteValueHelper(inForm, type, paramName, suffix) -{ - theList = inForm[paramName + "ListBox"]; - - // if there is a NULL checkbox and it is set - if ( inForm[paramName + "NULL"] != null && inForm[paramName + "NULL"].checked ) - { - // delete everything in the listbox, add _crNULL_ as an item - ClearListBoxAndSetNULL(theList); - return; - } - - // if the listbox already has a NULL value in it, don't do anything, unless user removes NULl value from the listbox - if (theList.options.length > 0 && theList.options[0].value == CR_NULL) - { - alert(L_NoValueAlready); - return; - } - - // if defaultdropdownlist selected item is _crNULL_, put it into multiple listbox - var dropDownListName = ""; - if (suffix == "DiscreteValue") - dropDownListName = paramName + "SelectValue"; - else - dropDownListName = paramName + "SelectLowerBound"; - var dropDownListCtrl = inForm[dropDownListName]; - if (dropDownListCtrl != null) - { - if (dropDownListCtrl.options[dropDownListCtrl.selectedIndex].value == CR_NULL) - { - // delete everything in the listbox, add _crNULL_ as an item - ClearListBoxAndSetNULL(theList); - return; - } - } - - var textCtrl = inForm[paramName + suffix]; - var hiddenCtrl = inForm[paramName + suffix + "Hidden"]; - var hourCtrl = inForm[paramName + suffix + "Hour"]; - var minuteCtrl = inForm[paramName + suffix + "Minute"]; - var secondCtrl = inForm[paramName + suffix + "Second"]; - var ampmCtrl = inForm[paramName + suffix + "AMPM"]; - - var obj; - var editables = true; - - if (textCtrl == undefined && hourCtrl == undefined) - { - //select box not a textbox, hour, minute, and second, ampm dropdown are not there either - editables = false; - obj = dropDownListCtrl; - obj = obj.options[obj.selectedIndex]; - } - else - { - if (type == "t") - obj = hourCtrl; - else - obj = textCtrl; - } - - if (type == "dt" || type == "d" || type == "t") - { - promptValue = DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl); - if (promptValue.length == 0) return false; - - if (editables) - displayString = DateTimeDisplayStringHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl); - else - displayString = DateTimeDisplayStringHelper(type, obj.text, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl); - } - else - { - promptValue = encodePrompt(obj.value); - displayString = ( obj.text ) ? obj.text : obj.value; - } - - if ( ! checkSingleValue (promptValue, type ) ) - { - return false; - } - - promptEntry = new Option(displayString,promptValue,false,false); - theList.options[theList.length] = promptEntry; -} - -function addPromptDiscreteValueHelperWithChecking(inForm, type, paramName, suffix, minValue, maxValue, errorMessage ) -{ - theList = inForm[paramName + "ListBox"]; - - // if there is a NULL checkbox and it is set - if ( inForm[paramName + "NULL"] != null && inForm[paramName + "NULL"].checked ) - { - // delete everything in the listbox, add _crNULL_ as an item - ClearListBoxAndSetNULL(theList); - return; - } - - // if the listbox already has a NULL value in it, don't do anything, unless user removes NULl value from the listbox - if (theList.options.length > 0 && theList.options[0].value == CR_NULL) - { - alert(L_NoValueAlready); - return; - } - - // if defaultdropdownlist selected item is _crNULL_, put it into multiple listbox - var dropDownListName = ""; - if (suffix == "DiscreteValue") - dropDownListName = paramName + "SelectValue"; - else - dropDownListName = paramName + "SelectLowerBound"; - var dropDownListCtrl = inForm[dropDownListName]; - if (dropDownListCtrl != null) - { - if (dropDownListCtrl.options[dropDownListCtrl.selectedIndex].value == CR_NULL) - { - // delete everything in the listbox, add _crNULL_ as an item - ClearListBoxAndSetNULL(theList); - return; - } - } - - var textCtrl = inForm[paramName + suffix]; - var hiddenCtrl = inForm[paramName + suffix + "Hidden"]; - var hourCtrl = inForm[paramName + suffix + "Hour"]; - var minuteCtrl = inForm[paramName + suffix + "Minute"]; - var secondCtrl = inForm[paramName + suffix + "Second"]; - var ampmCtrl = inForm[paramName + suffix + "AMPM"]; - - var obj; - var editables = true; - - if (textCtrl == undefined && hourCtrl == undefined) - { - //select box not a textbox, hour, minute, and second, ampm dropdown are not there either - editables = false; - obj = dropDownListCtrl; - obj = obj.options[obj.selectedIndex]; - } - else - { - if (type == "t") - obj = hourCtrl; - else - obj = textCtrl; - } - - if (type == "dt" || type == "d" || type == "t") - { - promptValue = DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl); - if (promptValue.length == 0) return false; - - if (editables) - displayString = DateTimeDisplayStringHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl); - else - displayString = DateTimeDisplayStringHelper(type, obj.text, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl); - } - else - { - promptValue = encodePrompt(obj.value); - displayString = ( obj.text ) ? obj.text : obj.value; - } - - if ( ! checkSingleValueWithMinMax (promptValue, type, minValue, maxValue, errorMessage ) ) - { - return false; - } - - promptEntry = new Option(displayString,promptValue,false,false); - theList.options[theList.length] = promptEntry; -} - -function addPromptDiscreteValue ( inForm, type , paramName) -{ - addPromptDiscreteValueHelper(inForm, type, paramName, "DiscreteValue"); -} - -function addPromptDiscreteValueWithChecking ( inForm, type , paramName, minValue, maxValue, errorMessage ) -{ - addPromptDiscreteValueHelperWithChecking(inForm, type, paramName, "DiscreteValue", minValue, maxValue, errorMessage); -} - -//////////////////////////////////// -// adds Range prompt to listbox where multiple values are supported -function addPromptDiscreteRangeValue ( inForm, type , paramName ) -{ - lowerOption = inForm[paramName + "SelectLowerOptions"]; - - // exactly - if (lowerOption.selectedIndex == 1) - { - // add discrete - addPromptDiscreteValueHelper(inForm, type, paramName, "LowerBound"); - } - else - { - // add range - addPromptRangeValue(inForm, type, paramName); - } -} - -// adds Range prompt with Checking to listbox where multiple values are supported -function addPromptDiscreteRangeValueWithChecking ( inForm, type , paramName, minValue, maxValue, errorMessage ) -{ - lowerOption = inForm[paramName + "SelectLowerOptions"]; - - // exactly - if (lowerOption.selectedIndex == 1) - { - // add discrete - addPromptDiscreteValueHelperWithChecking(inForm, type, paramName, "LowerBound", minValue, maxValue, errorMessage); - } - else - { - // add range - addPromptRangeValueWithChecking(inForm, type, paramName, minValue, maxValue, errorMessage); - } -} - -//////////////////////////////////// -// adds Range prompt to listbox where multiple values are supported -function addPromptRangeValue ( inForm, type , paramName ) -{ - - theList = inForm[paramName + "ListBox"]; - - // if there is a NULL checkbox and it is set - if ( inForm[paramName + "NULL"] != null && inForm[paramName + "NULL"].checked ) - { - // delete everything in the listbox, add _crNULL_ as an item - ClearListBoxAndSetNULL(theList); - return; - } - - // if the listbox already has a NULL value in it, don't do anything, unless user removed NULl value from the listbox - if (theList.options.length > 0 && theList.options[0].value == CR_NULL) - { - alert(L_NoValueAlready); - return; - } - - // if both defaultdropdownlists selected item is _crNULL_, put it into multiple listbox - // if one of them is _crNULL_, it is not a valid option, do nothing - var lowerDropDownListName = paramName + "SelectLowerBound"; - var upperDropDownListName = paramName + "SelectUpperBound"; - var lowerDropDownListCtrl = inForm[lowerDropDownListName]; - var upperDropDownListCtrl = inForm[upperDropDownListName]; - if (lowerDropDownListCtrl != null && upperDropDownListCtrl != null) - { - if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL - && upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL) - { - // delete everything in the listbox, add _crNULL_ as an item - ClearListBoxAndSetNULL(theList); - return; - } - else if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL - || upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL) - { - alert(L_BadValue); - return; - } - } - - lowerOption = inForm[paramName + "SelectLowerOptions"]; - upperOption = inForm[paramName + "SelectUpperOptions"]; - - lowerBound = inForm[paramName + "LowerBound"]; - upperBound = inForm[paramName + "UpperBound"]; - - lowerBoundHidden = inForm[paramName + "LowerBoundHidden"]; - upperBoundHidden = inForm[paramName + "UpperBoundHidden"]; - - var lhourCtrl = inForm[paramName+"LowerBound" + "Hour"]; - var lminuteCtrl = inForm[paramName + "LowerBound" + "Minute"]; - var lsecondCtrl = inForm[paramName + "LowerBound" + "Second"]; - var lampmCtrl = inForm[paramName + "LowerBound" + "AMPM"]; - - var uhourCtrl = inForm[paramName+"UpperBound" + "Hour"]; - var uminuteCtrl = inForm[paramName + "UpperBound" + "Minute"]; - var usecondCtrl = inForm[paramName + "UpperBound" + "Second"]; - var uampmCtrl = inForm[paramName + "UpperBound" + "AMPM"]; - - var editable = true; - - //handle select box, not text box case - if ( lowerBound == undefined && lhourCtrl == undefined)//either upper or lower, doesn't matter - { - editable = false; - - lowerBound = inForm[paramName + "SelectLowerBound"]; - upperBound = inForm[paramName + "SelectUpperBound"]; - lowerBound = lowerBound.options[lowerBound.selectedIndex]; - upperBound = upperBound.options[upperBound.selectedIndex]; - } - - lowerUnBounded = (inForm[paramName+"SelectLowerOptions"].selectedIndex == (inForm[paramName + "SelectLowerOptions"].options.length - 1)); - upperUnBounded = (inForm[paramName+"SelectUpperOptions"].selectedIndex == (inForm[paramName + "SelectUpperOptions"].options.length - 1)); - - - lvalue = uvalue = ""; - - if ( ! lowerUnBounded ) - { - if ((type == "dt" || type == "d" || type == "t") && (editable)) - { - lvalue = DateTimePromptValueHelper(type, lowerBoundHidden, lhourCtrl, lminuteCtrl, lsecondCtrl, lampmCtrl); - if (lvalue.length == 0) return false; - } - else - lvalue = lowerBound.value; - - if ( ! checkSingleValue ( lvalue, type ) ) { - if ( lowerBound.focus && lowerBound.type.toLowerCase () != "hidden") - lowerBound.focus (); - return false; - } - } - if ( ! upperUnBounded ) - { - if ((type == "dt" || type == "d" || type == "t") && (editable)) - { - uvalue = DateTimePromptValueHelper(type, upperBoundHidden, uhourCtrl, uminuteCtrl, usecondCtrl, uampmCtrl); - if (uvalue.length == 0) return false; - } - else - uvalue = upperBound.value; - - if ( ! checkSingleValue ( uvalue, type ) ) { - if ( upperBound.focus && upperBound.type.toLowerCase () != "hidden") - upperBound.focus (); - return false; - } - } - - var ldisplay = ""; - var udisplay = ""; - if ((type == "dt" || type == "d" || type == "t") && (editable)) - { - if (!lowerUnBounded) - ldisplay = DateTimeDisplayStringHelper(type, lowerBoundHidden, lhourCtrl, lminuteCtrl, lsecondCtrl, lampmCtrl); - if (!upperUnBounded) - udisplay = DateTimeDisplayStringHelper(type, upperBoundHidden, uhourCtrl, uminuteCtrl, usecondCtrl, uampmCtrl); - } - else - { - ldisplay = lvalue; - udisplay = uvalue; - } - - lowerChecked = (inForm[paramName+"SelectLowerOptions"].selectedIndex == 0); - upperChecked = (inForm[paramName+"SelectUpperOptions"].selectedIndex == 0); - - value = lowerUnBounded ? "{" : lowerChecked ? "[" : "("; - if ( ! lowerUnBounded ) //unbounded is empty string not quoted empty string (e.g not "_crEMPTY_") - value += encodePrompt(lvalue); - value += "_crRANGE_" - if ( ! upperUnBounded ) - value += encodePrompt(uvalue); - value += upperUnBounded ? "}" : upperChecked ? "]" : ")"; - if ( debug ) alert (value); - - if ( !lowerUnBounded && !upperUnBounded && !checkRangeValue(lvalue, uvalue, type)) - { - return false; - } - - var display = ""; - if (lowerChecked && upperUnBounded) - { - display = ConstructRangeDisplayString(L_FROM, ldisplay, ""); - } - else if (lowerUnBounded && upperChecked) - { - display = ConstructRangeDisplayString(L_TO, udisplay, ""); - } - else if (!lowerChecked && upperUnBounded) - { - display = ConstructRangeDisplayString(L_AFTER, ldisplay, ""); - } - else if (lowerUnBounded && !upperChecked) - { - display = ConstructRangeDisplayString(L_BEFORE, udisplay, ""); - } - else if (lowerChecked && upperChecked) - { - display = ConstructRangeDisplayString(L_FROM_TO, ldisplay, udisplay); - } - else if (lowerChecked && !upperUnBounded && !upperChecked) - { - display = ConstructRangeDisplayString(L_FROM_BEFORE, ldisplay, udisplay); - } - else if (!lowerChecked && !lowerUnBounded && upperChecked) - { - display = ConstructRangeDisplayString(L_AFTER_TO, ldisplay, udisplay); - } - else if (!lowerChecked && !lowerUnBounded && !upperChecked && !upperUnBounded) - { - display = ConstructRangeDisplayString(L_AFTER_BEFORE, ldisplay, udisplay); - } - - if ((!lowerUnBounded) || (!upperUnBounded)) - { - promptEntry = new Option(display,value,false,false); - theList.options[theList.length] = promptEntry; - } - else - { - alert(L_BadBound); - } - -} - -//////////////////////////////////// -// adds Range prompt with Checking to listbox where multiple values are supported -function addPromptRangeValueWithChecking ( inForm, type , paramName, minValue, maxValue, errorMessage ) -{ - - theList = inForm[paramName + "ListBox"]; - - // if there is a NULL checkbox and it is set - if ( inForm[paramName + "NULL"] != null && inForm[paramName + "NULL"].checked ) - { - // delete everything in the listbox, add _crNULL_ as an item - ClearListBoxAndSetNULL(theList); - return; - } - - // if the listbox already has a NULL value in it, don't do anything, unless user removed NULl value from the listbox - if (theList.options.length > 0 && theList.options[0].value == CR_NULL) - { - alert(L_NoValueAlready); - return; - } - - // if both defaultdropdownlists selected item is _crNULL_, put it into multiple listbox - // if one of them is _crNULL_, it is not a valid option, do nothing - var lowerDropDownListName = paramName + "SelectLowerBound"; - var upperDropDownListName = paramName + "SelectUpperBound"; - var lowerDropDownListCtrl = inForm[lowerDropDownListName]; - var upperDropDownListCtrl = inForm[upperDropDownListName]; - if (lowerDropDownListCtrl != null && upperDropDownListCtrl != null) - { - if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL - && upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL) - { - // delete everything in the listbox, add _crNULL_ as an item - ClearListBoxAndSetNULL(theList); - return; - } - else if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL - || upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL) - { - alert(L_BadValue); - return; - } - } - - lowerOption = inForm[paramName + "SelectLowerOptions"]; - upperOption = inForm[paramName + "SelectUpperOptions"]; - - lowerBound = inForm[paramName + "LowerBound"]; - upperBound = inForm[paramName + "UpperBound"]; - - lowerBoundHidden = inForm[paramName + "LowerBoundHidden"]; - upperBoundHidden = inForm[paramName + "UpperBoundHidden"]; - - var lhourCtrl = inForm[paramName+"LowerBound" + "Hour"]; - var lminuteCtrl = inForm[paramName + "LowerBound" + "Minute"]; - var lsecondCtrl = inForm[paramName + "LowerBound" + "Second"]; - var lampmCtrl = inForm[paramName + "LowerBound" + "AMPM"]; - - var uhourCtrl = inForm[paramName+"UpperBound" + "Hour"]; - var uminuteCtrl = inForm[paramName + "UpperBound" + "Minute"]; - var usecondCtrl = inForm[paramName + "UpperBound" + "Second"]; - var uampmCtrl = inForm[paramName + "UpperBound" + "AMPM"]; - - var editable = true; - - //handle select box, not text box case - if ( lowerBound == undefined && lhourCtrl == undefined)//either upper or lower, doesn't matter - { - editable = false; - - lowerBound = inForm[paramName + "SelectLowerBound"]; - upperBound = inForm[paramName + "SelectUpperBound"]; - lowerBound = lowerBound.options[lowerBound.selectedIndex]; - upperBound = upperBound.options[upperBound.selectedIndex]; - } - - lowerUnBounded = (inForm[paramName+"SelectLowerOptions"].selectedIndex == (inForm[paramName + "SelectLowerOptions"].options.length - 1)); - upperUnBounded = (inForm[paramName+"SelectUpperOptions"].selectedIndex == (inForm[paramName + "SelectUpperOptions"].options.length - 1)); - - - lvalue = uvalue = ""; - - if ( ! lowerUnBounded ) - { - if ((type == "dt" || type == "d" || type == "t") && (editable)) - { - lvalue = DateTimePromptValueHelper(type, lowerBoundHidden, lhourCtrl, lminuteCtrl, lsecondCtrl, lampmCtrl); - if (lvalue.length == 0) return false; - } - else - lvalue = lowerBound.value; - - if ( ! checkSingleValue ( lvalue, type ) ) { - if ( lowerBound.focus && lowerBound.type.toLowerCase () != "hidden") - lowerBound.focus (); - return false; - } - } - if ( ! upperUnBounded ) - { - if ((type == "dt" || type == "d" || type == "t") && (editable)) - { - uvalue = DateTimePromptValueHelper(type, upperBoundHidden, uhourCtrl, uminuteCtrl, usecondCtrl, uampmCtrl); - if (uvalue.length == 0) return false; - } - else - uvalue = upperBound.value; - - if ( ! checkSingleValue ( uvalue, type ) ) { - if ( upperBound.focus && upperBound.type.toLowerCase () != "hidden") - upperBound.focus (); - return false; - } - } - - var ldisplay = ""; - var udisplay = ""; - if ((type == "dt" || type == "d" || type == "t") && (editable)) - { - if (!lowerUnBounded) - ldisplay = DateTimeDisplayStringHelper(type, lowerBoundHidden, lhourCtrl, lminuteCtrl, lsecondCtrl, lampmCtrl); - if (!upperUnBounded) - udisplay = DateTimeDisplayStringHelper(type, upperBoundHidden, uhourCtrl, uminuteCtrl, usecondCtrl, uampmCtrl); - } - else - { - ldisplay = lvalue; - udisplay = uvalue; - } - - lowerChecked = (inForm[paramName+"SelectLowerOptions"].selectedIndex == 0); - upperChecked = (inForm[paramName+"SelectUpperOptions"].selectedIndex == 0); - - value = lowerUnBounded ? "{" : lowerChecked ? "[" : "("; - if ( ! lowerUnBounded ) //unbounded is empty string not quoted empty string (e.g not "_crEMPTY_") - value += encodePrompt(lvalue); - value += "_crRANGE_" - if ( ! upperUnBounded ) - value += encodePrompt(uvalue); - value += upperUnBounded ? "}" : upperChecked ? "]" : ")"; - if ( debug ) alert (value); - - if ( !lowerUnBounded && !upperUnBounded && !checkRangeValueWithMinMax(lvalue, uvalue, type, minValue, maxValue, errorMessage)) - { - return false; - } - - var display = ""; - if (lowerChecked && upperUnBounded) - { - display = ConstructRangeDisplayString(L_FROM, ldisplay, ""); - } - else if (lowerUnBounded && upperChecked) - { - display = ConstructRangeDisplayString(L_TO, udisplay, ""); - } - else if (!lowerChecked && upperUnBounded) - { - display = ConstructRangeDisplayString(L_AFTER, ldisplay, ""); - } - else if (lowerUnBounded && !upperChecked) - { - display = ConstructRangeDisplayString(L_BEFORE, udisplay, ""); - } - else if (lowerChecked && upperChecked) - { - display = ConstructRangeDisplayString(L_FROM_TO, ldisplay, udisplay); - } - else if (lowerChecked && !upperUnBounded && !upperChecked) - { - display = ConstructRangeDisplayString(L_FROM_BEFORE, ldisplay, udisplay); - } - else if (!lowerChecked && !lowerUnBounded && upperChecked) - { - display = ConstructRangeDisplayString(L_AFTER_TO, ldisplay, udisplay); - } - else if (!lowerChecked && !lowerUnBounded && !upperChecked && !upperUnBounded) - { - display = ConstructRangeDisplayString(L_AFTER_BEFORE, ldisplay, udisplay); - } - - if ((!lowerUnBounded) || (!upperUnBounded)) - { - promptEntry = new Option(display,value,false,false); - theList.options[theList.length] = promptEntry; - } - else - { - alert(L_BadBound); - } - -} - -//////////////////////////////////// -// disable check boxes based on user selection on the range parameters -function disableBoundCheck(lowOrUpBound, inform, paramName) { - if (lowOrUpBound == 0) { - if (inform[paramName + "NoLowerBoundCheck"].checked) { - inform[paramName + "NoUpperBoundCheck"].disabled = true; - inform[paramName + "LowerCheck"].disabled = true; - inform[paramName + "LowerBound"].disabled = true; - } - else { - inform[paramName + "NoUpperBoundCheck"].disabled = false; - inform[paramName + "LowerCheck"].disabled = false; - inform[paramName + "LowerBound"].disabled = false; - } - } else if (lowOrUpBound == 1) { - if (inform[paramName + "NoUpperBoundCheck"].checked) { - inform[paramName + "NoLowerBoundCheck"].disabled = true; - inform[paramName + "UpperCheck"].disabled = true; - inform[paramName + "UpperBound"].disabled = true; - } else { - inform[paramName + "NoLowerBoundCheck"].disabled = false; - inform[paramName + "UpperCheck"].disabled = false; - inform[paramName + "UpperBound"].disabled = false; - } - } -} - -//////////////////////////////////// -// puts "select" value into text box for an editable prompt which also has defaults -function setSelectedValue (inForm, selectCtrlName, textCtrlName, type, namePlusFix) -{ - var textCtrl = inForm[textCtrlName]; - var selectCtrl = inForm[selectCtrlName]; - var hiddenCtrl = inForm[namePlusFix+"Hidden"]; - var hourCtrl = inForm[namePlusFix+"Hour"]; - var minuteCtrl = inForm[namePlusFix+"Minute"]; - var secondCtrl = inForm[namePlusFix+"Second"]; - var ampmCtrl = inForm[namePlusFix+"AMPM"]; - - // if no editable input fields are there, return, do nothing; - if (textCtrl == null && hourCtrl == null) - return; - - // if selectedItem is UseValue,do nothing, and return - if (selectCtrl.options[selectCtrl.selectedIndex].value == CR_USE_VALUE) - { - return; - } - - if (selectCtrl.options[selectCtrl.selectedIndex].value == CR_NULL) - { - if (textCtrl != null) textCtrl.disabled = true; - if (hourCtrl != null) hourCtrl.disabled = true; - if (minuteCtrl != null) minuteCtrl.disabled = true; - if (secondCtrl != null) secondCtrl.disabled = true; - if (ampmCtrl != null) ampmCtrl.disabled = true; - return; - } - else - { - if (textCtrl != null) textCtrl.disabled = false; - if (hourCtrl != null) hourCtrl.disabled = false; - if (minuteCtrl != null) minuteCtrl.disabled = false; - if (secondCtrl != null) secondCtrl.disabled = false; - if (ampmCtrl != null) ampmCtrl.disabled = false; - } - - var year, month, day; - var hour, minute, second; - if (type == "dt" || type == "d" || type == "t") - { - var sDateTime = selectCtrl.options[selectCtrl.selectedIndex].value; - if (sDateTime.length == 0) - return; - - var leftIndex = sDateTime.indexOf("("); - sDateTime = sDateTime.substr(leftIndex+1, sDateTime.length - leftIndex); - var rightIndex = sDateTime.indexOf(")"); - sDateTime = sDateTime.substr(0, rightIndex); - var a = sDateTime.split(","); - - if (type == "dt") - { - year = a[0]; - month = a[1]; - day = a[2]; - - hour = parseInt(a[3]); - minute = parseInt(a[4]); - second = parseInt(a[5]); - } - else if (type == "d") - { - year = a[0]; - month = a[1]; - day = a[2]; - } - else if (type == "t") - { - hour = parseInt(a[0]); - minute = parseInt(a[1]); - second = parseInt(a[2]); - } - } - - selectedOption = selectCtrl.options[selectCtrl.selectedIndex]; - if (type == "dt") - { - var dt = new Date(year, month - 1, day, hour, minute, second); - if (this.formatJsDate) - textCtrl.value = formatJsDate(dt); - else - textCtrl.value = GLDT(dt,true, false); - hiddenCtrl.value = "Date("; - hiddenCtrl.value += year; - hiddenCtrl.value += ","; - hiddenCtrl.value += month; - hiddenCtrl.value += ","; - hiddenCtrl.value += day; - hiddenCtrl.value += ")"; - - if (ampmCtrl != undefined) - { - if (hour == 0 || hour == 12) - hourCtrl.selectedIndex = 11; - else if (hour > 12) - hourCtrl.selectedIndex = hour - 12 - 1; - else - hourCtrl.selectedIndex = hour - 1; - } - else - hourCtrl.selectedIndex = hour; - minuteCtrl.selectedIndex = minute; - secondCtrl.selectedIndex = second; - if (ampmCtrl != null) - { - if ( hour >= 12) - ampmCtrl.selectedIndex = 1; - else - ampmCtrl.selectedIndex = 0; - } - } - else if (type == "d") - { - var dt = new Date(year, month - 1, day, 0, 0, 0); - if (this.formatJsDate) - textCtrl.value = formatJsDate(dt); - else - textCtrl.value = GLDT(dt,true, false); - hiddenCtrl.value = "Date("; - hiddenCtrl.value += year; - hiddenCtrl.value += ","; - hiddenCtrl.value += month; - hiddenCtrl.value += ","; - hiddenCtrl.value += day; - hiddenCtrl.value += ")"; - } - else if (type == "t") - { - if (ampmCtrl != null) - { - if (hour == 0 || hour == 12) - hourCtrl.selectedIndex = 11; - else if (hour > 12) - hourCtrl.selectedIndex = hour - 12 - 1; - else - hourCtrl.selectedIndex = hour - 1; - } - else - hourCtrl.selectedIndex = hour; - minuteCtrl.selectedIndex = minute; - secondCtrl.selectedIndex = second; - if (ampmCtrl != null) - { - if ( hour >= 12) - ampmCtrl.selectedIndex = 1; - else - ampmCtrl.selectedIndex = 0; - } - } - else - { - textCtrl.value = selectedOption.value; - } - - if (selectCtrl.options[0].value == CR_USE_VALUE) - { - // always show USE_VALUE as selectedItem for the dropdownlist - selectCtrl.selectedIndex = 0; - } -} - -/////////////////////////////////// -// remove value from listbox where multiple value prompts are supported -function removeFromListBox ( inForm, paramName ) -{ - lbox = inForm[paramName + "ListBox"]; - for ( var idx = 0; idx < lbox.options.length; ) - { - if ( lbox.options[idx].selected ) - lbox.options[idx] = null; - else - idx++; - } -} - -///////////////////////////////////// -// sets prompt value into the hidden form field in proper format so that it can be submitted -function setPromptSingleValue (inform, type, paramName) -{ - //alert("SetPromptSingleValue"); - hiddenField = inform[promptPrefix + paramName]; - var hiddenMinValue = ""; - var hiddenMaxValue = ""; - var hiddenWarnMsg = ""; - if (typeof(inform[promptPrefix + paramName + promptMinValue]) != "undefined") - hiddenMinValue = (inform[promptPrefix + paramName + promptMinValue]).value; - if (typeof(inform[promptPrefix + paramName + promptMaxValue])!= "undefined") - hiddenMaxValue = (inform[promptPrefix + paramName + promptMaxValue]).value; - if (typeof(inform[promptPrefix + paramName + warningMaxValue]) != "undefined") - hiddenWarnMsg = (inform[promptPrefix + paramName + warningMaxValue]).value; - value = ""; - if ( inform[paramName + "NULL"] != null && inform[paramName + "NULL"].checked ) - { - value = CR_NULL; //NULL is a literal for, uhmm.. a NULL - hiddenField.value = value; - return true; - } - - // if defaultdropdownlist selected item is _crNULL_, put it into multiple listbox - var dropDownListName = paramName + "SelectValue"; - var dropDownListCtrl = inform[dropDownListName]; - if (dropDownListCtrl != null) - { - if (dropDownListCtrl.options[dropDownListCtrl.selectedIndex].value == CR_NULL) - { - hiddenField.value = CR_NULL; - return true; - } - } - - - discreteVal = inform[paramName + "DiscreteValue"]; - if (discreteVal != undefined || inform[paramName + "DiscreteValueHour"] != undefined) - { // editable - - if ( type == "dt" || type == "d" || type == "t") - { - var hiddenCtrl = inform[paramName+"DiscreteValueHidden"]; - var hourCtrl = inform[paramName+"DiscreteValueHour"]; - var minuteCtrl = inform[paramName + "DiscreteValueMinute"]; - var secondCtrl = inform[paramName + "DiscreteValueSecond"]; - var ampmCtrl = inform[paramName + "DiscreteValueAMPM"]; - value = DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl); - if (value.length == 0) return false; - } - else - value = discreteVal.value; - } - else - { - // not editable - discreteVal = inform[paramName+"SelectValue"]; - value = discreteVal.options[discreteVal.selectedIndex].value; - //alert(value); - } - if ( (hiddenMinValue.length==0 && hiddenMaxValue.length==0 && hiddenWarnMsg.length==0) && ! checkSingleValue ( value, type ) ) { - if (discreteVal.focus && discreteVal.type.toLowerCase ()) - discreteVal.focus (); - return false; - } - else if ( (hiddenMinValue.length>0 && hiddenMaxValue.length>0 && hiddenWarnMsg.length>0) && ! checkSingleValueWithMinMax ( value, type, hiddenMinValue, hiddenMaxValue, hiddenWarnMsg ) ) { - if (typeof(discreteVal)!="undefined" && discreteVal.focus && discreteVal.type.toLowerCase ()) - discreteVal.focus (); - return false; - } - else - value = encodePrompt(value); - - hiddenField.value = value; - return true; -} - -///////////////////////////////////// -// sets prompt value for a range into the hidden form field in proper format so that it can be submitted -function setPromptRangeValue (inform, type, paramName) -{ - - hiddenField = inform[promptPrefix + paramName]; - var hiddenMinValue = ""; - var hiddenMaxValue = ""; - var hiddenWarnMsg = ""; - if (typeof(inform[promptPrefix + paramName + promptMinValue]) != "undefined") - hiddenMinValue = (inform[promptPrefix + paramName + promptMinValue]).value; - if (typeof(inform[promptPrefix + paramName + promptMaxValue])!= "undefined") - hiddenMaxValue = (inform[promptPrefix + paramName + promptMaxValue]).value; - if (typeof(inform[promptPrefix + paramName + warningMaxValue]) != "undefined") - hiddenWarnMsg = (inform[promptPrefix + paramName + warningMaxValue]).value; - - if ( inform[paramName + "NULL"] != null && inform[paramName + "NULL"].checked ) - { - value = CR_NULL; //NULL is a literal for, uhmm.. a NULL - hiddenField.value = value; - return true; - } - - // if both defaultdropdownlists selected item is _crNULL_, put it into hiddenfield - // if one of them is _crNULL_, it is not a valid option, do nothing - var lowerDropDownListName = paramName + "SelectLowerBound"; - var upperDropDownListName = paramName + "SelectUpperBound"; - var lowerDropDownListCtrl = inform[lowerDropDownListName]; - var upperDropDownListCtrl = inform[upperDropDownListName]; - if (lowerDropDownListCtrl != null && upperDropDownListCtrl != null) - { - if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL - && upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL) - { - hiddenField.value = "_crNULL_"; - return true; - } - else if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL - || upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL) - { - alert(L_BadValue); - return false; - } - } - - lowerOptions = inform[paramName + "SelectLowerOptions"]; - upperOptions = inform[paramName + "SelectUpperOptions"]; - - lowerBound = inform[paramName + "LowerBound"]; - upperBound = inform[paramName + "UpperBound"]; - - lowerBoundHidden = inform[paramName + "LowerBoundHidden"]; - upperBoundHidden = inform[paramName + "UpperBoundHidden"]; - - lowerBoundDropdown = inform[paramName + "SelectLowerBound"]; - upperBoundDropdown = inform[paramName + "SelectUpperBound"]; - - var editables = true; - - //handle select box, not text box case - if (lowerBound == undefined && inform[paramName + "LowerBound" + "Hour"] == undefined) - { - editables = false; - lowerBound = lowerBoundDropdown; - upperBound = upperBoundDropdown; - lowerBound = lowerBound.options[lowerBound.selectedIndex]; - upperBound = upperBound.options[upperBound.selectedIndex]; - } - - lowerUnBounded = (lowerOptions.selectedIndex == (lowerOptions.length - 1)); - upperUnBounded = (upperOptions.selectedIndex == (upperOptions.length - 1)); - - lowerChecked = (lowerOptions.selectedIndex == 0); - upperChecked = (upperOptions.selectedIndex == 0); - - uvalue = lvalue = ""; - - if ( ! lowerUnBounded ) - { - if ( (type == "dt" || type == "d" || type == "t") && (editables)) - { - var lhourCtrl = inform[paramName+"LowerBound" + "Hour"]; - var lminuteCtrl = inform[paramName + "LowerBound" + "Minute"]; - var lsecondCtrl = inform[paramName + "LowerBound" + "Second"]; - var lampmCtrl = inform[paramName + "LowerBound" + "AMPM"]; - lvalue = DateTimePromptValueHelper(type, lowerBoundHidden, lhourCtrl, lminuteCtrl, lsecondCtrl, lampmCtrl); - if (lvalue.length == 0) return false; - } - else - lvalue = lowerBound.value; - - if ( ! checkSingleValue ( lvalue, type ) ) { - if (lowerBound != undefined && lowerBound.focus) - lowerBound.focus(); - return false; - } - } - if ( ! upperUnBounded ) - { - if (( type == "dt" || type == "d" || type == "t") && (editables)) - { - var uhourCtrl = inform[paramName+"UpperBound" + "Hour"]; - var uminuteCtrl = inform[paramName + "UpperBound" + "Minute"]; - var usecondCtrl = inform[paramName + "UpperBound" + "Second"]; - var uampmCtrl = inform[paramName + "UpperBound" + "AMPM"]; - uvalue = DateTimePromptValueHelper(type, upperBoundHidden, uhourCtrl, uminuteCtrl, usecondCtrl, uampmCtrl); - if (uvalue.length == 0) return false; - } - else - uvalue = upperBound.value; - - if ( ! checkSingleValue ( uvalue, type ) ) { - if (upperBound != undefined && upperBound.focus) - upperBound.focus(); - return false; - } - } - - value = lowerUnBounded ? "{" : lowerChecked ? "[" : "("; - if ( ! lowerUnBounded ) - value += encodePrompt(lvalue); - value += "_crRANGE_" - if ( ! upperUnBounded ) - value += encodePrompt(uvalue); - value += upperUnBounded ? "}" : upperChecked ? "]" : ")"; - if ( debug ) - alert (value); - - if (lowerUnBounded && upperUnBounded) - { - alert(L_BadBound); - return false; - } - - if ((hiddenMinValue.length==0 && hiddenMaxValue.length==0 && hiddenWarnMsg.length==0) && !lowerUnBounded && !upperUnBounded && !checkRangeValue(lvalue, uvalue, type)) - { - return false; - } - else if ((hiddenMinValue.length>0 && hiddenMaxValue.length>0 && hiddenWarnMsg.length>0) && !lowerUnBounded && !upperUnBounded && !checkRangeValueWithMinMax(lvalue, uvalue, type, hiddenMinValue, hiddenMaxValue, hiddenWarnMsg)) - { - return false; - } - - hiddenField.value = value; - return true; -} - -///////////////////////////////////// -// sets prompt value into the hidden form field in proper format so that it can be submitted -function setPromptMultipleValue (inform, type, paramName) -{ - hiddenField = inform[promptPrefix + paramName]; - values = inform[paramName + "ListBox"].options; - - if ( values.length == 0 ) - { - value = "_crEMPTY_"; //if value is empty, set to empty string - } - else - { - value = ""; - for ( idx = 0; idx < values.length; ++idx ) - { - // first value could be empty string, then chcking value.length != 0 could miss one empty string - if ( idx != 0 ) - value += "_crMULT_" - value += values[idx].value; - } - } - - if ( debug ) - alert (value); - - hiddenField.value = value; - //NOTE: we'll always return true as the validation is done before values are added to select box - return true; -} - -/////////////////////////////////////// -// check and alert user about any errors based on type of prompt -var regNumber = /^(\+|-)?((\d+(\.|,| |\u00A0)?\d*)+|(\d*(\.|,| |\u00A0)?\d+)+)$/ -var regCurrency = regNumber; -var regDate = /^(D|d)(A|a)(T|t)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *\)$/ -var regDateTime = /^(D|d)(A|a)(T|t)(E|e)(T|t)(I|i)(M|m)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *, *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/ -var regTime = /^(T|t)(I|i)(M|m)(E|e) *\( *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/ - -function checkSingleValue ( value, type ) -{ - if ( type == 'n' && ! regNumber.test ( value ) ) - { - alert ( L_BadNumber ); - return false; - } - else if ( type == 'c' && ! regCurrency.test ( value ) ) - { - alert ( L_BadCurrency ); - return false; - } - /*else if ( type == 'd' && ! regDate.test ( value ) ) - { - alert ( L_BadDate ); - return false; - } - else if ( type == "dt" && ! regDateTime.test ( value ) ) - { - alert ( L_BadDateTime ); - return false; - } - else if ( type == 't' && ! regTime.test ( value ) ) - { - alert ( L_BadTime ); - return false; - }*/ - - //by default let it go... - return true; -} - -function checkSingleValueWithMinMax ( value, type, minValue, maxValue, errorMessage ) -{ - if ( type == 'n' ) - { - if (! regNumber.test ( value ) || isNaN(DelocalizeNum (value)) || isNaN(DelocalizeNum (minValue)) || isNaN(DelocalizeNum (maxValue))) - { - alert ( L_BadNumber ); - return false; - } - if (minValue.length>0 && maxValue.length>0){ - //check min and max - if (eval (DelocalizeNum (value)) < eval (DelocalizeNum (minValue)) || eval (DelocalizeNum (value)) > eval (DelocalizeNum (maxValue))) - { - alert (errorMessage); - return false; - } - } - } - else if ( type == 'c' ) - { - if (! regCurrency.test ( value ) || isNaN(DelocalizeNum (value)) || isNaN(DelocalizeNum (minValue)) || isNaN(DelocalizeNum (maxValue))) - { - alert ( L_BadCurrency ); - return false; - } - if (minValue.length>0 && maxValue.length>0){ - //check min and max - if (eval (DelocalizeNum (value)) < eval (DelocalizeNum (minValue)) || eval (DelocalizeNum (value)) > eval (DelocalizeNum (maxValue))) - { - alert (errorMessage); - return false; - } - } - } - else if ( type == 'd' ) - { - if (minValue.length>0 && maxValue.length>0){ - var comp = NeutralDT2Date(value); - //check min and max - var dMin = Date.parse(minValue); - var dMax = Date.parse(maxValue); - // since Date month as a value is from 0-11, the string represenatation as a value of 1-12, NeutralDT2Date handle it - // The number of milliseconds after midnight January 1, 1970 - // Set to GMT for consistent comparison on the client side - var offset = comp.getTimezoneOffset()*60*1000; - var dComp = Date.parse(comp) - offset; - if (dComp < dMin || dComp > dMax) - { - alert (errorMessage); - return false; - } - } - } - else if ( type == "dt" ) - { - if (minValue.length>0 && maxValue.length>0){ - var comp = NeutralDT2Date(value); - //check min and max - var dtMin = Date.parse(minValue); - var dtMax = Date.parse(maxValue); - // since Date month as a value is from 0-11, the string represenatation as a value of 1-12, NeutralDT2Date handle it - // The number of milliseconds after midnight January 1, 1970 - // Set to GMT for consistent comparison on the client side - var offset = comp.getTimezoneOffset()*60*1000; - var dtComp = Date.parse(comp) - offset; - if (dtComp < dtMin || dtComp > dtMax) - { - alert (errorMessage); - return false; - } - } - } - else if ( type == 't' ) - { - if (minValue.length>0 && maxValue.length>0){ - var comp = eval("new Date(0,0,0," + value.substring(value.indexOf('(') + 1, value.indexOf(')') + 1)); - //var comp = NeutralDT2Date(value); - //check min and max - //getTimeFromIETFFormat to remove the difference of the year, month and day components - var tMinComponents = getTimeFromIETFFormat(minValue); - var tMaxComponents = getTimeFromIETFFormat(maxValue); - var tMinTEFT = eval("new Date(0,0,0," + tMinComponents[0] + "," + tMinComponents[1] + "," + tMinComponents[2] + ")"); - var tMaxTEFT = eval("new Date(0,0,0," + tMaxComponents[0] + "," + tMaxComponents[1] + "," + tMaxComponents[2] + ")"); - // check am or pm - var index1 = minValue.indexOf(" PM "); - if (index1>-1) - { - tMinTEFT.setTime(tMinTEFT.getTime()+(12*3600*1000)); - } - var index2 = maxValue.indexOf(" PM "); - if (index2>-1) - { - tMaxTEFT.setTime(tMaxTEFT.getTime()+(12*3600*1000)); - } - var tMin = Date.parse(tMinTEFT); - var tMax = Date.parse(tMaxTEFT); - // Both new Date() make consistent comparison on the client side - var tComp = Date.parse(comp); - if (tComp < tMin || tComp > tMax) - { - alert (errorMessage); - return false; - } - } - } - else if (type == "text" || type == 's') - { - // is a string - //check min and max - if (value.length < eval (DelocalizeNum (minValue)) || value.length > eval (DelocalizeNum (maxValue))) - { - alert (errorMessage); - return false; - } - } - //by default let it go... - return true; -} - -function checkRangeValue (fvalue, tvalue, type) -{ - // determine if the start is smaller than the end - if ((type == "n") || (type == "c")) - { - // Is a number, or currency - if (eval (DelocalizeNum (fvalue)) > eval (DelocalizeNum (tvalue))) - { - alert(L_RangeError); - return false; - } - } - else if (type == "d"){ - //Is a Date - if (eval("new " + fvalue) > eval("new " + tvalue)){ - alert(L_RangeError); - return false; - } - }else if (type == "t"){ - //Is a Time - var comp1 = eval("new Date(0,0,0," + fvalue.substring(fvalue.indexOf('(') + 1, fvalue.indexOf(')') + 1)); - var comp2 = eval("new Date(0,0,0," + tvalue.substring(tvalue.indexOf('(') + 1, tvalue.indexOf(')') + 1)); - if (comp1 > comp2){ - alert(L_RangeError); - return false; - } - }else if (type == "dt"){ - //Is a DateTime - var comp1 = eval("new Date" + fvalue.substring(8, fvalue.length)); - var comp2 = eval("new Date" + tvalue.substring(8, tvalue.length)); - if (comp1 > comp2){ - alert(L_RangeError); - return false; - } - } - else if (type == "text") - { - // is a string - if (fvalue.toLowerCase() > tvalue.toLowerCase()) - { - alert(L_RangeError); - return false; - } - } - // otherwise, let it go - - return true; -} - -function checkRangeValueWithMinMax (fvalue, tvalue, type, minValue, maxValue, errorMessage) -{ - // determine if the start is smaller than the end - if ((type == "n") || (type == "c")) - { - // check invalid number - if (isNaN (DelocalizeNum(fvalue)) || isNaN(DelocalizeNum (minValue)) || isNaN(DelocalizeNum (tvalue)) || isNaN(DelocalizeNum (maxValue))) - { - alert ( L_BadNumber ); - return false; - } - // Is a number, or currency - if (eval (DelocalizeNum (fvalue)) > eval (DelocalizeNum (tvalue))) - { - alert(L_RangeError); - return false; - } - if (minValue.length>0 && maxValue.length>0){ - //check min and max - if (eval (DelocalizeNum (fvalue)) < eval (DelocalizeNum (minValue)) || eval (DelocalizeNum (tvalue)) > eval (DelocalizeNum (maxValue))) - { - alert (errorMessage); - return false; - } - } - } - else if (type == "d"){ - //Is a Date - var comp1 = NeutralDT2Date(fvalue); - var comp2 = NeutralDT2Date(tvalue); - if (comp1 > comp2){ - alert(L_RangeError); - return false; - } - //check min and max - if (minValue.length>0 && maxValue.length>0){ - var dMin = Date.parse(minValue); - var dMax = Date.parse(maxValue); - // since Date month as a value is from 0-11, the string represenatation as a value of 1-12, NeutralDT2Date handle it - // The number of milliseconds after midnight January 1, 1970 - // Set to GMT for consistent comparison on the client side - var offset1 = comp1.getTimezoneOffset()*60*1000; - var offset2 = comp2.getTimezoneOffset()*60*1000; - var dComp1 = Date.parse(comp1) - offset1; - var dComp2 = Date.parse(comp2) - offset2; - if (dComp1 < dMin || dComp2 > dMax) - { - alert (errorMessage); - return false; - } - } - }else if (type == "t"){ - //Is a Time - var comp1 = eval("new Date(0,0,0," + fvalue.substring(fvalue.indexOf('(') + 1, fvalue.indexOf(')') + 1)); - var comp2 = eval("new Date(0,0,0," + tvalue.substring(tvalue.indexOf('(') + 1, tvalue.indexOf(')') + 1)); - //var comp1 = NeutralDT2Date(fvalue); - //var comp2 = NeutralDT2Date(tvalue); - if (comp1 > comp2){ - alert(L_RangeError); - return false; - } - //check min and max - if (minValue.length>0 && maxValue.length>0){ - //getTimeFromIETFFormat to remove the difference of the year, month and day components - var tMinComponents = getTimeFromIETFFormat(minValue); - var tMaxComponents = getTimeFromIETFFormat(maxValue); - var tMinTEFT = eval("new Date(0,0,0," + tMinComponents[0] + "," + tMinComponents[1] + "," + tMinComponents[2] + ")"); - var tMaxTEFT = eval("new Date(0,0,0," + tMaxComponents[0] + "," + tMaxComponents[1] + "," + tMaxComponents[2] + ")"); - // check am or pm - var index1 = minValue.indexOf(" PM "); - if (index1>-1) - { - tMinTEFT.setTime(tMinTEFT.getTime()+(12*3600*1000)); - } - var index2 = maxValue.indexOf(" PM "); - if (index2>-1) - { - tMaxTEFT.setTime(tMaxTEFT.getTime()+(12*3600*1000)); - } - var tMin = Date.parse(tMinTEFT); - var tMax = Date.parse(tMaxTEFT); - // Both new Date() make consistent comparison on the client side - var tComp1 = Date.parse(comp1); - var tComp2 = Date.parse(comp2); - if (tComp1 < tMin || tComp2 > tMax) - { - alert (errorMessage); - return false; - } - } - }else if (type == "dt"){ - //Is a DateTime - var comp1 = NeutralDT2Date(fvalue); - var comp2 = NeutralDT2Date(tvalue); - if (comp1 > comp2){ - alert(L_RangeError); - return false; - } - //check min and max - if (minValue.length>0 && maxValue.length>0){ - var dtMin = Date.parse(minValue); - var dtMax = Date.parse(maxValue); - // since Date month as a value is from 0-11, the string represenatation as a value of 1-12, NeutralDT2Date handle it - // The number of milliseconds after midnight January 1, 1970 - // Set to GMT for consistent comparison on the client side - var offset1 = comp1.getTimezoneOffset()*60*1000; - var offset2 = comp2.getTimezoneOffset()*60*1000; - var dtComp1 = Date.parse(comp1) - offset1; - var dtComp2 = Date.parse(comp2) - offset2; - if (dtComp1 < dtMin || dtComp2 > dtMax) - { - alert (errorMessage); - return false; - } - } - } - else if (type == "text" || type == 's') - { - // is a string - if (fvalue.toLowerCase() > tvalue.toLowerCase()) - { - alert(L_RangeError); - return false; - } - if (minValue.length>0 && maxValue.length>0){ - //check min and max - if (fvalue.length < eval (DelocalizeNum (minValue)) || fvalue.length > eval (DelocalizeNum(maxValue)) || tvalue.length > eval (DelocalizeNum (maxValue)) || tvalue.length < eval (DelocalizeNum (minValue))) - { - alert (errorMessage); - return false; - } - } - } - // otherwise, let it go - - return true; -} - -function DelocalizeNum(value) -{ - // trim spaces first - var numStr = value.replace(/\s/g, ""); - - // get rid of grouping first - var tempStr = ""; - var index = numStr.indexOf(groupSep); - - while (index != -1) - { - tempStr += numStr.substr(0, index); - numStr = numStr.substr(index + groupSep.length, numStr.length - index - groupSep.length); - index = numStr.indexOf(groupSep); - } - - tempStr += numStr; - - index = tempStr.indexOf(decimalSep); - var neutralStr = ""; - if (index != -1) - { - neutralStr += tempStr.substr(0, index); - neutralStr += "."; - neutralStr += tempStr.substr(index + decimalSep.length, tempStr.length - index - decimalSep.length); - } - else - { - neutralStr = tempStr; - } - - return neutralStr; -} - -// Disable enter key checking for multibyte languages since the enter key is used for committing characters -var isEnabledLanguage = (! ((userLanguage == "ja") || (userLanguage == "ko") || (userLanguage == "zh")) ) - -var isNav = (navigator.appName == "Netscape"); -if (isEnabledLanguage) -{ - if(isNav) { - document.captureEvents(Event.KEYUP); - } - document.onkeyup = checkValue; -} - -function checkValue(evt) { - var buttonVal = ""; - if (isNav) { - if (evt.which == 13 && (evt.target.type == "text" || evt.target.type == "password")) { - buttonVal = evt.target.value; - } - } else { - if (window.event.keyCode == 13 && (window.event.srcElement.type == "text" || window.event.srcElement.type == "password")) { - buttonVal = window.event.srcElement.value; - } - } - - if (buttonVal != "") { - submitValues (); - } -} - -// To retrieve Time components of IETF format -function getTimeFromIETFFormat (strIETF) { - - var components = strIETF.split(" "); - for (var i=0; i1) { - return y; - } - } -} diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/swfobject/swfobject.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/js/swfobject/swfobject.js deleted file mode 100644 index c3831232b..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/js/swfobject/swfobject.js +++ /dev/null @@ -1,5 +0,0 @@ -/* SWFObject v2.0 - Copyright (c) 2007 Geoff Stearns, Michael Williams, and Bobby van der Sluis - This software is released under the MIT License -*/ -var swfobject=function(){var Z="undefined",P="object",B="Shockwave Flash",h="ShockwaveFlash.ShockwaveFlash",W="application/x-shockwave-flash",K="SWFObjectExprInst",G=window,g=document,N=navigator,f=[],H=[],Q=null,L=null,T=null,S=false,C=false;var a=function(){var l=typeof g.getElementById!=Z&&typeof g.getElementsByTagName!=Z&&typeof g.createElement!=Z&&typeof g.appendChild!=Z&&typeof g.replaceChild!=Z&&typeof g.removeChild!=Z&&typeof g.cloneNode!=Z,t=[0,0,0],n=null;if(typeof N.plugins!=Z&&typeof N.plugins[B]==P){n=N.plugins[B].description;if(n){n=n.replace(/^.*\s+(\S+\s+\S+$)/,"$1");t[0]=parseInt(n.replace(/^(.*)\..*$/,"$1"),10);t[1]=parseInt(n.replace(/^.*\.(.*)\s.*$/,"$1"),10);t[2]=/r/.test(n)?parseInt(n.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof G.ActiveXObject!=Z){var o=null,s=false;try{o=new ActiveXObject(h+".7")}catch(k){try{o=new ActiveXObject(h+".6");t=[6,0,21];o.AllowScriptAccess="always"}catch(k){if(t[0]==6){s=true}}if(!s){try{o=new ActiveXObject(h)}catch(k){}}}if(!s&&o){try{n=o.GetVariable("$version");if(n){n=n.split(" ")[1].split(",");t=[parseInt(n[0],10),parseInt(n[1],10),parseInt(n[2],10)]}}catch(k){}}}}var v=N.userAgent.toLowerCase(),j=N.platform.toLowerCase(),r=/webkit/.test(v)?parseFloat(v.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,i=false,q=j?/win/.test(j):/win/.test(v),m=j?/mac/.test(j):/mac/.test(v);/*@cc_on i=true;@if(@_win32)q=true;@elif(@_mac)m=true;@end@*/return{w3cdom:l,pv:t,webkit:r,ie:i,win:q,mac:m}}();var e=function(){if(!a.w3cdom){return }J(I);if(a.ie&&a.win){try{g.write(" - - - - - - - WebForm1 - - -
    - - -
    - - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/preview.jsp b/aspnet_client/system_web/4_6_81/crystalreportviewers/preview.jsp deleted file mode 100644 index acea7aadb..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/preview.jsp +++ /dev/null @@ -1,124 +0,0 @@ -<%@ page session="true"%> - -<%@ page import="java.io.*, - java.util.Locale, - com.crystaldecisions.client.helper.ResourceManager, - com.crystaldecisions.report.web.viewer.CrystalReportViewer, - com.crystaldecisions.sdk.occa.report.reportsource.IReportSource, - com.crystaldecisions.xml.serialization.*" %> -<% -String CLOSED_RPT_ID = "closedreportid"; -String RPT_ID = "reportid"; -String RPT_SOURCE = "reportsource"; -String PRODUCT_LOCALE = "language"; - -String closeRptID = request.getParameter(CLOSED_RPT_ID); -String reportID = request.getParameter(RPT_ID); -String serializedRptSrc = request.getParameter(RPT_SOURCE); -String productLocale = request.getParameter(PRODUCT_LOCALE); - -if (closeRptID != null && closeRptID.length() > 0) -{ - // Clear the report source in session with the given closedreportid - session.removeAttribute(closeRptID); -} - -if (reportID != null && reportID.length() > 0) -{ - CrystalReportViewer viewer = new CrystalReportViewer(); - viewer.setName("htmlpreview"); - viewer.setHasRefreshButton(false); - viewer.setHasExportButton(false); - viewer.setHasPrintButton(false); - viewer.setOwnForm(true); - viewer.setOwnPage(true); - - if (productLocale != null && productLocale.length() > 0) - { - String[] localeParts = productLocale.split("[_\\-]"); - if (localeParts.length > 0) - { - Locale locale = null; - if (1 == localeParts.length) - { - locale = new Locale(localeParts[0] /*language*/); - } - else if (2 == localeParts.length) - { - locale = new Locale(localeParts[0], // language - localeParts[1]); // country - } - else - { - locale = new Locale(localeParts[0], // language - localeParts[1], // country - localeParts[2]); // variant - } - viewer.setProductLocale(locale); - } - } - - - IReportSource reportSource = null; - - if (serializedRptSrc != null && serializedRptSrc.length() > 0) - { - // Got a seralizedRprtSrc string - // need to deserialize the report source string and pass to viewer - byte[] byteRptSrc = serializedRptSrc.getBytes(); - ByteArrayInputStream byteInStream = new ByteArrayInputStream(byteRptSrc); - - try - { - XMLObjectSerializer serializer = new XMLObjectSerializer(); - SaveOption saveOpt = serializer.getSaveOption(); - saveOpt.setExcludeNullObjects(true); - // Enabled since server is ready. - saveOpt.setSkipWritingIdenticalObject(true); - - reportSource = (IReportSource)serializer.load(byteInStream); - } - catch (Exception e) - { - out.write("Error deserializing report source."); - return; - } - finally - { - byteInStream.close(); - } - viewer.setReportSource(reportSource); - session.setAttribute(reportID, viewer.getReportSource()); - } - else - { - // Try to load report source from session - reportSource = (IReportSource) session.getAttribute(reportID); - if (reportSource == null) - { - Locale errLoc = viewer.getProductLocale(); - if (errLoc == null) - { - errLoc = request.getLocale(); - } - - String componentName = "crystalreportviewer"; - String sessionExpired = ResourceManager.getString(componentName, "Error_HtmlPreviewSessionTimeout", errLoc); - String needRefresh = ResourceManager.getString(componentName, "Error_HtmlPreviewNeedsRefresh", errLoc); - - out.write(""); - out.write(""); - return; - } - viewer.setReportSource(reportSource); - } - viewer.setURI(request.getRequestURI() + "?" + RPT_ID + "=" + reportID + "&" + PRODUCT_LOCALE + "=" + productLocale); - viewer.processHttpRequest(request, response, application, null); -} -%> - - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/processindicator.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/processindicator.js deleted file mode 100644 index b0c792b4e..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/processindicator.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof (dojo)!="undefined"){dojo.provide("MochiKit.Base")}if(typeof (MochiKit)=="undefined"){MochiKit={}}if(typeof (MochiKit.Base)=="undefined"){MochiKit.Base={}}MochiKit.Base.VERSION="1.4";MochiKit.Base.NAME="MochiKit.Base";MochiKit.Base.update=function(B,D){if(B===null){B={}}for(var C=1;CC){A=C}}G=[];for(E=0;E=0;H--){G=[E[H].apply(this,G)]}return G[0]}},bind:function(E,C){if(typeof (E)=="string"){E=C[E]}var D=E.im_func;var G=E.im_preargs;var B=E.im_self;var A=MochiKit.Base;if(typeof (E)=="function"&&typeof (E.apply)=="undefined"){E=A._wrapDumbFunction(E)}if(typeof (D)!="function"){D=E}if(typeof (C)!="undefined"){B=C}if(typeof (G)=="undefined"){G=[]}else{G=G.slice()}A.extend(G,arguments,2);var F=function(){var I=arguments;var J=arguments.callee;if(J.im_preargs.length>0){I=A.concat(J.im_preargs,I)}var H=J.im_self;if(!H){H=this}return J.im_func.apply(H,I)};F.im_self=B;F.im_func=D;F.im_preargs=G;return F},bindMethods:function(B){var D=MochiKit.Base.bind;for(var A in B){var C=B[A];if(typeof (C)=="function"){B[A]=D(C,B)}}},registerComparator:function(C,B,A,D){MochiKit.Base.comparatorRegistry.register(C,B,A,D)},_primitives:{"boolean":true,string:true,number:true},compare:function(F,B){if(F==B){return 0}var E=(typeof (F)=="undefined"||F===null);var G=(typeof (B)=="undefined"||B===null);if(E&&G){return 0}else{if(E){return -1}else{if(G){return 1}}}var A=MochiKit.Base;var D=A._primitives;if(!(typeof (F) in D&&typeof (B) in D)){try{return A.comparatorRegistry.match(F,B)}catch(H){if(H!=A.NotFound){throw H}}}if(FB){return 1}}var C=A.repr;throw new TypeError(C(F)+" and "+C(B)+" can not be compared")},compareDateLike:function(B,A){return MochiKit.Base.compare(B.getTime(),A.getTime())},compareArrayLike:function(B,A){var F=MochiKit.Base.compare;var E=B.length;var G=0;if(E>A.length){G=1;E=A.length}else{if(E=0;C--){D+=F[C]}}else{D+=F}}if(E<=0){throw new TypeError("mean() requires at least one argument")}return D/E},median:function(){var B=MochiKit.Base.flattenArguments(arguments);if(B.length===0){throw new TypeError("median() requires at least one argument")}B.sort(compare);if(B.length%2==0){var A=B.length/2;return(B[A]+B[A-1])/2}else{return B[(B.length-1)/2]}},findValue:function(A,E,F,B){if(typeof (B)=="undefined"||B===null){B=A.length}if(typeof (F)=="undefined"||F===null){F=0}var D=MochiKit.Base.compare;for(var C=F;C0))){var G=MochiKit.DOM.formContents(H);H=G[0];I=G[1]}else{if(arguments.length==1){var A=H;H=[];I=[];for(var B in A){var J=A[B];if(typeof (J)!="function"){H.push(B);I.push(J)}}}}var E=[];var F=Math.min(H.length,I.length);var C=MochiKit.Base.urlEncode;for(var D=0;D=0)||(_userAgent.indexOf("applewebkit")>=0);_mac=(_appVer.indexOf("macintosh")>=0)||(_appVer.indexOf("macos")>=0);_opera=(_userAgent.indexOf("opera")!=-1);_userAgent=navigator.userAgent?navigator.userAgent.toLowerCase():null;_ctrl=0;_shift=1;_alt=2;var docMode=document.documentMode;var _ie6Up=(docMode>=6);var _ie8Up=(docMode>=8);var _ie10Up=(docMode>=10);var _ie11Up=(docMode>=11);_moz=_dom&&!_ie&&!_ie11Up;_saf=_moz&&(_userAgent.indexOf("safari")>=0);_small=(screen.height<=600);_curDoc=document;_curWin=self;_tooltipWin=self;_tooltipDx=0;_tooltipDy=0;_codeWinName="_CW";_leftBtn=(_ie||_saf)?1:0;_preloadArr=new Array;_widgets=new Array;_resizeW=_ie6Up?"col-resize":"E-resize";_resizeH=_ie6Up?"row-resize":"S-resize";_ddData=new Array;_dontNeedEncoding=null;_thex=null;_defaultButtonWidth=60;function initDom(D,C,E,B,A){_skin=D;_lang=E;_style=C;if(B){_curWin=B;_curDoc=B.document}_tooltipWin=_curWin;if(A){_codeWinName="_CW"+A}_curWin[_codeWinName]=self}function styleSheet(){includeCSS("style")}function isLayerDisplayed(A){var B=A?A.style:null;if(B){if(B.display=="none"||B.visibility=="hidden"){return false}else{var C=A.parentNode;if(C!=null){return isLayerDisplayed(C)}else{return true}}}else{return true}}function safeSetFocus(A){if(A&&A.focus&&isLayerDisplayed(A)){A.focus()}}function newWidget(B){var A=new Object;A.id=B;A.layer=null;A.css=null;A.getHTML=Widget_getHTML;A.beginHTML=Widget_getHTML;A.endHTML=Widget_getHTML;A.write=Widget_write;A.begin=Widget_begin;A.end=Widget_end;A.init=Widget_init;A.move=Widget_move;A.resize=Widget_resize;A.setBgColor=Widget_setBgColor;A.show=Widget_show;A.getWidth=Widget_getWidth;A.getHeight=Widget_getHeight;A.setHTML=Widget_setHTML;A.setDisabled=Widget_setDisabled;A.focus=Widget_focus;A.setDisplay=Widget_setDisplay;A.isDisplayed=Widget_isDisplayed;A.appendHTML=Widget_appendHTML;A.setTooltip=Widget_setTooltip;A.initialized=Widget_initialized;A.widx=_widgets.length;_widgets[A.widx]=A;return A}function new_Widget(A){return newWidget(A.id)}function getEvent(B,A){if(_ie&&(B==null)){B=A?A.event:_curWin.event}return B}function Widget_param(C,B,A){var D=C?C[B]:null;return D==null?A:D}function Widget_appendHTML(){append(_curDoc.body,this.getHTML())}function Widget_getHTML(){return""}function Widget_write(A){_curDoc.write(this.getHTML(A))}function Widget_begin(){_curDoc.write(this.beginHTML())}function Widget_end(){_curDoc.write(this.endHTML())}function Widget_init(){var A=this;A.layer=getLayer(A.id);A.css=A.layer.style;A.layer._widget=A.widx;if(A.initialHTML){A.setHTML(A.initialHTML)}}function Widget_move(A,C){var B=this.css;if(A!=null){if(_moz){B.left=""+A+"px"}else{B.pixelLeft=A}}if(C!=null){if(_moz){B.top=""+C+"px"}else{B.pixelTop=C}}}function Widget_focus(){safeSetFocus(this.layer)}function Widget_setBgColor(A){this.css.backgroundColor=A}function Widget_show(A){this.css.visibility=A?_show:_hide}function Widget_getWidth(){return this.layer.offsetWidth}function Widget_getHeight(){return this.layer.offsetHeight}function Widget_setHTML(A){var B=this;if(B.layer){B.layer.innerHTML=A}else{B.initialHTML=A}}function Widget_setDisplay(A){if(this.css){this.css.display=A?"":"none"}}function Widget_isDisplayed(){if(this.css.display=="none"){return false}else{return true}}function Widget_setDisabled(A){if(this.layer){this.layer.disabled=A}}function Widget_resize(A,B){if(A!=null){this.css.width=""+(Math.max(0,A))+"px"}if(B!=null){this.css.height=""+(Math.max(0,B))+"px"}}function Widget_setTooltip(A){this.layer.title=A}function Widget_initialized(){return this.layer!=null}function newGrabberWidget(A,D,G,F,H,E,C,B,I){o=newWidget(A);o.resizeCB=D;o.x=G;o.y=F;o.w=H;o.h=E;o.dx=0;o.dy=0;o.min=null;o.max=null;o.isHori=C;o.preloaded=new Image;o.preloaded.src=_skin+"../resizepattern.gif";o.buttonCB=B;o.allowGrab=true;o.collapsed=false;o.isFromButton=false;o.showGrab=GrabberWidget_showGrab;o.setCollapsed=GrabberWidget_setCollapsed;o.tooltipButton=I;o.getHTML=GrabberWidget_getHTML;o.enableGrab=GrabberWidget_enableGrab;o.setMinMax=GrabberWidget_setMinMax;if(window._allGrabbers==null){window._allGrabbers=new Array}o.index=_allGrabbers.length;_allGrabbers[o.index]=o;o.buttonLyr=null;o.setButtonImage=GrabberWidget_setButtonImage;o.getImgOffset=GrabberWidget_getImgOffset;return o}function GrabberWidget_setCollapsed(B,A){this.collapsed=B;this.setButtonImage(false,A)}function GrabberWidget_getImgOffset(A){var B=this;if(B.isHori){B.dx=(B.collapsed?12:0)+(A?6:0);B.dy=0}else{B.dy=(B.collapsed?12:0)+(A?6:0);B.dx=0}}function GrabberWidget_setButtonImage(A,B){var C=this;C.getImgOffset(A);C.tooltipButton=B;if(C.layer){if(C.buttonLyr==null){C.buttonLyr=getLayer("grabImg_"+C.id)}if(C.buttonLyr){changeSimpleOffset(C.buttonLyr,C.dx,C.dy,null,B)}}}function GrabberWidget_enableGrab(A){var B=this;B.allowGrab=A;if(B.css){B.css.cursor=B.allowGrab?(B.isHori?_resizeW:_resizeH):"default"}}function GrabberWidget_getHTML(){var B=this;var A=B.isHori?_resizeW:_resizeH;var D='onselectstart="return false" ondragstart="return false" onmousedown="'+_codeWinName+".GrabberWidget_down(event,'"+B.index+"',this);return false;\"";var C=_ie?(''):('');return getBGIframe("grabIframe_"+B.id)+C+'
    '}function GrabberWidget_setMinMax(B,A){this.min=B;this.max=A}function GrabberWidget_button(e,index,lyr){var o=_allGrabbers[index];o.isFromButton=true;lyr.onmouseup=eval("_curWin."+_codeWinName+".GrabberWidget_buttonup")}function GrabberWidget_buttonover(C,B,A){var D=_allGrabbers[B];D.setButtonImage(true)}function GrabberWidget_buttonout(C,B,A){var D=_allGrabbers[B];D.setButtonImage(false)}function GrabberWidget_buttonup(A){GrabberWidget_up(A)}function GrabberWidget_showGrab(){var D=this,C=D.mod,E=D.iframe,B=D.layer.style,A=C.style;E.setDisplay(true)}function GrabberWidget_down(e,index,lyr){var o=_allGrabbers[index];window._theGrabber=o;if(o.mod==null){o.mod=getLayer("modal_"+o.id);o.iframe=newWidget("grabIframe_"+o.id);o.iframe.init()}o.mod.onmousemove=eval("_curWin."+_codeWinName+".GrabberWidget_move");o.mod.onmouseup=eval("_curWin."+_codeWinName+".GrabberWidget_up");o.grabStartPosx=parseInt(lyr.style.left);o.grabStartPosy=parseInt(lyr.style.top);o.grabStartx=eventGetX(e);o.grabStarty=eventGetY(e);var mod=o.mod,ifr=o.iframe,stl=o.layer.style,st=mod.style;stl.backgroundImage="url('"+_skin+"../resizepattern.gif')";o.prevZ=stl.zIndex;stl.zIndex=9999;ifr.css.zIndex=9998;st.width="100%";st.height="100%";mod.style.display="block";var p=getPos(o.layer);ifr.move(p.x,p.y);ifr.resize(o.getWidth(),o.getHeight());if(!o.isFromButton){o.showGrab()}return false}function GrabberWidget_move(F){var C=_theGrabber,E=C.layer,H=C.mod;if(C.isFromButton){if(C.isHori){var I=eventGetX(F),D=C.grabStartx;if((ID+3)){C.isFromButton=false}}else{var A=eventGetY(F),B=C.grabStarty;if((GB+3)){C.isFromButton=false}}if(!C.isFromButton){C.showGrab()}}if(!C.isFromButton){if(C.allowGrab){var I=C.isHori?Math.max(0,C.grabStartPosx-C.grabStartx+eventGetX(F)):null;var G=C.isHori?null:Math.max(0,C.grabStartPosy-C.grabStarty+eventGetY(F));if(C.isHori){if(C.min!=null){I=Math.max(I,C.min)}if(C.max!=null){I=Math.min(I,C.max)}}else{if(C.min!=null){G=Math.max(G,C.min)}if(C.max!=null){G=Math.min(G,C.max)}}eventCancelBubble(F);C.move(I,G);getPos(C.layer);if(C.buttonCB){var J=C.buttonLyr.style;if(J.display!="none"){J.display="none"}}C.iframe.move(I,G)}}}function GrabberWidget_up(E){var F=_theGrabber,B=F.layer,D=F.mod,C=B.style;C.backgroundImage="";C.zIndex=F.prevZ;var G=F.iframe;G.move(-100,-100);G.resize(1,1);G.setDisplay(false);eventCancelBubble(E);var A=D.style;A.display="none";A.width="0px";A.height="0px";if(F.buttonCB){F.buttonLyr.style.display=""}if(F&&(F.isFromButton)){if(F.buttonCB){F.buttonCB()}F.isFromButton=false}if(F.allowGrab&&(!F.isFromButton)){if(F.resizeCB){F.resizeCB(parseInt(B.style.left),parseInt(B.style.top))}}}function newButtonWidget(C,L,H,D,F,Q,G,I,B,M,K,P,N,J,A,O){var E=newWidget(C);E.label=L;E.cb=H;E.width=D;E.hlp=F;E.tooltip=Q;E.tabIndex=G;E.isGray=false;E.isDefault=false;E.txt=null;E.icn=null;E.margin=I?I:0;E.extraStyle="";E.isDelayCallback=true;if(B){E.url=B;E.w=M;E.h=K;E.dx=P;E.dy=N;E.disDx=(A!=null)?A:P;E.disDy=(O!=null)?O:N;E.imgRight=J?true:false}E.getHTML=ButtonWidget_getHTML;E.setDisabled=ButtonWidget_setDisabled;E.setText=ButtonWidget_setText;E.changeImg=ButtonWidget_changeImg;E.oldInit=E.init;E.init=ButtonWidget_init;E.isDisabled=ButtonWidget_isDisabled;E.setDefaultButton=ButtonWidget_setDefaultButton;E.executeCB=ButtonWidget_executeCB;E.setTooltip=ButtonWidget_setTooltip;E.setDelayCallback=ButtonWidget_setDelayCallback;E.instIndex=ButtonWidget_currInst;ButtonWidget_inst[ButtonWidget_currInst++]=E;return E}ButtonWidget_inst=new Array;ButtonWidget_currInst=0;function ButtonWidget_getHTML(){with(this){var clk=_codeWinName+".ButtonWidget_clickCB("+this.instIndex+');return false;"';var clcbs='onclick="'+clk+'" ';if(_ie){clcbs+='ondblclick="'+clk+'" '}var isDefaultSty=(this.isDefault&&!this.isGray);clcbs+='onkeydown=" return '+_codeWinName+".ButtonWidget_keydownCB(event,"+this.instIndex+');" ';var url1=_skin+"button.gif",addPar=' style="'+extraStyle+"cursor:"+_hand+";margin-left:"+margin+"px; margin-right:"+margin+'px; "'+clcbs+" ",tip=attr("title",tooltip),idText="theBttn"+id,idIcon="theBttnIcon"+id;var bg=backImgOffset(url1,0,isDefaultSty?105:42);var lnkB="';var l=(label!=null);var im=(this.url?(''+(l?"":lnkB)+simpleImgOffset(url,w,h,this.isGray?disDs:dx,this.isGray?disDy:dy,idIcon,null,(l?"":tooltip),"cursor:"+_hand)+(l?"":"")+""):"");return''+(this.imgRight?"":im)+(l?(""):"")+(this.imgRight?im:"")+'
    '+lnkB+label+"
    '}}function ButtonWidget_setDelayCallback(A){this.isDelayCallback=(A==true)}function ButtonWidget_setDisabled(F){var E=this,D=F?"default":_hand;E.isGray=F;if(E.layer){var B=F?"wizbuttongray":"wizbutton";if(E.txt.className!=B){E.txt.className=B;E.txt.style.cursor=D;E.css.cursor=D;if(E.icn){changeSimpleOffset(E.icn,E.isGray?E.disDx:E.dx,E.isGray?E.disDy:E.dy);E.icn.style.cursor=D}if(E.isDefault){var A=!F,C=_skin+"button.gif";changeSimpleOffset(E.leftImg,0,A?63:0,C);changeOffset(E.centerImg,0,A?105:42,C);changeSimpleOffset(E.rightImg,0,A?84:21,C)}}}}function ButtonWidget_setDefaultButton(){var C=this;if(C.layer){var A=!C.isGray,B=_skin+"button.gif";changeSimpleOffset(C.leftImg,0,A?63:0,B);changeOffset(C.centerImg,0,A?105:42,B);changeSimpleOffset(C.rightImg,0,A?84:21,B)}C.isDefault=true}function ButtonWidget_isDisabled(){return this.isGray}function ButtonWidget_setText(A){this.txt.innerHTML=convStr(A)}function ButtonWidget_setTooltip(A){var B=this;B.tooltip=A;B.layer.title=A;if(B.txt){B.txt.title=A}if(B.icn){B.icn.title=A}}function ButtonWidget_init(){var B=this;B.oldInit();B.txt=getLayer("theBttn"+this.id);B.icn=getLayer("theBttnIcon"+this.id);B.leftImg=getLayer("theBttnLeftImg"+this.id);B.centerImg=getLayer("theBttnCenterImg"+this.id);B.rightImg=getLayer("theBttnRightImg"+this.id);var A=B.isGray?"wizbuttongray":"wizbutton";if(B.txt.className!=A){B.setDisabled(B.isGray)}}function ButtonWidget_changeImg(B,A,E,D,C,F){var G=this;if(C){G.url=C}if(B!=null){G.dx=B}if(A!=null){G.dy=A}if(E!=null){G.disDx=E}if(D!=null){G.disDy=D}if(F!=null){G.tooltip=F}if(G.icn){changeSimpleOffset(G.icn,G.isGray?G.disDx:G.dx,G.isGray?G.disDy:G.dy,G.url,G.tooltip)}}function ButtonWidget_clickCB(A){var B=ButtonWidget_inst[A];if(B&&!B.isGray){if(B.isDelayCallback){setTimeout("ButtonWidget_delayClickCB("+A+")",1)}else{ButtonWidget_delayClickCB(A)}}}function ButtonWidget_delayClickCB(A){var B=ButtonWidget_inst[A];B.executeCB()}function ButtonWidget_executeCB(){var o=this;if(o.cb){if(typeof o.cb!="string"){o.cb()}else{eval(o.cb)}}}function ButtonWidget_keydownCB(D,B){var A=eventGetKey(D);var C=ButtonWidget_inst[B];if(A==13&&C.cb){eventCancelBubble(D)}return true}function newScrolledZoneWidget(G,C,E,B,D,A){var F=newWidget(G);F.borderW=C;F.padding=E;F.w=B;F.h=D;F.oldResize=F.resize;F.beginHTML=ScrolledZoneWidget_beginHTML;F.endHTML=ScrolledZoneWidget_endHTML;F.resize=ScrolledZoneWidget_resize;F.bgClass=(A)?A:"insetBorder";return F}function ScrolledZoneWidget_beginHTML(){var A=this.w,B=this.h;var C=_moz?2*(this.borderW+this.padding):0;if(typeof (A)=="number"){if(_moz){A=Math.max(0,A-C)}A=""+A+"px"}if(typeof (B)=="number"){if(_moz){B=Math.max(0,B-C)}B=""+B+"px"}return'
    '}function ScrolledZoneWidget_endHTML(){return"
    "}function ScrolledZoneWidget_resize(A,B){if(_moz){var C=2*(this.borderW+this.padding);if(A!=null){A=Math.max(0,A-C)}if(B!=null){B=Math.max(0,B-C)}}this.oldResize(A,B)}function newComboWidget(F,E,A,B,C){var D=newWidget(F);D.tooltip=C;D.size=1;D.getHTML=ComboWidget_getHTML;D.beginHTML=ComboWidget_beginHTML;D.endHTML=ComboWidget_endHTML;D.changeCB=E;D.noMargin=A;D.width=B==null?null:""+B+"px";D.add=ComboWidget_add;D.del=ComboWidget_del;D.getSelection=ComboWidget_getSelection;D.select=ComboWidget_select;D.valueSelect=ComboWidget_valueSelect;D.getCount=ComboWidget_getCount;D.oldSetDisabled=D.setDisabled;D.setDisabled=ComboWidget_setDisabled;D.setUndefined=ComboWidget_setUndefined;D.delByID=ComboWidget_delByID;D.findByValue=ComboWidget_findByValue;D.findByText=ComboWidget_findByText;D.getValue=ComboWidget_getValue;D.isGrayed=ComboWidget_isGrayed;D.clearSelection=ComboWidget_clearSelection;D.isDisabled=false;D.multi=false;D.undef=false;D.isCombo=true;D.undefId=D.id+"__undef";D.disabledId=D.id+"__disabled";return D}_extrCmbS=(_moz?"font-size:12px;":"");function ComboWidget_beginHTML(){var B=this,A=((_moz&&!B.isCombo)?"font-size:12px;":"");return""}function ComboWidget_getHTML(A){return this.beginHTML()+(A?A:"")+this.endHTML()}function ComboWidget_add(B,F,C,G,E){var D=this.layer,A=_curDoc.createElement("option");if(_ie){D.options.add(A)}else{D.appendChild(A)}if(A.innerText!=null){A.innerText=B}else{A.innerHTML=convStr(B)}A.value=F;if(G!=null){A.id=G}if(C){A.selected=true}if(E){A.style.color="gray"}return A}function ComboWidget_getSelection(){var C=this.layer,B=C.selectedIndex;if(B<0){return null}var A=new Object;A.index=B;A.value=C.options[B].value;A.text=C.options[B].text;return A}function ComboWidget_select(B){var D=this,C=D.layer,A=C.options.length;if(B==null){C.selectedIndex=-1}if((B<0)||(B>=A)){B=A-1}if(B>=0){C.selectedIndex=B}D.setUndefined(false)}function ComboWidget_valueSelect(B){var F=this,E=F.layer,D=E.options,A=D.length;for(var C=0;CA){return null}var B=new Object;B.index=C;B.value=E.options[C].value;return B}function ComboWidget_isGrayed(B){var E=this,D=E.layer,C=D.options,A=C.length;if(B==null||B<0||B>A){return false}return(D.options[B].style.color=="gray")}function newListWidget(A,F,E,B,J,I,G,D,H){var C=newComboWidget(A,F,true,B,I);C.clickCB=H;C.dblClickCB=G;C.keyUpCB=D;C.size=J;C.multi=E;C.getMultiSelection=ListWidget_getMultiSelection;C.setUndefined=ListWidget_setUndefined;C.isUndefined=ListWidget_isUndefined;C.change=ListWidget_change;C.isCombo=false;return C}function ListWidget_setUndefined(A){var B=this;B.undef=A;if(A==true){B.layer.selectedIndex=-1}}function ListWidget_isUndefined(){return(this.layer.selectedIndex==-1)}function ListWidget_getMultiSelection(){var F=this.layer,E=new Array,A=F.options.length;for(var D=0;D'+img(_skin+"../help.gif",16,16,"top",null,_helpLab)+''+convStr(A.title)+''+convStr(A.boldTitle)+"
    "+getSpace(1,2)+'
    '+convStr(A.text,false,true)+"
    "}function InfoWidget_resize(B,C){var D=this;if(B!=null){D.w=B}if(C!=null){D.h=C}D.oldResize(B,C);if(D.layer){var A=D.textLayer;if(A==null){A=D.textLayer=getLayer("infozone_"+D.id)}if(A){if(D.h!=null){A.style.height=""+Math.max(0,D.h-(_ie?18:28))+"px"}}}}function newCheckWidget(A,H,F,E,I,G,D,C){var B=newWidget(A);B.text=H;B.convText=C;B.changeCB=F;B.idCheckbox="check_"+A;B.checkbox=null;B.kind="checkbox";B.name=B.idCheckbox;B.bold=E;B.imgUrl=I;B.imgW=G;B.imgH=D;B.getHTML=CheckWidget_getHTML;B.setText=CheckWidget_setText;B.parentInit=Widget_init;B.init=CheckWidget_init;B.check=CheckWidget_check;B.isChecked=CheckWidget_isChecked;B.setDisabled=CheckWidget_setDisabled;B.isDisabled=CheckWidget_isDisabled;B.uncheckOthers=CheckWidget_uncheckOthers;B.isIndeterminate=CheckWidget_isIndeterminate;B.setIndeterminate=CheckWidget_setIndeterminate;B.layerClass=("dialogzone"+(B.bold?"bold":""));B.nobr=true;return B}function CheckWidget_getHTML(){var B=this,A=B.layerClass;return'"+(B.imgUrl?'":"")+"
    "+(B.nobr?"":"")+'"+(B.nobr?"":"")+"
    "}function CheckWidget_setText(A){var B=this;B.text=A;if(B.layer){if(B.labelLyr==null){B.labelLyr=getLayer("label_"+B.id)}B.labelLyr.innerHTML=B.convText?convStr(A):A}}function CheckWidget_init(){this.parentInit();this.checkbox=getLayer(this.idCheckbox)}function CheckWidget_check(A){this.checkbox.checked=A;if(A){this.uncheckOthers()}}function CheckWidget_isChecked(){return this.checkbox.checked}function CheckWidget_changeCB(B,A){var C=getWidget(A);C.uncheckOthers();if(C.changeCB){C.changeCB(B)}}function CheckWidget_setDisabled(A){this.checkbox.disabled=A;if(_moz){this.checkbox.className=(A?"dialogzone":"")}}function CheckWidget_isDisabled(){return this.checkbox.disabled}function CheckWidget_uncheckOthers(){}function CheckWidget_isIndeterminate(){return this.checkbox.indeterminate}function CheckWidget_setIndeterminate(A){this.checkbox.indeterminate=A}function newRadioWidget(A,I,J,G,F,K,H,D,C){var B=newCheckWidget(A,J,G,F,K,H,D,C);B.kind="radio";B.name=I;if(_RadioWidget_groups[I]==null){_RadioWidget_groups[I]=new Array}B.groupInstance=_RadioWidget_groups[I];var E=B.groupInstance;B.groupIdx=E.length;E[E.length]=B;B.uncheckOthers=RadioWidget_uncheckOthers;return B}var _RadioWidget_groups=new Array;function RadioWidget_uncheckOthers(){var D=this.groupInstance,B=this.groupIdx,A=D.length;for(var C=0;C'}function TextFieldWidget_getValue(){var A=this;if(A.isHelpTxt){return""}else{return A.layer?A.layer.value:A.oldValue}}function TextFieldWidget_setValue(A){var B=this;if(B.layer){B.eraseHelpTxt();B.layer.value=""+A}else{B.oldValue=A}}function TextFieldWidget_changeCB(B,A){var C=getWidget(A);C.eraseHelpTxt();if(C.beforeChange){C.beforeChange()}if(C.changeCB){C.changeCB(B)}}function TextFieldWidget_keyPressCB(B,A){var C=getWidget(A);if(eventGetKey(B)==13){C.enterKeyPressed=true;return false}else{C.enterKeyPressed=false}return true}function TextFieldWidget_keyUpCB(B,A){var C=getWidget(A);C.eraseHelpTxt();if(eventGetKey(B)==13&&C.enterKeyPressed){if(C.beforeChange){C.beforeChange()}if(C.enterCB){if(C.enterCancelBubble){eventCancelBubble(B)}C.enterCB(B)}return false}else{if(C.keyUpCB){C.keyUpCB(B)}}C.enterKeyPressed=false;return true}function TextFieldWidget_keyDownCB(B,A){var C=getWidget(A);C.eraseHelpTxt();C.enterKeyPressed=false;if(eventGetKey(B)==13){return true}else{if(eventGetKey(B)==8){eventCancelBubble(B)}}return true}function TextFieldWidget_eraseHelpTxt(){var A=this;if(A.isHelpTxt){A.layer.value=""}A.isHelpTxt=false;A.layer.style.color="black"}function TextFieldWidget_focus(A){var B=getWidget(A);B.eraseHelpTxt();if(B.focusCB){B.focusCB()}}function TextFieldWidget_blur(A){var B=getWidget(A);if(B.beforeChange){B.beforeChange()}if(B.blurCB){B.blurCB()}}function TextFieldWidget_intValue(A){var B=parseInt(this.getValue());return isNaN(B)?A:B}function TextFieldWidget_intPosValue(A){var B=this.intValue(A);return(B<0)?A:B}function TextFieldWidget_select(){this.layer.select()}function TextFieldWidget_setHelpTxt(A){var B=this;B.helpTxt=A;if(B.layer&&(B.layer.value=="")){B.isHelpTxt=true;B.layer.value=A;B.layer.style.color="#808080"}}function newIntFieldWidget(C,G,I,F,H,B,J,D,A){var E=newTextFieldWidget(C,G,I,F,H,B,J,D);E.min=-Number.MAX_VALUE;E.max=Number.MAX_VALUE;E.customCheckCB=A;E.setMin=IntFieldWidget_setMin;E.setMax=IntFieldWidget_setMax;E.setValue=IntFieldWidget_setValue;E.beforeChange=IntFieldWidget_checkChangeCB;E.value="";return E}function IntFieldWidget_setMin(A){if(!isNaN(A)){this.min=A}}function IntFieldWidget_setMax(A){if(!isNaN(A)){this.max=A}}function IntFieldWidget_setValue(B){var C=this,A=C.layer;B=""+B;if(B==""){if(A){A.value=""}C.oldValue="";return }var D=parseInt(B);value="";if(!isNaN(D)&&(D>=C.min)&&(D<=C.max)&&((C.customCheckCB==null)||C.customCheckCB(D))){value=D;C.oldValue=value}else{if(C.oldValue){value=C.oldValue}}if(A){A.value=""+value}}function IntFieldWidget_checkChangeCB(){var A=this;A.setValue(A.layer.value)}function newFrameZoneWidget(E,A,C,B){var D=newWidget(E);D.w=(A!=null)?""+Math.max(0,A-10)+"px":null;D.h=(C!=null)?""+Math.max(0,C-10)+"px":null;D.reverse=(B!=null)?B:false;D.cont=null;D.beginHTML=FrameZoneWidget_beginHTML;D.endHTML=FrameZoneWidget_endHTML;D.oldResize=D.resize;D.resize=FrameZoneWidget_resize;return D}function FrameZoneWidget_resize(A,B){var D=this;var C=D.layer.display!="none";if(C&_moz&&!_saf){D.setDisplay(false)}D.oldResize(A,B);if(C&_moz&&!_saf){D.setDisplay(true)}}function FrameZoneWidget_beginHTML(){var A=this;return'
    '}function FrameZoneWidget_endHTML(){var A=this;return"
    "}function arrayAdd(E,G,D,B){var F=E[G],A=F.length;if((B==null)||(typeof B!="number")){B=-1}if((B<0)||(B>A)){B=A}if(B!=A){var C=F.slice(B);F.length=B+1;F[B]=D;F=F.concat(C)}else{F[B]=D}E[G]=F;return B}function arrayRemove(D,F,A){var E=D[F],C=E.length-1;if(A==null){E.length=0;D[F]=E;return -1}if((A<0)||(A>C)){return -1}if(A==C){E.length=C}else{var B=E.slice(A+1);E.length=A;E=E.concat(B)}D[F]=E;return A}function getFrame(name,par){if(par==null){par=self}var frames=par.frames,w=eval("frames."+name);if(w==null){return w}var l=frames.length;for(var i=0;i/g,">").replace(/"/g,""");if(A){B=B.replace(/ /g," ")}if(C){B=B.replace(/\n/g,"
    ")}return B}function escapeCR(B){B=""+B;var A=B.replace(/\r/g,"").replace(/\n/g,"\\n");return A}function addDblClickCB(B,A){if(B.addEventListener&&!_saf){B.addEventListener("dblclick",A,false)}else{B.ondblclick=A}}function img(E,A,C,F,B,D){B=(B?B:"");if(D==null){D=""}return""}function imgOffset(A,G,D,J,I,B,F,C,H,E){return img(_skin+"../transp.gif",G,D,E,(F?F:"")+" "+attr("id",B)+' style="float:left;'+backImgOffset(A,J,I)+(H?H:"")+'"',C)}function simpleImgOffset(A,G,D,J,I,B,F,C,H,E){if(_ie){if(J==null){J=0}if(I==null){I=0}return"
    '+img(A,null,null,(E?E:"top"),'style="margin:0px;position:relative;top:'+(-I)+"px;left:"+(-J)+'px" tabIndex="-1"',C)+"
    "}else{return imgOffset(A,G,D,J,I,B,F,C,H,E)}}function changeSimpleOffset(E,B,A,D,F){if(_ie){E=E.childNodes[0];var C=E.style;if((D!=null)&&(D!=E.src)){E.src=D}if(B!=null){C.left=""+(-B)+"px"}if(A!=null){C.top=""+(-A)+"px"}if(F!=null){E.title=F;E.alt=F}}else{changeOffset(E,B,A,D,F)}}function backImgOffset(C,B,A){return"background-image:url('"+C+"');background-position:"+(-B)+"px "+(-A)+"px;"}function changeOffset(E,B,A,D,F){var C=E.style;if(C){if((B!=null)&&(A!=null)){C.backgroundPosition=""+(-B)+"px "+(-A)+"px"}if(D){C.backgroundImage="url('"+D+"')"}}if(F){E.title=F}}function includeCSS(B,C){if(typeof (_skin)=="string"&&_skin!=""){var A="";if(C){A=_skin+"../"+B}else{A=_skin+B}A+=".css";_curDoc.write('')}}function getLayer(A){return _curDoc.getElementById(A)}function setLayerTransp(A,B){if(_ie){A.style.filter=(B==null)?"":"progid:DXImageTransform.Microsoft.Alpha( style=0,opacity="+B+")"}else{A.style.MozOpacity=(B==null)?1:B/100}}function getPos(B,A){A=A?A:null;for(var D=0,C=0;(B!=null)&&(B!=A);D+=B.offsetLeft,C+=B.offsetTop,B=B.offsetParent){}return{x:D,y:C}}function getPos2(B,A){var A=A?A:null;var D=0;var C=0;while(B.parentNode||B.offsetParent){if(B.offsetParent){D+=B.offsetLeft;C+=B.offsetTop;B=B.offsetParent}else{if(B.parentNode){if(B.style){if(B.style.left){D+=B.style.left}if(B.style.top){C+=B.style.top}}B=B.parentNode}else{break}}}if(A){relToCord=getPos2(A);D-=relToCord.x;C-=relToCord.y}return{x:D,y:C}}function getPosScrolled(C,B){B=B?B:null;if(_ie){for(var E=0,D=0;(C!=null)&&(C!=B);E+=C.offsetLeft-C.scrollLeft,D+=C.offsetTop-C.scrollTop,C=C.offsetParent){}}else{var A=C;for(var E=0,D=0;(C!=null)&&(C!=B);E+=C.offsetLeft,D+=C.offsetTop,C=C.offsetParent){}for(C=A;(C!=null)&&(C!=B);C=C.parentNode){if(C.scrollLeft!=null){E-=C.scrollLeft;D-=C.scrollTop}}}E+=getScrollX();D+=getScrollY();return{x:E,y:D}}function getWidget(B){if(B==null){return null}var A=B._widget;if(A!=null){return _widgets[A]}else{return getWidget(B.parentNode)}}function getWidgetFromID(B){if(B==null){return null}var A=getLayer(B);return getWidget(A)}function attr(A,B){return(B!=null?" "+A+'="'+B+'" ':"")}function sty(A,B){return(B!=null?A+":"+B+";":"")}function getSep(B,A){if(B==null){B=0}var C=B>0?''+getSpace(B,1)+"":"";return''+C+''+C+"
    "}function writeSep(B,A){_curDoc.write(getSep(B,A))}function getSpace(A,B){return'
    '+img(_skin+"../transp.gif",A,B)+"
    "}function writeSpace(A,B){_curDoc.write(getSpace(A,B))}function documentWidth(B){var B=B?B:_curWin;var A=Math.max(document.body.clientWidth,document.documentElement.clientWidth);A=Math.max(A,document.body.scrollWidth);return A}function documentHeight(B){var B=B?B:_curWin;var A=Math.max(document.body.clientHeight,document.documentElement.clientHeight);A=Math.max(A,document.body.scrollHeight);return A}function winWidth(B){var A;var B=B?B:_curWin;if(_ie){if(_isQuirksMode){A=B.document.body.clientWidth}else{A=B.document.documentElement.clientWidth}}else{A=B.innerWidth}return A}function winHeight(B){var B=B?B:_curWin;var A;if(_ie){if(_isQuirksMode){A=document.body.clientHeight}else{A=document.documentElement.clientHeight}}else{A=B.innerHeight}return A}function getScrollX(A){var B=0;var A=A?A:_curWin;if(typeof (A.scrollX)=="number"){B=A.scrollX}else{B=Math.max(A.document.body.scrollLeft,A.document.documentElement.scrollLeft)}return B}function getScrollY(B){var A=0;var B=B?B:_curWin;if(typeof (B.scrollY)=="number"){A=window.scrollY}else{A=Math.max(B.document.body.scrollTop,B.document.documentElement.scrollTop)}return A}function winScrollTo(A,C,B){B=B?B:_curWin;B.scrollTo(A,C)}function eventGetKey(B,A){A=A?A:_curWin;return _ie?A.event.keyCode:B.keyCode}function eventGetX(A){return _ie?_curWin.event.clientX:A.clientX?A.clientX:A.pageX}function eventGetY(A){return _ie?_curWin.event.clientY:A.clientY?A.clientY:A.pageY}function xpos(D,C,B,A){if((A==null)||(!_ie)){A=1}return((C.clientX/A)-getPos(D).x)+getScrollX()}function ypos(D,C,B,A){if((A==null)||(!_ie)){A=1}return((C.clientY/A)-getPos(D).y)+(_ie?B.body.scrollTop:0)}function absxpos(B,A){if((A==null)||(!_ie)){return B.clientX}else{return B.clientX/A}}function absypos(B,A){if((A==null)||(!_ie)){return B.clientY}else{return B.clientY/A}}function eventCancelBubble(C,B){B=B?B:_curWin;var A=_ie?B.event:C;if(A){A.cancelBubble=true;if(A.stopPropagation){A.stopPropagation()}}}function isHidden(B){if((B==null)||(B.tagName=="BODY")){return false}var A=B.style;if((A==null)||(A.visibility==_hide)||(A.display=="none")){return true}return isHidden(B.parentNode)}function opt(C,A,B){return'"}function lnk(C,D,A,F,B,E){if(D==null){D="return false"}B=B?B:"";return""+C+""}_oldErrHandler=null;function localErrHandler(){return true}function canScanFrames(A){var B=true,D=null;if(_moz){_oldErrHandler=window.onerror;window.onerror=localErrHandler}try{D=A.document;B=false}catch(C){}if(_moz){window.onerror=_oldErrHandler}return(!B&&(D!=null))}function getBGIframe(A){return''}function getDynamicBGIFrameLayer(){var A=false;if(_curWin.BGIFramePool){BGIFrames=_curWin.BGIFramePool.split(",");BGIFCount=BGIFrames.length;for(var B=0;B'}function BlockWhileWaitWidget_show(A){var B=this;if(B.layer==null){B.layer=getLayer(B.id);if(B.layer==null){targetApp(B.getPrivateHTML());B.layer=getLayer(B.id);B.css=B.layer.style}else{B.css=B.layer.style}}B.setDisplay(A)}function isTextInput(A){var B=_ie?A.srcElement:A.target;var C=false;if(B.tagName=="TEXTAREA"){C=true}if((B.tagName=="INPUT")&&((B.type.toLowerCase()=="text")||(B.type.toLowerCase()=="password"))){C=true}return C}function isTextArea(A){var B=_ie?A.srcElement:A.target;if(B.tagName=="TEXTAREA"){return true}else{return false}}function LZ(A){return(A<0||A>9?"":"0")+A}if(bobj.crv.config.isDebug){localErrHandler=null}initDom(bobj.crvUri("../dhtmllib/images/")+bobj.crv.config.skin+"/","",bobj.crv.config.lang);styleSheet();if(window._DHTML_LIB_DIALOG_JS_LOADED==null){_DHTML_LIB_DIALOG_JS_LOADED=true;DialogBoxWidget_modals=new Array;DialogBoxWidget_instances=new Array;DialogBoxWidget_current=null;_promptDlgInfo=0;_promptDlgWarning=1;_promptDlgCritical=2;_dlgTitleLBorderToTxt=20;_dlgTitleHeight=25;_dlgTitleMarginBottom=4;_dlgTitleRBorderToClose=10;_dlgTitleCloseBtnImgFile="dialogtitle.gif";_dlgTitleCloseBtnW=11;_dlgTitleCloseBtnH=10;_dlgTitleCloseBtnDy=26;_dlgTitleCloseBtnHoverDy=37;_dlgBottomMargin=14}function newDialogBoxWidget(A,F,B,H,I,G,E,D){var C=newWidget(A);C.title=F;C.width=B;C.height=H;C.defaultCB=I;C.cancelCB=G;C.noCloseButton=E?E:false;C.isAlert=D;C.closeCB=null;C.resizeable=false;C.oldMouseDown=null;C.oldCurrent=null;C.modal=null;C.hiddenVis=new Array;C.lastLink=null;C.firstLink=null;C.titleLayer=null;C.defaultBtn=null;C.divLayer=null;C.oldInit=C.init;C.oldShow=C.show;C.init=DialogBoxWidget_init;C.setResize=DialogBoxWidget_setResize;C.beginHTML=DialogBoxWidget_beginHTML;C.endHTML=DialogBoxWidget_endHTML;C.show=DialogBoxWidget_Show;C.center=DialogBoxWidget_center;C.focus=DialogBoxWidget_focus;C.setTitle=DialogBoxWidget_setTitle;C.getContainerWidth=DialogBoxWidget_getContainerWidth;C.getContainerHeight=DialogBoxWidget_getContainerHeight;DialogBoxWidget_instances[A]=C;C.modal=newWidget("modal_"+A);C.placeIframe=DialogBoxWidget_placeIframe;C.oldResize=C.resize;C.resize=DialogBoxWidget_resize;C.attachDefaultButton=DialogBoxWidget_attachDefaultButton;C.unload=DialogBoxWidget_unload;C.close=DialogBoxWidget_close;C.setCloseCB=DialogBoxWidget_setCloseCB;C.setNoCloseButton=DialogBoxWidget_setNoCloseButton;if(!_ie){if(C.width!=null){C.width=Math.max(0,B+4)}if(C.height!=null){C.height=Math.max(0,H+4)}}return C}function DialogBoxWidget_setResize(A,C,D,B,F){var E=this;E.resizeable=true;E.resizeCB=A;E.minWidth=C?C:50;E.minHeight=D?D:50;E.noResizeW=B;E.noResizeH=F}function DialogBoxWidget_setTitle(B){var A=this;A.title=B;if(A.titleLayer==null){A.titleLayer=getLayer("titledialog_"+this.id)}A.titleLayer.innerHTML=convStr(B)}function DialogBoxWidget_setCloseIcon(A,B){changeOffset(A,0,(B==1?0:18))}function DialogBoxWidget_beginHTML(){with(this){var moveableCb=' onselectstart="return false" ondragstart="return false" onmousedown="'+_codeWinName+".DialogBoxWidget_down(event,'"+id+"',this,false);return false;\" ";var titleBG="background-image:url("+_skin+"dialogtitle.gif)";var mdl='";var btn="";if(_dtd4){btn='
    '}else{btn=''+simpleImgOffset(_skin+_dlgTitleCloseBtnImgFile,_dlgTitleCloseBtnW,_dlgTitleCloseBtnH,0,_dlgTitleCloseBtnDy,"dialogClose_"+id,null,_closeDialog)+""}var closeBtn=''+btn+"
    ";var dlgtitle='"+closeBtn+"
    '+convStr(title)+"
    ";var s="";s=mdl;var dims=sty("width",width?(""+width+"px"):null)+sty("height",height?(""+Math.max(0,height+(_moz?-2:0))+"px"):null);s+='";s+='";s+="";A+='";return A}function DialogBoxWidget_getContainerWidth(){var A=this;return A.width-(2+2)}function DialogBoxWidget_getContainerHeight(){var A=this;return A.height-(2+18+2+2+2)}function DialogBoxWidget_close(B){var A=DialogBoxWidget_instances[B];if(A){A.show(false);if(A.cancelCB!=null){A.cancelCB()}}}function DialogBoxWidget_setCloseCB(A){this.closeCB=A}function DialogBoxWidget_setNoCloseButton(A){if(this.noCloseButton!==A){this.noCloseButton=A;if(this.initialized()){this.closeButton.style.visibility=this.noCloseButton?_hide:_show}}}function DialogBoxWidget_resizeIframeCB(B,A){DialogBoxWidget_instances[B].placeIframe()}function DialogBoxWidget_placeIframe(){var B=this;if(B.iframe){var A=B.td_lyr;if(A==null){B.td_lyr=A=getLayer("td_dialog_"+B.id)}B.iframe.resize(A.offsetWidth,A.offsetHeight);B.iframe.move(B.layer.offsetLeft,B.layer.offsetTop)}}function DialogBoxWidget_resize(A,B){var C=this;C.oldResize(A,B);if(C.iframe){C.iframe.resize(A,B)}}function DialogBoxWidget_init(){if(this.layer!=null){return }var A=this;A.oldInit();A.modal.init();A.lastLink=newWidget("lastLink_"+A.id);A.firstLink=newWidget("firstLink_"+A.id);A.lastLink.init();A.firstLink.init();if(_saf){A.webKitFocusElem=getLayer("webKitFocusElem"+A.id)}A.closeButton=getLayer("dialogClose_"+A.id);A.closeButton.style.visibility=A.noCloseButton?_hide:_show;A.closeButton.onmouseover=DialogBoxWidget_moverCloseBtn;A.closeButton.onmouseout=DialogBoxWidget_moverCloseBtn;A.closeButton.onclick=function(){A.close(A.id)}}function DialogBoxWidget_moverCloseBtn(A){var A=getEvent(A);var B=(A&&A.type=="mouseover")?true:false;if(_dtd4){this.className=B?"dlgCloseBtnHover":"dlgCloseBtn"}else{changeOffset(this,0,B?_dlgTitleCloseBtnHoverDy:_dlgTitleCloseBtnDy)}}function DialogBoxWidget_attachDefaultButton(A){this.defaultBtn=A;this.defaultBtn.setDefaultButton()}_theLYR=null;_dlgResize=null;function DialogBoxWidget_down(e,id,obj,isResize){_dlgResize=isResize;var o=DialogBoxWidget_instances[id],lyr=o.layer,mod=o.modal.layer;lyr.onmousemove=mod.onmousemove=eval("_curWin."+_codeWinName+".DialogBoxWidget_move");lyr.onmouseup=mod.onmouseup=eval("_curWin."+_codeWinName+".DialogBoxWidget_up");lyr.dlgStartPosx=mod.dlgStartPosx=parseInt(lyr.style.left);lyr.dlgStartPosy=mod.dlgStartPosy=parseInt(lyr.style.top);lyr.dlgStartx=mod.dlgStartx=eventGetX(e);lyr.dlgStarty=mod.dlgStarty=eventGetY(e);lyr.dlgStartw=mod.dlgStartw=o.getWidth();lyr.dlgStarth=mod.dlgStarth=o.getHeight();lyr._widget=mod._widget=o.widx;_theLYR=lyr;eventCancelBubble(e);if(lyr.setCapture){lyr.setCapture(true)}}function DialogBoxWidget_move(C){var E=_theLYR,D=getWidget(E);if(_dlgResize){var G=Math.max(D.minWidth,E.dlgStartw+eventGetX(C)-E.dlgStartx);var B=Math.max(D.minHeight,E.dlgStarth+eventGetY(C)-E.dlgStarty);D.resize(D.noResizeW?null:G,D.noResizeH?null:B);if(D.firstTR){if(!D.noResizeW){D.firstTR.style.width=G-4}if(!D.noResizeH){D.secondTR.style.height=B-44}}if(D.resizeCB){D.resizeCB(G,B)}}else{var A=Math.max(0,E.dlgStartPosx-E.dlgStartx+eventGetX(C));var F=Math.max(0,E.dlgStartPosy-E.dlgStarty+eventGetY(C));D.iframe.move(A,F);D.move(A,F)}eventCancelBubble(C);return false}function DialogBoxWidget_up(C){var D=getWidget(_theLYR),A=D.layer,B=D.modal.layer;A.onmousemove=B.onmousemove=null;A.onmouseup=B.onmouseup=null;if(A.releaseCapture){A.releaseCapture()}_theLYR=null}function DialogBoxWidget_keypress(A){eventCancelBubble(A);var B=DialogBoxWidget_current;if(B!=null){switch(eventGetKey(A)){case 13:if(B.yes&&!B.no){if(B.defaultCB){B.defaultCB()}return false}if(isTextArea(_ie?_curWin.event:A)){return true}if(B.defaultBtn!=null&&!B.defaultBtn.isDisabled()){B.defaultBtn.executeCB();return false}break;case 27:if(!B.noCloseButton){B.show(false);hideBlockWhileWaitWidget();if(B.cancelCB!=null){B.cancelCB()}}return false;break;case 8:return isTextInput(_ie?_curWin.event:A);break}}}function DialogBoxWidgetResizeModals(H){var G=DialogBoxWidget_current&&DialogBoxWidget_current.isDisplayed();if(G){DialogBoxWidget_current.setDisplay(false);DialogBoxWidget_current.iframe.setDisplay(false)}var E=[];for(var D=0,A=DialogBoxWidget_modals.length;D'+convStr(B,false,true)+""}function PromptDialog_getHTML(){var C=this;var B=PromptDialog_getimgPath(C.promptType);var A=PromptDialog_getimgAlt(C.promptType);return C.beginHTML()+'
    '+img(B,32,32,null,'id="dlg_img_'+C.id+'"',A)+''+convStr(C.text,false,true)+"
    "+getSep()+'
    '+(C.yes?"":"")+(C.no?"":"")+"
    "+C.yes.getHTML()+""+C.no.getHTML()+"
    "+C.endHTML()}function PromptDialog_defaultCB(){var o=this;if(o.yesCB){if(typeof o.yesCB!="string"){o.yesCB()}else{eval(o.yesCB)}}this.show(false)}function PromptDialog_cancelCB(){var o=this;if(o.noCB){if(typeof o.noCB!="string"){o.noCB()}else{eval(o.noCB)}}this.show(false)}function PromptDialog_yesCB(A){DialogBoxWidget_instances[A].defaultCB()}function PromptDialog_noCB(A){DialogBoxWidget_instances[A].cancelCB()}function newWaitDialogBoxWidget(A,I,E,G,C,H,K,J,F){var D=250;var L=150;if(I';A+=''+B.frZone.beginHTML();A+='
    '+img(_skin+"wait01.gif",200,40)+'
    '+convStr(B.label.text,false,true)+"
    ";A+=B.frZone.endHTML()+"";A+=''+B.cancelButton.getHTML()+"";A+="";A+=B.endHTML();return A}function WaitDialog_FrameZoneWidget_beginHTML(){var A=this;return'
    '}function WaitDialog_FrameZoneWidget_endHTML(){var A=this;return"
    "}function WaitDialogBoxWidget_setShowCancel(A,C){var B=this;B.showCancel=A;B.cancelButton.setDisabled(false);B.cancelButton.setDisplay(A);B.cancelCB=C}function WaitDialogBoxWidget_setShowLabel(A,C){var B=this;B.showLabel=A;B.label.text=C;B.label.setHTML(C);B.label.setDisplay(A)}function WaitDialogBoxWidget_cancelCB(){var A=this;if(A.cancelCB!=null){A.cancelCB();A.cancelButton.setDisabled(true)}}function CancelButton_cancelCB(){var A=this;if(A.par.cancelCB!=null){A.par.cancelCB();A.par.cancelButton.setDisabled(true)}}if(typeof bobj=="undefined"){bobj={}}if(typeof bobj.constants=="undefined"){bobj.constants={modalLayerIndex:1000}}bobj.uniqueId=function(){return"bobjid_"+(++bobj.uniqueId._count)};if(typeof bobj.uniqueId._count=="undefined"){bobj.uniqueId._count=new Date().getTime()}bobj.updateIf=function(G,C,E){if(C===null){C={}}for(var D=1,A=arguments.length;DD.length){A=D.length}G=Math.max(0,G);if(G0){return A[0]}return null};bobj.getRect=function(D,B,A,C){return"rect("+D+"px, "+B+"px,"+A+"px,"+C+"px)"};bobj.getBodyScrollDimension=function(){var A=0;var C=0;var B=document.getElementsByTagName("Body");if(B&&B[0]){A=B[0].scrollWidth;C=B[0].scrollHeight}return{w:A,h:C}};bobj.disableTabbingKey=function(B,A){if(B){B.tabIndex=A?-1:0}};bobj.getStringWidth=function(B,A,E){if(document.body){var D=document.createElement("span");D.appendChild(document.createTextNode(B));D.style.position="absolute";D.style.visibility="hidden";if(A){D.style.fontFamily=A}if(E){D.style.fontSize=E}document.body.appendChild(D);var C=D.offsetWidth;document.body.removeChild(D);return C}return 0};bobj.deleteWidget=function(B){if(B&&B.widx){if(B.layer){B.layer.click=null;B.layer.onmouseup=null;B.layer.onmousedown=null;B.layer.onmouseover=null;B.layer.onmousemove=null;B.layer.onmouseout=null;B.layer.onchange=null;B.layer.onfocus=null;B.layer.onkeydown=null;B.layer.onkeyup=null;B.layer.onkeypress=null;var A=B.layer.parentNode;if(A){A.removeChild(B.layer)}delete B.layer}delete B.css;delete _widgets[B.widx];_widgets[B.widx]=null;delete B}};bobj.cloneArray=function(A){return A.slice()};bobj.bindFunctionToObject=function(A,B){return function(){return A.apply(B,arguments)}};bobj.extendClass=function(A,D,B){MochiKit.Base.update(A,D);A.superClass={};for(var C in B){A.superClass[C]=bobj.bindFunctionToObject(B[C],A)}};bobj.displayElementWithAnimation=function(A){if(A!=null){MochiKit.DOM.setOpacity(A,0);MochiKit.Style.setDisplayForElement("block",A);new MochiKit.Visual.appear(A,{duration:0.5})}};bobj.getHiddenElementDimensions=function(D){var C={w:0,h:0};if(D){var A=document.body;var E=D.cloneNode(true);var B=E.style;B.display="";B.visibility="hidden";B.width="";B.height="";B.position="absolute";B.left="-1000px";B.top="-1000px";A.appendChild(E);C={w:E.offsetWidth,h:E.offsetHeight};A.removeChild(E)}return C};bobj.hasPDFReaderWithJSFunctionality=function(){if(navigator.plugins){var B=navigator.plugins;for(var C=0,A=B.length;CA)){alert(L_bobj_crv_PrintPageRangeError);return }}if(this.widgetType=="PrintUI"){MochiKit.Signal.signal(this,"printSubmitted",B,A)}else{MochiKit.Signal.signal(this,"exportSubmitted",B,A,this._comboBox.getSelection().value)}this.show(false)};bobj.crv.PrintUI._getRPSafeURL=function(C){if(!C){return }if(C.indexOf("/")===0){return C}var B=window.location.href;var D=B.lastIndexOf("?");if(D>0){B=B.substring(0,D)}var A=B.lastIndexOf("/");if(A<0){return C}B=B.substring(0,A);return B+"/"+C};bobj.crv.PrintUI._getObjectTag=function(B){var C=[];C.push('');C.push('');C.push('');if(this.lcid){C.push('')}if(this.url){C.push('')}if(this.title){C.push('')}if(this.maxPage){C.push('')}if(this.paperOrientation){C.push('')}if(this.paperSize){C.push('')}if(this.paperWidth){C.push('')}if(this.paperLength){C.push('')}if(this.driverName){C.push('')}if(this.useDefPrinter){C.push('')}if(this.useDefPrinterSettings){C.push('')}if(this.sendPostDataOnce){C.push('')}C.push("");C.push('');C.push('
    ');var E=this;var D=E.getContainerWidth()-10;var A=E.getContainerHeight()-(2*E.pad+21+10);C.push('
    ');C.push('');C.push('");C.push('
    ');C.push(img(_skin+"wait01.gif",200,40));C.push("
    ');C.push('
    ');C.push(convStr(L_bobj_crv_PrintControlProcessingMessage,false,true));C.push("
    ");C.push("
    ");C.push("
    ");return C.join("")};bobj.crv.PrintUI._cancel=function(){if(this.isActxPrinting){document.getElementById(this.actxContainerId).innerHTML="";this._processingPrinting=false}};bobj.crv.PrintUI._processPrinting=function(){if(!this._processingPrinting){var B=document.getElementById(this.actxId);var A=document.getElementById(this.actxId+"_wait");if(B&&A){B.width="100%";B.height="100%";A.style.display="none"}this._processingPrinting=true}};bobj.crv.PrintUI.show=function(B,A){this._processingPrinting=false;if(B){if(!this.layer){targetApp(this.getHTML());this.init()}if(this.isActxPrinting){document.getElementById(this.actxContainerId).innerHTML=this._getObjectTag(A)}this._showOld(true)}else{if(this.layer){this._showOld(false)}}};bobj.crv.PrintUI.init=function(){this._initOld();if(!this.isActxPrinting){this._fromBox.init();this._toBox.init();this._submitBtn.init();this._allRadio.init();this._rangeRadio.init();this._allRadio.check(true);this._toBox.setDisabled(true);this._fromBox.setDisabled(true);if(this.widgetType=="ExportUI"){this._updateExportList()}}};bobj.crv.PrintUI.getHTML=function(){var B=bobj.html;var C=this;var A=C.beginHTML();if(!this.isActxPrinting){A+="
    "+this._submitBtn.getHTML()+"
    "}else{A+="
    - - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/html/calendarbottom.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/html/calendarbottom.html deleted file mode 100644 index 90b83a1c3..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/html/calendarbottom.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/html/calendartop.html b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/html/calendartop.html deleted file mode 100644 index 800ece7a4..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/html/calendartop.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/addallfield.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/addallfield.gif deleted file mode 100644 index 170f97defa457fbda203e666667fe294d224b28c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 453 zcmV;$0XqIiNk%w1VHE%r0M$AGetw<({r&&{|KsEC%E{T%(ceWxXwS~v^Yi!X>+$#Z z`PS9p%*)#P`up11+109>+sFX+x`6h&d%KM@ALfq{rvs@)z#t5 z%-hz~;rjdg&d%NU_xj`E>izuv($U`1(%$Fh?c(CSe0dZI2#1M^hl+@K4;2rQ29gGm zl9DMYc?q7M2A&2uB%UQDBzX}d5v#2RtOgr48?_sG9~~IE7#$x5y#^mQG8h)RS2y?A(d&Qz{{8mt=l}ozU0pIhe*F6Q(d)l|{+>R4`^x2q zH*P$6`{vX6^Y6A8&)>ax{{F=An=hWfyLb1+nNzpFef@Fw&Wn3@p8x#$ z=gr$sCr{isdE(~XyD#qDeSYEmy+42ce*O02^5utLzy3UZ>h}5bcQ2g3`|-oqZ{L1g zICt;wpMN*5Ke>71@#V`8K7IW9_U$L2n;C{OQ2fcl$iU#hpab#*C{7sI|2H@=G`F<2 zwKmBzclY%6b;~w0F;1B}ZTb|ZNi*h5o5e7B?%erIVq)@QN;*o*mZ++7 z3UKZg*s)7Mz+~4FOMNq5URG0S))V@?($W`}aB&H9840sqyDe;c^Xd|AZX3a8+^o-7 zxvd2sb1zZRQ`c3I`N}FI!>Xa7C!_8mEAb-XK_e5pj7Y(O4G$QDl#Nm(1eshK1r)h@ z7!C#|aRiA=7z7+#aG+J5)g>-KaMD56AR!)!2@aPV`ezvx-&1H^*wo2oY>;3esGPw% z-$Lt%!qUb=&FoV1mSx;BIm*oC=c(xMfU&V*U5wy?8?PK0cx2~W2}GRUw)XbciR>)0 Lv$8on6d0@l+#mr z;o8~c%*)#P`ujyhXy)eb@9*^Q@AKZ>=lc5m{r&#)^Y-`l`QF~=*45(P-RS4$?&9L> z%*)&3;_BJi+109>+sIb-0<)7{QdpT z&fWL-`uzR==jQFw(cb<1{m;(b*3{wS;p)=T-unCd%*@->)#3mD{{R300000000000 z00000A^8LW0024wEC2ui02Kff000KzKpkL6EE`VS2y?A(d&Qz{{8mt=l}ozA3u8i@#EJUH=g|c^Y`@W+gC0> zeEa5;t4qe4H=lm~{C(#1?MIJZpFe-^%H;{qyJV?%jQH{P^8JfB!yz{{F)GdvD%;I)Cooy}Qr9ef{y``MbM!pPxB( z`{&O;Cr{k?`t|46Z$Iwcd4BT5&AWGA+`aqa&!4}SFF(9+?%ua=KmPvtck{;Mo7bOQ zIDhxTxx3F_y#M&&>!*)jPoKJd>P4dj$J-vP1^36<)Q>IRvK80!0j5*V0F-)F2cRrK2xP-X0zVtE)ZE0z3 z2?_lrnwp&aoV)pV?BeIQ+qJ|*$x={I$&ttEgp#0&%7rCdTtZyNLf3h&3pw1px`dtG zT=W^cg(%Nsd(p@2OXO4y4COSwe&bQq(^J(jSi;58qOgI%k&R7JL&W2iONW5EMahE$ zjR*ULWsU5fIIKF@#H#FImhhm^u~|@6dcv%P0|#2BvsE3)@tn-Ql1I!ZB4MIpbElY% z?vpi%3t2UJMPw{4EC^u@TB0Qr;Niu^$RxnQlCZbSp)FK^DdonGFO3a1H)mX))vNMi NLbS6J6B8qYH2|sa4zvIO diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/back.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/back.gif deleted file mode 100644 index 17e9cf8b5cbe58d38d322558e4eaec525ff0697b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1053 zcmZ?wbhEHb6lD-$_|CvkS2y?X-@pI=|9|}W-Kmo|FI~KU{@k6yZ7(Eynp}s-reWFe*O9T_uuEw-@bqQdGFryYgZrLyZhq# zvv-dky*_jL_TxvdZr*(I=;7<*$M63B_2>EXceidnee>$WqerjKp1%F}&%f8NKD>VY z;oP}9AKrfk8g%a5-S6LlCjNW=?CqtC_x}F*d;Z+rYgZmVe)#IrrF*}A|2}i(_SLHo zf$n4&1*0KAy%5j=83oD<3>^O%SQ#WdHY_;U#N@~mabm;5!>tNzYyu7&7ai>uVfNs0 zXnfqspdV4PMB&n6o?Zr~mJER;r)FtA^&L41lT(?eFbYK6=sdv6G}pe7>1gGG7mZx* z-C+*1zG$2i)mCtsU}f6Wyh>n+(}7MU*De;$fC(NC6b?pg$SBN;Sk2hh#?I$rGei4( zW6T_Bvnv`G7q&F>%3IYi+-Wp8$1P-(GC|>CQ}a=AJ%_lS;>M?}ayAiV28TAapPOH( zC9zh4otH;K#KOVWYAe$mR<0WzvdY`u-riWaYR1At4&2NKnz`BgCNnb2$VkjEn77B0 hneTL=& zeEa5;t4qe4H=lm~{C(#1?MIJZpFe-^%H;{qyJV?%jQH{P^8JfB!yz{{F)GdvD%;I)Cooy}Qr9ef{y``MbM!pPxB( z`{&O;Cr{k?`t|46Z$Iwcd4BT5&AWGA+`aqa&!4}SFF(9+?%ua=KmPvtck{;Mo7bOQ zIDhxTxx3F_y#M&&>!*)jPoKJdFQU}fXcHp_`j;Dl%*N%d~CPprPxuiS2jEh^?C$VxlNboFVU_RI= z$gXx$(WQfLg8!R@1C7q?eCjgu6>cURY+_Tks!wC6I>>RJ*W;7Hfn8r)IBj|M%sWuU zbW%(#YsQ8IMdofXHKQNfHdr%zvWsX~1UNc67mM=AWOUq{vxHZY$w9$Efw{5lJ=30i aq5nS`8-9L%ad~#X#)k#f%`8kz4AubQjvL7U diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/background_field.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/background_field.gif deleted file mode 100644 index a125dda0fd7ffa3fa383ab2a5ea223425ad7b4b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 813 zcmZ?wbhEHbWMmLx_|Cxa`s4R^pMQM%_Uqe^-#>o+`Ss`TpTGZr;Q#;s45MH)1crME i=zu&3$_oq}LJWco3<3@Z7?@ajWE>7`P(0kgU=09w4k7UX diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/button.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/button.gif deleted file mode 100644 index 2c54908e63e110d3052dc1642cbb1f60fc9b87c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1344 zcmZ?wbhEHbWM$aP@STC7u5Rvs28QFu@18n&^UUd6XHMTfd;0d7Gq=y3yK^3d?q0fh z@6yHlmoDAAcIDxA(ox z#6vAt1r!}3z8<)y#l|bOCTc;z!Bs80!?Nu*+)`K`%EBcOVe8P)aCIT`8o9Zzrf3E) zXILa>v+F~v^BNtMO&JRhB|R6G3Y??y@Zw^RiON<}LiQ>yZQ~Y+3R_{I_$+p>fWnhI zXE&E8E?^PhUuwg=>G3kZUZa-A8|oM4+9tkPmMOfW!#PFKqG<$=e&;>->?TQ?*!a4|*Sox6Qm>>h?AVd4x0M_C!7<>pMC7MePf)gdCb zmenCGhEahztV=f~G^9t9b$;*>PV)o)tO5ZJ`8IEl9bhtj`m7;W$VDNVRb)q*BiriI z2M05i8v>*_Ra%x!OxIeoAd*`*hOL?Bi084!LV2MjF@+* zvb$aeYo5*JkgZjbb2q3+lXEqQStjSqCi~=GaNp7G7ec-;Cd?20$;rl0&+y{we3mfI zjL^pHt*i`DS&SDHBBWhcG=+*pl_rLTWJ=t0l-(!()IpKUeNm@|+5)9+Gsh2$eB=$! lMJ)C*f3`z8%dU=P$pj67%qK1$S|?Rf{hUsQI503+0|3bsU*Z4& diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/button_left_normal.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/button_left_normal.gif deleted file mode 100644 index 0cc483c533b3d8bda4d6176fa40afef59ed47394..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 351 zcmZ?wbhEHbEiwG-+#V-{qfnech{~y zdjJ0O=g;4N{rY|D=94q0Z{551{QdhcH*Y?uTb2A_|tEEkv3LM|V+|T^$*$0h@}e761SM diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/button_middle_normal.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/button_middle_normal.gif deleted file mode 100644 index d1d65b7dbf6c08605c36202786704a9699566f77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmZ?wbhEHbWMU9uIKsg2|NsBGy1B1ke>{Kg&b6x#FI~L<>(`&hkKdg-dGpz`cV|xD z`u^?b=g;51e+QD^@7;a=_|dEP??3du&6`i2KYw@Y=F|7@zudd~ zf&mpM{$v3Q=zvI&oeZq<2?8?g3?Y*eO}HPYOjJ-2cd?a96LbmWVLr;zXwd1zU=0BG Cr&PWG diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/button_right_normal.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/button_right_normal.gif deleted file mode 100644 index 941f6fe47991c063fbcc27c1f3722a079f6b5917..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350 zcmZ?wbhEHbEiwG-+#V-{qfnech{~y zdjJ0O=g;4N{rY|D=94q0Z{551{QdhcH*Y?9Z|T#*ym`y%m=A zp%o|~AS~RkD;&tjCnPjoNI8&ezS4YI*+8~sn#-02vaDIVCXioz<3(9-UC;zMrTZhii|Nn5Z{{R30A^8LW000L7 zEC2ui01yBW0009TNY7X$Awnl9XLJrrhTHq#u jj79PR3&Io4HUQ*=ykhDXn@L?$;=#u4Y9Zh-BLM(AoLe*D diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/cfilter.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/cfilter.gif deleted file mode 100644 index 06ce507aa2c7ec69357eebb808bb810512a92d56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 686 zcmc)H+e=dc9KiA4Zf)uk$8-)Vb2y!br5Q=u%~H~J0qy7(!RYcH^iV!ZPVHgqMp;&1 z+EXM1fyIJBMWI7?!{O%U+|ixsW;?m9PCA|E_zU|d`uqdmhi|j?%#pfl1&|L>J@~xg z*}x)>gWC)ox0T6kl4Ohw#T@pa%@zs-7JXidqUcyOLDRp;&~kchgJIGUDxOUK+03x% z^hPGbMxzOI!fas4X%Dg-=W@+aVH#%ueSq`8v0D@sM+(-z)u62?m1Jl-6^kX%4HyT{ z6zQ7|GuFzrFI6c^Im>O~Z$LZXDtNtNWc3~oi4)*(1S8=%W(v^@E?04!TkaH%J46<5W0f&9o?V9sU%|{}M$%z2Raa~=52!Q{< zf1=tD@&NQux!vD>0%E+QZ|~{tyW3~XYBS%v|G=EpL+JXSJ{#yK9v@c;3E{3+!_~y# z5b?5|5ao*$3X!OzL#G(ky~}?~6yz1C)d%)hjar)XK3f}Pd}qzc;(eC$hf8HLtNfhY z*|N7}?1MmFR%Xpz&gCo5TC^68rqNnhUbw0(D!Fi|UT}IRzt&&+TF_&Zb~c$0HuMT* zb;@f0?S<}c(+;UpRkLt?Oe~iEoE$EO3E-VrSLQXG()RN@dGP*f)F`SrCcX64IPQ31 z9hU6LE^RUKT6L0-s#`Np-n0%$KDAL54>h|@H~mXZ0>0+T_xc~%3Y*_>(KBMO*WMTr TKF^^po7BsX42^m|503r?jBPfQ diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/cfilter_over.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/cfilter_over.gif deleted file mode 100644 index b69a02af22ee3a3de4bb2c2b6e2e4ebfbbba2aa4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 688 zcmc(c%T5yk7)JjgSSSQDwzXV@QYr{y1tiMNs1cM)M8loN#H6fDT(Qx(B85^npbM;k z3K4^(55U4ShA1Y|8&DF!ww4){R;JN%tIniDXZ)p4;dy}XNoTNwGmo$`td8cm+9!oazPLsHXpsg;O9e&Kv4|ZRJa8A6KE>L zvC&1Be}9j~2%yj{3V(4MR@^kpMLlDwdvA+;-Thu!CL`H_Z|Wg6E257H?rgh2?zi&&21MNwS%fi^CWe*#Hp&~+LIO^-|iWZTg2<0nI;vAx6mY;?@rJ~BQr`l9pccvn|< z$Mnqe5sgN!R@Yp;Fl{+6mp8s@&&f%ct7}%Bwp=MK)HYdflwY5#&d;2EL*!o0wMrye zl7ymK%O%SfiB&4CP%4W~WS*h0s2!4kLkUn0R~bE?rhyA3!DQlTOa6?TW0T? zl~#>H*J@}OOimb{AZz|K_GenNvNOu2h;>=p%xFfh{$2?{HjHa3v<6b2(<~(d^1(B` UX#wYCYURjO-NUpVX(C+w2MGN#8~^|S diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/dialogelements.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/dialogelements.gif deleted file mode 100644 index 35d803283b7155a9742c93da652260f6f1423879..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 zcmZ?wbhEHb6kFaOL+j@W5?ni46Jl%Zk#m>`j z4qkkB{OZRux4vAw_x;+VpSPa=zWd@2!zdUHfngB>Iv`(w@&W^gID@i7#e)Tm&8%EP S3Kj_q7#bOwm>4)X7_0$hU@|=b diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/error.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/error.gif deleted file mode 100644 index cbb3bdaf2fdbe0651b608628065c4e85d70b492f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1482 zcmV;*1vUCdNk%w1VITk?0QUd@|NsAq007!tT-6d1_Uh`H006-N0I2`~^nHD`008v# z^w|sy!ee8*GBV11e2^0p^y1>Z0065I5%S#J>lGBVNJy(oORWF^d;$WiJ3HOGyP;H6 zkpKX(007KvZ1Y=Ml>h*Y4GrXeecGO$o*W$1$jHi6RIxfb$&8Gp7#QEMu+0hz^n!x& zbad3w(TxBA>P=0>O--Nx0NL5urE6>Ly}jfb8k`Ui%PK1C#l@sGHMT`X(h3UInVIB? ziM=W+^Gr;|e}AtxH{GVD%SuYxbabs68nhxJ`uh6Yf`ZcSKhga82bW@gJeI-L#<={h>)<>k)K&Y>nI;{gH1#l`fp zvdSYP>w9~h1_r)tZ2tcK$8~kRP*BAH0HzNQ!)e-QCU>7Igpsf&c)fAt9sy0E!3*!DnZwdU~rQB!veD?bOuSaBtr}KJAs2?dRsO zKR=!O4#&Q}yG%=s1qG)pEbSW_=g-gRuCDy< z?!lv@z$PZ`U0vaJcCG~l?Q?U}LPF9_P1`^~zoMeI1_k615$ep$wig%LkB{gI3HNt+ z`PJ3ZFE896Ae{&ZhY1P3Mn=6|U8P)H;%#m3Zf^FYqq#ad_@JQqtE#3MC zHU0hl>yD1**VnH!H139m!*FlRCML~fW1s^AqXPr*GBT4SB)Eu(kp~C$#l`l>$EFh# z;|B+}P*Ct;Vf15T$}usd0|T}Q2)R>Jx>r}23=GY}!q5N!*8l+22M6$&n6h47_MM%o zgM-+!HXmAiO9GA( z03;9uyP?rXMgr3b3IxDr@JT)!gMg&}K_J3|9Rh;y%xHwJ&xHtjPRn><%;173@$D4Hj~xB0v;^IWfa8kfeak* zVh|5iz+npoRFs2-GIBg;h5{P4W59<7XmJ6Fi`a(`A;|n8%P3S_@>~`hoPz`sF8pAC z9uXvP02CZB(Oo_Zcmande*_~Kk^!LM&m9WbvrGaBT%bq+99UqG4~7hoB_Yp9M?(M{ z6mWw-PPB2#9tSux4x2$3l*1gI7{Y@#rkIgMKX}S;0T(2c;6@y<+)zgyeH1XwK}En5 zjv*^Nrdo_0#X`)K5kmt4OB=DDvS_D7(FN<#snqDEc47X9~2M(JKCIk;Q#;t diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/errormsg.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/errormsg.gif deleted file mode 100644 index 06234bf91db0444d2f480f36f4071396347513db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560 zcmZ?wbhEHb zuwbja{0#wtnORvo(^(` z-pk4^QB!-($#J8q>LD-h21SJ*%*>CuxnFT|ygPgLl(zP_XU`5uN*$9Be_33-CnaT< zjLc41+5cHt*B30fUR`~km+$txd2gmqKa!q)B{A`iiptl#yeFllXGKLfnVNo)midvJ z`|AApV-gapEG;ex3xAwCb*+-}cV_0jhK6@5Dvs&vU)0ce&B5_()~q+-;fE6v&WMVx zGc$X~&i+VIX_=bpiL|tPbLT$c=K1yH$^Ed<-%p-=fBN*OxWxBUr`~dKoJ~pIEi1E1 zS$VCJ(#ycW<*F(-`2{XSN56=OI4C6r3@!$$0>z&!j0_B^3_2iFL2<&s-rJCx8s-@9 zZzkax-jo{Y#q8%1oM>sPni`VKZ0#(i!sQ?mt!}I!!=R@WCCH$uYZPiIXTu;W%)rLT z@9oa3%xuoUpv9=cW2Gj}%O!M(&rV0uHz~r$Vh10CJSRI#P>dUcD`ScQgHr&vbReh8 mE*?d8Mh>P_0Tb3Z*4PAD4%;4a(JgjNY^9Xfb(E@5`#$N93b7I zRvR7m4d45M)iK`YPSFiIos}F1UqaqpA`yilU3_&`oxdr5giGLNT>KN(MmQ?k!x z9Vu&O#iyq$xo&P~>ftlBr}8UV+@z!yrQo0-*t@s)c|=4$Yp|kiD?=`ejTKg}@4GCM z@)DaQ*CDf&#fcV|^qiI5hSUggas8JJc{mq3STGrK2O#DG!G4feDGd_~L{L;c!^*Ae zqtyKIiLZqfmEqwvFTM|tD`$GlkzF%;qT63fKU@i|Q4|Pc`x;fgD8t(-fytg+Go>(3 WUv18v`LxoMRdtJ%QkD=7<$nR$Lst6$ diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/filter_over.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/filter_over.gif deleted file mode 100644 index 0d22a499c335ec3d4eb928494f0e843e48139115..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcmb`E+fPyf9DskQ;lZ}n9I2$@UD2U-v8I`;WhvOrtmv{zj2!<$y*RvJ4_@ZVv{^15 zSX--y)9E`FU$nSvHg7Z%3j{(GwaL(tV347xjYu@ca-6|H`lt<~(e7NK zeAK3sqyp<9yUokcVUncK3OEO|Gmb^es(IdtW(a>ff%({rVVzCrqE0nO@K3itZZT4>Hm<&v40pQY`1ybuSFOD>+s%LlVic`#A%o|+R+I# z9YHVP25fzjAS?f+6C(ErJ-~b^H<=t5O~rLU2VhK$VLrx+ki9{YKAY8x+#E81$OgA) zi^YYk!n~th0_v?87h(Cuz6CS6JuVFfX@-e#95*#-ZEG9Ff53ktCz8MeP=j>WxBCPV zQKN3{?9z5?JCg7B^!D}lBzLMF3_cqg9#lPf{&Hxf_37y7D^*#UFgI7OJbUa;Ro%U6 zq41PmERG*Ld^f+Spx8UXq zp%(}$MWW1%f(xbR;i||l&=;plnu^muhMRb+XS7MF$935SI#+vl+z7#IbZI6Z$H^`# zzbZSli79o!JLGDY_ov88C5=#P+LKcWlK1evVML$NCGhCfX`&nmWE@;edc)^eq!B-K z6ObhxDE!<4{9+=B*sswoB`Dq%5)xxW$!QJ2o6^;!E46k)B~;kL`4he5_`~hxzI@+6 LbFDg#2i1Q8CZAWu diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/forward.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/forward.gif deleted file mode 100644 index e1a47d71c3b3c71bb4c9e46903c50f5029c989d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452 zcmV;#0XzOjNk%w1VHE%r0M$AGetw<({r&&{|KsEC%E{T%(cjO`-1GDI_xJhh>+#mr z;o8~c%*)#P`ujyhXy)eb@9*^Q@AKZ>=lc5m{r&#)^Y-`l`QF~=*45(P-RS4$?&9L> z%*)&3;_BJi+109>+sIb-0<)7{QdpT z&fWL-`uzR==jQFw(cb<1{m;(b*3{wS;p)=T-unCd%*@->)#3mD{{R300000000000 z00000A^8LW0024wEC2ui02Kff000KzKpkL6EE`VS2y?A(d&Qz{{8mt=l}ozA3u8i@#EJUH=g|c^Y`@W+gC0> zeEa5;t4qe4H=lm~{C(#1?MIJZpFe-^%H;{qyJV?%jQH{P^8JfB!yz{{F)GdvD%;I)Cooy}Qr9ef{y``MbM!pPxB( z`{&O;Cr{k?`t|46Z$Iwcd4BT5&AWGA+`aqa&!4}SFF(9+?%ua=KmPvtck{;Mo7bOQ zIDhxTxx3F_y#M&&>!*)jPoKJd>P4dj$J-vP1^36<)Q>IRvK80!0j5*V0F-)F2cRrK2xP-X0zVtE)ZE0z3 z2?_lrnwp&aoV)pV?BeIQ+qJ|*$x={I$&ttEgp#0&%7rCdTtZyNLf3h&3pw1px`dtG zT=W^cg(%Nsd(p@2OXO4y4COSwe&bQq(^J(jSi;58qOgI%k&R7JL&W2iONW5EMahE$ zjR*ULWsU5fIIKF@#H#FImhhm^u~|@6dcv%P0|#2BvsE3)@tn-Ql1I!ZB4MIpbElY% z?vpi%3t2UJMPw{4EC^u@TB0Qr;Niu^$RxnQlCZbSp)FK^DdonGFO3a1H)mX))vNMi NLbS6J6B8qYH2|sa4zvIO diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/info.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/info.gif deleted file mode 100644 index c24c40f3f775155c76e57423e94280fa56612ec0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1501 zcmV<31tR)KNk%w1VITk?0QUd@t>6FA@A{+A?X}(cw&DGHm&w!W^JI#>Cry$pSgMn{ z;rajnGfQ;k@%aD$|2AQ+T7JG@i^yVx!b@waq`K0?=KVQZn5EYE#OnPUFH)ji%0nozAnw;hDkUsoed&<^JUJ^lOsIPIbAi-T6FbvasO(;`{!r z)$+38|MmX=Re8Ia%JID2^Fe8|E?TOiy~@ez|M33*&F=p@WwF-r`b~4U%-`bq`~B?j z_qpW$QhdIs+4!s5`^weofVJkX-~O!L{+X`UgPg;s*Y-YWv-0}=_4xWkYOd)0|2bo@ zScJn$aka+N>8{!GCP|G-cDl0K_t@&|y5jra_y5-Q|1(~#G+(Wj%JZVd=*sT@TZqS< z&hwVQ>5|9st>68o%;dV?`Mb#7n6TH^@Bc7ct6YG;YM0TP&Genj?i~Ci^Q(l`1Je!be`0_6Be zyV5jYu+#Ma&*$`_)cB;)^!)$-Hejl^+3mI7_QBlghosVIhr+bs{P6nwR(-#Jwdb76 z@z?M2J71!5kH)Rt{Kn_@PIiKxRqVWq3k?9S);kHPE6==IR)`$KKK z>ihm%ey#2K`huduqsH94*ycoLs4h~KfuGT=-~O!M|ESmat=|5Xy4WH(VBGTcpR?Hb z`T99zw2!RV)A0My^ZrqGweI!&h_&FO((s+O#-PyjhPmgZ(ejeO6b&QFh~u|!ihy(0pgh?jr6Gj}RiN?u zRLc>D5s~UBPA6HiT38V^r!{~LE`WIdGx*>D4_ym%?`G1#038`JJPi=Ff>LGhcw`r( zvFpl*^bW|uKqJ>MAjli>P{9Qp`4~|d04|7ujX??2aLNZSq~}966HMSsEFMUJ$PuO_ zLBfM`43GeY7CLc5hD$Wij|KJIBEb>q&=SK1Cw}*X87mf)04xTu;KT3$TWdC2w@3cs6pWYbojx-Ax<~}2s6f5pv)SGXkbbZMmV^^92FFzA3@H1(@Ow; zWT9sk%w+J3C1`38Mj#Ka@PiEytYHucT)?wRGnZ%~=_45+fXyTYP-6}s!h8p38c(2c zP!0!>gTWU#;P6Erl_n4e3Pg;$k%2akU<9u?f?S>QS8tL zA4ME$OB{wIv;z=RU{QiRRO|tP1fkTCN(e`caRC7~q_M~(3Q3{D3G>W>&M-01q6iVC z5TOV+G1yT-8o&Z@kbCF2$4w}T_hZXIht5e!7Pi!Ar(VXpr8aB=(Hk4AVRb< zfEg9oLP#8w{OeE%O6&my9%6j#MIjJ8F+;Q)4a5#9Ibc(f8Y-+IYRy0gE%eX}1q1*) DxKT5J diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/infomsg.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/infomsg.gif deleted file mode 100644 index 028b5d1f653f803c01bcc1194a48e0ee140fe061..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 551 zcmZ?wbhEHb>O7c}+$%dZI?M>=;u534yial>6>r$?tGfjedOb>|C=8E|MvTT-pun|yPh9^`9EXY`MB0Y zYw!P`yzy2-+o8Mr#|F6IQfAaB+Z^fx(4A2jp;2oG`Gr zG`P6v2*`49NXalZx#$Wh7&|E|iRtmUSPQ8eI;-$o@d+|93Mg_5i!!hpPOqHGoPjjo0O@MqvdH{5pi}IF>{Fnr==xX8JPrC kc{%Mxq_r2j@G!|~*cpgRGEHw{WMyY#V}H!T%EVv|0AfSE;{X5v diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/minus.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/minus.gif deleted file mode 100644 index 9cb5eb9960494a9167288f977fc535fdeed750cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100 zcmZ?wbhEHb6lM@%Sj52a|NsAnhKBn3dIm5XNJ4<(PZm}Y1{MY#5ErDDfmzdI*PVX` sr#!PoEFMcX{Ac{$_=uw=$b8M=$i5e;yI#sT&q{k+^Zvhs6BC0q019*>p8x;= diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/next.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/next.gif deleted file mode 100644 index 8540d35e9ca4428cb6f0bb54772547dae3b3538c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452 zcmV;#0XzOjNk%w1VHE%r0M$JJ*45$K+2rr<^!oby`uhC$_WAw&{@&f^@9*=>%iHtw z_UGpA=H~9l$KB%M>)zey*45(K+2rHm>fYYx`}+Ln=kEOd{r&v@>+A5&&fM$j@Y>ns z@bB~D;_Bkz>&?sC{rvsR%-i?(`s3m1{Qdst= z?DEpl-t6k|*3{wa>+#IX+V}VQ^Yi!8(cjO`+~ec!%E{SMQg8kJ{eFI(|NsC0|Nj60 z00000A^8LW002DzEC2ui02Kff000Kzz}{|1EEwb0Goo+xG5C{V|oPct-DQVrTFx&V2Ga`Ehe0d5qG>0@fiie7bc>)Lmk^(t7 zlL(mt92|KuprMyJF)tdR7#JFP3>6Hm45K*=3n~k@3waVA4!aJrIUN!mBMuIE2M-g; z6S4=-4-W?uc^eS{)&Zj|0TI^$;CTQ55aSS+B@hrWE92vNHSzK}E%Gk$Ch>VT{Qds? uCv0R$ks*(a4+&%>Tqxt9!VnGf;Fw6UqQ!}68erLIC5n(EAdU100suRCO8_YV diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/next_over.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/next_over.gif deleted file mode 100644 index 801c2306d6acb937920d1b13c904fe539cfd79eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmV;=0WkhYNk%w1VHE%r0M$PL?dDY?(FUI&(7ZU_W0f0=+o2T-QDNO$l3Y%{OITJ_4WDQ-RR!j=luNr$;jBt z%G=o2Lluex3jS z|NsC0A^8LW002J#EC2ui02Kff000K;z+Z1jEEYcwJaObKI-urL@_BvK-GItfK0p;O@X3JNWHWG@^u1_m5DIy8wK1|T4jWCaBb z1tScMI+zSNnwDe)1The&oI0c~5TpcTDHb9yDI}>n7Ah(hBqC%1zze{s77ND00c0K& z6dorNoBOZk$(gX$uYXAs` BBjf-8 diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/prev.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/prev.gif deleted file mode 100644 index ec66dc2b41b126451d1a2d6c6afdcd54bf0c7b69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 447 zcmV;w0YLsoNk%w1VHE%r0M$AG@9*>4+2s2A`|t1c_xAby{r>v;{LIVS-reW(^Y-TE z?&s$2*45(P-sjobe|`m`}+L-{Qm3e@ayaF{Qdps=kCtV+~VQu z&CA>3;_C44^X%&I%*@;R`}^bJ>izuv($U`1(%#R`-PY9M{Qds-_xjGx-PP6M=jQF! z)#2;w@yyHG_xJhp^Y_or+|tqCwa%q+)Y3c7z_e8+z@iNDd`)G0NeNdFe!Tke0d2mF^7qYHi?Lcc>@3gl9B)b zHa3%!9v*ovprIcwnKl-n7Z(^c@i5Cx)8E99TFWP5D<9?4-Lo- z4YCNx4+sr;6Al5@0oSDt*4Y7hEiDY;4CO7ECoAFMc{A?s@HQmwCGL4L`1$(yDl!@- p8uGm0aNtG3gD(ae1d%XLjfW5;N_?0m0+x$bq6j&{(TI*906Pbg^-=%; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/prev_over.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/prev_over.gif deleted file mode 100644 index 76318a28f4b775cde3a7237d0e9ef0e3cc32feb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 467 zcmV;^0WAJUNk%w1VHE%r0M$PL{rvso;_LD8_1M_t%gfvG@%H)o`|RxU;^OPn)8NU+ z+04t^?d*W}R7-u?Xk_V)PG)8Nq0-O$e6+1TUu_W4p$Z~guK#>Lluex3jS z|NsC0A^8LW002J#EC2ui02Kff000K?z+Z1jEEQz#?~OUYuEoGg};L{cJqJcI>dzrgGA3ov?QG8r}(7a1fOH##~Q7a$;!WDX7q z4lD@?B#t@>HJX-W0|Ph{r~{rl12Ge&17s*2DlaG^t2!MiDIFpzWC6km!U3xY$ix9; zCL0?j5ET#*o)y;45M&1o3>@7D2h=(T9NP>BWCa2O1?>VH?K`V+30v0y339#z%7ziphw2Lc8rC4lKI@qHipA~Xqql#;rkm0H&8bQep H3=Gx)sGJ&^ diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/transp.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/transp.gif deleted file mode 100644 index d2ac90fe2eb741c765b954ee94aa8f2ee8d9d0fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85 zcmZ?wbhEHbWMp7u*vtR|4Pe{=rW$~}hK2(N4m310{0EBvXZR1MfHaT=1d2ad7=hvp QIv@gM1_KL|fD3~)04TK>bN~PV diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/warning.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/warning.gif deleted file mode 100644 index 7496185eae6e7b96c4629880510184cc7ace01d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1538 zcmV+d2L1U*Nk%w1VITk?0QUd@N=i!B*4BuKhM<@ae|twyO)jdXUBkOFqMTCO*sS5& zSy4|g_VH?(lMeIq^481}^6W*EjXeDO^ooQup_)CjtV#U))#~WR`T6FI!fVE+B;^zBUi z`oi?_tMTeS^6Wn9;~#>3Gw1UZPBycyZlRhH@8~Y% z+a1Tg5tfe>@9*#0(G{AMPW}DmXJaM({qFMYO7!hX)y^8+)Edvo9O&oPe|%8v=91~= zv)$Xn=io2%?}^gRjqd4dySux_z#n#UJo)vKr>2z2!D86g)t;9W;nx@7+hF0?7y9?U z?d;!RTr2nVqx$!$`uC=mkSV03q_wl6=H}+5pkLZ7(Z>_EbT(@5pg%Bcz-X_w$P6+8Ba; z9Kyes($dn)!!eVCe|=i$-yFxk6|1Hg zUtUk=-yr+>$W>HC0001~rA+khsFjdM_V8tXcr5$+<>T5Rx3N;awpqWrQ2YAmwX$IA zHofks!O&CSAOsg`();9SL=!eVNZ@MPAsC|#P*Bv80zm|yB*^Bd3i%S!u?rjI zJOKazo-nIeD|C3-L6Z%8aCUj23m~4^HpZ45VaxEvu_~K_$Qevm9|XMhO6+CWAx4IM zIf8KTMp%KT!`2itP6!FXn@&04K(RrWof0sPptaJ*1D}J1qx^RI5<3hWx&j#N8G}m2 zI!;RxtTy<4j{h5ivxvx zA)XILv=fRtvjlR-1qNYYhyhguF#`-J3^08|dP~7&zcS z#;7=iK$r=SW$UB|h{j4l&>WAV4RO+QKR#SGe$)kWi oG7zBj(o8qKv?8RS69O!3JGHkUg#Z8m diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/warningmsg.gif b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/images/warningmsg.gif deleted file mode 100644 index 20bfc954fbd420ac84f74e500ab0ce63fb4c867a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 314 zcmZ?wbhEHbE0OzUk~1|4;cP`a`5#K{{R0! z$OU8p#h)yU3=BFz2m~NMF|dU@Oe^rv*(AZ#R=C4x0mJDw=cWpW?gf1b6L#|1PdzL4 z=;J0S)w9"); - }, - - loadLocaleStrings: function() { - var localeFiles = [ - 'js/dhtmllib/language/en/labels.js', - 'js/crviewer/strings_en.js' - ] - - var splitChar = '_'; // default to java's locale split character - if (this.locale.indexOf ('-') > 0) - splitChar = '-'; // must be .Net's locale split - - var lang = this.locale.split(splitChar); - - if(lang.length >= 1) { - localeFiles.push('js/dhtmllib/language/' + lang[0] + '/labels.js'); - localeFiles.push('js/crviewer/strings_' + lang[0] + '.js'); - } - - if(lang.length >= 2) { - localeFiles.push('js/dhtmllib/language/' + lang[0] + '_' + lang[1] + '/labels.js'); - localeFiles.push('js/crviewer/strings_' + lang[0] + '_' + lang[1] + '.js'); - } - - for (var i = 0; i < localeFiles.length; i++) { - this.loadJsFile(localeFiles[i]); - } - }, - - loadFiles : function() { - if(typeof(bobj.crv) == "undefined" || typeof(bobj.crv.Calendar) == "undefined") { - window["promptengine_skin"] = this.crystalreportviewerPath + "js/dhtmllib/images/skin_standard/"; - window["promptengine_style"] = this.crystalreportviewerPath + "js/crviewer/images/"; - window["promptengine_lang"] = this.locale; - this.loadLocaleStrings(); - this.loadJsResources(); - } - - } -}; diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_prompts.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_prompts.js deleted file mode 100644 index e25c293c4..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_prompts.js +++ /dev/null @@ -1,1110 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ - -////////////////////////////// -// FOR DEBUGGING ONLY -var debug = false; -function dumpFormFields(formName) -{ - theForm = document.forms[formName]; - for ( idx = 0; idx < theForm.elements.length; ++idx ) - alert ( theForm.elements[idx].name + " - " + theForm.elements[idx].value ); -} - -////////////////////////////// -// GLOBAL VAR -var isJava = false; // do encodeURIComponent for Java only - -var isNetscape = navigator.appName.indexOf("Netscape") != -1; - -var LEFT_ARROW_KEY = 37; -var RIGHT_ARROW_KEY = 39; -var ENTER_KEY = 13; - -var DateTimeFormatSetting = { -"datePattern":"Y-M-D", -"isTwoDigitMonth":true, -"isTwoDigitDay":true, -"dateRegex":null, -"dateTimeRegex":null -}; - -/////////////////////////////// -// functions for DateTimeFormatSetting - -function promptengine_getDatePattern() -{ - return DateTimeFormatSetting.datePattern; -} - -function promptengine_setDatePattern(pattern) -{ - DateTimeFormatSetting.datePattern = pattern; -} - -function promptengine_getIsTwoDigitMonth() -{ - return DateTimeFormatSetting.isTwoDigitMonth; -} - -function promptengine_setIsTwoDigitMonth(isTwoDigitMonth) -{ - DateTimeFormatSetting.isTwoDigitMonth = isTwoDigitMonth; -} - -function promptengine_getIsTwoDigitDay() -{ - return DateTimeFormatSetting.isTwoDigitDay; -} - -function promptengine_setIsTwoDigitDay(isTwoDigitDay) -{ - DateTimeFormatSetting.isTwoDigitDay = isTwoDigitDay; -} - -function promptengine_getDateRegex() -{ - return DateTimeFormatSetting.dateRegex; -} - -function promptengine_setDateRegex(dateRegex) -{ - DateTimeFormatSetting.dateRegex = dateRegex; -} - -function promptengine_getDateTimeRegex() -{ - return DateTimeFormatSetting.dateTineRegex; -} - -function promptengine_setDateTimeRegex(dateTineRegex) -{ - DateTimeFormatSetting.dateTineRegex = dateTineRegex; -} - -/////////////////////////////// -// properly encode prompt values -function promptengine_encodePrompt (prompt) -{ - if (isJava) - { - return encodeURIComponent(prompt); - } - else - { - return promptengine_urlEncode(prompt); - } -} - -//////////////////////////////// -// add number, currency, string from dropdown/textbox to list box -// where multiple prompt values are supported -function promptengine_addDiscreteValue ( - form, - type , - promptID) -{ - var widget, obj; - widget = obj = form[promptID + "DiscreteValue"]; - if ( obj.type && obj.type.toLowerCase() != "text" && - obj.type.toLowerCase() != "hidden" && obj.type.toLowerCase() != "password") - { - //select box not a textbox - obj = obj.options[obj.selectedIndex]; - } - if ( ! promptengine_checkValue ( obj.value, type ) ) - { - if (widget.focus && widget.type.toLowerCase() != "hidden") - widget.focus(); - return false; - } - promptValue = obj.value; - displayString = ( obj.text ) ? obj.text : obj.value; - promptEntry = new Option(displayString,promptValue,false,false); - theList = form[promptID + "ListBox"]; - theList.options[theList.length] = promptEntry; - if (widget.focus && widget.type.toLowerCase() != "hidden" && !widget.disabled) - widget.focus (); - if ( widget.select ) - widget.select (); - if ( widget.type.toLowerCase != "text" && - widget.type.toLowerCase != "hidden" && - widget.type.toLowerCase != "password") - if ( widget.selectedIndex < widget.length - 1 ) - widget.selectedIndex = widget.selectedIndex + 1; //... or move to next selection in listbox -} - -function promptengine_deselectAllItems(listbox) -{ - for (var i = 0; i < listbox.length; i++) - listbox.options[i].selected = false; -} - -function promptengine_addAvailableItem( - availableList, - index, - selectedList) -{ - for (var i = 0; i < selectedList.length; i++) - { - if (selectedList.options[i].value == availableList.options[index].value && - selectedList.options[i].text == availableList.options[index].text) - { - selectedList.options[i].selected = true; - return false; - } - } - - var promptEntry = new Option(availableList.options[index].text, availableList.options[index].value, false, true); - selectedList.options[selectedList.length] = promptEntry; - return true; -} - -//////////////////////////////// -// add number, currency, string from available list box to selected list box -// where multiple prompt values are supported -function promptengine_addValueFromPickList( - form, - type, - promptID) -{ - var AvailableList, SelectedList; - AvailableList = form[promptID + "AvailableList"]; - SelectedList = form[promptID + "ListBox"]; - - promptengine_deselectAllItems(SelectedList); - - var changed = false; - - var lastSelected = -1; - for (var i = 0; i < AvailableList.length; i++) - { - if (AvailableList.options[i].selected) - { - var added = promptengine_addAvailableItem(AvailableList, i, SelectedList); - if (added == true) - changed = true; - lastSelected = i; - } - } - - // set focus to the next item on the available list - if (lastSelected++ >= 0 && lastSelected < AvailableList.length) - { - promptengine_deselectAllItems(AvailableList); - AvailableList.options[lastSelected].selected = true; - } - - return changed; -} - -//////////////////////////////// -// add all number, currency, string from available list box to selected list box -// where multiple prompt values are supported -function promptengine_addAllValues( - form, - type, - promptID) -{ - var AvailableList, SelectedList; - AvailableList = form[promptID + "AvailableList"]; - SelectedList = form[promptID + "ListBox"]; - - promptengine_deselectAllItems(SelectedList); - - var changed = false; - for (var i = 0; i < AvailableList.length; i++) - { - var added = promptengine_addAvailableItem(AvailableList, i, SelectedList); - if (added == true) - changed = true; - } - - return changed; -} - -//////////////////////////////////// -// adds Range prompt to listbox where multiple values are supported -function promptengine_addRangeValue ( - form, - type , - promptID ) -{ - var lowerBoundPickList = form[promptID + "SelectLowerRangeValue"]; - var upperBoundPickList = form[promptID + "SelectUpperRangeValue"]; - - lowerBound = form[promptID + "LowerBound"]; - upperBound = form[promptID + "UpperBound"]; - //handle select box, not text box case - if ( lowerBound.type.toLowerCase () != "text" && - lowerBound.type.toLowerCase () != "hidden" && - lowerBound.type.toLowerCase () != "password" ) //either upper or lower, doesn't matter - { - lowerBound = lowerBound.options[lowerBound.selectedIndex]; - upperBound = upperBound.options[upperBound.selectedIndex]; - } - - lowerUnBounded = form[promptID + "NoLBoundCheck"].checked; - upperUnBounded = form[promptID + "NoUBoundCheck"].checked; - lvalue = uvalue = ""; - - if ( ! lowerUnBounded ) - { - if ( ! promptengine_checkRangeBoundValue ( lowerBound.value, type ) ) { - if ( lowerBound.focus && lowerBound.type.toLowerCase () != "hidden") - lowerBound.focus (); - return false; - } - lvalue = lowerBound.value; - } - if ( ! upperUnBounded ) - { - if ( ! promptengine_checkRangeBoundValue ( upperBound.value, type ) ) { - if ( upperBound.focus && upperBound.type.toLowerCase () != "hidden") - upperBound.focus (); - return false; - } - uvalue = upperBound.value; - } - - var ldisplay = ""; - var udisplay = ""; - - var found = false; - if (lowerBoundPickList != null && lvalue != null && lvalue.length > 0) - { - var cItems = lowerBoundPickList.length; - for (var item = 0; item < cItems; item++) - { - var value = lowerBoundPickList.options[item].value; - if (value != null && value.length > 0 && value == lvalue) - { - ldisplay = lowerBoundPickList.options[item].text; - found = true; - break; - } - } - } - if (!found) - ldisplay = (lowerBound.text && !lowerUnBounded) ? lowerBound.text : lvalue; - - found = false; - if (upperBoundPickList != null && uvalue != null && uvalue.length > 0) - { - var cItems = upperBoundPickList.length; - for (var item = 0; item < cItems; item++) - { - var value = upperBoundPickList.options[item].value; - if (value != null && value == uvalue) - { - udisplay = upperBoundPickList.options[item].text; - found = true; - break; - } - } - } - if (!found) - udisplay = (upperBound.text && !upperUnBounded) ? upperBound.text : uvalue; - - lowerChecked = form[promptID + "LowerCheck"].checked; - upperChecked = form[promptID + "UpperCheck"].checked; - - // value for showing in the list box only, no need encode here - value = ( lowerChecked && ! lowerUnBounded ) ? "[" : "("; - if ( ! lowerUnBounded ) //unbounded is empty string not quoted empty string (e.g not "_crEMPTY_") - value += (lvalue); - value += "_crRANGE_" - if ( ! upperUnBounded ) - value += (uvalue); - value += (upperChecked && ! upperUnBounded ) ? "]" : ")"; - if ( debug ) alert (value); - - display = ( lowerChecked && ! lowerUnBounded ) ? "[" : "("; - display += ldisplay; - display += " .. " - display += udisplay; - display += (upperChecked && ! upperUnBounded ) ? "]" : ")"; - - promptEntry = new Option(display,value,false,false); - theList = form[promptID + "ListBox"]; - - // search the list/select box for the new option, if the returned index is -1, i.e., no such option, add it - // otherwise, highlight that option - var idx = promptengine_findOptionInList(theList, value); - if (idx > -1) - theList.selectedIndex = idx; - else - theList.options[theList.length] = promptEntry; - - return true; -} - -//////////////////////////////////// -// search the given select object for the given option value, and returns its index. -function promptengine_findOptionInList(selectObj, optionValue) -{ - if (selectObj == null || optionValue == null || optionValue == "") - return -1; - - for (var i = 0; i < selectObj.options.length; i++) - { - if (selectObj.options[i].value == optionValue) - return i; - } - - return -1; -} - -//////////////////////////////////// -// disable check boxes / dropdowns / textboxes based on user selection on the range parameters -function promptengine_onNoBoundCheckClicked( - form, - promptID, - lowOrUpBound) -{ - if (lowOrUpBound == 0) { - if (form[promptID + "NoLBoundCheck"].checked) { - form[promptID + "NoUBoundCheck"].disabled = true; - form[promptID + "LowerCheck"].disabled = true; - form[promptID + "LowerBound"].disabled = true; - if (form[promptID + "SelectLowerRangeValue"] != null) - form[promptID + "SelectLowerRangeValue"].disabled = true; - } - else { - form[promptID + "NoUBoundCheck"].disabled = false; - form[promptID + "LowerCheck"].disabled = false; - form[promptID + "LowerBound"].disabled = false; - if (form[promptID + "SelectLowerRangeValue"] != null) - form[promptID + "SelectLowerRangeValue"].disabled = false; - } - } else if (lowOrUpBound == 1) { - if (form[promptID + "NoUBoundCheck"].checked) { - form[promptID + "NoLBoundCheck"].disabled = true; - form[promptID + "UpperCheck"].disabled = true; - form[promptID + "UpperBound"].disabled = true; - if (form[promptID + "SelectUpperRangeValue"] != null) - form[promptID + "SelectUpperRangeValue"].disabled = true; - } else { - form[promptID + "NoLBoundCheck"].disabled = false; - form[promptID + "UpperCheck"].disabled = false; - form[promptID + "UpperBound"].disabled = false; - if (form[promptID + "SelectUpperRangeValue"] != null) - form[promptID + "SelectUpperRangeValue"].disabled = false; - } - } -} - -//////////////////////////////////// -// disable text boxes / list boxes based on whether setNull is checked -function promptengine_onSetNullCheckClicked( - form, - promptID) -{ - if (form[promptID + "NULL"].checked) - { - if (form[promptID + "DiscreteValue"] != null) - form[promptID + "DiscreteValue"].disabled = true; - if (form[promptID + "SelectValue"] != null) - form[promptID + "SelectValue"].disabled = true; - } - else - { - if (form[promptID + "DiscreteValue"] != null) - form[promptID + "DiscreteValue"].disabled = false; - if (form[promptID + "SelectValue"] != null) - form[promptID + "SelectValue"].disabled = false; - } -} - -//////////////////////////////////// -// puts "select" value into text box for an editable prompt which also has defaults -function promptengine_selectValue( - form, - selectCtrl, - textCtrl) -{ - // If no selection, return unchanged. - if(form[selectCtrl].selectedIndex < 0) - return false; - - selectedOption = form[selectCtrl].options[form[selectCtrl].selectedIndex]; - if (selectedOption.value == null && form[textCtrl].value == null) - return false; - - var changed = true; - if (selectedOption.value == form[textCtrl].value) - changed = false; - - form[textCtrl].value = selectedOption.value; - return changed; -} - -function promptengine_hasValueInTextBox( - form, - textboxID) -{ - if (form[textboxID].value == null) - return false; - return true; -} - -///////////////////////////////////////// -// set cascading prompt id into value field. -function promptengine_setCascadingPID( - form, - valueID, - promptID) -{ - valueField = form[valueID]; - - curVal = valueField.value; - - if (curVal.length > 0) - curVal += "&"; - curVal += "cascadingPID" + "=" + promptID; - - if ( debug ) - alert (curVal); - - valueField.value = curVal; - return true; -} - -///////////////////////////////////////////////// -// remove selected values from multi-value prompt -function promptengine_removeValue( - form, - promptID) -{ - var lbox = form[promptID + "ListBox"]; - var changed = false; - - var lastSelected = -1; - for ( var idx = 0; idx < lbox.options.length; ) - { - if ( lbox.options[idx].selected ) - { - lbox.options[idx] = null; - changed = true; - lastSelected = idx; - } - else - idx++; - } - - if (lastSelected >= 0 && lastSelected < lbox.length) - { - // highlight the next item - promptengine_deselectAllItems(lbox); - lbox.options[lastSelected].selected = true; - } - else if (lastSelected == lbox.length && lastSelected > 0) - { - // highlight the last item - promptengine_deselectAllItems(lbox); - lbox.options[lastSelected - 1].selected = true; - } - - return changed; -} - -function promptengine_onRemoveValue( - form, - promptID) -{ - promptengine_removeValue(form, promptID); -} - -///////////////////////////////////////////////// -// remove all values from multi-value prompt -function promptengine_removeAllValues( - form, - promptID) -{ - var lbox = form[promptID + "ListBox"]; - - var changed = false; - - if (lbox.options.length > 0) - changed = true; - - for ( var idx = 0; idx < lbox.options.length; ) - { - lbox.options[idx] = null; - } - - return changed; -} - -function promptengine_onRemoveAllValues( - form, - promptID) -{ - promptengine_removeAllValues(form, promptID); -} - -///////////////////////////////////// -// update hidden value field with encoded value -function promptengine_updateValueField ( - form, - valueID, - promptID, - value) -{ - valueField = form[valueID]; - - curVal = valueField.value; - - if (curVal.length > 0) - curVal += "&"; - curVal += promptID + "=" + value; - - if ( debug ) - alert (curVal); - - valueField.value = curVal; - - return true; -} - -/////////////////////////////////////// -// reset hidden value field -function promptengine_resetValueField ( - form, - valueID) -{ - valueField = form[valueID]; - valueField.value = ""; -} - -///////////////////////////////////// -// sets prompt value into the hidden form field in proper format so that it can be submitted -function promptengine_updateDiscreteValue ( - form, - valueID, - promptID, - type, - checkValue) -{ - var value = ""; - - if (form[promptID + "NULL"] != null && - form[promptID + "NULL"].checked ) - { - value = "_crNULL_"; //NULL is a literal for, uhmm.. a NULL - } - else - { - valueField = form[promptID + "DiscreteValue"]; - - if (valueField.type.toLowerCase () != "text" && - valueField.type.toLowerCase () != "hidden" && - valueField.type.toLowerCase () != "password") - { - value = valueField.options[valueField.selectedIndex].value; - } - else - { - value = valueField.value; - } - - if ( checkValue && !promptengine_checkValue ( value, type ) ) - { - if (valueField.focus) - { - if(valueField.type.toLowerCase () != "hidden") - valueField.focus (); - else - { - var valueSelectField = form[promptID + "SelectValue"]; - if(valueSelectField && valueSelectField.focus) - valueSelectField.focus (); - } - } - - return false; - } - else - { - value = promptengine_encodePrompt(value); - } - } - - return promptengine_updateValueField(form, valueID, promptID, value); -} - -///////////////////////////////////// -// sets prompt value for a range into the hidden form field in proper format so that it can be submitted -function promptengine_updateRangeValue ( - form, - valueID, - promptID, - type, - checkValue) -{ - if (form[promptID + "NULL"] != null && - form[promptID + "NULL"].checked ) - { - value = "_crNULL_"; //NULL is a literal for, uhmm.. a NULL - } - else - { - lowerBound = form[promptID + "LowerBound"]; - upperBound = form[promptID + "UpperBound"]; - - //handle select box, not text box case - if (lowerBound.type.toLowerCase () != "text" && - lowerBound.type.toLowerCase () != "hidden" && - lowerBound.type.toLowerCase () != "password") //either upper or lower, doesn't matter - { - lowerBound = lowerBound.options[lowerBound.selectedIndex]; - upperBound = upperBound.options[upperBound.selectedIndex]; - } - lowerUnBounded = form[promptID + "NoLBoundCheck"].checked; - upperUnBounded = form[promptID + "NoUBoundCheck"].checked; - lowerChecked = form[promptID + "LowerCheck"].checked; - upperChecked = form[promptID + "UpperCheck"].checked; - uvalue = lvalue = ""; - - if ( ! lowerUnBounded ) - { - if ( checkValue && !promptengine_checkRangeBoundValue ( lowerBound.value, type ) ) { - if ( lowerBound.focus && lowerBound.type.toLowerCase () != "hidden") - lowerBound.focus(); - return false; - } - lvalue = lowerBound.value; - } - if ( ! upperUnBounded ) - { - if ( checkValue && !promptengine_checkRangeBoundValue ( upperBound.value, type ) ) { - if ( upperBound.focus && upperBound.type.toLowerCase () != "hidden") - upperBound.focus (); - return false; - } - uvalue = upperBound.value; - } - value = ( lowerChecked && ! lowerUnBounded ) ? "[" : "("; - if ( ! lowerUnBounded ) - value += promptengine_encodePrompt(lvalue); - value += "_crRANGE_" - if ( ! upperUnBounded ) - value += promptengine_encodePrompt(uvalue); - value += (upperChecked && ! upperUnBounded ) ? "]" : ")"; - } - - return promptengine_updateValueField(form, valueID, promptID, value); -} - -///////////////////////////////////// -// sets prompt value into the hidden form field in proper format so that it can be submitted -function promptengine_updateMultiValue ( - form, - valueID, - promptID, - type, - checkValue) -{ - values = form[promptID + "ListBox"].options; - value = ""; - - if (form[promptID + "NULL"] != null && - form[promptID + "NULL"].checked) - { - value = "_crNULL_"; //NULL is a literal for, uhmm.. a NULL - } - else - { - if ( values.length == 0 ) - { - value = "_crEMPTY_"; //if value is empty, set to empty string - } - else - { - for ( i = 0; i < values.length; i++ ) - { - // first value could be empty string, then chcking value.length != 0 could miss one empty string - if ( i != 0 ) - value += "_crMULT_" - value += promptengine_encodePrompt(values[i].value); - } - } - } - - //NOTE: we'll always return true as the validation is done before values are added to select box - return promptengine_updateValueField(form, valueID, promptID, value); -} - -/////////////////////////////////////// -// check and alert user about any errors based on type of prompt -var regNumber = /^(\+|-)?((\d+(\.|,|'| |\xA0)?\d*)+|(\d*(\.|,| |\xA0)?\d+)+)$/ -var regCurrency = regNumber; -var regDate = /^(D|d)(A|a)(T|t)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *\)$/ -var regDateTime = /^(D|d)(A|a)(T|t)(E|e)(T|t)(I|i)(M|m)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *, *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/ -var regTime = /^(T|t)(I|i)(M|m)(E|e) *\( *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/ -var regDateTimeHTML = /^ *\d{4} *- *(0?[1-9]|1[0-2]) *- *((0?[1-9]|[1-2]\d)|3(0|1)) * *([0-1]?\d|2[0-3]) *: *[0-5]?\d *: *[0-5]?\d *$/ -var regDateHTML = /^ *\d{4} *- *(0?[1-9]|1[0-2]) *- *((0?[1-9]|[1-2]\d)|3(0|1)) *$/ -var regTimeHTML = /^ *([0-1]?\d|2[0-3]) *: *[0-5]?\d *: *[0-5]?\d *$/ - -function promptengine_getDateSpec() -{ - var datePattern = promptengine_getDatePattern(); - datePattern = datePattern.replace("Y", L_YYYY); - datePattern = datePattern.replace("M", L_MM); - datePattern = datePattern.replace("D", L_DD); - return datePattern; -} - -function promptengine_checkValue ( - value, - type ) -{ - if (value == null) - return false; - - if (value == "_crNULL_") - return true; - - if ( type == 'n' && ! regNumber.test ( value ) ) - { - if (value.length > 0) - alert ( L_BadNumber ); - else - alert ( (typeof L_Empty) != 'undefined'? L_Empty : L_NoValue ); - - return false; - } - else if ( type == 'c' && ! regCurrency.test ( value ) ) - { - if (value.length > 0) - alert ( L_BadCurrency ); - else - alert ( (typeof L_Empty) != 'undefined'? L_Empty : L_NoValue ); - - return false; - } - else if ( type == 'd' ) - { - var regex = promptengine_getDateRegex(); - if((regex == null || !regex.test(value)) && ! regDate.test ( value ) && !regDateHTML.test( value )) - { - if (value.length > 0) - { - var badDate = L_BadDate.replace("%1", promptengine_getDateSpec()); - alert ( badDate ); - } - else - alert ( (typeof L_Empty) != 'undefined'? L_Empty : L_NoValue ); - return false; - } - } - else if ( type == "dt" ) - { - var regex = promptengine_getDateTimeRegex(); - if((regex == null || !regex.test(value)) && ! regDateTime.test ( value ) && !regDateTimeHTML.test( value )) - { - if (value.length > 0) - { - var badDateTime = L_BadDateTime.replace("%1", promptengine_getDateSpec()); - alert ( badDateTime ); - } - else - alert ( (typeof L_Empty) != 'undefined'? L_Empty : L_NoValue ); - return false; - } - } - else if ( type == 't' && ! regTime.test ( value ) && !regTimeHTML.test( value ) ) - { - if (value.length > 0) - alert ( L_BadTime ); - else - alert ( (typeof L_Empty) != 'undefined'? L_Empty : L_NoValue ); - - return false; - } - - //by default let it go... - return true; -} - -function promptengine_checkRangeBoundValue ( - value, - type ) -{ - if (value == null || value.length == 0) - { - alert ( (typeof L_Empty) != 'undefined'? L_Empty : L_NoValue ); - return false; - } - - return promptengine_checkValue(value, type); -} - -function promptengine_isSubmitEvent(evt) -{ - if (isNetscape) - { - if (evt.which == ENTER_KEY && (evt.target.type == "text" || evt.target.type == "password")) - return true; - } - else - { - if (window.event.keyCode == ENTER_KEY && (window.event.srcElement.type == "text" || window.event.srcElement.type == "password")) - return true; - } - - return false; -} - -function promptengine_isEnterKey(evt) -{ - if (isNetscape) - { - if (evt.which == ENTER_KEY && evt.target.tagName.toLowerCase() != "a") - return true; - } - else - { - if (window.event.keyCode == ENTER_KEY && window.event.srcElement.tagName.toLowerCase() != "a") - return true; - } -} - -//This function should only be called from the COM components. -//Use encodeURIComponent for Java -function promptengine_urlEncode(strToBeEncoded) -{ - var encodedString = new String(""); - for( var i = 0; i < strToBeEncoded.length; i++ ) - { - var nextChar = strToBeEncoded.charAt(i); - switch( nextChar ) - { - //Unsafe characters - case '%': - { - encodedString += "%25"; - break; - } - case '+': - { - encodedString += "%2B"; - break; - } - case ' ': - { - encodedString += "%20"; - break; - } - case '<': - { - encodedString += "%3C"; - break; - } - case '>': - { - encodedString += "%3E"; - break; - } - case '"': - { - encodedString += "%22"; - break; - } - case '\'': - { - encodedString += "%27"; - break; - } - case '#': - { - encodedString += "%23"; - break; - } - case '{': - { - encodedString += "%7B"; - break; - } - case '}': - { - encodedString += "%7D"; - break; - } - case '|': - { - encodedString += "%7C"; - break; - } - case '\\': - { - encodedString += "%5C"; - break; - } - case '^': - { - encodedString += "%5E"; - break; - } - case '~': - { - encodedString += "%7E"; - break; - } - case '`': - { - encodedString += "%60"; - break; - } - case '[': - { - encodedString += "%5B"; - break; - } - case ']': - { - encodedString += "%5D"; - break; - } - //Reserved characters - case ';': - { - encodedString += "%3B"; - break; - } - case '/': - { - encodedString += "%2F"; - break; - } - case '?': - { - encodedString += "%3F"; - break; - } - case ':': - { - encodedString += "%3A"; - break; - } - case '@': - { - encodedString += "%40"; - break; - } - case '=': - { - encodedString += "%3D"; - break; - } - case '&': - { - encodedString += "%26"; - break; - } - default: - { - encodedString += nextChar; - break; - } - } - } - - return encodedString; -} - -function promptengine_CancelRightClick(evt) -{ - if (isNetscape) - { - if (evt.target.type != "text" && evt.target.type != "textarea") - { - evt.preventDefault(); - evt.cancelBubble = true; - return true; - } - } - else - { - if (window.event.srcElement.type != "text" && window.event.srcElement.type != "textarea") - { - window.event.cancelBubble = true; - window.event.returnValue = false; - } - } -} - -function promptengine_showHidePromptByKey(fieldSetId, imgId, currentImgPath, changeImgPath, evt) -{ - var correctKey = false; - var fieldSet = document.getElementById(fieldSetId); - - if (fieldSet == null) - return; - - if (isNetscape) - { - if ( (evt.which == LEFT_ARROW_KEY && fieldSet.style.display == "") || - (evt.which == RIGHT_ARROW_KEY && fieldSet.style.display == "none") ) - correctKey = true; - } - else - { - if ( (window.event.keyCode == LEFT_ARROW_KEY && fieldSet.style.display == "") || - (window.event.keyCode == RIGHT_ARROW_KEY && fieldSet.style.display == "none") ) - correctKey = true; - } - - if (correctKey == true) - promptengine_showHidePrompt(fieldSetId, imgId, currentImgPath, changeImgPath, evt) -} - -function promptengine_showHidePrompt(fieldSetId, imgId, currentImgPath, changeImgPath, evt) -{ - var imgElem; - imgElem = document.getElementById(imgId); - - if (imgElem!= null && fieldSetId != null) - { - if (!imgElem.origImage) - imgElem.origImage = imgElem.src; - - var fieldSet = document.getElementById(fieldSetId); - if (fieldSet != null) - { - if (fieldSet.style.display == "") - fieldSet.style.display = "none"; - else - fieldSet.style.display = ""; - - if (!imgElem.changed || imgElem.changed == false) - { - imgElem.src = changeImgPath; - imgElem.changed = true; - } - else - { - imgElem.src = currentImgPath; - imgElem.changed = false; - } - } - } -} - -function promptengine_scrollTo(elt) -{ - if (!elt) return; - - var offsetTop = elt.offsetTop; - if (!offsetTop) return; - - var myOffsetParent = elt.offsetParent; - while( myOffsetParent ) - { - offsetTop += myOffsetParent.offsetTop; - myOffsetParent = myOffsetParent.offsetParent; - } - - window.scrollTo(0, offsetTop); -} - - /* Crystal Decisions Confidential Proprietary Information */ diff --git a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_prompts2.js b/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_prompts2.js deleted file mode 100644 index 0c22ba392..000000000 --- a/aspnet_client/system_web/4_6_81/crystalreportviewers/prompting/js/promptengine_prompts2.js +++ /dev/null @@ -1,3405 +0,0 @@ -/* Copyright (c) Business Objects 2006. All rights reserved. */ -var PE_VALUE_DESC_SEPARATOR = ' - '; - -if(typeof(_pe) == 'undefined') { - -_pe = new function() -{ -var o=this -o._ie=(document.all!=null)?true:false -o._dom=(document.getElementById!=null)?true:false -o._isQuirksMode = (document.compatMode != 'CSS1Compat'); -o._moz=o._dom&&!o._ie -o._appVer=navigator.appVersion.toLowerCase(); -o._mac=(o._appVer.indexOf('macintosh')>=0)||(o._appVer.indexOf('macos')>=0); -o._userAgent=navigator.userAgent?navigator.userAgent.toLowerCase():null -o._saf=o._moz&&(o._userAgent.indexOf("safari")>=0) -o._ie6=o._ie&&(o._appVer.indexOf("msie 6")>=0) - -o._root = '' -o._images= o._root + '/images/' - -// prompt section -o._prompts=new Array -o._lovBS=1000 - -o._st='s' -o._nm='n' -o._cy='c' -o._bo='b' -o._da='d' -o._tm='t' -o._dt='dt' - -_BlockWaitWidgetID = "PEBlockWidgetID" - -// dialog secion -o._theLYR=null -o._dlgResize=null -o._widgets=new Array -o.DlgBox_modals=new Array; -o.DlgBox_instances=new Array -o.DlgBox_current=null - -o._show='visible' -o._hide='hidden' -o._hand=o._ie?"hand":"pointer" - -// functions -o.init=PE_init -o.canSubmit=PE_canSubmit -o.beginBlocking=PE_beginBlocking -o.endBlocking=PE_endBlocking - -// commands -o.setLOVMsg=PE_setLOVMsg -} -} - -function PE_init(root,lovBS) -{ -var o=this -if (root && root.length > 0) -{ -if (root.charAt(root.length - 1)!='/') root += '/' -o._root = root -o._images = root + 'images/' -} -else -{ -o._root = null -o._images = null -} -if(lovBS>0) o._lovBS=lovBS -} - -function PE_canSubmit() -{ -return (this.DlgBox_current) ? false : true -} - -/* -Commands: -cmd=lov (get values from the active prompt) -ap(active prompt id) -*/ -function PE_setLOVMsg(form,vid,pid) -{ -var fl=document.getElementById(vid); -var fv=fl.value; - -if (fv.length > 0) fv += "&"; -fv += "cmd=1&ap" + "=" + pid; - -fl.value=fv -} - -var DateTimeFormatSetting = { -"datePattern":"Y-M-D", -"isTwoDigitMonth":true, -"isTwoDigitDay":true, -"dateRegex":null, -"dateTimeRegex":null -}; - -/////////////////////////////// -// functions for DateTimeFormatSetting -function promptengine_getDatePattern() -{ - return DateTimeFormatSetting.datePattern; -} - -function promptengine_setDatePattern(pattern) -{ - DateTimeFormatSetting.datePattern = pattern; -} - -function promptengine_getIsTwoDigitMonth() -{ - return DateTimeFormatSetting.isTwoDigitMonth; -} - -function promptengine_setIsTwoDigitMonth(isTwoDigitMonth) -{ - DateTimeFormatSetting.isTwoDigitMonth = isTwoDigitMonth; -} - -function promptengine_getIsTwoDigitDay() -{ - return DateTimeFormatSetting.isTwoDigitDay; -} - -function promptengine_setIsTwoDigitDay(isTwoDigitDay) -{ - DateTimeFormatSetting.isTwoDigitDay = isTwoDigitDay; -} - -function promptengine_getDateRegex() -{ - return DateTimeFormatSetting.dateRegex; -} - -function promptengine_setDateRegex(dateRegex) -{ - DateTimeFormatSetting.dateRegex = dateRegex; -} - -function promptengine_getDateTimeRegex() -{ - return DateTimeFormatSetting.dateTineRegex; -} - -function promptengine_setDateTimeRegex(dateTineRegex) -{ - DateTimeFormatSetting.dateTineRegex = dateTineRegex; -} - -//////////////////////////////////////////// -// helper functions duplicate in dhtml lib -function _convStr(s,nbsp,br) -{ -s=''+s -var ret=s.replace(/&/g,"&").replace(//g,">").replace(/"/g,""") -if (nbsp) -ret=ret.replace(/ /g," ") -if (br) -ret=ret.replace(/\n/g,"
    ") -return ret -} - -function _opt(val,txt,sel) -{ -return '' -} - -function _canScanFrames(w) -{ -var ex=true,d=null -if (_pe._moz) -{ -_oldErrHandler=window.onerror -window.onerror=localErrHandler -} -try -{ -d=w.document -ex=false -} -catch(expt) -{ -} -if (_pe._moz) -window.onerror=_oldErrHandler -return (!ex&&(d!=null)) -} - -function _restoreAllDisabledInputs(win,level) -{ -if (_pe._ie&&window._peInputStackLevel!=null) -{ -win=win?win:window -if (_canScanFrames(win)) -{ -if (level==null) -level=--window._peInputStackLevel -var b=win.document.body,arr=b?b.getElementsByTagName("SELECT"):null,len=arr?arr.length:0 -for (var i=0;i

    C?GVJhQ3=weWp|rm1|#&f#UMhm#N>+Ya>X{jD=cx(D{aU0k74fq zxm~&}x_9s1#ywcPsdern+-uQUaYRbXeS{eO9N7&W6$AOP*9S`e%-q>_+x_k%k@vyu z4DF@@9h58TW%pgOw3XFAi_84=va|uwW@!((uHs_}ES8VGpHMEwL=?2=la&e=tiu{ABLJC_q-j^u{5z!t_aH&n{2hXwaDAaR=bTBdg~ReB~lz7 zhKwp&*l(&~wYuCXMiYFJ5{x{pB{)R6ycpEAul_?2mtQ|)LDoCkIzN&av!Q-4QQx&j z7Apc&xn~}&Frm~hGj!Ao%kE90U6sOo!<=Paz?Z7<1}|xNOG`U`pQxXNgLKtZd{tKg zv)>-MqSF?n*W=;0`Mk@_IUA7k?A-d{q+id|Oh6;&SO0P7;N@kxq2}xe$+m;lraTW|Qu&-&xAt z^=-8XE2{aO5w-4j{9-bG>ZIBqXH#}yBkdtx2Pm?3tqQD_E@`f^mR8eQ`p#RRDa~-R z@T$YS(W>R1#49>>s2X>i!Gl`7WXzq2X&0^(X8>ZX^jAhE#KirnOOGqwfbqgwJaKAl zoCVsz9sQYcq9u)kuGLPl#8J)eokXuQ4AKbFz7$A}r;SZ^kk2jpUfvk>F!el59;O#U z(}|S22GW9VVp@d|A)YEGs}ve5CQiFa4AzEKhs3oJjxxN6& zXw8z{ke|y>!*Zbkq@3J}J<@n*#aGe*Jho2cmqhVYZaBW|k1zYn?wyeVvb!M?FIP0k z6+7wtk&$@pu?6`9$oO-*2>zKKzOn@$A%C{5?4>99b+N7TE}Y6`IssGM`*A1FRg@_% zz(Dt6AkS7gxB`QCYP?v(Lv+s|KG|&Y{{iNp+a8DZr2xH72M@Al_~5UGhv^u?vz53M zcVR&GBVx^fU>#(S;WyqX{i}f06 zCy$}s8@LB`tCs~{jgKaPwWG-5P^`{el&k@YXT4WGm-W-?ScoqR(0k7CfRMw5-${nWT7HVOexXM!YmMI>j7FMUzDFgr#_xVIh18h4)gUH2C8p*3wdb zK@eu4o%~o<@oZw#KLwHH^JehRbieCkX$jO2Es+M>n)^8Xk*ffydiSvxB6M#kQMuNx z)03m%~VzSyGq96e)q zy2!k<-Fd|+^v*hBs~s92m9h;D6B|V`C(V$9XBnhGB5c(3+R1WG@EVvy9KRg z-DCa+X6)l|dRp5gzY z^+djdcLpw1Vmm{XwlNdluI2hjcJE-ncSKdvHm;I3vYY88DbzU&p_*a}UdM*mezO<; zJL-?~n?XIzItuFP_n@9esJAW9)YHWd@)p-mxl0znDrMG2Q1>$^I&wH;^f+BH?O-n* zh2ep>Uv@C{D9*7BcsrnloS9o}caHu^CpBJ=2EjFt;n8P(pId_=Of36tw&(gp)9SyV zXZQi`6T*4xX{}MNoMata43CULXJiWbX_T|~V&3LNE)BT{MCsDYSS&D1u)Y%diJ)lKbO7;@{1w6p6F`Ojn@sVgw& zjuey8tQx4DXs&~Ba-x24dX%5#e^v!X0XkiD>&fjej?-MNk7{T0@wdclXY;PNq(bAE z->QEz-oCKxwtJeeF%^x*|I!B?&e6cY^z`VkSoLO*af+)x+lGD4%8_-`?P7wn zGFd`Zju$!Vibh5~4RjO(^fb_)(bJ&jJ(POQ`-MbLy@H%9^Qg^aNP<1~vBjh=cXHnx zb$O1uJWE}k$&$CC<71vQL{o5PT2&&lb5UOI7CcU@s~lKYIY_QdYbvst>$Z?zi{|s? zce1rVb#wT=C?47yf9=um(C9Rha4%q)F-eP)!b%}d?Di*z(bM4UgxTzoakOX3H#fT^|hMY$N3g6xNq7%tL4X9`y&N)m2#Dkp8V zRdIxWX{$A3dvTUbr3fjNtx6JC9Y{XPzI_;(q-pz!XqTI(q^HD@VAF2X`J5n=UG!&C zn-|d;yhS<}gOQ`uOib_*+IVIM=ncF(0qRG`~|k!-KeUT zLC2KRo-J~lrhwtxu|*3PXA7cf9@tBhh{z+|X++W@P$Wx-pP0`{7z#36jq=p=RB=L8 z?rcHK4DH2a2%F!_wmuhc;`@}?C=iM_Op1~OO&GD#Q7-<3_Q9kB`w&|xl{q#NF7C)} zn!D&49GgnMHP;~yLDU%zC5%t(@dvwAD(Z&>L+a2=YpX^6Q$(7mm{nOf@7rEJ0fQ0Xs>Exp6w zQT3|JwQ8`>9-u13e8fr&E5#s$L5+w0?U zVApByB&%;c_ko=GEhhoZZg91T1FLe)((v51w9T4qz`5R1Aosp%}z-Ozu)xyeE${O^ccik>5>BllZA+#~F7gNK^WUFyS3>){v z4E>H+3g1k{>Luyb%Tm^mlV?s?nQJd4@TG(7uZY`+(^o0`{jn%3ZqWiE163oBOF ztV}l9YVk@z&0c&BKfXh6>djnIP&`=ogHYkqNHY&VGqR85RtWImgnucvyQg3S@;b~$ zi`Vy8!{Xhj6yw0R^OC`DkRaq=eg#DcRe*SbH?;Y7)JGSXN}y%;-ba3KF%;;Kh2Jy- zYLW(vCRbseElAgZF;U22DzPjh!vft{^UXWhpV}&wb=|MkcA$1VbR~*Ky6*%(PjawB zdH_4Q2Xk%7umyZ84r*bZHo{;cfw3qkH$f32ZeQlRT9~zZn9I0|2p$l}>Nj0R`tlD` zuoSjH57u8qI9z!~-cpveg{Y&`Aa$o&&e|U!vCirv z)-n9tQmk0pdy93NF4m#Fbbshd)FidopI3uLirg0~(jD0436fFcu@>R%Nl~gL0>}C&8}h#NZnKL5oUY% zG$m|Nv!O|{7}!jvq9WIdbo-LsP{#~4ggx;L?*Bop�zvCnOl2j_@NxujLLp+co6y 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%0DXO|Yv3tAnaKE3^omSYTZSL#Dw>p~rR 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%0D?PC7RI?$@gpdB=>Cn;$*XSq^n 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

    pk>je0a`f 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%0Au*om*EcW_Yz^3SG(J;{|Y;F=3jWxp{ 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