(function($) {
  
  $.pop = function(options){
    
    // settings
    var settings = {
     pop_class : '.pop',
     pop_toggle_text : 'select'
    }
    
    // inject html wrapper
    function initpops (){
      $(settings.pop_class).each(function() {
        var pop_classes = $(this).attr("class");
        $(this).addClass("pop_menu");
        $(this).wrap("<div class='"+pop_classes+"'></div>");
        $(".pop_menu").attr("class", "pop_menu");
        $(".pop_menu").attr("id", "pop_block");
        $(this).before(" \
          <div class='pop_toggle'><input type='text' class='input-none' name='hire' id='hire' value='"+settings.pop_toggle_text+"' readonly /></div> \
          ");
        
      });
    }
    initpops();
    
    // assign reverse z-indexes to each pop
    var totalpops = $(settings.pop_class).size() + 1000;
    $(settings.pop_class).each(function(i) {
     var popzindex = totalpops - i;
     $(this).css({ zIndex: popzindex });
    });
    // close pops if user clicks outside of pop
    activePop = null;
    function closeInactivePop() {
      $(settings.pop_class).each(function (i) {
        if ($(this).hasClass('activepop') && i!=activePop) {
          $(this).removeClass('activepop');
          $('.jScrollPaneTrack').hide();
          }
      });
      return false;
    }
    $(settings.pop_class).mouseover(function() { activePop = $(settings.pop_class).index(this); });
    $(settings.pop_class).mouseout(function() { activePop = null; });

    $(document.body).click(function(){ 
     closeInactivePop();
    });
    // toggle that pop
    $(".pop_toggle").click(function(){
    	if($('.jScrollPaneContainer').length == 0){
	    	$('#pop_block').jScrollPane(
				{
					showArrows:true, 
					scrollbarWidth: 19,
					reinitialiseOnImageLoad: true
				}
			);
			$('.jScrollPaneContainer').addClass("extra-margin");
    	}
      $(this).parent(settings.pop_class).toggleClass("activepop");
      if ($('.pop_menu').is(":visible")){
      	$('.jScrollPaneTrack').show();
      }else{
      		$('.jScrollPaneTrack').hide();
      }
    });
  }

})(jQuery);