<?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>Hdeya team blog &#187; AJAX</title>
	<atom:link href="http://www.hdeya.com/blog/category/ajax/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hdeya.com/blog</link>
	<description>We can make IT</description>
	<lastBuildDate>Sun, 28 Mar 2010 11:28:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Sorting items on the fly (AJAX) using jQuery UI Sortable, PHP &amp; MySQL.</title>
		<link>http://www.hdeya.com/blog/2009/05/sorting-items-on-the-fly-ajax-using-jquery-ui-sortable-php-mysql/</link>
		<comments>http://www.hdeya.com/blog/2009/05/sorting-items-on-the-fly-ajax-using-jquery-ui-sortable-php-mysql/#comments</comments>
		<pubDate>Sun, 03 May 2009 17:50:32 +0000</pubDate>
		<dc:creator>Mahmoud M. Abdel-Fattah</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[PHP Tips]]></category>
		<category><![CDATA[Quick Tip / Trick]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.hdeya.com/blog/?p=162</guid>
		<description><![CDATA[While we were working on http://www.duettographics.com Administration control panel, they required the ability to sort their images in easy way, so after some googeling we find many separate tutorials for this. So, we decided to write one simple tutorial that can describe the whole thing.
In this tutorial, we&#8217;ll work on sorting menu items.
Requirements : <a [...]]]></description>
			<content:encoded><![CDATA[<p>While we were working on http://www.duettographics.com Administration control panel, they required the ability to sort their images in easy way, so after some googeling we find many separate tutorials for this. So, we decided to write one simple tutorial that can describe the whole thing.</p>
<p>In this tutorial, we&#8217;ll work on sorting menu items.</p>
<p>Requirements : <a href="http://jqueryui.com/download">sortable jQuery UI</a>, PHP &amp; MySQL server support.<span id="more-162"></span></p>
<ol>
<li>Create a new MySQL Database called `test_db` and a new table called `menu

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">CREATE</span> <span style="color: #990099; font-weight: bold;">TABLE</span> <span style="color: #990099; font-weight: bold;">IF <span style="color: #CC0099; font-weight: bold;">NOT</span> EXISTS</span> <span style="color: #008000;">`menu`</span> <span style="color: #FF00FF;">&#40;</span>
  <span style="color: #008000;">`id`</span> <span style="color: #999900; font-weight: bold;">int</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">11</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span> <span style="color: #FF9900; font-weight: bold;">auto_increment</span><span style="color: #000033;">,</span>
  <span style="color: #008000;">`title`</span> <span style="color: #999900; font-weight: bold;">int</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">11</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
  <span style="color: #008000;">`sort`</span> <span style="color: #999900; font-weight: bold;">int</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">2</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
  <span style="color: #990099; font-weight: bold;">PRIMARY KEY</span>  <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">`id`</span><span style="color: #FF00FF;">&#41;</span>
<span style="color: #FF00FF;">&#41;</span></pre></div></div>

</li>
<li>Create new php file called &#8220;menu_list.php&#8221;, this file will be our main file to sort the menu items .
<pre class="brush: php">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;Sorting Items on the fly using jQuery UI, PHP &amp; MySQL&lt;/title&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery-1.3.2.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery-ui-1.7.1.custom.min.js&quot;&gt;&lt;/script&gt;
&lt;script&gt;
$(document).ready(
function() {
$(&quot;#sortme&quot;).sortable({
update : function () {
serial = $(&#039;#sortme&#039;).sortable(&#039;serialize&#039;);
$.ajax({
url: &quot;sort_menu.php&quot;,
type: &quot;post&quot;,
data: serial,
error: function(){
alert(&quot;theres an error with AJAX&quot;);
}
});
}
});
}
);
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;Menu List&lt;/h1&gt;

&lt;ul id=&quot;sortme&quot;&gt;
&lt;?php
// Connecting to Database
mysql_connect($hostname, $user_name, $password) or die (&#039;Cant Connceto to MySQL&#039;);

// Selecting Database
mysql_select_db($db_name) or die (&#039;Cant select Database&#039;);

// Getting menu items from DB
$result = mysql_query(&quot;SELECT * FROM `menu` ORDER BY `sort` ASC&quot;) or die(mysql_error());
while($row = mysql_fetch_array($result)) {
echo &#039;&lt;li id=&quot;menu_&#039; . $row[&#039;id&#039;] . &#039;&quot;&gt;&#039; . $row[&#039;title_en&#039;] . &quot;&lt;/li&gt;\n&quot;;
}
?&gt;
&lt;/ul&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
</li>
<li>Create a new file for AJAX purpose to update sorting called &#8220;sort_menu.php&#8221;
<pre class="brush: php">
&lt;?php
// Connecting to Database
mysql_connect($hostname, $user_name, $password) or die (&#039;Cant Connceto to MySQL&#039;);

// Selecting Database
mysql_select_db($db_name) or die (&#039;Cant select Database&#039;);

$menu = $_POST[&#039;menu&#039;];
for ($i = 0; $i &lt; count($menu); $i++) {
mysql_query(&quot;UPDATE `menu` SET `sort`=&quot; . $i . &quot; WHERE `id`=&#039;&quot; . $menu[$i] . &quot;&#039;&quot;) or die(mysql_error());
}
?&gt;
</pre>
</li>
</ol>
<p>Finally, this should works fine with you, but If you faced any problem, leave ur comment !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hdeya.com/blog/2009/05/sorting-items-on-the-fly-ajax-using-jquery-ui-sortable-php-mysql/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>40 Useful JavaScript Libraries</title>
		<link>http://www.hdeya.com/blog/2009/03/40-useful-javascript-libraries/</link>
		<comments>http://www.hdeya.com/blog/2009/03/40-useful-javascript-libraries/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 03:30:52 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Developer's Toolbox]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[libraries]]></category>

		<guid isPermaLink="false">tag:google.com,2005:reader/item/2e46471b1ddb695a</guid>
		<description><![CDATA[Popular JavaScript libraries such as jQuery, MooTools, Prototype, Dojo and YUI can be great for accomplishing common JavaScript tasks. These libraries provide many functions, whether the matter is related to events or effects or AJAX. And if one of th...]]></description>
			<content:encoded><![CDATA[<p>Popular <strong>JavaScript libraries</strong> such as jQuery, MooTools, Prototype, Dojo and YUI can be great for accomplishing common JavaScript tasks. These libraries provide many functions, whether the matter is related to events or effects or AJAX. And if one of these libraries can’t do the job, a plug-in probably exists that can.</p>
<p>Such flexibility is great but sometimes comes with a penalty (the size of JavaScript files being one of them). Although adopting a well-known JavaScript library is usually a wise decision, you may want to perform a task that can be accomplished by a more lightweight library dedicated exclusively to that task or that is not supported by the more popular JavaScript libraries.</p>
<p>Below, we present <strong>40 stand-alone JavaScript libraries that serve specific purposes</strong>. These are not all the ones out there, but every Web designer or developer will find something helpful here.<span id="more-104"></span></p>
<h3>1. Forms</h3>
<p><a href="http://www.formassembly.com/wForms/">wForms</a><br />
wForms is an <strong>open-source</strong> and<strong> unobtrusive library</strong> that simplifies the most common JavaScript form functions. It offers ready-to-use form validation functions for which can be applied by adding a class info to the form objects. Besides these, <strong>wForms</strong> has powerful <strong>form synchronization</strong> (like “Check”/”Uncheck all”) and <strong>conditional form</strong> capabilities (e.g. if x is checked, then show y).</p>
<p><a href="http://www.formassembly.com/wForms/"><img src="http://88.198.60.17/images/javascript-libraries/wforms.gif" border="0" alt="wForms" width="480" height="116" /></a></p>
<p><a href="http://www.drlongghost.com/validanguage.php">Validanguage</a><br />
Validanguage is an unobtrusive <strong>JavaScript form validation framework</strong>. It has an inheritance logic whose settings can be defined globally, per form or per element. With the 2 APIs provided: and features like integrated AJAX support, caching and callback functions, the framework provides a robust validation experience. It has a HTML-like API inserted in comment tags and a JavaScript object-based API, for advanced configuration.</p>
<p><a href="http://www.drlongghost.com/validanguage.php"><img src="http://78.46.108.98/images/javascript-libraries/validanguage.gif" border="0" alt="Validanguage" width="480" height="116" /></a></p>
<p><a href="http://www.livevalidation.com/">LiveValidation</a><br />
LiveValidation is a lightweight library that equips you with  set of validation functions. Besides the classic validation methods, the library has a powerful live validation feature that <strong>controls the fields as you type</strong>. <strong>Ruby on Rails</strong> developers will find it very easy to use because the naming conventions and parameters are very similar. It is a stand-alone library but has a Prototype version, too.</p>
<p><a href="http://www.livevalidation.com/"><img src="http://78.46.108.98/images/javascript-libraries/live-validation.gif" alt="LiveValidation" width="480" height="116" /></a></p>
<p><a href="http://yav.sourceforge.net/en/index.html">yav</a><br />
A powerful, extensible and flexible <strong>form-validation library, </strong><strong>yav</strong> has support for a wide range of scenarios, from basic ones like date, email and integer, to advanced ones, like masking and custom regular expressions. It has built-in AJAX support, and errors displayed can be easily customized per object level.</p>
<p><a href="http://www.pengoworks.com/index.cfm?action=get:qforms">qForms</a><br />
A complete solution for handling forms. It equips a developer with features such as various validation rules, methods to prevent multi-submissions, ability to lock/disable fields and more.</p>
<p><a href="http://code.google.com/p/formreform/">formreform</a><br />
Using multi-column layouts without tables is usually challenging. This tiny library transforms a classic form  into a stylish layout with one, two or four columns. Forms are styled to fit any design automatically with <strong>formreform</strong>.</p>
<p><a href="http://code.google.com/p/formreform/"><img src="http://78.46.108.98/images/javascript-libraries/formreform.gif" border="0" alt="formreform" width="480" height="116" /></a></p>
<h3>2. Animation</h3>
<p><a href="http://fx.inetcat.com/">$fx()</a><br />
<strong>$fx()</strong> is a lightweight library for animating HTML objects. Using it, you can alter any CSS property within a given timeline. For complicated animations, you can combine effects, group them to  chains and run them in parallel. And you can set different callbacks at every step to customize it further.</p>
<p><a href="http://fx.inetcat.com/"><img src="http://88.198.60.17/images/javascript-libraries/fx-javascript-animations.jpg" border="0" alt="$fx() JavaScript Animation Library" width="480" height="116" /></a></p>
<p><a href="http://coderepos.org/share/wiki/JSTweener">JSTweener</a><br />
A tweening library for JavaScript. Its API is similar to the famous ActionScript tweening engine <a href="http://code.google.com/p/tweener/">Tweener</a>. You can mention the time of the animation, define the transition effects and delays. At almost any point (like onStart, onComplete, onUpdate) you can fire new events.</p>
<p><a href="http://coderepos.org/share/wiki/JSTweener"><img src="http://78.46.108.98/images/javascript-libraries/jstweener.gif" border="0" alt="JSTweener" /></a></p>
<p><a href="http://developers.facebook.com/animation/">Facebook Animation</a><br />
A powerful library for creating customizable CSS-based animations. With a line or two in Facebook Animation, you can improve the UI<strong></strong>. The syntax is identical to the FBJS version (the library used in Facebook applications) and once learned, it is an asset for creating Facebook applications.</p>
<p><a href="http://ryanmorr.com/archives/fx-lightweight-and-standalone">FX</a><br />
A lightweight library, with a YUI-like syntax, FX can create a tween for almost any CSS property. It supports color and scroll animations. Designing the “to” and “from” values of any object/property is enough.</p>
<h3>3. Visualization And Image Effects</h3>
<p><a href="http://www.jscharts.com/">JS charts</a><br />
<strong>JS charts</strong> supports bar charts, pie charts and simple line graphs. It offers nice usability by simply inserting the library onto Web pages and calling the data from an XML file or a JavaScript array. Charts are created as PNG files and the library is compatible with all the major browsers.</p>
<p><a href="http://www.jscharts.com/"><img src="http://78.46.108.98/images/javascript-libraries/js-charts.jpg" border="0" alt="JS Charts" width="480" height="116" /></a></p>
<p><a href="http://www.c3dl.org/">Canvas 3D JS Library (C3DL)</a><br />
<strong>C3DL</strong> makes writing 3D applications easy. It provides a set of math, scene and 3D object classes to make the  canvas more accessible to developers who want to develop 3D content  in a browser but not have to deal in depth with the 3D math  needed to make it work.</p>
<p><a href="http://www.c3dl.org/"><img src="http://78.46.108.98/images/javascript-libraries/c3dl.jpg" border="0" alt="C3DL" width="480" height="116" /></a></p>
<p><a href="http://ejohn.org/blog/processingjs/">Processing.js</a><br />
This is a JavaScript port to the <a href="http://processing.org/">Processing language</a> (a language for programming images, animation and interactions). The library is feature-rich for creating 2D outputs. It provides methods for shape/image drawing, color manipulation, fonts, objects, math functions and more.</p>
<p><a href="http://ejohn.org/blog/processingjs/"><img src="http://88.198.60.17/images/javascript-libraries/processing-js.gif" border="0" alt="Processing.js" width="480" height="116" /></a></p>
<p><a href="http://raphaeljs.com/">Raphaël</a><br />
An amazing library that simplifies working with vector graphics on the Web. Raphaël uses SVG and VML for creating graphics that can be modified and event handlers that can be attached to them. The library is feature-rich in functions, including rotation, animation, scaling and drawing curves, rectangles and circles.</p>
<p><a href="http://raphaeljs.com/"><img src="http://78.46.108.98/images/javascript-libraries/raphael-js.jpg" border="0" alt="Raphael: Vectors With JavaScript" width="480" height="116" /></a></p>
<p><a href="http://www.nihilogic.dk/labs/imagefx/">ImageFX</a><br />
This is a JavaScript library for adding effects to images, like blur, sharpen, emboss, lighten and more. ImageFX uses canvas element for creating the effects. It is compatible with all major browsers (there is a compatibility chart on the script’s page). The library is so easy to use. Simply inserting the .js file in the Web page and calling a one-line function is enough.</p>
<p><a href="http://www.nihilogic.dk/labs/imagefx/"><img src="http://78.46.108.98/images/javascript-libraries/imagefx.jpg" border="0" alt="Imagefx" width="480" height="116" /></a></p>
<p><a href="http://www.pixastic.com/">Pixastic</a><br />
<strong>Pixastic</strong> uses the HTML5 canvas element, which enables  accessing raw pixel data. The effects supported  include desaturation and grayscale,  inverting, flipping, brightness and contrast adjustment, hue and saturation,  embossing, blurring and much more. Because the canvas element is relatively new, the library does not have equal support in all browsers yet.</p>
<p><a href="http://cow.neondragon.net/stuff/reflection/">Reflection.js</a><br />
An unobtrusive JavaScript to auto-create reflection effects. The height and opacity of the reflection can be defined. Using it is as easy as adding a “class” to the images. It works in all major browsers and is smaller than 5 KB.</p>
<p><a href="http://cow.neondragon.net/stuff/reflection/"><img src="http://78.46.108.98/images/javascript-libraries/reflection-js.jpg" border="0" alt="Reflection.js" width="480" height="116" /></a></p>
<h3>4. Database</h3>
<p><a href="http://taffydb.com/">Taffy DB</a><br />
A JavaScript library that can be thought as an SQL database in the browser or an advanced “array manager.” It works as a database layer within AJAX’ed Web applications. You can create, read, edit and delete data, use loops, sort them and use advanced queries.</p>
<p><a href="http://www.activerecordjs.org/">ActiveRecord.js</a><br />
This library supports Google Gears and Chrome, Aptana Jaxer, Adobe AIR, and any platform that supports W3C HTML5 SQL Specification (Webkit and iPhone for now). It makes it easy to work with databases in JavaScript. Using <strong>ActiveRecord.js</strong>, you can auto-create tables, validate and synchronize data and more.</p>
<p><img src="http://88.198.60.17/images/javascript-libraries/activerecord-js.gif" alt="ActiveRecord.js" width="480" height="116" /></p>
<h3>5. String And Math Functions</h3>
<p><a href="http://www.datejs.com/">Date.js</a><br />
Working with dates are always tricky. So many dots, slashes and formats. <strong>Datejs</strong> is a stunning library for simple to complex date functions. It can  parse dates like: “Next thursday”, “+2 years” and all formats like 2009.01.08, 12/6/2001 etc.</p>
<p><a href="http://www.datejs.com/"><img src="http://78.46.108.98/images/javascript-libraries/datejs.jpg" border="0" alt="Datejs" width="480" height="116" /></a></p>
<p><a href="http://sylvester.jcoglan.com/">Sylvester</a><br />
This is a JavaScript library for doing vector and matrix math easily, without using a lot of loops and getting lost between arrays. It includes classes for modelling vectors and matrices in any number of  dimensions and for modelling infinite lines and planes in  3D space.</p>
<p><a href="http://sylvester.jcoglan.com/"><img src="http://78.46.108.98/images/javascript-libraries/sylvester.gif" border="0" alt="Sylvester" width="480" height="116" /></a></p>
<p><a href="http://ejohn.org/projects/javascript-pretty-date/">Pretty Date </a><br />
A smart JavaScript solution for displaying dates within the past month in a prettier and more user-friendly way. It displays dates relative to the current time; for example, “Yesterday,” “3 hours ago,” etc.</p>
<p><a href="http://ejohn.org/projects/javascript-pretty-date/"><img src="http://78.46.108.98/images/javascript-libraries/pretty-date.gif" alt="Pretty Date" width="480" height="116" /></a></p>
<p><a href="http://stevenlevithan.com/regex/xregexp/">XRegExp</a><br />
Regular expressions can be already used in JavaScript with the RegExp object. <strong>XRegExp</strong> adds more power to RegExp with features that will be part of the browsers of tomorrow (according to proposals for ECMAScript 4 &#8211; ES4). Using the library, RegExp objects can be cached and reused, modifiers can be added to existing RegExp objects and more.</p>
<p><a href="http://www.fliquidstudios.com/projects/javascript-url-library/">JavaScript URL Library</a><br />
A library for handling and manipulating URLs more easily. It is possible to reach every part of a URL as a string and modify it when needed. This URL library is very new but already works as mentioned.</p>
<h3>6. Fonts</h3>
<p><a href="http://typeface.neocracy.org/">typeface.js</a><br />
An unobtrusive library for using any font on a website. Unlike popular solutions like <a href="http://www.mikeindustries.com/blog/sifr/">sIFR</a> or  <a href="http://facelift.mawhorter.net/">FLIR</a>, <strong>typeface.js</strong> doesn’t require Flash and is 100% JavaScript. To use any font, upload the TrueType font file to a <a href="http://typeface.neocracy.org/fonts.html">Web-based generator</a>, and download the rendered JavaScript file and include it in your Web pages.</p>
<p><a href="http://typeface.neocracy.org/"><img src="http://88.198.60.17/images/javascript-libraries/typeface-js.gif" border="0" alt="Typeface.js" width="480" height="116" /></a></p>
<p><a href="http://cufon.shoqolate.com/generate/">Cufón</a><br />
Very similar to typeface.js, <strong>Cufón</strong> enables you to use any TrueType font in a website. Again, it converts the font to VML with a generator. After inserting the generated .js file in your Web pages, you can use the font like any other.</p>
<h3>7. Debugging And Logging</h3>
<p><a href="http://www.gscottolson.com/blackbirdjs/">Blackbird</a><br />
Alert()s are widely used to create checkpoints in JavaScript development. <strong>Blackbird</strong> offers a stylish console to log, view and filter messages in JavaScript, which quickens the development process by eliminating the pause at every alert and analyzing each better.</p>
<p><a href="http://www.gscottolson.com/blackbirdjs/"><img src="http://78.46.108.98/images/javascript-libraries/blackbird.jpg" border="0" alt="Blackbird" width="288" height="116" /></a></p>
<p><a href="http://www.nitobibug.com/">NitobiBug</a><br />
A browser-based, cross-browser <strong>JavaScript object logging and inspection utility</strong>. By inserting rules in your code (like which object to follow), you can have it distinguish between simple types, like strings, booleans and numbers, and complex objects, like error messages and objects.</p>
<p><a href="http://www.nitobibug.com/"><img src="http://78.46.108.98/images/javascript-libraries/nitobibug.jpg" border="0" alt="NitobiBug" width="480" height="116" /></a></p>
<p><a href="http://getfirebug.com/lite.html">Firebug Lite</a><br />
<strong>Firebug</strong>, which sadly only works with Firefox, is one of the best debugging tools around. To have a similar tool for all browsers, insert the <strong>Firebug Lite</strong> .js file into your Web pages, and you get the functionality and interface you’re used to.</p>
<p><a href="http://getfirebug.com/lite.html"><img src="http://78.46.108.98/images/javascript-libraries/firebug-lite.jpg" border="0" alt="Firebug Lite" width="480" height="116" /></a></p>
<h3>8. Other</h3>
<p><a href="http://code.google.com/p/swfobject/">swfobject</a><a href="http://www.danvk.org/wp/dragtable/"></a><br />
<strong>swfobject</strong> is the most popular and flexible method for embedding Flash movies. It is unobtrusive, generates valid markup and can detect the version of a user’s Flash Player, allowing you to display alternate content if the required Flash version is not loaded. A nice article on “why <strong>swfobject</strong> should be used” can be found <a href="http://www.alistapart.com/articles/flashembedcagematch/">here</a>.</p>
<p><a href="http://code.google.com/p/swfobject/"><img src="http://88.198.60.17/images/javascript-libraries/swjobject.jpg" border="0" alt="swfobject" width="480" height="116" /></a></p>
<p><a href="http://www.kryogenix.org/code/browser/sorttable/">sorttable</a> and <a href="http://www.danvk.org/wp/dragtable/">dragtable</a><br />
Tables, like them or not, are still one of the best ways to present data. But they can be better: <strong>sorttable</strong> is a library that makes tabular data sortable, both ascending and descending. To do this, simply add  class=”sortable” to the table. You can also exclude certain columns from being sorted and make either ascending or descending the default behavior. <strong>dragtable</strong> is another library that  makes columns draggable. After inserting the library in the Web page, add class=”dragtable” to the table as above. Best of all, both libraries can be used together. Simply add class=”sortable dragtable” to the table after including both libraries in the Web page.</p>
<p><a href="http://dillerdesign.com/experiment/DD_roundies/">DD_roundies</a> and <a href="http://www.dillerdesign.com/experiment/DD_belatedPNG/">DD_belatedPNG</a><br />
<strong>DD_roundies</strong> is a great JavaScript solutions for <strong>creating rounded corners without using images</strong>. It is focused on IE and supports it through VML. Other browsers are ignored because they support CSS’s border-radius property.</p>
<p><a href="http://dillerdesign.com/experiment/DD_roundies/"><img src="http://78.46.108.98/images/javascript-libraries/javascript-round-corners.jpg" border="0" alt="JavaScript Rounded Corners" width="480" height="116" /></a><br />
<strong>DD_belatedPNG</strong> is a library that provides a customizable fix for the notorious IE6 PNG problem. Whether the PNG is used as “src” or “background-image” <strong>DD_belatedPNG</strong> can fix it. Unlike other solutions, “background-position” and “background-repeat” properties work as expected too.</p>
<p><a href="http://www.leigeber.com/2008/04/custom-javascript-dialog-boxes/">Custom JavaScript Dialog Boxes</a><br />
A lightweight library (about 4.5 KB) for creating <strong>custom dialog boxes</strong>. Four boxes can be displayed: alerts, warnings, prompts, success. With a simple function, you can specify the title of the box, the content to be shown and how many seconds to show it for.</p>
<p><a href="http://www.leigeber.com/2008/04/custom-javascript-dialog-boxes/"><img src="http://78.46.108.98/images/javascript-libraries/custom-dialog-boxes.jpg" border="0" alt="Custom Dialog Boxes" width="480" height="116" /></a></p>
<p><a href="http://www.tommysmind.com/gamejs/">GameJS</a><br />
<strong>GameJS</strong> is a JavaScript-ported version of <a href="http://www.xna.com/">Microsoft’s XNA Game Framework</a> that uses “canvas” as the rendering device. JavaScript is not the best platform for creating games. But for games with less FPS, and if you are a JavaScript developer, then why not? The library includes handy classes for controlling the objects, drawing and keyboard controls.</p>
<p><a href="http://www.tommysmind.com/gamejs/"><img src="http://78.46.108.98/images/javascript-libraries/gamejs.jpg" border="0" alt="GameJS" width="480" height="116" /></a></p>
<p><a href="http://www.openjs.com/scripts/events/keyboard_shortcuts/">Shortcuts.js</a><br />
Starting with Google Reader and Gmail, keyboard shortcuts in Web applications have become popular because they improve usability so much. <strong>Shorcuts.js</strong> provides functions to handle keyboard shortcuts more easily. Using the library, it is possible to create hotkeys and run functions at the press of a button.</p>
<p><a href="http://mapstraction.com/">Mapstraction</a><br />
There are several mapping providers that provide different APIs. If you need to switch providers (say from Google Maps to MapQuest), codes need to be updated. That’s where <strong>Mapstraction</strong> comes in. It provides a common API that covers most of the popular mapping providers. By simply updating a line of code, it is possible to switch between them.</p>
<p><a href="http://mapstraction.com/"><img src="http://88.198.60.17/images/javascript-libraries/mapstraction.jpg" border="0" alt="Mapstraction" width="480" height="116" /></a></p>
<p><a href="http://amberjack.org/">Amberjack</a><br />
A tiny JavaScript library (about 4 KB) that helps you add good-looking website tours to your website. Once activated, a modal box guides users by displaying any type of content. The steps in the tour can be hand-coded or <a href="http://amberjack.org/wizard/">generated online</a>. Also, tours can be made to match the look of the modal box, either via CSS or with a ready-to-use <a href="http://amberjack.org/skins/">theme</a>.</p>
<p><a href="http://amberjack.org/"><img src="http://78.46.108.98/images/javascript-libraries/amberjack.jpg" border="0" alt="Amberjack" width="480" height="116" /></a></p>
<p><a href="http://jsload.net/">JsLoad</a><br />
Remote loading API of JavaScript library. JsLoad is simple API that enables you to import big JavaScript libraries from Google server. JsLoad load dependencies of any version of the library automatically.</p>
<h4>About the author</h4>
<p>Umut Muhaddisoglu is a Web designer/developer. He runs <a href="http://www.webresourcesdepot.com/">WebResourcesDepot</a>, a blog  presenting free Web design and development resources everyday. To connect with the author,  you can <a href="http://twitter.com/umutm">follow him on Twitter</a>.</p>
<p><em>(al)</em></p>
<p><em><strong>ORIGINAL POST</strong></em></p>
<p><em><a href="http://www.smashingmagazine.com/2009/03/02/40-stand-alone-javascript-libraries-for-specific-purposes/">http://www.smashingmagazine.com/2009/03/02/40-stand-alone-javascript-libraries-for-specific-purposes/</a><br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hdeya.com/blog/2009/03/40-useful-javascript-libraries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
