CodePress = function(obj) { var self = document.createElement('iframe'); self.textarea = obj; self.textarea.disabled = true; self.textarea.style.overflow = 'hidden'; self.style.height = self.textarea.clientHeight +'px'; self.style.width = self.textarea.clientWidth +'px'; self.textarea.style.overflow = 'auto'; self.style.border = '1px solid gray'; self.frameBorder = 0; self.style.visibility = 'hidden'; self.style.position = 'absolute'; self.options = self.textarea.className; self.initialize = function() { self.editor = self.contentWindow.CodePress; self.editor.body = self.contentWindow.document.getElementsByTagName('body')[0]; self.editor.setCode(self.textarea.value); self.setOptions(); self.editor.syntaxHighlight('init'); self.textarea.style.display = 'none'; self.style.position = 'static'; self.style.visibility = 'visible'; self.style.display = 'inline';}
self.edit = function(obj,language) { if(obj) self.textarea.value = document.getElementById(obj) ? document.getElementById(obj).value : obj; if(!self.textarea.disabled) return; self.language = language ? language : self.getLanguage(); self.src = CodePress.path+'codepress.html?language='+self.language+'&ts='+(new Date).getTime(); if(self.attachEvent) self.attachEvent('onload',self.initialize); else self.addEventListener('load',self.initialize,false);}
self.getLanguage = function() { for (language in CodePress.languages)
if(self.options.match('\\b'+language+'\\b'))
return CodePress.languages[language] ? language : 'generic';}
self.setOptions = function() { if(self.options.match('autocomplete-off')) self.toggleAutoComplete(); if(self.options.match('readonly-on')) self.toggleReadOnly(); if(self.options.match('linenumbers-off')) self.toggleLineNumbers();}
self.getCode = function() { return self.textarea.disabled ? self.editor.getCode() : self.textarea.value;}
self.setCode = function(code) { self.textarea.disabled ? self.editor.setCode(code) : self.textarea.value = code;}
self.toggleAutoComplete = function() { self.editor.autocomplete = (self.editor.autocomplete) ? false : true;}
self.toggleReadOnly = function() { self.textarea.readOnly = (self.textarea.readOnly) ? false : true; if(self.style.display != 'none')
self.editor.readOnly(self.textarea.readOnly ? true : false);}
self.toggleLineNumbers = function() { var cn = self.editor.body.className; self.editor.body.className = (cn==''||cn=='show-line-numbers') ? 'hide-line-numbers' : 'show-line-numbers';}
self.toggleEditor = function() { if(self.textarea.disabled) { self.textarea.value = self.getCode(); self.textarea.disabled = false; self.style.display = 'none'; self.textarea.style.display = 'inline';}
else { self.textarea.disabled = true; self.setCode(self.textarea.value); self.editor.syntaxHighlight('init'); self.style.display = 'inline'; self.textarea.style.display = 'none';}
}
self.edit(); return self;}
CodePress.languages = { sqr : 'sqr'
}
CodePress.run = function() { s = document.getElementsByTagName('script'); for(var i=0,n=s.length;i<n;i++) { if(s[i].src.match('codepress.js')) { CodePress.path = s[i].src.replace('codepress.js','');}
}
t = document.getElementsByTagName('textarea'); for(var i=0,n=t.length;i<n;i++) { if(t[i].className.match('codepress')) { id = t[i].id; t[i].id = id+'_cp'; eval(id+' = new CodePress(t[i])'); t[i].parentNode.insertBefore(eval(id), t[i]);}
}
}
if(window.attachEvent) window.attachEvent('onload',CodePress.run); else window.addEventListener('DOMContentLoaded',CodePress.run,false); 