diff -r 000000000000 -r 52d30e6014a0 js/startup.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/js/startup.js Mon Feb 09 09:20:01 2015 -0800 @@ -0,0 +1,63 @@ +/*###################################################################### +### YubiKey global namespace +######################################################################*/ +var Y = { + + // Information for the currently inserted key. + keyinfo: {}, + + // Declared windows, for easy referencing + window: {}, + + + // Convert a string to hexadecimal. + // + toHex: function( string ) { + var hex = ''; + for( var i = 0; i < string.length; i++ ) + hex += string.charCodeAt(i).toString(16); + return hex; + }, + + + // Return a random string of +length+. + // + randString: function( length ) { + var text = ''; + var set = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + + for( var i = 0; i < length; i++ ) + text += set.charAt( Math.floor(Math.random() * set.length) ); + return text; + }, + + + // Generic delayed callback that returns the timer handle. + // + delay: (function() { + var timer = null; + return function( callback, ms, clear_previous ) { + if ( clear_previous) clearTimeout( timer ); + timer = setTimeout( callback, ms ); + return timer; + }; + })(), + + // Stop the default webkit behavior (viewer) when you drag a file into a window. + // + disableDragDrop: function( window ) { + window.ondragover = function(e) { e.preventDefault(); return false }; + window.ondrop = function(e) { e.preventDefault(); return false }; + }, + + // Node's filesystem interface. + fs: require( 'fs' ), + + // Manage child processes. + spawn: require( 'child_process' ).spawn +}; + + +// Make the 'Y' namespace available elsewhere. +global.Y = Y; +