/*
@author: GeoGebra - Dynamic Mathematics for Everyone, http://www.geogebra.org
@license: This file is subject to the GeoGebra Non-Commercial License Agreement, see http://www.geogebra.org/license. For questions please write us at
[email protected].
*/
(function(){if(typeof window.GGBApplet=="function"){console.warn("deployggb.js was loaded twice");return}var isRenderGGBElementEnabled=false;var scriptLoadStarted=false;var html5AppletsToProcess=null;var ggbHTML5LoadedCodebaseIsWebSimple=false;var ggbHTML5LoadedCodebaseVersion=null;var ggbHTML5LoadedScript=null;var GGBApplet=function(){"use strict";var applet={};var ggbVersion="5.0";var parameters={};var views=null;var html5NoWebSimple=false;var html5NoWebSimpleParamExists=false;var appletID=null;var initComplete=false;var html5OverwrittenCodebaseVersion=null;var html5OverwrittenCodebase=null;for(var i=0;i<arguments.length;i++){var p=arguments[i];if(p!==null){switch(typeof p){case"number":ggbVersion=p.toFixed(1);break;case"string":if(p.match(new RegExp("^[0-9]\\.[0-9]+$"))){ggbVersion=p}else{appletID=p}break;case"object":if(typeof p.is3D!=="undefined"){views=p}else{parameters=p}break;case"boolean":html5NoWebSimple=p;html5NoWebSimpleParamExists=true;break}}}if(views===null){views={is3D:false,AV:false,SV:false,CV:false,EV2:false,CP:false,PC:false,DA:false,FI:false,PV:false,macro:false};if(parameters.material_id!==undefined&&!html5NoWebSimpleParamExists){html5NoWebSimple=true}}if(appletID!==null&¶meters.id===undefined){parameters.id=appletID}var jnlpFilePath="";var html5Codebase="";var isHTML5Offline=false;var loadedAppletType=null;var html5CodebaseVersion=null;var html5CodebaseScript=null;var html5CodebaseIsWebSimple=false;var previewImagePath=null;var previewLoadingPath=null;var previewPlayPath=null;var fonts_css_url=null;var jnlpBaseDir=null;if(parameters.height!==undefined){parameters.height=Math.round(parameters.height)}if(parameters.width!==undefined){parameters.width=Math.round(parameters.width)}var parseVersion=function(d){return parseFloat(d)>4?parseFloat(d):5};applet.setHTML5Codebase=function(codebase,offline){html5OverwrittenCodebase=codebase;setHTML5CodebaseInternal(codebase,offline)};applet.setJavaCodebase=applet.setJavaCodebaseVersion=applet.isCompiledInstalled=applet.setPreCompiledScriptPath=applet.setPreCompiledResourcePath=function(){};applet.setHTML5CodebaseVersion=function(version,offline){var numVersion=parseFloat(version);if(numVersion!==NaN&&numVersion<5){console.log("The GeoGebra HTML5 codebase version "+numVersion+" is deprecated. Using version latest instead.");return}html5OverwrittenCodebaseVersion=version;setDefaultHTML5CodebaseForVersion(version,offline)};applet.getHTML5CodebaseVersion=function(){return html5CodebaseVersion};applet.getParameters=function(){return parameters};applet.setFontsCSSURL=function(url){fonts_css_url=url};applet.setGiacJSURL=function(url){};applet.setJNLPFile=function(newJnlpFilePath){jnlpFilePath=newJnlpFilePath};applet.setJNLPBaseDir=function(baseDir){};applet.inject=function(){function isOwnIFrame(){return window.frameElement&&window.frameElement.getAttribute("data-singleton")}var type="auto";var container_ID=parameters.id;var container;var noPreview=false;for(var i=0;i<arguments.length;i++){var p=arguments[i];if(typeof p==="string"){p=p.toLowerCase();if(p.match(/^(prefer)?(java|html5|compiled|auto|screenshot)$/)){type=p}else{container_ID=arguments[i]}}else if(typeof p==="boolean"){noPreview=p}else if(p instanceof HTMLElement){container=p}}continueInject();function continueInject(){if(!initComplete){setTimeout(continueInject,200);return}type=detectAppletType(type);var appletElem=container||document.getElementById(container_ID);if(!appletElem){console.log("possibly bug on ajax loading? ");return}applet.removeExistingApplet(appletElem,false);if(parameters.width===undefined&&appletElem.clientWidth){parameters.width=appletElem.clientWidth}if(parameters.height===undefined&&appletElem.clientHeight){parameters.height=appletElem.clientHeight}if(!(parameters.width&¶meters.height)&&type==="html5"){delete parameters.width;delete parameters.height}loadedAppletType=type;if(type==="screenshot"){injectScreenshot(appletElem,parameters)}else{var playButton=false;if(parameters.hasOwnProperty("playButton")&¶meters.playButton||parameters.hasOwnProperty("clickToLoad")&¶meters.clickToLoad){playButton=true}else if(parameters.hasOwnProperty("playButtonAutoDecide")&¶meters.playButtonAutoDecide){playButton=(!isInIframe()||isOwnIFrame())&&isMobileDevice()}if(playButton){loadedAppletType="screenshot";injectPlayButton(appletElem,parameters,noPreview,type)}else{injectHTML5Applet(appletElem,parameters,noPreview)}}}return};function isInIframe(){try{return window.self!==window.top}catch(e){return true}}function isMobileDevice(){if(parameters.hasOwnProperty("screenshotGenerator")&¶meters.screenshotGenerator){return false}return Math.max(screen.width,screen.height)<800}applet.getViews=function(){return views};applet.isJavaInstalled=function(){return false};var fetchParametersFromApi=function(successCallback){var onSuccess=function(text){var jsonData=JSON.parse(text);var isGeoGebra=function(element){return element.type=="G"||element.type=="E"};var item=jsonData.elements?jsonData.elements.filter(isGeoGebra)[0]:jsonData;if(!item||!item.url){onError();return}parameters.fileName=item.url;updateAppletSettings(item.settings||{});views.is3D=true;var imageDir="https://www.geogebra.org/images/";applet.setPreviewImage(previewImagePath||item.previewUrl,imageDir+"GeoGebra_loading.png",imageDir+"applet_play.png");successCallback()};var onError=function(){parameters.onError&¶meters.onError();log("Error: Fetching material (id "+parameters.material_id+") failed.",parameters)};var host=location.host.match(/(www|stage|beta|groot|alpha).geogebra.(org|net)/)?location.host:"www.geogebra.org";var path="/materials/"+parameters.material_id+"?scope=basic";sendCorsRequest("https://"+host+"/api/proxy.php?path="+encodeURIComponent(path),onSuccess,onError)};function updateAppletSettings(settings){var parameterNames=["width","height","showToolBar","showMenuBar","showAlgebraInput","allowStyleBar","showResetIcon","enableLabelDrags","enableShiftDragZoom","enableRightClick","appName"];["enableLabelDrags","enableShiftDragZoom","enableRightClick"].forEach((function(name){settings[name]=!!settings[name]}));parameterNames.forEach((function(name){if(parameters[name]===undefined&&settings[name]!==undefined){parameters[name]=settings[name]}}));if(parameters.showToolBarHelp===undefined){parameters.showToolBarHelp=parameters.showToolBar}}function sendCorsRequest(url,onSuccess,onError){var xhr=new XMLHttpRequest;xhr.open("GET",url);xhr.onload=function(){onSuccess(xhr.responseText)};xhr.onerror=onError;xhr.send()}applet.isHTML5Installed=function(){return true};applet.getLoadedAppletType=function(){return loadedAppletType};applet.setPreviewImage=function(previewFilePath,loadingFilePath,playFilePath){previewImagePath=previewFilePath;previewLoadingPath=loadingFilePath;previewPlayPath=playFilePath};applet.removeExistingApplet=function(appletParent,showScreenshot){var i;if(typeof appletParent==="string"){appletParent=document.getElementById(appletParent)}loadedAppletType=null;var removedID=null;for(i=0;i<appletParent.childNodes.length;i++){var currentChild=appletParent.childNodes[i];var className=currentChild.className;if(className==="applet_screenshot"){if(showScreenshot){currentChild.style.display="block";loadedAppletType="screenshot"}else{currentChild.style.display="none"}}else if(className!=="applet_scaler prerender"){appletParent.removeChild(currentChild);removedID=className&&className.indexOf("appletParameters")!=-1?currentChild.id:null;i--}}var appName=parameters.id!==undefined?parameters.id:removedID;var app=window[appName];if(app&&typeof app.getBase64==="function"){app.remove();window[appName]=null}};applet.refreshHitPoints=function(){if(parseVersion(ggbHTML5LoadedCodebaseVersion)>=5){return