Properties SourceCde
txt
1
*&---------------------------------------------------------------------*
2
*&  Include           ZSOFTCOPY_HTML_BASE                              *
3
*&                                                                     *
4
*&---------------------------------------------------------------------*
5
*&                                                                     *
6
*& This file is part of ZSOFTCOPY.                                     *
7
*&                                                                     *
8
*& ZSOFTCOPY is free software: you can redistribute it and/or modify   *
9
*& it under the terms of the GNU General Public License as published   *
10
*& by the Free Software Foundation, either version 3 of the License,   *
11
*& or any later version.                                               *
12
*&                                                                     *
13
*& ZSOFTCOPY is distributed in the hope that it will be useful,        *
14
*& but WITHOUT ANY WARRANTY; without even the implied warranty of      *
15
*& MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the       *
16
*& GNU General Public License for more details.                        *
17
*&                                                                     *
18
*& You should have received a copy of the GNU General Public License   *
19
*& along with ZDOWNLOAD. If not, see <http://www.gnu.org/licenses/>.   *
20
*&                                                                     *
21
*&---------------------------------------------------------------------*
22
*&                                                                     *
23
*&  Author:     Ruediger von Creytz     ruediger.creytz@globalbit.net  *
24
*&  Copyright:  globalBIT, LLC          http://www.globalbit.net       *
25
*&                                                                     *
26
*&---------------------------------------------------------------------*
27
 
28
 
29
*-----------------------------------------------------------------------
30
* html_base
31
*-----------------------------------------------------------------------
32
FORM html_base.
33
  PERFORM html_base_about.
34
  PERFORM html_base_gpl.
35
  PERFORM html_base_index.
36
  PERFORM html_base_default_main.
37
ENDFORM.                    "html_base
38
 
39
 
40
*-----------------------------------------------------------------------
41
* html_base_about
42
*-----------------------------------------------------------------------
43
FORM html_base_about.
44
 
45
  DATA:
46
  ls_html TYPE string,
47
  lt_html TYPE it_string,
48
  l_laiso TYPE laiso,
49
  l_sptxt TYPE sptxt,
50
  l_gpl TYPE string,
51
  l_link TYPE string.
52
 
53
  PERFORM get_spras USING sy-langu l_laiso l_sptxt.
54
 
55
  l_gpl = txt_product_under_gpl.
56
  CONCATENATE
57
    '<a href="GPL.' gc_extension_htm '"'
58
    ' onclick="parent.openDropDownLink(''gpl'');return false">'
59
    'GNU General Public License'
60
    '</a>'
61
    INTO l_link.
62
  PERFORM replace_single
63
    USING '#GPL#' l_link
64
    CHANGING l_gpl.
65
 
66
  CONCATENATE
67
    '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"'
68
    ' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'
69
    INTO ls_html.
70
  APPEND ls_html TO lt_html.
71
  CONCATENATE
72
    '<html xmlns="http://www.w3.org/1999/xhtml"'
73
    ' xml:lang="' l_laiso '" lang="' l_laiso '">'
74
      '<head>'
75
        '<title>'
76
          '&#x53;&#x6f;&#x66;&#x74;&#x43;&#x6f;&#x70;&#x79;'
77
        '</title>'
78
    INTO ls_html.
79
  APPEND ls_html TO lt_html.
80
  PERFORM html_add_meta CHANGING lt_html.
81
  APPEND '<script type="text/javascript"><!--' TO lt_html.
82
  CONCATENATE
83
    'if(top==self){'
84
      'window.location.href="../index.' gc_extension_htm '";'
85
    '}'
86
    INTO ls_html.
87
  APPEND ls_html TO lt_html.
88
  APPEND '//--></script>' TO lt_html.
89
  APPEND '<style type="text/css">' TO lt_html.
90
  CONCATENATE
91
    'h1 {'
92
      'color:black;'
93
      'font-family:arial;'
94
      'font-size:30px;'
95
      'font-style:normal;'
96
      'font-weight:bold;'
97
      'text-decoration:none;'
98
    '}'
99
    'table {'
100
      'width:100%;'
101
    '}'
102
    'td {'
103
      'font-family:arial;'
104
      'font-size:12px;'
105
      'vertical-align:middle;'
106
      'width:100%;'
107
    '}'
108
    INTO ls_html.
109
  APPEND ls_html TO lt_html.
110
  CONCATENATE
111
        '</style>'
112
      '</head>'
113
      '<body>'
114
        '<table>'
115
          '<tr>'
116
            '<td>'
117
              '<h1>'
118
                '&#x53;&#x6f;&#x66;&#x74;&#x43;&#x6f;&#x70;&#x79;'
119
              '</h1>'
120
            '</td>'
121
          '</tr>'
122
          '<tr>'
123
            '<td>'
124
              txt_version ':&#160;' gc_version
125
            '</td>'
126
          '</tr>'
127
          '<tr>'
128
            '<td>'
129
              '&#160;'
130
            '</td>'
131
          '</tr>'
132
          '<tr>'
133
            '<td>'
134
              '&#xa9;2008-' gc_version+0(4) ' globalBIT, LLC.'
135
              '<br/>'
136
              txt_all_rights_reserved
137
            '</td>'
138
          '</tr>'
139
          '<tr>'
140
            '<td>'
141
              '&#160;'
142
            '</td>'
143
          '</tr>'
144
          '<tr>'
145
            '<td>'
146
              l_gpl
147
            '</td>'
148
          '</tr>'
149
        '</table>'
150
      '</body>'
151
    '</html>'
152
    INTO ls_html.
153
  APPEND ls_html TO lt_html.
154
 
155
  PERFORM download
156
    USING
157
      lt_html
158
      'MENU'
159
      'HELP'
160
      'about'
161
      gc_extension_htm
162
      abap_false.
163
ENDFORM.                    "html_base_about
164
 
165
 
166
*-----------------------------------------------------------------------
167
* html_base_default_main
168
*-----------------------------------------------------------------------
169
FORM html_base_default_main.
170
 
171
  DATA:
172
  ls_html TYPE string,
173
  lt_html TYPE it_string,
174
  l_laiso TYPE laiso,
175
  l_sptxt TYPE sptxt.
176
 
177
  PERFORM get_spras USING sy-langu l_laiso l_sptxt.
178
 
179
  CONCATENATE
180
    '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"'
181
    ' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'
182
    INTO ls_html.
183
  APPEND ls_html TO lt_html.
184
  CONCATENATE
185
    '<html xmlns="http://www.w3.org/1999/xhtml"'
186
    ' xml:lang="' l_laiso '" lang="' l_laiso '">'
187
      '<head>'
188
        '<title>'
189
          '&#x53;&#x6f;&#x66;&#x74;&#x43;&#x6f;&#x70;&#x79;'
190
        '</title>'
191
    INTO ls_html.
192
  APPEND ls_html TO lt_html.
193
  PERFORM html_add_meta CHANGING lt_html.
194
  APPEND '<script type="text/javascript"><!--' TO lt_html.
195
  CONCATENATE
196
    'if(top==self){'
197
      'window.location.href="index.' gc_extension_htm '";'
198
    '}'
199
    INTO ls_html.
200
  APPEND ls_html TO lt_html.
201
  APPEND '//--></script>' TO lt_html.
202
  APPEND '<style type="text/css">' TO lt_html.
203
  CONCATENATE
204
    'h1{'
205
      'color:black;'
206
      'font-family:arial;'
207
      'font-size:30px;'
208
      'font-style:normal;'
209
      'font-weight:bold;'
210
      'text-decoration:none;'
211
    '}'
212
    'table{'
213
      'height:100%;'
214
      'width:100%;'
215
    '}'
216
    'td{'
217
      'height:100%;'
218
      'text-align:center;'
219
      'vertical-align:middle;'
220
      'width:100%;'
221
    '}'
222
    INTO ls_html.
223
  APPEND ls_html TO lt_html.
224
  CONCATENATE
225
        '</style>'
226
      '</head>'
227
      '<body>'
228
        '<table>'
229
          '<tr>'
230
            '<td>'
231
              '<h1>'
232
                '&#x53;&#x6f;&#x66;&#x74;&#x43;&#x6f;&#x70;&#x79;'
233
              '</h1>'
234
            '</td>'
235
          '</tr>'
236
        '</table>'
237
      '</body>'
238
    '</html>'
239
    INTO ls_html.
240
  APPEND ls_html TO lt_html.
241
 
242
  PERFORM download
243
    USING
244
      lt_html
245
      space
246
      space
247
      'default'
248
      gc_extension_htm
249
      abap_false.
250
ENDFORM.                    "html_base_default_main
251
 
252
 
253
*-----------------------------------------------------------------------
254
* GPL
255
*-----------------------------------------------------------------------
256
FORM html_base_gpl.
257
 
258
  DATA:
259
  l_title TYPE string,
260
  lt_html TYPE it_string.
261
 
262
*HTML
263
  PERFORM html_main_popupheader
264
    USING
265
      'GNU General Public License'
266
    CHANGING
267
      lt_html.
268
* Content
269
  PERFORM lic_gpl_html
270
    CHANGING
271
      l_title
272
      lt_html.
273
* Footer
274
  PERFORM html_main_popupfooter
275
    CHANGING lt_html.
276
*Download
277
  PERFORM download
278
    USING
279
      lt_html
280
      'MENU'
281
      'HELP'
282
      'GPL'
283
      gc_extension_htm
284
      abap_false.
285
 
286
ENDFORM.                    "html_base_gpl
287
 
288
 
289
*-----------------------------------------------------------------------
290
* html_base_index
291
*-----------------------------------------------------------------------
292
FORM html_base_index.
293
 
294
  DATA:
295
  ls_html TYPE string,
296
  lt_html TYPE it_string,
297
  lt_prop TYPE it_prop,
298
  l_laiso TYPE laiso,
299
  l_sptxt TYPE sptxt,
300
  l_height TYPE string,
301
  l_width TYPE string,
302
  l_props TYPE string,
303
  l_uri_props TYPE string.
304
 
305
  CONSTANTS:
306
  l_c_info_height TYPE i VALUE 400,
307
  l_c_info_width TYPE i VALUE 600.
308
 
309
  FIELD-SYMBOLS:
310
  <ls_prop> TYPE st_prop.
311
 
312
  PERFORM get_spras USING sy-langu l_laiso l_sptxt.
313
 
314
  CONCATENATE
315
    '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"'
316
    ' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'
317
    INTO ls_html.
318
  APPEND ls_html TO lt_html.
319
  CONCATENATE
320
    '<html xmlns="http://www.w3.org/1999/xhtml"'
321
    ' xml:lang="' l_laiso '" lang="' l_laiso '">'
322
      '<head>'
323
        '<title>'
324
          '&#x53;&#x6f;&#x66;&#x74;&#x43;&#x6f;&#x70;&#x79;'
325
        '</title>'
326
    INTO ls_html.
327
  APPEND ls_html TO lt_html.
328
  PERFORM html_add_meta CHANGING lt_html.
329
  APPEND '<script type="text/javascript">' TO lt_html.
330
  APPEND '<!--' TO lt_html.
331
*global attributes
332
  CONCATENATE
333
    'var popupCallbacks=new Array();'
334
    'var popupClicked="";'
335
    'var popupMouseX=0;'
336
    'var popupMouseY=0;'
337
    'var popupValues=new Array();'
338
    'var resizeMouseX=0;'
339
    INTO ls_html.
340
  APPEND ls_html TO lt_html.
341
*props
342
  PERFORM get_props CHANGING lt_prop.
343
  ls_html = 'var props=new Array(new Array("page","index")'.
344
  l_props = 'page=index'.
345
  LOOP AT lt_prop ASSIGNING <ls_prop>.
346
    CONCATENATE ls_html
347
      ',new Array("' <ls_prop>-name '","' <ls_prop>-value '")'
348
      INTO ls_html.
349
    CONCATENATE l_props '&amp;' <ls_prop>-name '=' <ls_prop>-value
350
      INTO l_props.
351
  ENDLOOP.
352
  l_uri_props = l_props.
353
  PERFORM encode_uri CHANGING l_uri_props.
354
  CONCATENATE ls_html ');' INTO ls_html.
355
  APPEND ls_html TO lt_html.
356
*addFrame
357
  CONCATENATE
358
    'function addFrame() {'
359
      'var mySearch=window.location.search;'
360
      'if(mySearch.length>10){'
361
        'if(mySearch.indexOf("?")>=0){'
362
          'mySearch=mySearch.substring('
363
            'mySearch.indexOf("?")+1,'
364
            'mySearch.length'
365
          ');'
366
        '}'
367
        'var myProps=mySearch.split("&");'
368
        'var myPgmid="";'
369
        'var myObject="";'
370
        'var myObjName="";'
371
        'for(var i=0;i<myProps.length;i++){'
372
          'var myProp=myProps[i].split("=");'
373
          'switch(myProp[0]){'
374
            'case "pgmid":'
375
              'myPgmid=myProp[1];'
376
              'break;'
377
            'case "object":'
378
              'myObject=myProp[1];'
379
              'break;'
380
            'case "obj_name":'
381
              'myObjName=myProp[1];'
382
              'break;'
383
          '}'
384
        '}'
385
        'showObject(myPgmid+"_"+myObject, myObjName);'
386
      '}'
387
      'else{'
388
        'showObject();'
389
      '}'            '}'
390
      INTO ls_html.
391
  APPEND ls_html TO lt_html.
392
*closeDropDownMenus()
393
  CONCATENATE
394
    'function closeDropDownMenus(){'
395
      'var elem=document.getElementById("tm_help");'
396
      'if(elem) {'
397
        'elem.style.display="none";'
398
        'elem.style.visibility="hidden";'
399
      '}'
400
      'var elem=document.getElementById("tm_menu");'
401
      'if(elem) {'
402
        'elem.style.display="none";'
403
        'elem.style.visibility="hidden";'
404
      '}'
405
      'elem=document.getElementById("tm_system");'
406
      'if(elem) {'
407
        'elem.style.display="none";'
408
        'elem.style.visibility="hidden";'
409
      '}'
410
    '}'
411
    INTO ls_html.
412
  APPEND ls_html TO lt_html.
413
*findLinkElem
414
  CONCATENATE
415
    'function findLinkElem(objID, objName){'
416
      'var aElems=document.getElementsByClassName("leafLink");'
417
      'for(var i=0; i<aElems.length; ++i){'
418
        'if(aElems[i].href.endsWith(objID+"/"+objName+".htm")){'
419
          'return aElems[i];'
420
        '}'
421
      '}'
422
      'return null;'
423
    '}'
424
    INTO ls_html.
425
  APPEND ls_html TO lt_html.
426
*getLinks
427
  CONCATENATE
428
    'function getLinks(id) {'
429
      'var links;'
430
      'switch(id){'
431
        'case "tm_menu":'
432
          'links=new Array('
433
            'new Array('
434
              '"first_page",'
435
              '"menu_first_page",'
436
              '"' txt_first_page '",'
437
              '"",""'
438
            ')'
439
          ');'
440
          'break;'
441
        'case "tm_system":'
442
          'links=new Array('
443
            'new Array('
444
              '"status",'
445
              '"system_status",'
446
              '"' txt_status '",'
447
              '"",""'
448
            '),'
449
            'new Array('
450
              '"kernel",'
451
              '"system_kernel",'
452
              '"' txt_kernel_information___1 '",'
453
              '"",""'
454
            '),'
455
            'new Array('
456
              '"component",'
457
              '"system_component",'
458
              '"' txt_component_information '",'
459
              '"",""'
460
            ')'
461
          ');'
462
          'break;'
463
        'case "tm_help":'
464
          'links=new Array('
465
            'new Array('
466
              '"about",'
467
              '"help_about",'
468
              '"' txt_about '",'
469
              '"",""'
470
            '),'
471
            'new Array('
472
              '"updates",'
473
              '"popup",'
474
              '"' txt_updates '",'
475
              '"http://www.globalbit.org/sc/updates?'
476
              'langu=' l_laiso '&#38;scver=' gc_version '",'
477
              '"' txt_updates '"'
478
            '),'
479
            'new Array('
480
              '"globalbit",'
481
              '"newWindow",'
482
              '"globalBIT",'
483
              '"http://www.globalbit.org",""'
484
            ')'
485
          ');'
486
          'break;'
487
        'default:'
488
          'links=new Array();'
489
      '}'
490
      'return links;'
491
    '}'
492
    INTO ls_html.
493
  APPEND ls_html TO lt_html.
494
*getProps
495
  CONCATENATE
496
    'function getProps(){'
497
      'return props;'
498
    '}'
499
    INTO ls_html.
500
  APPEND ls_html TO lt_html.
501
*init
502
  CONCATENATE
503
    'function init(){'
504
      'addFrame();'
505
      'makeFrameSize();'
506
    '}'
507
    INTO ls_html.
508
  APPEND ls_html TO lt_html.
509
*makeFrameSize
510
  CONCATENATE
511
    'function makeFrameSize(){'
512
      'var capElem=document.getElementById("cap");'
513
      'var contentElem=document.getElementById("content");'
514
      'var contentDivElem=document.getElementById("contentDiv");'
515
      'var linksElem=document.getElementById("links");'
516
      'var scElem=document.getElementById("sc");'
517
      'var scResizerElem=document.getElementById("scResizer");'
518
      'var winHeight=window.innerHeight;'
519
      'var winWidth=window.innerWidth;'
520
      'if(winHeight<4){winHeight=4;}'
521
      'if(winWidth<4){winWidth=4;}'
522
      'var capHeight=capElem.offsetHeight;'
523
      'var linksWidth=linksElem.offsetWidth;'
524
      'if(linksWidth+2>winWidth){'
525
        'linksWidth=winWidth-2;'
526
        'linksElem.style.width=winWidth-2 + "px";'
527
        'scResizerElem.style.left=winWidth-4 + "px";'
528
      '}'
529
      'var scHeightNew=winHeight-capHeight;'
530
      'var contentWidthNew=winWidth-linksWidth;'
531
      'scResizerElem.style.top=capHeight+"px";'
532
      'scElem.style.height=scHeightNew+"px";'
533
      'contentDivElem.style.height=scHeightNew+"px";'
534
      'contentElem.style.height=scHeightNew+"px";'
535
      'linksElem.style.height=scHeightNew+"px";'
536
      'scResizerElem.style.height=scHeightNew+"px";'
537
      'scElem.style.width=winWidth+"px";'
538
      'contentDivElem.style.width=contentWidthNew+"px";'
539
      'contentElem.style.width=contentWidthNew+"px";'
540
    '}'
541
    INTO ls_html.
542
  APPEND ls_html TO lt_html.
543
*openDropDownLink
544
  CONCATENATE
545
    'function openDropDownLink(elemId,url,title){'
546
      'closeDropDownMenus();'
547
      'switch(elemId) {'
548
        'case "help_about":'
549
          'showMenuObject('
550
            '"MENU_HELP/about.' gc_extension_htm '",'
551
            '"' txt_about '"'
552
          ');'
553
          'break;'
554
        'case "menu_first_page":'
555
          'showObject();'
556
          'break;'
557
        'case "gpl":'
558
          'showMenuObject('
559
            '"MENU_HELP/GPL.' gc_extension_htm '",'
560
            '"GNU General Public License"'
561
          ');'
562
          'break;'
563
        'case "newWindow":'
564
          'window.open(url);'
565
          'break;'
566
        'case "popup":'
567
          'showMenuObject(url,title);'
568
          'break;'
569
        'case "system_component":'
570
          'showMenuObject('
571
            '"MENU_SYSTEM/COMPONENT.' gc_extension_htm '",'
572
            '"' txt_system ':&#160;'
573
            txt_component_information '"'
574
          ');'
575
          'break;'
576
        'case "system_kernel":'
577
          'showMenuObject('
578
            '"MENU_SYSTEM/KERNEL.' gc_extension_htm '",'
579
            '"' txt_system ':&#160;'
580
            txt_kernel_information___1 '"'
581
          ');'
582
          'break;'
583
        'case "system_status":'
584
          'showMenuObject('
585
            '"MENU_SYSTEM/STATUS.' gc_extension_htm '",'
586
            '"' txt_system ':&#160;' txt_status '"'
587
          ');'
588
          'break;'
589
      '}'
590
    '}'
591
    INTO ls_html.
592
  APPEND ls_html TO lt_html.
593
*postResizeSc
594
  CONCATENATE
595
    'function postResizeSc(){'
596
      'resizeMouseX=0;'
597
      'document.onmousemove=null;'
598
      'document.onmouseup=null;'
599
      'var linksElem=document.getElementById("links");'
600
      'var scResizerElem=document.getElementById("scResizer");'
601
      'scResizerElem.style.width="4px";'
602
      'scResizerElem.style.left = linksElem.offsetWidth-2 + "px";'
603
    '}'
604
    INTO ls_html.
605
  APPEND ls_html TO lt_html.
606
*preResizeSc
607
  CONCATENATE
608
    'function preResizeSc(event){'
609
      'if(event){'
610
        'resizeMouseX=event.layerX;'
611
      '}'
612
      'var scResizerElem=document.getElementById("scResizer");'
613
      'scResizerElem.style.left="0px";'
614
      'scResizerElem.style.width=window.innerWidth+"px";'
615
      'document.onmousemove=resizeSc;'
616
      'document.onmouseout=postResizeSc;'
617
      'document.onmouseup=postResizeSc;'
618
    '}'
619
    INTO ls_html.
620
  APPEND ls_html TO lt_html.
621
*rebuildMenu
622
  CONCATENATE
623
    'function rebuildMenu(id,links){'
624
      'var elem = document.getElementById(id);'
625
      'if(elem == null){'
626
        'return;'
627
      '}'
628
      'var content;'
629
      'for(var i=0; i<links.length; i++){'
630
        'content += '''
631
          '<tr>'
632
            '<td class="topmenu_dropdown_td">'
633
              '<a class="topmenu_dropdown_link"'
634
              ' href="#" onclick="'
635
              'openDropDownLink(''+"''"+links[i][1]+"'',''"'
636
              '+links[i][3]+"'',''"+links[i][4]+"''"+'');'
637
              'return false">'
638
              '''+links[i][2]+'''
639
            '<''+''/td>'
640
          '<''+''/tr>'';'
641
      '}'
642
      'elem.getElementsByTagName("table")[0].innerHTML'
643
      ' = content;'
644
    '}'
645
    INTO ls_html.
646
  APPEND ls_html TO lt_html.
647
*resizeSc
648
  CONCATENATE
649
    'function resizeSc(event){'
650
      'var posX=event.pageX-resizeMouseX;'
651
      'if(posX<2){'
652
        'posX=2;'
653
      '}'
654
      'if(posX>window.innerWidth-2){'
655
        'posX=window.innerWidth-2;'
656
      '}'
657
      'var contentWidthNew=window.innerWidth-posX;'
658
      'var contentElem=document.getElementById("content");'
659
      'var contentDivElem=document.getElementById("contentDiv");'
660
      'var linksElem=document.getElementById("links");'
661
      'linksElem.style.width=posX+"px";'
662
      'contentDivElem.style.width=contentWidthNew+"px";'
663
      'contentElem.style.width=contentWidthNew+"px";'
664
    '}'
665
    INTO ls_html.
666
  APPEND ls_html TO lt_html.
667
*setObjectTitle
668
  CONCATENATE
669
    'function setObjectTitle(objID, objName){'
670
      'var objIDarr;'
671
      'var pgmid="";'
672
      'var object="";'
673
      'var title="SoftCopy";'
674
      'var name="";'
675
      'var ppID="";'
676
 
677
      'if(objID!=null){'
678
        'objIDarr=objID.split("_");'
679
        'if(objIDarr.length>1){'
680
          'pgmid=objIDarr[0];'
681
          'object=objIDarr[1];'
682
 
683
          'aElem=findLinkElem(objID, objName);'
684
          'if(aElem!=null){'
685
            'name=aElem.innerHTML;'
686
          '}'
687
        '}'
688
      '}'
689
 
690
 
691
 
692
      'switch(pgmid){'
693
        'case "R3TR":'
694
          'switch(object){'
695
            'case "CLAS":'
696
              'title="' tpt_seo_clas '";'
697
              'break;'
698
            'case "DOMA":'
699
              'title="' tpt_ddic_doma '";'
700
              'break;'
701
            'case "DTEL":'
702
              'title="' tpt_ddic_dtel '";'
703
              'break;'
704
            'case "ENQU":'
705
              'title="' tpt_ddic_enqu '";'
706
              'break;'
707
            'case "FUGR":'
708
              'ppID=aElem.parentElement.parentElement.id;'
709
              'if(ppID="R3TR_FUGR"){'
710
                'title="' tpt_fugr_fugr '";'
711
              '}'
712
              'else if(ppID.startsWith("fugr_fuba")){'
713
                'title="' tpt_fugr_fuba '";'
714
              '}'
715
              'else if(ppID.startsWith("fugr_scr")){'
716
                'title="' tpt_fugr_scr '";'
717
              '}'
718
              'else if(ppID.startsWith("fugr_incl")){'
719
                'title="' tpt_fugr_incl '";'
720
              '}'
721
              'break;'
722
            'case "INTF":'
723
              'title="' tpt_seo_intf '";'
724
              'break;'
725
            'case "MSAG":'
726
              'title="' tpt_msag '";'
727
              'break;'
728
            'case "PARA":'
729
              'title="' tpt_para '";'
730
              'break;'
731
            'case "PROG":'
732
              'ppID=aElem.parentElement.parentElement.id;'
733
              'if(ppID="prog_1"){'
734
                'title="' tpt_prog_repo '";'
735
              '}'
736
              'else if(ppID="prog_I"){'
737
                'title="' tpt_prog_incl '";'
738
              '}'
739
              'break;'
740
            'case "SHLP":'
741
              'title="' tpt_ddic_shlp '";'
742
              'break;'
743
            'case "SUSO":'
744
              'title="' tpt_tobj '";'
745
              'break;'
746
            'case "TABL":'
747
              'ppID=aElem.parentElement.parentElement.id;'
748
              'if(ppID="R3TR_TABL_2"){'
749
                'title="' tpt_ddic_tabl '";'
750
              '}'
751
              'else if(ppID="R3TR_TABL_VIEWAPPEND"){'
752
                'title="' tpt_ddic_stru '";'
753
              '}'
754
              'break;'
755
            'case "TRAN":'
756
              'title="' tpt_tran '";'
757
              'if(aElem.id==null || aElem.id==""){'
758
              '}'
759
              'else if(aElem.id.startsWith("R3TR_TRAN_'
760
                  gc_tcode_dialog '")){'
761
                'title="' tpt_tran_dialog '";'
762
              '}'
763
              'else if(aElem.id.startsWith("R3TR_TRAN_'
764
                  gc_tcode_object '")){'
765
                'title="' tpt_tran_obj '";'
766
              '}'
767
              'else if(aElem.id.startsWith("R3TR_TRAN_'
768
                  gc_tcode_parameter '")){'
769
                'title="' tpt_tran_param '";'
770
              '}'
771
              'else if(aElem.id.startsWith("R3TR_TRAN_'
772
                  gc_tcode_report '")){'
773
                'title="' tpt_tran_repo '";'
774
              '}'
775
              'else if(aElem.id.startsWith("R3TR_TRAN_'
776
                  gc_tcode_variant '")){'
777
                'title="' tpt_tran_vari '";'
778
              '}'
779
              'break;'
780
            'case "TTYP":'
781
              'title="' tpt_ddic_ttyp '";'
782
              'break;'
783
            'case "TYPE":'
784
              'title="' tpt_ddic_type '";'
785
              'break;'
786
            'case "VIEW":'
787
              'title="' tpt_ddic_view '";'
788
              'break;'
789
            'case "WAPA":'
790
              'title="' tpt_o2_wapa '";'
791
              'if(aElem.id==null || aElem.id==""){'
792
              '}'
793
              'else if(aElem.id.startsWith("bsp")){'
794
                'title="' txt_page '";'
795
              '}'
796
              'else if(aElem.id.startsWith("ctrl")){'
797
                'title="' tpt_o2_wapa_ctrl '";'
798
              '}'
799
              'else if(aElem.id.startsWith("incl")){'
800
                'title="' txt_page '";'
801
              '}'
802
              'else if(aElem.id.startsWith("mime")){'
803
                'title="' tpt_o2_wapa_page '";'
804
              '}'
805
              'else if(aElem.id.startsWith("view")){'
806
                'title="' tpt_o2_wapa_page '";'
807
              '}'
808
              'break;'
809
            'case "WTAG":'
810
              'title="' tpt_o2_wtag '";'
811
              'break;'
812
            'case "XSLT":'
813
              'title="' tpt_o2_xslt '";'
814
              'break;'
815
          '}'
816
          'break;'
817
      '}'
818
      'setTitle(title.replace("#NAME_VALUE#", name));'
819
    '}'
820
    INTO ls_html.
821
  APPEND ls_html TO lt_html.
822
*setTitle
823
  CONCATENATE
824
    'function setTitle(theTitle){'
825
      'closeDropDownMenus();'
826
      'var elem;'
827
      'var myCaption;'
828
      'var myTitle;'
829
      'myTitle="SoftCopy";'
830
      'if(theTitle==null || theTitle==""){'
831
        'myCaption = myTitle;'
832
      '}'
833
      'else {'
834
        'myCaption=theTitle;'
835
        'myTitle+=" - "+theTitle;'
836
      '}'
837
      'document.title=myTitle;'
838
      'elem=document.getElementById("title");'
839
      'elem.innerHTML=myCaption;'
840
    '}'
841
    INTO ls_html.
842
  APPEND ls_html TO lt_html.
843
*showMenuObject
844
  l_height = l_c_info_height.
845
  CONDENSE l_height.
846
  l_width = l_c_info_width.
847
  CONDENSE l_width.
848
  CONCATENATE
849
    'function showMenuObject(url, caption){'
850
      'closeDropDownMenus();'
851
      'var content=''<iframe frameborder="0"'
852
        ' height="' l_height '"'
853
        ' id="infoscroll" scrolling="auto"'
854
        ' src="''+url+''"'
855
        ' width="' l_width '"><''+''/iframe>'';'
856
      'displayPopupLayer("info",caption,content);'
857
    '}'
858
    INTO ls_html.
859
  APPEND ls_html TO lt_html.
860
*showObject
861
  CONCATENATE
862
    'function showObject(objID, objName, target, caption){'
863
      'var src="default.htm";'
864
      'if(objName!=null){'
865
        'src=objID+"/"+objName+".htm";'
866
      '}'
867
      'if(target=="POPUP"){'
868
        'showMenuObject(src,caption);'
869
      '}'
870
      'else{'
871
        'var height=400;'
872
        'var width=400;'
873
        'var contentElem=document.getElementById("content");'
874
        'if(contentElem){'
875
          'height=contentElem.offsetHeight;'
876
          'width=contentElem.offsetWidth;'
877
        '}'
878
        'document.getElementById("contentDiv").innerHTML'
879
        '=''<iframe class="content" frameborder="0" id="content"'
880
        ' name="content" scrolling="auto" src="''+src+''"'
881
        ' style="height:''+height+''px;width:''+width+''px">'
882
        '</iframe>'';'
883
        'setObjectTitle(objID, objName);'
884
      '}'
885
    '}'
886
    INTO ls_html.
887
  APPEND ls_html TO lt_html.
888
*toggleDropDown
889
  CONCATENATE
890
    'function toggleDropDown(elemId) {'
891
      'var elem=document.getElementById(elemId);'
892
      'if(elem==null){'
893
        'return;'
894
      '}'
895
      'var isOpen=(elem.style.visibility=="visible");'
896
      'closeDropDownMenus();'
897
      'if(!isOpen) {'
898
        'elem.style.top="19px";'
899
        'elem.style.visibility="visible";'
900
        'elem.style.display="block";'
901
      '}'
902
    '}'
903
    INTO ls_html.
904
  APPEND ls_html TO lt_html.
905
*toggleVisibility
906
  CONCATENATE
907
    'function toggleVisibility(elemID){'
908
      'try{'
909
        'if(elemID==null)'
910
          'return false;'
911
        'elem=document.getElementById(elemID);'
912
        'if(elem==null)'
913
          'return false;'
914
        'if(elem.style.visibility==null'
915
        ' || elem.style.visibility==""'
916
        ' || elem.style.visibility=="hidden"){'
917
          'elem.style.visibility="visible";'
918
          'elem.style.display="block";'
919
        '}'
920
        'else{'
921
          'elem.style.visibility="hidden";'
922
          'elem.style.display="none";'
923
        '}'
924
      '}'
925
      'catch(e){}'
926
    '}'
927
    INTO ls_html.
928
  APPEND ls_html TO lt_html.
929
*popup
930
  PERFORM html_base_popup_js CHANGING lt_html.
931
  APPEND '//-->' TO lt_html.
932
  APPEND '</script>' TO lt_html.
933
*CSS
934
  APPEND '<style type="text/css">' TO lt_html.
935
  CONCATENATE
936
    'body{'
937
      'margin-left:0px;'
938
      'margin-top:0px;'
939
      'margin-right:0px;'
940
      'margin-bottom:0px;'
941
      'overflow:hidden;'
942
    '}'
943
    'iframe{'
944
      'margin-left:0px;'
945
      'margin-top:0px;'
946
      'margin-right:0px;'
947
      'margin-bottom:0px;'
948
    '}'
949
    'li{'
950
      'color:black;'
951
      'font-family:arial;'
952
      'font-size:10px;'
953
      'font-style:normal;'
954
      'font-weight:normal;'
955
      'text-decoration:none;'
956
    '}'
957
    'ul{'
958
      'margin-left:15px;'
959
      'padding-left:0px;'
960
    '}'
961
    'ul ul * ul{'
962
      'display:none;'
963
      'visibility:hidden;'
964
    '}'
965
    'table{'
966
      'border:0;'
967
      'margin:0;'
968
      'padding:0;'
969
      'spacing:0;'
970
    '}'
971
    'td{'
972
      'border:0;'
973
      'margin:0;'
974
      'padding:0;'
975
      'spacing:0;'
976
    '}'
977
    'tr{'
978
      'border:0;'
979
      'margin:0;'
980
      'padding:0;'
981
      'spacing:0;'
982
    '}'
983
    '.cap{'
984
      'border-bottom:1px solid #3a3d3a;'
985
      'height:56px;'
986
      'width:100%;'
987
    '}'
988
    '.content{'
989
      'float:left'
990
    '}'
991
    '.contentDiv{'
992
      'float:left'
993
    '}'
994
    '.info{'
995
      'color:#0000ff !important;'
996
      'font-family:arial;'
997
      'font-size:10px;'
998
      'font-style:normal;'
999
      'text-decoration:none;'
1000
      'vertical-align:top;'
1001
    '}'
1002
    '.leaf{'
1003
    '}'
1004
    '.leafLink{'
1005
      'color:#666666 !important;'
1006
      'font-family:arial;'
1007
      'font-size:10px;'
1008
      'font-style:normal;'
1009
      'font-weight:normal;'
1010
      'text-decoration:none;'
1011
    '}'
1012
    '.node{'
1013
    '}'
1014
    '.nodeLink{'
1015
      'color:black;'
1016
      'font-family:arial;'
1017
      'font-size:10px;'
1018
      'font-style:normal;'
1019
      'font-weight:normal;'
1020
      'text-decoration:none;'
1021
    '}'
1022
    '.nodeLink:active{'
1023
      'color:darkred;'
1024
    '}'
1025
    '.nodeLink:focus{'
1026
      'color:darkred;'
1027
    '}'
1028
    '.nodeLink:hover{'
1029
      'color:red'
1030
    '}'
1031
    '.nodeLink:link{'
1032
      'color:black;'
1033
    '}'
1034
    '.nodeLink:visited{'
1035
      'color:black;'
1036
    '}'
1037
    '.links{'
1038
      'float:left;'
1039
      'height:400px;'
1040
      'margin-bottom:0px;'
1041
      'margin-left:0px;'
1042
      'margin-right:0px;'
1043
      'margin-top:0px;'
1044
      'overflow:scroll;'
1045
      'scrolling:auto;'
1046
      'width:200px;'
1047
    '}'
1048
    '.scResizer{'
1049
      'cursor:col-resize;'
1050
      'height:400px;'
1051
      'left:198px;'
1052
      'position:absolute;'
1053
      'top:57px;'
1054
      'user-select:none;'
1055
      'width:4px;'
1056
      'z-index:10;'
1057
    '}'
1058
    '.topmenu{'
1059
      'background-color:#102873;'
1060
      'border-bottom:1px solid #4a5973;'
1061
      'color:#9ca6c5;'
1062
      'font-family:arial;'
1063
      'font-size:12px;'
1064
      'font-style:normal;'
1065
      'font-weight:normal;'
1066
      'height:14px;'
1067
      'padding-left:10px;'
1068
      'text-align:left;'
1069
      'text-decoration:none;'
1070
      'vertical-align:middle;'
1071
    '}'
1072
    '.topmenu_dropdown{'
1073
      'border-bottom:1px solid #3a3d3a;'
1074
      'border-left:1px solid #a59e94;'
1075
      'border-right:1px solid #3a3d3a;'
1076
      'border-top:1px solid #a59e94;'
1077
      'display:none;'
1078
      'position:absolute;'
1079
      'visibility:hidden;'
1080
      'z-index:80;'
1081
    '}'
1082
    '.topmenu_dropdown_tab{'
1083
      'border-bottom:1px solid #cecabd;'
1084
      'border-left:1px solid #ffffef;'
1085
      'border-right:1px solid #cecabd;'
1086
      'border-top:1px solid #cecabd;'
1087
    '}'
1088
    '.topmenu_dropdown_td{'
1089
      'background-color:#f7f3e6;'
1090
      'border:1px solid #f7f3e6;'
1091
      'color:#000000;'
1092
      'font-family:arial;'
1093
      'font-size:12px;'
1094
      'font-style:normal;'
1095
      'font-weight:normal;'
1096
      'height:16px;'
1097
      'padding-left:5px;'
1098
      'padding-right:5px;'
1099
      'text-align:left;'
1100
      'text-decoration:none;'
1101
      'vertical-align:middle;'
1102
    '}'
1103
    '.topmenu_dropdown_td:hover{'
1104
      'background-color:#cecabd;'
1105
      'border-bottom:1px solid #ffffef;'
1106
      'border-left:1px solid #f7f3e6;'
1107
      'border-right:1px solid #c5c2b5;'
1108
      'border-top:1px solid #73716b;'
1109
    '}'
1110
    '.topmenu_dropdown_link{'
1111
      'color:#000000;'
1112
      'font-family:arial;'
1113
      'font-size:12px;'
1114
      'font-style:normal;'
1115
      'font-weight:normal;'
1116
      'text-align:left;'
1117
      'text-decoration:none;'
1118
      'vertical-align:middle;'
1119
    '}'
1120
    '.topmenu_link{'
1121
      'color:#9ca6c5;'
1122
      'font-family:arial;'
1123
      'font-size:12px;'
1124
      'font-style:normal;'
1125
      'font-weight:normal;'
1126
      'text-align:left;'
1127
      'text-decoration:none;'
1128
      'vertical-align:middle;'
1129
    '}'
1130
    '.topmenu_link:hover{'
1131
      'color:#ffffff;'
1132
    '}'
1133
    '.topmenu_tab{'
1134
      'background-color:#102873;'
1135
      'color:#9ca6c5;'
1136
      'font-family:arial;'
1137
      'font-size:12px;'
1138
      'font-style:normal;'
1139
      'font-weight:normal;'
1140
      'height:14px;'
1141
      'padding-left:10px;'
1142
      'text-align:left;'
1143
      'text-decoration:none;'
1144
      'vertical-align:middle;'
1145
    '}'
1146
    '.topmenu_td{'
1147
      'color:#9ca6c5;'
1148
      'font-family:arial;'
1149
      'font-size:12px;'
1150
      'font-style:normal;'
1151
      'font-weight:normal;'
1152
      'padding-right:10px;'
1153
      'text-align:left;'
1154
      'text-decoration:none;'
1155
      'vertical-align:middle;'
1156
    '}'
1157
    '.toptitle{'
1158
      'border-bottom:4px solid #ded7c5;'
1159
      'border-top:4px solid #bdbebd;'
1160
      'color:#5a699c;'
1161
      'font-family:arial;'
1162
      'font-size:20px;'
1163
      'font-style:italic;'
1164
      'font-weight:bold;'
1165
      'height:32px;'
1166
      'padding-left:10px;'
1167
      'text-align:left;'
1168
      'text-decoration:none;'
1169
      'vertical-align:middle;'
1170
    '}'
1171
    INTO ls_html.
1172
  APPEND ls_html TO lt_html.
1173
  PERFORM html_base_popup_css CHANGING lt_html.
1174
  CONCATENATE
1175
          '</style>'
1176
        '</head>'
1177
        '<body onload="init()">'
1178
          '<table border="0" cellpadding="1" cellspacing="0"'
1179
          ' class="cap" id="cap">'
1180
* Top Menu
1181
            '<tr>'
1182
              '<td class="topmenu">'
1183
                '<table border="0" cellpadding="0" cellspacing="0"'
1184
                ' class="topmenu_tab">'
1185
                  '<tr id="tm">'
1186
*   Menu
1187
                    '<td class="topmenu_td">'
1188
                      '<a class="topmenu_link" href="#"'
1189
                      ' onclick="toggleDropDown(''tm_menu'');'
1190
                      'return false">'
1191
                        txt_menu
1192
                      '</a>'
1193
                      '<br/>'
1194
                      '<div class="topmenu_dropdown" id="tm_menu">'
1195
                        '<table border="0" cellpadding="0"'
1196
                        ' cellspacing="0"'
1197
                        ' class="topmenu_dropdown_tab">'
1198
                          '<tr>'
1199
                            '<td class="topmenu_dropdown_td">'
1200
                              '<a class="topmenu_dropdown_link"'
1201
                              ' href="default.' gc_extension_htm '"'
1202
                              ' onclick="'
1203
                              'openDropDownLink(''menu_first_page'');'
1204
                              'return false">'
1205
                                txt_first_page
1206
                              '</a>'
1207
                            '</td>'
1208
                          '</tr>'
1209
                        '</table>'
1210
                      '</div>'
1211
                    '</td>'
1212
*   System
1213
                    '<td class="topmenu_td">'
1214
                      '<a class="topmenu_link" href="#"'
1215
                      ' onclick="toggleDropDown(''tm_system'');'
1216
                      'return false">'
1217
                        txt_system
1218
                      '</a>'
1219
                      '<br/>'
1220
                      '<div class="topmenu_dropdown" id="tm_system">'
1221
                        '<table border="0" cellpadding="0"'
1222
                        ' cellspacing="0"'
1223
                        ' class="topmenu_dropdown_tab">'
1224
                          '<tr>'
1225
                            '<td class="topmenu_dropdown_td">'
1226
                              '<a class="topmenu_dropdown_link"'
1227
                              ' href="MENU_SYSTEM/STATUS.'
1228
                                gc_extension_htm '" onclick="'
1229
                              'openDropDownLink(''system_status'');'
1230
                              'return false">'
1231
                                txt_status
1232
                              '</a>'
1233
                            '</td>'
1234
                          '</tr>'
1235
                          '<tr>'
1236
                            '<td class="topmenu_dropdown_td">'
1237
                              '<a class="topmenu_dropdown_link"'
1238
                              ' href="MENU_SYSTEM/KERNEL.'
1239
                                gc_extension_htm '" onclick="'
1240
                              'openDropDownLink(''system_kernel'');'
1241
                              'return false">'
1242
                                txt_kernel_information___1
1243
                              '</a>'
1244
                            '</td>'
1245
                          '</tr>'
1246
                          '<tr>'
1247
                            '<td class="topmenu_dropdown_td">'
1248
                              '<a class="topmenu_dropdown_link"'
1249
                              ' href="MENU_SYSTEM/COMPONENT.'
1250
                                gc_extension_htm '" onclick="'
1251
                              'openDropDownLink(''system_component'');'
1252
                              'return false">'
1253
                                txt_component_information
1254
                              '</a>'
1255
                            '</td>'
1256
                          '</tr>'
1257
                        '</table>'
1258
                      '</div>'
1259
                    '</td>'
1260
*   Help
1261
                    '<td class="topmenu_td">'
1262
                      '<a class="topmenu_link" href="#"'
1263
                      ' onclick="toggleDropDown(''tm_help'');'
1264
                      'return false">'
1265
                        txt_help
1266
                      '</a>'
1267
                      '<br/>'
1268
                      '<div class="topmenu_dropdown" id="tm_help">'
1269
                        '<table border="0" cellpadding="0"'
1270
                        ' cellspacing="0"'
1271
                        ' class="topmenu_dropdown_tab">'
1272
                          '<tr>'
1273
                            '<td class="topmenu_dropdown_td">'
1274
                              '<a class="topmenu_dropdown_link"'
1275
                              ' href="http://www.globalbit.org"'
1276
                              ' onclick="'
1277
                              'openDropDownLink(''newWindow'','
1278
                              '''http://www.globalbit.org'');'
1279
                              'return false">'
1280
                                'globalBIT'
1281
                              '</a>'
1282
                            '</td>'
1283
                          '</tr>'
1284
                          '<tr>'
1285
                            '<td class="topmenu_dropdown_td">'
1286
                              '<a class="topmenu_dropdown_link"'
1287
                              ' href="http://www.globalbit.org/'
1288
                                'opensource/softcopy"'
1289
                              ' onclick="'
1290
                              'openDropDownLink(''popup'','
1291
                              '''http://www.globalbit.org/sc/updates?'
1292
                              'langu=' l_laiso '&#38;'
1293
                              'scver=' gc_version ''','''
1294
                              txt_updates ''');'
1295
                              'return false">'
1296
                                txt_updates
1297
                              '</a>'
1298
                            '</td>'
1299
                          '</tr>'
1300
                          '<tr>'
1301
                            '<td class="topmenu_dropdown_td">'
1302
                              '<a class="topmenu_dropdown_link"'
1303
                              ' href="MENU_HELP/about.'
1304
                                gc_extension_htm '"'
1305
                              ' onclick="'
1306
                              'openDropDownLink(''help_about'');'
1307
                              'return false">'
1308
                                txt_about
1309
                              '</a>'
1310
                            '</td>'
1311
                          '</tr>'
1312
                        '</table>'
1313
                      '</div>'
1314
                    '</td>'
1315
                  '</tr>'
1316
                '</table>'
1317
              '</td>'
1318
              '<td class="topmenu"'
1319
              ' style="padding-right:5px;text-align:right">'
1320
                'powered by globalBIT'
1321
              '</td>'
1322
            '</tr>'
1323
* Title
1324
            '<tr>'
1325
              '<td class="toptitle" colspan="2" id="title">'
1326
                '&#x53;&#x6f;&#x66;&#x74;&#x43;&#x6f;&#x70;&#x79;'
1327
              '</td>'
1328
            '</tr>'
1329
          '</table>'
1330
 
1331
          '<table border="0" cellpadding="0" cellspacing="0" id="sc">'
1332
            '<tr>'
1333
              '<td class="links" id="links">'
1334
    INTO ls_html.
1335
  APPEND ls_html TO lt_html.
1336
*Links
1337
  PERFORM links
1338
    CHANGING
1339
      lt_html.
1340
  CONCATENATE
1341
              '</td>'
1342
              '<td id="contentDiv" class="content"></td>'
1343
            '</tr>'
1344
          '</table>'
1345
          '<div class="scResizer" id="scResizer"'
1346
          ' onmousedown="preResizeSc(event); return false;"></div>'
1347
    INTO ls_html.
1348
  APPEND ls_html TO lt_html.
1349
  PERFORM html_base_popup
1350
    USING 'info' l_c_info_width l_c_info_height
1351
    CHANGING lt_html.
1352
  APPEND '<script type="text/javascript"><!--' TO lt_html.
1353
  APPEND 'window.onresize = makeFrameSize;' TO lt_html.
1354
  APPEND '//--></script>' TO lt_html.
1355
  CONCATENATE
1356
*          '<div id="plDiv"'
1357
*          ' style="display:none;visibility:hidden">'
1358
*            '<iframe id="pl"'
1359
*            ' src="http://www.globalbit.org/sc/postload?'
1360
*            l_uri_props
1361
*            '"></iframe>'
1362
*            '&#160;'
1363
*          '</div>'
1364
        '</body>'
1365
      '</html>'
1366
      INTO ls_html.
1367
  APPEND ls_html TO lt_html.
1368
 
1369
  PERFORM download
1370
    USING
1371
      lt_html
1372
      space
1373
      space
1374
      'index'
1375
      gc_extension_htm
1376
      abap_false.
1377
ENDFORM.                    "html_base_index
1378
 
1379
 
1380
*-----------------------------------------------------------------------
1381
* html_base_popup
1382
*-----------------------------------------------------------------------
1383
FORM html_base_popup
1384
  USING
1385
    value(i_id) TYPE string
1386
    value(i_width) TYPE i
1387
    value(i_height) TYPE i
1388
  CHANGING
1389
    ct_html TYPE it_string.
1390
 
1391
  DATA:
1392
  l_width TYPE string,
1393
  l_height TYPE string,
1394
  l_caption_width TYPE string,
1395
  l_div_width TYPE string,
1396
  l_div_height TYPE string,
1397
  ls_html TYPE string.
1398
 
1399
  l_width = i_width.
1400
  CONDENSE l_width.
1401
  l_height = i_height.
1402
  CONDENSE l_height.
1403
  l_caption_width = i_width - 16.
1404
  CONDENSE l_caption_width.
1405
  l_div_width = i_width + 4.
1406
  CONDENSE l_div_width.
1407
  l_div_height = i_height + 20.
1408
  CONDENSE l_div_height.
1409
 
1410
  CONCATENATE
1411
    '<div class="popupDiv" id="popup' i_id '"'
1412
    ' style="height:' l_div_height 'px;width:' l_div_width 'px">'
1413
      '<table border="0" cellpadding="0" cellspacing="0"'
1414
      ' class="popupTable" style="width:' l_width 'px">'
1415
        '<tr>'
1416
          '<td align="left" class="popupTitle"'
1417
          ' id="popupCaption' i_id '"'
1418
          ' nowrap="nowrap"'
1419
          ' onmousedown="preMovePopupLayer(event,''' i_id
1420
          '''); return false;"'
1421
          ' style="width:' l_caption_width 'px"'
1422
          ' width="90%">'
1423
            'Filter'
1424
          '</td>'
1425
          '<td class="popupClose">'
1426
            '<div class="popupCloseButton">'
1427
              '<a class="popupCloseLink"'
1428
              ' href="JavaScript:hidePopupLayer(''' i_id
1429
              ''')">'
1430
                '&#215;'
1431
              '</a>'
1432
            '</div>'
1433
          '</td>'
1434
        '</tr>'
1435
        '<tr>'
1436
          '<td align="center" class="popupContentArea" colspan="2">'
1437
            '<table border="0" cellpadding="0" cellspacing="0"'
1438
            ' class="popupContentTable">'
1439
              '<tr>'
1440
                '<td class="popupContent" id="popupContent' i_id '"'
1441
                ' nowrap="nowrap"'
1442
                ' style="height:' l_height 'px;width:' l_width 'px">'
1443
                  '&#160;'
1444
                '</td>'
1445
              '</tr>'
1446
            '</table>'
1447
          '</td>'
1448
        '</tr>'
1449
      '</table>'
1450
    '</div>'
1451
    INTO ls_html.
1452
  APPEND ls_html TO ct_html.
1453
  APPEND '<script type="text/javascript"><!--' TO ct_html.
1454
  CONCATENATE
1455
      'popupValues[popupValues.length]'
1456
      ' = new Array("' i_id '", ' l_width ', ' l_height ');'
1457
    INTO ls_html.
1458
  APPEND ls_html TO ct_html.
1459
  APPEND '//--></script>' TO ct_html.
1460
 
1461
ENDFORM.                    "html_base_popup
1462
 
1463
 
1464
*-----------------------------------------------------------------------
1465
* html_base_popup_css
1466
*-----------------------------------------------------------------------
1467
FORM html_base_popup_css
1468
  CHANGING
1469
    ct_html TYPE it_string.
1470
 
1471
  DATA:
1472
  ls_html TYPE string.
1473
 
1474
  CONCATENATE
1475
    '.popupClose{'
1476
      'background-color:#102873;'
1477
      'border-bottom:1px solid #63828c;'
1478
      'border-left-width:0px;'
1479
      'border-right:1px solid #63828c;'
1480
      'border-top:1px solid #adb6ce;'
1481
      'border-spacing:0px;'
1482
      'font-size:12px;'
1483
      'padding-bottom:0px;'
1484
      'padding-left:3px;'
1485
      'padding-right:0px;'
1486
      'padding-top:1px;'
1487
      'text-align:right !important;'
1488
      'vertical-align:top !important;'
1489
      'width:20px;'
1490
    '}'
1491
    '.popupCloseButton{'
1492
      'background-color:#102873;'
1493
      'border:1px solid #5a69a5;'
1494
      'color:#5a69a5;'
1495
      'height:12px;'
1496
      'overflow:hidden;'
1497
      'text-align:center;'
1498
      'vertical-align:top;'
1499
      'width:12px;'
1500
    '}'
1501
    '.popupCloseLink{'
1502
      'color:#5a69a5;'
1503
      'font-size:13px;'
1504
      'font-style:normal;'
1505
      'font-weight:normal;'
1506
      'line-height:13px;'
1507
      'margin:0px;'
1508
      'text-align:right !important;'
1509
      'text-decoration:none;'
1510
      'vertical-align:top;'
1511
    '}'
1512
    '.popupContent{'
1513
      'background-color:#94b2c5;'
1514
      'border-width:0px;'
1515
      'border-spacing:0px;'
1516
      'color:#000000;'
1517
      'font-family:arial,helvetica,sans-serif;'
1518
      'font-size:12px;'
1519
      'font-style:normal;'
1520
      'font-weight:normal;'
1521
      'margin:0px 0px;'
1522
      'padding:2px;'
1523
      'text-align:left;'
1524
    '}'
1525
    '.popupContentArea{'
1526
      'background-color:#94b2c5;'
1527
      'border-bottom:1px solid #3a3d3a;'
1528
      'border-left:1px solid #b5b6ad;'
1529
      'border-right:1px solid #cecabd;'
1530
      'border-top:1px solid #849ead;'
1531
      'border-spacing:0px;'
1532
      'color:#000000;'
1533
      'font-family:arial,helvetica,sans-serif;'
1534
      'font-size:12px;'
1535
      'font-style:normal;'
1536
      'font-weight:normal;'
1537
      'margin:0px 0px;'
1538
      'padding:0px;'
1539
      'text-align:center;'
1540
    '}'
1541
    '.popupContentTable{'
1542
      'background-color:#94b2c5;'
1543
      'border-bottom:1px solid #63828c;'
1544
      'border-left:1px solid #94b2c5;'
1545
      'border-right:1px solid #63828c;'
1546
      'border-top:1px solid #8caab5;'
1547
      'border-spacing:0px;'
1548
      'color:#000000;'
1549
      'font-family:arial,helvetica,sans-serif;'
1550
      'font-size:12px;'
1551
      'font-style:normal;'
1552
      'font-weight:normal;'
1553
      'margin:0px 0px;'
1554
      'padding:0px;'
1555
      'text-align:center;'
1556
    '}'
1557
    '.popupDiv{'
1558
      'background-color:#94b2c5;'
1559
      'display:none;'
1560
      'left:0px;'
1561
      'position:absolute;'
1562
      'top:0px;'
1563
      'visibility:hidden;'
1564
      'z-index:90;'
1565
    '}'
1566
    '.popupTable{'
1567
      'background-color:#d6d2ce;'
1568
      'border-width:0px;'
1569
      'border-spacing:0px;'
1570
      'padding:0px;'
1571
    '}'
1572
    '.popupTitle{'
1573
      'background-color:#102873;'
1574
      'border-bottom:1px solid #63828c;'
1575
      'border-left:1px solid #adb6ce;'
1576
      'border-right-width:0px;'
1577
      'border-top:1px solid #adb6ce;'
1578
      'border-spacing:0px;'
1579
      'color:#9ca6c5;'
1580
      'cursor:move;'
1581
      'font-family:arial,helvetica,sans-serif;'
1582
      'font-size:12px;'
1583
      'font-style:normal;'
1584
      'font-weight:normal;'
1585
      'padding-bottom:1px;'
1586
      'padding-left:3px;'
1587
      'padding-right:3px;'
1588
      'padding-top:1px;'
1589
      'text-align:left;'
1590
      'white-space:nowrap;'
1591
    '}'
1592
    INTO ls_html.
1593
  APPEND ls_html TO ct_html.
1594
 
1595
ENDFORM.                    "html_base_popup_css
1596
 
1597
 
1598
*-----------------------------------------------------------------------
1599
* html_base_popup_js
1600
*-----------------------------------------------------------------------
1601
FORM html_base_popup_js
1602
  CHANGING
1603
    ct_html TYPE it_string.
1604
 
1605
  DATA:
1606
  ls_html TYPE string.
1607
 
1608
  CONCATENATE
1609
    'var popupCallbacks=new Array();'
1610
    'var popupClicked="";'
1611
    'var popupMouseX=0;'
1612
    'var popupMouseY=0;'
1613
    'var popupValues=new Array();'
1614
    INTO ls_html.
1615
  APPEND ls_html TO ct_html.
1616
 
1617
*Sets new content and caption and displays a popup layer
1618
  CONCATENATE
1619
    'function displayPopupLayer(id,caption,content,callback){'
1620
      'var width;'
1621
      'var height;'
1622
      'for(var i=0;i<popupValues.length;i++){'
1623
        'if(popupValues[i][0] == id){'
1624
          'width=popupValues[i][1]+4;'
1625
          'height=popupValues[i][2]+20;'
1626
        '}'
1627
      '}'
1628
      'for(var i=0; i<popupCallbacks.length; i++){'
1629
        'if(popupCallbacks[i]!=null && popupCallbacks[i][0]==id){'
1630
          'if(popupCallbacks[i][1]==callback)'
1631
            'return;'
1632
          'window.setTimeout(popupCallbacks[i][1],1);'
1633
          'popupCallbacks[i]=null;'
1634
        '}'
1635
      '}'
1636
      'if(content!=null)'
1637
        'document.getElementById("popupContent"+id).innerHTML=content;'
1638
      'if(caption!=null)'
1639
        'document.getElementById("popupCaption"+id).innerHTML=caption;'
1640
 
1641
      'var userAgent=navigator.userAgent.toLowerCase();'
1642
      'var msieVersion=0;'
1643
      'if(userAgent.indexOf("msie")){'
1644
        'var myArr=userAgent.split("(")[1].split(")")[0].split(";");'
1645
        'for(var j=0;j<myArr.length;j++){'
1646
          'if(myArr[j].indexOf("msie")>=0){'
1647
            'msieVersion=((((myArr[j].replace(/^[^\S]+/,"")'
1648
            '.replace(/[^\S]+$/,"")).split(" "))[1]).split("."))[0];'
1649
          '}'
1650
        '}'
1651
      '}'
1652
 
1653
      'var filterDivObj=document.getElementById("popup"+id);'
1654
      'var left = (document.body.clientWidth - width) / 2;'
1655
      'var top = (document.body.clientHeight - height) / 2;'
1656
      'left=((window.innerWidth/2)+window.pageXOffset)'
1657
        '-((parseInt(filterDivObj.style.width))/2)+"px";'
1658
      'top=((window.innerHeight/2)+window.pageYOffset)'
1659
        '-((parseInt(filterDivObj.style.height))/2)+"px";'
1660
      'filterDivObj.style.left=left;'
1661
      'filterDivObj.style.top=top;'
1662
      'filterDivObj.style.display="block";'
1663
      'filterDivObj.style.visibility="visible";'
1664
      'if(callback!=null && callback!="")'
1665
        'popupCallbacks[popupCallbacks.length]=new Array(id,callback);'
1666
    '}'
1667
    INTO ls_html.
1668
  APPEND ls_html TO ct_html.
1669
* Hides a popup layer
1670
  CONCATENATE
1671
    'function hidePopupLayer(id){'
1672
      'document.getElementById("popup"+id).style.display="none";'
1673
      'for(var i=0;i<popupCallbacks.length;i++){'
1674
        'if(popupCallbacks[i]!=null && popupCallbacks[i][0]==id){'
1675
          'window.setTimeout(popupCallbacks[i][1],100);'
1676
          'popupCallbacks[i]=null;'
1677
        '}'
1678
      '}'
1679
    '}'
1680
    INTO ls_html.
1681
  APPEND ls_html TO ct_html.
1682
* Moves a popup layer
1683
  CONCATENATE
1684
    'function movePopupLayer(event){'
1685
      'var filterDivObj=document.getElementById("popup"+popupClicked);'
1686
      'filterDivObj.style.left=event.pageX-popupMouseX+"px";'
1687
      'filterDivObj.style.top=event.pageY-popupMouseY+"px";'
1688
    '}'
1689
    INTO ls_html.
1690
  APPEND ls_html TO ct_html.
1691
* Stops moving a popup layer
1692
  CONCATENATE
1693
    'function postMovePopupLayer(){'
1694
      'popupClicked="";'
1695
      'popupMouseX=0;'
1696
      'popupMouseY=0;'
1697
      'document.onmousemove=null;'
1698
      'document.onmouseup=null;'
1699
    '}'
1700
    INTO ls_html.
1701
  APPEND ls_html TO ct_html.
1702
* Prepares for moving a popup layer.
1703
  CONCATENATE
1704
    'function preMovePopupLayer(event,id){'
1705
      'popupClicked=id;'
1706
      'if(event){'
1707
        'popupMouseX=event.layerX;'
1708
        'popupMouseY=event.layerY;'
1709
      '}'
1710
      'document.onmousemove=movePopupLayer;'
1711
      'document.onmouseup=postMovePopupLayer;'
1712
    '}'
1713
    INTO ls_html.
1714
  APPEND ls_html TO ct_html.
1715
* Updated the popup caption
1716
  CONCATENATE
1717
    'function updatePopupCaption(id, caption){'
1718
      'if(caption!=null)'
1719
        'document.getElementById("popupCaption"+id).innerHTML=caption;'
1720
    '}'
1721
    INTO ls_html.
1722
  APPEND ls_html TO ct_html.
1723
ENDFORM.                    "html_base_popup_js