﻿function OnClientCommandExecuted(editor, commandName, oTool)
{
    if(commandName.match("JustifyFull") != null)
    {
        var selection = editor.GetHtml();
        
        selection = selection.replace(/(<p\s)(style="text-align: left"|style="text-align: center"|style="text-align: right")*(.)*(align="justify"|align=justify)(\>)/i, '$1 style="text-align:justify;" $5');
        selection = selection.replace(/(<h1\s)(style="text-align: left"|style="text-align: center"|style="text-align: right")*(.)*(align="justify"|align=justify)(\>)/i, '$1 style="text-align:justify;" $5');
        selection = selection.replace(/(<h2\s)(style="text-align: left"|style="text-align: center"|style="text-align: right")*(.)*(align="justify"|align=justify)(\>)/i, '$1 style="text-align:justify;" $5');
        selection = selection.replace(/(<h3\s)(style="text-align: left"|style="text-align: center"|style="text-align: right")*(.)*(align="justify"|align=justify)(\>)/i, '$1 style="text-align:justify;" $5');
        selection = selection.replace(/(<h4\s)(style="text-align: left"|style="text-align: center"|style="text-align: right")*(.)*(align="justify"|align=justify)(\>)/i, '$1 style="text-align:justify;" $5');
        selection = selection.replace(/(<h5\s)(style="text-align: left"|style="text-align: center"|style="text-align: right")*(.)*(align="justify"|align=justify)(\>)/i, '$1 style="text-align:justify;" $5');

        editor.SetHtml(selection);
    }
    
    if(commandName.match("JustifyRight") != null)
    {
        var selection = editor.GetHtml();
        
        selection = selection.replace(/(<p\s)(style="text-align: left"|style="text-align: center")*(.)*(align="right"|align=right)(\>)/i, '$1 style="text-align:right;" $5');
        selection = selection.replace(/(<div\s)(style="float: left")*(.)*(align="right"|align=right)(\>)/i, '$1 style="float:right;" $5');
        selection = selection.replace(/(<h1\s)(style="text-align: left"|style="text-align: center")*(.)*(align="right"|align=right)(\>)/i, '$1 style="text-align:right;" $5');
        selection = selection.replace(/(<h2\s)(style="text-align: left"|style="text-align: center")*(.)*(align="right"|align=right)(\>)/i, '$1 style="text-align:right;" $5');
        selection = selection.replace(/(<h3\s)(style="text-align: left"|style="text-align: center")*(.)*(align="right"|align=right)(\>)/i, '$1 style="text-align:right;" $5');
        selection = selection.replace(/(<h4\s)(style="text-align: left"|style="text-align: center")*(.)*(align="right"|align=right)(\>)/i, '$1 style="text-align:right;" $5');
        selection = selection.replace(/(<h5\s)(style="text-align: left"|style="text-align: center")*(.)*(align="right"|align=right)(\>)/i, '$1 style="text-align:right;" $5');

        editor.SetHtml(selection);
    }

    if(commandName.match("JustifyCenter") != null)
    {
        var selection = editor.GetHtml();
        
        selection = selection.replace(/(<p\s)(style="text-align: left"|style="text-align: right")*(.)*(align="center"|align=center)(\>)/i, '$1 style="text-align:center;" $5');
        selection = selection.replace(/(<h1\s)(style="text-align: left"|style="text-align: right")*(.)*(align="center"|align=center)(\>)/i, '$1 style="text-align:center;" $5');
        selection = selection.replace(/(<h2\s)(style="text-align: left"|style="text-align: right")*(.)*(align="center"|align=center)(\>)/i, '$1 style="text-align:center;" $5');
        selection = selection.replace(/(<h3\s)(style="text-align: left"|style="text-align: right")*(.)*(align="center"|align=center)(\>)/i, '$1 style="text-align:center;" $5');
        selection = selection.replace(/(<h4\s)(style="text-align: left"|style="text-align: right")*(.)*(align="center"|align=center)(\>)/i, '$1 style="text-align:center;" $5');
        selection = selection.replace(/(<h5\s)(style="text-align: left"|style="text-align: right")*(.)*(align="center"|align=center)(\>)/i, '$1 style="text-align:center;" $5');

        editor.SetHtml(selection);
    }
    
    if(commandName.match("JustifyLeft") != null)
    {
        var selection = editor.GetHtml();
        
        selection = selection.replace(/(<p\s)(style="text-align: right"|style="text-align: center")*(.)*(align="left"|align=left)(\>)/i, '$1 style="text-align:left;" $5');
        selection = selection.replace(/(<h1\s)(style="text-align: right"|style="text-align: center")*(.)*(align="left"|align=left)(\>)/i, '$1 style="text-align:left;" $5');
        selection = selection.replace(/(<h2\s)(style="text-align: right"|style="text-align: center")*(.)*(align="left"|align=left)(\>)/i, '$1 style="text-align:left;" $5');
        selection = selection.replace(/(<h3\s)(style="text-align: right"|style="text-align: center")*(.)*(align="left"|align=left)(\>)/i, '$1 style="text-align:left;" $5');
        selection = selection.replace(/(<h4\s)(style="text-align: right"|style="text-align: center")*(.)*(align="left"|align=left)(\>)/i, '$1 style="text-align:left;" $5');
        selection = selection.replace(/(<h5\s)(style="text-align: right"|style="text-align: center")*(.)*(align="left"|align=left)(\>)/i, '$1 style="text-align:left;" $5');
        selection = selection.replace(/(<div\s)(style="float: right")*(.)*(align="left"|align=left)(\>)/i, '$1 style="float:left;" $5');
        
        
        editor.SetHtml(selection);
    }
}

function OnClientLoad(editor)
{
    editor.AttachEventHandler ("RADEVENT_SEL_CHANGED", function (e)
    {
         var selElem = editor.GetSelection().GetParentElement(); //return the currently selected object in the content area
         var selection = editor.GetSelectionHtml();
         
         //If selected tag = IMG.
         if (selElem.tagName == "IMG")
         {          
            //Remove border and border color.
            if(selection.match(/border/i) != null)
            {   
                selection = selection.replace(/border="\d*"|border=\d*/i, '' );
                selection = selection.replace(/border-color:.*\);/i ,'' );
                selection = selection.replace(/BORDER-LEFT-COLOR:.*;/i, '')
                selection = selection.replace(/BORDER-RIGHT-COLOR:.{8}/i, '')
                selection = selection.replace(/BORDER-TOP-COLOR:.*;/i, '')
                selection = selection.replace(/BORDER-BOTTOM-COLOR:.*;/i, '')
                
                editor.PasteHtml(selection);
                
            }
            
            if(selection.match(/align=right|align="right"/) != null)
            {
                if(selection.match(/style/) != null)
                {   
                    selection = selection.replace(/float: left;?/i, '');
                    selection = selection.replace(/align=right|align="right"/i, '');
                    selection = selection.replace(/rigth/i, 'right;');
                    selection = selection.replace(/style=\"(.*)?\"/i, 'style="float:right;$1" ' );
                }
                else
                {
                    selection = selection.replace(/align=right|align="right"/i, 'style="float:right;"');
                }
                
                editor.PasteHtml(selection);
            }
            else if(selection.match(/align=left|align="left"/) != null)
            {
                if(selection.match(/style/) != null)
                {
                    selection = selection.replace(/float: right;?/i, '');
                    selection = selection.replace(/align=left|align="left"/i, '');
                    selection = selection.replace(/left/i, 'left;');
                    selection = selection.replace(/style=\"(.*)?\"/i, 'style="float:left;$1" ' );
                }
                else
                {
                    selection = selection.replace(/align=left|align="left"/i, 'style="float:left;"')
                }
                
                editor.PasteHtml(selection);
            }
            //Remove align values.
            else if(selection.match(/align=bottom|align="bottom"|align=absMiddle|align="absMiddle"|align=top|align="top"/i) != null)
            {
                selection = selection.replace(/align=bottom|align="bottom"|align=absMiddle|align="absMiddle"|align=top|align="top"/i, '');
                editor.PasteHtml(selection);
            }            
         }
         if (selElem.tagName == "A")
         {
            if(selection.match(/target/i) != null)
            {
                alert(selection);
                selection = selection.replace(/target="_blank|_self|_parent|_search|_media|_top|"/i, '')   
                selection = selection.replace(/target=_blank|target=_self|target=_parent|target=_search|target=_media|target=_top/i, '')   
                editor.PasteHtml(selection);
            } 
         }
        }
    );
}