CLICK HERE TO BUY IT TODAY! OR GET IT FREE VIA TRIALPAY  

PHP Demo Application - Source Code

/Framework/Model/Vendor/CkEditor/_source/plugins/smiley/dialogs/smiley.js



/*
Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.dialog.add'smiley', function( editor )
{
	    var config editor.config,
	        lang editor.lang.smiley,
	        images config.smiley_images,
	        columns config.smiley_columns || 8,
	        i;
	    /**
	     * Simulate "this" of a dialog for non-dialog events.
	     * @type {CKEDITOR.dialog}
	     */
	    var dialog;
	    var onClick = function( evt )
	    {
		        var target evt.data.getTarget(),
		            targetName target.getName();
		        if ( targetName == 'a' )
		            target target.getChild);
		        else if ( targetName != 'img' )
		            return;
		        var src target.getAttribute'cke_src' ),
		            title target.getAttribute'title' );
		        var img editor.document.createElement'img',
		            {
			                attributes :
			                {
				                    src src,
				                    _cke_saved_src src,
				                    title title,
				                    alt title
				                }
			            });
		        editor.insertElementimg );
		        dialog.hide();
		        evt.data.preventDefault();
		    };
	    var onKeydown CKEDITOR.tools.addFunction( function( evelement )
	    {
		        ev = new CKEDITOR.dom.eventev );
		        element = new CKEDITOR.dom.elementelement );
		        var relativenodeToMove;
		        var keystroke ev.getKeystroke();
		        var rtl editor.lang.dir == 'rtl';
		        switch ( keystroke )
		        {
			            // UP-ARROW
			            case 38 :
			                // relative is TR
			                if ( ( relative element.getParent().getParent().getPrevious() ) )
			                {
				                    nodeToMove relative.getChild( [element.getParent().getIndex(), 0] );
				                    nodeToMove.focus();
				                }
			                ev.preventDefault();
			                break;
			            // DOWN-ARROW
			            case 40 :
			                // relative is TR
			                if ( ( relative element.getParent().getParent().getNext() ) )
			                {
				                    nodeToMove relative.getChild( [element.getParent().getIndex(), 0] );
				                    if ( nodeToMove )
				                        nodeToMove.focus();
				                }
			                ev.preventDefault();
			                break;
			            // ENTER
			            // SPACE
			            case 32 :
			                onClick( { dataev
				} );
			                ev.preventDefault();
			                break;
			            // RIGHT-ARROW
			            case rtl 37 39 :
			            // TAB
			            case :
			                // relative is TD
			                if ( ( relative element.getParent().getNext() ) )
			                {
				                    nodeToMove relative.getChild);
				                    nodeToMove.focus();
				                    ev.preventDefault(true);
				                }
			                // relative is TR
			                else if ( ( relative element.getParent().getParent().getNext() ) )
			                {
				                    nodeToMove relative.getChild( [00] );
				                    if ( nodeToMove )
				                        nodeToMove.focus();
				                    ev.preventDefault(true);
				                }
			                break;
			            // LEFT-ARROW
			            case rtl 39 37 :
			            // SHIFT + TAB
			            case CKEDITOR.SHIFT :
			                // relative is TD
			                if ( ( relative element.getParent().getPrevious() ) )
			                {
				                    nodeToMove relative.getChild);
				                    nodeToMove.focus();
				                    ev.preventDefault(true);
				                }
			                // relative is TR
			                else if ( ( relative element.getParent().getParent().getPrevious() ) )
			                {
				                    nodeToMove relative.getLast().getChild);
				                    nodeToMove.focus();
				                    ev.preventDefault(true);
				                }
			                break;
			            default :
			                // Do not stop not handled events.
			                return;
			        }
		    });
	    // Build the HTML for the smiley images table.
	    var labelId CKEDITOR.tools.getNextId() + '_smiley_emtions_label';
	    var html =
	    [
	        '<div>' +
	        '<span id="' labelId '" class="cke_voice_label">' lang.options +'</span>',
	        '<table role="listbox" aria-labelledby="' labelId '" style="width:100%;
	height:100%" cellspacing="2" cellpadding="2"',
	        CKEDITOR.env.ie && CKEDITOR.env.quirks ' style="position:absolute;
	"' '',
	        '><tbody>'
	    ];
	    var size images.length;
	    for ( ;
	 size ;
	 i++ )
	    {
		        if ( columns === )
		            html.push'<tr>' );
		        var smileyLabelId 'cke_smile_label_' '_' CKEDITOR.tools.getNextNumber();
		        html.push(
		            '<td class="cke_dark_background cke_centered" style="vertical-align: middle;
		">' +
		                '<a href="javascript:void(0)" role="option"',
		                    ' aria-posinset="' + ( +) + '"',
		                    ' aria-setsize="' size '"',
		                    ' aria-labelledby="' smileyLabelId '"',
		                    ' class="cke_smile cke_hand" tabindex="-1" onkeydown="CKEDITOR.tools.callFunction( 'onKeydown', event, this );
		">',
		                    '<img class="cke_hand" title="'config.smiley_descriptions[i], '"' +
		                        ' cke_src="'CKEDITOR.tools.htmlEncodeconfig.smiley_path images] ), '" alt="'config.smiley_descriptions[i], '"',
		                        ' src="'CKEDITOR.tools.htmlEncodeconfig.smiley_path images] ), '"',
		                        // IE BUG: Below is a workaround to an IE image loading bug to ensure the image sizes are correct.
		                        CKEDITOR.env.ie ' onload="this.setAttribute(\'width\', 2);
		 this.removeAttribute(\'width\');
		" ' '' ),
		                    '>' +
		                    '<span id="' smileyLabelId '" class="cke_voice_label">' +config.smiley_descriptions]  + '</span>' +
		                '</a>',
		             '</td>' );
		        if ( columns == columns )
		            html.push'</tr>' );
		    }
	    if ( columns )
	    {
		        for ( ;
		 columns ;
		 i++ )
		            html.push'<td></td>' );
		        html.push'</tr>' );
		    }
	    html.push'</tbody></table></div>' );
	    var smileySelector =
	    {
		        type 'html',
		        html html.join'' ),
		        onLoad : function( event )
		        {
			            dialog event.sender;
			        },
		        focus : function()
		         {
			            var firstSmile this.getElement().getElementsByTag'a' ).getItem);
			            firstSmile.focus();
			         },
		        onClick onClick,
		        style 'width: 100%;
		 border-collapse: separate;
		'
		    };
	    return {
		        title editor.lang.smiley.title,
		        minWidth 270,
		        minHeight 120,
		        contents : [
		            {
			                id 'tab1',
			                label '',
			                title '',
			                expand true,
			                padding 0,
			                elements : [
			                        smileySelector
			                    ]
			            }
		        ],
		        buttons : [ CKEDITOR.dialog.cancelButton ]
		    };
	} );





PHP Demo Source Code Index