PageRenderTime 33ms CodeModel.GetById 15ms RepoModel.GetById 1ms app.codeStats 0ms

/crunchy/server_root/edit_area/edit_area_crunchy.js

http://crunchy.googlecode.com/
JavaScript | 747 lines | 734 code | 13 blank | 0 comment | 123 complexity | 6791d63ed41d88c6f8bd1d05700b6411 MD5 | raw file
Possible License(s): BSD-3-Clause

Large files files are truncated, but you can click here to view the full file

  1. function EAL(){var t=this;
  2. t.version="0.8.1.1";
  3. date=new Date();
  4. t.start_time=date.getTime();
  5. t.win="loading";
  6. t.error=false;
  7. t.baseURL="";
  8. t.template="";
  9. t.lang={};
  10. t.load_syntax={};
  11. t.syntax={};
  12. t.loadedFiles=[];
  13. t.waiting_loading={};
  14. t.scripts_to_load=[];
  15. t.sub_scripts_to_load=[];
  16. t.resize=[];
  17. t.hidden={};
  18. t.default_settings={debug:false,smooth_selection:true,font_size:"10",font_family:"monospace",start_highlight:false,toolbar:"search,go_to_line,fullscreen,|,undo,redo,|,select_font,|,change_smooth_selection,highlight,reset_highlight,word_wrap,|,help",begin_toolbar:"",end_toolbar:"",is_multi_files:false,allow_resize:"both",show_line_colors:false,min_width:400,min_height:125,replace_tab_by_spaces:false,allow_toggle:true,language:"en",syntax:"",syntax_selection_allow:"basic,brainfuck,c,coldfusion,cpp,css,html,java,js,pas,perl,php,python,ruby,robotstxt,sql,tsql,vb,xml",display:"onload",max_undo:30,browsers:"known",plugins:"",gecko_spellcheck:false,fullscreen:false,is_editable:true,cursor_position:"begin",word_wrap:false,autocompletion:false,load_callback:"",save_callback:"",change_callback:"",submit_callback:"",EA_init_callback:"",EA_delete_callback:"",EA_load_callback:"",EA_unload_callback:"",EA_toggle_on_callback:"",EA_toggle_off_callback:"",EA_file_switch_on_callback:"",EA_file_switch_off_callback:"",EA_file_close_callback:""};
  19. t.advanced_buttons=[ ['new_document','newdocument.gif','new_document',false],['search','search.gif','show_search',false],['go_to_line','go_to_line.gif','go_to_line',false],['undo','undo.gif','undo',true],['redo','redo.gif','redo',true],['change_smooth_selection','smooth_selection.gif','change_smooth_selection_mode',true],['reset_highlight','reset_highlight.gif','resync_highlight',true],['highlight','highlight.gif','change_highlight',true],['help','help.gif','show_help',false],['save','save.gif','save',false],['load','load.gif','load',false],['fullscreen','fullscreen.gif','toggle_full_screen',false],['word_wrap','word_wrap.gif','toggle_word_wrap',true],['autocompletion','autocompletion.gif','toggle_autocompletion',true] ];
  20. t.set_browser_infos(t);
  21. if(t.isIE>=6||t.isGecko||(t.isWebKit&&!t.isSafari<3)||t.isOpera>=9||t.isCamino)t.isValidBrowser=true;
  22. else t.isValidBrowser=false;
  23. t.set_base_url();
  24. for(var i=0;
  25. i<t.scripts_to_load.length;
  26. i++){setTimeout("eAL.load_script('"+t.baseURL+t.scripts_to_load[i]+".js');",1);
  27. t.waiting_loading[t.scripts_to_load[i]+".js"]=false;
  28. }t.add_event(window,"load",EAL.prototype.window_loaded);
  29. };
  30. EAL.prototype={has_error:function(){this.error=true;
  31. for(var i in EAL.prototype){EAL.prototype[i]=function(){};
  32. }},set_browser_infos:function(o){ua=navigator.userAgent;
  33. o.isWebKit=/WebKit/.test(ua);
  34. o.isGecko=!o.isWebKit&&/Gecko/.test(ua);
  35. o.isMac=/Mac/.test(ua);
  36. o.isIE=(navigator.appName=="Microsoft Internet Explorer");
  37. if(o.isIE){o.isIE=ua.replace(/^.*?MSIE\s+([0-9\.]+).*$/,"$1");
  38. if(o.isIE<6)o.has_error();
  39. }if(o.isOpera=(ua.indexOf('Opera')!=-1)){o.isOpera=ua.replace(/^.*?Opera.*?([0-9\.]+).*$/i,"$1");
  40. if(o.isOpera<9)o.has_error();
  41. o.isIE=false;
  42. }if(o.isFirefox=(ua.indexOf('Firefox')!=-1))o.isFirefox=ua.replace(/^.*?Firefox.*?([0-9\.]+).*$/i,"$1");
  43. if(ua.indexOf('Iceweasel')!=-1)o.isFirefox=ua.replace(/^.*?Iceweasel.*?([0-9\.]+).*$/i,"$1");
  44. if(ua.indexOf('GranParadiso')!=-1)o.isFirefox=ua.replace(/^.*?GranParadiso.*?([0-9\.]+).*$/i,"$1");
  45. if(ua.indexOf('BonEcho')!=-1)o.isFirefox=ua.replace(/^.*?BonEcho.*?([0-9\.]+).*$/i,"$1");
  46. if(ua.indexOf('SeaMonkey')!=-1)o.isFirefox=(ua.replace(/^.*?SeaMonkey.*?([0-9\.]+).*$/i,"$1"))+1;
  47. if(o.isCamino=(ua.indexOf('Camino')!=-1))o.isCamino=ua.replace(/^.*?Camino.*?([0-9\.]+).*$/i,"$1");
  48. if(o.isSafari=(ua.indexOf('Safari')!=-1))o.isSafari=ua.replace(/^.*?Version\/([0-9]+\.[0-9]+).*$/i,"$1");
  49. if(o.isChrome=(ua.indexOf('Chrome')!=-1)){o.isChrome=ua.replace(/^.*?Chrome.*?([0-9\.]+).*$/i,"$1");
  50. o.isSafari=false;
  51. }},window_loaded:function(){eAL.win="loaded";
  52. if(document.forms){for(var i=0;
  53. i<document.forms.length;
  54. i++){var form=document.forms[i];
  55. form.edit_area_replaced_submit=null;
  56. try{form.edit_area_replaced_submit=form.onsubmit;
  57. form.onsubmit="";
  58. }catch(e){}eAL.add_event(form,"submit",EAL.prototype.submit);
  59. eAL.add_event(form,"reset",EAL.prototype.reset);
  60. }}eAL.add_event(window,"unload",function(){for(var i in eAs){eAL.delete_instance(i);
  61. }});
  62. },init_ie_textarea:function(id){var a=document.getElementById(id);
  63. try{if(a&&typeof(a.focused)=="undefined"){a.focus();
  64. a.focused=true;
  65. a.selectionStart=a.selectionEnd=0;
  66. get_IE_selection(a);
  67. eAL.add_event(a,"focus",IE_textarea_focus);
  68. eAL.add_event(a,"blur",IE_textarea_blur);
  69. }}catch(ex){}},init:function(settings){var t=this,s=settings,i;
  70. if(!s["id"])t.has_error();
  71. if(t.error)return;
  72. if(eAs[s["id"]])t.delete_instance(s["id"]);
  73. for(i in t.default_settings){if(typeof(s[i])=="undefined")s[i]=t.default_settings[i];
  74. }if(s["browsers"]=="known"&&t.isValidBrowser==false){return;
  75. }if(s["begin_toolbar"].length>0)s["toolbar"]=s["begin_toolbar"]+","+s["toolbar"];
  76. if(s["end_toolbar"].length>0)s["toolbar"]=s["toolbar"]+","+s["end_toolbar"];
  77. s["tab_toolbar"]=s["toolbar"].replace(/ /g,"").split(",");
  78. s["plugins"]=s["plugins"].replace(/ /g,"").split(",");
  79. for(i=0;
  80. i<s["plugins"].length;
  81. i++){if(s["plugins"][i].length==0)s["plugins"].splice(i,1);
  82. }t.get_template();
  83. t.load_script(t.baseURL+"langs/"+s["language"]+".js");
  84. if(s["syntax"].length>0){s["syntax"]=s["syntax"].toLowerCase();
  85. t.load_script(t.baseURL+"reg_syntax/"+s["syntax"]+".js");
  86. }eAs[s["id"]]={"settings":s};
  87. eAs[s["id"]]["displayed"]=false;
  88. eAs[s["id"]]["hidden"]=false;
  89. t.start(s["id"]);
  90. },delete_instance:function(id){var d=document,fs=window.frames,span,iframe;
  91. eAL.execCommand(id,"EA_delete");
  92. if(fs["frame_"+id]&&fs["frame_"+id].editArea){if(eAs[id]["displayed"])eAL.toggle(id,"off");
  93. fs["frame_"+id].editArea.execCommand("EA_unload");
  94. }span=d.getElementById("EditAreaArroundInfos_"+id);
  95. if(span)span.parentNode.removeChild(span);
  96. iframe=d.getElementById("frame_"+id);
  97. if(iframe){iframe.parentNode.removeChild(iframe);
  98. try{delete fs["frame_"+id];
  99. }catch(e){}}delete eAs[id];
  100. },start:function(id){var t=this,d=document,f,span,father,next,html='',html_toolbar_content='',template,content,i;
  101. if(t.win!="loaded"){setTimeout("eAL.start('"+id+"');",50);
  102. return;
  103. }for(i in t.waiting_loading){if(t.waiting_loading[i]!="loaded"&&typeof(t.waiting_loading[i])!="function"){setTimeout("eAL.start('"+id+"');",50);
  104. return;
  105. }}if(!t.lang[eAs[id]["settings"]["language"]]||(eAs[id]["settings"]["syntax"].length>0&&!t.load_syntax[eAs[id]["settings"]["syntax"]])){setTimeout("eAL.start('"+id+"');",50);
  106. return;
  107. }if(eAs[id]["settings"]["syntax"].length>0)t.init_syntax_regexp();
  108. if(!d.getElementById("EditAreaArroundInfos_"+id)&&(eAs[id]["settings"]["debug"]||eAs[id]["settings"]["allow_toggle"])){span=d.createElement("span");
  109. span.id="EditAreaArroundInfos_"+id;
  110. if(eAs[id]["settings"]["allow_toggle"]){checked=(eAs[id]["settings"]["display"]=="onload")?"checked='checked'":"";
  111. html+="<div id='edit_area_toggle_"+i+"'>";
  112. html+="<input id='edit_area_toggle_checkbox_"+id+"' class='toggle_"+id+"' type='checkbox' onclick='eAL.toggle(\""+id+"\");' accesskey='e' "+checked+" />";
  113. html+="<label for='edit_area_toggle_checkbox_"+id+"'>{$toggle}</label></div>";
  114. }if(eAs[id]["settings"]["debug"])html+="<textarea id='edit_area_debug_"+id+"' spellcheck='off' style='z-index:20;width:100%;height:120px;overflow:auto;border:solid black 1px;'></textarea><br />";
  115. html=t.translate(html,eAs[id]["settings"]["language"]);
  116. span.innerHTML=html;
  117. father=d.getElementById(id).parentNode;
  118. next=d.getElementById(id).nextSibling;
  119. if(next==null)father.appendChild(span);
  120. else father.insertBefore(span,next);
  121. }if(!eAs[id]["initialized"]){t.execCommand(id,"EA_init");
  122. if(eAs[id]["settings"]["display"]=="later"){eAs[id]["initialized"]=true;
  123. return;
  124. }}if(t.isIE){t.init_ie_textarea(id);
  125. }area=eAs[id];
  126. for(i=0;
  127. i<area["settings"]["tab_toolbar"].length;
  128. i++){html_toolbar_content+=t.get_control_html(area["settings"]["tab_toolbar"][i],area["settings"]["language"]);
  129. }html_toolbar_content=t.translate(html_toolbar_content,area["settings"]["language"],"template");
  130. if(!t.iframe_script){t.iframe_script="";
  131. for(i=0;
  132. i<t.sub_scripts_to_load.length;
  133. i++)t.iframe_script+='<script language="javascript" type="text/javascript" src="'+t.baseURL+t.sub_scripts_to_load[i]+'.js"></script>';
  134. }for(i=0;
  135. i<area["settings"]["plugins"].length;
  136. i++){if(!t.all_plugins_loaded)t.iframe_script+='<script language="javascript" type="text/javascript" src="'+t.baseURL+'plugins/'+area["settings"]["plugins"][i]+'/'+area["settings"]["plugins"][i]+'.js"></script>';
  137. t.iframe_script+='<script language="javascript" type="text/javascript" src="'+t.baseURL+'plugins/'+area["settings"]["plugins"][i]+'/langs/'+area["settings"]["language"]+'.js"></script>';
  138. }if(!t.iframe_css){t.iframe_css="<link href='"+t.baseURL+"edit_area.css' rel='stylesheet' type='text/css' />";
  139. }template=t.template.replace(/\[__BASEURL__\]/g,t.baseURL);
  140. template=template.replace("[__TOOLBAR__]",html_toolbar_content);
  141. template=t.translate(template,area["settings"]["language"],"template");
  142. template=template.replace("[__CSSRULES__]",t.iframe_css);
  143. template=template.replace("[__JSCODE__]",t.iframe_script);
  144. template=template.replace("[__EA_VERSION__]",t.version);
  145. area.textarea=d.getElementById(area["settings"]["id"]);
  146. eAs[area["settings"]["id"]]["textarea"]=area.textarea;
  147. if(typeof(window.frames["frame_"+area["settings"]["id"]])!='undefined')delete window.frames["frame_"+area["settings"]["id"]];
  148. father=area.textarea.parentNode;
  149. content=d.createElement("iframe");
  150. content.name="frame_"+area["settings"]["id"];
  151. content.id="frame_"+area["settings"]["id"];
  152. content.style.borderWidth="0px";
  153. setAttribute(content,"frameBorder","0");
  154. content.style.overflow="hidden";
  155. content.style.display="none";
  156. next=area.textarea.nextSibling;
  157. if(next==null)father.appendChild(content);
  158. else father.insertBefore(content,next);
  159. f=window.frames["frame_"+area["settings"]["id"]];
  160. f.document.open();
  161. f.eAs=eAs;
  162. f.area_id=area["settings"]["id"];
  163. f.document.area_id=area["settings"]["id"];
  164. f.document.write(template);
  165. f.document.close();
  166. },toggle:function(id,toggle_to){if(!toggle_to)toggle_to=(eAs[id]["displayed"]==true)?"off":"on";
  167. if(eAs[id]["displayed"]==true&&toggle_to=="off"){this.toggle_off(id);
  168. }
  169. else if(eAs[id]["displayed"]==false&&toggle_to=="on"){this.toggle_on(id);
  170. }return false;
  171. },toggle_off:function(id){var fs=window.frames,f,t,parNod,nxtSib,selStart,selEnd,scrollTop,scrollLeft;
  172. if(fs["frame_"+id]){f=fs["frame_"+id];
  173. t=eAs[id]["textarea"];
  174. if(f.editArea.fullscreen['isFull'])f.editArea.toggle_full_screen(false);
  175. eAs[id]["displayed"]=false;
  176. t.wrap="off";
  177. setAttribute(t,"wrap","off");
  178. parNod=t.parentNode;
  179. nxtSib=t.nextSibling;
  180. parNod.removeChild(t);
  181. parNod.insertBefore(t,nxtSib);
  182. t.value=f.editArea.textarea.value;
  183. selStart=f.editArea.last_selection["selectionStart"];
  184. selEnd=f.editArea.last_selection["selectionEnd"];
  185. scrollTop=f.document.getElementById("result").scrollTop;
  186. scrollLeft=f.document.getElementById("result").scrollLeft;
  187. document.getElementById("frame_"+id).style.display='none';
  188. t.style.display="inline";
  189. try{t.focus();
  190. }catch(e){};
  191. if(this.isIE){t.selectionStart=selStart;
  192. t.selectionEnd=selEnd;
  193. t.focused=true;
  194. set_IE_selection(t);
  195. }
  196. else{if(this.isOpera&&this.isOpera < 9.6){t.setSelectionRange(0,0);
  197. }try{t.setSelectionRange(selStart,selEnd);
  198. }catch(e){};
  199. }t.scrollTop=scrollTop;
  200. t.scrollLeft=scrollLeft;
  201. f.editArea.execCommand("toggle_off");
  202. }},toggle_on:function(id){var fs=window.frames,f,t,selStart=0,selEnd=0,scrollTop=0,scrollLeft=0,curPos,elem;
  203. if(fs["frame_"+id]){f=fs["frame_"+id];
  204. t=eAs[id]["textarea"];
  205. area=f.editArea;
  206. area.textarea.value=t.value;
  207. curPos=eAs[id]["settings"]["cursor_position"];
  208. if(t.use_last==true){selStart=t.last_selectionStart;
  209. selEnd=t.last_selectionEnd;
  210. scrollTop=t.last_scrollTop;
  211. scrollLeft=t.last_scrollLeft;
  212. t.use_last=false;
  213. }
  214. else if(curPos=="auto"){try{selStart=t.selectionStart;
  215. selEnd=t.selectionEnd;
  216. scrollTop=t.scrollTop;
  217. scrollLeft=t.scrollLeft;
  218. }catch(ex){}}this.set_editarea_size_from_textarea(id,document.getElementById("frame_"+id));
  219. t.style.display="none";
  220. document.getElementById("frame_"+id).style.display="inline";
  221. area.execCommand("focus");
  222. eAs[id]["displayed"]=true;
  223. area.execCommand("update_size");
  224. f.document.getElementById("result").scrollTop=scrollTop;
  225. f.document.getElementById("result").scrollLeft=scrollLeft;
  226. area.area_select(selStart,selEnd-selStart);
  227. area.execCommand("toggle_on");
  228. }
  229. else{elem=document.getElementById(id);
  230. elem.last_selectionStart=elem.selectionStart;
  231. elem.last_selectionEnd=elem.selectionEnd;
  232. elem.last_scrollTop=elem.scrollTop;
  233. elem.last_scrollLeft=elem.scrollLeft;
  234. elem.use_last=true;
  235. eAL.start(id);
  236. }},set_editarea_size_from_textarea:function(id,frame){var elem,width,height;
  237. elem=document.getElementById(id);
  238. width=Math.max(eAs[id]["settings"]["min_width"],elem.offsetWidth)+"px";
  239. height=Math.max(eAs[id]["settings"]["min_height"],elem.offsetHeight)+"px";
  240. if(elem.style.width.indexOf("%")!=-1)width=elem.style.width;
  241. if(elem.style.height.indexOf("%")!=-1)height=elem.style.height;
  242. frame.style.width=width;
  243. frame.style.height=height;
  244. },set_base_url:function(){var t=this,elems,i,docBasePath;
  245. if(!this.baseURL){elems=document.getElementsByTagName('script');
  246. for(i=0;
  247. i<elems.length;
  248. i++){if(elems[i].src&&elems[i].src.match(/edit_area_[^\\\/]*$/i)){var src=elems[i].src;
  249. src=src.substring(0,src.lastIndexOf('/'));
  250. this.baseURL=src;
  251. this.file_name=elems[i].src.substr(elems[i].src.lastIndexOf("/")+1);
  252. break;
  253. }}}docBasePath=document.location.href;
  254. if(docBasePath.indexOf('?')!=-1)docBasePath=docBasePath.substring(0,docBasePath.indexOf('?'));
  255. docBasePath=docBasePath.substring(0,docBasePath.lastIndexOf('/'));
  256. if(t.baseURL.indexOf('://')==-1&&t.baseURL.charAt(0)!='/'){t.baseURL=docBasePath+"/"+t.baseURL;
  257. }t.baseURL+="/";
  258. },get_button_html:function(id,img,exec,isFileSpecific,baseURL){var cmd,html;
  259. if(!baseURL)baseURL=this.baseURL;
  260. cmd='editArea.execCommand(\''+exec+'\')';
  261. html='<a id="a_'+id+'" href="javascript:'+cmd+'" onclick="'+cmd+';return false;" onmousedown="return false;" target="_self" fileSpecific="'+(isFileSpecific?'yes':'no')+'">';
  262. html+='<img id="'+id+'" src="'+baseURL+'images/'+img+'" title="{$'+id+'}" width="20" height="20" class="editAreaButtonNormal" onmouseover="editArea.switchClass(this,\'editAreaButtonOver\');" onmouseout="editArea.restoreClass(this);" onmousedown="editArea.restoreAndSwitchClass(this,\'editAreaButtonDown\');" /></a>';
  263. return html;
  264. },get_control_html:function(button_name,lang){var t=this,i,but,html,si;
  265. for(i=0;
  266. i<t.advanced_buttons.length;
  267. i++){but=t.advanced_buttons[i];
  268. if(but[0]==button_name){return t.get_button_html(but[0],but[1],but[2],but[3]);
  269. }}switch(button_name){case "*":case "return":return "<br />";
  270. case "|":case "separator":return '<img src="'+t.baseURL+'images/spacer.gif" width="1" height="15" class="editAreaSeparatorLine">';
  271. case "select_font":html="<select id='area_font_size' onchange='javascript:editArea.execCommand(\"change_font_size\")' fileSpecific='yes'>";
  272. html+="<option value='-1'>{$font_size}</option>";
  273. si=[8,9,10,11,12,14,17,20,24,28,32,36];
  274. for(i=0;
  275. i<si.length;
  276. i++){html+="<option value='"+si[i]+"'>"+si[i]+" pt</option>";
  277. }html+="</select>";
  278. return html;
  279. case "syntax_selection":html="<select id='syntax_selection' onchange='javascript:editArea.execCommand(\"change_syntax\",this.value)' fileSpecific='yes'>";
  280. html+="<option value='-1'>{$syntax_selection}</option>";
  281. html+="</select>";
  282. return html;
  283. }return "<span id='tmp_tool_"+button_name+"'>["+button_name+"]</span>";
  284. },get_template:function(){if(this.template==""){var xhr_object=null;
  285. if(window.XMLHttpRequest)xhr_object=new XMLHttpRequest();
  286. else if(window.ActiveXObject)xhr_object=new ActiveXObject("Microsoft.XMLHTTP");
  287. else{alert("XMLHTTPRequest not supported. EditArea not loaded");
  288. return;
  289. }xhr_object.open("GET",this.baseURL+"template.html",false);
  290. xhr_object.send(null);
  291. if(xhr_object.readyState==4)this.template=xhr_object.responseText;
  292. else this.has_error();
  293. }},translate:function(text,lang,mode){if(mode=="word")text=eAL.get_word_translation(text,lang);
  294. else if(mode="template"){eAL.current_language=lang;
  295. text=text.replace(/\{\$([^\}]+)\}/gm,eAL.translate_template);
  296. }return text;
  297. },translate_template:function(){return eAL.get_word_translation(EAL.prototype.translate_template.arguments[1],eAL.current_language);
  298. },get_word_translation:function(val,lang){var i;
  299. for(i in eAL.lang[lang]){if(i==val)return eAL.lang[lang][i];
  300. }return "_"+val;
  301. },load_script:function(url){var t=this,d=document,script,head;
  302. if(t.loadedFiles[url])return;
  303. try{script=d.createElement("script");
  304. script.type="text/javascript";
  305. script.src=url;
  306. script.charset="UTF-8";
  307. d.getElementsByTagName("head")[0].appendChild(script);
  308. }catch(e){d.write('<sc'+'ript language="javascript" type="text/javascript" src="'+url+'" charset="UTF-8"></sc'+'ript>');
  309. }t.loadedFiles[url]=true;
  310. },add_event:function(obj,name,handler){try{if(obj.attachEvent){obj.attachEvent("on"+name,handler);
  311. }
  312. else{obj.addEventListener(name,handler,false);
  313. }}catch(e){}},remove_event:function(obj,name,handler){try{if(obj.detachEvent)obj.detachEvent("on"+name,handler);
  314. else obj.removeEventListener(name,handler,false);
  315. }catch(e){}},reset:function(e){var formObj,is_child,i,x;
  316. formObj=eAL.isIE ? window.event.srcElement:e.target;
  317. if(formObj.tagName!='FORM')formObj=formObj.form;
  318. for(i in eAs){is_child=false;
  319. for(x=0;
  320. x<formObj.elements.length;
  321. x++){if(formObj.elements[x].id==i)is_child=true;
  322. }if(window.frames["frame_"+i]&&is_child&&eAs[i]["displayed"]==true){var exec='window.frames["frame_'+i+'"].editArea.textarea.value=document.getElementById("'+i+'").value;';
  323. exec+='window.frames["frame_'+i+'"].editArea.execCommand("focus");';
  324. exec+='window.frames["frame_'+i+'"].editArea.check_line_selection();';
  325. exec+='window.frames["frame_'+i+'"].editArea.execCommand("reset");';
  326. window.setTimeout(exec,10);
  327. }}return;
  328. },submit:function(e){var formObj,is_child,fs=window.frames,i,x;
  329. formObj=eAL.isIE ? window.event.srcElement:e.target;
  330. if(formObj.tagName!='FORM')formObj=formObj.form;
  331. for(i in eAs){is_child=false;
  332. for(x=0;
  333. x<formObj.elements.length;
  334. x++){if(formObj.elements[x].id==i)is_child=true;
  335. }if(is_child){if(fs["frame_"+i]&&eAs[i]["displayed"]==true)document.getElementById(i).value=fs["frame_"+i].editArea.textarea.value;
  336. eAL.execCommand(i,"EA_submit");
  337. }}if(typeof(formObj.edit_area_replaced_submit)=="function"){res=formObj.edit_area_replaced_submit();
  338. if(res==false){if(eAL.isIE)return false;
  339. else e.preventDefault();
  340. }}return;
  341. },getValue:function(id){if(window.frames["frame_"+id]&&eAs[id]["displayed"]==true){return window.frames["frame_"+id].editArea.textarea.value;
  342. }
  343. else if(elem=document.getElementById(id)){return elem.value;
  344. }return false;
  345. },setValue:function(id,new_val){var fs=window.frames;
  346. if((f=fs["frame_"+id])&&eAs[id]["displayed"]==true){f.editArea.textarea.value=new_val;
  347. f.editArea.execCommand("focus");
  348. f.editArea.check_line_selection(false);
  349. f.editArea.execCommand("onchange");
  350. }
  351. else if(elem=document.getElementById(id)){elem.value=new_val;
  352. }},getSelectionRange:function(id){var sel,eA,fs=window.frames;
  353. sel={"start":0,"end":0};
  354. if(fs["frame_"+id]&&eAs[id]["displayed"]==true){eA=fs["frame_"+id].editArea;
  355. sel["start"]=eA.textarea.selectionStart;
  356. sel["end"]=eA.textarea.selectionEnd;
  357. }
  358. else if(elem=document.getElementById(id)){sel=getSelectionRange(elem);
  359. }return sel;
  360. },setSelectionRange:function(id,new_start,new_end){var fs=window.frames;
  361. if(fs["frame_"+id]&&eAs[id]["displayed"]==true){fs["frame_"+id].editArea.area_select(new_start,new_end-new_start);
  362. if(!this.isIE){fs["frame_"+id].editArea.check_line_selection(false);
  363. fs["frame_"+id].editArea.scroll_to_view();
  364. }}
  365. else if(elem=document.getElementById(id)){setSelectionRange(elem,new_start,new_end);
  366. }},getSelectedText:function(id){var sel=this.getSelectionRange(id);
  367. return this.getValue(id).substring(sel["start"],sel["end"]);
  368. },setSelectedText:function(id,new_val){var fs=window.frames,d=document,sel,text,scrollTop,scrollLeft,new_sel_end;
  369. new_val=new_val.replace(/\r/g,"");
  370. sel=this.getSelectionRange(id);
  371. text=this.getValue(id);
  372. if(fs["frame_"+id]&&eAs[id]["displayed"]==true){scrollTop=fs["frame_"+id].document.getElementById("result").scrollTop;
  373. scrollLeft=fs["frame_"+id].document.getElementById("result").scrollLeft;
  374. }
  375. else{scrollTop=d.getElementById(id).scrollTop;
  376. scrollLeft=d.getElementById(id).scrollLeft;
  377. }text=text.substring(0,sel["start"])+new_val+text.substring(sel["end"]);
  378. this.setValue(id,text);
  379. new_sel_end=sel["start"]+new_val.length;
  380. this.setSelectionRange(id,sel["start"],new_sel_end);
  381. if(new_val !=this.getSelectedText(id).replace(/\r/g,"")){this.setSelectionRange(id,sel["start"],new_sel_end+new_val.split("\n").length-1);
  382. }if(fs["frame_"+id]&&eAs[id]["displayed"]==true){fs["frame_"+id].document.getElementById("result").scrollTop=scrollTop;
  383. fs["frame_"+id].document.getElementById("result").scrollLeft=scrollLeft;
  384. fs["frame_"+id].editArea.execCommand("onchange");
  385. }
  386. else{d.getElementById(id).scrollTop=scrollTop;
  387. d.getElementById(id).scrollLeft=scrollLeft;
  388. }},insertTags:function(id,open_tag,close_tag){var old_sel,new_sel;
  389. old_sel=this.getSelectionRange(id);
  390. text=open_tag+this.getSelectedText(id)+close_tag;
  391. eAL.setSelectedText(id,text);
  392. new_sel=this.getSelectionRange(id);
  393. if(old_sel["end"] > old_sel["start"])this.setSelectionRange(id,new_sel["end"],new_sel["end"]);
  394. else this.setSelectionRange(id,old_sel["start"]+open_tag.length,old_sel["start"]+open_tag.length);
  395. },hide:function(id){var fs=window.frames,d=document,t=this,scrollTop,scrollLeft,span;
  396. if(d.getElementById(id)&&!t.hidden[id]){t.hidden[id]={};
  397. t.hidden[id]["selectionRange"]=t.getSelectionRange(id);
  398. if(d.getElementById(id).style.display!="none"){t.hidden[id]["scrollTop"]=d.getElementById(id).scrollTop;
  399. t.hidden[id]["scrollLeft"]=d.getElementById(id).scrollLeft;
  400. }if(fs["frame_"+id]){t.hidden[id]["toggle"]=eAs[id]["displayed"];
  401. if(fs["frame_"+id]&&eAs[id]["displayed"]==true){scrollTop=fs["frame_"+id].document.getElementById("result").scrollTop;
  402. scrollLeft=fs["frame_"+id].document.getElementById("result").scrollLeft;
  403. }
  404. else{scrollTop=d.getElementById(id).scrollTop;
  405. scrollLeft=d.getElementById(id).scrollLeft;
  406. }t.hidden[id]["scrollTop"]=scrollTop;
  407. t.hidden[id]["scrollLeft"]=scrollLeft;
  408. if(eAs[id]["displayed"]==true)eAL.toggle_off(id);
  409. }span=d.getElementById("EditAreaArroundInfos_"+id);
  410. if(span){span.style.display='none';
  411. }d.getElementById(id).style.display="none";
  412. }},show:function(id){var fs=window.frames,d=document,t=this,span;
  413. if((elem=d.getElementById(id))&&t.hidden[id]){elem.style.display="inline";
  414. elem.scrollTop=t.hidden[id]["scrollTop"];
  415. elem.scrollLeft=t.hidden[id]["scrollLeft"];
  416. span=d.getElementById("EditAreaArroundInfos_"+id);
  417. if(span){span.style.display='inline';
  418. }if(fs["frame_"+id]){elem.style.display="inline";
  419. if(t.hidden[id]["toggle"]==true)eAL.toggle_on(id);
  420. scrollTop=t.hidden[id]["scrollTop"];
  421. scrollLeft=t.hidden[id]["scrollLeft"];
  422. if(fs["frame_"+id]&&eAs[id]["displayed"]==true){fs["frame_"+id].document.getElementById("result").scrollTop=scrollTop;
  423. fs["frame_"+id].document.getElementById("result").scrollLeft=scrollLeft;
  424. }
  425. else{elem.scrollTop=scrollTop;
  426. elem.scrollLeft=scrollLeft;
  427. }}sel=t.hidden[id]["selectionRange"];
  428. t.setSelectionRange(id,sel["start"],sel["end"]);
  429. delete t.hidden[id];
  430. }},getCurrentFile:function(id){return this.execCommand(id,'get_file',this.execCommand(id,'curr_file'));
  431. },getFile:function(id,file_id){return this.execCommand(id,'get_file',file_id);
  432. },getAllFiles:function(id){return this.execCommand(id,'get_all_files()');
  433. },openFile:function(id,file_infos){return this.execCommand(id,'open_file',file_infos);
  434. },closeFile:function(id,file_id){return this.execCommand(id,'close_file',file_id);
  435. },setFileEditedMode:function(id,file_id,to){var reg1,reg2;
  436. reg1=new RegExp('\\\\','g');
  437. reg2=new RegExp('"','g');
  438. return this.execCommand(id,'set_file_edited_mode("'+file_id.replace(reg1,'\\\\').replace(reg2,'\\"')+'",'+to+')');
  439. },execCommand:function(id,cmd,fct_param){switch(cmd){case "EA_init":if(eAs[id]['settings']["EA_init_callback"].length>0)eval(eAs[id]['settings']["EA_init_callback"]+"('"+id+"');");
  440. break;
  441. case "EA_delete":if(eAs[id]['settings']["EA_delete_callback"].length>0)eval(eAs[id]['settings']["EA_delete_callback"]+"('"+id+"');");
  442. break;
  443. case "EA_submit":if(eAs[id]['settings']["submit_callback"].length>0)eval(eAs[id]['settings']["submit_callback"]+"('"+id+"');");
  444. break;
  445. }if(window.frames["frame_"+id]&&window.frames["frame_"+id].editArea){if(fct_param!=undefined)return eval('window.frames["frame_'+id+'"].editArea.'+cmd+'(fct_param);');
  446. else return eval('window.frames["frame_'+id+'"].editArea.'+cmd+';');
  447. }return false;
  448. }};
  449. var eAL=new EAL();
  450. var eAs={};
  451. function getAttribute(elm,aName){var aValue,taName,i;
  452. try{aValue=elm.getAttribute(aName);
  453. }catch(exept){}if(! aValue){for(i=0;
  454. i < elm.attributes.length;
  455. i++){taName=elm.attributes[i] .name.toLowerCase();
  456. if(taName==aName){aValue=elm.attributes[i] .value;
  457. return aValue;
  458. }}}return aValue;
  459. };
  460. function setAttribute(elm,attr,val){if(attr=="class"){elm.setAttribute("className",val);
  461. elm.setAttribute("class",val);
  462. }
  463. else{elm.setAttribute(attr,val);
  464. }};
  465. function getChildren(elem,elem_type,elem_attribute,elem_attribute_match,option,depth){if(!option)var option="single";
  466. if(!depth)var depth=-1;
  467. if(elem){var children=elem.childNodes;
  468. var result=null;
  469. var results=[];
  470. for(var x=0;
  471. x<children.length;
  472. x++){strTagName=new String(children[x].tagName);
  473. children_class="?";
  474. if(strTagName!="undefined"){child_attribute=getAttribute(children[x],elem_attribute);
  475. if((strTagName.toLowerCase()==elem_type.toLowerCase()||elem_type=="")&&(elem_attribute==""||child_attribute==elem_attribute_match)){if(option=="all"){results.push(children[x]);
  476. }
  477. else{return children[x];
  478. }}if(depth!=0){result=getChildren(children[x],elem_type,elem_attribute,elem_attribute_match,option,depth-1);
  479. if(option=="all"){if(result.length>0){results=results.concat(result);
  480. }}
  481. else if(result!=null){return result;
  482. }}}}if(option=="all")return results;
  483. }return null;
  484. };
  485. function isChildOf(elem,parent){if(elem){if(elem==parent)return true;
  486. while(elem.parentNode !='undefined'){return isChildOf(elem.parentNode,parent);
  487. }}return false;
  488. };
  489. function getMouseX(e){if(e!=null&&typeof(e.pageX)!="undefined"){return e.pageX;
  490. }
  491. else{return(e!=null?e.x:event.x)+document.documentElement.scrollLeft;
  492. }};
  493. function getMouseY(e){if(e!=null&&typeof(e.pageY)!="undefined"){return e.pageY;
  494. }
  495. else{return(e!=null?e.y:event.y)+document.documentElement.scrollTop;
  496. }};
  497. function calculeOffsetLeft(r){return calculeOffset(r,"offsetLeft")};
  498. function calculeOffsetTop(r){return calculeOffset(r,"offsetTop")};
  499. function calculeOffset(element,attr){var offset=0;
  500. while(element){offset+=element[attr];
  501. element=element.offsetParent}return offset;
  502. };
  503. function get_css_property(elem,prop){if(document.defaultView){return document.defaultView.getComputedStyle(elem,null).getPropertyValue(prop);
  504. }
  505. else if(elem.currentStyle){var prop=prop.replace(/-\D/gi,function(sMatch){return sMatch.charAt(sMatch.length-1).toUpperCase();
  506. });
  507. return elem.currentStyle[prop];
  508. }
  509. else return null;
  510. }var _mCE;
  511. function start_move_element(e,id,frame){var elem_id=(e.target||e.srcElement).id;
  512. if(id)elem_id=id;
  513. if(!frame)frame=window;
  514. if(frame.event)e=frame.event;
  515. _mCE=frame.document.getElementById(elem_id);
  516. _mCE.frame=frame;
  517. frame.document.onmousemove=move_element;
  518. frame.document.onmouseup=end_move_element;
  519. mouse_x=getMouseX(e);
  520. mouse_y=getMouseY(e);
  521. _mCE.start_pos_x=mouse_x-(_mCE.style.left.replace("px","")||calculeOffsetLeft(_mCE));
  522. _mCE.start_pos_y=mouse_y-(_mCE.style.top.replace("px","")||calculeOffsetTop(_mCE));
  523. return false;
  524. };
  525. function end_move_element(e){_mCE.frame.document.onmousemove="";
  526. _mCE.frame.document.onmouseup="";
  527. _mCE=null;
  528. };
  529. function move_element(e){var newTop,newLeft,maxLeft;
  530. if(_mCE.frame&&_mCE.frame.event)e=_mCE.frame.event;
  531. newTop=getMouseY(e)-_mCE.start_pos_y;
  532. newLeft=getMouseX(e)-_mCE.start_pos_x;
  533. maxLeft=_mCE.frame.document.body.offsetWidth-_mCE.offsetWidth;
  534. max_top=_mCE.frame.document.body.offsetHeight-_mCE.offsetHeight;
  535. newTop=Math.min(Math.max(0,newTop),max_top);
  536. newLeft=Math.min(Math.max(0,newLeft),maxLeft);
  537. _mCE.style.top=newTop+"px";
  538. _mCE.style.left=newLeft+"px";
  539. return false;
  540. };
  541. var nav=eAL.nav;
  542. function getSelectionRange(textarea){return{"start":textarea.selectionStart,"end":textarea.selectionEnd};
  543. };
  544. function setSelectionRange(t,start,end){t.focus();
  545. start=Math.max(0,Math.min(t.value.length,start));
  546. end=Math.max(start,Math.min(t.value.length,end));
  547. if(this.isOpera&&this.isOpera < 9.6){t.selectionEnd=1;
  548. t.selectionStart=0;
  549. t.selectionEnd=1;
  550. t.selectionStart=0;
  551. }t.selectionStart=start;
  552. t.selectionEnd=end;
  553. if(isIE)set_IE_selection(t);
  554. };
  555. function get_IE_selection(t){var d=document,div,range,stored_range,elem,scrollTop,relative_top,line_start,line_nb,range_start,range_end,tab;
  556. if(t&&t.focused){if(!t.ea_line_height){div=d.createElement("div");
  557. div.style.fontFamily=get_css_property(t,"font-family");
  558. div.style.fontSize=get_css_property(t,"font-size");
  559. div.style.visibility="hidden";
  560. div.innerHTML="0";
  561. d.body.appendChild(div);
  562. t.ea_line_height=div.offsetHeight;
  563. d.body.removeChild(div);
  564. }range=d.selection.createRange();
  565. try{stored_range=range.duplicate();
  566. stored_range.moveToElementText(t);
  567. stored_range.setEndPoint('EndToEnd',range);
  568. if(stored_range.parentElement()==t){elem=t;
  569. scrollTop=0;
  570. while(elem.parentNode){scrollTop+=elem.scrollTop;
  571. elem=elem.parentNode;
  572. }relative_top=range.offsetTop-calculeOffsetTop(t)+scrollTop;
  573. line_start=Math.round((relative_top / t.ea_line_height)+1);
  574. line_nb=Math.round(range.boundingHeight / t.ea_line_height);
  575. range_start=stored_range.text.length-range.text.length;
  576. tab=t.value.substr(0,range_start).split("\n");
  577. range_start+=(line_start-tab.length)*2;
  578. t.selectionStart=range_start;
  579. range_end=t.selectionStart+range.text.length;
  580. tab=t.value.substr(0,range_start+range.text.length).split("\n");
  581. range_end+=(line_start+line_nb-1-tab.length)*2;
  582. t.selectionEnd=range_end;
  583. }}catch(e){}}setTimeout("get_IE_selection(document.getElementById('"+t.id+"'));",50);
  584. };
  585. function IE_textarea_focus(){event.srcElement.focused=true;
  586. }function IE_textarea_blur(){event.srcElement.focused=false;
  587. }function set_IE_selection(t){var nbLineStart,nbLineStart,nbLineEnd,range;
  588. if(!window.closed){nbLineStart=t.value.substr(0,t.selectionStart).split("\n").length-1;
  589. nbLineEnd=t.value.substr(0,t.selectionEnd).split("\n").length-1;
  590. try{range=document.selection.createRange();
  591. range.moveToElementText(t);
  592. range.setEndPoint('EndToStart',range);
  593. range.moveStart('character',t.selectionStart-nbLineStart);
  594. range.moveEnd('character',t.selectionEnd-nbLineEnd-(t.selectionStart-nbLineStart));
  595. range.select();
  596. }catch(e){}}};
  597. eAL.waiting_loading["elements_functions.js"]="loaded";
  598. EAL.prototype.start_resize_area=function(){var d=document,a,div,width,height,father;
  599. d.onmouseup=eAL.end_resize_area;
  600. d.onmousemove=eAL.resize_area;
  601. eAL.toggle(eAL.resize["id"]);
  602. a=eAs[eAL.resize["id"]]["textarea"];
  603. div=d.getElementById("edit_area_resize");
  604. if(!div){div=d.createElement("div");
  605. div.id="edit_area_resize";
  606. div.style.border="dashed #888888 1px";
  607. }width=a.offsetWidth-2;
  608. height=a.offsetHeight-2;
  609. div.style.display="block";
  610. div.style.width=width+"px";
  611. div.style.height=height+"px";
  612. father=a.parentNode;
  613. father.insertBefore(div,a);
  614. a.style.display="none";
  615. eAL.resize["start_top"]=calculeOffsetTop(div);
  616. eAL.resize["start_left"]=calculeOffsetLeft(div);
  617. };
  618. EAL.prototype.end_resize_area=function(e){var d=document,div,a,width,height;
  619. d.onmouseup="";
  620. d.onmousemove="";
  621. div=d.getElementById("edit_area_resize");
  622. a=eAs[eAL.resize["id"]]["textarea"];
  623. width=Math.max(eAs[eAL.resize["id"]]["settings"]["min_width"],div.offsetWidth-4);
  624. height=Math.max(eAs[eAL.resize["id"]]["settings"]["min_height"],div.offsetHeight-4);
  625. if(eAL.isIE==6){width-=2;
  626. height-=2;
  627. }a.style.width=width+"px";
  628. a.style.height=height+"px";
  629. div.style.display="none";
  630. a.style.display="inline";
  631. a.selectionStart=eAL.resize["selectionStart"];
  632. a.selectionEnd=eAL.resize["selectionEnd"];
  633. eAL.toggle(eAL.resize["id"]);
  634. return false;
  635. };
  636. EAL.prototype.resize_area=function(e){var allow,newHeight,newWidth;
  637. allow=eAs[eAL.resize["id"]]["settings"]["allow_resize"];
  638. if(allow=="both"||allow=="y"){newHeight=Math.max(20,getMouseY(e)-eAL.resize["start_top"]);
  639. document.getElementById("edit_area_resize").style.height=newHeight+"px";
  640. }if(allow=="both"||allow=="x"){newWidth=Math.max(20,getMouseX(e)-eAL.resize["start_left"]);
  641. document.getElementById("edit_area_resize").style.width=newWidth+"px";
  642. }return false;
  643. };
  644. eAL.waiting_loading["resize_area.js"]="loaded";
  645. EAL.prototype.get_regexp=function(text_array){res="(\\b)(";
  646. for(i=0;
  647. i<text_array.length;
  648. i++){if(i>0)res+="|";
  649. res+=this.get_escaped_regexp(text_array[i]);
  650. }res+=")(\\b)";
  651. reg=new RegExp(res);
  652. return res;
  653. };
  654. EAL.prototype.get_escaped_regexp=function(str){return str.toString().replace(/(\.|\?|\*|\+|\\|\(|\)|\[|\]|\}|\{|\$|\^|\|)/g,"\\$1");
  655. };
  656. EAL.prototype.init_syntax_regexp=function(){var lang_style={};
  657. for(var lang in this.load_syntax){if(!this.syntax[lang]){this.syntax[lang]={};
  658. this.syntax[lang]["keywords_reg_exp"]={};
  659. this.keywords_reg_exp_nb=0;
  660. if(this.load_syntax[lang]['KEYWORDS']){param="g";
  661. if(this.load_syntax[lang]['KEYWORD_CASE_SENSITIVE']===false)param+="i";
  662. for(var i in this.load_syntax[lang]['KEYWORDS']){if(typeof(this.load_syntax[lang]['KEYWORDS'][i])=="function")continue;
  663. this.syntax[lang]["keywords_reg_exp"][i]=new RegExp(this.get_regexp(this.load_syntax[lang]['KEYWORDS'][i]),param);
  664. this.keywords_reg_exp_nb++;
  665. }}if(this.load_syntax[lang]['OPERATORS']){var str="";
  666. var nb=0;
  667. for(var i in this.load_syntax[lang]['OPERATORS']){if(typeof(this.load_syntax[lang]['OPERATORS'][i])=="function")continue;
  668. if(nb>0)str+="|";
  669. str+=this.get_escaped_regexp(this.load_syntax[lang]['OPERATORS'][i]);
  670. nb++;
  671. }if(str.length>0)this.syntax[lang]["operators_reg_exp"]=new RegExp("("+str+")","g");
  672. }if(this.load_syntax[lang]['DELIMITERS']){var str="";
  673. var nb=0;
  674. for(var i in this.load_syntax[lang]['DELIMITERS']){if(typeof(this.load_syntax[lang]['DELIMITERS'][i])=="function")continue;
  675. if(nb>0)str+="|";
  676. str+=this.get_escaped_regexp(this.load_syntax[lang]['DELIMITERS'][i]);
  677. nb++;
  678. }if(str.length>0)this.syntax[lang]["delimiters_reg_exp"]=new RegExp("("+str+")","g");
  679. }var syntax_trace=[];
  680. this.syntax[lang]["quotes"]={};
  681. var quote_tab=[];
  682. if(this.load_syntax[lang]['QUOTEMARKS']){for(var i in this.load_syntax[lang]['QUOTEMARKS']){if(typeof(this.load_syntax[lang]['QUOTEMARKS'][i])=="function")continue;
  683. var x=this.get_escaped_regexp(this.load_syntax[lang]['QUOTEMARKS'][i]);
  684. this.syntax[lang]["quotes"][x]=x;
  685. quote_tab[quote_tab.length]="("+x+"(\\\\.|[^"+x+"])*(?:"+x+"|$))";
  686. syntax_trace.push(x);
  687. }}this.syntax[lang]["comments"]={};
  688. if(this.load_syntax[lang]['COMMENT_SINGLE']){for(var i in this.load_syntax[lang]['COMMENT_SINGLE']){if(typeof(this.load_syntax[lang]['COMMENT_SINGLE'][i])=="function")continue;
  689. var x=this.get_escaped_regexp(this.load_syntax[lang]['COMMENT_SINGLE'][i]);
  690. quote_tab[quote_tab.length]="("+x+"(.|\\r|\\t)*(\\n|$))";
  691. syntax_trace.push(x);
  692. this.syntax[lang]["comments"][x]="\n";
  693. }}if(this.load_syntax[lang]['COMMENT_MULTI']){for(var i in this.load_syntax[lang]['COMMENT_MULTI']){if(typeof(this.load_syntax[lang]['COMMENT_MULTI'][i])=="function")continue;
  694. var start=this.get_escaped_regexp(i);
  695. var end=this.get_escaped_regexp(this.load_syntax[lang]['COMMENT_MULTI'][i]);
  696. quote_tab[quote_tab.length]="("+start+"(.|\\n|\\r)*?("+end+"|$))";
  697. syntax_trace.push(start);
  698. syntax_trace.push(end);
  699. this.syntax[lang]["comments"][i]=this.load_syntax[lang]['COMMENT_MULTI'][i];
  700. }}if(quote_tab.length>0)this.syntax[lang]["comment_or_quote_reg_exp"]=new RegExp("("+quote_tab.join("|")+")","gi");
  701. if(syntax_trace.length>0)this.syntax[lang]["syntax_trace_regexp"]=new RegExp("((.|\n)*?)(\\\\*("+syntax_trace.join("|")+"|$))","gmi");
  702. if(this.load_syntax[lang]['SCRIPT_DELIMITERS']){this.syntax[lang]["script_delimiters"]={};
  703. for(var i in this.load_syntax[lang]['SCRIPT_DELIMITERS']){if(typeof(this.load_syntax[lang]['SCRIPT_DELIMITERS'][i])=="function")continue;
  704. this.syntax[lang]["script_delimiters"][i]=this.load_syntax[lang]['SCRIPT_DELIMITERS'];
  705. }}this.syntax[lang]["custom_regexp"]={};
  706. if(this.load_syntax[lang]['REGEXPS']){for(var i in this.load_syntax[lang]['REGEXPS']){if(typeof(this.load_syntax[lang]['REGEXPS'][i])=="function")continue;
  707. var val=this.load_syntax[lang]['REGEXPS'][i];
  708. if(!this.syntax[lang]["custom_regexp"][val['execute']])this.syntax[lang]["custom_regexp"][val['execute']]={};
  709. this.syntax[lang]["custom_regexp"][val['execute']][i]={'regexp':new RegExp(val['search'],val['modifiers']),'class':val['class']};
  710. }}if(this.load_syntax[lang]['STYLES']){lang_style[lang]={};
  711. for(var i in this.load_syntax[lang]['STYLES']){if(typeof(this.load_syntax[lang]['STYLES'][i])=="function")continue;
  712. if(typeof(this.load_syntax[lang]['STYLES'][i])!="string"){for(var j in this.load_syntax[lang]['STYLES'][i]){lang_style[lang][j]=this.load_syntax[lang]['STYLES'][i][j];
  713. }}
  714. else{lang_style[lang][i]=this.load_syntax[lang]['STYLES'][i];
  715. }}}var style="";
  716. for(var i in lang_style[lang]){if(lang_style[lang][i].length>0){style+="."+lang+" ."+i.toLowerCase()+" span{"+lang_style[lang][i]+"}\n";
  717. style+="."+lang+" ."+i.toLowerCase()+"{"+lang_style[lang][i]+"}\n";
  718. }}this.syntax[lang]["styles"]=style;
  719. }}};
  720. eAL.waiting_loading["reg_syntax.js"]="loaded";
  721. var editAreaLoader= eAL;
  722. var editAreas=eAs;
  723. EditAreaLoader=EAL;
  724. editAreaLoader.iframe_script= "<script type='text/javascript'> Ã EA(){var t=Á;t.error=Ì;t.inlinePopup=[{popup_id:\"area_search_replace\",icon_id:\"search\"},{popup_id:\"edit_area_help\",icon_id:\"help\"}];t.plugins={};t.line_number=0;È.eAL.set_browser_infos(t);if(t.isIE >=8)t.isIE=7;t.É={};t.last_text_to_highlight=\"\";t.last_hightlighted_text=\"\";t.syntax_list=[];t.allready_used_syntax={};t.check_line_selection_timer=50;t.ÂFocused=Ì;t.highlight_selection_line=null;t.previous=[];t.next=[];t.last_undo=\"\";t.files={};t.filesIdAssoc={};t.curr_file='';t.assocBracket={};t.revertAssocBracket={};t.assocBracket[\"(\"]=\")\";t.assocBracket[\"{\"]=\"}\";t.assocBracket[\"[\"]=\"]\";for(var index in t.assocBracket){t.revertAssocBracket[t.assocBracket[index]]=index;}t.is_editable=Ë;t.lineHeight=16;t.tab_nb_char=8;if(t.isOpera)t.tab_nb_char=6;t.is_tabbing=Ì;t.fullscreen={'isFull':Ì};t.isResizing=Ì;t.id=area_id;t.Å=eAs[t.id][\"Å\"];if((\"\"+t.Å['replace_tab_by_spaces']).match(/^[0-9]+$/)){t.tab_nb_char=t.Å['replace_tab_by_spaces'];t.tabulation=\"\";for(var i=0;i<t.tab_nb_char;i++)t.tabulation+=\" \";}\nelse{t.tabulation=\"\t\";}if(t.Å[\"syntax_selection_allow\"]&&t.Å[\"syntax_selection_allow\"].Æ>0)t.syntax_list=t.Å[\"syntax_selection_allow\"].replace(/ /g,\"\").split(\",\");if(t.Å['syntax'])t.allready_used_syntax[t.Å['syntax']]=Ë;};EA.Ä.init=Ã(){var t=Á,a,s=t.Å;t.Â=_$(\"Â\");t.container=_$(\"container\");t.result=_$(\"result\");t.content_highlight=_$(\"content_highlight\");t.selection_field=_$(\"selection_field\");t.selection_field_text=_$(\"selection_field_text\");t.processing_screen=_$(\"processing\");t.editor_area=_$(\"editor\");t.tab_browsing_area=_$(\"tab_browsing_area\");t.test_font_size=_$(\"test_font_size\");a=t.Â;if(!s['is_editable'])t.set_editable(Ì);t.set_show_line_colors(s['show_line_colors']);if(syntax_selec=_$(\"syntax_selection\")){for(var i=0;i<t.syntax_list.Æ;i++){var syntax=t.syntax_list[i];var option=document.createElement(\"option\");option.Ê=syntax;if(syntax==s['syntax'])option.selected=\"selected\";option.innerHTML=t.get_translation(\"syntax_\"+syntax,\"word\");syntax_selec.appendChild(option);}}spans=È.getChildren(_$(\"toolbar_1\"),\"span\",\"\",\"\",\"all\",-1);for(var i=0;i<spans.Æ;i++){id=spans[i].id.replace(/tmp_tool_(.*)/,\"$1\");if(id!=spans[i].id){for(var j in t.plugins){if(typeof(t.plugins[j].get_control_html)==\"Ã\"){html=t.plugins[j].get_control_html(id);if(html!=Ì){html=t.get_translation(html,\"template\");var new_span=document.createElement(\"span\");new_span.innerHTML=html;var father=spans[i].ÈNode;spans[i].ÈNode.replaceChild(new_span,spans[i]);break;}}}}}if(s[\"debug\"]){t.debug=È.document.getElementById(\"edit_area_debug_\"+t.id);}if(_$(\"redo\")!=null)t.switchClassSticky(_$(\"redo\"),'editAreaButtonDisabled',Ë);if(typeof(È.eAL.syntax[s[\"syntax\"]])!=\"undefined\"){for(var i in È.eAL.syntax){if(typeof(È.eAL.syntax[i][\"Çs\"])!=\"undefined\"){t.add_Ç(È.eAL.syntax[i][\"Çs\"]);}}}if(t.isOpera)_$(\"editor\").onkeypress=keyDown;\nelse _$(\"editor\").onkeydown=keyDown;for(var i=0;i<t.inlinePopup.Æ;i++){if(t.isOpera)_$(t.inlinePopup[i][\"popup_id\"]).onkeypress=keyDown;\nelse _$(t.inlinePopup[i][\"popup_id\"]).onkeydown=keyDown;}if(s[\"allow_resize\"]==\"both\"||s[\"allow_resize\"]==\"x\"||s[\"allow_resize\"]==\"y\")t.allow_resize(Ë);È.eAL.toggle(t.id,\"on\");t.change_smooth_selection_mode(eA.smooth_selection);t.execCommand(\"change_highlight\",s[\"start_highlight\"]);t.set_font(eA.Å[\"font_family\"],eA.Å[\"font_size\"]);children=È.getChildren(document.body,\"\",\"selec\",\"none\",\"all\",-1);for(var i=0;i<children.Æ;i++){if(t.isIE)children[i].unselectable=Ë;\nelse children[i].onmousedown=Ã(){return Ì};}a.spellcheck=s[\"gecko_spellcheck\"];if(t.isFirefox >='3'){t.content_highlight.Ç.paddingLeft=\"1px\";t.selection_field.Ç.paddingLeft=\"1px\";t.selection_field_text.Ç.paddingLeft=\"1px\";}if(t.isIE&&t.isIE < 8){a.Ç.marginTop=\"-1px\";}if(t.isSafari){t.editor_area.Ç.position=\"absolute\";a.Ç.marginLeft=\"-3px\";if(t.isSafari < 3.2)a.Ç.marginTop=\"1px\";}È.eAL.add_event(t.result,\"click\",Ã(e){if((e.target||e.srcElement)==eA.result){eA.area_select(eA.Â.Ê.Æ,0);}});if(s['is_multi_files']!=Ì)t.open_file({'id':t.curr_file,'text':''});t.set_word_wrap(s['word_wrap']);setTimeout(\"eA.focus();eA.manage_size();eA.execCommand('EA_load');\",10);t.check_undo();t.check_line_selection(Ë);t.scroll_to_view();for(var i in t.plugins){if(typeof(t.plugins[i].onload)==\"Ã\")t.plugins[i].onload();}if(s['fullscreen']==Ë)t.toggle_full_screen(Ë);È.eAL.add_event(window,\"resize\",eA.update_size);È.eAL.add_event(È.window,\"resize\",eA.update_size);È.eAL.add_event(top.window,\"resize\",eA.update_size);È.eAL.add_event(window,\"unload\",Ã(){if(È.eAL){È.eAL.remove_event(È.window,\"resize\",eA.update_size);È.eAL.remove_event(top.window,\"resize\",eA.update_size);}if(eAs[eA.id]&&eAs[eA.id][\"displayed\"]){eA.execCommand(\"EA_unload\");}});};EA.Ä.update_size=Ã(){var d=document,pd=È.document,height,width,popup,maxLeft,maxTop;if(typeof eAs !='undefined'&&eAs[eA.id]&&eAs[eA.id][\"displayed\"]==Ë){if(eA.fullscreen['isFull']){pd.getElementById(\"frame_\"+eA.id).Ç.width=pd.getElementsByTagName(\"html\")[0].clientWidth+\"px\";pd.getElementById(\"frame_\"+eA.id).Ç.height=pd.getElementsByTagName(\"html\")[0].clientHeight+\"px\";}if(eA.tab_browsing_area.Ç.display=='block'&&(!eA.isIE||eA.isIE >=8)){eA.tab_browsing_area.Ç.height=\"0px\";eA.tab_browsing_area.Ç.height=(eA.result.offsetTop-eA.tab_browsing_area.offsetTop-1)+\"px\";}height=d.body.offsetHeight-eA.get_all_toolbar_height()-4;eA.result.Ç.height=height+\"px\";width=d.body.offsetWidth-2;eA.result.Ç.width=width+\"px\";for(i=0;i < eA.inlinePopup.Æ;i++){popup=_$(eA.inlinePopup[i][\"popup_id\"]);maxLeft=d.body.offsetWidth-popup.offsetWidth;maxTop=d.body.offsetHeight-popup.offsetHeight;if(popup.offsetTop > maxTop)popup.Ç.top=maxTop+\"px\";if(popup.offsetLeft > maxLeft)popup.Ç.left=maxLeft+\"px\";}eA.manage_size(Ë);eA.fixLinesHeight(eA.Â.Ê,0,-1);}};EA.Ä.manage_size=Ã(onlyOneTime){if(!eAs[Á.id])return Ì;if(eAs[Á.id][\"displayed\"]==Ë&&Á.ÂFocused){var area_height,resized=Ì;if(!Á.Å['word_wrap']){var area_width=Á.Â.scrollWidth;area_height=Á.Â.scrollHeight;if(Á.isOpera&&Á.isOpera < 9.6){area_width=10000;}if(Á.Â.previous_scrollWidth!=area_width){Á.container.Ç.width=area_width+\"px\";Á.Â.Ç.width=area_width+\"px\";Á.content_highlight.Ç.width=area_width+\"px\";Á.Â.previous_scrollWidth=area_width;resized=Ë;}}if(Á.Å['word_wrap']){newW=Á.Â.offsetWidth;if(Á.isFirefox||Á.isIE)newW-=2;if(Á.isSafari)newW-=6;Á.content_highlight.Ç.width=Á.selection_field_text.Ç.width=Á.selection_field.Ç.width=Á.test_font_size.Ç.width=newW+\"px\";}if(Á.isOpera||Á.isFirefox||Á.isSafari){area_height=Á.getLinePosTop(Á.É[\"nb_line\"]+1);}\nelse{area_height=Á.Â.scrollHeight;}if(Á.Â.previous_scrollHeight!=area_height){Á.container.Ç.height=(area_height+2)+\"px\";Á.Â.Ç.height=area_height+\"px\";Á.content_highlight.Ç.height=area_height+\"px\";Á.Â.previous_scrollHeight=area_height;resized=Ë;}if(Á.É[\"nb_line\"] >=Á.line_number){var newLines='',destDiv=_$(\"line_number\"),start=Á.line_number,end=Á.É[\"nb_line\"]+100;for(i=start+1;i < end;i++){newLines+='<div id=\"line_'+i+'\">'+i+\"</div>\";Á.line_number++;}destDiv.innerHTML=destDiv.innerHTML+newLines;Á.fixLinesHeight(Á.Â.Ê,start,-1);}Á.Â.scrollTop=\"0px\";Á.Â.scrollLeft=\"0px\";if(resized==Ë){Á.scroll_to_view();}}if(!onlyOneTime)setTimeout(\"eA.manage_size();\",100);};EA.Ä.execCommand=Ã(cmd,param){for(var i in Á.plugins){if(typeof(Á.plugins[i].execCommand)==\"Ã\"){if(!Á.plugins[i].execCommand(cmd,param))return;}}switch(cmd){case \"save\":if(Á.Å[\"save_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"save_callback\"]+\"('\"+Á.id+\"',eA.Â.Ê);\");break;case \"load\":if(Á.Å[\"load_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"load_callback\"]+\"('\"+Á.id+\"');\");break;case \"onchange\":if(Á.Å[\"change_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"change_callback\"]+\"('\"+Á.id+\"');\");break;case \"EA_load\":if(Á.Å[\"EA_load_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"EA_load_callback\"]+\"('\"+Á.id+\"');\");break;case \"EA_unload\":if(Á.Å[\"EA_unload_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"EA_unload_callback\"]+\"('\"+Á.id+\"');\");break;case \"toggle_on\":if(Á.Å[\"EA_toggle_on_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"EA_toggle_on_callback\"]+\"('\"+Á.id+\"');\");break;case \"toggle_off\":if(Á.Å[\"EA_toggle_off_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"EA_toggle_off_callback\"]+\"('\"+Á.id+\"');\");break;case \"re_sync\":if(!Á.do_highlight)break;case \"file_switch_on\":if(Á.Å[\"EA_file_switch_on_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"EA_file_switch_on_callback\"]+\"(param);\");break;case \"file_switch_off\":if(Á.Å[\"EA_file_switch_off_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"EA_file_switch_off_callback\"]+\"(param);\");break;case \"file_close\":if(Á.Å[\"EA_file_close_callback\"].Æ>0)return eval(\"È.\"+Á.Å[\"EA_file_close_callback\"]+\"(param);\");break;default:if(typeof(eval(\"eA.\"+cmd))==\"Ã\"){if(Á.Å[\"debug\"])eval(\"eA.\"+cmd+\"(param);\");\nelse try{eval(\"eA.\"+cmd+\"(param);\");}catch(e){};}}};EA.Ä.get_translation=Ã(word,mode){if(mode==\"template\")return È.eAL.translate(word,Á.Å[\"language\"],mode);\nelse return È.eAL.get_word_translation(word,Á.Å[\"language\"]);};EA.Ä.add_plugin=Ã(plug_name,plug_obj){for(var i=0;i<Á.Å[\"plugins\"].Æ;i++){if(Á.Å[\"plugins\"][i]==plug_name){Á.plugins[plug_name]=plug_obj;plug_obj.baseURL=È.eAL.baseURL+\"plugins/\"+plug_name+\"/\";if(typeof(plug_obj.init)==\"Ã\")plug_obj.init();}}};EA.Ä.load_css=Ã(url){try{link=document.createElement(\"link\");link.type=\"text/css\";link.rel=\"Çsheet\";link.media=\"all\";link.href=url;head=document.getElementsByTagName(\"head\");head[0].appendChild(link);}catch(e){document.write(\"<link href='\"+url+\"' rel='Çsheet' type='text/css' />\");}};EA.Ä.load_script=Ã(url){try{script=document.createElement(\"script\");script.type=\"text/javascript\";script.src=url;script.charset=\"UTF-8\";head=document.getElementsByTagName(\"head\");head[0].appendChild(script);}catch(e){document.write(\"<script type='text/javascript' src='\"+url+\"' charset=\\\"UTF-8\\\"><\"+\"/script>\");}};EA.Ä.add_lang=Ã(language,Ês){if(!È.eAL.lang[language])È.eAL.lang[language]={};for(var i in Ês)È.eAL.lang[language][i]=Ês[i];};Ã _$(id){return document.getElementById(id);};var eA=new EA();È.eAL.add_event(window,\"load\",init);Ã init(){setTimeout(\"eA.init();\",10);}; EA.Ä.focus=Ã(){Á.Â.focus();Á.ÂFocused=Ë;};EA.Ä.check_line_selection=Ã(timer_checkup){var changes,infos,new_top,new_width,i;var t1=t2=t2_1=t3=tLines=tend=new Date().getTime();if(!eAs[Á.id])return Ì;if(!Á.smooth_selection&&!Á.do_highlight){}\nelse if(Á.ÂFocused&&eAs[Á.id][\"displayed\"]==Ë&&Á.isResizing==Ì){infos=Á.get_selection_infos();changes=Á.checkTextEvolution(typeof(Á.É['full_text'])=='undefined' ? '':Á.É['full_text'],infos['full_text']);t2=new Date().getTime();if(Á.É[\"line_start\"] !=infos[\"line_start\"]||Á.É[\"line_nb\"] !=infos[\"line_nb\"]||infos[\"full_text\"] !=Á.É[\"full_text\"]||Á.reload_highlight||Á.É[\"selectionStart\"] !=infos[\"selectionStart\"]||Á.É[\"selectionEnd\"] !=infos[\"selectionEnd\"]||!timer_checkup){new_top=Á.getLinePosTop(infos[\"line_start\"]);new_width=Math.max(Á.Â.scrollWidth,Á.container.clientWidth-50);Á.selection_field.Ç.top=Á.selection_field_text.Ç.top=new_top+\"px\";if(!Á.Å['word_wrap']){Á.selection_field.Ç.width=Á.selection_field_text.Ç.width=Á.test_font_size.Ç.width=new_width+\"px\";}if(Á.do_highlight==Ë){var curr_text=infos[\"full_text\"].split(\"\\n\");var content=\"\";var start=Math.max(0,infos[\"line_start\"]-1);var end=Math.min(curr_text.Æ,infos[\"line_start\"]+infos[\"line_nb\"]-1);for(i=start;i< end;i++){content+=curr_text[i]+\"\\n\";}selLength=infos['selectionEnd']-infos['selectionStart'];content=content.substr(0,infos[\"curr_pos\"]-1)+\"\\r\\r\"+content.substr(infos[\"curr_pos\"]-1,selLength)+\"\\r\\r\"+content.substr(infos[\"curr_pos\"]-1+selLength);content='<span>'+content.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(\"\\r\\r\",'</span><strong>').replace(\"\\r\\r\",'</strong><span>')+'</span>';if(Á.isIE||(Á.isOpera&&Á.isOpera < 9.6)){Á.selection_field.innerHTML=\"<pre>\"+content.replace(/^\\r?\\n/,\"<br>\")+\"</pre>\";}\nelse{Á.selection_field.innerHTML=content;}Á.selecti…

Large files files are truncated, but you can click here to view the full file