/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */ /* This file is part of version 0.96beta2 released Fri, 20 Mar 2009 11:01:14 +0100 */ InternetExplorer._pluginInfo={name:"Internet Explorer",origin:"Xinha Core",version:"$LastChangedRevision: 1173 $".replace(/^[^:]*:\s*(.*)\s*\$$/,"$1"),developer:"The Xinha Core Developer Team",developer_url:"$HeadURL: http://svn.xinha.org/trunk/modules/InternetExplorer/InternetExplorer.js $".replace(/^[^:]*:\s*(.*)\s*\$$/,"$1"),sponsor:"",sponsor_url:"",license:"htmlArea"};function InternetExplorer(a){this.editor=a;a.InternetExplorer=this}InternetExplorer.prototype.onKeyPress=function(a){if(this.editor.isShortCut(a)){switch(this.editor.getKey(a).toLowerCase()){case"n":this.editor.execCommand("formatblock",false,"

");Xinha._stopEvent(a);return true;break;case"1":case"2":case"3":case"4":case"5":case"6":this.editor.execCommand("formatblock",false,"");Xinha._stopEvent(a);return true;break}}switch(a.keyCode){case 8:case 46:if(this.handleBackspace()){Xinha._stopEvent(a);return true}break}return false};InternetExplorer.prototype.handleBackspace=function(){var e=this.editor;var f=e.getSelection();if(f.type=="Control"){var g=e.activeElement(f);Xinha.removeFromParent(g);return true}var d=e.createRange(f);var c=d.duplicate();c.moveStart("character",-1);var b=c.parentElement();if(b!=d.parentElement()&&(/^a$/i.test(b.tagName))){c.collapse(true);c.moveEnd("character",1);c.pasteHTML("");c.select();return true}};InternetExplorer.prototype.inwardHtml=function(a){a=a.replace(/<(\/?)del(\s|>|\/)/ig,"<$1strike$2");a=a.replace(/(]+id="__InsertSpan_Workaround_[a-z]+".*?>([\s\S]*?)<\/span>/i,"$1");return a};InternetExplorer.prototype.outwardHtml=function(a){a=a.replace(/ (\s*)(]+id="__InsertSpan_Workaround_[a-z]+".*?>([\s\S]*?)<\/span>/i,"$1");return a};InternetExplorer.prototype.onExecCommand=function(f,d,c){switch(f){case"saveas":var o=null;var l=this.editor;var h=document.createElement("iframe");h.src="about:blank";h.style.display="none";document.body.appendChild(h);try{if(h.contentDocument){o=h.contentDocument}else{o=h.contentWindow.document}}catch(n){}o.open("text/html","replace");var k="";if(l.config.browserQuirksMode===false){var e=''}else{if(l.config.browserQuirksMode===true){var e=""}else{var e=Xinha.getDoctype(document)}}if(!l.config.fullPage){k+=e+"\n";k+="\n";k+="\n";k+='\n';if(typeof l.config.baseHref!="undefined"&&l.config.baseHref!==null){k+='\n'}if(typeof l.config.pageStyleSheets!=="undefined"){for(var j=0;j0){k+=''}}}if(l.config.pageStyle){k+='"}k+="\n";k+="\n";k+=l.getEditorContent();k+="\n";k+=""}else{k=l.getEditorContent();if(k.match(Xinha.RE_doctype)){l.setDoctype(RegExp.$1)}}o.write(k);o.close();o.execCommand(f,d,c);document.body.removeChild(h);return true;break;case"removeformat":var l=this.editor;var b=l.getSelection();var p=l.saveSelection(b);var j,a,g;function m(q){if(q.nodeType!=1){return}q.removeAttribute("style");for(var i=0;i');var h=g.getElementById(j);k.moveToElementText(h);k.select();break;case"JustificationHack":var a=String.fromCharCode(1);k.pasteHTML(a);k.findText(a,-1);k.select();k.execCommand("JustifyNone");k.pasteHTML("");break;case"VisibleCue":default:var a=String.fromCharCode(1);k.pasteHTML(a);k.findText(a,-1);k.select()}}};Xinha.prototype.selectNodeContents=function(d,e){this.focusEditor();this.forceRedraw();var a;var f=typeof e=="undefined"?true:false;if(f&&d.tagName&&d.tagName.toLowerCase().match(/table|img|input|select|textarea/)){a=this._doc.body.createControlRange();a.add(d)}else{a=this._doc.body.createTextRange();if(3==d.nodeType){if(d.parentNode){a.moveToElementText(d.parentNode)}else{a.moveToElementText(this._doc.body)}var g=this._doc.body.createTextRange();var b=0;var c=d.previousSibling;for(;c&&(1!=c.nodeType);c=c.previousSibling){if(3==c.nodeType){b+=c.nodeValue.length-c.nodeValue.split("\r").length-1}}if(c&&(1==c.nodeType)){g.moveToElementText(c);a.setEndPoint("StartToEnd",g)}if(b){a.moveStart("character",b)}b=0;c=d.nextSibling;for(;c&&(1!=c.nodeType);c=c.nextSibling){if(3==c.nodeType){b+=c.nodeValue.length-c.nodeValue.split("\r").length-1;if(!c.nextSibling){b+=1}}}if(c&&(1==c.nodeType)){g.moveToElementText(c);a.setEndPoint("EndToStart",g)}if(b){a.moveEnd("character",-b)}if(!d.nextSibling){a.moveEnd("character",-1)}}else{a.moveToElementText(d)}}if(typeof e!="undefined"){a.collapse(e);if(!e){a.moveStart("character",-1);a.moveEnd("character",-1)}}a.select()};Xinha.prototype.insertHTML=function(b){this.focusEditor();var c=this.getSelection();var a=this.createRange(c);a.pasteHTML(b)};Xinha.prototype.getSelectedHTML=function(){var b=this.getSelection();if(this.selectionEmpty(b)){return""}var a=this.createRange(b);if(a.htmlText){return a.htmlText}else{if(a.length>=1){return a.item(0).outerHTML}}return""};Xinha.prototype.getSelection=function(){return this._doc.selection};Xinha.prototype.createRange=function(a){if(!a){a=this.getSelection()}return a.createRange()};Xinha.prototype.isKeyEvent=function(a){return a.type=="keydown"};Xinha.prototype.getKey=function(a){return String.fromCharCode(a.keyCode)};Xinha.getOuterHTML=function(a){return a.outerHTML};Xinha.cc=String.fromCharCode(8201);Xinha.prototype.setCC=function(h){var d=Xinha.cc;if(h=="textarea"){var f=this._textArea;var j=document.selection.createRange();j.collapse();j.text=d;var g=f.value.indexOf(d);var k=f.value.substring(0,g);var b=f.value.substring(g+d.length,f.value.length);if(b.match(/^[^<]*>/)){var i=b.indexOf(">")+1;f.value=k+b.substring(0,i)+d+b.substring(i,b.length)}else{f.value=k+d+b}f.value=f.value.replace(new RegExp("(&[^"+d+"]*?)("+d+")([^"+d+"]*?;)"),"$1$3$2");f.value=f.value.replace(new RegExp("(]*>[^"+d+"]*?)("+d+")([^"+d+"]*?<\/script>)"),"$1$3$2");f.value=f.value.replace(new RegExp("^([^"+d+"]*)("+d+")([^"+d+"]*]*>)(.*?)"),"$1$3$2$4")}else{var c=this.getSelection();var a=c.createRange();if(c.type=="Control"){var e=a.item(0);e.outerHTML+=d}else{a.collapse();a.text=d}}};Xinha.prototype.findCC=function(b){var a=(b=="textarea")?this._textArea:this._doc.body;range=a.createTextRange();if(range.findText(escape(Xinha.cc))){range.select();range.text="";range.select()}if(range.findText(Xinha.cc)){range.select();range.text="";range.select()}if(b=="textarea"){this._textArea.focus()}};Xinha.getDoctype=function(a){return(a.compatMode=="CSS1Compat"&&Xinha.ie_version<8)?'':""};