<?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>Blue Arena</title>
	<atom:link href="http://www.bluearena.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bluearena.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sat, 05 Jun 2010 17:23:12 +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>Schreuders Sport new website launched</title>
		<link>http://www.bluearena.com/2010/06/schreuders-sport-new-website-launched/</link>
		<comments>http://www.bluearena.com/2010/06/schreuders-sport-new-website-launched/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 17:23:12 +0000</pubDate>
		<dc:creator>steviemcg</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.bluearena.com/?p=195</guid>
		<description><![CDATA[
The new website for Schreuders Sport International, a wholesaler and importer of sports-related products, was launched on 4th June 2010.
Schreuders Sport International (SSI) were running their old ERP system for over 20 years before finally moving to a new software supplier in May 2010. Blue Arena was responsible for migrating all data to the new [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.schreuderssport.nl/" target="_blank"><img align="left" alt="" border="0" height="269" src="http://www.bluearena.com/wp-content/uploads/SSI(1).png" width="316" /></a></p>
<p>The new website for <a href="http://www.schreuderssport.nl/" target="_blank">Schreuders Sport International</a>, a wholesaler and importer of sports-related products, was launched on 4th June 2010.</p>
<p>Schreuders Sport International (SSI) were running their old ERP system for over 20 years before finally moving to a new software supplier in May 2010. Blue Arena was responsible for migrating all data to the new system to the satisfaction of all involved, including accounting and customs auditors.</p>
<p>The new ERP is fully integrated with the website, allowing real-time communication of product pricing (tailored to a particular logged in client), and stock availability.</p>
<p>Much effort has been made to improve the user experience of the website, as well as the overall design. Users can now fly around the site using a number of searches, filters and menus.</p>
<p>Moving to a brand new system after 20 years isn&#39;t easy, and testing of the online ordering system is happening while SSI is getting things under control. We look forward to &quot;flipping the switch&quot; soon!</p>
<p>&#8211; www.schreuderssport.nl designed by Laura Bor, Niels Emck, Jamie Morris &amp; Steve McGill</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bluearena.com/2010/06/schreuders-sport-new-website-launched/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript: Shortening a breadcrumb using JQuery</title>
		<link>http://www.bluearena.com/2010/01/javascript-shortening-a-breadcrumb-using-jquery/</link>
		<comments>http://www.bluearena.com/2010/01/javascript-shortening-a-breadcrumb-using-jquery/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 12:50:19 +0000</pubDate>
		<dc:creator>Maloric</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[accessible]]></category>
		<category><![CDATA[breadcrumb]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[navigation]]></category>
		<category><![CDATA[short]]></category>
		<category><![CDATA[shorten]]></category>
		<category><![CDATA[too long]]></category>
		<category><![CDATA[trail]]></category>

		<guid isPermaLink="false">http://www.bluearena.com/?p=188</guid>
		<description><![CDATA[A lot of sites these days use breadcrumb trails to make navigation easier for their users. This is essentially a list of every parent category/section of the page you&#39;re on, and might look something like this:
Home &#62; About us &#62; Meet the team
Each of these is typically a hyperlink back to the relevant section. Now [...]]]></description>
			<content:encoded><![CDATA[<p>A lot of sites these days use breadcrumb trails to make navigation easier for their users. This is essentially a list of every parent category/section of the page you&#39;re on, and might look something like this:</p>
<p><a href="#">Home</a> &gt; <a href="#">About us</a> &gt; <a href="#">Meet the team</a></p>
<p>Each of these is typically a hyperlink back to the relevant section. Now these are great, but what happens if your breadcrumb isn&#39;t that small? It&#39;s easy to see a situation where you have a bunch of really long titles that cause the breadcrumb to span over two or three lines. This isn&#39;t always what you want, since it can make the breadcrumb look broken. You might just decide to make some of the titles smaller, but with content managed sites and page names stuffed with SEO keywords, this is often easier said than done.</p>
<p><span id="more-188"></span>So I came up with a solution to this problem using <a href="http://jquery.com/">JQuery</a>. It relies on a certain kind of markup; you must use &lt;ul&gt; and &lt;li&gt; tags to build your breadcrumb rather than a continuous string of text. Hopefully you already know how to style a &lt;ul&gt; as a breadcrumb, but if not, the following should help:</p>
<ul>
<li>Use either float:left, display:inline, or display:inline-block on your &lt;li&gt; tags.</li>
<li>If you want to seperate each item with an image, use the following as well:
<ul>
<li>padding-left:24px (or whathever you need) on your &lt;li&gt; tag</li>
<li>background:url(/images/breadcrumb.gif) left no-repeat; on your &lt;li&gt;</li>
</ul>
</li>
</ul>
<p><em>(I realise the background image could be applied instead as a bullet image, but this doesn&#39;t look great in some older browsers, so the above method is a little safer)</em></p>
<p>You should be able to figure out the rest of the styling from there, but if not, drop me a comment and I&#39;ll help you out.</p>
<h2>The Javascript</h2>
<p>Ok, let me explain what the script does and then I&#39;ll post the code. Firstly, the script has two properties: &quot;breadcrumb&quot; and &quot;maxWidth&quot;. The first is a <a href="http://jquery.com/">JQuery</a> selector for the &lt;ul&gt; element. If not supplied, this defaults to &quot;$(&#39;div#breadcrumb &gt; ul&#39;); a &lt;ul&gt; that is the immediate descendant of a div with the ID of &quot;breadcrumb&quot;. The second is the maximum width in pixels the breadcrumb should be, which defaults to the <a href="http://docs.jquery.com/CSS/outerWidth">outerWidth</a> of the &lt;ul&gt;. If it goes over this width, the breadcrumb is shortened until it fits.</p>
<p>Essentially, what the script does is check the combined width of the breadcrumb&#39;s &lt;li&gt; elements. If this total exceeeds the &quot;maxWidth&quot; property, the script will shorten the first non-shortened list item and check again. It continues doing this until the combined width of all of the list items is less than &quot;maxWidth&quot;. When each item in shortened, the text is replaced by &quot;&#8230;&quot; and to keep things nice and accessible, a title tag is added with the original text.</p>
<p>And that&#39;s that. All that&#39;s left is to show you the script and how to call it:</p>
<pre>function shortenBreadcrumb(options){
    /*
        Shortens the breadcrumb to a specified width by removing the text from one list item
        at a time and replacing it with &quot;...&quot; - accepts an options object as an optional
        parameter with two options:
            shortenBreadcrumb({
                breadcrumb : $(&#39;div#breadcrumb &gt; ul&#39;),
                maxWidth : 725
            });

        The first is the selector for the breadcrumb ul, the second is the maximum width you
        want it to be.
    */

    var breadcrumb = $(&#39;div#breadcrumb &gt; ul&#39;);
    var maxWidth = $(&#39;div#breadcrumb&#39;).innerWidth();

    if (options != undefined){
        if (options.breadcrumb != null) { breadcrumb = options.breadcrumb; }
        if (options.maxWidth != null) { maxWidth = options.maxWidth; }
    }

    var levelCount = breadcrumb.find(&#39;li&#39;).size();
    var shortEnough = false;
    var totalWidth;
    while (shortEnough == false) {
        totalWidth = 0;
        breadcrumb.children(&#39;li&#39;).each (function(){
            totalWidth += $(this).outerWidth(true);
        });
        if (totalWidth &gt; maxWidth){
            var li = breadcrumb.children(&#39;li&#39;).not(&#39;.short&#39;).eq(1);
            li.addClass(&#39;short&#39;);
            li.children(&#39;a&#39;).attr(&#39;title&#39;, li.children(&#39;a&#39;).html());
            li.children(&#39;a&#39;).html(&#39;...&#39;);
        }
        else {
            shortEnough = true;
        }
    }
}
</pre>
<p>Include this script in your page and call using:</p>
<pre>$(document).ready(function(){
    shortenBreadcrumb({
        breadcrumb : $(&#39;ul#breadcrumb&#39;),
        maxWidth : 600
    });
});
</pre>
<p>Of course, any of these two options can be left blank, so you can call it like so:</p>
<pre>    shortenBreadcrumb();
</pre>
<p>It goes without saying that this script requires the <a href="http://jquery.com/">JQuery</a> library. If you want to use the script in your site, please do, but a mention of Blue Arena or a comment would be appreciated.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bluearena.com/2010/01/javascript-shortening-a-breadcrumb-using-jquery/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quick Tip: Checking if a javascript function exists</title>
		<link>http://www.bluearena.com/2009/08/quick-tip-checking-if-a-javascript-function-exists/</link>
		<comments>http://www.bluearena.com/2009/08/quick-tip-checking-if-a-javascript-function-exists/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 13:14:15 +0000</pubDate>
		<dc:creator>Maloric</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[check]]></category>
		<category><![CDATA[exist]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.bluearena.com/?p=184</guid>
		<description><![CDATA[I recently had to write a javascript function that would be used across several sites, and it would call another function that might or might not exist on any of these sites.  There are probably a couple of ways you could get around the inevitable error caused by calling a function that doesn&#8217;t exist (I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had to write a javascript function that would be used across several sites, and it would call another function that might or might not exist on any of these sites.  There are probably a couple of ways you could get around the inevitable error caused by calling a function that doesn&#8217;t exist (I&#8217;m thinking some sort of overload here), but I found that the simplest method is to wrap the function call in an if statement like so:</p>
<pre>if(typeof myFunction == 'function') {
	myFunction();
}</pre>
<p>Handy, huh?</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">if(typeof yourFunctionName == &#8216;function&#8217;) {<br />
yourFunctionName();<br />
}</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bluearena.com/2009/08/quick-tip-checking-if-a-javascript-function-exists/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Gallery Carousel v1.1</title>
		<link>http://www.bluearena.com/2009/06/gallery-carousel-v1-1/</link>
		<comments>http://www.bluearena.com/2009/06/gallery-carousel-v1-1/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 14:18:12 +0000</pubDate>
		<dc:creator>Maloric</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[carousel]]></category>
		<category><![CDATA[gallery]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[slide]]></category>
		<category><![CDATA[slider]]></category>

		<guid isPermaLink="false">http://wordpress.bluearena.com/?p=126</guid>
		<description><![CDATA[Gallery Carousel is a JQuery Plugin which creates a sliding gallery of image thumbnails that can be clicked to view a full size image.  The full size image can also have a caption and/or hyperlink.  The plugin is configurable and easy to set up, requiring little markup.





Prev



Next



Download packed code for Gallery Carousel v1.1
(requires JQuery v1.3.2)
New [...]]]></description>
			<content:encoded><![CDATA[<p>Gallery Carousel is a JQuery Plugin which creates a sliding gallery of image thumbnails that can be clicked to view a full size image.  The full size image can also have a caption and/or hyperlink.  The plugin is configurable and easy to set up, requiring little markup.</p>
<p><span id="more-126"></span></p>
<div id="targetWrap"><img id="featuredImg" alt="" /></div>
<table border="0">
<tbody>
<tr>
<td><a id="prev" href="#">Prev</a></td>
<td>
<div id="featured"></div>
</td>
<td><a id="next" href="#">Next</a></td>
</tr>
</tbody>
</table>
<hr /><a href="/wp-content/themes/bluearena/includes/scripts/jQuery.galleryCarousel-1.1.pack.js">Download packed code for Gallery Carousel v1.1</a></p>
<p>(requires JQuery v1.3.2)</p>
<h2>New in v1.1</h2>
<ul>
<li>You can now add captions for each image</li>
<li>You can now add a link for each image to navigate to</li>
</ul>
<h2>Instructions</h2>
<p>To create a new gallery, you need to first include the script in your page, <em>after</em> you have included the JQuery script.</p>
<pre>&lt;script src="includes/galleryCarousel-1.1.min.js" type="text/javascript"&gt;&lt;/script&gt;</pre>
<p>Then some simple styles to make it look nice:</p>
<pre>&lt;style type="text/css"&gt;
	img {border:0;}
	ul.gallery li {padding:0 5px;}
	ul.gallery li img {height:61px;} /* If you don't specify a thumnail image you should set the height of the scaled down image instead */
	ul.gallery li img.selected {border:2px solid #000;}
&lt;/style&gt;</pre>
<p>You&#8217;ll need some basic markup: an empty image, a next link, a previous link and a div to put our carousel into.  If you want to put captions somewhere for each image, you will also need a div or span for this:</p>
<pre>&lt;img id="featuredImg" /&gt;
&lt;span id="caption"&gt;&lt;/span&gt;
&lt;table&gt;
	&lt;tr&gt;
		&lt;td&gt;
			&lt;a id="prev" href="#"&gt;Prev&lt;/a&gt;
		&lt;/td&gt;
		&lt;td&gt;
			&lt;div id="galleryWrap"&gt;&lt;/div&gt;
		&lt;/td&gt;
		&lt;td&gt;
			&lt;a href="#" id="next"&gt;Next&lt;/a&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;</pre>
<p>If you prefer to specify your images in the html rather than the javascript, you can also populate your target div with a ul like the following:</p>
<pre>&lt;ul class="myGalleryClass"&gt;
	&lt;li&gt;&lt;a href="path/to/full/image1.jpg"&gt;&lt;img src="/path/to/thumb1.jpg" alt="Image 1" /&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="path/to/full/image2.jpg"&gt;&lt;img src="/path/to/thumb2.jpg" alt="Image 2" /&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="path/to/full/image3.jpg"&gt;&lt;img src="/path/to/thumb3.jpg" alt="Image 3" /&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="path/to/full/image4.jpg"&gt;&lt;img src="/path/to/thumb4.jpg" alt="Image 4" /&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="path/to/full/image5.jpg"&gt;&lt;img src="/path/to/thumb5.jpg" alt="Image 5" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</pre>
<p>If you don&#8217;t create your image list manually, you can populate it as an array.  Below I have only specified the url of the full size image.  The alt tag (&#8220;alt&#8221;) and thumbnail (&#8220;thumb&#8221;) can also be specified, but if the thumb isn&#8217;t specified the full size url will be used instead (meaning the thumb should be resized via css instead).</p>
<pre>&lt;script type="text/javascript"&gt;
	$(document).ready(function(){
		var images = new Array();
		images[0] = {src : "/images/slide1.jpg"}
		images[1] = {src : "/images/slide2.jpg"}
		images[2] = {src : "/images/slide3.jpg"}
		images[3] = {src : "/images/slide4.jpg"}
		images[4] = {src : "/images/slide5.jpg"}
		images[5] = {src : "/images/slide6.jpg"}

		// Create a new galleryCarousel with a few config options
		$('#galleryWrap').galleryCarousel({
			target : $('#featuredImg'),
			nextBtn : $('a#next'),
			prevBtn : $('a#prev'),
			images : images
		});
	});
&lt;/script&gt;</pre>
<h3>Captions</h3>
<p>When you have specified a caption for an image, it will be shown &#8211; you can specify text or html for your caption.  When there is no caption specified for an image, the caption container will be hidden.</p>
<pre>images[0] = {
    src : '/path/to/my/image.jpg',
    caption : 'This is my image caption.'
}</pre>
<h3>Main Image Hyperlink</h3>
<p>You can specify a page to navigate to when clicking on an image, which is useful for portfolios and such.  To specify an image, simply add a url property like so:</p>
<pre>images[0] = {
    src : '/path/to/my/image.jpg',
    url : '/path/to/my/page.html'
}</pre>
<h2>Property List</h2>
<p>Here is a list of the configuration options and their defaults:</p>
<table style="width: 100%;" border="1">
<thead>
<tr>
<th>Property Name</th>
<th>Default Value</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>itemsShown</td>
<td>3</td>
<td>The number of images visible atany one time</td>
</tr>
<tr>
<td>step</td>
<td>1</td>
<td>The number of images to scroll past when next/prev links are clicked</td>
</tr>
<tr>
<td>target</td>
<td>$(&#8216;#galleryImg&#8217;)</td>
<td>The selector for the full size image</td>
</tr>
<tr>
<td>selectedClass</td>
<td>selected</td>
<td>The class for an image thumnail that is currently being displayed</td>
</tr>
<tr>
<td>nextBtn</td>
<td>$(&#8216;a#galleryNext&#8217;)</td>
<td>The selector for the next link</td>
</tr>
<tr>
<td>prevBtn</td>
<td>$(&#8216;a#galleryPrev&#8217;)</td>
<td>The selector for the previous link</td>
</tr>
<tr>
<td>highAlpha</td>
<td>1</td>
<td>The opacity of a selected / hovered thumnail</td>
</tr>
<tr>
<td>lowAlpha</td>
<td>0.5</td>
<td>The opacity of a non-selected thumbnail</td>
</tr>
<tr>
<td>scrollTime</td>
<td>500</td>
<td>The time in ms it takes to scroll left or right</td>
</tr>
<tr>
<td>interval</td>
<td>1000</td>
<td>The time in ms between automatic scrolling (set to 0 to disable auto-scrolling)</td>
</tr>
<tr>
<td>carouselClass</td>
<td>gallery</td>
<td>The class for the &lt;ul&gt; element (in case you want to style it easily)</td>
</tr>
<tr>
<td>captionTarget</td>
<td>$(&#8216;#caption&#8217;)</td>
<td>The selector for your caption container</td>
</tr>
<tr>
<td>images</td>
<td>n/a</td>
<td>A collection of images (see below)</td>
</tr>
</tbody>
</table>
<p>The following is a list of the properties for the images object:</p>
<table style="width: 100%;" border="1">
<tbody>
<tr>
<td>Property Name</td>
<td>Default</td>
<td>Description</td>
</tr>
<tr>
<td>src</td>
<td>n/a</td>
<td>URL of the full size image</td>
</tr>
<tr>
<td>thumb</td>
<td>n/a</td>
<td>URL of the thumbnail (optional)</td>
</tr>
<tr>
<td>alt</td>
<td>n/a</td>
<td>Alt tag for the thumb / full image (optional)</td>
</tr>
<tr>
<td>url</td>
<td>n/a</td>
<td>The url you want to navigate to on clicking the full image</td>
</tr>
<tr>
<td>caption</td>
<td>n/a</td>
<td>The caption you want associated with this image</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.bluearena.com/2009/06/gallery-carousel-v1-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Gallery Carousel v1.0</title>
		<link>http://www.bluearena.com/2009/05/gallery-carousel-v1-0/</link>
		<comments>http://www.bluearena.com/2009/05/gallery-carousel-v1-0/#comments</comments>
		<pubDate>Sun, 24 May 2009 14:05:59 +0000</pubDate>
		<dc:creator>Maloric</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[carousel]]></category>
		<category><![CDATA[gallery]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[slide]]></category>
		<category><![CDATA[slider]]></category>

		<guid isPermaLink="false">http://wordpress.bluearena.com/?p=54</guid>
		<description><![CDATA[Gallery Carousel does what it says on the tin.  It&#8217;s part image gallery, part carousel.  It provides an unordered list of images which can be scrolled horizontally.  When an image is clicked or the list is scrolled, the main image is updated to the larger version of the thumb. In order to [...]]]></description>
			<content:encoded><![CDATA[<p>Gallery Carousel does what it says on the tin.  It&#8217;s part image gallery, part carousel.  It provides an unordered list of images which can be scrolled horizontally.  When an image is clicked or the list is scrolled, the main image is updated to the larger version of the thumb. In order to use Gallery Carousel you must include jQuery 1.3.2 before you create a new carousel.  Creating a carousel requires relatively little markup, just a list of images, a couple of links to navigate and an image to represent the full size image.</p>
<p><span id="more-54"></span></p>
<p><script type="text/javascript">
	demoGallery();
</script></p>
<p><img alt="" id="featuredImg" /></p>
<table>
<tbody>
<tr>
<td><a id="prev" href="#">Prev</a></td>
<td>
<div id="featured">&nbsp;</div>
</td>
<td><a href="#" id="next">Next</a></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<hr />
<p><a href="/wp-content/themes/bluearena/includes/scripts/jQuery.galleryCarousel-1.0.pack.js">Download packed code for Gallery Carousel v1.0</a></p>
<p>Here is a stripped down version.&nbsp; First, include the galleryCarousel javascript file in the &lt;head&gt; section of your page:</p>
<pre>
&lt;script src=&quot;includes/galleryCarousel-1.0.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</pre>
<p>Then some simple styles to make it look nice:</p>
<pre>
&lt;style type=&quot;text/css&quot;&gt;
	img {border:0;}
	ul.gallery li {padding:0 5px;}
	ul.gallery li img {height:61px;} /* If you don't specify a thumnail image you should set the height of the scaled down image instead */
	ul.gallery li img.selected {border:2px solid #000;}
&lt;/style&gt;</pre>
<p>You&#8217;ll need some basic markup: an empty image, a next link, a previous link and a div to put our carousel into:</p>
<pre>
&lt;img id=&quot;featuredImg&quot; /&gt;
&lt;table&gt;
	&lt;tr&gt;
		&lt;td&gt;
			&lt;a id=&quot;prev&quot; href=&quot;#&quot;&gt;Prev&lt;/a&gt;
		&lt;/td&gt;
		&lt;td&gt;
			&lt;div id=&quot;galleryWrap&quot;&gt;&lt;/div&gt;
		&lt;/td&gt;
		&lt;td&gt;
			&lt;a href=&quot;#&quot; id=&quot;next&quot;&gt;Next&lt;/a&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;</pre>
<p>If you prefer to specify your images in the html rather than the javascript, you can also populate your target div with a ul like the following:</p>
<pre>
&lt;ul class=&quot;myGalleryClass&quot;&gt;
	&lt;li&gt;&lt;a href=&quot;path/to/full/image1.jpg&quot;&gt;&lt;img src=&quot;/path/to/thumb1.jpg&quot; alt=&quot;Image 1&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;path/to/full/image2.jpg&quot;&gt;&lt;img src=&quot;/path/to/thumb2.jpg&quot; alt=&quot;Image 2&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;path/to/full/image3.jpg&quot;&gt;&lt;img src=&quot;/path/to/thumb3.jpg&quot; alt=&quot;Image 3&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;path/to/full/image4.jpg&quot;&gt;&lt;img src=&quot;/path/to/thumb4.jpg&quot; alt=&quot;Image 4&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;path/to/full/image5.jpg&quot;&gt;&lt;img src=&quot;/path/to/thumb5.jpg&quot; alt=&quot;Image 5&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</pre>
<p>If you don&#8217;t create your image list manually, you can populate it as an array.&nbsp; Below I have only specified the url of the full size image.&nbsp; The alt tag (&quot;alt&quot;) and thumbnail (&quot;thumb&quot;) can also be specified, but if the thumb isn&#8217;t specified the full size url will be used instead (meaning the thumb should be resized via css instead).</p>
<pre>
&lt;script type=&quot;text/javascript&quot;&gt;
	$(document).ready(function(){
		var images = new Array();
		images[0] = {src : &quot;/images/slide1.jpg&quot;}
		images[1] = {src : &quot;/images/slide2.jpg&quot;}
		images[2] = {src : &quot;/images/slide3.jpg&quot;}
		images[3] = {src : &quot;/images/slide4.jpg&quot;}
		images[4] = {src : &quot;/images/slide5.jpg&quot;}
		images[5] = {src : &quot;/images/slide6.jpg&quot;}

		// Create a new galleryCarousel with a few config options
		$('#galleryWrap').galleryCarousel({
			target : $('#featuredImg'),
			nextBtn : $('a#next'),
			prevBtn : $('a#prev'),
			images : images
		});
	});
&lt;/script&gt;</pre>
<p>Here is a list of the configuration options and their defaults:</p>
<table border="1" width="100%">
<tbody>
<tr>
<td>Property Name</td>
<td>Default Value</td>
<td>Description</td>
</tr>
<tr>
<td>itemsShown</td>
<td>3</td>
<td>The number of images visible atany one time</td>
</tr>
<tr>
<td>step</td>
<td>1</td>
<td>The number of images to scroll past when next/prev links are clicked</td>
</tr>
<tr>
<td>target</td>
<td>$(&#8216;#galleryImg&#8217;)</td>
<td>The selector for the full size image</td>
</tr>
<tr>
<td>selectedClass</td>
<td>selected</td>
<td>The class for an image thumnail that is currently being displayed</td>
</tr>
<tr>
<td>nextBtn</td>
<td>$(&#8216;a#galleryNext&#8217;)</td>
<td>The selector for the next link</td>
</tr>
<tr>
<td>prevBtn</td>
<td>$(&#8216;a#galleryPrev&#8217;)</td>
<td>The selector for the previous link</td>
</tr>
<tr>
<td>highAlpha</td>
<td>1</td>
<td>The opacity of a selected / hovered thumnail</td>
</tr>
<tr>
<td>lowAlpha</td>
<td>0.5</td>
<td>The opacity of a non-selected thumbnail</td>
</tr>
<tr>
<td>scrollTime</td>
<td>500</td>
<td>The time in ms it takes to scroll left or right</td>
</tr>
<tr>
<td>interval</td>
<td>1000</td>
<td>The time in ms between automatic scrolling (set to 0 to disable auto-scrolling)</td>
</tr>
<tr>
<td>carouselClass</td>
<td>gallery</td>
<td>The class for the &lt;ul&gt; element (in case you want to style it easily)</td>
</tr>
<tr>
<td>images</td>
<td>n/a</td>
<td>A collection of images (see below)</td>
</tr>
</tbody>
</table>
<p>The following is a list of the properties for the images object:</p>
<table border="1" width="100%">
<tbody>
<tr>
<td>Property Name</td>
<td>Default</td>
<td>Description</td>
</tr>
<tr>
<td>src</td>
<td>n/a</td>
<td>URL of the full size image</td>
</tr>
<tr>
<td>thumb</td>
<td>n/a</td>
<td>URL of the thumbnail (optional)</td>
</tr>
<tr>
<td>alt</td>
<td>n/a</td>
<td>Alt tag for the thumb / full image (optional)</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bluearena.com/2009/05/gallery-carousel-v1-0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rounded Corners and Fluid Boxes</title>
		<link>http://www.bluearena.com/2009/05/rounded-corners-and-fluid-boxes/</link>
		<comments>http://www.bluearena.com/2009/05/rounded-corners-and-fluid-boxes/#comments</comments>
		<pubDate>Fri, 22 May 2009 23:09:17 +0000</pubDate>
		<dc:creator>Maloric</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[corner]]></category>
		<category><![CDATA[corners]]></category>
		<category><![CDATA[cross]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[expand]]></category>
		<category><![CDATA[explorer]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[fluid]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[ie7]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[round]]></category>
		<category><![CDATA[rounded]]></category>

		<guid isPermaLink="false">http://wordpress.bluearena.com/?p=41</guid>
		<description><![CDATA[Rounded corners have long been a hot topic for web developers, with several methods out there, each with their benefits and disadvantages.  Although rounded corners seem to have fallen out of favour recently in favour of simple, clean designs, they still remain a powerful tool in any designer&#8217;s arsenal, which means knowing how to create [...]]]></description>
			<content:encoded><![CDATA[<p>Rounded corners have long been a hot topic for web developers, with several methods out there, each with their benefits and disadvantages.  Although rounded corners seem to have fallen out of favour recently in favour of simple, clean designs, they still remain a powerful tool in any designer&#8217;s arsenal, which means knowing how to create them is essential.  This tutorial will show you how to create tableless rounded corners than scale with fluid width and height, and can be expanded on to incorporate drop shadows or custom borders.<span id="more-41"></span></p>
<h2>What you need</h2>
<p>This tutorial assumes that you have a decent working knowledge of CSS and a little javascript (necessary if you want full IE6 support).  You&#8217;ll also need some sort of graphics editing software such as Adobe Photoshop or <a title="Go to the GIMP website" href="http://www.gimp.org/" target="_blank">the GIMP</a>.  I&#8217;ll be using Photoshop.</p>
<h2>Step 1: Design Your Box</h2>
<p><img class="alignleft size-medium wp-image-42" title="testbox" src="http://www.bluearena.com/wp-content/uploads/2009/05/testbox.gif" alt="testbox" width="197" height="126" />You&#8217;ll need to start off by creating an image of how your box will look when it&#8217;s finished.  For now I&#8217;m going to create a simple grey box with dark grey corners, something like the image you see here.  To create something similar simply draw a rectangle with rounded corners and add a 1px stroke.</p>
<p>It&#8217;s important that your box goes right to the edge of the image, so trim off any unneccessary white space.  You can save this as box1.gif.</p>
<h2>Step 2: The corners include</h2>
<p>The concept of this solution is to include four divs &#8211; one for each corner &#8211; that will be positioned absolutely within our both and styled appropriately.  Since this is the sort of technique that gets reused many times in the site, I prefer to create an include that contains all four corners.  Create a new file called &#8216;corners.html&#8217; and place the following markup inside:</p>
<pre>&lt;div class="tl corner"&gt;&lt;/div&gt;
&lt;div class="tr corner"&gt;&lt;/div&gt;
&lt;div class="bl corner"&gt;&lt;/div&gt;
&lt;div class="br corner"&gt;&lt;/div&gt;</pre>
<p>You&#8217;ll have noticed that each div has two classes.  The first just tells us which corner it is (top left, top right, bottom left and bottom right respectively).  The second lets us easily apply styles that all four corners will use.</p>
<h2>Step 3: The Box</h2>
<p>Let&#8217;s create the box and the markup we&#8217;ll need now, and then we&#8217;ll style it up once we&#8217;re done.  Where you want your box to appear, type the following code:</p>
<pre>&lt;div class="box1 corners"&gt;
    &lt;!--#include virtual='/path/to/corners.html'--&gt;
    &lt;div class="boxContent"&gt;
        &lt;p&gt;This is where your content will go&lt;/p&gt;
    &lt;/div&gt;
&lt;/div&gt;</pre>
<p>I&#8217;d better explain some of this.  The outer div is the box itself.  This will be styled to match your design and hads the extra class &#8220;corners&#8221; there to allow you to apply classes to all of your boxes, as well as making some of the javascript easier later.</p>
<p>Next is the corners include, which includes the four divs you created a moment ago.  Much nicer than including those manually every time, huh?</p>
<p>Last is a div called &#8220;boxContent&#8221;.  This is the div you&#8217;ll apply all of your padding to (allowing you to declare width:100% on the box itself without breaking anything).  It&#8217;s also useful to put overflow:hidden on the inner div to prevent the Firefox Float Bug if you float the contents of the box &#8211; this wouldn&#8217;t work on the outer box as the corners will need to be placed outside the box in order to work.  If all isn&#8217;t clear, don&#8217;t worry, just read on.</p>
<h2>Step 4: The CSS</h2>
<p>Ok, now for the fun part.  We&#8217;re going to start by styling up the basic box without rounded corners.  Basically what we need is a background colour, border and some padding.  Copy the following into your stylesheet:</p>
<pre>/* This allows us to position the corners relative to the box instead of the page */
div.corners { position:relative; }

/* This will make sure your corners never display over your content */
div.boxContent { position:relative; z-index:3; }

/* Styles specific to box1 */
div.box1 { color:#000; background:#E0E0E0; border:1px solid #666; }
div.box1 div.boxContent { padding:12px; overflow:hidden; }</pre>
<p>That&#8217;s it for the box.  Now for the corners.  They&#8217;re all going to be the same size and have many similar properties.  I like to create a seperate stylesheet for box/corner styles, but you&#8217;re welcome to put them where you like.</p>
<pre>div.corner { width:12px; height:12px; position:absolute; z-index:2;}
div.tl { top:-1px; left:-1px; background-position:top left; }
div.tr { top:-1px; right:-1px; background-position:top right; }
div.bl { bottom:-1px; left:-1px; background-position:bottom left; }
div.br { bottom:-1px; right:-1px; background-position:bottom right; }</pre>
<p>This has given us some universal corner styles.  Now we need to point our box 1 corners at the correct background image.  Add this line to your stylesheet and you&#8217;re good to go:</p>
<pre>div.box1 div.corner { background-image:url(/path/to/box1.gif); }</pre>
<p>Go on &#8211; check out your box now.  If you&#8217;re thinking that it can&#8217;t be that easy, think again.  You only had to cut out one image, not 4, and the box resizes perfectly in every modern browser.</p>
<h2>The Exception to the Rule</h2>
<p>Unfortunately if you&#8217;re using IE6 you&#8217;ll notice a rather frustrating bug.  If your box width or height is an odd number the bottom and right coordinates of your boxes will be 1px too short, meaning the border will show through.  There are two solutions.  The first uses javascript, and is my preferred method, to be covered in another post.  The second method involves only css:</p>
<p>The easiest way to fix the right coordinate is to fix the width of each box to an even number.  This isn&#8217;t too bad for fixed width sites, though could pose a problem for fluid layouts.  Unfortunately the bottom coordinate can&#8217;t be so easily fixed due to the fact that boxes should expand downward depending on the content.  So we need a more complex solution.</p>
<p>First, add the following line to corners.html:</p>
<pre>&lt;div class="btm corner"&gt;&lt;/div&gt;</pre>
<p>This div will be styled to mimic the bottom edge of the box.  We&#8217;ll need a background image for it, which will be a 2px or greater slice of the bottom of the box.  This will need to be repeated horizontally, so make sure there&#8217;s nothing else in the image.</p>
<p>Now you&#8217;ll need to change the &#8220;bottom&#8221; coordinate of your &#8220;bl&#8221; and &#8220;br&#8221; corners to -2px instead of -1px.  This means the corners will display 1px further down than they should.  This is where the &#8220;btm&#8221; div comes into play.  Add the following to your stylesheet:</p>
<pre>div.btm {
    height:12px;
    width:100%;
    bottom:-2px;
    left:-1px;
    background:url(/path/to/box1-btm.gif) bottom repeat-x;
    z-index:1;
}</pre>
<p>Now the bottom div will display 1px out the same as the corners, but because the three divs cover the bottom edge of the box, you can&#8217;t see the discrepancy, providing a CSS only solution to the problem.  Note that the bottom div needs to be placed below the two corners, hence a z-index of 1.</p>
<h3>Next time: A Javascript Solution</h3>
<p>Next time we&#8217;ll look at fixing the IE6 problem using JQuery to reposition the corners depending on the width of their parent.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bluearena.com/2009/05/rounded-corners-and-fluid-boxes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE6 &#8211; When Enough Is Enough</title>
		<link>http://www.bluearena.com/2009/05/ie6-when-enough-is-enough/</link>
		<comments>http://www.bluearena.com/2009/05/ie6-when-enough-is-enough/#comments</comments>
		<pubDate>Tue, 19 May 2009 20:41:25 +0000</pubDate>
		<dc:creator>Maloric</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[compatibility]]></category>
		<category><![CDATA[compliant]]></category>
		<category><![CDATA[cross]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[develop]]></category>
		<category><![CDATA[explorer]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[ie7]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[standard]]></category>
		<category><![CDATA[w3c]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://wordpress.bluearena.com/?p=13</guid>
		<description><![CDATA[On August 1st, 2001, Microsoft revealed their newest browser, IE6, which replaced IE5.5.  IE6 came bundled with Windows XP, and as such became the most used browser of its time.  In fact, when Internet Explorer 7 was release in October 2006, IE6 continued to hold a greater market share than its successor for almost a [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-38" title="broken-ie6" src="http://www.bluearena.com/wp-content/uploads/2009/05/broken-ie6.jpg" alt="broken-ie6" width="153" height="101" />On August 1st, 2001, Microsoft revealed their newest browser, IE6, which replaced IE5.5.  IE6 came bundled with Windows XP, and as such became the most used browser of its time.  In fact, when Internet Explorer 7 was release in October 2006, IE6 continued to hold a greater market share than its successor for almost a year.  Eventually users began to move onto IE7, and many even shifted to Mozilla Firefox, the open source browser.  At the time of writing, IE6 still holds an impressive ~17% of the market, which I put down to one factor: Windows XP.<span id="more-13"></span></p>
<p>Since IE6 comes bundled with Windows XP, which currently holds a 62% market share, it&#8217;s no surprise that IE6 is so widely used despite its age.  Although it is very simple for users to upgrade to Internet Explorer 7, many choose not to simply because they prefer to use what they know, or because IE6 works just fine for them.  And in fairness, many users wouldn&#8217;t notice a difference in how websites look between one browser and the next.</p>
<p>But that&#8217;s because we web developers have to spend sometimes hours at a time testing and tweaking websites until they work flawlessly in a browser that was <strong>replaced </strong>over two years ago.  I don&#8217;t blame Microsoft, since Internet Explorer 7 was a huge leap forward in terms of W3C compliance.  And Internet Explorer 8, which replaced its predecessor in March this year, is even better still.  I don&#8217;t even blame the people using Internet Explorer 6, as a lot of them probably don&#8217;t even realise there is a problem.  I blame the web developers who continue to support it.  Now I know a lot of you will tell me it&#8217;s not financially viable to drop support for such a widely used browser, but I&#8217;m not talking about abandoning it altogether.  I just mean if you have to choose between supporting IE6 and using more modern techniques, then you should opt for the latter.</p>
<h4>It starts to get a bit technical from here on in&#8230;</h4>
<p>A simple example is this: Internet Explorer 6 can&#8217;t recognise the &#8220;:hover&#8221; meta class on any element except for a hyperlink.  It can&#8217;t recognise &#8220;:first-child&#8221; or something as simple as &#8220;ul &gt; li&#8221; (denoting a direct descendant).  If you need to simulate these styles for the sake of functionality, then it is acceptable to use javascript.  But if you need to simlate a style for a purely visual reason, then forget it.  Here&#8217;s an example:</p>
<pre>&lt;ul class="horizontalList"&gt;
    &lt;li&gt;Test list item 1&lt;/li&gt;
    &lt;li&gt;Test list item 2&lt;/li&gt;
    &lt;li&gt;Test list item 3&lt;/li&gt;
    &lt;li&gt;Test list item 4&lt;/li&gt;
&lt;/ul&gt;</pre>
<p>Now let&#8217;s imagine we need the first item in this list to have no border, but for all other items to have a 1px solid border on the left.  Our stylesheet would contain something like this:</p>
<pre>ul.horizontalList li {
    display:inline;
    padding:0 4px;
    border-left:1px solid #000;
}
ul.horizontalList li:first-child {
    border-left:0;
}</pre>
<p>Relatively simple, but in IE6 the second rule is ignored due to its lack of support for :first-child.  The common way to fix this is to add &#8220;class=&#8217;first&#8217;&#8221; to the first list item and then change the selector to:</p>
<pre>ul.horizontalList li.first</pre>
<p>This effectively makes the first-child pseudo class useless, as there is no point in applying the style to both.  And you may think &#8220;well sure, why not? It only takes a second to add.&#8221;  But all of these add up.  Let&#8217;s look at another example:</p>
<pre>&lt;div class="border highlight"&gt;
    &lt;p&gt;This is a test paragraph&lt;/p&gt;
&lt;/div&gt;

&lt;style type="text/css"&gt;
    div.border { border:1px solid #000; color:#000; }
    div.highlight { background:#F00; }
    div.border.highlight { color:#FFF; font-weight:bold; }
&lt;/style&gt;</pre>
<p>According to this, any div with class=&#8221;highlight&#8221; should have a red background and any div with class=&#8221;border&#8221; should have black text and a black border.  But if a div has both classes, the text should instead be white and bold.  Simple, yes?  Well IE6 ignores the last line, which can be a real pain in some cases.  Often it forces you to create a new class such as class=&#8221;borderHighlight&#8221; to encapsulate both styles, or to have parent elements with a different class to modify the appearance of their children.</p>
<p>My point is this: if you have to rewrite some of your CSS or markup to accomodate this kind of behaviour, don&#8217;t.  It&#8217;s simple &#8211; if I buy a computer game and it has a bug, the first thing I&#8217;m asked to do when I contact tech support is upgrade to the latest version.  Why?  Because the problem has already been addressed.  This should be your approach to web development &#8211; make the client aware that they have an out of date browser by displaying a message to only users or IE6 or below.  Recommend that they upgrade to the latest version of Internet Explorer and warn them that the site may display incorrectly if they do not.</p>
<h3>Be flexible</h3>
<p>This isn&#8217;t a hard and fast rule.  If a client is paying you to support IE6 then spend the extra time doing so.  And sometimes an extra line of css can make all the difference.  Don&#8217;t drop support for IE6 just to spite its users &#8211; use the fixes you can quickly apply but don&#8217;t let it impact on the markup and styles you use for other browsers.  Ultimately you have to decide whether the time you spend is worth the result.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bluearena.com/2009/05/ie6-when-enough-is-enough/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Should I Upgrade My Browser?</title>
		<link>http://www.bluearena.com/2009/05/why-should-i-upgrade-my-browser/</link>
		<comments>http://www.bluearena.com/2009/05/why-should-i-upgrade-my-browser/#comments</comments>
		<pubDate>Fri, 15 May 2009 23:21:34 +0000</pubDate>
		<dc:creator>Maloric</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[compatibility]]></category>
		<category><![CDATA[compatible]]></category>
		<category><![CDATA[explorer]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[ie7]]></category>
		<category><![CDATA[ie8]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[outdated]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[upgrade]]></category>

		<guid isPermaLink="false">http://wordpress.bluearena.com/?p=24</guid>
		<description><![CDATA[There are a host of reasons to upgrade your browser.  I&#8217;m going to make an assumption that most people using an out of date browser are using Internet Explorer 6, as it ships with Windows XP and still holds a 17% market share.  Here are some reasons to upgrade:

In short, Internet Explorer 6 is an [...]]]></description>
			<content:encoded><![CDATA[<p>There are a host of reasons to upgrade your browser.  I&#8217;m going to make an assumption that most people using an out of date browser are using Internet Explorer 6, as it ships with Windows XP and still holds a 17% market share.  Here are some reasons to upgrade:<span id="more-24"></span></p>
<ul>
<li>In short, Internet Explorer 6 is an out of date browser that doesn&#8217;t recognise many modern techniques for building websites.  As a result, web developers tend to support IE6 at the expense of using techniques that could save them time and effort whilst allowing more creative design.</li>
<li>IE6 is also less secure than it&#8217;s successors.  Although it is still patched with Windows XP Service packs, the latest of which was released in April 2008, support will not continue forever.  Internet Explorer 8 was released in March 2009, meaning that IE6, first released in 2001, is now 2 generations old.  Microsoft have enough to worry about without supporting an obsolete browser as well.</li>
<li>IE6 has less features than its successors &#8211; most notably it lacks tabbed browsing, meaning you need a new window for every site you want to visit at the same time.  In IE7+ you can have multiple sites open in the same window.</li>
<li>Less web developers are supporting IE6 all the time.  Sticking with this browser means you will notice more and more sites that look broken.</li>
<li>It costs nothing to upgrade.  You can upgrade to a <a href="http://www.microsoft.com/windows/internet-explorer/" target="_blank">newer version of Internet Explorer</a>, or try one of the other browsers on offer: <a href="http://www.mozilla.com" target="_blank">Mozilla Firefox</a>, <a href="http://www.apple.com/safari/download/" target="_blank">Safari</a>, <a href="http://www.opera.com/" target="_blank">Opera</a> and <a href="http://www.google.com/chrome/" target="_blank">Google Chrome</a> are just a few.</li>
</ul>
<p>If you want a more in depth explination, read on&#8230;</p>
<h2>HTML 101</h2>
<p>For the uninitiated, let me first explain what html is.  Hyper Text Markup Language, to give it its full name, is the language in which websites are written.  It is how we developers create a website.  A web browser, such as Internet Explorer or Firefox, is the program responsible for reading HTML and displaying it as a website.  With me so far?  Good&#8230;</p>
<h2>The World Wide Web Consortium</h2>
<p>Once upon a time, the World Wide Web Consortium, or W3C to those of us in a hurry, decided it would be swell if we had a set of standards which would define how browsers should render HTML.  The idea was that any browser on any machine could take a website and produce the same result, thus making the website accessible to the widest possible audience.</p>
<p>Unfortunately, this is much easier said than done.  Few browsers can boast 100% compliance to the W3C standards without some small bugs or quirks, but usually these are fairly minor issues that are easily solved.  Unfortunately, this isn&#8217;t the case with all browsers.  IE6 and its predeccesors are particular headaches for web developers, as they do not support newer techniques for styling content.  And while many point the finger squarely at Microsoft for this, the problem lies with the users who continue to create a need to support IE6.  Microsoft themselves have long since moved on, releasing 2 updated browsers since IE6 was released in 2001.  I&#8217;m sure they would appreciate the opportunity to stop supporting IE6 and concentrate on newer projects instead, but while so many people cling to an old browser, this won&#8217;t be possible.</p>
<h2>A Time For Action</h2>
<p>If you can, go and download <a href="http://www.microsoft.com/windows/internet-explorer/" target="_blank">the latest version of Internet Explorer</a> or one of the other browsers listed above.  If you can&#8217;t install the new version yourself (for instance if you&#8217;re part of a network at work or school), talk to the system administrator and ask if they can do it.  If you already use Windows XP then upgrading to Internet Explorer 7 or 8 is easy and costs you nothing.  If you use Windows Vista or later then you already have Internet Explorer 7 or later &#8211; congratulations, you&#8217;re a part of the solution!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bluearena.com/2009/05/why-should-i-upgrade-my-browser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
