﻿Type.registerNamespace("Telerik.Web.UI");
Type.registerNamespace("Telerik.Web.UI.Editor");
Telerik.Web.UI.Editor.DefaultToolAdapter=function(_1){
Telerik.Web.UI.Editor.DefaultToolAdapter.initializeBase(this,[_1]);
this._editor=null;
this._toolJSON=[];
this._tools=[];
this.isIE=Telerik.Web.Browser.isIE;
};
Telerik.Web.UI.Editor.DefaultToolAdapter._visibleWrapper=null;
Telerik.Web.UI.Editor.DefaultToolAdapter.prototype={initialize:function(){
this._onEditorSelectionChangeDelegate=Function.createDelegate(this,this._onEditorSelectionChange);
this._onEditorModeChangeDelegate=Function.createDelegate(this,this._onEditorModeChange);
this._onToolAdapterClickDelegate=Function.createDelegate(this,this._onToolBarClick);
this._onToolAdapterKeyDownDelegate=Function.createDelegate(this,this._onKeyDownHandler);
this._onDropDownValueSelectedDelegate=Function.createDelegate(this,this._onDropDownValueSelected);
this._onDropDownBeforeShowDelegate=Function.createDelegate(this,this._onDropDownBeforeShow);
this._onDropDownHideDelegate=Function.createDelegate(this,this._onDropDownHide);
this._initToolbarMode();
this._initContextMenus();
this._registerEditorHandlers();
},_initToolbarMode:function(){
var _2=this.get_editor();
var _3=this.get_element();
var _4=Telerik.Web.UI.EditorToolbarMode;
var _5=_2.get_toolbarMode();
if(_5!=_4.Default){
_3.style.visibility="hidden";
}
this._initToolbars();
if(_5!=_4.Default){
this._createWindowWrapper();
if(_5==_4.ShowOnFocus){
this._initShowOnFocus();
}else{
if(_5==_4.PageTop){
this._initPageTop();
}else{
if(_5==_4.Floating){
this._initFloating();
}
}
}
_3.style.visibility="visible";
}
},_createWindowWrapper:function(){
if(!this._toolbarHolder){
var _6=this.get_editor();
var _7=_6.get_dialogOpener().get_container().clone(_6.get_id()+"_toolbarMode");
_7.set_visibleStatusbar(false);
var _8=this.get_element();
_8.style.overflow="";
_8.style.height="";
var _9=_8.offsetWidth;
var _a=_8.offsetHeight;
_7.setSize(_9+10,"");
_7.set_contentElement(_8);
_8.style.width="100%";
this._toolbarHolder=_7;
}
return this._toolbarHolder;
},_createFloatingButton:function(){
this._onToggleFloatingToolbarDelegate=Function.createDelegate(this,this._onToggleFloatingToolbar);
var _b=this.get_editor();
var _c=_b.get_skin();
var _d={name:"ToggleFloatingToolbar",addClickHandler:true,skin:_c};
var _e={"valueSelected":this._onToggleFloatingToolbarDelegate};
var _f=Telerik.Web.UI.EditorButton.createTool(_d,_e);
var _10=Telerik.Web.UI.EditorButton.createToolWrapper(_f,_c);
var _11=$get(_b.get_id()+"Top");
if(_11){
_11.appendChild(_10);
}
},_onToggleFloatingToolbar:function(){
var _12=!this._toolbarHolder.isVisible();
this._showToolbarHolder(_12);
},_positionToolbarAboveEditor:function(){
var wnd=this._toolbarHolder;
var _14=this.get_editor();
var _15=Telerik.Web.DomElement.getBounds(_14.get_element());
var x=_15.x;
var y=_15.y-wnd.getWindowBounds().height;
wnd.moveTo(x,y);
},_positionOnPageTop:function(){
var wnd=this._toolbarHolder;
var _19=wnd._getViewportBounds();
var x=_19.scrollLeft;
var y=_19.scrollTop;
wnd.moveTo(x,y);
wnd.set_width(_19.width-10);
if(!wnd.isPinned()){
wnd.togglePin();
}
},_showToolbarHolder:function(_1c){
if(!_1c){
this._toolbarHolder.hide();
return;
}
var _1d=Telerik.Web.UI.Editor.DefaultToolAdapter._visibleWrapper;
if(_1d==this&&_1d._toolbarHolder&&_1d._toolbarHolder.isVisible()){
_1d._toolbarHolder.setActive(true);
return;
}
if(_1d&&_1d._showToolbarHolder){
_1d._showToolbarHolder(false);
}
Telerik.Web.UI.Editor.DefaultToolAdapter._visibleWrapper=this;
this._toolbarHolder.show();
var _1e=this.get_editor();
var _1f=Telerik.Web.UI.EditorToolbarMode;
var _20=_1e.get_toolbarMode();
if(_20==_1f.ShowOnFocus){
this._positionToolbarAboveEditor();
}else{
if(_20==_1f.PageTop){
this._positionOnPageTop();
}else{
if(_20==_1f.Floating){
if(!this._wasShown){
this._positionToolbarAboveEditor();
this._wasShown=true;
}
}
}
}
},_initFloating:function(){
this._createFloatingButton();
},_initPageTop:function(){
var wnd=this._toolbarHolder;
wnd.set_behaviors(Telerik.Web.UI.WindowBehaviors.None);
wnd.set_visibleTitlebar(false);
this._initToolbarModeEvents();
},_initShowOnFocus:function(){
var wnd=this._toolbarHolder;
var _23=Telerik.Web.UI.WindowBehaviors;
wnd.set_behaviors(_23.Resize);
wnd.set_visibleTitlebar(false);
this._initToolbarModeEvents();
},_initToolbarModeEvents:function(){
var _24=this;
var _25=function(){
_24._showToolbarHolder(true);
};
var _26=this.get_editor();
if(_26.isIE){
window.setTimeout(function(){
_26.attachEventHandler("beforeeditfocus",_25);
},0);
}else{
_26.add_selectionChange(_25);
}
_26.add_modeChange(function(){
_24._showToolbarHolder(_24.get_editor().get_mode()==Telerik.Web.UI.EditModes.Design);
});
_26.add_submit(function(){
_24._showToolbarHolder(false);
});
this._bodyClickDelegate=Function.createDelegate(this,this._onBodyClick);
$addHandler(document.body,"click",this._bodyClickDelegate);
},_onBodyClick:function(){
this._showToolbarHolder(false);
},_disposeToolbarModeHandlers:function(){
if(this._bodyClickDelegate){
$removeHandler(document.body,"click",this._bodyClickDelegate);
this._bodyClickDelegate=null;
}
},_initToolbars:function(){
var _27=this.get_element();
var _28=_27.parentNode;
var _29=false;
if(Telerik.Web.Browser.isIE){
var _2a=Telerik.Web.UI.Editor.Utils.getInvisibleParent(_28);
_29=(_2a!=null);
if(_29){
_27.parentNode.removeChild(_27);
_27.style.position="absolute";
_27.style.top="-5000px";
_27.style.left="-5000px";
document.body.appendChild(_27);
}
}
var _2b=this.get_toolJSON();
var _2c=this._getToolBarElements();
for(var i=0;i<_2b.length;i++){
this._initializeToolbar(_2b[i],_2c[i]);
}
if(_29){
_27.style.position="";
_27.style.top="";
_27.style.left="";
_27.parentNode.removeChild(_27);
_28.appendChild(_27);
}
},_initContextMenus:function(){
var _2e=Function.createDelegate(this,function(e){
if(this.get_editor().get_mode()!=Telerik.Web.UI.EditModes.Design){
return;
}
this.createContextMenus();
var _30=e.srcElement?e.srcElement:e.target;
var _31=_30.tagName;
var _32=this._contextMenus[_31];
if("TH"==_31&&!_32){
_32=this._contextMenus["TD"];
}
var _33="";
if(!_32){
var _34=Telerik.Web.UI.Editor.Utils.getElementParentByTag(_30,"A");
if(!_34){
_34=Telerik.Web.UI.Editor.Utils.getElementParentByTag(_30,"TD");
}
if(!_34){
_34=Telerik.Web.UI.Editor.Utils.getElementParentByTag(_30,"TABLE");
}
if(_34){
_33=_34.tagName;
_30=_34;
}else{
_33="*";
}
_32=this._contextMenus[_33];
}
if(_32&&_31=="IMG"&&_30&&"true"==_30.getAttribute("isflash")){
_32=null;
}
if(_32){
_32.set_eventObject(e);
_32.show();
}
return Telerik.Web.DomElement.cancelRawEvent(e);
});
var _35=this.get_editor();
window.setTimeout(function(){
_35.attachEventHandler("contextmenu",_2e);
},0);
},createContextMenus:function(){
if(this._contextMenus){
return;
}
this._contextMenus={};
var _36=this.get_editor();
var _37=_36.get_skin();
var _38=_36.get_contextMenusJSON();
var _39={"valueSelected":this._onDropDownValueSelectedDelegate,"show":this._onDropDownBeforeShowDelegate,"hide":this._onDropDownHideDelegate};
for(var i=0;i<_38.length;i++){
var _3b=_38[i];
_3b["sizetofit"]=true;
_3b["parentElement"]=_36.get_contentAreaElement();
_3b["skin"]=_37;
var _3c=$create(Telerik.Web.UI.EditorContextMenu,_3b,_39,null,document.createElement("SPAN"));
this._contextMenus[_3b.tagName]=_3c;
}
},dispose:function(){
var _3d=this._getToolBarElements();
for(var i=0;i<_3d.length;i++){
$clearHandlers(_3d[i]);
}
this._tools=[];
this._disposeToolbarModeHandlers();
Telerik.Web.UI.Editor.DefaultToolAdapter.callBaseMethod(this,"dispose");
},setFocus:function(){
var _3f=this._tools[0];
window.setTimeout(function(){
if(_3f){
_3f.setFocus();
}
},100);
return false;
},getToolByName:function(_40){
for(var i=0;i<this._tools.length;i++){
var _42=this._tools[i];
if(_42&&_42.get_name()==_40){
return _42;
}
}
return null;
},_convertCommandsArray:function(_43){
var _44=[];
for(var i=0;i<_43.length;i++){
_44[i]=[i+1,_43[i].get_title()];
}
return _44;
},_onDropDownHide:function(_46,_47){
var _48=this.get_editor();
_48.enableContentArea(true);
},_onDropDownBeforeShow:function(_49,_4a){
var _4b=this.get_editor();
if(Telerik.Web.UI.EditorToolStrip.isInstanceOfType(_49)){
this._setToolState(_49.get_items());
}
if(!_4b.getSelection().isControl()&&!Telerik.Web.UI.EditorContextMenu.isInstanceOfType(_49)){
_4b.enableContentArea(false);
}
var _4c=_49.get_name();
if(_4c=="Undo"){
var _4d=_4b.get_commandsManager().getCommandsToUndo();
_4d=this._convertCommandsArray(_4d);
_49.set_items(_4d);
}else{
if(_4c=="Redo"){
var _4e=_4b.get_commandsManager().getCommandsToRedo();
_4e=this._convertCommandsArray(_4e);
_49.set_items(_4e);
}else{
if(_4c=="ModuleManager"){
var _4f=_4b.get_modulesManager();
if(!_4f){
return;
}
var _50=_4f.get_modules();
var _51=[];
for(var i=0;i<_50.length;i++){
var _53=_50[i];
var _54=_53.get_name();
var _55=_53.get_title();
if(!_55){
_55=_54;
}
cssClass=_53.get_visible()?"rade_module_visible_icon":"rade_module_hidden_icon";
_51[i]=[_54,_55,cssClass];
}
_49.set_items(_51);
}
}
}
var _56=_49.get_items();
if(_56&&_56.length>0){
return;
}
var _57=null;
switch(_4c){
case "ApplyClass":
_57=_4b.getCssArray();
break;
case "FontName":
_57=_4b.get_fontNames();
break;
case "FontSize":
_57=_4b.get_fontSizes();
break;
case "InsertSymbol":
_57=_4b.get_symbols();
break;
case "BackColor":
case "ForeColor":
_57=_4b.get_colors();
break;
case "RealFontSize":
_57=_4b.get_realFontSizes();
break;
case "InsertSnippet":
_57=_4b.get_snippets();
break;
case "Zoom":
_57=["10%","20%","50%","100%","150%","200%","300%","500%"];
break;
case "FormatBlock":
_57=_4b.get_paragraphs();
break;
case "InsertCustomLink":
_57=_4b.get_links();
break;
case "AjaxSpellCheck":
case "SpellCheck":
_57=_4b.get_languages();
break;
}
if(_57){
_49.set_items(_57);
}
},_initializeToolbar:function(_58,_59){
var _5a=_59.getElementsByTagName("li");
var _5b=_58.tools;
var _5c=this.get_editor();
var _5d=_5c.get_skin();
var _5e=0;
if(_5b){
var _5f=0;
for(var i=0;i<_5b.length;i++){
var _61=_5a[i+1];
_5f+=_61.offsetWidth;
var _62=Telerik.Web.UI.EditorButton;
var _63=_5b[i].type;
var _64=_5b[i].name;
var _65=Telerik.Web.UI.EditorToolType;
var _66=_5b[i];
var _67=null;
var _68=false;
if(_63){
switch(_63){
case _65.Button:
break;
case _65.Separator:
if(!_5e){
_5e+=parseInt(TelerikCommonScripts.getCurrentStyle(_61,"marginLeft"));
_5e+=parseInt(TelerikCommonScripts.getCurrentStyle(_61,"marginRight"));
}
_5f+=_5e;
_62=null;
break;
case _65.DropDown:
_62=Telerik.Web.UI.EditorDropDown;
_68=true;
if(_64=="FontName"){
_62=Telerik.Web.UI.Editor.FontNameDropDown;
}else{
if(_64=="FontSize"){
_62=Telerik.Web.UI.Editor.FontSizeDropDown;
}else{
if(_64=="FormatBlock"){
_62=Telerik.Web.UI.Editor.FormatBlockDropDown;
}else{
if(_64=="RealFontSize"){
_62=Telerik.Web.UI.Editor.RealFontSizeDropDown;
}else{
if(_64=="InsertCustomLink"){
_62=Telerik.Web.UI.Editor.InsertCustomLinkDropDown;
}else{
if(_64=="ApplyClass"){
_62=Telerik.Web.UI.Editor.ApplyClassDropDown;
}
}
}
}
}
}
break;
case _65.SplitButton:
_62=Telerik.Web.UI.EditorSplitButton;
if(_64=="ForeColor"||_64=="BackColor"){
_62=Telerik.Web.UI.Editor.ColorPicker;
}else{
if(_64=="Undo"||_64=="Redo"){
_62=Telerik.Web.UI.Editor.UndoRedoDropDown;
}
}
_68=true;
break;
case _65.ToolStrip:
if(_64=="InsertTable"){
_62=Telerik.Web.UI.Editor.InsertTable;
}else{
_62=Telerik.Web.UI.EditorToolStrip;
}
_68=true;
break;
case _65.Custom:
break;
}
}
if(_66.attributes){
for(var _69 in _66.attributes){
_66[_69.toLowerCase()]=_66.attributes[_69];
}
}
if(_62){
var _6a=null;
if(_68){
_6a={"valueSelected":this._onDropDownValueSelectedDelegate,"show":this._onDropDownBeforeShowDelegate,"hide":this._onDropDownHideDelegate};
_66["skin"]=_5d;
}
_67=$create(_62,_66,_6a,null,_61);
}
if(_67){
Array.add(this._tools,_67);
var _6b=_67.get_shortCut();
if(_6b){
var _6c=_67.get_name();
if(Telerik.Web.UI.EditorDropDown.isInstanceOfType(_67)&&!(Telerik.Web.UI.EditorSplitButton.isInstanceOfType(_67))){
_6c="RadE_ToolAdapter_"+_6c;
Telerik.Web.UI.Editor.CommandList[_6c]=this._toolAdapterDropDownExpander;
}
_5c.setShortCut(_6c,_6b);
}
}
}
var ul=_59;
if(this.isIE&&ul&&_5f){
ul.style.width=(_5f+(_5a[0].offsetWidth)*2)+"px";
}
$addHandlers(_59,{"click":this._onToolAdapterClickDelegate,"keydown":this._onToolAdapterKeyDownDelegate},this);
}
},_toolAdapterDropDownExpander:function(_6e,_6f){
var _70=_6f.getToolByName(_6e.replace("RadE_ToolAdapter_",""));
_70.setFocus();
_70.show();
_70.selectNextItem();
return false;
},_onEditorModeChange:function(_71,_72){
var _73=Telerik.Web.UI.EditModes;
var _74=_71.get_mode();
this._setEnabled((_74==_73.Design));
},_onEditorSelectionChange:function(_75,_76){
this._setToolState(this._tools);
},_setEnabled:function(_77){
var _78=this._tools;
for(var i=0;i<_78.length;i++){
var _7a=_78[i];
_7a.set_enabled(_77);
}
},_setToolState:function(_7b){
var _7c=this.get_editor();
for(var i=0;i<_7b.length;i++){
var _7e=_7b[i];
var _7f=_7e.get_name();
if(_7e.setState){
var _80=_7c.getToolState(_7f);
if(null!=_80){
_7e.setState(_80);
}
}
if(_7e.updateValue){
_7e.updateValue(_7c.getToolValue(_7f));
}
}
},_registerEditorHandlers:function(){
var _81=this.get_editor();
_81.add_selectionChange(this._onEditorSelectionChangeDelegate);
_81.add_modeChange(this._onEditorModeChangeDelegate);
},_onDropDownValueSelected:function(_82,_83){
var _84=_82.get_selectedItem();
if(Telerik.Web.UI.EditorButton.isInstanceOfType(_84)){
this._raiseEditorEvent(_84,null);
}else{
this._raiseEditorEvent(_82,_84);
}
},_onKeyDownHandler:function(e){
var _86=e.keyCode;
if(9==_86||37==_86||39==_86||121==_86){
if(Telerik.Web.UI.Editor.PopupController){
Telerik.Web.UI.Editor.PopupController.hideActivePopup();
}
}
if(121==_86){
var _87=this.get_editor();
window.setTimeout(function(){
if(_87){
_87.setFocus();
}
},100);
if(e.rawEvent){
Telerik.Web.DomElement.cancelRawEvent(e.rawEvent);
}
return Telerik.Web.DomElement.cancelRawEvent(e);
}
if(9==_86){
return;
}
var _88=this._getSelectedTool(e);
if(!Telerik.Web.UI.EditorButton.isInstanceOfType(_88)){
return;
}
if(37==_86||39==_86){
var _89=_88;
while(true){
_89=(37==_86)?this._getPreviousTool(_89):this._getNextTool(_89);
if(null==_89){
break;
}
if(_89.get_enabled()){
break;
}
}
if(_89&&_89.get_enabled()){
_89.setFocus();
}
}
if(13==_86&&_88&&!_88.get_selectedItem){
this._raiseEditorEvent(_88,null);
return;
}
if(!Telerik.Web.UI.EditorDropDown.isInstanceOfType(_88)){
return;
}
if(38==_86||40==_86){
var _8a=false;
if(!_88.isExpanded()){
_88.show();
_8a=true;
}
if(_8a||40==_86){
_88.selectNextItem();
}else{
_88.selectPreviousItem();
}
}else{
if(13==_86){
_88.hide();
if(_88.get_activeIndex){
_88.set_selectedIndex(_88.get_activeIndex());
}
this._onDropDownValueSelected(_88);
}else{
if(27==_86){
_88.hide();
}
}
}
},_onToolBarClick:function(e){
var _8c=this._getSelectedTool(e);
if(_8c){
if(Telerik.Web.UI.EditorDropDown.isInstanceOfType(_8c)){
_8c.click(e);
}else{
if(false){
}else{
this._raiseEditorEvent(_8c);
}
}
}
var _8d=this.get_editor();
if(_8d.get_mode()!=Telerik.Web.UI.EditModes.Design){
Telerik.Web.DomElement.cancelRawEvent(e);
}
},_raiseEditorEvent:function(_8e,_8f){
var _90=this.get_events().getHandler("ToolClick");
if(_90){
var _91=new Sys.EventArgs();
_91.tool=_8e;
if(null!=_8f){
_91.value=_8f;
}
_90(_8e,_91);
}
},_getPreviousTool:function(_92){
var _93=Array.indexOf(this._tools,_92);
return this._tools[_93-1];
},_getNextTool:function(_94){
var _95=Array.indexOf(this._tools,_94);
return this._tools[_95+1];
},_getSelectedTool:function(e){
var _97=Telerik.Web.UI.EditorButton.getToolRootNode(e.target);
if(null==_97){
return;
}
var _98=_97.control;
if(null==_98){
return;
}
if(_98.get_enabled&&_98.get_enabled()==false){
return;
}
if(e&&_98){
e.preventDefault();
e.stopPropagation();
}
return _98;
},_getToolBarElements:function(){
var _99=this.get_element();
var _9a=_99.getElementsByTagName("ul");
return _9a;
},get_editor:function(){
return this._editor;
},set_editor:function(_9b){
if(this._editor!=_9b){
this._editor=_9b;
}
},get_toolJSON:function(){
return this._toolJSON;
},set_toolJSON:function(_9c){
this._toolJSON=_9c;
},add_toolClick:function(_9d){
this.get_events().addHandler("ToolClick",_9d);
},remove_toolClick:function(_9e){
this.get_events().removeHandler("ToolClick",_9e);
}};
$telerikCommon.makeCompatible(Telerik.Web.UI.Editor.DefaultToolAdapter);
Telerik.Web.UI.Editor.DefaultToolAdapter.registerClass("Telerik.Web.UI.Editor.DefaultToolAdapter",Sys.UI.Control);


if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();