<?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>FerretArmy: A Web Developer&#039;s Paradise &#187; javascript</title>
	<atom:link href="http://www.ferretarmy.com/tag/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ferretarmy.com</link>
	<description>Pushing the Web Forward, Since 2007</description>
	<lastBuildDate>Wed, 18 Jan 2012 15:58:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Google Closure</title>
		<link>http://www.ferretarmy.com/2009/11/09/google-closure/</link>
		<comments>http://www.ferretarmy.com/2009/11/09/google-closure/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 00:23:47 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Closure]]></category>
		<category><![CDATA[Geeky]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[WebDev]]></category>

		<guid isPermaLink="false">http://www.ferretarmy.com/?p=477</guid>
		<description><![CDATA[Google just open sourced Closure, their robust JavaScript library. Closure is used in a variety of Google products, notably GMail and Google Docs. I had a chance to play with it for a few minutes, and I&#8217;m posting my first impressions. Google Closure is a fairly complete JavaScript framework. In that sense, it duplicates a [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://code.google.com/closure/"><img class="alignnone size-full wp-image-478" title="Google Closure" src="http://www.ferretarmy.com/wp-content/uploads/2009/11/closureLogo.png" alt="Google Closure" width="128" height="128" /></a></p>
<p>Google just open sourced <a href="http://code.google.com/closure/">Closure</a>, their robust JavaScript library. Closure is used in a variety of Google products, notably <a href="http://mail.google.com">GMail</a> and <a href="http://docs.google.com">Google Docs</a>. I had a chance to play with it for a few minutes, and I&#8217;m posting my first impressions.</p>
<p>Google Closure is a fairly complete JavaScript framework. In that sense, it duplicates a lot of the functionality of existing JavaScript libraries, such as <a href="http://jquery.com/">jQuery</a> and <a href="http://developer.yahoo.com/yui/">YUI</a>. It contains behaviors, AJAX, event handling, selectors, UI components, and more. The syntax is fairly straightforward, but it&#8217;s not the same as other libraries, so there&#8217;s a learning curve in getting acquainted with it.</p>
<p>Closure has excellent dependency management through a robust loading mechanism. Basically, if you don&#8217;t reference a certain piece of the library, rest assured that it&#8217;s not going to load (and slow down your page as a result). In addition, it comes with the <a href="http://code.google.com/closure/compiler/docs/gettingstarted_ui.html">Closure Compiler</a>, which will walk your JavaScript, determine what libraries you need, then aggregate and compress all the required files. Being able to deploy one file instead of many is a great way of speeding up your site.</p>
<p>One thing that irks me is that there only way to get Closure is through Subversion access to the trunk. If Google wants Closure to be adopted widely, they&#8217;re going to need to start offering discrete, packaged versions of it. Many developers (and novices) will be put off by the current distribution method otherwise.</p>
<p>The <a href="http://closure-library.googlecode.com/svn/trunk/closure/goog/docs/index.html">API</a> is well documented, and has links to the actual code for each method (something that I&#8217;ve not really seen before in API documentation). The API itself is very robust, with a ton of methods and accessors on each object. I&#8217;m not sure I&#8217;m a big fan of the way things are laid out in the API, but I don&#8217;t have enough experience with it to say anything definitively here.</p>
<p>One doesn&#8217;t have to stretch the imagination to believe that Closure has amazing potential. This is, after all, what <a href="http://mail.google.com">GMail</a> is built from. I&#8217;m excited that it&#8217;s been open-sourced and I can&#8217;t wait to use it a bit more. Google has given a grand gift to the developer community with this release.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ferretarmy.com/2009/11/09/google-closure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Disabling Button Clicks The Better Way</title>
		<link>http://www.ferretarmy.com/2009/09/18/disabling-button-clicks-the-better-way/</link>
		<comments>http://www.ferretarmy.com/2009/09/18/disabling-button-clicks-the-better-way/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 17:57:35 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery UI]]></category>
		<category><![CDATA[WebDev]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.ferretarmy.com/?p=449</guid>
		<description><![CDATA[Most of the time when you want to cancel an action on a web page, such as a button click, you&#8217;d return false in the client-side button event handler, as such: &#60;a href="blah..." onclick="return DoAction();"&#62;Link&#60;/a&#62; ... function DoAction() { /*Do Something */ return false; }; However, there&#8217;s a better way, using the event.preventDefault() method. I [...]]]></description>
			<content:encoded><![CDATA[<p>Most of the time when you want to cancel an action on a web page, such as a button click, you&#8217;d return false in the client-side button event handler, as such:</p>
<p><code>&lt;a href="blah..." onclick="return DoAction();"&gt;Link&lt;/a&gt;</code></p>
<p><code>...</code></p>
<p><code>function DoAction() { /*Do Something */ return false; };</code></p>
<p>However, there&#8217;s a better way, using the <a href="https://developer.mozilla.org/en/DOM/event.preventDefault">event.preventDefault()</a> method. I had the need to use this recently, when I was fixing a trivial issue with the <a href="http://www.filamentgroup.com/lab/styling_buttons_and_toolbars_with_the_jquery_ui_css_framework/">Filament Group jQuery UI buttons</a> &#8211; my &#8216;a href&#8217; styled buttons were still clickable when they were disabled. An easy solution to this problem is to capture the click and prevent the default action. I hooked this action to all disabled buttons, as such.</p>
<p><code>$(".ui-state-disabled").click(function(event) { event.preventDefault(); });</code></p>
<p>This code isn&#8217;t that robust &#8211; if you were to add or remove the ui-state-disabled class after page load (which I didn&#8217;t have to), you&#8217;d want to make sure to handle it appropriately. Either way, preventDefault() is definitely an elegant solution to disabling a click action.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ferretarmy.com/2009/09/18/disabling-button-clicks-the-better-way/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Determining Geolocation on the Web</title>
		<link>http://www.ferretarmy.com/2009/08/05/determining-geolocation/</link>
		<comments>http://www.ferretarmy.com/2009/08/05/determining-geolocation/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 18:49:18 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Geeky]]></category>
		<category><![CDATA[geolocation]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[WebDev]]></category>

		<guid isPermaLink="false">http://www.ferretarmy.com/?p=433</guid>
		<description><![CDATA[Here&#8217;s a GeoLocator example I put together that showcases two popular GeoLocation techniques &#8211; IP lookup and using the GeoLocation API &#8211; in order to both demonstrate the techniques as well as to show the issues with each. In HTML, there are a few ways of determining the location of a user. Traditionally, this has [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.ferretarmy.com/files/geolocation/geolocator.html"><img class="size-full wp-image-434 aligncenter" title="Geolocator Tool" src="http://www.ferretarmy.com/wp-content/uploads/2009/08/geolocator.jpg" alt="Geolocator Tool" width="425" height="102" /></a></p>
<p>Here&#8217;s a <a href="http://www.ferretarmy.com/files/geolocation/geolocator.html">GeoLocator example</a> I put together that showcases two popular GeoLocation techniques &#8211; IP lookup and using the GeoLocation API &#8211; in order to both demonstrate the techniques as well as to show the issues with each.</p>
<p>In HTML, there are a few ways of determining the location of a user. Traditionally, this has always been accomplished by IP lookup &#8211; a lookup is performed with your IP against a database of known IP locations. This technique leaves a lot to be desired, but it&#8217;s been all that&#8217;s been available for a very long time.</p>
<p>In HTML5, however, there&#8217;s a new <a href="http://dev.w3.org/geo/api/spec-source.html">Geolocation API</a>. The gist of this feature is that instead of relying on IP address lookup, the browser will instead interrogate the device for this information. This allows devices that have native geolocation hardware (GPS receivers and Wifi antennas, for example) to be able to pass their known location to the browser. Many web-enabled devices of today already provide support for this feature, including the iPhone, the Palm Pre, Android phones, and some netbooks.</p>
<p>The problem with all these methods, however, is that none of them just work on all devices. IP lookup works best in the workplace, but it doesn&#8217;t work as well for home users and doesn&#8217;t work at all for mobile users, as it pretty much requires a stationary device (amongst other things). The Geolocation API is not supported in all browsers yet (with the major notable holdout being all versions of Internet Explorer), and it tends not to work well on devices that don&#8217;t have built-in GPS capabilities (which the bulk of desktop and laptop devices still aren&#8217;t equipped with).</p>
<p>Worse yet, when location is returned via any technique, it is often inaccurate. In my case, IP lookup and Geolocation lookup provide locations that are over 10 miles away from each other! That&#8217;s not a discrepancy that can be resolved in many cases.</p>
<p>In the longer term, the Geolocation API is almost certainly the way to go. When it is fully supported, it is the most accurate method available. Today, though, the landscape is still fractured and implementing accurate geolocation is not trivial on the web.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ferretarmy.com/2009/08/05/determining-geolocation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery Image Overlay Plugin</title>
		<link>http://www.ferretarmy.com/2009/07/26/jquery-image-overlay-plugin/</link>
		<comments>http://www.ferretarmy.com/2009/07/26/jquery-image-overlay-plugin/#comments</comments>
		<pubDate>Sun, 26 Jul 2009 19:30:43 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Geeky]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery UI]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[WebDev]]></category>
		<category><![CDATA[Image Overlay]]></category>
		<category><![CDATA[metadata plugin]]></category>

		<guid isPermaLink="false">http://www.ferretarmy.com/?p=415</guid>
		<description><![CDATA[I&#8217;ve created my first jQuery plugin this week &#8211; it&#8217;s an image overlay plugin (the static pic above doesn&#8217;t do the plugin justice, so click through to see it in action). Creating a jQuery plugin isn&#8217;t that big a stretch for a competent JavaScript developer. There are quite a few tutorials out there where you [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.ferretarmy.com/files/jQuery/ImageOverlay/ImageOverlay.html"><img class="size-full wp-image-416 aligncenter" title="jQuery Image Overlay Plugin" src="http://www.ferretarmy.com/wp-content/uploads/2009/07/Image-Overlay.jpg" alt="jQuery Image Overlay Plugin" width="204" height="202" /></a></p>
<p>I&#8217;ve created my first jQuery plugin this week &#8211; it&#8217;s an <a href="http://www.ferretarmy.com/files/jQuery/ImageOverlay/ImageOverlay.html">image overlay plugin</a> (the static pic above doesn&#8217;t do the plugin justice, so click through to see it in action).</p>
<p>Creating a jQuery plugin isn&#8217;t that big a stretch for a competent JavaScript developer. There are quite a few tutorials out there where you can grab a template and start working very quickly. In addition to writing my plugin, I also made sure that it supported the <a href="http://plugins.jquery.com/project/metadata">metadata plugin</a>, so that you can dynamically change properties on individual galleries and images, which should go a long way towards usefulness.</p>
<p>If you end up using this plugin, drop a line in the comments with a link so we can check out your work. Hope you enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ferretarmy.com/2009/07/26/jquery-image-overlay-plugin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>HTML5 Canvas Particle Example</title>
		<link>http://www.ferretarmy.com/2009/07/19/html5-canvas-particle-example/</link>
		<comments>http://www.ferretarmy.com/2009/07/19/html5-canvas-particle-example/#comments</comments>
		<pubDate>Sun, 19 Jul 2009 22:58:44 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[canvas]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[WebDev]]></category>
		<category><![CDATA[canvas tag]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.ferretarmy.com/?p=378</guid>
		<description><![CDATA[Here&#8217;s a cool particle demonstration of the HTML5 &#60;canvas&#62; tag. It&#8217;s a tremendously small amount of JavaScript code that is responsible for pushing some radial gradient particles around a canvas. You can check out the source code to see how things are done &#8211; it uses jQuery a bit and the demo itself uses a [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.ferretarmy.com/files/canvas/canvasParticle/canvasParticle2.html"><img class="size-full wp-image-379 aligncenter" style="border: 1px solid #000;" title="Canvas Particle Demo" src="http://www.ferretarmy.com/wp-content/uploads/2009/07/canvasParticle.png" alt="Canvas Particle Demo" width="300" height="200" /></a></p>
<p>Here&#8217;s a cool <a href="http://www.ferretarmy.com/files/canvas/canvasParticle/canvasParticle2.html">particle demonstration</a> of the HTML5 &lt;canvas&gt; tag. It&#8217;s a tremendously small amount of JavaScript code that is responsible for pushing some radial gradient particles around a canvas. You can check out the source code to see how things are done &#8211; it uses <a href="http://jquery.com/">jQuery</a> a bit and the demo itself uses a free <a href="http://www.eyecon.ro/colorpicker/">color picker control</a>.</p>
<p>The demo works best in Firefox. Chrome has some ugly rendering artifacts when the gradients cross over one another and Safari can&#8217;t push a lot of particles on the screen without dying, but Firefox can render several hundred particles with ease (Internet Explorer doesn&#8217;t support &lt;canvas&gt; at all). If the computation for this demo were to be done on a GPU rather than a CPU, you&#8217;d probably be able to pump out thousands of particles with no issues.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ferretarmy.com/2009/07/19/html5-canvas-particle-example/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Jaxer &#8211; Great Technology, Needs a Little Love</title>
		<link>http://www.ferretarmy.com/2009/07/11/jaxer-great-technology-needs-a-little-love/</link>
		<comments>http://www.ferretarmy.com/2009/07/11/jaxer-great-technology-needs-a-little-love/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 17:43:35 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[WebDev]]></category>
		<category><![CDATA[Aptana]]></category>
		<category><![CDATA[Jaxer]]></category>

		<guid isPermaLink="false">http://www.ferretarmy.com/?p=368</guid>
		<description><![CDATA[Jaxer is a somewhat new technology that I&#8217;ve recently started to delve into. Jaxer is billed as the first AJAX server &#8211; basically, it&#8217;s a combination of a &#8216;web server&#8217; and a set of APIs that can be used to develop web applications that transparently utilize asynchronous XMLHTTPRequests instead of postbacks as the standard way [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.aptana.com/jaxer"><img class="alignnone size-full wp-image-370" title="Jaxer" src="http://www.ferretarmy.com/wp-content/uploads/2009/07/jaxer.gif" alt="Jaxer" width="400" height="118" /></a></p>
<p><a href="http://www.aptana.com/jaxer">Jaxer</a> is a somewhat new technology that I&#8217;ve recently started to delve into. Jaxer is billed as the first AJAX server &#8211; basically, it&#8217;s a combination of a &#8216;web server&#8217; and a set of APIs that can be used to develop web applications that transparently utilize asynchronous XMLHTTPRequests instead of postbacks as the standard way of communication between client and server. Jaxer development can be done in the <a href="http://www.aptana.com/">Aptana</a> IDE or via an <a href="http://www.eclipse.org/">Eclipse </a>plugin.</p>
<p>Jaxer is somewhat unique in that the language used for both client and server is JavaScript. The server itself is basically the internals of the Mozilla platform (the DOM engine, the parser, the <a href="http://www.mozilla.org/js/spidermonkey/">Javascript engine</a>) along with a bunch of glue and a <a href="http://www.aptana.com/reference/jaxer/api/Jaxer.index-frame.html">Jaxer API</a> that facilitates, amongst other things, database and file access on the server side. The server is not standalone &#8211; it must be run as an <a href="http://httpd.apache.org/">Apache</a> plugin (and IIS support seems to be planned for some future time).</p>
<p>What are some of the benefits of using Jaxer? One of the most obvious is the embracing of AJAX. As long as you understand the Client-Server paradigm, making AJAX requests is trivial. There is no extra markup needed &#8211; if you call a server-side method from the client side, the request is XMLHTTPRequest wrapped and sent to the server.</p>
<p>Another benefit to Jaxer is that there&#8217;s no new language to learn. Since Jaxer is built on JavaScript, it&#8217;s easy to add whatever JavaScript framework you&#8217;d like into the mix too, such as <a href="http://jquery.com/">jQuery</a> and <a href="http://developer.yahoo.com/yui/">YUI</a>. These libraries are even available on both the client AND the server, rather than on the client alone.</p>
<p>Jaxer also comes with support for the <a href="http://www.aptana.com/cloud">Aptana Cloud</a> built into the Aptana IDE and the Eclipse plugin. Once you have a Jaxer application working, you can do very easy deployment to the cloud service and be running in minutes with no additional configuration needed. You can also easily connect to the cloud to view your database and files through Aptana.</p>
<p>So, Jaxer sounds pretty cool. What are some of the drawbacks of it? One of the biggest currently is there&#8217;s no support for an Object-Relational Model (ORM). Many market leading web languages have ORM built in that make data manipulation easy. All database access must be made with straight SQL, which feels a little dated now. On the plus side, Jaxer comes configured with <a href="http://www.sqlite.org/">SQLLite</a> out of the box, so no database setup is needed to run locally.</p>
<p>Another huge drawback is that there are not many places to host Jaxer on the web. Neither Dreamhost nor Godaddy have support for it (and, it&#8217;s been out for a year and a half!), so you&#8217;re pretty much relegated to a virtual private server or the Aptana Cloud for affordable hosting. Both options can be had for as little as $20 a month, but that&#8217;s a lot of money to just tinker around with some ideas.</p>
<p>Another drawback to Jaxer is that there is a hefty cost for a commercial license for the IDE (though a non-commercial license is free). I understand that the people behind Jaxer are a business, but it hurts particularly badly when your platform target is Linux-Apache. Both Ruby and PHP have free development tools available, so getting a company to fork over $500 a seat is not trivial to do.</p>
<p>There&#8217;s also no support for master and child pages in Jaxer. Jaxer was built as a tool to create web applications rather than web sites. You can&#8217;t easily separate your HTML files into a container and content frame, so building multi-page websites is not something that I would recommend in Jaxer.</p>
<p>Make no mistake &#8211; Jaxer is a compelling product. It is simple, easy to learn, intuitive, built on existing technologies, and it can make some wicked applications. It has support from some major industry players, including <a href="http://ejohn.org/blog/server-side-javascript-with-jaxer/">John Resig</a> of jQuery fame. It has a long road ahead if it&#8217;s going to break into the big leagues, but I certainly would recommend giving it a spin. If nothing else, it will open your eyes a little on how to write world-class AJAX web applications.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ferretarmy.com/2009/07/11/jaxer-great-technology-needs-a-little-love/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Check out TinyMCE</title>
		<link>http://www.ferretarmy.com/2008/03/28/tinymce/</link>
		<comments>http://www.ferretarmy.com/2008/03/28/tinymce/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 14:12:36 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[blaqdesign]]></category>
		<category><![CDATA[TinyMCE]]></category>

		<guid isPermaLink="false">http://www.ferretarmy.com/2008/03/28/tinymce/</guid>
		<description><![CDATA[If you&#8217;re a web developer who&#8217;s in charge of creating content management systems, there&#8217;s a great control you&#8217;ve got to check out &#8211; TinyMCE. TinyMCE is a free, open source WYSIWIG text editor. The beauty of it is that it&#8217;s feature-rich, it&#8217;s platform independent (being written entirely in JavaScript), and it&#8217;s extremely easy to configure [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re a web developer who&#8217;s in charge of creating content management systems, there&#8217;s a great control you&#8217;ve got to check out &#8211; <a href="http://tinymce.moxiecode.com/">TinyMCE</a>. TinyMCE is a free, open source WYSIWIG text editor. The beauty of it is that it&#8217;s feature-rich, it&#8217;s platform independent (being written entirely in JavaScript), and it&#8217;s extremely easy to configure and extend. It&#8217;s developed by Moxiecode, who also develops some very intriguing commercial controls. TinyMCE is actually the text editor that WordPress uses for their backend CMS (so, it&#8217;s what I&#8217;m writing this post on, by extension).</p>
<p>The great part is that TinyMCE is specifically designed as an XHTML markup editor, so the output of it can go straight into any web container without further down-the-line manipulation. Even better was a feature I was not at all expecting &#8211; you can style the text editor with a .css file and a css class definition too! This means that if you use your site&#8217;s stylesheet and it&#8217;s written well, you can get the TinyMCE editor window to effectively replicate what your site post will look like. Now, that&#8217;s a powerful feature!</p>
<p>Here&#8217;s an example of what I mean. This is a sample post from my other site, <a href="http://www.blaqdesign.com">blaqdesign.com</a>, in the content editor system that I&#8217;m writing for it. The great part was that these posts weren&#8217;t originally created in TinyMCE, but since they&#8217;re valid XHTML fragments, I was able to load them into TinyMCE with no hassles whatsoever. If you go to the site, you&#8217;ll see in this very post in the site news, and formatted exactly the same way. The background is the same, the text formatting and colors are perfect, and the XHTML markup is preserved. Now, I don&#8217;t have to worry that other people will make a mess of the site formatting when they&#8217;re creating content.</p>
<p align="center"><a href="http://www.ferretarmy.com/wp-content/uploads/2008/03/tinymce.jpg" title="TinyMCE"></a><a href="http://www.ferretarmy.com/wp-content/uploads/2008/03/tinymce.jpg" title="TinyMCE on blaqdesign"><img border="0" width="450" src="http://www.ferretarmy.com/wp-content/uploads/2008/03/tinymce.jpg" alt="TinyMCE" height="156" style="width: 496px; height: 169px" /></a></p>
<p align="left">If you&#8217;re interested, here&#8217;s my TinyMCE configuration I used:</p>
<p><font size="2" color="#0000ff"></p>
<blockquote><p>&lt;<font size="2" color="#a31515">script</font><font size="2" color="#0000ff">&gt;</font><br />
<font size="2">tinyMCE.init({</font><font size="2"></p>
<blockquote><p>mode : <font size="2" color="#a31515">&#8220;textareas&#8221;</font><font size="2">,</font><br />
<font size="2">theme : </font><font size="2" color="#a31515">&#8220;advanced&#8221;</font><font size="2">,</font><br />
<font size="2">theme_advanced_buttons1 :</font><font size="2"><font size="2" color="#a31515">&#8220;bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,&#8221;</font><font size="2"> +</font></font><font size="2"> <font size="2" color="#a31515">&#8220;|,bulletlist,numlist,|,undo,redo,|,formatselect,|,cut,copy,paste,pastetext,pasteword,|,&#8221;</font><font size="2"> + </font><font size="2"><font size="2" color="#a31515">&#8220;outdent,indent,|,link,unlink,image,cleanup,code,charmap&#8221;</font><font size="2">,</font></font></font><br />
<font size="2"><font size="2"><font size="2">theme_advanced_buttons2 : </font></font></font><font size="2" color="#a31515">&#8220;&#8221;</font><font size="2">,</font><br />
<font size="2">theme_advanced_buttons3 : <font size="2" color="#a31515">&#8220;&#8221;</font><font size="2">,</font></font><br />
<font size="2"><font size="2">theme_advanced_toolbar_location : </font></font><font size="2"><font size="2" color="#a31515">&#8220;top&#8221;</font><font size="2">,</font></font><br />
<font size="2"><font size="2">theme_advanced_toolbar_align : <font size="2" color="#a31515">&#8220;left&#8221;</font><font size="2">,</font></font></font><br />
<font size="2"><font size="2"><font size="2">theme_advanced_statusbar_location :  </font></font></font><font size="2" color="#a31515">&#8220;bottom&#8221;</font><font size="2">,</font><br />
<font size="2">theme_advanced_resizing : <font size="2" color="#0000ff">true</font><font size="2">,</font></font><br />
<font size="2"><font size="2">theme_advanced_resize_horizontal : </font></font><font size="2"><font size="2" color="#0000ff">false</font><font size="2">,</font></font><br />
<font size="2"><font size="2">content_css : <font size="2" color="#a31515">&#8220;/Styles/blaqStyleSheet.css&#8221;</font><font size="2">,</font></font></font><br />
<font size="2"><font size="2"><font size="2">body_class : <font size="2" color="#a31515">&#8220;contentBody&#8221;</font></font></font></font></p></blockquote>
<p><font size="2">})</font><font size="2"><font size="2" color="#0000ff">&lt;/</font><font size="2" color="#a31515">script</font><font size="2" color="#0000ff">&gt;</font></font></p>
<p></font></p></blockquote>
<p></font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ferretarmy.com/2008/03/28/tinymce/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

