+ function TabDiv_OnClick()\r
+ {\r
+ setSelectedTab( this.TabCode ) ;\r
+ }\r
+\r
+ window.AddTab = function( tabCode, tabText, startHidden )\r
+ {\r
+ if ( typeof( oTabs[ tabCode ] ) != 'undefined' )\r
+ return ;\r
+\r
+ var eTabsRow = $( 'Tabs' ) ;\r
+\r
+ var oCell = eTabsRow.insertCell( eTabsRow.cells.length - 1 ) ;\r
+ oCell.noWrap = true ;\r
+\r
+ var oDiv = document.createElement( 'DIV' ) ;\r
+ oDiv.className = 'PopupTab' ;\r
+ oDiv.innerHTML = tabText ;\r
+ oDiv.TabCode = tabCode ;\r
+ oDiv.onclick = TabDiv_OnClick ;\r
+ oDiv.id = Math.random() ;\r
+\r
+ if ( startHidden )\r
+ oDiv.style.display = 'none' ;\r
+\r
+ eTabsRow = $( 'TabsRow' ) ;\r
+\r
+ oCell.appendChild( oDiv ) ;\r
+\r
+ if ( eTabsRow.style.display == 'none' )\r
+ {\r
+ var eTitleArea = $( 'TitleArea' ) ;\r
+ eTitleArea.className = 'PopupTitle' ;\r
+\r
+ oDiv.className = 'PopupTabSelected' ;\r
+ eTabsRow.style.display = '' ;\r
+\r
+ if ( window.onresize )\r
+ window.onresize() ;\r
+ }\r
+\r
+ oTabs[ tabCode ] = oDiv.id ;\r
+\r
+ FCKTools.DisableSelection( oDiv ) ;\r
+ } ;\r
+\r
+ window.SetSelectedTab = setSelectedTab ;\r
+\r
+ window.SetTabVisibility = function( tabCode, isVisible )\r
+ {\r
+ var oTab = $( oTabs[ tabCode ] ) ;\r
+ oTab.style.display = isVisible ? '' : 'none' ;\r
+\r
+ if ( ! isVisible && oTab.className == 'PopupTabSelected' )\r
+ {\r
+ for ( var sCode in oTabs )\r
+ {\r
+ if ( $( oTabs[sCode] ).style.display != 'none' )\r
+ {\r
+ setSelectedTab( sCode ) ;\r
+ break ;\r
+ }\r
+ }\r
+ }\r
+ } ;\r
+}() ;\r
+\r
+// readystatechange handler for registering drag and drop handlers in cover\r
+// iframes, defined out here to avoid memory leak.\r
+// Do NOT put this function as a private function as it will induce memory leak\r
+// in IE and it's not detectable with Drip or sIEve and undetectable leaks are\r
+// really nasty (sigh).\r
+var onReadyRegister = function()\r
+{\r
+ if ( this.readyState != 'complete' )\r
+ return ;\r
+ DragAndDrop.RegisterHandlers( this.contentWindow ) ;\r
+} ;\r
+\r
+// The business logic of the dialog, dealing with operational things like\r
+// dialog open/dialog close/enable/disable/etc.\r
+(function()\r