<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-15808637216328049</id><updated>2011-07-28T16:13:59.998-07:00</updated><category term='PHP'/><category term='AJAX'/><category term='JavaScript'/><title type='text'>great script for you</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ajavascript.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15808637216328049/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ajavascript.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Great Script for you</name><uri>http://www.blogger.com/profile/10786624393225801396</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-15808637216328049.post-4351729009044708285</id><published>2009-06-06T11:46:00.000-07:00</published><updated>2009-06-06T12:16:23.274-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Introduction to Web Caching</title><content type='html'>&lt;p&gt;This article focuses on caching in an Apache/PHP environment but the principles remain the same for any platform/language you work with.&lt;/p&gt; &lt;h4&gt;Browser Cache&lt;/h4&gt; &lt;p&gt;Every browser has it’s own cache but the size and behavior of each varies. Fortunately we are not at the sole mercy of the browser to determine how to handle our data. Through the use of HTTP headers you can dictate to the browser when to request updated content and when to serve files from the local cache. I highly suggest downloading the Firefox plugins &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1843" target="_blank"&gt;Firebug&lt;/a&gt; and &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/5369" target="_blank"&gt;YSlow&lt;/a&gt; to help you analyze your HTTP headers. Below you can see a screenshot of the headers tab available on any HTTP request through Firebug.&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_hTW4ngfBUcI/Siq6am9d1kI/AAAAAAAAAA0/rgfHLHoT_RE/s1600-h/firebug_headers.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 251px;" src="http://4.bp.blogspot.com/_hTW4ngfBUcI/Siq6am9d1kI/AAAAAAAAAA0/rgfHLHoT_RE/s320/firebug_headers.gif" alt="" id="BLOGGER_PHOTO_ID_5344288874126235202" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The difficulty of caching is determining how you want the browser to cache and then pulling it all together on the server-side. Different file types, for instance, might be generally more static than others and therefore safer to cache for long periods of time. On the other hand, some content may updated on a regular basis and not need to be cached for long, if at all. Since the browser is closest to the user and your server is potentially never involved in the serving of content the highest performance boost can come from effective browser caching. &lt;/p&gt;&lt;p&gt;Below is an example of setting a header property in PHP. This would tell the browser to cache the files for one year from the date of this post.&lt;/p&gt;&lt;p style="color: rgb(204, 0, 0);"&gt;&lt;code&gt;&lt;br /&gt;&amp;lt; ?php&lt;br /&gt;header('Expires: Fri, 25 Apr 2009 00:00:00 GMT');&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;Here is an example of setting headers with Apache. This would set an expiration of one year from today on all images files.&lt;/p&gt; &lt;p&gt;&lt;code style="color: rgb(204, 0, 0);"&gt;&amp;lt;filesmatch&amp;gt;&lt;br /&gt;Header set Expires "Fri, 25 Apr 2009 00:00:00 GMT"&lt;br /&gt;&amp;lt;/filesmatch&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/p&gt; &lt;p&gt;There are a number of header parameters that can be sent as part of your response to HTTP requests. Here is a breakdown of the ones you should be familiar with for caching purposes…&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Last-modified: Fri, 25 Apr 2008 00:00:00 GMT&lt;/strong&gt;&lt;br /&gt;This header tells the browser when the file being requested was last altered. The browser “asks” your server if it has a file that has a more recent “Last-modified” timestamp than the version that is currently has stored. If a newer file exists on your server then the browser requests the updated file, else the existing file is served. Although the communication does have a little overhead, it is much more efficient than simply serving the same unmodified content over and over.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Etag: “28ff-44aee6630f900″&lt;/strong&gt;&lt;br /&gt;Etags are basically unique identifiers attached to your files that the browser can use to compare cached files against. This works much like the “Last-modified” tag and there has been quite a bit of debate as to whether one is better than the other or whether to include both. I personally suggest including both as there may be rare situations where the Etag would detect changes that are not effected in the timestamp.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Expires: Fri, 25 Apr 2009 00:00:00 GMT&lt;/strong&gt;&lt;br /&gt;The expires header is ideal when you can plan on how long your content is safely cacheable. Why is it superior to the previous two cache controls? Using expires does not require a trip to the server to verify the freshness of your content. The browser simply serves the files from the local cache for the fastest user experience and zero server overhead.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Cache-Control: max-age=86400&lt;/strong&gt;&lt;br /&gt;The max-age tag, much like the expires header, eliminates the need to check for updated content when the cached file is within the age limit specified. The value assigned to the max-age is the number of milliseconds the file will be considered fresh. During that time, the locally stored files will be served. It is important to note that HTTP/1.1 allows caching of anything unless overridden by the “Cache-Control” header.&lt;/p&gt; &lt;p&gt;For static content I highly suggest serving files from a cookie-free subdomain (i.e. static.domain.com) and establishing a “never expires” policy. Many larger site have already taken advantage of this tactic but smaller sites can also benefit from the method. When you need to make a change to a file simply change the reference to the file to an incremented version (javascrtipt_1.js -&gt; javascript_2.js) of itself and then the newer version will be downloaded and cached. There are even ways to automate the versioning process. &lt;/p&gt; &lt;p&gt;For dynamic files it is best to use the Cache-Control: no-cache header and for more static files the Last-modified header is appropriate. Another method to ensure content is refreshed is to append some unique querystring value to the URI.&lt;/p&gt; &lt;p&gt;Example of setting a “never expires” header for all static files…&lt;br /&gt;&lt;code style="color: rgb(204, 0, 0);"&gt;&amp;lt;filesmatch&amp;gt;&lt;br /&gt;Header add "Expires" "Mon, 01 Jan 2018 00:00:00 GMT"&lt;br /&gt;Header add "Cache-Control" "max-age=31536000"&lt;br /&gt;&amp;lt;/filesmatch&amp;gt;&lt;/code&gt;&lt;/p&gt; &lt;p&gt;or with PHP…&lt;/p&gt;&lt;p style="color: rgb(204, 0, 0);"&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;&lt;p style="color: rgb(204, 0, 0);"&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;header('Expires: Mon, 01 Jan 2018 00:00:00 GMT');&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;header('Cache-Control: max-age=31536000');&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;?&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Server Caching&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Server-side caching can have a huge impact on performance. Since the highest level of caching your PHP files should be set to is Last-modified, Apache will be serving these files most frequently. There are a number of third party caching/PHP optimizers that make caching a breeze such as &lt;a href="http://xcache.lighttpd.net/" target="_blank"&gt;XCache&lt;/a&gt;, &lt;a href="http://eaccelerator.net/" target="_blank"&gt;eAccelerator&lt;/a&gt;, &lt;a href="http://danga.com/memcached/" target="_blank"&gt;memcached&lt;/a&gt; and others. You can even store your compiled pages in memory with these optimizers for an even faster client/server transaction.&lt;/p&gt; &lt;p&gt;You are not limited to using one of these third parties for caching. You can manually cache files in PHP through the use of code like the following…&lt;/p&gt;&lt;p style="color: rgb(204, 0, 0);"&gt;&lt;code&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt;$current = $_SERVER["SCRIPT_NAME"];&lt;br /&gt;&lt;br /&gt;$parts = Explode(’/', $current);&lt;br /&gt;&lt;br /&gt;$current = $parts[count($parts) - 1];&lt;br /&gt;&lt;br /&gt;$store = ‘cache/’;&lt;br /&gt;&lt;br /&gt;$page = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];&lt;br /&gt;&lt;br /&gt;$cache = $store.md5($page).’.cache’;&lt;br /&gt;&lt;br /&gt;if(file_exists($cache) &amp;amp;&amp;amp; (filemtime($current) &amp;lt; filemtime($cache)) ) {&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;@readfile($cache);&lt;br /&gt;&lt;br /&gt;exit();&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;ob_start();&lt;br /&gt;&lt;br /&gt;// YOUR PHP SCRIPT //&lt;br /&gt;&lt;br /&gt;$new = fopen($cache, ‘w’);&lt;br /&gt;&lt;br /&gt;fwrite($new, ob_get_contents());&lt;br /&gt;&lt;br /&gt;fclose($new);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ob_end_flush();&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;/code&gt;&lt;/p&gt; &lt;h4&gt;Intermediary Caching&lt;/h4&gt; &lt;p&gt;By intermediary caching I am referring to anything between the browser and the server that caches your content. Perhaps you are using a third party CDN (content delivery network) such as &lt;a href="http://www.edgecast.com/" target="_blank"&gt;edgecast&lt;/a&gt; to speed up HTTP request delivery. These types of services are tailored to high volume websites with widespread user-bases and are generally cost-prohibitive to small-medium sized websites.&lt;/p&gt; &lt;p&gt;There are also other caches you may not not even know exist. Many large corporations, educational institutions and even countries cache content coming into their network. Oftentimes the proxies function much like browsers in their respect for HTTP headers however they do not always abide by your rules so be sure and identify private content by defining unique querystring parameters lest sensitive information be spread to multiple recipients.&lt;/p&gt;&lt;p&gt;Hopefully, if you are not caching now, you will be motivated to implement a caching policy soon. I plan to follow up soon with a more in-depth Apache/PHP caching post.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15808637216328049-4351729009044708285?l=ajavascript.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ajavascript.blogspot.com/feeds/4351729009044708285/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://ajavascript.blogspot.com/2009/06/introduction-to-web-caching.html#comment-form' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15808637216328049/posts/default/4351729009044708285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15808637216328049/posts/default/4351729009044708285'/><link rel='alternate' type='text/html' href='http://ajavascript.blogspot.com/2009/06/introduction-to-web-caching.html' title='Introduction to Web Caching'/><author><name>Great Script for you</name><uri>http://www.blogger.com/profile/10786624393225801396</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_hTW4ngfBUcI/Siq6am9d1kI/AAAAAAAAAA0/rgfHLHoT_RE/s72-c/firebug_headers.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15808637216328049.post-3157336823162890926</id><published>2009-06-06T11:33:00.000-07:00</published><updated>2009-06-06T11:39:06.132-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><title type='text'>Accordion Script With Multi-Level Support</title><content type='html'>This updated accordion script is powerful and lightweight at only 1.4kb. It now includes multi-level support, the option to allow multiple panels to expand concurrently, and a hide/show all toggle. I have reverted the markup to a div based structure to eliminate any validation issues with the definition tables in the previous version.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_hTW4ngfBUcI/Siq28h1BcII/AAAAAAAAAAs/otIOcCy9QQg/s1600-h/tiny-accordion.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 122px;" src="http://4.bp.blogspot.com/_hTW4ngfBUcI/Siq28h1BcII/AAAAAAAAAAs/otIOcCy9QQg/s320/tiny-accordion.gif" alt="" id="BLOGGER_PHOTO_ID_5344285058817683586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;To  initialize an accordion use the following code:&lt;br /&gt;&lt;p style="color: rgb(204, 0, 0);"&gt;&lt;code&gt;var accordion=new TINY.accordion.slider("accordion");&lt;br /&gt;accordion.init("accordion","h3",false,0,"selected");&lt;/code&gt;&lt;/p&gt; &lt;p&gt;You must create a new accordion object before initialization. The parameter taken by accordion.slider is the variable name used for the object. The object.init function takes 5 parameters: the id of the accordion “ul”, the header element tag, whether the panels should be expandable independently (optional), the index of the initially expanded section (optional) and the class for the active header (optional).&lt;/p&gt; There is no other JavaScript that needs to be added to the HTML. The init function parses the unordered list and adds the appropriate mouse events to the headings as provided. This has been tested in Firefox 2/3, IE 6/7/8, Opera, Safari and Chrome.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sandbox.leigeber.com/javascript-accordion/index.html" target="_blank"&gt;Click here for the demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sandbox.leigeber.com/javascript-accordion/tinyaccordion.zip"&gt;Click here to download the source code&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15808637216328049-3157336823162890926?l=ajavascript.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ajavascript.blogspot.com/feeds/3157336823162890926/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://ajavascript.blogspot.com/2009/06/accordion-script-with-multi-level.html#comment-form' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15808637216328049/posts/default/3157336823162890926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15808637216328049/posts/default/3157336823162890926'/><link rel='alternate' type='text/html' href='http://ajavascript.blogspot.com/2009/06/accordion-script-with-multi-level.html' title='Accordion Script With Multi-Level Support'/><author><name>Great Script for you</name><uri>http://www.blogger.com/profile/10786624393225801396</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_hTW4ngfBUcI/Siq28h1BcII/AAAAAAAAAAs/otIOcCy9QQg/s72-c/tiny-accordion.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15808637216328049.post-7283104368816306824</id><published>2009-06-06T01:04:00.000-07:00</published><updated>2009-06-06T01:21:58.954-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><title type='text'>TinyTable JavaScript Table Sorter - 2.5KB</title><content type='html'>&lt;div style="text-align: left;"&gt;This updated table sorter script is easy to use and feature packed at only 2.5KB. New features include column highlighting, optional pagination, support for links, and date/link parsing. A few other features are alternate row highlighting, header class toggling, auto data type recognition and selective column sorting.&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_hTW4ngfBUcI/SiomGr5CQzI/AAAAAAAAAAk/En31ndb2oH0/s1600-h/tiny-table.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: left; cursor: pointer; width: 247px; height: 94px;" src="http://1.bp.blogspot.com/_hTW4ngfBUcI/SiomGr5CQzI/AAAAAAAAAAk/En31ndb2oH0/s320/tiny-table.gif" alt="" id="BLOGGER_PHOTO_ID_5344125804131533618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;To initialize a table sorter follow the pattern below:&lt;br /&gt;&lt;br /&gt;&lt;code style="color: rgb(204, 0, 0);"&gt;var sorter = new TINY.table.sorter("sorter");&lt;br /&gt;sorter.head = "head"; //header class name&lt;br /&gt;sorter.asc = "asc"; //ascending header class name&lt;br /&gt;sorter.desc = "desc"; //descending header class name&lt;br /&gt;sorter.even = "evenrow"; //even row class name&lt;br /&gt;sorter.odd = "oddrow"; //odd row class name&lt;br /&gt;sorter.evensel = "evenselected"; //selected column even class&lt;br /&gt;sorter.oddsel = "oddselected"; //selected column odd class&lt;br /&gt;sorter.paginate = true (false); //toggle for pagination logic&lt;br /&gt;sorter.pagesize = 15 (20); //toggle for pagination logic&lt;br /&gt;sorter.currentid = "currentpage"; //current page id&lt;br /&gt;sorter.limitid = "pagelimit"; //page limit id&lt;br /&gt;sorter.init("table",1);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Before initialization, a new table sorter object must be created. The parameter taken by TINY.table.sorter is the variable name used for the object. The object.init function takes 2 parameters: the id of the table and the initially sorted column index (optional). If you want to exclude a column from sorting add class=”nosort” to the appropriate table header. Table styling is completely customizable via the CSS. TinyTable has been tested in Firefox 2/3, IE 6/7/8, Opera, Safari and Chrome. Please send bug reports to me. This script is available free of charge any project, personal or commercial, under the creative commons license and is offered AS-IS, no free support provided&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sandbox.leigeber.com/table-sorter/index.html" target="_blank"&gt;Click here for the demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.box.net/shared/8nusiqr4rk" target="_blank"&gt;Click here to download the source code&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15808637216328049-7283104368816306824?l=ajavascript.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ajavascript.blogspot.com/feeds/7283104368816306824/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://ajavascript.blogspot.com/2009/06/tinytable-javascript-table-sorter-25kb.html#comment-form' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15808637216328049/posts/default/7283104368816306824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15808637216328049/posts/default/7283104368816306824'/><link rel='alternate' type='text/html' href='http://ajavascript.blogspot.com/2009/06/tinytable-javascript-table-sorter-25kb.html' title='TinyTable JavaScript Table Sorter - 2.5KB'/><author><name>Great Script for you</name><uri>http://www.blogger.com/profile/10786624393225801396</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_hTW4ngfBUcI/SiomGr5CQzI/AAAAAAAAAAk/En31ndb2oH0/s72-c/tiny-table.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15808637216328049.post-5698156603191020049</id><published>2009-06-06T00:31:00.000-07:00</published><updated>2009-06-06T01:04:34.487-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><title type='text'>TinyBox JavaScript Popup Box - 3.5KB</title><content type='html'>TinyBox is a lightweight and standalone modal window script. At only 3.5KB it doesn’t include any slideshow capabilities built-in but allows for any AJAX or HTML input so the sky is the limit. Future versions will include additional features. It can also be used for images and auto hiding alerts. The popups fade in/out and dynamically size based on the content if enabled. The styling is completely customizable through the simple CSS.&lt;br /&gt;&lt;br /&gt;To display a popup box use the following code:&lt;br /&gt;&lt;div style="text-align: center; color: rgb(255, 0, 0);"&gt;&lt;code&gt;TINY.box.show('advanced.html',1,300,150,1,3)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left; color: rgb(0, 0, 0);"&gt;There is nothing to initialize, just start using the script. The TINY.box.show function takes 6 parameters: the HTML content for the box or the relative path to the AJAX source, a toggle (true/false or 1/0) if the content is via AJAX, the width of the window (use 0 for auto), the height of the window (use 0 for auto), a toggle (true/false or 1/0) to animate the window, and the time in seconds to wait before auto hiding the popup (optional). TinyBox has been tested in Firefox 2/3, IE 6/7/8, Opera, Safari and Chrome. Please send bug reports to me. This script is available free of charge for any project, personal or commercial, under the creative commons license and is offered AS-IS, NO FREE SUPPORT provided&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sandbox.leigeber.com/tinybox/" target="_blank"&gt;Click here for the demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.box.net/shared/mp5j3reu6j" target="_blank"&gt;Click here to download the source&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15808637216328049-5698156603191020049?l=ajavascript.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ajavascript.blogspot.com/feeds/5698156603191020049/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://ajavascript.blogspot.com/2009/06/tinybox-javascript-popup-box-35kb.html#comment-form' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15808637216328049/posts/default/5698156603191020049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15808637216328049/posts/default/5698156603191020049'/><link rel='alternate' type='text/html' href='http://ajavascript.blogspot.com/2009/06/tinybox-javascript-popup-box-35kb.html' title='TinyBox JavaScript Popup Box - 3.5KB'/><author><name>Great Script for you</name><uri>http://www.blogger.com/profile/10786624393225801396</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
