(function($){var level=[];var lastclicked=[];$.fn.popup=$.fn.popup=function(customoptions){var $body=$("body"),$window=$(window),$document=$(document),$el,$newel,$wrapper,options={},blurhandler,focushandler,defaults={type:"overlay",action:"click",background:true,color:"black",opacity:"0.4",horizontal:"center",vertical:"center",escape:true,blur:true,fade:250,opensufix:"_open",closesufix:"_close",keepfocus:true,reposition:false,autozindex:false};var init=function(el){if(!$(el).attr("id"))$(el).attr("id",
"j-popup-"+parseInt(Math.random()*1E8));lastclicked[el.id]=false;level[el.id]=0;$el=$(el);options=$.extend({},defaults,customoptions);if(options.reposition===true){$newel=$el;$el=$wrapper=$("#"+el.id+"_wrapper");positionpopup(el);return false}if($el.attr("data-popup-initialized"))return false;$el.attr("data-popup-initialized","true");var triggerelement="."+el.id+options.opensufix;if(options.type=="tooltip"){options.background=false;options.keepfocus=false}$el.css({display:"none"});$body.prepend(el);
if(options.background&&!$("#"+el.id+"_background").length){var popupback='<div id="'+el.id+'_background" class="popup_background"></div>';$body.prepend(popupback);$("#"+el.id+"_background").css({backgroundColor:options.color,opacity:options.opacity,position:"fixed",top:"0",right:"0",bottom:"0",left:"0",display:"none"})}if(options.type=="overlay"){$el.css({display:"inline-block",textAlign:"left",position:"relative",verticalAlign:"middle"}).addClass("popup_content");$el.wrap('<div id="'+el.id+'_wrapper" class="popup_wrapper" />');
$wrapper=$("#"+el.id+"_wrapper");$wrapper.css({position:"fixed",top:"0",left:"0",width:"100%",height:"100%",display:"none",textAlign:"center"});$wrapper.append('<div class="popup_align" />');$(".popup_align").css({display:"inline-block",verticalAlign:"middle",height:"100%"});if(options.horizontal=="right")$wrapper.css("text-align","right");else if(options.horizontal=="left")$wrapper.css("text-align","left");if(options.vertical=="bottom")$el.css("vertical-align","bottom");else if(options.vertical==
"top")$el.css("vertical-align","top");$newel=$el;$el=$wrapper}$(triggerelement).each(function(i,item){$(item).attr("data-popup-order",i)});if(options.action=="click"){$(triggerelement).click(function(e){if($el.is(":hidden")){var or=$(this).attr("data-popup-order");dopopup(el,or);e.preventDefault()}});$("."+el.id+options.closesufix).click(function(e){hidePopUp(el);e.preventDefault()})}else if(options.action=="hover"){$(triggerelement).mouseenter(function(){dopopup(el,$(this).attr("data-popup-order"))});
$(triggerelement).mouseleave(function(){hidePopUp(el)})}else{$(triggerelement).mouseover(function(){dopopup(el,$(this).attr("data-popup-order"))});$(triggerelement).mouseout(function(){hidePopUp(el)})}if(options.escape)$(document).keydown(function(e){if(e.keyCode==27&&$el.css("display")=="block")hidePopUp(el)});$(window).bind("resize",function(){if(options.type!="tooltip")positionpopup(el)});if(options.autozindex===true){var maxZIndex=Math.max(0,Math.max.apply(null,$.map($.makeArray(document.getElementsByTagName("*")),
function(v){return parseFloat($(v).css("z-index"))||null})));level[el.id]=maxZIndex;if(level[el.id]>0)$el.css({zIndex:level[el.id]+2});if(options.background)if(level[el.id]>0)$("#"+el.id+"_background").css({zIndex:level[el.id]+1})}if(options.autoopen)dopopup(el,0)};var dopopup=function(el,order){var clickplace=order;callback(options.beforeopen,clickplace);lastclicked[el.id]=clickplace;if(options.fade)$el.fadeIn(options.fade,function(){$(document).on("click",blurhandler);$(document).on("focusin",focushandler)});
else{$el.show();setTimeout(function(){$(document).on("click",blurhandler);$(document).on("focusin",focushandler)},0)}positionpopup(el,clickplace);if(options.background)if(options.fade)$("#"+el.id+"_background").fadeIn(options.fade);else $("#"+el.id+"_background").show();if(options.keepfocus){$newel.attr("tabindex",-1).focus();focushandler=function(e){if(!$(e.target).parents().andSelf().is("#"+el.id))$newel.focus()}}callback(options.onOpen,clickplace);if(options.blur)blurhandler=function(e){if(!$(e.target).parents().andSelf().is("#"+
el.id))hidePopUp(el)}};var positionpopup=function(el,clickplace){clickplace=clickplace||0;if(options.type=="tooltip"){$el.css({"position":"absolute"});var $link=$("."+el.id+options.opensufix+'[data-popup-order="'+clickplace+'"]');var linkOffset=$link.offset();if(options.horizontal=="right")$el.css("left",linkOffset.left+$link.outerWidth());else if(options.horizontal=="left")$el.css("right",$(window).width()-linkOffset.left);else $el.css("left",linkOffset.left+$link.outerWidth()/2-$(el).outerWidth()/
2-parseFloat($(el).css("marginLeft")));if(options.vertical=="bottom")$el.css("top",linkOffset.top+$link.outerHeight());else if(options.vertical=="top")$el.css("bottom",$(window).height()-linkOffset.top);else $el.css("top",linkOffset.top+$link.outerHeight()/2-$(el).outerHeight()/2-parseFloat($(el).css("marginTop")))}else if(options.type=="overlay")if($window.height()<$newel.outerHeight()+parseFloat($newel.css("marginTop"))+parseFloat($newel.css("marginBottom")))$el.css({position:"absolute",top:$window.scrollTop()});
else $el.css({position:"fixed",top:"0"})};var hidePopUp=function(el){if(options.background)if(options.fade)$("#"+el.id+"_background").fadeOut(options.fade);else $("#"+el.id+"_background").hide();if(options.blur)$(document).off("click",blurhandler);if(options.keepfocus){$(document).off("focusin",focushandler);$("."+el.id+options.opensufix).focus()}if(options.fade)$el.fadeOut(options.fade);else $el.hide();callback(options.onClose,lastclicked[el.id])};var callback=function(func,clickplace){var cp=$("."+
$el.attr("id")+options.opensufix+'[data-popup-order="'+clickplace+'"]');if(typeof func=="function")func(cp)};this.each(function(){init(this)})}})(jQuery);