function preinit() { // Initialize tinyMCE.setWindowArg('mce_windowresize', false); } function init() { if (tinyMCE.isMSIE) { tinyMCEPopup.resizeToInnerSize(); } else { tinyMCEPopup.resizeToContent(); } window.focus(); loadCategories(null); } function insertAction() { var inst = tinyMCE.getInstanceById( tinyMCE.getWindowArg( 'editor_id' ) ); var elm = inst.getFocusElement(); elm = tinyMCE.getParentElement( elm, "a" ); tinyMCEPopup.execCommand( "mceBeginUndoLevel" ); // Create new anchor elements if ( elm == null ) { var form = document.forms['elemlist']; var sel_option = form.nodelist.options[form.nodelist.selectedIndex]; if ( sel_option == null ) return; var insertText = ''; var nid = sel_option.value; if ( inst.selection.getSelectedText().length == 0) { insertText = sel_option.text; tinyMCEPopup.execCommand( "mceInsertContent", false, '' + insertText + '' ); } else { if ( tinyMCE.isSafari ) tinyMCEPopup.execCommand( "mceInsertContent", false, '' + inst.selection.getSelectedHTML() + '' ); else tinyMCEPopup.execCommand( "createlink", false, '' + nid ); var elementArray = tinyMCE.getElementsByAttributeValue( inst.getBody(), "a", "href", '' + nid ); for ( var i=0; i -1) { url = url.substring(0, url.indexOf('sites/')); } url = url + 'ltc/linktonode'; alert("tinyMCE.baseURL: " + tinyMCE.baseURL + "\nrequestURL: " + url); // native XMLHttpRequest object if (window.XMLHttpRequest) { req = new XMLHttpRequest(); alert("XMLHttpRequest: " + req); req.onreadystatechange = function() {requestDone( obj );}; var reqStr = '/'; if ( catId != vId ) reqStr += vId + '/'; reqStr += catId; alert("send request: " + url + reqStr); req.open( "GET", url + reqStr, true ); req.send( null ); } else { alert("XMLHttpRequest not supported!"); } statusImg( false ); } function requestDone( obj ) { alert("request state: " + req.readyState); switch( req.readyState ) { case 1: case 2: case 3: statusImg( true ); break; case 4: // only if req is "loaded" alert("request status: " + req.status) // only if "OK" if (req.status == 200) { alert(req.responseText); results = parseJson(req.responseText); if ( obj == null ) { // create first select createSelect( false, results ); } else { // create child select var selected = obj.value var div_sel = obj.parentNode; _removeDescendant( div_sel ); if ( selected == -1 ) return; if ( div_sel.nodeName != 'DIV' ) { alert( 'wrong DOM!' ); return; } createSelect( div_sel, results ); } listNodes( results ); } else { alert(req.statusText); } statusImg( false ); default: } // switch } /** * creates a new select element **/ function createSelect( parent, results ) { var form = document.getElementById( 'form_browse' ); if ( !form ) { alert( 'Error: form_browse not found!' ); return; } var elemname; if ( parent == false ) elemname = 'browse_sel_-1'; else elemname = parent.id; var level = parseInt(elemname.substring( elemname.lastIndexOf( "_" )+1, elemname.length ) ) + 1; var elemBase = elemname.substring( 0, elemname.lastIndexOf( "_" )+1 ); if ( results == null || results.category == null || results.category == false ) return; var sel_div = document.createElement( 'div' ); var attrs = new Array(); attrs['name'] = elemBase + level; attrs['id'] = attrs['name']; attrs['style'] = 'display: block; margin: 1px 0; padding: 0; border: 0;'; for ( attrName in attrs ) sel_div.setAttribute( attrName, attrs[attrName] ); form.insertBefore( sel_div, document.getElementById( 'dummy' ) ); /* create