<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Wylie &#187; emoticon</title>
	<atom:link href="http://www.wyliethomas.com/blog/tag/emoticon/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.wyliethomas.com/blog</link>
	<description>web consultant.developer.angler</description>
	<lastBuildDate>Wed, 07 Dec 2011 18:14:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>jQuery Emoticon Selector Plugin</title>
		<link>http://www.wyliethomas.com/blog/2010/03/02/jquery-emoticon-selector-plugin/</link>
		<comments>http://www.wyliethomas.com/blog/2010/03/02/jquery-emoticon-selector-plugin/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 23:15:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[emoticon]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.wyliethomas.com/blog/?p=117</guid>
		<description><![CDATA[I couldn&#8217;t find an emoticon plugin for inserting an emoticon into a text area. I found plenty that converted the emoticon code into an image. So, I set out to write my first jQuery plugin.
If you choose to use this, keep in mind this was my first plugin and should be thoroughly tested before using [...]]]></description>
			<content:encoded><![CDATA[<p>I couldn&#8217;t find an emoticon plugin for inserting an emoticon into a text area. I found plenty that converted the emoticon code into an image. So, I set out to write my first jQuery plugin.</p>
<p>If you choose to use this, keep in mind this was my first plugin and should be thoroughly tested before using it. And if you make it better I would very much like to see what changes you made.</p>
<p>Lets check it out. </p>
<p>The view has two components. The jQuery call and the div with the necessary elements. (my examples are how i used this in Ruby)</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;% javascript_tag <span class="kw1">do</span> %&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; $<span class="br0">&#40;</span>document<span class="br0">&#41;</span>.<span class="me1">ready</span><span class="br0">&#40;</span>function<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;div#emodiv&quot;</span><span class="br0">&#41;</span>.<span class="me1">emoticate</span><span class="br0">&#40;</span><span class="br0">&#123;</span>icon: <span class="st0">&#8217;smiley-icon&#8217;</span>, replacediv: <span class="st0">&#8216;list&#8217;</span><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&lt;% <span class="kw1">end</span> %&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p>Then the div that you identified in the jQuery call.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;div id=&quot;emodiv&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;img src=&quot;/images/emoticons/emoticon-0100-smile.png&quot; id=&quot;smiley-icon&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;div id=&quot;list&quot;&gt; &lt;/div&gt;
</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &lt;select name=&quot;emoticons&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;option value=&quot;:)&quot;&gt;emoticon-0100-smile.png&lt;/option&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;option value=&quot;|-(&quot;&gt;emoticon-0106-crying.png&lt;/option&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;option value=&quot;;)&quot;&gt;emoticon-0105-wink.png&lt;/option&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;option value=&quot;:(&quot;&gt;emoticon-0106-crying.png&lt;/option&gt;
</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &lt;option value=&quot;(pt)&quot;&gt;279.png&lt;/option&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;option value=&quot;(ct)&quot;&gt;104.png&lt;/option&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;option value=&quot;(au)&quot;&gt;342.png&lt;/option&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;option value=&quot;(eg)&quot;&gt;emoticon-0116-evilgrin.png&lt;/option&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;option value=&quot;:*&quot;&gt;emoticon-0109-kiss.png&lt;/option&gt;
</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &lt;/select&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;div style=&quot;clear: both;&quot;&gt;&lt;/div&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;p&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;textarea id=&quot;comment_1&quot;&gt;&lt;/textarea&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/p&gt;
</div>
</li>
<li class="li2">
<div class="de2">&lt;/div&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p>What is going to happen is that the select and options will be changed to a UL list with the icon images. When an emoticon is clicked it will be inserted into the text area within the div. (The id for the textarea does need to be unique).</p>
<p>And here is the plugin. </p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span>$<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; $.<span class="me1">fn</span>.<span class="me1">emoticate</span> = <span class="kw2">function</span><span class="br0">&#40;</span>options<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> defaults = <span class="br0">&#40;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; replacediv: &nbsp; <span class="st0">&#8216;replaceme&#8217;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; image_path: &nbsp; <span class="st0">&#8216;/images/emoticons/&#8217;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; speed: &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">500</span>, </div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; icon: &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&#8217;smiley&#8217;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> options = $.<span class="me1">extend</span><span class="br0">&#40;</span>defaults, options<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span> <span class="kw1">this</span>.<span class="me1">each</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> select = $<span class="br0">&#40;</span><span class="st0">&#8217;select&#8217;</span>, <span class="kw1">this</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> area = $<span class="br0">&#40;</span><span class="st0">&#8216;textarea&#8217;</span>, <span class="kw1">this</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> icon = $<span class="br0">&#40;</span><span class="st0">&quot;#&quot;</span> + defaults.<span class="me1">icon</span>, <span class="kw1">this</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> emo =<span class="st0">&#8216;&lt;div class=&quot;emoticon-box&quot;&gt;&lt;ul&gt;&#8217;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;option&#8217;</span>, select<span class="br0">&#41;</span>.<span class="me1">each</span><span class="br0">&#40;</span><span class="kw2">function</span> <span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> option &nbsp; &nbsp;= $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> emocode &nbsp; &nbsp; &nbsp; &nbsp;= option.<span class="me1">val</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> title &nbsp; &nbsp;= option.<span class="me1">text</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> link = $.<span class="me1">fn</span>.<span class="me1">emoticate</span>.<span class="me1">emoticlick</span><span class="br0">&#40;</span>title, emocode, defaults.<span class="me1">image_path</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; emo += <span class="st0">&#8216;&lt;li&gt;&#8217;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + link</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + <span class="st0">&#8216;&lt;/li&gt;&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>; <span class="co1">//end option</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; emo += <span class="st0">&#8216;&lt;/ul&gt;&lt;/div&gt;&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; select.<span class="me1">remove</span><span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="co1">//get rid of the select to make way for emotification</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;#&quot;</span> + defaults.<span class="me1">replacediv</span>, <span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">html</span><span class="br0">&#40;</span>emo<span class="br0">&#41;</span>; <span class="co1">//put the emotification HTML in the right div</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;#&quot;</span> + defaults.<span class="me1">replacediv</span>, <span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">hide</span><span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="co1">//hide the emoticons</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> listdiv = $<span class="br0">&#40;</span><span class="st0">&quot;#&quot;</span> + defaults.<span class="me1">replacediv</span>, <span class="kw1">this</span><span class="br0">&#41;</span>; <span class="co1">//reset the var so it will work in the icon click.. this probably could be done better</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="co1">//bind the link for every a tag that is in the replaced div</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;a&#8217;</span>, <span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">bind</span><span class="br0">&#40;</span><span class="st0">&#8216;click&#8217;</span>, <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; $.<span class="me1">fn</span>.<span class="me1">emoticate</span>.<span class="me1">insertme</span><span class="br0">&#40;</span>area.<span class="me1">attr</span><span class="br0">&#40;</span><span class="st0">&#8216;id&#8217;</span><span class="br0">&#41;</span>, $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">attr</span><span class="br0">&#40;</span><span class="st0">&#8216;id&#8217;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>; <span class="co1">//end bind</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="co1">//click the icon</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>icon, <span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">bind</span><span class="br0">&#40;</span><span class="st0">&#8216;click&#8217;</span>, <span class="kw2">function</span> <span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; listdiv.<span class="me1">show</span><span class="br0">&#40;</span>defaults.<span class="me1">speed</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="co1">//function to click anywhere to hide the emoticons</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>document.<span class="me1">body</span><span class="br0">&#41;</span>click<span class="br0">&#40;</span><span class="kw2">function</span> <span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; listdiv.<span class="me1">hide</span><span class="br0">&#40;</span>defaults.<span class="me1">speed</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>; <span class="co1">//end select</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span>; <span class="co1">//end function</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; $.<span class="me1">fn</span>.<span class="me1">emoticate</span>.<span class="me1">emoticlick</span> = <span class="kw2">function</span><span class="br0">&#40;</span>id,emocode, image_path<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span> <span class="st0">&#8216;&lt;a href=&quot;#&quot; id=&quot;&#8217;</span> + emocode +<span class="st0">&#8216;&quot;&gt;&lt;img src=&quot;&#8217;</span> + image_path + id + <span class="st0">&#8216;&quot;&gt;&lt;/a&gt;&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; $.<span class="me1">fn</span>.<span class="me1">emoticate</span>.<span class="me1">insertme</span> = <span class="kw2">function</span><span class="br0">&#40;</span>areaId,text<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="kw2">var</span> txtarea = document.<span class="me1">getElementById</span><span class="br0">&#40;</span>areaId<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> scrollPos = txtarea.<span class="me1">scrollTop</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> strPos = <span class="nu0">0</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> br = <span class="br0">&#40;</span><span class="br0">&#40;</span>txtarea.<span class="me1">selectionStart</span> || txtarea.<span class="me1">selectionStart</span> == <span class="st0">&#8216;0&#8242;</span><span class="br0">&#41;</span> ? </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&quot;ff&quot;</span> : <span class="br0">&#40;</span>document.<span class="me1">selection</span> ? <span class="st0">&quot;ie&quot;</span> : <span class="kw2">false</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>br == <span class="st0">&quot;ie&quot;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; txtarea.<span class="kw3">focus</span><span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="kw2">var</span> range = document.<span class="me1">selection</span>.<span class="me1">createRange</span><span class="br0">&#40;</span><span class="br0">&#41;</span>; range.<span class="me1">moveStart</span> <span class="br0">&#40;</span><span class="st0">&#8216;character&#8217;</span>, -txtarea.<span class="me1">value</span>.<span class="me1">length</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; strPos = range.<span class="me1">text</span>.<span class="me1">length</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">else</span> <span class="kw1">if</span> <span class="br0">&#40;</span>br == <span class="st0">&quot;ff&quot;</span><span class="br0">&#41;</span> strPos = txtarea.<span class="me1">selectionStart</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> front = <span class="br0">&#40;</span>txtarea.<span class="me1">value</span><span class="br0">&#41;</span>.<span class="me1">substring</span><span class="br0">&#40;</span><span class="nu0">0</span>,strPos<span class="br0">&#41;</span>; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> <span class="kw3">back</span> = <span class="br0">&#40;</span>txtarea.<span class="me1">value</span><span class="br0">&#41;</span>.<span class="me1">substring</span><span class="br0">&#40;</span>strPos,txtarea.<span class="me1">value</span>.<span class="me1">length</span><span class="br0">&#41;</span>; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; txtarea.<span class="me1">value</span>=front+text+<span class="kw3">back</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; strPos = strPos + text.<span class="me1">length</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>br == <span class="st0">&quot;ie&quot;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; txtarea.<span class="kw3">focus</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">var</span> range = document.<span class="me1">selection</span>.<span class="me1">createRange</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; range.<span class="me1">moveStart</span> <span class="br0">&#40;</span><span class="st0">&#8216;character&#8217;</span>, -txtarea.<span class="me1">value</span>.<span class="me1">length</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; range.<span class="me1">moveStart</span> <span class="br0">&#40;</span><span class="st0">&#8216;character&#8217;</span>, strPos<span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; range.<span class="me1">moveEnd</span> <span class="br0">&#40;</span><span class="st0">&#8216;character&#8217;</span>, <span class="nu0">0</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; range.<span class="me1">select</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">else</span> <span class="kw1">if</span> <span class="br0">&#40;</span>br == <span class="st0">&quot;ff&quot;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; txtarea.<span class="me1">selectionStart</span> = strPos;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; txtarea.<span class="me1">selectionEnd</span> = strPos;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; txtarea.<span class="kw3">focus</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; txtarea.<span class="me1">scrollTop</span> = scrollPos;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="br0">&#40;</span>jQuery<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p>Or you can download it <a href="http://www.wyliethomas.com/blog/wp-content/uploads/2010/03/jquery.emotification.js">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wyliethomas.com/blog/2010/03/02/jquery-emoticon-selector-plugin/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

