X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/d628f5cb02cf0e7e69356a1eaf146daa76d50604..c38cfacc4f2cdb7a9e702d0b7b46978089413677:/wolnelektury/static/js/base.js

diff --git a/wolnelektury/static/js/base.js b/wolnelektury/static/js/base.js
index b5693830b..32cdd7068 100755
--- a/wolnelektury/static/js/base.js
+++ b/wolnelektury/static/js/base.js
@@ -1,5 +1,94 @@
 (function($) {
     $(function() {
+        $.fn.toggle_slide = function(p) {
+            cont = $(this);
+            short_el = p['short_el'] || $(':first-child', this);
+            long_el = p['long_el'] || short_el.next();
+            button = p['button'];
+            short_text = p['short_text'],
+            long_text = p['long_text'];
+
+            var toggle_fun = function(cont, short_el, long_el, button, short_text, long_text) {
+                var toggle = function() {
+                    if (cont.hasClass('short')) {
+                        cont.animate({"height": long_el.attr("cont_h")+'px'}, {duration: "fast" }).removeClass('short');
+                        short_el.hide();
+                        long_el.show();
+                        if (button && long_text) button.html(long_text);
+                    } else {
+                        cont.animate({"height": short_el.attr("cont_h")+'px'}, {duration: "fast" }).addClass('short');
+                        long_el.hide();
+                        short_el.show();
+                        if (button && short_text) button.html(short_text);
+                    }
+                    return false;
+                }
+                return toggle;
+            }
+            if (long_el.html().length <= short_el.html().length)
+                return;
+
+            // ensure long element shown first
+            long_el.show();short_el.hide();
+            long_el.attr("cont_h", $(this).height()).hide();
+            short_el.show().attr("cont_h", $(this).height());
+            $(this).addClass('short');
+
+            if (button && short_text) button.html(short_text);
+            if (button) button.click(toggle_fun(cont, short_el, long_el, button, short_text, long_text));
+        };
+
+
+        // Fragments
+        $('.fragment-with-short').each(function() {
+            $(this).toggle_slide({
+                short_el: $('.fragment-short-text', this),
+                long_el: $('.fragment-long-text', this),
+                button: $('.toggle', this)
+            })
+        });
+        $('#description').each(function() {
+            $(this).toggle_slide({
+                short_el: $('#description-short', this),
+                long_el: $('#description-long', this),
+                button: $(this)
+            })
+        });
+
+
+
+		(function() {
+			var $current = null;
+			$('.hidden-box-wrapper').each(function() {
+				var $hidden = $('.hidden-box', this);
+				$('.hidden-box-trigger', this).click(function(event) {
+					event.preventDefault();
+					if ($current == $hidden) {
+						$current = null;
+						$hidden.hide('fast');
+					} else {
+						$current && $current.hide('fast');
+						$hidden.show('fast');
+						$current = $hidden;
+					} 
+				});
+			});
+			$('body').click(function(e) {
+				if ($current == null) return;
+				var p = $(e.target);
+				while (p.length) {
+					if (p == $current)
+						return;
+					if (p.hasClass('hidden-box-trigger'))
+						return;
+					p = p.parent();
+				}
+				$current.hide('fast');
+				$current = null;
+			});
+		})();
+		
+
 
 
 $('#themes-list-toggle').click(function(event) {
@@ -8,6 +97,28 @@ $('#themes-list-toggle').click(function(event) {
 });
 
 
+$('.open-player').click(function(event) {
+    event.preventDefault();
+    window.open($(this).attr('href'),
+        'player',
+        'width=422, height=500'
+        );
+});
+
+
+        $('.book-list-index').click(function(){
+            $('.book-list-show-index').hide('slow');
+            if($(this).parent().next('ul:not(:hidden)').length == 0){
+		$(this).parent().next('ul').toggle('slow');
+	    }
+            return false;
+        });
+
+	$('.hoverclick').click(function() {$(this).closest('.hoverget').toggleClass('hover');});
+
+	$(function(){
+	    $("#search").search();});
+
     });
 })(jQuery)