/** * configurator.js * * Marlin Configuration Utility * - Web form for entering configuration options * - A reprap calculator to calculate movement values * - Uses HTML5 to generate downloadables in Javascript * - Reads and parses standard configuration files from local folders * * Supporting functions * - Parser to read Marlin Configuration.h and Configuration_adv.h files * - Utilities to replace values in configuration files */ "use strict"; $(function(){ var marlin_config = 'config'; // Extend String String.prototype.lpad = function(len, chr) { if (chr === undefined) { chr = ' '; } var s = this+'', need = len - s.length; if (need > 0) { s = new Array(need+1).join(chr) + s; } return s; }; String.prototype.prePad = function(len, chr) { return len ? this.lpad(len, chr) : this; }; String.prototype.zeroPad = function(len) { return this.prePad(len, '0'); }; String.prototype.regEsc = function() { return this.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&"); } String.prototype.lineCount = function() { return this.split(/\r?\n|\r/).length; }; /** * selectField.addOptions takes an array or keyed object */ $.fn.extend({ addOptions: function(arrObj) { return this.each(function() { var sel = $(this); var isArr = Object.prototype.toString.call(arrObj) == "[object Array]"; $.each(arrObj, function(k, v) { sel.append( $('