if(typeof SiteTreeHandlers == 'undefined') SiteTreeHandlers = {}; SiteTreeHandlers.parentChanged_url = 'admin/ajaxupdateparent'; SiteTreeHandlers.orderChanged_url = 'admin/ajaxupdatesort'; SiteTreeHandlers.loadPage_url = 'admin/getitem'; SiteTreeHandlers.loadTree_url = 'admin/getsubtree'; _NEW_PAGES = new Array(); /** * Add page action */ var addpageclass; addpageclass = Class.create(); addpageclass.applyTo('#addpage'); addpageclass.prototype = { originalValues: new Array(), initialize: function () { Observable.applyTo($(_HANDLER_FORMS[this.id])); this.getElementsByTagName('button')[0].onclick = returnFalse; $(_HANDLER_FORMS[this.id]).onsubmit = this.form_submit; // Save the original page types in to this object if ($(_HANDLER_FORMS.addpage).elements.PageType) { var options = $(_HANDLER_FORMS.addpage).elements.PageType.options; for(var i = 0; i < options.length; i++) { this.originalValues.push({ 'value': options[i].value, 'label': options[i].innerHTML }); } var selectedNode = $('sitetree').firstSelected(); if(selectedNode) this.showApplicableChildrenPageTypes(selectedNode.hints); } }, onclick : function() { if(treeactions.toggleSelection(this)) { var selectedNode = $('sitetree').firstSelected(); if(selectedNode) { while(selectedNode.parentTreeNode && !selectedNode.hints.defaultChild) { $('sitetree').changeCurrentTo(selectedNode.parentTreeNode); selectedNode = selectedNode.parentTreeNode; } if( selectedNode.hints && selectedNode.hints.defaultChild ) $(_HANDLER_FORMS.addpage).elements.PageType.value = selectedNode.hints.defaultChild; } this.o1 = $('sitetree').observeMethod('SelectionChanged', this.treeSelectionChanged.bind(this)); this.o2 = $(_HANDLER_FORMS[this.id]).observeMethod('Close', this.popupClosed.bind(this)); $(_HANDLER_FORMS[this.id]).elements.PageType.onchange = this.typeDropdown_change; } return false; }, // Reset the page types dropdown to its original state resetPageTypeOptions: function() { var select = $(_HANDLER_FORMS.addpage).elements.PageType; while (select.childNodes.length >= 1) { select.removeChild(select.firstChild); } for(var i = 0; i < this.originalValues.length; i++) { var option = document.createElement('option'); option.value = this.originalValues[i].value; option.innerHTML = this.originalValues[i].label; select.appendChild(option); } }, // Hide the