Hauptmenü öffnen

Memory Alpha Nova β

MediaWiki:Common.js: Unterschied zwischen den Versionen

imported>Shisma
 
(32 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
/*@import url('//memory-alpha.wiki/mediawiki/index.php?title=MediaWiki:Tabs.js&action=raw&ctype=text/javascript');
 +
@import url('//memory-alpha.wiki/mediawiki/index.php?title=MediaWiki:Gadget-TapToShow.js&action=raw&ctype=text/javascript');
 +
@import url('//memory-alpha.wiki/mediawiki/index.php?title=MediaWiki:Sidebar.js&action=raw&ctype=text/javascript');*/
 +
mw.loader.load( '/mediawiki/index.php?title=MediaWiki:Sidebar.js&action=raw&ctype=text/javascript');
 +
//mw.loader.load( '/mediawiki/index.php?title=MediaWiki:Details.js&action=raw&ctype=text/javascript');
 +
//mw.loader.load( '/wiki/MediaWiki:Details.js&action=raw&ctype=text/javascript');
 +
 +
/*(function ($) {
 +
  $(function() {
 +
    var sidebarjs = $('<script type="text/javascript" />');
 +
    sidebarjs.attr('src', '//memory-alpha.wiki/mediawiki/index.php?title=MediaWiki:Sidebar.js&action=raw&ctype=text/javascript');
 +
    $('head').append(sidebarjs);
 +
  });
 +
})(jQuery);
 +
*/
 +
/*(function ($) {
 +
  $(function() {
 +
    var details = $('<script type="text/javascript" />');
 +
    details.attr('src', '//memory-alpha.wiki/mediawiki/index.php?title=MediaWiki:Details.js&action=raw&ctype=text/javascript');
 +
    $('head').append(details);
 +
  });
 +
})(jQuery);
 +
*/
 +
(function ($) {
 +
  $(function() {
 +
    var tabsjs = $('<script type="text/javascript" />');
 +
    tabjs.attr('src', '//memory-alpha.wiki/mediawiki/index.php?title=MediaWiki:Tabs.js&action=raw&ctype=text/javascript');
 +
    $('head').append(tabjs);
 +
  });
 +
})(jQuery);
 +
 +
 +
/*(function ($) {
 +
  $(function() {
 +
    var gadget-TapToShowjs = $('<script type="text/javascript" />');
 +
    gadget-TapToShowjs.attr('src', '//memory-alpha.wiki/mediawiki/index.php?title=MediaWiki:Gadget-TapToShow.js&action=raw&ctype=text/javascript');
 +
    $('head').append(gadget-TapToShowjs);
 +
  });
 +
})(jQuery);
 +
 +
(function ($) {
 +
  $(function() {
 +
    var Gadget-Tabjs = $('<script type="text/javascript" />');
 +
    Gadget-Tabjs.attr('src', '//memory-alpha.wiki/mediawiki/index.php?title=MediaWiki:Gadget-Tab.js&action=raw&ctype=text/javascript');
 +
    $('head').append(Gadget-Tabjs);
 +
  });
 +
})(jQuery);*/
 +
 +
 +
//Kopie von Sidebar.js
 +
/*
 +
(function ($) {
 +
  $(function() {
 +
 +
    $('.nav dt, .links > dt').bind('click', function() {
 +
      var _this = $(this);
 +
      _this.siblings('.next + dd, .prev + dd').slideDown();
 +
      _this.nextUntil('dt:not(.next, .prev)', 'dd').slideDown().children('ul').children('li').each(function(index) {
 +
        var delay = index * 50;
 +
        $(this).delay(delay).animate({opacity:1});
 +
      });
 +
    }).css({cursor:'pointer'}).siblings('dd').hide().find('li').css({opacity:0});
 +
 +
    $('.sidebar-title').bind('click', function() {
 +
      var sidebar = $(this).parent();
 +
      sidebar.children('*:not(.sidebar-title):not(.sidebar-title + .thumb)').slideUp('slow', function() {
 +
        sidebar.find('.sidebar-title + .thumb .thumbcaption').sideDown();
 +
      });
 +
    }).css({cursor:'pointer'});
 +
 +
    $('.sidebar-division').each(function() {
 +
      var divisionHeader = $(this).children('.division-header');
 +
      var expandabilityIndicator = '<span class="expandability-indicator">&hellip;</span>';
 +
 +
      var divisionLabel = divisionHeader.html();
 +
      var cookieName = divisionLabel.toLowerCase().replace(/(<([^>]+)>)/ig,"");
 +
 +
      $(divisionHeader).append(expandabilityIndicator);
 +
 +
      if($.cookie('sidebar-division-state-' + cookieName) == 'expended') {
 +
        $(this).find('.expandability-indicator').hide();
 +
      } else {
 +
        $(this).addClass('collapsed').children('.division-header').siblings().hide();
 +
      }
 +
    });
 +
 +
    $('.division-header').css({cursor:'pointer'}).click(function() {
 +
      var wrapper = $(this).parent();
 +
 +
      if(wrapper.hasClass('collapsed')) {
 +
 +
        var divisionLabel = $(this).children('strong').html();
 +
        var cookieName = divisionLabel.toLowerCase().replace(/(<([^>]+)>)/ig,"");
 +
 +
        $(this).siblings().slideDown('slow');
 +
        $(this).find('.expandability-indicator').fadeOut();
 +
        wrapper.removeClass('collapsed');
 +
        $.cookie('sidebar-division-state-' + cookieName, 'expended');
 +
 +
      } else {
 +
 +
 +
        var divisionLabel = $(this).children('strong').html();
 +
        var cookieName = divisionLabel.toLowerCase().replace(/(<([^>]+)>)/ig,"")
 +
 +
        $(this).siblings().slideUp('slow', function() {
 +
          wrapper.addClass('collapsed');
 +
        });
 +
        $(this).find('.expandability-indicator').fadeIn();
 +
        $.cookie('sidebar-division-state-' + cookieName, 'collapsed');
 +
      }
 +
    });
 +
    $('.details > .summary').each(function() {
 +
      var $summary = $(this);
 +
      var $details = $summary.parent();
 +
      var $button = $('<a />').html('anzeigen');
 +
      $summary.append(" [").append($button).append(']');
 +
      $summary.bind('click', function() {
 +
      $details.toggleClass('open');
 +
      if($details.hasClass('open')) {
 +
          $button.html('verbergen');
 +
        } else {
 +
          $button.html('anzeigen');
 +
        }
 +
      });
 +
    });
 +
  });
 +
})(jQuery);
 +
 +
*/
 
/**
 
/**
 
  * jQuery Cookie plugin
 
  * jQuery Cookie plugin
Zeile 42: Zeile 172:
  
 
function cookie_encode(string){
 
function cookie_encode(string){
//full uri decode not only to encode ",; =" but to save uicode charaters
+
  //full uri decode not only to encode ",; =" but to save uicode charaters
var decoded = encodeURIComponent(string);
+
  var decoded = encodeURIComponent(string);
//encod back common and allowed charaters {}:"#[] to save space and make the cookies more human readable
+
  //encod back common and allowed charaters {}:"#[] to save space and make the cookies more human readable
var ns = decoded.replace(/(%7B|%7D|%3A|%22|%23|%5B|%5D)/g,function(charater){return decodeURIComponent(charater);});
+
  var ns = decoded.replace(/(%7B|%7D|%3A|%22|%23|%5B|%5D)/g,function(charater){return decodeURIComponent(charater);});
return ns;
+
  return ns;
 
}
 
}
  
  
 +
(function ($) {
 +
  $(function() {
  
/*
+
var fullImage = $('#file > a');
* jQuery Cycle Lite Plugin
+
var regionBrowser = $('<div />', {
* http://malsup.com/jquery/cycle/lite/
+
  id: 'region-browser'
* Copyright (c) 2008-2011 M. Alsup
+
});
* Version: 1.3 (01-JUN-2011)
 
* Dual licensed under the MIT and GPL licenses:
 
* http://www.opensource.org/licenses/mit-license.php
 
* http://www.gnu.org/licenses/gpl.html
 
* Requires: jQuery v1.3.2 or later
 
*/
 
;(function($) {
 
  
var ver = 'Lite-1.3';
+
fullImage.after(regionBrowser);
  
$.fn.cycle = function(options) {
+
fullImage.css({
    return this.each(function() {
+
  display: 'inline-block',
        options = options || {};
+
  position: 'relative'
       
+
}).children('img').css({
        if (this.cycleTimeout) clearTimeout(this.cycleTimeout);
+
  verticalAlign: 'bottom'
        this.cycleTimeout = 0;
+
});
        this.cyclePause = 0;
 
       
 
        var $cont = $(this);
 
        var $slides = options.slideExpr ? $(options.slideExpr, this) : $cont.children();
 
        var els = $slides.get();
 
        if (els.length < 2) {
 
            window.console && console.log('terminating; too few slides: ' + els.length);
 
            return; // don't bother
 
        }
 
  
        // support metadata plugin (v1.0 and v2.0)
+
$('.region-info').each(function() {
        var opts = $.extend({}, $.fn.cycle.defaults, options || {}, $.metadata ? $cont.metadata() : $.meta ? $cont.data() : {});
+
  var that = $(this);
var meta = $.isFunction($cont.data) ? $cont.data(opts.metaAttr) : null;
+
  var src = $('.fullMedia > a').attr('href');
if (meta)
+
  var c = that.attr('title').split(' ');
opts = $.extend(opts, meta);
+
  var thumbHeight = 100;
           
 
        opts.before = opts.before ? [opts.before] : [];
 
        opts.after = opts.after ? [opts.after] : [];
 
        opts.after.unshift(function(){ opts.busy=0; });
 
           
 
        // allow shorthand overrides of width, height and timeout
 
        var cls = this.className;
 
        opts.width = parseInt((cls.match(/w:(\d+)/)||[])[1]) || opts.width;
 
        opts.height = parseInt((cls.match(/h:(\d+)/)||[])[1]) || opts.height;
 
        opts.timeout = parseInt((cls.match(/t:(\d+)/)||[])[1]) || opts.timeout;
 
  
        if ($cont.css('position') == 'static')
 
            $cont.css('position', 'relative');
 
        if (opts.width)
 
            $cont.width(opts.width);
 
        if (opts.height && opts.height != 'auto')
 
            $cont.height(opts.height);
 
  
        var first = 0;
+
  svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
        $slides.css({position: 'absolute', top:0, left:0}).each(function(i) {
+
  svg.setAttribute('preserveAspectRatio', 'none');
            $(this).css('z-index', els.length-i)
 
        });
 
       
 
        $(els[first]).css('opacity',1).show(); // opacity bit needed to handle reinit case
 
        if ($.browser.msie) els[first].style.removeAttribute('filter');
 
  
        if (opts.fit && opts.width)
+
  var ratio = thumbHeight / c[3];
            $slides.width(opts.width);
 
        if (opts.fit && opts.height && opts.height != 'auto')
 
            $slides.height(opts.height);
 
        if (opts.pause)
 
            $cont.hover(function(){this.cyclePause=1;}, function(){this.cyclePause=0;});
 
  
        var txFn = $.fn.cycle.transitions[opts.fx];
 
txFn && txFn($cont, $slides, opts);
 
       
 
        $slides.each(function() {
 
            var $el = $(this);
 
            this.cycleH = (opts.fit && opts.height) ? opts.height : $el.height();
 
            this.cycleW = (opts.fit && opts.width) ? opts.width : $el.width();
 
        });
 
  
        if (opts.cssFirst)
+
  svg.setAttribute('viewBox', (c[0] - (c[2] / 2)) + ' ' + (c[1] - (c[3] / 2)) + ' ' + c[2] + ' ' + c[3]);
            $($slides[first]).css(opts.cssFirst);
+
  svg.setAttribute('height', thumbHeight);
 +
  svg.setAttribute('width', c[2] * ratio);
 +
  svg.setAttribute('style', 'margin: 1em 1em 0 0');
  
        if (opts.timeout) {
+
  image = document.createElementNS("http://www.w3.org/2000/svg", "image");
            // ensure that timeout and speed settings are sane
+
  image.setAttribute('width', 100);
            if (opts.speed.constructor == String)
+
  image.setAttribute('height', 100);
                opts.speed = {slow: 600, fast: 200}[opts.speed] || 400;
+
  image.setAttribute('preserveAspectRatio', 'none');
            if (!opts.sync)
+
  image.setAttributeNS('http://www.w3.org/1999/xlink', 'href', src);
                opts.speed = opts.speed / 2;
 
            while((opts.timeout - opts.speed) < 250)
 
                opts.timeout += opts.speed;
 
        }
 
        opts.speedIn = opts.speed;
 
        opts.speedOut = opts.speed;
 
  
opts.slideCount = els.length;
+
  var marker = $('<span />').css({
        opts.currSlide = first;
+
    border: '1px solid white',
        opts.nextSlide = 1;
+
    position: 'absolute',
 +
    display: 'none',
 +
    left: c[0] + '%',
 +
    top: c[1] + '%',
 +
    width: c[2] + '%',
 +
    height: c[3] + '%',
 +
    marginLeft: ((c[2]/2)*-1) + '%',
 +
    marginTop: ((c[3]/2)*-1) + '%'
 +
  });
  
        // fire artificial events
+
  marker.appendTo(fullImage);
        var e0 = $slides[first];
+
  $(image).appendTo(svg);
        if (opts.before.length)
+
  $(svg).appendTo(regionBrowser).hover(function() {
            opts.before[0].apply(e0, [e0, e0, opts, true]);
+
    marker.fadeIn();
        if (opts.after.length > 1)
+
  }, function() {
            opts.after[1].apply(e0, [e0, e0, opts, true]);
+
    marker.fadeOut();
       
+
  });
        if (opts.click && !opts.next)
+
});
            opts.next = opts.click;
 
        if (opts.next)
 
            $(opts.next).bind('click', function(){return advance(els,opts,opts.rev?-1:1)});
 
        if (opts.prev)
 
            $(opts.prev).bind('click', function(){return advance(els,opts,opts.rev?1:-1)});
 
 
 
        if (opts.timeout)
 
            this.cycleTimeout = setTimeout(function() {
 
                go(els,opts,0,!opts.rev)
 
            }, opts.timeout + (opts.delay||0));
 
    });
 
};
 
 
 
function go(els, opts, manual, fwd) {
 
    if (opts.busy) return;
 
    var p = els[0].parentNode, curr = els[opts.currSlide], next = els[opts.nextSlide];
 
    if (p.cycleTimeout === 0 && !manual)
 
        return;
 
  
    if (manual || !p.cyclePause) {
 
        if (opts.before.length)
 
            $.each(opts.before, function(i,o) { o.apply(next, [curr, next, opts, fwd]); });
 
        var after = function() {
 
            if ($.browser.msie)
 
                this.style.removeAttribute('filter');
 
            $.each(opts.after, function(i,o) { o.apply(next, [curr, next, opts, fwd]); });
 
        };
 
  
        if (opts.nextSlide != opts.currSlide) {
 
            opts.busy = 1;
 
            $.fn.cycle.custom(curr, next, opts, after);
 
        }
 
        var roll = (opts.nextSlide + 1) == els.length;
 
        opts.nextSlide = roll ? 0 : opts.nextSlide+1;
 
        opts.currSlide = roll ? els.length-1 : opts.nextSlide-1;
 
    }
 
    if (opts.timeout)
 
        p.cycleTimeout = setTimeout(function() { go(els,opts,0,!opts.rev) }, opts.timeout);
 
};
 
 
// advance slide forward or back
 
function advance(els, opts, val) {
 
    var p = els[0].parentNode, timeout = p.cycleTimeout;
 
    if (timeout) {
 
        clearTimeout(timeout);
 
        p.cycleTimeout = 0;
 
    }
 
    opts.nextSlide = opts.currSlide + val;
 
    if (opts.nextSlide < 0) {
 
        opts.nextSlide = els.length - 1;
 
    }
 
    else if (opts.nextSlide >= els.length) {
 
        opts.nextSlide = 0;
 
    }
 
    go(els, opts, 1, val>=0);
 
    return false;
 
};
 
 
$.fn.cycle.custom = function(curr, next, opts, cb) {
 
    var $l = $(curr), $n = $(next);
 
    $n.css(opts.cssBefore);
 
    var fn = function() {$n.animate(opts.animIn, opts.speedIn, opts.easeIn, cb)};
 
    $l.animate(opts.animOut, opts.speedOut, opts.easeOut, function() {
 
        $l.css(opts.cssAfter);
 
        if (!opts.sync) fn();
 
    });
 
    if (opts.sync) fn();
 
};
 
 
$.fn.cycle.transitions = {
 
    fade: function($cont, $slides, opts) {
 
$slides.not(':eq(0)').hide();
 
opts.cssBefore = { opacity: 0, display: 'block' };
 
opts.cssAfter  = { display: 'none' };
 
opts.animOut = { opacity: 0 };
 
opts.animIn = { opacity: 1 };
 
    },
 
    fadeout: function($cont, $slides, opts) {
 
opts.before.push(function(curr,next,opts,fwd) {
 
$(curr).css('zIndex',opts.slideCount + (fwd === true ? 1 : 0));
 
$(next).css('zIndex',opts.slideCount + (fwd === true ? 0 : 1));
 
});
 
$slides.not(':eq(0)').hide();
 
opts.cssBefore = { opacity: 1, display: 'block', zIndex: 1 };
 
opts.cssAfter  = { display: 'none', zIndex: 0 };
 
opts.animOut = { opacity: 0 };
 
    }
 
};
 
 
$.fn.cycle.ver = function() { return ver; };
 
 
// @see: http://malsup.com/jquery/cycle/lite/
 
$.fn.cycle.defaults = {
 
animIn:        {},
 
animOut:      {},
 
fx:          'fade',
 
    after:        null,
 
    before:        null,
 
cssBefore:    {},
 
cssAfter:      {},
 
    delay:        0,   
 
    fit:          0,   
 
    height:      'auto',
 
metaAttr:    'cycle',
 
    next:          null,
 
    pause:        0,   
 
    prev:          null,
 
    speed:        1000,
 
    slideExpr:    null,
 
    sync:          1,   
 
    timeout:      4000
 
};
 
 
})(jQuery);
 
 
 
 
(function($) {
 
  $(function() {
 
    var max_height = 0;
 
    $('.slideshow > .wikia-gallery').children().each(function() {
 
      if(!$(this).hasClass('wikia-gallery-item')) {
 
        $(this).remove();
 
      } else {
 
        var elm_height = parseInt($(this).height());
 
        if(elm_height  > max_height) {
 
          max_height = elm_height;
 
          $(this).parent().css({height:max_height});
 
        }
 
      }
 
    });
 
    $('.slideshow > .wikia-gallery').css({margin:0}).cycle('fade').children('span').css({padding:0});
 
 
   });
 
   });
 
  $('.division-header').css({cursor:'pointer'}).click(function() {
 
 
    var wrapper = $(this).parent();
 
 
    if(wrapper.hasClass('collapsed')) {
 
 
      $(this).siblings().slideDown('slow');
 
      wrapper.removeClass('collapsed');
 
 
    } else {
 
 
      $(this).siblings().slideUp('slow');
 
      wrapper.addClass('collapsed');
 
 
    }
 
});
 
 
 
 
})(jQuery);
 
})(jQuery);

Aktuelle Version vom 17. Januar 2020, 12:16 Uhr

/*@import url('//memory-alpha.wiki/mediawiki/index.php?title=MediaWiki:Tabs.js&action=raw&ctype=text/javascript');
@import url('//memory-alpha.wiki/mediawiki/index.php?title=MediaWiki:Gadget-TapToShow.js&action=raw&ctype=text/javascript');
@import url('//memory-alpha.wiki/mediawiki/index.php?title=MediaWiki:Sidebar.js&action=raw&ctype=text/javascript');*/
mw.loader.load( '/mediawiki/index.php?title=MediaWiki:Sidebar.js&action=raw&ctype=text/javascript');
//mw.loader.load( '/mediawiki/index.php?title=MediaWiki:Details.js&action=raw&ctype=text/javascript');
//mw.loader.load( '/wiki/MediaWiki:Details.js&action=raw&ctype=text/javascript');

/*(function ($) {
  $(function() {
    var sidebarjs = $('<script type="text/javascript" />');
    sidebarjs.attr('src', '//memory-alpha.wiki/mediawiki/index.php?title=MediaWiki:Sidebar.js&action=raw&ctype=text/javascript');
    $('head').append(sidebarjs);
  });
})(jQuery);
*/
/*(function ($) {
  $(function() {
    var details = $('<script type="text/javascript" />');
    details.attr('src', '//memory-alpha.wiki/mediawiki/index.php?title=MediaWiki:Details.js&action=raw&ctype=text/javascript');
    $('head').append(details);
  });
})(jQuery);
*/
(function ($) {
  $(function() {
    var tabsjs = $('<script type="text/javascript" />');
    tabjs.attr('src', '//memory-alpha.wiki/mediawiki/index.php?title=MediaWiki:Tabs.js&action=raw&ctype=text/javascript');
    $('head').append(tabjs);
  });
})(jQuery);


/*(function ($) {
  $(function() {
    var gadget-TapToShowjs = $('<script type="text/javascript" />');
    gadget-TapToShowjs.attr('src', '//memory-alpha.wiki/mediawiki/index.php?title=MediaWiki:Gadget-TapToShow.js&action=raw&ctype=text/javascript');
    $('head').append(gadget-TapToShowjs);
  });
})(jQuery);

(function ($) {
  $(function() {
    var Gadget-Tabjs = $('<script type="text/javascript" />');
    Gadget-Tabjs.attr('src', '//memory-alpha.wiki/mediawiki/index.php?title=MediaWiki:Gadget-Tab.js&action=raw&ctype=text/javascript');
    $('head').append(Gadget-Tabjs);
  });
})(jQuery);*/


//Kopie von Sidebar.js
/*
(function ($) {
  $(function() {

    $('.nav dt, .links > dt').bind('click', function() {
      var _this = $(this);
      _this.siblings('.next + dd, .prev + dd').slideDown();
      _this.nextUntil('dt:not(.next, .prev)', 'dd').slideDown().children('ul').children('li').each(function(index) {
        var delay = index * 50;
        $(this).delay(delay).animate({opacity:1});
      });
    }).css({cursor:'pointer'}).siblings('dd').hide().find('li').css({opacity:0});

    $('.sidebar-title').bind('click', function() {
      var sidebar = $(this).parent();
      sidebar.children('*:not(.sidebar-title):not(.sidebar-title + .thumb)').slideUp('slow', function() {
        sidebar.find('.sidebar-title + .thumb .thumbcaption').sideDown();
      });
    }).css({cursor:'pointer'});

    $('.sidebar-division').each(function() {
      var divisionHeader = $(this).children('.division-header');
      var expandabilityIndicator = '<span class="expandability-indicator">&hellip;</span>';

      var divisionLabel = divisionHeader.html();
      var cookieName = divisionLabel.toLowerCase().replace(/(<([^>]+)>)/ig,"");

      $(divisionHeader).append(expandabilityIndicator);

      if($.cookie('sidebar-division-state-' + cookieName) == 'expended') {
        $(this).find('.expandability-indicator').hide();
      } else {
        $(this).addClass('collapsed').children('.division-header').siblings().hide();
      }
    });

    $('.division-header').css({cursor:'pointer'}).click(function() {
      var wrapper = $(this).parent();

      if(wrapper.hasClass('collapsed')) {

        var divisionLabel = $(this).children('strong').html();
        var cookieName = divisionLabel.toLowerCase().replace(/(<([^>]+)>)/ig,"");

        $(this).siblings().slideDown('slow');
        $(this).find('.expandability-indicator').fadeOut();
        wrapper.removeClass('collapsed');
        $.cookie('sidebar-division-state-' + cookieName, 'expended');

      } else {


        var divisionLabel = $(this).children('strong').html();
        var cookieName = divisionLabel.toLowerCase().replace(/(<([^>]+)>)/ig,"")

        $(this).siblings().slideUp('slow', function() {
          wrapper.addClass('collapsed');
        });
        $(this).find('.expandability-indicator').fadeIn();
        $.cookie('sidebar-division-state-' + cookieName, 'collapsed');
      }
    });
    $('.details > .summary').each(function() {
      var $summary = $(this);
      var $details = $summary.parent();
      var $button = $('<a />').html('anzeigen');
      $summary.append(" [").append($button).append(']');
      $summary.bind('click', function() {
      $details.toggleClass('open');
      if($details.hasClass('open')) {
          $button.html('verbergen');
        } else {
          $button.html('anzeigen');
        }
      });
    });
  });
})(jQuery);

*/
/**
 * jQuery Cookie plugin
 *
 * Copyright (c) 2010 Klaus Hartl (stilbuero.de)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 */
jQuery.cookie = function (key, value, options) {

    // key and at least value given, set cookie...
    if (arguments.length > 1 && String(value) !== "[object Object]") {
        options = jQuery.extend({}, options);

        if (value === null || value === undefined) {
            options.expires = -1;
        }

        if (typeof options.expires === 'number') {
            var days = options.expires, t = options.expires = new Date();
            t.setDate(t.getDate() + days);
        }

        value = String(value);

        return (document.cookie = [
            encodeURIComponent(key), '=',
            options.raw ? value : cookie_encode(value),
            options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
            options.path ? '; path=' + options.path : '',
            options.domain ? '; domain=' + options.domain : '',
            options.secure ? '; secure' : ''
        ].join(''));
    }

    // key and possibly options given, get cookie...
    options = value || {};
    var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent;
    return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;
};

function cookie_encode(string){
  //full uri decode not only to encode ",; =" but to save uicode charaters
  var decoded = encodeURIComponent(string);
  //encod back common and allowed charaters {}:"#[] to save space and make the cookies more human readable
  var ns = decoded.replace(/(%7B|%7D|%3A|%22|%23|%5B|%5D)/g,function(charater){return decodeURIComponent(charater);});
  return ns;
}


(function ($) {
  $(function() {

var fullImage = $('#file > a');
var regionBrowser = $('<div />', {
  id: 'region-browser'
});

fullImage.after(regionBrowser);

fullImage.css({
  display: 'inline-block',
  position: 'relative'
}).children('img').css({
  verticalAlign: 'bottom'
});

$('.region-info').each(function() {
  var that = $(this);
  var src = $('.fullMedia > a').attr('href');
  var c = that.attr('title').split(' ');
  var thumbHeight = 100;


  svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
  svg.setAttribute('preserveAspectRatio', 'none');

  var ratio = thumbHeight / c[3];


  svg.setAttribute('viewBox', (c[0] - (c[2] / 2)) + ' ' + (c[1] - (c[3] / 2)) + ' ' + c[2] + ' ' + c[3]);
  svg.setAttribute('height', thumbHeight);
  svg.setAttribute('width', c[2] * ratio);
  svg.setAttribute('style', 'margin: 1em 1em 0 0');

  image = document.createElementNS("http://www.w3.org/2000/svg", "image");
  image.setAttribute('width', 100);
  image.setAttribute('height', 100);
  image.setAttribute('preserveAspectRatio', 'none');
  image.setAttributeNS('http://www.w3.org/1999/xlink', 'href', src);

  var marker = $('<span />').css({
    border: '1px solid white',
    position: 'absolute',
    display: 'none',
    left: c[0] + '%',
    top: c[1] + '%',
    width: c[2] + '%',
    height: c[3] + '%',
    marginLeft: ((c[2]/2)*-1) + '%',
    marginTop: ((c[3]/2)*-1) + '%'
  });

  marker.appendTo(fullImage);
  $(image).appendTo(svg);
  $(svg).appendTo(regionBrowser).hover(function() {
    marker.fadeIn();
  }, function() {
    marker.fadeOut();
  });
});


  });
})(jQuery);