Files

147 lines
5.2 KiB
JavaScript
Executable File

/* ContextMenu */
//<![CDATA[
$(function(){
$('html').jeegoocontext('menu', {
widthOverflowOffset: 0,
heightOverflowOffset: 3,
submenuLeftOffset: -4,
submenuTopOffset: -5
});
});
//]]>
//<![CDATA[
$(function(){
$('#Left_side').jeegoocontext('ls_Menu1', {
widthOverflowOffset: 0,
heightOverflowOffset: 3,
submenuLeftOffset: -4,
submenuTopOffset: -5
});
});
//]]>
//<![CDATA[
$(function(){
$('#content_dropdown').jeegoocontext('content', {
widthOverflowOffset: 0,
heightOverflowOffset: 3,
submenuLeftOffset: -4,
submenuTopOffset: -5
});
});
//]]>
//<![CDATA[
$(function(){
$('#click_right').jeegoocontext('dropD', {
widthOverflowOffset: 0,
heightOverflowOffset: 3,
submenuLeftOffset: -4,
submenuTopOffset: -5
});
});
//]]>
(function($)
{
var g;var m;
var o=function(x,y)
{
return{
w:x&&parseInt(x)?x-$(window).width()-$(window).scrollLeft():0,
h:y&&parseInt(y)?y-$(window).height()-$(window).scrollTop():0};
};
var c=function()
{
for(a in m)
{
m[a].b.removeClass(g.d);}
};
$.fn.jeegoocontext=function(j,p)
{
if(!g)g={};
if(!m)m={};
if(p&&p.menuClass)g.e=p.menuClass;
if(!g.e)g.e='jeegoocontext';
if(p&&p.activeClass)g.d=p.activeClass;
if(!g.d)g.d='active';
if(p&&p.eventOverride)g.f=p.eventOverride;m[j]=$.extend(
{
hoverClass:'hover',fadeIn:200,delay:300,widthOverflowOffset:0,
heightOverflowOffset:0,submenuLeftOffset:0,submenuTopOffset:0
},p||{});
m[j].b=$(this);
$(document).mouseover(function(e)
{
if($(e.relatedTarget).parents('#'+j).length>0)
{
window.clearTimeout(m[j].s);
var f=$(e.relatedTarget).parent().find('li');
f.add(f.find('>*')).removeClass(m[j].hoverClass);
m[j].h=window.setTimeout(function()
{
f.find('ul').hide();},m[j].delay);
}
}).click(function(e)
{
if(g.j&&m[g.j].onHide){if(m[g.j].onHide.apply($('#'+g.j),[e,m[g.j].n])==false)
{
return false;
}
}c();
if(g.j)$('#'+g.j).hide();g.j=null;
});
$('#'+j).find('li').mouseover(function(e)
{
//$('#file_menu_items').hide();
var t=$(this);
window.clearTimeout(m[j].s);
window.clearTimeout(m[j].h);
$('#'+j).find('*').removeClass(m[j].hoverClass);
var k=t.parents('li');
t.add(t.find('>*')).add(k).add(k.find('>*')).addClass(m[j].hoverClass);
var l=true;
if(m[j].onHover)
{
if(m[j].onHover.apply(this,[e,m[j].n])==false)l=false;
}
if(!m[j].p){m[j].s=window.setTimeout(function()
{
m[j].p=true;t.mouseover();
},m[j].delay);e.stopPropagation();
return false;
}
m[j].p=false;
t.parent().find('ul').not(t.find('>ul')).hide();
if(!l){e.preventDefault();return false;
}
var q=t.find('>ul');
if(q.length!=0)
{
var r=t.offset();
var s=o(r.left+t.parent().width()+m[j].submenuLeftOffset+q.width()+ m[j].widthOverflowOffset,
r.top+m[j].submenuTopOffset+q.height()+m[j].heightOverflowOffset);
var y=r.top-t.parent().offset().top;
q.css({'left':s.w>0?-q.width()-m[j].submenuLeftOffset+'px':q.width()+m[j].submenuLeftOffset+'px','top':s.h>0?y-s.h+m[j].submenuTopOffset+'px':y+m[j].submenuTopOffset+'px'});
q.fadeIn(m[j].fadeIn);
}e.stopPropagation();
}).click(function(e)
{
if(m[j].onSelect)
{
if(m[j].onSelect.apply(this,[e,m[j].n])==false)
{
e.stopPropagation();return false;
}
}g.j=null;$(m[j].n).removeClass(g.d);$('#'+j).hide();e.stopPropagation();
});
return $(this).each(function()
{
$(this).bind(g.f||'contextmenu',function(e){m[j].n=this;var t=$('#'+j);var s=o(e.pageX+t.width()+m[j].widthOverflowOffset,e.pageY+t.height()+m[j].heightOverflowOffset);
if(s.w>0)e.pageX-=s.w;if(s.h>0)e.pageY-=s.h;if(m[j].onShow)
{
if(m[j].onShow.apply(t,[e,m[j].n])==false)
{e.stopPropagation();return false;
}
}
$('.'+g.e).add('.'+g.e+' ul').hide();g.j=j;c();$(m[j].n).addClass(g.d);t.find('li,li>*').removeClass(m[j].hoverClass);t.css({'left':e.pageX+'px','top':e.pageY+'px'}).fadeIn(m[j].fadeIn);e.stopPropagation();return false;});});};})(jQuery);