--- Webpacus/root/editor/quicktags.js 2005/11/29 15:29:55 196 +++ Webpacus/root/editor/quicktags.js 2005/11/29 15:30:03 197 @@ -109,38 +109,35 @@ ,'e' ); -function edShowButton(button, i) { - if (button.id == 'ed_img') { - return(''); - } - else if (button.id == 'ed_link') { - return(''); +function edShowButton(name, button, i) { + if (button.id == 'ed_link') { + return(''); } else { - return(''); + return(''); } } -function edAddTag(button) { +function edAddTag(name, button) { if (edButtons[button].tagEnd != '') { - edOpenTags[edOpenTags.length] = button; - $( edButtons[button].id ).value = '/' + $( edButtons[button].id ).value; + edOpenTags[name][ edOpenTags[name].length ] = button; + $( name + '_' + edButtons[button].id ).value = '/' + $( name + '_' + edButtons[button].id ).value; } } -function edRemoveTag(button) { - for (i = 0; i < edOpenTags.length; i++) { - if (edOpenTags[i] == button) { - edOpenTags.splice(i, 1); - $( edButtons[button].id ).value = $( edButtons[button].id ).value.replace('/', ''); +function edRemoveTag(name, button) { + for (i = 0; i < edOpenTags[name].length; i++) { + if (edOpenTags[name][i] == button) { + edOpenTags[name].splice(i, 1); + $( name + '_' + edButtons[button].id ).value = $( name + '_' + edButtons[button].id ).value.replace('/', ''); } } } -function edCheckOpenTags(button) { +function edCheckOpenTags(name, button) { var tag = 0; - for (i = 0; i < edOpenTags.length; i++) { - if (edOpenTags[i] == button) { + for (i = 0; i < edOpenTags[name].length; i++) { + if (edOpenTags[name][i] == button) { tag++; } } @@ -152,10 +149,11 @@ } } -function edCloseAllTags() { - var count = edOpenTags.length; +function edCloseAllTags( name ) { + var count = edOpenTags[name].length; + Logger.info('edCloseAllTags '+name+' count:'+count); for (o = 0; o < count; o++) { - edInsertTag(edCanvas, edOpenTags[edOpenTags.length - 1]); + edInsertTag(name, edOpenTags[name][ edOpenTags[name].length - 1 ]); } } @@ -178,24 +176,32 @@ var toolbar = ''; for (var i = 0; i < edButtons.length; i++) { - toolbar += edShowButton(edButtons[i], i); + toolbar += edShowButton(name, edButtons[i], i); } toolbar += '  '; - toolbar += ''; + toolbar += ''; div.innerHTML = toolbar; - Logger.debug('before: '+edActiveToolbar[name]); + edActiveToolbar[name] = 1; - Logger.debug('after: '+edActiveToolbar[name]); + edOpenTags[name] = new Array(); + + Logger.debug('edActiveToolbar['+name+'] = '+edActiveToolbar[name]); return false; } // insertion code -function edInsertTag(myField, i) { +function edInsertTag(name, i) { + + myField = $( name ); + if (! myField) { + Logger.error("can't find "+name); + return false; + } var pos = myField.scrollTop; - Logger.debug('edInsertTag "'+i+'", scrollTop='+pos); + Logger.debug('edInsertTag '+name+','+i+'; scrollTop='+pos); //IE support if (document.selection) { @@ -205,13 +211,13 @@ sel.text = edButtons[i].tagStart + sel.text + edButtons[i].tagEnd; } else { - if (!edCheckOpenTags(i) || edButtons[i].tagEnd == '') { + if (!edCheckOpenTags(name, i) || edButtons[i].tagEnd == '') { sel.text = edButtons[i].tagStart; - edAddTag(i); + edAddTag(name, i); } else { sel.text = edButtons[i].tagEnd; - edRemoveTag(i); + edRemoveTag(name, i); } } myField.focus(); @@ -232,18 +238,18 @@ cursorPos += edButtons[i].tagStart.length + edButtons[i].tagEnd.length; } else { - if (!edCheckOpenTags(i) || edButtons[i].tagEnd == '') { + if (!edCheckOpenTags(name, i) || edButtons[i].tagEnd == '') { myField.value = myField.value.substring(0, startPos) + edButtons[i].tagStart + myField.value.substring(endPos, myField.value.length); - edAddTag(i); + edAddTag(name, i); cursorPos = startPos + edButtons[i].tagStart.length; } else { myField.value = myField.value.substring(0, startPos) + edButtons[i].tagEnd + myField.value.substring(endPos, myField.value.length); - edRemoveTag(i); + edRemoveTag(name, i); cursorPos = startPos + edButtons[i].tagEnd.length; } } @@ -253,13 +259,13 @@ myField.scrollTop = scrollTop; } else { - if (!edCheckOpenTags(i) || edButtons[i].tagEnd == '') { + if (!edCheckOpenTags(name, i) || edButtons[i].tagEnd == '') { myField.value += edButtons[i].tagStart; - edAddTag(i); + edAddTag(name, i); } else { myField.value += edButtons[i].tagEnd; - edRemoveTag(i); + edRemoveTag(name, i); } myField.focus(); } @@ -297,19 +303,26 @@ if (pos && myField.scrollTop != pos) myField.scrollTop = pos; } -function edInsertLink(myField, i, defaultValue) { +function edInsertLink(name, i, defaultValue) { + + myField = $( name ); + if (! myField) { + Logger.error("can't find "+name); + return false; + } + if (!defaultValue) { defaultValue = 'http://'; } - if (!edCheckOpenTags(i)) { + if (!edCheckOpenTags(name, i)) { var URL = prompt('Enter the URL' ,defaultValue); if (URL) { edButtons[i].tagStart = ''; - edInsertTag(myField, i); + edInsertTag(name, i); } } else { - edInsertTag(myField, i); + edInsertTag(name, i); } }