<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://javascriptcompressor.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Javascript Compressor - compress code online for free: Active Threads</title><link>http://javascriptcompressor.com/forums/TopicsActive.aspx</link><description>Posts with recent activity</description><dc:language>en-US</dc:language><generator>CommunityServer 2008 (Build: 30417.1769)</generator><item><title>How can i quickly add semi-colons in function declarations in large js file?</title><link>http://javascriptcompressor.com/forums/thread/49.aspx</link><pubDate>Sun, 01 Mar 2009 23:25:38 GMT</pubDate><guid isPermaLink="false">46e44164-0b03-4ad8-8ee9-19568eb0413f:49</guid><dc:creator>iamduyu</dc:creator><slash:comments>1</slash:comments><comments>http://javascriptcompressor.com/forums/thread/49.aspx</comments><wfw:commentRss>http://javascriptcompressor.com/forums/commentrss.aspx?SectionID=5&amp;PostID=49</wfw:commentRss><description>&lt;p&gt;&amp;nbsp;There are lots of functions, how can i quickly add semi-colons to it?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>javascript compressor disabled</title><link>http://javascriptcompressor.com/forums/thread/46.aspx</link><pubDate>Wed, 04 Feb 2009 05:13:49 GMT</pubDate><guid isPermaLink="false">46e44164-0b03-4ad8-8ee9-19568eb0413f:46</guid><dc:creator>raichana</dc:creator><slash:comments>3</slash:comments><comments>http://javascriptcompressor.com/forums/thread/46.aspx</comments><wfw:commentRss>http://javascriptcompressor.com/forums/commentrss.aspx?SectionID=5&amp;PostID=46</wfw:commentRss><description>&lt;p&gt;hi i was using these great compressor Online for some time ... but today suddenly i found that the compressor is disabled on the homepage ...pls help me i need to use it.... or is it just i m having these problem??&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>With huge javascript files the compressor's output doesn't work...</title><link>http://javascriptcompressor.com/forums/thread/29.aspx</link><pubDate>Sun, 17 Aug 2008 17:02:04 GMT</pubDate><guid isPermaLink="false">46e44164-0b03-4ad8-8ee9-19568eb0413f:29</guid><dc:creator>Gamebuster</dc:creator><slash:comments>5</slash:comments><comments>http://javascriptcompressor.com/forums/thread/29.aspx</comments><wfw:commentRss>http://javascriptcompressor.com/forums/commentrss.aspx?SectionID=5&amp;PostID=29</wfw:commentRss><description>&lt;p&gt;I tried the compressor with a huge javascript file, containing a whole javascript-based game.&lt;br /&gt;&lt;br /&gt;
the script:&lt;br /&gt;
http://www.levensweg.net/tetris/tetrisattack.js&lt;br /&gt;&lt;br /&gt;
If i compress it, even without those BASE and shrink values options, the output WILL NOT work. I dont know why, but my game doesn&amp;#39;t do anything with its output.&lt;br /&gt;&lt;br /&gt;
The game is playable - with the original script - online @ http://www.levensweg.net/tetris/&lt;br /&gt;
i need to compress it... so plz fix it :P&lt;br /&gt;&lt;br /&gt;
BTW, there is absolutely no UBB or even a line break support on this forum...&lt;br /&gt;
why???&lt;br /&gt;&lt;br /&gt;
EDIT:&lt;br /&gt;
i just found out i can just put HTML on this forum :P&lt;br /&gt;
Even if the output doesn&amp;#39;t work... it&amp;#39;s a GREAT compressor! it compressed almost 50%&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Decode the javascript</title><link>http://javascriptcompressor.com/forums/thread/12.aspx</link><pubDate>Wed, 09 Jul 2008 02:56:40 GMT</pubDate><guid isPermaLink="false">46e44164-0b03-4ad8-8ee9-19568eb0413f:12</guid><dc:creator>kritopal</dc:creator><slash:comments>9</slash:comments><comments>http://javascriptcompressor.com/forums/thread/12.aspx</comments><wfw:commentRss>http://javascriptcompressor.com/forums/commentrss.aspx?SectionID=5&amp;PostID=12</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;First of all thank you for the script: it works very well and is very effective! :)&lt;br /&gt;
But I have a problem: I lost the uncompressed version of a file js.
(problem backup). I need to make a change. Do you have a solution?
Thank you in advance for your reply. &lt;br /&gt; Good day&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Compressor does not work with Google Chrome.</title><link>http://javascriptcompressor.com/forums/thread/31.aspx</link><pubDate>Thu, 04 Sep 2008 10:40:39 GMT</pubDate><guid isPermaLink="false">46e44164-0b03-4ad8-8ee9-19568eb0413f:31</guid><dc:creator>MTOMalley</dc:creator><slash:comments>6</slash:comments><comments>http://javascriptcompressor.com/forums/thread/31.aspx</comments><wfw:commentRss>http://javascriptcompressor.com/forums/commentrss.aspx?SectionID=5&amp;PostID=31</wfw:commentRss><description>&lt;p&gt;Just a heads up here.. Code can not be pasted or typed into the entry box when useing Google Chrome (Beta).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>New Packer - Missing Features</title><link>http://javascriptcompressor.com/forums/thread/14.aspx</link><pubDate>Wed, 30 Jul 2008 05:12:42 GMT</pubDate><guid isPermaLink="false">46e44164-0b03-4ad8-8ee9-19568eb0413f:14</guid><dc:creator>FredAt</dc:creator><slash:comments>1</slash:comments><comments>http://javascriptcompressor.com/forums/thread/14.aspx</comments><wfw:commentRss>http://javascriptcompressor.com/forums/commentrss.aspx?SectionID=5&amp;PostID=14</wfw:commentRss><description>If I recall correctly in the previous version of the JavaScript compressor it was possible to provide function names starting with an underscore that got translated into _0, _1 etc.  This was a handy way to enter into the compressed/obfuscated code via a function call in an HTML event.  As far as I can see that feature appears to have been taken out.  Or perhaps it is there but not documented anymore?&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Add JSLint?</title><link>http://javascriptcompressor.com/forums/thread/19.aspx</link><pubDate>Thu, 31 Jul 2008 14:02:59 GMT</pubDate><guid isPermaLink="false">46e44164-0b03-4ad8-8ee9-19568eb0413f:19</guid><dc:creator>caribmedia</dc:creator><slash:comments>2</slash:comments><comments>http://javascriptcompressor.com/forums/thread/19.aspx</comments><wfw:commentRss>http://javascriptcompressor.com/forums/commentrss.aspx?SectionID=5&amp;PostID=19</wfw:commentRss><description>&lt;p&gt;JSLint is an excellent tool I always use before packing. Maybe you could add a web based js-lint so that people can check their code before packing.&lt;/p&gt;
&lt;p&gt;See &lt;a href="http://www.jslint.com/lint.html"&gt;jslint page&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Compress the js files</title><link>http://javascriptcompressor.com/forums/thread/20.aspx</link><pubDate>Mon, 04 Aug 2008 05:27:13 GMT</pubDate><guid isPermaLink="false">46e44164-0b03-4ad8-8ee9-19568eb0413f:20</guid><dc:creator>aneeshtan</dc:creator><slash:comments>2</slash:comments><comments>http://javascriptcompressor.com/forums/thread/20.aspx</comments><wfw:commentRss>http://javascriptcompressor.com/forums/commentrss.aspx?SectionID=5&amp;PostID=20</wfw:commentRss><description>&lt;p&gt;Hi&amp;nbsp; &lt;/p&gt;
&lt;p&gt;
what are the&amp;nbsp; best ways&amp;nbsp; to encode or at least&amp;nbsp; compress javascript codes ?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>modified packer code</title><link>http://javascriptcompressor.com/forums/thread/10.aspx</link><pubDate>Wed, 02 Jul 2008 20:08:21 GMT</pubDate><guid isPermaLink="false">46e44164-0b03-4ad8-8ee9-19568eb0413f:10</guid><dc:creator>matthewfl</dc:creator><slash:comments>2</slash:comments><comments>http://javascriptcompressor.com/forums/thread/10.aspx</comments><wfw:commentRss>http://javascriptcompressor.com/forums/commentrss.aspx?SectionID=5&amp;PostID=10</wfw:commentRss><description>&lt;p&gt;I have a modification to the packer so that it can &amp;quot;fix function&amp;quot;.&amp;nbsp; In BLOCKED SCRIPT&lt;/p&gt;
&lt;p&gt;var a = function () {&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;Should really be:&lt;/p&gt;
&lt;p&gt;var a = function () {&lt;/p&gt;
&lt;p&gt;};&lt;/p&gt;
&lt;p&gt;this is because you are setting a to an unnamed function.&amp;nbsp; So I came up with this code: &lt;/p&gt;
&lt;p&gt;function_fix: function (script) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var list=[];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; script.replace(/(=function)/g, function (rep, Something, place, str, s) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; str = str + &amp;#39;&amp;#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var b=0,c;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for(var a = place;a&amp;lt;str.length;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var op = str.indexOf(&amp;#39;{&amp;#39;, a);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var cl = str.indexOf(&amp;#39;}&amp;#39;, a);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(cl &amp;lt; 0){ throw &amp;quot;Not Balanced&amp;quot;; return;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(op &amp;lt; cl &amp;amp;&amp;amp; op &amp;gt; -1) { // open is next&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; c = true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; b++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; a = op+1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; b--;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; a = cl+1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(b == 0 &amp;amp;&amp;amp; c == true) break;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; a--;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(script[a+1] != &amp;quot;;&amp;quot; &amp;amp;&amp;amp; script[a+1] != &amp;quot;,&amp;quot;) // fix for: var a=function () {}, b=function(){};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; list.push(a+list.length);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return str;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; while(list.length) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var a = list.shift();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var befor = script.substring(0, a+1), after = script.substring(a+1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; script = befor + &amp;quot;;&amp;quot; + after;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return script;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Just add it after the pack function in Packer.js and change &lt;/p&gt;
&lt;p&gt;script = this.minify(script + &amp;quot;
&amp;quot;);&lt;br /&gt;script = this.function_fix(script);&lt;br /&gt;if (shrink) script = this._shrinkVariables(script);&lt;/p&gt;
&lt;p&gt;The code will fix function and reduces the number of time that I see a missing ; error when I have packed my code&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>JUNE Framework</title><link>http://javascriptcompressor.com/forums/thread/9.aspx</link><pubDate>Tue, 01 Jul 2008 07:55:40 GMT</pubDate><guid isPermaLink="false">46e44164-0b03-4ad8-8ee9-19568eb0413f:9</guid><dc:creator>Costin Trifan</dc:creator><slash:comments>0</slash:comments><comments>http://javascriptcompressor.com/forums/thread/9.aspx</comments><wfw:commentRss>http://javascriptcompressor.com/forums/commentrss.aspx?SectionID=7&amp;PostID=9</wfw:commentRss><description>&lt;p&gt;&lt;span style="font-family:verdana,geneva;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:verdana,geneva;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;JUNE is a lightweight, cross-browser, modular, flexible and namespaced JavaScript library.&lt;/p&gt;
&lt;p&gt;JUNE has been built on top of&amp;nbsp;&lt;a target="_blank" href="http://www.sitepoint.com/blogs/2007/08/29/simply-javascript-the-core-library/" class="null"&gt;Core library&lt;/a&gt; and it can either be used as a standalone library or alongside other libraries like JQuery. Only one main namespace is used throughout this framework: &lt;strong&gt;JUNE&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;It was designed using the&amp;nbsp;&lt;a target="_blank" href="http://yuiblog.com/blog/2007/06/12/module-pattern/" class="null"&gt;Module Pattern&lt;/a&gt;, which confers it protection for its internal variables.&lt;/p&gt;
&lt;p&gt;JUNE was especially created for the small to medium-sized websites, blogs, wikis and any other websites that don&amp;#39;t require features like drag-and-drop or animations, and for newcomers to the JavaScript language.&lt;/p&gt;
&lt;p&gt;The existent methods of this framework have been grouped by their functionality in namespaces like Browser, Cookie, DOM, Form, and the functions&amp;#39; names are intuitive and easy to remember.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Design&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The following design guidelines have been used throughout JUNE:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;member variables are written using camelCasing,&lt;/li&gt;
&lt;li&gt;functions&amp;#39; parameters are written using camelCasing,&lt;/li&gt;
&lt;li&gt;local variables are written using camelCasing,&lt;/li&gt;
&lt;li&gt;namespaces are written using PascalCasing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;Extended Objects&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Only two native JavaScript objects are extended: String and Array.&lt;/p&gt;
&lt;p&gt;The methods added to the String object:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Trim&lt;/li&gt;
&lt;li&gt;IsLongerThan&lt;/li&gt;
&lt;li&gt;CutTextAt&lt;/li&gt;
&lt;li&gt;CalculateWords&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The methods added to the Array object:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ForEach&lt;/li&gt;
&lt;li&gt;Filter&lt;/li&gt;
&lt;li&gt;Every&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;Browser Compatibility&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;JUNE has been tested(on a Windows platform) in:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Internet Explorer 6, 7, 8&lt;/li&gt;
&lt;li&gt;Mozilla Firefox 2+, 3+&lt;/li&gt;
&lt;li&gt;Opera 9+&lt;/li&gt;
&lt;li&gt;Safari 2+, 3+&lt;/li&gt;
&lt;li&gt;Maxthon 1+, 2+&lt;/li&gt;
&lt;li&gt;Flock 1+&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Structure&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;june.js: is the library&amp;#39;s main file;&lt;/li&gt;
&lt;li&gt;juneWeb.js: the methods contained in this file are wrapped in the JUNE.WEB namespace and they can be used for AJAX requests;&lt;/li&gt;
&lt;li&gt;juneWidget.js: this file contains a set of 8(at this moment) of the most used widgets on the web, wrappped in the JUNE.Widget namespace.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DOM element selections,&lt;/li&gt;
&lt;li&gt;AJAX,&lt;/li&gt;
&lt;li&gt;Widgets,&lt;/li&gt;
&lt;li&gt;Flexibility,&lt;/li&gt;
&lt;li&gt;Modularity.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Widgets&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Accordion&lt;/li&gt;
&lt;li&gt;TabControl&lt;/li&gt;
&lt;li&gt;TreeView(beta)&lt;/li&gt;
&lt;li&gt;PageClock&lt;/li&gt;
&lt;li&gt;BannerRotator&lt;/li&gt;
&lt;li&gt;RandomQuote&lt;/li&gt;
&lt;li&gt;ModalWindow&lt;/li&gt;
&lt;li&gt;FeedReader&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usage&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;JUNE is a modular framework. Because of that, functionality can be added on the fly by just including the desired script file:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;lt;script src=&amp;quot;June_1_1.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script src=&amp;quot;JuneWeb_1_1.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;...adds the AJAX functionality, while the:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;lt;script src=&amp;quot;June_1_1.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script src=&amp;quot;JuneWidget_1_1.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/p&gt;
&lt;p&gt;...adds the Widget functionality.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Execute a method after the page has finished loading:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;lt;head&amp;gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;lt;script src=&amp;quot;June_1_1.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;var MyScript = {&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;init : function() {&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;alert(&amp;#39;The page has loaded.&amp;#39;);&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;}&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;};&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;JUNE.start(MyScript);&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;lt;/script&amp;gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;lt;/head&amp;gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;lt;body&amp;gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;lt;/body&amp;gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;lt;/html&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;JUNE is using the Object Literal notation and because of that, when used for in-line scripting, the code must be wrapped in an Object having an init function.&lt;/p&gt;
&lt;p&gt;The init function will be automatically executed after the page loads.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Events&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;JUNE offers 6 methods for Event handling.&lt;/p&gt;
&lt;p&gt;Adding an event handler to an element:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;var MyScript = {&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;init : function() {&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;var targetElement = JUNE.DOM.getById(&amp;#39;LinkID&amp;#39;);&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;JUNE.addEventListener(targetElement, &amp;#39;click&amp;#39;, MyScript.targetElement_OnClick);&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;},&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;targetElement_OnClick : function(event) {&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;alert(&amp;#39;You clicked me!&amp;#39;);&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;// Prevent navigation&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;JUNE.preventDefault(event);&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;}&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;};&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;JUNE.start(MyScript);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;strong&gt;DOM&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The JUNE.DOM namespace includes many methods to use for element selection/manipulation.&lt;/p&gt;
&lt;p&gt;Select all elements that have the class &amp;quot;red&amp;quot;:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;var MyScript = {&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;init : function() {&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;var targetElements = JUNE.DOM.getElementsByClass(&amp;#39;red&amp;#39;);&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;}&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;};&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;JUNE.start(MyScript);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Toggle the css class of an element:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;var MyScript = {&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;init : function() {&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;var targetElement = JUNE.DOM.getById(&amp;#39;ElementID&amp;#39;);&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;JUNE.addEventListener(targetElement, &amp;#39;click&amp;#39;, function(event) {&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;JUNE.DOM.toggleCssClass(this, &amp;#39;red&amp;#39;, &amp;#39;green&amp;#39;);&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;});&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;}&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;};&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;JUNE.start(MyScript);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;strong&gt;Helper Functions&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;the $ function is an alias of JUNE.DOM.getById method,&lt;/p&gt;
&lt;p&gt;the $F function is an alias of JUNE.Form.getForm method,&lt;/p&gt;
&lt;p&gt;the $byTags is a method which can be used to select DOM elements by their tag either from a specified parent element or from the document object. The returned result is an Array of all elements found.&lt;/p&gt;
&lt;p&gt;the $byClass is a method which can be used to select DOM elements by their class attribute by specifying an Array of classes.&lt;/p&gt;
&lt;p&gt;Select all paragraphs and span elements from a specified parent element:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;var MyScript = {&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;init : function() {&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;var parentElement = JUNE.$(&amp;#39;Div1&amp;#39;);&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;var paragraphs = JUNE.$byTags([&amp;#39;p&amp;#39;, &amp;#39;span&amp;#39;], parentElement);&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;}&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;};&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;JUNE.start(MyScript);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Select all elements that either have &amp;quot;red&amp;quot;, &amp;quot;green&amp;quot; or &amp;quot;blue&amp;quot; as their class:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;var MyScript = {&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;init : function() {&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;var elements = JUNE.$byClass([&amp;#39;red&amp;#39;, &amp;#39;green&amp;#39;, &amp;#39;blue&amp;#39;]);&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;}&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;};&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;JUNE.start(MyScript);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;strong&gt;AJAX&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The JUNE.WEB namespace contains methods like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;customRequest - this method returns a cross-browser [[XMLHttpRequest]] object which can be used to create a custom AJAX function,&lt;/li&gt;
&lt;li&gt;getData,&lt;/li&gt;
&lt;li&gt;getHeaders,&lt;/li&gt;
&lt;li&gt;getJsonData,&lt;/li&gt;
&lt;li&gt;postData.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Create an AJAX request:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;var MyScript = {&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;init : function() {&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;var container = JUNE.$(&amp;#39;Div1&amp;#39;),&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;fileUrl = &amp;#39;robots.txt&amp;#39;,&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;onCompleted = function(req) {&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;return container.innerHTML = req.responseText;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;},&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;onFailure = function(req) {&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;return container.innerHTML = &amp;quot;An error occurred while processing your request. Server error:&amp;quot;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;+ req.statusText;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;},&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;timeout = 5;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;JUNE.WEB.getData(fileUrl, onCompleted, onFailure, timeout);&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;}&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;};&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;JUNE.start(MyScript);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;strong&gt;Widgets&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The Accordion, TabControl, TreeView and ModalWindow widgets are built from markup so their own html template must be used in order to include one of these widgets in a web page. This way they are unobtrusive and if a visitor doesn&amp;#39;t have the JavaScript enabled in his browser these widgets will be displayed fully expanded(all their content will become visible).&lt;/p&gt;
&lt;p&gt;Insert an Accordion widget in a page:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;var MyScript = {&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;init : function() {&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;var module = JUNE.$(&amp;#39;Accordion&amp;#39;);&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;JUNE.Widget.Accordion(module);&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;}&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;};&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;JUNE.start(MyScript);&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Javascriptcompressor.com upgraded!</title><link>http://javascriptcompressor.com/forums/thread/5.aspx</link><pubDate>Mon, 23 Jun 2008 07:53:27 GMT</pubDate><guid isPermaLink="false">46e44164-0b03-4ad8-8ee9-19568eb0413f:5</guid><dc:creator>Vindberg</dc:creator><slash:comments>2</slash:comments><comments>http://javascriptcompressor.com/forums/thread/5.aspx</comments><wfw:commentRss>http://javascriptcompressor.com/forums/commentrss.aspx?SectionID=5&amp;PostID=5</wfw:commentRss><description>&lt;p&gt;Hi all,&lt;/p&gt;
&lt;p&gt;im glad to announce an update of &lt;a&gt;javascriptcompressor.com&lt;/a&gt;. During the last year we have received an increasing number of visitors so I decided it was time for an upgrade. I have opened a forum for discussion and the main page is now using the latest javascript compression algorithm from Dean Edwards.&lt;/p&gt;
&lt;p&gt;Feel free to ask questions about the compressor in this forum or spread your knowledge about your favorite Javascript Framework in the forum.&lt;/p&gt;
&lt;p&gt;Best,&lt;br /&gt;Anders V.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Compressed version of Prototype - from 130Kb to 48Kb</title><link>http://javascriptcompressor.com/forums/thread/6.aspx</link><pubDate>Tue, 24 Jun 2008 02:00:12 GMT</pubDate><guid isPermaLink="false">46e44164-0b03-4ad8-8ee9-19568eb0413f:6</guid><dc:creator>Vindberg</dc:creator><slash:comments>0</slash:comments><comments>http://javascriptcompressor.com/forums/thread/6.aspx</comments><wfw:commentRss>http://javascriptcompressor.com/forums/commentrss.aspx?SectionID=7&amp;PostID=6</wfw:commentRss><description>&lt;p&gt;Compressed version of Prototype 1.6.0.2. See attachment.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Original source: &lt;a href="http://www.prototypejs.org/download"&gt;http://www.prototypejs.org/download&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>