1 dump('entering util/deck.js\n');
3 if (typeof util == 'undefined') util = {};
4 util.deck = function (id) {
6 this.node = document.getElementById(id);
8 JSAN.use('util.error'); this.error = new util.error();
11 var error = 'util.deck: Could not find element ' + id;
12 this.error.sdump('D_ERROR',error);
15 if (this.node.nodeName != 'deck') {
16 var error = 'util.deck: ' + id + 'is not a deck' + "\nIt's a " + this.node.nodeName;
17 this.error.sdump('D_ERROR',error);
24 util.deck.prototype = {
26 'find_index' : function (url) {
28 var nodes = this.node.childNodes;
29 for (var i = 0; i < nodes.length; i++) {
30 if (nodes[i].getAttribute('src') == url) idx = i;
35 'set_iframe' : function (url,params,content_params) {
36 this.error.sdump('D_TRACE','util.deck.set_iframe: url = ' + url);
37 var idx = this.find_index(url);
39 this.node.selectedIndex = idx;
41 var iframe = this.node.childNodes[idx];
45 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
46 this.error.sdump('D_DECK', 'set_iframe\nurl = ' + url + '\nframe.contentWindow = ' + iframe.contentWindow + '\n' + 'content_params = ' + js2JSON(content_params) );
47 var cw = iframe.contentWindow;
48 if (typeof iframe.contentWindow.wrappedJSObject != 'undefined') cw = iframe.contentWindow.wrappedJSObject;
49 cw.IAMXUL = true; cw.xulG = content_params;
51 this.error.sdump('D_ERROR','E: ' + E + '\n');
57 return this.new_iframe(url,params,content_params);
62 'reset_iframe' : function (url,params,content_params) {
63 this.remove_iframe(url);
64 return this.new_iframe(url,params,content_params);
67 'new_iframe' : function (url,params,content_params) {
68 var idx = this.find_index(url);
69 if (idx>-1) throw('An iframe already exists in deck with url = ' + url);
71 var iframe = document.createElement('iframe');
72 iframe.setAttribute('src',url);
73 //iframe.setAttribute('flex','1');
74 //iframe.setAttribute('style','overflow: scroll');
75 //iframe.setAttribute('style','border: solid thin red');
76 this.node.appendChild( iframe );
77 this.node.selectedIndex = this.node.childNodes.length - 1;
80 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
81 this.error.sdump('D_DECK', 'new_iframe\nurl = ' + url + '\nframe.contentWindow = ' + iframe.contentWindow + '\n' + 'content_params = ' + js2JSON(content_params) );
82 var cw = iframe.contentWindow;
83 if (typeof iframe.contentWindow.wrappedJSObject != 'undefined') cw = iframe.contentWindow.wrappedJSObject;
84 cw.IAMXUL = true; cw.xulG = content_params;
85 this.error.sdump('D_DECK', 'cw = ' + cw + ' cw.xulG = ' + js2JSON(cw.xulG) );
87 this.error.sdump('D_ERROR','E: ' + E + '\n');
93 'remove_iframe' : function (url) {
94 var idx = this.find_index(url);
96 this.node.removeChild( this.node.childNodes[ idx ] );
100 /* FIXME -- consider all the browser stuff broken.. very weird behavior in new_browser */
102 'set_browser' : function (url,params,content_params) {
103 this.error.sdump('D_TRACE','util.deck.set_browser: url = ' + url);
104 var idx = this.find_index(url);
106 this.node.selectedIndex = idx;
108 var browser = this.node.childNodes[idx];
110 if (content_params) {
111 /* FIXME -- we'd need to reach in and change the passthru_content_params for the browser, as well as the xulG for the content */
112 alert("we're in set_browser, content_params = true");
117 return this.new_browser(url,params,content_params);
122 'reset_browser' : function (url,params,content_params) {
123 this.remove_browser(url);
124 return this.new_browser(url,params,content_params);
127 'new_browser' : function (url,params,content_params) {
129 alert('in new_browser.. typeof xulG == ' + typeof xulG);
130 alert('in new_browser.. typeof content_params == ' + typeof content_params);
132 var idx = this.find_index(url);
133 if (idx>-1) throw('A browser already exists in deck with url = ' + url);
135 var browser = document.createElement('browser');
137 browser.setAttribute('type','content');
138 browser.setAttribute('id','frame_'+obj.id_incr);
139 browser.setAttribute('src',url);
140 this.node.appendChild( browser );
141 alert('after append');
142 this.node.selectedIndex = this.node.childNodes.length - 1;
143 dump('creating browser with src = ' + url + '\n');
144 alert('content_params = ' + content_params);
145 JSAN.use('util.browser');
146 var b = new util.browser();
152 'browser_id' : 'frame_'+obj.id_incr,
153 'passthru_content_params' : content_params,
162 'remove_browser' : function (url) {
163 var idx = this.find_index(url);
165 this.node.removeChild( this.node.childNodes[ idx ] );
172 dump('exiting util/deck.js\n');