Kawai Wiki

Rev

Rev 140 | Rev 149 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
124 soliveira 1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
<%@taglib prefix="mtw" uri="http://www.mentaframework.org/tags-mtw/"%>
3
<%@ taglib uri="/WEB-INF/tld/taglib.tld" prefix="k" %>
4
 
5
<html>
6
<head>
7
 
8
<title><mtw:out  value="bodyColumn.title" /></title>
9
 
10
<style type="text/css" media="all">
11
@import url("<mtw:contextPath/>/Page.getCSS.mtw?file=main.css");
12
</style>
13
 
14
<meta http-equiv="imagetoolbar" content="no" />
15
<meta http-equiv="imagetoolbar" content="false" />
16
 
137 soliveira 17
<link rel="shortcut icon" type="image/x-icon" href="<mtw:contextPath />/uploads/images/favicon.ico" />
18
<link rel="icon" type="image/gif" href="<mtw:contextPath />uploads/images/favicon.gif" />
124 soliveira 19
<link rel="stylesheet" href="<mtw:contextPath/>/Page.getPrintCSS.mtw?file=print.css" type="text/css" media="print" />
20
 
21
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
22
<meta name="author" content="Sergio Oliveira Junior" />
23
<meta name="email" content="sergio.oliveira.jr@gmail.com" />
24
 
25
<link href="<mtw:contextPath/>/css/jquery-ui-1.8.16.custom.css" rel="stylesheet" type="text/css" />
26
<script type="text/javascript" src="jquery/jquery-1.6.4.min.js"></script>
27
<script src="<mtw:contextPath/>/js/jquery-ui-1.8.16.custom.min.js"></script>
28
 
29
<link href="<mtw:contextPath />/uploadify/uploadify.css" type="text/css" rel="stylesheet" />
30
<script type="text/javascript" src="<mtw:contextPath />/uploadify/swfobject.js"></script>
31
<script type="text/javascript" src="<mtw:contextPath />/uploadify/jquery.uploadify.v2.1.4.min.js"></script>
32
 
33
<!-- Include required JS files -->
34
<script type="text/javascript" src="<mtw:contextPath/>/sh/js/shCore.js"></script>
35
 
36
<!--
37
    At least one brush, here we choose JS. You need to include a brush for every
38
    language you want to highlight
39
-->
40
<script type="text/javascript" src="<mtw:contextPath/>/sh/js/shBrushJava.js"></script>
41
 
42
<!-- Include *at least* the core style and default theme -->
43
<link href="<mtw:contextPath/>/sh/css/shCore.css" rel="stylesheet" type="text/css" />
44
<link href="<mtw:contextPath/>/sh/css/shThemeDefault.css" rel="stylesheet" type="text/css" />
45
 
46
<!-- Finally, to actually run the highlighter, you need to include this JS on your page -->
47
<script type="text/javascript">
48
     SyntaxHighlighter.all();
49
</script>
50
 
51
<!--  User JavaScript -->
52
<script type="text/javascript">
53
 
54
<mtw:out value="js.body" />
55
 
56
</script>
57
 
58
 
59
<script language="JavaScript">
60
 
61
        $(document).ready(function() {
62
 
63
        	<mtw:if test="showForm" value="login">
64
				showLoginDialog();
65
			</mtw:if>
66
 
67
			<mtw:if test="showForm" value="add">
68
				showCreateNewPageDialog();
69
			</mtw:if>
70
 
71
			$('#loginDialog').keyup(function(e) {
72
    			if (e.keyCode == 13) {
73
        			$('#loginForm').submit();
74
    			}
75
			});
76
 
77
			$('#file_upload').uploadify({
78
				'uploader'  : '<mtw:contextPath />/uploadify/uploadify.swf',
145 soliveira 79
				'script'    : '<mtw:contextPath />/File.upload.mtw;jsessionid=<%= session.getId() %>',
124 soliveira 80
				'cancelImg' : '<mtw:contextPath />/uploadify/cancel.png',
81
				'folder'    : '<mtw:contextPath />/uploads',
145 soliveira 82
				'scriptData': { 'JSESSIONID': '<%= session.getId() %>'},
124 soliveira 83
				'auto'      : true,
84
				'multi'     : true,
85
				'onComplete'  : function(event, ID, fileObj, response, data) {
86
 
87
					var resp = eval('(' + response + ')');
88
 
89
					if (resp.status == 'success') {
90
						$('#uploadResults').append('<tr><td style="color: blue;">' + resp.msg + '</td></tr>');
91
					} else if (resp.status == 'error') {
92
						$('#uploadResults').append('<tr><td style="color: red;">' + resp.msg + '</td></tr>');
93
					}
94
				}
95
			});
96
 
97
        });
98
 
99
        function prepareEditPageDialog(myDialog, theTitle) {
100
 
101
            options = {
102
                autoOpen: false,
103
                width: 800,
104
                modal: true,
105
                title: theTitle,
106
                buttons: [
107
                          {
108
                                text: "Save",
109
                                click: function() { $('#editPageForm').submit(); }
110
                          },
111
                          {
112
                                text: "Preview",
113
                                click: function() { $('#editPagePreview').val('true'); $('#editPageForm').submit(); }
114
                          },
115
                          {
116
                                text: "Cancel",
117
                                click: function() { $(this).dialog("close"); }
118
                          }
119
                      ]
120
           };
121
 
122
          myDialog.dialog(options);
123
 
124
          return myDialog;
125
        }
126
 
127
        function prepareShowPageDialog(myDialog, theTitle) {
128
 
129
            options = {
130
                autoOpen: false,
131
                width: 800,
132
                modal: true,
133
                title: theTitle,
134
                buttons: [
135
                          {
136
                                text: "Back",
137
                                click: function() { $(this).dialog("close"); }
138
                          },
139
                          {
140
                                text: "Close",
141
                                click: function() { $(this).dialog("close"); $('#listLastRevisionsDialog').dialog('close'); $('#listRevisionsDialog').dialog('close'); $('#listAllPagesDialog').dialog('close'); }
142
                          }
143
                      ]
144
           };
145
 
146
          myDialog.dialog(options);
147
 
148
          return myDialog;
149
        }
150
 
151
		function prepareFileListDialog(myDialog) {
152
 
153
            options = {
154
                autoOpen: false,
155
                width: 400,
156
                height: 300,
157
                modal: true,
158
                title: "Files uploaded:",
159
                buttons: [
160
                          {
161
                                text: "Close",
162
                                click: function() { $(this).dialog("close"); }
163
                          }
164
                      ]
165
           };
166
 
167
          myDialog.dialog(options);
168
 
169
          return myDialog;
170
        }
171
 
172
 
135 soliveira 173
        function prepareListAllPagesDialog(myDialog, showEdit) {
124 soliveira 174
 
135 soliveira 175
            listAllPagesButtons = [
176
                      {
177
                            text: "Close",
178
                            click: function() { $(this).dialog("close"); }
179
                      }];
180
 
181
            if (showEdit) {
182
                listAllPagesButtons = [
124 soliveira 183
                          {
184
                                text: "FrontPage",
185
                                click: function() { $('#listAllPagesForm').attr('action', '<mtw:contextPath/>/Page.setFrontPage.mtw'); $('#listAllPagesForm').submit(); }
186
                          },
187
                          {
188
                                text: "Delete",
189
                                click: function() { $('#listAllPagesForm').attr('action', '<mtw:contextPath/>/Page.delete.mtw'); $('#listAllPagesForm').submit(); }
190
                          },
191
                          {
192
                                text: "Close",
193
                                click: function() { $(this).dialog("close"); }
135 soliveira 194
                          }];
195
            }
196
 
197
            options = {
198
                autoOpen: false,
199
                width: 800,
200
                height: 450,
201
                modal: true,
202
                title: 'Pages:',
203
                buttons: listAllPagesButtons
124 soliveira 204
           };
205
 
206
          myDialog.dialog(options);
207
 
208
          return myDialog;
209
        }
210
 
211
        function prepareListRevisionsDialog(myDialog, name, lang, showBackButton) {
212
 
213
        	theButtons = [
214
                          {
215
                                text: "Back",
216
                                click: function() { $(this).dialog("close"); }
217
                          },
218
                          {
219
                                text: "Close",
220
                                click: function() { $(this).dialog("close"); $('#listAllPagesDialog').dialog('close'); }
221
                          }
222
                      ];
223
 
224
			if (!showBackButton) {
225
 
226
        	theButtons = [
227
                          {
228
                                text: "Close",
229
                                click: function() { $(this).dialog("close"); $('#listAllPagesDialog').dialog('close'); }
230
                          }
231
                      ];
232
			}
233
 
234
 
235
            options = {
236
                autoOpen: false,
237
                width: 800,
238
                height: 450,
239
                modal: true,
240
                title: 'Revisions for ' + name + ' in ' + lang,
241
                buttons: theButtons
242
           };
243
 
244
          myDialog.dialog(options);
245
 
246
          return myDialog;
247
        }
248
 
249
        function prepareListLastRevisionsDialog(myDialog, language) {
250
 
251
        	theButtons = [
252
                          {
253
                                text: "Close",
254
                                click: function() { $(this).dialog("close"); }
255
                          }
256
                      ];
257
 
258
            options = {
259
                autoOpen: false,
260
                width: 800,
261
                height: 450,
262
                modal: true,
134 soliveira 263
                title: 'Latest revisions in ' + language,
124 soliveira 264
                buttons: theButtons
265
           };
266
 
267
          myDialog.dialog(options);
268
 
269
          return myDialog;
270
        }
271
 
272
 
273
        function prepareFileUploadDialog(myDialog) {
274
 
275
            options = {
276
                autoOpen: false,
277
                width: 400,
278
                height: 300,
279
                modal: true,
280
                title: 'Uploading files...',
281
                buttons: [
282
                          {
283
                                text: "Close",
284
                                click: function() { $(this).dialog("close"); }
285
                          }
286
                      ]
287
           };
288
 
289
          myDialog.dialog(options);
290
 
291
          return myDialog;
292
        }
293
 
294
        function showEditPageDialog(pageName, lang) {
295
 
296
            $.getJSON('<mtw:contextPath />/Page.get.mtw?name=' + pageName + '&lang=' + lang, function(data) {
297
 
298
                if (data.page.systemPage) {
299
                	$('.editPageTitleCell').hide();
300
                } else {
301
                	$('.editPageTitleCell').show();
302
                	$('#editPageTitle').val(data.page.title);
303
                }
304
 
305
                if (data.page.new) {
306
                	$('#editPageCommentCell').hide();
307
                } else {
308
                	$('#editPageCommentCell').show();
309
                	if (data.page.preview) {
310
                		$('#editPageComment').val(data.page.comment);
311
                	}
312
                }
313
 
314
                $('#editPageTextArea').val(data.page.body);
315
                $('#editPageName').val(data.page.name);
316
                $('#editPageLang').val(data.page.lang);
317
 
318
                myDialog = $('#editPageDialog');
319
                myDialog = prepareEditPageDialog(myDialog, 'Editing <i><font color="darkblue">' + pageName + "</font></i> in <i>" + data.page.language + "<i>...");
320
                myDialog.dialog('open');
321
            });
322
 
323
            return false;
324
        }
325
 
326
        function showFileListDialog() {
327
 
328
            $.getJSON('<mtw:contextPath />/File.listFiles.mtw', function(data) {
329
 
330
				$('#fileListTable').html('');
331
 
332
            	if (data.files.length == 0) {
333
            		$('#fileListTable').html('<tr><td align="center">No files uploaded yet!</td></tr>');
334
            	} else {
335
            		$.each(data.files, function(i,file) {
336
						$('#fileListTable').append('<tr><td>' + file + '</td></tr>');
337
            		});
338
            	}
339
 
340
                myDialog = $('#fileListDialog');
341
                myDialog = prepareFileListDialog(myDialog);
342
                myDialog.dialog('open');
343
            });
344
 
345
            return false;
346
        }
347
 
348
        function showShowPageDialog(pageName, lang, revision) {
349
 
350
            $.getJSON('<mtw:contextPath />/Page.get.mtw?name=' + pageName + '&lang=' + lang + '&revision=' + revision, function(data) {
351
 
352
                if (data.page.systemPage) {
353
                    $('.showPageTitleCell').hide();
354
                } else {
355
                    $('.showPageTitleCell').show();
356
                    $('#showPageTitle').val(data.page.title);
357
                }
358
                $('#showPageTextArea').val(data.page.body);
359
 
360
                theTitle = 'Showing <i><font color="darkblue">' + pageName + "</font></i> in <i>" + data.page.language + "<i>...";
361
                if (revision > 0) {
362
                    theTitle += ' (Revision #' + revision + ')';
363
                }
364
 
365
                myDialog = $('#showPageDialog');
366
                myDialog = prepareShowPageDialog(myDialog, theTitle);
367
                myDialog.dialog('open');
368
            });
369
 
370
            return false;
371
        }
372
 
373
 
374
        function showEditPreviewDialog(pageName, lang) {
375
 
376
            $.getJSON('<mtw:contextPath />/Page.getPreview.mtw?name=' + pageName + '&lang=' + lang, function(data) {
377
 
378
            	if (data.page.systemPage) {
379
                	$('.editPageTitleCell').hide();
380
                } else {
381
                	$('.editPageTitleCell').show();
382
                	$('#editPageTitle').val(data.page.title);
383
                }
384
 
385
                if (data.page.new) {
386
                	$('#editPageCommentCell').hide();
387
                } else {
388
                	$('#editPageCommentCell').show();
389
                	if (data.page.preview) {
390
                		$('#editPageComment').val(data.page.comment);
391
                	}
392
                }
393
 
394
 
395
                $('#editPageTextArea').val(data.page.body);
396
                $('#editPageName').val(data.page.name);
397
                $('#editPageLang').val(data.page.lang);
398
 
399
                myDialog = $('#editPageDialog');
400
                myDialog = prepareEditPageDialog(myDialog, 'Editing <i><font color="darkblue">' + pageName + "</font></i> in <i>" + data.page.language + "<i>...");
401
                myDialog.dialog('open');
402
            });
403
 
404
            return false;
405
        }
406
 
407
 
408
       	function showEditPreviewNewPageDialog(pageName, lang) {
409
 
410
            $.getJSON('<mtw:contextPath />/Page.getPreview.mtw?name=' + pageName + '&lang=' + lang, function(data) {
411
 
412
           		$('#createNewPageName').val(data.page.name);
413
        		$('#createNewPageTitle').val(data.page.title);
414
        		$('#createNewPageLanguage').val(data.page.languageId);
415
        		$('#createNewPageTextArea').val(data.page.body);
416
        		$('#createNewPageNameError').text('');
417
        		$('#createNewPageTitleError').text('');
418
        		$('#createNewPageLanguageError').text('');
419
        		$('#createNewPageBodyError').text('');
420
 
421
				showCreateNewPageDialog();
422
 
423
				$('#createPageLanguageCell').hide();
424
            });
425
 
426
            return false;
427
        }
428
 
135 soliveira 429
        function showListAllPagesDialog(isAdmin) {
124 soliveira 430
 
431
            $.getJSON('<mtw:contextPath />/Page.list.mtw', function(data) {
432
 
433
                tableData = '';
434
                tableData += '<tr>';
135 soliveira 435
                if (isAdmin) tableData += '<th>&nbsp;</th>';
124 soliveira 436
                tableData += '<th>Name</th>';
437
                tableData += '<th>Language</th>';
438
                tableData += '<th>Created By</th>';
439
                tableData += '<th>Modified By</th>';
440
                tableData += '<th>&nbsp;</th>';
441
                tableData += '<th>&nbsp;</th>';
442
                tableData += '<th>&nbsp;</th>';
443
                tableData += '</tr>';
444
 
445
                $.each(data.pages, function(i,page) {
446
 
447
                	pageName = page.name;
448
 
449
                    modifiedBy = '';
450
                    if (page.modifiedById > 0) {
451
                        modifiedBy = page.modifiedBy.username;
452
                    }
453
 
454
                    if (page.systemPage == true) {
455
                        pageName = '*' + pageName;
456
                    }
457
 
458
                    if (page.frontPage == true) {
459
                        pageName = '[' + pageName + ']';
460
                    }
461
 
462
                    modifiedOnTitle = '';
463
                    if (page.formattedModifiedOn != null) {
464
                    	modifiedOnTitle = ' title="' + page.formattedModifiedOn + '"';
465
                    }
466
 
467
                    createdOnTitle = '';
468
                    if (page.formattedCreatedOn != null) {
469
                    	createdOnTitle = ' title="' + page.formattedCreatedOn + '"';
470
                    }
471
 
472
                    radioCell = '&nbsp;';
473
                    viewCell = '&nbsp;';
474
                    if (page.CSS == false && page.systemPage == false) {
475
                    	viewCell = '<a title="View Page" tabindex="-1" href="<mtw:contextPath/>/Page.mtw?name=' + page.name + '&lang=' + page.lang + '"><img src="<mtw:contextPath/>/images/preview.png" border="0" /></a> ';
476
                    	if (page.frontPage == false) {
477
                    		radioCell = '<input tabindex="-1" type="radio" name="pageId" id="pageId" value="' + page.id + '" />';
478
                    	}
479
                    }
480
 
481
                    viewRevisionsCell = '<a title="View Revisions" class="revisionLink" tabindex="-1" href="#" onclick="return showListRevisionsDialog(\'' + page.name + '\',\'' + page.lang + '\',\'' + page.language + '\', true);"><img src="<mtw:contextPath/>/images/folder.png" height="24" height="20" border="0" /></a>';
482
 
483
                    nameTitle = '';
484
                    if (page.title != null && page.title != '') {
485
                    	nameTitle = ' title="' + page.title + '"';
486
                    }
487
 
488
                    tableData += '<tr>';
135 soliveira 489
                    if (isAdmin) tableData += '<td>' + radioCell + '</td>';
124 soliveira 490
                    tableData += '<td' + nameTitle + '>' + pageName + '</td>';
491
                    tableData += '<td align="center">' + page.language + '</td>';
492
                    tableData += '<td align="center"' + createdOnTitle + '>' + page.createdBy.username + '</td>';
493
                    tableData += '<td align="center"' + modifiedOnTitle + '>' + modifiedBy + '</td>';
494
                    tableData += '<td align="center">' + viewCell + '</td>';
495
                    tableData += '<td align="center"><a tabindex="-1" title="View Html" href="#" onclick="return showShowPageDialog(\'' + page.name + '\',\'' + page.lang + '\', -1);"><img src="<mtw:contextPath/>/images/view.png" border="0" /></a></td>';
496
                    tableData += '<td align="center">' + viewRevisionsCell + '</td>';
497
                    tableData += '</tr>';
498
                });
499
 
500
                $('#listAllPagesTable').html(tableData);
501
 
502
                myDialogDiv = $('#listAllPagesDialog');
135 soliveira 503
                myDialog = prepareListAllPagesDialog(myDialogDiv, isAdmin);
124 soliveira 504
                myDialog.dialog('open');
505
                $('.ui-dialog :button').blur();
506
             });
507
 
508
            return false;
509
        }
510
 
511
        function showListRevisionsDialog(name, lang, language, showBackButton) {
512
 
513
            $.getJSON('<mtw:contextPath />/Page.getRevisions.mtw?name=' + name + '&lang=' + lang, function(data) {
514
 
515
                tableData = '';
516
                tableData += '<tr>';
517
                tableData += '<th>Revision</th>';
518
                tableData += '<th>Author</th>';
519
                tableData += '<th>Date</th>';
520
 
521
                if (data.isSystemPage == false) {
522
                    tableData += '<th>&nbsp;</th>';
523
                }
524
                tableData += '<th>&nbsp;</th>';
525
                tableData += '</tr>';
526
 
527
                $.each(data.revisions, function(i,revision) {
528
 
529
                	titleForComment = '';
530
                	if (revision.comment != null && revision.comment != '') {
531
                		titleForComment = ' title="' + revision.comment + '"';
532
                	}
533
 
534
                    tableData += '<tr>';
535
                    tableData += '<td' + titleForComment + '>' + revision.revision + '</td>';
536
                    tableData += '<td align="center">' + revision.user.username + '</td>';
537
                    tableData += '<td align="center">' + revision.formattedCreatedOn + '</td>';
538
 
539
                    if (data.isSystemPage == false) {
540
                        tableData += '<td align="center"><a title="View Page" tabindex="-1" href="<mtw:contextPath/>/Page.mtw?name=' + revision.name + '&lang=' + revision.lang + '&revision=' + revision.revision +'"><img src="<mtw:contextPath/>/images/preview.png" border="0" /></a></td>';
541
                    }
542
 
543
                    tableData += '<td align="center"><a tabindex="-1" title="View Html" href="#" onclick="return showShowPageDialog(\'' + revision.name + '\',\'' + revision.lang + '\',' + revision.revision + ');"><img src="<mtw:contextPath/>/images/view.png" border="0" /></a></td>';
544
 
545
                    tableData += '</tr>';
546
                });
547
 
548
                $('#listRevisionsTable').html(tableData);
549
                myDialog = $('#listRevisionsDialog');
550
                myDialog = prepareListRevisionsDialog(myDialog, name, language, showBackButton);
551
                myDialog.dialog('open');
552
                $('.ui-dialog :button').blur();
553
             });
554
 
555
            return false;
556
        }
557
 
134 soliveira 558
        function showListLastRevisionsDialog(lang, language, isLogged) {
124 soliveira 559
 
560
            $.getJSON('<mtw:contextPath />/Page.getLastRevisions.mtw?lang=' + lang, function(data) {
561
 
562
                tableData = '';
563
                tableData += '<tr>';
564
                tableData += '<th>Page</th>';
565
                tableData += '<th>Revision</th>';
566
                tableData += '<th>Author</th>';
567
                tableData += '<th>Date</th>';
568
                tableData += '<th>Comment</th>';
569
                tableData += '<th>&nbsp;</th>';
134 soliveira 570
 
571
                if (isLogged) {
572
                    tableData += '<th>&nbsp;</th>';
573
                }
574
 
124 soliveira 575
                tableData += '</tr>';
576
 
577
                $.each(data.revisions, function(i,revision) {
578
 
579
                    tableData += '<tr>';
580
 
581
                    pageName = revision.name;
582
 
583
                    if (revision.frontPage) {
584
                    	pageName = '[' + pageName + ']';
585
                    } else if (revision.systemPage) {
586
                    	pageName = '*' + pageName;
587
                    }
136 soliveira 588
 
589
                    nameTitle = '';
590
                    if (revision.title != null && revision.title != '') {
591
                    	nameTitle = ' title="' + revision.title + '"';
592
                    }
124 soliveira 593
 
136 soliveira 594
                    tableData += '<td' + nameTitle + ' align="center">' + pageName + '</td>';
124 soliveira 595
                    tableData += '<td align="center">' + revision.revision + '</td>';
596
                    tableData += '<td align="center">' + revision.user.username + '</td>';
597
                    tableData += '<td align="center">' + revision.formattedCreatedOn + '</td>';
598
                    tableData += '<td align="left">' + revision.comment + '</td>';
599
 
600
					if (!revision.systemPage) {
601
                    	tableData += '<td align="center"><a title="View Page" tabindex="-1" href="<mtw:contextPath/>/Page.mtw?name=' + revision.name + '&lang=' + revision.lang + '&revision=' + revision.revision +'"><img src="<mtw:contextPath/>/images/preview.png" border="0" /></a></td>';
602
                    } else {
603
                    	tableData += '<td>&nbsp;</td>';
604
                    }
134 soliveira 605
 
606
                    if (isLogged) {
607
                        tableData += '<td align="center"><a tabindex="-1" title="View Html" href="#" onclick="return showShowPageDialog(\'' + revision.name + '\',\'' + revision.lang + '\',' + revision.revision + ');"><img src="<mtw:contextPath/>/images/view.png" border="0" /></a></td>';
608
                    }
124 soliveira 609
 
610
                    tableData += '</tr>';
611
                });
612
 
613
                $('#listLastRevisionsTable').html(tableData);
614
                myDialog = $('#listLastRevisionsDialog');
615
                myDialog = prepareListLastRevisionsDialog(myDialog, language);
616
                myDialog.dialog('open');
617
                $('.ui-dialog :button').blur();
618
             });
619
 
620
            return false;
621
        }
622
 
623
 
624
       	function showCreateNewPageDialog() {
625
 
626
            $('#createNewPageFormName').val('<mtw:out value="bodyColumn.name" />');
627
            $('#createNewPageFormLang').val('<mtw:out value="bodyColumn.lang" />');
628
            $('#createPageLanguageCell').show();
629
 
630
            myDialog = $('#createNewPageDialog');
631
            myDialog = prepareCreateNewPageDialog(myDialog);
632
            myDialog.dialog('open');
633
 
634
            return false;
635
        }
636
 
637
        function prepareCreateNewPageDialog(myDialog) {
638
 
639
            options = {
640
            	close: function() { clearCreateNewPageForm(); },
641
                autoOpen: false,
642
                width: 800,
643
                modal: true,
644
                title: "Create New Page:",
645
                buttons: [
646
                          {
647
                                text: "Create",
648
                                click: function() { $('#createNewPageForm').submit(); }
649
                          },
650
                          {
651
                              text: "Preview",
652
                              click: function() { $('#createNewPageFormPreview').val('true'); $('#createNewPageForm').submit(); }
653
                          },
654
                          {
655
                                text: "Cancel",
656
                                click: function() {  $(this).dialog("close"); }
657
                          }
658
                      ]
659
           };
660
 
661
          myDialog.dialog(options);
662
 
663
          return myDialog;
664
        }
665
 
666
        function showFileUploadDialog() {
667
 
668
  			$('#uploadResults').html('');
669
 
670
        	myDialog = $('#fileUploadDialog');
671
        	myDialog = prepareFileUploadDialog(myDialog);
672
        	myDialog.dialog('open');
673
        }
674
 
675
 
676
        function showLoginDialog() {
677
 
678
            $('#loginFormName').val('<mtw:out value="bodyColumn.name" />');
679
            $('#loginFormLang').val('<mtw:out value="bodyColumn.lang" />');
680
 
681
            myDialog = $('#loginDialog');
682
            myDialog = prepareLoginDialog(myDialog);
683
            myDialog.dialog('open');
684
 
685
            return false;
686
        }
687
 
688
        function clearLoginForm() {
689
        	$('#loginUsername').val('');
690
        	$('#loginPassword').val('');
691
        	$('#loginUsernameError').text('');
692
        	$('#loginPasswordError').text('');
693
        }
694
 
695
        function clearCreateNewPageForm() {
696
        	$('#createNewPageName').val('');
697
        	$('#createNewPageTitle').val('');
698
        	$('#createNewPageLanguage').val('');
699
        	$('#createNewPageTextArea').val('');
700
        	$('#createNewPageNameError').text('');
701
        	$('#createNewPageTitleError').text('');
702
        	$('#createNewPageLanguageError').text('');
703
        	$('#createNewPageBodyError').text('');
704
        }
705
 
706
      	function prepareLoginDialog(myDialog) {
707
 
708
            options = {
709
            	close: function() { clearLoginForm(); },
710
                autoOpen: false,
711
                width: 290,
712
                modal: true,
713
                title: "Login:",
714
                buttons: [
715
                          {
716
                                text: "Login",
717
                                click: function() { $('#loginForm').submit(); }
718
                          },
719
                          {
720
                                text: "Cancel",
721
                                click: function() {  $(this).dialog("close"); }
722
                          }
723
                      ]
724
           };
725
 
726
          myDialog.dialog(options);
727
 
728
          return myDialog;
729
        }
730
 
731
      	function prepareConfirmDialog(myDialog) {
732
 
733
            options = {
734
                autoOpen: false,
735
                width: 300,
736
                modal: true,
737
                title: "Confirmation:",
738
                buttons: [
739
                          {
740
                                text: "Yes",
741
                                click: function() { $(this).dialog("close"); }
742
                          },
743
                          {
744
                                text: "No",
745
                                click: function() {  $(this).dialog("close"); }
746
                          }
747
                      ]
748
           };
749
 
750
          myDialog.dialog(options);
751
 
752
          return myDialog;
753
        }
754
 
755
         function showConfirmDialog() {
756
 
757
            myDialog = $('#confirmDialog');
758
            myDialog = prepareConfirmDialog(myDialog);
759
            myDialog.dialog('open');
760
 
761
            return false;
762
        }
763
 
764
    </script>
765
 
766
</head>
767
 
12 soliveira 768
<body class="composite">
769
 
770
<!-- For Testing -->
771
<div id="dialog" title="Dialog Title" style="display: none;">I'm in a dialog</div>
772
 
37 soliveira 773
<!-- Close Confirm -->
774
<div id="confirmDialog" style="display: none;">
775
	<span id="confirmMessage">The confirmation message goes here.</span>
776
</div>
777
 
124 soliveira 778
<!-- For file upload -->
779
<div id="fileUploadDialog" style="display: none;">
780
<br/>
781
<input id="file_upload" name="file_upload" type="file" />
782
<table cellspacing="2" cellpadding="5" id="uploadResults" style="margin-top: 10px;">
783
</table>
784
</div>
102 soliveira 785
 
124 soliveira 786
<!-- For files listing -->
787
<div id="fileListDialog" style="display: none;">
788
<table cellspacing="2" cellpadding="5" id="fileListTable" style="margin-top: 10px;">
789
</table>
790
</div>
103 soliveira 791
 
33 soliveira 792
<!-- For Editing Pages -->
124 soliveira 793
<div id="editPageDialog" style="display: none;">
794
<form id="editPageForm" action="<mtw:contextPath />/Page.edit.mtw" method="post">
795
<input type="hidden" name="name" id ="editPageName" value="" />
796
<input type="hidden" name="lang" id="editPageLang" value="" />
797
<input type="hidden" name="isPreview" id="editPagePreview" value="false" />
798
<table border="0">
799
    <tr>
800
        <td>&nbsp;</td>
801
    </tr>
802
                <tr class="editPageTitleCell">
803
                    <td>
804
                        Title:&nbsp;&nbsp;&nbsp;&nbsp;
805
                        <mtw:input id="editPageTitle" name="title" size="40" maxlength="60" />
806
                        <span id="editPageTitleError">
807
                        <mtw:outError field="title">
808
                            <font color="red">
809
                                <b><mtw:out /></b>
810
                            </font>
811
                        </mtw:outError>
812
                        </span>
813
                    </td>
814
                </tr>
815
                <tr class="editPageTitleCell"><td colspan="2">&nbsp;</td></tr>
816
    <tr>
817
        <td><mtw:textarea id="editPageTextArea" name="body" style="width: 100%; height: 465px;" />
818
        <span id="editPageTextAreaError">
819
                        <mtw:outError field="body">
820
                            <font color="red">
821
                                <b><mtw:out /></b>
822
                            </font>
823
                        </mtw:outError>
824
                        </span>
825
 
826
        </td>
827
    </tr>
828
 
829
    <tr id="editPageCommentCell">
830
                    <td width="20%">
831
                        Edit comment: (<i>optional</i>) &nbsp;&nbsp;&nbsp;&nbsp;
832
                        <mtw:input id="editPageComment" name="comment" size="40" maxlength="60" />
833
                        <span id="editPageCommentError">
834
                        <mtw:outError field="comment">
835
                            <font color="red">
836
                                <b><mtw:out /></b>
837
                            </font>
838
                        </mtw:outError>
839
                        </span>
840
                    </td>
841
                </tr>
842
 
843
</table>
844
</form>
845
</div>
12 soliveira 846
 
124 soliveira 847
<!-- For Showing Page Html -->
848
<div id="showPageDialog" style="display: none;">
849
<form id="showPageForm">
850
<table>
851
    <tr>
852
        <td>&nbsp;</td>
853
    </tr>
854
                <tr class="showPageTitleCell">
855
                    <td>
856
                        Title:
857
                    </td>
858
                    <td>
859
                        <mtw:input id="showPageTitle" name="title" size="40" maxlength="60" extra="readonly=readonly" />
860
                    </td>
861
                </tr>
862
                <tr class="showPageTitleCell"><td>&nbsp;</td></tr>
863
    <tr>
864
        <td colspan="2">
865
        <mtw:textarea id="showPageTextArea" name="body" style="width: 100%; height: 465px;" extra="readonly=readonly" />
866
        </td>
867
    </tr>
868
</table>
869
</form>
870
</div>
84 soliveira 871
 
872
 
124 soliveira 873
<!-- For Login -->
874
<div id="loginDialog" style="display: none;">
875
		<form action="<mtw:contextPath />/Login.mtw" method="post" id="loginForm">
876
            <input type="hidden" name="name" value="" id="loginFormName" />
877
            <input type="hidden" name="lang" value="" id="loginFormLang" />
878
			<table>
879
				<tr>
880
					<td>
881
						Username:
882
					</td>
883
					<td>
884
						<mtw:input id="loginUsername" name="username" size="20" maxlength="20" />
885
						<span id="loginUsernameError">
886
						<mtw:outError field="username">
887
							<font color="red">
888
								<b><mtw:out /></b>
889
							</font>
890
						</mtw:outError>
891
						</span>
892
					</td>
893
				</tr>
894
				<tr>
895
					<td>
896
						Password:
897
					</td>
898
					<td>
899
						<mtw:input id="loginPassword" name="password" type="password" size="20" maxlength="20" />
900
						<span id="loginPasswordError">
901
						<mtw:outError field="password">
902
							<font color="red">
903
								<b><mtw:out /></b>
904
							</font>
905
						</mtw:outError>
906
						</span>
907
					</td>
908
				</tr>
909
			</table>
910
		</form>
911
</div>
33 soliveira 912
 
124 soliveira 913
<!-- For displaying all pages -->
914
<div id="listAllPagesDialog" style="display: none;">
915
    <form action="#" method="post" id="listAllPagesForm">
916
    <table id="listAllPagesTable">
917
    </table>
918
    </form>
919
</div>
49 soliveira 920
 
81 soliveira 921
 
124 soliveira 922
<!-- For displaying revisions -->
923
<div id="listRevisionsDialog" style="display: none;">
924
    <table class="revisionsTable" id="listRevisionsTable">
925
    </table>
926
</div>
33 soliveira 927
 
124 soliveira 928
<!-- For displaying last revisions -->
929
<div id="listLastRevisionsDialog" style="display: none;">
930
    <table class="revisionsTable" id="listLastRevisionsTable">
931
    </table>
932
</div>
36 soliveira 933
 
124 soliveira 934
 
935
<!-- Create New Page -->
936
<div id="createNewPageDialog" style="display: none;">
937
		<form action="<mtw:contextPath />/Page.add.mtw" method="post" id="createNewPageForm">
938
            <input type="hidden" name="name" value="" id="createNewPageFormName" />
939
            <input type="hidden" name="lang" value="" id="createNewPageFormLang" />
940
            <input type="hidden" name="isPreview" value="false" id="createNewPageFormPreview" />
941
			<table>
942
				<tr>
943
					<td>
944
						Name:
945
					</td>
946
					<td>
947
						<mtw:input id="createNewPageName" name="newPage.name" size="40" maxlength="30" />
948
						<span id="createNewPageNameError">
949
						<mtw:outError field="newPage.name">
950
							<font color="red">
951
								<b><mtw:out /></b>
952
							</font>
953
						</mtw:outError>
954
						</span>
955
					</td>
956
				</tr>
957
				<tr>
958
					<td>
959
						Title:
960
					</td>
961
					<td>
962
						<mtw:input id="createNewPageTitle" name="newPage.title" size="40" maxlength="60" />
963
						<span id="createNewPageTitleError">
964
						<mtw:outError field="newPage.title">
965
							<font color="red">
966
								<b><mtw:out /></b>
967
							</font>
968
						</mtw:outError>
969
						</span>
970
					</td>
971
				</tr>
972
				<tr id="createPageLanguageCell">
973
					<td>
974
						Language:
975
					</td>
976
					<td>
977
						<mtw:select name="newPage.languageId" list="languages" id="createNewPageLanguage" emptyField="true" />
978
						<span id="createNewPageLanguageError">
979
						<mtw:outError field="newPage.languageId">
980
							<font color="red">
981
								<b><mtw:out /></b>
982
							</font>
983
						</mtw:outError>
984
						</span>
985
					</td>
986
				</tr>
987
				<tr>
988
        			<td colspan="2">
989
        				<mtw:textarea id="createNewPageTextArea" name="newPage.body" style="width: 100%; height: 465px;" />
990
        				<span id="createNewPageBodyError">
991
						<mtw:outError field="newPage.body">
992
							<font color="red">
993
								<b><mtw:out /></b>
994
							</font>
995
						</mtw:outError>
996
						</span>
997
        			</td>
998
    			</tr>
999
			</table>
1000
		</form>
1001
</div>
1002
 
1003
 
1004
<div>
1005
<table border="0">
1006
    <tr>
1007
        <td>
1008
 
1009
        <k:kcode name="logo" />
1010
        <mtw:hasAuthorization groups="admin">
1011
 
1012
        <mtw:if test="logo.preview" value="false">
1013
        <br/>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#" style="font-size: 8px;" onclick="return showEditPageDialog('logo', '<mtw:out value="logo.lang" />');" title="<k:editTooltip name="logo" />">Edit Logo</a>
1014
        </mtw:if>
1015
 
1016
        <mtw:if test="logo.preview" value="true">
1017
        <br/>&nbsp;&nbsp;&nbsp;&nbsp;
1018
        <span style="font-size: 10px; font-weight: bold;">Preview</span><span style="font-size: 8px;">&nbsp;&nbsp;-&nbsp;</span>
1019
        <a style="font-size: 8px;" href="<mtw:contextPath/>/Page.savePreview.mtw?name=<mtw:out value="logo.name" />&lang=<mtw:out value="logo.language.locale" />">Save</a>&nbsp;
1020
        <a style="font-size: 8px;" href="#" onclick="return showEditPreviewDialog('<mtw:out value="logo.name" />', '<mtw:out value="logo.language.locale" />');" title="<k:editTooltip name="logo" />">Edit</a>&nbsp;
1021
        <a style="font-size: 8px;" href="<mtw:contextPath/>/Page.discardPreview.mtw?name=<mtw:out value="logo.name" />&lang=<mtw:out value="logo.language.locale" />">Discard</a>
1022
        </mtw:if>
1023
 
1024
        </mtw:hasAuthorization>
1025
 
1026
        </td>
1027
        <td align="right" valign="bottom">
1028
            <mtw:isLogged negate="true">
134 soliveira 1029
                <a href="#" onclick="return showListLastRevisionsDialog('<mtw:out value="bodyColumn.language.locale" />', '<mtw:out value="bodyColumn.language" />', false);">Last Updates</a> |
124 soliveira 1030
                <a href="#" onclick="return showLoginDialog();">Login</a>
1031
            </mtw:isLogged>
1032
            <mtw:isLogged>
1033
                <a href="#" onclick="return showCreateNewPageDialog();">Create New Page</a> |
135 soliveira 1034
                <a href="#" onclick="return showListAllPagesDialog(<mtw:out value="sessionUser.admin" />);">List Pages</a> |
124 soliveira 1035
 
135 soliveira 1036
                <mtw:hasAuthorization groups="admin, editor">
124 soliveira 1037
 
1038
                <mtw:if test="css.preview" value="true">
1039
                <b>CSS</b> -
1040
                <a href="<mtw:contextPath/>/Page.savePreview.mtw?name=<mtw:out value="css.name" />&lang=<mtw:out value="css.language.locale" />">Save</a>&nbsp;
1041
                <a href="#" onclick="return showEditPreviewDialog('<mtw:out value="css.name" />', '<mtw:out value="css.language.locale" />');" title="<k:editTooltip name="css" />">Edit</a>&nbsp;
1042
                <a href="<mtw:contextPath/>/Page.discardPreview.mtw?name=<mtw:out value="css.name" />&lang=<mtw:out value="css.language.locale" />">Discard</a> |
1043
                </mtw:if>
1044
 
1045
                <mtw:if test="css.preview" value="false">
1046
                <a href="#" onclick="return showEditPageDialog('CSS', 'en');" title="<k:editTooltip name="css" />">Edit CSS</a> |
1047
                </mtw:if>
1048
 
1049
                </mtw:hasAuthorization>
1050
 
135 soliveira 1051
                <mtw:hasAuthorization groups="admin, editor">
124 soliveira 1052
 
1053
                <mtw:if test="js.preview" value="true">
1054
                <b>JavaScript</b> -
1055
                <a href="<mtw:contextPath/>/Page.savePreview.mtw?name=<mtw:out value="js.name" />&lang=<mtw:out value="js.language.locale" />">Save</a>&nbsp;
1056
                <a href="#" onclick="return showEditPreviewDialog('<mtw:out value="js.name" />', '<mtw:out value="js.language.locale" />');" title="<k:editTooltip name="js" />">Edit</a>&nbsp;
1057
                <a href="<mtw:contextPath/>/Page.discardPreview.mtw?name=<mtw:out value="js.name" />&lang=<mtw:out value="js.language.locale" />">Discard</a> |
1058
                </mtw:if>
1059
 
1060
                <mtw:if test="js.preview" value="false">
1061
                <a href="#" onclick="return showEditPageDialog('JavaScript', 'en');" title="<k:editTooltip name="js" />">Edit JavaScript</a> |
1062
                </mtw:if>
1063
 
1064
                </mtw:hasAuthorization>
1065
 
1066
                <mtw:hasAuthorization groups="admin, editor">
1067
 
1068
                <a href="#" onclick="return showFileUploadDialog();">Upload Files</a> |
1069
                <a href="#" onclick="return showFileListDialog();">List Files</a> |
134 soliveira 1070
                <a href="#" onclick="return showListLastRevisionsDialog('<mtw:out value="bodyColumn.language.locale" />', '<mtw:out value="bodyColumn.language" />', true);">Last Updates</a> |
124 soliveira 1071
 
1072
                </mtw:hasAuthorization>
1073
 
1074
 
1075
                <a href="<mtw:contextPath/>/Logout.mtw">Logout</a> (<mtw:out value="sessionUser.username" />)
1076
            </mtw:isLogged>
1077
            &nbsp;
140 soliveira 1078
            <%--
124 soliveira 1079
            <mtw:isLocale value="pt">
1080
	            <a href="<mtw:urlWithLoc loc="pt" tagsToExclude="revision" />"><img src="images/brazil.gif" border="0" width="20" height="13" style="border: 3px solid #ccc;" /></a>
1081
    	        <a href="<mtw:urlWithLoc loc="en" tagsToExclude="revision" />"><img src="images/usa.gif" width="20" height="13" border="0" style="border: 3px solid #fff;" /></a>
1082
            </mtw:isLocale>
1083
            <mtw:isLocale value="en">
1084
            	<a href="<mtw:urlWithLoc loc="pt" tagsToExclude="revision" />"><img src="images/brazil.gif" border="0" width="20" height="13" style="border: 3px solid #fff;" /></a>
1085
            	<a href="<mtw:urlWithLoc loc="en" tagsToExclude="revision" />"><img src="images/usa.gif" width="20" height="13" border="0" style="border: 3px solid #ccc;" /></a>
1086
            </mtw:isLocale>
140 soliveira 1087
            --%>
1088
            <k:listFlags />
124 soliveira 1089
            &nbsp;&nbsp;&nbsp;
1090
        </td>
1091
    </tr>
1092
</table>
1093
</div>
1094
 
1095
<hr />
1096
 
1097
<div id="leftColumn"><mtw:isLogged>
135 soliveira 1098
    <mtw:hasAuthorization groups="admin, editor">
124 soliveira 1099
 
1100
        <mtw:if test="leftColumn.preview" value="true">
1101
        <div style="text-align: left; padding-left: 8px; padding-top: 6px;">
1102
            <b>Preview</b>
1103
            &nbsp;-&nbsp;
1104
            <a href="<mtw:contextPath/>/Page.savePreview.mtw?name=<mtw:out value="leftColumn.name" />&lang=<mtw:out value="leftColumn.language.locale" />">Save</a>&nbsp;&nbsp;
1105
            <a href="#" onclick="return showEditPreviewDialog('<mtw:out value="leftColumn.name" />', '<mtw:out value="leftColumn.language.locale" />');" title="<k:editTooltip name="leftColumn" />">Edit</a>&nbsp;&nbsp;
1106
            <a href="<mtw:contextPath/>/Page.discardPreview.mtw?name=<mtw:out value="leftColumn.name" />&lang=<mtw:out value="leftColumn.language.locale" />">Discard</a>
1107
        </div>
1108
        </mtw:if>
73 soliveira 1109
 
124 soliveira 1110
        <mtw:if test="leftColumn.preview" value="false">
1111
        <div style="text-align: right; padding-right: 14px; padding-top: 6px;">
1112
        <a href="#" onclick="return showEditPageDialog('LeftColumn', '<mtw:out value="leftColumn.language.locale" />');" title="<k:editTooltip name="leftColumn" />">Edit</a>
1113
        &nbsp;&nbsp;
1114
        <a href="#" onclick="return showListRevisionsDialog('LeftColumn','<mtw:out value="leftColumn.language.locale" />','<mtw:out value="leftColumn.language" />', false);">Revisions</a>
1115
        </div>
1116
        </mtw:if>
1117
 
1118
 
1119
    </mtw:hasAuthorization>
1120
</mtw:isLogged>
1121
<div id="navcolumn">
1122
    <div>
1123
    <k:kcode name="leftColumn" />
1124
    </div>
1125
<br />
1126
</div>
63 soliveira 1127
 
124 soliveira 1128
</div>
1129
 
1130
<div id="bodyColumn">
1131
    <mtw:hasAuthorization groups="admin, editor">
1132
 
1133
    <mtw:if test="bodyColumn.preview" value="true">
1134
 
1135
    	<mtw:if test="bodyColumn.new" value="true">
1136
			<div style="text-align: left; padding-left: 4px;">
1137
			<b>This is a Preview</b>
1138
			&nbsp;-&nbsp;
1139
            <a href="<mtw:contextPath/>/Page.savePreview.mtw?name=<mtw:out value="bodyColumn.name" />&lang=<mtw:out value="bodyColumn.language.locale" />">Save</a>&nbsp;&nbsp;
1140
            <a href="#" onclick="return showEditPreviewNewPageDialog('<mtw:out value="bodyColumn.name" />', '<mtw:out value="bodyColumn.language.locale" />');" title="<k:editTooltip name="bodyColumn" />">Edit</a>&nbsp;&nbsp;
1141
			<a href="<mtw:contextPath/>/Page.discardPreview.mtw?name=<mtw:out value="bodyColumn.name" />&lang=<mtw:out value="bodyColumn.language.locale" />">Discard</a>
1142
			</div>
1143
    	</mtw:if>
1144
    	<mtw:if test="bodyColumn.new" value="false">
1145
            <div style="text-align: left; padding-left: 4px;">
1146
            <b>This is a Preview</b>
1147
            &nbsp;-&nbsp;
1148
            <a href="<mtw:contextPath/>/Page.savePreview.mtw?name=<mtw:out value="bodyColumn.name" />&lang=<mtw:out value="bodyColumn.language.locale" />">Save</a>&nbsp;&nbsp;
1149
            <a href="#" onclick="return showEditPreviewDialog('<mtw:out value="bodyColumn.name" />', '<mtw:out value="bodyColumn.language.locale" />');" title="<k:editTooltip name="bodyColumn" />">Edit</a>&nbsp;&nbsp;
1150
            <a href="<mtw:contextPath/>/Page.discardPreview.mtw?name=<mtw:out value="bodyColumn.name" />&lang=<mtw:out value="bodyColumn.language.locale" />">Discard</a>
1151
			</div>
1152
    	</mtw:if>
1153
 
1154
    </mtw:if>
1155
 
1156
    <mtw:if test="bodyColumn.preview" value="false">
1157
        <mtw:if test="bodyColumn.revision" value="true">
1158
            <div style="text-align: left; padding-left: 4px;"><span title="<k:editTooltip name="bodyColumn" />"><b>Revision #<mtw:out value="bodyColumn.revisionNumber" /></b></span></div>
1159
        </mtw:if>
1160
 
1161
        <mtw:if test="bodyColumn.revision" value="false">
1162
            <div style="text-align: right; padding-right: 14px;">
1163
            <a href="#" onclick="return showEditPageDialog('<mtw:out value="bodyColumn.name" />', '<mtw:out value="bodyColumn.language.locale" />');" title="<k:editTooltip name="bodyColumn" />">Edit</a>
1164
            &nbsp;&nbsp;
1165
            <a href="#" onclick="return showListRevisionsDialog('<mtw:out value="bodyColumn.name" />','<mtw:out value="bodyColumn.language.locale" />','<mtw:out value="bodyColumn.language" />', false);">Revisions</a>
1166
            </div>
1167
        </mtw:if>
1168
    </mtw:if>
1169
 
1170
    </mtw:hasAuthorization>
1171
    <k:kcode name="bodyColumn" />
1172
</div>
1173
 
1174
<div class="clear">
1175
<hr />
1176
</div>
1177
 
1178
<div id="footer">
130 soliveira 1179
<div><center>Copyright (c) 2011 - Powered by <a href="http://kawai.mentaframework.org" target="_blank"><b>Kawai</b></a></center></div>
124 soliveira 1180
<div class="clear">
1181
<hr />
1182
</div>
1183
</div>
1184
 
1185
</body>
1186
</html>