jQuery.extend({positionElement:function(G,J,R){var C=jQuery.sliCurrentEvent;var T=jQuery(document).scrollLeft();var e=jQuery(document).scrollTop();var K="middle";G.css("z-index",30000);var P=0;if(R.displaySide!=undefined){K=R.displaySide}if(R.offset){P=R.offset}var N=G.outerWidth();var y=G.outerHeight();var S=J.offset().left;var Q=J.offset().left;var H=J.outerWidth();var L=J.outerWidth();var M=J.offset().top;if(R.followMouse==true){if(!C){var C=window.event}if(C.pageX||C.pageY){posx=C.pageX;posy=C.pageY}else{if(C.clientX||C.clientY){posx=C.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;posy=C.clientY+document.body.scrollTop+document.documentElement.scrollTop}}M=posy;H=0;S=posx}var I=false;if(K=="left"){I=(Q-T-P)>N}else{if(K=="right"){I=(Q+L+P+N)>(jQuery(window).width()+T)}else{I=Q-T>(jQuery(window).width()/2)}}if(I){var D=S-N-P;var O=G.offset().left;var z=parseInt(D-O);var F=G.position().left;z=F+z;G.css("left",z+"px")}else{var D=S+H+P;var O=G.offset().left;var z=parseInt(D-O);var F=G.position().left;z=F+z;G.css("left",z+"px")}if(e>M){M=e}if(jQuery(window).height()+e-P<M+y+P){M=jQuery(window).height()+e-y-P-P}var E=G.offset().top;var B=parseInt(M-E+P);var A=parseInt(G.css("top").replace("px",""));B=A+B;G.css("top",B+"px")},modalOpen:function(g,e,f,h){g.stopTime("close");if(g.hasClass("active")&&e!=undefined){jQuery.sliCurrentEvent=h;jQuery.positionElement(g,e,f)}else{if(g.hasClass("loading")&&e!=undefined){jQuery.sliCurrentEvent=h;jQuery.positionElement(g,e,f)}else{if(e!=undefined){jQuery.sliCurrentEvent=h;g.oneTime(jQuery.modelDelay,"open",function(){g.addClass("loading");jQuery.sliPreloadImages(g,e,f)})}}}},sliPreloadImages:function(k,n,e,l){var m=function(){jQuery(this).removeClass("loading");k.addClass("active");k.fadeIn(jQuery.modelFadeSpeed);jQuery.positionElement(k,n,e);if(jQuery.modalLoaderDiv!=undefined){jQuery.modalLoaderDiv.hide()}};if(jQuery.modalLoaderDiv!=undefined){jQuery.modalLoaderDiv.show();jQuery.positionElement(jQuery.modalLoaderDiv,n,e);jQuery.modalLoaderDiv.css("z-index",3000000)}var i=false;var j=0;k.find("img").each(function(){if(this.src==""){j++;var a=new Image();var b=this;a.onerror=this.onerror;a.onload=function(){j--;b.src=a.src;if(i&&j==0&&k.hasClass("loading")){m()}};a.src=this.name}});var i=true;if(j==0&&k.hasClass("loading")){m()}},modalClose:function(b){b.stopTime("open");b.css("z-index",3000000);b.oneTime(jQuery.modelDelay,"close",function(){jQuery(this).fadeOut(jQuery.modelFadeSpeed);jQuery(this).removeClass("active");jQuery(this).removeClass("loading");if(jQuery.modalLoaderDiv!=undefined){jQuery.modalLoaderDiv.hide()}})},modalInitialization:function(n){var o="mouseover";var k="mouseout";var l;var p=500;var j=false;var i=0;if(n.fadeSpeed!=undefined){i=n.fadeSpeed}jQuery.modelFadeSpeed=i;if(n.loader!=undefined){jQuery.modalLoaderDiv=jQuery(n.loader)}else{jQuery.modalLoaderDiv=undefined}if(n.closeTrigger!=undefined){l=n.closeTrigger}else{l=n.trigger}if(n.toggleTrigger){o="click";k="click";jQuery(n.toggleTrigger).bind("mouseover",function(){jQuery(this).closest(n.parent).find(n.trigger).show()});jQuery(n.toggleTrigger).bind("mouseout",function(){jQuery(n.trigger).hide()})}if(n.openBind!=undefined){o=n.openBind}if(n.closeBind!=undefined){k=n.closeBind}if(n.canEnter==true){j=true}if(j){if(n.toggleTrigger==undefined){jQuery(n.target).bind("mouseover",function(){var a=jQuery(this);jQuery.modalOpen(a)});jQuery(n.target).bind("mouseout",function(){var a=jQuery(this);jQuery.modalClose(a)})}}else{jQuery(n.target).bind("mouseover",function(){var a=jQuery(this);jQuery.modalClose(a)})}if(n.followMouse==true){o="mousemove";p=1}if(n.fixZIndex!=undefined&&n.fixZIndex==true){var m=1000;jQuery("div").each(function(){jQuery(this).css("zIndex",m);m-=10})}if(n.delay!=undefined){if(n.delay==0){n.delay=1}p=n.delay}jQuery.modelDelay=p;jQuery(n.trigger).bind(o,function(a){if(jQuery.currentOpenModal){jQuery.modalClose(jQuery.currentOpenModal)}var c=jQuery(this).closest(n.parent);var b=c.find(n.target);jQuery.currentOpenModal=b;jQuery.modalOpen(b,c,n,a);return false});jQuery(l).bind(k,function(){var a=jQuery(this).closest(n.parent).find(n.target);jQuery.modalClose(a);return false})}});
