<?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>Gilluminate &#187; JavaScript</title>
	<atom:link href="http://www.gilluminate.com/tag/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gilluminate.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 Jun 2010 02:50:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Using JQuery to reveal using a slide up effect</title>
		<link>http://www.gilluminate.com/2009/09/09/using-jquery-to-reveal-using-a-slide-up-effect/</link>
		<comments>http://www.gilluminate.com/2009/09/09/using-jquery-to-reveal-using-a-slide-up-effect/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 05:35:46 +0000</pubDate>
		<dc:creator>Jason Gill</dc:creator>
				<category><![CDATA[Developer Blog]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.gilluminate.com/?p=5519</guid>
		<description><![CDATA[The slideUp() method in JQuery is intended to hide the element rather than reveal it. It is basically the opposite of slideDown() which &#8220;unhides&#8221; your element by sliding it down. As you can see on this blog, I have an &#8220;About Jason Gill&#8221; tab in my heading. When clicked, this tab reveals information about who [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://docs.jquery.com/Effects/slideUp">slideUp()</a> method in <a href="http://jquery.com/">JQuery</a> is intended to hide the element rather than reveal it. It is basically the opposite of <a href="http://docs.jquery.com/Effects/slideDown">slideDown()</a> which &#8220;unhides&#8221; your element by sliding it down.</p>
<p>As you can see on this blog, I have an &#8220;About Jason Gill&#8221; tab in my heading. When clicked, this tab reveals information about who I am by sliding upward. In figuring out how to do this, I of course consulted the Google gods and came up with a lot of people asking how, but few people providing answers. So, I&#8217;ve decided to post the solution I finally came up with hoping it will benefit others.</p>
<p>Basically, I am using two different effects to create what looks like one effect. What you are seeing is essentially a slideDown() in conjunction with an <a href="http://docs.jquery.com/Effects/animate">animate()</a> effect. The animate() is literally moving the info box upward at the same speed it is sliding down (in my case, &#8220;slow&#8221;).  I just had to measure the height of the #about_me box and animate it upward exactly that many pixels (in my case it was 171 pixels). To close the box, I simply animate downward at the same rate I slideUp. Technically, I&#8217;m using animate in conjunction with <a href="http://docs.jquery.com/Effects/slideToggle">slideToggle()</a>, but you get the idea.</p>
<p>You can take a look at my source, but I&#8217;ll post the javascript here for your convenience:</p>

<div class="wp_codebox"><table><tr id="p55192"><td class="code" id="p5519code2"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> opened <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#about_tab&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>opened<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#about_me&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">animate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><span style="color: #3366CC;">&quot;top&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;+=171px&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;slow&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#about_me&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">animate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><span style="color: #3366CC;">&quot;top&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;-=171px&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;slow&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#about_content&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slideToggle</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;slow&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#about_tab .close&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">toggle</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		opened <span style="color: #339933;">=</span> opened <span style="color: #339933;">?</span> <span style="color: #003366; font-weight: bold;">false</span> <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.gilluminate.com/2009/09/09/using-jquery-to-reveal-using-a-slide-up-effect/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Scriptaculous Autocomplete Page Jump Using Arrow Keys</title>
		<link>http://www.gilluminate.com/2009/01/20/scriptaculous-autocomplete-page-jump-using-arrow-keys/</link>
		<comments>http://www.gilluminate.com/2009/01/20/scriptaculous-autocomplete-page-jump-using-arrow-keys/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 21:02:30 +0000</pubDate>
		<dc:creator>Jason Gill</dc:creator>
				<category><![CDATA[Developer Blog]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Scriptaculous]]></category>

		<guid isPermaLink="false">http://blog.gilluminate.com/?p=5306</guid>
		<description><![CDATA[When you use overflow:auto in your css in conjunction with Scriptaculous&#8217; Autocomplete, there is a bug that makes the entire page jump around when you use the arrow keys on your keyboard to navigate up and down through the suggestion list. This bug normally appears only when the page itself is long enough to require [...]]]></description>
			<content:encoded><![CDATA[<p>When you use overflow:auto in your css in conjunction with Scriptaculous&#8217; Autocomplete, there is a bug that makes the entire page jump around when you use the arrow keys on your keyboard to navigate up and down through the suggestion list. This bug normally appears only when the page itself is long enough to require a scroll bar.</p>
<p>I managed to come up with a very clean working solution by hacking the controls.js file that comes with scriptaculous. The solutions requires replacing the <em>markPrevious</em> and <em>markNext</em> functions and adding a small line of code to the <em>updateChoices</em> function.</p>
<p>Currently, <em>markPrevious</em> and <em>markNext</em> are telling the page to jump around like that, and I&#8217;m not sure why! As far as I can tell (please let me know otherwise) this solution could be included in the scriptaculous without breaking a thing (hint, hint to the scriptaculous team).</p>
<p>To implement the solution, replace:</p>

<div class="wp_codebox"><table><tr id="p53066"><td class="code" id="p5306code6"><pre class="javascript" style="font-family:monospace;">markPrevious<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
 <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">index</span> <span style="color: #339933;">&gt;</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">index</span><span style="color: #339933;">--;</span>
  <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">index</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">entryCount</span><span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
   <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">getEntry</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">index</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">scrollIntoView</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
&nbsp;
markNext<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
 <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">index</span> <span style="color: #339933;">&lt;</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">entryCount</span><span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">index</span><span style="color: #339933;">++;</span>
  <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">index</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
  <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">getEntry</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">index</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">scrollIntoView</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span></pre></td></tr></table></div>

<p>With:</p>

<div class="wp_codebox"><table><tr id="p53067"><td class="code" id="p5306code7"><pre class="javascript" style="font-family:monospace;">markPrevious<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
 <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">index</span> <span style="color: #339933;">&gt;</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">index</span><span style="color: #339933;">--;</span><span style="color: #009900;">&#125;</span>
 <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">index</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">entryCount</span><span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
  <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">update</span>.<span style="color: #660066;">scrollTop</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">update</span>.<span style="color: #660066;">scrollHeight</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span>
 selection <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">getEntry</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">index</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 selection_top <span style="color: #339933;">=</span> selection.<span style="color: #660066;">offsetTop</span><span style="color: #339933;">;</span>
 <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>selection_top <span style="color: #339933;">&lt;</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">update</span>.<span style="color: #660066;">scrollTop</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">update</span>.<span style="color: #660066;">scrollTop</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">update</span>.<span style="color: #660066;">scrollTop</span><span style="color: #339933;">-</span>selection.<span style="color: #660066;">offsetHeight</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
&nbsp;
markNext<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
 <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">index</span> <span style="color: #339933;">&lt;</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">entryCount</span><span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">index</span><span style="color: #339933;">++;</span><span style="color: #009900;">&#125;</span>
 <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">index</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
  <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">update</span>.<span style="color: #660066;">scrollTop</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span>
 selection <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">getEntry</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">index</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 selection_bottom <span style="color: #339933;">=</span> selection.<span style="color: #660066;">offsetTop</span><span style="color: #339933;">+</span>selection.<span style="color: #660066;">offsetHeight</span><span style="color: #339933;">;</span>
 <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>selection_bottom <span style="color: #339933;">&gt;</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">update</span>.<span style="color: #660066;">scrollTop</span><span style="color: #339933;">+</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">update</span>.<span style="color: #660066;">offsetHeight</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">update</span>.<span style="color: #660066;">scrollTop</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">update</span>.<span style="color: #660066;">scrollTop</span><span style="color: #339933;">+</span>selection.<span style="color: #660066;">offsetHeight</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span></pre></td></tr></table></div>

<p>Now find the <em>updateChoices</em> function and just after the code this.stopIndicator(); add this.update.scrollTop = 0; so that it looks like this:</p>

<div class="wp_codebox"><table><tr id="p53068"><td class="code" id="p5306code8"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">stopIndicator</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">update</span>.<span style="color: #660066;">scrollTop</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">index</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>I&#8217;ve tested in FF 2.0.0.4, FF 3.0.5, Chrome 1.0.154.43, Safari 3.2.1, Opera 9.5.1, IE 7.0.5730.13 and IE 6.0.2600 without problems.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilluminate.com/2009/01/20/scriptaculous-autocomplete-page-jump-using-arrow-keys/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>Using SWFObject for Flash Version Tracking</title>
		<link>http://www.gilluminate.com/2007/03/09/using-swfobject-for-flash-version-tracking/</link>
		<comments>http://www.gilluminate.com/2007/03/09/using-swfobject-for-flash-version-tracking/#comments</comments>
		<pubDate>Fri, 09 Mar 2007 16:28:00 +0000</pubDate>
		<dc:creator>Jason Gill</dc:creator>
				<category><![CDATA[Developer Blog]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Omniture]]></category>

		<guid isPermaLink="false">http://blog.gillumiante.com/2007/03/09/using-swfobject-for-flash-version-tracking</guid>
		<description><![CDATA[At my company, we use Omniture SiteCatalyst for our web analytics/tracking. Unfortunately, Omniture does not give user&#8217;s Flash Version statistics in their standard reports like Google Analytics does. On the other hand, Omniture gives you the freedom to create custom reports that you can determine on your own using their provided JavaScript code. I am [...]]]></description>
			<content:encoded><![CDATA[<p>At my company, we use <a href="http://www.omniture.com/">Omniture</a> <a href="http://www.omniture.com/products/web_analytics/sitecatalyst">SiteCatalyst</a> for our web analytics/tracking. Unfortunately, Omniture does not give user&#8217;s Flash Version statistics in their standard reports like <a href="http://www.google.com/analytics/">Google Analytics</a> does. On the other hand, Omniture gives you the freedom to create <a href="http://www.omniture.com/services/custom">custom reports</a> that you can determine on your own using their provided JavaScript code.</p>
<p>I am already using <a href="http://blog.deconcept.com/swfobject/">SWFObject</a> to load the flash piece on our homepage to users with a specified version. So I figured I could hack that code a bit in order to pull the version it was already determining for me, and plug it into the Omniture code.</p>
<p>After mulling through the SWFObject code, I finally was able to run this page successfully, which will alert the exact version of flash I am using:</p>

<div class="wp_codebox"><table><tr id="p32110"><td class="code" id="p321code10"><pre class="xml" style="font-family:monospace;"><span style="color: #00bbdd;">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;html</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/1999/xhtml&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;head<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;meta</span> <span style="color: #000066;">http-equiv</span>=<span style="color: #ff0000;">&quot;Content-Type&quot;</span> <span style="color: #000066;">content</span>=<span style="color: #ff0000;">&quot;text/html; charset=iso-8859-1&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>test<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;script</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">&quot;swfobject.js&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/script<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/head<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;body<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;script</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text/javascript&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
alert(deconcept.SWFObjectUtil.getPlayerVersion().major+
&quot;.&quot;+deconcept.SWFObjectUtil.getPlayerVersion().minor+
&quot;.&quot;+deconcept.SWFObjectUtil.getPlayerVersion().rev);
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/script<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/body<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/html<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Basically, you can use deconcept.SWFObjectUtil.getPlayerVersion().major to get the major version, etc.</p>
<p>Once I got that working, I was able to use that same concept to plug it into my tracking code.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilluminate.com/2007/03/09/using-swfobject-for-flash-version-tracking/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Jack my FAQ</title>
		<link>http://www.gilluminate.com/2007/02/20/jack_my_faq/</link>
		<comments>http://www.gilluminate.com/2007/02/20/jack_my_faq/#comments</comments>
		<pubDate>Tue, 20 Feb 2007 10:01:00 +0000</pubDate>
		<dc:creator>Jason Gill</dc:creator>
				<category><![CDATA[Developer Blog]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.gillumiante.com/2007/02/20/jack_my_faq</guid>
		<description><![CDATA[Here&#8217;s a little freebie. I&#8217;ve written a javascript that will take any faq page—properly formatted—and give it a little DHTML *umph* (oh, that&#8217;s right, we&#8217;re calling it AJAX these days). Basically it automatically converts all of the terms (questions) into links and collapses all of the defintions (answers) to be hidden until their term has [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a little freebie.</p>
<p>I&#8217;ve written a javascript that will take any faq page—properly formatted—and give it a little DHTML *umph* (oh, that&#8217;s right, we&#8217;re calling it AJAX these days). Basically it automatically converts all of the terms (questions) into links and collapses all of the defintions (answers) to be hidden until their term has been clicked. You can see an example of it in action on our newly deployed <a href="http://www.rnnetwork.com/travel_nursing/faq">Travel Nursing</a> staffing website.</p>
<p>Basically, for formatting, you only need to use a Definition List (DL) with proper &lt;DT&gt; tags for terms and &lt;DD&gt; tags for definitions.</p>

<div class="wp_codebox"><table><tr id="p20313"><td class="code" id="p203code13"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;DL</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;definitions&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;DT<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Is this the first Question?<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/DT<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;DD<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Because this question appears at the beggining of our definition list,
	it is in fact the first question and can be referred to as such from here on out.<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/DD<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;DT<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Is this the last Question?<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/DT<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;DD<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Yes, this is the last question. However, since there are only two
	questions in this example, it can also be considered the &quot;second&quot; question.<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/DD<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/DL<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Then just link to the file at the bottom of your page with the following code:</p>

<div class="wp_codebox"><table><tr id="p20314"><td class="code" id="p203code14"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;script</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">&quot;jackmyfaq.js&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/script<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p><a href="http://www.gilluminate.com/wp-content/uploads/2008/03/jackmyfaq.js" title="Jack My FAQ">Download <strong>Jack My FAQ</strong> now!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilluminate.com/2007/02/20/jack_my_faq/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Prevent copy/paste and Print Screen online</title>
		<link>http://www.gilluminate.com/2006/04/25/prevent-copy-paste-and-print-screen-online/</link>
		<comments>http://www.gilluminate.com/2006/04/25/prevent-copy-paste-and-print-screen-online/#comments</comments>
		<pubDate>Tue, 25 Apr 2006 12:33:00 +0000</pubDate>
		<dc:creator>Jason Gill</dc:creator>
				<category><![CDATA[Developer Blog]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.gillumiante.com/2006/04/25/prevent-copy-paste-and-print-screen-online</guid>
		<description><![CDATA[NOTE: This script is no longer supported in Flash Player 10. (It was fun while it lasted!) Let&#8217;s face it, there is such a thing as sensitive material on the web. I was recently put to the task of protecting a certain page on our company&#8217;s intranet from being redistributed outside the company. In other [...]]]></description>
			<content:encoded><![CDATA[<div style="border: 1px solid #333333; padding: 3px; width: 375px; text-align: center;">
<h3 style="font-size: 14pt; color: red; margin-bottom: 0px; padding-bottom: 0px;">NOTE: This script is no longer supported in Flash Player 10.</h3>
<p style="margin-top: 0px; padding-top: 0px;">(It was fun while it lasted!)</p>
</div>
<p>Let&#8217;s face it, there is such a thing as sensitive material on the web. I was recently put to the task of protecting a certain page on our company&#8217;s intranet from being redistributed outside the company. In other words, we have a page on the intranet that is so sensitive, upper managment doesn&#8217;t want our employees to be capable of sending it to anyone outside the company.</p>
<p>So, I started thinking, what are the ways an average, non-techie employee, could reproduce this information? Since it&#8217;s on our password/firewall protected intranet, the risk of someone just emailing the link isn&#8217;t an issue. Of course the obvious is that they could copy and paste the text into an email and send it that way. They could also press the <em>Print Screen</em> button and paste a snapshot of the page as an email attachment or whatever.</p>
<p>I decided that beyond more &#8220;advanced&#8221; measures (like <em>view source</em> then <em>save as</em>), the clipboard was the method most people know how to use. So, the question became &#8220;how to disable the clipboard?&#8221;</p>
<p>I started tinkering around with <a href="http://www.htmlgoodies.com/beyond/javascript/article.php/3458851">JavaScript</a> <a href="http://www.geekpedia.com/tutorial126_Clipboard-cut-copy-and-paste-with-JavaScript.html">solutions</a>, attempting to intercept any ctrl+c or PrintScreen commands and over-ride them with a call to write a message to the clipboard: &#8220;You&#8217;re fired! Pack your things and go home.&#8221; which would in turn be pasted into their email if they attempted it. But this was klugy at best. First, JavaScript really needs a form field to have focus in order to fire an onClick type event. I figured the best way around that was to run as an onBlur and onFocus in the &lt;body&gt; tag and just over-ride the clipboard whether they tried to copy or not. This seemed to be a great solution until I realized that for some unknown reason, when you select text and then blur (remove focus) a browser window, it doesn&#8217;t actually fire any onBlur commands. Not only that, but it&#8217;s <a href="http://www.mozilla.org/xpfe/xptoolkit/introClipDD.html">a big mess</a> to add anything to the clipboard with Firefox (IE makes it really, really <a href="http://msdn.microsoft.com/en-us/library/ms535220%28VS.85%29.aspx">easy</a>). I suppose that Firefox doesn&#8217;t make writing to the clipboard easy due to security issues, and I&#8217;m not going to complain about any attempt to make my <a href="http://www.spreadfirefox.com/?q=affiliates&amp;id=18286&amp;t=75">favorite browser</a> more secure.  ;)</p>
<p>Then I remembered an Adobe Flash (that still sounds weird, doesn&#8217;t it?) application that I worked on a few years ago that used Flash&#8217;s built in clipboard functions. Booya! I cranked up Flash and wrote the following simple and very easy actionscript in the first line of the first frame:</p>
<p class="box">this.onEnterFrame = function(){<br />
System.setClipboard(&#8220;As long as this page is open your copy/paste functionality has been disabled.&#8221;);<br />
}</p>
<p class="box"><em>(Added 08/28/2007: for the new <strong>CS3</strong> use:)</em></p>
<p>addEventListener(Event.ENTER_FRAME, onEnterFrame);<br />
function onEnterFrame(E){</p>
<p>System.setClipboard(&#8220;As long as this page is open your copy/paste functionality has been disabled.&#8221;);<br />
}</p>
<p>I then set the movie size to 1px wide and 1px high and published. I then placed the Flash somewhere on the sensitive document.</p>
<p>Since I left my movie at the default 12 frames per second, the text &#8220;As long as this page is open your copy/paste functionality has been disabled.&#8221; will be set on the clipboard 12 times per second. Go ahead, try to beat that time with ctrl+c and then ctrl+v!</p>
<p>As invasive as this method is, it works. As long as that page is open <em>even in the background</em>, it will prevent any copying and pasting and even Print Screen and paste. The only problem is, that it requires Flash v6 or higher, which is required in my company to use many of our Flash based applications. But just in case, I left the following IE only code as a backup:</p>
<p class="box">&lt;body onBlur=&#8217;window.clipboardData.setData(&#8220;Text&#8221;, &#8220;As long as this page is open your copy/paste functionality has been disabled.&#8221;);&#8217;&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilluminate.com/2006/04/25/prevent-copy-paste-and-print-screen-online/feed/</wfw:commentRss>
		<slash:comments>50</slash:comments>
		</item>
	</channel>
</rss>
