109 |
,'e' |
,'e' |
110 |
); |
); |
111 |
|
|
112 |
function edShowButton(button, i) { |
function edShowButton(name, button, i) { |
113 |
if (button.id == 'ed_img') { |
if (button.id == 'ed_link') { |
114 |
return('<input type="button" id="' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertImage(edCanvas);" value="' + button.display + '" />'); |
return('<input type="button" id="' + name + '_' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertLink(\''+name+'\', ' + i + ');" value="' + button.display + '" />'); |
|
} |
|
|
else if (button.id == 'ed_link') { |
|
|
return('<input type="button" id="' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertLink(edCanvas, ' + i + ');" value="' + button.display + '" />'); |
|
115 |
} |
} |
116 |
else { |
else { |
117 |
return('<input type="button" id="' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertTag(edCanvas, ' + i + ');" value="' + button.display + '" />'); |
return('<input type="button" id="' + name + '_' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertTag(\''+name+'\', ' + i + ');" value="' + button.display + '" />'); |
118 |
} |
} |
119 |
} |
} |
120 |
|
|
121 |
function edAddTag(button) { |
function edAddTag(name, button) { |
122 |
if (edButtons[button].tagEnd != '') { |
if (edButtons[button].tagEnd != '') { |
123 |
edOpenTags[edOpenTags.length] = button; |
edOpenTags[name][ edOpenTags[name].length ] = button; |
124 |
$( edButtons[button].id ).value = '/' + $( edButtons[button].id ).value; |
$( name + '_' + edButtons[button].id ).value = '/' + $( name + '_' + edButtons[button].id ).value; |
125 |
} |
} |
126 |
} |
} |
127 |
|
|
128 |
function edRemoveTag(button) { |
function edRemoveTag(name, button) { |
129 |
for (i = 0; i < edOpenTags.length; i++) { |
for (i = 0; i < edOpenTags[name].length; i++) { |
130 |
if (edOpenTags[i] == button) { |
if (edOpenTags[name][i] == button) { |
131 |
edOpenTags.splice(i, 1); |
edOpenTags[name].splice(i, 1); |
132 |
$( edButtons[button].id ).value = $( edButtons[button].id ).value.replace('/', ''); |
$( name + '_' + edButtons[button].id ).value = $( name + '_' + edButtons[button].id ).value.replace('/', ''); |
133 |
} |
} |
134 |
} |
} |
135 |
} |
} |
136 |
|
|
137 |
function edCheckOpenTags(button) { |
function edCheckOpenTags(name, button) { |
138 |
var tag = 0; |
var tag = 0; |
139 |
for (i = 0; i < edOpenTags.length; i++) { |
for (i = 0; i < edOpenTags[name].length; i++) { |
140 |
if (edOpenTags[i] == button) { |
if (edOpenTags[name][i] == button) { |
141 |
tag++; |
tag++; |
142 |
} |
} |
143 |
} |
} |
149 |
} |
} |
150 |
} |
} |
151 |
|
|
152 |
function edCloseAllTags() { |
function edCloseAllTags( name ) { |
153 |
var count = edOpenTags.length; |
var count = edOpenTags[name].length; |
154 |
|
Logger.info('edCloseAllTags '+name+' count:'+count); |
155 |
for (o = 0; o < count; o++) { |
for (o = 0; o < count; o++) { |
156 |
edInsertTag(edCanvas, edOpenTags[edOpenTags.length - 1]); |
edInsertTag(name, edOpenTags[name][ edOpenTags[name].length - 1 ]); |
157 |
} |
} |
158 |
} |
} |
159 |
|
|
176 |
var toolbar = ''; |
var toolbar = ''; |
177 |
|
|
178 |
for (var i = 0; i < edButtons.length; i++) { |
for (var i = 0; i < edButtons.length; i++) { |
179 |
toolbar += edShowButton(edButtons[i], i); |
toolbar += edShowButton(name, edButtons[i], i); |
180 |
} |
} |
181 |
toolbar += '  '; |
toolbar += '  '; |
182 |
toolbar += '<input type="button" id="ed_close" class="ed_button" onclick="edCloseAllTags();" title="Close all open tags" value="Close Tags" />'; |
toolbar += '<input type="button" id="ed_close" class="ed_button" onclick="edCloseAllTags(\''+name+'\');" title="Close all open tags" value="Close Tags" />'; |
183 |
|
|
184 |
div.innerHTML = toolbar; |
div.innerHTML = toolbar; |
185 |
Logger.debug('before: '+edActiveToolbar[name]); |
|
186 |
edActiveToolbar[name] = 1; |
edActiveToolbar[name] = 1; |
187 |
Logger.debug('after: '+edActiveToolbar[name]); |
edOpenTags[name] = new Array(); |
188 |
|
|
189 |
|
Logger.debug('edActiveToolbar['+name+'] = '+edActiveToolbar[name]); |
190 |
return false; |
return false; |
191 |
} |
} |
192 |
|
|
193 |
// insertion code |
// insertion code |
194 |
|
|
195 |
function edInsertTag(myField, i) { |
function edInsertTag(name, i) { |
196 |
|
|
197 |
|
myField = $( name ); |
198 |
|
if (! myField) { |
199 |
|
Logger.error("can't find "+name); |
200 |
|
return false; |
201 |
|
} |
202 |
|
|
203 |
|
var pos = myField.scrollTop; |
204 |
|
Logger.debug('edInsertTag '+name+','+i+'; scrollTop='+pos); |
205 |
|
|
206 |
//IE support |
//IE support |
207 |
if (document.selection) { |
if (document.selection) { |
211 |
sel.text = edButtons[i].tagStart + sel.text + edButtons[i].tagEnd; |
sel.text = edButtons[i].tagStart + sel.text + edButtons[i].tagEnd; |
212 |
} |
} |
213 |
else { |
else { |
214 |
if (!edCheckOpenTags(i) || edButtons[i].tagEnd == '') { |
if (!edCheckOpenTags(name, i) || edButtons[i].tagEnd == '') { |
215 |
sel.text = edButtons[i].tagStart; |
sel.text = edButtons[i].tagStart; |
216 |
edAddTag(i); |
edAddTag(name, i); |
217 |
} |
} |
218 |
else { |
else { |
219 |
sel.text = edButtons[i].tagEnd; |
sel.text = edButtons[i].tagEnd; |
220 |
edRemoveTag(i); |
edRemoveTag(name, i); |
221 |
} |
} |
222 |
} |
} |
223 |
myField.focus(); |
myField.focus(); |
238 |
cursorPos += edButtons[i].tagStart.length + edButtons[i].tagEnd.length; |
cursorPos += edButtons[i].tagStart.length + edButtons[i].tagEnd.length; |
239 |
} |
} |
240 |
else { |
else { |
241 |
if (!edCheckOpenTags(i) || edButtons[i].tagEnd == '') { |
if (!edCheckOpenTags(name, i) || edButtons[i].tagEnd == '') { |
242 |
myField.value = myField.value.substring(0, startPos) |
myField.value = myField.value.substring(0, startPos) |
243 |
+ edButtons[i].tagStart |
+ edButtons[i].tagStart |
244 |
+ myField.value.substring(endPos, myField.value.length); |
+ myField.value.substring(endPos, myField.value.length); |
245 |
edAddTag(i); |
edAddTag(name, i); |
246 |
cursorPos = startPos + edButtons[i].tagStart.length; |
cursorPos = startPos + edButtons[i].tagStart.length; |
247 |
} |
} |
248 |
else { |
else { |
249 |
myField.value = myField.value.substring(0, startPos) |
myField.value = myField.value.substring(0, startPos) |
250 |
+ edButtons[i].tagEnd |
+ edButtons[i].tagEnd |
251 |
+ myField.value.substring(endPos, myField.value.length); |
+ myField.value.substring(endPos, myField.value.length); |
252 |
edRemoveTag(i); |
edRemoveTag(name, i); |
253 |
cursorPos = startPos + edButtons[i].tagEnd.length; |
cursorPos = startPos + edButtons[i].tagEnd.length; |
254 |
} |
} |
255 |
} |
} |
259 |
myField.scrollTop = scrollTop; |
myField.scrollTop = scrollTop; |
260 |
} |
} |
261 |
else { |
else { |
262 |
if (!edCheckOpenTags(i) || edButtons[i].tagEnd == '') { |
if (!edCheckOpenTags(name, i) || edButtons[i].tagEnd == '') { |
263 |
myField.value += edButtons[i].tagStart; |
myField.value += edButtons[i].tagStart; |
264 |
edAddTag(i); |
edAddTag(name, i); |
265 |
} |
} |
266 |
else { |
else { |
267 |
myField.value += edButtons[i].tagEnd; |
myField.value += edButtons[i].tagEnd; |
268 |
edRemoveTag(i); |
edRemoveTag(name, i); |
269 |
} |
} |
270 |
myField.focus(); |
myField.focus(); |
271 |
} |
} |
272 |
|
|
273 |
|
if (pos && myField.scrollTop != pos) myField.scrollTop = pos; |
274 |
} |
} |
275 |
|
|
276 |
function edInsertContent(myField, myValue) { |
function edInsertContent(myField, myValue) { |
277 |
|
|
278 |
|
var pos = myField.scrollTop; |
279 |
|
|
280 |
|
Logger.debug('edInsertContent "'+myValue+'", scrollTop='+pos); |
281 |
//IE support |
//IE support |
282 |
if (document.selection) { |
if (document.selection) { |
283 |
myField.focus(); |
myField.focus(); |
299 |
myField.value += myValue; |
myField.value += myValue; |
300 |
myField.focus(); |
myField.focus(); |
301 |
} |
} |
302 |
|
|
303 |
|
if (pos && myField.scrollTop != pos) myField.scrollTop = pos; |
304 |
} |
} |
305 |
|
|
306 |
function edInsertLink(myField, i, defaultValue) { |
function edInsertLink(name, i, defaultValue) { |
307 |
|
|
308 |
|
myField = $( name ); |
309 |
|
if (! myField) { |
310 |
|
Logger.error("can't find "+name); |
311 |
|
return false; |
312 |
|
} |
313 |
|
|
314 |
if (!defaultValue) { |
if (!defaultValue) { |
315 |
defaultValue = 'http://'; |
defaultValue = 'http://'; |
316 |
} |
} |
317 |
if (!edCheckOpenTags(i)) { |
if (!edCheckOpenTags(name, i)) { |
318 |
var URL = prompt('Enter the URL' ,defaultValue); |
var URL = prompt('Enter the URL' ,defaultValue); |
319 |
if (URL) { |
if (URL) { |
320 |
edButtons[i].tagStart = '<a href="' + URL + '">'; |
edButtons[i].tagStart = '<a href="' + URL + '">'; |
321 |
edInsertTag(myField, i); |
edInsertTag(name, i); |
322 |
} |
} |
323 |
} |
} |
324 |
else { |
else { |
325 |
edInsertTag(myField, i); |
edInsertTag(name, i); |
326 |
} |
} |
327 |
} |
} |
328 |
|
|
335 |
var e = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; |
var e = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; |
336 |
if (e == 9) { |
if (e == 9) { |
337 |
edInsertContent(edCanvas, '\t'); |
edInsertContent(edCanvas, '\t'); |
338 |
|
// this is a fix for gecko-based browsers which force |
339 |
|
// focus change on tab. It *should* be harmless for |
340 |
|
// others, since edCavnas is allready focused |
341 |
|
setTimeout('edCanvas.focus();', 1); |
342 |
return false; |
return false; |
343 |
} |
} |
344 |
return true; |
return true; |
360 |
*/ |
*/ |
361 |
function edBlur() { |
function edBlur() { |
362 |
Logger.info('edBlur'); |
Logger.info('edBlur'); |
363 |
edChanvas = null; |
edCanvas = null; |
364 |
return false; |
return false; |
365 |
} |
} |
366 |
|
|