1
function adeiReportError(msg, module_name, module) {
2
if (typeof module_name == "undefined")
5
alert("Error in '" + module_name + "': " + msg);
9
function adeiReportException(e, msg, module_name, module) {
11
if (msg) emsg = msg + ", " + translate("error: ");
12
else emsg = translate("Exception caught, error: ");
14
if (e.description) emsg += e.description;
15
else if (e.message) emsg += e.message;
16
else emsg += translate("Unknown error");
19
emsg += "(" + e.fileName;
20
if (e.lineNumber) emsg += ":" + e.lineNumber;
25
emsg += "\n\n" + e.stack;
28
adeiReportError(emsg, module_name, module);
32
function adeiReplaceProp(props, prop, value) {
33
/* To be implemented */
36
function adeiDateFormat(d, range) {
37
var mydate = new Date(Math.floor(d)*1000);
38
if ((range)&&(range <= adei.cfg.subsecond_threshold)) {
39
var ds = d.toString();
40
var subsecs = ds.indexOf('.');
41
if (subsecs >= 0) return dateFormat(mydate) + '.' + ds.substr(subsecs + 1);
42
else return dateFormat(mydate);
43
} else return dateFormat(mydate);
46
function adeiDateParse(d) {
47
var subsecs = d.indexOf('.');
48
if (subsecs < 0) return Date.parse(d + " UTC") / 1000;
49
return Math.floor(Date.parse(d.substr(0,subsecs) + " UTC") / 1000) + '.' + d.substr(subsecs + 1);
52
function adeiMathPreciseSubstract(a, b) {
54
var astr = a.toString();
55
var bstr = b.toString();
57
var pos = astr.indexOf(".");
59
else ra = parseFloat("0." + astr.substr(pos + 1));
61
pos = bstr.indexOf(".");
63
else rb = parseFloat("0." + bstr.substr(pos + 1));
66
var ia = Math.floor(a);
67
var ib = Math.floor(b);
71
var rstr = (r+1).toString();
72
pos = rstr.indexOf('.');
73
return (ia - ib - 1).toString() + rstr.substr(pos);
75
var rstr = r.toString();
76
pos = rstr.indexOf('.');
77
return (ia - ib).toString() + rstr.substr(pos);
78
} else return ia - ib;
83
function adeiMathPreciseAdd(a, b) {
86
var astr = a.toString();
87
var bstr = b.toString();
89
var pos = astr.indexOf(".");
91
else ra = parseFloat("0." + astr.substr(pos + 1));
93
pos = bstr.indexOf(".");
95
else rb = parseFloat("0." + bstr.substr(pos + 1));
98
var ia = Math.floor(a);
99
var ib = Math.floor(b);
103
var rstr = r.toString();
104
pos = rstr.indexOf('.');
105
return (ia + ib + 1).toString() + rstr.substr(pos);
107
var rstr = r.toString();
108
pos = rstr.indexOf('.');
109
return (ia + ib).toString() + rstr.substr(pos);
110
} else return ia + ib + 1;
115
function translate(msg) {
118
if (!arguments || arguments.length < 2 || !RegExp) {
122
var re = /([^%]*)%('.|0|\x20)?(-)?(\d+)?(\.\d+)?(%|b|c|d|u|f|o|s|x|X)(.*)/;
123
var a = b = [], numSubstitutions = 0, numMatches = 0;
124
while (a = re.exec(str))
126
var leftpart = a[1], pPad = a[2], pJustify = a[3], pMinLength = a[4];
127
var pPrecision = a[5], pType = a[6], rightPart = a[7];
137
if (numSubstitutions >= arguments.length)
139
alert('Error! Not enough function arguments (' + (arguments.length - 1) + ', excluding the string)\nfor the number of substitution parameters in string (' + numSubstitutions + ' so far).');
141
var param = arguments[numSubstitutions];
143
if (pPad && pPad.substr(0,1) == "'") pad = leftpart.substr(1,1);
144
else if (pPad) pad = pPad;
145
var justifyRight = true;
146
if (pJustify && pJustify === "-") justifyRight = false;
148
if (pMinLength) minLength = parseInt(pMinLength);
150
if (pPrecision && pType == 'f') precision = parseInt(pPrecision.substring(1));
152
if (pType == 'b') subst = parseInt(param).toString(2);
153
else if (pType == 'c') subst = String.fromCharCode(parseInt(param));
154
else if (pType == 'd') subst = parseInt(param) ? parseInt(param) : 0;
155
else if (pType == 'u') subst = Math.abs(param);
156
else if (pType == 'f') subst = (precision > -1) ? Math.round(parseFloat(param) * Math.pow(10, precision)) / Math.pow(10, precision): parseFloat(param);
157
else if (pType == 'o') subst = parseInt(param).toString(8);
158
else if (pType == 's') subst = param;
159
else if (pType == 'x') subst = ('' + parseInt(param).toString(16)).toLowerCase();
160
else if (pType == 'X') subst = ('' + parseInt(param).toString(16)).toUpperCase();
162
str = leftpart + subst + rightPart;
167
// This code is in the public domain. Feel free to link back to http://jan.moesen.nu/
170
if (!arguments || arguments.length < 1 || !RegExp)
174
var str = arguments[0];
175
var re = /([^%]*)%('.|0|\x20)?(-)?(\d+)?(\.\d+)?(%|b|c|d|u|f|o|s|x|X)(.*)/;
176
var a = b = [], numSubstitutions = 0, numMatches = 0;
177
while (a = re.exec(str))
179
var leftpart = a[1], pPad = a[2], pJustify = a[3], pMinLength = a[4];
180
var pPrecision = a[5], pType = a[6], rightPart = a[7];
182
//alert(a + '\n' + [a[0], leftpart, pPad, pJustify, pMinLength, pPrecision);
192
if (numSubstitutions >= arguments.length)
194
alert('Error! Not enough function arguments (' + (arguments.length - 1) + ', excluding the string)\nfor the number of substitution parameters in string (' + numSubstitutions + ' so far).');
196
var param = arguments[numSubstitutions];
198
if (pPad && pPad.substr(0,1) == "'") pad = leftpart.substr(1,1);
199
else if (pPad) pad = pPad;
200
var justifyRight = true;
201
if (pJustify && pJustify === "-") justifyRight = false;
203
if (pMinLength) minLength = parseInt(pMinLength);
205
if (pPrecision && pType == 'f') precision = parseInt(pPrecision.substring(1));
207
if (pType == 'b') subst = parseInt(param).toString(2);
208
else if (pType == 'c') subst = String.fromCharCode(parseInt(param));
209
else if (pType == 'd') subst = parseInt(param) ? parseInt(param) : 0;
210
else if (pType == 'u') subst = Math.abs(param);
211
else if (pType == 'f') subst = (precision > -1) ? Math.round(parseFloat(param) * Math.pow(10, precision)) / Math.pow(10, precision): parseFloat(param);
212
else if (pType == 'o') subst = parseInt(param).toString(8);
213
else if (pType == 's') subst = param;
214
else if (pType == 'x') subst = ('' + parseInt(param).toString(16)).toLowerCase();
215
else if (pType == 'X') subst = ('' + parseInt(param).toString(16)).toUpperCase();
217
str = leftpart + subst + rightPart;