1jQuery(function () {
2    'use strict';
3
4    var $sitemapNavi = jQuery('#plugin__sitemapnavi');
5    if ($sitemapNavi.length === 0) return;
6
7    var $mediaToggle = jQuery(
8        '<label><input type="checkbox">&nbsp;' +
9        LANG.plugins.sitemapnavi.medialabel +
10        '</label>'
11    );
12
13    $mediaToggle.find('input').prop('checked', !$sitemapNavi.hasClass('hide-media-links'));
14
15    $mediaToggle.change(function (event) {
16        $sitemapNavi.toggleClass('hide-media-links');
17        DokuCookie.setValue('plugin_sitemapnavi_showmedia', Number(event.target.checked));
18    });
19
20    // update initially rendered default state if it does not match the value stored in cookie
21    if (
22        typeof (DokuCookie.getValue('plugin_sitemapnavi_showmedia')) !== 'undefined' &&
23        (Number(DokuCookie.getValue('plugin_sitemapnavi_showmedia')) === 1) === $sitemapNavi.hasClass('hide-media-links')
24    ) {
25        $mediaToggle.find('input').prop('checked', !$mediaToggle.find('input').prop('checked'));
26        $sitemapNavi.toggleClass('hide-media-links');
27    }
28
29    $sitemapNavi.prepend($mediaToggle);
30
31    jQuery(document).on('click', '#plugin__sitemapnavi button', function () {
32        var $li = jQuery(this).closest('li');
33        var liState = $li.hasClass('closed') ? 'closed' : 'open';
34        var $sublist = $li.find('> ul');
35
36        if (liState === 'open' || $sublist.length) {
37            $li.toggleClass('closed open');
38            $sublist.find('li.media').toggle($mediaToggle.checked);
39            $sublist.slideToggle(150);
40            return;
41        }
42
43        jQuery.get(DOKU_BASE + 'lib/exe/ajax.php', {
44            'call': 'plugin__sitemapnavi',
45            'namespace': $li.data('ns')
46        }).done(function (sublistHTML) {
47            $li.toggleClass('closed open');
48            jQuery(sublistHTML).hide().appendTo($li).slideDown(150);
49        });
50    });
51
52
53});
54