// creates a lightbox type popup
// made by fguerra@dri ver. alpha

(function($){
  var driPopup = {
    popupLocation: {},
    
	start: function(toPopup) {
	  // first layer
	  this.overlay = $('<div id="driOverlay" style="display:none; z-index: 98;"></div>').css({
        backgroundColor: '#000000',
		top: 0,
		left: 0,
	    position: 'absolute',
	    width: '100%',
	    height: $(document).height(),
	    opacity: '0.6' 
      });
	
	  // second layer
	  this.popup = $('<div id="driPopup" style="display:none; z-index: 99;"></div>').css({
		left: 0,
	    position: 'absolute',
	    width: '100%'
      });
	
	  this.overlay.appendTo('body');
	  this.popup.appendTo('body');
	  // save position of toPopup element
	  driPopup.popupLocation.next = toPopup.next();
	  driPopup.popupLocation.prev = toPopup.prev();
	  toPopup.appendTo(this.popup).css({ margin: '0px auto' }).show();
	  this.popup.vCenter();
	  this.overlay.fadeIn(400);
	  this.popup.fadeIn(400);
    },
    
    end: function() {
      this.popup.fadeOut(400);
      this.overlay.fadeOut(400);
      setTimeout(function() {
    	  driPopup.overlay.remove();
          // save toPopup on it was again and hide it
          var toPopup = driPopup.popup.children();
          if (driPopup.popupLocation.next.length > 0) {
        	  toPopup.hide().insertBefore(driPopup.popupLocation.next);
          } else {
        	  toPopup.hide().insertAfter(driPopup.popupLocation.prev);
          }
          driPopup.popup.remove();
      }, 400);
    }
  };
  // end of driPopup
  
  $.fn.popupBlock = function() {
	return driPopup.start(this);
  };
 
  $.fn.popupClose = function() {
    return driPopup.end();
  };
  
  $.fn.popupCenter = function() {
	    return driPopup.popup.vCenter();
  };
})(jQuery);

