+
+ function resizePanels() {
+ $('iframe').width($(window).width() - $('#sidebar').outerWidth());
+ $('iframe').height($(window).height() - 100);
+ $('#toggle-sidebar').height($(window).height() - 55);
+ $('#images-wrap').height($(window).height() - 82)
+ $('#images-wrap, #sidebar-toolbar').width($('#sidebar').width() - 10);
+ }
+
+ $('#toggle-sidebar').toggle(function() {
+ $('#images-wrap').width(480);
+ $('#sidebar').width(488);
+ $('#images-wrap').data('lazyload:lastCheckedScrollTop', -10000);
+ resizePanels();
+ }, function() {
+ $('#images-wrap').width(0);
+ $('#sidebar').width(8);
+ resizePanels();
+ })
+
+ $(window).resize(function() {
+ resizePanels();
+ })
+
+ var editor = CodeMirror.fromTextArea("id_text", {
+ parserfile: 'parsexml.js',
+ path: "/static/js/codemirror/",
+ stylesheet: "/static/css/xmlcolors.css",
+ parserConfig: {useHTMLKludges: false},
+ initCallback: function() {
+ $('#images').autoscroll('iframe');
+ $('.toggleAutoscroll').toggle(function() {
+ $(this).html('Synchronizuj przewijanie');
+ $('#images').disableAutoscroll();
+ }, function() {
+ $(this).html('Nie synchronizuj przewijania');
+ $('#images').enableAutoscroll();
+ })
+
+ // Toolbar
+ $('#toolbar-tabs li').click(function() {
+ var id = $(this).attr('p:button-list');
+ $('#toolbar-tabs li').removeClass('active');
+ $(this).addClass('active');
+ if (!$('#' + id).is(':visible')) {
+ $('#toolbar-buttons ol').not('#' + id).hide();
+ $('#' + id).show();
+ }
+ })
+
+ var keys = {};
+ $('#toolbar-buttons li').each(function() {
+ var tag = $(this).attr('p:tag');
+ var handler = function() {
+ var text = editor.selection();
+ editor.replaceSelection('<' + tag + '>' + text + '</' + tag + '>');
+ if (text.length == 0) {
+ var pos = editor.cursorPosition();
+ editor.selectLines(pos.line, pos.character + tag.length + 2);
+ }
+ }
+ if ($(this).attr('p:key')) {
+ keys[$(this).attr('p:key')] = handler;
+ }
+ $(this).click(handler)
+ });
+
+ editor.grabKeys(function(event) {
+ if (keys[event.keyCode]) {
+ keys[event.keyCode]();
+ }
+ }, function(event) {
+ return event.ctrlKey && keys[event.keyCode];
+ });