ACC SHELL
function dump_props(obj, obj_name) {
var result = "";
for (var i in obj) {
try{result += obj_name + "." + i + " = " + obj[i] + "\n\n\n";
}catch(e){
result += obj_name + "<b>N/A</b>\n\n\n";
}
}
result=result.replace(/([^\n])\n([^\n])/gi,"$1$2");
result=result.replace(/\n\n\n/gi,"<br>");
newTestWindow=window.open("", "_blank", "");
newTestWindow.document.write('<html><head><style type="text/css">*{font-family: verdana, tahoma, sans-serif; font-size: 12px;}</style></head><body>'+
result+
'</body></html>');
newTestWindow.document.close();
}
var isRichText = false;
// Initialise the editor object;
// Set browser vars
var ua = navigator.userAgent.toLowerCase();
var isIE = ((ua.indexOf("msie") != -1) && (ua.indexOf("opera") == -1) && (ua.indexOf("webtv") == -1));
var isGecko = (ua.indexOf("gecko") != -1);
var isSafari = (ua.indexOf("safari") != -1);
var isKonqueror = (ua.indexOf("konqueror") != -1);
//check to see if designMode mode is available
//Safari/Konqueror think they are designMode capable even though they are not
if (document.getElementById && document.designMode && !isSafari && !isKonqueror)
isRichText = true;
var ModeVisible='textarea';
function SalyAreaInit(){
var SalyDocument = frames['SalyEditor'].document;
var iframe_html = '<html><head><style type="text/css">*{font-family: verdana, tahoma, sans-serif; font-size: 12px;}</style></head><body>'+
"</body></html>";
SalyDocument.open();
SalyDocument.write(iframe_html);
SalyDocument.close();
SalyDocument.designMode = "On";
try{
SalyDocument.addEventListener("keypress", geckoKeyPress, true);
}catch (e) {}
new_height = document.body.offsetHeight - document.getElementById('menu').offsetHeight;
document.getElementById('AddImg').style.top=
document.getElementById('AddLink').style.top=
0+document.getElementById('menu').offsetHeight+(isIE?0:-1)+'px';
document.getElementById('SalyArea').style.height=new_height+'px';
document.getElementById('SalyEditor').style.height=new_height+'px';
setTimeout("SwitchMode();", 100);
}
function Tidy(){
if(ModeVisible=='iframe'){
if (document.all)
var text = frames['SalyEditor'].document.body.innerHTML;
else
var text = document.getElementById('SalyEditor').contentWindow.document.body.innerHTML;
}else{
text=document.getElementById('SalyArea').value;
}
text=text.replace(/<\/P>/gi,"<BR>");
text=text.replace(/<H1>(.*?)<\/H1>/gim,"<B>$1</B></BR>");
text=text.replace(/<\/EM>/gim,'</I>');
text=text.replace(/<EM>/gim,'<I>');
text=text.replace(/<\/STRONG>/gim,'</B>');
text=text.replace(/<STRONG>/gim,'<B>');
text=text.replace(/<span\sstyle="([^"]*?)font-weight:\sbold([^"]*?)">(.*?)<\/span>/gim,'<B><span style="$1$2">$3</span></B>');
text=text.replace(/<span\sstyle="([^"]*?)text-decoration:\sunderline([^"]*?)">(.*?)<\/span>/gim,'<U><span style="$1$2">$3</span></U>');
text=text.replace(/<span\sstyle="([^"]*?)font-style:\sitalic([^"]*?)">(.*?)<\/span>/gim,'<I><span style="$1$2">$3</span></I>');
text=text.replace(/<\/?[^(\/|I|U|B|BR|IMG|A|UL|LI)][^>]*?>/gim,'');
if(ModeVisible=='iframe'){
if (document.all)
frames['SalyEditor'].document.body.innerHTML = text;
else
document.getElementById('SalyEditor').contentWindow.document.body.innerHTML = text;
}else{
document.getElementById('SalyArea').value=text;
}
}
function SwitchMode(){
if(ModeVisible=='iframe'){
if (document.all)
text = frames['SalyEditor'].document.body.innerHTML;
else
text = document.getElementById('SalyEditor').contentWindow.document.body.innerHTML;
text = text.replace(/<BR>/gi,"<BR>\n");
text = text.replace(/\n{1,}/gi,"\n");
document.getElementById('SalyArea').value = text;
document.getElementById('SalyArea').style.display='block';
document.getElementById('SalyEditor').style.display='none';
ModeVisible='textarea';
}else{
text = document.getElementById('SalyArea').value;
text = text.replace(/\n+/,'');
if (document.all)
frames['SalyEditor'].document.body.innerHTML = document.getElementById('SalyArea').value;
else
document.getElementById('SalyEditor').contentWindow.document.body.innerHTML = document.getElementById('SalyArea').value;
document.getElementById('SalyArea').style.display='none';
document.getElementById('SalyEditor').style.display='block';
ModeVisible='iframe';
}
}
function SalyCommand(command, option){
//function to perform command
var EdFrame = document.getElementById('SalyEditor').contentWindow;
try{
EdFrame.focus();
EdFrame.document.execCommand(command, false, option);
EdFrame.focus();
}catch (e){}
}
function showImgForm(){
document.getElementById('AddImg').style.display="block";
document.getElementById('AddLink').style.display="none";
if (document.all) {/* IE */
var selection = frames['SalyEditor'].document.selection;
if (selection != null) rng = selection.createRange();
document.getElementById('img_alt').value =''
document.getElementById('img_title').value = ''
document.getElementById('img_src').value = ''
} else {/* FF */
selection = document.getElementById('SalyEditor').contentWindow.document.defaultView.getSelection();
rng = selection.getRangeAt(selection.rangeCount - 1).cloneRange();
img_elements = document.getElementById('SalyEditor').contentWindow.document.getElementsByTagName("img")
selected_img_element=null;
for(i=0;i<img_elements.length;i++) {
if(selection.containsNode(img_elements.item(i),true)){
selected_img_element=img_elements.item(i);
break;
}
}
document.getElementById('img_alt').value = (selected_img_element==null)?'':selected_img_element.alt;
document.getElementById('img_title').value = (selected_img_element==null)?'':selected_img_element.title;
document.getElementById('img_src').value= (selected_img_element==null)?'':selected_img_element.src;
}
}
function Imging(){
_img_alt=document.getElementById('img_alt').value;
_img_title=document.getElementById('img_title').value;
_img_src=document.getElementById('img_src').value;
if (document.all) {/* IE */
rng.pasteHTML('<img src="'+_img_src+'" title="'+_img_title+'" alt="'+_img_alt+'">');
rng.collapse(false);
rng.select();
} else {/* FF */
newImg = document.createElement("img");
newImg.setAttribute('alt', _img_alt);
newImg.setAttribute('title', _img_title);
newImg.setAttribute('src', _img_src);
rng.deleteContents();
rng.insertNode(newImg);
}
}
function showLinkingForm(){
document.getElementById('AddLink').style.display="block";
document.getElementById('AddImg').style.display="none";
if (document.all) {/* IE */
var selection = frames['SalyEditor'].document.selection;
if (selection != null) rng = selection.createRange();
try{
document.getElementById('link_href').value =
rng.htmlText.match(/.*<a[^>]*?href="([^\">]*?)"[^>]*.*>/i)?
rng.htmlText.replace(/.*<a[^>]*?href="([^\">]*?)"[^>]*.*>/i,"$1"):'';
document.getElementById('link_title').value =
rng.htmlText.match(/.*<a[^>]*?title="([^\">]*?)"[^>]*.*>/i)?
rng.htmlText.replace(/.*<a[^>]*?title="([^\">]*?)"[^>]*.*>/i,"$1"):'';
document.getElementById('link_target').value=
rng.htmlText.match(/.*<a[^>]*?target=([^>]*?)>.*/i)?
'_blank':'_self';
document.getElementById('link_text').value = rng.text;
//dump_props(rng,"rng");
}catch(e){}
} else {/* FF */
selection = document.getElementById('SalyEditor').contentWindow.document.defaultView.getSelection();
rng = selection.getRangeAt(selection.rangeCount - 1).cloneRange();
a_elements = document.getElementById('SalyEditor').contentWindow.document.getElementsByTagName("a")
selected_a_element=null;
for(i=0;i<a_elements.length;i++) {
if(selection.containsNode(a_elements.item(i),true)){
selected_a_element=a_elements.item(i);
break;
}
}
document.getElementById('link_href').value = (selected_a_element==null)?'':selected_a_element.href;
document.getElementById('link_title').value = (selected_a_element==null)?'':selected_a_element.title;
document.getElementById('link_target').value= (selected_a_element==null)?'_self':selected_a_element.href;
document.getElementById('link_text').value = rng.toString().replace(/\n+/g,'');
//dump_props(document.getElementById('link_target'),'link_target');
}
}
function Linking(){
_link_href=document.getElementById('link_href').value;
_link_title=document.getElementById('link_title').value;
_link_target=document.getElementById('link_target').value;
_link_text=document.getElementById('link_text').value
if (document.all) {/* IE */
rng.pasteHTML('<a href="'+_link_href+'" title="'+_link_title+'" target="'+_link_target+'">'+_link_text+'</a>');
rng.collapse(false);
rng.select();
} else {/* FF */
newLink = document.createElement("a");
newLink.textContent = _link_text;
newLink.setAttribute('href', _link_href);
newLink.setAttribute('title', _link_title);
newLink.setAttribute('target', _link_target);
rng.deleteContents();
rng.insertNode(newLink);
}
}
function geckoKeyPress(evt) {
//function to add bold, italic, and underline shortcut commands to gecko SalyEditors
if (evt.ctrlKey){
var key = String.fromCharCode(evt.charCode).toLowerCase();
var cmd = '';
switch (key){
case 'b':cmd = "bold";break;
case 'i':cmd = "italic";break;
case 'u':cmd = "underline";break;
}
if (cmd){
SalyCommand(cmd, null);
// stop the event bubble
evt.preventDefault();
evt.stopPropagation();
}
}
}
ACC SHELL 2018