/* Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved. Available via Academic Free License >= 2.1 OR the modified BSD license. see: http://dojotoolkit.org/license for details */ if(!dojo._hasResource["dojox.editor.plugins._SmileyPalette"]){dojo._hasResource["dojox.editor.plugins._SmileyPalette"]=true;dojo.provide("dojox.editor.plugins._SmileyPalette");dojo.require("dijit._Widget");dojo.require("dijit._Templated");dojo.require("dojo.i18n");dojo.requireLocalization("dojox.editor.plugins","Smiley",null,"ROOT,cs,de,es,fr,hu,it,ja,ko,pl,pt,ru,zh,zh-tw");dojo.experimental("dojox.editor.plugins._SmileyPalette");dojo.declare("dojox.editor.plugins._SmileyPalette",[dijit._Widget,dijit._Templated],{templateString:"
\n"+"\n"+"\n"+"\n"+"\n"+"\n"+"\n"+"
\n"+"\n"+"\n"+"
\n"+"
\n"+"
",defaultTimeout:500,timeoutChangeRate:0.9,smileys:{emoticonSmile:":-)",emoticonLaughing:"lol",emoticonWink:";-)",emoticonGrin:":-D",emoticonCool:"8-)",emoticonAngry:":-@",emoticonHalf:":-/",emoticonEyebrow:"/:)",emoticonFrown:":-(",emoticonShy:":-$",emoticonGoofy:":-S",emoticonOops:":-O",emoticonTongue:":-P",emoticonIdea:"(i)",emoticonYes:"(y)",emoticonNo:"(n)",emoticonAngel:"0:-)",emoticonCrying:":'("},value:null,_currentFocus:0,_xDim:null,_yDim:null,tabIndex:"0",_created:false,postCreate:function(){if(!this._created){this._created=true;this.domNode.style.position="relative";this._cellNodes=[];var _1=0;var _2;for(_2 in this.smileys){_1++;}var _3=Math.floor(Math.sqrt(_1));var _4=_3;var _5=0;var _6=null;var _7;for(_2 in this.smileys){var _8=_5%_4===0;if(_8){_6=dojo.create("tr",{tabIndex:"-1"});}var _9=this.smileys[_2],_a=dojo.i18n.getLocalization("dojox.editor.plugins","Smiley")[_2];_7=dojo.create("td",{tabIndex:"-1","class":"dojoxEntityPaletteCell"},_6);var _b=dojo.create("img",{src:dojo.moduleUrl("dojox.editor.plugins","resources/emoticons/"+_2+".gif"),"class":"dojoxSmileyPaletteImg dojoxSmiley"+_2.charAt(0).toUpperCase()+_2.substring(1),title:_a,alt:_a},_7);dojo.forEach(["Dijitclick","MouseEnter","Focus","Blur"],function(_c){this.connect(_7,"on"+_c.toLowerCase(),"_onCell"+_c);},this);if(_8){dojo.place(_6,this.tableNode);}dijit.setWaiRole(_7,"gridcell");_7.index=this._cellNodes.length;this._cellNodes.push({node:_7,html:""+this.smileys[_2]+""});_5++;}var _d=_3-(_1%_3);while(_d>0){_7=dojo.create("td",{innerHTML:"",tabIndex:"-1","class":"dojoxEntityPaletteNullCell"},_6);_d--;}this._xDim=_3;this._yDim=_4;this.connect(this.tableNode,"onfocus","_onTableNodeFocus");var _e={UP_ARROW:-this._xDim,DOWN_ARROW:this._xDim,RIGHT_ARROW:1,LEFT_ARROW:-1};for(var _f in _e){this._connects.push(dijit.typematic.addKeyListener(this.domNode,{charOrCode:dojo.keys[_f],ctrlKey:false,altKey:false,shiftKey:false},this,function(){var _10=_e[_f];return function(_11){this._navigateByKey(_10,_11);};}(),this.timeoutChangeRate,this.defaultTimeout));}}},focus:function(){this._focusFirst();},onChange:function(_12){},_focusFirst:function(){this._currentFocus=0;var _13=this._cellNodes[this._currentFocus].node;setTimeout(function(){dijit.focus(_13);},25);},_onTableNodeFocus:function(evt){if(evt.target===this.tableNode){this._focusFirst();}},_onFocus:function(){dojo.attr(this.tableNode,"tabIndex","-1");},_onBlur:function(){this._removeCellHighlight(this._currentFocus);dojo.attr(this.tableNode,"tabIndex",this.tabIndex);},_onCellDijitclick:function(evt){var _14=evt.currentTarget;if(this._currentFocus!=_14.index){this._currentFocus=_14.index;setTimeout(function(){dijit.focus(_14);},0);}this._selectEntity(_14);dojo.stopEvent(evt);},_onCellMouseEnter:function(evt){var _15=evt.currentTarget;this._setCurrent(_15);setTimeout(function(){dijit.focus(_15);},0);},_onCellFocus:function(evt){this._setCurrent(evt.currentTarget);},_setCurrent:function(_16){this._removeCellHighlight(this._currentFocus);this._currentFocus=_16.index;dojo.addClass(_16,"dojoxEntityPaletteCellHighlight");},_onCellBlur:function(evt){this._removeCellHighlight(this._currentFocus);},_removeCellHighlight:function(_17){dojo.removeClass(this._cellNodes[_17].node,"dojoxEntityPaletteCellHighlight");},_selectEntity:function(_18){var _19=dojo.filter(this._cellNodes,function(_1a){return _1a.node==_18;});if(_19.length>0){this.onChange(this.value=_19[0].html);}},_navigateByKey:function(_1b,_1c){if(_1c==-1){return;}var _1d=this._currentFocus+_1b;if(_1d-1){var _1e=this._cellNodes[_1d].node;_1e.focus();}}});}