<?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>dom111.co.uk &#187; database</title>
	<atom:link href="http://www.dom111.co.uk/blog/tag/database/feed" rel="self" type="application/rss+xml" />
	<link>http://www.dom111.co.uk/blog</link>
	<description>Move along. Nothing to see here.</description>
	<lastBuildDate>Wed, 14 Jul 2010 19:30:31 +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>Webkit (Safari) &#8211; Speed Dial bookmarklet</title>
		<link>http://www.dom111.co.uk/blog/coding/webkit-speed-dial-bookmarklet/59</link>
		<comments>http://www.dom111.co.uk/blog/coding/webkit-speed-dial-bookmarklet/59#comments</comments>
		<pubDate>Tue, 13 Jan 2009 17:42:13 +0000</pubDate>
		<dc:creator>dom111</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[WebKit]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[speed dial]]></category>

		<guid isPermaLink="false">http://www.dom111.co.uk/blog/?p=59</guid>
		<description><![CDATA[Since chrome (well I know opera did it way back when&#8230; but anyway) the speed dial feature of a browser has become very popular and I thought that since bookmarklets are cool and webkit has a database engine, surely these ideas could all be combined, so I&#8217;ve built a simple speed dial page written totally [...]]]></description>
			<content:encoded><![CDATA[<p>Since chrome (well I know opera did it way back when&#8230; but anyway) the speed dial feature of a browser has become very popular and I thought that since bookmarklets are cool and webkit has a database engine, surely these ideas could all be combined, so I&#8217;ve built a simple speed dial page written totally in javascript with webkit&#8217;s SQL engine.</p>
<p>It&#8217;s not super pretty, surely has some bugs (if you load the bookmarklet from anything other than a new tab, you&#8217;ll have no favourites and also it can&#8217;t be your homepage, for some reason), and you need to sign up for a snapcasa.com account (it is free!) for the prettiness, but it&#8217;s mainly proof-of-concept.</p>
<div class="wp-caption alignleft" style="width: 237px"><a href="http://www.dom111.co.uk/files/speedDial/speedDial.png"><img title="speedDial bookmarklet for WebKit" src="http://www.dom111.co.uk/files/speedDial/speedDialThumb.png" alt="speedDial bookmarklet for WebKit" width="227" height="188" /></a><p class="wp-caption-text">speedDial bookmarklet for WebKit</p></div>
<p>To enjoy previews of the sites you&#8217;ve added, you&#8217;ll need to sign up for a free account at <a href="http://snapcasa.com/Register.aspx">http://snapcasa.com/Register.aspx</a> after which you will have to add your IP address (hopefully it&#8217;s static&#8230; sorry if not, but there are other solutions&#8230; <a href="http://www.webresourcesdepot.com/10-free-website-thumbnail-generation-services/">http://www.webresourcesdepot.com/10-free-website-thumbnail-generation-services/</a>)</p>
<p>You can download the package with a YUI compressed copy of the code and a fully expanded version below, or alternatively, you can copy this code, remembering to replace the SNAPCASA_CODE with your own code:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">javascript<span style="color: #339933;">:</span>document.<span style="color: #000066; font-weight: bold;">write</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;html&gt;&lt;head&gt;&lt;title&gt;Speed Dial&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;div id=&quot;body&quot;&gt;&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>window.<span style="color: #660066;">speedDial</span><span style="color: #339933;">=</span><span style="color: #009900;">&#123;</span>rows<span style="color: #339933;">:</span><span style="color: #CC0000;">3</span><span style="color: #339933;">,</span>cols<span style="color: #339933;">:</span><span style="color: #CC0000;">3</span><span style="color: #339933;">,</span>data<span style="color: #339933;">:</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>var body<span style="color: #339933;">=</span>document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;body&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>if<span style="color: #009900;">&#40;</span>window.<span style="color: #660066;">openDatabase</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #003366; font-weight: bold;">var</span> database<span style="color: #339933;">=</span>window.<span style="color: #660066;">openDatabase</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;SpeedDial&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;1.0&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;Speed Dial settings&quot;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">200000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>if<span style="color: #009900;">&#40;</span>database<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #003366; font-weight: bold;">var</span> loadSettings<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>database.<span style="color: #660066;">transaction</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>A<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>A.<span style="color: #660066;">executeSql</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;SELECT rows, cols FROM SpeedDialSettings&quot;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>C<span style="color: #339933;">,</span>B<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> D<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>D<span style="color: #339933;">&lt;</span>B.<span style="color: #660066;">rows</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;++</span>D<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #003366; font-weight: bold;">var</span> E<span style="color: #339933;">=</span>B.<span style="color: #660066;">rows</span>.<span style="color: #000066; font-weight: bold;">item</span><span style="color: #009900;">&#40;</span>D<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>window.<span style="color: #660066;">speedDial</span>.<span style="color: #660066;">rows</span><span style="color: #339933;">=</span>parseInt<span style="color: #009900;">&#40;</span>E.<span style="color: #660066;">rows</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>window.<span style="color: #660066;">speedDial</span>.<span style="color: #660066;">cols</span><span style="color: #339933;">=</span>parseInt<span style="color: #009900;">&#40;</span>E.<span style="color: #660066;">cols</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>B<span style="color: #339933;">,</span>C<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>body.<span style="color: #660066;">innerHTML</span><span style="color: #339933;">=</span>C.<span style="color: #660066;">message</span><span style="color: #339933;">;</span>return<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>var loadData<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>database.<span style="color: #660066;">transaction</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>A<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>A.<span style="color: #660066;">executeSql</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;SELECT * FROM SpeedDialSites&quot;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>C<span style="color: #339933;">,</span>B<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> D<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>D<span style="color: #339933;">&lt;</span>B.<span style="color: #660066;">rows</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;++</span>D<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #003366; font-weight: bold;">var</span> E<span style="color: #339933;">=</span>B.<span style="color: #660066;">rows</span>.<span style="color: #000066; font-weight: bold;">item</span><span style="color: #009900;">&#40;</span>D<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>window.<span style="color: #660066;">speedDial</span>.<span style="color: #660066;">data</span><span style="color: #009900;">&#91;</span>E.<span style="color: #660066;">id</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span>E.<span style="color: #660066;">url</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>B<span style="color: #339933;">,</span>C<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>body.<span style="color: #660066;">innerHTML</span><span style="color: #339933;">=</span>C.<span style="color: #660066;">message</span><span style="color: #339933;">;</span>return<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>var changeSite<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>A<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>database.<span style="color: #660066;">transaction</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>B<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>B.<span style="color: #660066;">executeSql</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;SELECT * FROM SpeedDialSites WHERE id = ?&quot;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#91;</span>A<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>D<span style="color: #339933;">,</span>C<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>C.<span style="color: #660066;">rows</span>.<span style="color: #660066;">length</span><span style="color: #339933;">==</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #003366; font-weight: bold;">var</span> E<span style="color: #339933;">=</span>checkURL<span style="color: #009900;">&#40;</span>window.<span style="color: #000066;">prompt</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Enter the URL for cell &quot;</span><span style="color: #339933;">+</span>A<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>if<span style="color: #009900;">&#40;</span>E<span style="color: #339933;">===</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000066; font-weight: bold;">return</span><span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>E.<span style="color: #660066;">length</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>D.<span style="color: #660066;">executeSql</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;INSERT INTO SpeedDialSites (id, url) VALUES (?, ?)&quot;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#91;</span>A<span style="color: #339933;">,</span>E<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>H<span style="color: #339933;">,</span>G<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>window.<span style="color: #660066;">setTimeout</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>render<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">400</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>G<span style="color: #339933;">,</span>H<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>H.<span style="color: #660066;">message</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</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;">if</span><span style="color: #009900;">&#40;</span>C.<span style="color: #660066;">rows</span>.<span style="color: #660066;">length</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: #003366; font-weight: bold;">var</span> F<span style="color: #339933;">=</span>C.<span style="color: #660066;">rows</span>.<span style="color: #000066; font-weight: bold;">item</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>var E<span style="color: #339933;">=</span>checkURL<span style="color: #009900;">&#40;</span>window.<span style="color: #000066;">prompt</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Enter the URL for cell &quot;</span><span style="color: #339933;">+</span>A<span style="color: #339933;">,</span>F.<span style="color: #660066;">url</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>if<span style="color: #009900;">&#40;</span>E<span style="color: #339933;">===</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000066; font-weight: bold;">return</span><span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>E.<span style="color: #660066;">length</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>D.<span style="color: #660066;">executeSql</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;UPDATE SpeedDialSites SET id = ?, url = ?&quot;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#91;</span>A<span style="color: #339933;">,</span>E<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>H<span style="color: #339933;">,</span>G<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>window.<span style="color: #660066;">setTimeout</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>render<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">400</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>G<span style="color: #339933;">,</span>H<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>H.<span style="color: #660066;">message</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>D.<span style="color: #660066;">executeSql</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;DELETE FROM SpeedDialSites WHERE id = ?&quot;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#91;</span>A<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>H<span style="color: #339933;">,</span>G<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>window.<span style="color: #660066;">setTimeout</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>render<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">400</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>G<span style="color: #339933;">,</span>H<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>H.<span style="color: #660066;">message</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</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;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Too many rows!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>return<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>C<span style="color: #339933;">,</span>D<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Error with SpeedDialSites table&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>return<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>var clearAll<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>database.<span style="color: #660066;">transaction</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>A<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>A.<span style="color: #660066;">executeSql</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;DELETE FROM SpeedDialSites WHERE id &gt; -1&quot;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>C<span style="color: #339933;">,</span>B<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>B<span style="color: #339933;">,</span>C<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>C.<span style="color: #660066;">message</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>window.<span style="color: #660066;">setTimeout</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>render<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">400</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>return <span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>var changeSettings<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: #003366; font-weight: bold;">var</span> A<span style="color: #339933;">=</span>parseInt<span style="color: #009900;">&#40;</span><span style="color: #000066;">prompt</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Please enter the number of rows you require&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>var B<span style="color: #339933;">=</span>parseInt<span style="color: #009900;">&#40;</span><span style="color: #000066;">prompt</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Please enter the number of columns you require&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>database.<span style="color: #660066;">transaction</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>C<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>C.<span style="color: #660066;">executeSql</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;UPDATE SpeedDialSettings SET rows = ?, cols = ? WHERE rows = ? AND cols = ?&quot;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#91;</span>A<span style="color: #339933;">,</span>B<span style="color: #339933;">,</span>window.<span style="color: #660066;">speedDial</span>.<span style="color: #660066;">rows</span><span style="color: #339933;">,</span>window.<span style="color: #660066;">speedDial</span>.<span style="color: #660066;">cols</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>E<span style="color: #339933;">,</span>D<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>D<span style="color: #339933;">,</span>E<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>E.<span style="color: #660066;">message</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>loadSettings<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>window.<span style="color: #660066;">setTimeout</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>render<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">400</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>var checkURL<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>A<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>A<span style="color: #339933;">==</span><span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> A<span style="color: #339933;">!=</span><span style="color: #3366CC;">&quot;string&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000066; font-weight: bold;">return</span><span style="color: #3366CC;">&quot;&quot;</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;">if</span><span style="color: #009900;">&#40;</span>A.<span style="color: #660066;">length</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;">if</span><span style="color: #009900;">&#40;</span>A.<span style="color: #660066;">indexOf</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;http&quot;</span><span style="color: #009900;">&#41;</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;">return</span><span style="color: #3366CC;">&quot;http://&quot;</span><span style="color: #339933;">+</span>A<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;">return</span> A<span style="color: #009900;">&#125;</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;">return</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>database.<span style="color: #660066;">transaction</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>A<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>A.<span style="color: #660066;">executeSql</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;SELECT * FROM SpeedDialSettings&quot;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>C<span style="color: #339933;">,</span>B<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>B.<span style="color: #660066;">rows</span>.<span style="color: #660066;">length</span><span style="color: #339933;">==</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>C.<span style="color: #660066;">executeSql</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;INSERT INTO SpeedDialSettings (rows,cols) VALUES (?, ?)&quot;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">3</span><span style="color: #339933;">,</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</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;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>B<span style="color: #339933;">,</span>C<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>B.<span style="color: #660066;">executeSql</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;CREATE TABLE SpeedDialSettings (rows REAL, cols REAL)&quot;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>E<span style="color: #339933;">,</span>D<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>E.<span style="color: #660066;">executeSql</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;INSERT INTO SpeedDialSettings (rows,cols) VALUES (?, ?)&quot;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">3</span><span style="color: #339933;">,</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>database.<span style="color: #660066;">transaction</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>A<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>A.<span style="color: #660066;">executeSql</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;SELECT COUNT(*) FROM SpeedDialSites&quot;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>C<span style="color: #339933;">,</span>B<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>B<span style="color: #339933;">,</span>C<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>B.<span style="color: #660066;">executeSql</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;CREATE TABLE SpeedDialSites (id REAL UNIQUE, url TEXT)&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>E<span style="color: #339933;">,</span>D<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>var render<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>loadSettings<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>loadData<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>body.<span style="color: #660066;">innerHTML</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>var G<span style="color: #339933;">=</span>document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;table&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>G.<span style="color: #660066;">cellSpacing</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;10px&quot;</span><span style="color: #339933;">;</span>G.<span style="color: #660066;">style</span>.<span style="color: #660066;">width</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;90%&quot;</span><span style="color: #339933;">;</span>G.<span style="color: #660066;">style</span>.<span style="color: #660066;">height</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;90%&quot;</span><span style="color: #339933;">;</span>G.<span style="color: #660066;">style</span>.<span style="color: #660066;">marginTop</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;5%&quot;</span><span style="color: #339933;">;</span>G.<span style="color: #660066;">style</span>.<span style="color: #660066;">marginLeft</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;5%&quot;</span><span style="color: #339933;">;</span>body.<span style="color: #660066;">appendChild</span><span style="color: #009900;">&#40;</span>G<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>for<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> B<span style="color: #339933;">=</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>B<span style="color: #339933;">&lt;=</span>window.<span style="color: #660066;">speedDial</span>.<span style="color: #660066;">rows</span><span style="color: #339933;">;</span>B<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #003366; font-weight: bold;">var</span> I<span style="color: #339933;">=</span>document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;tr&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>G.<span style="color: #660066;">appendChild</span><span style="color: #009900;">&#40;</span>I<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>for<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> A<span style="color: #339933;">=</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>A<span style="color: #339933;">&lt;=</span>window.<span style="color: #660066;">speedDial</span>.<span style="color: #660066;">cols</span><span style="color: #339933;">;</span>A<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #003366; font-weight: bold;">var</span> C<span style="color: #339933;">=</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>B<span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>window.<span style="color: #660066;">speedDial</span>.<span style="color: #660066;">cols</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>A<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>var F<span style="color: #339933;">=</span>document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;td&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>F.<span style="color: #660066;">style</span>.<span style="color: #660066;">color</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;#ccc&quot;</span><span style="color: #339933;">;</span>F.<span style="color: #660066;">style</span>.<span style="color: #660066;">border</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;8px solid #ccc&quot;</span><span style="color: #339933;">;</span>F.<span style="color: #660066;">style</span>.<span style="color: #660066;">textAlign</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;center&quot;</span><span style="color: #339933;">;</span>F.<span style="color: #660066;">style</span>.<span style="color: #660066;">fontFamily</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;Arial&quot;</span><span style="color: #339933;">;</span>F.<span style="color: #660066;">style</span>.<span style="color: #660066;">width</span><span style="color: #339933;">=</span>parseInt<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">100</span><span style="color: #339933;">/</span>window.<span style="color: #660066;">speedDial</span>.<span style="color: #660066;">cols</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;%&quot;</span><span style="color: #339933;">;</span>F.<span style="color: #660066;">style</span>.<span style="color: #660066;">height</span><span style="color: #339933;">=</span>parseInt<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">100</span><span style="color: #339933;">/</span>window.<span style="color: #660066;">speedDial</span>.<span style="color: #660066;">rows</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;%&quot;</span><span style="color: #339933;">;</span>F.<span style="color: #660066;">num</span><span style="color: #339933;">=</span>C<span style="color: #339933;">;</span>F.<span style="color: #660066;">onclick</span><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;">innerHTML</span><span style="color: #339933;">==</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">num</span><span style="color: #339933;">||!</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">url</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>changeSite<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">num</span><span style="color: #009900;">&#41;</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;">if</span><span style="color: #009900;">&#40;</span>event.<span style="color: #660066;">altKey</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>changeSite<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">num</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>window.<span style="color: #660066;">location</span><span style="color: #339933;">=</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">url</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>F.<span style="color: #660066;">onmouseover</span><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;">this</span>.<span style="color: #660066;">style</span>.<span style="color: #660066;">color</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;#999&quot;</span><span style="color: #339933;">;</span>this.<span style="color: #660066;">style</span>.<span style="color: #660066;">border</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;8px solid #999&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>F.<span style="color: #660066;">onmouseout</span><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;">this</span>.<span style="color: #660066;">style</span>.<span style="color: #660066;">color</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;#ccc&quot;</span><span style="color: #339933;">;</span>this.<span style="color: #660066;">style</span>.<span style="color: #660066;">border</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;8px solid #ccc&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>if<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> window.<span style="color: #660066;">speedDial</span>.<span style="color: #660066;">data</span><span style="color: #009900;">&#91;</span>C<span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #3366CC;">&quot;undefined&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>F.<span style="color: #660066;">style</span>.<span style="color: #660066;">color</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;#ccc&quot;</span><span style="color: #339933;">;</span>F.<span style="color: #660066;">style</span>.<span style="color: #660066;">fontSize</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;100px&quot;</span><span style="color: #339933;">;</span>F.<span style="color: #660066;">innerHTML</span><span style="color: #339933;">=</span>C<span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>F.<span style="color: #660066;">url</span><span style="color: #339933;">=</span>window.<span style="color: #660066;">speedDial</span>.<span style="color: #660066;">data</span><span style="color: #009900;">&#91;</span>C<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>F.<span style="color: #660066;">style</span>.<span style="color: #660066;">fontSize</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;15px&quot;</span><span style="color: #339933;">;</span>F.<span style="color: #660066;">innerHTML</span><span style="color: #339933;">=</span><span style="color: #3366CC;">'&lt;img src=&quot;http://snapcasa.com/get.aspx?code=SNAPCASA_CODE&amp;size=l&amp;url='</span><span style="color: #339933;">+</span>F.<span style="color: #660066;">url</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'&quot; alt=&quot;&quot;/&gt;'</span><span style="color: #009900;">&#125;</span>I.<span style="color: #660066;">appendChild</span><span style="color: #009900;">&#40;</span>F<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #003366; font-weight: bold;">var</span> D<span style="color: #339933;">=</span>document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;a&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>D.<span style="color: #660066;">href</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;#&quot;</span><span style="color: #339933;">;</span>D.<span style="color: #660066;">onclick</span><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>clearAll<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>return <span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>D.<span style="color: #660066;">appendChild</span><span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">createTextNode</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Clear&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>var E<span style="color: #339933;">=</span>document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;a&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>E.<span style="color: #660066;">href</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;#&quot;</span><span style="color: #339933;">;</span>E.<span style="color: #660066;">onclick</span><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>changeSettings<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>return <span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>E.<span style="color: #660066;">appendChild</span><span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">createTextNode</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Settings&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>D.<span style="color: #660066;">style</span>.<span style="color: #660066;">color</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;#ccc&quot;</span><span style="color: #339933;">;</span>D.<span style="color: #660066;">style</span>.<span style="color: #660066;">textDecoration</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;none&quot;</span><span style="color: #339933;">;</span>E.<span style="color: #660066;">style</span>.<span style="color: #660066;">color</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;#ccc&quot;</span><span style="color: #339933;">;</span>E.<span style="color: #660066;">style</span>.<span style="color: #660066;">textDecoration</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;none&quot;</span><span style="color: #339933;">;</span>var H<span style="color: #339933;">=</span>document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;p&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>H.<span style="color: #660066;">style</span>.<span style="color: #660066;">fontFamily</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;Arial&quot;</span><span style="color: #339933;">;</span>H.<span style="color: #660066;">style</span>.<span style="color: #660066;">color</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;#ccc&quot;</span><span style="color: #339933;">;</span>H.<span style="color: #660066;">appendChild</span><span style="color: #009900;">&#40;</span>D<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>H.<span style="color: #660066;">appendChild</span><span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">createTextNode</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot; - &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>H.<span style="color: #660066;">appendChild</span><span style="color: #009900;">&#40;</span>E<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>body.<span style="color: #660066;">appendChild</span><span style="color: #009900;">&#40;</span>H<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>loadSettings<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>loadData<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>window.<span style="color: #660066;">setTimeout</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>render<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>body.<span style="color: #660066;">innerHTML</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;Error opening database&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>body.<span style="color: #660066;">innerHTML</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;Error accessing database&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>and paste in directly!</p>
<p><a href="/files/speedDial/speedDial-0.1.tar.gz">Download (3.2KB)</a></p>
<p>As ever, this snippet is under the Creative Commons ShareAlike Attribution license.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dom111.co.uk/blog/coding/webkit-speed-dial-bookmarklet/59/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MySQL backup script</title>
		<link>http://www.dom111.co.uk/blog/coding/mysql-backup-script/30</link>
		<comments>http://www.dom111.co.uk/blog/coding/mysql-backup-script/30#comments</comments>
		<pubDate>Thu, 16 Oct 2008 08:45:30 +0000</pubDate>
		<dc:creator>dom111</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Shell Scripting]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.dom111.co.uk/blog/?p=30</guid>
		<description><![CDATA[I&#8217;ve recently been learning more and more about bash scripting and the cool functions and features that are included, that i&#8217;ll probably never use&#8230; I recently had to set up a cron to backup all MySQL databases but I didn&#8217;t want them in one huge file. So I&#8217;ve written a little script, that is probably [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently been learning more and more about bash scripting and the cool functions and features that are included, that i&#8217;ll probably never use&#8230;</p>
<p>I recently had to set up a cron to backup all MySQL databases but I didn&#8217;t want them in one huge file.</p>
<p>So I&#8217;ve written a little script, that is probably not entirely efficient, but serves it&#8217;s purpose for us:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># get todays date</span>
<span style="color: #007800;">DATE</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">date</span> +<span style="color: #ff0000;">&quot;%F&quot;</span><span style="color: #000000; font-weight: bold;">`</span>;
&nbsp;
<span style="color: #666666; font-style: italic;"># go to the backup directory</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>backup<span style="color: #000000; font-weight: bold;">/</span>mysql
&nbsp;
<span style="color: #666666; font-style: italic;"># export the databases, each to it's own file</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># the first echo is sent to mysql, so we're basically echoing SHOW DATABASES; to mysql</span>
<span style="color: #666666; font-style: italic;"># then we're chopping off the first line (sed 1d) and passing the remaining input to</span>
<span style="color: #666666; font-style: italic;"># xargs which accepts \n or space delimited arguments as a list and echo's out the</span>
<span style="color: #666666; font-style: italic;"># string mysqldump -u &lt;username&gt; -p&lt;password&gt; % &gt; %.sql (replacing % with the name) to</span>
<span style="color: #666666; font-style: italic;"># /bin/bash</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;SHOW DATABASES;&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> mysql <span style="color: #660033;">-u</span> <span style="color: #000000; font-weight: bold;">&lt;</span>username<span style="color: #000000; font-weight: bold;">&gt;</span> -p<span style="color: #000000; font-weight: bold;">&lt;</span>password<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> 1d <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">xargs</span> <span style="color: #660033;">--replace</span>=<span style="color: #000000; font-weight: bold;">%</span> <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;mysqldump -u &lt;username&gt; -p&lt;password&gt; % &gt; %.sql&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">bash</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># compress the backups</span>
<span style="color: #c20cb9; font-weight: bold;">tar</span> czf mysql_backup_<span style="color: #007800;">$DATE</span>.tar.gz <span style="color: #000000; font-weight: bold;">*</span>.sql
&nbsp;
<span style="color: #666666; font-style: italic;"># remove the large .sql files</span>
<span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #000000; font-weight: bold;">*</span>.sql</pre></div></div>

<p>This was tested on a SuSE 11 server, might need some tweaking on other dists.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dom111.co.uk/blog/coding/mysql-backup-script/30/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DB</title>
		<link>http://www.dom111.co.uk/blog/coding/db/8</link>
		<comments>http://www.dom111.co.uk/blog/coding/db/8#comments</comments>
		<pubDate>Wed, 23 Jul 2008 22:50:01 +0000</pubDate>
		<dc:creator>dom111</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[activerecord]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.dom111.co.uk/blog/?p=8</guid>
		<description><![CDATA[Here&#8217;s a little script I&#8217;ve wanted to make for a while, but have only just finally got the motivation to work on. It&#8217;s a lightweight Database wrapper with functions similar to Ruby on Rails&#8217; ActiveRecord. When I discovered the __call() method I wanted to make my own version in PHP, so here it is! It [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a little script I&#8217;ve wanted to make for a while, but have only just finally got the motivation to work on.</p>
<p>It&#8217;s a lightweight Database wrapper with functions similar to Ruby on Rails&#8217; ActiveRecord.</p>
<p>When I discovered the __call() method I wanted to make my own version in PHP, so here it is!</p>
<p>It supports most basic functions, all based on the MySQL set of PHP functions, no other wrapper is required (PEAR etc.). There is not (yet?) any automatic mysql_real_escape_string or anything, although that could easily be added if required, my assumption is you&#8217;ve done that kind of thing already before passing anything to it.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$db</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> DB<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'mysql://username:password@server:port/database'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$people</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">table</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'people'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$companies</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">table</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'companies'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$company</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$company</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">find_by_name_like</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'%test%'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$person</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$people</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">create</span><span style="color: #009900;">&#40;</span>
  <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
    <span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Dom'</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'company_id'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$company</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">id</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'created_date'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Y-m-d H:i:s'</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$id</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$people</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">lastId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$dom</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$people</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">find</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">print</span> <span style="color: #000088;">$person</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">name</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Dom</span>
&nbsp;
<span style="color: #b1b100;">print</span> <span style="color: #000088;">$dom</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">name</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Dom</span>
&nbsp;
<span style="color: #000088;">$dom</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$person</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$new_users</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$person</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">find_by_created_date_before</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Y-m-d H:i:s'</span><span style="color: #339933;">,</span> <span style="color: #990000;">strtotime</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'1 hour ago'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$new_users</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$user</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #666666; font-style: italic;">// loop through all the users with a create date more than 1 hour ago</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$company</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">find</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$user</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">company_id</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">// and delete any that don't have a company associated with them</span>
    <span style="color: #000088;">$people</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">delete</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$user</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">id</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>It&#8217;s only a first draft, so any comments, questions or pointing out any typo&#8217;s in the code, (yeah, there are likely to be a few&#8230;) would be muchly appreciated.</p>
<p>This work is free under the <a href="http://creativecommons.org/licenses/by-sa/2.0/uk/">Creative Commons Share Alike 2.0 license</a>.</p>
<p>Download:</p>
<p><a href="/files/DB/DB_0.1.tar.gz" title="Download DB_01.tar.gz">DB_0.1.tar.gz (4.84Kb)</a></p>
<p>Edit: Think next on my list is TextMate syntax highlighting and maybe the non-default template&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dom111.co.uk/blog/coding/db/8/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
