(function( $ ){

  $.fn.mod_media_popup = function(options) {
		    
		    var settings = {
		      	offH : 75,
			 	offW : 100
		    };
		    
		    // If options exist, lets merge them
			// with our default settings
			if ( options ) { 
				$.extend( settings, options );
			}
			
 			this.each(function(){

 				$mmpb = $(this);
 				$quarterBoxes = $mmpb.children("div");
 				if($quarterBoxes.size() != 4){
 					alert("Found "+$quarterBoxes.size()+" 2nd level divs, expected 4.");
 					return;
 				}
 				qb_tl = $quarterBoxes.eq(0);
				qb_tr = $quarterBoxes.eq(1);
				qb_bl = $quarterBoxes.eq(2);
				qb_br = $quarterBoxes.eq(3);
				
				$popupBoxes = $quarterBoxes.children("div");
 				if($popupBoxes.size() != 4){
 					alert("Found "+$popupBoxes.size()+" 3rd level divs, expected 4.");
 					return;
 				}				
				pop_tl = $popupBoxes.eq(0);
				pop_tr = $popupBoxes.eq(1);
				pop_bl = $popupBoxes.eq(2);
				pop_br = $popupBoxes.eq(3);
				
				//set offsets for popup divs

				var offH = settings.offH;
				
				var offW = settings.offW;
				
				//set the 4 quandrent divs to 1/4 size
				var radius = $mmpb.width()/2;
				//fit box inside quarter circle
				var h = w = radius/Math.sqrt(2);
				$quarterBoxes.height(h);				
				$quarterBoxes.width(w);
				
				
				//stick 'em where they belong
				var position = $mmpb.offset();
				//adjustment for change in box size
				var adj = radius - h;
				qb_tl.offset({top:position.top+adj,left:position.left+adj});
				qb_tr.offset({top:position.top+adj,left:position.left+w+adj});
				qb_bl.offset({top:position.top+h+adj,left:position.left+adj});
				qb_br.offset({top:position.top+h+adj,left:position.left+w+adj});
				
				var puH = $popupBoxes.height();
				var puW = $popupBoxes.width();
				
				//now position the popup divs
				pop_tl.offset({top:position.top+radius-puH-offH,left:position.left+radius-puW-offW});
				pop_tr.offset({top:position.top+radius-puH-offH,left:position.left+radius+offW});
				pop_bl.offset({top:position.top+radius+offH,left:position.left+radius-puW-offW});
				pop_br.offset({top:position.top+radius+offH,left:position.left+radius+offW});
				$popupBoxes.hide();
				
				$quarterBoxes.mouseenter(function(evt){
					$(this).children("div").fadeIn();
				}).mouseleave(function(evt){
					$(this).children("div").fadeOut();
				});
				
		});
  };
})( jQuery );
