<?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>geedew :: Web Design, Programming, Professionalism &#187; Programming</title>
	<atom:link href="http://www.geedew.com/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.geedew.com</link>
	<description>Web Design, Web Programming, Programming on Linux, CSS, JavaScript, PHP, HTML5</description>
	<lastBuildDate>Thu, 22 Jul 2010 16:26:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>jQuery UI Dialog Accessibility</title>
		<link>http://www.geedew.com/2010/02/25/jquery-ui-dialog-accessibility/</link>
		<comments>http://www.geedew.com/2010/02/25/jquery-ui-dialog-accessibility/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 02:52:17 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[508]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[BugFix]]></category>
		<category><![CDATA[Defects]]></category>
		<category><![CDATA[jQuery UI]]></category>

		<guid isPermaLink="false">http://www.geedew.com/?p=185</guid>
		<description><![CDATA[jQuery UI is an amazing product. It&#8217;s not because it offers the best features, or that it offers the best solution, it&#8217;s that it offers a large degree of support for years to come. Which is saying a lot for something that is nothing more than JavaScript. It&#8217;s certainly something that many enterprises have begun [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=b02858dd9961de60a8a7d0f9efe9c758&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=20 height=20/><p>    jQuery UI is an amazing product.  It&#8217;s not because it offers the best features, or that it offers the best solution, it&#8217;s that it offers a large degree of support for years to come.  Which is saying a lot for something that is nothing more than JavaScript.  It&#8217;s certainly something that many enterprises have begun to look at and look for in the development world.  At my job at Coventry Healthcare, I&#8217;m responsible for the User Interfaces and generally the User Experience across some very highly visible web applications.  One of the most recent developments in our line of business is the risk of not having an accessible site (we fall under Section 508 guidelines because of our Medicare/Medicaid users).  jQuery UI has literally allowed me to very easily create and maintain large amounts of code so that I can spend more time making sure that it follows WCAG 2.0 and WARIA (which should cover us for S508).<span id="more-185"></span>
</p>
<p class="entry-text">So recently I discovered a very nasty bug dealing with jQuery UI dialog (withe modal:true) widgets that seems to only occur in Internet Explorer.  It goes like this:  If you are using a dialog with a screen reader, your main mode of navigation is with the keyboard.  This is typically driven via the focus on elements.  In jQuery, focus is demanded on the dialog because of the modal command.  You are unable to focus on anything other than the dialog and it&#8217;s elements.  Here&#8217;s the issue however, jQuery successfully  can keep focus on the dialog in all browsers tested (FF, Safari, Chrome) so that the focus cannot leave the dialog.  However in Internet Explorer (6, 7 and 8 ) your focus can get to the address bar, simply by tabbing to it.  Once in the address bar, jQuery is no longer able to track and handle the focus, so inevitable, after tabbing through the menu, focus come back to the window.  But instead of going to the dialog, it goes to the first element that can be tabbed to, which is undoubtedly BEHIND the modal dialog.  jQuery, subsequently locks the tabbing at this point, most likely because you have focus on and element that is unable to be focused (in jQuery&#8217;s dialog algorithm).
</p>
<p class="entry-text">So I cannot have this as that would literally cut 75% of my users from being able to use just a keyboard with the sites I&#8217;m maintaining.  So I had to find a solution.  First, IE seems to be the only browser with this issue and it has something to do with the fact that the focus moves out of the DOM&#8217;s control (out of jQuery&#8217;s control).  But the focus would always at least get back to the first element that could be tabbed to, and then lock.  So I devised a plan.  What if the first element, when focused, looks for an open dialog and if it is there, focuses on that dialog?  So I tried it out, like this.
</p>
<pre class="brush: jscript;">
$(document).ready(function() {
    $(&quot;:tabbable:first&quot;).focus(function() {
           $(&quot;.ui-dialog:visible:last :tabbable:first&quot;).focus();
    })
});
</pre>
<p class="entry-text">
Amazingly enough, this is the exact solution to the issue. This is how it reads.</p>
<ol>
<li>On page load</li>
<li>Get the first element that can be tabbed to in the body</li>
<li>When this element gains focus, check for a visible dialog</li>
<li>Take the visible dialog that is last (the last one drawn in the html) and get the first element that can be tabbed in it</li>
<li>give focus to that first element.</li>
</ol>
<p class="entry-text">
Now, in IE, when focus returns to the document, it goes to the dialog box, specifically, the close icon on the dialog box, thereby not breaking the fact that there a modal open on the page.
</p>
<p class="entry-text">
Now, there are some issues with this.  For one, the code is just assuming that the last dialog in the html that is visible is the one that is to be focused on.  Quite frankly, that&#8217;s what I need it for, as I try not to overlay dialogs, and when it do, the newest one is normally always on top.  However, there are times where you may swap between two dialogs, and the one that is on top is not the last dialog in the html, you would still have this issue in this case.  But for probably the other 95% of the cases, this is a clean and easy way to &#8216;fix&#8217; the accessibility issue in IE with jQuery UI dialog modals.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geedew.com/2010/02/25/jquery-ui-dialog-accessibility/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Usability and a Simple JavaScript hovering menu</title>
		<link>http://www.geedew.com/2009/12/05/usability-and-a-simple-javascript-hovering-menu/</link>
		<comments>http://www.geedew.com/2009/12/05/usability-and-a-simple-javascript-hovering-menu/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 02:20:11 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://geedew.com/blog/?p=53</guid>
		<description><![CDATA[Many web developers ask &#8216;what is usability?&#8217;.  This is one of those topics that I can explain, but it may be easier to demonstrate. My this experiences have led to some principles; one of them is that if I&#8217;m going to build it, it must be usable.   Unfortunately, many sites that I like, that tout [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=b02858dd9961de60a8a7d0f9efe9c758&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=20 height=20/><p>Many web developers ask &#8216;what is usability?&#8217;.  This is one of those topics that I can explain, but it may be easier to demonstrate. My this experiences have led to some principles; one of them is that if I&#8217;m going to build it, it must be usable.   Unfortunately, many sites that I like, that tout usability, screw up one important concept that annoys me greatly.</p>
<p>I ask myself, &#8220;when using a menu, why do I have to drag my mouse from one button to the next, and fear losing the menu if I cross it&#8217;s border anywhere?&#8221;  Some menus are just annoying because they disappear mid mouse move, some are extremely hard to use because of several layers of menus, some I have resorted to using `tabs` to get to the correct menu item.  It&#8217;s unfortunate that people can&#8217;t get this right.<br />
<span id="more-53"></span><br />
I have a simple fix that hopefully sharing it will help others.  It&#8217;s basically a menu that buffers the time you are hovering, that way if you mistakenly move your mouse into the wrong area, you have a brief period of time to correct yourself.</p>
<h2>Start with the HTML code:</h2>
<pre class="brush: xml;">
&lt;ul id=&quot;menu&quot;&gt;
	&lt;li class=&quot;nav&quot;&gt;&lt;a&gt;&lt;span&gt;ONE&lt;/span&gt;&lt;/a&gt;
	&lt;ul&gt;
		&lt;li&gt;&lt;a&gt;&lt;span&gt;one&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a&gt;&lt;span&gt;two&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a&gt;&lt;span&gt;three&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a&gt;&lt;span&gt;four&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;a&gt;&lt;span&gt;TWO&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li class=&quot;nav&quot;&gt;&lt;a&gt;&lt;span&gt;THREE&lt;/span&gt;&lt;/a&gt;
	&lt;ul&gt;
		&lt;li&gt;&lt;a&gt;&lt;span&gt;one&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a&gt;&lt;span&gt;two&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a&gt;&lt;span&gt;three&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a&gt;&lt;span&gt;four&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li class=&quot;nav&quot;&gt;&lt;a&gt;&lt;span&gt;FOUR&lt;/span&gt;&lt;/a&gt;
	&lt;ul&gt;
		&lt;li&gt;&lt;a&gt;&lt;span&gt;one&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a&gt;&lt;span&gt;two&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a&gt;&lt;span&gt;three&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a&gt;&lt;span&gt;four&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;
</pre>
<p>The menu is a simple list within a list.  There are essentially only four main list items; ONE, TWO, THREE and FOUR.  Each of this list items has their own list of list items generically named one, two, three and four.  I personally stick with lists as my menu&#8217;s of choice because they degrade gracefully in case of CSS/JavaScript issues.</p>
<p>This list by itself isn&#8217;t much, in fact it&#8217;s not even a menu. CSS will be needed to really make it work correctly.</p>
<pre class="brush: css;">

#menu li {
	list-style:none;
	float:right; /* Makes IE 6,7,8 act like FF */
	position: relative;}
#menu li a {
	display:block;
	width: 160px;
	height:35px;
	margin-top: 5px;}
#menu li a span{
	padding-left:10px;
	line-height:2.8em;
	color: #000000;
	font-weight:700;}
#menu li a:hover {
	font-weight:bold;}

#menu li ul li a:hover span{ color: #222222; }

	#menu li ul {
		margin:0px;
		position:absolute;
		left: 160px;
		top:-90px;}
	#menu li ul li {
		padding:0px;
		border:0px;
		border-collapse:collapse;
		margin:0px;
		height:34px;}
	#menu li ul li a{ margin:0px;padding:0px;border:0px;}
	#menu li ul li a span{
		display:block;
		padding-top:7px;
		font-weight:100;
		line-height:1em;
		font-size: 83%;}
</pre>
<p>This is some simple CSS that will make the UL/LI lists to really act like lists.  Now the only issue is that you need it to act like a list. So the final piece of code to this puzzle is to add some JavaScript.  I am using the jQuery library as my choice for creating this script, so it&#8217;s necessary to have that package (1.3+) installed for this to work. You can drop this script into the footer element inside of &#8216;script&#8217; tags so it will run.  It will run automatically on page load.</p>
<pre class="brush: jscript;">
$(document).ready(function() {
	/* Setup the Menu */
	$(&quot;#menu &gt; li &gt; ul&quot;).hide();

	$(&quot;#menu li.nav&quot;).hover(
		/* on mouseover */
		function(e) {
			hoverMenu = this;
			if(this == closingMenu) {
				clearTimeout(closeMenu);
				clearTimeout(openMenu);
				$(this).find(&quot;ul:first&quot;).show(&quot;fast&quot;);
			} else {
				var newMenuOpen = function() {
					$(hoverMenu).siblings(&quot;.nav&quot;).find(&quot;ul:first&quot;).hide();
					$(hoverMenu).find(&quot;ul:first&quot;).show(&quot;fast&quot;);
				}
				openMenu = setTimeout(newMenuOpen, 500);
			}

		},
		/* on mouseout */
		function(e) {
			closingMenu = this;
			var closeMenu = function() {
				$(closingMenu).find(&quot;ul:first&quot;).fadeOut(&quot;fast&quot;);
			}
			closeMenu = setTimeout(closeMenu, 500);
		}
	);
});
</pre>
<p> The final product is quite a nice and simple dynamic menu that adds just the right touch of usability.  Now, typically, I would never say that a menu with sub menus popping up everywhere is something of a usability menu system, it&#8217;s not.  But sometimes, a nice menu like this is needed, especially if there is a lot of information and &#8216;drill downs&#8217; that need to be accessed quickly.  In any case, you can see my <a href="http://www.geedew.com/projects/easyMenu/index.html">demo</a> here.  Leave some comments if you have any questions, and enjoy! You can also see a fully implemented version at <a href="http://x-sqared.com">Xcessorries Squared.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.geedew.com/2009/12/05/usability-and-a-simple-javascript-hovering-menu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scribd and Slide mode : Why is my height wrong?</title>
		<link>http://www.geedew.com/2009/07/29/scribd-and-slide-mode-why-is-my-height-wrong/</link>
		<comments>http://www.geedew.com/2009/07/29/scribd-and-slide-mode-why-is-my-height-wrong/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 05:06:02 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Scribd]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[BugFix]]></category>

		<guid isPermaLink="false">http://www.geedew.com/?p=106</guid>
		<description><![CDATA[While recently using Scribd&#8216;s services, I came across a very nasty bug, and a nice clean fix.  Scribd allows developers to tap into a great, but somewhat basic API.  One of these settings allows a developer to set a default &#8216;mode&#8217; before the API then builds the flash calls necessary to display the document.  The [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=b02858dd9961de60a8a7d0f9efe9c758&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=20 height=20/><p>While recently using <a href="http://www.scribd.com/about">Scribd</a>&#8216;s services, I came across a very nasty bug, and a nice clean fix.  <a href="http://www.scribd.com/about">Scribd</a> allows developers to tap into a great, but somewhat basic <a href="http://www.scribd.com/developers/api?method_name=Javascript+API">API</a>.  One of these settings allows a developer to set a default &#8216;mode&#8217; before the <a href="http://www.scribd.com/developers/api?method_name=Javascript+API">API</a> then builds the flash calls necessary to display the document.  The issue comes up when you choose the &#8216;slide&#8217; mode as the loading view.  No matter what &#8216;height&#8217; you set, with &#8216;auto_size&#8217; set to false, the height will adjust to the wrong height.</p>
<p><span id="more-106"></span></p>
<p class="entry-text">
You can jump to the code <a href="#finishedCode">here</a>, or continue.</p>
<p class="entry-text">
I started by writing some simple code that follows the API.
</p>
<pre class="brush: jscript;">
scribd_doc.addParam( 'mode', 'slide' );
scribd_doc.addParam( 'height', 800 );
scribd_doc.addParam( 'width', 600 );
scribd_doc.addParam( 'jsapi_version', 1 );
scribd_doc.addParam( 'auto_size', false );
scribd_doc.write( 'flash_catalog' );
</pre>
<p class="entry-text">Where &#8216;flash_catalog&#8217; is the container div of the <a href="http://www.scribd.com/about">Scribd</a> PDF.</p>
<p class="entry-text">
This however led me to have a height that follows the default rules (width multiplier of 85/110) where the height matches how much space is in the window. So I progressed further with this code.</p>
<pre class="brush: jscript;">
var oniPaperReady = function(e){
 $(&quot;#flash_catalog embed&quot;)
.attr(&quot;wmode&quot;,&quot;transparent&quot;)
.hide()
.css({&quot;height&quot;:&quot;800px&quot;, &quot;width&quot;:&quot;600px&quot;})
.show();
}

scribd_doc.addEventListener( 'iPaperReady', oniPaperReady );
scribd_doc.addParam( 'mode', 'slide' );
scribd_doc.addParam( 'jsapi_version', 1 );
scribd_doc.addParam( 'auto_size', false );
scribd_doc.write( 'flash_catalog' );
</pre>
<p class="entry-text">So now I am dropping in a listener in the API to wait for the document to load.  I then hide the &#8216;embed&#8217; flash information, then add the height and width, then re-show the flash element.<?p></p>
<p class="entry-text">
You may notice, I&#8217;m using <a href="http://jquery.com/">jQuery</a>, in which you can do the same thing with regular JavaScript, although quite a bit more complicated (ask if you really really need that code).</p>
<p class="entry-text">
An astute reader would also notice one thing, I&#8217;m not adjusting for an &#8216;object&#8217; tag, only the &#8216;embed&#8217; tag (the difference for flash between different browsers).  I figured out this novice mistake while testing in Internet Explorer.  Here&#8217;s the finished code, that works, removing the nasty height issue.</p>
<div id="finishedCode">
<pre class="brush: jscript;">
var scribd_doc = scribd.Document.getDoc( #######, 'key-*******************' );

var oniPaperReady = function(e){
$(&quot;#flash_catalog embed&quot;)
.attr(&quot;wmode&quot;,&quot;transparent&quot;)
.hide()
.css({&quot;height&quot;:&quot;800px&quot;, &quot;width&quot;:&quot;600px&quot;})
.show();

$(&quot;#flash_catalog object&quot;)
.attr(&quot;wmode&quot;,&quot;transparent&quot;)
.hide()
.css({&quot;height&quot;:&quot;800px&quot;, &quot;width&quot;:&quot;600px&quot;})
.show();
}

scribd_doc.addEventListener( 'iPaperReady', oniPaperReady );
scribd_doc.addParam( 'mode', 'slide' );
scribd_doc.addParam( 'jsapi_version', 1 );
scribd_doc.addParam( 'auto_size', false );
scribd_doc.write( 'flash_catalog' );
</pre>
</div>
<p class="entry-text">The final word; I&#8217;m adding the transparent mode so that I can then have a menu that drops on top of the flash.  This works very well!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geedew.com/2009/07/29/scribd-and-slide-mode-why-is-my-height-wrong/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery Dialog Shadow Issues.</title>
		<link>http://www.geedew.com/2009/03/01/jquery-dialog-shadow-issues/</link>
		<comments>http://www.geedew.com/2009/03/01/jquery-dialog-shadow-issues/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 07:12:20 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://geedew.com/?p=30</guid>
		<description><![CDATA[While working on a dialog in the new jQuery UI 1.6rc6.  I have come accross an issue. If you were to open a dialog, and then dynamically change the content in the dialog, the shadow border will not resize.  The problem is, the code does not &#8216;know&#8217; the box is larger, and is not able [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=b02858dd9961de60a8a7d0f9efe9c758&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=20 height=20/><p>While working on a dialog in the new jQuery UI 1.6rc6.  I have come accross an issue.</p>
<p>If you were to open a dialog, and then dynamically change the content in the dialog, the shadow border will not resize.  The problem is, the code does not &#8216;know&#8217; the box is larger, and is not able to watch for the changes.   Their have been some solutions that I have found to solve this, like turning off shadows, etc.  But I think I have a better one, a 3-line solution so to speak<br />
Go into your code, mine is in my jquery-ui-personalized-1.6rc6.js file&#8230; Also could be in ui.dialog.js etc.</p>
<p>Inside the code (mine is line 4218) after this function</p>
<pre class="brush: plain;">

$.widget(&quot;ui.dialog&quot;, {

_init: function() {
</pre>
<p>add this function</p>
<pre class="brush: plain;">

refresh: function() {
this._refreshShadow(1);
},
</pre>
<p>Then from within your code you can call something like this&#8230;</p>
<pre class="brush: plain;">$(&quot;#dialogbox&quot;).dialog(&quot;refresh&quot;);</pre>
<p>Check for updates, I may write a drop-in style patch so the coding isn&#8217;t necessary.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geedew.com/2009/03/01/jquery-dialog-shadow-issues/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing my new projects site, all dorks!</title>
		<link>http://www.geedew.com/2009/02/02/introducing-my-new-projects-site-all-dorks/</link>
		<comments>http://www.geedew.com/2009/02/02/introducing-my-new-projects-site-all-dorks/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 03:35:15 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://geedew.com/?p=29</guid>
		<description><![CDATA[As I start to push more bloggin on my end (Yes, 8 hours of work a day and 3 hours of school at night, two dogs and a lovely wife are just not enough for me to handle),  I am branching out to a site I have had for a while that I haven&#8217;t really [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=b02858dd9961de60a8a7d0f9efe9c758&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=20 height=20/><p>As I start to push more bloggin on my end (Yes, 8 hours of work a day and 3 hours of school at night, two dogs and a lovely wife are just not enough for me to handle),  I am branching out to a site I have had for a while that I haven&#8217;t really done much on.</p>
<p>The goal of the site is to host all of the ideas that I have in my head and that will in the end help motivate me to get them done and worked on&#8230; if individuals decide to comment on them <img src='http://cdn.geedew.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   I will attempt, at my best, to keep the projects code clean and easy to follow, along with good documentation.</p>
<p>A few may be very helpful to some (jCritic, jSave, jSuite) so as I get them done, I will defitely get them on there with working demos etc.</p>
<p>In the end, enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geedew.com/2009/02/02/introducing-my-new-projects-site-all-dorks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript / PHP  &#8211; Source Documentor for JavaScript</title>
		<link>http://www.geedew.com/2009/01/01/javascript-php-source-documentor-for-javascript/</link>
		<comments>http://www.geedew.com/2009/01/01/javascript-php-source-documentor-for-javascript/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 17:58:28 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[javascipt]]></category>

		<guid isPermaLink="false">http://geedew.com/?p=26</guid>
		<description><![CDATA[I&#8217;ve begun putting together an idea for a PHP program that will document JavaScript.  In the general sense, it will need to have a good lexical analyzer because it need to understand the syntax and the buildup and creation of the functions and classes.   I&#8217;m going to outline some goals that are needed for me [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=b02858dd9961de60a8a7d0f9efe9c758&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=20 height=20/><p>I&#8217;ve begun putting together an idea for a PHP program that will document JavaScript.  In the general sense, it will need to have a good lexical analyzer because it need to understand the syntax and the buildup and creation of the functions and classes.   I&#8217;m going to outline some goals that are needed for me to use a program like this.</p>
<p>Requirements</p>
<ol>
<li>Must be autonomous</li>
<li>Must be able to Add/Edit Comments, without having to directly change the source files</li>
<li>Must contain revision controls</li>
<li>Display of the output must be adaptable easily</li>
<li>Must contain an API to access from &#8220;afar&#8221;</li>
</ol>
<p>With those five initial setups, I think I will start to build some thought expirements to figure out exactly what I am talking about.  Should I implement SVN into it?  ScriptDoc formats?  JavaScript engine for analyzing?  Lots of different things.</p>
<p>Come back to this post for more info later.  I&#8217;m going to search out other programs that implement some of these things to figure out if there are any.</p>
<p>Help appreciated <img src='http://cdn.geedew.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.geedew.com/2009/01/01/javascript-php-source-documentor-for-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First Looks: Yahoo! Search Monkey</title>
		<link>http://www.geedew.com/2008/05/12/first-looks-yahoo-search-monkey/</link>
		<comments>http://www.geedew.com/2008/05/12/first-looks-yahoo-search-monkey/#comments</comments>
		<pubDate>Mon, 12 May 2008 11:57:05 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Yahoo!]]></category>

		<guid isPermaLink="false">http://geedew.com/wp-content/uploads/2008/05/12/first-looks-yahoo-search-monkey/</guid>
		<description><![CDATA[So the other day I was invited to try out Yahoo! Search Monkey.  If you haven&#8217;t heard yet, the Yahoo! Develepors Team is looking to set Yahoo! at the cutting edge of the current level of Internet Develepment.  They have realeased a preview (think private beta) testing of SearchMonkey which is the first step to [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=b02858dd9961de60a8a7d0f9efe9c758&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=20 height=20/><p>So the other day I was invited to try out Yahoo! Search Monkey.  If you haven&#8217;t heard yet, the <a title="Yahoo! Develepor Team" href="http://developer.yahoo.com/" target="_blank" title="Yahoo! Develepor Team">Yahoo! Develepors Team</a> is looking to set Yahoo! at the cutting edge of the current level of Internet Develepment.  They have realeased a preview (think private beta) testing of SearchMonkey which is the first step to making Yahoo! entirely Web 3.0 (buzzword: sharing social information accross websites, using the internet as a development platform itself).</p>
<p>After loggin in you are given three categories to get started with.  Presentation Applications, Custom Data Services, and Data Feeds.  The first is pretty much defining what you want th individual to see when they run a search using your application.  You can pull from up to 10 URL&#8217;s after defining what information you are looking to grab.  The second, Custom Data Services, is where you are able to construct your own search engine&#8217;ish data path.  You can strip data from pages themselves (think wikipedia) or grab from an API (think facebook).  The last is mainly used for grabbing from RSS feeds and the like.</p>
<p>More to come as I get developing.  I will keep you up to date!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geedew.com/2008/05/12/first-looks-yahoo-search-monkey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating the Ultimate Mobile Developer Computer: Lenovo X61</title>
		<link>http://www.geedew.com/2008/01/01/creating-the-ultimate-mobile-developer-computer-lenovo-x61/</link>
		<comments>http://www.geedew.com/2008/01/01/creating-the-ultimate-mobile-developer-computer-lenovo-x61/#comments</comments>
		<pubDate>Wed, 02 Jan 2008 03:47:04 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[lenovo]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[x61]]></category>

		<guid isPermaLink="false">http://geedew.com/2008/01/14/creating-the-ultimate-mobile-developer-computer-lenovo-x61/</guid>
		<description><![CDATA[As a developer, I long for two things that rarely ever come together well. This Christmas, I have been able to do just that, and I love it! I am always on the lookout for something that will give me the power of a desktop, but the mobility and function of a tablet computer. Three [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=b02858dd9961de60a8a7d0f9efe9c758&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=20 height=20/><p>  As a developer, I long for two things that rarely ever come together well.  This Christmas, I have been able to do just that, and I love it!  I am always on the lookout for something that will give me the power of a desktop, but the mobility and function of a tablet computer.  Three years ago I had bought a Toshiba m205, which some may know, was one of the first tablet computers to really make a mark on the market.  I really enjoyed it, as it was very nice, but it was quickly outdone by the market.  It really couldn&#8217;t run Vista, and XP Tablet version has never been developed enough to get the full potential from a tablet computer.</p>
<p>IBM has outdone themselves with the x61.  The x61 came out about a half a year ago, and this Christmas they had a one week deal that dropped the price down by nearly 50% of the overall Cost.  I jumped at the prospect, even though I had decided to wait another 6 months to replace my aging Toshiba.  Let me Introduce you to my new computer.</p>
<p><strong>Lenovo X61</strong></p>
<ul>
<li> Dual Core Centrino Pro 1.8Ghz with 4Mb Cache</li>
<li>3Gb 533Mhz DDRII Ram (Max 4Gb)</li>
<li>100Gb 7200rpm Hard Drive with 1Gb Cache for speed boost</li>
<li>Multi-Touch Monitor (Touchscreen and Stylus)</li>
<li>Multi-View Monitor (Indoor and Outdoor &#8211; full sunlight does not affect viewing enjoyment. ** Max resolution is only 1024 x 768)</li>
<li>Tablet Mode (monitor swings around and lays flat)</li>
<li>Vista Business</li>
<li>Intel 965 Integrated Video with 128Mb dedicated memory</li>
<li>3 usb 2.0, Gigabit Lan, Wifi A/B/G/N, SD reader, PCMCIA slot, 1394 Firewire, VGA out, onboard Mic.</li>
<li>4-Cell Battery (8-Cell available) @ 2.5 hours of power</li>
</ul>
<p>So as you can see, this thing flies!  It&#8217;s a tablet computer that weighs a mere 3.77 lbs with the battery in.</p>
<p>Now to the good stuff, what this is intended to do.</p>
<p>First thing I did was install VMware Workstation 6.  This is a virtualization software that will allow me to do what&#8217;s next in the list.</p>
<p>Next I downloaded Ubuntu Gutsy 7.10 in live cd Iso format. Then mounted the ISO as a virtual CD drive.  Fired up VMware and created a new virtual computer, which was subsequently loaded with Ubuntu.</p>
<p>While in Ubuntu, I then installed Quanta+, Apache, PHP5.2, MySql5, RapidSVN.</p>
<p>Quanta has quickly become my chosen editor when it comes to developing.  It&#8217;s fast, sublime, pretty and full of features, including auto finishing words you are typing based on a history of the words you have typed.  The rest of the LAMP install is too long and also reproduced many times over (check out the forums on http://forums.ubuntu.com for more details if you are interested in this) to repeat here for the 10 Millionth time.</p>
<p>While VMWare is running the Ubuntu machine, that I dedicated 512Mb Ram to, I started network installing Microsoft Office.  I really really enjoy using OneNote, which is one of the greatest Tablet Tools that is out there.</p>
<p>After that was all said an done, I know have a mobile computer that packs a serious punch.  I am running Vista using OneNote to take notes, Internet Explorer 7, Firefox, Safari and Opera to test web pages, virtualized Ubuntu Gutsy running my editor and Webserver, so no matter where I happen to be, I can easily program and test via a single powerful machine.</p>
<p>Such an amazing combination, I am sure many of you also would consider the same.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geedew.com/2008/01/01/creating-the-ultimate-mobile-developer-computer-lenovo-x61/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To: Converting PDF to Word and HTML</title>
		<link>http://www.geedew.com/2007/12/23/how-to-converting-pdf-to-word-and-html/</link>
		<comments>http://www.geedew.com/2007/12/23/how-to-converting-pdf-to-word-and-html/#comments</comments>
		<pubDate>Sun, 23 Dec 2007 08:36:38 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[How-To]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Microsoft Office]]></category>
		<category><![CDATA[OpenOffice]]></category>
		<category><![CDATA[PDF]]></category>

		<guid isPermaLink="false">http://geedew.com/wp-content/uploads/2007/12/23/how-to-converting-pdf-to-word-and-html/</guid>
		<description><![CDATA[Sites need to be able to interact in one single, universal space. -Tim Berners-Lee I started this little project because I have a client whom needs to get his 24 page PDF online. The problem is that a 24 page PDF with all the bells and whistles ends up being over 5mb in size. This [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=b02858dd9961de60a8a7d0f9efe9c758&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=20 height=20/><p align="center"><span style="size: 12px; font-weight: 400; color: #000000; font-family: calibri,veranda">Sites need to be able to interact in one single, universal space.</span></p>
<p align="right"><span style="size: 14px; font-weight: bold; color: #000000; font-family: calibri,veranda">-Tim Berners-Lee</span></p>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda">I started this little project because I have a client whom needs to get his 24 page PDF online.  The problem is that a 24 page PDF with all the bells and whistles</span></p>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda">ends up being over 5mb in size.  This causes issues for people running sub-cable internet connections, as the loading time becomes horrendous.  So to solve the problem, I am going to run the PDF as a download by choice and have all the links point to the HTML(Hyper-Text Markup Language: what webpages are written in) converted page when they click on what page they want to see.  This does however cause problems if something is updated on the PDF, the HTML is not dynamic or binded to the PDF so and update will p align=&#8221;left&#8221;&gt;     <span style="size: 12px; color: #000000; font-family: calibri,veranda">have to occur in both places.  The only way around that is to have the HTML being the origionating source and have the &#8216;download as pdf&#8217; link be  a call to a server side script that packages the HTML as a PDF. That however is too much for what this client needs and the issues with the updating will have to be taken in stride. </span></span></p>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda"> </span></p>
<blockquote>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda"><strong>Tools Needed</strong>:<br />
RTF or DOC reader (I prefer OpenOffice2.2) that can convert to HTML<br />
A Program designed to convert PDF to DOC format (I used Able2dDoc, licensed)</span></p>
</blockquote>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda">Unfortunately, In my case, the PDF contained a large amount of tables that were made up by images after conversion. Because of this, I had to handle things a little bit different, in which I will explain later.</span></p>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda"><br />
<strong>First things first, lets convert to HTML</strong></span></p>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda"> Using the software I used, Able2Doc, if you load up the PDF you can simply convert the file to a DOC format.  Notice, not many converters will go straight from PDF to DOC or RTF formats. Once you are able to convert the PDF to DOC or RTF, you can then open up that file into Microsoft Office or Open Office.  Both have the ability to Open up these files and then Export them as HTML.</span></p>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda"><strong>Microsoft Offices&#8217; way of doing things</strong></span></p>
<p style="text-align: left;"><span style="size: 12px; color: #000000; font-family: calibri,veranda">Office is really simple. Take the document you are in and go to File-&gt;Save As-&gt;Other</span></p>
<p>
<span style="size: 12px; color: #000000; font-family: calibri,veranda"> </span><a title="PDF to HTML Save as" href="http://geedew.com/blog/wp-content/uploads/2007/12/pdftohtml-word-saveas.png"><img style="border: 1px solid black;" src="http://geedew.com/blog/wp-content/uploads/2007/12/pdftohtml-word-saveas.png" alt="PDF to HTML Save as" width="500" height="300" /></a><br />
</p>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda"> Then after that you can go click and change the type to an HTML Document&#8230; put in the name and your done!</span></p>
<p></p>
<p align="left"><a title="PDF to HTML Save as HTML" href="http://geedew.com/blog/wp-content/uploads/2007/12/pdftohtml-word-saveas-html.png"><img style="border: 1px solid black;" src="http://geedew.com/blog/wp-content/uploads/2007/12/pdftohtml-word-saveas-html.png" alt="PDF to HTML Save as HTML" width="500" height="300" /></a></p>
<p></p>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda"><strong>Open Offices&#8217; way of doing things<br />
</strong>In Open Office, it is actually easier! Just have your document open and then go to File -&gt;Save As and you can then select the HTML from the drop down list.  No extra step as there is in Word.</span></p>
<p align="left"> </p>
<p align="left"> </p>
<p align="left"><a title="PDF to HTML OO" href="http://geedew.com/blog/wp-content/uploads/2007/12/pdftohtml-oo2-saveas-html.png"><img style="border: 1px solid black;" src="http://geedew.com/blog/wp-content/uploads/2007/12/pdftohtml-oo2-saveas-html.png" alt="PDF to HTML OO" width="500" height="300" /></a></p>
<p></p>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda"><br />
<strong>When things get messy&#8230;<br />
</strong>You have to start to get creative. I know, it stinks, when things just don&#8217;t go your way.  I mentioned earlier that I my specific issue just could not be settled by this process only because the images in the PDF were making up the tables and the text did not stick inside the image/tables when changed to HTML.  I ended having to go with a slightly altered reality, but the end result to the user is near the same.</span></p>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda">The idea that I had was to split the PDF into images. This was actually really easy to do.  I swapped over to linux for this part (Ubuntu Gutsy).  The PDF Reader program has the ability to output to JPG for your PDF&#8217;s.  This came in very handy, I simply outputted the PDF I was using, 28 pages of it, as JPG&#8217;s and then used to Javascript to make a nice little  setup for Checking out the picutres.</span></p>
<blockquote>
<h5><span style="font-family: calibri; ">Javascript Code In the &lt;body&gt; tags :</span><br />
<span style="color: #888888;"><span style="font-weight: normal;">&lt;script&gt; function PageQuery(q) {if(q.length &gt; 1) this.q = q.substring(1, q.length);else this.q = null;<br />
this.keyValuePairs = new Array();<br />
if(q) {<br />
for(var i=0; i &lt; this.q.split(&#8220;&amp;&#8221;).length; i++) {<br />
this.keyValuePairs[i] = this.q.split(&#8220;&amp;&#8221;)[i];<br />
}<br />
}<br />
this.getKeyValuePairs = function() { return this.keyValuePairs; }<br />
this.getValue = function(s) {<br />
for(var j=0; j &lt; this.keyValuePairs.length; j++) {<br />
if(this.keyValuePairs[j].split(&#8220;=&#8221;)[0] == s)<br />
return this.keyValuePairs[j].split(&#8220;=&#8221;)[1];<br />
}<br />
return false;<br />
}<br />
this.getParameters = function() {<br />
var a = new Array(this.getLength());<br />
for(var j=0; j &lt; this.keyValuePairs.length; j++) {<br />
a[j] = this.keyValuePairs[j].split(&#8220;=&#8221;)[0];<br />
}<br />
return a;<br />
}<br />
this.getLength = function() { return this.keyValuePairs.length; }<br />
}<br />
function queryString(key){<br />
var page = new PageQuery(window.location.search);<br />
return unescape(page.getValue(key));<br />
}<br />
function displayItem(key){<br />
if(queryString(key)==&#8217;false&#8217;)<br />
{<br />
return &#8217;1&#8242;;<br />
}else{<br />
return queryString(key);<br />
}<br />
}<br />
&lt;/script&gt;</span></span></h5>
</blockquote>
<p><script type="text/javascript"><!--
 function PageQuery(q) {if(q.length > 1) this.q = q.substring(1, q.length);else this.q = null;
this.keyValuePairs = new Array();
if(q) {
for(var i=0; i < this.q.split("&#038;").length; i++) {
this.keyValuePairs[i] = this.q.split("&#038;")[i];
}
}
this.getKeyValuePairs = function() { return this.keyValuePairs; }
this.getValue = function(s) {
for(var j=0; j < this.keyValuePairs.length; j++) {
if(this.keyValuePairs[j].split("=")[0] == s)
return this.keyValuePairs[j].split("=")[1];
}
return false;
}
this.getParameters = function() {
var a = new Array(this.getLength());
for(var j=0; j < this.keyValuePairs.length; j++) {
a[j] = this.keyValuePairs[j].split("=")[0];
}
return a;
}
this.getLength = function() { return this.keyValuePairs.length; }
}
function queryString(key){
var page = new PageQuery(window.location.search);
return unescape(page.getValue(key));
}
function displayItem(key){
if(queryString(key)=='false')
{
return '1';
}else{
return queryString(key);
}
}
// --></script></p>
<p><span style="size: 12px; color: #000000; font-family: calibri,veranda"><strong>What else?<br />
</strong></span></p>
<p><span style="size: 12px; color: #000000; font-family: calibri,veranda"><strong> </strong>Once this code is in place, you can see what it is trying to do.  You are basically parsing a query address URL and looking for the specific information showing on whatever variable you pass in.  This is giving your JavaScript the ability to know what a variable is from a JavaScript /PHP equivalent to the Get variables.</span><span style="size: 12px; color: #000000; font-family: calibri,veranda"><strong><br />
</strong></span></p>
<p><span style="size: 12px; color: #000000; font-family: calibri,veranda"><strong> </strong>Now you need the code that will change values of a select box, so the complete picture will come into view.</span></p>
<p><!--</p-->
<p><span style="size: 12px; color: #000000; font-family: calibri,veranda">The idea that I had was to split the PDF into images. This was actually really easy to do. I swapped over to Linux for this part (Ubuntu Gutsy). The PDF Reader program has the ability to output to JPG for your PDF&#8217;s. This came in very handy, I simply outputted the PDF I was using, 28 pages of it, as JPG&#8217;s and then used to JavaScript to make a nice little setup for Checking out the pictures.</span></p>
<blockquote>
<h5><span style="font-weight: normal;"><span style="color: #888888;">&lt;</span></span><span style="font-weight: normal;"><span style="color: #888888;">SCRIPT LANGUAGE=&#8221;JavaScript&#8221;&gt;<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> function loadPage(value) {<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;">if(value == &#8220;&#8221;) {<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> document.getElementById(&#8216;mainimage&#8217;).src=&#8221;img/ProductCatalog/Page1.jpg&#8221;;<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> } else {<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> document.getElementById(&#8216;mainimage&#8217;).src=&#8221;img/ProductCatalog/Page&#8221; + displayItem(&#8216;p&#8217;) +&#8221;.jpg&#8221;;<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> }<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> }<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> function changeImage()<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;">{<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> document.getElementById(&#8216;mainimage&#8217;).src = document.getElementById(&#8216;list&#8217;).options[document.getElementById('list').selectedIndex].value;<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> }<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;">function prevImage()<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> {<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> if(document.getElementById(&#8216;list&#8217;).selectedIndex == 0)<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> {<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> document.getElementById(&#8216;list&#8217;).selectedIndex = document.getElementById(&#8216;list&#8217;).options.length-1;<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> }<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> else<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> {<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> document.getElementById(&#8216;list&#8217;).selectedIndex&#8211;;<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> }<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> changeImage();<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> }<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;">function nextImage()<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> {<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> if(document.getElementById(&#8216;list&#8217;).selectedIndex == document.getElementById(&#8216;list&#8217;).options.length-1)<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> {<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> document.getElementById(&#8216;list&#8217;).selectedIndex = 0;<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> }<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> else<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> {<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> document.getElementById(&#8216;list&#8217;).selectedIndex++;<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> }<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> changeImage();<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;">}<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;">&lt;/script&gt;</span></span></h5>
</blockquote>
<p><span style="font-family: calibri;">That was pretty much what the JavaScript needed, and then I could handle everything else from HTML which made things much easier.  All that is said and done, any Q&#8217;s just ask.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.geedew.com/2007/12/23/how-to-converting-pdf-to-word-and-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
