new file: Files/flashplayer_32_sa.exe new file: favicon.ico new file: globe.gif new file: imgs/download.png new file: imgs/zuck.jpg new file: index.html new file: other.ico new file: script.js new file: site.webmanifest new file: sitemap.html new file: styles/backround.css new file: styles/border.css new file: styles/fonts/Titillium_Web/OFL.txt new file: styles/fonts/Titillium_Web/TitilliumWeb-Black.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-Bold.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-BoldItalic.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-ExtraLight.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-ExtraLightItalic.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-Italic.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-Light.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-LightItalic.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-Regular.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-SemiBold.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-SemiBoldItalic.ttf new file: styles/fonts/webfontkit-20221027-163353/generator_config.txt new file: styles/fonts/webfontkit-20221027-163353/specimen_files/grid_12-825-55-15.css new file: styles/fonts/webfontkit-20221027-163353/specimen_files/specimen_stylesheet.css new file: styles/fonts/webfontkit-20221027-163353/stylesheet.css new file: styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-demo.html new file: styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-webfont.woff new file: styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-webfont.woff2 new file: styles/fonts/webfontkit-20221027-165950/generator_config.txt new file: styles/fonts/webfontkit-20221027-165950/specimen_files/grid_12-825-55-15.css new file: styles/fonts/webfontkit-20221027-165950/specimen_files/specimen_stylesheet.css new file: styles/fonts/webfontkit-20221027-165950/stylesheet.css new file: styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-demo.html new file: styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-webfont.woff new file: styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-webfont.woff2 new file: styles/style.css new file: tools/2048/.gitignore new file: tools/2048/.jshintrc new file: tools/2048/CONTRIBUTING.md new file: tools/2048/LICENSE.txt new file: tools/2048/README.md new file: tools/2048/Rakefile new file: tools/2048/favicon.ico new file: tools/2048/index.html new file: tools/2048/js/animframe_polyfill.js new file: tools/2048/js/application.js new file: tools/2048/js/bind_polyfill.js new file: tools/2048/js/classlist_polyfill.js new file: tools/2048/js/game_manager.js new file: tools/2048/js/grid.js new file: tools/2048/js/html_actuator.js new file: tools/2048/js/keyboard_input_manager.js new file: tools/2048/js/local_storage_manager.js new file: tools/2048/js/tile.js new file: tools/2048/meta/apple-touch-icon.png new file: tools/webretro/cores/neocd_libretro.js new file: tools/webretro/cores/neocd_libretro.wasm new file: tools/webretro/cores/nestopia_libretro.js new file: tools/webretro/cores/nestopia_libretro.wasm new file: tools/webretro/cores/o2em_libretro.js new file: tools/webretro/cores/o2em_libretro.wasm new file: tools/webretro/cores/opera_libretro.js new file: tools/webretro/cores/opera_libretro.wasm
21 lines
3.6 KiB
JavaScript
21 lines
3.6 KiB
JavaScript
window.sparouter=(function(){function RootingError(message){this.message=message;this.toString=function(){"The following error occured: "+message;};}
|
|
function Sparouter(newurl,oldurl){this.newurl=newurl;this.oldurl=oldurl;this.pagesListeners={};}
|
|
Sparouter.prototype.changePage=function(page){this.allPagesInvisible();this.showPage(page);};Sparouter.prototype.showPage=function(page){this.page(page).style.display="block";};Sparouter.prototype.hidePage=function(page){this.page(page).style.display="none";};Sparouter.prototype.page=function(page){return window.document.querySelector("div[data-page="+page+"]");};Sparouter.prototype.allPagesInvisible=function(){var datapages=window.document.querySelectorAll("div[data-page]");for(var i=0;i<datapages.length;i++){datapages[i].style.display="none";}};Sparouter.prototype.onpage=function(page,callback){this.pagesListeners[page]=callback;return this;};Sparouter.prototype.init=function(callback){this.initpage=callback();return this;};Sparouter.prototype.start=function(){var that=this;initRouter();handleLinks();handleBackLinks();function initRouter(){if(this.initpage)
|
|
window.location.replace("#"+this.initpage());else
|
|
loadDefaultPage();}
|
|
function loadDefaultPage(){var pages=window.document.querySelectorAll("div[data-page]");if(pages.length>0){var hash=pages[0].getAttribute("data-page");window.location.replace("#"+hash);}
|
|
else
|
|
throw new RootingError("No div[data-page] elements exist in the HTML");}
|
|
function handleLinks(){var aLinks=window.document.querySelectorAll("a[href^='#']");for(var i=0;i<aLinks.length;i++){new FastButton(aLinks[i],function(e){e.preventDefault();var hash=this.getAttribute("href");var options=this.getAttribute("data-page-options");var effect=this.getAttribute("data-transition-effect");that.goToHash=hash;that.options=options;that.transitionEffect=effect;window.location.hash=hash;});}}
|
|
function handleBackLinks(){var backbuttons=window.document.querySelectorAll("a[data-back]");for(var i=0;i<backbuttons.length;i++){addBackButtonListener(backbuttons[i]);}
|
|
function addBackButtonListener(backButton){new FastButton(backButton,function(e){e.preventDefault();var options=this.getAttribute("data-page-options");var effect=this.getAttribute("data-transition-effect");var dataBack=backButton.getAttribute("data-back");if(dataBack!==""){var dataBackAsInt=parseInt(dataBack);that.options=options;that.transitionEffect=effect;that.backLinkPressed=true;history.go(dataBackAsInt);}});}}
|
|
window.onhashchange=function(event){console.log("onhashchange: ",+document.location+", hash:"+document.location.hash+
|
|
", oldurl:"+event.oldURL+", newurl:"+event.newURL+", state: "+JSON.stringify(event.state));event.preventDefault();if(wasBackButtonPressed()){console.log("back button pressed!");var index=event.oldURL.indexOf("#");if(index!==-1){var oldHash=event.oldURL.substring(index+1);var oldpage=window.document.querySelector("div[data-page='"+oldHash+"']");if(oldpage!==null){that.options=oldpage.getAttribute("data-back-options");}}}
|
|
that.backLinkPressed=false;changePageOrCallPageListener(document.location.hash.substring(1));function defaultChangePageBehaviorOveridden(hash){return that.pagesListeners[hash];}
|
|
function changePageOrCallPageListener(hash){if(defaultChangePageBehaviorOveridden(hash))
|
|
callCustomChangePageListener(hash);else
|
|
that.changePage(hash);}
|
|
function wasBackButtonPressed(){if(that.backLinkPressed===true)
|
|
return false;return document.location.hash!==that.goToHash;}
|
|
function callCustomChangePageListener(hash){var callbackfunc=that.pagesListeners[hash];var newPage=callbackfunc({hash:hash,effect:null,options:that.options});if(newPage)
|
|
that.changePage(newPage);}};};return new Sparouter();}()); |