Object.prototype.inherit = function(superObj, overWriteMember) { /* inherit all members and objects of object 'superObj' if 'this' object already has the data member, overWriteMember will decide whether or not to overwrite the member */ var m; for (m in superObj) { if (this[m] == undefined || overWriteMember) this[m] = superObj[m]; } } // example function DocumentTab(url, label) /* extends TabClass */ { // inherit TabClass, pass along the 'docwin' this.inherit( ( new TabClass( document.getElementById("iframe_content") , document.createElement("DIV") ) ) ); // data members this.label = label; // [string] tab's display name (may contain HTML) this.url = url; // [string] url to point tab window to this.frameIndice = null; // [number] indice to frames collection which points to this tab's iframe this.iframe = null; // [object node] iframe tag this.iframe_win = null; // [object window] iframe window this.iframe_history = []; // [array] of strings; keeps track of iframe history url this.iframe_indice = null; // [number] indice of iframe_history[] this.node = document.createElement("DIV"); // [object node] div that contains tab this.navigatingFrame = false; // [boolean / number] number of history indice if navigating, false if not this.pid = null; // [number] progress id for 'Persits.Upload' ASP obj; associates uploads to their tab this.color = null; // [string] tab color (for css styles) this.hierarchy = null; // [array] holds the hiearchy for the iframe this.no_close = false; // [boolean] if true, remove close link // methods this.generateTab = DocumentTab_Create; this.generateIframe = DocumentTab_CreateIFrame; this.setActive = DocumentTab_ShowActiveHTML; this.setInActive = DocumentTab_ShowInActiveHTML; this.positionElements = DocumentTab_PositionElements; this.onClose = DocumentTab_CloseTab; this.navigateIframe = DocumentTab_IframeHistory; //this.docwin.className = "tabdocument"; this.node.className = "dhtml"; }