1/* 2 * 3 * Libreria de utilidades fbu 4 * 5 */ 6 7var fbu = { 8 // replacement functions 9 replace: replace = { 10 init: function (text) { 11 this.result = text; 12 }, 13 str_replace: function (search, replace, subject, count) { 14 var i = 0, 15 j = 0, 16 temp = '', 17 repl = '', 18 sl = 0, 19 fl = 0, 20 f = [].concat(search), 21 r = [].concat(replace), 22 s = subject, 23 ra = Object.prototype.toString.call(r) === '[object Array]', 24 sa = Object.prototype.toString.call(s) === '[object Array]'; 25 s = [].concat(s); 26 if (count) { 27 this.window[count] = 0; 28 } 29 30 for (i = 0, sl = s.length; i < sl; i++) { 31 if (s[i] === '') { 32 continue; 33 } 34 for (j = 0, fl = f.length; j < fl; j++) { 35 temp = s[i] + ''; 36 repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0]; 37 s[i] = (temp) 38 .split(f[j]) 39 .join(repl); 40 if (count && s[i] !== temp) { 41 this.window[count] += (temp.length - s[i].length) / f[j].length; 42 } 43 } 44 } 45 return sa ? s : s[0]; 46 }, 47 txtReplace: function (search, replace) { 48 this.search = search; 49 this.replace = replace; 50 this.result = this.str_replace(search, replace, this.result); 51 }, 52 txtMultiReplace: function (data, objSearch) { 53 this.result = data; 54 for (var key in objSearch) { 55 this.txtReplace(key, objSearch[key]); 56 } 57 }, 58 objTxtReplace: function (file, objSearch, domObject, sucess) { 59 $.get(file, function (data) { 60 fbu.replace.txtMultiReplace(data, objSearch); 61 $(domObject).html(fbu.replace.result); 62 sucess(); 63 }, "html"); 64 }, 65 objTagReplace: function (tag, objSearch, domObject, sucess) { 66 var data = $(tag).html(); 67 fbu.replace.txtMultiReplace(data, objSearch); 68 $(domObject).html(fbu.replace.result); 69 sucess(); 70 71 } 72 }, 73 // Get url params function 74 urlParam: function (name) { 75 if (name) { 76 var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href); 77 if (results) { 78 return results[1] || 0; 79 } else { 80 return false 81 } 82 } 83 }, 84 getTranslationFile: function (url, success) { 85 86 this.success = success; 87 var oReq = new XMLHttpRequest(); 88 oReq.open("GET", url, true); 89 oReq.responseType = "arraybuffer"; 90 oReq.onload = function (e) { 91 var arraybuffer = oReq.response; 92 var data = new Uint8Array(arraybuffer); 93 var arr = new Array(); 94 for (var i = 0; i != data.length; ++i) 95 arr[i] = data[i]; 96 var wb = XLS.read(arr, {type: "array"}); 97 98 wb.SheetNames.forEach(function (sheetName) { 99 var roa = XLS.utils.sheet_to_json(wb.Sheets[sheetName]); 100 if (roa.length > 0) { 101 fbu.trData = roa; 102 success(roa); 103 } 104 105 }); 106 107 108 } 109 oReq.send(); 110 111 }, 112 _: function (lng, label) { 113 114 for (var key in fbu.trData) { 115 if (fbu.trData[key]["label"] == label) { 116 117 if (fbu.trData[key][lng] != undefined) { 118 return fbu.trData[key][lng]; 119 } else { 120 return label; 121 } 122 } 123 } 124 }, 125 translate: function (lng) { 126 127 var url = "translations/translations.xls"; 128 fbu.getTranslationFile(url, function (data) { 129 $("._").each(function (index) { 130 var translation = fbu._(lng, $(this).text()); 131 132 $(this).text(translation); 133 134 }) 135 }); 136 } 137}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.