7 THEMES = ['Alkohol', 'Ambicja', 'Anioł', 'Antysemityzm', 'Arkadia', 'Artysta', 'Bezdomność',
8 'Bezpieczeństwo', 'Bieda', 'Bijatyka', 'Błazen', 'Błądzenie', 'Błoto', 'Bogactwo', 'Bóg', 'Brat',
9 'Bunt', 'Buntownik', 'Burza', 'Car', 'Carpe diem', 'Ciemność', 'Cień', 'Cisza', 'Chciwość', 'Chleb',
10 'Chłop', 'Choroba', 'Chrystus', 'Chrzest', 'Ciało', 'Cierpienie', 'Cmentarz', 'Cnota', 'Córka', 'Cud',
11 'Czarownika', 'Czary', 'Czas', 'Czyn', 'Czyściec', 'Dama', 'Danse macabre', 'Deszcz', 'Diabeł',
12 'Dobro', 'Dom', 'Dorosłość', 'Drzewo', 'Duch', 'Dusza', 'Duma', 'Dworek', 'Dworzanin', 'Dwór',
13 'Dzieciństwo', 'Dziecko', 'Dziedzictwo', 'Dziewictwo', 'Dźwięk', 'Egzorcyzm', 'Elita', 'Emigrant',
14 'Fałsz', 'Filozof', 'Fircyk', 'Flirt', 'Głupiec', 'Głupota', 'Głód', 'Gospodarz', 'Gospodyni', 'Gość',
15 'Gotycyzm', 'Góra', 'Gra', 'Grób', 'Grzech', 'Grzeczność', 'Gwiazda', 'Handel', 'Hańba', 'Historia',
16 'Honor', 'Idealista', 'Imię', 'Interes', 'Jabłka', 'Jedzenie', 'Jesień', 'Kaleka', 'Kara', 'Karczma',
17 'Klęska', 'Kłamstwo', 'Kłótnia', 'Kobieta', 'Kobieta demoniczna', 'Kobieta "upadła"', 'Kochanek',
18 'Kochanek romantyczny', 'Kolonializm', 'Kondycja ludzka', 'Konflikt', 'Konflikt wewnętrzny', 'Koniec świata',
19 'Koń', 'Korzyść', 'Kot', 'Kradzież', 'Krew', 'Król', 'Krzywda', 'Ksiądz', 'Książka',
20 'Księżyc', 'Kuchnia', 'Kuszenie', 'Kwiaty', 'Labirynt', 'Las', 'Lato', 'Lekarz', 'Lenistwo', 'List',
21 'Liberat', 'Los', 'Lud', 'Lustro', 'Łzy', 'Małżeństwo', 'Marzenie', 'Maska', 'Maszyna', 'Matka',
22 'Matka Boska', 'Mądrość', 'Mąż', 'Melancholia', 'Mędrzec', 'Mężczyzna', 'Miasto', 'Mieszczanin',
23 'Miłosierdzie', 'Miłość', 'Miłość niespełniona', 'Miłość platoniczna', 'Miłość romantyczna',
24 'Miłość silniejsza niż śmierć', 'Miłość spełniona', 'Miłość tragiczna', 'Mizoginia', 'Młodość', 'Moda',
25 'Modlitwa', 'Morderstwo', 'Morze', 'Motyl', 'Mucha', 'Muzyka', 'Narodziny', 'Naród', 'Natura',
26 'Nauczyciel', 'Nauczycielka', 'Nauka', 'Niebezpieczeństwo', 'Niedziela', 'Niemiec', 'Nienawiść',
27 'Nieśmiertelność', 'Niewola', 'Noc', 'Nuda', 'Obcy', 'Obłok', 'Obowiązek', 'Obraz świata', 'Obrzędy',
28 'Obyczaje', 'Obywatel', 'Odrodzenie przez grób', 'Odwaga', 'Ofiara', 'Ogień', 'Ogród', 'Ojciec',
29 'Ojczyzna', 'Oko', 'Okręt', 'Okrucieństwo', 'Omen', 'Opieka', 'Organizm', 'Otchłań', 'Pająk', 'Pamięć',
30 'Pan', 'Panna młoda', 'Państwo', 'Patriota', 'Piekło', 'Pielgrzym', 'Pieniądz', 'Pies', 'Piętno',
31 'Pijaństwo', 'Piwnica', 'Plotka', 'Pobożność', 'Pocałunek', 'Pochlebstwo', 'Poeta', 'Poetka', 'Poezja',
32 'Podróż', 'Podstęp', 'Pogrzeb', 'Pojedynek', 'Pokora', 'Pokusa', 'Polak', 'Polityka', 'Polowanie',
33 'Polska', 'Portret', 'Porwanie', 'Poświęcenie', 'Potwór', 'Powstanie', 'Powstaniec', 'Pozory',
34 'Pozycja społeczna', 'Pożar', 'Pożądanie', 'Praca', 'Praca u podstaw', 'Praca organiczna', 'Prawda', 'Prawnik',
35 'Prometeusz', 'Proroctwo', 'Prorok', 'Próżność', 'Przebranie', 'Przeczucie', 'Przedmurze chrześcijaństwa',
36 'Przekleństwo', 'Przekupstwo', 'Przemiana', 'Przemijanie', 'Przemoc', 'Przestrzeń',
37 'Przyjaźń', 'Przyroda nieożywiona', 'Przysięga', 'Przywódca', 'Ptak', 'Pustynia', 'Pycha', 'Raj',
38 'Realista', 'Religia', 'Rewolucja', 'Robak', 'Robotnik', 'Rodzina', 'Rosja', 'Rosjanin', 'Rośliny',
39 'Rozczarowanie', 'Rozpacz', 'Rozstanie', 'Rozum', 'Ruiny', 'Rycerz', 'Rzeka', 'Salon', 'Samobójstwo',
40 'Samolubstwo', 'Samotnik', 'Samotność', 'Sarmata', 'Sąsiad', 'Sąd', 'Sąd Ostateczny', 'Sen', 'Serce',
41 'Sędzia', 'Sielanka', 'Sierota', 'Siła', 'Siostra', 'Sława', 'Słońce', 'Słowo', 'Sługa', 'Służalczość',
42 'Skąpiec', 'Sobowtór', 'Społecznik', 'Spowiedź', 'Sprawiedliwość', 'Starość', 'Strach', 'Strój',
43 'Stworzenie', 'Sumienie', 'Swaty', 'Syberia', 'Syn', 'Syn marnotrawny', 'Syzyf', 'Szaleniec',
44 'Szaleństwo', 'Szantaż', 'Szatan', 'Szczęście', 'Szkoła', 'Szlachcic', 'Szpieg', 'Sztuka', 'Ślub',
45 'Śmiech', 'Śmierć', 'Śmierć bohaterska', 'Śpiew', 'Światło', 'Świętoszek', 'Święty', 'Świt',
46 'Tajemnica', 'Taniec', 'Tchórzostwo', 'Teatr', 'Testament', 'Tęsknota', 'Theatrum mundi', 'Tłum',
47 'Trucizna', 'Trup', 'Twórczość', 'Uczeń', 'Uczta', 'Uroda', 'Umiarkowanie', 'Upadek', 'Upiór',
48 'Urzędnik', 'Vanitas', 'Walka', 'Walka klas', 'Wampir', 'Warszawa', 'Wąż', 'Wdowa', 'Wdowiec',
49 'Wesele', 'Wiatr', 'Wierność', 'Wierzenia', 'Wieś', 'Wiedza', 'Wieża Babel', 'Więzienie', 'Więzień',
50 'Wina', 'Wino', 'Wiosna', 'Wizja', 'Władza', 'Własność', 'Woda', 'Wojna', 'Wojna pokoleń', 'Wolność',
51 'Wróg', 'Wspomnienia', 'Współpraca', 'Wygnanie', 'Wyrzuty sumienia', 'Wyspa', 'Wzrok', 'Zabawa',
52 'Zabobony', 'Zamek', 'Zaręczyny', 'Zaświaty', 'Zazdrość', 'Zbawienie', 'Zbrodnia', 'Zbrodniarz',
53 'Zdrada', 'Zdrowie', 'Zemsta', 'Zesłaniec', 'Ziarno', 'Ziemia', 'Zima', 'Zło', 'Złodziej', 'Złoty wiek',
54 'Zmartwychwstanie', 'Zwątpienie', 'Zwierzęta', 'Zwycięstwo', 'Żałoba', 'Żebrak', 'Żołnierz',
55 'Żona', 'Życie jako wędrówka', 'Życie snem', 'Żyd', 'Żywioły', 'Oświadczyny']
59 function highlight(colour) {
61 if (window.getSelection) {
63 sel = window.getSelection();
65 range = sel.getRangeAt(0);
67 document.designMode = "on";
69 sel.removeAllRanges();
72 // Use HiliteColor since some browsers apply BackColor to the whole block
73 if ( !document.execCommand("HiliteColor", false, colour) ) {
74 document.execCommand("BackColor", false, colour);
76 document.designMode = "off";
77 } else if (document.selection && document.selection.createRange) {
79 range = document.selection.createRange();
80 range.execCommand("BackColor", false, colour);
84 // function unselectThemes(themeId) {
85 // $('.Apple-style-span').each(function() {
86 // $(this).after($(this).html());
91 function gallery(element, url) {
92 var element = $(element);
93 var imageDimensions = {};
94 element.data('images', []);
96 function changePage(pageNumber) {
97 $('.gallery-image img', element).attr('src', element.data('images')[pageNumber - 1]);
100 function normalizeNumber(pageNumber) {
101 // Numer strony musi być pomiędzy 1 a najwyższym numerem
102 var pageCount = element.data('images').length;
103 pageNumber = parseInt(pageNumber, 10);
105 if (!pageNumber || pageNumber == NaN || pageNumber == Infinity || pageNumber == -Infinity) {
107 } else if (pageNumber < 1) {
109 } else if (pageNumber > pageCount) {
116 var pn = $('.page-number', element);
117 pn.change(function(event) {
118 event.preventDefault();
119 var n = normalizeNumber(pn.val());
123 $('.previous-page', element).click(function() {
124 pn.val(normalizeNumber(pn.val()) - 1);
127 $('.next-page', element).click(function() {
128 pn.val(normalizeNumber(pn.val()) + 1);
133 var image = $('.gallery-image img', element).attr('unselectable', 'on');
135 var imageOrigin = {};
138 $('.zoom-in', element).click(function() {
139 zoomFactor = Math.min(2, zoomFactor + 0.2);
142 $('.zoom-out', element).click(function() {
143 zoomFactor = Math.max(0.2, zoomFactor - 0.2);
146 $('.change-gallery', element).click(function() {
147 $('.chosen-gallery').val($('#document-meta .gallery').html() || '/platforma/gallery/');
148 $('.gallery-image').animate({top: 60}, 200);
149 $('.chosen-gallery').focus();
151 $('.change-gallery-ok', element).click(function() {
152 if ($('#document-meta .gallery').length == 0) {
153 $('<div class="gallery"></div>').appendTo('#document-meta');
155 $('#document-meta .gallery').html($('.chosen-gallery').val());
156 updateGallery($('.chosen-gallery').val());
157 $('.gallery-image').animate({top: 30}, 200);
159 $('.change-gallery-cancel', element).click(function() {
160 $('.gallery-image').animate({top: 30}, 200);
163 $('.gallery-image img', element).load(function() {
164 image.css({width: null, height: null});
166 width: $(this).width() * zoomFactor,
167 height: $(this).height() * zoomFactor,
168 originWidth: $(this).width(),
169 originHeight: $(this).height(),
170 galleryWidth: $(this).parent().width(),
171 galleryHeight: $(this).parent().height()
174 if (!(imageDimensions.width && imageDimensions.height)) {
175 setTimeout(function() { $('.gallery-image img', element).load(); }, 100);
177 var position = normalizePosition(
178 image.position().left,
179 image.position().top,
180 imageDimensions.galleryWidth,
181 imageDimensions.galleryHeight,
182 imageDimensions.width,
183 imageDimensions.height
185 image.css({left: position.x, top: position.y, width: $(this).width() * zoomFactor, height: $(this).height() * zoomFactor});
188 $(window).resize(function() {
189 imageDimensions.galleryWidth = image.parent().width();
190 imageDimensions.galleryHeight = image.parent().height();
193 function bounds(galleryWidth, galleryHeight, imageWidth, imageHeight) {
197 minX: galleryWidth - imageWidth,
198 minY: galleryHeight - imageHeight
202 function normalizePosition(x, y, galleryWidth, galleryHeight, imageWidth, imageHeight) {
203 var b = bounds(galleryWidth, galleryHeight, imageWidth, imageHeight);
205 x: Math.min(b.maxX, Math.max(b.minX, x)),
206 y: Math.min(b.maxY, Math.max(b.minY, y))
210 function onMouseMove(event) {
211 var position = normalizePosition(
212 event.clientX - origin.x + imageOrigin.left,
213 event.clientY - origin.y + imageOrigin.top,
214 imageDimensions.galleryWidth,
215 imageDimensions.galleryHeight,
216 imageDimensions.width,
217 imageDimensions.height
219 image.css({position: 'absolute', top: position.y, left: position.x});
223 function setZoom(factor) {
228 imageDimensions.width = imageDimensions.originWidth * zoomFactor;
229 imageDimensions.height = imageDimensions.originHeight * zoomFactor;
230 var position = normalizePosition(
231 image.position().left,
232 image.position().top,
233 imageDimensions.galleryWidth,
234 imageDimensions.galleryHeight,
235 imageDimensions.width,
236 imageDimensions.height
238 image.css({width: imageDimensions.width, height: imageDimensions.height,
239 left: position.x, top: position.y});
243 function onMouseUp(event) {
245 .unbind('mousemove.gallery')
246 .unbind('mouseup.gallery');
250 image.bind('mousedown', function(event) {
255 imageOrigin = image.position();
257 .bind('mousemove.gallery', onMouseMove)
258 .bind('mouseup.gallery', onMouseUp);
262 function updateGallery(url) {
268 success: function(data) {
269 element.data('images', data);
272 $('.gallery-image img', element).show();
275 error: function(data) {
276 element.data('images', []);
279 $('.gallery-image img', element).hide();
290 function transform(editor, callback) {
292 $.blockUI({message: 'Ładowanie...'});
294 setTimeout(function() {
296 xml: editor.getCode(),
297 success: function(element) {
298 $('#html-view').html(element);
303 }, error: function(text) {
304 var message = $('<pre></pre>');
306 $('#html-view').html('<p class="error">Wystąpił błąd:</p><pre>' +
307 message.html() + '</pre>');
319 function reverseTransform(editor, cont, errorCont, dontBlock) {
320 var serializer = new XMLSerializer();
321 if ($('#html-view .error').length > 0) {
328 $.blockUI({message: 'Ładowanie...'});
330 setTimeout(function() {
332 htmlElement: $('#html-view div').get(0),
333 /* xml: serializer.serializeToString($('#html-view div').get(0)), */
334 success: function(text) {
335 editor.setCode(text);
342 }, error: function(text) {
343 $('#source-editor').html('<p>Wystąpił błąd:</p><pre>' + text + '</pre>');
359 function html(element) {
360 var element = $(element);
362 function selectTheme(themeId)
364 var selection = window.getSelection();
365 selection.removeAllRanges();
367 var range = document.createRange();
368 var s = $(".motyw[theme-class='"+themeId+"']")[0];
369 var e = $(".end[theme-class='"+themeId+"']")[0];
372 range.setStartAfter(s);
373 range.setEndBefore(e);
374 selection.addRange(range);
378 function verifyTagInsertPoint(node) {
379 if(node.nodeType == 3) { // Text Node
380 node = node.parentNode;
383 if (node.nodeType != 1) {
388 var xtype = node.attr('x-node');
390 if (!xtype || (xtype.search(':') >= 0) ||
391 xtype == 'motyw' || xtype == 'begin' || xtype == 'end') {
395 // don't allow themes inside annotations
396 if( node.is('*[x-annotation-box] *') )
402 var ANNOT_ALLOWED = ['wyroznienie'];
404 function html2plainText(fragment) {
407 $(fragment.childNodes).each(function() {
408 if(this.nodeType == 3) // textNode
409 text += this.nodeValue;
410 else if (this.nodeType == 1
411 && $.inArray($(this).attr('x-node'), ANNOT_ALLOWED) != -1 ){
412 text += html2plainText(this);
419 function addAnnotation()
421 var selection = window.getSelection();
422 var n = selection.rangeCount;
425 window.alert("Nie zaznaczono żadnego obszaru");
429 // for now allow only 1 range
431 window.alert("Zaznacz jeden obszar");
435 // remember the selected range
436 var range = selection.getRangeAt(0);
438 if (!verifyTagInsertPoint(range.endContainer)) {
439 window.alert("Nie można wstawić w to miejsce przypisu.");
443 // BUG #273 - selected text can contain themes, which should be omited from
445 var text = html2plainText( range.cloneContents() );
447 var tag = $('<span></span>');
448 range.collapse(false);
449 range.insertNode(tag[0]);
452 xml: '<pr><slowo_obce>'+text+'</slowo_obce> --- </pr>',
453 success: function(text) {
460 alert('Błąd przy dodawaniu przypisu:' + errors);
467 var selection = window.getSelection();
468 var n = selection.rangeCount;
471 window.alert("Nie zaznaczono żadnego obszaru");
475 // for now allow only 1 range
477 window.alert("Zaznacz jeden obszar.");
482 // remember the selected range
483 var range = selection.getRangeAt(0);
486 if( $(range.startContainer).is('.html-editarea')
487 || $(range.endContainer).is('.html-editarea') ) {
488 window.alert("Motywy można oznaczać tylko na tekście nie otwartym do edycji. \n Zamknij edytowany fragment i spróbuj ponownie.");
492 // verify if the start/end points make even sense -
493 // they must be inside a x-node (otherwise they will be discarded)
494 // and the x-node must be a main text
495 if (!verifyTagInsertPoint(range.startContainer)) {
496 window.alert("Motyw nie może się zaczynać w tym miejscu.");
500 if (!verifyTagInsertPoint(range.endContainer)) {
501 window.alert("Motyw nie może się kończyć w tym miejscu.");
505 var date = (new Date()).getTime();
506 var random = Math.floor(4000000000*Math.random());
507 var id = (''+date) + '-' + (''+random);
509 var spoint = document.createRange();
510 var epoint = document.createRange();
512 spoint.setStart(range.startContainer, range.startOffset);
513 epoint.setStart(range.endContainer, range.endOffset);
515 var mtag, btag, etag, errors;
520 xml: '<end id="e'+id+'" />',
521 success: function(text) {
522 etag = $('<span></span>');
523 epoint.insertNode(etag[0]);
524 etag.replaceWith(text);
526 xml: '<motyw id="m'+id+'"></motyw>',
527 success: function(text) {
528 mtag = $('<span></span>');
529 spoint.insertNode(mtag[0]);
530 mtag.replaceWith(text);
532 xml: '<begin id="b'+id+'" />',
533 success: function(text) {
534 btag = $('<span></span>');
535 spoint.insertNode(btag[0])
536 btag.replaceWith(text);
537 selection.removeAllRanges();
538 openForEdit($('.motyw[theme-class=' + id + ']'));
547 function openForEdit($origin)
551 // annotations overlay their sub box - not their own box //
552 if($origin.is(".annotation-inline-box")) {
553 $box = $("*[x-annotation-box]", $origin);
558 var x = $box[0].offsetLeft;
559 var y = $box[0].offsetTop;
560 var w = $box.outerWidth();
561 var h = $box.innerHeight();
563 if ($origin.is(".annotation-inline-box")) {
564 w = Math.max(w, 400);
568 // start edition on this node
569 var $overlay = $('<div class="html-editarea"><button class="accept-button">Zapisz</button><button class="delete-button">Usuń</button><textarea></textarea></div>').css({
570 position: 'absolute',
575 }).appendTo($box[0].offsetParent || $box.parent()).show();
577 if ($origin.is('.motyw')) {
578 $('textarea', $overlay).autocomplete(THEMES, {
585 $('.delete-button', $overlay).click(function() {
586 if ($origin.is('.motyw')) {
587 $('[theme-class=' + $origin.attr('theme-class') + ']').remove();
592 $(document).unbind('click.blur-overlay');
597 var serializer = new XMLSerializer();
600 xml: serializer.serializeToString($box[0]),
602 success: function(text) {
603 $('textarea', $overlay).val($.trim(text));
605 setTimeout(function() {
606 $('textarea', $overlay).elastic().focus();
609 function save(argument) {
610 var nodeName = $box.attr('x-node') || 'pe';
611 var insertedText = $('textarea', $overlay).val();
613 if ($origin.is('.motyw')) {
614 insertedText = insertedText.replace(/,\s*$/, '');
618 xml: '<' + nodeName + '>' + insertedText + '</' + nodeName + '>',
619 success: function(element) {
620 $box.html($(element).html());
623 error: function(text) {
625 alert('Błąd! ' + text);
630 $('.accept-button', $overlay).click(function() {
634 $(document).bind('click.blur-overlay', function(event) {
635 if ($(event.target).parents('.html-editarea').length > 0) {
640 $(document).unbind('click.blur-overlay');
643 }, error: function(text) {
644 alert('Błąd! ' + text);
649 $('.edit-button').live('click', function(event) {
650 event.preventDefault();
651 openForEdit($(this).parent());
656 var button = $('<button class="edit-button">Edytuj</button>');
657 $(element).bind('mousemove', function(event) {
658 var editable = $(event.target).closest('*[x-editable]');
659 $('.active[x-editable]', element).not(editable).removeClass('active').children('.edit-button').remove();
660 if (!editable.hasClass('active')) {
661 editable.addClass('active').append(button);
663 if (editable.is('.annotation-inline-box')) {
664 $('*[x-annotation-box]', editable)
665 .css({width: 300, position: 'absolute', left: event.clientX - editable.offset().left + 5, top: event.clientY - editable.offset().top + 5})
668 $('*[x-annotation-box]').hide();
672 $('.motyw').live('click', function() {
673 selectTheme($(this).attr('theme-class'));
676 $('#insert-annotation-button').click(function() {
681 $('#insert-theme-button').click(function() {
691 function refreshHistory(callback){
693 message: 'Odświeżanie historii...'
697 url: document.location.href + '/history',
700 $('#history-view .message-box').html('Nie udało się odświeżyć historii').show();
703 success: function(data) {
704 $('#history-view .message-box').hide();
705 var changes_list = $('#changes-list');
706 changes_list.html('');
708 $.each(data, function() {
710 changes_list.append('<tr>'
711 +'<td><input type="radio" name="rev_from" value="'+val+'">'
712 + '<input type="radio" name="rev_to" value="'+val+'">'
713 +'<td>'+ this[0]+'</td>'
714 +'<td>'+ this[3]+'</td>'
715 +'<td>'+ this[2]+'</td>'
716 +'<td>'+ this[1]+'</td></tr>')
724 function historyDiff(callback) {
725 var changelist = $('#changes-list');
726 var rev_a = $("input[name='rev_from']:checked", changelist);
727 var rev_b = $("input[name='rev_to']:checked", changelist);
729 if (rev_a.length != 1 || rev_b.length != 1) {
730 window.alert("Musisz zaznaczyć dwie wersje do porównania.");
734 if (rev_a.val() == rev_b.val()) {
735 window.alert("Musisz zaznaczyć dwie różne wersje do porównania.");
740 message: 'Wczytywanie porównania...'
744 url: document.location.href + '/diff/'+rev_a.val() + '/'+ rev_b.val(),
748 window.alert('Nie udało się wykonać porównania :(.')
750 success: function(data) {
752 var diffview = $('#diff-view');
761 gallery('#sidebar', $('#document-meta .gallery').html());
764 CodeMirror.fromTextArea('id_text', {
765 parserfile: 'parsexml.js',
766 path: STATIC_URL + "js/lib/codemirror/",
767 stylesheet: STATIC_URL + "css/xmlcolors.css",
769 useHTMLKludges: false
771 iframeClass: 'xml-iframe',
773 /* lineNumbers: true, */
776 initCallback: function(editor) {
777 $('#save-button').click(function(event) {
778 event.preventDefault();
779 $.blockUI({message: $('#save-dialog')});
782 $('#save-ok').click(function() {
783 $.blockUI({message: 'Zapisywanie...'});
785 function doSave (argument) {
786 var metaComment = '<!--';
787 $('#document-meta div').each(function() {
788 metaComment += '\n\t' + $(this).attr('class') + ': ' + $(this).html();
790 metaComment += '\n-->'
793 name: $('#document-name').html(),
794 text: metaComment + editor.getCode(),
795 revision: $('#document-revision').html(),
796 author: $('#username').html() || 'annonymous',
797 comment: $('#komentarz').val()
801 url: document.location.href,
805 success: function(data) {
807 editor.setCode(data.text);
808 $('#document-revision').html(data.revision);
814 error: function(xhr, textStatus, errorThrown) {
815 alert('error: ' + textStatus + ' ' + errorThrown);
820 if ($('#simple-view-tab').hasClass('active')) {
821 reverseTransform(editor, doSave);
827 $('#save-cancel').click(function() {
831 var tabs = $('ol#tabs li');
833 tabs.click(function(event, callback) {
834 tabs.removeClass('active');
836 $(this).addClass('active');
837 $('#' + $(this).attr('ui:related')).show();
838 $(this).trigger('wl:tabload', callback);
842 $('#simple-view-tab').bind('wl:tabload', function(event, callback) {
843 transform(editor, callback);
846 $('#source-view-tab').bind('wl:tabload', function(event, callback) {
847 reverseTransform(editor, callback);
850 $('#history-view-tab').bind('wl:tabload', function(event, callback) {
851 refreshHistory(callback);
854 $('#make-diff-button').click(historyDiff);
856 $('#source-editor .toolbar button').click(function(event) {
857 event.preventDefault();
858 var params = eval("(" + $(this).attr('ui:action-params') + ")");
859 scriptletCenter.scriptlets[$(this).attr('ui:action')](editor, params);
862 $('.toolbar select').change(function(event) {
863 var slug = $(this).val();
865 $('.toolbar-buttons-container').hide().filter('[data-group=' + slug + ']').show();
869 $('.toolbar-buttons-container').hide();
870 $('.toolbar select').change();
873 $('#simple-view-tab').trigger('click',
875 $('#loading-overlay').fadeOut();
881 $(window).resize(function() {
882 $('iframe').height($(window).height() - $('#tabs').outerHeight() - $('#source-editor .toolbar').outerHeight());
887 $('.vsplitbar').click(function() {
888 if ($('#sidebar').width() == 0) {
889 $('#sidebar').width(480).css({right: 0}).show();
890 $('#source-editor, #simple-editor').css({right: 495});
891 $('.vsplitbar').css({right: 480}).addClass('active');
893 $('#sidebar').width(0).hide();
894 $('#source-editor, #simple-editor').css({right: 15});
895 $('.vsplitbar').css({right: 0}).removeClass('active');