/* * /MathJax/extensions/MathMenu.js * * Copyright (c) 2010 Design Science, Inc. * * Part of the MathJax library. * See http://www.mathjax.org for details. * * Licensed under the Apache License, Version 2.0; * you may not use this file except in compliance with the License. * * http://www.apache.org/licenses/LICENSE-2.0 */ (function(b,d,g){var l="1.1.6";MathJax.Extension.MathMenu={version:l};var j=b.Browser.isPC,h=b.Browser.isMSIE;var f=(j?null:"5px");var k=b.CombineConfig("MathMenu",{delay:150,helpURL:"http://www.mathjax.org/help/user/",showRenderer:true,showFontMenu:false,showContext:false,windowSettings:{status:"no",toolbar:"no",locationbar:"no",menubar:"no",directories:"no",personalbar:"no",resizable:"yes",scrollbars:"yes",width:100,height:50},styles:{"#MathJax_About":{position:"fixed",left:"50%",width:"auto","text-align":"center",border:"3px outset",padding:"1em 2em","background-color":"#DDDDDD",color:"black",cursor:"default","font-family":"message-box","font-size":"120%","font-style":"normal","text-indent":0,"text-transform":"none","line-height":"normal","letter-spacing":"normal","word-spacing":"normal","word-wrap":"normal","white-space":"nowrap","float":"none","z-index":201,"border-radius":"15px","-webkit-border-radius":"15px","-moz-border-radius":"15px","-khtml-border-radius":"15px","box-shadow":"0px 10px 20px #808080","-webkit-box-shadow":"0px 10px 20px #808080","-moz-box-shadow":"0px 10px 20px #808080","-khtml-box-shadow":"0px 10px 20px #808080",filter:"progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')"},".MathJax_Menu":{position:"absolute","background-color":"white",color:"black",width:"auto",padding:(j?"2px":"5px 0px"),border:"1px solid #CCCCCC",margin:0,cursor:"default",font:"menu","text-align":"left","text-indent":0,"text-transform":"none","line-height":"normal","letter-spacing":"normal","word-spacing":"normal","word-wrap":"normal","white-space":"nowrap","float":"none","z-index":201,"border-radius":f,"-webkit-border-radius":f,"-moz-border-radius":f,"-khtml-border-radius":f,"box-shadow":"0px 10px 20px #808080","-webkit-box-shadow":"0px 10px 20px #808080","-moz-box-shadow":"0px 10px 20px #808080","-khtml-box-shadow":"0px 10px 20px #808080",filter:"progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')"},".MathJax_MenuItem":{padding:(j?"2px 2em":"1px 2em"),background:"transparent"},".MathJax_MenuTitle":{"background-color":"#CCCCCC",margin:(j?"-1px -1px 1px -1px":"-5px 0 0 0"),"text-align":"center","font-style":"italic","font-size":"80%",color:"#444444",padding:"2px 0",overflow:"hidden"},".MathJax_MenuArrow":{position:"absolute",right:".5em",color:"#666666","font-family":(h?"'Arial unicode MS'":null)},".MathJax_MenuActive .MathJax_MenuArrow":{color:"white"},".MathJax_MenuCheck":{position:"absolute",left:".7em","font-family":(h?"'Arial unicode MS'":null)},".MathJax_MenuRadioCheck":{position:"absolute",left:(j?"1em":".7em")},".MathJax_MenuLabel":{padding:(j?"2px 2em 4px 1.33em":"1px 2em 3px 1.33em"),"font-style":"italic"},".MathJax_MenuRule":{"border-top":(j?"1px solid #CCCCCC":"1px solid #DDDDDD"),margin:(j?"4px 1px 0px":"4px 3px")},".MathJax_MenuDisabled":{color:"GrayText"},".MathJax_MenuActive":{"background-color":(j?"Highlight":"#606872"),color:(j?"HighlightText":"white")}}});var e,c;MathJax.Hub.Register.StartupHook("MathEvents Ready",function(){e=MathJax.Extension.MathEvents.Event.False;c=MathJax.Extension.MathEvents.Hover});var a=MathJax.Menu=MathJax.Object.Subclass({version:l,items:[],posted:false,title:null,margin:5,Init:function(m){this.items=[].slice.call(arguments,0)},With:function(m){if(m){b.Insert(this,m)}return this},Post:function(o,w){if(!o){o=window.event}var u=(!this.title?null:[["div",{className:"MathJax_MenuTitle"},[this.title]]]);var n=document.getElementById("MathJax_MenuFrame");if(!n){n=a.Background(this);delete i.lastItem;delete i.lastMenu;delete a.skipUp}var p=d.addElement(n,"div",{onmouseup:a.Mouseup,ondblclick:e,ondragstart:e,onselectstart:e,oncontextmenu:e,menuItem:this,className:"MathJax_Menu"},u);for(var r=0,q=this.items.length;rdocument.body.offsetWidth-this.margin){v=document.body.offsetWidth-p.offsetWidth-this.margin}if(a.isMobile){v=Math.max(5,v-Math.floor(p.offsetWidth/2));t-=20}a.skipUp=o.isContextMenu}else{var s="left",z=w.offsetWidth;v=(a.isMobile?30:z-2);t=0;while(w&&w!==n){v+=w.offsetLeft;t+=w.offsetTop;w=w.parentNode}if(v+p.offsetWidth>document.body.offsetWidth-this.margin&&!a.isMobile){s="right";v=Math.max(this.margin,v-z-p.offsetWidth+6)}if(!j){p.style["borderRadiusTop"+s]=0;p.style["WebkitBorderRadiusTop"+s]=0;p.style["MozBorderRadiusTop"+s]=0;p.style["KhtmlBorderRadiusTop"+s]=0}}p.style.left=v+"px";p.style.top=t+"px";if(document.selection&&document.selection.empty){document.selection.empty()}return e(o)},Remove:function(m,n){var o=document.getElementById("MathJax_MenuFrame");if(o){o.parentNode.removeChild(o);if(this.msieBackgroundBug){detachEvent("onresize",a.Resize)}}if(a.jax.hover){delete a.jax.hover.nofade;c.UnHover(a.jax)}},Find:function(o){var q=[].slice.call(arguments,1);for(var p=0,n=this.items.length;p=0&&t.parentNode.menuItem!==s[n].menuItem){s[n].menuItem.posted=false;s[n].parentNode.removeChild(s[n]);n--}if(this.Timer&&!a.isMobile){this.Timer(r,t)}}},Mouseout:function(m,n){if(!this.menu||!this.menu.posted){this.Deactivate(n)}if(this.timer){clearTimeout(this.timer);delete this.timer}},Mouseup:function(m,n){return this.Remove(m,n)},Touchstart:function(m,n){return this.TouchEvent(m,n,"Mousedown")},Touchend:function(m,n){return this.TouchEvent(m,n,"Mouseup")},TouchEvent:function(n,o,m){if(this!==i.lastItem){if(i.lastMenu){a.Event(n,i.lastMenu,"Mouseout")}a.Event(n,o,"Mouseover",true);i.lastItem=this;i.lastMenu=o}if(this.nativeTouch){return null}a.Event(n,o,m);return false},Remove:function(m,n){n=n.parentNode.menuItem;return n.Remove(m,n)},Activate:function(m){this.Deactivate(m);m.className+=" MathJax_MenuActive"},Deactivate:function(m){m.className=m.className.replace(/ MathJax_MenuActive/,"")},With:function(m){if(m){b.Insert(this,m)}return this}});a.ITEM.COMMAND=a.ITEM.Subclass({action:function(){},Init:function(m,o,n){this.name=m;this.action=o;this.With(n)},Label:function(m,n){return[this.name]},Mouseup:function(m,n){if(!this.disabled){this.Remove(m,n);this.action.call(this,m)}return e(m)}});a.ITEM.SUBMENU=a.ITEM.Subclass({menu:null,marker:(j&&!b.Browser.isSafari?"\u25B6":"\u25B8"),Init:function(m,o){this.name=m;var n=1;if(!(o instanceof a.ITEM)){this.With(o),n++}this.menu=a.apply(a,[].slice.call(arguments,n))},Label:function(m,n){this.menu.posted=false;return[this.name+" ",["span",{className:"MathJax_MenuArrow"},[this.marker]]]},Timer:function(m,n){if(this.timer){clearTimeout(this.timer)}m={clientX:m.clientX,clientY:m.clientY};this.timer=setTimeout(MathJax.Callback(["Mouseup",this,m,n]),k.delay)},Touchend:function(n,p){var o=this.menu.posted;var m=this.SUPER(arguments).Touchend.apply(this,arguments);if(o){this.Deactivate(p);delete i.lastItem;delete i.lastMenu}return m},Mouseup:function(o,q){if(!this.disabled){if(!this.menu.posted){if(this.timer){clearTimeout(this.timer);delete this.timer}this.menu.Post(o,q)}else{var p=document.getElementById("MathJax_MenuFrame").childNodes,n=p.length-1;while(n>=0){var r=p[n];r.menuItem.posted=false;r.parentNode.removeChild(r);if(r.menuItem===this.menu){break}n--}}}return e(o)}});a.ITEM.RADIO=a.ITEM.Subclass({variable:null,marker:(j?"\u25CF":"\u2713"),Init:function(n,m,o){this.name=n;this.variable=m;this.With(o);if(this.value==null){this.value=this.name}},Label:function(n,o){var m={className:"MathJax_MenuRadioCheck"};if(k.settings[this.variable]!==this.value){m={style:{display:"none"}}}return[["span",m,[this.marker]]," "+this.name]},Mouseup:function(q,r){if(!this.disabled){var s=r.parentNode.childNodes;for(var o=0,n=s.length;o/g,">");if(a.isMobile){o.document.open();o.document.write("MathJax Equation Source");o.document.write("
"+s+"
");o.document.write("
");o.document.write("");o.document.close()}else{o.document.open();o.document.write("MathJax Equation Source");o.document.write("
"+s+"
");o.document.write("");o.document.close();var q=o.document.body.firstChild;var p=(o.outerHeight-o.innerHeight)||30,n=(o.outerWidth-o.innerWidth)||30;n=Math.min(Math.floor(0.5*screen.width),q.offsetWidth+n+25);p=Math.min(Math.floor(0.5*screen.height),q.offsetHeight+p+25);o.resizeTo(n,p);if(r&&r.screenX!=null){var m=Math.max(0,Math.min(r.screenX-Math.floor(n/2),screen.width-n-20)),t=Math.max(0,Math.min(r.screenY-Math.floor(p/2),screen.height-p-20));o.moveTo(m,t)}}delete a.ShowSource.w};a.Scale=function(){var n=MathJax.OutputJax["HTML-CSS"],m=MathJax.OutputJax.NativeMML;var p=(n?n.config.scale:m.config.scale);var o=prompt("Scale all mathematics (compared to surrounding text) by",p+"%");if(o){if(o.match(/^\s*\d+\s*%?\s*$/)){o=parseInt(o);if(o){if(o!==p){if(n){n.config.scale=o}if(m){m.config.scale=o}a.cookie.scale=o;a.saveCookie();b.Reprocess()}}else{alert("The scale should not be zero")}}else{alert("The scale should be a perentage (e.g., 120%)")}}};a.Zoom=function(){if(!MathJax.Extension.MathZoom){g.Require("[MathJax]/extensions/MathZoom.js")}};a.Renderer=function(){var m=b.config.outputJax["jax/mml"];if(m[0]!==k.settings.renderer){MathJax.Callback.Queue(["Require",g,"[MathJax]/jax/output/"+k.settings.renderer+"/config.js"],["Post",b.Startup.signal,k.settings.renderer+" output selected"],[function(){var p=MathJax.OutputJax[k.settings.renderer];for(var o=0,n=m.length;o7;a.Augment({margin:20,msieBackgroundBug:(n||!o),msieAboutBug:n});if(document.documentMode>=9){delete k.styles["#MathJax_About"].filter;delete k.styles[".MathJax_Menu"].filter}},Firefox:function(m){a.skipMouseover=m.isMobile&&m.versionAtLeast("6.0");a.skipMousedown=m.isMobile}});a.isMobile=MathJax.Hub.Browser.isMobile;a.noContextMenu=MathJax.Hub.Browser.noContextMenu;b.Register.StartupHook("End Config",function(){k.settings=b.config.menuSettings;if(!k.settings.format){k.settings.format=(MathJax.InputJax.TeX?"Original":"MathML")}if(typeof(k.settings.showRenderer)!=="undefined"){k.showRenderer=k.settings.showRenderer}if(typeof(k.settings.showFontMenu)!=="undefined"){k.showFontMenu=k.settings.showFontMenu}if(typeof(k.settings.showContext)!=="undefined"){k.showContext=k.settings.showContext}a.getCookie();a.menu=a(i.COMMAND("Show Source",a.ShowSource,{nativeTouch:true}),i.SUBMENU("Format",i.RADIO("MathML","format"),i.RADIO("Original","format",{value:"Original"})),i.RULE(),i.SUBMENU("Settings",i.SUBMENU("Zoom Trigger",i.RADIO("Hover","zoom",{action:a.Zoom}),i.RADIO("Click","zoom",{action:a.Zoom}),i.RADIO("Double-Click","zoom",{action:a.Zoom}),i.RADIO("No Zoom","zoom",{value:"None"}),i.RULE(),i.LABEL("Trigger Requires:"),i.CHECKBOX((b.Browser.isMac?"Option":"Alt"),"ALT"),i.CHECKBOX("Command","CMD",{hidden:!b.Browser.isMac}),i.CHECKBOX("Control","CTRL",{hidden:b.Browser.isMac}),i.CHECKBOX("Shift","Shift")),i.SUBMENU("Zoom Factor",i.RADIO("125%","zscale"),i.RADIO("133%","zscale"),i.RADIO("150%","zscale"),i.RADIO("175%","zscale"),i.RADIO("200%","zscale"),i.RADIO("250%","zscale"),i.RADIO("300%","zscale"),i.RADIO("400%","zscale")),i.RULE(),i.SUBMENU("Math Renderer",{hidden:!k.showRenderer},i.RADIO("HTML-CSS","renderer",{action:a.Renderer}),i.RADIO("MathML","renderer",{action:a.Renderer,value:"NativeMML"})),i.SUBMENU("Font Preference",{hidden:!k.showFontMenu},i.LABEL("For HTML-CSS:"),i.RADIO("Auto","font",{action:a.Font}),i.RULE(),i.RADIO("TeX (local)","font",{action:a.Font}),i.RADIO("TeX (web)","font",{action:a.Font}),i.RADIO("TeX (image)","font",{action:a.Font}),i.RULE(),i.RADIO("STIX (local)","font",{action:a.Font})),i.SUBMENU("Contextual Menu",{hidden:!k.showContext},i.RADIO("MathJax","context"),i.RADIO("Browser","context")),i.COMMAND("Scale All Math ...",a.Scale)),i.RULE(),i.COMMAND("About MathJax",a.About),i.COMMAND("MathJax Help",a.Help))});a.showRenderer=function(m){a.cookie.showRenderer=k.showRenderer=m;a.saveCookie();a.menu.Find("Settings","Math Renderer").hidden=!m};a.showFontMenu=function(m){a.cookie.showFontMenu=k.showFontMenu=m;a.saveCookie();a.menu.Find("Settings","Font Preference").hidden=!m};a.showContext=function(m){a.cookie.showContext=k.showContext=m;a.saveCookie();a.menu.Find("Settings","Contextual Menu").hidden=!m};if(a.isMobile){(function(){var n=k.settings;var m=a.menu.Find("Settings","Zoom Trigger").menu;m.items[0].disabled=m.items[1].disabled=true;if(n.zoom==="Hover"||n.zoom=="Click"){n.zoom="None"}m.items=m.items.slice(0,4);if(navigator.appVersion.match(/[ (]Android[) ]/)){a.ITEM.SUBMENU.Augment({marker:"\u00BB"})}})()}MathJax.Callback.Queue(["Styles",g,k.styles],["getImages",a],["Post",b.Startup.signal,"MathMenu Ready"],["loadComplete",g,"[MathJax]/extensions/MathMenu.js"])})(MathJax.Hub,MathJax.HTML,MathJax.Ajax);