if(!window.ComponentArt_SpellCheck_Loaded){window.ComponentArt_SpellCheck=function(id){this.Id=id;this.element=this.DomElement=document.getElementById(id);if(window.ComponentArt_Atlas){ComponentArt.Web.UI.SpellCheck.initializeBase(this,[this.element]);this.getDescriptor=function(){return _zF0(this.constructor);};}};ComponentArt_SpellCheck.prototype.PublicProperties=["Id","IgnoreAcronyms","IgnoreEmailAddresses","IgnoreNonAlphabetic","IgnoreURLs","SpellSuggestionDepth"];ComponentArt_SpellCheck.prototype.PublicMethods=[["Add",,null,[["word",String]]],["AddToDictionary",,null,[["text",String],["checkResult",Array],["errorIndex",Number]]],["Cancel"],["Change",,null,[["text",String],["checkResult",Array],["errorIndex",Number],["replacementWord",String]]],["ChangeAll",,null,[["text",String],["checkResult",Array],["errorIndex",Number],["replacementWord",String]]],["Check",,null,[["text",String]]],["DialogAdd"],["DialogBegin"],["DialogChange"],["DialogChangeAll"],["DialogClose"],["DialogIgnore"],["DialogIgnoreAll"],["GetError",,null,[["index",Number]]],["GetSuggestions",,null,[["word",String]]],["Ignore",,null,[["text",String],["checkResult",Array],["errorIndex",Number]]],["IgnoreAll",,null,[["text",String],["checkResult",Array],["errorIndex",Number]]]];ComponentArt_SpellCheck.prototype.PublicEvents=[["DialogUpdateNeeded"],["DialogComplete"],["Load"]];_zEF(ComponentArt_SpellCheck,"this");window.ComponentArt.Web.UI.SpellCheck=window.ComponentArt_SpellCheck;if(window.ComponentArt_Atlas){ComponentArt.Web.UI.SpellCheck.registerClass("ComponentArt.Web.UI.SpellCheck",Sys.UI.Control);if(Sys.TypeDescriptor){Sys.TypeDescriptor.addType("componentArtWebUI","spellCheck",ComponentArt.Web.UI.SpellCheck);}}ComponentArt_SpellCheck.prototype.GetProperty=function(_2){return this[_2];};ComponentArt_SpellCheck.prototype.SetProperty=function(_3,_4){this[_3]=_4;};ComponentArt_SpellCheck.prototype.Add=function(_5){this.Callback(_5,"add");};ComponentArt_SpellCheck.prototype.AddToDictionary=function(_6,_7,_8){if(!_7){_7=this.CheckResult;}var _9=_7[_8][0];this.Add(_9);};ComponentArt_SpellCheck.prototype.AdjustPaths=function(_a,_b,_c){var _d=_a[_b][3];for(var i=_b+1;i<_a.length;i++){if(_a[i]){var _f=_a[i][3];if(_f.length>=_d.length){if(_f.slice(0,_d.length-1).toString()==_d.slice(0,_d.length-1).toString()){_f[_d.length-1]+=_c;}}}}};ComponentArt_SpellCheck.prototype.Callback=function(_10,cmd,_12,_13){var _14=true;var _15="text="+encodeURIComponent(_10);if(!_12){_12=this.DefaultLanguage;}var url=this.CallbackUrl+"?lang="+_12+"&cmd="+cmd;if(cmd=="suggest"){url+="&sd="+this.SpellSuggestionDepth+"&ms="+this.MaxSuggestions;}else{if(cmd=="check"){if(this.IgnoreAcronyms){url+="&iga=1";}if(this.IgnoreEmailAddresses){url+="&ige=1";}if(this.IgnoreNonAlphabetic){url+="&igna=1";}if(this.IgnoreURLs){url+="&igu=1";}}}var _17=this;var _18=false;var _19;var _1a=null;function Cleanup(){_17.CallingBack=false;switch(cmd){case "check":_17.HandleCheckComplete(_10,_1a);break;case "suggest":_17.HandleSuggestComplete(_10,_1a);break;default:break;}if(_13){_13(_1a);}}function _z19F(){if(_19.readyState&&_19.readyState!=4&&_19.readyState!="complete"){return;}var _1b=_18?_19.responseXML:_19;if(_1b&&_1b.documentElement&&_1b.documentElement.childNodes.length==1){var _1c=_1b.documentElement.childNodes[0];if(_1c.nodeName=="SpellError"){var _1d=_1c.nodeValue;alert("Callback error:\n"+_1d);}else{var _1e=_1c.nodeValue;_1a=eval(_1e);if(_1a){_1a.SpellCheck=_17;}}}else{if(_19.status&&_19.status!=200&&_19.responseText){document.body.innerHTML=_19.responseText;}else{alert("Error loading callback data.");}}Cleanup();}this.CallingBack=true;if(window.XMLHttpRequest){_18=true;var _19=new XMLHttpRequest();_19.onreadystatechange=_z19F;_19.open("POST",url,true);_19.setRequestHeader("Content-Type","application/x-www-form-urlencoded");_19.send(_15);}else{if(document.implementation&&document.implementation.createDocument){_19=document.implementation.createDocument("","",null);_19.onload=_z19F;}else{if(cart_browser_ie){if(window.ActiveXObject){try{_19=new ActiveXObject("Microsoft.XMLHTTP");_19.onreadystatechange=_z19F;_19.open("POST",url,true);_19.setRequestHeader("Content-Type","application/x-www-form-urlencoded");_19.send(_15);_18=true;}catch(ex){}}if(_19==null){var _1f=this.Id+"_island";var _20=document.getElementById(_1f);if(!_20){_20=document.createElement("xml");_20.id=_1f;document.body.appendChild(_20);}if(_20.XMLDocument){_19=_20.XMLDocument;_19.onreadystatechange=_z19F;}else{return false;}}}else{return false;}}}if(!_18){_19.async=true;try{_19.load(url+"&"+_15);}catch(ex){Cleanup();alert("Data not loaded: "+(ex.message?ex.message:ex));}}return true;};ComponentArt_SpellCheck.prototype.Cancel=function(){this.CleanTarget(this.CheckResult);this.CheckResult=null;};ComponentArt_SpellCheck.prototype.Change=function(_21,_22,_23,_24){if(!_22){_22=this.CheckResult;}if(_22.length<=_23||_23<0||!_22[_23]){return;}var _25=null;if(this.ControlToCheck){_25=this.GetTargetElement(this.ControlToCheck);}var _26=_22[_23];var _27=_26[0];var _28=_26[1];var _29=_26[2];var _2a=_26[3];if(!_21&&_25){_21=_25.value;}var _2b=null;if(_21&&!_2a){var _2c=_24.length-_27.length;_2b=_21.substring(0,_28)+_24+_21.substring(_29);for(var i=_23+1;i<_22.length;i++){if(_22[i]){_22[i][1]+=_2c;_22[i][2]+=_2c;}}if(_25){_25.value=_2b;}}else{if(_2a){var o=_25;for(var i=0;i<_2a.length;i++){o=o.childNodes[_2a[i]];}o.nodeValue=o.nodeValue+_24+o.nextSibling.nextSibling.nodeValue;_zF3(o.nextSibling);_zF3(o.nextSibling);this.AdjustPaths(_22,_23,-2);}}_22[_23]=null;return _2b;};ComponentArt_SpellCheck.prototype.ChangeAll=function(_2f,_30,_31,_32){if(!_30){_30=this.CheckResult;}var _33=_30[_31][0];for(var i=0;i<_30.length;i++){if(_30[i]&&_30[i][0]==_33){this.Change(_2f,_30,i,_32);}}};ComponentArt_SpellCheck.prototype.Check=function(_35,_36){if(this.CheckResult){this.Cancel();}if(!_35){_35=this.GetText();}if(_35){this.Callback(_35,"check",this.DefaultLanguage,_36);}};ComponentArt_SpellCheck.prototype.CleanTarget=function(_37){if(this.ControlToCheck){var _38=this.GetTargetElement(this.ControlToCheck);if(_38&&_38.ComponentArtSpellInline){for(var i=_37.length-1;i>=0;i--){var _3a=this.GetHighlightedWord(_38,_37,i);if(_3a&&_3a.nodeName=="SPAN"){_3a.parentNode.replaceChild(_3a.firstChild,_3a);}}}}};ComponentArt_SpellCheck.prototype.DialogAdd=function(_3b){if(!_3b){_3b=this.CheckResult[this.CurrentError][0];}this.Add(_3b);this.Ignore(null,this.CheckResult,this.CurrentError);this.DialogMoveNext();};ComponentArt_SpellCheck.prototype.DialogBegin=function(){this.CurrentError=0;if(!this.CheckResult||this.CurrentError>=this.CheckResult.length){this.DialogFinish();return false;}this.DialogUpdate();return true;};ComponentArt_SpellCheck.prototype.DialogChange=function(_3c){if(_3c){this.Change(null,this.CheckResult,this.CurrentError,_3c);this.DialogMoveNext();}};ComponentArt_SpellCheck.prototype.DialogChangeAll=function(_3d){if(_3d){this.ChangeAll(null,this.CheckResult,this.CurrentError,_3d);this.DialogMoveNext();}};ComponentArt_SpellCheck.prototype.DialogClose=function(){this.CleanTarget(this.CheckResult);};ComponentArt_SpellCheck.prototype.DialogFinish=function(){var _3e=this.get_events().getHandler("dialogComplete");if(_3e){_3e(this,Sys.EventArgs.Empty);}this.DialogClose();};ComponentArt_SpellCheck.prototype.DialogGetErrorsHtml=function(){return this.GetErrorsHtml(null,this.CheckResult,this.CurrentError);};ComponentArt_SpellCheck.prototype.DialogGetSuggestions=function(_3f){this.GetSuggestions(this.CheckResult[this.CurrentError][0],_3f);};ComponentArt_SpellCheck.prototype.DialogIgnore=function(){this.Ignore(null,this.CheckResult,this.CurrentError);this.DialogMoveNext();};ComponentArt_SpellCheck.prototype.DialogIgnoreAll=function(){this.IgnoreAll(null,this.CheckResult,this.CurrentError);this.DialogMoveNext();};ComponentArt_SpellCheck.prototype.DialogMoveNext=function(){this.CurrentError++;if(!this.CheckResult||this.CurrentError>=this.CheckResult.length){this.DialogFinish();return;}else{if(!this.CheckResult[this.CurrentError]){this.DialogMoveNext();return;}}this.DialogUpdate();};ComponentArt_SpellCheck.prototype.DialogSuggestionChange=function(_40,_41){var _42=document.getElementById(_40);if(_42){var _43=document.getElementById(_41);if(_43){_43.value=_42.options[_42.selectedIndex].text;}}};ComponentArt_SpellCheck.prototype.DialogUpdate=function(){var _44=this.get_events().getHandler("dialogUpdateNeeded");if(_44){_44(this,Sys.EventArgs.Empty);}};ComponentArt_SpellCheck.prototype.GetContextMenu=function(){if(this.ContextMenuId){var _45=window[this.ContextMenuId];if(_45){if(!_45.get_events().getHandler("itemSelect")){var _46=function(_47,_48){arguments.callee.SpellCheck.HandleContextMenuSelect(_47,_48);};_46.SpellCheck=this;_45.get_events().addHandler("itemSelect",_46);}if(!this.ContextMenuItems){this.ContextMenuItems=[];var _49=_45.get_items().get_itemArray();for(var i=0;i<_49.length;i++){this.ContextMenuItems[this.ContextMenuItems.length]=_49[i];}}return _45;}}return null;};ComponentArt_SpellCheck.prototype.GetErrorsHtml=function(_4b,_4c,_4d){if(!_4b){if(this.ControlToCheck){var _4e=this.GetTargetElement(this.ControlToCheck);if(_4e){if(_4e.value){_4b=_4e.value;}}}}if(_4b){var _4f=[];var _50=0;for(var i=0;i<_4c.length;i++){if(_4c[i]&&!((_4d||_4d==0)&&_4d!=i)){var _52=_4c[i][1];var _53=_4c[i][2];_4f[_4f.length]=_4b.substring(_50,_52);_4f[_4f.length]="<span id=\""+this.Id+"_CurrentError\" class=\""+this.ErrorCssClass+"\">"+_4b.substring(_52,_53)+"</span>";_50=_53;}}_4f[_4f.length]=_4b.substring(_50);return _4f.join("");}else{var _4e=this.GetTargetElement(this.ControlToCheck);if(_4e.ComponentArtSpellInline){var obj=document.createElement("div");obj.innerHTML=_4e.innerHTML;var _55=this.GetHighlightedWord(obj,_4c,_4d);return _55?_55.parentNode.innerHTML:"";}else{return _4e.innerHTML;}}return "";};ComponentArt_SpellCheck.prototype.GetHighlightedWord=function(_56,_57,num){var _59=_57[num];if(!_59){return;}var _5a=_59[3];if(!_5a){return;}var o=_56;for(var i=0;i<_5a.length&&o;i++){o=o.childNodes[_5a[i]];}return o&&o.nextSibling?o.nextSibling:o;};ComponentArt_SpellCheck.prototype.get_numErrors=function(){return this.CheckResult?this.CheckResult.length:0;};ComponentArt_SpellCheck.prototype.GetError=function(_5d){return this.CheckResult&&this.CheckResult.length>_5d&&this.CheckResult[_5d]?this.CheckResult[_5d][0]:null;};ComponentArt_SpellCheck.prototype.GetSuggestions=function(_5e,_5f){this.Callback(_5e,"suggest",this.DefaultLanguage,_5f);};ComponentArt_SpellCheck.prototype.GetTargetElement=function(id){var _61=null;if(window[id]){var obj=window[id];if(window.ComponentArt_Editor&&obj instanceof ComponentArt_Editor){_61=obj.document.body;}else{if(obj.element){_61=obj.element;}else{if(obj.nodeName){return obj;}}}}else{_61=document.getElementById(id);}return _61;};ComponentArt_SpellCheck.prototype.GetText=function(){if(this.ControlToCheck){var _63=this.GetTargetElement(this.ControlToCheck);if(_63){if(_63.value){return _63.value;}else{if(_63.childNodes.length>0){var _64=[];this.GetTextFromDom(_63,_64,[]);return _64.join("\x00");}}}}return "";};ComponentArt_SpellCheck.prototype.GetTextFromDom=function(_65,_66,_67){if(_65.ComponentArtSpellError){return;}for(var i=0;i<_65.childNodes.length;i++){if(_65.childNodes[i].nodeName=="#text"){var _69=_65.childNodes[i].nodeValue;if(_69.replace(/^\s+|\s+$/g,"")){_66[_66.length]=_67.concat(i).join(",")+"\x00"+_69;}}else{if(_65.childNodes[i].childNodes.length>0){this.GetTextFromDom(_65.childNodes[i],_66,_67.concat(i));}}}};ComponentArt_SpellCheck.prototype.HandleContextMenuSelect=function(_6a,_6b){var _6c=_6b.get_item();var _6d=_6c.get_value();if(_6d){_6d=_6d.toLowerCase();}switch(_6d){case "change":this.Change(null,null,_6a.get_contextData(),_6c.get_text());break;case "add":this.Add(_6c.get_text());this.IgnoreAll(null,null,_6a.get_contextData());break;case "ignoreall":this.IgnoreAll(null,null,_6a.get_contextData());break;default:break;}};ComponentArt_SpellCheck.prototype.HandleCheckComplete=function(_6e,_6f){var _70={"INPUT":1,"SELECT":1,"TEXTAREA":1};this.CheckResult=_6f;if(this.ControlToCheck){var _71=this.GetTargetElement(this.ControlToCheck);if(!_70[_71.nodeName]){_71.ComponentArtSpellInline=true;for(var i=_6f.length-1;i>=0;i--){this.HighlightWord(_71,_6f,i);}}}};ComponentArt_SpellCheck.prototype.HandleErrorClick=function(e,_74,num){if(cart_browser_ie){e=event;}var _76=this.Id+"_ContextMenu";var sc=this;var evt=new Object();for(i in e){evt[i]=e[i];}function SuggestComplete(_79){var _7a=sc.GetContextMenu();if(_7a){_7a.beginUpdate();_7a.get_items().clear();if(_79.length==0){var _7b=new ComponentArt.Web.UI.MenuItem();_7b.set_text("(no suggestions)");_7b.set_enabled(false);_7a.get_items().add(_7b);}else{for(var i=0;i<_79.length;i++){var _7b=new ComponentArt.Web.UI.MenuItem();_7b.set_text(_79[i]);_7b.set_value("change");_7a.get_items().add(_7b);}}for(var i=0;i<sc.ContextMenuItems.length;i++){_7a.get_items().add(sc.ContextMenuItems[i]);}_7a.endUpdate();_7a.showContextMenu(evt,num);}}this.GetSuggestions(_74,SuggestComplete);};ComponentArt_SpellCheck.prototype.HandleSuggestComplete=function(_7d,_7e){};ComponentArt_SpellCheck.prototype.HighlightWord=function(_7f,_80,num){var _82=_80[num];if(!_82){return;}var _83=_82[0];var _84=_82[1];var end=_82[2];var _86=_82[3];if(!_86){return;}var o=_7f;for(var i=0;i<_86.length;i++){o=o.childNodes[_86[i]];}var _89=o.nodeValue;var _8a=_89.substring(0,_84);var _8b=_89.substring(end);o.nodeValue=_8a;var _8c=_7f.ownerDocument.createElement("span");_8c.className=this.ErrorCssClass;var _8d=function(_8e){arguments.callee.SpellCheck.HandleErrorClick(_8e,arguments.callee.word,arguments.callee.num);};_8d.SpellCheck=this;_8d.word=_83;_8d.num=num;_8c.onclick=_8d;_8c.ComponentArtSpellError=true;_8c.innerHTML=_83;var _8f=o.cloneNode(false);_8f.nodeValue=_8b;o.parentNode.insertBefore(_8c,o.nextSibling);o.parentNode.insertBefore(_8f,_8c.nextSibling);this.AdjustPaths(_80,num,2);return _8c;};ComponentArt_SpellCheck.prototype.Ignore=function(_90,_91,_92){if(!_91){_91=this.CheckResult;}var _93=_91[_92];if(!_93){return;}var _94=_93[0];this.Change(_90,_91,_92,_94);};ComponentArt_SpellCheck.prototype.IgnoreAll=function(_95,_96,_97){if(!_96){_96=this.CheckResult;}var _98=_96[_97][0];for(var i=0;i<_96.length;i++){if(_96[i]&&_96[i][0]==_98){this.Ignore(_95,_96,i);}}};ComponentArt_SpellCheck.prototype.Initialize=function(){_z132(this);var _9a=this.get_events().getHandler("load");if(_9a){_9a(this,Sys.EventArgs.Empty);}};window.ComponentArt_SpellCheck_Loaded=true;}
