Ticket #2104: module_block_modify.html

File module_block_modify.html, 35.5 KB (added by michael.ritter, 6 years ago)

Hotfix

Line 
1<!-- START module_block_block.html -->
2<script type="text/javascript">
3    $J(document).ready(function() {
4        $J('#wysiwyg_editor').change(function() {
5            updateContent(0, true);
6            switchEditor();
7        });
8        cx.jQuery("#blockLanguages li a:visible").first().click();
9    });
10
11    function switchEditor() {
12        if ($J('#wysiwyg_editor').prop('checked')) {
13            if (typeof(CKEDITOR.instances.ckeditor) == 'undefined') {
14                var config = {
15                    customConfig : cx.variables.get('basePath', 'contrexx') + cx.variables.get('ckeditorconfigpath', 'block'),
16                    toolbar: 'Full',
17                    skin: 'moono',
18                    height: 380
19                };
20                CKEDITOR.replace('page[content]', config);
21            }
22
23            activeLangId = $J('ul.blockLang a.active').attr('id').split('_')[2];
24            CKEDITOR.instances.ckeditor.setData($J('#blockFormText_'+activeLangId).val());
25        } else {
26            if (typeof(CKEDITOR.instances.ckeditor) !== 'undefined') {
27                try {
28                    CKEDITOR.instances.ckeditor.destroy();
29                } catch (e) {
30                    // this is a bug in CKEDITOR. Until we apply the patch we
31                    // just catch it. See http://dev.ckeditor.com/ticket/6203
32                }
33            }
34
35            activeLangId = $J('ul.blockLang a.active').attr('id').split('_')[2];
36            $J('#ckeditor').val($J('#blockFormText_'+activeLangId).val());
37        }
38    }
39
40    arrTabToDiv = new Object();
41    {EDIT_JS_TAB_TO_DIV}
42
43    // <![CDATA[
44    function switchBoxAndTab(objElement, strTabId) {
45
46        if (countActiveLanguages() == 0) {
47            //We just "unchecked" the last language, disallow this
48            objElement.checked = true;
49        } else {
50            //There are more active languages, hide the tab
51            switchTabVisibility(strTabId);
52        }
53
54        //Now make sure that a possible div is shown
55        activateAnyActiveDiv();
56    }
57
58    function switchTabVisibility(strTabId) {
59        if (document.getElementById(strTabId).style.display == 'none') {
60            document.getElementById(strTabId).style.display = 'inline';
61        } else {
62            document.getElementById(strTabId).style.display = 'none';
63        }
64    }
65
66    function countActiveLanguages() {
67        var activeLanguages = 0;
68        activeLanguages = $J("input[name*=blockFormLanguages]:checked").length;
69        return activeLanguages;
70    }
71
72    function activateAnyActiveDiv() {
73        for (var TabName in arrTabToDiv) {
74            if (document.getElementById(TabName).style.display == 'inline') {
75                updateContent(TabName.split('_')[2], false);
76                break;
77            }
78        }
79        //Deactivate every div first first
80        for (var TabName in arrTabToDiv) {
81            document.getElementById(TabName).className = 'inactive';
82        }
83
84        //Activate the first possible div with an acitvated checkbox
85        for (var TabName in arrTabToDiv) {
86            if (document.getElementById(TabName).style.display == 'inline') {
87                document.getElementById(TabName).className = 'active';
88                break;
89            }
90        }
91        swapHeaderLangName();
92    }
93    /**
94    Select the super tab according to the name
95
96    @author  Stefan Heinemann <sh@adfinis.com>
97    @param   string name
98     */
99    function superTab(ele, name) {
100        $J('.tabs').hide();
101        $J('#tab_' + name).show();
102        $J('#tabmenu li a').removeClass('active');
103        $J(ele).addClass('active');
104    }
105
106    function langTab(ele, id) {
107        updateContent(id, false);
108
109        $J('.tabmenu li a').removeClass('active').addClass('inactive');
110        $J(ele).removeClass('inactive').addClass('active');
111        swapHeaderLangName();
112    }   
113    function swapHeaderLangName(){
114        $J('form[name=blockFormModifyBlock] table.block_lang th:first-child').each(
115            function(){
116                $J(this).text($J(this).text().replace(/\s\(.*?\)$/, '')+' ('+$J('#blockLanguages li a.active').text()+')')
117            }
118        )
119    }
120    var firstRun = true;
121    function updateContent(newActiveLangId, invertChecked) {
122        oldActiveLangId = $J('ul.blockLang a.active').attr('id').split('_')[2];
123        wysiwygStatus = invertChecked ? !$J('#wysiwyg_editor').prop('checked') : $J('#wysiwyg_editor').prop('checked');
124
125        if (wysiwygStatus) {
126            $J('#blockFormText_'+oldActiveLangId).val(CKEDITOR.instances.ckeditor.getData());
127            if (newActiveLangId > 0) {
128                CKEDITOR.instances.ckeditor.setData($J('#blockFormText_'+newActiveLangId).val());
129            }
130        } else {
131            if (!firstRun) {
132                $J('#blockFormText_'+oldActiveLangId).val($J('#ckeditor').val());
133            }
134            firstRun = false;
135            if (newActiveLangId > 0) {
136                $J('#ckeditor').val($J('#blockFormText_'+newActiveLangId).val());
137            }
138        }
139    }
140    function moveSelectedPages(from, dest, add, remove)
141    {
142        if (from.selectedIndex < 0) {
143            if (from.options[0] != null) from.options[0].selected = true;
144            from.focus();
145            return false;
146        } else {
147            for (i = 0; i < from.length; ++i) {
148                if (from.options[i].selected) {
149                    dest.options[dest.options.length] = new Option(from.options[i].text, from.options[i].value, false, false);
150                }
151            }
152            for (i = from.options.length-1; i >= 0; --i) {
153                if (from.options[i].selected) {
154                    from.options[i] = null;
155                }
156            }
157        }
158        disableButtons(from, dest, add, remove);
159    }
160    function onSubmit() {
161        activeLangId = $J('ul.blockLang a.active').attr('id').split('_')[2];
162       
163        if ($J('#wysiwyg_editor').prop('checked')) {
164            $J('#blockFormText_'+activeLangId).val(CKEDITOR.instances.ckeditor.getData());
165        } else {
166            $J('#blockFormText_'+activeLangId).val($J('#ckeditor').val());
167        }
168        // update hidden list of active pages
169        changePageTitlesByLang($J('input[name*=pagesLang]:checked').val(), 'global');
170        changePageTitlesByLang($J('input[name*=pagesLang]:checked').val(), 'direct');
171        changePageTitlesByLang($J('input[name*=pagesLang]:checked').val(), 'category');
172        return true;
173    }
174    function disableButtons(from,dest,add,remove)
175    {
176        if (from.options.length > 0 )
177        {
178            add.disabled = 0;
179        }
180        else
181            add.disabled = 1;
182
183        if (dest.options.length > 0)
184            remove.disabled = 0;
185        else
186            remove.disabled = 1;
187    }
188
189    function selectAll(CONTROL)
190    {
191        for(var i = 0;i < CONTROL.length;i++)
192        {
193            CONTROL.options[i].selected = true;
194        }
195    }
196
197    function deselectAll(CONTROL)
198    {
199        for(var i = 0;i < CONTROL.length;i++)
200        {
201            CONTROL.options[i].selected = false;
202        }
203    }
204
205    function showOrHide(strElement, bolStatus)
206    {
207        elm = document.getElementById(strElement);
208
209        if(bolStatus==1){
210            elm.style.display = 'block';
211        } else {
212            elm.style.display = 'none';
213        }
214    }
215    function selectDataTab(ele, tabName) { 
216        if(document.getElementById(tabName).style.display != "block")
217        {
218                document.getElementById(tabName).style.display = "block";
219                strClass = document.getElementById(tabName).className;
220               
221                arrTags = document.getElementsByTagName("*");
222                for (i=0;i<arrTags.length;i++)
223                {
224                        if(arrTags[i].className == strClass && arrTags[i] != document.getElementById(tabName))
225                        {
226                                arrTags[i].style.display = "none";
227                        }
228                }
229                $J('#tabmenu li a').removeClass('active');
230                $J(ele).addClass('active');
231        }
232    }
233    // ]]>
234</script>
235<script type="text/javascript">
236    //adds the datetimepicker to the date fields
237    cx.ready(function() {
238        var dpOptions = {
239            dateFormat: 'yy-mm-dd',
240            timeFormat: 'hh:mm' 
241        };
242
243        $J('input[name=inputStartDate]').datetimepicker(dpOptions);
244        $J('input[name=inputEndDate]').datetimepicker(dpOptions);
245
246    }, true);
247    // <![CDATA[
248    (function(){
249        $J(function(){
250           
251            var $inputDateEnd   = $J('[name=inputEndDate]');
252            var $inputDateStart = $J('[name=inputStartDate]');
253            var $spansDate      = $J('#startTime,#endTime');
254            var $spanAlways     = $J('#showAlways');
255            var $a = $J('#toggleShowAlways');
256
257            var hideInputs = function(){
258                $spansDate.hide();
259                $spanAlways.show();
260                $inputDateEnd.val(0).trigger('change');
261                $inputDateStart.val(0).trigger('change');
262                $a.text('{TXT_BLOCK_SHOW_TIMED}');
263            }
264
265            var showInputs = function(){
266                $spansDate.show();
267                $spanAlways.hide();
268
269                date = new Date();
270                var year = date.getFullYear();
271                var month = date.getMonth()+1;
272                var month = month.toString().length > 1 ? month : '0' + month;
273                var day = date.getDate().toString().length > 1 ? date.getDate() : '0' + date.getDate();
274                var hour = date.getHours().toString().length > 1 ? date.getHours() : '0' + date.getHours();
275                var minute = date.getMinutes().toString().length > 1 ? date.getMinutes() : '0' + date.getMinutes()
276                $inputDateStart.val(year+'-'+month+'-'+day+' '+hour+':'+minute).trigger('change');
277                $inputDateEnd.val((year+1)+'-'+month+'-'+day+' '+hour+':'+minute).trigger('change');
278
279                $a.text('{TXT_BLOCK_SHOW_ALWAYS}');
280            }
281
282            $a.click(function(){
283                if($inputDateEnd.is(':hidden')){
284                    showInputs();
285                } else {
286                    hideInputs();
287                }
288            });
289            if($inputDateEnd.val() == '0'){ //check if we display always
290                hideInputs();
291            }
292
293            switchEditor();
294            swapHeaderLangName();
295        });
296    })();
297   
298    $J(document).ready(function() {
299        refreshRadioButtons();
300       
301        $J('input[name*=blockFormLanguages]').click(function() {
302            refreshRadioButtons();
303        });
304        $J('input[name*=pagesLangGlobal]').click(function() {
305            changePageTitlesByLang($J(this).val(), 'global');
306        });
307        $J('input[name*=pagesLangDirect]').click(function() {
308            changePageTitlesByLang($J(this).val(), 'direct');
309        });
310        $J('input[name*=pagesLangCategory]').click(function() {
311            changePageTitlesByLang($J(this).val(), 'category');
312        });
313    });
314   
315    var refreshRadioButtons = function() {
316        $J('input[name*=blockFormLanguages]:checked').each(function() {
317            $J('#changePageTitlesTo_' + $J(this).attr('id').match(/\d$/)).show();
318        });
319        $J('input[name*=blockFormLanguages]:not(:checked)').each(function() {
320            $J('#changePageTitlesTo_' + $J(this).attr('id').match(/\d$/)).hide();
321        });
322
323        refreshPageTree();
324    }
325
326    var refreshPageTree = function() {
327        $J.each(['global', 'direct', 'category'], function(index, value) {
328            if ($J('input[name*=' + value + 'PagesLang]:checked').parent().is(function() {return $J(this).css('display') == 'none';}) || $J('input[name*=' + value + 'PagesLang]:checked').length == 0) {
329                $J('input[name*=' + value + 'PagesLang]:checked').prop('checked', false);
330                var element = $J('span[id*=' + value + 'ChangePageTitlesTo_]').not(function() {$J(this).css('display') == 'none'}).first().children('input');
331                element.prop('checked', true);
332                langCode = element.val();
333            } else {
334                langCode = $J('input[name*=' + value + 'PagesLang]:checked').val();
335            }
336            changePageTitlesByLang(langCode, value);
337        });
338    }
339   
340    /**
341     * Called on click of language switch radio buttons
342     * also on startup and before sending the form
343     */
344    var changePageTitlesByLang = function(langCode, placeholder) {
345        var cachedLang = cx.jQuery("input#" + placeholder + "CachedLang").val();
346        var selectedOps, unselectedOps;
347        // do not overwrite data on first call, but parse it into json object
348        if (cachedLang == "") {
349            selectedOps = cx.jQuery.parseJSON(cx.variables.get(placeholder + "PagesSelectedOptions", "block"));
350            unselectedOps = cx.jQuery.parseJSON(cx.variables.get(placeholder + "PagesUnselectedOptions", "block"));
351        } else {
352            selectedOps = cx.variables.get(placeholder + "PagesSelectedOptions", "block");
353            unselectedOps = cx.variables.get(placeholder + "PagesUnselectedOptions", "block");
354            if (selectedOps === "") {
355                selectedOps = new Object();
356            }
357            if (unselectedOps === "") {
358                unselectedOps = new Object();
359            }
360            selectedOps[cachedLang] = cx.jQuery.trim(cx.jQuery('select[name="' + placeholder + 'SelectedPages[]"]').html());
361            unselectedOps[cachedLang] = cx.jQuery.trim(cx.jQuery('select[name="' + placeholder + 'NotSelectedPages[]"]').html());
362            var activeIds = new Array();
363            cx.jQuery.each(selectedOps, function(lang, data) {
364                cx.jQuery.each(cx.jQuery(data), function(index, el) {
365                    activeIds[activeIds.length] = cx.jQuery(el).attr("value");
366                });
367            });
368            cx.jQuery("input#" + placeholder + "SelectedPagesList").val(activeIds.join(","));
369        }
370
371        if (selectedOps[langCode] == undefined) {
372            selectedOps[langCode] = "";
373        }
374        if (unselectedOps[langCode] == undefined) {
375            unselectedOps[langCode] = "";
376        }
377
378        cx.jQuery('select[name="' + placeholder + 'SelectedPages[]"]').html(selectedOps[langCode]);
379        cx.jQuery('select[name="' + placeholder + 'NotSelectedPages[]"]').html(unselectedOps[langCode]);
380        cx.variables.set(placeholder + "PagesSelectedOptions", selectedOps, "block");
381        cx.variables.set(placeholder + "PagesUnselectedOptions", unselectedOps, "block");
382        cx.jQuery("input#" + placeholder + "CachedLang").val(langCode);
383    }
384    // ]]>
385</script>
386
387<form name="blockFormModifyBlock" action="index.php?cmd=block&amp;act=modify" method="post" onsubmit="onSubmit();">
388    <input type="hidden" name="blockId" value="{BLOCK_ID}" size="50" />
389    <input type="hidden" id="globalCachedLang" name="globalCachedLang" value="" />
390    <input type="hidden" id="directCachedLang" name="directCachedLang" value="" />
391    <input type="hidden" id="categoryCachedLang" name="categoryCachedLang" value="" />
392    <input type="hidden" id="globalSelectedPagesList" name="globalSelectedPagesList" value="" />
393    <input type="hidden" id="directSelectedPagesList" name="directSelectedPagesList" value="" />
394    <input type="hidden" id="categorySelectedPagesList" name="categorySelectedPagesList" value="" />
395
396    <table width="100%" cellspacing="0" cellpadding="3" border="0" class="adminlist block_lang">
397        <tr>
398            <th colspan="4">{TXT_BLOCK_LANGUAGE}</th>
399        </tr>
400        <tr class="row1">
401            <td width="10%">{TXT_BLOCK_LANGUAGE}</td>
402            <td width="12%" valign="top">{EDIT_LANGUAGES_1}</td>
403            <td width="12%" valign="top">{EDIT_LANGUAGES_2}</td>
404            <td width="66%" valign="top">{EDIT_LANGUAGES_3}</td>
405        </tr>
406    </table>
407    <br />
408    <ul id="tabmenu">
409        <li><a class="active" href="javascript:{}" id="data_{TXT_BLOCK_BASIC_DATA}" onclick="selectDataTab(this, '{TXT_BLOCK_BASIC_DATA}')" title="{TXT_BLOCK_BASIC_DATA}">{TXT_BLOCK_BASIC_DATA}</a></li>
410        <li><a href="javascript:{}" id="data_{TXT_BLOCK_ADDITIONAL_OPTIONS}" onclick="selectDataTab(this, '{TXT_BLOCK_ADDITIONAL_OPTIONS}')" title="{TXT_BLOCK_ADDITIONAL_OPTIONS}">{TXT_BLOCK_ADDITIONAL_OPTIONS}</a></li>
411    </ul>
412    <div id="{TXT_BLOCK_BASIC_DATA}" class="data">
413        <table cellspacing="0" cellpadding="3" width="100%" border="0" class="adminlist" summary="block list">
414            <tbody>
415                <tr>
416                    <th colspan="3">{TXT_BLOCK_BASIC_DATA}</th>
417                </tr>
418                <tr class="row1">
419                    <td width="250px">{TXT_BLOCK_NAME}:</td>
420                    <td width="250px"><input type="text" name="blockName" value="{BLOCK_NAME}" style="width: 250px;" /></td>
421                    <td><br /></td>
422                </tr>   
423                <tr class="row2">
424                    <td>{TXT_BLOCK_CATEGORY}:</td>
425                    <td colspan="2">
426                        <select name="blockCat" style="width: 252px;">
427                            <option value="0">{TXT_BLOCK_NONE}</option>
428                            {BLOCK_CATEGORIES_PARENT_DROPDOWN}
429                        </select>
430                    </td>
431                </tr>
432            </tbody>
433        </table>
434        <br />
435        <div>
436            <ul id="blockLanguages" class="tabmenu blockLang">
437                <!-- BEGIN block_language_tabs -->
438                <li><a id="lang_blockContent_{BLOCK_LANG_TAB_LANG_ID}" style="{BLOCK_LANGTAB_DISPLAY}" class="{BLOCK_LANG_TAB_CLASS}" href="javascript:{}" onclick="langTab(this, {BLOCK_LANG_TAB_LANG_ID})" title="{TXT_BLOCK_LANG_TAB_LANG_NAME}">{TXT_BLOCK_LANG_TAB_LANG_NAME}</a></li>
439                <!-- END block_language_tabs -->
440            </ul>
441            <!-- BEGIN block_language_content -->
442            <input id="blockFormText_{BLOCK_LANG_ID}" type="hidden" name="blockFormText_[{BLOCK_LANG_ID}]" value="{BLOCK_CONTENT_TEXT_HIDDEN}" />
443            <!-- END block_language_content -->
444            <table  border="0" cellpadding="0" cellspacing="0" width="100%" class="adminlist block_lang">
445                <tbody>
446                    <tr>
447                        <th>{TXT_BLOCK_FORM_DESC}</th>
448                    </tr>
449                    <tr class="row2 reset">
450                        <td><textarea id="ckeditor" name="page[content]" style="width: 99.9%; height: auto; min-height: 500px; padding: 0; margin: 0;"></textarea></td>
451                    </tr>
452                </tbody>
453            </table>
454        </div>
455        <br />
456    </div>
457    <div id="{TXT_BLOCK_ADDITIONAL_OPTIONS}" class="data" style="display:none;">
458        <table cellspacing="0" cellpadding="3" width="100%" border="0" class="adminlist" summary="block list">
459            <tbody>
460                <tr>
461                    <th colspan="2">{TXT_BLOCK_ADDITIONAL_OPTIONS}</th>
462                </tr>
463                <tr class="row1">
464                    <td valign="top" width="250px">{TXT_BLOCK_RANDOM}:</td>
465                    <td>
466                        <input type="checkbox" name="blockRandom" id="blockRandom" value="1" {BLOCK_RANDOM}/><label for="blockRandom">[[BLOCK_RANDOMIZER]]</label><br />
467                        <input type="checkbox" name="blockRandom2" id="blockRandom2" value="1" {BLOCK_RANDOM_2}/><label for="blockRandom2">[[BLOCK_RANDOMIZER_2]]</label><br />
468                        <input type="checkbox" name="blockRandom3" id="blockRandom3" value="1" {BLOCK_RANDOM_3}/><label for="blockRandom3">[[BLOCK_RANDOMIZER_3]]</label><br />
469                        <input type="checkbox" name="blockRandom4" id="blockRandom4" value="1" {BLOCK_RANDOM_4}/><label for="blockRandom4">[[BLOCK_RANDOMIZER_4]]</label><br />
470                    </td>
471                </tr>
472                <tr class="row2">
473                    <td valign="top">{TXT_BLOCK_DISPLAY_TIME}</td>
474                    <td>
475                        <span id="startTime">
476                            <span style="float: left; width: auto; margin-bottom: 3px;">
477                                <label name="{TXT_BLOCK_SHOW_FROM}" style="float: left; width: auto; min-width: 30px; margin-right: 3px;">{TXT_BLOCK_SHOW_FROM}:</label>
478                                <input type="text" name="inputStartDate" value="{BLOCK_START}" />
479                            </span>
480                        </span>
481                        <span id="endTime">
482                            <span style="float: left; clear: both; width: auto;">
483                                <label name="{TXT_BLOCK_SHOW_UNTIL}" style="float: left; width: auto; min-width: 30px; margin-right: 3px;" >{TXT_BLOCK_SHOW_UNTIL}:</label>
484                                <input type="text" name="inputEndDate" value="{BLOCK_END}" />
485                            </span>
486                        </span>
487                        <span id="showAlways" style="display: none;">
488                            {TXT_BLOCK_SHOW_ALWAYS}
489                        </span>
490                        <a style="margin-left: 15px;" href="#" id="toggleShowAlways">{TXT_BLOCK_SHOW_ALWAYS}</a><br />
491                    </td>
492                </tr>
493                <tr class="row1">
494                    <td width="250px" valign="top">{TXT_BLOCK_GLOBAL_PLACEHOLDERS}: <span class="icon-info tooltip-trigger"></span><span class="tooltip-message">{TXT_BLOCK_GLOBAL_PLACEHOLDERS_INFO}</span></td>
495                    <td nowrap="nowrap">
496                        <input onclick="showOrHide('globalPageSelector', '0');" type="radio" name="blockGlobal" id="blockGlobal0" value="0" {BLOCK_GLOBAL_0} />
497                               <label for="blockGlobal0">{TXT_DONT_SHOW_ON_PAGES}</label><br />
498                        <input onclick="showOrHide('globalPageSelector', '0');" type="radio" name="blockGlobal" id="blockGlobal1" value="1" {BLOCK_GLOBAL_1} />
499                               <label for="blockGlobal1">{TXT_SHOW_ON_ALL_PAGES}</label><br />
500                        <input onclick="showOrHide('globalPageSelector', '1');" type="radio" name="blockGlobal" id="blockGlobal2" value="2" {BLOCK_GLOBAL_2} />
501                               <label for="blockGlobal2">{TXT_SHOW_ON_SELECTED_PAGES}</label><br />
502                        <div id="globalPageSelector" class="blockLangTab"  style="display:{BLOCK_GLOBAL_SHOW_PAGE_SELECTOR};">
503                            <div style="float: left; width: auto;">
504                                <label name="{TXT_BLOCK_AVAILABLE_PAGES}">{TXT_BLOCK_AVAILABLE_PAGES}</label><br/>
505                                <select id="globalNotSelectedPages" name="globalNotSelectedPages[]" size="12" style="margin-top: 5px;width:100%;" multiple="multiple">
506                                    {BLOCK_GLOBAL_RELATION_PAGES_UNSELECTED}
507                                </select>
508                                <br />
509                                <a href="javascript:selectAll(document.blockFormModifyBlock.elements['globalNotSelectedPages[]']);" title="{TXT_BLOCK_SELECT_ALL}">{TXT_BLOCK_SELECT_ALL}</a><br />
510                                <a href="javascript:deselectAll(document.blockFormModifyBlock.elements['globalNotSelectedPages[]']);" title="{TXT_BLOCK_UNSELECT_ALL}">{TXT_BLOCK_UNSELECT_ALL}</a>
511                            </div>
512                            <div style="margin: 100px 10px 0; float: left; width: auto;">
513                                <input type="button" value=" &gt;&gt; " name="addpages" onclick="moveSelectedPages(document.getElementById('globalNotSelectedPages'),document.getElementById('globalSelectedPages'),document.getElementsByName('addpages')[0],document.getElementsByName('removepages')[0]);" style="float: left; clear: both;" />
514                                <input type="button" value=" &lt;&lt; " name="removepages" onclick="moveSelectedPages(document.getElementById('globalSelectedPages'),document.getElementById('globalNotSelectedPages'),document.getElementsByName('removepages')[0],document.getElementsByName('addpages')[0]);" style="float: left; clear: both;" />
515                            </div>
516                            <div style="float: left; width: auto;">
517                                <label name="{TXT_BLOCK_SELECTED_PAGES}">{TXT_BLOCK_SELECTED_PAGES}</label><br />
518                                <div align="left">
519                                    <select id="globalSelectedPages" name="globalSelectedPages[]" size="12" style="margin-top: 5px;width:100%;" multiple="multiple">
520                                        {BLOCK_GLOBAL_RELATION_PAGES_SELECTED}
521                                    </select>
522                                    <br />
523                                    <a href="javascript:selectAll(document.blockFormModifyBlock.elements['globalSelectedPages[]']);" title="{TXT_BLOCK_SELECT_ALL}">{TXT_BLOCK_SELECT_ALL}</a><br />
524                                    <a href="javascript:deselectAll(document.blockFormModifyBlock.elements['globalSelectedPages[]']);" title="{TXT_BLOCK_UNSELECT_ALL}">{TXT_BLOCK_UNSELECT_ALL}</a>
525                                </div>
526                            </div>
527                            <div style="float: left; padding: 0 0 0 20px;">
528                                <label>{TXT_BLOCK_LANGUAGE}</label>
529                                <br />
530                                <!-- BEGIN pages_languages_global -->
531                                <span id="globalChangePageTitlesTo_{BLOCK_PAGES_LANGUAGE_ID}">
532                                    <input type="radio" name="pagesLangGlobal[]" value="{BLOCK_PAGES_LANGUAGE_CODE}" id="globalRadio_{BLOCK_PAGES_LANGUAGE_CODE}" {BLOCK_PAGES_LANGUAGE_CHECKED} />
533                                    <label for="globalRadio_{BLOCK_PAGES_LANGUAGE_CODE}">{BLOCK_PAGES_LANGUAGE_NAME}</label><br />
534                                </span>
535                                <!-- END pages_languages_global -->
536                            </div>
537                        </div>
538                    </td>
539                </tr>
540                <tr class="row2">
541                    <td width="250px" valign="top">{TXT_BLOCK_DIRECT_PLACEHOLDERS}: <span class="icon-info tooltip-trigger"></span><span class="tooltip-message">{TXT_BLOCK_DIRECT_PLACEHOLDERS_INFO}</span></td>
542                    <td nowrap="nowrap">
543                        <input onclick="showOrHide('directPageSelector', '0');" type="radio" name="blockDirect" id="blockDirect1" value="0" {BLOCK_DIRECT_0} />
544                               <label for="blockDirect1">{TXT_SHOW_ON_ALL_PAGES}</label><br />
545                        <input onclick="showOrHide('directPageSelector', '1');" type="radio" name="blockDirect" id="blockDirect2" value="1" {BLOCK_DIRECT_1} />
546                               <label for="blockDirect2">{TXT_SHOW_ON_SELECTED_PAGES}</label><br />
547                        <div id="directPageSelector" class="blockLangTab"  style="display:{BLOCK_DIRECT_SHOW_PAGE_SELECTOR};">
548                            <div style="float: left; width: auto;">
549                                <label name="{TXT_BLOCK_AVAILABLE_PAGES}">{TXT_BLOCK_AVAILABLE_PAGES}</label><br/>
550                                <select id="directNotSelectedPages" name="directNotSelectedPages[]" size="12" style="margin-top: 5px;width:100%;" multiple="multiple">
551                                    {BLOCK_GLOBAL_RELATION_PAGES_UNSELECTED}
552                                </select>
553                                <br />
554                                <a href="javascript:selectAll(document.blockFormModifyBlock.elements['directNotSelectedPages[]']);" title="{TXT_BLOCK_SELECT_ALL}">{TXT_BLOCK_SELECT_ALL}</a><br />
555                                <a href="javascript:deselectAll(document.blockFormModifyBlock.elements['directNotSelectedPages[]']);" title="{TXT_BLOCK_UNSELECT_ALL}">{TXT_BLOCK_UNSELECT_ALL}</a>
556                            </div>
557                            <div style="margin: 100px 10px 0; float: left; width: auto;">
558                                <input type="button" value=" &gt;&gt; " name="addpages" onclick="moveSelectedPages(document.getElementById('directNotSelectedPages'),document.getElementById('directSelectedPages'),document.getElementsByName('addpages')[0],document.getElementsByName('removepages')[0]);" style="float: left; clear: both;" />
559                                <input type="button" value=" &lt;&lt; " name="removepages" onclick="moveSelectedPages(document.getElementById('directSelectedPages'),document.getElementById('directNotSelectedPages'),document.getElementsByName('removepages')[0],document.getElementsByName('addpages')[0]);" style="float: left; clear: both;" />
560                            </div>
561                            <div style="float: left; width: auto;">
562                                <label name="{TXT_BLOCK_SELECTED_PAGES}">{TXT_BLOCK_SELECTED_PAGES}</label><br />
563                                <div align="left">
564                                    <select id="directSelectedPages" name="directSelectedPages[]" size="12" style="margin-top: 5px;width:100%;" multiple="multiple">
565                                        {BLOCK_GLOBAL_RELATION_PAGES_SELECTED}
566                                    </select>
567                                    <br />
568                                    <a href="javascript:selectAll(document.blockFormModifyBlock.elements['directSelectedPages[]']);" title="{TXT_BLOCK_SELECT_ALL}">{TXT_BLOCK_SELECT_ALL}</a><br />
569                                    <a href="javascript:deselectAll(document.blockFormModifyBlock.elements['directSelectedPages[]']);" title="{TXT_BLOCK_UNSELECT_ALL}">{TXT_BLOCK_UNSELECT_ALL}</a>
570                                </div>
571                            </div>
572                            <div style="float: left; padding: 0 0 0 20px;">
573                                <label>{TXT_BLOCK_LANGUAGE}</label>
574                                <br />
575                                <!-- BEGIN pages_languages_direct -->
576                                <span id="directChangePageTitlesTo_{BLOCK_PAGES_LANGUAGE_ID}">
577                                    <input type="radio" name="pagesLangDirect[]" value="{BLOCK_PAGES_LANGUAGE_CODE}" id="directRadio_{BLOCK_PAGES_LANGUAGE_CODE}" {BLOCK_PAGES_LANGUAGE_CHECKED} />
578                                    <label for="directRadio_{BLOCK_PAGES_LANGUAGE_CODE}">{BLOCK_PAGES_LANGUAGE_NAME}</label><br />
579                                </span>
580                                <!-- END pages_languages_direct -->
581                            </div>
582                        </div>
583                    </td>
584                </tr>
585                <tr class="row1">
586                    <td width="250px" valign="top">{TXT_BLOCK_CATEGORY_PLACEHOLDERS}: <span class="icon-info tooltip-trigger"></span><span class="tooltip-message">{TXT_BLOCK_CATEGORY_PLACEHOLDERS_INFO}</span></td>
587                    <td nowrap="nowrap">
588                        <input onclick="showOrHide('categoryPageSelector', '0');" type="radio" name="blockCategory" id="blockCategory1" value="0" {BLOCK_CATEGORY_0} />
589                               <label for="blockCategory1">{TXT_SHOW_ON_ALL_PAGES}</label><br />
590                        <input onclick="showOrHide('categoryPageSelector', '1');" type="radio" name="blockCategory" id="blockCategory2" value="1" {BLOCK_CATEGORY_1} />
591                               <label for="blockCategory2">{TXT_SHOW_ON_SELECTED_PAGES}</label><br />
592                        <div id="categoryPageSelector" class="blockLangTab"  style="display:{BLOCK_CATEGORY_SHOW_PAGE_SELECTOR};">
593                            <div style="float: left; width: auto;">
594                                <label name="{TXT_BLOCK_AVAILABLE_PAGES}">{TXT_BLOCK_AVAILABLE_PAGES}</label><br/>
595                                <select id="categoryNotSelectedPages" name="categoryNotSelectedPages[]" size="12" style="margin-top: 5px;width:100%;" multiple="multiple">
596                                    {BLOCK_GLOBAL_RELATION_PAGES_UNSELECTED}
597                                </select>
598                                <br />
599                                <a href="javascript:selectAll(document.blockFormModifyBlock.elements['categoryNotSelectedPages[]']);" title="{TXT_BLOCK_SELECT_ALL}">{TXT_BLOCK_SELECT_ALL}</a><br />
600                                <a href="javascript:deselectAll(document.blockFormModifyBlock.elements['categoryNotSelectedPages[]']);" title="{TXT_BLOCK_UNSELECT_ALL}">{TXT_BLOCK_UNSELECT_ALL}</a>
601                            </div>
602                            <div style="margin: 100px 10px 0; float: left; width: auto;">
603                                <input type="button" value=" &gt;&gt; " name="addpages" onclick="moveSelectedPages(document.getElementById('categoryNotSelectedPages'),document.getElementById('categorySelectedPages'),document.getElementsByName('addpages')[0],document.getElementsByName('removepages')[0]);" style="float: left; clear: both;" />
604                                <input type="button" value=" &lt;&lt; " name="removepages" onclick="moveSelectedPages(document.getElementById('categorySelectedPages'),document.getElementById('categoryNotSelectedPages'),document.getElementsByName('removepages')[0],document.getElementsByName('addpages')[0]);" style="float: left; clear: both;" />
605                            </div>
606                            <div style="float: left; width: auto;">
607                                <label name="{TXT_BLOCK_SELECTED_PAGES}">{TXT_BLOCK_SELECTED_PAGES}</label><br />
608                                <div align="left">
609                                    <select id="categorySelectedPages" name="categorySelectedPages[]" size="12" style="margin-top: 5px;width:100%;" multiple="multiple">
610                                        {BLOCK_GLOBAL_RELATION_PAGES_SELECTED}
611                                    </select>
612                                    <br />
613                                    <a href="javascript:selectAll(document.blockFormModifyBlock.elements['categorySelectedPages[]']);" title="{TXT_BLOCK_SELECT_ALL}">{TXT_BLOCK_SELECT_ALL}</a><br />
614                                    <a href="javascript:deselectAll(document.blockFormModifyBlock.elements['categorySelectedPages[]']);" title="{TXT_BLOCK_UNSELECT_ALL}">{TXT_BLOCK_UNSELECT_ALL}</a>
615                                </div>
616                            </div>
617                            <div style="float: left; padding: 0 0 0 20px;">
618                                <label>{TXT_BLOCK_LANGUAGE}</label>
619                                <br />
620                                <!-- BEGIN pages_languages_category -->
621                                <span id="categoryChangePageTitlesTo_{BLOCK_PAGES_LANGUAGE_ID}">
622                                    <input type="radio" name="pagesLangCategory[]" value="{BLOCK_PAGES_LANGUAGE_CODE}" id="categoryRadio_{BLOCK_PAGES_LANGUAGE_CODE}" {BLOCK_PAGES_LANGUAGE_CHECKED} />
623                                    <label for="categoryRadio_{BLOCK_PAGES_LANGUAGE_CODE}">{BLOCK_PAGES_LANGUAGE_NAME}</label><br />
624                                </span>
625                                <!-- END pages_languages_category -->
626                            </div>
627                        </div>
628                    </td>
629                </tr>
630                <tr class="row1">
631                    <td>{TXT_BLOCK_USE_WYSIWYG_EDITOR}</td>
632                    <td>
633                        <input type="checkbox" name="wysiwyg_editor" id="wysiwyg_editor" value="1" {BLOCK_WYSIWYG_EDITOR} />
634                    </td>
635                </tr>
636            </tbody>
637        </table>
638        <br />
639    </div>
640<br />
641<input type="submit" name="block_save_block" value="{TXT_BLOCK_SAVE}" />
642</form>
643<!-- END module_block_block.html -->