seitime-frappe/js/lib/superfish/superfish.min.js
Rushabh Mehta 0abfaf1180 version 2
2011-09-07 17:27:20 +05:30

171 lines
No EOL
8.8 KiB
JavaScript

(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}
if(p==this){return false;}
var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}
if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);;(function($){$.fn.superfish=function(op){var sf=$.fn.superfish,c=sf.c,$arrow=$(['<span class="',c.arrowClass,'"> &#187;</span>'].join('')),over=function(){var $$=$(this),menu=getMenu($$);clearTimeout(menu.sfTimer);$$.showSuperfishUl().siblings().hideSuperfishUl();},out=function(){var $$=$(this),menu=getMenu($$),o=sf.op;clearTimeout(menu.sfTimer);menu.sfTimer=setTimeout(function(){o.retainPath=($.inArray($$[0],o.$path)>-1);$$.hideSuperfishUl();if(o.$path.length&&$$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}},o.delay);},getMenu=function($menu){var menu=$menu.parents(['ul.',c.menuClass,':first'].join(''))[0];sf.op=sf.o[menu.serial];return menu;},addArrow=function($a){$a.addClass(c.anchorClass).append($arrow.clone());};return this.each(function(){var s=this.serial=sf.o.length;var o=$.extend({},sf.defaults,op);o.$path=$('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){$(this).addClass([o.hoverClass,c.bcClass].join(' ')).filter('li:has(ul)').removeClass(o.pathClass);});sf.o[s]=sf.op=o;$('li:has(ul)',this)[($.fn.hoverIntent&&!o.disableHI)?'hoverIntent':'hover'](over,out).each(function(){if(o.autoArrows)addArrow($('>a:first-child',this));}).not('.'+c.bcClass).hideSuperfishUl();var $a=$('a',this);$a.each(function(i){var $li=$a.eq(i).parents('li');$a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});});o.onInit.call(this);}).each(function(){var menuClasses=[c.menuClass];if(sf.op.dropShadows&&!($.browser.msie&&$.browser.version<7))menuClasses.push(c.shadowClass);$(this).addClass(menuClasses.join(' '));});};var sf=$.fn.superfish;sf.o=[];sf.op={};sf.IE7fix=function(){var o=sf.op;if($.browser.msie&&$.browser.version>6&&o.dropShadows&&o.animation.opacity!=undefined)
this.toggleClass(sf.c.shadowClass+'-off');};sf.c={bcClass:'sf-breadcrumb',menuClass:'sf-js-enabled',anchorClass:'sf-with-ul',arrowClass:'sf-sub-indicator',shadowClass:'sf-shadow'};sf.defaults={hoverClass:'sfHover',pathClass:'overideThisToUse',pathLevels:1,delay:800,animation:{opacity:'show'},speed:'normal',autoArrows:true,dropShadows:true,disableHI:false,onInit:function(){},onBeforeShow:function(){},onShow:function(){},onHide:function(){}};$.fn.extend({hideSuperfishUl:function(){var o=sf.op,not=(o.retainPath===true)?o.$path:'';o.retainPath=false;var $ul=$(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass).find('>ul').hide().css('visibility','hidden');o.onHide.call($ul);return this;},showSuperfishUl:function(){var o=sf.op,sh=sf.c.shadowClass+'-off',$ul=this.addClass(o.hoverClass).find('>ul:hidden').css('visibility','visible');sf.IE7fix.call($ul);o.onBeforeShow.call($ul);$ul.animate(o.animation,o.speed,function(){sf.IE7fix.call($ul);o.onShow.call($ul);});return this;}});})(jQuery);provide('wn.menus.superfish');wn.menus.superfish=function(parent,data){var _make_list=function(myparent,lst){var ul=wn.dom.add(myparent,'ul');$.each(lst,function(i,v){var li=wn.dom.add(ul,'li')
var a=wn.dom.add(li,'a','','',v.label);a.action=v.action
if(v.action){a.onclick=function(){window[action]();};}
if(v.href){a.href=v.href;}
if(v.subitems){_make_list(li,v.subitems);}})
return ul;}
ul=_make_list(parent,data);ul.className='sf-menu';$(ul).superfish();}
wn.assets.handler.css('\
/*** ESSENTIAL STYLES ***/\
.sf-menu, .sf-menu * {\
margin: 0;\
padding: 0;\
list-style: none;\
}\
.sf-menu {\
line-height: 1.0;\
}\
.sf-menu ul {\
position: absolute;\
top: -999em;\
width: 10em; /* left offset of submenus need to match (see below) */\
}\
.sf-menu ul li {\
width: 100%;\
}\
.sf-menu li:hover {\
visibility: inherit; /* fixes IE7 \'sticky bug\' */\
}\
.sf-menu li {\
float: left;\
position: relative;\
}\
.sf-menu a {\
display: block;\
position: relative;\
}\
.sf-menu li:hover ul,\
.sf-menu li.sfHover ul {\
left: 0;\
top: 2.5em; /* match top ul list item height */\
z-index: 99;\
}\
ul.sf-menu li:hover li ul,\
ul.sf-menu li.sfHover li ul {\
top: -999em;\
}\
ul.sf-menu li li:hover ul,\
ul.sf-menu li li.sfHover ul {\
left: 10em; /* match ul width */\
top: 0;\
}\
ul.sf-menu li li:hover li ul,\
ul.sf-menu li li.sfHover li ul {\
top: -999em;\
}\
ul.sf-menu li li li:hover ul,\
ul.sf-menu li li li.sfHover ul {\
left: 10em; /* match ul width */\
top: 0;\
}\
\
/*** DEMO SKIN ***/\
.sf-menu {\
float: left;\
margin-bottom: 1em;\
}\
.sf-menu a {\
border-left: 1px solid #fff;\
border-top: 1px solid #CFDEFF;\
padding: .75em 1em;\
text-decoration:none;\
}\
.sf-menu a, .sf-menu a:visited { /* visited pseudo selector so IE6 applies text colour*/\
color: #13a;\
}\
.sf-menu li {\
background: #BDD2FF;\
}\
.sf-menu li li {\
background: #AABDE6;\
}\
.sf-menu li li li {\
background: #9AAEDB;\
}\
.sf-menu li:hover, .sf-menu li.sfHover,\
.sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active {\
background: #CFDEFF;\
outline: 0;\
}\
\
/*** arrows **/\
.sf-menu a.sf-with-ul {\
padding-right: 2.25em;\
min-width: 1px; /* trigger IE7 hasLayout so spans position accurately */\
}\
.sf-sub-indicator {\
position: absolute;\
display: block;\
right: .75em;\
top: 1.05em; /* IE6 only */\
width: 10px;\
height: 10px;\
text-indent: -999em;\
overflow: hidden;\
background: url(\'assets/js/lib/superfish/images/arrows-ffffff.png\') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */\
}\
a > .sf-sub-indicator { /* give all except IE6 the correct values */\
top: .8em;\
background-position: 0 -100px; /* use translucent arrow for modern browsers*/\
}\
/* apply hovers to modern browsers */\
a:focus > .sf-sub-indicator,\
a:hover > .sf-sub-indicator,\
a:active > .sf-sub-indicator,\
li:hover > a > .sf-sub-indicator,\
li.sfHover > a > .sf-sub-indicator {\
background-position: -10px -100px; /* arrow hovers for modern browsers*/\
}\
\
/* point right for anchors in subs */\
.sf-menu ul .sf-sub-indicator { background-position: -10px 0; }\
.sf-menu ul a > .sf-sub-indicator { background-position: 0 0; }\
/* apply hovers to modern browsers */\
.sf-menu ul a:focus > .sf-sub-indicator,\
.sf-menu ul a:hover > .sf-sub-indicator,\
.sf-menu ul a:active > .sf-sub-indicator,\
.sf-menu ul li:hover > a > .sf-sub-indicator,\
.sf-menu ul li.sfHover > a > .sf-sub-indicator {\
background-position: -10px 0; /* arrow hovers for modern browsers*/\
}\
\
/*** shadows for all but IE6 ***/\
.sf-shadow ul {\
background: url(\'assets/js/lib/superfish/images/shadow.png\') no-repeat bottom right;\
padding: 0 8px 9px 0;\
-moz-border-radius-bottomleft: 17px;\
-moz-border-radius-topright: 17px;\
-webkit-border-top-right-radius: 17px;\
-webkit-border-bottom-left-radius: 17px;\
}\
.sf-shadow ul.sf-shadow-off {\
background: transparent;\
}\
');wn.assets.handler.css('/*** adding sf-vertical in addition to sf-menu creates a vertical menu ***/\
.sf-vertical, .sf-vertical li {\
width: 10em;\
}\
/* this lacks ul at the start of the selector, so the styles from the main CSS file override it where needed */\
.sf-vertical li:hover ul,\
.sf-vertical li.sfHover ul {\
left: 10em; /* match ul width */\
top: 0;\
}\
\
/*** alter arrow directions ***/\
.sf-vertical .sf-sub-indicator { background-position: -10px 0; } /* IE6 gets solid image only */\
.sf-vertical a > .sf-sub-indicator { background-position: 0 0; } /* use translucent arrow for modern browsers*/\
\
/* hover arrow direction for modern browsers*/\
.sf-vertical a:focus > .sf-sub-indicator,\
.sf-vertical a:hover > .sf-sub-indicator,\
.sf-vertical a:active > .sf-sub-indicator,\
.sf-vertical li:hover > a > .sf-sub-indicator,\
.sf-vertical li.sfHover > a > .sf-sub-indicator {\
background-position: -10px 0; /* arrow hovers for modern browsers*/\
}');