Файл: siteadmin/editor_files/js/IE5script.js
Строк: 1168
<?php
// Purpose: functions specific to Internet Explorer
function wp_divReturn(obj) {
var sel = obj.edit_object.document.selection.createRange()
parentTag = wp_skipInline(sel)
if (parentTag.tagName == "TD"
|| parentTag.tagName == "THEAD"
|| parentTag.tagName == "TFOOT"
|| parentTag.tagName == "BODY"
|| parentTag.tagName == "HTML"
|| parentTag.tagName == "P") {
obj.edit_object.document.execCommand("FormatBlock", false, "<div>")
}
return true
}
function wp_skipInline(sel) {
var foo = sel.parentElement()
var tagName = foo.tagName
while((wp_inline_tags.test(tagName)) && (tagName!="HTML")) {
foo = foo.parentElement
tagName = foo.tagName
}
return foo
}
function wp_editor(obj,config) {
// Strings:
obj.name = config.name
obj.instance_lang = config.instance_lang
obj.encoding = config.encoding
obj.xhtml_lang = config.xhtml_lang
obj.baseURLurl = config.baseURLurl
obj.baseURL = config.baseURL
obj.doctype = config.doctype
obj.charset = config.charset
if (config.domain1) {
obj.domain1 = config.domain1
obj.domain2 = config.domain2
}
obj.instance_img_dir = config.instance_img_dir
obj.instance_doc_dir = config.instance_doc_dir
obj.imagewindow = config.imagewindow
obj.links = config.links
obj.custom_inserts = config.custom_inserts
obj.stylesheet = config.stylesheet
obj.styles = ''
obj.color_swatches = config.color_swatches
// lang
obj.lng = config.lang
//integers:
obj.imenu_height = config.imenu_height
obj.bmenu_height = config.bmenu_height
obj.smenu_height = config.smenu_height
obj.tmenu_height = config.tmenu_height
obj.border_visible = config.border_visible
// booleen
obj.usep = config.usep
if (obj.usep) {
obj.tdInners = '<p> </p>';
} else {
obj.tdInners = '<div> </div>';
}
obj.showbookmarkmngr = config.showbookmarkmngr
obj.snippit = true
obj.html_mode=false
obj.preview_mode=false
obj.safe = true
obj.initfocus = false
obj.subsequent =config.subsequent
obj.useXHTML = config.useXHTML
// methods
obj.getCode = wp_GetCode
obj.getPreviewCode = wp_GetPreviewCode
obj.setCode = wp_SetCode
obj.insertAtSelection = wp_InsertAtSelection
obj.getSelectedText = wp_GetSelectedText
obj.moveFocus = wp_Focus
obj.openDialog = wp_openDialog
obj.showPreview = wp_showPreview
obj.showCode = wp_showCode
obj.showDesign = wp_showDesign
obj.updateHTML = wp_updateHTML
obj.updateWysiwyg = wp_updateWysiwyg
// objects:
// 222 frame position fix
obj.format_frame = document.frames(obj.name+"_format_frame")
obj.class_frame = document.frames(obj.name+"_class_frame")
obj.font_frame = document.frames(obj.name+"_font_frame")
obj.size_frame = document.frames(obj.name+"_size_frame")
obj.format_frame.written = false
obj.class_frame.written = false
obj.font_frame.written = false
obj.size_frame.written = false
// end 222
obj.font_face = eval("document.all."+obj.name+"_font_face")
obj.font_size = eval("document.all."+obj.name+"_font_size")
obj.format_list = eval("document.all."+obj.name+"_format_list")
obj.class_menu = eval("document.all."+obj.name+"_class_menu")
obj.html_edit_area = eval("document.getElementById('"+obj.name+"')")
var tbar=eval("document.getElementById('"+obj.name+"_tab_one')")
var tbarimages = document.getElementById(obj.name+"_tab_one").getElementsByTagName('IMG')
obj.tbarimages = tbarimages
obj.tbarlength = tbarimages.length
obj.edit_object = document.frames(obj.name+"_editFrame")
obj.editFrame = obj.edit_object
obj.previewFrame = document.frames(obj.name+"_previewFrame")
// submit_form
var container = document.getElementById(obj.name+"_container")
var node = container.parentElement;
while(node.tagName != 'FORM' && node.tagName != "BODY" && node.tagName != "HTML") {
node= node.parentElement;
}
if (node.tagName == 'FORM') {
node.attachEvent('onsubmit', wp_submit_editors)
}
// end
if (!wp_is_ie50) {
var table = document.getElementById(obj.name+"_toolbar1")
var n = table.all.length
for (i=0; i<n; i++) {
table.all[i].unselectable = "on"
}
var table = document.getElementById(obj.name+"_toolbar2")
var n = table.all.length
for (i=0; i<n; i++) {
table.all[i].unselectable = "on"
}
var tab_table = document.getElementById(obj.name+'_tab_table')
var n=tab_table.all.length
for (i=0; i<n; i++) {
tab_table.all[i].unselectable = "on"
}
var hidden = document.getElementById(obj.name+'_hidden')
var n=hidden.all.length
for (i=0; i<n; i++) {
hidden.all[i].unselectable = "on"
}
}
obj.edit_object.document.designMode="on"
wp_next(obj)
}
function wp_next (obj) {
// baseURL
var str = obj.html_edit_area.value
// 222 fix to ensure script and form tags are not removed in snippit mode
if (str.search(/<body/gi) != -1) {
obj.snippit = false
str2 = obj.doctype
if (obj.baseURL != '') {
str2+=obj.baseURL
}
str = str2 + str
} else {
obj.snippit = true
str2 = obj.doctype+'<html><head>'+obj.charset
if (obj.baseURL != '') {
str2+=obj.baseURL
}
str = str2 + '</head><body>' + str + '</body></html>'
}
// end 222
try {
obj.edit_object.document.open()
} catch (e) {
document.location.reload()
}
obj.edit_object.document.write(str)
obj.edit_object.document.close()
obj.edit_object.document.execCommand("2D-Position", true, true)
obj.edit_object.document.execCommand("LiveResize", true, true)
obj.edit_object.document.execCommand("MultipleSelection", true, true)
if (obj.stylesheet != '') {
var num = obj.stylesheet.length;
for (var i=0; i < num; i++) {
obj.edit_object.document.createStyleSheet(obj.stylesheet[i])
}
}
// detect keypress
obj.edit_object.document.onkeydown = function () {
// make the enter keypress use <div> instead of <p> as the default.
if (obj.edit_object.event.keyCode == 13) { // ENTER
//var sel=obj.edit_object.document.selection.createRange()
if ((obj.html_mode==false) && (obj.safe) && (!obj.usep) && (obj.edit_object.document.selection.type != "Control")) {
wp_divReturn(obj)
}
} else
// make the tab key create tabs rather moving the focus away from the editor, which just pisses off people who are used to MS Word.
if (obj.edit_object.event.keyCode == 9) { // TAB
if ((obj.html_mode==false) && (obj.safe)) {
var sel = obj.edit_object.document.selection.createRange()
sel.pasteHTML(' ')
return false
}
} else
// arrow key selection fix
if (obj.edit_object.event.keyCode == 39 || obj.edit_object.event.keyCode == 37) {
wp_set_button_states(obj)
}
}
if (!wp_is_ie50) {
// context menus
obj.edit_object.document.oncontextmenu = function () {
if (obj.safe) {
wp_current_obj = obj
var sel=obj.edit_object.document.selection.createRange()
if (obj.edit_object.document.selection.type == "Control") {
if (sel(0).tagName == "IMG") {
if ((sel(0).getAttribute('name')) && (sel(0).src.search(wp_directory+"/images/bookmark_symbol.gif") != -1)) {
var menu = document.getElementById(obj.name+"_bookmarkMenu")
oHeight = obj.bmenu_height + 2
oWidth=230
} else {
var menu = document.getElementById(obj.name+"_imageMenu")
oHeight = obj.imenu_height + 2
oWidth=230
}
} else {
if (sel(0).tagName == "TABLE") {
var menu = document.getElementById(obj.name+"_standardMenu")
oHeight = obj.smenu_height + 2
oWidth=230
} else {
return false
}
}
} else {
if (wp_isInside(obj, 'TD')) {
var menu = document.getElementById(obj.name+"_tableMenu")
oHeight = obj.tmenu_height + 2
oWidth=270
} else {
var menu = document.getElementById(obj.name+"_standardMenu")
oHeight = obj.smenu_height + 2
oWidth=230
}
}
// make inactive menu items disabled
var menuRows = menu.getElementsByTagName('TR')
if (menu == document.getElementById(obj.name+"_tableMenu")) {
wp_getTable(obj, sel)
}
var n=menuRows.length
for (var i=0; i < n; i++) {
var cmd = menuRows[i].cid
menuRows[i].getElementsByTagName('TD')[0].getElementsByTagName('IMG')[0].style.filter = "progid:DXImageTransform.Microsoft.MaskFilter() progid:DXImageTransform.Microsoft.MaskFilter(color=#AAAAAA)"
if (cmd == 'unmergeright') {
if (wp_thisCell.colSpan >= 2) {
menuRows[i].disabled=false
menuRows[i].getElementsByTagName('TD')[0].getElementsByTagName('IMG')[0].style.filter = ""
} else {
menuRows[i].disabled=true
}
} else if (cmd == 'mergeright') {
if ((!wp_thisCell.nextSibling) || (wp_thisCell.rowSpan != wp_thisCell.nextSibling.rowSpan)) {
menuRows[i].disabled=true
} else {
menuRows[i].disabled=false
menuRows[i].getElementsByTagName('TD')[0].getElementsByTagName('IMG')[0].style.filter = ""
}
} else if (cmd == 'mergebelow') {
var numrows = wp_thisTable.getElementsByTagName('TR').length
var topRowIndex = wp_thisRow.rowIndex
if ((!wp_thisRow.nextSibling) || (numrows - (topRowIndex + wp_thisCell.rowSpan) <= 0)) {
menuRows[i].disabled=true
} else {
menuRows[i].disabled=false
menuRows[i].getElementsByTagName('TD')[0].getElementsByTagName('IMG')[0].style.filter = ""
}
} else if (cmd == 'unmergebelow') {
if (wp_thisCell.rowSpan < 2) {
menuRows[i].disabled=true
} else {
menuRows[i].disabled=false
menuRows[i].getElementsByTagName('TD')[0].getElementsByTagName('IMG')[0].style.filter = ""
}
} else {
if (obj.edit_object.document.queryCommandEnabled(cmd)) {
menuRows[i].disabled=false
menuRows[i].getElementsByTagName('TD')[0].getElementsByTagName('IMG')[0].style.filter = ""
} else {
menuRows[i].disabled=true
}
}
}
// now actually make the menus
var oPopUpBody = wp_oPopUp.document.body
var evnt = obj.edit_object.event
wp_oPopUp.document.createStyleSheet(wp_directory+'editor_theme.css');
oPopUpBody.innerHTML = menu.innerHTML
oPopUpBody.onmouseup = wp_closePopupTimer
wp_oPopUp.show(evnt.screenX, evnt.screenY, oWidth, oHeight)
//document.body.onmouseup = closePopup
return false
} else {
return true
}
}
}
if (document.attachEvent) {
eval(obj.name+".edit_object.document.attachEvent('onmouseup', wp_"+obj.name+"_mouseUpHandler, true)")
} else {
eval(obj.name+".edit_object.document.onmouseup = wp_"+obj.name+"_mouseUpHandler")
}
if (obj.border_visible == 1) {
wp_show_borders(obj)
} else {
wp_hide_borders(obj)
}
// 222
wp_font_hack(obj.edit_object.document.body, obj);
// end 222
// the editor is now ready to use
document.getElementById(obj.name+"_load_message").style.display ='none'
}
function wp_mouseUpHandler(obj, evt) {
wp_set_button_states(obj)
wp_hide_menu(obj)
wp_current_obj = obj
}
// functions for sending html between edit_object and the textarea
function wp_send_to_html(obj) {
if (obj.html_edit_area.value.search(/<body/gi) != -1) {
obj.snippit = false
obj.html_edit_area.value = wp_gethtml(obj.edit_object.document,obj)
} else {
obj.snippit = true
obj.html_edit_area.value = wp_gethtml(obj.edit_object.document.body,obj)
}
var str=obj.html_edit_area.value
RegExp.multiline = true
if (obj.domain1 && obj.domain2) {
str = str.replace(obj.domain1, '$1"')
str = str.replace(obj.domain2, '$1"')
}
//str = str.replace(/<div></div>/gi, "<div> </div>")
//str = str.replace(/<p></p>/gi, "<p> </p>")
str = str.replace(/ style=""/gi, "")
obj.html_edit_area.value = str
}
function wp_send_to_edit_object(obj) {
str = obj.html_edit_area.value;
str = wp_replace_bookmark (str)
str = str.replace(/<%([^%]+)%>/gi, "<!--asp$1-->")
str = str.replace(/<br></br>/gi, "<br />")
obj.html_edit_area.value = str
wp_next(obj)
if (obj.border_visible == 1) {
wp_show_borders(obj)
}
obj.styles = wp_make_styles (obj)
obj.format_frame.written = false
obj.class_frame.written = false
obj.font_frame.written = false
obj.size_frame.written = false
}
function wp_closePopup() {
if (wp_oPopUp) {
wp_oPopUp.hide()
}
}
// Catch and execute the commands sent from the buttons and tools
function wp_callFormatting(obj,sFormatString) {
obj.edit_object.focus()
if (wp_is_ie50) {
obj.edit_object.document.execCommand(sFormatString)
} else {
document.execCommand(sFormatString)
}
wp_set_button_states(obj)
}
function wp_change_class(obj,classname) {
wp_hide_menu(obj)
obj.edit_object.focus()
var sel = obj.edit_object.document.selection.createRange()
if (sel.text == '') {
return;
}
var foo = sel.parentElement();
//wp_font_hack(obj.edit_object.document, obj)
if (classname == 'wp_none') {
while(!foo.className&&foo.tagName!="HTML") {
foo = foo.parentElement;
}
if (foo.getAttribute('class') != 'wp_none' && foo.getAttribute('class') != '') {
foo.className = classname;
}
}
if (obj.edit_object.document.selection.type == "Control") {
sel(0).setAttribute('class', classname)
} else {
obj.edit_object.document.execCommand("FontName", false, 'wp_bogus_font')
var spans = obj.edit_object.document.getElementsByTagName('SPAN')
var fonts = obj.edit_object.document.getElementsByTagName('FONT')
wp_set_class(spans, classname, true)
wp_set_class(fonts, classname, true)
}
wp_span_hack(obj.edit_object.document, obj)
}
function wp_set_class(arr, classname, fontCheck) {
var l = arr.length
for (var i=0; i < l; i++) {
if (fontCheck) {
if (arr[i].style.fontFamily) {
if (arr[i].style.fontFamily == 'wp_bogus_font') {
arr[i].className = classname
arr[i].style.fontFamily = ''
// do children
var spans = arr[i].getElementsByTagName('SPAN')
var fonts = arr[i].getElementsByTagName('FONT')
wp_set_class(spans, classname, false)
wp_set_class(fonts, classname, false)
}
}
if (arr[i].getAttribute("face")) {
if (arr[i].getAttribute("face") == 'wp_bogus_font') {
arr[i].removeAttribute('face')
arr[i].className = classname
// do children
var spans = arr[i].getElementsByTagName('SPAN')
var fonts = arr[i].getElementsByTagName('FONT')
wp_set_class(spans, classname, false)
wp_set_class(fonts, classname, false)
}
}
} else if (arr[i].getAttribute('class') != 'wp_none' && arr[i].getAttribute('class') != '') {
if (arr[i].getAttribute('class') == classname) {
arr[i].className = 'wp_none'
} else {
arr[i].className = classname;
}
}
}
}
// lets try to make a custom hyperlink window!!
function wp_open_hyperlink_window(obj,srcElement) {
var data = wp_generic_link_window_function (obj, srcElement)
if (data) {
var thisTarget = data['target']
var thisTitle = data['title']
var szURL= wp_directory + "dialog_frame.php?target="+thisTarget+"&title="+thisTitle+"&lang="+obj.instance_lang+"&window="+wp_directory+"hyperlink.php"
linkwin = obj.openDialog (szURL ,'modal',650,394)
}
}
// link to a document
function wp_open_document_window(obj,srcElement) {
var data = wp_generic_link_window_function (obj, srcElement)
if (data) {
var szURL= wp_directory + "dialog_frame.php?window="+wp_directory+"document.php&instance_doc_dir="+obj.instance_doc_dir+"&lang="+obj.instance_lang
docwin = obj.openDialog(szURL ,'modal',730,466)
}
}
function wp_generic_link_window_function (obj,srcElement) {
if (srcElement.className == "wpDisabled") {
return
}
var sel = obj.edit_object.document.selection.createRange()
if ((sel.text == '') && (!wp_isInside(obj, 'A'))) {
alert(obj.lng['select_hyperlink_text'])
return
}
var thisTarget = ""
var thisTitle = ""
// check if hyperlink exists and if so populate the link dialog so that user can edit the existing link
if (obj.edit_object.document.selection.type == "Control") {
if (sel(0).tagName == "IMG") {
this_href = sel(0).parentNode
} else {
return
}
} else {
this_href = sel.parentElement()
}
while(this_href.tagName!="A"&&this_href.tagName!="HTML") {
this_href = this_href.parentElement
}
if (this_href.tagName == "A") {
var thisLink = this_href.getAttribute("HREF", 2)
wp_current_hyperlink = thisLink
if (this_href.getAttribute("target")) {
thisTarget = this_href.getAttribute("target")
}
if (this_href.getAttribute("title")) {
thisTitle = this_href.getAttribute("title")
}
} else {
wp_current_hyperlink = ''
}
return {'target': thisTarget, 'title': thisTitle}
}
// this creates the hyperlink html from data sent from the hyperlink window
function wp_hyperlink(obj,iHref,iTarget,iTitle) {
// if no link data sent then unlink any existing link
if (iHref=="") {
wp_callFormatting(obj, "Unlink")
obj.edit_object.focus()
return
} else if(iHref=="file://") {
wp_callFormatting(obj, "Unlink")
obj.edit_object.focus()
return
} else if(iHref=="http://") {
wp_callFormatting(obj, "Unlink")
obj.edit_object.focus()
return
} else if(iHref=="https://") {
wp_callFormatting(obj, "Unlink")
return
} else if(iHref=="mailto:") {
wp_callFormatting(obj, "Unlink")
obj.edit_object.focus()
return
} else {
var sel = obj.edit_object.document.selection.createRange()
// create link
sel.execCommand("CreateLink",false,iHref)
// add target inf
if (obj.edit_object.document.selection.type == "Control") {
var sel = obj.edit_object.document.selection.createRange()
if (sel(0).tagName == "IMG") {
this_href = sel(0).parentNode
sel(0).border = 0
}
} else {
this_href = sel.parentElement()
}
while(this_href.tagName!="A"&&this_href.tagName!="HTML") {
this_href = this_href.parentElement
}
if (this_href.tagName == "A") {
if (iTarget != '' || this_href.target != '') {
this_href.target=iTarget
}
if (iTitle != '' || this_href.title != '') {
this_href.title=iTitle
}
}
}
obj.edit_object.focus()
}
// insert image
function wp_open_image_window(obj,srcElement) {
if (srcElement.className == "wpDisabled") {
return
}
obj.edit_object.focus()
var szURL
// detect if an image is selected and if it is populate image dialoge
if (obj.edit_object.document.selection.type == "Control") {
var sel = obj.edit_object.document.selection.createRange()
if (sel(0).tagName == "IMG") {
if ((sel(0).getAttribute('name')) && (sel(0).src.search(wp_directory+"/images/bookmark_symbol.gif") != -1)) {
szURL= wp_directory + obj.imagewindow + "?lang="+obj.instance_lang
} else {
var image = sel(0).getAttribute('src', 2)
if (sel(0).style.height) {
str = sel(0).style.height
var height = str.replace(/px/, '')
} else {
var height = sel(0).getAttribute('height', 2)
}
if (sel(0).style.width) {
str = sel(0).style.width
var width = str.replace(/px/, '')
} else {
var width = sel(0).getAttribute('width', 2)
}
var alt = sel(0).getAttribute('alt')
var align = sel(0).getAttribute('align')
var mtop = sel(0).style.marginTop
var mbottom = sel(0).style.marginBottom
var mleft = sel(0).style.marginLeft
var mright = sel(0).style.marginRight
var thisIHeight = sel(0).getAttribute('height')
var iborder = sel(0).getAttribute('border')
szURL= wp_directory + 'dialog_frame.php' + '?image=' + image +'&width=' + width +'&height=' + height + '&alt=' + alt + '&align=' + align + '&mtop=' + mtop + '&mbottom=' + mbottom + '&mleft=' + mleft + '&mright=' + mright + '&border=' + iborder + "&lang="+obj.instance_lang +"&window="+wp_directory+"imageoptions.php"
}
} else {
return
}
} else {
szURL= wp_directory + 'dialog_frame.php?window=' + wp_directory + obj.imagewindow + "&instance_img_dir="+obj.instance_img_dir+"&lang="+obj.instance_lang
}
imgwin = obj.openDialog(szURL ,'modal',730,466)
}
// create the image html
function wp_create_image_html(obj,iurl, iwidth, iheight, ialign, ialt, iborder, imargin) {
if (iurl == ""){
return
}
obj.edit_object.focus()
if (document.getElementById(obj.name+'_class_menu-text').innerHTML != "Class")
document.getElementById(obj.name+'_class_menu-text').innerHTML = "Class"
var sel = obj.edit_object.document.selection.createRange()
sel.execCommand("InsertImage",false, iurl)
if (obj.edit_object.document.selection.type == "Control") {
var sel = obj.edit_object.document.selection.createRange()
if (sel(0).tagName == "IMG") {
if ((iwidth != '') && (iheight!='') && (iwidth != 0) && (iheight!=0) && (iheight!=null)) {
if (iheight.search("%") != -1) {
sel(0).style.height = iheight
sel(0).height = iheight
} else {
sel(0).setAttribute("height", iheight)
sel(0).style.height = ''
}
if (iwidth.search("%") != -1) {
sel(0).style.width = iwidth
sel(0).width = iwidth
} else {
sel(0).setAttribute("width", iwidth)
sel(0).style.width = ''
}
}
if ((ialign != '') && (ialign!=0) && (ialign!=null)) {
sel(0).align = ialign
}
if ((iborder != '') && (iborder!=null)) {
sel(0).border = iborder
}
sel(0).alt = ialt
sel(0).title = ialt
if ((imargin != '') && (imargin!=null)) {
sel(0).style.margin = imargin
}
//sel(0).src = sel(0).src
}
}
obj.edit_object.focus()
}
// create the horizontal rule html
function wp_create_hr(obj,code) {
if (code == ""){
return
}
var sel = obj.edit_object.document.selection.createRange()
obj.edit_object.focus()
sel.pasteHTML(code)
}
function wp_insert_code(obj,code) {
if ((code != "") && (code != null)) {
obj.edit_object.focus()
if (obj.edit_object.document.selection.type == "Control") {
obj.edit_object.document.execCommand('delete')
}
obj.edit_object.document.selection.createRange().pasteHTML(code)
}
if (obj.border_visible == 1) {
wp_show_borders(obj)
}
obj.edit_object.focus()
}
function wp_open_bookmark_window(obj,srcElement) {
if (srcElement.className == "wpDisabled") {
return
}
var arr = ''
if (obj.edit_object.document.selection.type == "Control") {
var sel = obj.edit_object.document.selection.createRange()
if (sel(0).tagName == "IMG") {
if ((sel(0).getAttribute('name')) && (sel(0).src.search(wp_directory+"/images/bookmark_symbol.gif") != -1)) {
arr= sel(0).name
}
}
}
bookwin = obj.openDialog(wp_directory + "bookmark.php?bookmark="+arr+"&lang="+obj.instance_lang, 'modal', 300, 106)
}
function wp_create_bookmark (obj,name) {
if ((name != '') && (name!= null)) {
wp_insert_code(obj,'<img name="'+name+'" src="' + wp_directory + '/images/bookmark_symbol.gif" contenteditable="false" width="16" height="13" alt="Bookmark: '+name+'" title="Bookmark: '+name+'" border="0">')
}
}
function wp_isInside(obj, tag) {
sel = obj.edit_object.document.selection.createRange()
//if (sel.type == "Control") {
//return false
//}
if (!obj.edit_object.document.queryCommandEnabled("InsertHorizontalRule")) {
return false
}
var thisTag = sel.parentElement()
while(thisTag.tagName!=tag&&thisTag.tagName!="HTML") {
thisTag = thisTag.parentElement
}
if (thisTag.tagName == tag) {
return true
} else {
return false
}
}
////////////////////////////
// Table editing features //
////////////////////////////
// finds the current table, row and cell and puts them in global variables that the other table functions and the table editing window can use.
// requires the current selection
function wp_getTable(obj, sel) {
if (sel == null) {
sel = obj.edit_object.document.selection.createRange()
}
wp_thisCell = sel.parentElement()
while(wp_thisCell.tagName!="TD"&&wp_thisCell.tagName!="HTML") {
wp_thisCell = wp_thisCell.parentElement
}
wp_thisRow = wp_thisCell
while(wp_thisRow.tagName!="TR"&&wp_thisRow.tagName!="HTML") {
wp_thisRow = wp_thisRow.parentElement
}
wp_thisTable = wp_thisRow
while(wp_thisTable.tagName!="TABLE"&&wp_thisTable.tagName!="HTML") {
wp_thisTable = wp_thisTable.parentElement
}
}
// creates the table html for the insert table window
function wp_insertTable(obj,rows,cols,attrs) {
obj.edit_object.focus()
// generate column widths
var tdwidth = 100/cols
tdwidth +="%"
var code = "<table" + attrs + ">rn"
for (var i = 0; i < rows; i++) {
code += "t<tr>rn"
for (var j = 0; j < cols; j++) {
// spacers are autoinserted to ensure table displays as expected. column widths are also set.
code += "tt<td valign="top" width="" + tdwidth + "">"+obj.tdInners+"</td>rn"
}
code += "t</tr>rn"
}
code += "</table>rn"
var sel = obj.edit_object.document.selection.createRange()
sel.pasteHTML(code)
if (obj.border_visible == 1) {
wp_show_borders(obj)
}
obj.edit_object.focus()
}
/////////////////////////
// CSS style functions //
/////////////////////////
// these fucntions are still a little messey!!!!!!
// mouse over button style
function wp_m_over(element, obj) {
if (obj.initfocus == false) {
return
}
var cmd = element.getAttribute("cid")
if (element.className=="wpDisabled") {
return
}
if ((cmd=="edittable") || (cmd=="splitcell")) {
cmd="inserthorizontalrule"
}
if (cmd == "border") {
if (obj.border_visible) {
element.className="wpLatchedOver"
} else {
element.className="wpOver"
}
return
} else if (cmd=="ignore") {
element.className="wpOver"
return
} else if ((cmd=="undo") || (cmd=="redo")) {
element.className="wpOver"
return
} else if (obj.edit_object.document.queryCommandState(cmd)) {
element.className="wpLatchedOver"
return
}
element.className="wpOver"
}
// mouse out button style
function wp_m_out(element, obj) {
if (obj.initfocus == false) {
return
}
var cmd = element.getAttribute("cid")
if (element.className=="wpDisabled") {
return
}
if ((cmd=="edittable") || (cmd=="splitcell")) {
cmd="inserthorizontalrule"
}
if (cmd == "border") {
if (obj.border_visible) {
element.className="wpLatched"
} else {
element.className="wpReady"
}
return
} else if (cmd=="ignore") {
element.className="wpReady"
return
} else if ((cmd=="undo") || (cmd=="redo")) {
element.className="wpReady"
return
} else if (!obj.edit_object.document.queryCommandEnabled(cmd)) {
element.className="wpDisabled"
return
} else if (obj.edit_object.document.queryCommandState(cmd)) {
element.className="wpLatched"
return
}
element.className="wpReady"
}
// mouse down button style
function wp_m_down(element, obj) {
if (obj.initfocus == false) {
obj.edit_object.focus();
obj.initfocus = true;
}
if (element.className == "wpDisabled") {
return
}
element.className="wpDown"
}
// mouse up button style
function wp_m_up(element, obj) {
var style=element.className
if (style=="wpDisabled") {
return
} else {
if (style=="wpLatched") {
return
}
}
element.className="wpOver"
}
///////////////////////
// Set button states //
///////////////////////
// This changes the states of buttons everytime the selection changes, so that buttons that cannot be used based on the current user selection appear disabled.
// this is the crappiest slowest function in zeusedit, it really needs an overhaul!!
function wp_set_button_states(obj) {
obj.initfocus = true
var sel=obj.edit_object.document.selection.createRange()
var inside_link = wp_isInside(obj, 'A')
var inside_table = wp_isInside(obj, 'TD')
if (inside_table) {
var wp_thisCell = sel.parentElement()
while(wp_thisCell.tagName!="TD"&&wp_thisCell.tagName!="HTML") {
wp_thisCell = wp_thisCell.parentElement
}
}
// evalute and set the toolbar button states
for(var i = 0; i < obj.tbarlength; i++) {
var pbtn = obj.tbarimages(i)
if ((pbtn.type=="btn")) {
var cmd = pbtn.getAttribute("cid")
if (!obj.safe) {
pbtn.className="wpDisabled"
} else if ((cmd=="edittable") || (cmd == 'splitcell')) {
// table editing buttons
if (inside_table) {
if (cmd == 'splitcell') {
if ((wp_thisCell.rowSpan >= 2) || (wp_thisCell.colSpan >=2)) {
pbtn.className="wpReady"
} else {
pbtn.className="wpDisabled"
}
} else {
pbtn.className="wpReady"
}
} else {
pbtn.className="wpDisabled"
}
} else if (cmd == "border") {
if (obj.border_visible) {
pbtn.className="wpLatched"
} else {
pbtn.className="wpReady"
}
} else if (cmd=="createlink") {
if ((inside_link) || (sel.text != '')) {
pbtn.className="wpReady"
} else {
pbtn.className="wpDisabled"
}
} else if ((cmd=="undo") || (cmd=="redo")) {
pbtn.className="wpReady"
} else if (obj.edit_object.document.queryCommandState(cmd)) {
pbtn.className="wpLatched"
} else if (!obj.edit_object.document.queryCommandEnabled(cmd)) {
pbtn.className="wpDisabled"
} else {
pbtn.className="wpReady"
}
}
}
var font_face_value = obj.edit_object.document.queryCommandValue('FontName')
var font_size_value = obj.edit_object.document.queryCommandValue('FontSize')
var format_list_value = obj.edit_object.document.queryCommandValue('FormatBlock')
if (obj.edit_object.document.selection.type == "Control") {
var class_menu_value = ''
} else {
var foo = sel.parentElement()
while(!foo.className&&foo.tagName!="HTML") {
foo = foo.parentElement
}
var class_menu_value = foo.className
}
wp_set_list_text ('font-face', font_face_value, 'font', obj)
wp_set_list_text ('font_size', font_size_value, 'size', obj)
wp_set_list_text ('format_list', format_list_value, 'format', obj)
var class_menu_text = document.getElementById(obj.name+'_class_menu-text')
if (class_menu_value) {
if (class_menu_value == "wp_none") {
if (class_menu_text.innerHTML != obj.lng['class'])
class_menu_text.innerHTML = obj.lng['class']
} else if (class_menu_text.innerHTML != class_menu_value) {
class_menu_text.innerHTML = class_menu_value
}
} else {
if (class_menu_text.innerHTML != obj.lng['class'])
class_menu_text.innerHTML = obj.lng['class']
}
}
function wp_set_list_text (list, value, lang, obj) {
var list_text = document.getElementById(obj.name+'_'+list+'-text')
if (value) {
if (list_text.innerHTML != value)
list_text.innerHTML = value
} else {
if (list_text.innerHTML != obj.lng[lang])
list_text.innerHTML = obj.lng[lang]
}
}
?>