1 var AJS={getElement:function(id){
2 if(typeof (id)=="string"){
3 return document.getElementById(id);
7 },getElements:function(){
9 for(var i=0;i<arguments.length;i++){
10 var _4=this.getElement(arguments[i]);
14 },getQueryArgument:function(_5){
15 var _6=window.location.search.substring(1);
17 for(var i=0;i<_7.length;i++){
18 var _9=_7[i].split("=");
25 return (navigator.userAgent.toLowerCase().indexOf("msie")!=-1&&navigator.userAgent.toLowerCase().indexOf("opera")==-1);
27 return this.getElementsByTagAndClassName("body")[0];
28 },getElementsByTagAndClassName:function(_a,_b,_c){
30 if(!this.isDefined(_c)){
33 if(!this.isDefined(_a)){
36 var _e=_c.getElementsByTagName(_a);
38 var _10=new RegExp("(^|\\s)"+_b+"(\\s|$)");
39 for(i=0,j=0;i<_f;i++){
40 if(_10.test(_e[i].className)||_b==null){
46 },appendChildNodes:function(_11){
47 if(arguments.length>=2){
48 for(var i=1;i<arguments.length;i++){
50 if(typeof (n)=="string"){
51 n=document.createTextNode(n);
53 if(this.isDefined(n)){
59 },replaceChildNodes:function(_14){
61 while((_15=_14.firstChild)){
64 if(arguments.length<2){
67 return this.appendChildNodes.apply(this,arguments);
69 },insertAfter:function(_16,_17){
70 _17.parentNode.insertBefore(_16,_17.nextSibling);
71 },insertBefore:function(_18,_19){
72 _19.parentNode.insertBefore(_18,_19);
73 },showElement:function(elm){
75 },hideElement:function(elm){
76 elm.style.display="none";
77 },isElementHidden:function(elm){
78 return elm.style.visibility=="hidden";
79 },swapDOM:function(_1d,src){
80 _1d=this.getElement(_1d);
81 var _1f=_1d.parentNode;
83 src=this.getElement(src);
84 _1f.replaceChild(src,_1d);
89 },removeElement:function(elm){
90 this.swapDOM(elm,null);
93 return _22.indexOf(" Object")!=-1;
94 },createDOM:function(_23,_24){
96 elm=document.createElement(_23);
97 if(this.isDict(_24[i])){
100 elm.style.cssText=_24[0][k];
103 elm.className=_24[0][k];
105 elm.setAttribute(k,_24[0][k]);
114 for(i;i<_24.length;i++){
116 if(this.isDefined(n)){
117 if(typeof (n)=="string"){
118 n=document.createTextNode(n);
125 return this.createDOM.apply(this,["ul",arguments]);
127 return this.createDOM.apply(this,["li",arguments]);
129 return this.createDOM.apply(this,["td",arguments]);
131 return this.createDOM.apply(this,["tr",arguments]);
133 return this.createDOM.apply(this,["th",arguments]);
135 return this.createDOM.apply(this,["tbody",arguments]);
137 return this.createDOM.apply(this,["table",arguments]);
139 return this.createDOM.apply(this,["input",arguments]);
141 return this.createDOM.apply(this,["span",arguments]);
143 return this.createDOM.apply(this,["b",arguments]);
145 return this.createDOM.apply(this,["a",arguments]);
147 return this.createDOM.apply(this,["div",arguments]);
149 return this.createDOM.apply(this,["img",arguments]);
151 return this.createDOM.apply(this,["button",arguments]);
153 return this.createDOM.apply(this,["h1",arguments]);
155 return this.createDOM.apply(this,["h2",arguments]);
157 return this.createDOM.apply(this,["h3",arguments]);
159 return this.createDOM.apply(this,["br",arguments]);
160 },TEXTAREA:function(){
161 return this.createDOM.apply(this,["textarea",arguments]);
163 return this.createDOM.apply(this,["form",arguments]);
165 return this.createDOM.apply(this,["p",arguments]);
167 return this.createDOM.apply(this,["select",arguments]);
169 return this.createDOM.apply(this,["option",arguments]);
171 return document.createTextNode(_27);
173 return this.createDOM.apply(this,["iframe",arguments]);
175 return this.createDOM.apply(this,["script",arguments]);
176 },getXMLHttpRequest:function(){
178 return new XMLHttpRequest();
180 return new ActiveXObject("Msxml2.XMLHTTP");
182 return new ActiveXObject("Microsoft.XMLHTTP");
184 return new ActiveXObject("Msxml2.XMLHTTP.4.0");
186 throw "Browser does not support XMLHttpRequest";
188 for(var i=0;i<_28.length;i++){
196 },doSimpleXMLHttpRequest:function(url){
197 var req=this.getXMLHttpRequest();
198 req.open("GET",url,true);
199 return this.sendXMLHttpRequest(req);
200 },getRequest:function(url,_2e){
201 var req=this.getXMLHttpRequest();
202 req.open("POST",url,true);
203 req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
204 return this.sendXMLHttpRequest(req);
205 },sendXMLHttpRequest:function(req,_31){
206 var d=new AJSDeferred(req);
208 if(req.readyState==4){
214 if(_34==200||_34==304||req.responseText==null){
221 req.onreadystatechange=_33;
223 },reprString:function(o){
224 return ("\""+o.replace(/(["\\])/g,"\\$1")+"\"").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r");
225 },serializeJSON:function(o){
227 if(_37=="undefined"){
230 if(_37=="number"||_37=="boolean"){
239 return this.reprString(o);
241 var me=arguments.callee;
243 if(typeof (o.__json__)=="function"){
249 if(typeof (o.json)=="function"){
255 if(_37!="function"&&typeof (o.length)=="number"){
257 for(var i=0;i<o.length;i++){
259 if(typeof (val)!="string"){
264 return "["+res.join(",")+"]";
269 if(typeof (k)=="number"){
272 if(typeof (k)=="string"){
273 _3e=this.reprString(k);
279 if(typeof (val)!="string"){
282 res.push(_3e+":"+val);
284 return "{"+res.join(",")+"}";
285 },loadJSONDoc:function(url){
286 var d=this.getRequest(url);
287 var _41=function(req){
288 var _43=req.responseText;
289 return eval("("+_43+")");
293 },keys:function(obj){
299 },urlencode:function(str){
300 return encodeURIComponent(str.toString());
301 },isDefined:function(o){
302 return (o!="undefined"&&o!=null);
303 },isArray:function(obj){
305 return (typeof (obj.length)=="undefined")?false:true;
310 },isObject:function(obj){
311 return (obj&&typeof obj=="object");
312 },exportDOMElements:function(){
331 TEXTAREA=this.TEXTAREA;
339 },exportToGlobalScope:function(){
340 getElement=this.getElement;
341 getQueryArgument=this.getQueryArgument;
344 getElements=this.getElements;
345 getBody=this.getBody;
346 getElementsByTagAndClassName=this.getElementsByTagAndClassName;
347 appendChildNodes=this.appendChildNodes;
348 ACN=appendChildNodes;
349 replaceChildNodes=this.replaceChildNodes;
350 RCN=replaceChildNodes;
351 insertAfter=this.insertAfter;
352 insertBefore=this.insertBefore;
353 showElement=this.showElement;
354 hideElement=this.hideElement;
355 isElementHidden=this.isElementHidden;
356 swapDOM=this.swapDOM;
357 removeElement=this.removeElement;
359 createDOM=this.createDOM;
360 this.exportDOMElements();
361 getXMLHttpRequest=this.getXMLHttpRequest;
362 doSimpleXMLHttpRequest=this.doSimpleXMLHttpRequest;
363 getRequest=this.getRequest;
364 sendXMLHttpRequest=this.sendXMLHttpRequest;
365 reprString=this.reprString;
366 serializeJSON=this.serializeJSON;
367 loadJSONDoc=this.loadJSONDoc;
369 isDefined=this.isDefined;
370 isArray=this.isArray;
372 AJSDeferred=function(req){
375 this.callback=function(res){
376 while(this.callbacks.length>0){
377 var fn=this.callbacks.pop();
381 this.errback=function(e){
382 alert("Error encountered:\n"+e);
384 this.addErrback=function(fn){
387 this.addCallback=function(fn){
388 this.callbacks.unshift(fn);
390 this.addCallbacks=function(fn1,fn2){
391 this.addCallback(fn1);
392 this.addErrback(fn2);
394 this.sendReq=function(_53){
395 if(AJS.isObject(_53)){
398 _54.push(k+"="+AJS.urlencode(_53[k]));
403 if(AJS.isDefined(_53)){
411 AJSDeferred.prototype=new AJSDeferred();
412 var GOOGIE_CUR_LANG="en";
413 function GoogieSpell(_55,_56){
416 _57=getCookie("language");
422 this.lang_to_word={"da":"Dansk","de":"Deutsch","en":"English","es":"Español","fr":"Français","it":"Italiano","nl":"Nederlands","pl":"Polski","pt":"Português","fi":"Suomi","sv":"Svenska"};
423 this.langlist_codes=AJS.keys(this.lang_to_word);
424 this.show_change_lang_pic=true;
425 this.lang_state_observer=null;
426 this.spelling_state_observer=null;
428 this.error_window=null;
429 this.language_window=null;
430 this.edit_layer=null;
431 this.orginal_text=null;
435 this.ta_scroll_top=0;
436 this.el_scroll_top=0;
437 this.lang_chck_spell="Check spelling";
438 this.lang_rsm_edt="Resume editing";
439 this.lang_close="Close";
440 this.lang_no_error_found="No spelling errors found";
441 this.lang_revert="Revert to";
442 this.show_spell_img=false;
444 GoogieSpell.prototype.setStateChanged=function(_59){
445 if(this.spelling_state_observer!=null){
446 this.spelling_state_observer(_59);
449 GoogieSpell.item_onmouseover=function(e){
450 var elm=GoogieSpell.getEventElm(e);
451 if(elm.className!="googie_list_close"&&elm.className!="googie_list_revert"){
452 elm.className="googie_list_onhover";
454 elm.parentNode.className="googie_list_onhover";
457 GoogieSpell.item_onmouseout=function(e){
458 var elm=GoogieSpell.getEventElm(e);
459 if(elm.className!="googie_list_close"&&elm.className!="googie_list_revert"){
460 elm.className="googie_list_onout";
462 elm.parentNode.className="googie_list_onout";
465 GoogieSpell.prototype.getGoogleUrl=function(){
466 return this.server_url+GOOGIE_CUR_LANG;
468 GoogieSpell.prototype.spellCheck=function(elm,_5f){
469 this.ta_scroll_top=this.text_area.scrollTop;
470 this.appendIndicator(elm);
472 this.hideLangWindow();
477 this.createEditLayer(this.text_area.offsetWidth,this.text_area.offsetHeight);
478 this.createErrorWindow();
479 AJS.getBody().appendChild(this.error_window);
481 netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
485 this.gselm.onclick=null;
486 this.orginal_text=this.text_area.value;
488 var d=AJS.getRequest(this.getGoogleUrl());
489 var _62=function(req){
490 var _64=req.responseText;
491 if(_64.match(/<c.*>/)!=null){
492 var _65=GoogieSpell.parseResult(_64);
494 me.showErrorsInIframe(_65);
495 me.resumeEditingState();
497 me.flashNoSpellingErrorState();
499 me.removeIndicator();
501 var _66=function(req){
502 alert("An error was encountered on the server. Please try again later.");
503 AJS.removeElement(me.gselm);
504 me.checkSpellingState();
505 me.removeIndicator();
509 var _68=GoogieSpell.escapeSepcial(this.orginal_text);
510 d.sendReq(GoogieSpell.createXMLReq(_68));
512 GoogieSpell.escapeSepcial=function(val){
513 return val.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");
515 GoogieSpell.createXMLReq=function(_6a){
516 return "<?xml version=\"1.0\" encoding=\"utf-8\" ?><spellrequest textalreadyclipped=\"0\" ignoredups=\"0\" ignoredigits=\"1\" ignoreallcaps=\"1\"><text>"+_6a+"</text></spellrequest>";
518 GoogieSpell.parseResult=function(_6b){
521 var _6e=_6b.match(/<c[^>]*>[^<]*<\/c>/g);
523 for(var i=0;i<_6e.length;i++){
525 _71["attrs"]=new Array();
526 var _72=_6e[i].match(_6c);
527 for(var j=0;j<_72.length;j++){
528 var _74=_72[j].split(/=/);
529 _71["attrs"][_74[0]]=parseInt(_74[1].replace("\"",""));
531 _71["suggestions"]=new Array();
532 var _75=_6e[i].replace(/<[^>]*>/g,"");
533 var _76=_75.split(_6d);
534 for(var k=0;k<_76.length;k++){
536 _71["suggestions"].push(_76[k]);
543 GoogieSpell.prototype.createErrorWindow=function(){
544 this.error_window=AJS.DIV();
545 this.error_window.className="googie_window";
547 GoogieSpell.prototype.hideErrorWindow=function(){
548 this.error_window.style.visibility="hidden";
550 GoogieSpell.prototype.updateOrginalText=function(_78,_79,_7a,id){
551 var _7c=this.orginal_text.substring(0,_78);
552 var _7d=this.orginal_text.substring(_78+_79.length);
553 this.orginal_text=_7c+_7a+_7d;
554 var _7e=_7a.length-_79.length;
555 for(var j=0;j<this.results.length;j++){
557 this.results[j]["attrs"]["o"]+=_7e;
561 GoogieSpell.prototype.saveOldValue=function(id,_81){
562 this.results[id]["is_changed"]=true;
563 this.results[id]["old_value"]=_81;
565 GoogieSpell.prototype.showErrorWindow=function(elm,id){
567 var _85=GoogieSpell.absolutePosition(elm);
568 _85.y-=this.edit_layer.scrollTop;
569 this.error_window.style.visibility="visible";
570 this.error_window.style.top=(_85.y+20)+"px";
571 this.error_window.style.left=(_85.x)+"px";
572 this.error_window.innerHTML="";
573 var _86=AJS.TABLE({"class":"googie_list"});
575 var _88=this.results[id]["suggestions"];
576 var _89=this.results[id]["attrs"]["o"];
577 var len=this.results[id]["attrs"]["l"];
582 _8c.appendChild(AJS.TN("No suggestions :("));
583 row.appendChild(_8c);
584 _87.appendChild(row);
586 for(i=0;i<_88.length;i++){
590 _8d.innerHTML=_88[i];
591 _8c.appendChild(AJS.TN(_8d.innerHTML));
592 _8c.onclick=function(e){
593 var _8f=GoogieSpell.getEventElm(e);
594 var _90=elm.innerHTML;
595 var _91=_8f.innerHTML;
596 elm.style.color="green";
597 elm.innerHTML=_8f.innerHTML;
598 me.hideErrorWindow();
599 me.updateOrginalText(_89,_90,_91,id);
600 me.results[id]["attrs"]["l"]=_91.length;
601 me.saveOldValue(id,_90);
603 _8c.onmouseover=GoogieSpell.item_onmouseover;
604 _8c.onmouseout=GoogieSpell.item_onmouseout;
605 row.appendChild(_8c);
606 _87.appendChild(row);
608 if(this.results[id]["is_changed"]){
609 var _92=this.results[id]["old_value"];
610 var _89=this.results[id]["attrs"]["o"];
613 _94.onmouseover=GoogieSpell.item_onmouseover;
614 _94.onmouseout=GoogieSpell.item_onmouseout;
615 var _95=AJS.SPAN({"class":"googie_list_revert"});
616 _95.innerHTML=this.lang_revert+" "+_92;
617 _94.appendChild(_95);
618 _94.onclick=function(e){
619 me.updateOrginalText(_89,elm.innerHTML,_92,id);
620 elm.style.color="#b91414";
622 me.hideErrorWindow();
624 _93.appendChild(_94);
625 _87.appendChild(_93);
629 var _99=AJS.INPUT({"style":"width: 120px; margin:0; padding:0"});
632 me.saveOldValue(id,elm.innerHTML);
633 me.updateOrginalText(_89,elm.innerHTML,_99.value,id);
634 elm.style.color="green";
635 elm.innerHTML=_99.value;
636 me.hideErrorWindow();
640 var _9b=AJS.IMG({"src":this.img_dir+"ok.gif","style":"width: 32px; height: 16px; margin-left: 2px; margin-right: 2px;"});
641 var _9c=AJS.FORM({"style":"margin: 0; padding: 0"},_99,_9b);
644 _98.appendChild(_9c);
645 _97.appendChild(_98);
646 _87.appendChild(_97);
649 _9e.onmouseover=GoogieSpell.item_onmouseover;
650 _9e.onmouseout=GoogieSpell.item_onmouseout;
651 var _9f=AJS.SPAN({"class":"googie_list_close"});
652 _9f.innerHTML=this.lang_close;
653 _9e.appendChild(_9f);
654 _9e.onclick=function(){
655 me.hideErrorWindow();
657 _9d.appendChild(_9e);
658 _87.appendChild(_9d);
659 _86.appendChild(_87);
660 this.error_window.appendChild(_86);
662 GoogieSpell.prototype.createEditLayer=function(_a0,_a1){
663 this.edit_layer=AJS.DIV({"class":"googie_edit_layer"});
664 this.edit_layer.className=this.text_area.className;
665 this.edit_layer.style.border="1px solid #999";
666 this.edit_layer.style.overflow="auto";
667 this.edit_layer.style.backgroundColor="#F1EDFE";
668 this.edit_layer.style.padding="3px";
669 this.edit_layer.style.width=(_a0-8)+"px";
670 this.edit_layer.style.height=_a1+"px";
672 GoogieSpell.prototype.resumeEditing=function(e,me){
673 this.setStateChanged("check_spelling");
674 me.switch_lan_pic.style.display="inline";
675 this.el_scroll_top=me.edit_layer.scrollTop;
676 var elm=GoogieSpell.getEventElm(e);
677 AJS.replaceChildNodes(elm,this.createSpellDiv());
678 elm.onclick=function(e){
679 me.spellCheck(elm,me.text_area.id);
681 me.hideErrorWindow();
682 me.edit_layer.parentNode.removeChild(me.edit_layer);
683 me.text_area.value=me.orginal_text;
684 AJS.showElement(me.text_area);
685 me.gselm.className="googie_no_style";
686 me.text_area.scrollTop=this.el_scroll_top;
689 GoogieSpell.prototype.createErrorLink=function(_a6,id){
690 var elm=AJS.SPAN({"class":"googie_link"});
692 elm.onclick=function(){
693 me.showErrorWindow(elm,id);
698 GoogieSpell.createPart=function(_aa){
704 var _ad=(navigator.userAgent.toLowerCase().indexOf("safari")!=-1);
706 _aa=GoogieSpell.escapeSepcial(_aa);
707 _aa=_aa.replace(/\n/g,"<br>");
708 _aa=_aa.replace(/ /g," ");
709 _aa=_aa.replace(/^ /g," ");
710 _aa=_aa.replace(/ $/g," ");
714 GoogieSpell.prototype.showErrorsInIframe=function(_af){
716 _b0.style.textAlign="left";
718 for(var i=0;i<_af.length;i++){
719 var _b3=_af[i]["attrs"]["o"];
720 var len=_af[i]["attrs"]["l"];
721 var _b5=this.orginal_text.substring(_b1,_b3);
722 var _b6=GoogieSpell.createPart(_b5);
723 _b0.appendChild(_b6);
725 _b0.appendChild(this.createErrorLink(this.orginal_text.substr(_b3,len),i));
728 var _b7=this.orginal_text.substr(_b1,this.orginal_text.length);
729 var _b8=GoogieSpell.createPart(_b7);
730 _b0.appendChild(_b8);
731 this.edit_layer.appendChild(_b0);
732 AJS.hideElement(this.text_area);
733 this.text_area.parentNode.insertBefore(this.edit_layer,this.text_area.nextSibling);
734 this.edit_layer.scrollTop=this.ta_scroll_top;
736 GoogieSpell.Position=function(x,y){
740 GoogieSpell.absolutePosition=function(_bb){
741 var _bc=new GoogieSpell.Position(_bb.offsetLeft,_bb.offsetTop);
742 if(_bb.offsetParent){
743 var _bd=GoogieSpell.absolutePosition(_bb.offsetParent);
749 GoogieSpell.getEventElm=function(e){
766 GoogieSpell.prototype.removeIndicator=function(elm){
767 if(window.rcube_webmail_client){
768 rcube_webmail_client.set_busy(false);
771 GoogieSpell.prototype.appendIndicator=function(elm){
772 if(window.rcube_webmail_client){
773 rcube_webmail_client.set_busy(true,"checking");
776 GoogieSpell.prototype.createLangWindow=function(){
777 this.language_window=AJS.DIV({"class":"googie_window"});
778 this.language_window.style.width="130px";
779 var _c2=AJS.TABLE({"class":"googie_list"});
781 this.lang_elms=new Array();
782 for(i=0;i<this.langlist_codes.length;i++){
785 _c5.googieId=this.langlist_codes[i];
786 this.lang_elms.push(_c5);
788 _c6.innerHTML=this.lang_to_word[this.langlist_codes[i]];
789 _c5.appendChild(AJS.TN(_c6.innerHTML));
791 _c5.onclick=function(e){
792 var elm=GoogieSpell.getEventElm(e);
793 me.deHighlightCurSel();
794 me.setCurrentLanguage(elm.googieId);
795 if(me.lang_state_observer!=null){
796 me.lang_state_observer();
798 me.highlightCurSel();
801 _c5.onmouseover=function(e){
802 var _cb=GoogieSpell.getEventElm(e);
803 if(_cb.className!="googie_list_selected"){
804 _cb.className="googie_list_onhover";
807 _c5.onmouseout=function(e){
808 var _cd=GoogieSpell.getEventElm(e);
809 if(_cd.className!="googie_list_selected"){
810 _cd.className="googie_list_onout";
813 row.appendChild(_c5);
814 _c3.appendChild(row);
816 this.highlightCurSel();
819 _cf.onmouseover=GoogieSpell.item_onmouseover;
820 _cf.onmouseout=GoogieSpell.item_onmouseout;
821 var _d0=AJS.SPAN({"class":"googie_list_close"});
822 _d0.innerHTML=this.lang_close;
823 _cf.appendChild(_d0);
825 _cf.onclick=function(e){
827 GoogieSpell.item_onmouseout(e);
829 _ce.appendChild(_cf);
830 _c3.appendChild(_ce);
831 _c2.appendChild(_c3);
832 this.language_window.appendChild(_c2);
834 GoogieSpell.prototype.setCurrentLanguage=function(_d2){
837 now.setTime(now.getTime()+365*24*60*60*1000);
838 setCookie("language",_d2,now);
840 GoogieSpell.prototype.hideLangWindow=function(){
841 this.language_window.style.visibility="hidden";
842 this.switch_lan_pic.className="googie_lang_3d_on";
844 GoogieSpell.prototype.deHighlightCurSel=function(){
845 this.lang_cur_elm.className="googie_list_onout";
847 GoogieSpell.prototype.highlightCurSel=function(){
848 for(var i=0;i<this.lang_elms.length;i++){
849 if(this.lang_elms[i].googieId==GOOGIE_CUR_LANG){
850 this.lang_elms[i].className="googie_list_selected";
851 this.lang_cur_elm=this.lang_elms[i];
853 this.lang_elms[i].className="googie_list_onout";
857 GoogieSpell.prototype.showLangWindow=function(elm,_d6,_d7){
858 if(!AJS.isDefined(_d6)){
861 if(!AJS.isDefined(_d7)){
864 this.createLangWindow();
865 AJS.getBody().appendChild(this.language_window);
866 var _d8=GoogieSpell.absolutePosition(elm);
867 AJS.showElement(this.language_window);
868 this.language_window.style.top=(_d8.y+_d6)+"px";
869 this.language_window.style.left=(_d8.x+_d7-this.language_window.offsetWidth)+"px";
870 this.highlightCurSel();
871 this.language_window.style.visibility="visible";
873 GoogieSpell.prototype.flashNoSpellingErrorState=function(){
874 this.setStateChanged("no_error_found");
876 AJS.hideElement(this.switch_lan_pic);
877 this.gselm.innerHTML=this.lang_no_error_found;
878 this.gselm.className="googie_check_spelling_ok";
879 this.gselm.style.textDecoration="none";
880 this.gselm.style.cursor="default";
882 AJS.removeElement(me.gselm);
883 me.checkSpellingState();
887 GoogieSpell.prototype.resumeEditingState=function(){
888 this.setStateChanged("resume_editing");
890 AJS.hideElement(me.switch_lan_pic);
891 me.gselm.innerHTML=this.lang_rsm_edt;
892 me.gselm.onclick=function(e){
893 me.resumeEditing(e,me);
895 me.gselm.className="googie_check_spelling_ok";
896 me.edit_layer.scrollTop=me.ta_scroll_top;
898 GoogieSpell.prototype.createChangeLangPic=function(){
899 var _dd=AJS.A({"class":"googie_lang_3d_on","style":"padding-left: 6px;"},AJS.IMG({"src":this.img_dir+"change_lang.gif","alt":"Change language"}));
900 _dd.onmouseover=function(){
901 if(this.className!="googie_lang_3d_click"){
902 this.className="googie_lang_3d_on";
906 _dd.onclick=function(){
907 if(this.className=="googie_lang_3d_click"){
910 me.showLangWindow(_dd);
911 this.className="googie_lang_3d_click";
916 GoogieSpell.prototype.createSpellDiv=function(){
917 var _df=AJS.SPAN({"class":"googie_check_spelling_link"});
918 _df.innerHTML=this.lang_chck_spell;
920 if(this.show_spell_img){
921 _e0=AJS.IMG({"src":this.img_dir+"spellc.gif"});
923 return AJS.SPAN(_e0," ",_df);
925 GoogieSpell.prototype.checkSpellingState=function(){
926 this.setStateChanged("check_spelling");
928 if(this.show_change_lang_pic){
929 this.switch_lan_pic=this.createChangeLangPic();
931 this.switch_lan_pic=AJS.SPAN();
933 var _e2=this.createSpellDiv();
934 _e2.onclick=function(){
937 AJS.appendChildNodes(this.spell_container,_e2," ",this.switch_lan_pic);
940 GoogieSpell.prototype.setLanguages=function(_e3){
941 this.lang_to_word=_e3;
942 this.langlist_codes=AJS.keys(_e3);
944 GoogieSpell.prototype.decorateTextarea=function(id,_e5,_e6){
946 if(typeof (id)=="string"){
947 this.text_area=AJS.getElement(id);
952 if(this.text_area!=null){
953 if(AJS.isDefined(_e5)){
954 if(typeof (_e5)=="string"){
955 this.spell_container=AJS.getElement(_e5);
957 this.spell_container=_e5;
963 if(AJS.isDefined(_e6)){
966 _e8=this.text_area.offsetWidth+"px";
969 this.spell_container=_ec;
972 _e9.appendChild(_ea);
973 AJS.insertBefore(_e9,this.text_area);
974 _e9.style.width="100%";
976 _ec.style.textAlign="right";
978 this.checkSpellingState();
980 alert("Text area not found");