annotate client/digitallibrary/greyskin/debug.js @ 427:84aee0e6d64e

better alert
author hertzhaft
date Thu, 22 Dec 2005 11:21:35 +0100
parents 68c26335e880
children b9b8e54ed3bb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
409
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
1 var Debug;
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
2 var _now = {};
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
3
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
4 function newElement(tagname, content) {
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
5 // creates a new element, adding node or text content if given
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
6 var elem = document.createElement(tagname);
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
7 if (content) elem.appendChild(content.nodeType
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
8 ? content // content is a node
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
9 : document.createTextNode(content) // content is a string
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
10 );
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
11 return elem;
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
12 }
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
13
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
14 function appendNewElement(node, tagname, content) {
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
15 // appends a new element to "node", adding content if given
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
16 if (!node.appendChild) {
427
84aee0e6d64e better alert
hertzhaft
parents: 414
diff changeset
17 alert("Could not append '" + tagname + "' to " + typeof(node));
409
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
18 return null;
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
19 }
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
20 return node.appendChild(newElement(tagname, content));
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
21 }
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
22
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
23 function getDebug() {
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
24 if (Debug == null) {
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
25 Debug = document.getElementById('debug');
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
26 if (Debug == null) {
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
27 if (!document.body) return null;
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
28 // its still too early!
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
29 Debug = appendNewElement(document.body, 'div');
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
30 Debug.setAttribute('id', 'debug');
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
31 Debug.className = 'debug';
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
32 Debug.innerhtml = '<p class="debug">Debug</p>';
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
33 };
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
34 };
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
35 return Debug;
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
36 }
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
37
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
38 function debug() {
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
39 var msg = "";
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
40 for (var i = 0; i<arguments.length; i++)
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
41 msg += arguments[i] + " ";
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
42 var D = getDebug();
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
43 if (!D) {
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
44 alert("Debug div not present!\n" + msg);
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
45 return null;
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
46 }
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
47 return appendNewElement(D, "p", msg);
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
48 }
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
49
414
68c26335e880 added debugProps() method for viewing an object's properties
hertzhaft
parents: 409
diff changeset
50 function debugProps(obj, msg) {
68c26335e880 added debugProps() method for viewing an object's properties
hertzhaft
parents: 409
diff changeset
51 var D = getDebug();
68c26335e880 added debugProps() method for viewing an object's properties
hertzhaft
parents: 409
diff changeset
52 if (msg) appendNewElement(D, "h1", msg);
68c26335e880 added debugProps() method for viewing an object's properties
hertzhaft
parents: 409
diff changeset
53 for (var item in obj) {
68c26335e880 added debugProps() method for viewing an object's properties
hertzhaft
parents: 409
diff changeset
54 var typ = typeof(obj[item]);
68c26335e880 added debugProps() method for viewing an object's properties
hertzhaft
parents: 409
diff changeset
55 if (typ != "function") appendNewElement(D, "p",
68c26335e880 added debugProps() method for viewing an object's properties
hertzhaft
parents: 409
diff changeset
56 item
68c26335e880 added debugProps() method for viewing an object's properties
hertzhaft
parents: 409
diff changeset
57 + " (" + typ + "): "
68c26335e880 added debugProps() method for viewing an object's properties
hertzhaft
parents: 409
diff changeset
58 + obj[item]
68c26335e880 added debugProps() method for viewing an object's properties
hertzhaft
parents: 409
diff changeset
59 );
68c26335e880 added debugProps() method for viewing an object's properties
hertzhaft
parents: 409
diff changeset
60 };
68c26335e880 added debugProps() method for viewing an object's properties
hertzhaft
parents: 409
diff changeset
61 }
68c26335e880 added debugProps() method for viewing an object's properties
hertzhaft
parents: 409
diff changeset
62
68c26335e880 added debugProps() method for viewing an object's properties
hertzhaft
parents: 409
diff changeset
63 function debugObject(obj, msg) {
68c26335e880 added debugProps() method for viewing an object's properties
hertzhaft
parents: 409
diff changeset
64 if (msg) appendNewElement(D, "h1", msg);
409
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
65 var D = getDebug();
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
66 var A = new Array();
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
67 for (var i in obj) A[i] = typeof(obj[i]);
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
68 var T = appendNewElement(D, "table");
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
69 for (var item in A) {
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
70 var TR = appendNewElement(T, "tr");
414
68c26335e880 added debugProps() method for viewing an object's properties
hertzhaft
parents: 409
diff changeset
71 appendNewElement(TR, "td", newElement("b", item));
409
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
72 appendNewElement(TR, "td", A[item]);
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
73 if (A[item] == "function")
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
74 appendNewElement(TR, "td", A[item].toSource());
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
75 };
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
76 }
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
77
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
78 function strObject(obj) {
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
79 var res = "";
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
80 var A = new Array();
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
81 for (var i in obj) A[i] = typeof(obj[i]);
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
82 for (var item in A) {
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
83 typ = A[item];
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
84 res += item + " (" + typ + "): ";
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
85 if (typ != "function") res += obj[item];
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
86 res += "\n";
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
87 }
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
88 return res;
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
89 }
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
90
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
91 function alertObject(obj) {
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
92 return alert(strObject(obj));
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
93 }
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
94
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
95 function startTime(s) {
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
96 _now[s] = new Date();
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
97 }
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
98
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
99 function elapsedTime(s) {
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
100 var diff = new Date(new Date - _now[s]);
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
101 debug(s + ": " + diff.getSeconds() + "." + diff.getMilliseconds() + " sec.");
84c20b64e1de added my rudimentary debug library
hertzhaft
parents:
diff changeset
102 }