jQuery.extend({positionElement:function(o,l,c){var s=jQuery.sliCurrentEvent;var a=jQuery(document).scrollLeft();var x=jQuery(document).scrollTop();var k="middle";o.css("z-index",30000);var f=0;if(c.displaySide!=undefined){k=c.displaySide}if(c.offset){f=c.offset}var h=o.outerWidth();var w=o.outerHeight();var b=l.offset().left;var d=l.offset().left;var n=l.outerWidth();var j=l.outerWidth();var i=l.offset().top;if(c.followMouse==true){if(!s){var s=window.event}if(s.pageX||s.pageY){posx=s.pageX;posy=s.pageY}else{if(s.clientX||s.clientY){posx=s.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;posy=s.clientY+document.body.scrollTop+document.documentElement.scrollTop}}i=posy;n=0;b=posx}var m=false;if(k=="left"){m=(d-a-f)>h}else{if(k=="right"){m=(d+j+f+h)>(jQuery(window).width()+a)}else{m=d-a>(jQuery(window).width()/2)}}if(m){var r=b-h-f;var g=o.offset().left;var v=parseInt(r-g);var p=o.position().left;v=p+v;o.css("left",v+"px")}else{var r=b+n+f;var g=o.offset().left;var v=parseInt(r-g);var p=o.position().left;v=p+v;o.css("left",v+"px")}if(x>i){i=x}if(jQuery(window).height()+x-f<i+w+f){i=jQuery(window).height()+x-w-f-f}var q=o.offset().top;var t=parseInt(i-q+f);var u=parseInt(o.css("top").replace("px",""));t=u+t;o.css("top",t+"px")},modalOpen:function(d,b,a,c){d.stopTime("close");if(d.hasClass("active")&&b!=undefined){jQuery.sliCurrentEvent=c;jQuery.positionElement(d,b,a)}else{if(d.hasClass("loading")&&b!=undefined){jQuery.sliCurrentEvent=c;jQuery.positionElement(d,b,a)}else{if(b!=undefined){jQuery.sliCurrentEvent=c;d.oneTime(jQuery.modelDelay,"open",function(){d.addClass("loading");jQuery.sliPreloadImages(d,b,a)})}}}},sliPreloadImages:function(g,c,b,f){var d=function(){jQuery(this).removeClass("loading");g.addClass("active");g.fadeIn(jQuery.modelFadeSpeed);jQuery.positionElement(g,c,b);if(jQuery.modalLoaderDiv!=undefined){jQuery.modalLoaderDiv.hide()}};if(jQuery.modalLoaderDiv!=undefined){jQuery.modalLoaderDiv.show();jQuery.positionElement(jQuery.modalLoaderDiv,c,b);jQuery.modalLoaderDiv.css("z-index",3000000)}var a=false;var h=0;g.find("img").each(function(){if(this.src==""){h++;var j=new Image();var e=this;j.onerror=this.onerror;j.onload=function(){h--;e.src=j.src;if(a&&h==0&&g.hasClass("loading")){d()}};j.src=this.name}});var a=true;if(h==0&&g.hasClass("loading")){d()}},modalClose:function(a){a.stopTime("open");a.css("z-index",3000000);a.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(e){var d="mouseover";var h="mouseout";var g;var c=500;var a=false;var b=0;if(e.fadeSpeed!=undefined){b=e.fadeSpeed}jQuery.modelFadeSpeed=b;if(e.loader!=undefined){jQuery.modalLoaderDiv=jQuery(e.loader)}else{jQuery.modalLoaderDiv=undefined}if(e.closeTrigger!=undefined){g=e.closeTrigger}else{g=e.trigger}if(e.toggleTrigger){d="click";h="click";jQuery(e.toggleTrigger).bind("mouseover",function(){jQuery(this).closest(e.parent).find(e.trigger).show()});jQuery(e.toggleTrigger).bind("mouseout",function(){jQuery(e.trigger).hide()})}if(e.openBind!=undefined){d=e.openBind}if(e.closeBind!=undefined){h=e.closeBind}if(e.canEnter==true){a=true}if(a){if(e.toggleTrigger==undefined){jQuery(e.target).bind("mouseover",function(){var i=jQuery(this);jQuery.modalOpen(i)});jQuery(e.target).bind("mouseout",function(){var i=jQuery(this);jQuery.modalClose(i)})}}else{jQuery(e.target).bind("mouseover",function(){var i=jQuery(this);jQuery.modalClose(i)})}if(e.followMouse==true){d="mousemove";c=1}if(e.fixZIndex!=undefined&&e.fixZIndex==true){var f=1000;jQuery("div").each(function(){jQuery(this).css("zIndex",f);f-=10})}if(e.delay!=undefined){if(e.delay==0){e.delay=1}c=e.delay}jQuery.modelDelay=c;jQuery(e.trigger).bind(d,function(k){if(jQuery.currentOpenModal){jQuery.modalClose(jQuery.currentOpenModal)}var i=jQuery(this).closest(e.parent);var j=i.find(e.target);jQuery.currentOpenModal=j;jQuery.modalOpen(j,i,e,k);return false});jQuery(g).bind(h,function(){var i=jQuery(this).closest(e.parent).find(e.target);jQuery.modalClose(i);return false})}});
