function popup(location, args) {

   args = jQuery.extend({
      title: '',
      width: '700px',
      height: '500px',
      top: '8%',
      close: 'Sluiten',
      mask: true,
      confirmation: false,
      blur: true
   }, args);

   var openPopup = function() {
      $('html').addClass('blurred');
      $popup.prependTo('body');
      $(document).keyup(escClosePopup = function(e) { if (e.keyCode == 27) { closePopup(); } });
   }

   var closePopup = function() {
      var confirmed = false;
      if (args.confirmation) confirmed = confirm(args.confirmation);
      if (confirmed || !args.confirmation) {
         $popup.remove();
         parent.$('html').removeClass('blurred');
         $(document).unbind('keyup', escClosePopup);
      }
      return false;
   }

   var $popup  = $('<div id="popup"></div>');
   var $mask   = $('<div class="mask"></div>');
   if (args.blur) $mask.click(closePopup);
   var $window = $('<div class="window" role="dialog" style="width: '+args.width+'; height: '+args.height+'; top: '+args.top+';"></div>');
   var $frame  = $('<iframe src="'+location+'" frameborder="0" allowtransparency="1"><a href="'+location+'">'+(args.title?args.title:location)+'</a></iframe>');
   var $title  = $('<h1>'+args.title+'</h1>');
   var $close  = $('<button class="close" title="'+args.close+'" aria-controls="popup">'+args.close+'</button>').click(closePopup);

   $popup.append($window.append($frame).append($close));
   if (args.title) $window.prepend($title);
   if (args.mask) $popup.prepend($mask);

   openPopup();

}

jQuery.fn.popup = function(args) {

   return this.each(function() {

      $(this).click(function() {
         popup($(this).attr('href'), args);
         return false;
      }).attr('aria-haspopup', true).attr('aria-owns', 'popup');

   });

}
