<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.sqlzoo.net/w/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.sqlzoo.net/w/api.php?action=feedcontributions&amp;user=Andr3w&amp;feedformat=atom</id>
		<title>SQLZOO - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://www.sqlzoo.net/w/api.php?action=feedcontributions&amp;user=Andr3w&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/Special:Contributions/Andr3w"/>
		<updated>2013-05-24T16:32:09Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.20.4</generator>

	<entry>
		<id>http://www.sqlzoo.net/wiki/ALTER</id>
		<title>ALTER</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/ALTER"/>
				<updated>2013-05-09T14:22:09Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: Undo revision 13160 by 180.211.64.153 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;ALTER TABLE&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The table &amp;lt;code&amp;gt;games&amp;lt;/code&amp;gt; shows the year and the city hosting the Olympic Games.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;caption align='center'&amp;gt;games&amp;lt;/caption&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th align='center'&amp;gt;'''yr'''&amp;lt;/th&amp;gt;&amp;lt;th align='center'&amp;gt;'''city'''&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2004&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Athens&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2006&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Turin&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;div class='ht'&amp;gt;&lt;br /&gt;
&amp;lt;div class=params&amp;gt;schema:scott&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang=sql class='tidy'&amp;gt; DROP TABLE games&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=sql class='setup'&amp;gt; CREATE TABLE games(&lt;br /&gt;
  yr INTEGER PRIMARY KEY,&lt;br /&gt;
  city VARCHAR(20));&lt;br /&gt;
INSERT INTO games VALUES (2004,'Athens');&lt;br /&gt;
INSERT INTO games VALUES (2006,'Turin');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The ALTER statement can be used to add a column.&lt;br /&gt;
In this example the column season indicates if the games are winter or summer games. &lt;br /&gt;
&amp;lt;source lang='sql' class='def e-oracle'&amp;gt;&lt;br /&gt;
SELECT * FROM scott.games;&lt;br /&gt;
ALTER TABLE games ADD season VARCHAR(6);&lt;br /&gt;
UPDATE games SET season = 'summer'&lt;br /&gt;
  WHERE yr = 2004;&lt;br /&gt;
UPDATE games SET season = 'winter'&lt;br /&gt;
  WHERE yr = 2006;&lt;br /&gt;
SELECT * FROM scott.games;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT * FROM games;&lt;br /&gt;
ALTER TABLE games ADD season VARCHAR(6);&lt;br /&gt;
UPDATE games SET season = 'summer'&lt;br /&gt;
  WHERE yr = 2004;&lt;br /&gt;
UPDATE games SET season = 'winter'&lt;br /&gt;
  WHERE yr = 2006;&lt;br /&gt;
SELECT * FROM games;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;See also&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[INSERT_.._VALUES |INSERT]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[DROP |DROP]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Languages}}&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/SUM_and_COUNT_Quiz</id>
		<title>SUM and COUNT Quiz</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/SUM_and_COUNT_Quiz"/>
				<updated>2013-05-09T14:14:56Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SUM and COUNT QUIZ&lt;br /&gt;
&amp;lt;div class='ref_section'&amp;gt;&lt;br /&gt;
&amp;lt;table class='db_ref'&amp;gt;&lt;br /&gt;
&amp;lt;caption&amp;gt;bbc&amp;lt;/caption&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;region&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;area&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;population&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;gdp&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Afghanistan&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;South Asia&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;652225&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;26000000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Albania&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;28728&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;3200000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;6656000000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Algeria&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Middle East&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;2400000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;32900000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;75012000000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Andorra&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;468&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;64000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan='5'&amp;gt;...&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;quiz shuffle=none display=simple&amp;gt;&lt;br /&gt;
{Select the statement that shows the sum of population of all countries in 'Europe'&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- SELECT name, population FROM bbc WHERE region = 'Europe'&lt;br /&gt;
- SELECT population FROM bbc WHERE region = 'Europe' SUM BY region&lt;br /&gt;
+ SELECT SUM(population) FROM bbc WHERE region = 'Europe'&lt;br /&gt;
- SELECT SUM(population FROM bbc WHERE region = 'Europe')&lt;br /&gt;
- SUM population FROM bbc WHERE region = 'Europe'&lt;br /&gt;
&lt;br /&gt;
{Select the statement that shows the number of countries with population smaller than 150000&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
+ SELECT COUNT(name) FROM bbc WHERE population &amp;lt; 150000&lt;br /&gt;
- SELECT COUNT(population &amp;lt; 150000) FROM bbc&lt;br /&gt;
- SELECT name FROM bbc WHERE population &amp;lt; 150000&lt;br /&gt;
- SELECT population AS COUNT FROM bbc WHERE population &amp;lt; 150000&lt;br /&gt;
- SELECT SUM() FROM bbc WHERE population &amp;lt; 150000&lt;br /&gt;
&lt;br /&gt;
{Select the full set of SQL aggregate functions&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- AVG(), COUNT(), FIRST(), LAST(), SUM()&lt;br /&gt;
- AVG(), COUNT(), MAX(), MEDIAN(), MIN(), ROUND(), SUM()&lt;br /&gt;
+ AVG(), COUNT(), FIRST(), LAST(), MAX(), MIN(), SUM()&lt;br /&gt;
- AVG(), COUNT(), MAX(), MIN(), SUM()&lt;br /&gt;
- COUNT(), SUM()&lt;br /&gt;
&lt;br /&gt;
{Select the result that would be obtained from the following code:SELECT region, SUM(area) FROM bbc WHERE SUM(area) &amp;gt; 15000000 GROUP BY region&lt;br /&gt;
&amp;lt;table style='float:left'&amp;gt;&amp;lt;caption&amp;gt;Table-A&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;17000000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table style='float:left'&amp;gt;&amp;lt;caption&amp;gt;Table-B&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;17000000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Asia-Pacific&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;23460000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;North America&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;21660000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table style='float:left'&amp;gt;&amp;lt;caption&amp;gt;Table-C&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Asia-Pacific&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;North America&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- Table-A&lt;br /&gt;
- Table-B&lt;br /&gt;
- Table-C&lt;br /&gt;
- No result due to invalid use of the GROUP BY function&lt;br /&gt;
+ No result due to invalid use of the WHERE function&lt;br /&gt;
&lt;br /&gt;
{Select the statement that shows the average population of 'Poland', 'Germany' and 'Denmark'&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- SELECT AVG(population) FROM bbc WHERE name = ('Poland', 'Germany', 'Denmark')&lt;br /&gt;
+ SELECT AVG(population) FROM bbc WHERE name IN ('Poland', 'Germany', 'Denmark')&lt;br /&gt;
- SELECT AVG(population) FROM bbc WHERE name LIKE ('Poland', 'Germany', 'Denmark')&lt;br /&gt;
- SELECT AVG(population) FROM bbc WHERE name LIKE (Poland, Germany, Denmark)&lt;br /&gt;
- SELECT population FROM bbc WHERE name IN ('Poland', 'Germany', 'Denmark')&lt;br /&gt;
&lt;br /&gt;
{Select the statement that shows the medium population density of each region&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- SELECT region, AVG(population/area) AS density FROM bbc&lt;br /&gt;
- SELECT region, COUNT(population)/COUNT(area) AS density FROM bbc GROUP BY region&lt;br /&gt;
- SELECT region, SUM(population)/COUNT(area) AS density FROM bbc GROUP BY region&lt;br /&gt;
- SELECT region, SUM(population)/SUM(area) AS density FROM bbc HAVING region&lt;br /&gt;
+ SELECT region, SUM(population)/SUM(area) AS density FROM bbc GROUP BY region&lt;br /&gt;
&lt;br /&gt;
{Select the statement that shows the name and population density of the country with the largest population&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- SELECT name, density AS population/area FROM bbc WHERE population = MAX(population)&lt;br /&gt;
- SELECT name, density AS population/area FROM bbc WHERE population = (SELECT MAX(population) FROM bbc) &lt;br /&gt;
- SELECT name, MAX (population) FROM bbc WHERE population / (SELECT area FROM bbc) &lt;br /&gt;
+ SELECT name, population/area AS density FROM bbc WHERE population = (SELECT MAX(population) FROM bbc)&lt;br /&gt;
- SELECT name, population/area AS density FROM bbc WHERE population &amp;gt; (SELECT MAX(population) FROM bbc) &lt;br /&gt;
&lt;br /&gt;
{Pick the result that would be obtained from the following code: SELECT region, SUM(area) FROM bbc GROUP BY region HAVING SUM(area)&amp;lt;= 20000000&lt;br /&gt;
&amp;lt;table style='float:left'&amp;gt;&amp;lt;caption&amp;gt;Table-A&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;732240&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;13403102&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;17740392&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;4943771&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table style='float:left'&amp;gt;&amp;lt;caption&amp;gt;Table-B&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;22550927&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Asia-Pacific&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;28759578&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;23866987&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;North America&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;21660000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;caption&amp;gt;Table-C&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Americas&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;732240&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Middle East&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;13403102&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South America&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;17740392&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South Asia&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;4943771&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;caption&amp;gt;Table-D&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;22550927&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Americas&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;732240&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Asia-Pacific&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;28759578&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;23866987&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Middle East&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;13403102&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;North America&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;21660000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South America&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;17740392&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South Asia&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;4943771&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;caption&amp;gt;Table-E&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;false&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Americas&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;true&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Asia-Pacific&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;false&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;false&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Middle East&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;true&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;North America&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;false&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South America&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;false&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South Asia&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;false&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- Table-A&lt;br /&gt;
- Table-B&lt;br /&gt;
+ Table-C&lt;br /&gt;
- Table-D&lt;br /&gt;
- Table-E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/quiz&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Quizzes]]&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/SUM_and_COUNT_Quiz</id>
		<title>SUM and COUNT Quiz</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/SUM_and_COUNT_Quiz"/>
				<updated>2013-05-09T14:13:05Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SUM and COUNT QUIZ&lt;br /&gt;
&amp;lt;div class='ref_section'&amp;gt;&lt;br /&gt;
&amp;lt;table class='db_ref'&amp;gt;&lt;br /&gt;
&amp;lt;caption&amp;gt;bbc&amp;lt;/caption&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;region&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;area&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;population&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;gdp&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Afghanistan&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;South Asia&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;652225&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;26000000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Albania&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;28728&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;3200000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;6656000000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Algeria&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Middle East&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;2400000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;32900000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;75012000000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Andorra&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;468&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;64000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan='5'&amp;gt;...&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;quiz shuffle=none display=simple&amp;gt;&lt;br /&gt;
{Select the statement that shows the sum of population of all countries in 'Europe'&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- SELECT name, population FROM bbc WHERE region = 'Europe'&lt;br /&gt;
- SELECT population FROM bbc WHERE region = 'Europe' SUM BY region&lt;br /&gt;
+ SELECT SUM(population) FROM bbc WHERE region = 'Europe'&lt;br /&gt;
- SELECT SUM(population FROM bbc WHERE region = 'Europe')&lt;br /&gt;
- SUM population FROM bbc WHERE region = 'Europe'&lt;br /&gt;
&lt;br /&gt;
{Select the statement that shows the number of countries with population smaller than 150000&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
+ SELECT COUNT(name) FROM bbc WHERE population &amp;lt; 150000&lt;br /&gt;
- SELECT COUNT(population &amp;lt; 150000) FROM bbc&lt;br /&gt;
- SELECT name FROM bbc WHERE population &amp;lt; 150000&lt;br /&gt;
- SELECT population AS COUNT FROM bbc WHERE population &amp;lt; 150000&lt;br /&gt;
- SELECT SUM() FROM bbc WHERE population &amp;lt; 150000&lt;br /&gt;
&lt;br /&gt;
{Select the full set of SQL aggregate functions&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- AVG(), COUNT(), FIRST(), LAST(), SUM()&lt;br /&gt;
- AVG(), COUNT(), MAX(), MEDIAN(), MIN(), ROUND(), SUM()&lt;br /&gt;
+ AVG(), COUNT(), FIRST(), LAST(), MAX(), MIN(), SUM()&lt;br /&gt;
- AVG(), COUNT(), MAX(), MIN(), SUM()&lt;br /&gt;
- COUNT(), SUM()&lt;br /&gt;
&lt;br /&gt;
{Select the result that would be obtained from the following code:SELECT region, SUM(area) FROM bbc WHERE SUM(area) &amp;gt; 15000000 GROUP BY region&lt;br /&gt;
&amp;lt;table style='float:left'&amp;gt;&amp;lt;caption&amp;gt;Table-A&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;17000000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table style='float:left'&amp;gt;&amp;lt;caption&amp;gt;Table-B&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;17000000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Asia-Pacific&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;23460000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;North America&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;21660000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table style='float:left'&amp;gt;&amp;lt;caption&amp;gt;Table-C&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Asia-Pacific&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;North America&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- Table-A&lt;br /&gt;
- Table-B&lt;br /&gt;
- Table-C&lt;br /&gt;
- No result due to invalid use of the GROUP BY function&lt;br /&gt;
+ No result due to invalid use of the WHERE function&lt;br /&gt;
&lt;br /&gt;
{Select the statement that shows the average population of 'Poland', 'Germany' and 'Denmark'&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- SELECT AVG(population) FROM bbc WHERE name = ('Poland', 'Germany', 'Denmark')&lt;br /&gt;
+ SELECT AVG(population) FROM bbc WHERE name IN ('Poland', 'Germany', 'Denmark')&lt;br /&gt;
- SELECT AVG(population) FROM bbc WHERE name LIKE ('Poland', 'Germany', 'Denmark')&lt;br /&gt;
- SELECT AVG(population) FROM bbc WHERE name LIKE (Poland, Germany, Denmark)&lt;br /&gt;
- SELECT population FROM bbc WHERE name IN ('Poland', 'Germany', 'Denmark')&lt;br /&gt;
&lt;br /&gt;
{Select the statement that shows the medium population density of each region&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- SELECT region, AVG(population/area) AS density FROM bbc&lt;br /&gt;
- SELECT region, COUNT(population)/COUNT(area) AS density FROM bbc GROUP BY region&lt;br /&gt;
- SELECT region, SUM(population)/COUNT(area) AS density FROM bbc GROUP BY region&lt;br /&gt;
- SELECT region, SUM(population)/SUM(area) AS density FROM bbc HAVING region&lt;br /&gt;
+ SELECT region, SUM(population)/SUM(area) AS density FROM bbc GROUP BY region&lt;br /&gt;
&lt;br /&gt;
{Select the statement that shows the name and population density of the country with the largest population&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- SELECT name, density AS population/area FROM bbc WHERE population = MAX(population)&lt;br /&gt;
- SELECT name, density AS population/area FROM bbc WHERE population = (SELECT MAX(population) FROM bbc) &lt;br /&gt;
- SELECT name, MAX (population) FROM bbc WHERE population / (SELECT area FROM bbc) &lt;br /&gt;
+ SELECT name, population/area AS density FROM bbc WHERE population = (SELECT MAX(population) FROM bbc)&lt;br /&gt;
- SELECT name, population/area AS density FROM bbc WHERE population &amp;gt; (SELECT MAX(population) FROM bbc) &lt;br /&gt;
&lt;br /&gt;
{Pick the result that would be obtained from the following code: SELECT region, SUM(area) FROM bbc GROUP BY region HAVING SUM(area)&amp;lt;= 20000000&lt;br /&gt;
&amp;lt;table style='float:left'&amp;gt;&amp;lt;caption&amp;gt;Table-A&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;732240&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;13403102&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;17740392&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;4943771&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table style='float:left'&amp;gt;&amp;lt;caption&amp;gt;Table-B&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;22550927&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Asia-Pacific&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;28759578&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;23866987&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;North America&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;21660000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;caption&amp;gt;Table-C&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Americas&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;732240&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Middle East&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;13403102&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South America&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;17740392&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South Asia&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;4943771&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;caption&amp;gt;Table-D&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;22550927&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Americas&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;732240&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Asia-Pacific&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;28759578&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;23866987&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Middle East&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;13403102&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;North America&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;21660000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South America&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;17740392&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South Asia&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;4943771&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;caption&amp;gt;Table-E&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;false&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Americas&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;true&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Asia-Pacific&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;false&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;false&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Middle East&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;true&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;North America&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;false&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South America&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;false&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South Asia&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;false&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- Table-A&lt;br /&gt;
- Table-B&lt;br /&gt;
- Table-C&lt;br /&gt;
+ Table-D&lt;br /&gt;
- Table-E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/quiz&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Quizzes]]&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/SUM_and_COUNT_Quiz</id>
		<title>SUM and COUNT Quiz</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/SUM_and_COUNT_Quiz"/>
				<updated>2013-05-09T14:12:45Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SUM and COUNT QUIZ&lt;br /&gt;
&amp;lt;div class='ref_section'&amp;gt;&lt;br /&gt;
&amp;lt;table class='db_ref'&amp;gt;&lt;br /&gt;
&amp;lt;caption&amp;gt;bbc&amp;lt;/caption&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;region&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;area&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;population&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;gdp&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Afghanistan&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;South Asia&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;652225&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;26000000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Albania&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;28728&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;3200000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;6656000000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Algeria&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Middle East&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;2400000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;32900000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;75012000000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Andorra&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;468&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;64000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan='5'&amp;gt;...&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;quiz shuffle=none display=simple&amp;gt;&lt;br /&gt;
{Select the statement that shows the sum of population of all countries in 'Europe'&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- SELECT name, population FROM bbc WHERE region = 'Europe'&lt;br /&gt;
- SELECT population FROM bbc WHERE region = 'Europe' SUM BY region&lt;br /&gt;
+ SELECT SUM(population) FROM bbc WHERE region = 'Europe'&lt;br /&gt;
- SELECT SUM(population FROM bbc WHERE region = 'Europe')&lt;br /&gt;
- SUM population FROM bbc WHERE region = 'Europe'&lt;br /&gt;
&lt;br /&gt;
{Select the statement that shows the number of countries with population smaller than 150000&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
+ SELECT COUNT(name) FROM bbc WHERE population &amp;lt; 150000&lt;br /&gt;
- SELECT COUNT(population &amp;lt; 150000) FROM bbc&lt;br /&gt;
- SELECT name FROM bbc WHERE population &amp;lt; 150000&lt;br /&gt;
- SELECT population AS COUNT FROM bbc WHERE population &amp;lt; 150000&lt;br /&gt;
- SELECT SUM() FROM bbc WHERE population &amp;lt; 150000&lt;br /&gt;
&lt;br /&gt;
{Select the full set of SQL aggregate functions&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- AVG(), COUNT(), FIRST(), LAST(), SUM()&lt;br /&gt;
- AVG(), COUNT(), MAX(), MEDIAN(), MIN(), ROUND(), SUM()&lt;br /&gt;
+ AVG(), COUNT(), FIRST(), LAST(), MAX(), MIN(), SUM()&lt;br /&gt;
- AVG(), COUNT(), MAX(), MIN(), SUM()&lt;br /&gt;
- COUNT(), SUM()&lt;br /&gt;
&lt;br /&gt;
{Select the result that would be obtained from the following code:SELECT region, SUM(area) FROM bbc WHERE SUM(area) &amp;gt; 15000000 GROUP BY region&lt;br /&gt;
&amp;lt;table style='float:left'&amp;gt;&amp;lt;caption&amp;gt;Table-A&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;17000000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table style='float:left'&amp;gt;&amp;lt;caption&amp;gt;Table-B&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;17000000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Asia-Pacific&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;23460000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;North America&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;21660000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table style='float:left'&amp;gt;&amp;lt;caption&amp;gt;Table-C&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Asia-Pacific&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;North America&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- Table-A&lt;br /&gt;
- Table-B&lt;br /&gt;
- Table-C&lt;br /&gt;
- No result due to invalid use of the GROUP BY function&lt;br /&gt;
+ No result due to invalid use of the WHERE function&lt;br /&gt;
&lt;br /&gt;
{Select the statement that shows the average population of 'Poland', 'Germany' and 'Denmark'&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- SELECT AVG(population) FROM bbc WHERE name = ('Poland', 'Germany', 'Denmark')&lt;br /&gt;
+ SELECT AVG(population) FROM bbc WHERE name IN ('Poland', 'Germany', 'Denmark')&lt;br /&gt;
- SELECT AVG(population) FROM bbc WHERE name LIKE ('Poland', 'Germany', 'Denmark')&lt;br /&gt;
- SELECT AVG(population) FROM bbc WHERE name LIKE (Poland, Germany, Denmark)&lt;br /&gt;
- SELECT population FROM bbc WHERE name IN ('Poland', 'Germany', 'Denmark')&lt;br /&gt;
&lt;br /&gt;
{Select the statement that shows the medium population density of each region&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- SELECT region, AVG(population/area) AS density FROM bbc&lt;br /&gt;
- SELECT region, COUNT(population)/COUNT(area) AS density FROM bbc GROUP BY region&lt;br /&gt;
- SELECT region, SUM(population)/COUNT(area) AS density FROM bbc GROUP BY region&lt;br /&gt;
- SELECT region, SUM(population)/SUM(area) AS density FROM bbc HAVING region&lt;br /&gt;
+ SELECT region, SUM(population)/SUM(area) AS density FROM bbc GROUP BY region&lt;br /&gt;
&lt;br /&gt;
{Select the statement that shows the name and population density of the country with the largest population&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- SELECT name, density AS population/area FROM bbc WHERE population = MAX(population)&lt;br /&gt;
- SELECT name, density AS population/area FROM bbc WHERE population = (SELECT MAX(population) FROM bbc) &lt;br /&gt;
- SELECT name, MAX (population) FROM bbc WHERE population / (SELECT area FROM bbc) &lt;br /&gt;
+ SELECT name, population/area AS density FROM bbc WHERE population = (SELECT MAX(population) FROM bbc)&lt;br /&gt;
- SELECT name, population/area AS density FROM bbc WHERE population &amp;gt; (SELECT MAX(population) FROM bbc) &lt;br /&gt;
&lt;br /&gt;
{Pick the result that would be obtained from the following code: SELECT region, SUM(area) FROM bbc GROUP BY region HAVING SUM(area)&amp;lt;= 20000000&lt;br /&gt;
&amp;lt;table style='float:left'&amp;gt;&amp;lt;caption&amp;gt;Table-A&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;732240&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;13403102&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;17740392&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;4943771&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table style='float:left'&amp;gt;&amp;lt;caption&amp;gt;Table-B&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;22550927&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Asia-Pacific&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;28759578&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;23866987&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;North America&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;21660000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;caption&amp;gt;Table-C&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Americas&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;732240&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Middle East&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;13403102&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South America&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;17740392&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South Asia&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;4943771&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;caption&amp;gt;Table-D&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;22550927&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Americas&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;732240&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Asia-Pacific&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;28759578&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;23866987&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Middle East&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;13403102&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;North America&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;21660000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South America&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;17740392&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South Asia&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;4943771&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;caption&amp;gt;Table-D&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;false&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Americas&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;true&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Asia-Pacific&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;false&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;false&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Middle East&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;true&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;North America&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;false&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South America&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;false&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South Asia&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;false&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- Table-A&lt;br /&gt;
- Table-B&lt;br /&gt;
- Table-C&lt;br /&gt;
+ Table-D&lt;br /&gt;
- Table-E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/quiz&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Quizzes]]&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/SUM_and_COUNT_Quiz</id>
		<title>SUM and COUNT Quiz</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/SUM_and_COUNT_Quiz"/>
				<updated>2013-05-09T14:11:12Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SUM and COUNT QUIZ&lt;br /&gt;
&amp;lt;div class='ref_section'&amp;gt;&lt;br /&gt;
&amp;lt;table class='db_ref'&amp;gt;&lt;br /&gt;
&amp;lt;caption&amp;gt;bbc&amp;lt;/caption&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;region&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;area&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;population&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;gdp&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Afghanistan&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;South Asia&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;652225&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;26000000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Albania&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;28728&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;3200000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;6656000000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Algeria&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Middle East&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;2400000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;32900000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;75012000000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Andorra&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;468&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align='right'&amp;gt;64000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan='5'&amp;gt;...&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;quiz shuffle=none display=simple&amp;gt;&lt;br /&gt;
{Select the statement that shows the sum of population of all countries in 'Europe'&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- SELECT name, population FROM bbc WHERE region = 'Europe'&lt;br /&gt;
- SELECT population FROM bbc WHERE region = 'Europe' SUM BY region&lt;br /&gt;
+ SELECT SUM(population) FROM bbc WHERE region = 'Europe'&lt;br /&gt;
- SELECT SUM(population FROM bbc WHERE region = 'Europe')&lt;br /&gt;
- SUM population FROM bbc WHERE region = 'Europe'&lt;br /&gt;
&lt;br /&gt;
{Select the statement that shows the number of countries with population smaller than 150000&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
+ SELECT COUNT(name) FROM bbc WHERE population &amp;lt; 150000&lt;br /&gt;
- SELECT COUNT(population &amp;lt; 150000) FROM bbc&lt;br /&gt;
- SELECT name FROM bbc WHERE population &amp;lt; 150000&lt;br /&gt;
- SELECT population AS COUNT FROM bbc WHERE population &amp;lt; 150000&lt;br /&gt;
- SELECT SUM() FROM bbc WHERE population &amp;lt; 150000&lt;br /&gt;
&lt;br /&gt;
{Select the full set of SQL aggregate functions&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- AVG(), COUNT(), FIRST(), LAST(), SUM()&lt;br /&gt;
- AVG(), COUNT(), MAX(), MEDIAN(), MIN(), ROUND(), SUM()&lt;br /&gt;
+ AVG(), COUNT(), FIRST(), LAST(), MAX(), MIN(), SUM()&lt;br /&gt;
- AVG(), COUNT(), MAX(), MIN(), SUM()&lt;br /&gt;
- COUNT(), SUM()&lt;br /&gt;
&lt;br /&gt;
{Select the result that would be obtained from the following code:SELECT region, SUM(area) FROM bbc WHERE SUM(area) &amp;gt; 15000000 GROUP BY region&lt;br /&gt;
&amp;lt;table style='float:left'&amp;gt;&amp;lt;caption&amp;gt;Table-A&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;17000000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table style='float:left'&amp;gt;&amp;lt;caption&amp;gt;Table-B&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;17000000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Asia-Pacific&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;23460000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;North America&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;21660000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table style='float:left'&amp;gt;&amp;lt;caption&amp;gt;Table-C&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Asia-Pacific&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;North America&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- Table-A&lt;br /&gt;
- Table-B&lt;br /&gt;
- Table-C&lt;br /&gt;
- No result due to invalid use of the GROUP BY function&lt;br /&gt;
+ No result due to invalid use of the WHERE function&lt;br /&gt;
&lt;br /&gt;
{Select the statement that shows the average population of 'Poland', 'Germany' and 'Denmark'&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- SELECT AVG(population) FROM bbc WHERE name = ('Poland', 'Germany', 'Denmark')&lt;br /&gt;
+ SELECT AVG(population) FROM bbc WHERE name IN ('Poland', 'Germany', 'Denmark')&lt;br /&gt;
- SELECT AVG(population) FROM bbc WHERE name LIKE ('Poland', 'Germany', 'Denmark')&lt;br /&gt;
- SELECT AVG(population) FROM bbc WHERE name LIKE (Poland, Germany, Denmark)&lt;br /&gt;
- SELECT population FROM bbc WHERE name IN ('Poland', 'Germany', 'Denmark')&lt;br /&gt;
&lt;br /&gt;
{Select the statement that shows the medium population density of each region&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- SELECT region, AVG(population/area) AS density FROM bbc&lt;br /&gt;
- SELECT region, COUNT(population)/COUNT(area) AS density FROM bbc GROUP BY region&lt;br /&gt;
- SELECT region, SUM(population)/COUNT(area) AS density FROM bbc GROUP BY region&lt;br /&gt;
- SELECT region, SUM(population)/SUM(area) AS density FROM bbc HAVING region&lt;br /&gt;
+ SELECT region, SUM(population)/SUM(area) AS density FROM bbc GROUP BY region&lt;br /&gt;
&lt;br /&gt;
{Select the statement that shows the name and population density of the country with the largest population&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- SELECT name, density AS population/area FROM bbc WHERE population = MAX(population)&lt;br /&gt;
- SELECT name, density AS population/area FROM bbc WHERE population = (SELECT MAX(population) FROM bbc) &lt;br /&gt;
- SELECT name, MAX (population) FROM bbc WHERE population / (SELECT area FROM bbc) &lt;br /&gt;
+ SELECT name, population/area AS density FROM bbc WHERE population = (SELECT MAX(population) FROM bbc)&lt;br /&gt;
- SELECT name, population/area AS density FROM bbc WHERE population &amp;gt; (SELECT MAX(population) FROM bbc) &lt;br /&gt;
&lt;br /&gt;
{Pick the result that would be obtained from the following code: SELECT region, SUM(area) FROM bbc GROUP BY region HAVING SUM(area)&amp;lt;= 20000000&lt;br /&gt;
&amp;lt;table style='float:left'&amp;gt;&amp;lt;caption&amp;gt;Table-A&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;732240&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;13403102&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;17740392&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;4943771&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table style='float:left'&amp;gt;&amp;lt;caption&amp;gt;Table-B&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;22550927&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Asia-Pacific&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;28759578&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;23866987&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;North America&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;21660000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;caption&amp;gt;Table-C&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Americas&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;732240&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Middle East&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;13403102&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South America&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;17740392&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South Asia&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;4943771&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;caption&amp;gt;Table-D&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;22550927&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Americas&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;732240&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Asia-Pacific&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;28759578&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;23866987&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Middle East&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;13403102&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;North America&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;21660000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South America&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;17740392&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South Asia&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;4943771&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;caption&amp;gt;Table-E&amp;lt;/caption&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Americas&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Asia-Pacific&amp;lt;/td&amp;gt;28759578&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Middle East&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;North America&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South America&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;South Asia&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
|type=&amp;quot;()&amp;quot;}&lt;br /&gt;
- Table-A&lt;br /&gt;
- Table-B&lt;br /&gt;
- Table-C&lt;br /&gt;
+ Table-D&lt;br /&gt;
- Table-E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/quiz&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Quizzes]]&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/SELECT_.._GROUP_BY</id>
		<title>SELECT .. GROUP BY</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/SELECT_.._GROUP_BY"/>
				<updated>2013-05-07T21:30:06Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;SELECT .. GROUP BY&amp;lt;/h1&amp;gt;&lt;br /&gt;
Host cities and continents for the Olympics Games are stored in the table &amp;lt;code&amp;gt;games&amp;lt;/code&amp;gt;.&lt;br /&gt;
Notice that Europe appears in the table twice: &lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;caption align='center'&amp;gt;'''games'''&amp;lt;/caption&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th align='center'&amp;gt;'''yr'''&amp;lt;/th&amp;gt;&amp;lt;th align='center'&amp;gt;'''city'''&amp;lt;/th&amp;gt;&amp;lt;th align='center'&amp;gt;'''continent'''&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2000&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Sydney&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Australasia&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2004&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Athens&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2008&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Beijing&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Asia&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2019&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;London&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div class='ht'&amp;gt;&lt;br /&gt;
&amp;lt;div class='params'&amp;gt;schema:scott&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang=sql class='tidy'&amp;gt; DROP TABLE games&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=sql class='setup'&amp;gt; CREATE TABLE games(&lt;br /&gt;
  yr INTEGER,&lt;br /&gt;
  city VARCHAR(20),&lt;br /&gt;
  continent VARCHAR(20));&lt;br /&gt;
INSERT INTO games VALUES (2000,'Sydney','Australasia');&lt;br /&gt;
INSERT INTO games VALUES (2004,'Athens','Europe');&lt;br /&gt;
INSERT INTO games VALUES (2008,'Beijing','Asia');&lt;br /&gt;
INSERT INTO games VALUES (2012,'London','Europe');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In a GROUP BY statement only &amp;lt;i&amp;gt;distinct&amp;lt;/i&amp;gt; values are shown for the column in the GROUP BY.&lt;br /&gt;
This example shows the continents hosting the Olympics with the count of the number of games held. &lt;br /&gt;
&amp;lt;source lang='sql' class='def e-oracle'&amp;gt;&lt;br /&gt;
SELECT continent, COUNT(yr) FROM scott.games&lt;br /&gt;
 GROUP BY continent&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT continent, COUNT(yr) FROM games&lt;br /&gt;
 GROUP BY continent&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;See also&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[SUM_and_COUNT |SUM and COUNT]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[SELECT_.._WHERE |SELECT WHERE]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/File:CongestionChargeER.gif</id>
		<title>File:CongestionChargeER.gif</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/File:CongestionChargeER.gif"/>
				<updated>2013-05-05T09:38:28Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/Congestion_Charging</id>
		<title>Congestion Charging</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/Congestion_Charging"/>
				<updated>2013-05-05T09:32:31Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Congestion charging database&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Graduated questions&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;[[Congestion Easy |Easy questions: 1..5]]&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;[[Congestion Medium |Medium questions: 6..10]]&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;[[Congestion Hard |Hard questions: 11..15]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;ER diagram for the Congestion charging database:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Image:CongestionChargeER.gif]]&lt;br /&gt;
&amp;lt;p&amp;gt;camera(id, perim)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;keeper(id, name, address)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;vehicle(id, keeper)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;image(camera, whn, reg)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;permit(reg, sDate, chargeType)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Sample query&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
List the vehicles for which 'Strenuous, Sam' is the registered keeper.&lt;br /&gt;
The link between Keepers and Vehicles is via the foreign key specified in the CREATE TABLE vehicle statement. Note the line:&lt;br /&gt;
  ,FOREIGN KEY(keeper) REFERENCES keeper(id)&lt;br /&gt;
This will be the basis of our join condition.&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT vehicle.id&lt;br /&gt;
  FROM vehicle JOIN keeper&lt;br /&gt;
        ON vehicle.keeper = keeper.id&lt;br /&gt;
   WHERE keeper.name = 'Strenuous, Sam' &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/MediaWiki:Common.js</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/MediaWiki:Common.js"/>
				<updated>2013-05-02T22:20:35Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
$(function(){&lt;br /&gt;
  var engine = $('&amp;lt;div class=&amp;quot;portal&amp;quot;/&amp;gt;')&lt;br /&gt;
    .append($('&amp;lt;h5&amp;gt;Engine&amp;lt;/h5&amp;gt;'))&lt;br /&gt;
    .append($('&amp;lt;div class=body/&amp;gt;')&lt;br /&gt;
      .append($('&amp;lt;ul/&amp;gt;')&lt;br /&gt;
        .append($('&amp;lt;li/&amp;gt;')&lt;br /&gt;
          .append($('&amp;lt;select id=engine/&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=mysql&amp;gt;MySQL&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=oracle&amp;gt;Oracle&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=sqlserver&amp;gt;SQL Server&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=postgres&amp;gt;PostgreSQL&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option id=ingres&amp;gt;Ingres&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option id=db2&amp;gt;DB2&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .change(function(){setDefaultText();})&lt;br /&gt;
          )&lt;br /&gt;
        )&lt;br /&gt;
      )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
  $('#right-navigation').after($('&amp;lt;ul/&amp;gt;',{'id':'zoolinks'})&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://csszoo.net',text:'CSS',id:'css_link', title:'Learn CSS! visit CSSzoo'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://progzoo.net',text:'Java',id:'java_link', title:'Hungry for Java tutorials? ProgZoo is for you'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://linuxzoo.net',text:'Linux',id:'linux_link', title:'Linux Zoo tutoials!'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;',{'id':'book'}).append($('&amp;lt;a/&amp;gt;',{href:'http://www.oreilly.com/catalog/sqlhks/',id:'sql_hacks',title:'Try/buy SQL Hacks book'})))&lt;br /&gt;
  );&lt;br /&gt;
&lt;br /&gt;
  $('#p-Reference').before(engine);&lt;br /&gt;
  &lt;br /&gt;
  //Adverts&lt;br /&gt;
  $('&amp;lt;img/&amp;gt;',{src:'/design/sqlhacks.png',alt:'SQL Hacks book ad'})&lt;br /&gt;
    .appendTo($('#sql_hacks'));&lt;br /&gt;
  $('#p-googleadsense').prependTo('#footer');&lt;br /&gt;
&lt;br /&gt;
  if (wgCanonicalNamespace=='MediaWiki' || wgCanonicalNamespace=='Special')&lt;br /&gt;
    $('#p-googleadsense').hide();&lt;br /&gt;
&lt;br /&gt;
	// Reset localStorage&lt;br /&gt;
	var rst = $('.lsclear');&lt;br /&gt;
	rst.click(function(e){&lt;br /&gt;
	   if (localStorage) &lt;br /&gt;
			localStorage.clear();&lt;br /&gt;
	   location.reload();&lt;br /&gt;
	});&lt;br /&gt;
			   &lt;br /&gt;
	var numberOfQuestions = 0;&lt;br /&gt;
	var numberOfAnswered = 0;&lt;br /&gt;
	var numberOfCorrect = 0;&lt;br /&gt;
	var startAt = Math.max(1,$('#startAt').text()*1);&lt;br /&gt;
	var qu = $('.qu,.ht,.err');&lt;br /&gt;
	var curEng;&lt;br /&gt;
	if (localStorage &amp;amp;&amp;amp; localStorage.getItem(&amp;quot;currentEngine&amp;quot;))&lt;br /&gt;
	{&lt;br /&gt;
		curEng = localStorage.getItem(&amp;quot;currentEngine&amp;quot;);&lt;br /&gt;
		$('#engine').val(curEng);&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
		curEng = $('#engine').val();&lt;br /&gt;
		&lt;br /&gt;
	for(var i=0;i&amp;lt;qu.length;i++){&lt;br /&gt;
		var id = i+1;&lt;br /&gt;
		var q = qu[i];&lt;br /&gt;
		var lsName = wgPageName + '_' + 'frm__' + id;&lt;br /&gt;
		&lt;br /&gt;
		var def = $('.def',q);&lt;br /&gt;
		if (def.length&amp;gt;1){&lt;br /&gt;
			var pick = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
			for(var j=0;j&amp;lt;def.length;j++)&lt;br /&gt;
			  if ($(def[j]).hasClass('e-'+curEng))&lt;br /&gt;
				pick = $(def[j]);&lt;br /&gt;
			def = pick;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		//Hints&lt;br /&gt;
		var hint = $('.hint', q);&lt;br /&gt;
		hint.hide();&lt;br /&gt;
		hint.each(function(){&lt;br /&gt;
			var htitle = $(this).attr(&amp;quot;title&amp;quot;);&lt;br /&gt;
			var hnt = $('&amp;lt;div/&amp;gt;', {'class':'hnt', 'text':htitle});&lt;br /&gt;
			var hidden = $(this);&lt;br /&gt;
			hnt.click(function(e){&lt;br /&gt;
			   e.preventDefault();&lt;br /&gt;
			   hidden.toggle(&amp;quot;slow&amp;quot;);});&lt;br /&gt;
			$(this).before(hnt);&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		var txt = def.text();&lt;br /&gt;
		// replace the default text with user's last query if available in LS&lt;br /&gt;
		if (localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng))&lt;br /&gt;
		{&lt;br /&gt;
			var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
			txt = lsArray[lsArray.length-1];&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var ans = $('.ans',q).text();&lt;br /&gt;
		var tdy = $('.tidy',q).text();&lt;br /&gt;
		var frm = $('&amp;lt;form/&amp;gt;',{name:'frm__'+id,id:'frm__'+id})&lt;br /&gt;
			.append($('&amp;lt;div/&amp;gt;',{'class':'quf'})&lt;br /&gt;
			   .append($('&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;',&lt;br /&gt;
				 {value:$.trim(txt),&lt;br /&gt;
				  rows:2+Math.max(Math.max(4 ,txt.split(/[\n\r]+/).length),ans.split(/[\n\r]+/).length),&lt;br /&gt;
				  cols:2+Math.max(Math.max(45,maxlen(txt.split(/[\n\r]+/))),maxlen(ans.split(/[\n\r]+/))),&lt;br /&gt;
				  'class':'sql',&lt;br /&gt;
				  id:'txtar_'+id}))&lt;br /&gt;
			   .append($('&amp;lt;br/&amp;gt;'))&lt;br /&gt;
			   .append($('&amp;lt;button/&amp;gt;',{text:'Submit SQL','class':'submitSQL',click:goBaby}))&lt;br /&gt;
			   .append($('&amp;lt;div/&amp;gt;',{text:'Restore default','class':'reset',click:restoreDefault}))&lt;br /&gt;
			);&lt;br /&gt;
		&lt;br /&gt;
		def.after(frm);&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		// Display completion information&lt;br /&gt;
		if (localStorage)&lt;br /&gt;
		{&lt;br /&gt;
			if (!localStorage.getItem(lsName))&lt;br /&gt;
				localStorage.setItem(lsName, &amp;quot;unanswered&amp;quot;);&lt;br /&gt;
			if (localStorage.getItem(lsName) == &amp;quot;answered&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have answered this question &amp;lt;u&amp;gt;incorrectly&amp;lt;/u&amp;gt; before.&amp;quot;);&lt;br /&gt;
				numberOfAnswered++;&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qincorrect', 'title':'You have answered this question incorrectly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
			else if (localStorage.getItem(lsName) == &amp;quot;correct&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have answered this question &amp;lt;u&amp;gt;correctly&amp;lt;/u&amp;gt; before.&amp;quot;);&lt;br /&gt;
				numberOfCorrect++;&lt;br /&gt;
				numberOfAnswered++;&lt;br /&gt;
				&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qcorrect', 'title':'You have answered this question correctly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have not answered this question yet.&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var lhs = $('&amp;lt;div/&amp;gt;',{css:{width:'60ex',marginRight:'2ex','float':'left'}});&lt;br /&gt;
		lhs.append($('&amp;lt;span/&amp;gt;',{text:(startAt+i)+'.','class':'id'}));&lt;br /&gt;
		lhs.append($(q).children());&lt;br /&gt;
		$(q).append(lhs);&lt;br /&gt;
                // This line caused problems when styling - I removed the css margin-left from it - M&lt;br /&gt;
		//$(q).append($('&amp;lt;div/&amp;gt;',{text:'result','class':'res',css:{'margin-left':'1ex'}}));&lt;br /&gt;
                $(q).append($('&amp;lt;div/&amp;gt;',{text:'result','class':'res'}));&lt;br /&gt;
		&lt;br /&gt;
		//Show additional info if available for active angine&lt;br /&gt;
		var ecomm = $('.ecomm,.link',q);&lt;br /&gt;
		var ecomm1 = ecomm.filter(false);&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var ecomm = $('.link',q);&lt;br /&gt;
		var ecomm1 = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		numberOfQuestions = id;&lt;br /&gt;
	}&lt;br /&gt;
	if (numberOfQuestions == 0)&lt;br /&gt;
		numberOfQuestions = 1;&lt;br /&gt;
	&lt;br /&gt;
	// Display completion info&lt;br /&gt;
	$(&amp;quot;.summary&amp;quot;).html(&amp;quot;You have answered &amp;quot;+numberOfAnswered+&amp;quot; out of &amp;quot;+numberOfQuestions+&amp;quot; questions on this page.&amp;lt;br/&amp;gt;&amp;quot;+numberOfCorrect+&amp;quot; of your answers were correct.&amp;quot;);&lt;br /&gt;
	// Save completion info&lt;br /&gt;
	if (localStorage)&lt;br /&gt;
	{&lt;br /&gt;
		localStorage.setItem(wgPageName+'_numberOfQuestions', numberOfQuestions);&lt;br /&gt;
		localStorage.setItem(wgPageName+'_numberOfCorrect', numberOfCorrect);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	//Progress bar&lt;br /&gt;
	var maxWidth = $('.progressbar').css('width');&lt;br /&gt;
	var barModification = parseFloat(maxWidth) * numberOfCorrect / numberOfQuestions;&lt;br /&gt;
	$('.progressbar').css('width', barModification);&lt;br /&gt;
	&lt;br /&gt;
  //Put in the answers if url includes answer=1&lt;br /&gt;
  if (window.location.search &amp;amp;&amp;amp; /answer/.test(window.location.search)){&lt;br /&gt;
    $('&amp;lt;def/&amp;gt;',{text:&amp;quot;Cheat mode&amp;quot;,css:{position:'fixed',right:'2ex',&lt;br /&gt;
                   bottom:'2ex',width:'14ex',backgroundColor:'yellow',padding:'2ex',&lt;br /&gt;
                   textAlign:'center'}})&lt;br /&gt;
      .appendTo($('body'));&lt;br /&gt;
    $('.quf textarea').each(function(){&lt;br /&gt;
       $(this).val($(this).closest('form').next('.ans').text());&lt;br /&gt;
    })&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
})&lt;br /&gt;
&lt;br /&gt;
function setDefaultText() {&lt;br /&gt;
	var qu = $('.ht,.err');&lt;br /&gt;
	var curEng = $('#engine').val();&lt;br /&gt;
	if (localStorage)&lt;br /&gt;
		localStorage.setItem(&amp;quot;currentEngine&amp;quot;, curEng);&lt;br /&gt;
	for(var i=0;i&amp;lt;qu.length;i++){&lt;br /&gt;
		var id = i+1;&lt;br /&gt;
		var q = qu[i];&lt;br /&gt;
		&lt;br /&gt;
		var def = $('.def',q);&lt;br /&gt;
		if (def.length&amp;gt;1){&lt;br /&gt;
			var pick = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
			for(var j=0;j&amp;lt;def.length;j++)&lt;br /&gt;
			  if ($(def[j]).hasClass('e-'+curEng))&lt;br /&gt;
				pick = $(def[j]);&lt;br /&gt;
			def = pick;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var lsName = wgPageName + '_' + 'frm__' + id;&lt;br /&gt;
		var txt = def.text();&lt;br /&gt;
		// replace the default text with user's last query if available in LS&lt;br /&gt;
		if (localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng))&lt;br /&gt;
		{&lt;br /&gt;
			var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
			txt = lsArray[lsArray.length-1];&lt;br /&gt;
		}&lt;br /&gt;
		$('textarea#txtar_'+id).val(txt);&lt;br /&gt;
		&lt;br /&gt;
		//Show additional info if available for chosen engine&lt;br /&gt;
		var ecomm = $('.ecomm',q);&lt;br /&gt;
		var ecomm1 = ecomm.filter(false);&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		//Show headers for chosen engine&lt;br /&gt;
		var ecomm = $('.link',q);&lt;br /&gt;
		var ecomm1 = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function restoreDefault() {&lt;br /&gt;
	var qu = $(this).parents('.qu, .ht, .err');&lt;br /&gt;
	var def = $('.def',qu);&lt;br /&gt;
	var txt = def.text();&lt;br /&gt;
	qu.find('textarea.sql').val(txt);&lt;br /&gt;
}	&lt;br /&gt;
&lt;br /&gt;
function updateProgressbar() {&lt;br /&gt;
	var numberOfQuestions = parseInt(localStorage.getItem(wgPageName+'_numberOfQuestions'));&lt;br /&gt;
	// A little workaround - max progressbar width is 96% of its background's width&lt;br /&gt;
	var maxWidth = parseFloat($('.progressbarbg').css('width')) * 0.96;&lt;br /&gt;
	var barModification = parseFloat($('.progressbar').css('width')) + maxWidth * 1 / numberOfQuestions;&lt;br /&gt;
	$('.progressbar').css('width', barModification);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function goBaby(){&lt;br /&gt;
  var qu = $(this).parents('.qu, .ht, .err');&lt;br /&gt;
  var lsUse = ((qu[0].getAttribute('class') != 'ht') &amp;amp;&amp;amp; ($(qu[0]).find('.ans').length &amp;gt; 0));&lt;br /&gt;
  var lsName = wgPageName + '_' + $(this).parents('form').attr('id');&lt;br /&gt;
  if (lsUse &amp;amp;&amp;amp; localStorage &amp;amp;&amp;amp; (localStorage.getItem(lsName) != &amp;quot;correct&amp;quot;))&lt;br /&gt;
	localStorage.setItem(lsName, &amp;quot;answered&amp;quot;);&lt;br /&gt;
  var sql = qu.find('textarea.sql').val();&lt;br /&gt;
  var parlst = $('.params').text().split(';');&lt;br /&gt;
  var params = {};&lt;br /&gt;
  for(var i=0;i&amp;lt;parlst.length;i++){&lt;br /&gt;
    var pair = parlst[i].split(':');&lt;br /&gt;
    params[pair[0]]=pair[1];&lt;br /&gt;
  }&lt;br /&gt;
  //Store the sql querry in LS&lt;br /&gt;
  if (localStorage)&lt;br /&gt;
  {&lt;br /&gt;
	var curEng = $('#engine').val();&lt;br /&gt;
	var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
	if (!lsArray)&lt;br /&gt;
		lsArray = new Array();&lt;br /&gt;
	lsArray.push(sql);&lt;br /&gt;
	localStorage.setItem(lsName+&amp;quot;_arr_&amp;quot;+curEng, JSON.stringify(lsArray));&lt;br /&gt;
  }&lt;br /&gt;
  qu.find('.res').addClass('waiting');&lt;br /&gt;
  $.ajax({url:'/sqlgo.pl',cache:false,'type':'post',dataType:'json',&lt;br /&gt;
          data:{sql:sql.replace(/\xA0/g,' '),  //Mediawiki inserts &amp;amp;nbsp; before a %. We need to change it back to a space.CM 13/6/12&lt;br /&gt;
                format:'json',&lt;br /&gt;
                question:$('.id',qu).text(),&lt;br /&gt;
                wgUserName:wgUserName,&lt;br /&gt;
                cookie:$.cookie('oliver'),&lt;br /&gt;
                page:wgPageName,&lt;br /&gt;
                server:$('#engine').val(),&lt;br /&gt;
                setup:$('.setup',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                tidy:$('.tidy',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                answer:$('.ans',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                schema:params['schema']&lt;br /&gt;
               },&lt;br /&gt;
          success:function(d){&lt;br /&gt;
            var res = qu.find('.res');&lt;br /&gt;
            res.empty().removeClass('waiting')&lt;br /&gt;
            if (d.error){&lt;br /&gt;
              res.append($('&amp;lt;h1/&amp;gt;',{text:'SQLZoo System Error:'}))&lt;br /&gt;
              res.append($('&amp;lt;div/&amp;gt;',{text:d.error}))&lt;br /&gt;
              return;&lt;br /&gt;
            }&lt;br /&gt;
			var headerPresent = false;&lt;br /&gt;
            for (var i = 0; i &amp;lt; d.sql.length; i++)&lt;br /&gt;
				{&lt;br /&gt;
				if (!d || !d.sql || !d.sql[i]){&lt;br /&gt;
				  res.append($('&amp;lt;h1/&amp;gt;',{text:'SQLZoo System Error:'}))&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:&amp;quot;Problem with d or d.sql or d.sql[0]&amp;quot;}))&lt;br /&gt;
				  return;&lt;br /&gt;
				}&lt;br /&gt;
				if (d.sql[i].error){&lt;br /&gt;
				  res.append($('&amp;lt;h1/&amp;gt;',{text:'Error:'}))&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:d.sql[i].error}))&lt;br /&gt;
				  return;&lt;br /&gt;
				}&lt;br /&gt;
				var legend = &amp;quot;Result:&amp;quot;;&lt;br /&gt;
				if (d.score &amp;amp;&amp;amp; d.answer &amp;amp;&amp;amp; d.answer.length==1 &amp;amp;&amp;amp; d.answer[0].fields){&lt;br /&gt;
				  if (d.score == 100){&lt;br /&gt;
					legend = 'Correct answer';&lt;br /&gt;
					if (lsUse &amp;amp;&amp;amp; localStorage)&lt;br /&gt;
						localStorage.setItem(lsName, &amp;quot;correct&amp;quot;);&lt;br /&gt;
					var def = $('.def',qu);&lt;br /&gt;
					if (localStorage.getItem(lsName) == &amp;quot;correct&amp;quot;)&lt;br /&gt;
					{&lt;br /&gt;
						if ($(&amp;quot;.qcorrect&amp;quot;, qu).length == 0)&lt;br /&gt;
						{&lt;br /&gt;
							var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qcorrect', 'title':'You have answered this question correctly before.'});&lt;br /&gt;
							def.before(qcorr);&lt;br /&gt;
							updateProgressbar();&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
			      }&lt;br /&gt;
				  else if (d.answer[0].fields.length&amp;gt;d.sql[0].fields.length)&lt;br /&gt;
					legend = 'Too few columns';&lt;br /&gt;
				  else if (d.answer[0].fields.length&amp;lt;d.sql[0].fields.length)&lt;br /&gt;
					legend = 'Too many columns';&lt;br /&gt;
				  else if (d.answer[0].rows.length&amp;gt;d.sql[0].rows.length)&lt;br /&gt;
					legend = 'Too few rows';&lt;br /&gt;
				  else if (d.answer[0].rows.length&amp;lt;d.sql[0].rows.length)&lt;br /&gt;
					legend = 'Too many rows';&lt;br /&gt;
&lt;br /&gt;
				}&lt;br /&gt;
				if (!headerPresent)&lt;br /&gt;
				{&lt;br /&gt;
					res.append($('&amp;lt;h1/&amp;gt;',{text:legend}));&lt;br /&gt;
					headerPresent = true;&lt;br /&gt;
				}&lt;br /&gt;
				var t = mkTable(d.sql[i]);&lt;br /&gt;
				t.addClass('sqlmine')&lt;br /&gt;
				 .appendTo(res);&lt;br /&gt;
				if (d.answer &amp;amp;&amp;amp; d.answer.length&amp;gt;0 &amp;amp;&amp;amp; d.score&amp;lt;100){&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:'Show correct result','class':'showtxt'})&lt;br /&gt;
					.click(function(){&lt;br /&gt;
					  $(this).next().show('slow');&lt;br /&gt;
					})&lt;br /&gt;
				  );&lt;br /&gt;
				  var a = mkTable(d.answer[0]);&lt;br /&gt;
				  a.addClass('sqlans');&lt;br /&gt;
				  a.appendTo(res);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
          },&lt;br /&gt;
          error:function(jqXHR,textStatus,errorThrown){&lt;br /&gt;
            qu.find('.res').empty().removeClass('waiting')&lt;br /&gt;
              .append($('&amp;lt;h1/&amp;gt;',{'class':'syserr',text:'SQLZOO system error:'}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;',{text:textStatus}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;',{text:errorThrown}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;').html(jqXHR.responseText))&lt;br /&gt;
          }&lt;br /&gt;
         });&lt;br /&gt;
		 &lt;br /&gt;
		// Modify completion information&lt;br /&gt;
		var def = $('.def',qu);&lt;br /&gt;
		if (localStorage)&lt;br /&gt;
		{&lt;br /&gt;
			if (localStorage.getItem(lsName) == &amp;quot;answered&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qincorrect', 'title':'You have answered this question incorrectly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
function maxlen(l){&lt;br /&gt;
  var r = 0;&lt;br /&gt;
  for(var i=0;i&amp;lt;l.length;i++)&lt;br /&gt;
    r = Math.max(r,l[i].length);&lt;br /&gt;
  return r;&lt;br /&gt;
}&lt;br /&gt;
function truncate(s){&lt;br /&gt;
  if (s.length&amp;lt;15) return s;&lt;br /&gt;
  return s.substring(0,13)+&amp;quot;..&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
function mkTable(a){&lt;br /&gt;
  var t = $('&amp;lt;table/&amp;gt;');&lt;br /&gt;
  t.append($('&amp;lt;tr/&amp;gt;'));&lt;br /&gt;
  var isnum = [];&lt;br /&gt;
  if (!a.fields || !a.rows) return t;&lt;br /&gt;
  for(var i=0;i&amp;lt;a.fields.length;i++){&lt;br /&gt;
    $('tr',t).append($('&amp;lt;th/&amp;gt;',{text:truncate(a.fields[i])}));&lt;br /&gt;
    var allNum = 1;&lt;br /&gt;
    for(var j=0;j&amp;lt;a.rows.length;j++){&lt;br /&gt;
      if (a.rows[j] &amp;amp;&amp;amp; a.rows[j][i] &amp;amp;&amp;amp; !a.rows[j][i].match(/^[0-9.]*$/))&lt;br /&gt;
        allNum = 0;&lt;br /&gt;
    }&lt;br /&gt;
    isnum.push(allNum);&lt;br /&gt;
  }&lt;br /&gt;
  for(var j=0;j&amp;lt;a.rows.length;j++){&lt;br /&gt;
    var tr = $('&amp;lt;tr/&amp;gt;').appendTo(t);&lt;br /&gt;
    for(var k=0;k&amp;lt;a.rows[j].length;k++){&lt;br /&gt;
      var td = $('&amp;lt;td/&amp;gt;',{text:a.rows[j][k]});&lt;br /&gt;
      if (isnum[k]) td.addClass('r');&lt;br /&gt;
      td.appendTo(tr);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return t;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ======================= Designer js starts here */&lt;br /&gt;
&lt;br /&gt;
// the following scripts should not be present here - they should be linked as external files !!!&lt;br /&gt;
&lt;br /&gt;
// this script helps to manage browser inconsistency across different os&lt;br /&gt;
function css_browser_selector(u){var ua=u.toLowerCase(),is=function(t){return ua.indexOf(t)&amp;gt;-1},g='gecko',w='webkit',s='safari',o='opera',m='mobile',h=document.documentElement,b=[(!(/opera|webtv/i.test(ua))&amp;amp;&amp;amp;/msie\s(\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?g+' ff2':is('firefox/3.5')?g+' ff3 ff3_5':is('firefox/3.6')?g+' ff3 ff3_6':is('firefox/3')?g+' ff3':is('gecko/')?g:is('opera')?o+(/version\/(\d+)/.test(ua)?' '+o+RegExp.$1:(/opera(\s|\/)(\d+)/.test(ua)?' '+o+RegExp.$2:'')):is('konqueror')?'konqueror':is('blackberry')?m+' blackberry':is('android')?m+' android':is('chrome')?w+' chrome':is('iron')?w+' iron':is('applewebkit/')?w+' '+s+(/version\/(\d+)/.test(ua)?' '+s+RegExp.$1:''):is('mozilla/')?g:'',is('j2me')?m+' j2me':is('iphone')?m+' iphone':is('ipod')?m+' ipod':is('ipad')?m+' ipad':is('mac')?'mac':is('darwin')?'mac':is('webtv')?'webtv':is('win')?'win'+(is('windows nt 6.0')?' vista':''):is('freebsd')?'freebsd':(is('x11')||is('linux'))?'linux':'','js']; c = b.join(' '); h.className += ' '+c; return c;}; css_browser_selector(navigator.userAgent);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// display site logo&lt;br /&gt;
$(function(){&lt;br /&gt;
  $('&amp;lt;a/&amp;gt;',{href:'http://sqlzoo.net/w/index.php',id:'mp-logo',title:'Zoo You!'})&lt;br /&gt;
    .append($('&amp;lt;img/&amp;gt;',{src:'/design/sql_zoo_logo05.png',alt:'SQLzoo logo'}))&lt;br /&gt;
    .appendTo($('#mw-head-base'))&lt;br /&gt;
});&lt;br /&gt;
 &lt;br /&gt;
// display site description&lt;br /&gt;
$(document).ready(function(){&lt;br /&gt;
  $(function(){&lt;br /&gt;
    $(&amp;quot;#mp-logo&amp;quot;).append(&amp;quot; &amp;lt;h1 id='logo-desc'&amp;gt;Interactive &amp;lt;span&amp;gt;SQL &amp;lt;span&amp;gt;Tutorial&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h1&amp;gt;&amp;quot;);&lt;br /&gt;
  });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// display language selector&lt;br /&gt;
$(function(){&lt;br /&gt;
     $('&amp;lt;div/&amp;gt;',{id:'language'}).appendTo($('#mw-head-base'))&lt;br /&gt;
 &lt;br /&gt;
     var lang = $('&amp;lt;ul/&amp;gt;',{id:'lang','class':'side_nav_sub'});&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;en&amp;quot; href=&amp;quot;/wiki/Main_Page&amp;quot;&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;de&amp;quot; href=&amp;quot;/wiki/Main_Page/de&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;fr&amp;quot; href=&amp;quot;/wiki/Main_Page/fr&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    $('#language').append(lang);&lt;br /&gt;
&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'/design/en2.png',alt:'SQL zoo in English'})&lt;br /&gt;
       .appendTo($('#en'));&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'/design/de2.png',alt:'SQL zoo in German'})&lt;br /&gt;
       .appendTo($('#de'));&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'/design/fr2.png',alt:'SQL zoo in French'})&lt;br /&gt;
       .appendTo($('#fr'));&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// assemble and display main nav menu&lt;br /&gt;
$(function(){&lt;br /&gt;
    var ml1 =&lt;br /&gt;
    [['1 SELECT basics',  'SELECT_basics','Some simple queries to get you started']&lt;br /&gt;
    ,['2 SELECT from WORLD','SELECT_from_WORLD_Tutorial','Finding facts about countries']&lt;br /&gt;
    ,['3 SELECT from Nobel','SELECT_from_Nobel_Tutorial','More practice with SELECT statements']&lt;br /&gt;
    ,['4 SELECT within SELECT','SELECT_within_SELECT_Tutorial','Using the results of one query inside another']&lt;br /&gt;
    ,['5 SUM and COUNT','SUM_and_COUNT','Apply aggregate functions']&lt;br /&gt;
    ,['6 JOIN','The_JOIN_operation','Gathering data from more than one table']&lt;br /&gt;
    ,['7 More JOIN','More_JOIN_operations','Getting data from the movie database']&lt;br /&gt;
    ,['8 Using NULL','Using_Null','Dealing with missing data']&lt;br /&gt;
    ,['9 Self JOIN','Self_join','Dealing with missing data']&lt;br /&gt;
	,['10 SQL Quizzes','Tutorial_Quizzes','Test your knowledge with multiple choice quizzes']&lt;br /&gt;
    ];&lt;br /&gt;
    var mm1 = $('&amp;lt;ul/&amp;gt;',{id:'mm1','class':'dropdown mm_sub'});&lt;br /&gt;
    for(var i=0;i&amp;lt;ml1.length;i++){&lt;br /&gt;
	  var maxWidth = 50; // adjust the value so that it fits menu well&lt;br /&gt;
	  var NoQ = localStorage.getItem(ml1[i][1] + '_numberOfQuestions');&lt;br /&gt;
	  if (!NoQ) NoQ = 1;&lt;br /&gt;
	  var NoC = localStorage.getItem(ml1[i][1] + '_numberOfCorrect');&lt;br /&gt;
	  if (!NoC) NoC = 0;	  &lt;br /&gt;
	  var pbWidth = parseFloat(maxWidth) * NoC / NoQ;&lt;br /&gt;
	  var mprogbar = $('&amp;lt;div/&amp;gt;',{'class':'progressbarbg1'}).append($('&amp;lt;div/&amp;gt;',{'class':'progressbar1', 'id':ml1[i][1], css:{'width':pbWidth}}));&lt;br /&gt;
          mm1.append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'/wiki/'+ml1[i][1],text:ml1[i][0]})).append(ml1[i][2]).append(mprogbar));&lt;br /&gt;
    }&lt;br /&gt;
    var mm2 = $('&amp;lt;ul/&amp;gt;',{id:'mm2','class':'dropdown mm_sub'});&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/AdventureWorks&amp;quot;&amp;gt;1 AdventureWorks&amp;lt;/a&amp;gt; Flogging sports gear. Assessment for CO22008 2007/8&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Neeps&amp;quot;&amp;gt;2 Neeps&amp;lt;/a&amp;gt; A timetable database&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Musicians&amp;quot;&amp;gt;3 Musicians&amp;lt;/a&amp;gt; Concerts and compositions&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Southwind&amp;quot;&amp;gt;4 Southwind&amp;lt;/a&amp;gt; Buying and selling&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Dressmaker&amp;quot;&amp;gt;5 Dressmaker&amp;lt;/a&amp;gt; Constructing clothing&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Congestion Charging&amp;quot;&amp;gt;6 Congestion Charging&amp;lt;/a&amp;gt; Monitoring traffic (old questions)&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Weather data for Southhampton&amp;quot;&amp;gt;7 Weather data for Southhampton&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Album Tracks Style&amp;quot;&amp;gt;8 Album Tracks Style&amp;lt;/a&amp;gt; Music data&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    var mm3 = $('&amp;lt;ul/&amp;gt;',{id:'mm3','class':'dropdown mm_sub'});&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/SELECT_Reference&amp;quot;&amp;gt;SELECT&amp;lt;/a&amp;gt;How to read the data from a database.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/CREATE_and_DROP_Reference&amp;quot;&amp;gt;CREATE and DROP&amp;lt;/a&amp;gt;How to create tables, indexes, views and other things. How to get rid of them.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/INSERT_and_DELETE_Reference&amp;quot;&amp;gt;INSERT and DELETE&amp;lt;/a&amp;gt;How to put records into a table, change them and how to take them out again.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/DATE_and_TIME_Reference&amp;quot;&amp;gt;DATE and TIME&amp;lt;/a&amp;gt;How to work with dates; adding, subtracting and formatting.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Functions_Reference&amp;quot;&amp;gt;Functions&amp;lt;/a&amp;gt;How to use string functions, logical functions and mathematical functions.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Users_Reference&amp;quot;&amp;gt;Users&amp;lt;/a&amp;gt;How to create users, GRANT and DENY access, get at other peoples tables. How to find processes and kill them.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Meta_Data_Reference&amp;quot;&amp;gt;Meta Data&amp;lt;/a&amp;gt;How to find out what tables and columns exist. How to count and limit the rows return.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Hacks_Reference&amp;quot;&amp;gt;SQL Hacks&amp;lt;/a&amp;gt;Useful SQL hacks .&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    var mm = $('&amp;lt;ul/&amp;gt;',{id:'main_menu'}).appendTo('#mw-head-base');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm1&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Tutorials&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm2&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Assessments&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm3&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Reference&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    $('#mm1').append(mm1);&lt;br /&gt;
    $('#mm2').append(mm2);&lt;br /&gt;
    $('#mm3').append(mm3);&lt;br /&gt;
&lt;br /&gt;
    $('#main_menu').wrap('&amp;lt;div id=&amp;quot;navigation_horiz&amp;quot; /&amp;gt;');&lt;br /&gt;
    $('#navigation_horiz').naviDropDown({&lt;br /&gt;
      dropDownWidth: '35em'&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// stick on top elements that need to be visible&lt;br /&gt;
$(function(){&lt;br /&gt;
    $(&amp;quot;#main_menu&amp;quot;).addClass(&amp;quot;stickableMenu&amp;quot;);&lt;br /&gt;
    $(&amp;quot;#p-Reference&amp;quot;).addClass(&amp;quot;stickableRef&amp;quot;);&lt;br /&gt;
    $(&amp;quot;.ref_section&amp;quot;).addClass(&amp;quot;stickableDbRef&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$(document).scroll(function() {&lt;br /&gt;
    var useFixedMenu = $(document).scrollTop() &amp;gt; 175;&lt;br /&gt;
    $('.stickableMenu').toggleClass('fixedMenu', useFixedMenu);&lt;br /&gt;
    &lt;br /&gt;
//    var useFixedRef = $(document).scrollTop() &amp;gt; 275;&lt;br /&gt;
//    $('.stickableRef').toggleClass('fixedRef', useFixedRef);&lt;br /&gt;
&lt;br /&gt;
    $('.stickableDbRef').toggleClass('fixedDbRef', $(document).scrollTop() &amp;gt; 275);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// swap classes on external links to change their side icons&lt;br /&gt;
$(function(){&lt;br /&gt;
 $(&amp;quot;.external&amp;quot;).addClass(&amp;quot;zoo_external&amp;quot;);&lt;br /&gt;
 $(&amp;quot;.external&amp;quot;).removeClass(&amp;quot;external&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
/* === Designer js ends here === */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Insert tables into Quiz distractors&lt;br /&gt;
var qq = $('.question');&lt;br /&gt;
for (var i = 0; i &amp;lt; qq.length; i++)&lt;br /&gt;
{&lt;br /&gt;
	var q = $(qq[i]);&lt;br /&gt;
	var distractors = &amp;quot;ABCDE&amp;quot;;&lt;br /&gt;
	for (var j=0;j&amp;lt;distractors.length;j++){&lt;br /&gt;
		var tans = $('table caption:contains(&amp;quot;Table-'+distractors[j]+'&amp;quot;)', q).parents('table');&lt;br /&gt;
		if (tans.length&amp;gt;0)&lt;br /&gt;
		{&lt;br /&gt;
			var ttd = $('table tr td:contains(&amp;quot;Table-'+distractors[j]+'&amp;quot;)', q);&lt;br /&gt;
			if (ttd.length&amp;gt;0){&lt;br /&gt;
			   ttd.empty();&lt;br /&gt;
			   ttd.append(tans);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$(function(){&lt;br /&gt;
  $('input.check').each(function(i,e){&lt;br /&gt;
    $(this).attr('id','quiz_d_'+i);&lt;br /&gt;
  });&lt;br /&gt;
  $('tr.proposal').each(function(i,e){&lt;br /&gt;
    var tds = $('td',$(this));&lt;br /&gt;
    var html1= $(tds[1]).html();&lt;br /&gt;
    $(tds[1]).html($('&amp;lt;label/&amp;gt;',{html:html1,'for':$('input',$(this)).attr('id') }));&lt;br /&gt;
  })&lt;br /&gt;
})&lt;br /&gt;
//Connor 23/7/12 creates the labels for the multiple choice questions allowing them to be highlighted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Analytics code&lt;br /&gt;
  var _gaq = _gaq || [];&lt;br /&gt;
  _gaq.push(['_setAccount', 'UA-33860668-1']);&lt;br /&gt;
  _gaq.push(['_trackPageview']);&lt;br /&gt;
&lt;br /&gt;
  (function() {&lt;br /&gt;
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;&lt;br /&gt;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';&lt;br /&gt;
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);&lt;br /&gt;
  })();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//JSON&lt;br /&gt;
(function($){var escapeable=/[&amp;quot;\\\x00-\x1f\x7f-\x9f]/g,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','&amp;quot;':'\\&amp;quot;','\\':'\\\\'};$.toJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.stringify?JSON.stringify:function(o){if(o===null){return'null';}&lt;br /&gt;
var type=typeof o;if(type==='undefined'){return undefined;}&lt;br /&gt;
if(type==='number'||type==='boolean'){return''+o;}&lt;br /&gt;
if(type==='string'){return $.quoteString(o);}&lt;br /&gt;
if(type==='object'){if(typeof o.toJSON==='function'){return $.toJSON(o.toJSON());}&lt;br /&gt;
if(o.constructor===Date){var month=o.getUTCMonth()+1,day=o.getUTCDate(),year=o.getUTCFullYear(),hours=o.getUTCHours(),minutes=o.getUTCMinutes(),seconds=o.getUTCSeconds(),milli=o.getUTCMilliseconds();if(month&amp;lt;10){month='0'+month;}&lt;br /&gt;
if(day&amp;lt;10){day='0'+day;}&lt;br /&gt;
if(hours&amp;lt;10){hours='0'+hours;}&lt;br /&gt;
if(minutes&amp;lt;10){minutes='0'+minutes;}&lt;br /&gt;
if(seconds&amp;lt;10){seconds='0'+seconds;}&lt;br /&gt;
if(milli&amp;lt;100){milli='0'+milli;}&lt;br /&gt;
if(milli&amp;lt;10){milli='0'+milli;}&lt;br /&gt;
return'&amp;quot;'+year+'-'+month+'-'+day+'T'+&lt;br /&gt;
hours+':'+minutes+':'+seconds+'.'+milli+'Z&amp;quot;';}&lt;br /&gt;
if(o.constructor===Array){var ret=[];for(var i=0;i&amp;lt;o.length;i++){ret.push($.toJSON(o[i])||'null');}&lt;br /&gt;
return'['+ret.join(',')+']';}&lt;br /&gt;
var name,val,pairs=[];for(var k in o){type=typeof k;if(type==='number'){name='&amp;quot;'+k+'&amp;quot;';}else if(type==='string'){name=$.quoteString(k);}else{continue;}&lt;br /&gt;
type=typeof o[k];if(type==='function'||type==='undefined'){continue;}&lt;br /&gt;
val=$.toJSON(o[k]);pairs.push(name+':'+val);}&lt;br /&gt;
return'{'+pairs.join(',')+'}';}};$.evalJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.parse?JSON.parse:function(src){return eval('('+src+')');};$.secureEvalJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.parse?JSON.parse:function(src){var filtered=src.replace(/\\[&amp;quot;\\\/bfnrtu]/g,'@').replace(/&amp;quot;[^&amp;quot;\\\n\r]*&amp;quot;|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,'');if(/^[\],:{}\s]*$/.test(filtered)){return eval('('+src+')');}else{throw new SyntaxError('Error parsing JSON, source is not valid.');}};$.quoteString=function(string){if(string.match(escapeable)){return'&amp;quot;'+string.replace(escapeable,function(a){var c=meta[a];if(typeof c==='string'){return c;}&lt;br /&gt;
c=a.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16);})+'&amp;quot;';}&lt;br /&gt;
return'&amp;quot;'+string+'&amp;quot;';};})(jQuery);&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/&lt;br /&gt;
 *&lt;br /&gt;
 * Uses the built in easing capabilities added In jQuery 1.1&lt;br /&gt;
 * to offer multiple easing options&lt;br /&gt;
 *&lt;br /&gt;
 * TERMS OF USE - jQuery Easing&lt;br /&gt;
 * &lt;br /&gt;
 * Open source under the BSD License. &lt;br /&gt;
 * &lt;br /&gt;
 * Copyright Â© 2008 George McGinley Smith&lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without modification, &lt;br /&gt;
 * are permitted provided that the following conditions are met:&lt;br /&gt;
 * &lt;br /&gt;
 * Redistributions of source code must retain the above copyright notice, this list of &lt;br /&gt;
 * conditions and the following disclaimer.&lt;br /&gt;
 * Redistributions in binary form must reproduce the above copyright notice, this list &lt;br /&gt;
 * of conditions and the following disclaimer in the documentation and/or other materials &lt;br /&gt;
 * provided with the distribution.&lt;br /&gt;
 * &lt;br /&gt;
 * Neither the name of the author nor the names of contributors may be used to endorse &lt;br /&gt;
 * or promote products derived from this software without specific prior written permission.&lt;br /&gt;
 * &lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY &lt;br /&gt;
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF&lt;br /&gt;
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE&lt;br /&gt;
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE&lt;br /&gt;
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED &lt;br /&gt;
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED &lt;br /&gt;
 * OF THE POSSIBILITY OF SUCH DAMAGE. &lt;br /&gt;
 *&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
// t: current time, b: begInnIng value, c: change In value, d: duration&lt;br /&gt;
jQuery.easing['jswing'] = jQuery.easing['swing'];&lt;br /&gt;
&lt;br /&gt;
jQuery.extend( jQuery.easing,&lt;br /&gt;
{&lt;br /&gt;
	def: 'easeOutQuad',&lt;br /&gt;
	swing: function (x, t, b, c, d) {&lt;br /&gt;
		//alert(jQuery.easing.default);&lt;br /&gt;
		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuad: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuad: function (x, t, b, c, d) {&lt;br /&gt;
		return -c *(t/=d)*(t-2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuad: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t + b;&lt;br /&gt;
		return -c/2 * ((--t)*(t-2) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInCubic: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutCubic: function (x, t, b, c, d) {&lt;br /&gt;
		return c*((t=t/d-1)*t*t + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutCubic: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t + b;&lt;br /&gt;
		return c/2*((t-=2)*t*t + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuart: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuart: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * ((t=t/d-1)*t*t*t - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuart: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t*t + b;&lt;br /&gt;
		return -c/2 * ((t-=2)*t*t*t - 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuint: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuint: function (x, t, b, c, d) {&lt;br /&gt;
		return c*((t=t/d-1)*t*t*t*t + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuint: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t*t*t + b;&lt;br /&gt;
		return c/2*((t-=2)*t*t*t*t + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInSine: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutSine: function (x, t, b, c, d) {&lt;br /&gt;
		return c * Math.sin(t/d * (Math.PI/2)) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutSine: function (x, t, b, c, d) {&lt;br /&gt;
		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInExpo: function (x, t, b, c, d) {&lt;br /&gt;
		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutExpo: function (x, t, b, c, d) {&lt;br /&gt;
		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutExpo: function (x, t, b, c, d) {&lt;br /&gt;
		if (t==0) return b;&lt;br /&gt;
		if (t==d) return b+c;&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;&lt;br /&gt;
		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInCirc: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutCirc: function (x, t, b, c, d) {&lt;br /&gt;
		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutCirc: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;&lt;br /&gt;
		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		if (t &amp;lt; 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;&lt;br /&gt;
		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158;&lt;br /&gt;
		return c*(t/=d)*t*((s+1)*t - s) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158;&lt;br /&gt;
		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158; &lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;&lt;br /&gt;
		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInBounce: function (x, t, b, c, d) {&lt;br /&gt;
		return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutBounce: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d) &amp;lt; (1/2.75)) {&lt;br /&gt;
			return c*(7.5625*t*t) + b;&lt;br /&gt;
		} else if (t &amp;lt; (2/2.75)) {&lt;br /&gt;
			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;&lt;br /&gt;
		} else if (t &amp;lt; (2.5/2.75)) {&lt;br /&gt;
			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;&lt;br /&gt;
		} else {&lt;br /&gt;
			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutBounce: function (x, t, b, c, d) {&lt;br /&gt;
		if (t &amp;lt; d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;&lt;br /&gt;
		return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *&lt;br /&gt;
 * TERMS OF USE - EASING EQUATIONS&lt;br /&gt;
 * &lt;br /&gt;
 * Open source under the BSD License. &lt;br /&gt;
 * &lt;br /&gt;
 * Copyright Â© 2001 Robert Penner&lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without modification, &lt;br /&gt;
 * are permitted provided that the following conditions are met:&lt;br /&gt;
 * &lt;br /&gt;
 * Redistributions of source code must retain the above copyright notice, this list of &lt;br /&gt;
 * conditions and the following disclaimer.&lt;br /&gt;
 * Redistributions in binary form must reproduce the above copyright notice, this list &lt;br /&gt;
 * of conditions and the following disclaimer in the documentation and/or other materials &lt;br /&gt;
 * provided with the distribution.&lt;br /&gt;
 * &lt;br /&gt;
 * Neither the name of the author nor the names of contributors may be used to endorse &lt;br /&gt;
 * or promote products derived from this software without specific prior written permission.&lt;br /&gt;
 * &lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY &lt;br /&gt;
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF&lt;br /&gt;
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE&lt;br /&gt;
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE&lt;br /&gt;
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED &lt;br /&gt;
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED &lt;br /&gt;
 * OF THE POSSIBILITY OF SUCH DAMAGE. &lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
/**&lt;br /&gt;
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+&lt;br /&gt;
* &amp;lt;http://cherne.net/brian/resources/jquery.hoverIntent.html&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* @param  f  onMouseOver function || An object with configuration options&lt;br /&gt;
* @param  g  onMouseOut function  || Nothing (use configuration options object)&lt;br /&gt;
* @author    Brian Cherne &amp;lt;brian@cherne.net&amp;gt;&lt;br /&gt;
*/&lt;br /&gt;
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))&amp;lt;cfg.sensitivity){$(ob).unbind(&amp;quot;mousemove&amp;quot;,track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type==&amp;quot;mouseover&amp;quot;?e.fromElement:e.toElement)||e.relatedTarget;while(p&amp;amp;&amp;amp;p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type==&amp;quot;mouseover&amp;quot;){pX=ev.pageX;pY=ev.pageY;$(ob).bind(&amp;quot;mousemove&amp;quot;,track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind(&amp;quot;mousemove&amp;quot;,track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);&lt;br /&gt;
/**&lt;br /&gt;
* plugin: jquery.naviDropDown.js&lt;br /&gt;
* author: kt.cheung @ Brandammo&lt;br /&gt;
* website: www.brandammo.co.uk&lt;br /&gt;
* version: 1.0&lt;br /&gt;
* date: 19th feb 2011&lt;br /&gt;
* description: simple jquery navigation drop down menu with easing and hoverIntent&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 2011 KT Cheung&lt;br /&gt;
&lt;br /&gt;
Permission is hereby granted, free of charge, to any person obtaining a copy&lt;br /&gt;
of this software and associated documentation files (the &amp;quot;Software&amp;quot;), to deal&lt;br /&gt;
in the Software without restriction, including without limitation the rights&lt;br /&gt;
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell&lt;br /&gt;
copies of the Software, and to permit persons to whom the Software is&lt;br /&gt;
furnished to do so, subject to the following conditions:&lt;br /&gt;
&lt;br /&gt;
The above copyright notice and this permission notice shall be included in&lt;br /&gt;
all copies or substantial portions of the Software.&lt;br /&gt;
&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SOFTWARE.&lt;br /&gt;
&lt;br /&gt;
**/&lt;br /&gt;
&lt;br /&gt;
(function($){&lt;br /&gt;
&lt;br /&gt;
  $.fn.naviDropDown = function(options) {  &lt;br /&gt;
  &lt;br /&gt;
	//set up default options &lt;br /&gt;
	var defaults = { &lt;br /&gt;
		dropDownClass: 'dropdown', //the class name for your drop down&lt;br /&gt;
		dropDownWidth: 'auto',	//the default width of drop down elements&lt;br /&gt;
		slideDownEasing: 'easeInOutCirc', //easing method for slideDown&lt;br /&gt;
		slideUpEasing: 'easeInOutCirc', //easing method for slideUp&lt;br /&gt;
		slideDownDuration: 500, //easing duration for slideDown&lt;br /&gt;
		slideUpDuration: 500, //easing duration for slideUp&lt;br /&gt;
		orientation: 'horizontal' //orientation - either 'horizontal' or 'vertical'&lt;br /&gt;
	}; &lt;br /&gt;
  	&lt;br /&gt;
	var opts = $.extend({}, defaults, options); 	&lt;br /&gt;
&lt;br /&gt;
    return this.each(function() {  &lt;br /&gt;
	  var $this = $(this);&lt;br /&gt;
	  $this.find('.'+opts.dropDownClass).css('width', opts.dropDownWidth).css('display', 'none');&lt;br /&gt;
	  &lt;br /&gt;
	  var buttonWidth = $this.find('.'+opts.dropDownClass).parent().width() + 'px';&lt;br /&gt;
	  var buttonHeight = $this.find('.'+opts.dropDownClass).parent().height() + 'px';&lt;br /&gt;
	  if(opts.orientation == 'horizontal') {&lt;br /&gt;
		//$this.find('.'+opts.dropDownClass).css('left', '0px').css('top', buttonHeight);&lt;br /&gt;
	  }&lt;br /&gt;
	  if(opts.orientation == 'vertical') {&lt;br /&gt;
		$this.find('.'+opts.dropDownClass).css('left', buttonWidth).css('top', '0px');&lt;br /&gt;
	  }&lt;br /&gt;
	  &lt;br /&gt;
	  $this.find('li').hoverIntent(getDropDown, hideDropDown);&lt;br /&gt;
    });&lt;br /&gt;
	&lt;br /&gt;
	function getDropDown(){&lt;br /&gt;
		activeNav = $(this);&lt;br /&gt;
		showDropDown();&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	function showDropDown(){&lt;br /&gt;
		activeNav.find('.'+opts.dropDownClass).slideDown({duration:opts.slideDownDuration, easing:opts.slideDownEasing});&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	function hideDropDown(){&lt;br /&gt;
		activeNav.find('.'+opts.dropDownClass).slideUp({duration:opts.slideUpDuration, easing:opts.slideUpEasing});//hides the current dropdown&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
  };&lt;br /&gt;
})(jQuery);&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/MediaWiki:Common.css</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/MediaWiki:Common.css"/>
				<updated>2013-05-02T22:08:02Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
/* CSS placed here will be applied to all skins */&lt;br /&gt;
#mw-head-base {&lt;br /&gt;
  height:10em;&lt;br /&gt;
}&lt;br /&gt;
#p-googleadsense {&lt;br /&gt;
   margin-left:.5em;&lt;br /&gt;
}&lt;br /&gt;
/* Hide ads for login page */&lt;br /&gt;
body.ns-special div#p-googleadsense{&lt;br /&gt;
  display:none;&lt;br /&gt;
}&lt;br /&gt;
.qu {&lt;br /&gt;
    border-color: silver;&lt;br /&gt;
    border-style: solid;&lt;br /&gt;
    border-width: 1px;&lt;br /&gt;
    margin: 2ex 0.2ex 0.2ex;&lt;br /&gt;
    padding: 10px;&lt;br /&gt;
    clear:left; /* Andrew 2012-07-21 */&lt;br /&gt;
}&lt;br /&gt;
.ans, .def, .tidy, .setup, .params {&lt;br /&gt;
  display:none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hnt {&lt;br /&gt;
	font-weight:bold;&lt;br /&gt;
	color: #3b434e;&lt;br /&gt;
        cursor:pointer;&lt;br /&gt;
}&lt;br /&gt;
.hnt:hover{background:#AABBCC;}&lt;br /&gt;
&lt;br /&gt;
.hint {&lt;br /&gt;
	color: #055C00;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ecomm {&lt;br /&gt;
        margin-bottom: 0.5ex;&lt;br /&gt;
        margin-right: 0.5ex;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.qu textarea{&lt;br /&gt;
  width:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Change by Andrew 2012-07-21 */&lt;br /&gt;
.qu form{&lt;br /&gt;
  clear:left;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.res {&lt;br /&gt;
    border-style: inset;&lt;br /&gt;
    border-width: 1px;&lt;br /&gt;
    height: 20em;&lt;br /&gt;
    width:32em;&lt;br /&gt;
    overflow: auto;&lt;br /&gt;
    padding: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table{&lt;br /&gt;
  border-collapse:collapse;&lt;br /&gt;
  background:#d2e5d1;&lt;br /&gt;
  margin:1em 0 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.res table{&lt;br /&gt;
  background:none;&lt;br /&gt;
}&lt;br /&gt;
table td{&lt;br /&gt;
  border:solid gray 1px;&lt;br /&gt;
  padding:.2em .7em;&lt;br /&gt;
  vertical-align:top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h2{&lt;br /&gt;
  border-bottom:none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.id {&lt;br /&gt;
font-size: 300%;&lt;br /&gt;
display: block;&lt;br /&gt;
float: left;&lt;br /&gt;
padding: 0px 5px;&lt;br /&gt;
margin-right: 5px;&lt;br /&gt;
margin-top:0.8ex;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.tutblock,&lt;br /&gt;
div.refblock,&lt;br /&gt;
div.resblock&lt;br /&gt;
{&lt;br /&gt;
  width:60ex;&lt;br /&gt;
  float:left;&lt;br /&gt;
  padding:1ex 1em 1em 2em;&lt;br /&gt;
  margin:2ex 2ex 2ex 0em;&lt;br /&gt;
}&lt;br /&gt;
div.resblock&lt;br /&gt;
{&lt;br /&gt;
  width:auto;&lt;br /&gt;
}&lt;br /&gt;
div.refblock+*{&lt;br /&gt;
}&lt;br /&gt;
div.tutblock h2,&lt;br /&gt;
div.refblock h2,&lt;br /&gt;
div.resblock h2{&lt;br /&gt;
  padding-top:1ex;&lt;br /&gt;
  text-align:left;&lt;br /&gt;
}&lt;br /&gt;
div.res.waiting{&lt;br /&gt;
  background-image:url(http://sqlzoo.net/w/wait30trans.gif);&lt;br /&gt;
  background-repeat:no-repeat;&lt;br /&gt;
  background-position: center center;&lt;br /&gt;
}&lt;br /&gt;
.r{&lt;br /&gt;
  text-align:right;&lt;br /&gt;
}&lt;br /&gt;
.res .showtxt{&lt;br /&gt;
  color:blue;&lt;br /&gt;
  cursor:pointer;&lt;br /&gt;
}&lt;br /&gt;
.res .sqlans{&lt;br /&gt;
  display:none;&lt;br /&gt;
}&lt;br /&gt;
/* ==== Designer style sheet starts here === */&lt;br /&gt;
&lt;br /&gt;
/* This skin overrides common.css */ &lt;br /&gt;
&lt;br /&gt;
/* SQL ZOO COLOR PALETTE:&lt;br /&gt;
&lt;br /&gt;
     #dae5d9 - light green (bg color) [ alt: #d2e5d1 ]&lt;br /&gt;
     #161525 - dark blue&lt;br /&gt;
     #3b434e - light blue&lt;br /&gt;
     #ee8301 - orange [ darker alt: #ff530d ]&lt;br /&gt;
     #e3e3e3 - near white&lt;br /&gt;
     #4a787d - bright blue (links) [ alt: #668195 ]&lt;br /&gt;
     #c4c4c4 - light grey (sub menu links)&lt;br /&gt;
     #909898 - mid grey (sub menu description)&lt;br /&gt;
 &lt;br /&gt;
*/&lt;br /&gt;
 &lt;br /&gt;
/* =========================== GLOBAL SETTINGS: ============================= */&lt;br /&gt;
&lt;br /&gt;
/* remove the Wiki markup */&lt;br /&gt;
#p-logo, #left-navigation, #p-tb, #pt-mytalk, #pt-watchlist, #pt-mycontris, .editsection, #mw-usercsspreview, #contentSub {&lt;br /&gt;
    display:none;&lt;br /&gt;
}&lt;br /&gt;
textarea:focus{outline:none;}&lt;br /&gt;
body #mw-head-base {&lt;br /&gt;
    background-image:none;&lt;br /&gt;
}&lt;br /&gt;
html, body, body #content,&lt;br /&gt;
#mw-page-base {&lt;br /&gt;
    background:#d2e5d1;&lt;br /&gt;
    font-family: &amp;quot;HelveticaNeue&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;HelveticaNeueRoman&amp;quot;, &amp;quot;HelveticaNeue-Roman&amp;quot;, &amp;quot;Helvetica Neue Roman&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, sans-serif; &lt;br /&gt;
    color:#161525;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a:link {&lt;br /&gt;
    color:#3b434e;&lt;br /&gt;
    text-decoration:none;&lt;br /&gt;
}&lt;br /&gt;
a:visited {color:#668195;}&lt;br /&gt;
a:hover {color:#ff530d;}&lt;br /&gt;
a:active {color:#e3e3e3;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* ================================== ADMIN WIKI LINKS: */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* reposition temporary admin links */&lt;br /&gt;
#mw-head {&lt;br /&gt;
    position:absolute;&lt;br /&gt;
}&lt;br /&gt;
#pt-userpage, #pt-anonuserpage, #pt-login, #pt-preferences, #pt-logout {&lt;br /&gt;
   background-size:1em;&lt;br /&gt;
   background-repeat:no-repeat;&lt;br /&gt;
   background-position:left center;&lt;br /&gt;
   padding:0 0 0 1.2em;&lt;br /&gt;
}&lt;br /&gt;
#pt-userpage, #pt-anonuserpage, #pt-login {&lt;br /&gt;
   background-image:url('/design/u4.png');&lt;br /&gt;
}&lt;br /&gt;
#pt-preferences {&lt;br /&gt;
   background-image:url('/design/settings.png');&lt;br /&gt;
}&lt;br /&gt;
#pt-logout {&lt;br /&gt;
   background-image:url('/design/logout.png');&lt;br /&gt;
   padding:0 0 0 1.25em;&lt;br /&gt;
}&lt;br /&gt;
#p-search {&lt;br /&gt;
   margin:0; &lt;br /&gt;
   padding:0;&lt;br /&gt;
   clear:right;&lt;br /&gt;
   &lt;br /&gt;
}&lt;br /&gt;
#p-search form, #p-search input {&lt;br /&gt;
    margin:0;&lt;br /&gt;
}&lt;br /&gt;
#p-search input#searchInput {&lt;br /&gt;
   -moz-border-radius:1em;&lt;br /&gt;
   -webkit-border-radius: 1em;&lt;br /&gt;
   border-radius: 1em;&lt;br /&gt;
   border:2px solid #3b434e;&lt;br /&gt;
}&lt;br /&gt;
#p-views {&lt;br /&gt;
   float:right;&lt;br /&gt;
   margin:0 0 -.5em 0; &lt;br /&gt;
   padding:0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* wiki editor links */&lt;br /&gt;
&lt;br /&gt;
#right-navigation {&lt;br /&gt;
   margin: 1.9em .3em 0 0;&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs span {&lt;br /&gt;
   background:none;&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs span a {&lt;br /&gt;
   padding-top: .05em;&lt;br /&gt;
   color:#3b434e;&lt;br /&gt;
   text-shadow: 1px 1px 0 #E4EDE6;&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs span a:hover {&lt;br /&gt;
   color:#ee8301;&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs, div.vectorTabs ul {&lt;br /&gt;
   background:none;background-image:none;&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs ul {&lt;br /&gt;
   height:1.2em;&lt;br /&gt;
   border:thin solid rgba(33,33,33,0.7);&lt;br /&gt;
  -moz-box-shadow: 0px 0px 2px #333333;&lt;br /&gt;
  -webkit-box-shadow: 0px 0px 2px #333333;&lt;br /&gt;
   box-shadow: 0px 0px 2px #333333;&lt;br /&gt;
  -webkit-border-radius: 1.5em;&lt;br /&gt;
  -moz-border-radius: 1.5em;&lt;br /&gt;
   border-radius: 1.5em;&lt;br /&gt;
   background: #e3ede3; /* Old browsers */&lt;br /&gt;
   background: -moz-linear-gradient(-45deg, #e3ede3 1%, #dae5d9 100%); /* FF3.6+ */&lt;br /&gt;
   background: -webkit-gradient(linear, left top, right bottom, color-stop(1%,#e3ede3), color-stop(100%,#dae5d9)); /* Chrome,Safari4+ */&lt;br /&gt;
   background: -webkit-linear-gradient(-45deg, #e3ede3 1%,#dae5d9 100%); /* Chrome10+,Safari5.1+ */&lt;br /&gt;
   background: -o-linear-gradient(-45deg, #e3ede3 1%,#dae5d9 100%); /* Opera 11.10+ */&lt;br /&gt;
   background: -ms-linear-gradient(-45deg, #e3ede3 1%,#dae5d9 100%); /* IE10+ */&lt;br /&gt;
   background: linear-gradient(135deg, #e3ede3 1%,#dae5d9 100%); /* W3C */&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs ul li {&lt;br /&gt;
   background:none;background-image:none;&lt;br /&gt;
   border:none; border-right:thin solid rgba(33,33,33,0.7);&lt;br /&gt;
  -moz-box-shadow:inset 2px 2px 12px #e7f0e7;&lt;br /&gt;
  -webkit-box-shadow:inset 2px 2px 12px #e7f0e7;&lt;br /&gt;
   box-shadow:inset 2px 2px 12px #e7f0e7;&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs ul li:first-child {&lt;br /&gt;
   -webkit-border-radius: 1.5em 0 0 1.5em;&lt;br /&gt;
   -moz-border-radius: 1.5em 0 0 1.5em;&lt;br /&gt;
    border-radius: 1.5em 0 0 1.5em;&lt;br /&gt;
    padding-left:.6em;&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs ul li:last-child {&lt;br /&gt;
   -webkit-border-radius: 0 1.5em 1.5em 0;&lt;br /&gt;
   -moz-border-radius: 0 1.5em 1.5em 0;&lt;br /&gt;
    border-radius: 0 1.5em 1.5em 0;&lt;br /&gt;
    border-right:none;&lt;br /&gt;
    padding-right:.5em;&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs li.selected {&lt;br /&gt;
    background: #f7bc79; /* Old browsers */&lt;br /&gt;
    background: -moz-linear-gradient(top,  #f7bc79 0%, #ee8301 41%); /* FF3.6+ */&lt;br /&gt;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f7bc79), color-stop(41%,#ee8301)); /* Chrome,Safari4+ */&lt;br /&gt;
    background: -webkit-linear-gradient(top,  #f7bc79 0%,#ee8301 41%); /* Chrome10+,Safari5.1+ */&lt;br /&gt;
    background: -o-linear-gradient(top,  #f7bc79 0%,#ee8301 41%); /* Opera 11.10+ */&lt;br /&gt;
    background: -ms-linear-gradient(top,  #f7bc79 0%,#ee8301 41%); /* IE10+ */&lt;br /&gt;
    background: linear-gradient(to bottom,  #f7bc79 0%,#ee8301 41%); /* W3C */&lt;br /&gt;
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f7bc79', endColorstr='#ee8301',GradientType=0 ); /* IE6-9 */&lt;br /&gt;
   -moz-box-shadow:none;&lt;br /&gt;
   -webkit-box-shadow:none;&lt;br /&gt;
    box-shadow:none;&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs li.selected a {&lt;br /&gt;
    text-shadow: 1px 1px 0 #f7bc79;&lt;br /&gt;
    cursor:default;&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs li.selected a:hover {&lt;br /&gt;
    color:#3b434e;&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs ul li:first-child.selected {&lt;br /&gt;
    background:none;&lt;br /&gt;
    filter:none; /* IE6-9 */&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs ul li:first-child.selected a {&lt;br /&gt;
    text-shadow: 1px 1px 0 #E4EDE6;&lt;br /&gt;
    color:#8190A8;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Zoo advertising */&lt;br /&gt;
&lt;br /&gt;
#zoolinks{&lt;br /&gt;
   position:relative;&lt;br /&gt;
   clear:both;&lt;br /&gt;
   float:right;&lt;br /&gt;
   margin:.5em .4em 0 0;&lt;br /&gt;
   z-index:0;&lt;br /&gt;
   &lt;br /&gt;
}&lt;br /&gt;
#zoolinks li{&lt;br /&gt;
  display:inline;&lt;br /&gt;
  margin-left:1em;&lt;br /&gt;
}&lt;br /&gt;
#zoolinks a {&lt;br /&gt;
   padding:0 0 1em 0;&lt;br /&gt;
   font-weight:bold;&lt;br /&gt;
   -moz-transition:all .5s; /* Firefox 4 */&lt;br /&gt;
   -webkit-transition:all .5s; /* Safari and Chrome */&lt;br /&gt;
   -o-transition:all .5s; /* Opera */&lt;br /&gt;
   transition:all .5s; /* Opera */&lt;br /&gt;
}&lt;br /&gt;
#zoolinks #css_link {&lt;br /&gt;
   top:-.1em;&lt;br /&gt;
   font-size:1.2em;&lt;br /&gt;
   font-family: 'Helvetica Neue',Helvetica, sans-serif;&lt;br /&gt;
   line-height: 1em;&lt;br /&gt;
   color: #ee8301;&lt;br /&gt;
   text-shadow:0px 0px 0 rgb(224,117,-13),1px 1px 0 rgb(210,103,-27),2px 2px 0 rgb(196,89,-41),3px 3px 0 rgb(181,74,-56),4px 4px 0 rgb(167,60,-70),5px 5px 0 rgb(153,46,-84), 6px 6px 0 rgb(139,32,-98),7px 7px 6px rgba(0,0,0,0.6),7px 7px 1px rgba(0,0,0,0.5),0px 0px 6px rgba(0,0,0,.2);&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
}&lt;br /&gt;
#zoolinks #css_link:hover { &lt;br /&gt;
    color:orange;&lt;br /&gt;
    font-size:1.4em;&lt;br /&gt;
}&lt;br /&gt;
#zoolinks #java_link{&lt;br /&gt;
    background-image:url('/design/java.png');&lt;br /&gt;
    background-size:1.5em; &lt;br /&gt;
    background-repeat:no-repeat;&lt;br /&gt;
    background-position:right top;&lt;br /&gt;
    padding-right:1.6em;&lt;br /&gt;
    margin-left:.1em;&lt;br /&gt;
    font-weight:normal;&lt;br /&gt;
    color: #3b434e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#zoolinks #linux_link {&lt;br /&gt;
    background-image:url('/design/penguin.png');&lt;br /&gt;
    background-size:1.8em; &lt;br /&gt;
    background-repeat:no-repeat;&lt;br /&gt;
    background-position:right top;&lt;br /&gt;
    padding-right:1.75em;&lt;br /&gt;
    margin-left:-.6em;&lt;br /&gt;
    color: #3b434e;&lt;br /&gt;
}&lt;br /&gt;
#zoolinks #java_link:hover {&lt;br /&gt;
    font-size:1.2em;&lt;br /&gt;
    color: #fff;&lt;br /&gt;
    text-shadow: 0px 1px 0px #999, 0px 2px 0px #888, 0px 3px 0px #777, 0px 4px 0px #666, 0px 5px 0px #555, 0px 6px 0px #444, 0px 7px 0px #333, 0px 8px 7px #001135;&lt;br /&gt;
}&lt;br /&gt;
#zoolinks #linux_link:hover {&lt;br /&gt;
   font-size:1.2em;&lt;br /&gt;
   color: #ee8301;&lt;br /&gt;
}&lt;br /&gt;
#zoolinks a#sql_hacks {&lt;br /&gt;
    margin: -.6em 0em 0 -.8em;&lt;br /&gt;
    opacity: 0.8;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    position:relative;&lt;br /&gt;
    float: right;&lt;br /&gt;
    -webkit-transform:scale(0.7);&lt;br /&gt;
    -moz-transform:scale(0.7);&lt;br /&gt;
    -o-transform:scale(0.7);&lt;br /&gt;
    transform:scale(0.7);&lt;br /&gt;
    -moz-box-shadow: 2px 2px 4px #333333;&lt;br /&gt;
    -webkit-box-shadow: 2px 2px 4px #333333;&lt;br /&gt;
    box-shadow: 2px 2px 4px #333333;&lt;br /&gt;
&lt;br /&gt;
    -moz-transition:all .5s; /* Firefox 4 */&lt;br /&gt;
    -webkit-transition:all .5s; /* Safari and Chrome */&lt;br /&gt;
    -o-transition:all .5s; /* Opera */&lt;br /&gt;
    transition:all .5s; /* Opera */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#zoolinks a#sql_hacks:hover {&lt;br /&gt;
    opacity:1;&lt;br /&gt;
    -webkit-transform:scale(1);&lt;br /&gt;
    -moz-transform:scale(1);&lt;br /&gt;
    -o-transform:scale(1);&lt;br /&gt;
    transform:scale(1);&lt;br /&gt;
    -moz-box-shadow: 5px 5px 2px #666666;&lt;br /&gt;
    -webkit-box-shadow: 5px 5px 2px #666666;&lt;br /&gt;
    box-shadow: 8px 8px 12px #666666;&lt;br /&gt;
    height:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* ================================== HEADER: */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
#mw-page-base {&lt;br /&gt;
    height:8.30em;&lt;br /&gt;
    background: -moz-linear-gradient(top,  rgba(171,183,157,1) 0%, rgba(223,229,222,0.9) 10%, rgba(223,229,222,0) 100%); /* FF3.6+ */&lt;br /&gt;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(171,183,157,1)), color-stop(10%,rgba(223,229,222,0.9)), color-stop(100%,rgba(223,229,222,0))); /* Chrome,Safari4+ */&lt;br /&gt;
    background: -webkit-linear-gradient(top,  rgba(171,183,157,1) 0%,rgba(223,229,222,0.9) 10%,rgba(223,229,222,0) 100%); /* Chrome10+,Safari5.1+ */&lt;br /&gt;
    background: -o-linear-gradient(top,  rgba(171,183,157,1) 0%,rgba(223,229,222,0.9) 10%,rgba(223,229,222,0) 100%); /* Opera 11.10+ */&lt;br /&gt;
    background: -ms-linear-gradient(top,  rgba(171,183,157,1) 0%,rgba(223,229,222,0.9) 10%,rgba(223,229,222,0) 100%); /* IE10+ */&lt;br /&gt;
    background: linear-gradient(to bottom,  rgba(171,183,157,1) 0%,rgba(223,229,222,0.9) 10%,rgba(223,229,222,0) 100%); /* W3C */&lt;br /&gt;
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#C9D6C9', endColorstr='#00dfe5de',GradientType=0 ); /* IE6-9 */&lt;br /&gt;
}&lt;br /&gt;
#mp-logo {&lt;br /&gt;
    position:absolute; left:1em; top:0.2em; z-index:+1;&lt;br /&gt;
}&lt;br /&gt;
#mp-logo img {&lt;br /&gt;
    width:20.5em;&lt;br /&gt;
}&lt;br /&gt;
#logo-desc {&lt;br /&gt;
    font-family: Helvetica, Arial, sans-serif;&lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
    font-size: 1.670em;&lt;br /&gt;
    color: #3b434e;&lt;br /&gt;
    margin:.2em 0 0 0; padding:0;&lt;br /&gt;
}&lt;br /&gt;
/* fix ff misbehaviour */&lt;br /&gt;
@-moz-document url-prefix() { &lt;br /&gt;
#logo-desc {font-size: 1.7em;}&lt;br /&gt;
}&lt;br /&gt;
/* fix ff win misbehaviour */&lt;br /&gt;
.win.gecko #logo-desc { margin-top:.2px; }&lt;br /&gt;
/* fix webkit misbahaviour */&lt;br /&gt;
@media screen and (-webkit-min-device-pixel-ratio:0) {&lt;br /&gt;
    #logo-desc { margin-top: -0px; }&lt;br /&gt;
}&lt;br /&gt;
#logo-desc span {&lt;br /&gt;
    color: #ee8301;&lt;br /&gt;
}&lt;br /&gt;
#logo-desc span span {&lt;br /&gt;
    color: #161525; font-weight:normal;&lt;br /&gt;
}&lt;br /&gt;
h1, h1#logo-desc, #mw-head-base a  {&lt;br /&gt;
    border:none; text-decoration:none;&lt;br /&gt;
}&lt;br /&gt;
#language {&lt;br /&gt;
    position:absolute;&lt;br /&gt;
    left:-1em;&lt;br /&gt;
    top:-.6em;&lt;br /&gt;
    z-index:+5;&lt;br /&gt;
}&lt;br /&gt;
#language li {&lt;br /&gt;
    display:inline-block;&lt;br /&gt;
    margin:0 .5em 0 0&lt;br /&gt;
}&lt;br /&gt;
#language ul li a img {&lt;br /&gt;
    opacity:0.5;&lt;br /&gt;
}&lt;br /&gt;
#language ul li a:hover img {&lt;br /&gt;
    opacity:1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* ================================== MAIN MENU */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#main_menu {&lt;br /&gt;
    font-family: &amp;quot;Arial&amp;quot;, sans-serif; &lt;br /&gt;
    font-size: .95em;&lt;br /&gt;
    margin:0;&lt;br /&gt;
    padding:0;&lt;br /&gt;
    line-height: 100%;&lt;br /&gt;
    color:#e3e3e3;&lt;br /&gt;
    background: #161525; /* Old browsers */&lt;br /&gt;
    background: -moz-linear-gradient(top,  #363d49 0%, #363d49 18%, #161525 69%, #161525 100%); /* FF3.6+ */&lt;br /&gt;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#363d49), color-stop(18%,#363d49), color-stop(69%,#161525), color-stop(100%,#161525)); /* Chrome,Safari4+ */&lt;br /&gt;
    background: -webkit-linear-gradient(top,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* Chrome10+,Safari5.1+ */&lt;br /&gt;
    background: -o-linear-gradient(top,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* Opera 11.10+ */&lt;br /&gt;
    background: -ms-linear-gradient(top,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* IE10+ */&lt;br /&gt;
    background: linear-gradient(to bottom,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* W3C */&lt;br /&gt;
}&lt;br /&gt;
.stickableMenu {&lt;br /&gt;
    position: absolute; top:11.5em; left:.6em;&lt;br /&gt;
    -webkit-border-radius: 1.5em;&lt;br /&gt;
    -moz-border-radius:1.5em;&lt;br /&gt;
   border-radius: 1.5em;&lt;br /&gt;
    box-shadow: 0px 0px 0px #3b434e;&lt;br /&gt;
}&lt;br /&gt;
.stickableMenu:hover {                                                      /* not perfect, needs js */&lt;br /&gt;
     -webkit-border-radius: 1.1em 1.1em 0 0;&lt;br /&gt;
    -moz-border-radius: 1.1em 1.1em 0 0;&lt;br /&gt;
    border-radius: 1.1em 1.1em 0 0;&lt;br /&gt;
    -moz-box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
    -webkit-box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
    box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
&lt;br /&gt;
    -moz-transition:all .7s; /* Firefox 4 */&lt;br /&gt;
    -webkit-transition:all .7s; /* Safari and Chrome */&lt;br /&gt;
    -o-transition:all .7s; /* Opera */&lt;br /&gt;
    transition:all .7s; /* Opera */&lt;br /&gt;
}&lt;br /&gt;
.fixedMenu { &lt;br /&gt;
    position: fixed; top: 0; left:0;&lt;br /&gt;
    z-index:+5; &lt;br /&gt;
    -webkit-border-radius: 0 0 1.5em 0;&lt;br /&gt;
    -moz-border-radius:0 0 1.5em 0;&lt;br /&gt;
    border-radius: 0 0 1.5em 0;&lt;br /&gt;
    -moz-box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
    -webkit-box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
    box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
}&lt;br /&gt;
.fixedMenu:hover {&lt;br /&gt;
    -webkit-border-radius: 0 1.1em 0 0;&lt;br /&gt;
    -moz-border-radius: 0 1.1em 0 0;&lt;br /&gt;
    border-radius: 0 1.1em 0 0;&lt;br /&gt;
}&lt;br /&gt;
#main_menu li {&lt;br /&gt;
    z-index:+2;&lt;br /&gt;
    margin:0;&lt;br /&gt;
    padding:0;&lt;br /&gt;
    float: left;&lt;br /&gt;
    position: relative;&lt;br /&gt;
    list-style: none;&lt;br /&gt;
}&lt;br /&gt;
/* main level link */&lt;br /&gt;
#main_menu a {&lt;br /&gt;
    color: #e3e3e3;&lt;br /&gt;
    text-decoration: none;&lt;br /&gt;
    display: block;&lt;br /&gt;
    padding:.6em 1.3em .6em 0;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    background-image:url('/design/ic_down.png');&lt;br /&gt;
    background-repeat:no-repeat;&lt;br /&gt;
    background-position:right center;&lt;br /&gt;
}&lt;br /&gt;
#main_menu &amp;gt; li:first-child a {&lt;br /&gt;
    margin-left:+1.4em;&lt;br /&gt;
}&lt;br /&gt;
#main_menu li &amp;gt; a {  &lt;br /&gt;
   margin-right:+.4em;&lt;br /&gt;
}  &lt;br /&gt;
#main_menu &amp;gt; li:last-child a {&lt;br /&gt;
    margin-right:+1.4em;&lt;br /&gt;
}&lt;br /&gt;
/* main level link hover */&lt;br /&gt;
#main_menu .current a, #main_menu li:hover &amp;gt; a {&lt;br /&gt;
    color: #ee8301;&lt;br /&gt;
    background-image:url('/design/ic_down_hover.png');&lt;br /&gt;
}&lt;br /&gt;
/* sub levels link description */&lt;br /&gt;
#main_menu ul li:hover, #main_menu li:hover li {&lt;br /&gt;
   color: #909898;&lt;br /&gt;
}&lt;br /&gt;
/* sub levels link hover */&lt;br /&gt;
#main_menu ul li:hover a, #main_menu li:hover li a {&lt;br /&gt;
   color: #c4c4c4;&lt;br /&gt;
   font-weight:bold;&lt;br /&gt;
   margin:-.7em 0 -.8em 0;&lt;br /&gt;
/*&lt;br /&gt;
   background-image:url('/design/progress_bar.png');&lt;br /&gt;
   background-size:3.5em;&lt;br /&gt;
*/&lt;br /&gt;
   background-image:none;&lt;br /&gt;
}&lt;br /&gt;
#main_menu li:hover li a:hover {&lt;br /&gt;
   color: #ee8301;&lt;br /&gt;
/*&lt;br /&gt;
   background-image:url('/design/progress_bar_hover.png');&lt;br /&gt;
*/&lt;br /&gt;
   background-image:none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ============================== style for menu progress bar */&lt;br /&gt;
&lt;br /&gt;
.progressbarbg1 {&lt;br /&gt;
  width: 8ex;&lt;br /&gt;
  height: 1.6ex;&lt;br /&gt;
  background:black;&lt;br /&gt;
  border-radius: 1ex;&lt;br /&gt;
  border:2.5px solid #92A599;&lt;br /&gt;
  /* add some position settings here #92A599  #8FA397 */&lt;br /&gt;
  float:right;&lt;br /&gt;
  margin:-1em 0 0 0;&lt;br /&gt;
}&lt;br /&gt;
.progressbar1 {&lt;br /&gt;
  width: 7ex;&lt;br /&gt;
  height: 1ex;&lt;br /&gt;
  position: relative;&lt;br /&gt;
  top: 0.3ex;&lt;br /&gt;
  left: .3ex;&lt;br /&gt;
  background: #92A599;&lt;br /&gt;
  border-radius: 1ex;&lt;br /&gt;
  border-width: 1px;&lt;br /&gt;
  border-color: #000000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* remove indicators from reference sub menu */&lt;br /&gt;
#main_menu ul#mm3 li a, #main_menu ul#mm3 li:hover a {&lt;br /&gt;
   background-image:none;&lt;br /&gt;
}&lt;br /&gt;
/* level 2 list */&lt;br /&gt;
#main_menu li ul {&lt;br /&gt;
    /*display: none;*/&lt;br /&gt;
	visibility: hidden;&lt;br /&gt;
	opacity: 0;&lt;br /&gt;
    position: absolute; top: 1.8em;&lt;br /&gt;
    min-width:35em;&lt;br /&gt;
    font-size:.85em;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 1.65em 1.5em .5em 1.5em;&lt;br /&gt;
    background: #161525; /* Old browsers */&lt;br /&gt;
    background: -moz-linear-gradient(top,  #161525 0%, #000000 57%); /* FF3.6+ */&lt;br /&gt;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#161525), color-stop(57%,#000000)); /* Chrome,Safari4+ */&lt;br /&gt;
    background: -webkit-linear-gradient(top,  #161525 0%,#000000 57%); /* Chrome10+,Safari5.1+ */&lt;br /&gt;
    background: -o-linear-gradient(top,  #161525 0%,#000000 57%); /* Opera 11.10+ */&lt;br /&gt;
    background: -ms-linear-gradient(top,  #161525 0%,#000000 57%); /* IE10+ */&lt;br /&gt;
    background: linear-gradient(to bottom,  #161525 0%,#000000 57%); /* W3C */&lt;br /&gt;
    -webkit-border-radius:  0 2em 2em 2em;&lt;br /&gt;
    -moz-border-radius: 0 2em 2em 2em;&lt;br /&gt;
    border-radius:  0 2em 2em 2em;&lt;br /&gt;
    -moz-box-shadow: 2px 4px 12px #000000;&lt;br /&gt;
    -webkit-box-shadow: 2px 4px 12px #000000;&lt;br /&gt;
    box-shadow: 2px 4px 12px #000000;&lt;br /&gt;
    /*&lt;br /&gt;
	transition:visibility .25s linear .25s, opacity .25s linear .25s;&lt;br /&gt;
	-moz-transition:visibility .25s linear .25s, opacity .25s linear .25s;&lt;br /&gt;
	-webkit-transition:visibility .25s linear .25s, opacity .25s linear .25s;&lt;br /&gt;
	-o-transition:visibility .25s linear .25s, opacity .25s linear .25s;&lt;br /&gt;
    */&lt;br /&gt;
}&lt;br /&gt;
/* needs to be adjusted for each introduced ul */&lt;br /&gt;
#main_menu li #mm2 {left:-7.9em;}&lt;br /&gt;
#main_menu li #mm3 {left:-16.8em;}&lt;br /&gt;
@-moz-document url-prefix() { &lt;br /&gt;
    #main_menu li #mm2 { left:-8.1em; } &lt;br /&gt;
    #main_menu li #mm3 { left:-17.1em; } &lt;br /&gt;
} &lt;br /&gt;
.win.gecko #main_menu li #mm2 { left:-7.9em; }&lt;br /&gt;
.win.gecko #main_menu li #mm3 { left:-16.85em; }&lt;br /&gt;
&lt;br /&gt;
.ie #main_menu li #mm2 { left:-8.15em; }&lt;br /&gt;
.ie #main_menu li #mm3 { left:-17.15em; }&lt;br /&gt;
&lt;br /&gt;
.mac.webkit #main_menu li #mm2 { left:-8em; }&lt;br /&gt;
.mac.webkit #main_menu li #mm3 { left:-16.95em; }&lt;br /&gt;
&lt;br /&gt;
#selector[id=selector] { color: red; }&lt;br /&gt;
&lt;br /&gt;
#main_menu li:hover ul&amp;gt; li {&lt;br /&gt;
    border-bottom:thin solid #acbbaf;&lt;br /&gt;
    margin:0 0 .45em 0;&lt;br /&gt;
    padding: 0 0 .4em 0;&lt;br /&gt;
}&lt;br /&gt;
#main_menu li:hover ul &amp;gt; li:last-child {&lt;br /&gt;
    border-bottom:none;&lt;br /&gt;
}&lt;br /&gt;
/* dropdown */&lt;br /&gt;
#main_menu li:hover &amp;gt; ul {&lt;br /&gt;
	display: block;&lt;br /&gt;
	visibility: visible;&lt;br /&gt;
	opacity: 1;&lt;br /&gt;
}&lt;br /&gt;
#main_menu ul li {&lt;br /&gt;
	float: none;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* clearfix */&lt;br /&gt;
#main_menu:after {&lt;br /&gt;
	content: &amp;quot;.&amp;quot;;&lt;br /&gt;
	display: block;&lt;br /&gt;
	clear: both;&lt;br /&gt;
	visibility: hidden;&lt;br /&gt;
	line-height: 0;&lt;br /&gt;
	height: 0;&lt;br /&gt;
}&lt;br /&gt;
#main_menu {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
}&lt;br /&gt;
html[xmlns] #main_menu {&lt;br /&gt;
	display: block;&lt;br /&gt;
}&lt;br /&gt;
* html #main_menu {&lt;br /&gt;
	height: 1%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* ================================== SIDE MENU: */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
body #mw-panel {&lt;br /&gt;
    margin-top:3.3em;&lt;br /&gt;
}&lt;br /&gt;
#mw-panel #p-Reference h5,&lt;br /&gt;
body #mw-panel div.portal h5 {&lt;br /&gt;
    font-size: 1.3em;&lt;br /&gt;
    font-stretch:normal;&lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
    margin:0; padding: 0 0 0 0.6em;&lt;br /&gt;
    color:#161525;&lt;br /&gt;
}&lt;br /&gt;
#mw-panel #p-Reference li a {&lt;br /&gt;
    color:#3b434e;&lt;br /&gt;
}&lt;br /&gt;
#mw-panel #p-Reference li a:hover {&lt;br /&gt;
    color:#ff530d;&lt;br /&gt;
    padding-left:1.1em;&lt;br /&gt;
    background-image:url('/design/side_pointer2.png');&lt;br /&gt;
    background-size:.8em;&lt;br /&gt;
    background-repeat:no-repeat;&lt;br /&gt;
    background-position:left center;&lt;br /&gt;
}&lt;br /&gt;
body #mw-panel #p-Reference .body,&lt;br /&gt;
body #mw-panel div.portal div.body {&lt;br /&gt;
   background-image:none; &lt;br /&gt;
}&lt;br /&gt;
.fixedRef { &lt;br /&gt;
    position: fixed; top:3em; left:0;&lt;br /&gt;
    width:10em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#mw-panel .portal .body ul li {&lt;br /&gt;
    text-align:right;&lt;br /&gt;
}&lt;br /&gt;
#engine {&lt;br /&gt;
    background:#161525;&lt;br /&gt;
    color:#e3e3e3;&lt;br /&gt;
    width: 9em; height: 2.4em;&lt;br /&gt;
    margin:.65em 0 0 0;&lt;br /&gt;
    text-align:left center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ================================== CONTENT: */&lt;br /&gt;
&lt;br /&gt;
div#content a.zoo_external {&lt;br /&gt;
    color: #161525;&lt;br /&gt;
}&lt;br /&gt;
div#content a.zoo_external:hover {&lt;br /&gt;
    color: #ee8301;&lt;br /&gt;
}&lt;br /&gt;
div#content a.zoo_external, div#content a.zoo_external[href^=&amp;quot;gopher://&amp;quot;] {&lt;br /&gt;
    background: url(&amp;quot;/design/ex-link2.png&amp;quot;) no-repeat scroll right center transparent;&lt;br /&gt;
    padding-right: 18px;&lt;br /&gt;
}&lt;br /&gt;
div#content a.zoo_external:hover, div#content a.zoo_external:hover[href^=&amp;quot;gopher://&amp;quot;] {&lt;br /&gt;
    background: url(&amp;quot;/design/ex-link.png&amp;quot;) no-repeat scroll right center transparent;&lt;br /&gt;
    padding-right: 18px;&lt;br /&gt;
}&lt;br /&gt;
#firstHeading {&lt;br /&gt;
    font-size: 1.3em;&lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    color:#161525;&lt;br /&gt;
    margin:0 0 .9em 0;&lt;br /&gt;
    padding:0;&lt;br /&gt;
    border:none;&lt;br /&gt;
    border-bottom:thin solid #ee8301;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr {&lt;br /&gt;
    margin-left:1em;&lt;br /&gt;
}&lt;br /&gt;
/* homepage slogan */&lt;br /&gt;
.slogan {&lt;br /&gt;
    font-size: 1.3em;&lt;br /&gt;
    font-weight:normal;&lt;br /&gt;
    color:#3b434e;&lt;br /&gt;
    margin-left:-.5em;&lt;br /&gt;
}&lt;br /&gt;
.slogan span {&lt;br /&gt;
     font-weight:bold;&lt;br /&gt;
     color:#161525;&lt;br /&gt;
}&lt;br /&gt;
div.tutblock, &lt;br /&gt;
div.refblock,&lt;br /&gt;
div.resblock {&lt;br /&gt;
    border:none;&lt;br /&gt;
    margin-top:.2em;&lt;br /&gt;
    margin-bottom:0;&lt;br /&gt;
    margin-left:-1em;&lt;br /&gt;
    -webkit-border-radius: 1.5em;&lt;br /&gt;
    -moz-border-radius:1.5em;&lt;br /&gt;
    border-radius: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
/* add extra margin so the resources block floats under tutorials */&lt;br /&gt;
div.refblock {&lt;br /&gt;
    margin-bottom:+4em;&lt;br /&gt;
}&lt;br /&gt;
/* fix webkit misbahaviour */&lt;br /&gt;
@media screen and (-webkit-min-device-pixel-ratio:0) {&lt;br /&gt;
  div.tutblock, &lt;br /&gt;
  div.refblock,&lt;br /&gt;
  div.resblock { margin-top:.6em; }&lt;br /&gt;
}&lt;br /&gt;
div.tutblock:hover, &lt;br /&gt;
div.refblock:hover,&lt;br /&gt;
div.resblock:hover  {&lt;br /&gt;
   -moz-box-shadow: 1px 1px 1px #3b434e;&lt;br /&gt;
   -webkit-box-shadow: 1px 1px 1px #3b434e;&lt;br /&gt;
   box-shadow: 1px 1px 1px #3b434e;&lt;br /&gt;
   background:#dae5d9;&lt;br /&gt;
   transition:background 1s;&lt;br /&gt;
   -moz-transition:background 1s; /* Firefox 4 */&lt;br /&gt;
   -webkit-transition:background 2s; /* Safari and Chrome */&lt;br /&gt;
   -o-transition:background 1s; /* Opera */&lt;br /&gt;
}&lt;br /&gt;
div.tutblock:hover h2,&lt;br /&gt;
div.refblock:hover h2,&lt;br /&gt;
div.resblock:hover h2 {&lt;br /&gt;
   color:#ee8301;&lt;br /&gt;
   border-bottom: 1px solid #ee8301;&lt;br /&gt;
}&lt;br /&gt;
div.tutblock:hover dl,&lt;br /&gt;
div.refblock:hover dl,&lt;br /&gt;
div.resblock:hover dl {&lt;br /&gt;
   margin-top: -1px;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr h2 {&lt;br /&gt;
    font-size:1.2em;&lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
    color:#3b434e;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr a {&lt;br /&gt;
    color:#161525;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr .tutblock a:hover,&lt;br /&gt;
.mw-content-ltr .refblock a:hover,&lt;br /&gt;
.mw-content-ltr .resblock a:hover {&lt;br /&gt;
    color:#ee8301;&lt;br /&gt;
    background-image:url('/design/side_pointer2.png');&lt;br /&gt;
    background-size:.8em;&lt;br /&gt;
    background-repeat:no-repeat;&lt;br /&gt;
    background-position:left center;&lt;br /&gt;
    margin-left:-1.1em; padding-left:+1.1em;&lt;br /&gt;
}&lt;br /&gt;
/* this shouldn't be necessarry - investigate further */&lt;br /&gt;
.mw-content-ltr .refblock a:hover {&lt;br /&gt;
    margin-left:-2em; padding-left:+2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-content-ltr .tutblock dl dt,&lt;br /&gt;
.mw-content-ltr .refblock dl dt,&lt;br /&gt;
.mw-content-ltr .resblock dl dt  {&lt;br /&gt;
    margin:0 0 -.1em 0; padding:0;&lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
    color:#3b434e;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr .resblock dl dt  {&lt;br /&gt;
    margin:0; padding:0;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr .tutblock dl dt::first-letter,&lt;br /&gt;
.mw-content-ltr .refblock dl dt::first-letter {&lt;br /&gt;
    color:#3b434e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-content-ltr .tutblock dl dt:hover:first-letter,&lt;br /&gt;
.mw-content-ltr .refblock dl dt:hover:first-letter,&lt;br /&gt;
.mw-content-ltr .resblock dl dt:hover:first-letter  {&lt;br /&gt;
    color:#161525;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr .tutblock dl dd,&lt;br /&gt;
.mw-content-ltr .refblock dl dd,&lt;br /&gt;
.mw-content-ltr .resblock dl dd  {&lt;br /&gt;
    margin:0 0 .7em 0; &lt;br /&gt;
    padding:0 1em 0 0;&lt;br /&gt;
    line-height:105%;&lt;br /&gt;
    color:#3b434e;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr .tutblock dl dd a,&lt;br /&gt;
.mw-content-ltr .refblock dl dd a,&lt;br /&gt;
.mw-content-ltr .resblock dl dd a  {&lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
    color:#3b434e;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr .tutblock dl dd a:hover,&lt;br /&gt;
.mw-content-ltr .refblock dl dd a:hover,&lt;br /&gt;
.mw-content-ltr .resblock dl dd a:hover  {&lt;br /&gt;
    background-image:none;&lt;br /&gt;
    margin-left:-1.1em; padding-left:-1.1em;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr .resblock dl dd a  {&lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
    color:#161525;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* ================================== TUTORIALS HEADER: */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.ref_section {&lt;br /&gt;
    background:none; border:none;&lt;br /&gt;
    -moz-border-radius:.8em;&lt;br /&gt;
    -webkit-border-radius:.8em;&lt;br /&gt;
    border-radius:.8em;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
.db_ref { &lt;br /&gt;
    *border-collapse: collapse; /* IE7 and lower */&lt;br /&gt;
    border-spacing:0;&lt;br /&gt;
    border:none;&lt;br /&gt;
    color:#dae5d9;&lt;br /&gt;
    display: inline-block;&lt;br /&gt;
    -moz-border-radius: .8em;&lt;br /&gt;
    -webkit-border-radius: .8em;&lt;br /&gt;
    border-radius: .8em;&lt;br /&gt;
}&lt;br /&gt;
.db_ref caption {&lt;br /&gt;
    color:#161525;&lt;br /&gt;
    background:#d2e5d1;&lt;br /&gt;
    display: block;&lt;br /&gt;
}&lt;br /&gt;
.db_ref tr:hover {&lt;br /&gt;
    color:#161525;&lt;br /&gt;
    background:#e3e3e3;&lt;br /&gt;
    -o-transition: all 0.1s ease-in-out;&lt;br /&gt;
    -webkit-transition: all 0.1s ease-in-out;&lt;br /&gt;
    -moz-transition: all 0.1s ease-in-out;&lt;br /&gt;
    -ms-transition: all 0.1s ease-in-out;&lt;br /&gt;
    transition: all 0.1s ease-in-out;     &lt;br /&gt;
}    &lt;br /&gt;
    &lt;br /&gt;
.db_ref td, .db_ref th {&lt;br /&gt;
    border-left: 1px solid #3b434e;&lt;br /&gt;
    border-top: none;&lt;br /&gt;
    padding:.1em .7em .1em .5em;&lt;br /&gt;
}&lt;br /&gt;
.db_ref tr {  &lt;br /&gt;
    background:#3b434e;&lt;br /&gt;
}&lt;br /&gt;
.db_ref tr:first-child,&lt;br /&gt;
.db_ref tr:last-child {  &lt;br /&gt;
    background:none;&lt;br /&gt;
}&lt;br /&gt;
/*&lt;br /&gt;
.db_ref td {&lt;br /&gt;
    background:#3b434e;&lt;br /&gt;
}&lt;br /&gt;
*/&lt;br /&gt;
.db_ref th {&lt;br /&gt;
    background-color:#161525;&lt;br /&gt;
    color:#e3e3e3;&lt;br /&gt;
    padding:.2em .7em .2em .5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.db_ref td:first-child, .db_ref th:first-child {&lt;br /&gt;
    border-left:none;&lt;br /&gt;
}&lt;br /&gt;
.db_ref td[colspan] {  &lt;br /&gt;
    border:none;&lt;br /&gt;
    background:#3b434e;&lt;br /&gt;
}&lt;br /&gt;
.db_ref td[colspan]:hover {  &lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
    color:#161525;&lt;br /&gt;
    background:#d2e5d1;&lt;br /&gt;
}&lt;br /&gt;
.db_ref th:first-child {&lt;br /&gt;
    -moz-border-radius: .8em 0 0 0;&lt;br /&gt;
    -webkit-border-radius: .8em 0 0 0;&lt;br /&gt;
    border-radius: .8em 0 0 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.db_ref th:last-child {&lt;br /&gt;
    -moz-border-radius: 0 .8em 0 0;&lt;br /&gt;
    -webkit-border-radius: 0 .8em 0 0;&lt;br /&gt;
    border-radius: 0 .8em 0 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.db_ref th:only-child{&lt;br /&gt;
    -moz-border-radius: .8em .8em 0 0;&lt;br /&gt;
    -webkit-border-radius: .8em .8em 0 0;&lt;br /&gt;
    border-radius: .8em .8em 0 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.db_ref tr:last-child td:first-child {&lt;br /&gt;
    -moz-border-radius: 0 0 0 .8em;&lt;br /&gt;
    -webkit-border-radius: 0 0 0 .8em;&lt;br /&gt;
    border-radius: 0 0 0 .8em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.db_ref tr:last-child td:last-child {&lt;br /&gt;
    -moz-border-radius: 0 0 .8em 0;&lt;br /&gt;
    -webkit-border-radius: 0 0 .8em 0;&lt;br /&gt;
    border-radius: 0 0 .8em 0;&lt;br /&gt;
}&lt;br /&gt;
.db_ref tr:last-child td:last-child[colspan] {&lt;br /&gt;
   -moz-border-radius:0 0 .8em .8em;&lt;br /&gt;
    -webkit-border-radius:0 0 .8em .8em;&lt;br /&gt;
    border-radius:0 0 .8em .8em;&lt;br /&gt;
}&lt;br /&gt;
.fixedDbRef { &lt;br /&gt;
    position: fixed; top:-1em; right:-2em;&lt;br /&gt;
    -moz-box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
    -webkit-box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
    box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
    opacity:0.5;&lt;br /&gt;
    -webkit-transform:scale(0.8);&lt;br /&gt;
    -moz-transform:scale(0.8);&lt;br /&gt;
    -o-transform:scale(0.8);&lt;br /&gt;
    transform:scale(0.8);&lt;br /&gt;
    &lt;br /&gt;
    -moz-transition:all 1s; /* Firefox 4 */&lt;br /&gt;
    -webkit-transition:all 1s; /* Safari and Chrome */&lt;br /&gt;
    -o-transition:all 1s; /* Opera */&lt;br /&gt;
    transition:all 1s; /* Opera */&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
.fixedDbRef:hover {&lt;br /&gt;
    top:0; right:0;&lt;br /&gt;
    opacity:1;&lt;br /&gt;
    -webkit-transform:scale(1);&lt;br /&gt;
    -moz-transform:scale(1);&lt;br /&gt;
    -o-transform:scale(1);&lt;br /&gt;
    transform:scale(1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* ================================== TUTORIALS CONTENT: */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.ref_section {&lt;br /&gt;
        float:right;&lt;br /&gt;
        margin-left:1em&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr #toc, .mw-content-ltr .toc, .mw-content-ltr .tochidden {&lt;br /&gt;
    -webkit-border-radius: 1em;&lt;br /&gt;
    -moz-border-radius:1em;&lt;br /&gt;
    border-radius: 1em;&lt;br /&gt;
    border-collapse: separate;&lt;br /&gt;
    padding:0 .5em 0 .5em;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr table#toc td, .mw-content-ltr .toc td, .mw-content-ltr .tochidden td {&lt;br /&gt;
    border:none; margin:0; padding:0;&lt;br /&gt;
}&lt;br /&gt;
.extra_space {&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
.mw-headline {&lt;br /&gt;
    margin-bottom:-2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* ============================== PROGRESS PANEL */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.progress_panel {&lt;br /&gt;
   display:inline-block;&lt;br /&gt;
   border:thin solid rgba(33,33,33,0.7);&lt;br /&gt;
   -webkit-border-radius: 3em 2em 3em 2em / 2em 1em 2em 1em;&lt;br /&gt;
   -moz-border-radius: 3em 2em 3em 2em / 2em 1em 2em 1em;&lt;br /&gt;
   border-radius: 3em 2em 3em 2em / 2em 1em 2em 1em;&lt;br /&gt;
   background: #e3ede3; /* Old browsers */&lt;br /&gt;
   background: -moz-linear-gradient(-45deg, #e3ede3 1%, #dae5d9 100%); /* FF3.6+ */&lt;br /&gt;
   background: -webkit-gradient(linear, left top, right bottom, color-stop(1%,#e3ede3), color-stop(100%,#dae5d9)); /* Chrome,Safari4+ */&lt;br /&gt;
   background: -webkit-linear-gradient(-45deg, #e3ede3 1%,#dae5d9 100%); /* Chrome10+,Safari5.1+ */&lt;br /&gt;
   background: -o-linear-gradient(-45deg, #e3ede3 1%,#dae5d9 100%); /* Opera 11.10+ */&lt;br /&gt;
   background: -ms-linear-gradient(-45deg, #e3ede3 1%,#dae5d9 100%); /* IE10+ */&lt;br /&gt;
   background: linear-gradient(135deg, #e3ede3 1%,#dae5d9 100%); /* W3C */&lt;br /&gt;
   -moz-box-shadow: 0px 0px 2px #333333;&lt;br /&gt;
   -webkit-box-shadow: 0px 0px 2px #333333;&lt;br /&gt;
   box-shadow: 0px 0px 2px #333333;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
.progress_panel &amp;gt; div {&lt;br /&gt;
    padding:1.2em 1.5em 1.5em 1.2em;&lt;br /&gt;
    background:#D2DDD2;&lt;br /&gt;
    -webkit-border-radius: 3em 2em 3em 2em / 2em 1em 2em 1em;&lt;br /&gt;
    -moz-border-radius: 3em 2em 3em 2em / 2em 1em 2em 1em;&lt;br /&gt;
    border-radius: 3em 2em 3em 2em / 2em 1em 2em 1em;&lt;br /&gt;
    -moz-box-shadow:inset 2px 2px 12px #e7f0e7;&lt;br /&gt;
    -webkit-box-shadow:inset 2px 2px 12px #e7f0e7;&lt;br /&gt;
    box-shadow:inset 2px 2px 12px #e7f0e7;&lt;br /&gt;
}&lt;br /&gt;
.progress_panel .summary {&lt;br /&gt;
    color: #3b434e;&lt;br /&gt;
    font-size: 0.85em;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    text-shadow: 1px 1px 0 #E4EDE6;&lt;br /&gt;
    margin: 0.5em 0;&lt;br /&gt;
    padding:0;&lt;br /&gt;
    line-height: 140%;&lt;br /&gt;
}&lt;br /&gt;
.progressbarbg {&lt;br /&gt;
    background:#161525;&lt;br /&gt;
    border-radius: 2ex 2ex 2ex 2ex;&lt;br /&gt;
    height: 2em;&lt;br /&gt;
    width: 50ex;&lt;br /&gt;
    border-bottom:2px solid #d2e5d1;&lt;br /&gt;
    border-right: 2px solid #d2e5d1;&lt;br /&gt;
    -moz-box-shadow: 2px 2px 3px #1a1a1a;&lt;br /&gt;
    -webkit-box-shadow: 2px 2px 3px #1a1a1a;&lt;br /&gt;
    box-shadow: 2px 2px 3px #1a1a1a;&lt;br /&gt;
}&lt;br /&gt;
.progressbar {&lt;br /&gt;
    position: relative;&lt;br /&gt;
    left: 1ex; top: 1ex;&lt;br /&gt;
    width: 48ex;&lt;br /&gt;
    height: 1em;&lt;br /&gt;
    background: #323832; /* Old browsers */&lt;br /&gt;
    background: -moz-linear-gradient(left, #323832 0%, #bfcebe 90%, #e9ffe7 100%); /* FF3.6+ */&lt;br /&gt;
    background: -webkit-gradient(linear, left top, right top, color-stop(0%,#323832), color-stop(90%,#bfcebe), color-stop(100%,#e9ffe7)); /* Chrome,Safari4+ */&lt;br /&gt;
    background: -webkit-linear-gradient(left, #323832 0%,#bfcebe 90%,#e9ffe7 100%); /* Chrome10+,Safari5.1+ */&lt;br /&gt;
    background: -o-linear-gradient(left, #323832 0%,#bfcebe 90%,#e9ffe7 100%); /* Opera 11.10+ */&lt;br /&gt;
    background: -ms-linear-gradient(left, #323832 0%,#bfcebe 90%,#e9ffe7 100%); /* IE10+ */&lt;br /&gt;
    background: linear-gradient(to right, #323832 0%,#bfcebe 90%,#e9ffe7 100%); /* W3C */&lt;br /&gt;
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#323832', endColorstr='#e9ffe7',GradientType=1 ); /* IE6-9 */&lt;br /&gt;
    border-radius: 1ex 1ex 1ex 1ex;&lt;br /&gt;
    -moz-box-shadow: 2px 0 2px #4D4D4D;&lt;br /&gt;
    -webkit-box-shadow: 2px 0 2px #4D4D4D;&lt;br /&gt;
    box-shadow: 2px 0 2px #4D4D4D;  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ======================= CORRECT/INCORRECT INDICATOR */&lt;br /&gt;
&lt;br /&gt;
.qcorrect, .qincorrect {&lt;br /&gt;
  width:3em;&lt;br /&gt;
  height:3em;&lt;br /&gt;
  position:absolute;&lt;br /&gt;
  left:-1em;&lt;br /&gt;
  margin: -0.5em 0 0 1em;&lt;br /&gt;
  background-size:3em;&lt;br /&gt;
  background-repeat:no-repeat;&lt;br /&gt;
  background-position:center;&lt;br /&gt;
}&lt;br /&gt;
.qcorrect {&lt;br /&gt;
  background-image:url('/design/done9.png');&lt;br /&gt;
}&lt;br /&gt;
.qincorrect {&lt;br /&gt;
  background-image:url('/design/undone9.png');&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* ======================= TUTS USER INPUT */&lt;br /&gt;
&lt;br /&gt;
/* Prevent floating after a .qu */&lt;br /&gt;
.qu+*{&lt;br /&gt;
  clear:left;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.qu {&lt;br /&gt;
    border:none;&lt;br /&gt;
    border-top:thin solid #ee8301;&lt;br /&gt;
    margin: 2ex 0.2ex 0.2ex;&lt;br /&gt;
    padding: 10px;&lt;br /&gt;
}&lt;br /&gt;
.qu span.id {&lt;br /&gt;
    margin-bottom:.5em;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr p,&lt;br /&gt;
.qu p {&lt;br /&gt;
    margin-bottom:1em;&lt;br /&gt;
}&lt;br /&gt;
.quf {&lt;br /&gt;
    margin:0 0 1em 0;&lt;br /&gt;
}&lt;br /&gt;
.quf textarea {&lt;br /&gt;
    -webkit-border-radius:3em 1.2em 3em 1.2em / 3em 1.5em 4em 0;&lt;br /&gt;
    -moz-border-radius:3em 1.2em 3em 1.2em / 3em 1.5em 4em 0;&lt;br /&gt;
    border-radius:3em 1.2em 3em 1.2em / 3em 1.5em 4em 0;&lt;br /&gt;
    border-top:1.6em solid #3b434e;&lt;br /&gt;
    border-bottom:2em solid #3b434e;&lt;br /&gt;
    border-right:1.6em solid #3b434e;&lt;br /&gt;
    border-left:1.3em solid #3b434e;&lt;br /&gt;
    background:#e3e3e3;&lt;br /&gt;
    margin:.5em 0 -1em 0em;&lt;br /&gt;
    padding:.5em 0 0 .5em;&lt;br /&gt;
    width: 29.5em;&lt;br /&gt;
    overflow:auto;&lt;br /&gt;
}&lt;br /&gt;
.mac.webkit .quf textarea { width: 34.5em }&lt;br /&gt;
.win.gecko .quf textarea { width: 30em; }&lt;br /&gt;
.mac.gecko .quf textarea { width: 28.5em; }&lt;br /&gt;
.ie .quf textarea { width: 27em; }&lt;br /&gt;
.opera .quf textarea { width: 35.5em; }&lt;br /&gt;
.win.opera .quf textarea { width: 30em; }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.submitSQL {&lt;br /&gt;
    margin:-1.1em 0 0 0em; /* win ff */&lt;br /&gt;
    padding:.5em 1em .5em 1em;&lt;br /&gt;
    color:#e3e3e3;&lt;br /&gt;
    height:auto;&lt;br /&gt;
    background: #161525; /* Old browsers */&lt;br /&gt;
    background: -moz-linear-gradient(top,  #363d49 0%, #363d49 18%, #161525 69%, #161525 100%); /* FF3.6+ */&lt;br /&gt;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#363d49), color-stop(18%,#363d49), color-stop(69%,#161525), color-stop(100%,#161525)); /* Chrome,Safari4+ */&lt;br /&gt;
    background: -webkit-linear-gradient(top,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* Chrome10+,Safari5.1+ */&lt;br /&gt;
    background: -o-linear-gradient(top,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* Opera 11.10+ */&lt;br /&gt;
    background: -ms-linear-gradient(top,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* IE10+ */&lt;br /&gt;
    background: linear-gradient(to bottom,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* W3C */&lt;br /&gt;
    border:1em solid #3b434e;&lt;br /&gt;
    -webkit-border-radius:2.5em;&lt;br /&gt;
    -moz-border-radius:2.5em;&lt;br /&gt;
    border-radius:2.5em;&lt;br /&gt;
    z-index:+1;&lt;br /&gt;
}&lt;br /&gt;
.webkit .submitSQL { margin:-1.1em 0 0 0em; }&lt;br /&gt;
.mac.gecko .submitSQL { margin:-1.1em 0 0 0em; }&lt;br /&gt;
.ie .submitSQL { margin:-1em 0 0 0em; }&lt;br /&gt;
.opera .submitSQL { margin:-1em 0 0 0em; }&lt;br /&gt;
.submitSQL:hover {&lt;br /&gt;
    color:#ffffff;&lt;br /&gt;
    background:#161525;&lt;br /&gt;
    -webkit-background-clip: padding-box; &lt;br /&gt;
    -moz-background-clip:    padding; &lt;br /&gt;
    background-clip:         padding-box;&lt;br /&gt;
}&lt;br /&gt;
.quf .reset {&lt;br /&gt;
   cursor:pointer;&lt;br /&gt;
   display:inline-block;&lt;br /&gt;
   -moz-border-radius:0 0 1em 1em;&lt;br /&gt;
   -webkit-border-radius:0 0 1em 1em;&lt;br /&gt;
   border-radius:0 0 1em 1em;&lt;br /&gt;
   background:#3B434E;&lt;br /&gt;
   color:#e3e3e3;&lt;br /&gt;
   left: 12.6em;&lt;br /&gt;
   padding: 0 1.2em 0.2em;&lt;br /&gt;
   position: relative;&lt;br /&gt;
   top: 0;&lt;br /&gt;
}&lt;br /&gt;
.quf .reset:hover {&lt;br /&gt;
   color:#ee8301;&lt;br /&gt;
}&lt;br /&gt;
.win.webkit .quf .reset { left: 12em; }&lt;br /&gt;
.win.gecko .quf .reset { left: 12em; }&lt;br /&gt;
.ie .quf .reset { left: 10em; }&lt;br /&gt;
&lt;br /&gt;
div.res {&lt;br /&gt;
    background:#dae5d9;&lt;br /&gt;
    color:#3b434e;&lt;br /&gt;
    border:none;&lt;br /&gt;
    padding:1em;&lt;br /&gt;
    -webkit-border-radius: 1.5em;&lt;br /&gt;
    -moz-border-radius:1.5em;&lt;br /&gt;
    border-radius: 1.5em;&lt;br /&gt;
    -moz-box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
    -webkit-box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
    box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
    display:inline-block;&lt;br /&gt;
    margin-left: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Connor 23/7/12 Highlighting for the multiple choice answers.&lt;br /&gt;
tr.proposal:hover{&lt;br /&gt;
  background-color:rgb(150,150,200)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lsclear{&lt;br /&gt;
  color: #D90000;&lt;br /&gt;
  font-weight: bold;&lt;br /&gt;
  cursor:pointer;&lt;br /&gt;
/* designer override */&lt;br /&gt;
   border: 3px solid #E3E3E3;&lt;br /&gt;
   background: #EE8301;&lt;br /&gt;
   padding: 6px 12px;&lt;br /&gt;
   margin-left:.5em;&lt;br /&gt;
   -webkit-border-radius: 22px;&lt;br /&gt;
   -moz-border-radius: 22px;&lt;br /&gt;
   border-radius: 22px;&lt;br /&gt;
   text-shadow: -1px -1px 0 rgba(50, 50, 50, 0.75);&lt;br /&gt;
   color: #e3e3e3;&lt;br /&gt;
   font-size: 1em;&lt;br /&gt;
   font-family: Helvetica, Arial, Sans-Serif;&lt;br /&gt;
   font-weight:normal;&lt;br /&gt;
   text-decoration: none;&lt;br /&gt;
   vertical-align: middle;&lt;br /&gt;
   -webkit-box-shadow: 1px 1px 5px rgba(50, 50, 50, 0.75);&lt;br /&gt;
   -moz-box-shadow:    1px 1px 5px rgba(50, 50, 50, 0.75);&lt;br /&gt;
   box-shadow:         1px 1px 5px rgba(50, 50, 50, 0.75);&lt;br /&gt;
   display:inline-block;&lt;br /&gt;
}&lt;br /&gt;
.lsclear:hover {&lt;br /&gt;
   background: #161525;&lt;br /&gt;
   color: #EE8301;&lt;br /&gt;
   border-color: #EE8301;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ===================== FOOTER */&lt;br /&gt;
&lt;br /&gt;
div#footer {&lt;br /&gt;
    background-image: none;&lt;br /&gt;
    border-top:thin solid #EE8301;&lt;br /&gt;
    direction: ltr;&lt;br /&gt;
    margin-left: 11em;&lt;br /&gt;
    margin-top: 0;&lt;br /&gt;
    padding: 0.75em;&lt;br /&gt;
}&lt;br /&gt;
div#footer ul {&lt;br /&gt;
    margin-left:.5em;&lt;br /&gt;
}&lt;br /&gt;
/* ===================== this overrides boys css to adjust the design */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
span.id {&lt;br /&gt;
    font-size:3em;&lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
    color:#161525;&lt;br /&gt;
}&lt;br /&gt;
.imper {&lt;br /&gt;
    margin-bottom:1em;&lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr a {&lt;br /&gt;
    color:#161525; &lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
}&lt;br /&gt;
.qu a {&lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr a:hover {&lt;br /&gt;
    color:#ee8301;&lt;br /&gt;
}&lt;br /&gt;
.qu a:hover {&lt;br /&gt;
    color:#ee8301;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.quizlink  a{&lt;br /&gt;
    margin-left:.5em;&lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
    color:#e3e3e3;&lt;br /&gt;
    background:#3b434e;&lt;br /&gt;
    padding:.5em 1.5em;&lt;br /&gt;
    -moz-border-radius:2em;&lt;br /&gt;
    -webkit-border-radius:2em;&lt;br /&gt;
    border-radius:2em;&lt;br /&gt;
    display:inline-block;&lt;br /&gt;
    box-shadow: 1px 1px 5px rgba(50, 50, 50, 0.75);&lt;br /&gt;
    border: 3px solid #E3E3E3;&lt;br /&gt;
}&lt;br /&gt;
.quizlink a:hover {&lt;br /&gt;
    color:#ee8301;&lt;br /&gt;
    background:#161525;&lt;br /&gt;
    border-color:#ee8301;&lt;br /&gt;
}&lt;br /&gt;
code {&lt;br /&gt;
    color:#ee8301;&lt;br /&gt;
    background:none;&lt;br /&gt;
    border: 1px solid #EE8301;&lt;br /&gt;
    -moz-border-radius:2em;&lt;br /&gt;
    -webkit-border-radius:2em;&lt;br /&gt;
    border-radius:2em;&lt;br /&gt;
    padding: 0.1em 0.5em 0;    &lt;br /&gt;
}&lt;br /&gt;
h2 code {&lt;br /&gt;
    border: 2px solid #EE8301;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr pre {&lt;br /&gt;
    border:none;&lt;br /&gt;
    background:#dae5d9;&lt;br /&gt;
    padding: 1.1em 1em 1em 2em;&lt;br /&gt;
    -moz-border-radius:.5em;&lt;br /&gt;
    -webkit-border-radius:.5em;&lt;br /&gt;
    border-radius:.5em;&lt;br /&gt;
    -moz-box-shadow:inset 5px 5px 11px rgba(33,33,33,0.7);&lt;br /&gt;
    -webkit-box-shadow:inset 5px 5px 11px rgba(33,33,33,0.7);&lt;br /&gt;
    box-shadow:inset 5px 5px 11px rgba(33,33,33,0.7);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.NoBorder td{&lt;br /&gt;
  border:none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.Bordered td{&lt;br /&gt;
  border:solid;&lt;br /&gt;
  border-width:1px;&lt;br /&gt;
}&lt;br /&gt;
/*Connor 7/8/12 Gets rid of the table lines for a table many tables have been entered into.*/&lt;br /&gt;
&lt;br /&gt;
/*Simple styling for lists of references*/&lt;br /&gt;
&lt;br /&gt;
.tutlist {&lt;br /&gt;
  width:40ex;&lt;br /&gt;
  float:right;&lt;br /&gt;
  margin-left: 1.5em;&lt;br /&gt;
  padding: 1em;&lt;br /&gt;
  -moz-box-shadow: 1px 1px 3px #3B434E;&lt;br /&gt;
  -webkit-box-shadow: 1px 1px 3px #3B434E;&lt;br /&gt;
  box-shadow: 1px 1px 3px #3B434E;&lt;br /&gt;
  background:#dae5d9;&lt;br /&gt;
  transition:background 1s;&lt;br /&gt;
  -moz-transition:background 1s; /* Firefox 4 */&lt;br /&gt;
  -webkit-transition:background 2s; /* Safari and Chrome */&lt;br /&gt;
  -o-transition:background 1s; /* Opera */&lt;br /&gt;
  border-radius: 1.5em;&lt;br /&gt;
  color: #EE8301;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.fc {&lt;br /&gt;
  color: #EE8301;&lt;br /&gt;
  text-decoration:underline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#userloginForm,&lt;br /&gt;
#userloginForm table {&lt;br /&gt;
   color:#e3e3e3;&lt;br /&gt;
}&lt;br /&gt;
#userloginForm {&lt;br /&gt;
    -moz-box-shadow: 5px 5px 8px #3b434e;&lt;br /&gt;
    -webkit-box-shadow: 3px 6px 10px #3b434e;&lt;br /&gt;
    box-shadow: 5px 5px 8px #3b434e;&lt;br /&gt;
    background: #161525; /* Old browsers */&lt;br /&gt;
    background: -moz-linear-gradient(top,  #363d49 0%, #363d49 18%, #161525 69%, #161525 100%); /* FF3.6+ */&lt;br /&gt;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#363d49), color-stop(18%,#363d49), color-stop(69%,#161525), color-stop(100%,#161525)); /* Chrome,Safari4+ */&lt;br /&gt;
    background: -webkit-linear-gradient(top,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* Chrome10+,Safari5.1+ */&lt;br /&gt;
    background: -o-linear-gradient(top,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* Opera 11.10+ */&lt;br /&gt;
    background: -ms-linear-gradient(top,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* IE10+ */&lt;br /&gt;
    background: linear-gradient(to bottom,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* W3C */&lt;br /&gt;
    -webkit-border-radius: 1.5em;&lt;br /&gt;
    -moz-border-radius:1.5em;&lt;br /&gt;
    border-radius: 1.5em;&lt;br /&gt;
    border:solid 5px #e3e3e3;&lt;br /&gt;
}&lt;br /&gt;
#userloginForm a {&lt;br /&gt;
    color:#ee8301;&lt;br /&gt;
}&lt;br /&gt;
#userloginForm a:hover {&lt;br /&gt;
    color:#FF9E44;&lt;br /&gt;
    text-shadow: 0 0 6px #E17F19;&lt;br /&gt;
}&lt;br /&gt;
#userloginForm a {&lt;br /&gt;
    color:#ee8301;&lt;br /&gt;
}&lt;br /&gt;
#userloginForm table,&lt;br /&gt;
#userloginForm table td {&lt;br /&gt;
    border:none;&lt;br /&gt;
    background:none;&lt;br /&gt;
}&lt;br /&gt;
#userloginForm input {&lt;br /&gt;
    background:#e3e3e3;&lt;br /&gt;
    padding:0 .5em;&lt;br /&gt;
     -webkit-border-radius: .5em;&lt;br /&gt;
    -moz-border-radius:.5em;&lt;br /&gt;
    border-radius: .5em;&lt;br /&gt;
}&lt;br /&gt;
#userloginForm h2 {&lt;br /&gt;
    color:#ee8301&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* increase link recognition */&lt;br /&gt;
.mw-content-ltr a {&lt;br /&gt;
    text-decoration: underline;&lt;br /&gt;
}&lt;br /&gt;
div.tutblock a, div.refblock a, div.resblock a, .tutlist a, .quizlink a {&lt;br /&gt;
    text-decoration: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/SELECT_within_SELECT_Tutorial</id>
		<title>SELECT within SELECT Tutorial</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/SELECT_within_SELECT_Tutorial"/>
				<updated>2013-04-30T21:05:10Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SELECT within SELECT==&lt;br /&gt;
This tutorial looks at how we can use SELECT statements within SELECT statements to perform more complex queries.&lt;br /&gt;
&amp;lt;div class=&amp;quot;ref_section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class='db_ref'&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;name&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;continent&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;area&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;population&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;gdp&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Afghanistan&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Asia&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;652230&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;25500100&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;20343000000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Albania&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;28748	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;2831741	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;12960000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Algeria&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;2381741	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;37100000	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;188681000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Andorra&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;468&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;78115	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;3712000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Angola&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;1246700	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;20609294	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;100990000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan='5'&amp;gt;...&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Using_nested_SELECT |Using nested SELECT]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;progress_panel&amp;quot;&amp;gt;&amp;lt;div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;summary&amp;quot;&amp;gt;Summary&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;progressbarbg&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;div class=&amp;quot;progressbar&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercises==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;List each country '''name''' where the '''population''' is larger than 'Russia'. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre space=&amp;quot;preserve&amp;quot;&amp;gt;world(name, continent, area, population, gdp)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name FROM world&lt;br /&gt;
  WHERE population &amp;gt;&lt;br /&gt;
     (SELECT population FROM world&lt;br /&gt;
      WHERE name='Russia')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name FROM world&lt;br /&gt;
  WHERE population &amp;gt;&lt;br /&gt;
     (SELECT population FROM world&lt;br /&gt;
      WHERE name='Russia')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;List the '''name''' and '''continent''' of countries in the continents containing 'Belize', 'Belgium'.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name,continent&lt;br /&gt;
FROM world&lt;br /&gt;
WHERE continent IN (&lt;br /&gt;
  SELECT continent&lt;br /&gt;
  FROM world&lt;br /&gt;
  WHERE name IN ('Belize','Belgium'))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the countries in Europe with a per capita GDP greater than 'United Kingdom'.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class='hint' title='Per Capita GDP'&amp;gt;The per capita GDP is the gdp/population&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name FROM world&lt;br /&gt;
  WHERE continent='Europe' AND gdp/population &amp;gt;&lt;br /&gt;
     (SELECT gdp/population FROM world&lt;br /&gt;
      WHERE name='United Kingdom')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Which country has a population that is more than Canada but less than Poland? Show the name and the population.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name,population FROM world&lt;br /&gt;
WHERE population BETWEEN&lt;br /&gt;
(SELECT population+1 FROM world WHERE name='Canada')&lt;br /&gt;
AND&lt;br /&gt;
(SELECT population-1 FROM world WHERE name='Poland')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[SUM_and_COUNT |To get a well rounded view of the important features of SQL you should move on to the next tutorial concerning aggregates.]]&lt;br /&gt;
&lt;br /&gt;
To gain an absurdly detailed view of one insignificant feature of the language, read on.&lt;br /&gt;
&lt;br /&gt;
We can use the word &amp;lt;code&amp;gt;ALL&amp;lt;/code&amp;gt; to allow &amp;gt;= or &amp;gt; or &amp;lt; or &amp;lt;=to act over a list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Which countries have a GDP greater than any country in Europe? [Give the '''name''' only.] &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name FROM world &lt;br /&gt;
  WHERE gdp &amp;gt; ALL&lt;br /&gt;
   (SELECT gdp FROM world&lt;br /&gt;
    WHERE continent = 'Europe' &lt;br /&gt;
      AND gdp IS NOT NULL)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can refer to values in the outer SELECT within the inner SELECT. We can name the tables so that we can tell the difference between the inner and outer versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Find the largest country (by area) in each continent, show the '''continent''', the '''name''' and the '''area''': &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT continent, name, population FROM world x&lt;br /&gt;
  WHERE population &amp;gt;= ALL&lt;br /&gt;
    (SELECT population FROM world y&lt;br /&gt;
        WHERE y.continent=x.continent&lt;br /&gt;
          AND population&amp;gt;0)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT continent, name, area FROM world x&lt;br /&gt;
  WHERE area &amp;gt;= ALL&lt;br /&gt;
    (SELECT area FROM world y&lt;br /&gt;
        WHERE y.continent=x.continent)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Difficult Questions==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Find each country that belongs to a continent where all populations are less than 25000000. Show '''name''', '''continent''' and '''population'''. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name,continent,population FROM world x&lt;br /&gt;
  WHERE 25000000 &amp;gt;= ALL (&lt;br /&gt;
    SELECT population FROM world y&lt;br /&gt;
     WHERE x.continent=y.continent&lt;br /&gt;
       AND y.population&amp;gt;0)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Some countries have populations more than three times that of any of their neighbours (in the same continent). Give the countries and continents.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name, continent FROM world x WHERE&lt;br /&gt;
 population &amp;gt; ALL&lt;br /&gt;
 (SELECT population*3 FROM world y&lt;br /&gt;
 WHERE y.continent = x.continent&lt;br /&gt;
 AND y.name != x.name)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;lsclear&amp;quot;&amp;gt;Clear your results&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;div class=&amp;quot;quizlink&amp;quot;&amp;gt;[[Nested SELECT Quiz]]&amp;lt;/div&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/SELECT_within_SELECT_Tutorial</id>
		<title>SELECT within SELECT Tutorial</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/SELECT_within_SELECT_Tutorial"/>
				<updated>2013-04-30T21:03:28Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==SELECT within SELECT==&lt;br /&gt;
This tutorial looks at how we can use SELECT statements within SELECT statements to perform more complex queries.&lt;br /&gt;
&amp;lt;div class=&amp;quot;ref_section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class='db_ref'&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;name&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;continent&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;area&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;population&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;gdp&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Afghanistan&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Asia&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;652230&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;25500100&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;20343000000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Albania&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;28748	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;2831741	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;12960000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Algeria&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;2381741	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;37100000	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;188681000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Andorra&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;468&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;78115	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;3712000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Angola&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;1246700	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;20609294	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;100990000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan='5'&amp;gt;...&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Using_nested_SELECT |Using nested SELECT]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;progress_panel&amp;quot;&amp;gt;&amp;lt;div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;summary&amp;quot;&amp;gt;Summary&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;progressbarbg&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;div class=&amp;quot;progressbar&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercises==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;List each country '''name''' where the '''population''' is larger than 'Russia'. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre space=&amp;quot;preserve&amp;quot;&amp;gt;world(name, continent, area, population, gdp)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name FROM world&lt;br /&gt;
  WHERE population &amp;gt;&lt;br /&gt;
     (SELECT population FROM world&lt;br /&gt;
      WHERE name='Russia')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name FROM world&lt;br /&gt;
  WHERE population &amp;gt;&lt;br /&gt;
     (SELECT population FROM world&lt;br /&gt;
      WHERE name='Russia')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;List the '''name''' and '''continent''' of countries in the continents containing 'Belize', 'Belgium'.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name,continent&lt;br /&gt;
FROM world&lt;br /&gt;
WHERE continent IN (&lt;br /&gt;
  SELECT continent&lt;br /&gt;
  FROM world&lt;br /&gt;
  WHERE name IN ('Belize','Belgium'))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the countries in Europe with a per capita GDP greater than 'United Kingdom'.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class='hint' title='Per Capita GDP'&amp;gt;The per capita GDP is the gdp/population&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name FROM world&lt;br /&gt;
  WHERE continent='Europe' AND gdp/population &amp;gt;&lt;br /&gt;
     (SELECT gdp/population FROM world&lt;br /&gt;
      WHERE name='United Kingdom')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Which country has a population that is more than Canada but less than Poland? Show the name and the population.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name,population FROM world&lt;br /&gt;
WHERE population BETWEEN&lt;br /&gt;
(SELECT population+1 FROM world WHERE name='Canada')&lt;br /&gt;
AND&lt;br /&gt;
(SELECT population-1 FROM world WHERE name='Poland')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[SUM_and_COUNT |To get a well rounded view of the important features of SQL you should move on to the next tutorial concerning aggregates.]]&lt;br /&gt;
&lt;br /&gt;
To gain an absurdly detailed view of one insignificant feature of the language, read on.&lt;br /&gt;
&lt;br /&gt;
We can use the word &amp;lt;code&amp;gt;ALL&amp;lt;/code&amp;gt; to allow &amp;gt;= or &amp;gt; or &amp;lt; or &amp;lt;=to act over a list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Which countries have a GDP greater than any country in Europe? [Give the '''name''' only.] &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name FROM world &lt;br /&gt;
  WHERE gdp &amp;gt; ALL&lt;br /&gt;
   (SELECT gdp FROM world&lt;br /&gt;
    WHERE continent = 'Europe' &lt;br /&gt;
      AND gdp IS NOT NULL)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can refer to values in the outer SELECT within the inner SELECT. We can name the tables so that we can tell the difference between the inner and outer versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Find the largest country (by area) in each continent, show the '''continent''', the '''name''' and the '''area''': &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT continent, name, population FROM world x&lt;br /&gt;
  WHERE population &amp;gt;= ALL&lt;br /&gt;
    (SELECT population FROM world y&lt;br /&gt;
        WHERE y.continent=x.continent&lt;br /&gt;
          AND population&amp;gt;0)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT continent, name, area FROM world x&lt;br /&gt;
  WHERE area &amp;gt;= ALL&lt;br /&gt;
    (SELECT area FROM world y&lt;br /&gt;
        WHERE y.continent=x.continent)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following questions are very difficult:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Find each country that belongs to a continent where all populations are less than 25000000. Show '''name''', '''continent''' and '''population'''. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name,continent,population FROM world x&lt;br /&gt;
  WHERE 25000000 &amp;gt;= ALL (&lt;br /&gt;
    SELECT population FROM world y&lt;br /&gt;
     WHERE x.continent=y.continent&lt;br /&gt;
       AND y.population&amp;gt;0)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Some countries have populations more than three times that of any of their neighbours (in the same continent). Give the countries and continents.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name, continent FROM world x WHERE&lt;br /&gt;
 population &amp;gt; ALL&lt;br /&gt;
 (SELECT population*3 FROM world y&lt;br /&gt;
 WHERE y.continent = x.continent&lt;br /&gt;
 AND y.name != x.name)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;lsclear&amp;quot;&amp;gt;Clear your results&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;div class=&amp;quot;quizlink&amp;quot;&amp;gt;[[Nested SELECT Quiz]]&amp;lt;/div&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/SELECT_basics</id>
		<title>SELECT basics</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/SELECT_basics"/>
				<updated>2013-04-29T14:32:56Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: /* Per Capita GDP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;ref_section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class='db_ref'&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;name&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;continent&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;area&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;population&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;gdp&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Afghanistan&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Asia&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;652230&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;25500100&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;20343000000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Albania&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;28748	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;2831741	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;12960000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Algeria&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;2381741	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;37100000	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;188681000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Andorra&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;468&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;78115	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;3712000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Angola&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;1246700	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;20609294	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;100990000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan='5'&amp;gt;...&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Introducing the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; table of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This  tutorial introduces SQL. We will be using the SELECT command on the table '''world''':&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;progress_panel&amp;quot;&amp;gt;&amp;lt;div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;summary&amp;quot;&amp;gt;Summary&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;progressbarbg&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;div class=&amp;quot;progressbar&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class='extra_space' style='width:1em; height:6em;'&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
The example shows the population of 'France'.&lt;br /&gt;
Strings should be in 'single quotes';&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the population of Germany&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT population FROM world&lt;br /&gt;
  WHERE name = 'France'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT population FROM world&lt;br /&gt;
  WHERE name = 'Germany'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Per Capita GDP==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;The query shows the population density &amp;lt;code&amp;gt;population/area&amp;lt;/code&amp;gt;&lt;br /&gt;
for each country where the area is over 5,000,000 km&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;Show the per capita gdp: &amp;lt;code&amp;gt;gdp/population&amp;lt;/code&amp;gt;&lt;br /&gt;
for each country where the area is over 5,000,000 km&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name, population/area FROM world&lt;br /&gt;
  WHERE area &amp;gt; 5000000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name, gdp/population FROM world&lt;br /&gt;
  WHERE area &amp;gt; 5000000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Small and wealthy==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
Where to find some very small, very rich countries.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;We use &amp;lt;code&amp;gt;AND&amp;lt;/code&amp;gt; to ensure that two or more conditions hold&lt;br /&gt;
true.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;The example shows the countries where the population is small and the&lt;br /&gt;
gdp is high.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;Show the &amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;continent&amp;lt;/b&amp;gt; where the area is less then 2000 and the gdp is more than 5000000000&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name , continent&lt;br /&gt;
  FROM world&lt;br /&gt;
  WHERE population &amp;lt; 2000000&lt;br /&gt;
    AND gdp &amp;gt; 5000000000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name , continent&lt;br /&gt;
  FROM world&lt;br /&gt;
  WHERE area &amp;lt; 2000&lt;br /&gt;
    AND gdp &amp;gt; 5000000000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scandinavia==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
Checking a list The word &amp;lt;b&amp;gt;IN&amp;lt;/b&amp;gt; allows us to check if an item is in a list. &lt;br /&gt;
The example shows the name and population for the countries 'Ireland', 'Iceland' and 'Denmark'&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;Show the '''name''' and the '''population''' for 'Denmark', 'Finland', 'Norway', 'Sweden'&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name, population FROM world&lt;br /&gt;
  WHERE name IN ('Ireland', 'Iceland',&lt;br /&gt;
                 'Denmark')&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name, population FROM world&lt;br /&gt;
  WHERE name IN ('Denmark', 'Finland',&lt;br /&gt;
                 'Norway', 'Sweden')&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Starts with G==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
What are the countries beginning with G?&lt;br /&gt;
'''The word''' &amp;lt;code&amp;gt;LIKE&amp;lt;/code&amp;gt; '''permits pattern matching''' - % '''is the wildcard'''.&lt;br /&gt;
The examples shows countries beginning with D&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;Show each country that begins with G&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name FROM world&lt;br /&gt;
  WHERE name LIKE 'D%'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name FROM world&lt;br /&gt;
  WHERE name LIKE 'G%'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Just the right size==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
Which countries are not too small and not too big?&lt;br /&gt;
&amp;lt;code&amp;gt;BETWEEN&amp;lt;/code&amp;gt; allows range checking - note that it is inclusive.&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;'''Show the area in 1000 square km. Show''' ''area''/1000 '''instead of''' ''area''&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name, area FROM world&lt;br /&gt;
  WHERE area BETWEEN 207600 AND 244820&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name, area/1000 FROM world&lt;br /&gt;
  WHERE area BETWEEN 207600 AND 244820&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;lsclear&amp;quot;&amp;gt;Clear your results&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;div class=&amp;quot;quizlink&amp;quot;&amp;gt;[[SELECT Quiz]]&amp;lt;/div&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You are ready for tutorial one:[[SELECT_from_WORLD_Tutorial |SELECT statements with WHERE.]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Languages}}&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/SELECT_basics</id>
		<title>SELECT basics</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/SELECT_basics"/>
				<updated>2013-04-29T14:20:55Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;ref_section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class='db_ref'&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;name&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;continent&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;area&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;population&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;gdp&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Afghanistan&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Asia&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;652230&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;25500100&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;20343000000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Albania&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;28748	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;2831741	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;12960000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Algeria&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;2381741	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;37100000	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;188681000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Andorra&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;468&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;78115	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;3712000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Angola&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;1246700	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;20609294	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;100990000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan='5'&amp;gt;...&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Introducing the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; table of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This  tutorial introduces SQL. We will be using the SELECT command on the table '''world''':&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;progress_panel&amp;quot;&amp;gt;&amp;lt;div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;summary&amp;quot;&amp;gt;Summary&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;progressbarbg&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;div class=&amp;quot;progressbar&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class='extra_space' style='width:1em; height:6em;'&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
The example shows the population of 'France'.&lt;br /&gt;
Strings should be in 'single quotes';&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the population of Germany&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT population FROM world&lt;br /&gt;
  WHERE name = 'France'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT population FROM world&lt;br /&gt;
  WHERE name = 'Germany'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Per Capita GDP==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;This query shows the population density &amp;lt;code&amp;gt;population/area&amp;lt;/code&amp;gt;&lt;br /&gt;
for each country where the area is over 5,000,000 km&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;Show the per capita gdp: &amp;lt;code&amp;gt;gdp/population&amp;lt;/code&amp;gt;&lt;br /&gt;
for each country where the area is over 5,000,000 km&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name, population/area FROM world&lt;br /&gt;
  WHERE area &amp;gt; 5000000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name, gdp/population FROM world&lt;br /&gt;
  WHERE area &amp;gt; 5000000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Small and wealthy==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
Where to find some very small, very rich countries.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;We use &amp;lt;code&amp;gt;AND&amp;lt;/code&amp;gt; to ensure that two or more conditions hold&lt;br /&gt;
true.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;The example shows the countries where the population is small and the&lt;br /&gt;
gdp is high.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;Show the &amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;continent&amp;lt;/b&amp;gt; where the area is less then 2000 and the gdp is more than 5000000000&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name , continent&lt;br /&gt;
  FROM world&lt;br /&gt;
  WHERE population &amp;lt; 2000000&lt;br /&gt;
    AND gdp &amp;gt; 5000000000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name , continent&lt;br /&gt;
  FROM world&lt;br /&gt;
  WHERE area &amp;lt; 2000&lt;br /&gt;
    AND gdp &amp;gt; 5000000000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scandinavia==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
Checking a list The word &amp;lt;b&amp;gt;IN&amp;lt;/b&amp;gt; allows us to check if an item is in a list. &lt;br /&gt;
The example shows the name and population for the countries 'Ireland', 'Iceland' and 'Denmark'&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;Show the '''name''' and the '''population''' for 'Denmark', 'Finland', 'Norway', 'Sweden'&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name, population FROM world&lt;br /&gt;
  WHERE name IN ('Ireland', 'Iceland',&lt;br /&gt;
                 'Denmark')&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name, population FROM world&lt;br /&gt;
  WHERE name IN ('Denmark', 'Finland',&lt;br /&gt;
                 'Norway', 'Sweden')&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Starts with G==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
What are the countries beginning with G?&lt;br /&gt;
'''The word''' &amp;lt;code&amp;gt;LIKE&amp;lt;/code&amp;gt; '''permits pattern matching''' - % '''is the wildcard'''.&lt;br /&gt;
The examples shows countries beginning with D&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;Show each country that begins with G&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name FROM world&lt;br /&gt;
  WHERE name LIKE 'D%'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name FROM world&lt;br /&gt;
  WHERE name LIKE 'G%'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Just the right size==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
Which countries are not too small and not too big?&lt;br /&gt;
&amp;lt;code&amp;gt;BETWEEN&amp;lt;/code&amp;gt; allows range checking - note that it is inclusive.&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;'''Show the area in 1000 square km. Show''' ''area''/1000 '''instead of''' ''area''&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name, area FROM world&lt;br /&gt;
  WHERE area BETWEEN 207600 AND 244820&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name, area/1000 FROM world&lt;br /&gt;
  WHERE area BETWEEN 207600 AND 244820&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;lsclear&amp;quot;&amp;gt;Clear your results&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;div class=&amp;quot;quizlink&amp;quot;&amp;gt;[[SELECT Quiz]]&amp;lt;/div&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You are ready for tutorial one:[[SELECT_from_WORLD_Tutorial |SELECT statements with WHERE.]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Languages}}&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/MediaWiki:Common.css</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/MediaWiki:Common.css"/>
				<updated>2013-04-17T21:58:57Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
/* CSS placed here will be applied to all skins */&lt;br /&gt;
#mw-head-base {&lt;br /&gt;
  height:10em;&lt;br /&gt;
}&lt;br /&gt;
#p-googleadsense {&lt;br /&gt;
   margin-left:.5em;&lt;br /&gt;
}&lt;br /&gt;
/* Hide ads for login page */&lt;br /&gt;
body.ns-special div#p-googleadsense{&lt;br /&gt;
  display:none;&lt;br /&gt;
}&lt;br /&gt;
.qu {&lt;br /&gt;
    border-color: silver;&lt;br /&gt;
    border-style: solid;&lt;br /&gt;
    border-width: 1px;&lt;br /&gt;
    margin: 2ex 0.2ex 0.2ex;&lt;br /&gt;
    padding: 10px;&lt;br /&gt;
    clear:left; /* Andrew 2012-07-21 */&lt;br /&gt;
}&lt;br /&gt;
.ans, .def, .tidy, .setup, .params {&lt;br /&gt;
  display:none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hnt {&lt;br /&gt;
	font-weight:bold;&lt;br /&gt;
	color: #3b434e;&lt;br /&gt;
        cursor:pointer;&lt;br /&gt;
}&lt;br /&gt;
.hnt:hover{background:#AABBCC;}&lt;br /&gt;
&lt;br /&gt;
.hint {&lt;br /&gt;
	color: #055C00;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ecomm {&lt;br /&gt;
        margin-bottom: 0.5ex;&lt;br /&gt;
        margin-right: 0.5ex;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.qu textarea{&lt;br /&gt;
  width:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Change by Andrew 2012-07-21 */&lt;br /&gt;
.qu form{&lt;br /&gt;
  clear:left;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.res {&lt;br /&gt;
    border-style: inset;&lt;br /&gt;
    border-width: 1px;&lt;br /&gt;
    height: 20em;&lt;br /&gt;
    width:32em;&lt;br /&gt;
    overflow: auto;&lt;br /&gt;
    padding: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table{&lt;br /&gt;
  border-collapse:collapse;&lt;br /&gt;
  background:#d2e5d1;&lt;br /&gt;
  margin:1em 0 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.res table{&lt;br /&gt;
  background:none;&lt;br /&gt;
}&lt;br /&gt;
table td{&lt;br /&gt;
  border:solid gray 1px;&lt;br /&gt;
  padding:.2em .7em;&lt;br /&gt;
  vertical-align:top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h2{&lt;br /&gt;
  border-bottom:none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.id {&lt;br /&gt;
font-size: 300%;&lt;br /&gt;
display: block;&lt;br /&gt;
float: left;&lt;br /&gt;
padding: 0px 5px;&lt;br /&gt;
margin-right: 5px;&lt;br /&gt;
margin-top:0.8ex;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.tutblock,&lt;br /&gt;
div.refblock,&lt;br /&gt;
div.resblock&lt;br /&gt;
{&lt;br /&gt;
  width:60ex;&lt;br /&gt;
  float:left;&lt;br /&gt;
  padding:1ex 1em 1em 2em;&lt;br /&gt;
  margin:2ex 2ex 2ex 0em;&lt;br /&gt;
}&lt;br /&gt;
div.resblock&lt;br /&gt;
{&lt;br /&gt;
  width:auto;&lt;br /&gt;
}&lt;br /&gt;
div.refblock+*{&lt;br /&gt;
}&lt;br /&gt;
div.tutblock h2,&lt;br /&gt;
div.refblock h2,&lt;br /&gt;
div.resblock h2{&lt;br /&gt;
  padding-top:1ex;&lt;br /&gt;
  text-align:left;&lt;br /&gt;
}&lt;br /&gt;
div.res.waiting{&lt;br /&gt;
  background-image:url(http://sqlzoo.net/w/wait30trans.gif);&lt;br /&gt;
  background-repeat:no-repeat;&lt;br /&gt;
  background-position: center center;&lt;br /&gt;
}&lt;br /&gt;
.r{&lt;br /&gt;
  text-align:right;&lt;br /&gt;
}&lt;br /&gt;
.res .showtxt{&lt;br /&gt;
  color:blue;&lt;br /&gt;
  cursor:pointer;&lt;br /&gt;
}&lt;br /&gt;
.res .sqlans{&lt;br /&gt;
  display:none;&lt;br /&gt;
}&lt;br /&gt;
/* ==== Designer style sheet starts here === */&lt;br /&gt;
&lt;br /&gt;
/* This skin overrides common.css */ &lt;br /&gt;
&lt;br /&gt;
/* SQL ZOO COLOR PALETTE:&lt;br /&gt;
&lt;br /&gt;
     #dae5d9 - light green (bg color) [ alt: #d2e5d1 ]&lt;br /&gt;
     #161525 - dark blue&lt;br /&gt;
     #3b434e - light blue&lt;br /&gt;
     #ee8301 - orange [ darker alt: #ff530d ]&lt;br /&gt;
     #e3e3e3 - near white&lt;br /&gt;
     #4a787d - bright blue (links) [ alt: #668195 ]&lt;br /&gt;
     #c4c4c4 - light grey (sub menu links)&lt;br /&gt;
     #909898 - mid grey (sub menu description)&lt;br /&gt;
 &lt;br /&gt;
*/&lt;br /&gt;
 &lt;br /&gt;
/* =========================== GLOBAL SETTINGS: ============================= */&lt;br /&gt;
&lt;br /&gt;
/* remove the Wiki markup */&lt;br /&gt;
#p-logo, #left-navigation, #p-tb, #pt-mytalk, #pt-watchlist, #pt-mycontris, .editsection, #mw-usercsspreview, #contentSub {&lt;br /&gt;
    display:none;&lt;br /&gt;
}&lt;br /&gt;
textarea:focus{outline:none;}&lt;br /&gt;
body #mw-head-base {&lt;br /&gt;
    background-image:none;&lt;br /&gt;
}&lt;br /&gt;
html, body, body #content,&lt;br /&gt;
#mw-page-base {&lt;br /&gt;
    background:#d2e5d1;&lt;br /&gt;
    font-family: &amp;quot;HelveticaNeue&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;HelveticaNeueRoman&amp;quot;, &amp;quot;HelveticaNeue-Roman&amp;quot;, &amp;quot;Helvetica Neue Roman&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, sans-serif; &lt;br /&gt;
    color:#161525;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a:link {&lt;br /&gt;
    color:#3b434e;&lt;br /&gt;
    text-decoration:none;&lt;br /&gt;
}&lt;br /&gt;
a:visited {color:#668195;}&lt;br /&gt;
a:hover {color:#ff530d;}&lt;br /&gt;
a:active {color:#e3e3e3;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* ================================== ADMIN WIKI LINKS: */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* reposition temporary admin links */&lt;br /&gt;
#mw-head {&lt;br /&gt;
    position:absolute;&lt;br /&gt;
}&lt;br /&gt;
#pt-userpage, #pt-anonuserpage, #pt-login, #pt-preferences, #pt-logout {&lt;br /&gt;
   background-size:1em;&lt;br /&gt;
   background-repeat:no-repeat;&lt;br /&gt;
   background-position:left center;&lt;br /&gt;
   padding:0 0 0 1.2em;&lt;br /&gt;
}&lt;br /&gt;
#pt-userpage, #pt-anonuserpage, #pt-login {&lt;br /&gt;
   background-image:url('http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/u4.png');&lt;br /&gt;
}&lt;br /&gt;
#pt-preferences {&lt;br /&gt;
   background-image:url('http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/settings.png');&lt;br /&gt;
}&lt;br /&gt;
#pt-logout {&lt;br /&gt;
   background-image:url('http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/logout.png');&lt;br /&gt;
   padding:0 0 0 1.25em;&lt;br /&gt;
}&lt;br /&gt;
#p-search {&lt;br /&gt;
   margin:0; &lt;br /&gt;
   padding:0;&lt;br /&gt;
   clear:right;&lt;br /&gt;
   &lt;br /&gt;
}&lt;br /&gt;
#p-search form, #p-search input {&lt;br /&gt;
    margin:0;&lt;br /&gt;
}&lt;br /&gt;
#p-search input#searchInput {&lt;br /&gt;
   -moz-border-radius:1em;&lt;br /&gt;
   -webkit-border-radius: 1em;&lt;br /&gt;
   border-radius: 1em;&lt;br /&gt;
   border:2px solid #3b434e;&lt;br /&gt;
}&lt;br /&gt;
#p-views {&lt;br /&gt;
   float:right;&lt;br /&gt;
   margin:0 0 -.5em 0; &lt;br /&gt;
   padding:0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* wiki editor links */&lt;br /&gt;
&lt;br /&gt;
#right-navigation {&lt;br /&gt;
   margin: 1.9em .3em 0 0;&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs span {&lt;br /&gt;
   background:none;&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs span a {&lt;br /&gt;
   padding-top: .05em;&lt;br /&gt;
   color:#3b434e;&lt;br /&gt;
   text-shadow: 1px 1px 0 #E4EDE6;&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs span a:hover {&lt;br /&gt;
   color:#ee8301;&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs, div.vectorTabs ul {&lt;br /&gt;
   background:none;background-image:none;&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs ul {&lt;br /&gt;
   height:1.2em;&lt;br /&gt;
   border:thin solid rgba(33,33,33,0.7);&lt;br /&gt;
  -moz-box-shadow: 0px 0px 2px #333333;&lt;br /&gt;
  -webkit-box-shadow: 0px 0px 2px #333333;&lt;br /&gt;
   box-shadow: 0px 0px 2px #333333;&lt;br /&gt;
  -webkit-border-radius: 1.5em;&lt;br /&gt;
  -moz-border-radius: 1.5em;&lt;br /&gt;
   border-radius: 1.5em;&lt;br /&gt;
   background: #e3ede3; /* Old browsers */&lt;br /&gt;
   background: -moz-linear-gradient(-45deg, #e3ede3 1%, #dae5d9 100%); /* FF3.6+ */&lt;br /&gt;
   background: -webkit-gradient(linear, left top, right bottom, color-stop(1%,#e3ede3), color-stop(100%,#dae5d9)); /* Chrome,Safari4+ */&lt;br /&gt;
   background: -webkit-linear-gradient(-45deg, #e3ede3 1%,#dae5d9 100%); /* Chrome10+,Safari5.1+ */&lt;br /&gt;
   background: -o-linear-gradient(-45deg, #e3ede3 1%,#dae5d9 100%); /* Opera 11.10+ */&lt;br /&gt;
   background: -ms-linear-gradient(-45deg, #e3ede3 1%,#dae5d9 100%); /* IE10+ */&lt;br /&gt;
   background: linear-gradient(135deg, #e3ede3 1%,#dae5d9 100%); /* W3C */&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs ul li {&lt;br /&gt;
   background:none;background-image:none;&lt;br /&gt;
   border:none; border-right:thin solid rgba(33,33,33,0.7);&lt;br /&gt;
  -moz-box-shadow:inset 2px 2px 12px #e7f0e7;&lt;br /&gt;
  -webkit-box-shadow:inset 2px 2px 12px #e7f0e7;&lt;br /&gt;
   box-shadow:inset 2px 2px 12px #e7f0e7;&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs ul li:first-child {&lt;br /&gt;
   -webkit-border-radius: 1.5em 0 0 1.5em;&lt;br /&gt;
   -moz-border-radius: 1.5em 0 0 1.5em;&lt;br /&gt;
    border-radius: 1.5em 0 0 1.5em;&lt;br /&gt;
    padding-left:.6em;&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs ul li:last-child {&lt;br /&gt;
   -webkit-border-radius: 0 1.5em 1.5em 0;&lt;br /&gt;
   -moz-border-radius: 0 1.5em 1.5em 0;&lt;br /&gt;
    border-radius: 0 1.5em 1.5em 0;&lt;br /&gt;
    border-right:none;&lt;br /&gt;
    padding-right:.5em;&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs li.selected {&lt;br /&gt;
    background: #f7bc79; /* Old browsers */&lt;br /&gt;
    background: -moz-linear-gradient(top,  #f7bc79 0%, #ee8301 41%); /* FF3.6+ */&lt;br /&gt;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f7bc79), color-stop(41%,#ee8301)); /* Chrome,Safari4+ */&lt;br /&gt;
    background: -webkit-linear-gradient(top,  #f7bc79 0%,#ee8301 41%); /* Chrome10+,Safari5.1+ */&lt;br /&gt;
    background: -o-linear-gradient(top,  #f7bc79 0%,#ee8301 41%); /* Opera 11.10+ */&lt;br /&gt;
    background: -ms-linear-gradient(top,  #f7bc79 0%,#ee8301 41%); /* IE10+ */&lt;br /&gt;
    background: linear-gradient(to bottom,  #f7bc79 0%,#ee8301 41%); /* W3C */&lt;br /&gt;
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f7bc79', endColorstr='#ee8301',GradientType=0 ); /* IE6-9 */&lt;br /&gt;
   -moz-box-shadow:none;&lt;br /&gt;
   -webkit-box-shadow:none;&lt;br /&gt;
    box-shadow:none;&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs li.selected a {&lt;br /&gt;
    text-shadow: 1px 1px 0 #f7bc79;&lt;br /&gt;
    cursor:default;&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs li.selected a:hover {&lt;br /&gt;
    color:#3b434e;&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs ul li:first-child.selected {&lt;br /&gt;
    background:none;&lt;br /&gt;
    filter:none; /* IE6-9 */&lt;br /&gt;
}&lt;br /&gt;
div.vectorTabs ul li:first-child.selected a {&lt;br /&gt;
    text-shadow: 1px 1px 0 #E4EDE6;&lt;br /&gt;
    color:#8190A8;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Zoo advertising */&lt;br /&gt;
&lt;br /&gt;
#zoolinks{&lt;br /&gt;
   position:relative;&lt;br /&gt;
   clear:both;&lt;br /&gt;
   float:right;&lt;br /&gt;
   margin:.5em .4em 0 0;&lt;br /&gt;
   z-index:0;&lt;br /&gt;
   &lt;br /&gt;
}&lt;br /&gt;
#zoolinks li{&lt;br /&gt;
  display:inline;&lt;br /&gt;
  margin-left:1em;&lt;br /&gt;
}&lt;br /&gt;
#zoolinks a {&lt;br /&gt;
   padding:0 0 1em 0;&lt;br /&gt;
   font-weight:bold;&lt;br /&gt;
   -moz-transition:all .5s; /* Firefox 4 */&lt;br /&gt;
   -webkit-transition:all .5s; /* Safari and Chrome */&lt;br /&gt;
   -o-transition:all .5s; /* Opera */&lt;br /&gt;
   transition:all .5s; /* Opera */&lt;br /&gt;
}&lt;br /&gt;
#zoolinks #css_link {&lt;br /&gt;
   top:-.1em;&lt;br /&gt;
   font-size:1.2em;&lt;br /&gt;
   font-family: 'Helvetica Neue',Helvetica, sans-serif;&lt;br /&gt;
   line-height: 1em;&lt;br /&gt;
   color: #ee8301;&lt;br /&gt;
   text-shadow:0px 0px 0 rgb(224,117,-13),1px 1px 0 rgb(210,103,-27),2px 2px 0 rgb(196,89,-41),3px 3px 0 rgb(181,74,-56),4px 4px 0 rgb(167,60,-70),5px 5px 0 rgb(153,46,-84), 6px 6px 0 rgb(139,32,-98),7px 7px 6px rgba(0,0,0,0.6),7px 7px 1px rgba(0,0,0,0.5),0px 0px 6px rgba(0,0,0,.2);&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
}&lt;br /&gt;
#zoolinks #css_link:hover { &lt;br /&gt;
    color:orange;&lt;br /&gt;
    font-size:1.4em;&lt;br /&gt;
}&lt;br /&gt;
#zoolinks #java_link{&lt;br /&gt;
    background-image:url('http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/java.png');&lt;br /&gt;
    background-size:1.5em; &lt;br /&gt;
    background-repeat:no-repeat;&lt;br /&gt;
    background-position:right top;&lt;br /&gt;
    padding-right:1.6em;&lt;br /&gt;
    margin-left:.1em;&lt;br /&gt;
    font-weight:normal;&lt;br /&gt;
    color: #3b434e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#zoolinks #linux_link {&lt;br /&gt;
    background-image:url('http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/penguin.png');&lt;br /&gt;
    background-size:1.8em; &lt;br /&gt;
    background-repeat:no-repeat;&lt;br /&gt;
    background-position:right top;&lt;br /&gt;
    padding-right:1.75em;&lt;br /&gt;
    margin-left:-.6em;&lt;br /&gt;
    color: #3b434e;&lt;br /&gt;
}&lt;br /&gt;
#zoolinks #java_link:hover {&lt;br /&gt;
    font-size:1.2em;&lt;br /&gt;
    color: #fff;&lt;br /&gt;
    text-shadow: 0px 1px 0px #999, 0px 2px 0px #888, 0px 3px 0px #777, 0px 4px 0px #666, 0px 5px 0px #555, 0px 6px 0px #444, 0px 7px 0px #333, 0px 8px 7px #001135;&lt;br /&gt;
}&lt;br /&gt;
#zoolinks #linux_link:hover {&lt;br /&gt;
   font-size:1.2em;&lt;br /&gt;
   color: #ee8301;&lt;br /&gt;
}&lt;br /&gt;
#zoolinks a#sql_hacks {&lt;br /&gt;
    margin: -.6em 0em 0 -.8em;&lt;br /&gt;
    opacity: 0.8;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    position:relative;&lt;br /&gt;
    float: right;&lt;br /&gt;
    -webkit-transform:scale(0.7);&lt;br /&gt;
    -moz-transform:scale(0.7);&lt;br /&gt;
    -o-transform:scale(0.7);&lt;br /&gt;
    transform:scale(0.7);&lt;br /&gt;
    -moz-box-shadow: 2px 2px 4px #333333;&lt;br /&gt;
    -webkit-box-shadow: 2px 2px 4px #333333;&lt;br /&gt;
    box-shadow: 2px 2px 4px #333333;&lt;br /&gt;
&lt;br /&gt;
    -moz-transition:all .5s; /* Firefox 4 */&lt;br /&gt;
    -webkit-transition:all .5s; /* Safari and Chrome */&lt;br /&gt;
    -o-transition:all .5s; /* Opera */&lt;br /&gt;
    transition:all .5s; /* Opera */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#zoolinks a#sql_hacks:hover {&lt;br /&gt;
    opacity:1;&lt;br /&gt;
    -webkit-transform:scale(1);&lt;br /&gt;
    -moz-transform:scale(1);&lt;br /&gt;
    -o-transform:scale(1);&lt;br /&gt;
    transform:scale(1);&lt;br /&gt;
    -moz-box-shadow: 5px 5px 2px #666666;&lt;br /&gt;
    -webkit-box-shadow: 5px 5px 2px #666666;&lt;br /&gt;
    box-shadow: 8px 8px 12px #666666;&lt;br /&gt;
    height:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* ================================== HEADER: */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
#mw-page-base {&lt;br /&gt;
    height:8.30em;&lt;br /&gt;
    background: -moz-linear-gradient(top,  rgba(171,183,157,1) 0%, rgba(223,229,222,0.9) 10%, rgba(223,229,222,0) 100%); /* FF3.6+ */&lt;br /&gt;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(171,183,157,1)), color-stop(10%,rgba(223,229,222,0.9)), color-stop(100%,rgba(223,229,222,0))); /* Chrome,Safari4+ */&lt;br /&gt;
    background: -webkit-linear-gradient(top,  rgba(171,183,157,1) 0%,rgba(223,229,222,0.9) 10%,rgba(223,229,222,0) 100%); /* Chrome10+,Safari5.1+ */&lt;br /&gt;
    background: -o-linear-gradient(top,  rgba(171,183,157,1) 0%,rgba(223,229,222,0.9) 10%,rgba(223,229,222,0) 100%); /* Opera 11.10+ */&lt;br /&gt;
    background: -ms-linear-gradient(top,  rgba(171,183,157,1) 0%,rgba(223,229,222,0.9) 10%,rgba(223,229,222,0) 100%); /* IE10+ */&lt;br /&gt;
    background: linear-gradient(to bottom,  rgba(171,183,157,1) 0%,rgba(223,229,222,0.9) 10%,rgba(223,229,222,0) 100%); /* W3C */&lt;br /&gt;
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#C9D6C9', endColorstr='#00dfe5de',GradientType=0 ); /* IE6-9 */&lt;br /&gt;
}&lt;br /&gt;
#mp-logo {&lt;br /&gt;
    position:absolute; left:1em; top:0.2em; z-index:+1;&lt;br /&gt;
}&lt;br /&gt;
#mp-logo img {&lt;br /&gt;
    width:20.5em;&lt;br /&gt;
}&lt;br /&gt;
#logo-desc {&lt;br /&gt;
    font-family: Helvetica, Arial, sans-serif;&lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
    font-size: 1.670em;&lt;br /&gt;
    color: #3b434e;&lt;br /&gt;
    margin:.2em 0 0 0; padding:0;&lt;br /&gt;
}&lt;br /&gt;
/* fix ff misbehaviour */&lt;br /&gt;
@-moz-document url-prefix() { &lt;br /&gt;
#logo-desc {font-size: 1.7em;}&lt;br /&gt;
}&lt;br /&gt;
/* fix ff win misbehaviour */&lt;br /&gt;
.win.gecko #logo-desc { margin-top:.2px; }&lt;br /&gt;
/* fix webkit misbahaviour */&lt;br /&gt;
@media screen and (-webkit-min-device-pixel-ratio:0) {&lt;br /&gt;
    #logo-desc { margin-top: -0px; }&lt;br /&gt;
}&lt;br /&gt;
#logo-desc span {&lt;br /&gt;
    color: #ee8301;&lt;br /&gt;
}&lt;br /&gt;
#logo-desc span span {&lt;br /&gt;
    color: #161525; font-weight:normal;&lt;br /&gt;
}&lt;br /&gt;
h1, h1#logo-desc, #mw-head-base a  {&lt;br /&gt;
    border:none; text-decoration:none;&lt;br /&gt;
}&lt;br /&gt;
#language {&lt;br /&gt;
    position:absolute;&lt;br /&gt;
    left:-1em;&lt;br /&gt;
    top:-.6em;&lt;br /&gt;
    z-index:+5;&lt;br /&gt;
}&lt;br /&gt;
#language li {&lt;br /&gt;
    display:inline-block;&lt;br /&gt;
    margin:0 .5em 0 0&lt;br /&gt;
}&lt;br /&gt;
#language ul li a img {&lt;br /&gt;
    opacity:0.5;&lt;br /&gt;
}&lt;br /&gt;
#language ul li a:hover img {&lt;br /&gt;
    opacity:1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* ================================== MAIN MENU */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#main_menu {&lt;br /&gt;
    font-family: &amp;quot;Arial&amp;quot;, sans-serif; &lt;br /&gt;
    font-size: .95em;&lt;br /&gt;
    margin:0;&lt;br /&gt;
    padding:0;&lt;br /&gt;
    line-height: 100%;&lt;br /&gt;
    color:#e3e3e3;&lt;br /&gt;
    background: #161525; /* Old browsers */&lt;br /&gt;
    background: -moz-linear-gradient(top,  #363d49 0%, #363d49 18%, #161525 69%, #161525 100%); /* FF3.6+ */&lt;br /&gt;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#363d49), color-stop(18%,#363d49), color-stop(69%,#161525), color-stop(100%,#161525)); /* Chrome,Safari4+ */&lt;br /&gt;
    background: -webkit-linear-gradient(top,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* Chrome10+,Safari5.1+ */&lt;br /&gt;
    background: -o-linear-gradient(top,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* Opera 11.10+ */&lt;br /&gt;
    background: -ms-linear-gradient(top,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* IE10+ */&lt;br /&gt;
    background: linear-gradient(to bottom,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* W3C */&lt;br /&gt;
}&lt;br /&gt;
.stickableMenu {&lt;br /&gt;
    position: absolute; top:11.5em; left:.6em;&lt;br /&gt;
    -webkit-border-radius: 1.5em;&lt;br /&gt;
    -moz-border-radius:1.5em;&lt;br /&gt;
   border-radius: 1.5em;&lt;br /&gt;
    box-shadow: 0px 0px 0px #3b434e;&lt;br /&gt;
}&lt;br /&gt;
.stickableMenu:hover {                                                      /* not perfect, needs js */&lt;br /&gt;
     -webkit-border-radius: 1.1em 1.1em 0 0;&lt;br /&gt;
    -moz-border-radius: 1.1em 1.1em 0 0;&lt;br /&gt;
    border-radius: 1.1em 1.1em 0 0;&lt;br /&gt;
    -moz-box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
    -webkit-box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
    box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
&lt;br /&gt;
    -moz-transition:all .7s; /* Firefox 4 */&lt;br /&gt;
    -webkit-transition:all .7s; /* Safari and Chrome */&lt;br /&gt;
    -o-transition:all .7s; /* Opera */&lt;br /&gt;
    transition:all .7s; /* Opera */&lt;br /&gt;
}&lt;br /&gt;
.fixedMenu { &lt;br /&gt;
    position: fixed; top: 0; left:0;&lt;br /&gt;
    z-index:+5; &lt;br /&gt;
    -webkit-border-radius: 0 0 1.5em 0;&lt;br /&gt;
    -moz-border-radius:0 0 1.5em 0;&lt;br /&gt;
    border-radius: 0 0 1.5em 0;&lt;br /&gt;
    -moz-box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
    -webkit-box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
    box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
}&lt;br /&gt;
.fixedMenu:hover {&lt;br /&gt;
    -webkit-border-radius: 0 1.1em 0 0;&lt;br /&gt;
    -moz-border-radius: 0 1.1em 0 0;&lt;br /&gt;
    border-radius: 0 1.1em 0 0;&lt;br /&gt;
}&lt;br /&gt;
#main_menu li {&lt;br /&gt;
    z-index:+2;&lt;br /&gt;
    margin:0;&lt;br /&gt;
    padding:0;&lt;br /&gt;
    float: left;&lt;br /&gt;
    position: relative;&lt;br /&gt;
    list-style: none;&lt;br /&gt;
}&lt;br /&gt;
/* main level link */&lt;br /&gt;
#main_menu a {&lt;br /&gt;
    color: #e3e3e3;&lt;br /&gt;
    text-decoration: none;&lt;br /&gt;
    display: block;&lt;br /&gt;
    padding:.6em 1.3em .6em 0;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    background-image:url('http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/ic_down.png');&lt;br /&gt;
    background-repeat:no-repeat;&lt;br /&gt;
    background-position:right center;&lt;br /&gt;
}&lt;br /&gt;
#main_menu &amp;gt; li:first-child a {&lt;br /&gt;
    margin-left:+1.4em;&lt;br /&gt;
}&lt;br /&gt;
#main_menu li &amp;gt; a {  &lt;br /&gt;
   margin-right:+.4em;&lt;br /&gt;
}  &lt;br /&gt;
#main_menu &amp;gt; li:last-child a {&lt;br /&gt;
    margin-right:+1.4em;&lt;br /&gt;
}&lt;br /&gt;
/* main level link hover */&lt;br /&gt;
#main_menu .current a, #main_menu li:hover &amp;gt; a {&lt;br /&gt;
    color: #ee8301;&lt;br /&gt;
    background-image:url('http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/ic_down_hover.png');&lt;br /&gt;
}&lt;br /&gt;
/* sub levels link description */&lt;br /&gt;
#main_menu ul li:hover, #main_menu li:hover li {&lt;br /&gt;
   color: #909898;&lt;br /&gt;
}&lt;br /&gt;
/* sub levels link hover */&lt;br /&gt;
#main_menu ul li:hover a, #main_menu li:hover li a {&lt;br /&gt;
   color: #c4c4c4;&lt;br /&gt;
   font-weight:bold;&lt;br /&gt;
   margin:-.7em 0 -.8em 0;&lt;br /&gt;
/*&lt;br /&gt;
   background-image:url('http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/progress_bar.png');&lt;br /&gt;
   background-size:3.5em;&lt;br /&gt;
*/&lt;br /&gt;
   background-image:none;&lt;br /&gt;
}&lt;br /&gt;
#main_menu li:hover li a:hover {&lt;br /&gt;
   color: #ee8301;&lt;br /&gt;
/*&lt;br /&gt;
   background-image:url('http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/progress_bar_hover.png');&lt;br /&gt;
*/&lt;br /&gt;
   background-image:none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ============================== style for menu progress bar */&lt;br /&gt;
&lt;br /&gt;
.progressbarbg1 {&lt;br /&gt;
  width: 8ex;&lt;br /&gt;
  height: 1.6ex;&lt;br /&gt;
  background:black;&lt;br /&gt;
  border-radius: 1ex;&lt;br /&gt;
  border:2.5px solid #92A599;&lt;br /&gt;
  /* add some position settings here #92A599  #8FA397 */&lt;br /&gt;
  float:right;&lt;br /&gt;
  margin:-1em 0 0 0;&lt;br /&gt;
}&lt;br /&gt;
.progressbar1 {&lt;br /&gt;
  width: 7ex;&lt;br /&gt;
  height: 1ex;&lt;br /&gt;
  position: relative;&lt;br /&gt;
  top: 0.3ex;&lt;br /&gt;
  left: .3ex;&lt;br /&gt;
  background: #92A599;&lt;br /&gt;
  border-radius: 1ex;&lt;br /&gt;
  border-width: 1px;&lt;br /&gt;
  border-color: #000000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* remove indicators from reference sub menu */&lt;br /&gt;
#main_menu ul#mm3 li a, #main_menu ul#mm3 li:hover a {&lt;br /&gt;
   background-image:none;&lt;br /&gt;
}&lt;br /&gt;
/* level 2 list */&lt;br /&gt;
#main_menu li ul {&lt;br /&gt;
    /*display: none;*/&lt;br /&gt;
	visibility: hidden;&lt;br /&gt;
	opacity: 0;&lt;br /&gt;
    position: absolute; top: 1.8em;&lt;br /&gt;
    min-width:35em;&lt;br /&gt;
    font-size:.85em;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 1.65em 1.5em .5em 1.5em;&lt;br /&gt;
    background: #161525; /* Old browsers */&lt;br /&gt;
    background: -moz-linear-gradient(top,  #161525 0%, #000000 57%); /* FF3.6+ */&lt;br /&gt;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#161525), color-stop(57%,#000000)); /* Chrome,Safari4+ */&lt;br /&gt;
    background: -webkit-linear-gradient(top,  #161525 0%,#000000 57%); /* Chrome10+,Safari5.1+ */&lt;br /&gt;
    background: -o-linear-gradient(top,  #161525 0%,#000000 57%); /* Opera 11.10+ */&lt;br /&gt;
    background: -ms-linear-gradient(top,  #161525 0%,#000000 57%); /* IE10+ */&lt;br /&gt;
    background: linear-gradient(to bottom,  #161525 0%,#000000 57%); /* W3C */&lt;br /&gt;
    -webkit-border-radius:  0 2em 2em 2em;&lt;br /&gt;
    -moz-border-radius: 0 2em 2em 2em;&lt;br /&gt;
    border-radius:  0 2em 2em 2em;&lt;br /&gt;
    -moz-box-shadow: 2px 4px 12px #000000;&lt;br /&gt;
    -webkit-box-shadow: 2px 4px 12px #000000;&lt;br /&gt;
    box-shadow: 2px 4px 12px #000000;&lt;br /&gt;
    /*&lt;br /&gt;
	transition:visibility .25s linear .25s, opacity .25s linear .25s;&lt;br /&gt;
	-moz-transition:visibility .25s linear .25s, opacity .25s linear .25s;&lt;br /&gt;
	-webkit-transition:visibility .25s linear .25s, opacity .25s linear .25s;&lt;br /&gt;
	-o-transition:visibility .25s linear .25s, opacity .25s linear .25s;&lt;br /&gt;
    */&lt;br /&gt;
}&lt;br /&gt;
/* needs to be adjusted for each introduced ul */&lt;br /&gt;
#main_menu li #mm2 {left:-7.9em;}&lt;br /&gt;
#main_menu li #mm3 {left:-16.8em;}&lt;br /&gt;
@-moz-document url-prefix() { &lt;br /&gt;
    #main_menu li #mm2 { left:-8.1em; } &lt;br /&gt;
    #main_menu li #mm3 { left:-17.1em; } &lt;br /&gt;
} &lt;br /&gt;
.win.gecko #main_menu li #mm2 { left:-7.9em; }&lt;br /&gt;
.win.gecko #main_menu li #mm3 { left:-16.85em; }&lt;br /&gt;
&lt;br /&gt;
.ie #main_menu li #mm2 { left:-8.15em; }&lt;br /&gt;
.ie #main_menu li #mm3 { left:-17.15em; }&lt;br /&gt;
&lt;br /&gt;
.mac.webkit #main_menu li #mm2 { left:-8em; }&lt;br /&gt;
.mac.webkit #main_menu li #mm3 { left:-16.95em; }&lt;br /&gt;
&lt;br /&gt;
#selector[id=selector] { color: red; }&lt;br /&gt;
&lt;br /&gt;
#main_menu li:hover ul&amp;gt; li {&lt;br /&gt;
    border-bottom:thin solid #acbbaf;&lt;br /&gt;
    margin:0 0 .45em 0;&lt;br /&gt;
    padding: 0 0 .4em 0;&lt;br /&gt;
}&lt;br /&gt;
#main_menu li:hover ul &amp;gt; li:last-child {&lt;br /&gt;
    border-bottom:none;&lt;br /&gt;
}&lt;br /&gt;
/* dropdown */&lt;br /&gt;
#main_menu li:hover &amp;gt; ul {&lt;br /&gt;
	display: block;&lt;br /&gt;
	visibility: visible;&lt;br /&gt;
	opacity: 1;&lt;br /&gt;
}&lt;br /&gt;
#main_menu ul li {&lt;br /&gt;
	float: none;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* clearfix */&lt;br /&gt;
#main_menu:after {&lt;br /&gt;
	content: &amp;quot;.&amp;quot;;&lt;br /&gt;
	display: block;&lt;br /&gt;
	clear: both;&lt;br /&gt;
	visibility: hidden;&lt;br /&gt;
	line-height: 0;&lt;br /&gt;
	height: 0;&lt;br /&gt;
}&lt;br /&gt;
#main_menu {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
}&lt;br /&gt;
html[xmlns] #main_menu {&lt;br /&gt;
	display: block;&lt;br /&gt;
}&lt;br /&gt;
* html #main_menu {&lt;br /&gt;
	height: 1%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* ================================== SIDE MENU: */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
body #mw-panel {&lt;br /&gt;
    margin-top:3.3em;&lt;br /&gt;
}&lt;br /&gt;
#mw-panel #p-Reference h5,&lt;br /&gt;
body #mw-panel div.portal h5 {&lt;br /&gt;
    font-size: 1.3em;&lt;br /&gt;
    font-stretch:normal;&lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
    margin:0; padding: 0 0 0 0.6em;&lt;br /&gt;
    color:#161525;&lt;br /&gt;
}&lt;br /&gt;
#mw-panel #p-Reference li a {&lt;br /&gt;
    color:#3b434e;&lt;br /&gt;
}&lt;br /&gt;
#mw-panel #p-Reference li a:hover {&lt;br /&gt;
    color:#ff530d;&lt;br /&gt;
    padding-left:1.1em;&lt;br /&gt;
    background-image:url('http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/side_pointer2.png');&lt;br /&gt;
    background-size:.8em;&lt;br /&gt;
    background-repeat:no-repeat;&lt;br /&gt;
    background-position:left center;&lt;br /&gt;
}&lt;br /&gt;
body #mw-panel #p-Reference .body,&lt;br /&gt;
body #mw-panel div.portal div.body {&lt;br /&gt;
   background-image:none; &lt;br /&gt;
}&lt;br /&gt;
.fixedRef { &lt;br /&gt;
    position: fixed; top:3em; left:0;&lt;br /&gt;
    width:10em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#mw-panel .portal .body ul li {&lt;br /&gt;
    text-align:right;&lt;br /&gt;
}&lt;br /&gt;
#engine {&lt;br /&gt;
    background:#161525;&lt;br /&gt;
    color:#e3e3e3;&lt;br /&gt;
    width: 9em; height: 2.4em;&lt;br /&gt;
    margin:.65em 0 0 0;&lt;br /&gt;
    text-align:left center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ================================== CONTENT: */&lt;br /&gt;
&lt;br /&gt;
div#content a.zoo_external {&lt;br /&gt;
    color: #161525;&lt;br /&gt;
}&lt;br /&gt;
div#content a.zoo_external:hover {&lt;br /&gt;
    color: #ee8301;&lt;br /&gt;
}&lt;br /&gt;
div#content a.zoo_external, div#content a.zoo_external[href^=&amp;quot;gopher://&amp;quot;] {&lt;br /&gt;
    background: url(&amp;quot;http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/ex-link2.png&amp;quot;) no-repeat scroll right center transparent;&lt;br /&gt;
    padding-right: 18px;&lt;br /&gt;
}&lt;br /&gt;
div#content a.zoo_external:hover, div#content a.zoo_external:hover[href^=&amp;quot;gopher://&amp;quot;] {&lt;br /&gt;
    background: url(&amp;quot;http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/ex-link.png&amp;quot;) no-repeat scroll right center transparent;&lt;br /&gt;
    padding-right: 18px;&lt;br /&gt;
}&lt;br /&gt;
#firstHeading {&lt;br /&gt;
    font-size: 1.3em;&lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
    text-align:center;&lt;br /&gt;
    color:#161525;&lt;br /&gt;
    margin:0 0 .9em 0;&lt;br /&gt;
    padding:0;&lt;br /&gt;
    border:none;&lt;br /&gt;
    border-bottom:thin solid #ee8301;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr {&lt;br /&gt;
    margin-left:1em;&lt;br /&gt;
}&lt;br /&gt;
/* homepage slogan */&lt;br /&gt;
.slogan {&lt;br /&gt;
    font-size: 1.3em;&lt;br /&gt;
    font-weight:normal;&lt;br /&gt;
    color:#3b434e;&lt;br /&gt;
    margin-left:-.5em;&lt;br /&gt;
}&lt;br /&gt;
.slogan span {&lt;br /&gt;
     font-weight:bold;&lt;br /&gt;
     color:#161525;&lt;br /&gt;
}&lt;br /&gt;
div.tutblock, &lt;br /&gt;
div.refblock,&lt;br /&gt;
div.resblock {&lt;br /&gt;
    border:none;&lt;br /&gt;
    margin-top:.2em;&lt;br /&gt;
    margin-bottom:0;&lt;br /&gt;
    margin-left:-1em;&lt;br /&gt;
    -webkit-border-radius: 1.5em;&lt;br /&gt;
    -moz-border-radius:1.5em;&lt;br /&gt;
    border-radius: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
/* add extra margin so the resources block floats under tutorials */&lt;br /&gt;
div.refblock {&lt;br /&gt;
    margin-bottom:+4em;&lt;br /&gt;
}&lt;br /&gt;
/* fix webkit misbahaviour */&lt;br /&gt;
@media screen and (-webkit-min-device-pixel-ratio:0) {&lt;br /&gt;
  div.tutblock, &lt;br /&gt;
  div.refblock,&lt;br /&gt;
  div.resblock { margin-top:.6em; }&lt;br /&gt;
}&lt;br /&gt;
div.tutblock:hover, &lt;br /&gt;
div.refblock:hover,&lt;br /&gt;
div.resblock:hover  {&lt;br /&gt;
   -moz-box-shadow: 1px 1px 1px #3b434e;&lt;br /&gt;
   -webkit-box-shadow: 1px 1px 1px #3b434e;&lt;br /&gt;
   box-shadow: 1px 1px 1px #3b434e;&lt;br /&gt;
   background:#dae5d9;&lt;br /&gt;
   transition:background 1s;&lt;br /&gt;
   -moz-transition:background 1s; /* Firefox 4 */&lt;br /&gt;
   -webkit-transition:background 2s; /* Safari and Chrome */&lt;br /&gt;
   -o-transition:background 1s; /* Opera */&lt;br /&gt;
}&lt;br /&gt;
div.tutblock:hover h2,&lt;br /&gt;
div.refblock:hover h2,&lt;br /&gt;
div.resblock:hover h2 {&lt;br /&gt;
   color:#ee8301;&lt;br /&gt;
   border-bottom: 1px solid #ee8301;&lt;br /&gt;
}&lt;br /&gt;
div.tutblock:hover dl,&lt;br /&gt;
div.refblock:hover dl,&lt;br /&gt;
div.resblock:hover dl {&lt;br /&gt;
   margin-top: -1px;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr h2 {&lt;br /&gt;
    font-size:1.2em;&lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
    color:#3b434e;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr a {&lt;br /&gt;
    color:#161525;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr .tutblock a:hover,&lt;br /&gt;
.mw-content-ltr .refblock a:hover,&lt;br /&gt;
.mw-content-ltr .resblock a:hover {&lt;br /&gt;
    color:#ee8301;&lt;br /&gt;
    background-image:url('http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/side_pointer2.png');&lt;br /&gt;
    background-size:.8em;&lt;br /&gt;
    background-repeat:no-repeat;&lt;br /&gt;
    background-position:left center;&lt;br /&gt;
    margin-left:-1.1em; padding-left:+1.1em;&lt;br /&gt;
}&lt;br /&gt;
/* this shouldn't be necessarry - investigate further */&lt;br /&gt;
.mw-content-ltr .refblock a:hover {&lt;br /&gt;
    margin-left:-2em; padding-left:+2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-content-ltr .tutblock dl dt,&lt;br /&gt;
.mw-content-ltr .refblock dl dt,&lt;br /&gt;
.mw-content-ltr .resblock dl dt  {&lt;br /&gt;
    margin:0 0 -.1em 0; padding:0;&lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
    color:#3b434e;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr .resblock dl dt  {&lt;br /&gt;
    margin:0; padding:0;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr .tutblock dl dt::first-letter,&lt;br /&gt;
.mw-content-ltr .refblock dl dt::first-letter {&lt;br /&gt;
    color:#3b434e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-content-ltr .tutblock dl dt:hover:first-letter,&lt;br /&gt;
.mw-content-ltr .refblock dl dt:hover:first-letter,&lt;br /&gt;
.mw-content-ltr .resblock dl dt:hover:first-letter  {&lt;br /&gt;
    color:#161525;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr .tutblock dl dd,&lt;br /&gt;
.mw-content-ltr .refblock dl dd,&lt;br /&gt;
.mw-content-ltr .resblock dl dd  {&lt;br /&gt;
    margin:0 0 .7em 0; &lt;br /&gt;
    padding:0 1em 0 0;&lt;br /&gt;
    line-height:105%;&lt;br /&gt;
    color:#3b434e;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr .tutblock dl dd a,&lt;br /&gt;
.mw-content-ltr .refblock dl dd a,&lt;br /&gt;
.mw-content-ltr .resblock dl dd a  {&lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
    color:#3b434e;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr .tutblock dl dd a:hover,&lt;br /&gt;
.mw-content-ltr .refblock dl dd a:hover,&lt;br /&gt;
.mw-content-ltr .resblock dl dd a:hover  {&lt;br /&gt;
    background-image:none;&lt;br /&gt;
    margin-left:-1.1em; padding-left:-1.1em;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr .resblock dl dd a  {&lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
    color:#161525;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* ================================== TUTORIALS HEADER: */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.ref_section {&lt;br /&gt;
    background:none; border:none;&lt;br /&gt;
    -moz-border-radius:.8em;&lt;br /&gt;
    -webkit-border-radius:.8em;&lt;br /&gt;
    border-radius:.8em;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
.db_ref { &lt;br /&gt;
    *border-collapse: collapse; /* IE7 and lower */&lt;br /&gt;
    border-spacing:0;&lt;br /&gt;
    border:none;&lt;br /&gt;
    color:#dae5d9;&lt;br /&gt;
    display: inline-block;&lt;br /&gt;
    -moz-border-radius: .8em;&lt;br /&gt;
    -webkit-border-radius: .8em;&lt;br /&gt;
    border-radius: .8em;&lt;br /&gt;
}&lt;br /&gt;
.db_ref caption {&lt;br /&gt;
    color:#161525;&lt;br /&gt;
    background:#d2e5d1;&lt;br /&gt;
    display: block;&lt;br /&gt;
}&lt;br /&gt;
.db_ref tr:hover {&lt;br /&gt;
    color:#161525;&lt;br /&gt;
    background:#e3e3e3;&lt;br /&gt;
    -o-transition: all 0.1s ease-in-out;&lt;br /&gt;
    -webkit-transition: all 0.1s ease-in-out;&lt;br /&gt;
    -moz-transition: all 0.1s ease-in-out;&lt;br /&gt;
    -ms-transition: all 0.1s ease-in-out;&lt;br /&gt;
    transition: all 0.1s ease-in-out;     &lt;br /&gt;
}    &lt;br /&gt;
    &lt;br /&gt;
.db_ref td, .db_ref th {&lt;br /&gt;
    border-left: 1px solid #3b434e;&lt;br /&gt;
    border-top: none;&lt;br /&gt;
    padding:.1em .7em .1em .5em;&lt;br /&gt;
}&lt;br /&gt;
.db_ref tr {  &lt;br /&gt;
    background:#3b434e;&lt;br /&gt;
}&lt;br /&gt;
.db_ref tr:first-child,&lt;br /&gt;
.db_ref tr:last-child {  &lt;br /&gt;
    background:none;&lt;br /&gt;
}&lt;br /&gt;
/*&lt;br /&gt;
.db_ref td {&lt;br /&gt;
    background:#3b434e;&lt;br /&gt;
}&lt;br /&gt;
*/&lt;br /&gt;
.db_ref th {&lt;br /&gt;
    background-color:#161525;&lt;br /&gt;
    color:#e3e3e3;&lt;br /&gt;
    padding:.2em .7em .2em .5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.db_ref td:first-child, .db_ref th:first-child {&lt;br /&gt;
    border-left:none;&lt;br /&gt;
}&lt;br /&gt;
.db_ref td[colspan] {  &lt;br /&gt;
    border:none;&lt;br /&gt;
    background:#3b434e;&lt;br /&gt;
}&lt;br /&gt;
.db_ref td[colspan]:hover {  &lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
    color:#161525;&lt;br /&gt;
    background:#d2e5d1;&lt;br /&gt;
}&lt;br /&gt;
.db_ref th:first-child {&lt;br /&gt;
    -moz-border-radius: .8em 0 0 0;&lt;br /&gt;
    -webkit-border-radius: .8em 0 0 0;&lt;br /&gt;
    border-radius: .8em 0 0 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.db_ref th:last-child {&lt;br /&gt;
    -moz-border-radius: 0 .8em 0 0;&lt;br /&gt;
    -webkit-border-radius: 0 .8em 0 0;&lt;br /&gt;
    border-radius: 0 .8em 0 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.db_ref th:only-child{&lt;br /&gt;
    -moz-border-radius: .8em .8em 0 0;&lt;br /&gt;
    -webkit-border-radius: .8em .8em 0 0;&lt;br /&gt;
    border-radius: .8em .8em 0 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.db_ref tr:last-child td:first-child {&lt;br /&gt;
    -moz-border-radius: 0 0 0 .8em;&lt;br /&gt;
    -webkit-border-radius: 0 0 0 .8em;&lt;br /&gt;
    border-radius: 0 0 0 .8em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.db_ref tr:last-child td:last-child {&lt;br /&gt;
    -moz-border-radius: 0 0 .8em 0;&lt;br /&gt;
    -webkit-border-radius: 0 0 .8em 0;&lt;br /&gt;
    border-radius: 0 0 .8em 0;&lt;br /&gt;
}&lt;br /&gt;
.db_ref tr:last-child td:last-child[colspan] {&lt;br /&gt;
   -moz-border-radius:0 0 .8em .8em;&lt;br /&gt;
    -webkit-border-radius:0 0 .8em .8em;&lt;br /&gt;
    border-radius:0 0 .8em .8em;&lt;br /&gt;
}&lt;br /&gt;
.fixedDbRef { &lt;br /&gt;
    position: fixed; top:-1em; right:-2em;&lt;br /&gt;
    -moz-box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
    -webkit-box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
    box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
    opacity:0.5;&lt;br /&gt;
    -webkit-transform:scale(0.8);&lt;br /&gt;
    -moz-transform:scale(0.8);&lt;br /&gt;
    -o-transform:scale(0.8);&lt;br /&gt;
    transform:scale(0.8);&lt;br /&gt;
    &lt;br /&gt;
    -moz-transition:all 1s; /* Firefox 4 */&lt;br /&gt;
    -webkit-transition:all 1s; /* Safari and Chrome */&lt;br /&gt;
    -o-transition:all 1s; /* Opera */&lt;br /&gt;
    transition:all 1s; /* Opera */&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
.fixedDbRef:hover {&lt;br /&gt;
    top:0; right:0;&lt;br /&gt;
    opacity:1;&lt;br /&gt;
    -webkit-transform:scale(1);&lt;br /&gt;
    -moz-transform:scale(1);&lt;br /&gt;
    -o-transform:scale(1);&lt;br /&gt;
    transform:scale(1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* ================================== TUTORIALS CONTENT: */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.ref_section {&lt;br /&gt;
        float:right;&lt;br /&gt;
        margin-left:1em&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr #toc, .mw-content-ltr .toc, .mw-content-ltr .tochidden {&lt;br /&gt;
    -webkit-border-radius: 1em;&lt;br /&gt;
    -moz-border-radius:1em;&lt;br /&gt;
    border-radius: 1em;&lt;br /&gt;
    border-collapse: separate;&lt;br /&gt;
    padding:0 .5em 0 .5em;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr table#toc td, .mw-content-ltr .toc td, .mw-content-ltr .tochidden td {&lt;br /&gt;
    border:none; margin:0; padding:0;&lt;br /&gt;
}&lt;br /&gt;
.extra_space {&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
.mw-headline {&lt;br /&gt;
    margin-bottom:-2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* ============================== PROGRESS PANEL */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.progress_panel {&lt;br /&gt;
   display:inline-block;&lt;br /&gt;
   border:thin solid rgba(33,33,33,0.7);&lt;br /&gt;
   -webkit-border-radius: 3em 2em 3em 2em / 2em 1em 2em 1em;&lt;br /&gt;
   -moz-border-radius: 3em 2em 3em 2em / 2em 1em 2em 1em;&lt;br /&gt;
   border-radius: 3em 2em 3em 2em / 2em 1em 2em 1em;&lt;br /&gt;
   background: #e3ede3; /* Old browsers */&lt;br /&gt;
   background: -moz-linear-gradient(-45deg, #e3ede3 1%, #dae5d9 100%); /* FF3.6+ */&lt;br /&gt;
   background: -webkit-gradient(linear, left top, right bottom, color-stop(1%,#e3ede3), color-stop(100%,#dae5d9)); /* Chrome,Safari4+ */&lt;br /&gt;
   background: -webkit-linear-gradient(-45deg, #e3ede3 1%,#dae5d9 100%); /* Chrome10+,Safari5.1+ */&lt;br /&gt;
   background: -o-linear-gradient(-45deg, #e3ede3 1%,#dae5d9 100%); /* Opera 11.10+ */&lt;br /&gt;
   background: -ms-linear-gradient(-45deg, #e3ede3 1%,#dae5d9 100%); /* IE10+ */&lt;br /&gt;
   background: linear-gradient(135deg, #e3ede3 1%,#dae5d9 100%); /* W3C */&lt;br /&gt;
   -moz-box-shadow: 0px 0px 2px #333333;&lt;br /&gt;
   -webkit-box-shadow: 0px 0px 2px #333333;&lt;br /&gt;
   box-shadow: 0px 0px 2px #333333;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
.progress_panel &amp;gt; div {&lt;br /&gt;
    padding:1.2em 1.5em 1.5em 1.2em;&lt;br /&gt;
    background:#D2DDD2;&lt;br /&gt;
    -webkit-border-radius: 3em 2em 3em 2em / 2em 1em 2em 1em;&lt;br /&gt;
    -moz-border-radius: 3em 2em 3em 2em / 2em 1em 2em 1em;&lt;br /&gt;
    border-radius: 3em 2em 3em 2em / 2em 1em 2em 1em;&lt;br /&gt;
    -moz-box-shadow:inset 2px 2px 12px #e7f0e7;&lt;br /&gt;
    -webkit-box-shadow:inset 2px 2px 12px #e7f0e7;&lt;br /&gt;
    box-shadow:inset 2px 2px 12px #e7f0e7;&lt;br /&gt;
}&lt;br /&gt;
.progress_panel .summary {&lt;br /&gt;
    color: #3b434e;&lt;br /&gt;
    font-size: 0.85em;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    text-shadow: 1px 1px 0 #E4EDE6;&lt;br /&gt;
    margin: 0.5em 0;&lt;br /&gt;
    padding:0;&lt;br /&gt;
    line-height: 140%;&lt;br /&gt;
}&lt;br /&gt;
.progressbarbg {&lt;br /&gt;
    background:#161525;&lt;br /&gt;
    border-radius: 2ex 2ex 2ex 2ex;&lt;br /&gt;
    height: 2em;&lt;br /&gt;
    width: 50ex;&lt;br /&gt;
    border-bottom:2px solid #d2e5d1;&lt;br /&gt;
    border-right: 2px solid #d2e5d1;&lt;br /&gt;
    -moz-box-shadow: 2px 2px 3px #1a1a1a;&lt;br /&gt;
    -webkit-box-shadow: 2px 2px 3px #1a1a1a;&lt;br /&gt;
    box-shadow: 2px 2px 3px #1a1a1a;&lt;br /&gt;
}&lt;br /&gt;
.progressbar {&lt;br /&gt;
    position: relative;&lt;br /&gt;
    left: 1ex; top: 1ex;&lt;br /&gt;
    width: 48ex;&lt;br /&gt;
    height: 1em;&lt;br /&gt;
    background: #323832; /* Old browsers */&lt;br /&gt;
    background: -moz-linear-gradient(left, #323832 0%, #bfcebe 90%, #e9ffe7 100%); /* FF3.6+ */&lt;br /&gt;
    background: -webkit-gradient(linear, left top, right top, color-stop(0%,#323832), color-stop(90%,#bfcebe), color-stop(100%,#e9ffe7)); /* Chrome,Safari4+ */&lt;br /&gt;
    background: -webkit-linear-gradient(left, #323832 0%,#bfcebe 90%,#e9ffe7 100%); /* Chrome10+,Safari5.1+ */&lt;br /&gt;
    background: -o-linear-gradient(left, #323832 0%,#bfcebe 90%,#e9ffe7 100%); /* Opera 11.10+ */&lt;br /&gt;
    background: -ms-linear-gradient(left, #323832 0%,#bfcebe 90%,#e9ffe7 100%); /* IE10+ */&lt;br /&gt;
    background: linear-gradient(to right, #323832 0%,#bfcebe 90%,#e9ffe7 100%); /* W3C */&lt;br /&gt;
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#323832', endColorstr='#e9ffe7',GradientType=1 ); /* IE6-9 */&lt;br /&gt;
    border-radius: 1ex 1ex 1ex 1ex;&lt;br /&gt;
    -moz-box-shadow: 2px 0 2px #4D4D4D;&lt;br /&gt;
    -webkit-box-shadow: 2px 0 2px #4D4D4D;&lt;br /&gt;
    box-shadow: 2px 0 2px #4D4D4D;  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ======================= CORRECT/INCORRECT INDICATOR */&lt;br /&gt;
&lt;br /&gt;
.qcorrect, .qincorrect {&lt;br /&gt;
  width:3em;&lt;br /&gt;
  height:3em;&lt;br /&gt;
  position:absolute;&lt;br /&gt;
  left:-1em;&lt;br /&gt;
  margin: -0.5em 0 0 1em;&lt;br /&gt;
  background-size:3em;&lt;br /&gt;
  background-repeat:no-repeat;&lt;br /&gt;
  background-position:center;&lt;br /&gt;
}&lt;br /&gt;
.qcorrect {&lt;br /&gt;
  background-image:url('http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/done9.png');&lt;br /&gt;
}&lt;br /&gt;
.qincorrect {&lt;br /&gt;
  background-image:url('http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/undone9.png');&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* ======================= TUTS USER INPUT */&lt;br /&gt;
&lt;br /&gt;
/* Prevent floating after a .qu */&lt;br /&gt;
.qu+*{&lt;br /&gt;
  clear:left;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.qu {&lt;br /&gt;
    border:none;&lt;br /&gt;
    border-top:thin solid #ee8301;&lt;br /&gt;
    margin: 2ex 0.2ex 0.2ex;&lt;br /&gt;
    padding: 10px;&lt;br /&gt;
}&lt;br /&gt;
.qu span.id {&lt;br /&gt;
    margin-bottom:.5em;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr p,&lt;br /&gt;
.qu p {&lt;br /&gt;
    margin-bottom:1em;&lt;br /&gt;
}&lt;br /&gt;
.quf {&lt;br /&gt;
    margin:0 0 1em 0;&lt;br /&gt;
}&lt;br /&gt;
.quf textarea {&lt;br /&gt;
    -webkit-border-radius:3em 1.2em 3em 1.2em / 3em 1.5em 4em 0;&lt;br /&gt;
    -moz-border-radius:3em 1.2em 3em 1.2em / 3em 1.5em 4em 0;&lt;br /&gt;
    border-radius:3em 1.2em 3em 1.2em / 3em 1.5em 4em 0;&lt;br /&gt;
    border-top:1.6em solid #3b434e;&lt;br /&gt;
    border-bottom:2em solid #3b434e;&lt;br /&gt;
    border-right:1.6em solid #3b434e;&lt;br /&gt;
    border-left:1.3em solid #3b434e;&lt;br /&gt;
    background:#e3e3e3;&lt;br /&gt;
    margin:.5em 0 -1em 0em;&lt;br /&gt;
    padding:.5em 0 0 .5em;&lt;br /&gt;
    width: 29.5em;&lt;br /&gt;
    overflow:auto;&lt;br /&gt;
}&lt;br /&gt;
.mac.webkit .quf textarea { width: 34.5em }&lt;br /&gt;
.win.gecko .quf textarea { width: 30em; }&lt;br /&gt;
.mac.gecko .quf textarea { width: 28.5em; }&lt;br /&gt;
.ie .quf textarea { width: 27em; }&lt;br /&gt;
.opera .quf textarea { width: 35.5em; }&lt;br /&gt;
.win.opera .quf textarea { width: 30em; }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.submitSQL {&lt;br /&gt;
    margin:-1.1em 0 0 0em; /* win ff */&lt;br /&gt;
    padding:.5em 1em .5em 1em;&lt;br /&gt;
    color:#e3e3e3;&lt;br /&gt;
    height:auto;&lt;br /&gt;
    background: #161525; /* Old browsers */&lt;br /&gt;
    background: -moz-linear-gradient(top,  #363d49 0%, #363d49 18%, #161525 69%, #161525 100%); /* FF3.6+ */&lt;br /&gt;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#363d49), color-stop(18%,#363d49), color-stop(69%,#161525), color-stop(100%,#161525)); /* Chrome,Safari4+ */&lt;br /&gt;
    background: -webkit-linear-gradient(top,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* Chrome10+,Safari5.1+ */&lt;br /&gt;
    background: -o-linear-gradient(top,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* Opera 11.10+ */&lt;br /&gt;
    background: -ms-linear-gradient(top,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* IE10+ */&lt;br /&gt;
    background: linear-gradient(to bottom,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* W3C */&lt;br /&gt;
    border:1em solid #3b434e;&lt;br /&gt;
    -webkit-border-radius:2.5em;&lt;br /&gt;
    -moz-border-radius:2.5em;&lt;br /&gt;
    border-radius:2.5em;&lt;br /&gt;
    z-index:+1;&lt;br /&gt;
}&lt;br /&gt;
.webkit .submitSQL { margin:-1.1em 0 0 0em; }&lt;br /&gt;
.mac.gecko .submitSQL { margin:-1.1em 0 0 0em; }&lt;br /&gt;
.ie .submitSQL { margin:-1em 0 0 0em; }&lt;br /&gt;
.opera .submitSQL { margin:-1em 0 0 0em; }&lt;br /&gt;
.submitSQL:hover {&lt;br /&gt;
    color:#ffffff;&lt;br /&gt;
    background:#161525;&lt;br /&gt;
    -webkit-background-clip: padding-box; &lt;br /&gt;
    -moz-background-clip:    padding; &lt;br /&gt;
    background-clip:         padding-box;&lt;br /&gt;
}&lt;br /&gt;
.quf .reset {&lt;br /&gt;
   cursor:pointer;&lt;br /&gt;
   display:inline-block;&lt;br /&gt;
   -moz-border-radius:0 0 1em 1em;&lt;br /&gt;
   -webkit-border-radius:0 0 1em 1em;&lt;br /&gt;
   border-radius:0 0 1em 1em;&lt;br /&gt;
   background:#3B434E;&lt;br /&gt;
   color:#e3e3e3;&lt;br /&gt;
   left: 12.6em;&lt;br /&gt;
   padding: 0 1.2em 0.2em;&lt;br /&gt;
   position: relative;&lt;br /&gt;
   top: 0;&lt;br /&gt;
}&lt;br /&gt;
.quf .reset:hover {&lt;br /&gt;
   color:#ee8301;&lt;br /&gt;
}&lt;br /&gt;
.win.webkit .quf .reset { left: 12em; }&lt;br /&gt;
.win.gecko .quf .reset { left: 12em; }&lt;br /&gt;
.ie .quf .reset { left: 10em; }&lt;br /&gt;
&lt;br /&gt;
div.res {&lt;br /&gt;
    background:#dae5d9;&lt;br /&gt;
    color:#3b434e;&lt;br /&gt;
    border:none;&lt;br /&gt;
    padding:1em;&lt;br /&gt;
    -webkit-border-radius: 1.5em;&lt;br /&gt;
    -moz-border-radius:1.5em;&lt;br /&gt;
    border-radius: 1.5em;&lt;br /&gt;
    -moz-box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
    -webkit-box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
    box-shadow: 1px 1px 3px #3b434e;&lt;br /&gt;
    display:inline-block;&lt;br /&gt;
    margin-left: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Connor 23/7/12 Highlighting for the multiple choice answers.&lt;br /&gt;
tr.proposal:hover{&lt;br /&gt;
  background-color:rgb(150,150,200)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lsclear{&lt;br /&gt;
  color: #D90000;&lt;br /&gt;
  font-weight: bold;&lt;br /&gt;
  cursor:pointer;&lt;br /&gt;
/* designer override */&lt;br /&gt;
   border: 3px solid #E3E3E3;&lt;br /&gt;
   background: #EE8301;&lt;br /&gt;
   padding: 6px 12px;&lt;br /&gt;
   margin-left:.5em;&lt;br /&gt;
   -webkit-border-radius: 22px;&lt;br /&gt;
   -moz-border-radius: 22px;&lt;br /&gt;
   border-radius: 22px;&lt;br /&gt;
   text-shadow: -1px -1px 0 rgba(50, 50, 50, 0.75);&lt;br /&gt;
   color: #e3e3e3;&lt;br /&gt;
   font-size: 1em;&lt;br /&gt;
   font-family: Helvetica, Arial, Sans-Serif;&lt;br /&gt;
   font-weight:normal;&lt;br /&gt;
   text-decoration: none;&lt;br /&gt;
   vertical-align: middle;&lt;br /&gt;
   -webkit-box-shadow: 1px 1px 5px rgba(50, 50, 50, 0.75);&lt;br /&gt;
   -moz-box-shadow:    1px 1px 5px rgba(50, 50, 50, 0.75);&lt;br /&gt;
   box-shadow:         1px 1px 5px rgba(50, 50, 50, 0.75);&lt;br /&gt;
   display:inline-block;&lt;br /&gt;
}&lt;br /&gt;
.lsclear:hover {&lt;br /&gt;
   background: #161525;&lt;br /&gt;
   color: #EE8301;&lt;br /&gt;
   border-color: #EE8301;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ===================== FOOTER */&lt;br /&gt;
&lt;br /&gt;
div#footer {&lt;br /&gt;
    background-image: none;&lt;br /&gt;
    border-top:thin solid #EE8301;&lt;br /&gt;
    direction: ltr;&lt;br /&gt;
    margin-left: 11em;&lt;br /&gt;
    margin-top: 0;&lt;br /&gt;
    padding: 0.75em;&lt;br /&gt;
}&lt;br /&gt;
div#footer ul {&lt;br /&gt;
    margin-left:.5em;&lt;br /&gt;
}&lt;br /&gt;
/* ===================== this overrides boys css to adjust the design */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
span.id {&lt;br /&gt;
    font-size:3em;&lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
    color:#161525;&lt;br /&gt;
}&lt;br /&gt;
.imper {&lt;br /&gt;
    margin-bottom:1em;&lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr a {&lt;br /&gt;
    color:#161525; &lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
}&lt;br /&gt;
.qu a {&lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr a:hover {&lt;br /&gt;
    color:#ee8301;&lt;br /&gt;
}&lt;br /&gt;
.qu a:hover {&lt;br /&gt;
    color:#ee8301;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.quizlink  a{&lt;br /&gt;
    margin-left:.5em;&lt;br /&gt;
    font-weight:bold;&lt;br /&gt;
    color:#e3e3e3;&lt;br /&gt;
    background:#3b434e;&lt;br /&gt;
    padding:.5em 1.5em;&lt;br /&gt;
    -moz-border-radius:2em;&lt;br /&gt;
    -webkit-border-radius:2em;&lt;br /&gt;
    border-radius:2em;&lt;br /&gt;
    display:inline-block;&lt;br /&gt;
    box-shadow: 1px 1px 5px rgba(50, 50, 50, 0.75);&lt;br /&gt;
    border: 3px solid #E3E3E3;&lt;br /&gt;
}&lt;br /&gt;
.quizlink a:hover {&lt;br /&gt;
    color:#ee8301;&lt;br /&gt;
    background:#161525;&lt;br /&gt;
    border-color:#ee8301;&lt;br /&gt;
}&lt;br /&gt;
code {&lt;br /&gt;
    color:#ee8301;&lt;br /&gt;
    background:none;&lt;br /&gt;
    border: 1px solid #EE8301;&lt;br /&gt;
    -moz-border-radius:2em;&lt;br /&gt;
    -webkit-border-radius:2em;&lt;br /&gt;
    border-radius:2em;&lt;br /&gt;
    padding: 0.1em 0.5em 0;    &lt;br /&gt;
}&lt;br /&gt;
h2 code {&lt;br /&gt;
    border: 2px solid #EE8301;&lt;br /&gt;
}&lt;br /&gt;
.mw-content-ltr pre {&lt;br /&gt;
    border:none;&lt;br /&gt;
    background:#dae5d9;&lt;br /&gt;
    padding: 1.1em 1em 1em 2em;&lt;br /&gt;
    -moz-border-radius:.5em;&lt;br /&gt;
    -webkit-border-radius:.5em;&lt;br /&gt;
    border-radius:.5em;&lt;br /&gt;
    -moz-box-shadow:inset 5px 5px 11px rgba(33,33,33,0.7);&lt;br /&gt;
    -webkit-box-shadow:inset 5px 5px 11px rgba(33,33,33,0.7);&lt;br /&gt;
    box-shadow:inset 5px 5px 11px rgba(33,33,33,0.7);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.NoBorder td{&lt;br /&gt;
  border:none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.Bordered td{&lt;br /&gt;
  border:solid;&lt;br /&gt;
  border-width:1px;&lt;br /&gt;
}&lt;br /&gt;
/*Connor 7/8/12 Gets rid of the table lines for a table many tables have been entered into.*/&lt;br /&gt;
&lt;br /&gt;
/*Simple styling for lists of references*/&lt;br /&gt;
&lt;br /&gt;
.tutlist {&lt;br /&gt;
  width:40ex;&lt;br /&gt;
  float:right;&lt;br /&gt;
  margin-left: 1.5em;&lt;br /&gt;
  padding: 1em;&lt;br /&gt;
  -moz-box-shadow: 1px 1px 3px #3B434E;&lt;br /&gt;
  -webkit-box-shadow: 1px 1px 3px #3B434E;&lt;br /&gt;
  box-shadow: 1px 1px 3px #3B434E;&lt;br /&gt;
  background:#dae5d9;&lt;br /&gt;
  transition:background 1s;&lt;br /&gt;
  -moz-transition:background 1s; /* Firefox 4 */&lt;br /&gt;
  -webkit-transition:background 2s; /* Safari and Chrome */&lt;br /&gt;
  -o-transition:background 1s; /* Opera */&lt;br /&gt;
  border-radius: 1.5em;&lt;br /&gt;
  color: #EE8301;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.fc {&lt;br /&gt;
  color: #EE8301;&lt;br /&gt;
  text-decoration:underline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#userloginForm,&lt;br /&gt;
#userloginForm table {&lt;br /&gt;
   color:#e3e3e3;&lt;br /&gt;
}&lt;br /&gt;
#userloginForm {&lt;br /&gt;
    -moz-box-shadow: 5px 5px 8px #3b434e;&lt;br /&gt;
    -webkit-box-shadow: 3px 6px 10px #3b434e;&lt;br /&gt;
    box-shadow: 5px 5px 8px #3b434e;&lt;br /&gt;
    background: #161525; /* Old browsers */&lt;br /&gt;
    background: -moz-linear-gradient(top,  #363d49 0%, #363d49 18%, #161525 69%, #161525 100%); /* FF3.6+ */&lt;br /&gt;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#363d49), color-stop(18%,#363d49), color-stop(69%,#161525), color-stop(100%,#161525)); /* Chrome,Safari4+ */&lt;br /&gt;
    background: -webkit-linear-gradient(top,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* Chrome10+,Safari5.1+ */&lt;br /&gt;
    background: -o-linear-gradient(top,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* Opera 11.10+ */&lt;br /&gt;
    background: -ms-linear-gradient(top,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* IE10+ */&lt;br /&gt;
    background: linear-gradient(to bottom,  #363d49 0%,#363d49 18%,#161525 69%,#161525 100%); /* W3C */&lt;br /&gt;
    -webkit-border-radius: 1.5em;&lt;br /&gt;
    -moz-border-radius:1.5em;&lt;br /&gt;
    border-radius: 1.5em;&lt;br /&gt;
    border:solid 5px #e3e3e3;&lt;br /&gt;
}&lt;br /&gt;
#userloginForm a {&lt;br /&gt;
    color:#ee8301;&lt;br /&gt;
}&lt;br /&gt;
#userloginForm a:hover {&lt;br /&gt;
    color:#FF9E44;&lt;br /&gt;
    text-shadow: 0 0 6px #E17F19;&lt;br /&gt;
}&lt;br /&gt;
#userloginForm a {&lt;br /&gt;
    color:#ee8301;&lt;br /&gt;
}&lt;br /&gt;
#userloginForm table,&lt;br /&gt;
#userloginForm table td {&lt;br /&gt;
    border:none;&lt;br /&gt;
    background:none;&lt;br /&gt;
}&lt;br /&gt;
#userloginForm input {&lt;br /&gt;
    background:#e3e3e3;&lt;br /&gt;
    padding:0 .5em;&lt;br /&gt;
     -webkit-border-radius: .5em;&lt;br /&gt;
    -moz-border-radius:.5em;&lt;br /&gt;
    border-radius: .5em;&lt;br /&gt;
}&lt;br /&gt;
#userloginForm h2 {&lt;br /&gt;
    color:#ee8301&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* increase link recognition */&lt;br /&gt;
.mw-content-ltr a {&lt;br /&gt;
    text-decoration: underline;&lt;br /&gt;
}&lt;br /&gt;
div.tutblock a, div.refblock a, div.resblock a, .tutlist a, .quizlink a {&lt;br /&gt;
    text-decoration: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/SELECT_basics</id>
		<title>SELECT basics</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/SELECT_basics"/>
				<updated>2013-04-17T15:53:46Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: /* Introducing the world table of countries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;ref_section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class='db_ref'&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;name&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;continent&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;area&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;population&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;gdp&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Afghanistan&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Asia&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;652230&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;25500100&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;20343000000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Albania&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;28748	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;2831741	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;12960000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Algeria&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;2381741	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;37100000	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;188681000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Andorra&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;468&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;78115	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;3712000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Angola&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;1246700	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;20609294	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;100990000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan='5'&amp;gt;...&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Introducing the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; table of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This  tutorial introduces SQL as a  query language.. We will be using the SELECT command on the table '''world''':&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;progress_panel&amp;quot;&amp;gt;&amp;lt;div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;summary&amp;quot;&amp;gt;Summary&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;progressbarbg&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;div class=&amp;quot;progressbar&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class='extra_space' style='width:1em; height:6em;'&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
The example shows the population of 'France'.&lt;br /&gt;
Strings should be in 'single quotes';&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the population of Germany&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT population FROM world&lt;br /&gt;
  WHERE name = 'France'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT population FROM world&lt;br /&gt;
  WHERE name = 'Germany'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Per Capita GDP==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;This query shows the population density &amp;lt;code&amp;gt;population/area&amp;lt;/code&amp;gt;&lt;br /&gt;
for each country where the area is over 5,000,000 km&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;Show the per capita gdp: &amp;lt;code&amp;gt;gdp/population&amp;lt;/code&amp;gt;&lt;br /&gt;
for each country where the area is over 5,000,000 km&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name, population/area FROM world&lt;br /&gt;
  WHERE area &amp;gt; 5000000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name, gdp/population FROM world&lt;br /&gt;
  WHERE area &amp;gt; 5000000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Small and wealthy==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
Where to find some very small, very rich countries.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;We use &amp;lt;code&amp;gt;AND&amp;lt;/code&amp;gt; to ensure that two or more conditions hold&lt;br /&gt;
true.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;The example shows the countries where the population is small and the&lt;br /&gt;
gdp is high.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;Show the &amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;continent&amp;lt;/b&amp;gt; where the area is less then 2000 and the gdp is more than 5000000000&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name , continent&lt;br /&gt;
  FROM world&lt;br /&gt;
  WHERE population &amp;lt; 2000000&lt;br /&gt;
    AND gdp &amp;gt; 5000000000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name , continent&lt;br /&gt;
  FROM world&lt;br /&gt;
  WHERE area &amp;lt; 2000&lt;br /&gt;
    AND gdp &amp;gt; 5000000000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scandinavia==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
Checking a list The word &amp;lt;b&amp;gt;IN&amp;lt;/b&amp;gt; allows us to check if an item is in a list. &lt;br /&gt;
The example shows the name and population for the countries 'Ireland', 'Iceland' and 'Denmark'&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;Show the '''name''' and the '''population''' for 'Denmark', 'Finland', 'Norway', 'Sweden'&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name, population FROM world&lt;br /&gt;
  WHERE name IN ('Ireland', 'Iceland',&lt;br /&gt;
                 'Denmark')&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name, population FROM world&lt;br /&gt;
  WHERE name IN ('Denmark', 'Finland',&lt;br /&gt;
                 'Norway', 'Sweden')&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Starts with G==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
What are the countries beginning with G?&lt;br /&gt;
'''The word''' &amp;lt;code&amp;gt;LIKE&amp;lt;/code&amp;gt; '''permits pattern matching''' - % '''is the wildcard'''.&lt;br /&gt;
The examples shows countries beginning with D&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;Show each country that begins with G&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name FROM world&lt;br /&gt;
  WHERE name LIKE 'D%'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name FROM world&lt;br /&gt;
  WHERE name LIKE 'G%'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Just the right size==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
Which countries are not too small and not too big?&lt;br /&gt;
&amp;lt;code&amp;gt;BETWEEN&amp;lt;/code&amp;gt; allows range checking - note that it is inclusive.&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;'''Show the area in 1000 square km. Show''' ''area''/1000 '''instead of''' ''area''&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name, area FROM world&lt;br /&gt;
  WHERE area BETWEEN 207600 AND 244820&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name, area/1000 FROM world&lt;br /&gt;
  WHERE area BETWEEN 207600 AND 244820&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;lsclear&amp;quot;&amp;gt;Clear your results&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;div class=&amp;quot;quizlink&amp;quot;&amp;gt;[[SELECT Quiz]]&amp;lt;/div&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You are ready for tutorial one:[[SELECT_from_WORLD_Tutorial |SELECT statements with WHERE.]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Languages}}&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/SELECT_basics</id>
		<title>SELECT basics</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/SELECT_basics"/>
				<updated>2013-04-17T15:53:33Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;ref_section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class='db_ref'&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;name&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;continent&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;area&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;population&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;gdp&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Afghanistan&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Asia&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;652230&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;25500100&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;20343000000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Albania&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;28748	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;2831741	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;12960000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Algeria&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;2381741	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;37100000	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;188681000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Andorra&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;468&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;78115	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;3712000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Angola&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;1246700	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;20609294	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;100990000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan='5'&amp;gt;...&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Introducing the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; table of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This  tutorial introduces SQL as a  query language. We will be using the SELECT command on the table '''world''':&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;progress_panel&amp;quot;&amp;gt;&amp;lt;div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;summary&amp;quot;&amp;gt;Summary&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;progressbarbg&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;div class=&amp;quot;progressbar&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class='extra_space' style='width:1em; height:6em;'&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
The example shows the population of 'France'.&lt;br /&gt;
Strings should be in 'single quotes';&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the population of Germany&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT population FROM world&lt;br /&gt;
  WHERE name = 'France'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT population FROM world&lt;br /&gt;
  WHERE name = 'Germany'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Per Capita GDP==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;This query shows the population density &amp;lt;code&amp;gt;population/area&amp;lt;/code&amp;gt;&lt;br /&gt;
for each country where the area is over 5,000,000 km&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;Show the per capita gdp: &amp;lt;code&amp;gt;gdp/population&amp;lt;/code&amp;gt;&lt;br /&gt;
for each country where the area is over 5,000,000 km&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name, population/area FROM world&lt;br /&gt;
  WHERE area &amp;gt; 5000000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name, gdp/population FROM world&lt;br /&gt;
  WHERE area &amp;gt; 5000000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Small and wealthy==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
Where to find some very small, very rich countries.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;We use &amp;lt;code&amp;gt;AND&amp;lt;/code&amp;gt; to ensure that two or more conditions hold&lt;br /&gt;
true.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;The example shows the countries where the population is small and the&lt;br /&gt;
gdp is high.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;Show the &amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;continent&amp;lt;/b&amp;gt; where the area is less then 2000 and the gdp is more than 5000000000&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name , continent&lt;br /&gt;
  FROM world&lt;br /&gt;
  WHERE population &amp;lt; 2000000&lt;br /&gt;
    AND gdp &amp;gt; 5000000000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name , continent&lt;br /&gt;
  FROM world&lt;br /&gt;
  WHERE area &amp;lt; 2000&lt;br /&gt;
    AND gdp &amp;gt; 5000000000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scandinavia==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
Checking a list The word &amp;lt;b&amp;gt;IN&amp;lt;/b&amp;gt; allows us to check if an item is in a list. &lt;br /&gt;
The example shows the name and population for the countries 'Ireland', 'Iceland' and 'Denmark'&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;Show the '''name''' and the '''population''' for 'Denmark', 'Finland', 'Norway', 'Sweden'&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name, population FROM world&lt;br /&gt;
  WHERE name IN ('Ireland', 'Iceland',&lt;br /&gt;
                 'Denmark')&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name, population FROM world&lt;br /&gt;
  WHERE name IN ('Denmark', 'Finland',&lt;br /&gt;
                 'Norway', 'Sweden')&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Starts with G==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
What are the countries beginning with G?&lt;br /&gt;
'''The word''' &amp;lt;code&amp;gt;LIKE&amp;lt;/code&amp;gt; '''permits pattern matching''' - % '''is the wildcard'''.&lt;br /&gt;
The examples shows countries beginning with D&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;Show each country that begins with G&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name FROM world&lt;br /&gt;
  WHERE name LIKE 'D%'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name FROM world&lt;br /&gt;
  WHERE name LIKE 'G%'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Just the right size==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
Which countries are not too small and not too big?&lt;br /&gt;
&amp;lt;code&amp;gt;BETWEEN&amp;lt;/code&amp;gt; allows range checking - note that it is inclusive.&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;'''Show the area in 1000 square km. Show''' ''area''/1000 '''instead of''' ''area''&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name, area FROM world&lt;br /&gt;
  WHERE area BETWEEN 207600 AND 244820&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name, area/1000 FROM world&lt;br /&gt;
  WHERE area BETWEEN 207600 AND 244820&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;lsclear&amp;quot;&amp;gt;Clear your results&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;div class=&amp;quot;quizlink&amp;quot;&amp;gt;[[SELECT Quiz]]&amp;lt;/div&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You are ready for tutorial one:[[SELECT_from_WORLD_Tutorial |SELECT statements with WHERE.]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Languages}}&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/SUBSTR</id>
		<title>SUBSTR</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/SUBSTR"/>
				<updated>2013-03-25T00:16:57Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table align='right' border='1'&amp;gt;&lt;br /&gt;
&amp;lt;caption&amp;gt;Compatibility&amp;lt;/caption&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th colspan='3'&amp;gt;SUBSTR(s, i, j)&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td align='center'&amp;gt;'''Engine'''&amp;lt;/td&amp;gt;&amp;lt;td align='center'&amp;gt;'''OK'''&amp;lt;/td&amp;gt;&amp;lt;td align='center'&amp;gt;'''Alternative'''&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td align='left'&amp;gt;ingres&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Yes&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[SUBSTRING(ansi) |SUBSTRING(s FROM i FOR j)]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td align='left'&amp;gt;mysql&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Yes&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[SUBSTRING(ansi) |SUBSTRING(s FROM i FOR j)]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td align='left'&amp;gt;oracle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Yes&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td align='left'&amp;gt;postgres&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Yes&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[SUBSTRING(ansi) |SUBSTRING(s FROM i FOR j)]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td align='left'&amp;gt;sqlserver&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[SUBSTRING |SUBSTRING(s,i,j)]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; SUBSTR&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;SUBSTR allows you to extract part of a string. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;pre style='width:75ex'&amp;gt;&lt;br /&gt;
   SUBSTR('Hello world', 2, 3) -&amp;gt; 'ell'    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='ht'&amp;gt;&lt;br /&gt;
In this example you get the 2nd to 5th character from each country's name.  &lt;br /&gt;
&amp;lt;source lang='sql' class='def e-sqlserver'&amp;gt;&lt;br /&gt;
SELECT name,&lt;br /&gt;
       SUBSTRING(name, 2, 5)&lt;br /&gt;
  FROM bbc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name,&lt;br /&gt;
       SUBSTR(name, 2, 5)&lt;br /&gt;
  FROM bbc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Languages}}&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/SUBSTRING</id>
		<title>SUBSTRING</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/SUBSTRING"/>
				<updated>2013-03-24T09:29:42Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table align='right' border='1'&amp;gt;&lt;br /&gt;
&amp;lt;caption&amp;gt;Compatibility&amp;lt;/caption&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th colspan='3'&amp;gt;SUBSTRING(s, i, j)&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td align='center'&amp;gt;'''Engine'''&amp;lt;/td&amp;gt;&amp;lt;td align='center'&amp;gt;'''OK'''&amp;lt;/td&amp;gt;&amp;lt;td align='center'&amp;gt;'''Alternative'''&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td align='left'&amp;gt;ingres&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Yes&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[SUBSTRING(ansi) |SUBSTRING(s FROM i FOR j)]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td align='left'&amp;gt;mysql&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Yes&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[SUBSTRING(ansi) |SUBSTRING(s FROM i FOR j)]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td align='left'&amp;gt;oracle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[SUBSTR |SUBSTR(s,i,j)]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td align='left'&amp;gt;postgres&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Yes&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[SUBSTRING(ansi) |SUBSTRING(s FROM i FOR j)]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td align='left'&amp;gt;sqlserver&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Yes&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; SUBSTRING&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;SUBSTRING allows you to extract part of a string. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;pre style='width:75ex'&amp;gt;&lt;br /&gt;
   SUBSTRING('Hello world', 2, 3) -&amp;gt; 'ell'    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='ht'&amp;gt;&lt;br /&gt;
In this example you get the 2nd to 5th character from each country's name.  &lt;br /&gt;
&amp;lt;source lang='sql' class='def e-oracle'&amp;gt;&lt;br /&gt;
SELECT name,&lt;br /&gt;
       SUBSTR(name, 2, 5)&lt;br /&gt;
  FROM bbc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name,&lt;br /&gt;
       SUBSTRING(name, 2, 5)&lt;br /&gt;
  FROM bbc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Languages}}&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/SUBSTRING(ansi)</id>
		<title>SUBSTRING(ansi)</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/SUBSTRING(ansi)"/>
				<updated>2013-03-24T09:28:56Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table align='right' border='1'&amp;gt;&lt;br /&gt;
&amp;lt;caption&amp;gt;Compatibility&amp;lt;/caption&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th colspan='3'&amp;gt;SUBSTRING(s FROM i FOR j)&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td align='center'&amp;gt;'''Engine'''&amp;lt;/td&amp;gt;&amp;lt;td align='center'&amp;gt;'''OK'''&amp;lt;/td&amp;gt;&amp;lt;td align='center'&amp;gt;'''Alternative'''&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td align='left'&amp;gt;ingres&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Yes&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[SUBSTRING |SUBSTRING(s,i,j)]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td align='left'&amp;gt;mysql&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Yes&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td align='left'&amp;gt;oracle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[SUBSTR |SUBSTR(s,i,j)]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td align='left'&amp;gt;postgres&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Yes&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[SUBSTRING |SUBSTRING(s,i,j)]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td align='left'&amp;gt;sqlserver&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[SUBSTRING |SUBSTRING(s,i,j)]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; SUBSTRING (ansi)&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;SUBSTRING allows you to extract part of a string. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;pre style='width:75ex'&amp;gt;&lt;br /&gt;
   SUBSTRING('Hello world' FROM 2 FOR 3) -&amp;gt; 'ell'    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='ht'&amp;gt;&lt;br /&gt;
In this example you get the 2nd to 5th character from each country's name.   &lt;br /&gt;
&amp;lt;source lang='sql' class='def e-oracle e-sqlserver'&amp;gt;&lt;br /&gt;
SELECT name,&lt;br /&gt;
       SUBSTRING(name, 2, 5)&lt;br /&gt;
  FROM bbc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def e-oracle'&amp;gt;&lt;br /&gt;
SELECT name,&lt;br /&gt;
       SUBSTR(name, 2, 5)&lt;br /&gt;
  FROM bbc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name,&lt;br /&gt;
       SUBSTRING(name FROM 2 FOR 5)&lt;br /&gt;
  FROM bbc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;See also&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[CASE |CASE function]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[NVL |NVL function]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Languages}}&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/MediaWiki:Common.js</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/MediaWiki:Common.js"/>
				<updated>2013-03-02T11:03:49Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
$(function(){&lt;br /&gt;
  var engine = $('&amp;lt;div class=&amp;quot;portal&amp;quot;/&amp;gt;')&lt;br /&gt;
    .append($('&amp;lt;h5&amp;gt;Engine&amp;lt;/h5&amp;gt;'))&lt;br /&gt;
    .append($('&amp;lt;div class=body/&amp;gt;')&lt;br /&gt;
      .append($('&amp;lt;ul/&amp;gt;')&lt;br /&gt;
        .append($('&amp;lt;li/&amp;gt;')&lt;br /&gt;
          .append($('&amp;lt;select id=engine/&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=mysql&amp;gt;MySQL&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=oracle&amp;gt;Oracle&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=sqlserver&amp;gt;SQL Server&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=postgres&amp;gt;PostgreSQL&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option id=ingres&amp;gt;Ingres&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option id=db2&amp;gt;DB2&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .change(function(){setDefaultText();})&lt;br /&gt;
          )&lt;br /&gt;
        )&lt;br /&gt;
      )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
  $('#right-navigation').after($('&amp;lt;ul/&amp;gt;',{'id':'zoolinks'})&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://csszoo.net',text:'CSS',id:'css_link', title:'Learn CSS! visit CSSzoo'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://progzoo.net',text:'Java',id:'java_link', title:'Hungry for Java tutorials? ProgZoo is for you'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://linuxzoo.net',text:'Linux',id:'linux_link', title:'Linux Zoo tutoials!'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;',{'id':'book'}).append($('&amp;lt;a/&amp;gt;',{href:'http://www.oreilly.com/catalog/sqlhks/',id:'sql_hacks',title:'Try/buy SQL Hacks book'})))&lt;br /&gt;
  );&lt;br /&gt;
&lt;br /&gt;
  $('#p-Reference').before(engine);&lt;br /&gt;
  &lt;br /&gt;
  //Adverts&lt;br /&gt;
  $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/sqlhacks.png',alt:'SQL Hacks book ad'})&lt;br /&gt;
    .appendTo($('#sql_hacks'));&lt;br /&gt;
  $('#p-googleadsense').prependTo('#footer');&lt;br /&gt;
&lt;br /&gt;
  if (wgCanonicalNamespace=='MediaWiki' || wgCanonicalNamespace=='Special')&lt;br /&gt;
    $('#p-googleadsense').hide();&lt;br /&gt;
&lt;br /&gt;
	// Reset localStorage&lt;br /&gt;
	var rst = $('.lsclear');&lt;br /&gt;
	rst.click(function(e){&lt;br /&gt;
	   if (localStorage) &lt;br /&gt;
			localStorage.clear();&lt;br /&gt;
	   location.reload();&lt;br /&gt;
	});&lt;br /&gt;
			   &lt;br /&gt;
	var numberOfQuestions = 0;&lt;br /&gt;
	var numberOfAnswered = 0;&lt;br /&gt;
	var numberOfCorrect = 0;&lt;br /&gt;
	var startAt = Math.max(1,$('#startAt').text()*1);&lt;br /&gt;
	var qu = $('.qu,.ht,.err');&lt;br /&gt;
	var curEng;&lt;br /&gt;
	if (localStorage &amp;amp;&amp;amp; localStorage.getItem(&amp;quot;currentEngine&amp;quot;))&lt;br /&gt;
	{&lt;br /&gt;
		curEng = localStorage.getItem(&amp;quot;currentEngine&amp;quot;);&lt;br /&gt;
		$('#engine').val(curEng);&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
		curEng = $('#engine').val();&lt;br /&gt;
		&lt;br /&gt;
	for(var i=0;i&amp;lt;qu.length;i++){&lt;br /&gt;
		var id = i+1;&lt;br /&gt;
		var q = qu[i];&lt;br /&gt;
		var lsName = wgPageName + '_' + 'frm__' + id;&lt;br /&gt;
		&lt;br /&gt;
		var def = $('.def',q);&lt;br /&gt;
		if (def.length&amp;gt;1){&lt;br /&gt;
			var pick = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
			for(var j=0;j&amp;lt;def.length;j++)&lt;br /&gt;
			  if ($(def[j]).hasClass('e-'+curEng))&lt;br /&gt;
				pick = $(def[j]);&lt;br /&gt;
			def = pick;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		//Hints&lt;br /&gt;
		var hint = $('.hint', q);&lt;br /&gt;
		hint.hide();&lt;br /&gt;
		hint.each(function(){&lt;br /&gt;
			var htitle = $(this).attr(&amp;quot;title&amp;quot;);&lt;br /&gt;
			var hnt = $('&amp;lt;div/&amp;gt;', {'class':'hnt', 'text':htitle});&lt;br /&gt;
			var hidden = $(this);&lt;br /&gt;
			hnt.click(function(e){&lt;br /&gt;
			   e.preventDefault();&lt;br /&gt;
			   hidden.toggle(&amp;quot;slow&amp;quot;);});&lt;br /&gt;
			$(this).before(hnt);&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		var txt = def.text();&lt;br /&gt;
		// replace the default text with user's last query if available in LS&lt;br /&gt;
		if (localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng))&lt;br /&gt;
		{&lt;br /&gt;
			var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
			txt = lsArray[lsArray.length-1];&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var ans = $('.ans',q).text();&lt;br /&gt;
		var tdy = $('.tidy',q).text();&lt;br /&gt;
		var frm = $('&amp;lt;form/&amp;gt;',{name:'frm__'+id,id:'frm__'+id})&lt;br /&gt;
			.append($('&amp;lt;div/&amp;gt;',{'class':'quf'})&lt;br /&gt;
			   .append($('&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;',&lt;br /&gt;
				 {value:$.trim(txt),&lt;br /&gt;
				  rows:2+Math.max(Math.max(4 ,txt.split(/[\n\r]+/).length),ans.split(/[\n\r]+/).length),&lt;br /&gt;
				  cols:2+Math.max(Math.max(45,maxlen(txt.split(/[\n\r]+/))),maxlen(ans.split(/[\n\r]+/))),&lt;br /&gt;
				  'class':'sql',&lt;br /&gt;
				  id:'txtar_'+id}))&lt;br /&gt;
			   .append($('&amp;lt;br/&amp;gt;'))&lt;br /&gt;
			   .append($('&amp;lt;button/&amp;gt;',{text:'Submit SQL','class':'submitSQL',click:goBaby}))&lt;br /&gt;
			   .append($('&amp;lt;div/&amp;gt;',{text:'Restore default','class':'reset',click:restoreDefault}))&lt;br /&gt;
			);&lt;br /&gt;
		&lt;br /&gt;
		def.after(frm);&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		// Display completion information&lt;br /&gt;
		if (localStorage)&lt;br /&gt;
		{&lt;br /&gt;
			if (!localStorage.getItem(lsName))&lt;br /&gt;
				localStorage.setItem(lsName, &amp;quot;unanswered&amp;quot;);&lt;br /&gt;
			if (localStorage.getItem(lsName) == &amp;quot;answered&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have answered this question &amp;lt;u&amp;gt;incorrectly&amp;lt;/u&amp;gt; before.&amp;quot;);&lt;br /&gt;
				numberOfAnswered++;&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qincorrect', 'title':'You have answered this question incorrectly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
			else if (localStorage.getItem(lsName) == &amp;quot;correct&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have answered this question &amp;lt;u&amp;gt;correctly&amp;lt;/u&amp;gt; before.&amp;quot;);&lt;br /&gt;
				numberOfCorrect++;&lt;br /&gt;
				numberOfAnswered++;&lt;br /&gt;
				&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qcorrect', 'title':'You have answered this question correctly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have not answered this question yet.&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var lhs = $('&amp;lt;div/&amp;gt;',{css:{width:'60ex',marginRight:'2ex','float':'left'}});&lt;br /&gt;
		lhs.append($('&amp;lt;span/&amp;gt;',{text:(startAt+i)+'.','class':'id'}));&lt;br /&gt;
		lhs.append($(q).children());&lt;br /&gt;
		$(q).append(lhs);&lt;br /&gt;
                // This line caused problems when styling - I removed the css margin-left from it - M&lt;br /&gt;
		//$(q).append($('&amp;lt;div/&amp;gt;',{text:'result','class':'res',css:{'margin-left':'1ex'}}));&lt;br /&gt;
                $(q).append($('&amp;lt;div/&amp;gt;',{text:'result','class':'res'}));&lt;br /&gt;
		&lt;br /&gt;
		//Show additional info if available for active angine&lt;br /&gt;
		var ecomm = $('.ecomm,.link',q);&lt;br /&gt;
		var ecomm1 = ecomm.filter(false);&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var ecomm = $('.link',q);&lt;br /&gt;
		var ecomm1 = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		numberOfQuestions = id;&lt;br /&gt;
	}&lt;br /&gt;
	if (numberOfQuestions == 0)&lt;br /&gt;
		numberOfQuestions = 1;&lt;br /&gt;
	&lt;br /&gt;
	// Display completion info&lt;br /&gt;
	$(&amp;quot;.summary&amp;quot;).html(&amp;quot;You have answered &amp;quot;+numberOfAnswered+&amp;quot; out of &amp;quot;+numberOfQuestions+&amp;quot; questions on this page.&amp;lt;br/&amp;gt;&amp;quot;+numberOfCorrect+&amp;quot; of your answers were correct.&amp;quot;);&lt;br /&gt;
	// Save completion info&lt;br /&gt;
	if (localStorage)&lt;br /&gt;
	{&lt;br /&gt;
		localStorage.setItem(wgPageName+'_numberOfQuestions', numberOfQuestions);&lt;br /&gt;
		localStorage.setItem(wgPageName+'_numberOfCorrect', numberOfCorrect);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	//Progress bar&lt;br /&gt;
	var maxWidth = $('.progressbar').css('width');&lt;br /&gt;
	var barModification = parseFloat(maxWidth) * numberOfCorrect / numberOfQuestions;&lt;br /&gt;
	$('.progressbar').css('width', barModification);&lt;br /&gt;
	&lt;br /&gt;
  //Put in the answers if url includes answer=1&lt;br /&gt;
  if (window.location.search &amp;amp;&amp;amp; /answer/.test(window.location.search)){&lt;br /&gt;
    $('&amp;lt;def/&amp;gt;',{text:&amp;quot;Cheat mode&amp;quot;,css:{position:'fixed',right:'2ex',&lt;br /&gt;
                   bottom:'2ex',width:'14ex',backgroundColor:'yellow',padding:'2ex',&lt;br /&gt;
                   textAlign:'center'}})&lt;br /&gt;
      .appendTo($('body'));&lt;br /&gt;
    $('.quf textarea').each(function(){&lt;br /&gt;
       $(this).val($(this).closest('form').next('.ans').text());&lt;br /&gt;
    })&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
})&lt;br /&gt;
&lt;br /&gt;
function setDefaultText() {&lt;br /&gt;
	var qu = $('.ht,.err');&lt;br /&gt;
	var curEng = $('#engine').val();&lt;br /&gt;
	if (localStorage)&lt;br /&gt;
		localStorage.setItem(&amp;quot;currentEngine&amp;quot;, curEng);&lt;br /&gt;
	for(var i=0;i&amp;lt;qu.length;i++){&lt;br /&gt;
		var id = i+1;&lt;br /&gt;
		var q = qu[i];&lt;br /&gt;
		&lt;br /&gt;
		var def = $('.def',q);&lt;br /&gt;
		if (def.length&amp;gt;1){&lt;br /&gt;
			var pick = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
			for(var j=0;j&amp;lt;def.length;j++)&lt;br /&gt;
			  if ($(def[j]).hasClass('e-'+curEng))&lt;br /&gt;
				pick = $(def[j]);&lt;br /&gt;
			def = pick;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var lsName = wgPageName + '_' + 'frm__' + id;&lt;br /&gt;
		var txt = def.text();&lt;br /&gt;
		// replace the default text with user's last query if available in LS&lt;br /&gt;
		if (localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng))&lt;br /&gt;
		{&lt;br /&gt;
			var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
			txt = lsArray[lsArray.length-1];&lt;br /&gt;
		}&lt;br /&gt;
		$('textarea#txtar_'+id).val(txt);&lt;br /&gt;
		&lt;br /&gt;
		//Show additional info if available for chosen engine&lt;br /&gt;
		var ecomm = $('.ecomm',q);&lt;br /&gt;
		var ecomm1 = ecomm.filter(false);&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		//Show headers for chosen engine&lt;br /&gt;
		var ecomm = $('.link',q);&lt;br /&gt;
		var ecomm1 = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function restoreDefault() {&lt;br /&gt;
	var qu = $(this).parents('.qu, .ht, .err');&lt;br /&gt;
	var def = $('.def',qu);&lt;br /&gt;
	var txt = def.text();&lt;br /&gt;
	qu.find('textarea.sql').val(txt);&lt;br /&gt;
}	&lt;br /&gt;
&lt;br /&gt;
function updateProgressbar() {&lt;br /&gt;
	var numberOfQuestions = parseInt(localStorage.getItem(wgPageName+'_numberOfQuestions'));&lt;br /&gt;
	// A little workaround - max progressbar width is 96% of its background's width&lt;br /&gt;
	var maxWidth = parseFloat($('.progressbarbg').css('width')) * 0.96;&lt;br /&gt;
	var barModification = parseFloat($('.progressbar').css('width')) + maxWidth * 1 / numberOfQuestions;&lt;br /&gt;
	$('.progressbar').css('width', barModification);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function goBaby(){&lt;br /&gt;
  var qu = $(this).parents('.qu, .ht, .err');&lt;br /&gt;
  var lsUse = ((qu[0].getAttribute('class') != 'ht') &amp;amp;&amp;amp; ($(qu[0]).find('.ans').length &amp;gt; 0));&lt;br /&gt;
  var lsName = wgPageName + '_' + $(this).parents('form').attr('id');&lt;br /&gt;
  if (lsUse &amp;amp;&amp;amp; localStorage &amp;amp;&amp;amp; (localStorage.getItem(lsName) != &amp;quot;correct&amp;quot;))&lt;br /&gt;
	localStorage.setItem(lsName, &amp;quot;answered&amp;quot;);&lt;br /&gt;
  var sql = qu.find('textarea.sql').val();&lt;br /&gt;
  var parlst = $('.params').text().split(';');&lt;br /&gt;
  var params = {};&lt;br /&gt;
  for(var i=0;i&amp;lt;parlst.length;i++){&lt;br /&gt;
    var pair = parlst[i].split(':');&lt;br /&gt;
    params[pair[0]]=pair[1];&lt;br /&gt;
  }&lt;br /&gt;
  //Store the sql querry in LS&lt;br /&gt;
  if (localStorage)&lt;br /&gt;
  {&lt;br /&gt;
	var curEng = $('#engine').val();&lt;br /&gt;
	var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
	if (!lsArray)&lt;br /&gt;
		lsArray = new Array();&lt;br /&gt;
	lsArray.push(sql);&lt;br /&gt;
	localStorage.setItem(lsName+&amp;quot;_arr_&amp;quot;+curEng, JSON.stringify(lsArray));&lt;br /&gt;
  }&lt;br /&gt;
  qu.find('.res').addClass('waiting');&lt;br /&gt;
  $.ajax({url:'/sqlgo.pl',cache:false,'type':'post',dataType:'json',&lt;br /&gt;
          data:{sql:sql.replace(/\xA0/g,' '),  //Mediawiki inserts &amp;amp;nbsp; before a %. We need to change it back to a space.CM 13/6/12&lt;br /&gt;
                format:'json',&lt;br /&gt;
                question:$('.id',qu).text(),&lt;br /&gt;
                wgUserName:wgUserName,&lt;br /&gt;
                cookie:$.cookie('oliver'),&lt;br /&gt;
                page:wgPageName,&lt;br /&gt;
                server:$('#engine').val(),&lt;br /&gt;
                setup:$('.setup',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                tidy:$('.tidy',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                answer:$('.ans',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                schema:params['schema']&lt;br /&gt;
               },&lt;br /&gt;
          success:function(d){&lt;br /&gt;
            var res = qu.find('.res');&lt;br /&gt;
            res.empty().removeClass('waiting')&lt;br /&gt;
            if (d.error){&lt;br /&gt;
              res.append($('&amp;lt;h1/&amp;gt;',{text:'SQLZoo System Error:'}))&lt;br /&gt;
              res.append($('&amp;lt;div/&amp;gt;',{text:d.error}))&lt;br /&gt;
              return;&lt;br /&gt;
            }&lt;br /&gt;
			var headerPresent = false;&lt;br /&gt;
            for (var i = 0; i &amp;lt; d.sql.length; i++)&lt;br /&gt;
				{&lt;br /&gt;
				if (!d || !d.sql || !d.sql[i]){&lt;br /&gt;
				  res.append($('&amp;lt;h1/&amp;gt;',{text:'SQLZoo System Error:'}))&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:&amp;quot;Problem with d or d.sql or d.sql[0]&amp;quot;}))&lt;br /&gt;
				  return;&lt;br /&gt;
				}&lt;br /&gt;
				if (d.sql[i].error){&lt;br /&gt;
				  res.append($('&amp;lt;h1/&amp;gt;',{text:'Error:'}))&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:d.sql[i].error}))&lt;br /&gt;
				  return;&lt;br /&gt;
				}&lt;br /&gt;
				var legend = &amp;quot;Result:&amp;quot;;&lt;br /&gt;
				if (d.score &amp;amp;&amp;amp; d.answer &amp;amp;&amp;amp; d.answer.length==1 &amp;amp;&amp;amp; d.answer[0].fields){&lt;br /&gt;
				  if (d.score == 100){&lt;br /&gt;
					legend = 'Correct answer';&lt;br /&gt;
					if (lsUse &amp;amp;&amp;amp; localStorage)&lt;br /&gt;
						localStorage.setItem(lsName, &amp;quot;correct&amp;quot;);&lt;br /&gt;
					var def = $('.def',qu);&lt;br /&gt;
					if (localStorage.getItem(lsName) == &amp;quot;correct&amp;quot;)&lt;br /&gt;
					{&lt;br /&gt;
						if ($(&amp;quot;.qcorrect&amp;quot;, qu).length == 0)&lt;br /&gt;
						{&lt;br /&gt;
							var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qcorrect', 'title':'You have answered this question correctly before.'});&lt;br /&gt;
							def.before(qcorr);&lt;br /&gt;
							updateProgressbar();&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
			      }&lt;br /&gt;
				  else if (d.answer[0].fields.length&amp;gt;d.sql[0].fields.length)&lt;br /&gt;
					legend = 'Too few columns';&lt;br /&gt;
				  else if (d.answer[0].fields.length&amp;lt;d.sql[0].fields.length)&lt;br /&gt;
					legend = 'Too many columns';&lt;br /&gt;
				  else if (d.answer[0].rows.length&amp;gt;d.sql[0].rows.length)&lt;br /&gt;
					legend = 'Too few rows';&lt;br /&gt;
				  else if (d.answer[0].rows.length&amp;lt;d.sql[0].rows.length)&lt;br /&gt;
					legend = 'Too many rows';&lt;br /&gt;
&lt;br /&gt;
				}&lt;br /&gt;
				if (!headerPresent)&lt;br /&gt;
				{&lt;br /&gt;
					res.append($('&amp;lt;h1/&amp;gt;',{text:legend}));&lt;br /&gt;
					headerPresent = true;&lt;br /&gt;
				}&lt;br /&gt;
				var t = mkTable(d.sql[i]);&lt;br /&gt;
				t.addClass('sqlmine')&lt;br /&gt;
				 .appendTo(res);&lt;br /&gt;
				if (d.answer &amp;amp;&amp;amp; d.answer.length&amp;gt;0 &amp;amp;&amp;amp; d.score&amp;lt;100){&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:'Show correct result','class':'showtxt'})&lt;br /&gt;
					.click(function(){&lt;br /&gt;
					  $(this).next().show('slow');&lt;br /&gt;
					})&lt;br /&gt;
				  );&lt;br /&gt;
				  var a = mkTable(d.answer[0]);&lt;br /&gt;
				  a.addClass('sqlans');&lt;br /&gt;
				  a.appendTo(res);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
          },&lt;br /&gt;
          error:function(jqXHR,textStatus,errorThrown){&lt;br /&gt;
            qu.find('.res').empty().removeClass('waiting')&lt;br /&gt;
              .append($('&amp;lt;h1/&amp;gt;',{'class':'syserr',text:'SQLZOO system error:'}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;',{text:textStatus}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;',{text:errorThrown}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;').html(jqXHR.responseText))&lt;br /&gt;
          }&lt;br /&gt;
         });&lt;br /&gt;
		 &lt;br /&gt;
		// Modify completion information&lt;br /&gt;
		var def = $('.def',qu);&lt;br /&gt;
		if (localStorage)&lt;br /&gt;
		{&lt;br /&gt;
			if (localStorage.getItem(lsName) == &amp;quot;answered&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qincorrect', 'title':'You have answered this question incorrectly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
function maxlen(l){&lt;br /&gt;
  var r = 0;&lt;br /&gt;
  for(var i=0;i&amp;lt;l.length;i++)&lt;br /&gt;
    r = Math.max(r,l[i].length);&lt;br /&gt;
  return r;&lt;br /&gt;
}&lt;br /&gt;
function truncate(s){&lt;br /&gt;
  if (s.length&amp;lt;15) return s;&lt;br /&gt;
  return s.substring(0,13)+&amp;quot;..&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
function mkTable(a){&lt;br /&gt;
  var t = $('&amp;lt;table/&amp;gt;');&lt;br /&gt;
  t.append($('&amp;lt;tr/&amp;gt;'));&lt;br /&gt;
  var isnum = [];&lt;br /&gt;
  if (!a.fields || !a.rows) return t;&lt;br /&gt;
  for(var i=0;i&amp;lt;a.fields.length;i++){&lt;br /&gt;
    $('tr',t).append($('&amp;lt;th/&amp;gt;',{text:truncate(a.fields[i])}));&lt;br /&gt;
    var allNum = 1;&lt;br /&gt;
    for(var j=0;j&amp;lt;a.rows.length;j++){&lt;br /&gt;
      if (a.rows[j] &amp;amp;&amp;amp; a.rows[j][i] &amp;amp;&amp;amp; !a.rows[j][i].match(/^[0-9.]*$/))&lt;br /&gt;
        allNum = 0;&lt;br /&gt;
    }&lt;br /&gt;
    isnum.push(allNum);&lt;br /&gt;
  }&lt;br /&gt;
  for(var j=0;j&amp;lt;a.rows.length;j++){&lt;br /&gt;
    var tr = $('&amp;lt;tr/&amp;gt;').appendTo(t);&lt;br /&gt;
    for(var k=0;k&amp;lt;a.rows[j].length;k++){&lt;br /&gt;
      var td = $('&amp;lt;td/&amp;gt;',{text:a.rows[j][k]});&lt;br /&gt;
      if (isnum[k]) td.addClass('r');&lt;br /&gt;
      td.appendTo(tr);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return t;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ======================= Designer js starts here */&lt;br /&gt;
&lt;br /&gt;
// the following scripts should not be present here - they should be linked as external files !!!&lt;br /&gt;
&lt;br /&gt;
// this script helps to manage browser inconsistency across different os&lt;br /&gt;
function css_browser_selector(u){var ua=u.toLowerCase(),is=function(t){return ua.indexOf(t)&amp;gt;-1},g='gecko',w='webkit',s='safari',o='opera',m='mobile',h=document.documentElement,b=[(!(/opera|webtv/i.test(ua))&amp;amp;&amp;amp;/msie\s(\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?g+' ff2':is('firefox/3.5')?g+' ff3 ff3_5':is('firefox/3.6')?g+' ff3 ff3_6':is('firefox/3')?g+' ff3':is('gecko/')?g:is('opera')?o+(/version\/(\d+)/.test(ua)?' '+o+RegExp.$1:(/opera(\s|\/)(\d+)/.test(ua)?' '+o+RegExp.$2:'')):is('konqueror')?'konqueror':is('blackberry')?m+' blackberry':is('android')?m+' android':is('chrome')?w+' chrome':is('iron')?w+' iron':is('applewebkit/')?w+' '+s+(/version\/(\d+)/.test(ua)?' '+s+RegExp.$1:''):is('mozilla/')?g:'',is('j2me')?m+' j2me':is('iphone')?m+' iphone':is('ipod')?m+' ipod':is('ipad')?m+' ipad':is('mac')?'mac':is('darwin')?'mac':is('webtv')?'webtv':is('win')?'win'+(is('windows nt 6.0')?' vista':''):is('freebsd')?'freebsd':(is('x11')||is('linux'))?'linux':'','js']; c = b.join(' '); h.className += ' '+c; return c;}; css_browser_selector(navigator.userAgent);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// display site logo&lt;br /&gt;
$(function(){&lt;br /&gt;
  $('&amp;lt;a/&amp;gt;',{href:'http://sqlzoo.net/w/index.php',id:'mp-logo',title:'Zoo You!'})&lt;br /&gt;
    .append($('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/sql_zoo_logo05.png',alt:'SQLzoo logo'}))&lt;br /&gt;
    .appendTo($('#mw-head-base'))&lt;br /&gt;
});&lt;br /&gt;
 &lt;br /&gt;
// display site description&lt;br /&gt;
$(document).ready(function(){&lt;br /&gt;
  $(function(){&lt;br /&gt;
    $(&amp;quot;#mp-logo&amp;quot;).append(&amp;quot; &amp;lt;h1 id='logo-desc'&amp;gt;Interactive &amp;lt;span&amp;gt;SQL &amp;lt;span&amp;gt;Tutorial&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h1&amp;gt;&amp;quot;);&lt;br /&gt;
  });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// display language selector&lt;br /&gt;
$(function(){&lt;br /&gt;
     $('&amp;lt;div/&amp;gt;',{id:'language'}).appendTo($('#mw-head-base'))&lt;br /&gt;
 &lt;br /&gt;
     var lang = $('&amp;lt;ul/&amp;gt;',{id:'lang','class':'side_nav_sub'});&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;en&amp;quot; href=&amp;quot;/wiki/Main_Page&amp;quot;&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;de&amp;quot; href=&amp;quot;/wiki/Main_Page/de&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;fr&amp;quot; href=&amp;quot;/wiki/Main_Page/fr&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    $('#language').append(lang);&lt;br /&gt;
&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/en2.png',alt:'SQL zoo in English'})&lt;br /&gt;
       .appendTo($('#en'));&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/de2.png',alt:'SQL zoo in German'})&lt;br /&gt;
       .appendTo($('#de'));&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/fr2.png',alt:'SQL zoo in French'})&lt;br /&gt;
       .appendTo($('#fr'));&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// assemble and display main nav menu&lt;br /&gt;
$(function(){&lt;br /&gt;
    var ml1 =&lt;br /&gt;
    [['1 SELECT basics',  'SELECT_basics','Some simple queries to get you started']&lt;br /&gt;
    ,['2 SELECT from WORLD','SELECT_from_WORLD_Tutorial','Finding facts about countries']&lt;br /&gt;
    ,['3 SELECT from Nobel','SELECT_from_Nobel_Tutorial','More practice with SELECT statements']&lt;br /&gt;
    ,['4 SELECT within SELECT','SELECT_within_SELECT_Tutorial','Using the results of one query inside another']&lt;br /&gt;
    ,['5 SUM and COUNT','SUM_and_COUNT','Apply aggregate functions']&lt;br /&gt;
    ,['6 JOIN','The_JOIN_operation','Gathering data from more than one table']&lt;br /&gt;
    ,['7 More JOIN','More_JOIN_operations','Getting data from the movie database']&lt;br /&gt;
    ,['8 Using NULL','Using_Null','Dealing with missing data']&lt;br /&gt;
    ,['9 Self JOIN','Self_join','Dealing with missing data']&lt;br /&gt;
	,['10 SQL Quizzes','Tutorial_Quizzes','Test your knowledge with multiple choice quizzes']&lt;br /&gt;
    ];&lt;br /&gt;
    var mm1 = $('&amp;lt;ul/&amp;gt;',{id:'mm1','class':'dropdown mm_sub'});&lt;br /&gt;
    for(var i=0;i&amp;lt;ml1.length;i++){&lt;br /&gt;
	  var maxWidth = 50; // adjust the value so that it fits menu well&lt;br /&gt;
	  var NoQ = localStorage.getItem(ml1[i][1] + '_numberOfQuestions');&lt;br /&gt;
	  if (!NoQ) NoQ = 1;&lt;br /&gt;
	  var NoC = localStorage.getItem(ml1[i][1] + '_numberOfCorrect');&lt;br /&gt;
	  if (!NoC) NoC = 0;	  &lt;br /&gt;
	  var pbWidth = parseFloat(maxWidth) * NoC / NoQ;&lt;br /&gt;
	  var mprogbar = $('&amp;lt;div/&amp;gt;',{'class':'progressbarbg1'}).append($('&amp;lt;div/&amp;gt;',{'class':'progressbar1', 'id':ml1[i][1], css:{'width':pbWidth}}));&lt;br /&gt;
          mm1.append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'/wiki/'+ml1[i][1],text:ml1[i][0]})).append(ml1[i][2]).append(mprogbar));&lt;br /&gt;
    }&lt;br /&gt;
    var mm2 = $('&amp;lt;ul/&amp;gt;',{id:'mm2','class':'dropdown mm_sub'});&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/AdventureWorks&amp;quot;&amp;gt;1 AdventureWorks&amp;lt;/a&amp;gt; Flogging sports gear. Assessment for CO22008 2007/8&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Neeps&amp;quot;&amp;gt;2 Neeps&amp;lt;/a&amp;gt; A timetable database&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Musicians&amp;quot;&amp;gt;3 Musicians&amp;lt;/a&amp;gt; Concerts and compositions&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Southwind&amp;quot;&amp;gt;4 Southwind&amp;lt;/a&amp;gt; Buying and selling&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Dressmaker&amp;quot;&amp;gt;5 Dressmaker&amp;lt;/a&amp;gt; Constructing clothing&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Congestion Charging&amp;quot;&amp;gt;6 Congestion Charging&amp;lt;/a&amp;gt; Monitoring traffic (old questions)&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Weather data for Southhampton&amp;quot;&amp;gt;7 Weather data for Southhampton&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Album Tracks Style&amp;quot;&amp;gt;8 Album Tracks Style&amp;lt;/a&amp;gt; Music data&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    var mm3 = $('&amp;lt;ul/&amp;gt;',{id:'mm3','class':'dropdown mm_sub'});&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/SELECT_Reference&amp;quot;&amp;gt;SELECT&amp;lt;/a&amp;gt;How to read the data from a database.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/CREATE_and_DROP_Reference&amp;quot;&amp;gt;CREATE and DROP&amp;lt;/a&amp;gt;How to create tables, indexes, views and other things. How to get rid of them.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/INSERT_and_DELETE_Reference&amp;quot;&amp;gt;INSERT and DELETE&amp;lt;/a&amp;gt;How to put records into a table, change them and how to take them out again.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/DATE_and_TIME_Reference&amp;quot;&amp;gt;DATE and TIME&amp;lt;/a&amp;gt;How to work with dates; adding, subtracting and formatting.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Functions_Reference&amp;quot;&amp;gt;Functions&amp;lt;/a&amp;gt;How to use string functions, logical functions and mathematical functions.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Users_Reference&amp;quot;&amp;gt;Users&amp;lt;/a&amp;gt;How to create users, GRANT and DENY access, get at other peoples tables. How to find processes and kill them.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Meta_Data_Reference&amp;quot;&amp;gt;Meta Data&amp;lt;/a&amp;gt;How to find out what tables and columns exist. How to count and limit the rows return.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Hacks_Reference&amp;quot;&amp;gt;SQL Hacks&amp;lt;/a&amp;gt;Useful SQL hacks .&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    var mm = $('&amp;lt;ul/&amp;gt;',{id:'main_menu'}).appendTo('#mw-head-base');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm1&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Tutorials&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm2&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Assessments&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm3&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Reference&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    $('#mm1').append(mm1);&lt;br /&gt;
    $('#mm2').append(mm2);&lt;br /&gt;
    $('#mm3').append(mm3);&lt;br /&gt;
&lt;br /&gt;
    $('#main_menu').wrap('&amp;lt;div id=&amp;quot;navigation_horiz&amp;quot; /&amp;gt;');&lt;br /&gt;
    $('#navigation_horiz').naviDropDown({&lt;br /&gt;
      dropDownWidth: '35em'&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// stick on top elements that need to be visible&lt;br /&gt;
$(function(){&lt;br /&gt;
    $(&amp;quot;#main_menu&amp;quot;).addClass(&amp;quot;stickableMenu&amp;quot;);&lt;br /&gt;
    $(&amp;quot;#p-Reference&amp;quot;).addClass(&amp;quot;stickableRef&amp;quot;);&lt;br /&gt;
    $(&amp;quot;.ref_section&amp;quot;).addClass(&amp;quot;stickableDbRef&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$(document).scroll(function() {&lt;br /&gt;
    var useFixedMenu = $(document).scrollTop() &amp;gt; 175;&lt;br /&gt;
    $('.stickableMenu').toggleClass('fixedMenu', useFixedMenu);&lt;br /&gt;
    &lt;br /&gt;
//    var useFixedRef = $(document).scrollTop() &amp;gt; 275;&lt;br /&gt;
//    $('.stickableRef').toggleClass('fixedRef', useFixedRef);&lt;br /&gt;
&lt;br /&gt;
    $('.stickableDbRef').toggleClass('fixedDbRef', $(document).scrollTop() &amp;gt; 275);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// swap classes on external links to change their side icons&lt;br /&gt;
$(function(){&lt;br /&gt;
 $(&amp;quot;.external&amp;quot;).addClass(&amp;quot;zoo_external&amp;quot;);&lt;br /&gt;
 $(&amp;quot;.external&amp;quot;).removeClass(&amp;quot;external&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
/* === Designer js ends here === */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Insert tables into Quiz distractors&lt;br /&gt;
var qq = $('.question');&lt;br /&gt;
for (var i = 0; i &amp;lt; qq.length; i++)&lt;br /&gt;
{&lt;br /&gt;
	var q = $(qq[i]);&lt;br /&gt;
	var distractors = &amp;quot;ABCDE&amp;quot;;&lt;br /&gt;
	for (var j=0;j&amp;lt;distractors.length;j++){&lt;br /&gt;
		var tans = $('table caption:contains(&amp;quot;Table-'+distractors[j]+'&amp;quot;)', q).parents('table');&lt;br /&gt;
		if (tans.length&amp;gt;0)&lt;br /&gt;
		{&lt;br /&gt;
			var ttd = $('table tr td:contains(&amp;quot;Table-'+distractors[j]+'&amp;quot;)', q);&lt;br /&gt;
			if (ttd.length&amp;gt;0){&lt;br /&gt;
			   ttd.empty();&lt;br /&gt;
			   ttd.append(tans);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$(function(){&lt;br /&gt;
  $('input.check').each(function(i,e){&lt;br /&gt;
    $(this).attr('id','quiz_d_'+i);&lt;br /&gt;
  });&lt;br /&gt;
  $('tr.proposal').each(function(i,e){&lt;br /&gt;
    var tds = $('td',$(this));&lt;br /&gt;
    var html1= $(tds[1]).html();&lt;br /&gt;
    $(tds[1]).html($('&amp;lt;label/&amp;gt;',{html:html1,'for':$('input',$(this)).attr('id') }));&lt;br /&gt;
  })&lt;br /&gt;
})&lt;br /&gt;
//Connor 23/7/12 creates the labels for the multiple choice questions allowing them to be highlighted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Analytics code&lt;br /&gt;
  var _gaq = _gaq || [];&lt;br /&gt;
  _gaq.push(['_setAccount', 'UA-33860668-1']);&lt;br /&gt;
  _gaq.push(['_trackPageview']);&lt;br /&gt;
&lt;br /&gt;
  (function() {&lt;br /&gt;
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;&lt;br /&gt;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';&lt;br /&gt;
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);&lt;br /&gt;
  })();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//JSON&lt;br /&gt;
(function($){var escapeable=/[&amp;quot;\\\x00-\x1f\x7f-\x9f]/g,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','&amp;quot;':'\\&amp;quot;','\\':'\\\\'};$.toJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.stringify?JSON.stringify:function(o){if(o===null){return'null';}&lt;br /&gt;
var type=typeof o;if(type==='undefined'){return undefined;}&lt;br /&gt;
if(type==='number'||type==='boolean'){return''+o;}&lt;br /&gt;
if(type==='string'){return $.quoteString(o);}&lt;br /&gt;
if(type==='object'){if(typeof o.toJSON==='function'){return $.toJSON(o.toJSON());}&lt;br /&gt;
if(o.constructor===Date){var month=o.getUTCMonth()+1,day=o.getUTCDate(),year=o.getUTCFullYear(),hours=o.getUTCHours(),minutes=o.getUTCMinutes(),seconds=o.getUTCSeconds(),milli=o.getUTCMilliseconds();if(month&amp;lt;10){month='0'+month;}&lt;br /&gt;
if(day&amp;lt;10){day='0'+day;}&lt;br /&gt;
if(hours&amp;lt;10){hours='0'+hours;}&lt;br /&gt;
if(minutes&amp;lt;10){minutes='0'+minutes;}&lt;br /&gt;
if(seconds&amp;lt;10){seconds='0'+seconds;}&lt;br /&gt;
if(milli&amp;lt;100){milli='0'+milli;}&lt;br /&gt;
if(milli&amp;lt;10){milli='0'+milli;}&lt;br /&gt;
return'&amp;quot;'+year+'-'+month+'-'+day+'T'+&lt;br /&gt;
hours+':'+minutes+':'+seconds+'.'+milli+'Z&amp;quot;';}&lt;br /&gt;
if(o.constructor===Array){var ret=[];for(var i=0;i&amp;lt;o.length;i++){ret.push($.toJSON(o[i])||'null');}&lt;br /&gt;
return'['+ret.join(',')+']';}&lt;br /&gt;
var name,val,pairs=[];for(var k in o){type=typeof k;if(type==='number'){name='&amp;quot;'+k+'&amp;quot;';}else if(type==='string'){name=$.quoteString(k);}else{continue;}&lt;br /&gt;
type=typeof o[k];if(type==='function'||type==='undefined'){continue;}&lt;br /&gt;
val=$.toJSON(o[k]);pairs.push(name+':'+val);}&lt;br /&gt;
return'{'+pairs.join(',')+'}';}};$.evalJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.parse?JSON.parse:function(src){return eval('('+src+')');};$.secureEvalJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.parse?JSON.parse:function(src){var filtered=src.replace(/\\[&amp;quot;\\\/bfnrtu]/g,'@').replace(/&amp;quot;[^&amp;quot;\\\n\r]*&amp;quot;|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,'');if(/^[\],:{}\s]*$/.test(filtered)){return eval('('+src+')');}else{throw new SyntaxError('Error parsing JSON, source is not valid.');}};$.quoteString=function(string){if(string.match(escapeable)){return'&amp;quot;'+string.replace(escapeable,function(a){var c=meta[a];if(typeof c==='string'){return c;}&lt;br /&gt;
c=a.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16);})+'&amp;quot;';}&lt;br /&gt;
return'&amp;quot;'+string+'&amp;quot;';};})(jQuery);&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/&lt;br /&gt;
 *&lt;br /&gt;
 * Uses the built in easing capabilities added In jQuery 1.1&lt;br /&gt;
 * to offer multiple easing options&lt;br /&gt;
 *&lt;br /&gt;
 * TERMS OF USE - jQuery Easing&lt;br /&gt;
 * &lt;br /&gt;
 * Open source under the BSD License. &lt;br /&gt;
 * &lt;br /&gt;
 * Copyright Â© 2008 George McGinley Smith&lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without modification, &lt;br /&gt;
 * are permitted provided that the following conditions are met:&lt;br /&gt;
 * &lt;br /&gt;
 * Redistributions of source code must retain the above copyright notice, this list of &lt;br /&gt;
 * conditions and the following disclaimer.&lt;br /&gt;
 * Redistributions in binary form must reproduce the above copyright notice, this list &lt;br /&gt;
 * of conditions and the following disclaimer in the documentation and/or other materials &lt;br /&gt;
 * provided with the distribution.&lt;br /&gt;
 * &lt;br /&gt;
 * Neither the name of the author nor the names of contributors may be used to endorse &lt;br /&gt;
 * or promote products derived from this software without specific prior written permission.&lt;br /&gt;
 * &lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY &lt;br /&gt;
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF&lt;br /&gt;
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE&lt;br /&gt;
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE&lt;br /&gt;
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED &lt;br /&gt;
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED &lt;br /&gt;
 * OF THE POSSIBILITY OF SUCH DAMAGE. &lt;br /&gt;
 *&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
// t: current time, b: begInnIng value, c: change In value, d: duration&lt;br /&gt;
jQuery.easing['jswing'] = jQuery.easing['swing'];&lt;br /&gt;
&lt;br /&gt;
jQuery.extend( jQuery.easing,&lt;br /&gt;
{&lt;br /&gt;
	def: 'easeOutQuad',&lt;br /&gt;
	swing: function (x, t, b, c, d) {&lt;br /&gt;
		//alert(jQuery.easing.default);&lt;br /&gt;
		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuad: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuad: function (x, t, b, c, d) {&lt;br /&gt;
		return -c *(t/=d)*(t-2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuad: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t + b;&lt;br /&gt;
		return -c/2 * ((--t)*(t-2) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInCubic: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutCubic: function (x, t, b, c, d) {&lt;br /&gt;
		return c*((t=t/d-1)*t*t + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutCubic: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t + b;&lt;br /&gt;
		return c/2*((t-=2)*t*t + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuart: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuart: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * ((t=t/d-1)*t*t*t - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuart: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t*t + b;&lt;br /&gt;
		return -c/2 * ((t-=2)*t*t*t - 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuint: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuint: function (x, t, b, c, d) {&lt;br /&gt;
		return c*((t=t/d-1)*t*t*t*t + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuint: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t*t*t + b;&lt;br /&gt;
		return c/2*((t-=2)*t*t*t*t + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInSine: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutSine: function (x, t, b, c, d) {&lt;br /&gt;
		return c * Math.sin(t/d * (Math.PI/2)) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutSine: function (x, t, b, c, d) {&lt;br /&gt;
		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInExpo: function (x, t, b, c, d) {&lt;br /&gt;
		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutExpo: function (x, t, b, c, d) {&lt;br /&gt;
		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutExpo: function (x, t, b, c, d) {&lt;br /&gt;
		if (t==0) return b;&lt;br /&gt;
		if (t==d) return b+c;&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;&lt;br /&gt;
		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInCirc: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutCirc: function (x, t, b, c, d) {&lt;br /&gt;
		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutCirc: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;&lt;br /&gt;
		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		if (t &amp;lt; 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;&lt;br /&gt;
		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158;&lt;br /&gt;
		return c*(t/=d)*t*((s+1)*t - s) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158;&lt;br /&gt;
		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158; &lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;&lt;br /&gt;
		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInBounce: function (x, t, b, c, d) {&lt;br /&gt;
		return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutBounce: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d) &amp;lt; (1/2.75)) {&lt;br /&gt;
			return c*(7.5625*t*t) + b;&lt;br /&gt;
		} else if (t &amp;lt; (2/2.75)) {&lt;br /&gt;
			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;&lt;br /&gt;
		} else if (t &amp;lt; (2.5/2.75)) {&lt;br /&gt;
			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;&lt;br /&gt;
		} else {&lt;br /&gt;
			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutBounce: function (x, t, b, c, d) {&lt;br /&gt;
		if (t &amp;lt; d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;&lt;br /&gt;
		return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *&lt;br /&gt;
 * TERMS OF USE - EASING EQUATIONS&lt;br /&gt;
 * &lt;br /&gt;
 * Open source under the BSD License. &lt;br /&gt;
 * &lt;br /&gt;
 * Copyright Â© 2001 Robert Penner&lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without modification, &lt;br /&gt;
 * are permitted provided that the following conditions are met:&lt;br /&gt;
 * &lt;br /&gt;
 * Redistributions of source code must retain the above copyright notice, this list of &lt;br /&gt;
 * conditions and the following disclaimer.&lt;br /&gt;
 * Redistributions in binary form must reproduce the above copyright notice, this list &lt;br /&gt;
 * of conditions and the following disclaimer in the documentation and/or other materials &lt;br /&gt;
 * provided with the distribution.&lt;br /&gt;
 * &lt;br /&gt;
 * Neither the name of the author nor the names of contributors may be used to endorse &lt;br /&gt;
 * or promote products derived from this software without specific prior written permission.&lt;br /&gt;
 * &lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY &lt;br /&gt;
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF&lt;br /&gt;
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE&lt;br /&gt;
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE&lt;br /&gt;
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED &lt;br /&gt;
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED &lt;br /&gt;
 * OF THE POSSIBILITY OF SUCH DAMAGE. &lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
/**&lt;br /&gt;
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+&lt;br /&gt;
* &amp;lt;http://cherne.net/brian/resources/jquery.hoverIntent.html&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* @param  f  onMouseOver function || An object with configuration options&lt;br /&gt;
* @param  g  onMouseOut function  || Nothing (use configuration options object)&lt;br /&gt;
* @author    Brian Cherne &amp;lt;brian@cherne.net&amp;gt;&lt;br /&gt;
*/&lt;br /&gt;
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))&amp;lt;cfg.sensitivity){$(ob).unbind(&amp;quot;mousemove&amp;quot;,track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type==&amp;quot;mouseover&amp;quot;?e.fromElement:e.toElement)||e.relatedTarget;while(p&amp;amp;&amp;amp;p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type==&amp;quot;mouseover&amp;quot;){pX=ev.pageX;pY=ev.pageY;$(ob).bind(&amp;quot;mousemove&amp;quot;,track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind(&amp;quot;mousemove&amp;quot;,track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);&lt;br /&gt;
/**&lt;br /&gt;
* plugin: jquery.naviDropDown.js&lt;br /&gt;
* author: kt.cheung @ Brandammo&lt;br /&gt;
* website: www.brandammo.co.uk&lt;br /&gt;
* version: 1.0&lt;br /&gt;
* date: 19th feb 2011&lt;br /&gt;
* description: simple jquery navigation drop down menu with easing and hoverIntent&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 2011 KT Cheung&lt;br /&gt;
&lt;br /&gt;
Permission is hereby granted, free of charge, to any person obtaining a copy&lt;br /&gt;
of this software and associated documentation files (the &amp;quot;Software&amp;quot;), to deal&lt;br /&gt;
in the Software without restriction, including without limitation the rights&lt;br /&gt;
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell&lt;br /&gt;
copies of the Software, and to permit persons to whom the Software is&lt;br /&gt;
furnished to do so, subject to the following conditions:&lt;br /&gt;
&lt;br /&gt;
The above copyright notice and this permission notice shall be included in&lt;br /&gt;
all copies or substantial portions of the Software.&lt;br /&gt;
&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SOFTWARE.&lt;br /&gt;
&lt;br /&gt;
**/&lt;br /&gt;
&lt;br /&gt;
(function($){&lt;br /&gt;
&lt;br /&gt;
  $.fn.naviDropDown = function(options) {  &lt;br /&gt;
  &lt;br /&gt;
	//set up default options &lt;br /&gt;
	var defaults = { &lt;br /&gt;
		dropDownClass: 'dropdown', //the class name for your drop down&lt;br /&gt;
		dropDownWidth: 'auto',	//the default width of drop down elements&lt;br /&gt;
		slideDownEasing: 'easeInOutCirc', //easing method for slideDown&lt;br /&gt;
		slideUpEasing: 'easeInOutCirc', //easing method for slideUp&lt;br /&gt;
		slideDownDuration: 500, //easing duration for slideDown&lt;br /&gt;
		slideUpDuration: 500, //easing duration for slideUp&lt;br /&gt;
		orientation: 'horizontal' //orientation - either 'horizontal' or 'vertical'&lt;br /&gt;
	}; &lt;br /&gt;
  	&lt;br /&gt;
	var opts = $.extend({}, defaults, options); 	&lt;br /&gt;
&lt;br /&gt;
    return this.each(function() {  &lt;br /&gt;
	  var $this = $(this);&lt;br /&gt;
	  $this.find('.'+opts.dropDownClass).css('width', opts.dropDownWidth).css('display', 'none');&lt;br /&gt;
	  &lt;br /&gt;
	  var buttonWidth = $this.find('.'+opts.dropDownClass).parent().width() + 'px';&lt;br /&gt;
	  var buttonHeight = $this.find('.'+opts.dropDownClass).parent().height() + 'px';&lt;br /&gt;
	  if(opts.orientation == 'horizontal') {&lt;br /&gt;
		//$this.find('.'+opts.dropDownClass).css('left', '0px').css('top', buttonHeight);&lt;br /&gt;
	  }&lt;br /&gt;
	  if(opts.orientation == 'vertical') {&lt;br /&gt;
		$this.find('.'+opts.dropDownClass).css('left', buttonWidth).css('top', '0px');&lt;br /&gt;
	  }&lt;br /&gt;
	  &lt;br /&gt;
	  $this.find('li').hoverIntent(getDropDown, hideDropDown);&lt;br /&gt;
    });&lt;br /&gt;
	&lt;br /&gt;
	function getDropDown(){&lt;br /&gt;
		activeNav = $(this);&lt;br /&gt;
		showDropDown();&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	function showDropDown(){&lt;br /&gt;
		activeNav.find('.'+opts.dropDownClass).slideDown({duration:opts.slideDownDuration, easing:opts.slideDownEasing});&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	function hideDropDown(){&lt;br /&gt;
		activeNav.find('.'+opts.dropDownClass).slideUp({duration:opts.slideUpDuration, easing:opts.slideUpEasing});//hides the current dropdown&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
  };&lt;br /&gt;
})(jQuery);&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/SELECT_.._GROUP_BY</id>
		<title>SELECT .. GROUP BY</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/SELECT_.._GROUP_BY"/>
				<updated>2013-03-01T01:12:37Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;SELECT .. GROUP BY&amp;lt;/h1&amp;gt;&lt;br /&gt;
Host cities and continents for the Olympics Games are stored in the table &amp;lt;code&amp;gt;games&amp;lt;/code&amp;gt;.&lt;br /&gt;
Notice that Europe appears in the table twice: &lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;caption align='center'&amp;gt;'''games'''&amp;lt;/caption&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th align='center'&amp;gt;'''yr'''&amp;lt;/th&amp;gt;&amp;lt;th align='center'&amp;gt;'''city'''&amp;lt;/th&amp;gt;&amp;lt;th align='center'&amp;gt;'''continent'''&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2000&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Sydney&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Australasia&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2004&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Athens&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2008&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Beijing&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Asia&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2012&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;London&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div class='ht'&amp;gt;&lt;br /&gt;
&amp;lt;div class='params'&amp;gt;schema:scott&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang=sql class='tidy'&amp;gt; DROP TABLE games&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=sql class='setup'&amp;gt; CREATE TABLE games(&lt;br /&gt;
  yr INTEGER,&lt;br /&gt;
  city VARCHAR(20),&lt;br /&gt;
  continent VARCHAR(20));&lt;br /&gt;
INSERT INTO games VALUES (2000,'Sydney','Australasia');&lt;br /&gt;
INSERT INTO games VALUES (2004,'Athens','Europe');&lt;br /&gt;
INSERT INTO games VALUES (2008,'Beijing','Asia');&lt;br /&gt;
INSERT INTO games VALUES (2012,'London','Europe');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In a GROUP BY statement only &amp;lt;i&amp;gt;distinct&amp;lt;/i&amp;gt; values are shown for the column in the GROUP BY.&lt;br /&gt;
This example shows the continents hosting the Olympics with the count of the number of games held. &lt;br /&gt;
&amp;lt;source lang='sql' class='def e-oracle'&amp;gt;&lt;br /&gt;
SELECT continent, COUNT(yr) FROM scott.games&lt;br /&gt;
 GROUP BY continent&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT continent, COUNT(yr) FROM games&lt;br /&gt;
 GROUP BY continent&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;See also&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[SUM_and_COUNT |SUM and COUNT]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[SELECT_.._WHERE |SELECT WHERE]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/SELECT_.._GROUP_BY</id>
		<title>SELECT .. GROUP BY</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/SELECT_.._GROUP_BY"/>
				<updated>2013-03-01T01:08:39Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;SELECT .. GROUP BY&amp;lt;/h1&amp;gt;&lt;br /&gt;
Host cities and continents for the Olympics Games are stored in the table &amp;lt;code&amp;gt;games&amp;lt;/code&amp;gt;.&lt;br /&gt;
Notice that Europe appears in the table twice: &lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;caption align='center'&amp;gt;'''games'''&amp;lt;/caption&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th align='center'&amp;gt;'''yr'''&amp;lt;/th&amp;gt;&amp;lt;th align='center'&amp;gt;'''city'''&amp;lt;/th&amp;gt;&amp;lt;th align='center'&amp;gt;'''continent'''&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2000&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Sydney&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Australasia&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2004&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Athens&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2008&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Beijing&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Asia&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2012&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;London&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div class='ht'&amp;gt;&lt;br /&gt;
&amp;lt;source lang=sql class='tidy'&amp;gt; DROP TABLE games&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=sql class='setup'&amp;gt; CREATE TABLE games(&lt;br /&gt;
  yr INTEGER,&lt;br /&gt;
  city VARCHAR(20),&lt;br /&gt;
  continent VARCHAR(20));&lt;br /&gt;
INSERT INTO games VALUES (2000,'Sydney','Australasia');&lt;br /&gt;
INSERT INTO games VALUES (2004,'Athens','Europe');&lt;br /&gt;
INSERT INTO games VALUES (2008,'Beijing','Asia');&lt;br /&gt;
INSERT INTO games VALUES (2012,'London','Europe');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In a GROUP BY statement only &amp;lt;i&amp;gt;distinct&amp;lt;/i&amp;gt; values are shown for the column in the GROUP BY.&lt;br /&gt;
This example shows the continents hosting the Olympics with the count of the number of games held. &lt;br /&gt;
&amp;lt;source lang='sql' class='def e-oracle'&amp;gt;&lt;br /&gt;
SELECT continent, COUNT(yr) FROM scott.games&lt;br /&gt;
 GROUP BY continent&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT continent, COUNT(yr) FROM games&lt;br /&gt;
 GROUP BY continent&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;See also&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[SUM_and_COUNT |SUM and COUNT]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[SELECT_.._WHERE |SELECT WHERE]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/SELECT_.._WHERE</id>
		<title>SELECT .. WHERE</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/SELECT_.._WHERE"/>
				<updated>2013-03-01T01:06:02Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;SELECT .. WHERE&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The table &amp;lt;code&amp;gt;games&amp;lt;/code&amp;gt; shows the year and the city hosting the Olympic Games.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;caption align='center'&amp;gt;games&amp;lt;/caption&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th align='center'&amp;gt;'''yr'''&amp;lt;/th&amp;gt;&amp;lt;th align='center'&amp;gt;'''city'''&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2000&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Sydney&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2004&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Athens&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2008&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Beijing&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2012&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;London&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;div class='ht'&amp;gt;&lt;br /&gt;
&amp;lt;source lang=sql class='tidy'&amp;gt; DROP TABLE games&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=sql class='setup'&amp;gt; CREATE TABLE games(&lt;br /&gt;
  yr INTEGER PRIMARY KEY,&lt;br /&gt;
  city VARCHAR(20));&lt;br /&gt;
INSERT INTO games VALUES (2000,'Sydney');&lt;br /&gt;
INSERT INTO games VALUES (2004,'Athens');&lt;br /&gt;
INSERT INTO games VALUES (2008,'Beijing');&lt;br /&gt;
INSERT INTO games VALUES (2012,'London');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The SELECT statement returns results from a &amp;lt;i&amp;gt;table&amp;lt;/i&amp;gt;. &lt;br /&gt;
With a WHERE clause only some rows are returned. &lt;br /&gt;
This example shows the year that Athens hosted the Olympic games.&lt;br /&gt;
&amp;lt;source lang='sql' class='def e-oracle'&amp;gt;&lt;br /&gt;
SELECT yr, city &lt;br /&gt;
FROM scott.games&lt;br /&gt;
WHERE yr = 2004&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT yr, city &lt;br /&gt;
FROM games&lt;br /&gt;
WHERE yr = 2004&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;See also&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[SELECT_from_BBC_Tutorial |SELECT TUTORIAL]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[SELECT |SELECT]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/MediaWiki:Common.js</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/MediaWiki:Common.js"/>
				<updated>2013-02-28T20:53:00Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
$(function(){&lt;br /&gt;
  var engine = $('&amp;lt;div class=&amp;quot;portal&amp;quot;/&amp;gt;')&lt;br /&gt;
    .append($('&amp;lt;h5&amp;gt;Engine&amp;lt;/h5&amp;gt;'))&lt;br /&gt;
    .append($('&amp;lt;div class=body/&amp;gt;')&lt;br /&gt;
      .append($('&amp;lt;ul/&amp;gt;')&lt;br /&gt;
        .append($('&amp;lt;li/&amp;gt;')&lt;br /&gt;
          .append($('&amp;lt;select id=engine/&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=mysql&amp;gt;MySQL&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=oracle&amp;gt;Oracle&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=sqlserver&amp;gt;SQL Server&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=postgres&amp;gt;PostgreSQL&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option id=ingres&amp;gt;Ingres&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option id=db2&amp;gt;DB2&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .change(function(){setDefaultText();})&lt;br /&gt;
          )&lt;br /&gt;
        )&lt;br /&gt;
      )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
  $('#right-navigation').after($('&amp;lt;ul/&amp;gt;',{'id':'zoolinks'})&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://csszoo.net',text:'CSS',id:'css_link', title:'Learn CSS! visit CSSzoo'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://progzoo.net',text:'Java',id:'java_link', title:'Hungry for Java tutorials? ProgZoo is for you'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://linuxzoo.net',text:'Linux',id:'linux_link', title:'Linux Zoo tutoials!'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;',{'id':'book'}).append($('&amp;lt;a/&amp;gt;',{href:'http://www.oreilly.com/catalog/sqlhks/',id:'sql_hacks',title:'Try/buy SQL Hacks book'})))&lt;br /&gt;
  );&lt;br /&gt;
&lt;br /&gt;
  $('#p-Reference').before(engine);&lt;br /&gt;
  &lt;br /&gt;
  //Adverts&lt;br /&gt;
  $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/sqlhacks.png',alt:'SQL Hacks book ad'})&lt;br /&gt;
    .appendTo($('#sql_hacks'));&lt;br /&gt;
  $('#p-googleadsense').prependTo('#footer');&lt;br /&gt;
&lt;br /&gt;
  if (wgCanonicalNamespace=='MediaWiki' || wgCanonicalNamespace=='Special')&lt;br /&gt;
    $('#p-googleadsense').hide();&lt;br /&gt;
&lt;br /&gt;
	// Reset localStorage&lt;br /&gt;
	var rst = $('.lsclear');&lt;br /&gt;
	rst.click(function(e){&lt;br /&gt;
	   if (localStorage) &lt;br /&gt;
			localStorage.clear();&lt;br /&gt;
	   location.reload();&lt;br /&gt;
	});&lt;br /&gt;
			   &lt;br /&gt;
	var numberOfQuestions = 0;&lt;br /&gt;
	var numberOfAnswered = 0;&lt;br /&gt;
	var numberOfCorrect = 0;&lt;br /&gt;
	var startAt = Math.max(1,$('#startAt').text()*1);&lt;br /&gt;
	var qu = $('.qu,.ht,.err');&lt;br /&gt;
	var curEng;&lt;br /&gt;
	if (localStorage &amp;amp;&amp;amp; localStorage.getItem(&amp;quot;currentEngine&amp;quot;))&lt;br /&gt;
	{&lt;br /&gt;
		curEng = localStorage.getItem(&amp;quot;currentEngine&amp;quot;);&lt;br /&gt;
		$('#engine').val(curEng);&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
		curEng = $('#engine').val();&lt;br /&gt;
		&lt;br /&gt;
	for(var i=0;i&amp;lt;qu.length;i++){&lt;br /&gt;
		var id = i+1;&lt;br /&gt;
		var q = qu[i];&lt;br /&gt;
		var lsName = wgPageName + '_' + 'frm__' + id;&lt;br /&gt;
		&lt;br /&gt;
		var def = $('.def',q);&lt;br /&gt;
		if (def.length&amp;gt;1){&lt;br /&gt;
			var pick = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
			for(var j=0;j&amp;lt;def.length;j++)&lt;br /&gt;
			  if ($(def[j]).hasClass('e-'+curEng))&lt;br /&gt;
				pick = $(def[j]);&lt;br /&gt;
			def = pick;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		//Hints&lt;br /&gt;
		var hint = $('.hint', q);&lt;br /&gt;
		hint.hide();&lt;br /&gt;
		hint.each(function(){&lt;br /&gt;
			var htitle = $(this).attr(&amp;quot;title&amp;quot;);&lt;br /&gt;
			var hnt = $('&amp;lt;div/&amp;gt;', {'class':'hnt', 'text':htitle});&lt;br /&gt;
			var hidden = $(this);&lt;br /&gt;
			hnt.click(function(e){&lt;br /&gt;
			   e.preventDefault();&lt;br /&gt;
			   hidden.toggle(&amp;quot;slow&amp;quot;);});&lt;br /&gt;
			$(this).before(hnt);&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		var txt = def.text();&lt;br /&gt;
		// replace the default text with user's last query if available in LS&lt;br /&gt;
		if (localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng))&lt;br /&gt;
		{&lt;br /&gt;
			var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
			txt = lsArray[lsArray.length-1];&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var ans = $('.ans',q).text();&lt;br /&gt;
		var tdy = $('.tidy',q).text();&lt;br /&gt;
		var frm = $('&amp;lt;form/&amp;gt;',{name:'frm__'+id,id:'frm__'+id})&lt;br /&gt;
			.append($('&amp;lt;div/&amp;gt;',{'class':'quf'})&lt;br /&gt;
			   .append($('&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;',&lt;br /&gt;
				 {value:$.trim(txt),&lt;br /&gt;
				  rows:2+Math.max(Math.max(4 ,txt.split(/[\n\r]+/).length),ans.split(/[\n\r]+/).length),&lt;br /&gt;
				  cols:2+Math.max(Math.max(45,maxlen(txt.split(/[\n\r]+/))),maxlen(ans.split(/[\n\r]+/))),&lt;br /&gt;
				  'class':'sql',&lt;br /&gt;
				  id:'txtar_'+id}))&lt;br /&gt;
			   .append($('&amp;lt;br/&amp;gt;'))&lt;br /&gt;
			   .append($('&amp;lt;button/&amp;gt;',{text:'Submit SQL','class':'submitSQL',click:goBaby}))&lt;br /&gt;
			   .append($('&amp;lt;div/&amp;gt;',{text:'Restore default','class':'reset',click:restoreDefault}))&lt;br /&gt;
			);&lt;br /&gt;
		&lt;br /&gt;
		def.after(frm);&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		// Display completion information&lt;br /&gt;
		if (localStorage)&lt;br /&gt;
		{&lt;br /&gt;
			if (!localStorage.getItem(lsName))&lt;br /&gt;
				localStorage.setItem(lsName, &amp;quot;unanswered&amp;quot;);&lt;br /&gt;
			if (localStorage.getItem(lsName) == &amp;quot;answered&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have answered this question &amp;lt;u&amp;gt;incorrectly&amp;lt;/u&amp;gt; before.&amp;quot;);&lt;br /&gt;
				numberOfAnswered++;&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qincorrect', 'title':'You have answered this question incorrectly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
			else if (localStorage.getItem(lsName) == &amp;quot;correct&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have answered this question &amp;lt;u&amp;gt;correctly&amp;lt;/u&amp;gt; before.&amp;quot;);&lt;br /&gt;
				numberOfCorrect++;&lt;br /&gt;
				numberOfAnswered++;&lt;br /&gt;
				&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qcorrect', 'title':'You have answered this question correctly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have not answered this question yet.&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var lhs = $('&amp;lt;div/&amp;gt;',{css:{width:'60ex',marginRight:'2ex','float':'left'}});&lt;br /&gt;
		lhs.append($('&amp;lt;span/&amp;gt;',{text:(startAt+i)+'.','class':'id'}));&lt;br /&gt;
		lhs.append($(q).children());&lt;br /&gt;
		$(q).append(lhs);&lt;br /&gt;
                // This line caused problems when styling - I removed the css margin-left from it - M&lt;br /&gt;
		//$(q).append($('&amp;lt;div/&amp;gt;',{text:'result','class':'res',css:{'margin-left':'1ex'}}));&lt;br /&gt;
                $(q).append($('&amp;lt;div/&amp;gt;',{text:'result','class':'res'}));&lt;br /&gt;
		&lt;br /&gt;
		//Show additional info if available for active angine&lt;br /&gt;
		var ecomm = $('.ecomm,.link',q);&lt;br /&gt;
		var ecomm1 = ecomm.filter(false);&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var ecomm = $('.link',q);&lt;br /&gt;
		var ecomm1 = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		numberOfQuestions = id;&lt;br /&gt;
	}&lt;br /&gt;
	if (numberOfQuestions == 0)&lt;br /&gt;
		numberOfQuestions = 1;&lt;br /&gt;
	&lt;br /&gt;
	// Display completion info&lt;br /&gt;
	$(&amp;quot;.summary&amp;quot;).html(&amp;quot;You have answered &amp;quot;+numberOfAnswered+&amp;quot; out of &amp;quot;+numberOfQuestions+&amp;quot; questions on this page.&amp;lt;br/&amp;gt;&amp;quot;+numberOfCorrect+&amp;quot; of your answers were correct.&amp;quot;);&lt;br /&gt;
	// Save completion info&lt;br /&gt;
	if (localStorage)&lt;br /&gt;
	{&lt;br /&gt;
		localStorage.setItem(wgPageName+'_numberOfQuestions', numberOfQuestions);&lt;br /&gt;
		localStorage.setItem(wgPageName+'_numberOfCorrect', numberOfCorrect);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	//Progress bar&lt;br /&gt;
	var maxWidth = $('.progressbar').css('width');&lt;br /&gt;
	var barModification = parseFloat(maxWidth) * numberOfCorrect / numberOfQuestions;&lt;br /&gt;
	$('.progressbar').css('width', barModification);&lt;br /&gt;
	&lt;br /&gt;
  //Put in the answers if url includes answer=1&lt;br /&gt;
  if (window.location.search.contains('answer')){&lt;br /&gt;
    $('&amp;lt;def/&amp;gt;',{text:&amp;quot;Cheat mode&amp;quot;,css:{position:'fixed',right:'2ex',&lt;br /&gt;
                   bottom:'2ex',width:'14ex',backgroundColor:'yellow',padding:'2ex',&lt;br /&gt;
                   textAlign:'center'}})&lt;br /&gt;
      .appendTo($('body'));&lt;br /&gt;
    $('.quf textarea').each(function(){&lt;br /&gt;
       $(this).val($(this).closest('form').next('.ans').text());&lt;br /&gt;
    })&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
})&lt;br /&gt;
&lt;br /&gt;
function setDefaultText() {&lt;br /&gt;
	var qu = $('.ht,.err');&lt;br /&gt;
	var curEng = $('#engine').val();&lt;br /&gt;
	if (localStorage)&lt;br /&gt;
		localStorage.setItem(&amp;quot;currentEngine&amp;quot;, curEng);&lt;br /&gt;
	for(var i=0;i&amp;lt;qu.length;i++){&lt;br /&gt;
		var id = i+1;&lt;br /&gt;
		var q = qu[i];&lt;br /&gt;
		&lt;br /&gt;
		var def = $('.def',q);&lt;br /&gt;
		if (def.length&amp;gt;1){&lt;br /&gt;
			var pick = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
			for(var j=0;j&amp;lt;def.length;j++)&lt;br /&gt;
			  if ($(def[j]).hasClass('e-'+curEng))&lt;br /&gt;
				pick = $(def[j]);&lt;br /&gt;
			def = pick;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var lsName = wgPageName + '_' + 'frm__' + id;&lt;br /&gt;
		var txt = def.text();&lt;br /&gt;
		// replace the default text with user's last query if available in LS&lt;br /&gt;
		if (localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng))&lt;br /&gt;
		{&lt;br /&gt;
			var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
			txt = lsArray[lsArray.length-1];&lt;br /&gt;
		}&lt;br /&gt;
		$('textarea#txtar_'+id).val(txt);&lt;br /&gt;
		&lt;br /&gt;
		//Show additional info if available for chosen engine&lt;br /&gt;
		var ecomm = $('.ecomm',q);&lt;br /&gt;
		var ecomm1 = ecomm.filter(false);&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		//Show headers for chosen engine&lt;br /&gt;
		var ecomm = $('.link',q);&lt;br /&gt;
		var ecomm1 = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function restoreDefault() {&lt;br /&gt;
	var qu = $(this).parents('.qu, .ht, .err');&lt;br /&gt;
	var def = $('.def',qu);&lt;br /&gt;
	var txt = def.text();&lt;br /&gt;
	qu.find('textarea.sql').val(txt);&lt;br /&gt;
}	&lt;br /&gt;
&lt;br /&gt;
function updateProgressbar() {&lt;br /&gt;
	var numberOfQuestions = parseInt(localStorage.getItem(wgPageName+'_numberOfQuestions'));&lt;br /&gt;
	// A little workaround - max progressbar width is 96% of its background's width&lt;br /&gt;
	var maxWidth = parseFloat($('.progressbarbg').css('width')) * 0.96;&lt;br /&gt;
	var barModification = parseFloat($('.progressbar').css('width')) + maxWidth * 1 / numberOfQuestions;&lt;br /&gt;
	$('.progressbar').css('width', barModification);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function goBaby(){&lt;br /&gt;
  var qu = $(this).parents('.qu, .ht, .err');&lt;br /&gt;
  var lsUse = ((qu[0].getAttribute('class') != 'ht') &amp;amp;&amp;amp; ($(qu[0]).find('.ans').length &amp;gt; 0));&lt;br /&gt;
  var lsName = wgPageName + '_' + $(this).parents('form').attr('id');&lt;br /&gt;
  if (lsUse &amp;amp;&amp;amp; localStorage &amp;amp;&amp;amp; (localStorage.getItem(lsName) != &amp;quot;correct&amp;quot;))&lt;br /&gt;
	localStorage.setItem(lsName, &amp;quot;answered&amp;quot;);&lt;br /&gt;
  var sql = qu.find('textarea.sql').val();&lt;br /&gt;
  var parlst = $('.params').text().split(';');&lt;br /&gt;
  var params = {};&lt;br /&gt;
  for(var i=0;i&amp;lt;parlst.length;i++){&lt;br /&gt;
    var pair = parlst[i].split(':');&lt;br /&gt;
    params[pair[0]]=pair[1];&lt;br /&gt;
  }&lt;br /&gt;
  //Store the sql querry in LS&lt;br /&gt;
  if (localStorage)&lt;br /&gt;
  {&lt;br /&gt;
	var curEng = $('#engine').val();&lt;br /&gt;
	var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
	if (!lsArray)&lt;br /&gt;
		lsArray = new Array();&lt;br /&gt;
	lsArray.push(sql);&lt;br /&gt;
	localStorage.setItem(lsName+&amp;quot;_arr_&amp;quot;+curEng, JSON.stringify(lsArray));&lt;br /&gt;
  }&lt;br /&gt;
  qu.find('.res').addClass('waiting');&lt;br /&gt;
  $.ajax({url:'/sqlgo.pl',cache:false,'type':'post',dataType:'json',&lt;br /&gt;
          data:{sql:sql.replace(/\xA0/g,' '),  //Mediawiki inserts &amp;amp;nbsp; before a %. We need to change it back to a space.CM 13/6/12&lt;br /&gt;
                format:'json',&lt;br /&gt;
                question:$('.id',qu).text(),&lt;br /&gt;
                wgUserName:wgUserName,&lt;br /&gt;
                cookie:$.cookie('oliver'),&lt;br /&gt;
                page:wgPageName,&lt;br /&gt;
                server:$('#engine').val(),&lt;br /&gt;
                setup:$('.setup',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                tidy:$('.tidy',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                answer:$('.ans',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                schema:params['schema']&lt;br /&gt;
               },&lt;br /&gt;
          success:function(d){&lt;br /&gt;
            var res = qu.find('.res');&lt;br /&gt;
            res.empty().removeClass('waiting')&lt;br /&gt;
            if (d.error){&lt;br /&gt;
              res.append($('&amp;lt;h1/&amp;gt;',{text:'SQLZoo System Error:'}))&lt;br /&gt;
              res.append($('&amp;lt;div/&amp;gt;',{text:d.error}))&lt;br /&gt;
              return;&lt;br /&gt;
            }&lt;br /&gt;
			var headerPresent = false;&lt;br /&gt;
            for (var i = 0; i &amp;lt; d.sql.length; i++)&lt;br /&gt;
				{&lt;br /&gt;
				if (!d || !d.sql || !d.sql[i]){&lt;br /&gt;
				  res.append($('&amp;lt;h1/&amp;gt;',{text:'SQLZoo System Error:'}))&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:&amp;quot;Problem with d or d.sql or d.sql[0]&amp;quot;}))&lt;br /&gt;
				  return;&lt;br /&gt;
				}&lt;br /&gt;
				if (d.sql[i].error){&lt;br /&gt;
				  res.append($('&amp;lt;h1/&amp;gt;',{text:'Error:'}))&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:d.sql[i].error}))&lt;br /&gt;
				  return;&lt;br /&gt;
				}&lt;br /&gt;
				var legend = &amp;quot;Result:&amp;quot;;&lt;br /&gt;
				if (d.score &amp;amp;&amp;amp; d.answer &amp;amp;&amp;amp; d.answer.length==1 &amp;amp;&amp;amp; d.answer[0].fields){&lt;br /&gt;
				  if (d.score == 100){&lt;br /&gt;
					legend = 'Correct answer';&lt;br /&gt;
					if (lsUse &amp;amp;&amp;amp; localStorage)&lt;br /&gt;
						localStorage.setItem(lsName, &amp;quot;correct&amp;quot;);&lt;br /&gt;
					var def = $('.def',qu);&lt;br /&gt;
					if (localStorage.getItem(lsName) == &amp;quot;correct&amp;quot;)&lt;br /&gt;
					{&lt;br /&gt;
						if ($(&amp;quot;.qcorrect&amp;quot;, qu).length == 0)&lt;br /&gt;
						{&lt;br /&gt;
							var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qcorrect', 'title':'You have answered this question correctly before.'});&lt;br /&gt;
							def.before(qcorr);&lt;br /&gt;
							updateProgressbar();&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
			      }&lt;br /&gt;
				  else if (d.answer[0].fields.length&amp;gt;d.sql[0].fields.length)&lt;br /&gt;
					legend = 'Too few columns';&lt;br /&gt;
				  else if (d.answer[0].fields.length&amp;lt;d.sql[0].fields.length)&lt;br /&gt;
					legend = 'Too many columns';&lt;br /&gt;
				  else if (d.answer[0].rows.length&amp;gt;d.sql[0].rows.length)&lt;br /&gt;
					legend = 'Too few rows';&lt;br /&gt;
				  else if (d.answer[0].rows.length&amp;lt;d.sql[0].rows.length)&lt;br /&gt;
					legend = 'Too many rows';&lt;br /&gt;
&lt;br /&gt;
				}&lt;br /&gt;
				if (!headerPresent)&lt;br /&gt;
				{&lt;br /&gt;
					res.append($('&amp;lt;h1/&amp;gt;',{text:legend}));&lt;br /&gt;
					headerPresent = true;&lt;br /&gt;
				}&lt;br /&gt;
				var t = mkTable(d.sql[i]);&lt;br /&gt;
				t.addClass('sqlmine')&lt;br /&gt;
				 .appendTo(res);&lt;br /&gt;
				if (d.answer &amp;amp;&amp;amp; d.answer.length&amp;gt;0 &amp;amp;&amp;amp; d.score&amp;lt;100){&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:'Show correct result','class':'showtxt'})&lt;br /&gt;
					.click(function(){&lt;br /&gt;
					  $(this).next().show('slow');&lt;br /&gt;
					})&lt;br /&gt;
				  );&lt;br /&gt;
				  var a = mkTable(d.answer[0]);&lt;br /&gt;
				  a.addClass('sqlans');&lt;br /&gt;
				  a.appendTo(res);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
          },&lt;br /&gt;
          error:function(jqXHR,textStatus,errorThrown){&lt;br /&gt;
            qu.find('.res').empty().removeClass('waiting')&lt;br /&gt;
              .append($('&amp;lt;h1/&amp;gt;',{'class':'syserr',text:'SQLZOO system error:'}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;',{text:textStatus}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;',{text:errorThrown}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;').html(jqXHR.responseText))&lt;br /&gt;
          }&lt;br /&gt;
         });&lt;br /&gt;
		 &lt;br /&gt;
		// Modify completion information&lt;br /&gt;
		var def = $('.def',qu);&lt;br /&gt;
		if (localStorage)&lt;br /&gt;
		{&lt;br /&gt;
			if (localStorage.getItem(lsName) == &amp;quot;answered&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qincorrect', 'title':'You have answered this question incorrectly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
function maxlen(l){&lt;br /&gt;
  var r = 0;&lt;br /&gt;
  for(var i=0;i&amp;lt;l.length;i++)&lt;br /&gt;
    r = Math.max(r,l[i].length);&lt;br /&gt;
  return r;&lt;br /&gt;
}&lt;br /&gt;
function truncate(s){&lt;br /&gt;
  if (s.length&amp;lt;15) return s;&lt;br /&gt;
  return s.substring(0,13)+&amp;quot;..&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
function mkTable(a){&lt;br /&gt;
  var t = $('&amp;lt;table/&amp;gt;');&lt;br /&gt;
  t.append($('&amp;lt;tr/&amp;gt;'));&lt;br /&gt;
  var isnum = [];&lt;br /&gt;
  if (!a.fields || !a.rows) return t;&lt;br /&gt;
  for(var i=0;i&amp;lt;a.fields.length;i++){&lt;br /&gt;
    $('tr',t).append($('&amp;lt;th/&amp;gt;',{text:truncate(a.fields[i])}));&lt;br /&gt;
    var allNum = 1;&lt;br /&gt;
    for(var j=0;j&amp;lt;a.rows.length;j++){&lt;br /&gt;
      if (a.rows[j] &amp;amp;&amp;amp; a.rows[j][i] &amp;amp;&amp;amp; !a.rows[j][i].match(/^[0-9.]*$/))&lt;br /&gt;
        allNum = 0;&lt;br /&gt;
    }&lt;br /&gt;
    isnum.push(allNum);&lt;br /&gt;
  }&lt;br /&gt;
  for(var j=0;j&amp;lt;a.rows.length;j++){&lt;br /&gt;
    var tr = $('&amp;lt;tr/&amp;gt;').appendTo(t);&lt;br /&gt;
    for(var k=0;k&amp;lt;a.rows[j].length;k++){&lt;br /&gt;
      var td = $('&amp;lt;td/&amp;gt;',{text:a.rows[j][k]});&lt;br /&gt;
      if (isnum[k]) td.addClass('r');&lt;br /&gt;
      td.appendTo(tr);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return t;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ======================= Designer js starts here */&lt;br /&gt;
&lt;br /&gt;
// the following scripts should not be present here - they should be linked as external files !!!&lt;br /&gt;
&lt;br /&gt;
// this script helps to manage browser inconsistency across different os&lt;br /&gt;
function css_browser_selector(u){var ua=u.toLowerCase(),is=function(t){return ua.indexOf(t)&amp;gt;-1},g='gecko',w='webkit',s='safari',o='opera',m='mobile',h=document.documentElement,b=[(!(/opera|webtv/i.test(ua))&amp;amp;&amp;amp;/msie\s(\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?g+' ff2':is('firefox/3.5')?g+' ff3 ff3_5':is('firefox/3.6')?g+' ff3 ff3_6':is('firefox/3')?g+' ff3':is('gecko/')?g:is('opera')?o+(/version\/(\d+)/.test(ua)?' '+o+RegExp.$1:(/opera(\s|\/)(\d+)/.test(ua)?' '+o+RegExp.$2:'')):is('konqueror')?'konqueror':is('blackberry')?m+' blackberry':is('android')?m+' android':is('chrome')?w+' chrome':is('iron')?w+' iron':is('applewebkit/')?w+' '+s+(/version\/(\d+)/.test(ua)?' '+s+RegExp.$1:''):is('mozilla/')?g:'',is('j2me')?m+' j2me':is('iphone')?m+' iphone':is('ipod')?m+' ipod':is('ipad')?m+' ipad':is('mac')?'mac':is('darwin')?'mac':is('webtv')?'webtv':is('win')?'win'+(is('windows nt 6.0')?' vista':''):is('freebsd')?'freebsd':(is('x11')||is('linux'))?'linux':'','js']; c = b.join(' '); h.className += ' '+c; return c;}; css_browser_selector(navigator.userAgent);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// display site logo&lt;br /&gt;
$(function(){&lt;br /&gt;
  $('&amp;lt;a/&amp;gt;',{href:'http://sqlzoo.net/w/index.php',id:'mp-logo',title:'Zoo You!'})&lt;br /&gt;
    .append($('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/sql_zoo_logo05.png',alt:'SQLzoo logo'}))&lt;br /&gt;
    .appendTo($('#mw-head-base'))&lt;br /&gt;
});&lt;br /&gt;
 &lt;br /&gt;
// display site description&lt;br /&gt;
$(document).ready(function(){&lt;br /&gt;
  $(function(){&lt;br /&gt;
    $(&amp;quot;#mp-logo&amp;quot;).append(&amp;quot; &amp;lt;h1 id='logo-desc'&amp;gt;Interactive &amp;lt;span&amp;gt;SQL &amp;lt;span&amp;gt;Tutorial&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h1&amp;gt;&amp;quot;);&lt;br /&gt;
  });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// display language selector&lt;br /&gt;
$(function(){&lt;br /&gt;
     $('&amp;lt;div/&amp;gt;',{id:'language'}).appendTo($('#mw-head-base'))&lt;br /&gt;
 &lt;br /&gt;
     var lang = $('&amp;lt;ul/&amp;gt;',{id:'lang','class':'side_nav_sub'});&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;en&amp;quot; href=&amp;quot;/wiki/Main_Page&amp;quot;&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;de&amp;quot; href=&amp;quot;/wiki/Main_Page/de&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;fr&amp;quot; href=&amp;quot;/wiki/Main_Page/fr&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    $('#language').append(lang);&lt;br /&gt;
&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/en2.png',alt:'SQL zoo in English'})&lt;br /&gt;
       .appendTo($('#en'));&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/de2.png',alt:'SQL zoo in German'})&lt;br /&gt;
       .appendTo($('#de'));&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/fr2.png',alt:'SQL zoo in French'})&lt;br /&gt;
       .appendTo($('#fr'));&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// assemble and display main nav menu&lt;br /&gt;
$(function(){&lt;br /&gt;
    var ml1 =&lt;br /&gt;
    [['1 SELECT basics',  'SELECT_basics','Some simple queries to get you started']&lt;br /&gt;
    ,['2 SELECT from WORLD','SELECT_from_WORLD_Tutorial','Finding facts about countries']&lt;br /&gt;
    ,['3 SELECT from Nobel','SELECT_from_Nobel_Tutorial','More practice with SELECT statements']&lt;br /&gt;
    ,['4 SELECT within SELECT','SELECT_within_SELECT_Tutorial','Using the results of one query inside another']&lt;br /&gt;
    ,['5 SUM and COUNT','SUM_and_COUNT','Apply aggregate functions']&lt;br /&gt;
    ,['6 JOIN','The_JOIN_operation','Gathering data from more than one table']&lt;br /&gt;
    ,['7 More JOIN','More_JOIN_operations','Getting data from the movie database']&lt;br /&gt;
    ,['8 Using NULL','Using_Null','Dealing with missing data']&lt;br /&gt;
    ,['9 Self JOIN','Self_join','Dealing with missing data']&lt;br /&gt;
	,['10 SQL Quizzes','Tutorial_Quizzes','Test your knowledge with multiple choice quizzes']&lt;br /&gt;
    ];&lt;br /&gt;
    var mm1 = $('&amp;lt;ul/&amp;gt;',{id:'mm1','class':'dropdown mm_sub'});&lt;br /&gt;
    for(var i=0;i&amp;lt;ml1.length;i++){&lt;br /&gt;
	  var maxWidth = 50; // adjust the value so that it fits menu well&lt;br /&gt;
	  var NoQ = localStorage.getItem(ml1[i][1] + '_numberOfQuestions');&lt;br /&gt;
	  if (!NoQ) NoQ = 1;&lt;br /&gt;
	  var NoC = localStorage.getItem(ml1[i][1] + '_numberOfCorrect');&lt;br /&gt;
	  if (!NoC) NoC = 0;	  &lt;br /&gt;
	  var pbWidth = parseFloat(maxWidth) * NoC / NoQ;&lt;br /&gt;
	  var mprogbar = $('&amp;lt;div/&amp;gt;',{'class':'progressbarbg1'}).append($('&amp;lt;div/&amp;gt;',{'class':'progressbar1', 'id':ml1[i][1], css:{'width':pbWidth}}));&lt;br /&gt;
          mm1.append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'/wiki/'+ml1[i][1],text:ml1[i][0]})).append(ml1[i][2]).append(mprogbar));&lt;br /&gt;
    }&lt;br /&gt;
    var mm2 = $('&amp;lt;ul/&amp;gt;',{id:'mm2','class':'dropdown mm_sub'});&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/AdventureWorks&amp;quot;&amp;gt;1 AdventureWorks&amp;lt;/a&amp;gt; Flogging sports gear. Assessment for CO22008 2007/8&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Neeps&amp;quot;&amp;gt;2 Neeps&amp;lt;/a&amp;gt; A timetable database&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Musicians&amp;quot;&amp;gt;3 Musicians&amp;lt;/a&amp;gt; Concerts and compositions&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Southwind&amp;quot;&amp;gt;4 Southwind&amp;lt;/a&amp;gt; Buying and selling&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Dressmaker&amp;quot;&amp;gt;5 Dressmaker&amp;lt;/a&amp;gt; Constructing clothing&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Congestion Charging&amp;quot;&amp;gt;6 Congestion Charging&amp;lt;/a&amp;gt; Monitoring traffic (old questions)&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Weather data for Southhampton&amp;quot;&amp;gt;7 Weather data for Southhampton&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Album Tracks Style&amp;quot;&amp;gt;8 Album Tracks Style&amp;lt;/a&amp;gt; Music data&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    var mm3 = $('&amp;lt;ul/&amp;gt;',{id:'mm3','class':'dropdown mm_sub'});&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/SELECT_Reference&amp;quot;&amp;gt;SELECT&amp;lt;/a&amp;gt;How to read the data from a database.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/CREATE_and_DROP_Reference&amp;quot;&amp;gt;CREATE and DROP&amp;lt;/a&amp;gt;How to create tables, indexes, views and other things. How to get rid of them.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/INSERT_and_DELETE_Reference&amp;quot;&amp;gt;INSERT and DELETE&amp;lt;/a&amp;gt;How to put records into a table, change them and how to take them out again.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/DATE_and_TIME_Reference&amp;quot;&amp;gt;DATE and TIME&amp;lt;/a&amp;gt;How to work with dates; adding, subtracting and formatting.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Functions_Reference&amp;quot;&amp;gt;Functions&amp;lt;/a&amp;gt;How to use string functions, logical functions and mathematical functions.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Users_Reference&amp;quot;&amp;gt;Users&amp;lt;/a&amp;gt;How to create users, GRANT and DENY access, get at other peoples tables. How to find processes and kill them.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Meta_Data_Reference&amp;quot;&amp;gt;Meta Data&amp;lt;/a&amp;gt;How to find out what tables and columns exist. How to count and limit the rows return.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Hacks_Reference&amp;quot;&amp;gt;SQL Hacks&amp;lt;/a&amp;gt;Useful SQL hacks .&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    var mm = $('&amp;lt;ul/&amp;gt;',{id:'main_menu'}).appendTo('#mw-head-base');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm1&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Tutorials&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm2&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Assessments&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm3&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Reference&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    $('#mm1').append(mm1);&lt;br /&gt;
    $('#mm2').append(mm2);&lt;br /&gt;
    $('#mm3').append(mm3);&lt;br /&gt;
&lt;br /&gt;
    $('#main_menu').wrap('&amp;lt;div id=&amp;quot;navigation_horiz&amp;quot; /&amp;gt;');&lt;br /&gt;
    $('#navigation_horiz').naviDropDown({&lt;br /&gt;
      dropDownWidth: '35em'&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// stick on top elements that need to be visible&lt;br /&gt;
$(function(){&lt;br /&gt;
    $(&amp;quot;#main_menu&amp;quot;).addClass(&amp;quot;stickableMenu&amp;quot;);&lt;br /&gt;
    $(&amp;quot;#p-Reference&amp;quot;).addClass(&amp;quot;stickableRef&amp;quot;);&lt;br /&gt;
    $(&amp;quot;.ref_section&amp;quot;).addClass(&amp;quot;stickableDbRef&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$(document).scroll(function() {&lt;br /&gt;
    var useFixedMenu = $(document).scrollTop() &amp;gt; 175;&lt;br /&gt;
    $('.stickableMenu').toggleClass('fixedMenu', useFixedMenu);&lt;br /&gt;
    &lt;br /&gt;
//    var useFixedRef = $(document).scrollTop() &amp;gt; 275;&lt;br /&gt;
//    $('.stickableRef').toggleClass('fixedRef', useFixedRef);&lt;br /&gt;
&lt;br /&gt;
    $('.stickableDbRef').toggleClass('fixedDbRef', $(document).scrollTop() &amp;gt; 275);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// swap classes on external links to change their side icons&lt;br /&gt;
$(function(){&lt;br /&gt;
 $(&amp;quot;.external&amp;quot;).addClass(&amp;quot;zoo_external&amp;quot;);&lt;br /&gt;
 $(&amp;quot;.external&amp;quot;).removeClass(&amp;quot;external&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
/* === Designer js ends here === */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Insert tables into Quiz distractors&lt;br /&gt;
var qq = $('.question');&lt;br /&gt;
for (var i = 0; i &amp;lt; qq.length; i++)&lt;br /&gt;
{&lt;br /&gt;
	var q = $(qq[i]);&lt;br /&gt;
	var distractors = &amp;quot;ABCDE&amp;quot;;&lt;br /&gt;
	for (var j=0;j&amp;lt;distractors.length;j++){&lt;br /&gt;
		var tans = $('table caption:contains(&amp;quot;Table-'+distractors[j]+'&amp;quot;)', q).parents('table');&lt;br /&gt;
		if (tans.length&amp;gt;0)&lt;br /&gt;
		{&lt;br /&gt;
			var ttd = $('table tr td:contains(&amp;quot;Table-'+distractors[j]+'&amp;quot;)', q);&lt;br /&gt;
			if (ttd.length&amp;gt;0){&lt;br /&gt;
			   ttd.empty();&lt;br /&gt;
			   ttd.append(tans);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$(function(){&lt;br /&gt;
  $('input.check').each(function(i,e){&lt;br /&gt;
    $(this).attr('id','quiz_d_'+i);&lt;br /&gt;
  });&lt;br /&gt;
  $('tr.proposal').each(function(i,e){&lt;br /&gt;
    var tds = $('td',$(this));&lt;br /&gt;
    var html1= $(tds[1]).html();&lt;br /&gt;
    $(tds[1]).html($('&amp;lt;label/&amp;gt;',{html:html1,'for':$('input',$(this)).attr('id') }));&lt;br /&gt;
  })&lt;br /&gt;
})&lt;br /&gt;
//Connor 23/7/12 creates the labels for the multiple choice questions allowing them to be highlighted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Analytics code&lt;br /&gt;
  var _gaq = _gaq || [];&lt;br /&gt;
  _gaq.push(['_setAccount', 'UA-33860668-1']);&lt;br /&gt;
  _gaq.push(['_trackPageview']);&lt;br /&gt;
&lt;br /&gt;
  (function() {&lt;br /&gt;
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;&lt;br /&gt;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';&lt;br /&gt;
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);&lt;br /&gt;
  })();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//JSON&lt;br /&gt;
(function($){var escapeable=/[&amp;quot;\\\x00-\x1f\x7f-\x9f]/g,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','&amp;quot;':'\\&amp;quot;','\\':'\\\\'};$.toJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.stringify?JSON.stringify:function(o){if(o===null){return'null';}&lt;br /&gt;
var type=typeof o;if(type==='undefined'){return undefined;}&lt;br /&gt;
if(type==='number'||type==='boolean'){return''+o;}&lt;br /&gt;
if(type==='string'){return $.quoteString(o);}&lt;br /&gt;
if(type==='object'){if(typeof o.toJSON==='function'){return $.toJSON(o.toJSON());}&lt;br /&gt;
if(o.constructor===Date){var month=o.getUTCMonth()+1,day=o.getUTCDate(),year=o.getUTCFullYear(),hours=o.getUTCHours(),minutes=o.getUTCMinutes(),seconds=o.getUTCSeconds(),milli=o.getUTCMilliseconds();if(month&amp;lt;10){month='0'+month;}&lt;br /&gt;
if(day&amp;lt;10){day='0'+day;}&lt;br /&gt;
if(hours&amp;lt;10){hours='0'+hours;}&lt;br /&gt;
if(minutes&amp;lt;10){minutes='0'+minutes;}&lt;br /&gt;
if(seconds&amp;lt;10){seconds='0'+seconds;}&lt;br /&gt;
if(milli&amp;lt;100){milli='0'+milli;}&lt;br /&gt;
if(milli&amp;lt;10){milli='0'+milli;}&lt;br /&gt;
return'&amp;quot;'+year+'-'+month+'-'+day+'T'+&lt;br /&gt;
hours+':'+minutes+':'+seconds+'.'+milli+'Z&amp;quot;';}&lt;br /&gt;
if(o.constructor===Array){var ret=[];for(var i=0;i&amp;lt;o.length;i++){ret.push($.toJSON(o[i])||'null');}&lt;br /&gt;
return'['+ret.join(',')+']';}&lt;br /&gt;
var name,val,pairs=[];for(var k in o){type=typeof k;if(type==='number'){name='&amp;quot;'+k+'&amp;quot;';}else if(type==='string'){name=$.quoteString(k);}else{continue;}&lt;br /&gt;
type=typeof o[k];if(type==='function'||type==='undefined'){continue;}&lt;br /&gt;
val=$.toJSON(o[k]);pairs.push(name+':'+val);}&lt;br /&gt;
return'{'+pairs.join(',')+'}';}};$.evalJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.parse?JSON.parse:function(src){return eval('('+src+')');};$.secureEvalJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.parse?JSON.parse:function(src){var filtered=src.replace(/\\[&amp;quot;\\\/bfnrtu]/g,'@').replace(/&amp;quot;[^&amp;quot;\\\n\r]*&amp;quot;|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,'');if(/^[\],:{}\s]*$/.test(filtered)){return eval('('+src+')');}else{throw new SyntaxError('Error parsing JSON, source is not valid.');}};$.quoteString=function(string){if(string.match(escapeable)){return'&amp;quot;'+string.replace(escapeable,function(a){var c=meta[a];if(typeof c==='string'){return c;}&lt;br /&gt;
c=a.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16);})+'&amp;quot;';}&lt;br /&gt;
return'&amp;quot;'+string+'&amp;quot;';};})(jQuery);&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/&lt;br /&gt;
 *&lt;br /&gt;
 * Uses the built in easing capabilities added In jQuery 1.1&lt;br /&gt;
 * to offer multiple easing options&lt;br /&gt;
 *&lt;br /&gt;
 * TERMS OF USE - jQuery Easing&lt;br /&gt;
 * &lt;br /&gt;
 * Open source under the BSD License. &lt;br /&gt;
 * &lt;br /&gt;
 * Copyright Â© 2008 George McGinley Smith&lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without modification, &lt;br /&gt;
 * are permitted provided that the following conditions are met:&lt;br /&gt;
 * &lt;br /&gt;
 * Redistributions of source code must retain the above copyright notice, this list of &lt;br /&gt;
 * conditions and the following disclaimer.&lt;br /&gt;
 * Redistributions in binary form must reproduce the above copyright notice, this list &lt;br /&gt;
 * of conditions and the following disclaimer in the documentation and/or other materials &lt;br /&gt;
 * provided with the distribution.&lt;br /&gt;
 * &lt;br /&gt;
 * Neither the name of the author nor the names of contributors may be used to endorse &lt;br /&gt;
 * or promote products derived from this software without specific prior written permission.&lt;br /&gt;
 * &lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY &lt;br /&gt;
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF&lt;br /&gt;
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE&lt;br /&gt;
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE&lt;br /&gt;
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED &lt;br /&gt;
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED &lt;br /&gt;
 * OF THE POSSIBILITY OF SUCH DAMAGE. &lt;br /&gt;
 *&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
// t: current time, b: begInnIng value, c: change In value, d: duration&lt;br /&gt;
jQuery.easing['jswing'] = jQuery.easing['swing'];&lt;br /&gt;
&lt;br /&gt;
jQuery.extend( jQuery.easing,&lt;br /&gt;
{&lt;br /&gt;
	def: 'easeOutQuad',&lt;br /&gt;
	swing: function (x, t, b, c, d) {&lt;br /&gt;
		//alert(jQuery.easing.default);&lt;br /&gt;
		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuad: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuad: function (x, t, b, c, d) {&lt;br /&gt;
		return -c *(t/=d)*(t-2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuad: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t + b;&lt;br /&gt;
		return -c/2 * ((--t)*(t-2) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInCubic: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutCubic: function (x, t, b, c, d) {&lt;br /&gt;
		return c*((t=t/d-1)*t*t + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutCubic: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t + b;&lt;br /&gt;
		return c/2*((t-=2)*t*t + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuart: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuart: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * ((t=t/d-1)*t*t*t - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuart: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t*t + b;&lt;br /&gt;
		return -c/2 * ((t-=2)*t*t*t - 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuint: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuint: function (x, t, b, c, d) {&lt;br /&gt;
		return c*((t=t/d-1)*t*t*t*t + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuint: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t*t*t + b;&lt;br /&gt;
		return c/2*((t-=2)*t*t*t*t + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInSine: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutSine: function (x, t, b, c, d) {&lt;br /&gt;
		return c * Math.sin(t/d * (Math.PI/2)) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutSine: function (x, t, b, c, d) {&lt;br /&gt;
		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInExpo: function (x, t, b, c, d) {&lt;br /&gt;
		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutExpo: function (x, t, b, c, d) {&lt;br /&gt;
		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutExpo: function (x, t, b, c, d) {&lt;br /&gt;
		if (t==0) return b;&lt;br /&gt;
		if (t==d) return b+c;&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;&lt;br /&gt;
		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInCirc: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutCirc: function (x, t, b, c, d) {&lt;br /&gt;
		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutCirc: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;&lt;br /&gt;
		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		if (t &amp;lt; 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;&lt;br /&gt;
		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158;&lt;br /&gt;
		return c*(t/=d)*t*((s+1)*t - s) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158;&lt;br /&gt;
		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158; &lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;&lt;br /&gt;
		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInBounce: function (x, t, b, c, d) {&lt;br /&gt;
		return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutBounce: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d) &amp;lt; (1/2.75)) {&lt;br /&gt;
			return c*(7.5625*t*t) + b;&lt;br /&gt;
		} else if (t &amp;lt; (2/2.75)) {&lt;br /&gt;
			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;&lt;br /&gt;
		} else if (t &amp;lt; (2.5/2.75)) {&lt;br /&gt;
			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;&lt;br /&gt;
		} else {&lt;br /&gt;
			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutBounce: function (x, t, b, c, d) {&lt;br /&gt;
		if (t &amp;lt; d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;&lt;br /&gt;
		return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *&lt;br /&gt;
 * TERMS OF USE - EASING EQUATIONS&lt;br /&gt;
 * &lt;br /&gt;
 * Open source under the BSD License. &lt;br /&gt;
 * &lt;br /&gt;
 * Copyright Â© 2001 Robert Penner&lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without modification, &lt;br /&gt;
 * are permitted provided that the following conditions are met:&lt;br /&gt;
 * &lt;br /&gt;
 * Redistributions of source code must retain the above copyright notice, this list of &lt;br /&gt;
 * conditions and the following disclaimer.&lt;br /&gt;
 * Redistributions in binary form must reproduce the above copyright notice, this list &lt;br /&gt;
 * of conditions and the following disclaimer in the documentation and/or other materials &lt;br /&gt;
 * provided with the distribution.&lt;br /&gt;
 * &lt;br /&gt;
 * Neither the name of the author nor the names of contributors may be used to endorse &lt;br /&gt;
 * or promote products derived from this software without specific prior written permission.&lt;br /&gt;
 * &lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY &lt;br /&gt;
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF&lt;br /&gt;
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE&lt;br /&gt;
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE&lt;br /&gt;
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED &lt;br /&gt;
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED &lt;br /&gt;
 * OF THE POSSIBILITY OF SUCH DAMAGE. &lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
/**&lt;br /&gt;
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+&lt;br /&gt;
* &amp;lt;http://cherne.net/brian/resources/jquery.hoverIntent.html&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* @param  f  onMouseOver function || An object with configuration options&lt;br /&gt;
* @param  g  onMouseOut function  || Nothing (use configuration options object)&lt;br /&gt;
* @author    Brian Cherne &amp;lt;brian@cherne.net&amp;gt;&lt;br /&gt;
*/&lt;br /&gt;
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))&amp;lt;cfg.sensitivity){$(ob).unbind(&amp;quot;mousemove&amp;quot;,track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type==&amp;quot;mouseover&amp;quot;?e.fromElement:e.toElement)||e.relatedTarget;while(p&amp;amp;&amp;amp;p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type==&amp;quot;mouseover&amp;quot;){pX=ev.pageX;pY=ev.pageY;$(ob).bind(&amp;quot;mousemove&amp;quot;,track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind(&amp;quot;mousemove&amp;quot;,track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);&lt;br /&gt;
/**&lt;br /&gt;
* plugin: jquery.naviDropDown.js&lt;br /&gt;
* author: kt.cheung @ Brandammo&lt;br /&gt;
* website: www.brandammo.co.uk&lt;br /&gt;
* version: 1.0&lt;br /&gt;
* date: 19th feb 2011&lt;br /&gt;
* description: simple jquery navigation drop down menu with easing and hoverIntent&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 2011 KT Cheung&lt;br /&gt;
&lt;br /&gt;
Permission is hereby granted, free of charge, to any person obtaining a copy&lt;br /&gt;
of this software and associated documentation files (the &amp;quot;Software&amp;quot;), to deal&lt;br /&gt;
in the Software without restriction, including without limitation the rights&lt;br /&gt;
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell&lt;br /&gt;
copies of the Software, and to permit persons to whom the Software is&lt;br /&gt;
furnished to do so, subject to the following conditions:&lt;br /&gt;
&lt;br /&gt;
The above copyright notice and this permission notice shall be included in&lt;br /&gt;
all copies or substantial portions of the Software.&lt;br /&gt;
&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SOFTWARE.&lt;br /&gt;
&lt;br /&gt;
**/&lt;br /&gt;
&lt;br /&gt;
(function($){&lt;br /&gt;
&lt;br /&gt;
  $.fn.naviDropDown = function(options) {  &lt;br /&gt;
  &lt;br /&gt;
	//set up default options &lt;br /&gt;
	var defaults = { &lt;br /&gt;
		dropDownClass: 'dropdown', //the class name for your drop down&lt;br /&gt;
		dropDownWidth: 'auto',	//the default width of drop down elements&lt;br /&gt;
		slideDownEasing: 'easeInOutCirc', //easing method for slideDown&lt;br /&gt;
		slideUpEasing: 'easeInOutCirc', //easing method for slideUp&lt;br /&gt;
		slideDownDuration: 500, //easing duration for slideDown&lt;br /&gt;
		slideUpDuration: 500, //easing duration for slideUp&lt;br /&gt;
		orientation: 'horizontal' //orientation - either 'horizontal' or 'vertical'&lt;br /&gt;
	}; &lt;br /&gt;
  	&lt;br /&gt;
	var opts = $.extend({}, defaults, options); 	&lt;br /&gt;
&lt;br /&gt;
    return this.each(function() {  &lt;br /&gt;
	  var $this = $(this);&lt;br /&gt;
	  $this.find('.'+opts.dropDownClass).css('width', opts.dropDownWidth).css('display', 'none');&lt;br /&gt;
	  &lt;br /&gt;
	  var buttonWidth = $this.find('.'+opts.dropDownClass).parent().width() + 'px';&lt;br /&gt;
	  var buttonHeight = $this.find('.'+opts.dropDownClass).parent().height() + 'px';&lt;br /&gt;
	  if(opts.orientation == 'horizontal') {&lt;br /&gt;
		//$this.find('.'+opts.dropDownClass).css('left', '0px').css('top', buttonHeight);&lt;br /&gt;
	  }&lt;br /&gt;
	  if(opts.orientation == 'vertical') {&lt;br /&gt;
		$this.find('.'+opts.dropDownClass).css('left', buttonWidth).css('top', '0px');&lt;br /&gt;
	  }&lt;br /&gt;
	  &lt;br /&gt;
	  $this.find('li').hoverIntent(getDropDown, hideDropDown);&lt;br /&gt;
    });&lt;br /&gt;
	&lt;br /&gt;
	function getDropDown(){&lt;br /&gt;
		activeNav = $(this);&lt;br /&gt;
		showDropDown();&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	function showDropDown(){&lt;br /&gt;
		activeNav.find('.'+opts.dropDownClass).slideDown({duration:opts.slideDownDuration, easing:opts.slideDownEasing});&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	function hideDropDown(){&lt;br /&gt;
		activeNav.find('.'+opts.dropDownClass).slideUp({duration:opts.slideUpDuration, easing:opts.slideUpEasing});//hides the current dropdown&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
  };&lt;br /&gt;
})(jQuery);&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/MediaWiki:Common.js</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/MediaWiki:Common.js"/>
				<updated>2013-02-28T20:49:32Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
$(function(){&lt;br /&gt;
  var engine = $('&amp;lt;div class=&amp;quot;portal&amp;quot;/&amp;gt;')&lt;br /&gt;
    .append($('&amp;lt;h5&amp;gt;Engine&amp;lt;/h5&amp;gt;'))&lt;br /&gt;
    .append($('&amp;lt;div class=body/&amp;gt;')&lt;br /&gt;
      .append($('&amp;lt;ul/&amp;gt;')&lt;br /&gt;
        .append($('&amp;lt;li/&amp;gt;')&lt;br /&gt;
          .append($('&amp;lt;select id=engine/&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=mysql&amp;gt;MySQL&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=oracle&amp;gt;Oracle&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=sqlserver&amp;gt;SQL Server&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=postgres&amp;gt;PostgreSQL&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option id=ingres&amp;gt;Ingres&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option id=db2&amp;gt;DB2&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .change(function(){setDefaultText();})&lt;br /&gt;
          )&lt;br /&gt;
        )&lt;br /&gt;
      )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
  $('#right-navigation').after($('&amp;lt;ul/&amp;gt;',{'id':'zoolinks'})&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://csszoo.net',text:'CSS',id:'css_link', title:'Learn CSS! visit CSSzoo'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://progzoo.net',text:'Java',id:'java_link', title:'Hungry for Java tutorials? ProgZoo is for you'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://linuxzoo.net',text:'Linux',id:'linux_link', title:'Linux Zoo tutoials!'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;',{'id':'book'}).append($('&amp;lt;a/&amp;gt;',{href:'http://www.oreilly.com/catalog/sqlhks/',id:'sql_hacks',title:'Try/buy SQL Hacks book'})))&lt;br /&gt;
  );&lt;br /&gt;
&lt;br /&gt;
  $('#p-Reference').before(engine);&lt;br /&gt;
  &lt;br /&gt;
  //Adverts&lt;br /&gt;
  $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/sqlhacks.png',alt:'SQL Hacks book ad'})&lt;br /&gt;
    .appendTo($('#sql_hacks'));&lt;br /&gt;
  $('#p-googleadsense').prependTo('#footer');&lt;br /&gt;
&lt;br /&gt;
  if (wgCanonicalNamespace=='MediaWiki' || wgCanonicalNamespace=='Special')&lt;br /&gt;
    $('#p-googleadsense').hide();&lt;br /&gt;
&lt;br /&gt;
	// Reset localStorage&lt;br /&gt;
	var rst = $('.lsclear');&lt;br /&gt;
	rst.click(function(e){&lt;br /&gt;
	   if (localStorage) &lt;br /&gt;
			localStorage.clear();&lt;br /&gt;
	   location.reload();&lt;br /&gt;
	});&lt;br /&gt;
			   &lt;br /&gt;
	var numberOfQuestions = 0;&lt;br /&gt;
	var numberOfAnswered = 0;&lt;br /&gt;
	var numberOfCorrect = 0;&lt;br /&gt;
	var startAt = Math.max(1,$('#startAt').text()*1);&lt;br /&gt;
	var qu = $('.qu,.ht,.err');&lt;br /&gt;
	var curEng;&lt;br /&gt;
	if (localStorage &amp;amp;&amp;amp; localStorage.getItem(&amp;quot;currentEngine&amp;quot;))&lt;br /&gt;
	{&lt;br /&gt;
		curEng = localStorage.getItem(&amp;quot;currentEngine&amp;quot;);&lt;br /&gt;
		$('#engine').val(curEng);&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
		curEng = $('#engine').val();&lt;br /&gt;
		&lt;br /&gt;
	for(var i=0;i&amp;lt;qu.length;i++){&lt;br /&gt;
		var id = i+1;&lt;br /&gt;
		var q = qu[i];&lt;br /&gt;
		var lsName = wgPageName + '_' + 'frm__' + id;&lt;br /&gt;
		&lt;br /&gt;
		var def = $('.def',q);&lt;br /&gt;
		if (def.length&amp;gt;1){&lt;br /&gt;
			var pick = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
			for(var j=0;j&amp;lt;def.length;j++)&lt;br /&gt;
			  if ($(def[j]).hasClass('e-'+curEng))&lt;br /&gt;
				pick = $(def[j]);&lt;br /&gt;
			def = pick;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		//Hints&lt;br /&gt;
		var hint = $('.hint', q);&lt;br /&gt;
		hint.hide();&lt;br /&gt;
		hint.each(function(){&lt;br /&gt;
			var htitle = $(this).attr(&amp;quot;title&amp;quot;);&lt;br /&gt;
			var hnt = $('&amp;lt;div/&amp;gt;', {'class':'hnt', 'text':htitle});&lt;br /&gt;
			var hidden = $(this);&lt;br /&gt;
			hnt.click(function(e){&lt;br /&gt;
			   e.preventDefault();&lt;br /&gt;
			   hidden.toggle(&amp;quot;slow&amp;quot;);});&lt;br /&gt;
			$(this).before(hnt);&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		var txt = def.text();&lt;br /&gt;
		// replace the default text with user's last query if available in LS&lt;br /&gt;
		if (localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng))&lt;br /&gt;
		{&lt;br /&gt;
			var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
			txt = lsArray[lsArray.length-1];&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var ans = $('.ans',q).text();&lt;br /&gt;
		var tdy = $('.tidy',q).text();&lt;br /&gt;
		var frm = $('&amp;lt;form/&amp;gt;',{name:'frm__'+id,id:'frm__'+id})&lt;br /&gt;
			.append($('&amp;lt;div/&amp;gt;',{'class':'quf'})&lt;br /&gt;
			   .append($('&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;',&lt;br /&gt;
				 {value:$.trim(txt),&lt;br /&gt;
				  rows:2+Math.max(Math.max(4 ,txt.split(/[\n\r]+/).length),ans.split(/[\n\r]+/).length),&lt;br /&gt;
				  cols:2+Math.max(Math.max(45,maxlen(txt.split(/[\n\r]+/))),maxlen(ans.split(/[\n\r]+/))),&lt;br /&gt;
				  'class':'sql',&lt;br /&gt;
				  id:'txtar_'+id}))&lt;br /&gt;
			   .append($('&amp;lt;br/&amp;gt;'))&lt;br /&gt;
			   .append($('&amp;lt;button/&amp;gt;',{text:'Submit SQL','class':'submitSQL',click:goBaby}))&lt;br /&gt;
			   .append($('&amp;lt;div/&amp;gt;',{text:'Restore default','class':'reset',click:restoreDefault}))&lt;br /&gt;
			);&lt;br /&gt;
		&lt;br /&gt;
		def.after(frm);&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		// Display completion information&lt;br /&gt;
		if (localStorage)&lt;br /&gt;
		{&lt;br /&gt;
			if (!localStorage.getItem(lsName))&lt;br /&gt;
				localStorage.setItem(lsName, &amp;quot;unanswered&amp;quot;);&lt;br /&gt;
			if (localStorage.getItem(lsName) == &amp;quot;answered&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have answered this question &amp;lt;u&amp;gt;incorrectly&amp;lt;/u&amp;gt; before.&amp;quot;);&lt;br /&gt;
				numberOfAnswered++;&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qincorrect', 'title':'You have answered this question incorrectly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
			else if (localStorage.getItem(lsName) == &amp;quot;correct&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have answered this question &amp;lt;u&amp;gt;correctly&amp;lt;/u&amp;gt; before.&amp;quot;);&lt;br /&gt;
				numberOfCorrect++;&lt;br /&gt;
				numberOfAnswered++;&lt;br /&gt;
				&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qcorrect', 'title':'You have answered this question correctly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have not answered this question yet.&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var lhs = $('&amp;lt;div/&amp;gt;',{css:{width:'60ex',marginRight:'2ex','float':'left'}});&lt;br /&gt;
		lhs.append($('&amp;lt;span/&amp;gt;',{text:(startAt+i)+'.','class':'id'}));&lt;br /&gt;
		lhs.append($(q).children());&lt;br /&gt;
		$(q).append(lhs);&lt;br /&gt;
                // This line caused problems when styling - I removed the css margin-left from it - M&lt;br /&gt;
		//$(q).append($('&amp;lt;div/&amp;gt;',{text:'result','class':'res',css:{'margin-left':'1ex'}}));&lt;br /&gt;
                $(q).append($('&amp;lt;div/&amp;gt;',{text:'result','class':'res'}));&lt;br /&gt;
		&lt;br /&gt;
		//Show additional info if available for active angine&lt;br /&gt;
		var ecomm = $('.ecomm,.link',q);&lt;br /&gt;
		var ecomm1 = ecomm.filter(false);&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var ecomm = $('.link',q);&lt;br /&gt;
		var ecomm1 = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		numberOfQuestions = id;&lt;br /&gt;
	}&lt;br /&gt;
	if (numberOfQuestions == 0)&lt;br /&gt;
		numberOfQuestions = 1;&lt;br /&gt;
	&lt;br /&gt;
	// Display completion info&lt;br /&gt;
	$(&amp;quot;.summary&amp;quot;).html(&amp;quot;You have answered &amp;quot;+numberOfAnswered+&amp;quot; out of &amp;quot;+numberOfQuestions+&amp;quot; questions on this page.&amp;lt;br/&amp;gt;&amp;quot;+numberOfCorrect+&amp;quot; of your answers were correct.&amp;quot;);&lt;br /&gt;
	// Save completion info&lt;br /&gt;
	if (localStorage)&lt;br /&gt;
	{&lt;br /&gt;
		localStorage.setItem(wgPageName+'_numberOfQuestions', numberOfQuestions);&lt;br /&gt;
		localStorage.setItem(wgPageName+'_numberOfCorrect', numberOfCorrect);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	//Progress bar&lt;br /&gt;
	var maxWidth = $('.progressbar').css('width');&lt;br /&gt;
	var barModification = parseFloat(maxWidth) * numberOfCorrect / numberOfQuestions;&lt;br /&gt;
	$('.progressbar').css('width', barModification);&lt;br /&gt;
	&lt;br /&gt;
  //Put in the answers if url includes answer=1&lt;br /&gt;
  if (window.location.search.contains('answer')){&lt;br /&gt;
    $('&amp;lt;def/&amp;gt;',{text:&amp;quot;Cheat mode&amp;quot;,css:{position:'fixed',left:'2ex',&lt;br /&gt;
                   top:'2ex',width:'14ex',backgroundColor:'yellow',padding:'2ex'}})&lt;br /&gt;
      .appendTo($('body'));&lt;br /&gt;
    $('.quf textarea').each(function(){&lt;br /&gt;
       $(this).val($(this).closest('form').next('.ans').text());&lt;br /&gt;
    })&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
})&lt;br /&gt;
&lt;br /&gt;
function setDefaultText() {&lt;br /&gt;
	var qu = $('.ht,.err');&lt;br /&gt;
	var curEng = $('#engine').val();&lt;br /&gt;
	if (localStorage)&lt;br /&gt;
		localStorage.setItem(&amp;quot;currentEngine&amp;quot;, curEng);&lt;br /&gt;
	for(var i=0;i&amp;lt;qu.length;i++){&lt;br /&gt;
		var id = i+1;&lt;br /&gt;
		var q = qu[i];&lt;br /&gt;
		&lt;br /&gt;
		var def = $('.def',q);&lt;br /&gt;
		if (def.length&amp;gt;1){&lt;br /&gt;
			var pick = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
			for(var j=0;j&amp;lt;def.length;j++)&lt;br /&gt;
			  if ($(def[j]).hasClass('e-'+curEng))&lt;br /&gt;
				pick = $(def[j]);&lt;br /&gt;
			def = pick;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var lsName = wgPageName + '_' + 'frm__' + id;&lt;br /&gt;
		var txt = def.text();&lt;br /&gt;
		// replace the default text with user's last query if available in LS&lt;br /&gt;
		if (localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng))&lt;br /&gt;
		{&lt;br /&gt;
			var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
			txt = lsArray[lsArray.length-1];&lt;br /&gt;
		}&lt;br /&gt;
		$('textarea#txtar_'+id).val(txt);&lt;br /&gt;
		&lt;br /&gt;
		//Show additional info if available for chosen engine&lt;br /&gt;
		var ecomm = $('.ecomm',q);&lt;br /&gt;
		var ecomm1 = ecomm.filter(false);&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		//Show headers for chosen engine&lt;br /&gt;
		var ecomm = $('.link',q);&lt;br /&gt;
		var ecomm1 = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function restoreDefault() {&lt;br /&gt;
	var qu = $(this).parents('.qu, .ht, .err');&lt;br /&gt;
	var def = $('.def',qu);&lt;br /&gt;
	var txt = def.text();&lt;br /&gt;
	qu.find('textarea.sql').val(txt);&lt;br /&gt;
}	&lt;br /&gt;
&lt;br /&gt;
function updateProgressbar() {&lt;br /&gt;
	var numberOfQuestions = parseInt(localStorage.getItem(wgPageName+'_numberOfQuestions'));&lt;br /&gt;
	// A little workaround - max progressbar width is 96% of its background's width&lt;br /&gt;
	var maxWidth = parseFloat($('.progressbarbg').css('width')) * 0.96;&lt;br /&gt;
	var barModification = parseFloat($('.progressbar').css('width')) + maxWidth * 1 / numberOfQuestions;&lt;br /&gt;
	$('.progressbar').css('width', barModification);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function goBaby(){&lt;br /&gt;
  var qu = $(this).parents('.qu, .ht, .err');&lt;br /&gt;
  var lsUse = ((qu[0].getAttribute('class') != 'ht') &amp;amp;&amp;amp; ($(qu[0]).find('.ans').length &amp;gt; 0));&lt;br /&gt;
  var lsName = wgPageName + '_' + $(this).parents('form').attr('id');&lt;br /&gt;
  if (lsUse &amp;amp;&amp;amp; localStorage &amp;amp;&amp;amp; (localStorage.getItem(lsName) != &amp;quot;correct&amp;quot;))&lt;br /&gt;
	localStorage.setItem(lsName, &amp;quot;answered&amp;quot;);&lt;br /&gt;
  var sql = qu.find('textarea.sql').val();&lt;br /&gt;
  var parlst = $('.params').text().split(';');&lt;br /&gt;
  var params = {};&lt;br /&gt;
  for(var i=0;i&amp;lt;parlst.length;i++){&lt;br /&gt;
    var pair = parlst[i].split(':');&lt;br /&gt;
    params[pair[0]]=pair[1];&lt;br /&gt;
  }&lt;br /&gt;
  //Store the sql querry in LS&lt;br /&gt;
  if (localStorage)&lt;br /&gt;
  {&lt;br /&gt;
	var curEng = $('#engine').val();&lt;br /&gt;
	var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
	if (!lsArray)&lt;br /&gt;
		lsArray = new Array();&lt;br /&gt;
	lsArray.push(sql);&lt;br /&gt;
	localStorage.setItem(lsName+&amp;quot;_arr_&amp;quot;+curEng, JSON.stringify(lsArray));&lt;br /&gt;
  }&lt;br /&gt;
  qu.find('.res').addClass('waiting');&lt;br /&gt;
  $.ajax({url:'/sqlgo.pl',cache:false,'type':'post',dataType:'json',&lt;br /&gt;
          data:{sql:sql.replace(/\xA0/g,' '),  //Mediawiki inserts &amp;amp;nbsp; before a %. We need to change it back to a space.CM 13/6/12&lt;br /&gt;
                format:'json',&lt;br /&gt;
                question:$('.id',qu).text(),&lt;br /&gt;
                wgUserName:wgUserName,&lt;br /&gt;
                cookie:$.cookie('oliver'),&lt;br /&gt;
                page:wgPageName,&lt;br /&gt;
                server:$('#engine').val(),&lt;br /&gt;
                setup:$('.setup',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                tidy:$('.tidy',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                answer:$('.ans',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                schema:params['schema']&lt;br /&gt;
               },&lt;br /&gt;
          success:function(d){&lt;br /&gt;
            var res = qu.find('.res');&lt;br /&gt;
            res.empty().removeClass('waiting')&lt;br /&gt;
            if (d.error){&lt;br /&gt;
              res.append($('&amp;lt;h1/&amp;gt;',{text:'SQLZoo System Error:'}))&lt;br /&gt;
              res.append($('&amp;lt;div/&amp;gt;',{text:d.error}))&lt;br /&gt;
              return;&lt;br /&gt;
            }&lt;br /&gt;
			var headerPresent = false;&lt;br /&gt;
            for (var i = 0; i &amp;lt; d.sql.length; i++)&lt;br /&gt;
				{&lt;br /&gt;
				if (!d || !d.sql || !d.sql[i]){&lt;br /&gt;
				  res.append($('&amp;lt;h1/&amp;gt;',{text:'SQLZoo System Error:'}))&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:&amp;quot;Problem with d or d.sql or d.sql[0]&amp;quot;}))&lt;br /&gt;
				  return;&lt;br /&gt;
				}&lt;br /&gt;
				if (d.sql[i].error){&lt;br /&gt;
				  res.append($('&amp;lt;h1/&amp;gt;',{text:'Error:'}))&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:d.sql[i].error}))&lt;br /&gt;
				  return;&lt;br /&gt;
				}&lt;br /&gt;
				var legend = &amp;quot;Result:&amp;quot;;&lt;br /&gt;
				if (d.score &amp;amp;&amp;amp; d.answer &amp;amp;&amp;amp; d.answer.length==1 &amp;amp;&amp;amp; d.answer[0].fields){&lt;br /&gt;
				  if (d.score == 100){&lt;br /&gt;
					legend = 'Correct answer';&lt;br /&gt;
					if (lsUse &amp;amp;&amp;amp; localStorage)&lt;br /&gt;
						localStorage.setItem(lsName, &amp;quot;correct&amp;quot;);&lt;br /&gt;
					var def = $('.def',qu);&lt;br /&gt;
					if (localStorage.getItem(lsName) == &amp;quot;correct&amp;quot;)&lt;br /&gt;
					{&lt;br /&gt;
						if ($(&amp;quot;.qcorrect&amp;quot;, qu).length == 0)&lt;br /&gt;
						{&lt;br /&gt;
							var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qcorrect', 'title':'You have answered this question correctly before.'});&lt;br /&gt;
							def.before(qcorr);&lt;br /&gt;
							updateProgressbar();&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
			      }&lt;br /&gt;
				  else if (d.answer[0].fields.length&amp;gt;d.sql[0].fields.length)&lt;br /&gt;
					legend = 'Too few columns';&lt;br /&gt;
				  else if (d.answer[0].fields.length&amp;lt;d.sql[0].fields.length)&lt;br /&gt;
					legend = 'Too many columns';&lt;br /&gt;
				  else if (d.answer[0].rows.length&amp;gt;d.sql[0].rows.length)&lt;br /&gt;
					legend = 'Too few rows';&lt;br /&gt;
				  else if (d.answer[0].rows.length&amp;lt;d.sql[0].rows.length)&lt;br /&gt;
					legend = 'Too many rows';&lt;br /&gt;
&lt;br /&gt;
				}&lt;br /&gt;
				if (!headerPresent)&lt;br /&gt;
				{&lt;br /&gt;
					res.append($('&amp;lt;h1/&amp;gt;',{text:legend}));&lt;br /&gt;
					headerPresent = true;&lt;br /&gt;
				}&lt;br /&gt;
				var t = mkTable(d.sql[i]);&lt;br /&gt;
				t.addClass('sqlmine')&lt;br /&gt;
				 .appendTo(res);&lt;br /&gt;
				if (d.answer &amp;amp;&amp;amp; d.answer.length&amp;gt;0 &amp;amp;&amp;amp; d.score&amp;lt;100){&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:'Show correct result','class':'showtxt'})&lt;br /&gt;
					.click(function(){&lt;br /&gt;
					  $(this).next().show('slow');&lt;br /&gt;
					})&lt;br /&gt;
				  );&lt;br /&gt;
				  var a = mkTable(d.answer[0]);&lt;br /&gt;
				  a.addClass('sqlans');&lt;br /&gt;
				  a.appendTo(res);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
          },&lt;br /&gt;
          error:function(jqXHR,textStatus,errorThrown){&lt;br /&gt;
            qu.find('.res').empty().removeClass('waiting')&lt;br /&gt;
              .append($('&amp;lt;h1/&amp;gt;',{'class':'syserr',text:'SQLZOO system error:'}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;',{text:textStatus}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;',{text:errorThrown}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;').html(jqXHR.responseText))&lt;br /&gt;
          }&lt;br /&gt;
         });&lt;br /&gt;
		 &lt;br /&gt;
		// Modify completion information&lt;br /&gt;
		var def = $('.def',qu);&lt;br /&gt;
		if (localStorage)&lt;br /&gt;
		{&lt;br /&gt;
			if (localStorage.getItem(lsName) == &amp;quot;answered&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qincorrect', 'title':'You have answered this question incorrectly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
function maxlen(l){&lt;br /&gt;
  var r = 0;&lt;br /&gt;
  for(var i=0;i&amp;lt;l.length;i++)&lt;br /&gt;
    r = Math.max(r,l[i].length);&lt;br /&gt;
  return r;&lt;br /&gt;
}&lt;br /&gt;
function truncate(s){&lt;br /&gt;
  if (s.length&amp;lt;15) return s;&lt;br /&gt;
  return s.substring(0,13)+&amp;quot;..&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
function mkTable(a){&lt;br /&gt;
  var t = $('&amp;lt;table/&amp;gt;');&lt;br /&gt;
  t.append($('&amp;lt;tr/&amp;gt;'));&lt;br /&gt;
  var isnum = [];&lt;br /&gt;
  if (!a.fields || !a.rows) return t;&lt;br /&gt;
  for(var i=0;i&amp;lt;a.fields.length;i++){&lt;br /&gt;
    $('tr',t).append($('&amp;lt;th/&amp;gt;',{text:truncate(a.fields[i])}));&lt;br /&gt;
    var allNum = 1;&lt;br /&gt;
    for(var j=0;j&amp;lt;a.rows.length;j++){&lt;br /&gt;
      if (a.rows[j] &amp;amp;&amp;amp; a.rows[j][i] &amp;amp;&amp;amp; !a.rows[j][i].match(/^[0-9.]*$/))&lt;br /&gt;
        allNum = 0;&lt;br /&gt;
    }&lt;br /&gt;
    isnum.push(allNum);&lt;br /&gt;
  }&lt;br /&gt;
  for(var j=0;j&amp;lt;a.rows.length;j++){&lt;br /&gt;
    var tr = $('&amp;lt;tr/&amp;gt;').appendTo(t);&lt;br /&gt;
    for(var k=0;k&amp;lt;a.rows[j].length;k++){&lt;br /&gt;
      var td = $('&amp;lt;td/&amp;gt;',{text:a.rows[j][k]});&lt;br /&gt;
      if (isnum[k]) td.addClass('r');&lt;br /&gt;
      td.appendTo(tr);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return t;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ======================= Designer js starts here */&lt;br /&gt;
&lt;br /&gt;
// the following scripts should not be present here - they should be linked as external files !!!&lt;br /&gt;
&lt;br /&gt;
// this script helps to manage browser inconsistency across different os&lt;br /&gt;
function css_browser_selector(u){var ua=u.toLowerCase(),is=function(t){return ua.indexOf(t)&amp;gt;-1},g='gecko',w='webkit',s='safari',o='opera',m='mobile',h=document.documentElement,b=[(!(/opera|webtv/i.test(ua))&amp;amp;&amp;amp;/msie\s(\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?g+' ff2':is('firefox/3.5')?g+' ff3 ff3_5':is('firefox/3.6')?g+' ff3 ff3_6':is('firefox/3')?g+' ff3':is('gecko/')?g:is('opera')?o+(/version\/(\d+)/.test(ua)?' '+o+RegExp.$1:(/opera(\s|\/)(\d+)/.test(ua)?' '+o+RegExp.$2:'')):is('konqueror')?'konqueror':is('blackberry')?m+' blackberry':is('android')?m+' android':is('chrome')?w+' chrome':is('iron')?w+' iron':is('applewebkit/')?w+' '+s+(/version\/(\d+)/.test(ua)?' '+s+RegExp.$1:''):is('mozilla/')?g:'',is('j2me')?m+' j2me':is('iphone')?m+' iphone':is('ipod')?m+' ipod':is('ipad')?m+' ipad':is('mac')?'mac':is('darwin')?'mac':is('webtv')?'webtv':is('win')?'win'+(is('windows nt 6.0')?' vista':''):is('freebsd')?'freebsd':(is('x11')||is('linux'))?'linux':'','js']; c = b.join(' '); h.className += ' '+c; return c;}; css_browser_selector(navigator.userAgent);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// display site logo&lt;br /&gt;
$(function(){&lt;br /&gt;
  $('&amp;lt;a/&amp;gt;',{href:'http://sqlzoo.net/w/index.php',id:'mp-logo',title:'Zoo You!'})&lt;br /&gt;
    .append($('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/sql_zoo_logo05.png',alt:'SQLzoo logo'}))&lt;br /&gt;
    .appendTo($('#mw-head-base'))&lt;br /&gt;
});&lt;br /&gt;
 &lt;br /&gt;
// display site description&lt;br /&gt;
$(document).ready(function(){&lt;br /&gt;
  $(function(){&lt;br /&gt;
    $(&amp;quot;#mp-logo&amp;quot;).append(&amp;quot; &amp;lt;h1 id='logo-desc'&amp;gt;Interactive &amp;lt;span&amp;gt;SQL &amp;lt;span&amp;gt;Tutorial&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h1&amp;gt;&amp;quot;);&lt;br /&gt;
  });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// display language selector&lt;br /&gt;
$(function(){&lt;br /&gt;
     $('&amp;lt;div/&amp;gt;',{id:'language'}).appendTo($('#mw-head-base'))&lt;br /&gt;
 &lt;br /&gt;
     var lang = $('&amp;lt;ul/&amp;gt;',{id:'lang','class':'side_nav_sub'});&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;en&amp;quot; href=&amp;quot;/wiki/Main_Page&amp;quot;&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;de&amp;quot; href=&amp;quot;/wiki/Main_Page/de&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;fr&amp;quot; href=&amp;quot;/wiki/Main_Page/fr&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    $('#language').append(lang);&lt;br /&gt;
&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/en2.png',alt:'SQL zoo in English'})&lt;br /&gt;
       .appendTo($('#en'));&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/de2.png',alt:'SQL zoo in German'})&lt;br /&gt;
       .appendTo($('#de'));&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/fr2.png',alt:'SQL zoo in French'})&lt;br /&gt;
       .appendTo($('#fr'));&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// assemble and display main nav menu&lt;br /&gt;
$(function(){&lt;br /&gt;
    var ml1 =&lt;br /&gt;
    [['1 SELECT basics',  'SELECT_basics','Some simple queries to get you started']&lt;br /&gt;
    ,['2 SELECT from WORLD','SELECT_from_WORLD_Tutorial','Finding facts about countries']&lt;br /&gt;
    ,['3 SELECT from Nobel','SELECT_from_Nobel_Tutorial','More practice with SELECT statements']&lt;br /&gt;
    ,['4 SELECT within SELECT','SELECT_within_SELECT_Tutorial','Using the results of one query inside another']&lt;br /&gt;
    ,['5 SUM and COUNT','SUM_and_COUNT','Apply aggregate functions']&lt;br /&gt;
    ,['6 JOIN','The_JOIN_operation','Gathering data from more than one table']&lt;br /&gt;
    ,['7 More JOIN','More_JOIN_operations','Getting data from the movie database']&lt;br /&gt;
    ,['8 Using NULL','Using_Null','Dealing with missing data']&lt;br /&gt;
    ,['9 Self JOIN','Self_join','Dealing with missing data']&lt;br /&gt;
	,['10 SQL Quizzes','Tutorial_Quizzes','Test your knowledge with multiple choice quizzes']&lt;br /&gt;
    ];&lt;br /&gt;
    var mm1 = $('&amp;lt;ul/&amp;gt;',{id:'mm1','class':'dropdown mm_sub'});&lt;br /&gt;
    for(var i=0;i&amp;lt;ml1.length;i++){&lt;br /&gt;
	  var maxWidth = 50; // adjust the value so that it fits menu well&lt;br /&gt;
	  var NoQ = localStorage.getItem(ml1[i][1] + '_numberOfQuestions');&lt;br /&gt;
	  if (!NoQ) NoQ = 1;&lt;br /&gt;
	  var NoC = localStorage.getItem(ml1[i][1] + '_numberOfCorrect');&lt;br /&gt;
	  if (!NoC) NoC = 0;	  &lt;br /&gt;
	  var pbWidth = parseFloat(maxWidth) * NoC / NoQ;&lt;br /&gt;
	  var mprogbar = $('&amp;lt;div/&amp;gt;',{'class':'progressbarbg1'}).append($('&amp;lt;div/&amp;gt;',{'class':'progressbar1', 'id':ml1[i][1], css:{'width':pbWidth}}));&lt;br /&gt;
          mm1.append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'/wiki/'+ml1[i][1],text:ml1[i][0]})).append(ml1[i][2]).append(mprogbar));&lt;br /&gt;
    }&lt;br /&gt;
    var mm2 = $('&amp;lt;ul/&amp;gt;',{id:'mm2','class':'dropdown mm_sub'});&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/AdventureWorks&amp;quot;&amp;gt;1 AdventureWorks&amp;lt;/a&amp;gt; Flogging sports gear. Assessment for CO22008 2007/8&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Neeps&amp;quot;&amp;gt;2 Neeps&amp;lt;/a&amp;gt; A timetable database&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Musicians&amp;quot;&amp;gt;3 Musicians&amp;lt;/a&amp;gt; Concerts and compositions&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Southwind&amp;quot;&amp;gt;4 Southwind&amp;lt;/a&amp;gt; Buying and selling&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Dressmaker&amp;quot;&amp;gt;5 Dressmaker&amp;lt;/a&amp;gt; Constructing clothing&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Congestion Charging&amp;quot;&amp;gt;6 Congestion Charging&amp;lt;/a&amp;gt; Monitoring traffic (old questions)&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Weather data for Southhampton&amp;quot;&amp;gt;7 Weather data for Southhampton&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Album Tracks Style&amp;quot;&amp;gt;8 Album Tracks Style&amp;lt;/a&amp;gt; Music data&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    var mm3 = $('&amp;lt;ul/&amp;gt;',{id:'mm3','class':'dropdown mm_sub'});&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/SELECT_Reference&amp;quot;&amp;gt;SELECT&amp;lt;/a&amp;gt;How to read the data from a database.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/CREATE_and_DROP_Reference&amp;quot;&amp;gt;CREATE and DROP&amp;lt;/a&amp;gt;How to create tables, indexes, views and other things. How to get rid of them.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/INSERT_and_DELETE_Reference&amp;quot;&amp;gt;INSERT and DELETE&amp;lt;/a&amp;gt;How to put records into a table, change them and how to take them out again.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/DATE_and_TIME_Reference&amp;quot;&amp;gt;DATE and TIME&amp;lt;/a&amp;gt;How to work with dates; adding, subtracting and formatting.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Functions_Reference&amp;quot;&amp;gt;Functions&amp;lt;/a&amp;gt;How to use string functions, logical functions and mathematical functions.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Users_Reference&amp;quot;&amp;gt;Users&amp;lt;/a&amp;gt;How to create users, GRANT and DENY access, get at other peoples tables. How to find processes and kill them.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Meta_Data_Reference&amp;quot;&amp;gt;Meta Data&amp;lt;/a&amp;gt;How to find out what tables and columns exist. How to count and limit the rows return.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Hacks_Reference&amp;quot;&amp;gt;SQL Hacks&amp;lt;/a&amp;gt;Useful SQL hacks .&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    var mm = $('&amp;lt;ul/&amp;gt;',{id:'main_menu'}).appendTo('#mw-head-base');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm1&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Tutorials&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm2&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Assessments&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm3&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Reference&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    $('#mm1').append(mm1);&lt;br /&gt;
    $('#mm2').append(mm2);&lt;br /&gt;
    $('#mm3').append(mm3);&lt;br /&gt;
&lt;br /&gt;
    $('#main_menu').wrap('&amp;lt;div id=&amp;quot;navigation_horiz&amp;quot; /&amp;gt;');&lt;br /&gt;
    $('#navigation_horiz').naviDropDown({&lt;br /&gt;
      dropDownWidth: '35em'&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// stick on top elements that need to be visible&lt;br /&gt;
$(function(){&lt;br /&gt;
    $(&amp;quot;#main_menu&amp;quot;).addClass(&amp;quot;stickableMenu&amp;quot;);&lt;br /&gt;
    $(&amp;quot;#p-Reference&amp;quot;).addClass(&amp;quot;stickableRef&amp;quot;);&lt;br /&gt;
    $(&amp;quot;.ref_section&amp;quot;).addClass(&amp;quot;stickableDbRef&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$(document).scroll(function() {&lt;br /&gt;
    var useFixedMenu = $(document).scrollTop() &amp;gt; 175;&lt;br /&gt;
    $('.stickableMenu').toggleClass('fixedMenu', useFixedMenu);&lt;br /&gt;
    &lt;br /&gt;
//    var useFixedRef = $(document).scrollTop() &amp;gt; 275;&lt;br /&gt;
//    $('.stickableRef').toggleClass('fixedRef', useFixedRef);&lt;br /&gt;
&lt;br /&gt;
    $('.stickableDbRef').toggleClass('fixedDbRef', $(document).scrollTop() &amp;gt; 275);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// swap classes on external links to change their side icons&lt;br /&gt;
$(function(){&lt;br /&gt;
 $(&amp;quot;.external&amp;quot;).addClass(&amp;quot;zoo_external&amp;quot;);&lt;br /&gt;
 $(&amp;quot;.external&amp;quot;).removeClass(&amp;quot;external&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
/* === Designer js ends here === */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Insert tables into Quiz distractors&lt;br /&gt;
var qq = $('.question');&lt;br /&gt;
for (var i = 0; i &amp;lt; qq.length; i++)&lt;br /&gt;
{&lt;br /&gt;
	var q = $(qq[i]);&lt;br /&gt;
	var distractors = &amp;quot;ABCDE&amp;quot;;&lt;br /&gt;
	for (var j=0;j&amp;lt;distractors.length;j++){&lt;br /&gt;
		var tans = $('table caption:contains(&amp;quot;Table-'+distractors[j]+'&amp;quot;)', q).parents('table');&lt;br /&gt;
		if (tans.length&amp;gt;0)&lt;br /&gt;
		{&lt;br /&gt;
			var ttd = $('table tr td:contains(&amp;quot;Table-'+distractors[j]+'&amp;quot;)', q);&lt;br /&gt;
			if (ttd.length&amp;gt;0){&lt;br /&gt;
			   ttd.empty();&lt;br /&gt;
			   ttd.append(tans);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$(function(){&lt;br /&gt;
  $('input.check').each(function(i,e){&lt;br /&gt;
    $(this).attr('id','quiz_d_'+i);&lt;br /&gt;
  });&lt;br /&gt;
  $('tr.proposal').each(function(i,e){&lt;br /&gt;
    var tds = $('td',$(this));&lt;br /&gt;
    var html1= $(tds[1]).html();&lt;br /&gt;
    $(tds[1]).html($('&amp;lt;label/&amp;gt;',{html:html1,'for':$('input',$(this)).attr('id') }));&lt;br /&gt;
  })&lt;br /&gt;
})&lt;br /&gt;
//Connor 23/7/12 creates the labels for the multiple choice questions allowing them to be highlighted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Analytics code&lt;br /&gt;
  var _gaq = _gaq || [];&lt;br /&gt;
  _gaq.push(['_setAccount', 'UA-33860668-1']);&lt;br /&gt;
  _gaq.push(['_trackPageview']);&lt;br /&gt;
&lt;br /&gt;
  (function() {&lt;br /&gt;
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;&lt;br /&gt;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';&lt;br /&gt;
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);&lt;br /&gt;
  })();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//JSON&lt;br /&gt;
(function($){var escapeable=/[&amp;quot;\\\x00-\x1f\x7f-\x9f]/g,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','&amp;quot;':'\\&amp;quot;','\\':'\\\\'};$.toJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.stringify?JSON.stringify:function(o){if(o===null){return'null';}&lt;br /&gt;
var type=typeof o;if(type==='undefined'){return undefined;}&lt;br /&gt;
if(type==='number'||type==='boolean'){return''+o;}&lt;br /&gt;
if(type==='string'){return $.quoteString(o);}&lt;br /&gt;
if(type==='object'){if(typeof o.toJSON==='function'){return $.toJSON(o.toJSON());}&lt;br /&gt;
if(o.constructor===Date){var month=o.getUTCMonth()+1,day=o.getUTCDate(),year=o.getUTCFullYear(),hours=o.getUTCHours(),minutes=o.getUTCMinutes(),seconds=o.getUTCSeconds(),milli=o.getUTCMilliseconds();if(month&amp;lt;10){month='0'+month;}&lt;br /&gt;
if(day&amp;lt;10){day='0'+day;}&lt;br /&gt;
if(hours&amp;lt;10){hours='0'+hours;}&lt;br /&gt;
if(minutes&amp;lt;10){minutes='0'+minutes;}&lt;br /&gt;
if(seconds&amp;lt;10){seconds='0'+seconds;}&lt;br /&gt;
if(milli&amp;lt;100){milli='0'+milli;}&lt;br /&gt;
if(milli&amp;lt;10){milli='0'+milli;}&lt;br /&gt;
return'&amp;quot;'+year+'-'+month+'-'+day+'T'+&lt;br /&gt;
hours+':'+minutes+':'+seconds+'.'+milli+'Z&amp;quot;';}&lt;br /&gt;
if(o.constructor===Array){var ret=[];for(var i=0;i&amp;lt;o.length;i++){ret.push($.toJSON(o[i])||'null');}&lt;br /&gt;
return'['+ret.join(',')+']';}&lt;br /&gt;
var name,val,pairs=[];for(var k in o){type=typeof k;if(type==='number'){name='&amp;quot;'+k+'&amp;quot;';}else if(type==='string'){name=$.quoteString(k);}else{continue;}&lt;br /&gt;
type=typeof o[k];if(type==='function'||type==='undefined'){continue;}&lt;br /&gt;
val=$.toJSON(o[k]);pairs.push(name+':'+val);}&lt;br /&gt;
return'{'+pairs.join(',')+'}';}};$.evalJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.parse?JSON.parse:function(src){return eval('('+src+')');};$.secureEvalJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.parse?JSON.parse:function(src){var filtered=src.replace(/\\[&amp;quot;\\\/bfnrtu]/g,'@').replace(/&amp;quot;[^&amp;quot;\\\n\r]*&amp;quot;|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,'');if(/^[\],:{}\s]*$/.test(filtered)){return eval('('+src+')');}else{throw new SyntaxError('Error parsing JSON, source is not valid.');}};$.quoteString=function(string){if(string.match(escapeable)){return'&amp;quot;'+string.replace(escapeable,function(a){var c=meta[a];if(typeof c==='string'){return c;}&lt;br /&gt;
c=a.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16);})+'&amp;quot;';}&lt;br /&gt;
return'&amp;quot;'+string+'&amp;quot;';};})(jQuery);&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/&lt;br /&gt;
 *&lt;br /&gt;
 * Uses the built in easing capabilities added In jQuery 1.1&lt;br /&gt;
 * to offer multiple easing options&lt;br /&gt;
 *&lt;br /&gt;
 * TERMS OF USE - jQuery Easing&lt;br /&gt;
 * &lt;br /&gt;
 * Open source under the BSD License. &lt;br /&gt;
 * &lt;br /&gt;
 * Copyright Â© 2008 George McGinley Smith&lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without modification, &lt;br /&gt;
 * are permitted provided that the following conditions are met:&lt;br /&gt;
 * &lt;br /&gt;
 * Redistributions of source code must retain the above copyright notice, this list of &lt;br /&gt;
 * conditions and the following disclaimer.&lt;br /&gt;
 * Redistributions in binary form must reproduce the above copyright notice, this list &lt;br /&gt;
 * of conditions and the following disclaimer in the documentation and/or other materials &lt;br /&gt;
 * provided with the distribution.&lt;br /&gt;
 * &lt;br /&gt;
 * Neither the name of the author nor the names of contributors may be used to endorse &lt;br /&gt;
 * or promote products derived from this software without specific prior written permission.&lt;br /&gt;
 * &lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY &lt;br /&gt;
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF&lt;br /&gt;
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE&lt;br /&gt;
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE&lt;br /&gt;
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED &lt;br /&gt;
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED &lt;br /&gt;
 * OF THE POSSIBILITY OF SUCH DAMAGE. &lt;br /&gt;
 *&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
// t: current time, b: begInnIng value, c: change In value, d: duration&lt;br /&gt;
jQuery.easing['jswing'] = jQuery.easing['swing'];&lt;br /&gt;
&lt;br /&gt;
jQuery.extend( jQuery.easing,&lt;br /&gt;
{&lt;br /&gt;
	def: 'easeOutQuad',&lt;br /&gt;
	swing: function (x, t, b, c, d) {&lt;br /&gt;
		//alert(jQuery.easing.default);&lt;br /&gt;
		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuad: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuad: function (x, t, b, c, d) {&lt;br /&gt;
		return -c *(t/=d)*(t-2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuad: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t + b;&lt;br /&gt;
		return -c/2 * ((--t)*(t-2) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInCubic: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutCubic: function (x, t, b, c, d) {&lt;br /&gt;
		return c*((t=t/d-1)*t*t + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutCubic: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t + b;&lt;br /&gt;
		return c/2*((t-=2)*t*t + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuart: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuart: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * ((t=t/d-1)*t*t*t - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuart: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t*t + b;&lt;br /&gt;
		return -c/2 * ((t-=2)*t*t*t - 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuint: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuint: function (x, t, b, c, d) {&lt;br /&gt;
		return c*((t=t/d-1)*t*t*t*t + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuint: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t*t*t + b;&lt;br /&gt;
		return c/2*((t-=2)*t*t*t*t + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInSine: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutSine: function (x, t, b, c, d) {&lt;br /&gt;
		return c * Math.sin(t/d * (Math.PI/2)) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutSine: function (x, t, b, c, d) {&lt;br /&gt;
		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInExpo: function (x, t, b, c, d) {&lt;br /&gt;
		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutExpo: function (x, t, b, c, d) {&lt;br /&gt;
		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutExpo: function (x, t, b, c, d) {&lt;br /&gt;
		if (t==0) return b;&lt;br /&gt;
		if (t==d) return b+c;&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;&lt;br /&gt;
		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInCirc: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutCirc: function (x, t, b, c, d) {&lt;br /&gt;
		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutCirc: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;&lt;br /&gt;
		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		if (t &amp;lt; 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;&lt;br /&gt;
		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158;&lt;br /&gt;
		return c*(t/=d)*t*((s+1)*t - s) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158;&lt;br /&gt;
		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158; &lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;&lt;br /&gt;
		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInBounce: function (x, t, b, c, d) {&lt;br /&gt;
		return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutBounce: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d) &amp;lt; (1/2.75)) {&lt;br /&gt;
			return c*(7.5625*t*t) + b;&lt;br /&gt;
		} else if (t &amp;lt; (2/2.75)) {&lt;br /&gt;
			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;&lt;br /&gt;
		} else if (t &amp;lt; (2.5/2.75)) {&lt;br /&gt;
			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;&lt;br /&gt;
		} else {&lt;br /&gt;
			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutBounce: function (x, t, b, c, d) {&lt;br /&gt;
		if (t &amp;lt; d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;&lt;br /&gt;
		return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *&lt;br /&gt;
 * TERMS OF USE - EASING EQUATIONS&lt;br /&gt;
 * &lt;br /&gt;
 * Open source under the BSD License. &lt;br /&gt;
 * &lt;br /&gt;
 * Copyright Â© 2001 Robert Penner&lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without modification, &lt;br /&gt;
 * are permitted provided that the following conditions are met:&lt;br /&gt;
 * &lt;br /&gt;
 * Redistributions of source code must retain the above copyright notice, this list of &lt;br /&gt;
 * conditions and the following disclaimer.&lt;br /&gt;
 * Redistributions in binary form must reproduce the above copyright notice, this list &lt;br /&gt;
 * of conditions and the following disclaimer in the documentation and/or other materials &lt;br /&gt;
 * provided with the distribution.&lt;br /&gt;
 * &lt;br /&gt;
 * Neither the name of the author nor the names of contributors may be used to endorse &lt;br /&gt;
 * or promote products derived from this software without specific prior written permission.&lt;br /&gt;
 * &lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY &lt;br /&gt;
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF&lt;br /&gt;
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE&lt;br /&gt;
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE&lt;br /&gt;
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED &lt;br /&gt;
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED &lt;br /&gt;
 * OF THE POSSIBILITY OF SUCH DAMAGE. &lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
/**&lt;br /&gt;
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+&lt;br /&gt;
* &amp;lt;http://cherne.net/brian/resources/jquery.hoverIntent.html&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* @param  f  onMouseOver function || An object with configuration options&lt;br /&gt;
* @param  g  onMouseOut function  || Nothing (use configuration options object)&lt;br /&gt;
* @author    Brian Cherne &amp;lt;brian@cherne.net&amp;gt;&lt;br /&gt;
*/&lt;br /&gt;
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))&amp;lt;cfg.sensitivity){$(ob).unbind(&amp;quot;mousemove&amp;quot;,track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type==&amp;quot;mouseover&amp;quot;?e.fromElement:e.toElement)||e.relatedTarget;while(p&amp;amp;&amp;amp;p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type==&amp;quot;mouseover&amp;quot;){pX=ev.pageX;pY=ev.pageY;$(ob).bind(&amp;quot;mousemove&amp;quot;,track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind(&amp;quot;mousemove&amp;quot;,track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);&lt;br /&gt;
/**&lt;br /&gt;
* plugin: jquery.naviDropDown.js&lt;br /&gt;
* author: kt.cheung @ Brandammo&lt;br /&gt;
* website: www.brandammo.co.uk&lt;br /&gt;
* version: 1.0&lt;br /&gt;
* date: 19th feb 2011&lt;br /&gt;
* description: simple jquery navigation drop down menu with easing and hoverIntent&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 2011 KT Cheung&lt;br /&gt;
&lt;br /&gt;
Permission is hereby granted, free of charge, to any person obtaining a copy&lt;br /&gt;
of this software and associated documentation files (the &amp;quot;Software&amp;quot;), to deal&lt;br /&gt;
in the Software without restriction, including without limitation the rights&lt;br /&gt;
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell&lt;br /&gt;
copies of the Software, and to permit persons to whom the Software is&lt;br /&gt;
furnished to do so, subject to the following conditions:&lt;br /&gt;
&lt;br /&gt;
The above copyright notice and this permission notice shall be included in&lt;br /&gt;
all copies or substantial portions of the Software.&lt;br /&gt;
&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SOFTWARE.&lt;br /&gt;
&lt;br /&gt;
**/&lt;br /&gt;
&lt;br /&gt;
(function($){&lt;br /&gt;
&lt;br /&gt;
  $.fn.naviDropDown = function(options) {  &lt;br /&gt;
  &lt;br /&gt;
	//set up default options &lt;br /&gt;
	var defaults = { &lt;br /&gt;
		dropDownClass: 'dropdown', //the class name for your drop down&lt;br /&gt;
		dropDownWidth: 'auto',	//the default width of drop down elements&lt;br /&gt;
		slideDownEasing: 'easeInOutCirc', //easing method for slideDown&lt;br /&gt;
		slideUpEasing: 'easeInOutCirc', //easing method for slideUp&lt;br /&gt;
		slideDownDuration: 500, //easing duration for slideDown&lt;br /&gt;
		slideUpDuration: 500, //easing duration for slideUp&lt;br /&gt;
		orientation: 'horizontal' //orientation - either 'horizontal' or 'vertical'&lt;br /&gt;
	}; &lt;br /&gt;
  	&lt;br /&gt;
	var opts = $.extend({}, defaults, options); 	&lt;br /&gt;
&lt;br /&gt;
    return this.each(function() {  &lt;br /&gt;
	  var $this = $(this);&lt;br /&gt;
	  $this.find('.'+opts.dropDownClass).css('width', opts.dropDownWidth).css('display', 'none');&lt;br /&gt;
	  &lt;br /&gt;
	  var buttonWidth = $this.find('.'+opts.dropDownClass).parent().width() + 'px';&lt;br /&gt;
	  var buttonHeight = $this.find('.'+opts.dropDownClass).parent().height() + 'px';&lt;br /&gt;
	  if(opts.orientation == 'horizontal') {&lt;br /&gt;
		//$this.find('.'+opts.dropDownClass).css('left', '0px').css('top', buttonHeight);&lt;br /&gt;
	  }&lt;br /&gt;
	  if(opts.orientation == 'vertical') {&lt;br /&gt;
		$this.find('.'+opts.dropDownClass).css('left', buttonWidth).css('top', '0px');&lt;br /&gt;
	  }&lt;br /&gt;
	  &lt;br /&gt;
	  $this.find('li').hoverIntent(getDropDown, hideDropDown);&lt;br /&gt;
    });&lt;br /&gt;
	&lt;br /&gt;
	function getDropDown(){&lt;br /&gt;
		activeNav = $(this);&lt;br /&gt;
		showDropDown();&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	function showDropDown(){&lt;br /&gt;
		activeNav.find('.'+opts.dropDownClass).slideDown({duration:opts.slideDownDuration, easing:opts.slideDownEasing});&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	function hideDropDown(){&lt;br /&gt;
		activeNav.find('.'+opts.dropDownClass).slideUp({duration:opts.slideUpDuration, easing:opts.slideUpEasing});//hides the current dropdown&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
  };&lt;br /&gt;
})(jQuery);&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/MediaWiki:Common.js</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/MediaWiki:Common.js"/>
				<updated>2013-02-28T20:48:04Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
$(function(){&lt;br /&gt;
  var engine = $('&amp;lt;div class=&amp;quot;portal&amp;quot;/&amp;gt;')&lt;br /&gt;
    .append($('&amp;lt;h5&amp;gt;Engine&amp;lt;/h5&amp;gt;'))&lt;br /&gt;
    .append($('&amp;lt;div class=body/&amp;gt;')&lt;br /&gt;
      .append($('&amp;lt;ul/&amp;gt;')&lt;br /&gt;
        .append($('&amp;lt;li/&amp;gt;')&lt;br /&gt;
          .append($('&amp;lt;select id=engine/&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=mysql&amp;gt;MySQL&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=oracle&amp;gt;Oracle&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=sqlserver&amp;gt;SQL Server&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=postgres&amp;gt;PostgreSQL&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option id=ingres&amp;gt;Ingres&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option id=db2&amp;gt;DB2&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .change(function(){setDefaultText();})&lt;br /&gt;
          )&lt;br /&gt;
        )&lt;br /&gt;
      )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
  $('#right-navigation').after($('&amp;lt;ul/&amp;gt;',{'id':'zoolinks'})&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://csszoo.net',text:'CSS',id:'css_link', title:'Learn CSS! visit CSSzoo'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://progzoo.net',text:'Java',id:'java_link', title:'Hungry for Java tutorials? ProgZoo is for you'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://linuxzoo.net',text:'Linux',id:'linux_link', title:'Linux Zoo tutoials!'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;',{'id':'book'}).append($('&amp;lt;a/&amp;gt;',{href:'http://www.oreilly.com/catalog/sqlhks/',id:'sql_hacks',title:'Try/buy SQL Hacks book'})))&lt;br /&gt;
  );&lt;br /&gt;
&lt;br /&gt;
  $('#p-Reference').before(engine);&lt;br /&gt;
  &lt;br /&gt;
  //Adverts&lt;br /&gt;
  $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/sqlhacks.png',alt:'SQL Hacks book ad'})&lt;br /&gt;
    .appendTo($('#sql_hacks'));&lt;br /&gt;
  $('#p-googleadsense').prependTo('#footer');&lt;br /&gt;
&lt;br /&gt;
  if (wgCanonicalNamespace=='MediaWiki' || wgCanonicalNamespace=='Special')&lt;br /&gt;
    $('#p-googleadsense').hide();&lt;br /&gt;
&lt;br /&gt;
	// Reset localStorage&lt;br /&gt;
	var rst = $('.lsclear');&lt;br /&gt;
	rst.click(function(e){&lt;br /&gt;
	   if (localStorage) &lt;br /&gt;
			localStorage.clear();&lt;br /&gt;
	   location.reload();&lt;br /&gt;
	});&lt;br /&gt;
			   &lt;br /&gt;
	var numberOfQuestions = 0;&lt;br /&gt;
	var numberOfAnswered = 0;&lt;br /&gt;
	var numberOfCorrect = 0;&lt;br /&gt;
	var startAt = Math.max(1,$('#startAt').text()*1);&lt;br /&gt;
	var qu = $('.qu,.ht,.err');&lt;br /&gt;
	var curEng;&lt;br /&gt;
	if (localStorage &amp;amp;&amp;amp; localStorage.getItem(&amp;quot;currentEngine&amp;quot;))&lt;br /&gt;
	{&lt;br /&gt;
		curEng = localStorage.getItem(&amp;quot;currentEngine&amp;quot;);&lt;br /&gt;
		$('#engine').val(curEng);&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
		curEng = $('#engine').val();&lt;br /&gt;
		&lt;br /&gt;
	for(var i=0;i&amp;lt;qu.length;i++){&lt;br /&gt;
		var id = i+1;&lt;br /&gt;
		var q = qu[i];&lt;br /&gt;
		var lsName = wgPageName + '_' + 'frm__' + id;&lt;br /&gt;
		&lt;br /&gt;
		var def = $('.def',q);&lt;br /&gt;
		if (def.length&amp;gt;1){&lt;br /&gt;
			var pick = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
			for(var j=0;j&amp;lt;def.length;j++)&lt;br /&gt;
			  if ($(def[j]).hasClass('e-'+curEng))&lt;br /&gt;
				pick = $(def[j]);&lt;br /&gt;
			def = pick;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		//Hints&lt;br /&gt;
		var hint = $('.hint', q);&lt;br /&gt;
		hint.hide();&lt;br /&gt;
		hint.each(function(){&lt;br /&gt;
			var htitle = $(this).attr(&amp;quot;title&amp;quot;);&lt;br /&gt;
			var hnt = $('&amp;lt;div/&amp;gt;', {'class':'hnt', 'text':htitle});&lt;br /&gt;
			var hidden = $(this);&lt;br /&gt;
			hnt.click(function(e){&lt;br /&gt;
			   e.preventDefault();&lt;br /&gt;
			   hidden.toggle(&amp;quot;slow&amp;quot;);});&lt;br /&gt;
			$(this).before(hnt);&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		var txt = def.text();&lt;br /&gt;
		// replace the default text with user's last query if available in LS&lt;br /&gt;
		if (localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng))&lt;br /&gt;
		{&lt;br /&gt;
			var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
			txt = lsArray[lsArray.length-1];&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var ans = $('.ans',q).text();&lt;br /&gt;
		var tdy = $('.tidy',q).text();&lt;br /&gt;
		var frm = $('&amp;lt;form/&amp;gt;',{name:'frm__'+id,id:'frm__'+id})&lt;br /&gt;
			.append($('&amp;lt;div/&amp;gt;',{'class':'quf'})&lt;br /&gt;
			   .append($('&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;',&lt;br /&gt;
				 {value:$.trim(txt),&lt;br /&gt;
				  rows:2+Math.max(Math.max(4 ,txt.split(/[\n\r]+/).length),ans.split(/[\n\r]+/).length),&lt;br /&gt;
				  cols:2+Math.max(Math.max(45,maxlen(txt.split(/[\n\r]+/))),maxlen(ans.split(/[\n\r]+/))),&lt;br /&gt;
				  'class':'sql',&lt;br /&gt;
				  id:'txtar_'+id}))&lt;br /&gt;
			   .append($('&amp;lt;br/&amp;gt;'))&lt;br /&gt;
			   .append($('&amp;lt;button/&amp;gt;',{text:'Submit SQL','class':'submitSQL',click:goBaby}))&lt;br /&gt;
			   .append($('&amp;lt;div/&amp;gt;',{text:'Restore default','class':'reset',click:restoreDefault}))&lt;br /&gt;
			);&lt;br /&gt;
		&lt;br /&gt;
		def.after(frm);&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		// Display completion information&lt;br /&gt;
		if (localStorage)&lt;br /&gt;
		{&lt;br /&gt;
			if (!localStorage.getItem(lsName))&lt;br /&gt;
				localStorage.setItem(lsName, &amp;quot;unanswered&amp;quot;);&lt;br /&gt;
			if (localStorage.getItem(lsName) == &amp;quot;answered&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have answered this question &amp;lt;u&amp;gt;incorrectly&amp;lt;/u&amp;gt; before.&amp;quot;);&lt;br /&gt;
				numberOfAnswered++;&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qincorrect', 'title':'You have answered this question incorrectly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
			else if (localStorage.getItem(lsName) == &amp;quot;correct&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have answered this question &amp;lt;u&amp;gt;correctly&amp;lt;/u&amp;gt; before.&amp;quot;);&lt;br /&gt;
				numberOfCorrect++;&lt;br /&gt;
				numberOfAnswered++;&lt;br /&gt;
				&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qcorrect', 'title':'You have answered this question correctly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have not answered this question yet.&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var lhs = $('&amp;lt;div/&amp;gt;',{css:{width:'60ex',marginRight:'2ex','float':'left'}});&lt;br /&gt;
		lhs.append($('&amp;lt;span/&amp;gt;',{text:(startAt+i)+'.','class':'id'}));&lt;br /&gt;
		lhs.append($(q).children());&lt;br /&gt;
		$(q).append(lhs);&lt;br /&gt;
                // This line caused problems when styling - I removed the css margin-left from it - M&lt;br /&gt;
		//$(q).append($('&amp;lt;div/&amp;gt;',{text:'result','class':'res',css:{'margin-left':'1ex'}}));&lt;br /&gt;
                $(q).append($('&amp;lt;div/&amp;gt;',{text:'result','class':'res'}));&lt;br /&gt;
		&lt;br /&gt;
		//Show additional info if available for active angine&lt;br /&gt;
		var ecomm = $('.ecomm,.link',q);&lt;br /&gt;
		var ecomm1 = ecomm.filter(false);&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var ecomm = $('.link',q);&lt;br /&gt;
		var ecomm1 = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		numberOfQuestions = id;&lt;br /&gt;
	}&lt;br /&gt;
	if (numberOfQuestions == 0)&lt;br /&gt;
		numberOfQuestions = 1;&lt;br /&gt;
	&lt;br /&gt;
	// Display completion info&lt;br /&gt;
	$(&amp;quot;.summary&amp;quot;).html(&amp;quot;You have answered &amp;quot;+numberOfAnswered+&amp;quot; out of &amp;quot;+numberOfQuestions+&amp;quot; questions on this page.&amp;lt;br/&amp;gt;&amp;quot;+numberOfCorrect+&amp;quot; of your answers were correct.&amp;quot;);&lt;br /&gt;
	// Save completion info&lt;br /&gt;
	if (localStorage)&lt;br /&gt;
	{&lt;br /&gt;
		localStorage.setItem(wgPageName+'_numberOfQuestions', numberOfQuestions);&lt;br /&gt;
		localStorage.setItem(wgPageName+'_numberOfCorrect', numberOfCorrect);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	//Progress bar&lt;br /&gt;
	var maxWidth = $('.progressbar').css('width');&lt;br /&gt;
	var barModification = parseFloat(maxWidth) * numberOfCorrect / numberOfQuestions;&lt;br /&gt;
	$('.progressbar').css('width', barModification);&lt;br /&gt;
	&lt;br /&gt;
  //Put in the answers if url includes answer=1&lt;br /&gt;
  if (window.location.search.contains('answer')){&lt;br /&gt;
    $('&amp;lt;def/&amp;gt;',{text:&amp;quot;Cheat mode&amp;quot;,css:{position:'fixed',right:'2ex',&lt;br /&gt;
                   top:'2ex',width:'12ex',backgroundColor:'yellow'}})&lt;br /&gt;
      .appendTo($('body'));&lt;br /&gt;
    $('.quf textarea').each(function(){&lt;br /&gt;
       $(this).val($(this).closest('form').next('.ans').text());&lt;br /&gt;
    })&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
})&lt;br /&gt;
&lt;br /&gt;
function setDefaultText() {&lt;br /&gt;
	var qu = $('.ht,.err');&lt;br /&gt;
	var curEng = $('#engine').val();&lt;br /&gt;
	if (localStorage)&lt;br /&gt;
		localStorage.setItem(&amp;quot;currentEngine&amp;quot;, curEng);&lt;br /&gt;
	for(var i=0;i&amp;lt;qu.length;i++){&lt;br /&gt;
		var id = i+1;&lt;br /&gt;
		var q = qu[i];&lt;br /&gt;
		&lt;br /&gt;
		var def = $('.def',q);&lt;br /&gt;
		if (def.length&amp;gt;1){&lt;br /&gt;
			var pick = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
			for(var j=0;j&amp;lt;def.length;j++)&lt;br /&gt;
			  if ($(def[j]).hasClass('e-'+curEng))&lt;br /&gt;
				pick = $(def[j]);&lt;br /&gt;
			def = pick;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var lsName = wgPageName + '_' + 'frm__' + id;&lt;br /&gt;
		var txt = def.text();&lt;br /&gt;
		// replace the default text with user's last query if available in LS&lt;br /&gt;
		if (localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng))&lt;br /&gt;
		{&lt;br /&gt;
			var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
			txt = lsArray[lsArray.length-1];&lt;br /&gt;
		}&lt;br /&gt;
		$('textarea#txtar_'+id).val(txt);&lt;br /&gt;
		&lt;br /&gt;
		//Show additional info if available for chosen engine&lt;br /&gt;
		var ecomm = $('.ecomm',q);&lt;br /&gt;
		var ecomm1 = ecomm.filter(false);&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		//Show headers for chosen engine&lt;br /&gt;
		var ecomm = $('.link',q);&lt;br /&gt;
		var ecomm1 = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function restoreDefault() {&lt;br /&gt;
	var qu = $(this).parents('.qu, .ht, .err');&lt;br /&gt;
	var def = $('.def',qu);&lt;br /&gt;
	var txt = def.text();&lt;br /&gt;
	qu.find('textarea.sql').val(txt);&lt;br /&gt;
}	&lt;br /&gt;
&lt;br /&gt;
function updateProgressbar() {&lt;br /&gt;
	var numberOfQuestions = parseInt(localStorage.getItem(wgPageName+'_numberOfQuestions'));&lt;br /&gt;
	// A little workaround - max progressbar width is 96% of its background's width&lt;br /&gt;
	var maxWidth = parseFloat($('.progressbarbg').css('width')) * 0.96;&lt;br /&gt;
	var barModification = parseFloat($('.progressbar').css('width')) + maxWidth * 1 / numberOfQuestions;&lt;br /&gt;
	$('.progressbar').css('width', barModification);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function goBaby(){&lt;br /&gt;
  var qu = $(this).parents('.qu, .ht, .err');&lt;br /&gt;
  var lsUse = ((qu[0].getAttribute('class') != 'ht') &amp;amp;&amp;amp; ($(qu[0]).find('.ans').length &amp;gt; 0));&lt;br /&gt;
  var lsName = wgPageName + '_' + $(this).parents('form').attr('id');&lt;br /&gt;
  if (lsUse &amp;amp;&amp;amp; localStorage &amp;amp;&amp;amp; (localStorage.getItem(lsName) != &amp;quot;correct&amp;quot;))&lt;br /&gt;
	localStorage.setItem(lsName, &amp;quot;answered&amp;quot;);&lt;br /&gt;
  var sql = qu.find('textarea.sql').val();&lt;br /&gt;
  var parlst = $('.params').text().split(';');&lt;br /&gt;
  var params = {};&lt;br /&gt;
  for(var i=0;i&amp;lt;parlst.length;i++){&lt;br /&gt;
    var pair = parlst[i].split(':');&lt;br /&gt;
    params[pair[0]]=pair[1];&lt;br /&gt;
  }&lt;br /&gt;
  //Store the sql querry in LS&lt;br /&gt;
  if (localStorage)&lt;br /&gt;
  {&lt;br /&gt;
	var curEng = $('#engine').val();&lt;br /&gt;
	var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
	if (!lsArray)&lt;br /&gt;
		lsArray = new Array();&lt;br /&gt;
	lsArray.push(sql);&lt;br /&gt;
	localStorage.setItem(lsName+&amp;quot;_arr_&amp;quot;+curEng, JSON.stringify(lsArray));&lt;br /&gt;
  }&lt;br /&gt;
  qu.find('.res').addClass('waiting');&lt;br /&gt;
  $.ajax({url:'/sqlgo.pl',cache:false,'type':'post',dataType:'json',&lt;br /&gt;
          data:{sql:sql.replace(/\xA0/g,' '),  //Mediawiki inserts &amp;amp;nbsp; before a %. We need to change it back to a space.CM 13/6/12&lt;br /&gt;
                format:'json',&lt;br /&gt;
                question:$('.id',qu).text(),&lt;br /&gt;
                wgUserName:wgUserName,&lt;br /&gt;
                cookie:$.cookie('oliver'),&lt;br /&gt;
                page:wgPageName,&lt;br /&gt;
                server:$('#engine').val(),&lt;br /&gt;
                setup:$('.setup',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                tidy:$('.tidy',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                answer:$('.ans',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                schema:params['schema']&lt;br /&gt;
               },&lt;br /&gt;
          success:function(d){&lt;br /&gt;
            var res = qu.find('.res');&lt;br /&gt;
            res.empty().removeClass('waiting')&lt;br /&gt;
            if (d.error){&lt;br /&gt;
              res.append($('&amp;lt;h1/&amp;gt;',{text:'SQLZoo System Error:'}))&lt;br /&gt;
              res.append($('&amp;lt;div/&amp;gt;',{text:d.error}))&lt;br /&gt;
              return;&lt;br /&gt;
            }&lt;br /&gt;
			var headerPresent = false;&lt;br /&gt;
            for (var i = 0; i &amp;lt; d.sql.length; i++)&lt;br /&gt;
				{&lt;br /&gt;
				if (!d || !d.sql || !d.sql[i]){&lt;br /&gt;
				  res.append($('&amp;lt;h1/&amp;gt;',{text:'SQLZoo System Error:'}))&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:&amp;quot;Problem with d or d.sql or d.sql[0]&amp;quot;}))&lt;br /&gt;
				  return;&lt;br /&gt;
				}&lt;br /&gt;
				if (d.sql[i].error){&lt;br /&gt;
				  res.append($('&amp;lt;h1/&amp;gt;',{text:'Error:'}))&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:d.sql[i].error}))&lt;br /&gt;
				  return;&lt;br /&gt;
				}&lt;br /&gt;
				var legend = &amp;quot;Result:&amp;quot;;&lt;br /&gt;
				if (d.score &amp;amp;&amp;amp; d.answer &amp;amp;&amp;amp; d.answer.length==1 &amp;amp;&amp;amp; d.answer[0].fields){&lt;br /&gt;
				  if (d.score == 100){&lt;br /&gt;
					legend = 'Correct answer';&lt;br /&gt;
					if (lsUse &amp;amp;&amp;amp; localStorage)&lt;br /&gt;
						localStorage.setItem(lsName, &amp;quot;correct&amp;quot;);&lt;br /&gt;
					var def = $('.def',qu);&lt;br /&gt;
					if (localStorage.getItem(lsName) == &amp;quot;correct&amp;quot;)&lt;br /&gt;
					{&lt;br /&gt;
						if ($(&amp;quot;.qcorrect&amp;quot;, qu).length == 0)&lt;br /&gt;
						{&lt;br /&gt;
							var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qcorrect', 'title':'You have answered this question correctly before.'});&lt;br /&gt;
							def.before(qcorr);&lt;br /&gt;
							updateProgressbar();&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
			      }&lt;br /&gt;
				  else if (d.answer[0].fields.length&amp;gt;d.sql[0].fields.length)&lt;br /&gt;
					legend = 'Too few columns';&lt;br /&gt;
				  else if (d.answer[0].fields.length&amp;lt;d.sql[0].fields.length)&lt;br /&gt;
					legend = 'Too many columns';&lt;br /&gt;
				  else if (d.answer[0].rows.length&amp;gt;d.sql[0].rows.length)&lt;br /&gt;
					legend = 'Too few rows';&lt;br /&gt;
				  else if (d.answer[0].rows.length&amp;lt;d.sql[0].rows.length)&lt;br /&gt;
					legend = 'Too many rows';&lt;br /&gt;
&lt;br /&gt;
				}&lt;br /&gt;
				if (!headerPresent)&lt;br /&gt;
				{&lt;br /&gt;
					res.append($('&amp;lt;h1/&amp;gt;',{text:legend}));&lt;br /&gt;
					headerPresent = true;&lt;br /&gt;
				}&lt;br /&gt;
				var t = mkTable(d.sql[i]);&lt;br /&gt;
				t.addClass('sqlmine')&lt;br /&gt;
				 .appendTo(res);&lt;br /&gt;
				if (d.answer &amp;amp;&amp;amp; d.answer.length&amp;gt;0 &amp;amp;&amp;amp; d.score&amp;lt;100){&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:'Show correct result','class':'showtxt'})&lt;br /&gt;
					.click(function(){&lt;br /&gt;
					  $(this).next().show('slow');&lt;br /&gt;
					})&lt;br /&gt;
				  );&lt;br /&gt;
				  var a = mkTable(d.answer[0]);&lt;br /&gt;
				  a.addClass('sqlans');&lt;br /&gt;
				  a.appendTo(res);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
          },&lt;br /&gt;
          error:function(jqXHR,textStatus,errorThrown){&lt;br /&gt;
            qu.find('.res').empty().removeClass('waiting')&lt;br /&gt;
              .append($('&amp;lt;h1/&amp;gt;',{'class':'syserr',text:'SQLZOO system error:'}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;',{text:textStatus}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;',{text:errorThrown}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;').html(jqXHR.responseText))&lt;br /&gt;
          }&lt;br /&gt;
         });&lt;br /&gt;
		 &lt;br /&gt;
		// Modify completion information&lt;br /&gt;
		var def = $('.def',qu);&lt;br /&gt;
		if (localStorage)&lt;br /&gt;
		{&lt;br /&gt;
			if (localStorage.getItem(lsName) == &amp;quot;answered&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qincorrect', 'title':'You have answered this question incorrectly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
function maxlen(l){&lt;br /&gt;
  var r = 0;&lt;br /&gt;
  for(var i=0;i&amp;lt;l.length;i++)&lt;br /&gt;
    r = Math.max(r,l[i].length);&lt;br /&gt;
  return r;&lt;br /&gt;
}&lt;br /&gt;
function truncate(s){&lt;br /&gt;
  if (s.length&amp;lt;15) return s;&lt;br /&gt;
  return s.substring(0,13)+&amp;quot;..&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
function mkTable(a){&lt;br /&gt;
  var t = $('&amp;lt;table/&amp;gt;');&lt;br /&gt;
  t.append($('&amp;lt;tr/&amp;gt;'));&lt;br /&gt;
  var isnum = [];&lt;br /&gt;
  if (!a.fields || !a.rows) return t;&lt;br /&gt;
  for(var i=0;i&amp;lt;a.fields.length;i++){&lt;br /&gt;
    $('tr',t).append($('&amp;lt;th/&amp;gt;',{text:truncate(a.fields[i])}));&lt;br /&gt;
    var allNum = 1;&lt;br /&gt;
    for(var j=0;j&amp;lt;a.rows.length;j++){&lt;br /&gt;
      if (a.rows[j] &amp;amp;&amp;amp; a.rows[j][i] &amp;amp;&amp;amp; !a.rows[j][i].match(/^[0-9.]*$/))&lt;br /&gt;
        allNum = 0;&lt;br /&gt;
    }&lt;br /&gt;
    isnum.push(allNum);&lt;br /&gt;
  }&lt;br /&gt;
  for(var j=0;j&amp;lt;a.rows.length;j++){&lt;br /&gt;
    var tr = $('&amp;lt;tr/&amp;gt;').appendTo(t);&lt;br /&gt;
    for(var k=0;k&amp;lt;a.rows[j].length;k++){&lt;br /&gt;
      var td = $('&amp;lt;td/&amp;gt;',{text:a.rows[j][k]});&lt;br /&gt;
      if (isnum[k]) td.addClass('r');&lt;br /&gt;
      td.appendTo(tr);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return t;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ======================= Designer js starts here */&lt;br /&gt;
&lt;br /&gt;
// the following scripts should not be present here - they should be linked as external files !!!&lt;br /&gt;
&lt;br /&gt;
// this script helps to manage browser inconsistency across different os&lt;br /&gt;
function css_browser_selector(u){var ua=u.toLowerCase(),is=function(t){return ua.indexOf(t)&amp;gt;-1},g='gecko',w='webkit',s='safari',o='opera',m='mobile',h=document.documentElement,b=[(!(/opera|webtv/i.test(ua))&amp;amp;&amp;amp;/msie\s(\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?g+' ff2':is('firefox/3.5')?g+' ff3 ff3_5':is('firefox/3.6')?g+' ff3 ff3_6':is('firefox/3')?g+' ff3':is('gecko/')?g:is('opera')?o+(/version\/(\d+)/.test(ua)?' '+o+RegExp.$1:(/opera(\s|\/)(\d+)/.test(ua)?' '+o+RegExp.$2:'')):is('konqueror')?'konqueror':is('blackberry')?m+' blackberry':is('android')?m+' android':is('chrome')?w+' chrome':is('iron')?w+' iron':is('applewebkit/')?w+' '+s+(/version\/(\d+)/.test(ua)?' '+s+RegExp.$1:''):is('mozilla/')?g:'',is('j2me')?m+' j2me':is('iphone')?m+' iphone':is('ipod')?m+' ipod':is('ipad')?m+' ipad':is('mac')?'mac':is('darwin')?'mac':is('webtv')?'webtv':is('win')?'win'+(is('windows nt 6.0')?' vista':''):is('freebsd')?'freebsd':(is('x11')||is('linux'))?'linux':'','js']; c = b.join(' '); h.className += ' '+c; return c;}; css_browser_selector(navigator.userAgent);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// display site logo&lt;br /&gt;
$(function(){&lt;br /&gt;
  $('&amp;lt;a/&amp;gt;',{href:'http://sqlzoo.net/w/index.php',id:'mp-logo',title:'Zoo You!'})&lt;br /&gt;
    .append($('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/sql_zoo_logo05.png',alt:'SQLzoo logo'}))&lt;br /&gt;
    .appendTo($('#mw-head-base'))&lt;br /&gt;
});&lt;br /&gt;
 &lt;br /&gt;
// display site description&lt;br /&gt;
$(document).ready(function(){&lt;br /&gt;
  $(function(){&lt;br /&gt;
    $(&amp;quot;#mp-logo&amp;quot;).append(&amp;quot; &amp;lt;h1 id='logo-desc'&amp;gt;Interactive &amp;lt;span&amp;gt;SQL &amp;lt;span&amp;gt;Tutorial&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h1&amp;gt;&amp;quot;);&lt;br /&gt;
  });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// display language selector&lt;br /&gt;
$(function(){&lt;br /&gt;
     $('&amp;lt;div/&amp;gt;',{id:'language'}).appendTo($('#mw-head-base'))&lt;br /&gt;
 &lt;br /&gt;
     var lang = $('&amp;lt;ul/&amp;gt;',{id:'lang','class':'side_nav_sub'});&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;en&amp;quot; href=&amp;quot;/wiki/Main_Page&amp;quot;&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;de&amp;quot; href=&amp;quot;/wiki/Main_Page/de&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;fr&amp;quot; href=&amp;quot;/wiki/Main_Page/fr&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    $('#language').append(lang);&lt;br /&gt;
&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/en2.png',alt:'SQL zoo in English'})&lt;br /&gt;
       .appendTo($('#en'));&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/de2.png',alt:'SQL zoo in German'})&lt;br /&gt;
       .appendTo($('#de'));&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/fr2.png',alt:'SQL zoo in French'})&lt;br /&gt;
       .appendTo($('#fr'));&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// assemble and display main nav menu&lt;br /&gt;
$(function(){&lt;br /&gt;
    var ml1 =&lt;br /&gt;
    [['1 SELECT basics',  'SELECT_basics','Some simple queries to get you started']&lt;br /&gt;
    ,['2 SELECT from WORLD','SELECT_from_WORLD_Tutorial','Finding facts about countries']&lt;br /&gt;
    ,['3 SELECT from Nobel','SELECT_from_Nobel_Tutorial','More practice with SELECT statements']&lt;br /&gt;
    ,['4 SELECT within SELECT','SELECT_within_SELECT_Tutorial','Using the results of one query inside another']&lt;br /&gt;
    ,['5 SUM and COUNT','SUM_and_COUNT','Apply aggregate functions']&lt;br /&gt;
    ,['6 JOIN','The_JOIN_operation','Gathering data from more than one table']&lt;br /&gt;
    ,['7 More JOIN','More_JOIN_operations','Getting data from the movie database']&lt;br /&gt;
    ,['8 Using NULL','Using_Null','Dealing with missing data']&lt;br /&gt;
    ,['9 Self JOIN','Self_join','Dealing with missing data']&lt;br /&gt;
	,['10 SQL Quizzes','Tutorial_Quizzes','Test your knowledge with multiple choice quizzes']&lt;br /&gt;
    ];&lt;br /&gt;
    var mm1 = $('&amp;lt;ul/&amp;gt;',{id:'mm1','class':'dropdown mm_sub'});&lt;br /&gt;
    for(var i=0;i&amp;lt;ml1.length;i++){&lt;br /&gt;
	  var maxWidth = 50; // adjust the value so that it fits menu well&lt;br /&gt;
	  var NoQ = localStorage.getItem(ml1[i][1] + '_numberOfQuestions');&lt;br /&gt;
	  if (!NoQ) NoQ = 1;&lt;br /&gt;
	  var NoC = localStorage.getItem(ml1[i][1] + '_numberOfCorrect');&lt;br /&gt;
	  if (!NoC) NoC = 0;	  &lt;br /&gt;
	  var pbWidth = parseFloat(maxWidth) * NoC / NoQ;&lt;br /&gt;
	  var mprogbar = $('&amp;lt;div/&amp;gt;',{'class':'progressbarbg1'}).append($('&amp;lt;div/&amp;gt;',{'class':'progressbar1', 'id':ml1[i][1], css:{'width':pbWidth}}));&lt;br /&gt;
          mm1.append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'/wiki/'+ml1[i][1],text:ml1[i][0]})).append(ml1[i][2]).append(mprogbar));&lt;br /&gt;
    }&lt;br /&gt;
    var mm2 = $('&amp;lt;ul/&amp;gt;',{id:'mm2','class':'dropdown mm_sub'});&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/AdventureWorks&amp;quot;&amp;gt;1 AdventureWorks&amp;lt;/a&amp;gt; Flogging sports gear. Assessment for CO22008 2007/8&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Neeps&amp;quot;&amp;gt;2 Neeps&amp;lt;/a&amp;gt; A timetable database&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Musicians&amp;quot;&amp;gt;3 Musicians&amp;lt;/a&amp;gt; Concerts and compositions&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Southwind&amp;quot;&amp;gt;4 Southwind&amp;lt;/a&amp;gt; Buying and selling&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Dressmaker&amp;quot;&amp;gt;5 Dressmaker&amp;lt;/a&amp;gt; Constructing clothing&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Congestion Charging&amp;quot;&amp;gt;6 Congestion Charging&amp;lt;/a&amp;gt; Monitoring traffic (old questions)&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Weather data for Southhampton&amp;quot;&amp;gt;7 Weather data for Southhampton&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Album Tracks Style&amp;quot;&amp;gt;8 Album Tracks Style&amp;lt;/a&amp;gt; Music data&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    var mm3 = $('&amp;lt;ul/&amp;gt;',{id:'mm3','class':'dropdown mm_sub'});&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/SELECT_Reference&amp;quot;&amp;gt;SELECT&amp;lt;/a&amp;gt;How to read the data from a database.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/CREATE_and_DROP_Reference&amp;quot;&amp;gt;CREATE and DROP&amp;lt;/a&amp;gt;How to create tables, indexes, views and other things. How to get rid of them.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/INSERT_and_DELETE_Reference&amp;quot;&amp;gt;INSERT and DELETE&amp;lt;/a&amp;gt;How to put records into a table, change them and how to take them out again.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/DATE_and_TIME_Reference&amp;quot;&amp;gt;DATE and TIME&amp;lt;/a&amp;gt;How to work with dates; adding, subtracting and formatting.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Functions_Reference&amp;quot;&amp;gt;Functions&amp;lt;/a&amp;gt;How to use string functions, logical functions and mathematical functions.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Users_Reference&amp;quot;&amp;gt;Users&amp;lt;/a&amp;gt;How to create users, GRANT and DENY access, get at other peoples tables. How to find processes and kill them.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Meta_Data_Reference&amp;quot;&amp;gt;Meta Data&amp;lt;/a&amp;gt;How to find out what tables and columns exist. How to count and limit the rows return.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Hacks_Reference&amp;quot;&amp;gt;SQL Hacks&amp;lt;/a&amp;gt;Useful SQL hacks .&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    var mm = $('&amp;lt;ul/&amp;gt;',{id:'main_menu'}).appendTo('#mw-head-base');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm1&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Tutorials&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm2&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Assessments&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm3&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Reference&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    $('#mm1').append(mm1);&lt;br /&gt;
    $('#mm2').append(mm2);&lt;br /&gt;
    $('#mm3').append(mm3);&lt;br /&gt;
&lt;br /&gt;
    $('#main_menu').wrap('&amp;lt;div id=&amp;quot;navigation_horiz&amp;quot; /&amp;gt;');&lt;br /&gt;
    $('#navigation_horiz').naviDropDown({&lt;br /&gt;
      dropDownWidth: '35em'&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// stick on top elements that need to be visible&lt;br /&gt;
$(function(){&lt;br /&gt;
    $(&amp;quot;#main_menu&amp;quot;).addClass(&amp;quot;stickableMenu&amp;quot;);&lt;br /&gt;
    $(&amp;quot;#p-Reference&amp;quot;).addClass(&amp;quot;stickableRef&amp;quot;);&lt;br /&gt;
    $(&amp;quot;.ref_section&amp;quot;).addClass(&amp;quot;stickableDbRef&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$(document).scroll(function() {&lt;br /&gt;
    var useFixedMenu = $(document).scrollTop() &amp;gt; 175;&lt;br /&gt;
    $('.stickableMenu').toggleClass('fixedMenu', useFixedMenu);&lt;br /&gt;
    &lt;br /&gt;
//    var useFixedRef = $(document).scrollTop() &amp;gt; 275;&lt;br /&gt;
//    $('.stickableRef').toggleClass('fixedRef', useFixedRef);&lt;br /&gt;
&lt;br /&gt;
    $('.stickableDbRef').toggleClass('fixedDbRef', $(document).scrollTop() &amp;gt; 275);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// swap classes on external links to change their side icons&lt;br /&gt;
$(function(){&lt;br /&gt;
 $(&amp;quot;.external&amp;quot;).addClass(&amp;quot;zoo_external&amp;quot;);&lt;br /&gt;
 $(&amp;quot;.external&amp;quot;).removeClass(&amp;quot;external&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
/* === Designer js ends here === */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Insert tables into Quiz distractors&lt;br /&gt;
var qq = $('.question');&lt;br /&gt;
for (var i = 0; i &amp;lt; qq.length; i++)&lt;br /&gt;
{&lt;br /&gt;
	var q = $(qq[i]);&lt;br /&gt;
	var distractors = &amp;quot;ABCDE&amp;quot;;&lt;br /&gt;
	for (var j=0;j&amp;lt;distractors.length;j++){&lt;br /&gt;
		var tans = $('table caption:contains(&amp;quot;Table-'+distractors[j]+'&amp;quot;)', q).parents('table');&lt;br /&gt;
		if (tans.length&amp;gt;0)&lt;br /&gt;
		{&lt;br /&gt;
			var ttd = $('table tr td:contains(&amp;quot;Table-'+distractors[j]+'&amp;quot;)', q);&lt;br /&gt;
			if (ttd.length&amp;gt;0){&lt;br /&gt;
			   ttd.empty();&lt;br /&gt;
			   ttd.append(tans);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$(function(){&lt;br /&gt;
  $('input.check').each(function(i,e){&lt;br /&gt;
    $(this).attr('id','quiz_d_'+i);&lt;br /&gt;
  });&lt;br /&gt;
  $('tr.proposal').each(function(i,e){&lt;br /&gt;
    var tds = $('td',$(this));&lt;br /&gt;
    var html1= $(tds[1]).html();&lt;br /&gt;
    $(tds[1]).html($('&amp;lt;label/&amp;gt;',{html:html1,'for':$('input',$(this)).attr('id') }));&lt;br /&gt;
  })&lt;br /&gt;
})&lt;br /&gt;
//Connor 23/7/12 creates the labels for the multiple choice questions allowing them to be highlighted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Analytics code&lt;br /&gt;
  var _gaq = _gaq || [];&lt;br /&gt;
  _gaq.push(['_setAccount', 'UA-33860668-1']);&lt;br /&gt;
  _gaq.push(['_trackPageview']);&lt;br /&gt;
&lt;br /&gt;
  (function() {&lt;br /&gt;
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;&lt;br /&gt;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';&lt;br /&gt;
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);&lt;br /&gt;
  })();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//JSON&lt;br /&gt;
(function($){var escapeable=/[&amp;quot;\\\x00-\x1f\x7f-\x9f]/g,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','&amp;quot;':'\\&amp;quot;','\\':'\\\\'};$.toJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.stringify?JSON.stringify:function(o){if(o===null){return'null';}&lt;br /&gt;
var type=typeof o;if(type==='undefined'){return undefined;}&lt;br /&gt;
if(type==='number'||type==='boolean'){return''+o;}&lt;br /&gt;
if(type==='string'){return $.quoteString(o);}&lt;br /&gt;
if(type==='object'){if(typeof o.toJSON==='function'){return $.toJSON(o.toJSON());}&lt;br /&gt;
if(o.constructor===Date){var month=o.getUTCMonth()+1,day=o.getUTCDate(),year=o.getUTCFullYear(),hours=o.getUTCHours(),minutes=o.getUTCMinutes(),seconds=o.getUTCSeconds(),milli=o.getUTCMilliseconds();if(month&amp;lt;10){month='0'+month;}&lt;br /&gt;
if(day&amp;lt;10){day='0'+day;}&lt;br /&gt;
if(hours&amp;lt;10){hours='0'+hours;}&lt;br /&gt;
if(minutes&amp;lt;10){minutes='0'+minutes;}&lt;br /&gt;
if(seconds&amp;lt;10){seconds='0'+seconds;}&lt;br /&gt;
if(milli&amp;lt;100){milli='0'+milli;}&lt;br /&gt;
if(milli&amp;lt;10){milli='0'+milli;}&lt;br /&gt;
return'&amp;quot;'+year+'-'+month+'-'+day+'T'+&lt;br /&gt;
hours+':'+minutes+':'+seconds+'.'+milli+'Z&amp;quot;';}&lt;br /&gt;
if(o.constructor===Array){var ret=[];for(var i=0;i&amp;lt;o.length;i++){ret.push($.toJSON(o[i])||'null');}&lt;br /&gt;
return'['+ret.join(',')+']';}&lt;br /&gt;
var name,val,pairs=[];for(var k in o){type=typeof k;if(type==='number'){name='&amp;quot;'+k+'&amp;quot;';}else if(type==='string'){name=$.quoteString(k);}else{continue;}&lt;br /&gt;
type=typeof o[k];if(type==='function'||type==='undefined'){continue;}&lt;br /&gt;
val=$.toJSON(o[k]);pairs.push(name+':'+val);}&lt;br /&gt;
return'{'+pairs.join(',')+'}';}};$.evalJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.parse?JSON.parse:function(src){return eval('('+src+')');};$.secureEvalJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.parse?JSON.parse:function(src){var filtered=src.replace(/\\[&amp;quot;\\\/bfnrtu]/g,'@').replace(/&amp;quot;[^&amp;quot;\\\n\r]*&amp;quot;|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,'');if(/^[\],:{}\s]*$/.test(filtered)){return eval('('+src+')');}else{throw new SyntaxError('Error parsing JSON, source is not valid.');}};$.quoteString=function(string){if(string.match(escapeable)){return'&amp;quot;'+string.replace(escapeable,function(a){var c=meta[a];if(typeof c==='string'){return c;}&lt;br /&gt;
c=a.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16);})+'&amp;quot;';}&lt;br /&gt;
return'&amp;quot;'+string+'&amp;quot;';};})(jQuery);&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/&lt;br /&gt;
 *&lt;br /&gt;
 * Uses the built in easing capabilities added In jQuery 1.1&lt;br /&gt;
 * to offer multiple easing options&lt;br /&gt;
 *&lt;br /&gt;
 * TERMS OF USE - jQuery Easing&lt;br /&gt;
 * &lt;br /&gt;
 * Open source under the BSD License. &lt;br /&gt;
 * &lt;br /&gt;
 * Copyright Â© 2008 George McGinley Smith&lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without modification, &lt;br /&gt;
 * are permitted provided that the following conditions are met:&lt;br /&gt;
 * &lt;br /&gt;
 * Redistributions of source code must retain the above copyright notice, this list of &lt;br /&gt;
 * conditions and the following disclaimer.&lt;br /&gt;
 * Redistributions in binary form must reproduce the above copyright notice, this list &lt;br /&gt;
 * of conditions and the following disclaimer in the documentation and/or other materials &lt;br /&gt;
 * provided with the distribution.&lt;br /&gt;
 * &lt;br /&gt;
 * Neither the name of the author nor the names of contributors may be used to endorse &lt;br /&gt;
 * or promote products derived from this software without specific prior written permission.&lt;br /&gt;
 * &lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY &lt;br /&gt;
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF&lt;br /&gt;
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE&lt;br /&gt;
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE&lt;br /&gt;
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED &lt;br /&gt;
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED &lt;br /&gt;
 * OF THE POSSIBILITY OF SUCH DAMAGE. &lt;br /&gt;
 *&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
// t: current time, b: begInnIng value, c: change In value, d: duration&lt;br /&gt;
jQuery.easing['jswing'] = jQuery.easing['swing'];&lt;br /&gt;
&lt;br /&gt;
jQuery.extend( jQuery.easing,&lt;br /&gt;
{&lt;br /&gt;
	def: 'easeOutQuad',&lt;br /&gt;
	swing: function (x, t, b, c, d) {&lt;br /&gt;
		//alert(jQuery.easing.default);&lt;br /&gt;
		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuad: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuad: function (x, t, b, c, d) {&lt;br /&gt;
		return -c *(t/=d)*(t-2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuad: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t + b;&lt;br /&gt;
		return -c/2 * ((--t)*(t-2) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInCubic: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutCubic: function (x, t, b, c, d) {&lt;br /&gt;
		return c*((t=t/d-1)*t*t + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutCubic: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t + b;&lt;br /&gt;
		return c/2*((t-=2)*t*t + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuart: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuart: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * ((t=t/d-1)*t*t*t - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuart: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t*t + b;&lt;br /&gt;
		return -c/2 * ((t-=2)*t*t*t - 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuint: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuint: function (x, t, b, c, d) {&lt;br /&gt;
		return c*((t=t/d-1)*t*t*t*t + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuint: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t*t*t + b;&lt;br /&gt;
		return c/2*((t-=2)*t*t*t*t + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInSine: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutSine: function (x, t, b, c, d) {&lt;br /&gt;
		return c * Math.sin(t/d * (Math.PI/2)) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutSine: function (x, t, b, c, d) {&lt;br /&gt;
		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInExpo: function (x, t, b, c, d) {&lt;br /&gt;
		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutExpo: function (x, t, b, c, d) {&lt;br /&gt;
		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutExpo: function (x, t, b, c, d) {&lt;br /&gt;
		if (t==0) return b;&lt;br /&gt;
		if (t==d) return b+c;&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;&lt;br /&gt;
		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInCirc: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutCirc: function (x, t, b, c, d) {&lt;br /&gt;
		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutCirc: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;&lt;br /&gt;
		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		if (t &amp;lt; 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;&lt;br /&gt;
		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158;&lt;br /&gt;
		return c*(t/=d)*t*((s+1)*t - s) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158;&lt;br /&gt;
		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158; &lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;&lt;br /&gt;
		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInBounce: function (x, t, b, c, d) {&lt;br /&gt;
		return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutBounce: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d) &amp;lt; (1/2.75)) {&lt;br /&gt;
			return c*(7.5625*t*t) + b;&lt;br /&gt;
		} else if (t &amp;lt; (2/2.75)) {&lt;br /&gt;
			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;&lt;br /&gt;
		} else if (t &amp;lt; (2.5/2.75)) {&lt;br /&gt;
			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;&lt;br /&gt;
		} else {&lt;br /&gt;
			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutBounce: function (x, t, b, c, d) {&lt;br /&gt;
		if (t &amp;lt; d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;&lt;br /&gt;
		return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *&lt;br /&gt;
 * TERMS OF USE - EASING EQUATIONS&lt;br /&gt;
 * &lt;br /&gt;
 * Open source under the BSD License. &lt;br /&gt;
 * &lt;br /&gt;
 * Copyright Â© 2001 Robert Penner&lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without modification, &lt;br /&gt;
 * are permitted provided that the following conditions are met:&lt;br /&gt;
 * &lt;br /&gt;
 * Redistributions of source code must retain the above copyright notice, this list of &lt;br /&gt;
 * conditions and the following disclaimer.&lt;br /&gt;
 * Redistributions in binary form must reproduce the above copyright notice, this list &lt;br /&gt;
 * of conditions and the following disclaimer in the documentation and/or other materials &lt;br /&gt;
 * provided with the distribution.&lt;br /&gt;
 * &lt;br /&gt;
 * Neither the name of the author nor the names of contributors may be used to endorse &lt;br /&gt;
 * or promote products derived from this software without specific prior written permission.&lt;br /&gt;
 * &lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY &lt;br /&gt;
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF&lt;br /&gt;
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE&lt;br /&gt;
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE&lt;br /&gt;
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED &lt;br /&gt;
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED &lt;br /&gt;
 * OF THE POSSIBILITY OF SUCH DAMAGE. &lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
/**&lt;br /&gt;
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+&lt;br /&gt;
* &amp;lt;http://cherne.net/brian/resources/jquery.hoverIntent.html&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* @param  f  onMouseOver function || An object with configuration options&lt;br /&gt;
* @param  g  onMouseOut function  || Nothing (use configuration options object)&lt;br /&gt;
* @author    Brian Cherne &amp;lt;brian@cherne.net&amp;gt;&lt;br /&gt;
*/&lt;br /&gt;
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))&amp;lt;cfg.sensitivity){$(ob).unbind(&amp;quot;mousemove&amp;quot;,track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type==&amp;quot;mouseover&amp;quot;?e.fromElement:e.toElement)||e.relatedTarget;while(p&amp;amp;&amp;amp;p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type==&amp;quot;mouseover&amp;quot;){pX=ev.pageX;pY=ev.pageY;$(ob).bind(&amp;quot;mousemove&amp;quot;,track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind(&amp;quot;mousemove&amp;quot;,track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);&lt;br /&gt;
/**&lt;br /&gt;
* plugin: jquery.naviDropDown.js&lt;br /&gt;
* author: kt.cheung @ Brandammo&lt;br /&gt;
* website: www.brandammo.co.uk&lt;br /&gt;
* version: 1.0&lt;br /&gt;
* date: 19th feb 2011&lt;br /&gt;
* description: simple jquery navigation drop down menu with easing and hoverIntent&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 2011 KT Cheung&lt;br /&gt;
&lt;br /&gt;
Permission is hereby granted, free of charge, to any person obtaining a copy&lt;br /&gt;
of this software and associated documentation files (the &amp;quot;Software&amp;quot;), to deal&lt;br /&gt;
in the Software without restriction, including without limitation the rights&lt;br /&gt;
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell&lt;br /&gt;
copies of the Software, and to permit persons to whom the Software is&lt;br /&gt;
furnished to do so, subject to the following conditions:&lt;br /&gt;
&lt;br /&gt;
The above copyright notice and this permission notice shall be included in&lt;br /&gt;
all copies or substantial portions of the Software.&lt;br /&gt;
&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SOFTWARE.&lt;br /&gt;
&lt;br /&gt;
**/&lt;br /&gt;
&lt;br /&gt;
(function($){&lt;br /&gt;
&lt;br /&gt;
  $.fn.naviDropDown = function(options) {  &lt;br /&gt;
  &lt;br /&gt;
	//set up default options &lt;br /&gt;
	var defaults = { &lt;br /&gt;
		dropDownClass: 'dropdown', //the class name for your drop down&lt;br /&gt;
		dropDownWidth: 'auto',	//the default width of drop down elements&lt;br /&gt;
		slideDownEasing: 'easeInOutCirc', //easing method for slideDown&lt;br /&gt;
		slideUpEasing: 'easeInOutCirc', //easing method for slideUp&lt;br /&gt;
		slideDownDuration: 500, //easing duration for slideDown&lt;br /&gt;
		slideUpDuration: 500, //easing duration for slideUp&lt;br /&gt;
		orientation: 'horizontal' //orientation - either 'horizontal' or 'vertical'&lt;br /&gt;
	}; &lt;br /&gt;
  	&lt;br /&gt;
	var opts = $.extend({}, defaults, options); 	&lt;br /&gt;
&lt;br /&gt;
    return this.each(function() {  &lt;br /&gt;
	  var $this = $(this);&lt;br /&gt;
	  $this.find('.'+opts.dropDownClass).css('width', opts.dropDownWidth).css('display', 'none');&lt;br /&gt;
	  &lt;br /&gt;
	  var buttonWidth = $this.find('.'+opts.dropDownClass).parent().width() + 'px';&lt;br /&gt;
	  var buttonHeight = $this.find('.'+opts.dropDownClass).parent().height() + 'px';&lt;br /&gt;
	  if(opts.orientation == 'horizontal') {&lt;br /&gt;
		//$this.find('.'+opts.dropDownClass).css('left', '0px').css('top', buttonHeight);&lt;br /&gt;
	  }&lt;br /&gt;
	  if(opts.orientation == 'vertical') {&lt;br /&gt;
		$this.find('.'+opts.dropDownClass).css('left', buttonWidth).css('top', '0px');&lt;br /&gt;
	  }&lt;br /&gt;
	  &lt;br /&gt;
	  $this.find('li').hoverIntent(getDropDown, hideDropDown);&lt;br /&gt;
    });&lt;br /&gt;
	&lt;br /&gt;
	function getDropDown(){&lt;br /&gt;
		activeNav = $(this);&lt;br /&gt;
		showDropDown();&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	function showDropDown(){&lt;br /&gt;
		activeNav.find('.'+opts.dropDownClass).slideDown({duration:opts.slideDownDuration, easing:opts.slideDownEasing});&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	function hideDropDown(){&lt;br /&gt;
		activeNav.find('.'+opts.dropDownClass).slideUp({duration:opts.slideUpDuration, easing:opts.slideUpEasing});//hides the current dropdown&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
  };&lt;br /&gt;
})(jQuery);&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/MediaWiki:Common.js</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/MediaWiki:Common.js"/>
				<updated>2013-02-28T20:47:03Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
$(function(){&lt;br /&gt;
  var engine = $('&amp;lt;div class=&amp;quot;portal&amp;quot;/&amp;gt;')&lt;br /&gt;
    .append($('&amp;lt;h5&amp;gt;Engine&amp;lt;/h5&amp;gt;'))&lt;br /&gt;
    .append($('&amp;lt;div class=body/&amp;gt;')&lt;br /&gt;
      .append($('&amp;lt;ul/&amp;gt;')&lt;br /&gt;
        .append($('&amp;lt;li/&amp;gt;')&lt;br /&gt;
          .append($('&amp;lt;select id=engine/&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=mysql&amp;gt;MySQL&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=oracle&amp;gt;Oracle&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=sqlserver&amp;gt;SQL Server&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=postgres&amp;gt;PostgreSQL&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option id=ingres&amp;gt;Ingres&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option id=db2&amp;gt;DB2&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .change(function(){setDefaultText();})&lt;br /&gt;
          )&lt;br /&gt;
        )&lt;br /&gt;
      )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
  $('#right-navigation').after($('&amp;lt;ul/&amp;gt;',{'id':'zoolinks'})&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://csszoo.net',text:'CSS',id:'css_link', title:'Learn CSS! visit CSSzoo'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://progzoo.net',text:'Java',id:'java_link', title:'Hungry for Java tutorials? ProgZoo is for you'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://linuxzoo.net',text:'Linux',id:'linux_link', title:'Linux Zoo tutoials!'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;',{'id':'book'}).append($('&amp;lt;a/&amp;gt;',{href:'http://www.oreilly.com/catalog/sqlhks/',id:'sql_hacks',title:'Try/buy SQL Hacks book'})))&lt;br /&gt;
  );&lt;br /&gt;
&lt;br /&gt;
  $('#p-Reference').before(engine);&lt;br /&gt;
  &lt;br /&gt;
  //Adverts&lt;br /&gt;
  $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/sqlhacks.png',alt:'SQL Hacks book ad'})&lt;br /&gt;
    .appendTo($('#sql_hacks'));&lt;br /&gt;
  $('#p-googleadsense').prependTo('#footer');&lt;br /&gt;
&lt;br /&gt;
  if (wgCanonicalNamespace=='MediaWiki' || wgCanonicalNamespace=='Special')&lt;br /&gt;
    $('#p-googleadsense').hide();&lt;br /&gt;
&lt;br /&gt;
	// Reset localStorage&lt;br /&gt;
	var rst = $('.lsclear');&lt;br /&gt;
	rst.click(function(e){&lt;br /&gt;
	   if (localStorage) &lt;br /&gt;
			localStorage.clear();&lt;br /&gt;
	   location.reload();&lt;br /&gt;
	});&lt;br /&gt;
			   &lt;br /&gt;
	var numberOfQuestions = 0;&lt;br /&gt;
	var numberOfAnswered = 0;&lt;br /&gt;
	var numberOfCorrect = 0;&lt;br /&gt;
	var startAt = Math.max(1,$('#startAt').text()*1);&lt;br /&gt;
	var qu = $('.qu,.ht,.err');&lt;br /&gt;
	var curEng;&lt;br /&gt;
	if (localStorage &amp;amp;&amp;amp; localStorage.getItem(&amp;quot;currentEngine&amp;quot;))&lt;br /&gt;
	{&lt;br /&gt;
		curEng = localStorage.getItem(&amp;quot;currentEngine&amp;quot;);&lt;br /&gt;
		$('#engine').val(curEng);&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
		curEng = $('#engine').val();&lt;br /&gt;
		&lt;br /&gt;
	for(var i=0;i&amp;lt;qu.length;i++){&lt;br /&gt;
		var id = i+1;&lt;br /&gt;
		var q = qu[i];&lt;br /&gt;
		var lsName = wgPageName + '_' + 'frm__' + id;&lt;br /&gt;
		&lt;br /&gt;
		var def = $('.def',q);&lt;br /&gt;
		if (def.length&amp;gt;1){&lt;br /&gt;
			var pick = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
			for(var j=0;j&amp;lt;def.length;j++)&lt;br /&gt;
			  if ($(def[j]).hasClass('e-'+curEng))&lt;br /&gt;
				pick = $(def[j]);&lt;br /&gt;
			def = pick;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		//Hints&lt;br /&gt;
		var hint = $('.hint', q);&lt;br /&gt;
		hint.hide();&lt;br /&gt;
		hint.each(function(){&lt;br /&gt;
			var htitle = $(this).attr(&amp;quot;title&amp;quot;);&lt;br /&gt;
			var hnt = $('&amp;lt;div/&amp;gt;', {'class':'hnt', 'text':htitle});&lt;br /&gt;
			var hidden = $(this);&lt;br /&gt;
			hnt.click(function(e){&lt;br /&gt;
			   e.preventDefault();&lt;br /&gt;
			   hidden.toggle(&amp;quot;slow&amp;quot;);});&lt;br /&gt;
			$(this).before(hnt);&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		var txt = def.text();&lt;br /&gt;
		// replace the default text with user's last query if available in LS&lt;br /&gt;
		if (localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng))&lt;br /&gt;
		{&lt;br /&gt;
			var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
			txt = lsArray[lsArray.length-1];&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var ans = $('.ans',q).text();&lt;br /&gt;
		var tdy = $('.tidy',q).text();&lt;br /&gt;
		var frm = $('&amp;lt;form/&amp;gt;',{name:'frm__'+id,id:'frm__'+id})&lt;br /&gt;
			.append($('&amp;lt;div/&amp;gt;',{'class':'quf'})&lt;br /&gt;
			   .append($('&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;',&lt;br /&gt;
				 {value:$.trim(txt),&lt;br /&gt;
				  rows:2+Math.max(Math.max(4 ,txt.split(/[\n\r]+/).length),ans.split(/[\n\r]+/).length),&lt;br /&gt;
				  cols:2+Math.max(Math.max(45,maxlen(txt.split(/[\n\r]+/))),maxlen(ans.split(/[\n\r]+/))),&lt;br /&gt;
				  'class':'sql',&lt;br /&gt;
				  id:'txtar_'+id}))&lt;br /&gt;
			   .append($('&amp;lt;br/&amp;gt;'))&lt;br /&gt;
			   .append($('&amp;lt;button/&amp;gt;',{text:'Submit SQL','class':'submitSQL',click:goBaby}))&lt;br /&gt;
			   .append($('&amp;lt;div/&amp;gt;',{text:'Restore default','class':'reset',click:restoreDefault}))&lt;br /&gt;
			);&lt;br /&gt;
		&lt;br /&gt;
		def.after(frm);&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		// Display completion information&lt;br /&gt;
		if (localStorage)&lt;br /&gt;
		{&lt;br /&gt;
			if (!localStorage.getItem(lsName))&lt;br /&gt;
				localStorage.setItem(lsName, &amp;quot;unanswered&amp;quot;);&lt;br /&gt;
			if (localStorage.getItem(lsName) == &amp;quot;answered&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have answered this question &amp;lt;u&amp;gt;incorrectly&amp;lt;/u&amp;gt; before.&amp;quot;);&lt;br /&gt;
				numberOfAnswered++;&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qincorrect', 'title':'You have answered this question incorrectly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
			else if (localStorage.getItem(lsName) == &amp;quot;correct&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have answered this question &amp;lt;u&amp;gt;correctly&amp;lt;/u&amp;gt; before.&amp;quot;);&lt;br /&gt;
				numberOfCorrect++;&lt;br /&gt;
				numberOfAnswered++;&lt;br /&gt;
				&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qcorrect', 'title':'You have answered this question correctly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have not answered this question yet.&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var lhs = $('&amp;lt;div/&amp;gt;',{css:{width:'60ex',marginRight:'2ex','float':'left'}});&lt;br /&gt;
		lhs.append($('&amp;lt;span/&amp;gt;',{text:(startAt+i)+'.','class':'id'}));&lt;br /&gt;
		lhs.append($(q).children());&lt;br /&gt;
		$(q).append(lhs);&lt;br /&gt;
                // This line caused problems when styling - I removed the css margin-left from it - M&lt;br /&gt;
		//$(q).append($('&amp;lt;div/&amp;gt;',{text:'result','class':'res',css:{'margin-left':'1ex'}}));&lt;br /&gt;
                $(q).append($('&amp;lt;div/&amp;gt;',{text:'result','class':'res'}));&lt;br /&gt;
		&lt;br /&gt;
		//Show additional info if available for active angine&lt;br /&gt;
		var ecomm = $('.ecomm,.link',q);&lt;br /&gt;
		var ecomm1 = ecomm.filter(false);&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var ecomm = $('.link',q);&lt;br /&gt;
		var ecomm1 = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		numberOfQuestions = id;&lt;br /&gt;
	}&lt;br /&gt;
	if (numberOfQuestions == 0)&lt;br /&gt;
		numberOfQuestions = 1;&lt;br /&gt;
	&lt;br /&gt;
	// Display completion info&lt;br /&gt;
	$(&amp;quot;.summary&amp;quot;).html(&amp;quot;You have answered &amp;quot;+numberOfAnswered+&amp;quot; out of &amp;quot;+numberOfQuestions+&amp;quot; questions on this page.&amp;lt;br/&amp;gt;&amp;quot;+numberOfCorrect+&amp;quot; of your answers were correct.&amp;quot;);&lt;br /&gt;
	// Save completion info&lt;br /&gt;
	if (localStorage)&lt;br /&gt;
	{&lt;br /&gt;
		localStorage.setItem(wgPageName+'_numberOfQuestions', numberOfQuestions);&lt;br /&gt;
		localStorage.setItem(wgPageName+'_numberOfCorrect', numberOfCorrect);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	//Progress bar&lt;br /&gt;
	var maxWidth = $('.progressbar').css('width');&lt;br /&gt;
	var barModification = parseFloat(maxWidth) * numberOfCorrect / numberOfQuestions;&lt;br /&gt;
	$('.progressbar').css('width', barModification);&lt;br /&gt;
	&lt;br /&gt;
  //Put in the answers if url includes answer=1&lt;br /&gt;
  if (window.location.search.contains('answer')){&lt;br /&gt;
    $('&amp;lt;def/&amp;gt;',{text:&amp;quot;Cheat mode&amp;quot;,css:{position:'fixed',right:'2ex',&lt;br /&gt;
                   top:'2ex',width:'12ex',backgroundColor:'yellow'}})&lt;br /&gt;
    $('.quf textarea').each(function(){&lt;br /&gt;
       $(this).val($(this).closest('form').next('.ans').text());&lt;br /&gt;
    })&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
})&lt;br /&gt;
&lt;br /&gt;
function setDefaultText() {&lt;br /&gt;
	var qu = $('.ht,.err');&lt;br /&gt;
	var curEng = $('#engine').val();&lt;br /&gt;
	if (localStorage)&lt;br /&gt;
		localStorage.setItem(&amp;quot;currentEngine&amp;quot;, curEng);&lt;br /&gt;
	for(var i=0;i&amp;lt;qu.length;i++){&lt;br /&gt;
		var id = i+1;&lt;br /&gt;
		var q = qu[i];&lt;br /&gt;
		&lt;br /&gt;
		var def = $('.def',q);&lt;br /&gt;
		if (def.length&amp;gt;1){&lt;br /&gt;
			var pick = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
			for(var j=0;j&amp;lt;def.length;j++)&lt;br /&gt;
			  if ($(def[j]).hasClass('e-'+curEng))&lt;br /&gt;
				pick = $(def[j]);&lt;br /&gt;
			def = pick;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var lsName = wgPageName + '_' + 'frm__' + id;&lt;br /&gt;
		var txt = def.text();&lt;br /&gt;
		// replace the default text with user's last query if available in LS&lt;br /&gt;
		if (localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng))&lt;br /&gt;
		{&lt;br /&gt;
			var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
			txt = lsArray[lsArray.length-1];&lt;br /&gt;
		}&lt;br /&gt;
		$('textarea#txtar_'+id).val(txt);&lt;br /&gt;
		&lt;br /&gt;
		//Show additional info if available for chosen engine&lt;br /&gt;
		var ecomm = $('.ecomm',q);&lt;br /&gt;
		var ecomm1 = ecomm.filter(false);&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		//Show headers for chosen engine&lt;br /&gt;
		var ecomm = $('.link',q);&lt;br /&gt;
		var ecomm1 = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function restoreDefault() {&lt;br /&gt;
	var qu = $(this).parents('.qu, .ht, .err');&lt;br /&gt;
	var def = $('.def',qu);&lt;br /&gt;
	var txt = def.text();&lt;br /&gt;
	qu.find('textarea.sql').val(txt);&lt;br /&gt;
}	&lt;br /&gt;
&lt;br /&gt;
function updateProgressbar() {&lt;br /&gt;
	var numberOfQuestions = parseInt(localStorage.getItem(wgPageName+'_numberOfQuestions'));&lt;br /&gt;
	// A little workaround - max progressbar width is 96% of its background's width&lt;br /&gt;
	var maxWidth = parseFloat($('.progressbarbg').css('width')) * 0.96;&lt;br /&gt;
	var barModification = parseFloat($('.progressbar').css('width')) + maxWidth * 1 / numberOfQuestions;&lt;br /&gt;
	$('.progressbar').css('width', barModification);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function goBaby(){&lt;br /&gt;
  var qu = $(this).parents('.qu, .ht, .err');&lt;br /&gt;
  var lsUse = ((qu[0].getAttribute('class') != 'ht') &amp;amp;&amp;amp; ($(qu[0]).find('.ans').length &amp;gt; 0));&lt;br /&gt;
  var lsName = wgPageName + '_' + $(this).parents('form').attr('id');&lt;br /&gt;
  if (lsUse &amp;amp;&amp;amp; localStorage &amp;amp;&amp;amp; (localStorage.getItem(lsName) != &amp;quot;correct&amp;quot;))&lt;br /&gt;
	localStorage.setItem(lsName, &amp;quot;answered&amp;quot;);&lt;br /&gt;
  var sql = qu.find('textarea.sql').val();&lt;br /&gt;
  var parlst = $('.params').text().split(';');&lt;br /&gt;
  var params = {};&lt;br /&gt;
  for(var i=0;i&amp;lt;parlst.length;i++){&lt;br /&gt;
    var pair = parlst[i].split(':');&lt;br /&gt;
    params[pair[0]]=pair[1];&lt;br /&gt;
  }&lt;br /&gt;
  //Store the sql querry in LS&lt;br /&gt;
  if (localStorage)&lt;br /&gt;
  {&lt;br /&gt;
	var curEng = $('#engine').val();&lt;br /&gt;
	var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
	if (!lsArray)&lt;br /&gt;
		lsArray = new Array();&lt;br /&gt;
	lsArray.push(sql);&lt;br /&gt;
	localStorage.setItem(lsName+&amp;quot;_arr_&amp;quot;+curEng, JSON.stringify(lsArray));&lt;br /&gt;
  }&lt;br /&gt;
  qu.find('.res').addClass('waiting');&lt;br /&gt;
  $.ajax({url:'/sqlgo.pl',cache:false,'type':'post',dataType:'json',&lt;br /&gt;
          data:{sql:sql.replace(/\xA0/g,' '),  //Mediawiki inserts &amp;amp;nbsp; before a %. We need to change it back to a space.CM 13/6/12&lt;br /&gt;
                format:'json',&lt;br /&gt;
                question:$('.id',qu).text(),&lt;br /&gt;
                wgUserName:wgUserName,&lt;br /&gt;
                cookie:$.cookie('oliver'),&lt;br /&gt;
                page:wgPageName,&lt;br /&gt;
                server:$('#engine').val(),&lt;br /&gt;
                setup:$('.setup',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                tidy:$('.tidy',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                answer:$('.ans',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                schema:params['schema']&lt;br /&gt;
               },&lt;br /&gt;
          success:function(d){&lt;br /&gt;
            var res = qu.find('.res');&lt;br /&gt;
            res.empty().removeClass('waiting')&lt;br /&gt;
            if (d.error){&lt;br /&gt;
              res.append($('&amp;lt;h1/&amp;gt;',{text:'SQLZoo System Error:'}))&lt;br /&gt;
              res.append($('&amp;lt;div/&amp;gt;',{text:d.error}))&lt;br /&gt;
              return;&lt;br /&gt;
            }&lt;br /&gt;
			var headerPresent = false;&lt;br /&gt;
            for (var i = 0; i &amp;lt; d.sql.length; i++)&lt;br /&gt;
				{&lt;br /&gt;
				if (!d || !d.sql || !d.sql[i]){&lt;br /&gt;
				  res.append($('&amp;lt;h1/&amp;gt;',{text:'SQLZoo System Error:'}))&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:&amp;quot;Problem with d or d.sql or d.sql[0]&amp;quot;}))&lt;br /&gt;
				  return;&lt;br /&gt;
				}&lt;br /&gt;
				if (d.sql[i].error){&lt;br /&gt;
				  res.append($('&amp;lt;h1/&amp;gt;',{text:'Error:'}))&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:d.sql[i].error}))&lt;br /&gt;
				  return;&lt;br /&gt;
				}&lt;br /&gt;
				var legend = &amp;quot;Result:&amp;quot;;&lt;br /&gt;
				if (d.score &amp;amp;&amp;amp; d.answer &amp;amp;&amp;amp; d.answer.length==1 &amp;amp;&amp;amp; d.answer[0].fields){&lt;br /&gt;
				  if (d.score == 100){&lt;br /&gt;
					legend = 'Correct answer';&lt;br /&gt;
					if (lsUse &amp;amp;&amp;amp; localStorage)&lt;br /&gt;
						localStorage.setItem(lsName, &amp;quot;correct&amp;quot;);&lt;br /&gt;
					var def = $('.def',qu);&lt;br /&gt;
					if (localStorage.getItem(lsName) == &amp;quot;correct&amp;quot;)&lt;br /&gt;
					{&lt;br /&gt;
						if ($(&amp;quot;.qcorrect&amp;quot;, qu).length == 0)&lt;br /&gt;
						{&lt;br /&gt;
							var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qcorrect', 'title':'You have answered this question correctly before.'});&lt;br /&gt;
							def.before(qcorr);&lt;br /&gt;
							updateProgressbar();&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
			      }&lt;br /&gt;
				  else if (d.answer[0].fields.length&amp;gt;d.sql[0].fields.length)&lt;br /&gt;
					legend = 'Too few columns';&lt;br /&gt;
				  else if (d.answer[0].fields.length&amp;lt;d.sql[0].fields.length)&lt;br /&gt;
					legend = 'Too many columns';&lt;br /&gt;
				  else if (d.answer[0].rows.length&amp;gt;d.sql[0].rows.length)&lt;br /&gt;
					legend = 'Too few rows';&lt;br /&gt;
				  else if (d.answer[0].rows.length&amp;lt;d.sql[0].rows.length)&lt;br /&gt;
					legend = 'Too many rows';&lt;br /&gt;
&lt;br /&gt;
				}&lt;br /&gt;
				if (!headerPresent)&lt;br /&gt;
				{&lt;br /&gt;
					res.append($('&amp;lt;h1/&amp;gt;',{text:legend}));&lt;br /&gt;
					headerPresent = true;&lt;br /&gt;
				}&lt;br /&gt;
				var t = mkTable(d.sql[i]);&lt;br /&gt;
				t.addClass('sqlmine')&lt;br /&gt;
				 .appendTo(res);&lt;br /&gt;
				if (d.answer &amp;amp;&amp;amp; d.answer.length&amp;gt;0 &amp;amp;&amp;amp; d.score&amp;lt;100){&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:'Show correct result','class':'showtxt'})&lt;br /&gt;
					.click(function(){&lt;br /&gt;
					  $(this).next().show('slow');&lt;br /&gt;
					})&lt;br /&gt;
				  );&lt;br /&gt;
				  var a = mkTable(d.answer[0]);&lt;br /&gt;
				  a.addClass('sqlans');&lt;br /&gt;
				  a.appendTo(res);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
          },&lt;br /&gt;
          error:function(jqXHR,textStatus,errorThrown){&lt;br /&gt;
            qu.find('.res').empty().removeClass('waiting')&lt;br /&gt;
              .append($('&amp;lt;h1/&amp;gt;',{'class':'syserr',text:'SQLZOO system error:'}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;',{text:textStatus}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;',{text:errorThrown}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;').html(jqXHR.responseText))&lt;br /&gt;
          }&lt;br /&gt;
         });&lt;br /&gt;
		 &lt;br /&gt;
		// Modify completion information&lt;br /&gt;
		var def = $('.def',qu);&lt;br /&gt;
		if (localStorage)&lt;br /&gt;
		{&lt;br /&gt;
			if (localStorage.getItem(lsName) == &amp;quot;answered&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qincorrect', 'title':'You have answered this question incorrectly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
function maxlen(l){&lt;br /&gt;
  var r = 0;&lt;br /&gt;
  for(var i=0;i&amp;lt;l.length;i++)&lt;br /&gt;
    r = Math.max(r,l[i].length);&lt;br /&gt;
  return r;&lt;br /&gt;
}&lt;br /&gt;
function truncate(s){&lt;br /&gt;
  if (s.length&amp;lt;15) return s;&lt;br /&gt;
  return s.substring(0,13)+&amp;quot;..&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
function mkTable(a){&lt;br /&gt;
  var t = $('&amp;lt;table/&amp;gt;');&lt;br /&gt;
  t.append($('&amp;lt;tr/&amp;gt;'));&lt;br /&gt;
  var isnum = [];&lt;br /&gt;
  if (!a.fields || !a.rows) return t;&lt;br /&gt;
  for(var i=0;i&amp;lt;a.fields.length;i++){&lt;br /&gt;
    $('tr',t).append($('&amp;lt;th/&amp;gt;',{text:truncate(a.fields[i])}));&lt;br /&gt;
    var allNum = 1;&lt;br /&gt;
    for(var j=0;j&amp;lt;a.rows.length;j++){&lt;br /&gt;
      if (a.rows[j] &amp;amp;&amp;amp; a.rows[j][i] &amp;amp;&amp;amp; !a.rows[j][i].match(/^[0-9.]*$/))&lt;br /&gt;
        allNum = 0;&lt;br /&gt;
    }&lt;br /&gt;
    isnum.push(allNum);&lt;br /&gt;
  }&lt;br /&gt;
  for(var j=0;j&amp;lt;a.rows.length;j++){&lt;br /&gt;
    var tr = $('&amp;lt;tr/&amp;gt;').appendTo(t);&lt;br /&gt;
    for(var k=0;k&amp;lt;a.rows[j].length;k++){&lt;br /&gt;
      var td = $('&amp;lt;td/&amp;gt;',{text:a.rows[j][k]});&lt;br /&gt;
      if (isnum[k]) td.addClass('r');&lt;br /&gt;
      td.appendTo(tr);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return t;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ======================= Designer js starts here */&lt;br /&gt;
&lt;br /&gt;
// the following scripts should not be present here - they should be linked as external files !!!&lt;br /&gt;
&lt;br /&gt;
// this script helps to manage browser inconsistency across different os&lt;br /&gt;
function css_browser_selector(u){var ua=u.toLowerCase(),is=function(t){return ua.indexOf(t)&amp;gt;-1},g='gecko',w='webkit',s='safari',o='opera',m='mobile',h=document.documentElement,b=[(!(/opera|webtv/i.test(ua))&amp;amp;&amp;amp;/msie\s(\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?g+' ff2':is('firefox/3.5')?g+' ff3 ff3_5':is('firefox/3.6')?g+' ff3 ff3_6':is('firefox/3')?g+' ff3':is('gecko/')?g:is('opera')?o+(/version\/(\d+)/.test(ua)?' '+o+RegExp.$1:(/opera(\s|\/)(\d+)/.test(ua)?' '+o+RegExp.$2:'')):is('konqueror')?'konqueror':is('blackberry')?m+' blackberry':is('android')?m+' android':is('chrome')?w+' chrome':is('iron')?w+' iron':is('applewebkit/')?w+' '+s+(/version\/(\d+)/.test(ua)?' '+s+RegExp.$1:''):is('mozilla/')?g:'',is('j2me')?m+' j2me':is('iphone')?m+' iphone':is('ipod')?m+' ipod':is('ipad')?m+' ipad':is('mac')?'mac':is('darwin')?'mac':is('webtv')?'webtv':is('win')?'win'+(is('windows nt 6.0')?' vista':''):is('freebsd')?'freebsd':(is('x11')||is('linux'))?'linux':'','js']; c = b.join(' '); h.className += ' '+c; return c;}; css_browser_selector(navigator.userAgent);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// display site logo&lt;br /&gt;
$(function(){&lt;br /&gt;
  $('&amp;lt;a/&amp;gt;',{href:'http://sqlzoo.net/w/index.php',id:'mp-logo',title:'Zoo You!'})&lt;br /&gt;
    .append($('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/sql_zoo_logo05.png',alt:'SQLzoo logo'}))&lt;br /&gt;
    .appendTo($('#mw-head-base'))&lt;br /&gt;
});&lt;br /&gt;
 &lt;br /&gt;
// display site description&lt;br /&gt;
$(document).ready(function(){&lt;br /&gt;
  $(function(){&lt;br /&gt;
    $(&amp;quot;#mp-logo&amp;quot;).append(&amp;quot; &amp;lt;h1 id='logo-desc'&amp;gt;Interactive &amp;lt;span&amp;gt;SQL &amp;lt;span&amp;gt;Tutorial&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h1&amp;gt;&amp;quot;);&lt;br /&gt;
  });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// display language selector&lt;br /&gt;
$(function(){&lt;br /&gt;
     $('&amp;lt;div/&amp;gt;',{id:'language'}).appendTo($('#mw-head-base'))&lt;br /&gt;
 &lt;br /&gt;
     var lang = $('&amp;lt;ul/&amp;gt;',{id:'lang','class':'side_nav_sub'});&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;en&amp;quot; href=&amp;quot;/wiki/Main_Page&amp;quot;&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;de&amp;quot; href=&amp;quot;/wiki/Main_Page/de&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;fr&amp;quot; href=&amp;quot;/wiki/Main_Page/fr&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    $('#language').append(lang);&lt;br /&gt;
&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/en2.png',alt:'SQL zoo in English'})&lt;br /&gt;
       .appendTo($('#en'));&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/de2.png',alt:'SQL zoo in German'})&lt;br /&gt;
       .appendTo($('#de'));&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/fr2.png',alt:'SQL zoo in French'})&lt;br /&gt;
       .appendTo($('#fr'));&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// assemble and display main nav menu&lt;br /&gt;
$(function(){&lt;br /&gt;
    var ml1 =&lt;br /&gt;
    [['1 SELECT basics',  'SELECT_basics','Some simple queries to get you started']&lt;br /&gt;
    ,['2 SELECT from WORLD','SELECT_from_WORLD_Tutorial','Finding facts about countries']&lt;br /&gt;
    ,['3 SELECT from Nobel','SELECT_from_Nobel_Tutorial','More practice with SELECT statements']&lt;br /&gt;
    ,['4 SELECT within SELECT','SELECT_within_SELECT_Tutorial','Using the results of one query inside another']&lt;br /&gt;
    ,['5 SUM and COUNT','SUM_and_COUNT','Apply aggregate functions']&lt;br /&gt;
    ,['6 JOIN','The_JOIN_operation','Gathering data from more than one table']&lt;br /&gt;
    ,['7 More JOIN','More_JOIN_operations','Getting data from the movie database']&lt;br /&gt;
    ,['8 Using NULL','Using_Null','Dealing with missing data']&lt;br /&gt;
    ,['9 Self JOIN','Self_join','Dealing with missing data']&lt;br /&gt;
	,['10 SQL Quizzes','Tutorial_Quizzes','Test your knowledge with multiple choice quizzes']&lt;br /&gt;
    ];&lt;br /&gt;
    var mm1 = $('&amp;lt;ul/&amp;gt;',{id:'mm1','class':'dropdown mm_sub'});&lt;br /&gt;
    for(var i=0;i&amp;lt;ml1.length;i++){&lt;br /&gt;
	  var maxWidth = 50; // adjust the value so that it fits menu well&lt;br /&gt;
	  var NoQ = localStorage.getItem(ml1[i][1] + '_numberOfQuestions');&lt;br /&gt;
	  if (!NoQ) NoQ = 1;&lt;br /&gt;
	  var NoC = localStorage.getItem(ml1[i][1] + '_numberOfCorrect');&lt;br /&gt;
	  if (!NoC) NoC = 0;	  &lt;br /&gt;
	  var pbWidth = parseFloat(maxWidth) * NoC / NoQ;&lt;br /&gt;
	  var mprogbar = $('&amp;lt;div/&amp;gt;',{'class':'progressbarbg1'}).append($('&amp;lt;div/&amp;gt;',{'class':'progressbar1', 'id':ml1[i][1], css:{'width':pbWidth}}));&lt;br /&gt;
          mm1.append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'/wiki/'+ml1[i][1],text:ml1[i][0]})).append(ml1[i][2]).append(mprogbar));&lt;br /&gt;
    }&lt;br /&gt;
    var mm2 = $('&amp;lt;ul/&amp;gt;',{id:'mm2','class':'dropdown mm_sub'});&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/AdventureWorks&amp;quot;&amp;gt;1 AdventureWorks&amp;lt;/a&amp;gt; Flogging sports gear. Assessment for CO22008 2007/8&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Neeps&amp;quot;&amp;gt;2 Neeps&amp;lt;/a&amp;gt; A timetable database&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Musicians&amp;quot;&amp;gt;3 Musicians&amp;lt;/a&amp;gt; Concerts and compositions&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Southwind&amp;quot;&amp;gt;4 Southwind&amp;lt;/a&amp;gt; Buying and selling&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Dressmaker&amp;quot;&amp;gt;5 Dressmaker&amp;lt;/a&amp;gt; Constructing clothing&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Congestion Charging&amp;quot;&amp;gt;6 Congestion Charging&amp;lt;/a&amp;gt; Monitoring traffic (old questions)&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Weather data for Southhampton&amp;quot;&amp;gt;7 Weather data for Southhampton&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Album Tracks Style&amp;quot;&amp;gt;8 Album Tracks Style&amp;lt;/a&amp;gt; Music data&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    var mm3 = $('&amp;lt;ul/&amp;gt;',{id:'mm3','class':'dropdown mm_sub'});&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/SELECT_Reference&amp;quot;&amp;gt;SELECT&amp;lt;/a&amp;gt;How to read the data from a database.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/CREATE_and_DROP_Reference&amp;quot;&amp;gt;CREATE and DROP&amp;lt;/a&amp;gt;How to create tables, indexes, views and other things. How to get rid of them.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/INSERT_and_DELETE_Reference&amp;quot;&amp;gt;INSERT and DELETE&amp;lt;/a&amp;gt;How to put records into a table, change them and how to take them out again.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/DATE_and_TIME_Reference&amp;quot;&amp;gt;DATE and TIME&amp;lt;/a&amp;gt;How to work with dates; adding, subtracting and formatting.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Functions_Reference&amp;quot;&amp;gt;Functions&amp;lt;/a&amp;gt;How to use string functions, logical functions and mathematical functions.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Users_Reference&amp;quot;&amp;gt;Users&amp;lt;/a&amp;gt;How to create users, GRANT and DENY access, get at other peoples tables. How to find processes and kill them.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Meta_Data_Reference&amp;quot;&amp;gt;Meta Data&amp;lt;/a&amp;gt;How to find out what tables and columns exist. How to count and limit the rows return.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Hacks_Reference&amp;quot;&amp;gt;SQL Hacks&amp;lt;/a&amp;gt;Useful SQL hacks .&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    var mm = $('&amp;lt;ul/&amp;gt;',{id:'main_menu'}).appendTo('#mw-head-base');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm1&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Tutorials&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm2&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Assessments&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm3&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Reference&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    $('#mm1').append(mm1);&lt;br /&gt;
    $('#mm2').append(mm2);&lt;br /&gt;
    $('#mm3').append(mm3);&lt;br /&gt;
&lt;br /&gt;
    $('#main_menu').wrap('&amp;lt;div id=&amp;quot;navigation_horiz&amp;quot; /&amp;gt;');&lt;br /&gt;
    $('#navigation_horiz').naviDropDown({&lt;br /&gt;
      dropDownWidth: '35em'&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// stick on top elements that need to be visible&lt;br /&gt;
$(function(){&lt;br /&gt;
    $(&amp;quot;#main_menu&amp;quot;).addClass(&amp;quot;stickableMenu&amp;quot;);&lt;br /&gt;
    $(&amp;quot;#p-Reference&amp;quot;).addClass(&amp;quot;stickableRef&amp;quot;);&lt;br /&gt;
    $(&amp;quot;.ref_section&amp;quot;).addClass(&amp;quot;stickableDbRef&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$(document).scroll(function() {&lt;br /&gt;
    var useFixedMenu = $(document).scrollTop() &amp;gt; 175;&lt;br /&gt;
    $('.stickableMenu').toggleClass('fixedMenu', useFixedMenu);&lt;br /&gt;
    &lt;br /&gt;
//    var useFixedRef = $(document).scrollTop() &amp;gt; 275;&lt;br /&gt;
//    $('.stickableRef').toggleClass('fixedRef', useFixedRef);&lt;br /&gt;
&lt;br /&gt;
    $('.stickableDbRef').toggleClass('fixedDbRef', $(document).scrollTop() &amp;gt; 275);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// swap classes on external links to change their side icons&lt;br /&gt;
$(function(){&lt;br /&gt;
 $(&amp;quot;.external&amp;quot;).addClass(&amp;quot;zoo_external&amp;quot;);&lt;br /&gt;
 $(&amp;quot;.external&amp;quot;).removeClass(&amp;quot;external&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
/* === Designer js ends here === */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Insert tables into Quiz distractors&lt;br /&gt;
var qq = $('.question');&lt;br /&gt;
for (var i = 0; i &amp;lt; qq.length; i++)&lt;br /&gt;
{&lt;br /&gt;
	var q = $(qq[i]);&lt;br /&gt;
	var distractors = &amp;quot;ABCDE&amp;quot;;&lt;br /&gt;
	for (var j=0;j&amp;lt;distractors.length;j++){&lt;br /&gt;
		var tans = $('table caption:contains(&amp;quot;Table-'+distractors[j]+'&amp;quot;)', q).parents('table');&lt;br /&gt;
		if (tans.length&amp;gt;0)&lt;br /&gt;
		{&lt;br /&gt;
			var ttd = $('table tr td:contains(&amp;quot;Table-'+distractors[j]+'&amp;quot;)', q);&lt;br /&gt;
			if (ttd.length&amp;gt;0){&lt;br /&gt;
			   ttd.empty();&lt;br /&gt;
			   ttd.append(tans);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$(function(){&lt;br /&gt;
  $('input.check').each(function(i,e){&lt;br /&gt;
    $(this).attr('id','quiz_d_'+i);&lt;br /&gt;
  });&lt;br /&gt;
  $('tr.proposal').each(function(i,e){&lt;br /&gt;
    var tds = $('td',$(this));&lt;br /&gt;
    var html1= $(tds[1]).html();&lt;br /&gt;
    $(tds[1]).html($('&amp;lt;label/&amp;gt;',{html:html1,'for':$('input',$(this)).attr('id') }));&lt;br /&gt;
  })&lt;br /&gt;
})&lt;br /&gt;
//Connor 23/7/12 creates the labels for the multiple choice questions allowing them to be highlighted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Analytics code&lt;br /&gt;
  var _gaq = _gaq || [];&lt;br /&gt;
  _gaq.push(['_setAccount', 'UA-33860668-1']);&lt;br /&gt;
  _gaq.push(['_trackPageview']);&lt;br /&gt;
&lt;br /&gt;
  (function() {&lt;br /&gt;
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;&lt;br /&gt;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';&lt;br /&gt;
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);&lt;br /&gt;
  })();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//JSON&lt;br /&gt;
(function($){var escapeable=/[&amp;quot;\\\x00-\x1f\x7f-\x9f]/g,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','&amp;quot;':'\\&amp;quot;','\\':'\\\\'};$.toJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.stringify?JSON.stringify:function(o){if(o===null){return'null';}&lt;br /&gt;
var type=typeof o;if(type==='undefined'){return undefined;}&lt;br /&gt;
if(type==='number'||type==='boolean'){return''+o;}&lt;br /&gt;
if(type==='string'){return $.quoteString(o);}&lt;br /&gt;
if(type==='object'){if(typeof o.toJSON==='function'){return $.toJSON(o.toJSON());}&lt;br /&gt;
if(o.constructor===Date){var month=o.getUTCMonth()+1,day=o.getUTCDate(),year=o.getUTCFullYear(),hours=o.getUTCHours(),minutes=o.getUTCMinutes(),seconds=o.getUTCSeconds(),milli=o.getUTCMilliseconds();if(month&amp;lt;10){month='0'+month;}&lt;br /&gt;
if(day&amp;lt;10){day='0'+day;}&lt;br /&gt;
if(hours&amp;lt;10){hours='0'+hours;}&lt;br /&gt;
if(minutes&amp;lt;10){minutes='0'+minutes;}&lt;br /&gt;
if(seconds&amp;lt;10){seconds='0'+seconds;}&lt;br /&gt;
if(milli&amp;lt;100){milli='0'+milli;}&lt;br /&gt;
if(milli&amp;lt;10){milli='0'+milli;}&lt;br /&gt;
return'&amp;quot;'+year+'-'+month+'-'+day+'T'+&lt;br /&gt;
hours+':'+minutes+':'+seconds+'.'+milli+'Z&amp;quot;';}&lt;br /&gt;
if(o.constructor===Array){var ret=[];for(var i=0;i&amp;lt;o.length;i++){ret.push($.toJSON(o[i])||'null');}&lt;br /&gt;
return'['+ret.join(',')+']';}&lt;br /&gt;
var name,val,pairs=[];for(var k in o){type=typeof k;if(type==='number'){name='&amp;quot;'+k+'&amp;quot;';}else if(type==='string'){name=$.quoteString(k);}else{continue;}&lt;br /&gt;
type=typeof o[k];if(type==='function'||type==='undefined'){continue;}&lt;br /&gt;
val=$.toJSON(o[k]);pairs.push(name+':'+val);}&lt;br /&gt;
return'{'+pairs.join(',')+'}';}};$.evalJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.parse?JSON.parse:function(src){return eval('('+src+')');};$.secureEvalJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.parse?JSON.parse:function(src){var filtered=src.replace(/\\[&amp;quot;\\\/bfnrtu]/g,'@').replace(/&amp;quot;[^&amp;quot;\\\n\r]*&amp;quot;|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,'');if(/^[\],:{}\s]*$/.test(filtered)){return eval('('+src+')');}else{throw new SyntaxError('Error parsing JSON, source is not valid.');}};$.quoteString=function(string){if(string.match(escapeable)){return'&amp;quot;'+string.replace(escapeable,function(a){var c=meta[a];if(typeof c==='string'){return c;}&lt;br /&gt;
c=a.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16);})+'&amp;quot;';}&lt;br /&gt;
return'&amp;quot;'+string+'&amp;quot;';};})(jQuery);&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/&lt;br /&gt;
 *&lt;br /&gt;
 * Uses the built in easing capabilities added In jQuery 1.1&lt;br /&gt;
 * to offer multiple easing options&lt;br /&gt;
 *&lt;br /&gt;
 * TERMS OF USE - jQuery Easing&lt;br /&gt;
 * &lt;br /&gt;
 * Open source under the BSD License. &lt;br /&gt;
 * &lt;br /&gt;
 * Copyright Â© 2008 George McGinley Smith&lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without modification, &lt;br /&gt;
 * are permitted provided that the following conditions are met:&lt;br /&gt;
 * &lt;br /&gt;
 * Redistributions of source code must retain the above copyright notice, this list of &lt;br /&gt;
 * conditions and the following disclaimer.&lt;br /&gt;
 * Redistributions in binary form must reproduce the above copyright notice, this list &lt;br /&gt;
 * of conditions and the following disclaimer in the documentation and/or other materials &lt;br /&gt;
 * provided with the distribution.&lt;br /&gt;
 * &lt;br /&gt;
 * Neither the name of the author nor the names of contributors may be used to endorse &lt;br /&gt;
 * or promote products derived from this software without specific prior written permission.&lt;br /&gt;
 * &lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY &lt;br /&gt;
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF&lt;br /&gt;
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE&lt;br /&gt;
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE&lt;br /&gt;
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED &lt;br /&gt;
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED &lt;br /&gt;
 * OF THE POSSIBILITY OF SUCH DAMAGE. &lt;br /&gt;
 *&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
// t: current time, b: begInnIng value, c: change In value, d: duration&lt;br /&gt;
jQuery.easing['jswing'] = jQuery.easing['swing'];&lt;br /&gt;
&lt;br /&gt;
jQuery.extend( jQuery.easing,&lt;br /&gt;
{&lt;br /&gt;
	def: 'easeOutQuad',&lt;br /&gt;
	swing: function (x, t, b, c, d) {&lt;br /&gt;
		//alert(jQuery.easing.default);&lt;br /&gt;
		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuad: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuad: function (x, t, b, c, d) {&lt;br /&gt;
		return -c *(t/=d)*(t-2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuad: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t + b;&lt;br /&gt;
		return -c/2 * ((--t)*(t-2) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInCubic: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutCubic: function (x, t, b, c, d) {&lt;br /&gt;
		return c*((t=t/d-1)*t*t + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutCubic: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t + b;&lt;br /&gt;
		return c/2*((t-=2)*t*t + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuart: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuart: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * ((t=t/d-1)*t*t*t - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuart: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t*t + b;&lt;br /&gt;
		return -c/2 * ((t-=2)*t*t*t - 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuint: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuint: function (x, t, b, c, d) {&lt;br /&gt;
		return c*((t=t/d-1)*t*t*t*t + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuint: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t*t*t + b;&lt;br /&gt;
		return c/2*((t-=2)*t*t*t*t + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInSine: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutSine: function (x, t, b, c, d) {&lt;br /&gt;
		return c * Math.sin(t/d * (Math.PI/2)) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutSine: function (x, t, b, c, d) {&lt;br /&gt;
		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInExpo: function (x, t, b, c, d) {&lt;br /&gt;
		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutExpo: function (x, t, b, c, d) {&lt;br /&gt;
		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutExpo: function (x, t, b, c, d) {&lt;br /&gt;
		if (t==0) return b;&lt;br /&gt;
		if (t==d) return b+c;&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;&lt;br /&gt;
		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInCirc: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutCirc: function (x, t, b, c, d) {&lt;br /&gt;
		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutCirc: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;&lt;br /&gt;
		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		if (t &amp;lt; 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;&lt;br /&gt;
		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158;&lt;br /&gt;
		return c*(t/=d)*t*((s+1)*t - s) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158;&lt;br /&gt;
		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158; &lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;&lt;br /&gt;
		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInBounce: function (x, t, b, c, d) {&lt;br /&gt;
		return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutBounce: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d) &amp;lt; (1/2.75)) {&lt;br /&gt;
			return c*(7.5625*t*t) + b;&lt;br /&gt;
		} else if (t &amp;lt; (2/2.75)) {&lt;br /&gt;
			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;&lt;br /&gt;
		} else if (t &amp;lt; (2.5/2.75)) {&lt;br /&gt;
			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;&lt;br /&gt;
		} else {&lt;br /&gt;
			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutBounce: function (x, t, b, c, d) {&lt;br /&gt;
		if (t &amp;lt; d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;&lt;br /&gt;
		return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *&lt;br /&gt;
 * TERMS OF USE - EASING EQUATIONS&lt;br /&gt;
 * &lt;br /&gt;
 * Open source under the BSD License. &lt;br /&gt;
 * &lt;br /&gt;
 * Copyright Â© 2001 Robert Penner&lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without modification, &lt;br /&gt;
 * are permitted provided that the following conditions are met:&lt;br /&gt;
 * &lt;br /&gt;
 * Redistributions of source code must retain the above copyright notice, this list of &lt;br /&gt;
 * conditions and the following disclaimer.&lt;br /&gt;
 * Redistributions in binary form must reproduce the above copyright notice, this list &lt;br /&gt;
 * of conditions and the following disclaimer in the documentation and/or other materials &lt;br /&gt;
 * provided with the distribution.&lt;br /&gt;
 * &lt;br /&gt;
 * Neither the name of the author nor the names of contributors may be used to endorse &lt;br /&gt;
 * or promote products derived from this software without specific prior written permission.&lt;br /&gt;
 * &lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY &lt;br /&gt;
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF&lt;br /&gt;
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE&lt;br /&gt;
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE&lt;br /&gt;
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED &lt;br /&gt;
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED &lt;br /&gt;
 * OF THE POSSIBILITY OF SUCH DAMAGE. &lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
/**&lt;br /&gt;
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+&lt;br /&gt;
* &amp;lt;http://cherne.net/brian/resources/jquery.hoverIntent.html&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* @param  f  onMouseOver function || An object with configuration options&lt;br /&gt;
* @param  g  onMouseOut function  || Nothing (use configuration options object)&lt;br /&gt;
* @author    Brian Cherne &amp;lt;brian@cherne.net&amp;gt;&lt;br /&gt;
*/&lt;br /&gt;
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))&amp;lt;cfg.sensitivity){$(ob).unbind(&amp;quot;mousemove&amp;quot;,track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type==&amp;quot;mouseover&amp;quot;?e.fromElement:e.toElement)||e.relatedTarget;while(p&amp;amp;&amp;amp;p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type==&amp;quot;mouseover&amp;quot;){pX=ev.pageX;pY=ev.pageY;$(ob).bind(&amp;quot;mousemove&amp;quot;,track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind(&amp;quot;mousemove&amp;quot;,track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);&lt;br /&gt;
/**&lt;br /&gt;
* plugin: jquery.naviDropDown.js&lt;br /&gt;
* author: kt.cheung @ Brandammo&lt;br /&gt;
* website: www.brandammo.co.uk&lt;br /&gt;
* version: 1.0&lt;br /&gt;
* date: 19th feb 2011&lt;br /&gt;
* description: simple jquery navigation drop down menu with easing and hoverIntent&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 2011 KT Cheung&lt;br /&gt;
&lt;br /&gt;
Permission is hereby granted, free of charge, to any person obtaining a copy&lt;br /&gt;
of this software and associated documentation files (the &amp;quot;Software&amp;quot;), to deal&lt;br /&gt;
in the Software without restriction, including without limitation the rights&lt;br /&gt;
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell&lt;br /&gt;
copies of the Software, and to permit persons to whom the Software is&lt;br /&gt;
furnished to do so, subject to the following conditions:&lt;br /&gt;
&lt;br /&gt;
The above copyright notice and this permission notice shall be included in&lt;br /&gt;
all copies or substantial portions of the Software.&lt;br /&gt;
&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SOFTWARE.&lt;br /&gt;
&lt;br /&gt;
**/&lt;br /&gt;
&lt;br /&gt;
(function($){&lt;br /&gt;
&lt;br /&gt;
  $.fn.naviDropDown = function(options) {  &lt;br /&gt;
  &lt;br /&gt;
	//set up default options &lt;br /&gt;
	var defaults = { &lt;br /&gt;
		dropDownClass: 'dropdown', //the class name for your drop down&lt;br /&gt;
		dropDownWidth: 'auto',	//the default width of drop down elements&lt;br /&gt;
		slideDownEasing: 'easeInOutCirc', //easing method for slideDown&lt;br /&gt;
		slideUpEasing: 'easeInOutCirc', //easing method for slideUp&lt;br /&gt;
		slideDownDuration: 500, //easing duration for slideDown&lt;br /&gt;
		slideUpDuration: 500, //easing duration for slideUp&lt;br /&gt;
		orientation: 'horizontal' //orientation - either 'horizontal' or 'vertical'&lt;br /&gt;
	}; &lt;br /&gt;
  	&lt;br /&gt;
	var opts = $.extend({}, defaults, options); 	&lt;br /&gt;
&lt;br /&gt;
    return this.each(function() {  &lt;br /&gt;
	  var $this = $(this);&lt;br /&gt;
	  $this.find('.'+opts.dropDownClass).css('width', opts.dropDownWidth).css('display', 'none');&lt;br /&gt;
	  &lt;br /&gt;
	  var buttonWidth = $this.find('.'+opts.dropDownClass).parent().width() + 'px';&lt;br /&gt;
	  var buttonHeight = $this.find('.'+opts.dropDownClass).parent().height() + 'px';&lt;br /&gt;
	  if(opts.orientation == 'horizontal') {&lt;br /&gt;
		//$this.find('.'+opts.dropDownClass).css('left', '0px').css('top', buttonHeight);&lt;br /&gt;
	  }&lt;br /&gt;
	  if(opts.orientation == 'vertical') {&lt;br /&gt;
		$this.find('.'+opts.dropDownClass).css('left', buttonWidth).css('top', '0px');&lt;br /&gt;
	  }&lt;br /&gt;
	  &lt;br /&gt;
	  $this.find('li').hoverIntent(getDropDown, hideDropDown);&lt;br /&gt;
    });&lt;br /&gt;
	&lt;br /&gt;
	function getDropDown(){&lt;br /&gt;
		activeNav = $(this);&lt;br /&gt;
		showDropDown();&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	function showDropDown(){&lt;br /&gt;
		activeNav.find('.'+opts.dropDownClass).slideDown({duration:opts.slideDownDuration, easing:opts.slideDownEasing});&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	function hideDropDown(){&lt;br /&gt;
		activeNav.find('.'+opts.dropDownClass).slideUp({duration:opts.slideUpDuration, easing:opts.slideUpEasing});//hides the current dropdown&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
  };&lt;br /&gt;
})(jQuery);&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/MediaWiki:Common.js</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/MediaWiki:Common.js"/>
				<updated>2013-02-28T20:43:06Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
$(function(){&lt;br /&gt;
  var engine = $('&amp;lt;div class=&amp;quot;portal&amp;quot;/&amp;gt;')&lt;br /&gt;
    .append($('&amp;lt;h5&amp;gt;Engine&amp;lt;/h5&amp;gt;'))&lt;br /&gt;
    .append($('&amp;lt;div class=body/&amp;gt;')&lt;br /&gt;
      .append($('&amp;lt;ul/&amp;gt;')&lt;br /&gt;
        .append($('&amp;lt;li/&amp;gt;')&lt;br /&gt;
          .append($('&amp;lt;select id=engine/&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=mysql&amp;gt;MySQL&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=oracle&amp;gt;Oracle&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=sqlserver&amp;gt;SQL Server&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=postgres&amp;gt;PostgreSQL&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option id=ingres&amp;gt;Ingres&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option id=db2&amp;gt;DB2&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .change(function(){setDefaultText();})&lt;br /&gt;
          )&lt;br /&gt;
        )&lt;br /&gt;
      )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
  $('#right-navigation').after($('&amp;lt;ul/&amp;gt;',{'id':'zoolinks'})&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://csszoo.net',text:'CSS',id:'css_link', title:'Learn CSS! visit CSSzoo'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://progzoo.net',text:'Java',id:'java_link', title:'Hungry for Java tutorials? ProgZoo is for you'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://linuxzoo.net',text:'Linux',id:'linux_link', title:'Linux Zoo tutoials!'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;',{'id':'book'}).append($('&amp;lt;a/&amp;gt;',{href:'http://www.oreilly.com/catalog/sqlhks/',id:'sql_hacks',title:'Try/buy SQL Hacks book'})))&lt;br /&gt;
  );&lt;br /&gt;
&lt;br /&gt;
  $('#p-Reference').before(engine);&lt;br /&gt;
  &lt;br /&gt;
  //Adverts&lt;br /&gt;
  $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/sqlhacks.png',alt:'SQL Hacks book ad'})&lt;br /&gt;
    .appendTo($('#sql_hacks'));&lt;br /&gt;
  $('#p-googleadsense').prependTo('#footer');&lt;br /&gt;
&lt;br /&gt;
  if (wgCanonicalNamespace=='MediaWiki' || wgCanonicalNamespace=='Special')&lt;br /&gt;
    $('#p-googleadsense').hide();&lt;br /&gt;
&lt;br /&gt;
	// Reset localStorage&lt;br /&gt;
	var rst = $('.lsclear');&lt;br /&gt;
	rst.click(function(e){&lt;br /&gt;
	   if (localStorage) &lt;br /&gt;
			localStorage.clear();&lt;br /&gt;
	   location.reload();&lt;br /&gt;
	});&lt;br /&gt;
			   &lt;br /&gt;
	var numberOfQuestions = 0;&lt;br /&gt;
	var numberOfAnswered = 0;&lt;br /&gt;
	var numberOfCorrect = 0;&lt;br /&gt;
	var startAt = Math.max(1,$('#startAt').text()*1);&lt;br /&gt;
	var qu = $('.qu,.ht,.err');&lt;br /&gt;
	var curEng;&lt;br /&gt;
	if (localStorage &amp;amp;&amp;amp; localStorage.getItem(&amp;quot;currentEngine&amp;quot;))&lt;br /&gt;
	{&lt;br /&gt;
		curEng = localStorage.getItem(&amp;quot;currentEngine&amp;quot;);&lt;br /&gt;
		$('#engine').val(curEng);&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
		curEng = $('#engine').val();&lt;br /&gt;
		&lt;br /&gt;
	for(var i=0;i&amp;lt;qu.length;i++){&lt;br /&gt;
		var id = i+1;&lt;br /&gt;
		var q = qu[i];&lt;br /&gt;
		var lsName = wgPageName + '_' + 'frm__' + id;&lt;br /&gt;
		&lt;br /&gt;
		var def = $('.def',q);&lt;br /&gt;
		if (def.length&amp;gt;1){&lt;br /&gt;
			var pick = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
			for(var j=0;j&amp;lt;def.length;j++)&lt;br /&gt;
			  if ($(def[j]).hasClass('e-'+curEng))&lt;br /&gt;
				pick = $(def[j]);&lt;br /&gt;
			def = pick;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		//Hints&lt;br /&gt;
		var hint = $('.hint', q);&lt;br /&gt;
		hint.hide();&lt;br /&gt;
		hint.each(function(){&lt;br /&gt;
			var htitle = $(this).attr(&amp;quot;title&amp;quot;);&lt;br /&gt;
			var hnt = $('&amp;lt;div/&amp;gt;', {'class':'hnt', 'text':htitle});&lt;br /&gt;
			var hidden = $(this);&lt;br /&gt;
			hnt.click(function(e){&lt;br /&gt;
			   e.preventDefault();&lt;br /&gt;
			   hidden.toggle(&amp;quot;slow&amp;quot;);});&lt;br /&gt;
			$(this).before(hnt);&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		var txt = def.text();&lt;br /&gt;
		// replace the default text with user's last query if available in LS&lt;br /&gt;
		if (localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng))&lt;br /&gt;
		{&lt;br /&gt;
			var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
			txt = lsArray[lsArray.length-1];&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var ans = $('.ans',q).text();&lt;br /&gt;
		var tdy = $('.tidy',q).text();&lt;br /&gt;
		var frm = $('&amp;lt;form/&amp;gt;',{name:'frm__'+id,id:'frm__'+id})&lt;br /&gt;
			.append($('&amp;lt;div/&amp;gt;',{'class':'quf'})&lt;br /&gt;
			   .append($('&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;',&lt;br /&gt;
				 {value:$.trim(txt),&lt;br /&gt;
				  rows:2+Math.max(Math.max(4 ,txt.split(/[\n\r]+/).length),ans.split(/[\n\r]+/).length),&lt;br /&gt;
				  cols:2+Math.max(Math.max(45,maxlen(txt.split(/[\n\r]+/))),maxlen(ans.split(/[\n\r]+/))),&lt;br /&gt;
				  'class':'sql',&lt;br /&gt;
				  id:'txtar_'+id}))&lt;br /&gt;
			   .append($('&amp;lt;br/&amp;gt;'))&lt;br /&gt;
			   .append($('&amp;lt;button/&amp;gt;',{text:'Submit SQL','class':'submitSQL',click:goBaby}))&lt;br /&gt;
			   .append($('&amp;lt;div/&amp;gt;',{text:'Restore default','class':'reset',click:restoreDefault}))&lt;br /&gt;
			);&lt;br /&gt;
		&lt;br /&gt;
		def.after(frm);&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		// Display completion information&lt;br /&gt;
		if (localStorage)&lt;br /&gt;
		{&lt;br /&gt;
			if (!localStorage.getItem(lsName))&lt;br /&gt;
				localStorage.setItem(lsName, &amp;quot;unanswered&amp;quot;);&lt;br /&gt;
			if (localStorage.getItem(lsName) == &amp;quot;answered&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have answered this question &amp;lt;u&amp;gt;incorrectly&amp;lt;/u&amp;gt; before.&amp;quot;);&lt;br /&gt;
				numberOfAnswered++;&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qincorrect', 'title':'You have answered this question incorrectly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
			else if (localStorage.getItem(lsName) == &amp;quot;correct&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have answered this question &amp;lt;u&amp;gt;correctly&amp;lt;/u&amp;gt; before.&amp;quot;);&lt;br /&gt;
				numberOfCorrect++;&lt;br /&gt;
				numberOfAnswered++;&lt;br /&gt;
				&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qcorrect', 'title':'You have answered this question correctly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have not answered this question yet.&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var lhs = $('&amp;lt;div/&amp;gt;',{css:{width:'60ex',marginRight:'2ex','float':'left'}});&lt;br /&gt;
		lhs.append($('&amp;lt;span/&amp;gt;',{text:(startAt+i)+'.','class':'id'}));&lt;br /&gt;
		lhs.append($(q).children());&lt;br /&gt;
		$(q).append(lhs);&lt;br /&gt;
                // This line caused problems when styling - I removed the css margin-left from it - M&lt;br /&gt;
		//$(q).append($('&amp;lt;div/&amp;gt;',{text:'result','class':'res',css:{'margin-left':'1ex'}}));&lt;br /&gt;
                $(q).append($('&amp;lt;div/&amp;gt;',{text:'result','class':'res'}));&lt;br /&gt;
		&lt;br /&gt;
		//Show additional info if available for active angine&lt;br /&gt;
		var ecomm = $('.ecomm,.link',q);&lt;br /&gt;
		var ecomm1 = ecomm.filter(false);&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var ecomm = $('.link',q);&lt;br /&gt;
		var ecomm1 = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		numberOfQuestions = id;&lt;br /&gt;
	}&lt;br /&gt;
	if (numberOfQuestions == 0)&lt;br /&gt;
		numberOfQuestions = 1;&lt;br /&gt;
	&lt;br /&gt;
	// Display completion info&lt;br /&gt;
	$(&amp;quot;.summary&amp;quot;).html(&amp;quot;You have answered &amp;quot;+numberOfAnswered+&amp;quot; out of &amp;quot;+numberOfQuestions+&amp;quot; questions on this page.&amp;lt;br/&amp;gt;&amp;quot;+numberOfCorrect+&amp;quot; of your answers were correct.&amp;quot;);&lt;br /&gt;
	// Save completion info&lt;br /&gt;
	if (localStorage)&lt;br /&gt;
	{&lt;br /&gt;
		localStorage.setItem(wgPageName+'_numberOfQuestions', numberOfQuestions);&lt;br /&gt;
		localStorage.setItem(wgPageName+'_numberOfCorrect', numberOfCorrect);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	//Progress bar&lt;br /&gt;
	var maxWidth = $('.progressbar').css('width');&lt;br /&gt;
	var barModification = parseFloat(maxWidth) * numberOfCorrect / numberOfQuestions;&lt;br /&gt;
	$('.progressbar').css('width', barModification);&lt;br /&gt;
	&lt;br /&gt;
  //Put in the answers if url includes answer=1&lt;br /&gt;
  if (window.location.search.contains('answer')){&lt;br /&gt;
    $('.quf textarea').each(function(){&lt;br /&gt;
       $(this).val($(this).closest('form').next('.ans').text());&lt;br /&gt;
    })&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
})&lt;br /&gt;
&lt;br /&gt;
function setDefaultText() {&lt;br /&gt;
	var qu = $('.ht,.err');&lt;br /&gt;
	var curEng = $('#engine').val();&lt;br /&gt;
	if (localStorage)&lt;br /&gt;
		localStorage.setItem(&amp;quot;currentEngine&amp;quot;, curEng);&lt;br /&gt;
	for(var i=0;i&amp;lt;qu.length;i++){&lt;br /&gt;
		var id = i+1;&lt;br /&gt;
		var q = qu[i];&lt;br /&gt;
		&lt;br /&gt;
		var def = $('.def',q);&lt;br /&gt;
		if (def.length&amp;gt;1){&lt;br /&gt;
			var pick = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
			for(var j=0;j&amp;lt;def.length;j++)&lt;br /&gt;
			  if ($(def[j]).hasClass('e-'+curEng))&lt;br /&gt;
				pick = $(def[j]);&lt;br /&gt;
			def = pick;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var lsName = wgPageName + '_' + 'frm__' + id;&lt;br /&gt;
		var txt = def.text();&lt;br /&gt;
		// replace the default text with user's last query if available in LS&lt;br /&gt;
		if (localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng))&lt;br /&gt;
		{&lt;br /&gt;
			var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
			txt = lsArray[lsArray.length-1];&lt;br /&gt;
		}&lt;br /&gt;
		$('textarea#txtar_'+id).val(txt);&lt;br /&gt;
		&lt;br /&gt;
		//Show additional info if available for chosen engine&lt;br /&gt;
		var ecomm = $('.ecomm',q);&lt;br /&gt;
		var ecomm1 = ecomm.filter(false);&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		//Show headers for chosen engine&lt;br /&gt;
		var ecomm = $('.link',q);&lt;br /&gt;
		var ecomm1 = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function restoreDefault() {&lt;br /&gt;
	var qu = $(this).parents('.qu, .ht, .err');&lt;br /&gt;
	var def = $('.def',qu);&lt;br /&gt;
	var txt = def.text();&lt;br /&gt;
	qu.find('textarea.sql').val(txt);&lt;br /&gt;
}	&lt;br /&gt;
&lt;br /&gt;
function updateProgressbar() {&lt;br /&gt;
	var numberOfQuestions = parseInt(localStorage.getItem(wgPageName+'_numberOfQuestions'));&lt;br /&gt;
	// A little workaround - max progressbar width is 96% of its background's width&lt;br /&gt;
	var maxWidth = parseFloat($('.progressbarbg').css('width')) * 0.96;&lt;br /&gt;
	var barModification = parseFloat($('.progressbar').css('width')) + maxWidth * 1 / numberOfQuestions;&lt;br /&gt;
	$('.progressbar').css('width', barModification);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function goBaby(){&lt;br /&gt;
  var qu = $(this).parents('.qu, .ht, .err');&lt;br /&gt;
  var lsUse = ((qu[0].getAttribute('class') != 'ht') &amp;amp;&amp;amp; ($(qu[0]).find('.ans').length &amp;gt; 0));&lt;br /&gt;
  var lsName = wgPageName + '_' + $(this).parents('form').attr('id');&lt;br /&gt;
  if (lsUse &amp;amp;&amp;amp; localStorage &amp;amp;&amp;amp; (localStorage.getItem(lsName) != &amp;quot;correct&amp;quot;))&lt;br /&gt;
	localStorage.setItem(lsName, &amp;quot;answered&amp;quot;);&lt;br /&gt;
  var sql = qu.find('textarea.sql').val();&lt;br /&gt;
  var parlst = $('.params').text().split(';');&lt;br /&gt;
  var params = {};&lt;br /&gt;
  for(var i=0;i&amp;lt;parlst.length;i++){&lt;br /&gt;
    var pair = parlst[i].split(':');&lt;br /&gt;
    params[pair[0]]=pair[1];&lt;br /&gt;
  }&lt;br /&gt;
  //Store the sql querry in LS&lt;br /&gt;
  if (localStorage)&lt;br /&gt;
  {&lt;br /&gt;
	var curEng = $('#engine').val();&lt;br /&gt;
	var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
	if (!lsArray)&lt;br /&gt;
		lsArray = new Array();&lt;br /&gt;
	lsArray.push(sql);&lt;br /&gt;
	localStorage.setItem(lsName+&amp;quot;_arr_&amp;quot;+curEng, JSON.stringify(lsArray));&lt;br /&gt;
  }&lt;br /&gt;
  qu.find('.res').addClass('waiting');&lt;br /&gt;
  $.ajax({url:'/sqlgo.pl',cache:false,'type':'post',dataType:'json',&lt;br /&gt;
          data:{sql:sql.replace(/\xA0/g,' '),  //Mediawiki inserts &amp;amp;nbsp; before a %. We need to change it back to a space.CM 13/6/12&lt;br /&gt;
                format:'json',&lt;br /&gt;
                question:$('.id',qu).text(),&lt;br /&gt;
                wgUserName:wgUserName,&lt;br /&gt;
                cookie:$.cookie('oliver'),&lt;br /&gt;
                page:wgPageName,&lt;br /&gt;
                server:$('#engine').val(),&lt;br /&gt;
                setup:$('.setup',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                tidy:$('.tidy',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                answer:$('.ans',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                schema:params['schema']&lt;br /&gt;
               },&lt;br /&gt;
          success:function(d){&lt;br /&gt;
            var res = qu.find('.res');&lt;br /&gt;
            res.empty().removeClass('waiting')&lt;br /&gt;
            if (d.error){&lt;br /&gt;
              res.append($('&amp;lt;h1/&amp;gt;',{text:'SQLZoo System Error:'}))&lt;br /&gt;
              res.append($('&amp;lt;div/&amp;gt;',{text:d.error}))&lt;br /&gt;
              return;&lt;br /&gt;
            }&lt;br /&gt;
			var headerPresent = false;&lt;br /&gt;
            for (var i = 0; i &amp;lt; d.sql.length; i++)&lt;br /&gt;
				{&lt;br /&gt;
				if (!d || !d.sql || !d.sql[i]){&lt;br /&gt;
				  res.append($('&amp;lt;h1/&amp;gt;',{text:'SQLZoo System Error:'}))&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:&amp;quot;Problem with d or d.sql or d.sql[0]&amp;quot;}))&lt;br /&gt;
				  return;&lt;br /&gt;
				}&lt;br /&gt;
				if (d.sql[i].error){&lt;br /&gt;
				  res.append($('&amp;lt;h1/&amp;gt;',{text:'Error:'}))&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:d.sql[i].error}))&lt;br /&gt;
				  return;&lt;br /&gt;
				}&lt;br /&gt;
				var legend = &amp;quot;Result:&amp;quot;;&lt;br /&gt;
				if (d.score &amp;amp;&amp;amp; d.answer &amp;amp;&amp;amp; d.answer.length==1 &amp;amp;&amp;amp; d.answer[0].fields){&lt;br /&gt;
				  if (d.score == 100){&lt;br /&gt;
					legend = 'Correct answer';&lt;br /&gt;
					if (lsUse &amp;amp;&amp;amp; localStorage)&lt;br /&gt;
						localStorage.setItem(lsName, &amp;quot;correct&amp;quot;);&lt;br /&gt;
					var def = $('.def',qu);&lt;br /&gt;
					if (localStorage.getItem(lsName) == &amp;quot;correct&amp;quot;)&lt;br /&gt;
					{&lt;br /&gt;
						if ($(&amp;quot;.qcorrect&amp;quot;, qu).length == 0)&lt;br /&gt;
						{&lt;br /&gt;
							var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qcorrect', 'title':'You have answered this question correctly before.'});&lt;br /&gt;
							def.before(qcorr);&lt;br /&gt;
							updateProgressbar();&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
			      }&lt;br /&gt;
				  else if (d.answer[0].fields.length&amp;gt;d.sql[0].fields.length)&lt;br /&gt;
					legend = 'Too few columns';&lt;br /&gt;
				  else if (d.answer[0].fields.length&amp;lt;d.sql[0].fields.length)&lt;br /&gt;
					legend = 'Too many columns';&lt;br /&gt;
				  else if (d.answer[0].rows.length&amp;gt;d.sql[0].rows.length)&lt;br /&gt;
					legend = 'Too few rows';&lt;br /&gt;
				  else if (d.answer[0].rows.length&amp;lt;d.sql[0].rows.length)&lt;br /&gt;
					legend = 'Too many rows';&lt;br /&gt;
&lt;br /&gt;
				}&lt;br /&gt;
				if (!headerPresent)&lt;br /&gt;
				{&lt;br /&gt;
					res.append($('&amp;lt;h1/&amp;gt;',{text:legend}));&lt;br /&gt;
					headerPresent = true;&lt;br /&gt;
				}&lt;br /&gt;
				var t = mkTable(d.sql[i]);&lt;br /&gt;
				t.addClass('sqlmine')&lt;br /&gt;
				 .appendTo(res);&lt;br /&gt;
				if (d.answer &amp;amp;&amp;amp; d.answer.length&amp;gt;0 &amp;amp;&amp;amp; d.score&amp;lt;100){&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:'Show correct result','class':'showtxt'})&lt;br /&gt;
					.click(function(){&lt;br /&gt;
					  $(this).next().show('slow');&lt;br /&gt;
					})&lt;br /&gt;
				  );&lt;br /&gt;
				  var a = mkTable(d.answer[0]);&lt;br /&gt;
				  a.addClass('sqlans');&lt;br /&gt;
				  a.appendTo(res);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
          },&lt;br /&gt;
          error:function(jqXHR,textStatus,errorThrown){&lt;br /&gt;
            qu.find('.res').empty().removeClass('waiting')&lt;br /&gt;
              .append($('&amp;lt;h1/&amp;gt;',{'class':'syserr',text:'SQLZOO system error:'}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;',{text:textStatus}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;',{text:errorThrown}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;').html(jqXHR.responseText))&lt;br /&gt;
          }&lt;br /&gt;
         });&lt;br /&gt;
		 &lt;br /&gt;
		// Modify completion information&lt;br /&gt;
		var def = $('.def',qu);&lt;br /&gt;
		if (localStorage)&lt;br /&gt;
		{&lt;br /&gt;
			if (localStorage.getItem(lsName) == &amp;quot;answered&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qincorrect', 'title':'You have answered this question incorrectly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
function maxlen(l){&lt;br /&gt;
  var r = 0;&lt;br /&gt;
  for(var i=0;i&amp;lt;l.length;i++)&lt;br /&gt;
    r = Math.max(r,l[i].length);&lt;br /&gt;
  return r;&lt;br /&gt;
}&lt;br /&gt;
function truncate(s){&lt;br /&gt;
  if (s.length&amp;lt;15) return s;&lt;br /&gt;
  return s.substring(0,13)+&amp;quot;..&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
function mkTable(a){&lt;br /&gt;
  var t = $('&amp;lt;table/&amp;gt;');&lt;br /&gt;
  t.append($('&amp;lt;tr/&amp;gt;'));&lt;br /&gt;
  var isnum = [];&lt;br /&gt;
  if (!a.fields || !a.rows) return t;&lt;br /&gt;
  for(var i=0;i&amp;lt;a.fields.length;i++){&lt;br /&gt;
    $('tr',t).append($('&amp;lt;th/&amp;gt;',{text:truncate(a.fields[i])}));&lt;br /&gt;
    var allNum = 1;&lt;br /&gt;
    for(var j=0;j&amp;lt;a.rows.length;j++){&lt;br /&gt;
      if (a.rows[j] &amp;amp;&amp;amp; a.rows[j][i] &amp;amp;&amp;amp; !a.rows[j][i].match(/^[0-9.]*$/))&lt;br /&gt;
        allNum = 0;&lt;br /&gt;
    }&lt;br /&gt;
    isnum.push(allNum);&lt;br /&gt;
  }&lt;br /&gt;
  for(var j=0;j&amp;lt;a.rows.length;j++){&lt;br /&gt;
    var tr = $('&amp;lt;tr/&amp;gt;').appendTo(t);&lt;br /&gt;
    for(var k=0;k&amp;lt;a.rows[j].length;k++){&lt;br /&gt;
      var td = $('&amp;lt;td/&amp;gt;',{text:a.rows[j][k]});&lt;br /&gt;
      if (isnum[k]) td.addClass('r');&lt;br /&gt;
      td.appendTo(tr);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return t;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ======================= Designer js starts here */&lt;br /&gt;
&lt;br /&gt;
// the following scripts should not be present here - they should be linked as external files !!!&lt;br /&gt;
&lt;br /&gt;
// this script helps to manage browser inconsistency across different os&lt;br /&gt;
function css_browser_selector(u){var ua=u.toLowerCase(),is=function(t){return ua.indexOf(t)&amp;gt;-1},g='gecko',w='webkit',s='safari',o='opera',m='mobile',h=document.documentElement,b=[(!(/opera|webtv/i.test(ua))&amp;amp;&amp;amp;/msie\s(\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?g+' ff2':is('firefox/3.5')?g+' ff3 ff3_5':is('firefox/3.6')?g+' ff3 ff3_6':is('firefox/3')?g+' ff3':is('gecko/')?g:is('opera')?o+(/version\/(\d+)/.test(ua)?' '+o+RegExp.$1:(/opera(\s|\/)(\d+)/.test(ua)?' '+o+RegExp.$2:'')):is('konqueror')?'konqueror':is('blackberry')?m+' blackberry':is('android')?m+' android':is('chrome')?w+' chrome':is('iron')?w+' iron':is('applewebkit/')?w+' '+s+(/version\/(\d+)/.test(ua)?' '+s+RegExp.$1:''):is('mozilla/')?g:'',is('j2me')?m+' j2me':is('iphone')?m+' iphone':is('ipod')?m+' ipod':is('ipad')?m+' ipad':is('mac')?'mac':is('darwin')?'mac':is('webtv')?'webtv':is('win')?'win'+(is('windows nt 6.0')?' vista':''):is('freebsd')?'freebsd':(is('x11')||is('linux'))?'linux':'','js']; c = b.join(' '); h.className += ' '+c; return c;}; css_browser_selector(navigator.userAgent);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// display site logo&lt;br /&gt;
$(function(){&lt;br /&gt;
  $('&amp;lt;a/&amp;gt;',{href:'http://sqlzoo.net/w/index.php',id:'mp-logo',title:'Zoo You!'})&lt;br /&gt;
    .append($('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/sql_zoo_logo05.png',alt:'SQLzoo logo'}))&lt;br /&gt;
    .appendTo($('#mw-head-base'))&lt;br /&gt;
});&lt;br /&gt;
 &lt;br /&gt;
// display site description&lt;br /&gt;
$(document).ready(function(){&lt;br /&gt;
  $(function(){&lt;br /&gt;
    $(&amp;quot;#mp-logo&amp;quot;).append(&amp;quot; &amp;lt;h1 id='logo-desc'&amp;gt;Interactive &amp;lt;span&amp;gt;SQL &amp;lt;span&amp;gt;Tutorial&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h1&amp;gt;&amp;quot;);&lt;br /&gt;
  });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// display language selector&lt;br /&gt;
$(function(){&lt;br /&gt;
     $('&amp;lt;div/&amp;gt;',{id:'language'}).appendTo($('#mw-head-base'))&lt;br /&gt;
 &lt;br /&gt;
     var lang = $('&amp;lt;ul/&amp;gt;',{id:'lang','class':'side_nav_sub'});&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;en&amp;quot; href=&amp;quot;/wiki/Main_Page&amp;quot;&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;de&amp;quot; href=&amp;quot;/wiki/Main_Page/de&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;fr&amp;quot; href=&amp;quot;/wiki/Main_Page/fr&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    $('#language').append(lang);&lt;br /&gt;
&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/en2.png',alt:'SQL zoo in English'})&lt;br /&gt;
       .appendTo($('#en'));&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/de2.png',alt:'SQL zoo in German'})&lt;br /&gt;
       .appendTo($('#de'));&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/fr2.png',alt:'SQL zoo in French'})&lt;br /&gt;
       .appendTo($('#fr'));&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// assemble and display main nav menu&lt;br /&gt;
$(function(){&lt;br /&gt;
    var ml1 =&lt;br /&gt;
    [['1 SELECT basics',  'SELECT_basics','Some simple queries to get you started']&lt;br /&gt;
    ,['2 SELECT from WORLD','SELECT_from_WORLD_Tutorial','Finding facts about countries']&lt;br /&gt;
    ,['3 SELECT from Nobel','SELECT_from_Nobel_Tutorial','More practice with SELECT statements']&lt;br /&gt;
    ,['4 SELECT within SELECT','SELECT_within_SELECT_Tutorial','Using the results of one query inside another']&lt;br /&gt;
    ,['5 SUM and COUNT','SUM_and_COUNT','Apply aggregate functions']&lt;br /&gt;
    ,['6 JOIN','The_JOIN_operation','Gathering data from more than one table']&lt;br /&gt;
    ,['7 More JOIN','More_JOIN_operations','Getting data from the movie database']&lt;br /&gt;
    ,['8 Using NULL','Using_Null','Dealing with missing data']&lt;br /&gt;
    ,['9 Self JOIN','Self_join','Dealing with missing data']&lt;br /&gt;
	,['10 SQL Quizzes','Tutorial_Quizzes','Test your knowledge with multiple choice quizzes']&lt;br /&gt;
    ];&lt;br /&gt;
    var mm1 = $('&amp;lt;ul/&amp;gt;',{id:'mm1','class':'dropdown mm_sub'});&lt;br /&gt;
    for(var i=0;i&amp;lt;ml1.length;i++){&lt;br /&gt;
	  var maxWidth = 50; // adjust the value so that it fits menu well&lt;br /&gt;
	  var NoQ = localStorage.getItem(ml1[i][1] + '_numberOfQuestions');&lt;br /&gt;
	  if (!NoQ) NoQ = 1;&lt;br /&gt;
	  var NoC = localStorage.getItem(ml1[i][1] + '_numberOfCorrect');&lt;br /&gt;
	  if (!NoC) NoC = 0;	  &lt;br /&gt;
	  var pbWidth = parseFloat(maxWidth) * NoC / NoQ;&lt;br /&gt;
	  var mprogbar = $('&amp;lt;div/&amp;gt;',{'class':'progressbarbg1'}).append($('&amp;lt;div/&amp;gt;',{'class':'progressbar1', 'id':ml1[i][1], css:{'width':pbWidth}}));&lt;br /&gt;
          mm1.append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'/wiki/'+ml1[i][1],text:ml1[i][0]})).append(ml1[i][2]).append(mprogbar));&lt;br /&gt;
    }&lt;br /&gt;
    var mm2 = $('&amp;lt;ul/&amp;gt;',{id:'mm2','class':'dropdown mm_sub'});&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/AdventureWorks&amp;quot;&amp;gt;1 AdventureWorks&amp;lt;/a&amp;gt; Flogging sports gear. Assessment for CO22008 2007/8&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Neeps&amp;quot;&amp;gt;2 Neeps&amp;lt;/a&amp;gt; A timetable database&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Musicians&amp;quot;&amp;gt;3 Musicians&amp;lt;/a&amp;gt; Concerts and compositions&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Southwind&amp;quot;&amp;gt;4 Southwind&amp;lt;/a&amp;gt; Buying and selling&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Dressmaker&amp;quot;&amp;gt;5 Dressmaker&amp;lt;/a&amp;gt; Constructing clothing&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Congestion Charging&amp;quot;&amp;gt;6 Congestion Charging&amp;lt;/a&amp;gt; Monitoring traffic (old questions)&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Weather data for Southhampton&amp;quot;&amp;gt;7 Weather data for Southhampton&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Album Tracks Style&amp;quot;&amp;gt;8 Album Tracks Style&amp;lt;/a&amp;gt; Music data&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    var mm3 = $('&amp;lt;ul/&amp;gt;',{id:'mm3','class':'dropdown mm_sub'});&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/SELECT_Reference&amp;quot;&amp;gt;SELECT&amp;lt;/a&amp;gt;How to read the data from a database.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/CREATE_and_DROP_Reference&amp;quot;&amp;gt;CREATE and DROP&amp;lt;/a&amp;gt;How to create tables, indexes, views and other things. How to get rid of them.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/INSERT_and_DELETE_Reference&amp;quot;&amp;gt;INSERT and DELETE&amp;lt;/a&amp;gt;How to put records into a table, change them and how to take them out again.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/DATE_and_TIME_Reference&amp;quot;&amp;gt;DATE and TIME&amp;lt;/a&amp;gt;How to work with dates; adding, subtracting and formatting.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Functions_Reference&amp;quot;&amp;gt;Functions&amp;lt;/a&amp;gt;How to use string functions, logical functions and mathematical functions.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Users_Reference&amp;quot;&amp;gt;Users&amp;lt;/a&amp;gt;How to create users, GRANT and DENY access, get at other peoples tables. How to find processes and kill them.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Meta_Data_Reference&amp;quot;&amp;gt;Meta Data&amp;lt;/a&amp;gt;How to find out what tables and columns exist. How to count and limit the rows return.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Hacks_Reference&amp;quot;&amp;gt;SQL Hacks&amp;lt;/a&amp;gt;Useful SQL hacks .&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    var mm = $('&amp;lt;ul/&amp;gt;',{id:'main_menu'}).appendTo('#mw-head-base');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm1&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Tutorials&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm2&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Assessments&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm3&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Reference&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    $('#mm1').append(mm1);&lt;br /&gt;
    $('#mm2').append(mm2);&lt;br /&gt;
    $('#mm3').append(mm3);&lt;br /&gt;
&lt;br /&gt;
    $('#main_menu').wrap('&amp;lt;div id=&amp;quot;navigation_horiz&amp;quot; /&amp;gt;');&lt;br /&gt;
    $('#navigation_horiz').naviDropDown({&lt;br /&gt;
      dropDownWidth: '35em'&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// stick on top elements that need to be visible&lt;br /&gt;
$(function(){&lt;br /&gt;
    $(&amp;quot;#main_menu&amp;quot;).addClass(&amp;quot;stickableMenu&amp;quot;);&lt;br /&gt;
    $(&amp;quot;#p-Reference&amp;quot;).addClass(&amp;quot;stickableRef&amp;quot;);&lt;br /&gt;
    $(&amp;quot;.ref_section&amp;quot;).addClass(&amp;quot;stickableDbRef&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$(document).scroll(function() {&lt;br /&gt;
    var useFixedMenu = $(document).scrollTop() &amp;gt; 175;&lt;br /&gt;
    $('.stickableMenu').toggleClass('fixedMenu', useFixedMenu);&lt;br /&gt;
    &lt;br /&gt;
//    var useFixedRef = $(document).scrollTop() &amp;gt; 275;&lt;br /&gt;
//    $('.stickableRef').toggleClass('fixedRef', useFixedRef);&lt;br /&gt;
&lt;br /&gt;
    $('.stickableDbRef').toggleClass('fixedDbRef', $(document).scrollTop() &amp;gt; 275);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// swap classes on external links to change their side icons&lt;br /&gt;
$(function(){&lt;br /&gt;
 $(&amp;quot;.external&amp;quot;).addClass(&amp;quot;zoo_external&amp;quot;);&lt;br /&gt;
 $(&amp;quot;.external&amp;quot;).removeClass(&amp;quot;external&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
/* === Designer js ends here === */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Insert tables into Quiz distractors&lt;br /&gt;
var qq = $('.question');&lt;br /&gt;
for (var i = 0; i &amp;lt; qq.length; i++)&lt;br /&gt;
{&lt;br /&gt;
	var q = $(qq[i]);&lt;br /&gt;
	var distractors = &amp;quot;ABCDE&amp;quot;;&lt;br /&gt;
	for (var j=0;j&amp;lt;distractors.length;j++){&lt;br /&gt;
		var tans = $('table caption:contains(&amp;quot;Table-'+distractors[j]+'&amp;quot;)', q).parents('table');&lt;br /&gt;
		if (tans.length&amp;gt;0)&lt;br /&gt;
		{&lt;br /&gt;
			var ttd = $('table tr td:contains(&amp;quot;Table-'+distractors[j]+'&amp;quot;)', q);&lt;br /&gt;
			if (ttd.length&amp;gt;0){&lt;br /&gt;
			   ttd.empty();&lt;br /&gt;
			   ttd.append(tans);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$(function(){&lt;br /&gt;
  $('input.check').each(function(i,e){&lt;br /&gt;
    $(this).attr('id','quiz_d_'+i);&lt;br /&gt;
  });&lt;br /&gt;
  $('tr.proposal').each(function(i,e){&lt;br /&gt;
    var tds = $('td',$(this));&lt;br /&gt;
    var html1= $(tds[1]).html();&lt;br /&gt;
    $(tds[1]).html($('&amp;lt;label/&amp;gt;',{html:html1,'for':$('input',$(this)).attr('id') }));&lt;br /&gt;
  })&lt;br /&gt;
})&lt;br /&gt;
//Connor 23/7/12 creates the labels for the multiple choice questions allowing them to be highlighted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Analytics code&lt;br /&gt;
  var _gaq = _gaq || [];&lt;br /&gt;
  _gaq.push(['_setAccount', 'UA-33860668-1']);&lt;br /&gt;
  _gaq.push(['_trackPageview']);&lt;br /&gt;
&lt;br /&gt;
  (function() {&lt;br /&gt;
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;&lt;br /&gt;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';&lt;br /&gt;
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);&lt;br /&gt;
  })();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//JSON&lt;br /&gt;
(function($){var escapeable=/[&amp;quot;\\\x00-\x1f\x7f-\x9f]/g,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','&amp;quot;':'\\&amp;quot;','\\':'\\\\'};$.toJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.stringify?JSON.stringify:function(o){if(o===null){return'null';}&lt;br /&gt;
var type=typeof o;if(type==='undefined'){return undefined;}&lt;br /&gt;
if(type==='number'||type==='boolean'){return''+o;}&lt;br /&gt;
if(type==='string'){return $.quoteString(o);}&lt;br /&gt;
if(type==='object'){if(typeof o.toJSON==='function'){return $.toJSON(o.toJSON());}&lt;br /&gt;
if(o.constructor===Date){var month=o.getUTCMonth()+1,day=o.getUTCDate(),year=o.getUTCFullYear(),hours=o.getUTCHours(),minutes=o.getUTCMinutes(),seconds=o.getUTCSeconds(),milli=o.getUTCMilliseconds();if(month&amp;lt;10){month='0'+month;}&lt;br /&gt;
if(day&amp;lt;10){day='0'+day;}&lt;br /&gt;
if(hours&amp;lt;10){hours='0'+hours;}&lt;br /&gt;
if(minutes&amp;lt;10){minutes='0'+minutes;}&lt;br /&gt;
if(seconds&amp;lt;10){seconds='0'+seconds;}&lt;br /&gt;
if(milli&amp;lt;100){milli='0'+milli;}&lt;br /&gt;
if(milli&amp;lt;10){milli='0'+milli;}&lt;br /&gt;
return'&amp;quot;'+year+'-'+month+'-'+day+'T'+&lt;br /&gt;
hours+':'+minutes+':'+seconds+'.'+milli+'Z&amp;quot;';}&lt;br /&gt;
if(o.constructor===Array){var ret=[];for(var i=0;i&amp;lt;o.length;i++){ret.push($.toJSON(o[i])||'null');}&lt;br /&gt;
return'['+ret.join(',')+']';}&lt;br /&gt;
var name,val,pairs=[];for(var k in o){type=typeof k;if(type==='number'){name='&amp;quot;'+k+'&amp;quot;';}else if(type==='string'){name=$.quoteString(k);}else{continue;}&lt;br /&gt;
type=typeof o[k];if(type==='function'||type==='undefined'){continue;}&lt;br /&gt;
val=$.toJSON(o[k]);pairs.push(name+':'+val);}&lt;br /&gt;
return'{'+pairs.join(',')+'}';}};$.evalJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.parse?JSON.parse:function(src){return eval('('+src+')');};$.secureEvalJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.parse?JSON.parse:function(src){var filtered=src.replace(/\\[&amp;quot;\\\/bfnrtu]/g,'@').replace(/&amp;quot;[^&amp;quot;\\\n\r]*&amp;quot;|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,'');if(/^[\],:{}\s]*$/.test(filtered)){return eval('('+src+')');}else{throw new SyntaxError('Error parsing JSON, source is not valid.');}};$.quoteString=function(string){if(string.match(escapeable)){return'&amp;quot;'+string.replace(escapeable,function(a){var c=meta[a];if(typeof c==='string'){return c;}&lt;br /&gt;
c=a.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16);})+'&amp;quot;';}&lt;br /&gt;
return'&amp;quot;'+string+'&amp;quot;';};})(jQuery);&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/&lt;br /&gt;
 *&lt;br /&gt;
 * Uses the built in easing capabilities added In jQuery 1.1&lt;br /&gt;
 * to offer multiple easing options&lt;br /&gt;
 *&lt;br /&gt;
 * TERMS OF USE - jQuery Easing&lt;br /&gt;
 * &lt;br /&gt;
 * Open source under the BSD License. &lt;br /&gt;
 * &lt;br /&gt;
 * Copyright Â© 2008 George McGinley Smith&lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without modification, &lt;br /&gt;
 * are permitted provided that the following conditions are met:&lt;br /&gt;
 * &lt;br /&gt;
 * Redistributions of source code must retain the above copyright notice, this list of &lt;br /&gt;
 * conditions and the following disclaimer.&lt;br /&gt;
 * Redistributions in binary form must reproduce the above copyright notice, this list &lt;br /&gt;
 * of conditions and the following disclaimer in the documentation and/or other materials &lt;br /&gt;
 * provided with the distribution.&lt;br /&gt;
 * &lt;br /&gt;
 * Neither the name of the author nor the names of contributors may be used to endorse &lt;br /&gt;
 * or promote products derived from this software without specific prior written permission.&lt;br /&gt;
 * &lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY &lt;br /&gt;
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF&lt;br /&gt;
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE&lt;br /&gt;
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE&lt;br /&gt;
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED &lt;br /&gt;
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED &lt;br /&gt;
 * OF THE POSSIBILITY OF SUCH DAMAGE. &lt;br /&gt;
 *&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
// t: current time, b: begInnIng value, c: change In value, d: duration&lt;br /&gt;
jQuery.easing['jswing'] = jQuery.easing['swing'];&lt;br /&gt;
&lt;br /&gt;
jQuery.extend( jQuery.easing,&lt;br /&gt;
{&lt;br /&gt;
	def: 'easeOutQuad',&lt;br /&gt;
	swing: function (x, t, b, c, d) {&lt;br /&gt;
		//alert(jQuery.easing.default);&lt;br /&gt;
		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuad: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuad: function (x, t, b, c, d) {&lt;br /&gt;
		return -c *(t/=d)*(t-2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuad: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t + b;&lt;br /&gt;
		return -c/2 * ((--t)*(t-2) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInCubic: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutCubic: function (x, t, b, c, d) {&lt;br /&gt;
		return c*((t=t/d-1)*t*t + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutCubic: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t + b;&lt;br /&gt;
		return c/2*((t-=2)*t*t + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuart: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuart: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * ((t=t/d-1)*t*t*t - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuart: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t*t + b;&lt;br /&gt;
		return -c/2 * ((t-=2)*t*t*t - 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuint: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuint: function (x, t, b, c, d) {&lt;br /&gt;
		return c*((t=t/d-1)*t*t*t*t + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuint: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t*t*t + b;&lt;br /&gt;
		return c/2*((t-=2)*t*t*t*t + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInSine: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutSine: function (x, t, b, c, d) {&lt;br /&gt;
		return c * Math.sin(t/d * (Math.PI/2)) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutSine: function (x, t, b, c, d) {&lt;br /&gt;
		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInExpo: function (x, t, b, c, d) {&lt;br /&gt;
		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutExpo: function (x, t, b, c, d) {&lt;br /&gt;
		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutExpo: function (x, t, b, c, d) {&lt;br /&gt;
		if (t==0) return b;&lt;br /&gt;
		if (t==d) return b+c;&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;&lt;br /&gt;
		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInCirc: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutCirc: function (x, t, b, c, d) {&lt;br /&gt;
		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutCirc: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;&lt;br /&gt;
		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		if (t &amp;lt; 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;&lt;br /&gt;
		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158;&lt;br /&gt;
		return c*(t/=d)*t*((s+1)*t - s) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158;&lt;br /&gt;
		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158; &lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;&lt;br /&gt;
		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInBounce: function (x, t, b, c, d) {&lt;br /&gt;
		return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutBounce: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d) &amp;lt; (1/2.75)) {&lt;br /&gt;
			return c*(7.5625*t*t) + b;&lt;br /&gt;
		} else if (t &amp;lt; (2/2.75)) {&lt;br /&gt;
			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;&lt;br /&gt;
		} else if (t &amp;lt; (2.5/2.75)) {&lt;br /&gt;
			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;&lt;br /&gt;
		} else {&lt;br /&gt;
			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutBounce: function (x, t, b, c, d) {&lt;br /&gt;
		if (t &amp;lt; d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;&lt;br /&gt;
		return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *&lt;br /&gt;
 * TERMS OF USE - EASING EQUATIONS&lt;br /&gt;
 * &lt;br /&gt;
 * Open source under the BSD License. &lt;br /&gt;
 * &lt;br /&gt;
 * Copyright Â© 2001 Robert Penner&lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without modification, &lt;br /&gt;
 * are permitted provided that the following conditions are met:&lt;br /&gt;
 * &lt;br /&gt;
 * Redistributions of source code must retain the above copyright notice, this list of &lt;br /&gt;
 * conditions and the following disclaimer.&lt;br /&gt;
 * Redistributions in binary form must reproduce the above copyright notice, this list &lt;br /&gt;
 * of conditions and the following disclaimer in the documentation and/or other materials &lt;br /&gt;
 * provided with the distribution.&lt;br /&gt;
 * &lt;br /&gt;
 * Neither the name of the author nor the names of contributors may be used to endorse &lt;br /&gt;
 * or promote products derived from this software without specific prior written permission.&lt;br /&gt;
 * &lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY &lt;br /&gt;
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF&lt;br /&gt;
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE&lt;br /&gt;
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE&lt;br /&gt;
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED &lt;br /&gt;
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED &lt;br /&gt;
 * OF THE POSSIBILITY OF SUCH DAMAGE. &lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
/**&lt;br /&gt;
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+&lt;br /&gt;
* &amp;lt;http://cherne.net/brian/resources/jquery.hoverIntent.html&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* @param  f  onMouseOver function || An object with configuration options&lt;br /&gt;
* @param  g  onMouseOut function  || Nothing (use configuration options object)&lt;br /&gt;
* @author    Brian Cherne &amp;lt;brian@cherne.net&amp;gt;&lt;br /&gt;
*/&lt;br /&gt;
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))&amp;lt;cfg.sensitivity){$(ob).unbind(&amp;quot;mousemove&amp;quot;,track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type==&amp;quot;mouseover&amp;quot;?e.fromElement:e.toElement)||e.relatedTarget;while(p&amp;amp;&amp;amp;p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type==&amp;quot;mouseover&amp;quot;){pX=ev.pageX;pY=ev.pageY;$(ob).bind(&amp;quot;mousemove&amp;quot;,track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind(&amp;quot;mousemove&amp;quot;,track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);&lt;br /&gt;
/**&lt;br /&gt;
* plugin: jquery.naviDropDown.js&lt;br /&gt;
* author: kt.cheung @ Brandammo&lt;br /&gt;
* website: www.brandammo.co.uk&lt;br /&gt;
* version: 1.0&lt;br /&gt;
* date: 19th feb 2011&lt;br /&gt;
* description: simple jquery navigation drop down menu with easing and hoverIntent&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 2011 KT Cheung&lt;br /&gt;
&lt;br /&gt;
Permission is hereby granted, free of charge, to any person obtaining a copy&lt;br /&gt;
of this software and associated documentation files (the &amp;quot;Software&amp;quot;), to deal&lt;br /&gt;
in the Software without restriction, including without limitation the rights&lt;br /&gt;
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell&lt;br /&gt;
copies of the Software, and to permit persons to whom the Software is&lt;br /&gt;
furnished to do so, subject to the following conditions:&lt;br /&gt;
&lt;br /&gt;
The above copyright notice and this permission notice shall be included in&lt;br /&gt;
all copies or substantial portions of the Software.&lt;br /&gt;
&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SOFTWARE.&lt;br /&gt;
&lt;br /&gt;
**/&lt;br /&gt;
&lt;br /&gt;
(function($){&lt;br /&gt;
&lt;br /&gt;
  $.fn.naviDropDown = function(options) {  &lt;br /&gt;
  &lt;br /&gt;
	//set up default options &lt;br /&gt;
	var defaults = { &lt;br /&gt;
		dropDownClass: 'dropdown', //the class name for your drop down&lt;br /&gt;
		dropDownWidth: 'auto',	//the default width of drop down elements&lt;br /&gt;
		slideDownEasing: 'easeInOutCirc', //easing method for slideDown&lt;br /&gt;
		slideUpEasing: 'easeInOutCirc', //easing method for slideUp&lt;br /&gt;
		slideDownDuration: 500, //easing duration for slideDown&lt;br /&gt;
		slideUpDuration: 500, //easing duration for slideUp&lt;br /&gt;
		orientation: 'horizontal' //orientation - either 'horizontal' or 'vertical'&lt;br /&gt;
	}; &lt;br /&gt;
  	&lt;br /&gt;
	var opts = $.extend({}, defaults, options); 	&lt;br /&gt;
&lt;br /&gt;
    return this.each(function() {  &lt;br /&gt;
	  var $this = $(this);&lt;br /&gt;
	  $this.find('.'+opts.dropDownClass).css('width', opts.dropDownWidth).css('display', 'none');&lt;br /&gt;
	  &lt;br /&gt;
	  var buttonWidth = $this.find('.'+opts.dropDownClass).parent().width() + 'px';&lt;br /&gt;
	  var buttonHeight = $this.find('.'+opts.dropDownClass).parent().height() + 'px';&lt;br /&gt;
	  if(opts.orientation == 'horizontal') {&lt;br /&gt;
		//$this.find('.'+opts.dropDownClass).css('left', '0px').css('top', buttonHeight);&lt;br /&gt;
	  }&lt;br /&gt;
	  if(opts.orientation == 'vertical') {&lt;br /&gt;
		$this.find('.'+opts.dropDownClass).css('left', buttonWidth).css('top', '0px');&lt;br /&gt;
	  }&lt;br /&gt;
	  &lt;br /&gt;
	  $this.find('li').hoverIntent(getDropDown, hideDropDown);&lt;br /&gt;
    });&lt;br /&gt;
	&lt;br /&gt;
	function getDropDown(){&lt;br /&gt;
		activeNav = $(this);&lt;br /&gt;
		showDropDown();&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	function showDropDown(){&lt;br /&gt;
		activeNav.find('.'+opts.dropDownClass).slideDown({duration:opts.slideDownDuration, easing:opts.slideDownEasing});&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	function hideDropDown(){&lt;br /&gt;
		activeNav.find('.'+opts.dropDownClass).slideUp({duration:opts.slideUpDuration, easing:opts.slideUpEasing});//hides the current dropdown&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
  };&lt;br /&gt;
})(jQuery);&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/Main_Page"/>
				<updated>2013-02-28T20:32:06Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=slogan&amp;gt;&amp;lt;span&amp;gt;Learn about:&amp;lt;/span&amp;gt; SQL Server, Oracle, MySQL, DB2, &amp;lt;span&amp;gt;and&amp;lt;/span&amp;gt; PostgreSQL.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=tutblock&amp;gt;&lt;br /&gt;
==Tutorial Section==&lt;br /&gt;
; [[SELECT basics|1 SELECT basics]]:Some simple queries to get you started&lt;br /&gt;
; [[SELECT from WORLD Tutorial|2 SELECT from World]]:In which we query the World country profile table.&lt;br /&gt;
; [[SELECT from Nobel Tutorial|3 SELECT from Nobel]]:Additional practice of the basic features using a table of Nobel Prize winners.&lt;br /&gt;
; [[SELECT within SELECT Tutorial|4 SELECT within SELECT]]:    In which we form queries using other queries.&lt;br /&gt;
; [[SUM and COUNT|5 SUM and COUNT]]:    In which we apply aggregate functions. [[The_nobel_table_can_be_used_to_practice_more_SUM_and_COUNT_functions.|more the same]]&lt;br /&gt;
; [[The JOIN operation|6 JOIN]]:    In which we join two tables; game and goals. [[Music_Tutorial |previously music tutorial]]&lt;br /&gt;
; [[More JOIN operations|7 More JOIN operations]]:    In which we join actors to movies in the Movie Database.&lt;br /&gt;
; [[Using Null|8 Using Null]]:    In which we look at teachers in departments. [[Scottish_Parliament |previously Scottish Parliament]]&lt;br /&gt;
; [[NSS Tutorial|8+ Numeric Examples]]:    In which we look at a survey and deal with some more complex calculations.&lt;br /&gt;
; [[Self join|9 Self join]]:    In which we join Edinburgh bus routes to Edinburgh bus routes.&lt;br /&gt;
; [[Tutorial_Quizzes|10 Tutorial Quizzes]]:    Test your knowledge with multiple choice quizzes&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class='refblock'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference Section: how to...==&lt;br /&gt;
;1 [[SELECT Reference|SELECT]]&lt;br /&gt;
:    How to read the data from a database. &lt;br /&gt;
;2 [[CREATE and DROP Reference|CREATE and DROP]]&lt;br /&gt;
:    How to create tables, indexes, views and other things. How to get rid of them.&lt;br /&gt;
;3 [[INSERT and DELETE Reference|INSERT and DELETE]]&lt;br /&gt;
:    How to put records into a table, change them and how to take them out again.&lt;br /&gt;
;4 [[DATE and TIME Reference|DATE and TIME]]&lt;br /&gt;
:    How to work with dates; adding, subtracting and formatting.&lt;br /&gt;
;5 [[Functions Reference|Functions]]&lt;br /&gt;
:    How to use string functions, logical functions and mathematical functions.&lt;br /&gt;
;6 [[Users Reference|Users]]&lt;br /&gt;
:    How to create users, GRANT and DENY access, get at other peoples tables. How to find processes and kill them.&lt;br /&gt;
;7 [[Meta Data Reference|Meta Data]]&lt;br /&gt;
:    How to find out what tables and columns exist. How to count and limit the rows return.&lt;br /&gt;
;8 [[Hacks Reference|SQL Hacks]]&lt;br /&gt;
:   &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class='resblock' style='clear:left'&amp;gt;&lt;br /&gt;
&amp;lt;div style='clear:left'&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==SQL Resources==&lt;br /&gt;
*[http://sqlzoo.net/wiki/SELECT_basics?answer=1 Select Basics - Answers]&lt;br /&gt;
*[http://sqlzoo.net/wiki/SELECT_from_WORLD_Tutorial?answer=1 Select from World - Answers]&lt;br /&gt;
*See if you can spot the pattern&lt;br /&gt;
;SQL User Manuals: [http://developer.mimer.com/documentation/html_92/Mimer_SQL_Engine_DocSet/Mimer_SQL_Engine.htm Mimer][http://dev.mysql.com/doc/refman/5.1/en/select.html MySQL] [http://docs.oracle.com/cd/B28359_01/server.111/b28286/toc.htm Oracle] [http://msdn.microsoft.com/en-us/library/ms189826%28v=sql.90%29.aspx SQL Server] [http://office.microsoft.com/en-us/assistance/CH062526881033.aspx Access] [http://pic.dhe.ibm.com/infocenter/db2luw/v9r7/index.jsp DB2] [http://sybooks.sybase.com/sybooks/sybooks.xhtml Sybase] [http://www.postgresql.org/docs/current/static/index.html Postgres] [http://www.sqlite.org/lang.html SQLite]&lt;br /&gt;
:Online copies of implementation specific user manuals.&lt;br /&gt;
;Starting SQL:    [ [[Starting MySQL|MySQL]] | [[Starting Oracle|Oracle]] | [[Starting SQL Server|SQL Server]] | [[Starting DB2|DB2]] | [[Starting Postgres|Postgres]] | [[Starting Ingres|Ingres]] ]&lt;br /&gt;
:    How to connect to the server and execute SQL statements.&lt;br /&gt;
;Programming with SQL:    [ [[SQL in perl on the Web]] | [[SQL from Java]] ]&lt;br /&gt;
;Error Messages&lt;br /&gt;
:    [[SQL Error Messages|Some error messages from SQL engines]]&lt;br /&gt;
;Temporary Assessment section, before the main menu is finished.&lt;br /&gt;
:[[Assessment Temp]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style= &amp;quot;    background:#FFC694;&lt;br /&gt;
    border: 1px solid #EE8301;&lt;br /&gt;
    -moz-border-radius:2em;&lt;br /&gt;
    -webkit-border-radius:2em;&lt;br /&gt;
    border-radius:2em;&lt;br /&gt;
    padding: 0.5em 2em;&lt;br /&gt;
    display: block;&lt;br /&gt;
    margin: 2em 1em 1em -.5em;&lt;br /&gt;
    clear:both;&lt;br /&gt;
    width:52em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;'''What do you think of the new layout of SQLZoo?'''&lt;br /&gt;
Please share your opinion with us: [mailto:sqlzoo.qa@gmail.com sqlzoo.qa@gmail.com]&amp;lt;br /&amp;gt;&lt;br /&gt;
The  original site is still available at http://old.sqlzoo.net&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:1em&amp;quot;&amp;gt;&lt;br /&gt;
[[To do list]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{Languages}}&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/Main_Page"/>
				<updated>2013-02-28T20:29:49Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: /* SQL Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=slogan&amp;gt;&amp;lt;span&amp;gt;Learn about:&amp;lt;/span&amp;gt; SQL Server, Oracle, MySQL, DB2, &amp;lt;span&amp;gt;and&amp;lt;/span&amp;gt; PostgreSQL.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=tutblock&amp;gt;&lt;br /&gt;
==Tutorial Section==&lt;br /&gt;
; [[SELECT basics|1 SELECT basics]]:Some simple queries to get you started&lt;br /&gt;
; [[SELECT from WORLD Tutorial|2 SELECT from World]]:In which we query the World country profile table.&lt;br /&gt;
; [[SELECT from Nobel Tutorial|3 SELECT from Nobel]]:Additional practice of the basic features using a table of Nobel Prize winners.&lt;br /&gt;
; [[SELECT within SELECT Tutorial|4 SELECT within SELECT]]:    In which we form queries using other queries.&lt;br /&gt;
; [[SUM and COUNT|5 SUM and COUNT]]:    In which we apply aggregate functions. [[The_nobel_table_can_be_used_to_practice_more_SUM_and_COUNT_functions.|more the same]]&lt;br /&gt;
; [[The JOIN operation|6 JOIN]]:    In which we join two tables; game and goals. [[Music_Tutorial |previously music tutorial]]&lt;br /&gt;
; [[More JOIN operations|7 More JOIN operations]]:    In which we join actors to movies in the Movie Database.&lt;br /&gt;
; [[Using Null|8 Using Null]]:    In which we look at teachers in departments. [[Scottish_Parliament |previously Scottish Parliament]]&lt;br /&gt;
; [[NSS Tutorial|8+ Numeric Examples]]:    In which we look at a survey and deal with some more complex calculations.&lt;br /&gt;
; [[Self join|9 Self join]]:    In which we join Edinburgh bus routes to Edinburgh bus routes.&lt;br /&gt;
; [[Tutorial_Quizzes|10 Tutorial Quizzes]]:    Test your knowledge with multiple choice quizzes&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class='refblock'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference Section: how to...==&lt;br /&gt;
;1 [[SELECT Reference|SELECT]]&lt;br /&gt;
:    How to read the data from a database. &lt;br /&gt;
;2 [[CREATE and DROP Reference|CREATE and DROP]]&lt;br /&gt;
:    How to create tables, indexes, views and other things. How to get rid of them.&lt;br /&gt;
;3 [[INSERT and DELETE Reference|INSERT and DELETE]]&lt;br /&gt;
:    How to put records into a table, change them and how to take them out again.&lt;br /&gt;
;4 [[DATE and TIME Reference|DATE and TIME]]&lt;br /&gt;
:    How to work with dates; adding, subtracting and formatting.&lt;br /&gt;
;5 [[Functions Reference|Functions]]&lt;br /&gt;
:    How to use string functions, logical functions and mathematical functions.&lt;br /&gt;
;6 [[Users Reference|Users]]&lt;br /&gt;
:    How to create users, GRANT and DENY access, get at other peoples tables. How to find processes and kill them.&lt;br /&gt;
;7 [[Meta Data Reference|Meta Data]]&lt;br /&gt;
:    How to find out what tables and columns exist. How to count and limit the rows return.&lt;br /&gt;
;8 [[Hacks Reference|SQL Hacks]]&lt;br /&gt;
:   &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class='resblock'&amp;gt;&lt;br /&gt;
&amp;lt;div style='clear:left'&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Answers==&lt;br /&gt;
*[http://sqlzoo.net/wiki/SELECT_basics?answer=1 Select Basics]&lt;br /&gt;
*[http://sqlzoo.net/wiki/SELECT_from_WORLD_Tutorial?answer=1 Select from World]&lt;br /&gt;
*See if you can spot the pattern&lt;br /&gt;
==SQL Resources==&lt;br /&gt;
;SQL User Manuals: [http://developer.mimer.com/documentation/html_92/Mimer_SQL_Engine_DocSet/Mimer_SQL_Engine.htm Mimer][http://dev.mysql.com/doc/refman/5.1/en/select.html MySQL] [http://docs.oracle.com/cd/B28359_01/server.111/b28286/toc.htm Oracle] [http://msdn.microsoft.com/en-us/library/ms189826%28v=sql.90%29.aspx SQL Server] [http://office.microsoft.com/en-us/assistance/CH062526881033.aspx Access] [http://pic.dhe.ibm.com/infocenter/db2luw/v9r7/index.jsp DB2] [http://sybooks.sybase.com/sybooks/sybooks.xhtml Sybase] [http://www.postgresql.org/docs/current/static/index.html Postgres] [http://www.sqlite.org/lang.html SQLite]&lt;br /&gt;
:Online copies of implementation specific user manuals.&lt;br /&gt;
;Starting SQL:    [ [[Starting MySQL|MySQL]] | [[Starting Oracle|Oracle]] | [[Starting SQL Server|SQL Server]] | [[Starting DB2|DB2]] | [[Starting Postgres|Postgres]] | [[Starting Ingres|Ingres]] ]&lt;br /&gt;
:    How to connect to the server and execute SQL statements.&lt;br /&gt;
;Programming with SQL:    [ [[SQL in perl on the Web]] | [[SQL from Java]] ]&lt;br /&gt;
;Error Messages&lt;br /&gt;
:    [[SQL Error Messages|Some error messages from SQL engines]]&lt;br /&gt;
;Temporary Assessment section, before the main menu is finished.&lt;br /&gt;
:[[Assessment Temp]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style= &amp;quot;    background:#FFC694;&lt;br /&gt;
    border: 1px solid #EE8301;&lt;br /&gt;
    -moz-border-radius:2em;&lt;br /&gt;
    -webkit-border-radius:2em;&lt;br /&gt;
    border-radius:2em;&lt;br /&gt;
    padding: 0.5em 2em;&lt;br /&gt;
    display: block;&lt;br /&gt;
    margin: 2em 1em 1em -.5em;&lt;br /&gt;
    clear:both;&lt;br /&gt;
    width:52em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;'''What do you think of the new layout of SQLZoo?'''&lt;br /&gt;
Please share your opinion with us: [mailto:sqlzoo.qa@gmail.com sqlzoo.qa@gmail.com]&amp;lt;br /&amp;gt;&lt;br /&gt;
The  original site is still available at http://old.sqlzoo.net&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:1em&amp;quot;&amp;gt;&lt;br /&gt;
[[To do list]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{Languages}}&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/User:Andr3w/vector.js</id>
		<title>User:Andr3w/vector.js</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/User:Andr3w/vector.js"/>
				<updated>2013-02-28T20:25:59Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/MediaWiki:Common.js</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/MediaWiki:Common.js"/>
				<updated>2013-02-28T20:25:17Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
$(function(){&lt;br /&gt;
  var engine = $('&amp;lt;div class=&amp;quot;portal&amp;quot;/&amp;gt;')&lt;br /&gt;
    .append($('&amp;lt;h5&amp;gt;Engine&amp;lt;/h5&amp;gt;'))&lt;br /&gt;
    .append($('&amp;lt;div class=body/&amp;gt;')&lt;br /&gt;
      .append($('&amp;lt;ul/&amp;gt;')&lt;br /&gt;
        .append($('&amp;lt;li/&amp;gt;')&lt;br /&gt;
          .append($('&amp;lt;select id=engine/&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=mysql&amp;gt;MySQL&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=oracle&amp;gt;Oracle&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=sqlserver&amp;gt;SQL Server&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option value=postgres&amp;gt;PostgreSQL&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option id=ingres&amp;gt;Ingres&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .append('&amp;lt;option id=db2&amp;gt;DB2&amp;lt;/option&amp;gt;')&lt;br /&gt;
            .change(function(){/*alert(42);*/ setDefaultText();})&lt;br /&gt;
          )&lt;br /&gt;
        )&lt;br /&gt;
      )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
  $('#right-navigation').after($('&amp;lt;ul/&amp;gt;',{'id':'zoolinks'})&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://csszoo.net',text:'CSS',id:'css_link', title:'Learn CSS! visit CSSzoo'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://progzoo.net',text:'Java',id:'java_link', title:'Hungry for Java tutorials? ProgZoo is for you'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'http://linuxzoo.net',text:'Linux',id:'linux_link', title:'Linux Zoo tutoials!'})))&lt;br /&gt;
     .append($('&amp;lt;li/&amp;gt;',{'id':'book'}).append($('&amp;lt;a/&amp;gt;',{href:'http://www.oreilly.com/catalog/sqlhks/',id:'sql_hacks',title:'Try/buy SQL Hacks book'})))&lt;br /&gt;
  );&lt;br /&gt;
&lt;br /&gt;
  $('#p-Reference').before(engine);&lt;br /&gt;
  &lt;br /&gt;
  //Adverts&lt;br /&gt;
  $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/sqlhacks.png',alt:'SQL Hacks book ad'})&lt;br /&gt;
    .appendTo($('#sql_hacks'));&lt;br /&gt;
  $('#p-googleadsense').prependTo('#footer');&lt;br /&gt;
&lt;br /&gt;
  //Put in the answers&lt;br /&gt;
  if (window.location.search.contains('answer')){&lt;br /&gt;
    $('.quf textarea').each(function(){&lt;br /&gt;
       $(this).val($(this).closest('form').next('.ans').text());&lt;br /&gt;
    })&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (wgCanonicalNamespace=='MediaWiki' || wgCanonicalNamespace=='Special')&lt;br /&gt;
    $('#p-googleadsense').hide();&lt;br /&gt;
&lt;br /&gt;
	// Reset localStorage&lt;br /&gt;
	var rst = $('.lsclear');&lt;br /&gt;
	rst.click(function(e){&lt;br /&gt;
	   if (localStorage) &lt;br /&gt;
			localStorage.clear();&lt;br /&gt;
	   location.reload();&lt;br /&gt;
	});&lt;br /&gt;
			   &lt;br /&gt;
	var numberOfQuestions = 0;&lt;br /&gt;
	var numberOfAnswered = 0;&lt;br /&gt;
	var numberOfCorrect = 0;&lt;br /&gt;
	var startAt = Math.max(1,$('#startAt').text()*1);&lt;br /&gt;
	var qu = $('.qu,.ht,.err');&lt;br /&gt;
	var curEng;&lt;br /&gt;
	if (localStorage &amp;amp;&amp;amp; localStorage.getItem(&amp;quot;currentEngine&amp;quot;))&lt;br /&gt;
	{&lt;br /&gt;
		curEng = localStorage.getItem(&amp;quot;currentEngine&amp;quot;);&lt;br /&gt;
		$('#engine').val(curEng);&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
		curEng = $('#engine').val();&lt;br /&gt;
		&lt;br /&gt;
	for(var i=0;i&amp;lt;qu.length;i++){&lt;br /&gt;
		var id = i+1;&lt;br /&gt;
		var q = qu[i];&lt;br /&gt;
		var lsName = wgPageName + '_' + 'frm__' + id;&lt;br /&gt;
		&lt;br /&gt;
		var def = $('.def',q);&lt;br /&gt;
		if (def.length&amp;gt;1){&lt;br /&gt;
			var pick = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
			for(var j=0;j&amp;lt;def.length;j++)&lt;br /&gt;
			  if ($(def[j]).hasClass('e-'+curEng))&lt;br /&gt;
				pick = $(def[j]);&lt;br /&gt;
			def = pick;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		//Hints&lt;br /&gt;
		var hint = $('.hint', q);&lt;br /&gt;
		hint.hide();&lt;br /&gt;
		hint.each(function(){&lt;br /&gt;
			var htitle = $(this).attr(&amp;quot;title&amp;quot;);&lt;br /&gt;
			var hnt = $('&amp;lt;div/&amp;gt;', {'class':'hnt', 'text':htitle});&lt;br /&gt;
			var hidden = $(this);&lt;br /&gt;
			hnt.click(function(e){&lt;br /&gt;
			   e.preventDefault();&lt;br /&gt;
			   hidden.toggle(&amp;quot;slow&amp;quot;);});&lt;br /&gt;
			$(this).before(hnt);&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		var txt = def.text();&lt;br /&gt;
		// replace the default text with user's last query if available in LS&lt;br /&gt;
		if (localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng))&lt;br /&gt;
		{&lt;br /&gt;
			var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
			txt = lsArray[lsArray.length-1];&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var ans = $('.ans',q).text();&lt;br /&gt;
		var tdy = $('.tidy',q).text();&lt;br /&gt;
		var frm = $('&amp;lt;form/&amp;gt;',{name:'frm__'+id,id:'frm__'+id})&lt;br /&gt;
			.append($('&amp;lt;div/&amp;gt;',{'class':'quf'})&lt;br /&gt;
			   .append($('&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;',&lt;br /&gt;
				 {value:$.trim(txt),&lt;br /&gt;
				  rows:2+Math.max(Math.max(4 ,txt.split(/[\n\r]+/).length),ans.split(/[\n\r]+/).length),&lt;br /&gt;
				  cols:2+Math.max(Math.max(45,maxlen(txt.split(/[\n\r]+/))),maxlen(ans.split(/[\n\r]+/))),&lt;br /&gt;
				  'class':'sql',&lt;br /&gt;
				  id:'txtar_'+id}))&lt;br /&gt;
			   .append($('&amp;lt;br/&amp;gt;'))&lt;br /&gt;
			   .append($('&amp;lt;button/&amp;gt;',{text:'Submit SQL','class':'submitSQL',click:goBaby}))&lt;br /&gt;
			   .append($('&amp;lt;div/&amp;gt;',{text:'Restore default','class':'reset',click:restoreDefault}))&lt;br /&gt;
			);&lt;br /&gt;
		&lt;br /&gt;
		def.after(frm);&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		// Display completion information&lt;br /&gt;
		if (localStorage)&lt;br /&gt;
		{&lt;br /&gt;
			if (!localStorage.getItem(lsName))&lt;br /&gt;
				localStorage.setItem(lsName, &amp;quot;unanswered&amp;quot;);&lt;br /&gt;
			if (localStorage.getItem(lsName) == &amp;quot;answered&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have answered this question &amp;lt;u&amp;gt;incorrectly&amp;lt;/u&amp;gt; before.&amp;quot;);&lt;br /&gt;
				numberOfAnswered++;&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qincorrect', 'title':'You have answered this question incorrectly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
			else if (localStorage.getItem(lsName) == &amp;quot;correct&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have answered this question &amp;lt;u&amp;gt;correctly&amp;lt;/u&amp;gt; before.&amp;quot;);&lt;br /&gt;
				numberOfCorrect++;&lt;br /&gt;
				numberOfAnswered++;&lt;br /&gt;
				&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qcorrect', 'title':'You have answered this question correctly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				//$(&amp;quot;.completion&amp;quot;, q).html(&amp;quot;You have not answered this question yet.&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var lhs = $('&amp;lt;div/&amp;gt;',{css:{width:'60ex',marginRight:'2ex','float':'left'}});&lt;br /&gt;
		lhs.append($('&amp;lt;span/&amp;gt;',{text:(startAt+i)+'.','class':'id'}));&lt;br /&gt;
		lhs.append($(q).children());&lt;br /&gt;
		$(q).append(lhs);&lt;br /&gt;
                // This line caused problems when styling - I removed the css margin-left from it - M&lt;br /&gt;
		//$(q).append($('&amp;lt;div/&amp;gt;',{text:'result','class':'res',css:{'margin-left':'1ex'}}));&lt;br /&gt;
                $(q).append($('&amp;lt;div/&amp;gt;',{text:'result','class':'res'}));&lt;br /&gt;
		&lt;br /&gt;
		//Show additional info if available for active angine&lt;br /&gt;
		var ecomm = $('.ecomm,.link',q);&lt;br /&gt;
		var ecomm1 = ecomm.filter(false);&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var ecomm = $('.link',q);&lt;br /&gt;
		var ecomm1 = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		numberOfQuestions = id;&lt;br /&gt;
	}&lt;br /&gt;
	if (numberOfQuestions == 0)&lt;br /&gt;
		numberOfQuestions = 1;&lt;br /&gt;
	&lt;br /&gt;
	// Display completion info&lt;br /&gt;
	$(&amp;quot;.summary&amp;quot;).html(&amp;quot;You have answered &amp;quot;+numberOfAnswered+&amp;quot; out of &amp;quot;+numberOfQuestions+&amp;quot; questions on this page.&amp;lt;br/&amp;gt;&amp;quot;+numberOfCorrect+&amp;quot; of your answers were correct.&amp;quot;);&lt;br /&gt;
	// Save completion info&lt;br /&gt;
	if (localStorage)&lt;br /&gt;
	{&lt;br /&gt;
		localStorage.setItem(wgPageName+'_numberOfQuestions', numberOfQuestions);&lt;br /&gt;
		localStorage.setItem(wgPageName+'_numberOfCorrect', numberOfCorrect);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	//Progress bar&lt;br /&gt;
	var maxWidth = $('.progressbar').css('width');&lt;br /&gt;
	var barModification = parseFloat(maxWidth) * numberOfCorrect / numberOfQuestions;&lt;br /&gt;
	$('.progressbar').css('width', barModification);&lt;br /&gt;
	&lt;br /&gt;
})&lt;br /&gt;
&lt;br /&gt;
function setDefaultText() {&lt;br /&gt;
	var qu = $('.ht,.err');&lt;br /&gt;
	var curEng = $('#engine').val();&lt;br /&gt;
	if (localStorage)&lt;br /&gt;
		localStorage.setItem(&amp;quot;currentEngine&amp;quot;, curEng);&lt;br /&gt;
	for(var i=0;i&amp;lt;qu.length;i++){&lt;br /&gt;
		var id = i+1;&lt;br /&gt;
		var q = qu[i];&lt;br /&gt;
		&lt;br /&gt;
		var def = $('.def',q);&lt;br /&gt;
		if (def.length&amp;gt;1){&lt;br /&gt;
			var pick = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
			for(var j=0;j&amp;lt;def.length;j++)&lt;br /&gt;
			  if ($(def[j]).hasClass('e-'+curEng))&lt;br /&gt;
				pick = $(def[j]);&lt;br /&gt;
			def = pick;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var lsName = wgPageName + '_' + 'frm__' + id;&lt;br /&gt;
		var txt = def.text();&lt;br /&gt;
		// replace the default text with user's last query if available in LS&lt;br /&gt;
		if (localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng))&lt;br /&gt;
		{&lt;br /&gt;
			var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
			txt = lsArray[lsArray.length-1];&lt;br /&gt;
		}&lt;br /&gt;
		$('textarea#txtar_'+id).val(txt);&lt;br /&gt;
		&lt;br /&gt;
		//Show additional info if available for chosen engine&lt;br /&gt;
		var ecomm = $('.ecomm',q);&lt;br /&gt;
		var ecomm1 = ecomm.filter(false);&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		//Show headers for chosen engine&lt;br /&gt;
		var ecomm = $('.link',q);&lt;br /&gt;
		var ecomm1 = def.filter(function(){&lt;br /&gt;
				var clss = $(this).attr('class').split(' ');&lt;br /&gt;
				for(var k=0;k&amp;lt;clss.length;k++)&lt;br /&gt;
					if (clss[k].match(&amp;quot;^e-&amp;quot;)) return false;&lt;br /&gt;
				return true&lt;br /&gt;
				});&lt;br /&gt;
		if (ecomm.length&amp;gt;0){&lt;br /&gt;
			var curEng = $('#engine').val();&lt;br /&gt;
			for(var j=0;j&amp;lt;ecomm.length;j++)&lt;br /&gt;
			  if ($(ecomm[j]).hasClass('e-'+curEng))&lt;br /&gt;
				ecomm1 = $(ecomm[j]);&lt;br /&gt;
		}&lt;br /&gt;
		for (var j = 0; j &amp;lt; ecomm.length; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if ($(ecomm[j]).get(0) == ecomm1.get(0))&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).show();&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$(ecomm[j]).hide();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function restoreDefault() {&lt;br /&gt;
	var qu = $(this).parents('.qu, .ht, .err');&lt;br /&gt;
	var def = $('.def',qu);&lt;br /&gt;
	var txt = def.text();&lt;br /&gt;
	qu.find('textarea.sql').val(txt);&lt;br /&gt;
}	&lt;br /&gt;
&lt;br /&gt;
function updateProgressbar() {&lt;br /&gt;
	var numberOfQuestions = parseInt(localStorage.getItem(wgPageName+'_numberOfQuestions'));&lt;br /&gt;
	// A little workaround - max progressbar width is 96% of its background's width&lt;br /&gt;
	var maxWidth = parseFloat($('.progressbarbg').css('width')) * 0.96;&lt;br /&gt;
	var barModification = parseFloat($('.progressbar').css('width')) + maxWidth * 1 / numberOfQuestions;&lt;br /&gt;
	$('.progressbar').css('width', barModification);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function goBaby(){&lt;br /&gt;
  var qu = $(this).parents('.qu, .ht, .err');&lt;br /&gt;
  var lsUse = ((qu[0].getAttribute('class') != 'ht') &amp;amp;&amp;amp; ($(qu[0]).find('.ans').length &amp;gt; 0));&lt;br /&gt;
  var lsName = wgPageName + '_' + $(this).parents('form').attr('id');&lt;br /&gt;
  if (lsUse &amp;amp;&amp;amp; localStorage &amp;amp;&amp;amp; (localStorage.getItem(lsName) != &amp;quot;correct&amp;quot;))&lt;br /&gt;
	localStorage.setItem(lsName, &amp;quot;answered&amp;quot;);&lt;br /&gt;
  var sql = qu.find('textarea.sql').val();&lt;br /&gt;
  var parlst = $('.params').text().split(';');&lt;br /&gt;
  var params = {};&lt;br /&gt;
  for(var i=0;i&amp;lt;parlst.length;i++){&lt;br /&gt;
    var pair = parlst[i].split(':');&lt;br /&gt;
    params[pair[0]]=pair[1];&lt;br /&gt;
  }&lt;br /&gt;
  //Store the sql querry in LS&lt;br /&gt;
  if (localStorage)&lt;br /&gt;
  {&lt;br /&gt;
	var curEng = $('#engine').val();&lt;br /&gt;
	var lsArray = JSON.parse(localStorage.getItem(lsName+&amp;quot;_arr_&amp;quot;+curEng));&lt;br /&gt;
	if (!lsArray)&lt;br /&gt;
		lsArray = new Array();&lt;br /&gt;
	lsArray.push(sql);&lt;br /&gt;
	localStorage.setItem(lsName+&amp;quot;_arr_&amp;quot;+curEng, JSON.stringify(lsArray));&lt;br /&gt;
  }&lt;br /&gt;
  qu.find('.res').addClass('waiting');&lt;br /&gt;
  $.ajax({url:'/sqlgo.pl',cache:false,'type':'post',dataType:'json',&lt;br /&gt;
          data:{sql:sql.replace(/\xA0/g,' '),  //Mediawiki inserts &amp;amp;nbsp; before a %. We need to change it back to a space.CM 13/6/12&lt;br /&gt;
                format:'json',&lt;br /&gt;
                question:$('.id',qu).text(),&lt;br /&gt;
                wgUserName:wgUserName,&lt;br /&gt;
                cookie:$.cookie('oliver'),&lt;br /&gt;
                page:wgPageName,&lt;br /&gt;
                server:$('#engine').val(),&lt;br /&gt;
                setup:$('.setup',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                tidy:$('.tidy',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                answer:$('.ans',qu).text().replace(/\xA0/g,' '),&lt;br /&gt;
                schema:params['schema']&lt;br /&gt;
               },&lt;br /&gt;
          success:function(d){&lt;br /&gt;
            var res = qu.find('.res');&lt;br /&gt;
            res.empty().removeClass('waiting')&lt;br /&gt;
            if (d.error){&lt;br /&gt;
              res.append($('&amp;lt;h1/&amp;gt;',{text:'SQLZoo System Error:'}))&lt;br /&gt;
              res.append($('&amp;lt;div/&amp;gt;',{text:d.error}))&lt;br /&gt;
              return;&lt;br /&gt;
            }&lt;br /&gt;
			var headerPresent = false;&lt;br /&gt;
            for (var i = 0; i &amp;lt; d.sql.length; i++)&lt;br /&gt;
				{&lt;br /&gt;
				if (!d || !d.sql || !d.sql[i]){&lt;br /&gt;
				  res.append($('&amp;lt;h1/&amp;gt;',{text:'SQLZoo System Error:'}))&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:&amp;quot;Problem with d or d.sql or d.sql[0]&amp;quot;}))&lt;br /&gt;
				  return;&lt;br /&gt;
				}&lt;br /&gt;
				if (d.sql[i].error){&lt;br /&gt;
				  res.append($('&amp;lt;h1/&amp;gt;',{text:'Error:'}))&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:d.sql[i].error}))&lt;br /&gt;
				  return;&lt;br /&gt;
				}&lt;br /&gt;
				var legend = &amp;quot;Result:&amp;quot;;&lt;br /&gt;
				if (d.score &amp;amp;&amp;amp; d.answer &amp;amp;&amp;amp; d.answer.length==1 &amp;amp;&amp;amp; d.answer[0].fields){&lt;br /&gt;
				  if (d.score == 100){&lt;br /&gt;
					legend = 'Correct answer';&lt;br /&gt;
					if (lsUse &amp;amp;&amp;amp; localStorage)&lt;br /&gt;
						localStorage.setItem(lsName, &amp;quot;correct&amp;quot;);&lt;br /&gt;
					var def = $('.def',qu);&lt;br /&gt;
					if (localStorage.getItem(lsName) == &amp;quot;correct&amp;quot;)&lt;br /&gt;
					{&lt;br /&gt;
						if ($(&amp;quot;.qcorrect&amp;quot;, qu).length == 0)&lt;br /&gt;
						{&lt;br /&gt;
							var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qcorrect', 'title':'You have answered this question correctly before.'});&lt;br /&gt;
							def.before(qcorr);&lt;br /&gt;
							updateProgressbar();&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
			      }&lt;br /&gt;
				  else if (d.answer[0].fields.length&amp;gt;d.sql[0].fields.length)&lt;br /&gt;
					legend = 'Too few columns';&lt;br /&gt;
				  else if (d.answer[0].fields.length&amp;lt;d.sql[0].fields.length)&lt;br /&gt;
					legend = 'Too many columns';&lt;br /&gt;
				  else if (d.answer[0].rows.length&amp;gt;d.sql[0].rows.length)&lt;br /&gt;
					legend = 'Too few rows';&lt;br /&gt;
				  else if (d.answer[0].rows.length&amp;lt;d.sql[0].rows.length)&lt;br /&gt;
					legend = 'Too many rows';&lt;br /&gt;
&lt;br /&gt;
				}&lt;br /&gt;
				if (!headerPresent)&lt;br /&gt;
				{&lt;br /&gt;
					res.append($('&amp;lt;h1/&amp;gt;',{text:legend}));&lt;br /&gt;
					headerPresent = true;&lt;br /&gt;
				}&lt;br /&gt;
				var t = mkTable(d.sql[i]);&lt;br /&gt;
				t.addClass('sqlmine')&lt;br /&gt;
				 .appendTo(res);&lt;br /&gt;
				if (d.answer &amp;amp;&amp;amp; d.answer.length&amp;gt;0 &amp;amp;&amp;amp; d.score&amp;lt;100){&lt;br /&gt;
				  res.append($('&amp;lt;div/&amp;gt;',{text:'Show correct result','class':'showtxt'})&lt;br /&gt;
					.click(function(){&lt;br /&gt;
					  $(this).next().show('slow');&lt;br /&gt;
					})&lt;br /&gt;
				  );&lt;br /&gt;
				  var a = mkTable(d.answer[0]);&lt;br /&gt;
				  a.addClass('sqlans');&lt;br /&gt;
				  a.appendTo(res);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
          },&lt;br /&gt;
          error:function(jqXHR,textStatus,errorThrown){&lt;br /&gt;
            qu.find('.res').empty().removeClass('waiting')&lt;br /&gt;
              .append($('&amp;lt;h1/&amp;gt;',{'class':'syserr',text:'SQLZOO system error:'}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;',{text:textStatus}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;',{text:errorThrown}))&lt;br /&gt;
              .append($('&amp;lt;div/&amp;gt;').html(jqXHR.responseText))&lt;br /&gt;
          }&lt;br /&gt;
         });&lt;br /&gt;
		 &lt;br /&gt;
		// Modify completion information&lt;br /&gt;
		var def = $('.def',qu);&lt;br /&gt;
		if (localStorage)&lt;br /&gt;
		{&lt;br /&gt;
			if (localStorage.getItem(lsName) == &amp;quot;answered&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				var qcorr = $('&amp;lt;div/&amp;gt;', {'class':'qincorrect', 'title':'You have answered this question incorrectly before.'});&lt;br /&gt;
				def.before(qcorr);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
function maxlen(l){&lt;br /&gt;
  var r = 0;&lt;br /&gt;
  for(var i=0;i&amp;lt;l.length;i++)&lt;br /&gt;
    r = Math.max(r,l[i].length);&lt;br /&gt;
  return r;&lt;br /&gt;
}&lt;br /&gt;
function truncate(s){&lt;br /&gt;
  if (s.length&amp;lt;15) return s;&lt;br /&gt;
  return s.substring(0,13)+&amp;quot;..&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
function mkTable(a){&lt;br /&gt;
  var t = $('&amp;lt;table/&amp;gt;');&lt;br /&gt;
  t.append($('&amp;lt;tr/&amp;gt;'));&lt;br /&gt;
  var isnum = [];&lt;br /&gt;
  if (!a.fields || !a.rows) return t;&lt;br /&gt;
  for(var i=0;i&amp;lt;a.fields.length;i++){&lt;br /&gt;
    $('tr',t).append($('&amp;lt;th/&amp;gt;',{text:truncate(a.fields[i])}));&lt;br /&gt;
    var allNum = 1;&lt;br /&gt;
    for(var j=0;j&amp;lt;a.rows.length;j++){&lt;br /&gt;
      if (a.rows[j] &amp;amp;&amp;amp; a.rows[j][i] &amp;amp;&amp;amp; !a.rows[j][i].match(/^[0-9.]*$/))&lt;br /&gt;
        allNum = 0;&lt;br /&gt;
    }&lt;br /&gt;
    isnum.push(allNum);&lt;br /&gt;
  }&lt;br /&gt;
  for(var j=0;j&amp;lt;a.rows.length;j++){&lt;br /&gt;
    var tr = $('&amp;lt;tr/&amp;gt;').appendTo(t);&lt;br /&gt;
    for(var k=0;k&amp;lt;a.rows[j].length;k++){&lt;br /&gt;
      var td = $('&amp;lt;td/&amp;gt;',{text:a.rows[j][k]});&lt;br /&gt;
      if (isnum[k]) td.addClass('r');&lt;br /&gt;
      td.appendTo(tr);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return t;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ======================= Designer js starts here */&lt;br /&gt;
&lt;br /&gt;
// the following scripts should not be present here - they should be linked as external files !!!&lt;br /&gt;
&lt;br /&gt;
// this script helps to manage browser inconsistency across different os&lt;br /&gt;
function css_browser_selector(u){var ua=u.toLowerCase(),is=function(t){return ua.indexOf(t)&amp;gt;-1},g='gecko',w='webkit',s='safari',o='opera',m='mobile',h=document.documentElement,b=[(!(/opera|webtv/i.test(ua))&amp;amp;&amp;amp;/msie\s(\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?g+' ff2':is('firefox/3.5')?g+' ff3 ff3_5':is('firefox/3.6')?g+' ff3 ff3_6':is('firefox/3')?g+' ff3':is('gecko/')?g:is('opera')?o+(/version\/(\d+)/.test(ua)?' '+o+RegExp.$1:(/opera(\s|\/)(\d+)/.test(ua)?' '+o+RegExp.$2:'')):is('konqueror')?'konqueror':is('blackberry')?m+' blackberry':is('android')?m+' android':is('chrome')?w+' chrome':is('iron')?w+' iron':is('applewebkit/')?w+' '+s+(/version\/(\d+)/.test(ua)?' '+s+RegExp.$1:''):is('mozilla/')?g:'',is('j2me')?m+' j2me':is('iphone')?m+' iphone':is('ipod')?m+' ipod':is('ipad')?m+' ipad':is('mac')?'mac':is('darwin')?'mac':is('webtv')?'webtv':is('win')?'win'+(is('windows nt 6.0')?' vista':''):is('freebsd')?'freebsd':(is('x11')||is('linux'))?'linux':'','js']; c = b.join(' '); h.className += ' '+c; return c;}; css_browser_selector(navigator.userAgent);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// display site logo&lt;br /&gt;
$(function(){&lt;br /&gt;
  $('&amp;lt;a/&amp;gt;',{href:'http://sqlzoo.net/w/index.php',id:'mp-logo',title:'Zoo You!'})&lt;br /&gt;
    .append($('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/sql_zoo_logo05.png',alt:'SQLzoo logo'}))&lt;br /&gt;
    .appendTo($('#mw-head-base'))&lt;br /&gt;
});&lt;br /&gt;
 &lt;br /&gt;
// display site description&lt;br /&gt;
$(document).ready(function(){&lt;br /&gt;
  $(function(){&lt;br /&gt;
    $(&amp;quot;#mp-logo&amp;quot;).append(&amp;quot; &amp;lt;h1 id='logo-desc'&amp;gt;Interactive &amp;lt;span&amp;gt;SQL &amp;lt;span&amp;gt;Tutorial&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h1&amp;gt;&amp;quot;);&lt;br /&gt;
  });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// display language selector&lt;br /&gt;
$(function(){&lt;br /&gt;
     $('&amp;lt;div/&amp;gt;',{id:'language'}).appendTo($('#mw-head-base'))&lt;br /&gt;
 &lt;br /&gt;
     var lang = $('&amp;lt;ul/&amp;gt;',{id:'lang','class':'side_nav_sub'});&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;en&amp;quot; href=&amp;quot;/wiki/Main_Page&amp;quot;&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;de&amp;quot; href=&amp;quot;/wiki/Main_Page/de&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        lang.append('&amp;lt;li&amp;gt;&amp;lt;a id=&amp;quot;fr&amp;quot; href=&amp;quot;/wiki/Main_Page/fr&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    $('#language').append(lang);&lt;br /&gt;
&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/en2.png',alt:'SQL zoo in English'})&lt;br /&gt;
       .appendTo($('#en'));&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/de2.png',alt:'SQL zoo in German'})&lt;br /&gt;
       .appendTo($('#de'));&lt;br /&gt;
    $('&amp;lt;img/&amp;gt;',{src:'http://socweb8.napier.ac.uk/~09011004/zoo_tutorials/design/fr2.png',alt:'SQL zoo in French'})&lt;br /&gt;
       .appendTo($('#fr'));&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// assemble and display main nav menu&lt;br /&gt;
$(function(){&lt;br /&gt;
    var ml1 =&lt;br /&gt;
    [['1 SELECT basics',  'SELECT_basics','Some simple queries to get you started']&lt;br /&gt;
    ,['2 SELECT from WORLD','SELECT_from_WORLD_Tutorial','Finding facts about countries']&lt;br /&gt;
    ,['3 SELECT from Nobel','SELECT_from_Nobel_Tutorial','More practice with SELECT statements']&lt;br /&gt;
    ,['4 SELECT within SELECT','SELECT_within_SELECT_Tutorial','Using the results of one query inside another']&lt;br /&gt;
    ,['5 SUM and COUNT','SUM_and_COUNT','Apply aggregate functions']&lt;br /&gt;
    ,['6 JOIN','The_JOIN_operation','Gathering data from more than one table']&lt;br /&gt;
    ,['7 More JOIN','More_JOIN_operations','Getting data from the movie database']&lt;br /&gt;
    ,['8 Using NULL','Using_Null','Dealing with missing data']&lt;br /&gt;
    ,['9 Self JOIN','Self_join','Dealing with missing data']&lt;br /&gt;
	,['10 SQL Quizzes','Tutorial_Quizzes','Test your knowledge with multiple choice quizzes']&lt;br /&gt;
    ];&lt;br /&gt;
    var mm1 = $('&amp;lt;ul/&amp;gt;',{id:'mm1','class':'dropdown mm_sub'});&lt;br /&gt;
    for(var i=0;i&amp;lt;ml1.length;i++){&lt;br /&gt;
	  var maxWidth = 50; // adjust the value so that it fits menu well&lt;br /&gt;
	  var NoQ = localStorage.getItem(ml1[i][1] + '_numberOfQuestions');&lt;br /&gt;
	  if (!NoQ) NoQ = 1;&lt;br /&gt;
	  var NoC = localStorage.getItem(ml1[i][1] + '_numberOfCorrect');&lt;br /&gt;
	  if (!NoC) NoC = 0;	  &lt;br /&gt;
	  var pbWidth = parseFloat(maxWidth) * NoC / NoQ;&lt;br /&gt;
	  var mprogbar = $('&amp;lt;div/&amp;gt;',{'class':'progressbarbg1'}).append($('&amp;lt;div/&amp;gt;',{'class':'progressbar1', 'id':ml1[i][1], css:{'width':pbWidth}}));&lt;br /&gt;
          mm1.append($('&amp;lt;li/&amp;gt;').append($('&amp;lt;a/&amp;gt;',{href:'/wiki/'+ml1[i][1],text:ml1[i][0]})).append(ml1[i][2]).append(mprogbar));&lt;br /&gt;
    }&lt;br /&gt;
    var mm2 = $('&amp;lt;ul/&amp;gt;',{id:'mm2','class':'dropdown mm_sub'});&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/AdventureWorks&amp;quot;&amp;gt;1 AdventureWorks&amp;lt;/a&amp;gt; Flogging sports gear. Assessment for CO22008 2007/8&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Neeps&amp;quot;&amp;gt;2 Neeps&amp;lt;/a&amp;gt; A timetable database&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Musicians&amp;quot;&amp;gt;3 Musicians&amp;lt;/a&amp;gt; Concerts and compositions&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Southwind&amp;quot;&amp;gt;4 Southwind&amp;lt;/a&amp;gt; Buying and selling&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Dressmaker&amp;quot;&amp;gt;5 Dressmaker&amp;lt;/a&amp;gt; Constructing clothing&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Congestion Charging&amp;quot;&amp;gt;6 Congestion Charging&amp;lt;/a&amp;gt; Monitoring traffic (old questions)&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Weather data for Southhampton&amp;quot;&amp;gt;7 Weather data for Southhampton&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm2.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Album Tracks Style&amp;quot;&amp;gt;8 Album Tracks Style&amp;lt;/a&amp;gt; Music data&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    var mm3 = $('&amp;lt;ul/&amp;gt;',{id:'mm3','class':'dropdown mm_sub'});&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/SELECT_Reference&amp;quot;&amp;gt;SELECT&amp;lt;/a&amp;gt;How to read the data from a database.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/CREATE_and_DROP_Reference&amp;quot;&amp;gt;CREATE and DROP&amp;lt;/a&amp;gt;How to create tables, indexes, views and other things. How to get rid of them.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/INSERT_and_DELETE_Reference&amp;quot;&amp;gt;INSERT and DELETE&amp;lt;/a&amp;gt;How to put records into a table, change them and how to take them out again.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/DATE_and_TIME_Reference&amp;quot;&amp;gt;DATE and TIME&amp;lt;/a&amp;gt;How to work with dates; adding, subtracting and formatting.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Functions_Reference&amp;quot;&amp;gt;Functions&amp;lt;/a&amp;gt;How to use string functions, logical functions and mathematical functions.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Users_Reference&amp;quot;&amp;gt;Users&amp;lt;/a&amp;gt;How to create users, GRANT and DENY access, get at other peoples tables. How to find processes and kill them.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Meta_Data_Reference&amp;quot;&amp;gt;Meta Data&amp;lt;/a&amp;gt;How to find out what tables and columns exist. How to count and limit the rows return.&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm3.append('&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/wiki/Hacks_Reference&amp;quot;&amp;gt;SQL Hacks&amp;lt;/a&amp;gt;Useful SQL hacks .&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    var mm = $('&amp;lt;ul/&amp;gt;',{id:'main_menu'}).appendTo('#mw-head-base');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm1&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Tutorials&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm2&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Assessments&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
        mm.append('&amp;lt;li id=&amp;quot;mm3&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot; class=&amp;quot;navlink&amp;quot;&amp;gt;Reference&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;');&lt;br /&gt;
 &lt;br /&gt;
    $('#mm1').append(mm1);&lt;br /&gt;
    $('#mm2').append(mm2);&lt;br /&gt;
    $('#mm3').append(mm3);&lt;br /&gt;
&lt;br /&gt;
    $('#main_menu').wrap('&amp;lt;div id=&amp;quot;navigation_horiz&amp;quot; /&amp;gt;');&lt;br /&gt;
    $('#navigation_horiz').naviDropDown({&lt;br /&gt;
      dropDownWidth: '35em'&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// stick on top elements that need to be visible&lt;br /&gt;
$(function(){&lt;br /&gt;
    $(&amp;quot;#main_menu&amp;quot;).addClass(&amp;quot;stickableMenu&amp;quot;);&lt;br /&gt;
    $(&amp;quot;#p-Reference&amp;quot;).addClass(&amp;quot;stickableRef&amp;quot;);&lt;br /&gt;
    $(&amp;quot;.ref_section&amp;quot;).addClass(&amp;quot;stickableDbRef&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$(document).scroll(function() {&lt;br /&gt;
    var useFixedMenu = $(document).scrollTop() &amp;gt; 175;&lt;br /&gt;
    $('.stickableMenu').toggleClass('fixedMenu', useFixedMenu);&lt;br /&gt;
    &lt;br /&gt;
//    var useFixedRef = $(document).scrollTop() &amp;gt; 275;&lt;br /&gt;
//    $('.stickableRef').toggleClass('fixedRef', useFixedRef);&lt;br /&gt;
&lt;br /&gt;
    $('.stickableDbRef').toggleClass('fixedDbRef', $(document).scrollTop() &amp;gt; 275);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// swap classes on external links to change their side icons&lt;br /&gt;
$(function(){&lt;br /&gt;
 $(&amp;quot;.external&amp;quot;).addClass(&amp;quot;zoo_external&amp;quot;);&lt;br /&gt;
 $(&amp;quot;.external&amp;quot;).removeClass(&amp;quot;external&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
/* === Designer js ends here === */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Insert tables into Quiz distractors&lt;br /&gt;
var qq = $('.question');&lt;br /&gt;
for (var i = 0; i &amp;lt; qq.length; i++)&lt;br /&gt;
{&lt;br /&gt;
	var q = $(qq[i]);&lt;br /&gt;
	var distractors = &amp;quot;ABCDE&amp;quot;;&lt;br /&gt;
	for (var j=0;j&amp;lt;distractors.length;j++){&lt;br /&gt;
		var tans = $('table caption:contains(&amp;quot;Table-'+distractors[j]+'&amp;quot;)', q).parents('table');&lt;br /&gt;
		if (tans.length&amp;gt;0)&lt;br /&gt;
		{&lt;br /&gt;
			var ttd = $('table tr td:contains(&amp;quot;Table-'+distractors[j]+'&amp;quot;)', q);&lt;br /&gt;
			if (ttd.length&amp;gt;0){&lt;br /&gt;
			   ttd.empty();&lt;br /&gt;
			   ttd.append(tans);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$(function(){&lt;br /&gt;
  $('input.check').each(function(i,e){&lt;br /&gt;
    $(this).attr('id','quiz_d_'+i);&lt;br /&gt;
  });&lt;br /&gt;
  $('tr.proposal').each(function(i,e){&lt;br /&gt;
    var tds = $('td',$(this));&lt;br /&gt;
    var html1= $(tds[1]).html();&lt;br /&gt;
    $(tds[1]).html($('&amp;lt;label/&amp;gt;',{html:html1,'for':$('input',$(this)).attr('id') }));&lt;br /&gt;
  })&lt;br /&gt;
})&lt;br /&gt;
//Connor 23/7/12 creates the labels for the multiple choice questions allowing them to be highlighted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Analytics code&lt;br /&gt;
  var _gaq = _gaq || [];&lt;br /&gt;
  _gaq.push(['_setAccount', 'UA-33860668-1']);&lt;br /&gt;
  _gaq.push(['_trackPageview']);&lt;br /&gt;
&lt;br /&gt;
  (function() {&lt;br /&gt;
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;&lt;br /&gt;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';&lt;br /&gt;
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);&lt;br /&gt;
  })();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//JSON&lt;br /&gt;
(function($){var escapeable=/[&amp;quot;\\\x00-\x1f\x7f-\x9f]/g,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','&amp;quot;':'\\&amp;quot;','\\':'\\\\'};$.toJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.stringify?JSON.stringify:function(o){if(o===null){return'null';}&lt;br /&gt;
var type=typeof o;if(type==='undefined'){return undefined;}&lt;br /&gt;
if(type==='number'||type==='boolean'){return''+o;}&lt;br /&gt;
if(type==='string'){return $.quoteString(o);}&lt;br /&gt;
if(type==='object'){if(typeof o.toJSON==='function'){return $.toJSON(o.toJSON());}&lt;br /&gt;
if(o.constructor===Date){var month=o.getUTCMonth()+1,day=o.getUTCDate(),year=o.getUTCFullYear(),hours=o.getUTCHours(),minutes=o.getUTCMinutes(),seconds=o.getUTCSeconds(),milli=o.getUTCMilliseconds();if(month&amp;lt;10){month='0'+month;}&lt;br /&gt;
if(day&amp;lt;10){day='0'+day;}&lt;br /&gt;
if(hours&amp;lt;10){hours='0'+hours;}&lt;br /&gt;
if(minutes&amp;lt;10){minutes='0'+minutes;}&lt;br /&gt;
if(seconds&amp;lt;10){seconds='0'+seconds;}&lt;br /&gt;
if(milli&amp;lt;100){milli='0'+milli;}&lt;br /&gt;
if(milli&amp;lt;10){milli='0'+milli;}&lt;br /&gt;
return'&amp;quot;'+year+'-'+month+'-'+day+'T'+&lt;br /&gt;
hours+':'+minutes+':'+seconds+'.'+milli+'Z&amp;quot;';}&lt;br /&gt;
if(o.constructor===Array){var ret=[];for(var i=0;i&amp;lt;o.length;i++){ret.push($.toJSON(o[i])||'null');}&lt;br /&gt;
return'['+ret.join(',')+']';}&lt;br /&gt;
var name,val,pairs=[];for(var k in o){type=typeof k;if(type==='number'){name='&amp;quot;'+k+'&amp;quot;';}else if(type==='string'){name=$.quoteString(k);}else{continue;}&lt;br /&gt;
type=typeof o[k];if(type==='function'||type==='undefined'){continue;}&lt;br /&gt;
val=$.toJSON(o[k]);pairs.push(name+':'+val);}&lt;br /&gt;
return'{'+pairs.join(',')+'}';}};$.evalJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.parse?JSON.parse:function(src){return eval('('+src+')');};$.secureEvalJSON=typeof JSON==='object'&amp;amp;&amp;amp;JSON.parse?JSON.parse:function(src){var filtered=src.replace(/\\[&amp;quot;\\\/bfnrtu]/g,'@').replace(/&amp;quot;[^&amp;quot;\\\n\r]*&amp;quot;|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,'');if(/^[\],:{}\s]*$/.test(filtered)){return eval('('+src+')');}else{throw new SyntaxError('Error parsing JSON, source is not valid.');}};$.quoteString=function(string){if(string.match(escapeable)){return'&amp;quot;'+string.replace(escapeable,function(a){var c=meta[a];if(typeof c==='string'){return c;}&lt;br /&gt;
c=a.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16);})+'&amp;quot;';}&lt;br /&gt;
return'&amp;quot;'+string+'&amp;quot;';};})(jQuery);&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/&lt;br /&gt;
 *&lt;br /&gt;
 * Uses the built in easing capabilities added In jQuery 1.1&lt;br /&gt;
 * to offer multiple easing options&lt;br /&gt;
 *&lt;br /&gt;
 * TERMS OF USE - jQuery Easing&lt;br /&gt;
 * &lt;br /&gt;
 * Open source under the BSD License. &lt;br /&gt;
 * &lt;br /&gt;
 * Copyright Â© 2008 George McGinley Smith&lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without modification, &lt;br /&gt;
 * are permitted provided that the following conditions are met:&lt;br /&gt;
 * &lt;br /&gt;
 * Redistributions of source code must retain the above copyright notice, this list of &lt;br /&gt;
 * conditions and the following disclaimer.&lt;br /&gt;
 * Redistributions in binary form must reproduce the above copyright notice, this list &lt;br /&gt;
 * of conditions and the following disclaimer in the documentation and/or other materials &lt;br /&gt;
 * provided with the distribution.&lt;br /&gt;
 * &lt;br /&gt;
 * Neither the name of the author nor the names of contributors may be used to endorse &lt;br /&gt;
 * or promote products derived from this software without specific prior written permission.&lt;br /&gt;
 * &lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY &lt;br /&gt;
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF&lt;br /&gt;
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE&lt;br /&gt;
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE&lt;br /&gt;
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED &lt;br /&gt;
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED &lt;br /&gt;
 * OF THE POSSIBILITY OF SUCH DAMAGE. &lt;br /&gt;
 *&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
// t: current time, b: begInnIng value, c: change In value, d: duration&lt;br /&gt;
jQuery.easing['jswing'] = jQuery.easing['swing'];&lt;br /&gt;
&lt;br /&gt;
jQuery.extend( jQuery.easing,&lt;br /&gt;
{&lt;br /&gt;
	def: 'easeOutQuad',&lt;br /&gt;
	swing: function (x, t, b, c, d) {&lt;br /&gt;
		//alert(jQuery.easing.default);&lt;br /&gt;
		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuad: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuad: function (x, t, b, c, d) {&lt;br /&gt;
		return -c *(t/=d)*(t-2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuad: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t + b;&lt;br /&gt;
		return -c/2 * ((--t)*(t-2) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInCubic: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutCubic: function (x, t, b, c, d) {&lt;br /&gt;
		return c*((t=t/d-1)*t*t + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutCubic: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t + b;&lt;br /&gt;
		return c/2*((t-=2)*t*t + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuart: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuart: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * ((t=t/d-1)*t*t*t - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuart: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t*t + b;&lt;br /&gt;
		return -c/2 * ((t-=2)*t*t*t - 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInQuint: function (x, t, b, c, d) {&lt;br /&gt;
		return c*(t/=d)*t*t*t*t + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutQuint: function (x, t, b, c, d) {&lt;br /&gt;
		return c*((t=t/d-1)*t*t*t*t + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutQuint: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t*t*t + b;&lt;br /&gt;
		return c/2*((t-=2)*t*t*t*t + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInSine: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutSine: function (x, t, b, c, d) {&lt;br /&gt;
		return c * Math.sin(t/d * (Math.PI/2)) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutSine: function (x, t, b, c, d) {&lt;br /&gt;
		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInExpo: function (x, t, b, c, d) {&lt;br /&gt;
		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutExpo: function (x, t, b, c, d) {&lt;br /&gt;
		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutExpo: function (x, t, b, c, d) {&lt;br /&gt;
		if (t==0) return b;&lt;br /&gt;
		if (t==d) return b+c;&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;&lt;br /&gt;
		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInCirc: function (x, t, b, c, d) {&lt;br /&gt;
		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutCirc: function (x, t, b, c, d) {&lt;br /&gt;
		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutCirc: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;&lt;br /&gt;
		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutElastic: function (x, t, b, c, d) {&lt;br /&gt;
		var s=1.70158;var p=0;var a=c;&lt;br /&gt;
		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);&lt;br /&gt;
		if (a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
		else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
		if (t &amp;lt; 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;&lt;br /&gt;
		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158;&lt;br /&gt;
		return c*(t/=d)*t*((s+1)*t - s) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158;&lt;br /&gt;
		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutBack: function (x, t, b, c, d, s) {&lt;br /&gt;
		if (s == undefined) s = 1.70158; &lt;br /&gt;
		if ((t/=d/2) &amp;lt; 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;&lt;br /&gt;
		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeInBounce: function (x, t, b, c, d) {&lt;br /&gt;
		return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;&lt;br /&gt;
	},&lt;br /&gt;
	easeOutBounce: function (x, t, b, c, d) {&lt;br /&gt;
		if ((t/=d) &amp;lt; (1/2.75)) {&lt;br /&gt;
			return c*(7.5625*t*t) + b;&lt;br /&gt;
		} else if (t &amp;lt; (2/2.75)) {&lt;br /&gt;
			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;&lt;br /&gt;
		} else if (t &amp;lt; (2.5/2.75)) {&lt;br /&gt;
			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;&lt;br /&gt;
		} else {&lt;br /&gt;
			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	easeInOutBounce: function (x, t, b, c, d) {&lt;br /&gt;
		if (t &amp;lt; d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;&lt;br /&gt;
		return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *&lt;br /&gt;
 * TERMS OF USE - EASING EQUATIONS&lt;br /&gt;
 * &lt;br /&gt;
 * Open source under the BSD License. &lt;br /&gt;
 * &lt;br /&gt;
 * Copyright Â© 2001 Robert Penner&lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without modification, &lt;br /&gt;
 * are permitted provided that the following conditions are met:&lt;br /&gt;
 * &lt;br /&gt;
 * Redistributions of source code must retain the above copyright notice, this list of &lt;br /&gt;
 * conditions and the following disclaimer.&lt;br /&gt;
 * Redistributions in binary form must reproduce the above copyright notice, this list &lt;br /&gt;
 * of conditions and the following disclaimer in the documentation and/or other materials &lt;br /&gt;
 * provided with the distribution.&lt;br /&gt;
 * &lt;br /&gt;
 * Neither the name of the author nor the names of contributors may be used to endorse &lt;br /&gt;
 * or promote products derived from this software without specific prior written permission.&lt;br /&gt;
 * &lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY &lt;br /&gt;
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF&lt;br /&gt;
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE&lt;br /&gt;
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE&lt;br /&gt;
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED &lt;br /&gt;
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED &lt;br /&gt;
 * OF THE POSSIBILITY OF SUCH DAMAGE. &lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
/**&lt;br /&gt;
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+&lt;br /&gt;
* &amp;lt;http://cherne.net/brian/resources/jquery.hoverIntent.html&amp;gt;&lt;br /&gt;
* &lt;br /&gt;
* @param  f  onMouseOver function || An object with configuration options&lt;br /&gt;
* @param  g  onMouseOut function  || Nothing (use configuration options object)&lt;br /&gt;
* @author    Brian Cherne &amp;lt;brian@cherne.net&amp;gt;&lt;br /&gt;
*/&lt;br /&gt;
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))&amp;lt;cfg.sensitivity){$(ob).unbind(&amp;quot;mousemove&amp;quot;,track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type==&amp;quot;mouseover&amp;quot;?e.fromElement:e.toElement)||e.relatedTarget;while(p&amp;amp;&amp;amp;p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type==&amp;quot;mouseover&amp;quot;){pX=ev.pageX;pY=ev.pageY;$(ob).bind(&amp;quot;mousemove&amp;quot;,track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind(&amp;quot;mousemove&amp;quot;,track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);&lt;br /&gt;
/**&lt;br /&gt;
* plugin: jquery.naviDropDown.js&lt;br /&gt;
* author: kt.cheung @ Brandammo&lt;br /&gt;
* website: www.brandammo.co.uk&lt;br /&gt;
* version: 1.0&lt;br /&gt;
* date: 19th feb 2011&lt;br /&gt;
* description: simple jquery navigation drop down menu with easing and hoverIntent&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 2011 KT Cheung&lt;br /&gt;
&lt;br /&gt;
Permission is hereby granted, free of charge, to any person obtaining a copy&lt;br /&gt;
of this software and associated documentation files (the &amp;quot;Software&amp;quot;), to deal&lt;br /&gt;
in the Software without restriction, including without limitation the rights&lt;br /&gt;
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell&lt;br /&gt;
copies of the Software, and to permit persons to whom the Software is&lt;br /&gt;
furnished to do so, subject to the following conditions:&lt;br /&gt;
&lt;br /&gt;
The above copyright notice and this permission notice shall be included in&lt;br /&gt;
all copies or substantial portions of the Software.&lt;br /&gt;
&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SOFTWARE.&lt;br /&gt;
&lt;br /&gt;
**/&lt;br /&gt;
&lt;br /&gt;
(function($){&lt;br /&gt;
&lt;br /&gt;
  $.fn.naviDropDown = function(options) {  &lt;br /&gt;
  &lt;br /&gt;
	//set up default options &lt;br /&gt;
	var defaults = { &lt;br /&gt;
		dropDownClass: 'dropdown', //the class name for your drop down&lt;br /&gt;
		dropDownWidth: 'auto',	//the default width of drop down elements&lt;br /&gt;
		slideDownEasing: 'easeInOutCirc', //easing method for slideDown&lt;br /&gt;
		slideUpEasing: 'easeInOutCirc', //easing method for slideUp&lt;br /&gt;
		slideDownDuration: 500, //easing duration for slideDown&lt;br /&gt;
		slideUpDuration: 500, //easing duration for slideUp&lt;br /&gt;
		orientation: 'horizontal' //orientation - either 'horizontal' or 'vertical'&lt;br /&gt;
	}; &lt;br /&gt;
  	&lt;br /&gt;
	var opts = $.extend({}, defaults, options); 	&lt;br /&gt;
&lt;br /&gt;
    return this.each(function() {  &lt;br /&gt;
	  var $this = $(this);&lt;br /&gt;
	  $this.find('.'+opts.dropDownClass).css('width', opts.dropDownWidth).css('display', 'none');&lt;br /&gt;
	  &lt;br /&gt;
	  var buttonWidth = $this.find('.'+opts.dropDownClass).parent().width() + 'px';&lt;br /&gt;
	  var buttonHeight = $this.find('.'+opts.dropDownClass).parent().height() + 'px';&lt;br /&gt;
	  if(opts.orientation == 'horizontal') {&lt;br /&gt;
		//$this.find('.'+opts.dropDownClass).css('left', '0px').css('top', buttonHeight);&lt;br /&gt;
	  }&lt;br /&gt;
	  if(opts.orientation == 'vertical') {&lt;br /&gt;
		$this.find('.'+opts.dropDownClass).css('left', buttonWidth).css('top', '0px');&lt;br /&gt;
	  }&lt;br /&gt;
	  &lt;br /&gt;
	  $this.find('li').hoverIntent(getDropDown, hideDropDown);&lt;br /&gt;
    });&lt;br /&gt;
	&lt;br /&gt;
	function getDropDown(){&lt;br /&gt;
		activeNav = $(this);&lt;br /&gt;
		showDropDown();&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	function showDropDown(){&lt;br /&gt;
		activeNav.find('.'+opts.dropDownClass).slideDown({duration:opts.slideDownDuration, easing:opts.slideDownEasing});&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	function hideDropDown(){&lt;br /&gt;
		activeNav.find('.'+opts.dropDownClass).slideUp({duration:opts.slideUpDuration, easing:opts.slideUpEasing});//hides the current dropdown&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
  };&lt;br /&gt;
})(jQuery);&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/User:Andr3w/vector.js</id>
		<title>User:Andr3w/vector.js</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/User:Andr3w/vector.js"/>
				<updated>2013-02-28T20:11:07Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;$(function(){&lt;br /&gt;
  if (window.location.search.contains('answer')){&lt;br /&gt;
    $('.quf textarea').each(function(){&lt;br /&gt;
       $(this).val($(this).closest('form').next('.ans').text());&lt;br /&gt;
    })&lt;br /&gt;
  }&lt;br /&gt;
})&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/User:Andr3w/vector.js</id>
		<title>User:Andr3w/vector.js</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/User:Andr3w/vector.js"/>
				<updated>2013-02-28T20:09:59Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;$(function(){&lt;br /&gt;
  if (window.location.search.contains('answer')){&lt;br /&gt;
    $('.quf textarea').each(function(){&lt;br /&gt;
       var ans = $(this).closest('form').next('.ans').text()&lt;br /&gt;
       console.log(ans);&lt;br /&gt;
    })&lt;br /&gt;
  }&lt;br /&gt;
})&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/User:Andr3w/vector.js</id>
		<title>User:Andr3w/vector.js</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/User:Andr3w/vector.js"/>
				<updated>2013-02-28T20:07:09Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;$(function(){&lt;br /&gt;
  if (window.location.search.contains('answer')){&lt;br /&gt;
    $('.quf textarea').each(function(){&lt;br /&gt;
       var ans = $(this).closest('form.quf').next('.ans').text()&lt;br /&gt;
       console.log(ans);&lt;br /&gt;
    })&lt;br /&gt;
  }&lt;br /&gt;
})&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/User:Andr3w/vector.js</id>
		<title>User:Andr3w/vector.js</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/User:Andr3w/vector.js"/>
				<updated>2013-02-28T20:06:43Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;$(function(){&lt;br /&gt;
  if (window.location.search.contains('answer')){&lt;br /&gt;
    $('.quf textarea').each(function(){&lt;br /&gt;
       var ans = $(this).closest('form.quf').next('.ans').text()&lt;br /&gt;
       consol.log(ans);&lt;br /&gt;
    })&lt;br /&gt;
  }&lt;br /&gt;
})&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/User:Andr3w/vector.js</id>
		<title>User:Andr3w/vector.js</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/User:Andr3w/vector.js"/>
				<updated>2013-02-28T19:59:39Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;$(function(){&lt;br /&gt;
  console.log(window.location);&lt;br /&gt;
})&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/User:Andr3w/vector.js</id>
		<title>User:Andr3w/vector.js</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/User:Andr3w/vector.js"/>
				<updated>2013-02-28T19:57:26Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;$(function(){&lt;br /&gt;
  console.log(window.location.pathname);&lt;br /&gt;
})&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/User:Andr3w/vector.js</id>
		<title>User:Andr3w/vector.js</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/User:Andr3w/vector.js"/>
				<updated>2013-02-28T19:56:46Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;$(function(){&lt;br /&gt;
  console.log(window.location.url);&lt;br /&gt;
})&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/User:Andr3w/vector.js</id>
		<title>User:Andr3w/vector.js</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/User:Andr3w/vector.js"/>
				<updated>2013-02-28T19:55:30Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;$(function(){&lt;br /&gt;
  alert(document.url);&lt;br /&gt;
})&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/SELECT_basics</id>
		<title>SELECT basics</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/SELECT_basics"/>
				<updated>2013-02-17T01:02:27Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;ref_section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class='db_ref'&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;name&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;continent&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;area&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;population&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;gdp&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Afghanistan&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Asia&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;652230&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;25500100&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;20343000000&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Albania&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;28748	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;2831741	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;12960000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Algeria&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;2381741	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;37100000	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;188681000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Andorra&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Europe&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;468&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;78115	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;3712000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Angola&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Africa&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;1246700	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;20609294	&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;r&amp;quot;&amp;gt;100990000000	&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan='5'&amp;gt;...&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Introducing the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; table of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces SQL as a  query language. We will be using the SELECT command on the table '''world''':&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;progress_panel&amp;quot;&amp;gt;&amp;lt;div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;summary&amp;quot;&amp;gt;Summary&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;progressbarbg&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;div class=&amp;quot;progressbar&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class='extra_space' style='width:1em; height:6em;'&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
The example shows the population of 'France'.&lt;br /&gt;
Strings should be in 'single quotes';&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the population of Germany&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT population FROM world&lt;br /&gt;
  WHERE name = 'France'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT population FROM world&lt;br /&gt;
  WHERE name = 'Germany'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Per Capita GDP==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;This query shows the population density &amp;lt;code&amp;gt;population/area&amp;lt;/code&amp;gt;&lt;br /&gt;
for each country where the area is over 5,000,000 km&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;Show the per capita gdp: &amp;lt;code&amp;gt;gdp/population&amp;lt;/code&amp;gt;&lt;br /&gt;
for each country where the area is over 5,000,000 km&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name, population/area FROM world&lt;br /&gt;
  WHERE area &amp;gt; 5000000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name, gdp/population FROM world&lt;br /&gt;
  WHERE area &amp;gt; 5000000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Small and wealthy==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
Where to find some very small, very rich countries.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;We use &amp;lt;code&amp;gt;AND&amp;lt;/code&amp;gt; to ensure that two or more conditions hold&lt;br /&gt;
true.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;The example shows the countries where the population is small and the&lt;br /&gt;
gdp is high.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;Show the &amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;continent&amp;lt;/b&amp;gt; where the area is less then 2000 and the gdp is more than 5000000000&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name , continent&lt;br /&gt;
  FROM world&lt;br /&gt;
  WHERE population &amp;lt; 2000000&lt;br /&gt;
    AND gdp &amp;gt; 5000000000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name , continent&lt;br /&gt;
  FROM world&lt;br /&gt;
  WHERE area &amp;lt; 2000&lt;br /&gt;
    AND gdp &amp;gt; 5000000000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scandinavia==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
Checking a list The word &amp;lt;b&amp;gt;IN&amp;lt;/b&amp;gt; allows us to check if an item is in a list. &lt;br /&gt;
The example shows the name and population for the countries 'Ireland', 'Iceland' and 'Denmark'&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;Show the '''name''' and the '''population''' for 'Denmark', 'Finland', 'Norway', 'Sweden'&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name, population FROM world&lt;br /&gt;
  WHERE name IN ('Ireland', 'Iceland',&lt;br /&gt;
                 'Denmark')&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name, population FROM world&lt;br /&gt;
  WHERE name IN ('Denmark', 'Finland',&lt;br /&gt;
                 'Norway', 'Sweden')&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Starts with G==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
What are the countries beginning with G?&lt;br /&gt;
'''The word''' &amp;lt;code&amp;gt;LIKE&amp;lt;/code&amp;gt; '''permits pattern matching''' - % '''is the wildcard'''.&lt;br /&gt;
The examples shows countries beginning with D&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;Show each country that begins with G&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name FROM world&lt;br /&gt;
  WHERE name LIKE 'D%'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name FROM world&lt;br /&gt;
  WHERE name LIKE 'G%'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Just the right size==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
Which countries are not too small and not too big?&lt;br /&gt;
&amp;lt;code&amp;gt;BETWEEN&amp;lt;/code&amp;gt; allows range checking - note that it is inclusive.&lt;br /&gt;
&amp;lt;div class='imper'&amp;gt;'''Show the area in 1000 square km. Show''' ''area''/1000 '''instead of''' ''area''&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT name, area FROM world&lt;br /&gt;
  WHERE area BETWEEN 207600 AND 244820&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT name, area/1000 FROM world&lt;br /&gt;
  WHERE area BETWEEN 207600 AND 244820&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;lsclear&amp;quot;&amp;gt;Clear your results&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;div class=&amp;quot;quizlink&amp;quot;&amp;gt;[[SELECT Quiz]]&amp;lt;/div&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You are ready for tutorial one:[[SELECT_from_WORLD_Tutorial |SELECT statements with WHERE.]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Languages}}&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/Subquery_and_JOIN</id>
		<title>Subquery and JOIN</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/Subquery_and_JOIN"/>
				<updated>2013-01-06T15:17:55Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you are shown how to convert subqueries into JOIN functions this would be done&lt;br /&gt;
as using subqueries that contain no aggregate functions unnecessarily&lt;br /&gt;
causes the response speed of the query to slow down.&lt;br /&gt;
&amp;lt;div class='ht'&amp;gt;&lt;br /&gt;
&amp;lt;div class=params&amp;gt;schema:scott&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang=sql class='tidy'&amp;gt;DROP TABLE jobs;&lt;br /&gt;
DROP TABLE ranks;&lt;br /&gt;
DROP TABLE salary;&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=sql class='setup'&amp;gt; CREATE TABLE jobs(&lt;br /&gt;
  employee VARCHAR(40),&lt;br /&gt;
  title VARCHAR(40));&lt;br /&gt;
INSERT INTO jobs VALUES ('Gordon Russell','Lecturer');&lt;br /&gt;
INSERT INTO jobs VALUES ('Andrew Cumming','Teaching fellow');&lt;br /&gt;
INSERT INTO jobs VALUES ('Jim Smith','Technician');&lt;br /&gt;
CREATE TABLE ranks (&lt;br /&gt;
   title VARCHAR(40),&lt;br /&gt;
   rank VARCHAR(40));&lt;br /&gt;
INSERT INTO ranks VALUES ('Lecturer','LECT1');&lt;br /&gt;
INSERT INTO ranks VALUES ('Teaching fellow','LECT2');&lt;br /&gt;
INSERT INTO ranks VALUES ('Technician','TECH1');&lt;br /&gt;
CREATE TABLE salary (&lt;br /&gt;
   rank VARCHAR(40),&lt;br /&gt;
   payment INTEGER);&lt;br /&gt;
INSERT INTO salary VALUES ('LECT1',2000);&lt;br /&gt;
INSERT INTO salary VALUES ('LECT2',3000);&lt;br /&gt;
INSERT INTO salary VALUES ('TECH1',5000);&lt;br /&gt;
INSERT INTO salary VALUES ('TECH2',6000);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
 SELECT payment FROM salary WHERE rank =&lt;br /&gt;
  (SELECT rank FROM ranks WHERE title =&lt;br /&gt;
  (SELECT title FROM jobs &lt;br /&gt;
    WHERE employee = 'Andrew Cumming'))&lt;br /&gt;
This subquery would be more efficient if it was changed to a &amp;lt;code&amp;gt;JOIN&amp;lt;/code&amp;gt; as there are no&lt;br /&gt;
aggregate functions in the queries. &lt;br /&gt;
&amp;lt;ul&amp;gt;Use the following steps to change a subquery into a &amp;lt;code&amp;gt;JOIN&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Mark all columns with the table name they came from&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;If you use the same table in two different &amp;lt;code&amp;gt;FROM&amp;lt;/code&amp;gt; clauses, use aliases&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Move all &amp;lt;code&amp;gt;FROM&amp;lt;/code&amp;gt; statements together to form a single &amp;lt;code&amp;gt;FROM&amp;lt;/code&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Delete all occurrences of (&amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Substitute &amp;lt;code&amp;gt;WHERE&amp;lt;/code&amp;gt; for AND after the first occurence of &amp;lt;code&amp;gt;WHERE&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT payment &lt;br /&gt;
  FROM salary, ranks, jobs&lt;br /&gt;
  WHERE salary.rank = ranks.rank&lt;br /&gt;
    AND ranks.title = jobs.title&lt;br /&gt;
    AND jobs.employee = 'Andrew Cumming'&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ecomm e-mysql&amp;quot; style=&amp;quot;display: none&amp;quot;&amp;gt;&amp;lt;code&amp;gt;JOIN ON&amp;lt;/code&amp;gt; functions would also work with:&lt;br /&gt;
&amp;lt;pre&amp;gt;SELECT payment &lt;br /&gt;
  FROM salary JOIN ranks &lt;br /&gt;
    ON (salary.rank = ranks.rank)&lt;br /&gt;
  JOIN jobs ON (ranks.title = jobs.title)&lt;br /&gt;
  WHERE jobs.employee = 'Andrew Cumming'&amp;lt;/pre&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Hacks Ref}}&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/Create_a_new_user</id>
		<title>Create a new user</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/Create_a_new_user"/>
				<updated>2012-12-18T17:04:15Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Create a new user.&lt;br /&gt;
&amp;lt;div class='ht'&amp;gt;&lt;br /&gt;
&amp;lt;div class=params&amp;gt;schema:gisq&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
Give the new user permission to connect and to create their own tables etc.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang=sql class='tidy'&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=sql class='setup'&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def e-sqlite'&amp;gt;CREATE USER scott IDENTIFIED BY 'tiger'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def e-db2'&amp;gt;Use operating system.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def e-ingres'&amp;gt;create user scott with password = 'tiger'&lt;br /&gt;
grant all on database scott to scott&lt;br /&gt;
grant access on database gisq to scott&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def e-access'&amp;gt;CREATE USER scott IDENTIFIED BY 'tiger'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def e-postgres'&amp;gt;CREATE USER scott WITH PASSWORD 'tiger';&lt;br /&gt;
CREATE DATABASE scott;&lt;br /&gt;
GRANT ALL ON DATABASE scott to scott;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def e-oracle'&amp;gt;CREATE USER scott IDENTIFIED BY tiger&lt;br /&gt;
  TEMPORARY TABLESPACE temp&lt;br /&gt;
  DEFAULT TABLESPACE users;&lt;br /&gt;
GRANT CONNECT TO scott;&lt;br /&gt;
GRANT RESOURCE TO scott&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def e-sqlserver'&amp;gt;CREATE LOGIN scott &lt;br /&gt;
    WITH PASSWORD = 'tiger';&lt;br /&gt;
CREATE DATABASE scottsdb;&lt;br /&gt;
USE scottsdb;&lt;br /&gt;
CREATE USER scott FOR LOGIN scott;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def e-mysql'&amp;gt;&lt;br /&gt;
CREATE DATABASE scott;&lt;br /&gt;
GRANT SELECT, INSERT,UPDATE,DELETE,CREATE,DROP,ALTER&lt;br /&gt;
   ON scott.* TO scott@localhost&lt;br /&gt;
   IDENTIFIED BY 'tiger';&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def e-mimer'&amp;gt;CREATE IDENT scott AS USER USING 'tiger';&lt;br /&gt;
CREATE DATABANK userBank;&lt;br /&gt;
GRANT TABLE ON userBank TO scott;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang='sql' class='def e-sybase'&amp;gt;CREATE USER scott IDENTIFIED BY 'tiger'&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ecomm e-db2&amp;quot; style=&amp;quot;display: none&amp;quot;&amp;gt;Create a user from the operating system. Have that user run the command:&lt;br /&gt;
 . /home/db2inst1/sqllib/db2profile&lt;br /&gt;
as part of the .bashrc (or whatever). &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ecomm e-access&amp;quot; style=&amp;quot;display: none&amp;quot;&amp;gt;Access is a single user system. (Please email me if you know otherwise.)&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ecomm e-postgres&amp;quot; style=&amp;quot;display: none&amp;quot;&amp;gt;If scott is the name of a Unix account there is no problem - otherwise you must insert the following line before the default lines&lt;br /&gt;
local scott template1 password&lt;br /&gt;
to the file /var/lib/postgres/data/pg_hba.conf this allows postgres user scott to connect to database template1.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ecomm e-oracle&amp;quot; style=&amp;quot;display: none&amp;quot;&amp;gt;You should specify the &amp;quot;tablespace&amp;quot; - if you don't it defaults to SYS which causes a whole world of pain.&lt;br /&gt;
The CONNECT and RESOURCE grants permit users to connect to the system and to create stuff.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ecomm e-sqlserver&amp;quot; style=&amp;quot;display: none&amp;quot;&amp;gt;[http://msdn.microsoft.com/en-us/library/ms173463.aspx CREATE USER]&lt;br /&gt;
Old Style:&lt;br /&gt;
sp_addlogin 'scott', 'tiger';&lt;br /&gt;
CREATE DATABASE scott;&lt;br /&gt;
USE scott;&lt;br /&gt;
sp_changedbowner scott&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ecomm e-mimer&amp;quot; style=&amp;quot;display: none&amp;quot;&amp;gt;An IDENT is a user. A DATABANK corresponds to a file where the data is actually stored. Users normally have a SCHEMA - this is created as the user is created. &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Users ref}}&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/SELECT_.._WHERE</id>
		<title>SELECT .. WHERE</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/SELECT_.._WHERE"/>
				<updated>2012-12-16T15:53:23Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;SELECT .. WHERE&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The table &amp;lt;code&amp;gt;games&amp;lt;/code&amp;gt; shows the year and the city hosting the Olympic Games.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;caption align='center'&amp;gt;games&amp;lt;/caption&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th align='center'&amp;gt;'''yr'''&amp;lt;/th&amp;gt;&amp;lt;th align='center'&amp;gt;'''city'''&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2000&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Sydney&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2004&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Athens&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2008&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;Beijing&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2012&amp;lt;/td&amp;gt;&amp;lt;td align='left'&amp;gt;London&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;div class='ht'&amp;gt;&lt;br /&gt;
&amp;lt;div class=params&amp;gt;schema:scott&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang=sql class='tidy'&amp;gt; DROP TABLE games&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=sql class='setup'&amp;gt; CREATE TABLE games(&lt;br /&gt;
  yr INTEGER PRIMARY KEY,&lt;br /&gt;
  city VARCHAR(20));&lt;br /&gt;
INSERT INTO games VALUES (2000,'Sydney');&lt;br /&gt;
INSERT INTO games VALUES (2004,'Athens');&lt;br /&gt;
INSERT INTO games VALUES (2008,'Beijing');&lt;br /&gt;
INSERT INTO games VALUES (2012,'London');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The SELECT statement returns results from a &amp;lt;i&amp;gt;table&amp;lt;/i&amp;gt;. &lt;br /&gt;
With a WHERE clause only some rows are returned. &lt;br /&gt;
This example shows the year that Athens hosted the Olympic games.&lt;br /&gt;
&amp;lt;source lang='sql' class='def e-oracle'&amp;gt;&lt;br /&gt;
SELECT yr, city &lt;br /&gt;
FROM scott.games&lt;br /&gt;
WHERE yr = 2004&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT yr, city &lt;br /&gt;
FROM games&lt;br /&gt;
WHERE yr = 2004&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;See also&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[SELECT_from_BBC_Tutorial |SELECT TUTORIAL]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[SELECT |SELECT]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/NSS_Tutorial</id>
		<title>NSS Tutorial</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/NSS_Tutorial"/>
				<updated>2012-12-10T16:18:07Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: /* Scores for Institutions in Manchester */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;ref_section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class='db_ref'&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Field&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Type&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;ukprn&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(8)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;institution&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(100)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;subject&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(60)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;level&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(50)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;question&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(10)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_STRONGLY_DISAGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_DISAGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_NEUTRAL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_AGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_STRONGLY_AGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_NA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;CI_MIN&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;score&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;CI_MAX&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;response&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;sample&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;aggregate&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(1)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==National Student Survey 2012==&lt;br /&gt;
The National Student Survey http://www.thestudentsurvey.com/ is presented to thousands of graduating students in UK Higher Education. The survey asks 22 questions, students can respond with STRONGLY DISAGREE, DISAGREE, NEUTRAL, AGREE or STRONGLY AGREE.&lt;br /&gt;
&lt;br /&gt;
The table &amp;lt;code&amp;gt;nss&amp;lt;/code&amp;gt; has one row per institution, subject and question.&lt;br /&gt;
&lt;br /&gt;
==Check out one row== &lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
The example shows the number who responded for:&lt;br /&gt;
*question 1&lt;br /&gt;
*at 'Edinburgh Napier University'&lt;br /&gt;
*studying '(8) Computer Science'&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the the percentage who STRONGLY AGREE&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT response&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q01'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT A_STRONGLY_AGREE&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q01'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Calculate how many agree or strongly agree== &lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the institution and subject where the '''score''' is at least 100 for question 15.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT response&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q01'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT institution, subject&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND score&amp;gt;=100&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Unhappy Computer Students==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the institution and score where the score for '(8) Computer Science' is less than 50 for question 'Q15'&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT institution, score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND score&amp;lt;50&lt;br /&gt;
   AND subject = '(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==More Computing or Creative Students?==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the total number of students who responded to question 22 for the subject '(8) Computer Science' show the same figure for the subject '(H) Creative Arts and Design'.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='hint' title='HINT'&amp;gt;&lt;br /&gt;
You will need to use SUM over the '''response''' column and GROUP BY '''subject'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT subject,SUM(response)&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND subject IN ('(8) Computer Science','(H) Creative Arts and Design')&lt;br /&gt;
GROUP BY subject&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Strongly Agree Numbers==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the total number of students who A_STRONGLY_AGREE to question 22 for the subject '(8) Computer Science' show the same figure for the subject '(H) Creative Arts and Design'.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='hint' title='HINT'&amp;gt;&lt;br /&gt;
The A_STRONGLY_AGREE column is a percentage. To work out the total number of students who strongly agree you must multiply this percentage by the number who responded ('''response''') and divide by 100 - take the SUM of that.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT subject,SUM(response*A_STRONGLY_AGREE/100)&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND subject IN ('(8) Computer Science','(H) Creative Arts and Design')&lt;br /&gt;
GROUP BY subject&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Strongly Agree, Percentage==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the percentage of students who A_STRONGLY_AGREE to question 22 for the subject '(8) Computer Science' show the same figure for the subject '(H) Creative Arts and Design'.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Use the '''ROUND''' function to show the percentage without decimal places.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT subject,&lt;br /&gt;
  ROUND(SUM(response*A_STRONGLY_AGREE)/SUM(response),0)&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND subject IN ('(8) Computer Science','(H) Creative Arts and Design')&lt;br /&gt;
GROUP BY subject&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Scores for Institutions in Manchester==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the average scores for question 'Q01' for each institution that include 'Manchester' in the name.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
The column '''score''' is a percentage - you must use the method outlined above to multiply the percentage by the '''response''' and divide by the total response. Give your answer rounded to the nearest whole number.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,subject,score,response&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND (institution LIKE '%Manchester%')&lt;br /&gt;
ORDER BY institution&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT institution,&lt;br /&gt;
  ROUND(SUM(response*score)/SUM(response),0) score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND (institution LIKE '%Manchester%')&lt;br /&gt;
GROUP BY institution&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Number of Computing Students in Manchester==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the institution, the total sample size and the number of computing students for institutions in Manchester for 'Q01'.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,subject,score,response&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND (institution LIKE '%Manchester%')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT institution,&lt;br /&gt;
  SUM(sample),&lt;br /&gt;
  SUM(CASE WHEN subject LIKE '(8)%' THEN sample END) comp&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q01'&lt;br /&gt;
   AND (institution LIKE '%Manchester%')&lt;br /&gt;
GROUP BY institution&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/NSS_Tutorial</id>
		<title>NSS Tutorial</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/NSS_Tutorial"/>
				<updated>2012-12-10T16:12:29Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: /* Scores for Institutions in London */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;ref_section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class='db_ref'&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Field&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Type&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;ukprn&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(8)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;institution&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(100)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;subject&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(60)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;level&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(50)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;question&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(10)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_STRONGLY_DISAGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_DISAGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_NEUTRAL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_AGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_STRONGLY_AGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_NA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;CI_MIN&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;score&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;CI_MAX&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;response&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;sample&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;aggregate&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(1)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==National Student Survey 2012==&lt;br /&gt;
The National Student Survey http://www.thestudentsurvey.com/ is presented to thousands of graduating students in UK Higher Education. The survey asks 22 questions, students can respond with STRONGLY DISAGREE, DISAGREE, NEUTRAL, AGREE or STRONGLY AGREE.&lt;br /&gt;
&lt;br /&gt;
The table &amp;lt;code&amp;gt;nss&amp;lt;/code&amp;gt; has one row per institution, subject and question.&lt;br /&gt;
&lt;br /&gt;
==Check out one row== &lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
The example shows the number who responded for:&lt;br /&gt;
*question 1&lt;br /&gt;
*at 'Edinburgh Napier University'&lt;br /&gt;
*studying '(8) Computer Science'&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the the percentage who STRONGLY AGREE&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT response&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q01'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT A_STRONGLY_AGREE&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q01'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Calculate how many agree or strongly agree== &lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the institution and subject where the '''score''' is at least 100 for question 15.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT response&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q01'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT institution, subject&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND score&amp;gt;=100&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Unhappy Computer Students==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the institution and score where the score for '(8) Computer Science' is less than 50 for question 'Q15'&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT institution, score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND score&amp;lt;50&lt;br /&gt;
   AND subject = '(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==More Computing or Creative Students?==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the total number of students who responded to question 22 for the subject '(8) Computer Science' show the same figure for the subject '(H) Creative Arts and Design'.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='hint' title='HINT'&amp;gt;&lt;br /&gt;
You will need to use SUM over the '''response''' column and GROUP BY '''subject'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT subject,SUM(response)&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND subject IN ('(8) Computer Science','(H) Creative Arts and Design')&lt;br /&gt;
GROUP BY subject&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Strongly Agree Numbers==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the total number of students who A_STRONGLY_AGREE to question 22 for the subject '(8) Computer Science' show the same figure for the subject '(H) Creative Arts and Design'.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='hint' title='HINT'&amp;gt;&lt;br /&gt;
The A_STRONGLY_AGREE column is a percentage. To work out the total number of students who strongly agree you must multiply this percentage by the number who responded ('''response''') and divide by 100 - take the SUM of that.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT subject,SUM(response*A_STRONGLY_AGREE/100)&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND subject IN ('(8) Computer Science','(H) Creative Arts and Design')&lt;br /&gt;
GROUP BY subject&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Strongly Agree, Percentage==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the percentage of students who A_STRONGLY_AGREE to question 22 for the subject '(8) Computer Science' show the same figure for the subject '(H) Creative Arts and Design'.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Use the '''ROUND''' function to show the percentage without decimal places.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT subject,&lt;br /&gt;
  ROUND(SUM(response*A_STRONGLY_AGREE)/SUM(response),0)&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND subject IN ('(8) Computer Science','(H) Creative Arts and Design')&lt;br /&gt;
GROUP BY subject&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Scores for Institutions in Manchester==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the average scores for question 'Q01' for each institution that include 'Manchester' in the name.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
The column '''score''' is a percentage - you must use the method outlined above to multiply the percentage by the '''response''' and divide by the total response. Give your answer rounded to the nearest whole number.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT institution,&lt;br /&gt;
  ROUND(SUM(response*score)/SUM(response),0) score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND (institution LIKE '%Manchester%')&lt;br /&gt;
GROUP BY institution&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/NSS_Tutorial</id>
		<title>NSS Tutorial</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/NSS_Tutorial"/>
				<updated>2012-12-10T16:12:19Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: /* Scores for Institutions in London */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;ref_section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class='db_ref'&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Field&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Type&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;ukprn&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(8)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;institution&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(100)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;subject&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(60)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;level&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(50)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;question&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(10)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_STRONGLY_DISAGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_DISAGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_NEUTRAL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_AGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_STRONGLY_AGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_NA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;CI_MIN&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;score&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;CI_MAX&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;response&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;sample&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;aggregate&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(1)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==National Student Survey 2012==&lt;br /&gt;
The National Student Survey http://www.thestudentsurvey.com/ is presented to thousands of graduating students in UK Higher Education. The survey asks 22 questions, students can respond with STRONGLY DISAGREE, DISAGREE, NEUTRAL, AGREE or STRONGLY AGREE.&lt;br /&gt;
&lt;br /&gt;
The table &amp;lt;code&amp;gt;nss&amp;lt;/code&amp;gt; has one row per institution, subject and question.&lt;br /&gt;
&lt;br /&gt;
==Check out one row== &lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
The example shows the number who responded for:&lt;br /&gt;
*question 1&lt;br /&gt;
*at 'Edinburgh Napier University'&lt;br /&gt;
*studying '(8) Computer Science'&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the the percentage who STRONGLY AGREE&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT response&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q01'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT A_STRONGLY_AGREE&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q01'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Calculate how many agree or strongly agree== &lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the institution and subject where the '''score''' is at least 100 for question 15.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT response&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q01'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT institution, subject&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND score&amp;gt;=100&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Unhappy Computer Students==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the institution and score where the score for '(8) Computer Science' is less than 50 for question 'Q15'&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT institution, score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND score&amp;lt;50&lt;br /&gt;
   AND subject = '(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==More Computing or Creative Students?==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the total number of students who responded to question 22 for the subject '(8) Computer Science' show the same figure for the subject '(H) Creative Arts and Design'.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='hint' title='HINT'&amp;gt;&lt;br /&gt;
You will need to use SUM over the '''response''' column and GROUP BY '''subject'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT subject,SUM(response)&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND subject IN ('(8) Computer Science','(H) Creative Arts and Design')&lt;br /&gt;
GROUP BY subject&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Strongly Agree Numbers==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the total number of students who A_STRONGLY_AGREE to question 22 for the subject '(8) Computer Science' show the same figure for the subject '(H) Creative Arts and Design'.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='hint' title='HINT'&amp;gt;&lt;br /&gt;
The A_STRONGLY_AGREE column is a percentage. To work out the total number of students who strongly agree you must multiply this percentage by the number who responded ('''response''') and divide by 100 - take the SUM of that.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT subject,SUM(response*A_STRONGLY_AGREE/100)&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND subject IN ('(8) Computer Science','(H) Creative Arts and Design')&lt;br /&gt;
GROUP BY subject&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Strongly Agree, Percentage==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the percentage of students who A_STRONGLY_AGREE to question 22 for the subject '(8) Computer Science' show the same figure for the subject '(H) Creative Arts and Design'.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Use the '''ROUND''' function to show the percentage without decimal places.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT subject,&lt;br /&gt;
  ROUND(SUM(response*A_STRONGLY_AGREE)/SUM(response),0)&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND subject IN ('(8) Computer Science','(H) Creative Arts and Design')&lt;br /&gt;
GROUP BY subject&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Scores for Institutions in London==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the average scores for question 'Q01' for each institution that include 'Manchester' in the name.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
The column '''score''' is a percentage - you must use the method outlined above to multiply the percentage by the '''response''' and divide by the total response. Give your answer rounded to the nearest whole number.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT institution,&lt;br /&gt;
  ROUND(SUM(response*score)/SUM(response),0) score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND (institution LIKE '%Manchester%')&lt;br /&gt;
GROUP BY institution&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/NSS_Tutorial</id>
		<title>NSS Tutorial</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/NSS_Tutorial"/>
				<updated>2012-12-10T16:05:02Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: /* Show scores by subject */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;ref_section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class='db_ref'&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Field&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Type&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;ukprn&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(8)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;institution&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(100)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;subject&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(60)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;level&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(50)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;question&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(10)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_STRONGLY_DISAGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_DISAGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_NEUTRAL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_AGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_STRONGLY_AGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_NA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;CI_MIN&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;score&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;CI_MAX&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;response&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;sample&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;aggregate&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(1)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==National Student Survey 2012==&lt;br /&gt;
The National Student Survey http://www.thestudentsurvey.com/ is presented to thousands of graduating students in UK Higher Education. The survey asks 22 questions, students can respond with STRONGLY DISAGREE, DISAGREE, NEUTRAL, AGREE or STRONGLY AGREE.&lt;br /&gt;
&lt;br /&gt;
The table &amp;lt;code&amp;gt;nss&amp;lt;/code&amp;gt; has one row per institution, subject and question.&lt;br /&gt;
&lt;br /&gt;
==Check out one row== &lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
The example shows the number who responded for:&lt;br /&gt;
*question 1&lt;br /&gt;
*at 'Edinburgh Napier University'&lt;br /&gt;
*studying '(8) Computer Science'&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the the percentage who STRONGLY AGREE&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT response&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q01'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT A_STRONGLY_AGREE&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q01'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Calculate how many agree or strongly agree== &lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the institution and subject where the '''score''' is at least 100 for question 15.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT response&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q01'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT institution, subject&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND score&amp;gt;=100&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Unhappy Computer Students==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the institution and score where the score for '(8) Computer Science' is less than 50 for question 'Q15'&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT institution, score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND score&amp;lt;50&lt;br /&gt;
   AND subject = '(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==More Computing or Creative Students?==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the total number of students who responded to question 22 for the subject '(8) Computer Science' show the same figure for the subject '(H) Creative Arts and Design'.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='hint' title='HINT'&amp;gt;&lt;br /&gt;
You will need to use SUM over the '''response''' column and GROUP BY '''subject'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT subject,SUM(response)&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND subject IN ('(8) Computer Science','(H) Creative Arts and Design')&lt;br /&gt;
GROUP BY subject&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Strongly Agree Numbers==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the total number of students who A_STRONGLY_AGREE to question 22 for the subject '(8) Computer Science' show the same figure for the subject '(H) Creative Arts and Design'.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='hint' title='HINT'&amp;gt;&lt;br /&gt;
The A_STRONGLY_AGREE column is a percentage. To work out the total number of students who strongly agree you must multiply this percentage by the number who responded ('''response''') and divide by 100 - take the SUM of that.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT subject,SUM(response*A_STRONGLY_AGREE/100)&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND subject IN ('(8) Computer Science','(H) Creative Arts and Design')&lt;br /&gt;
GROUP BY subject&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Strongly Agree, Percentage==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the percentage of students who A_STRONGLY_AGREE to question 22 for the subject '(8) Computer Science' show the same figure for the subject '(H) Creative Arts and Design'.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Use the '''ROUND''' function to show the percentage without decimal places.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT subject,&lt;br /&gt;
  ROUND(SUM(response*A_STRONGLY_AGREE)/SUM(response),0)&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND subject IN ('(8) Computer Science','(H) Creative Arts and Design')&lt;br /&gt;
GROUP BY subject&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Scores for Institutions in London==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the average scores for question 'Q01' for each institution that include &amp;quot;London&amp;quot; in the name.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
The column '''score''' is a percentage - you must use the method outlined&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT institution,&lt;br /&gt;
  ROUND(SUM(response*score)/SUM(response),0)&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q01'&lt;br /&gt;
   AND institution LIKE '%London%'&lt;br /&gt;
GROUP BY institution&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/NSS_Tutorial</id>
		<title>NSS Tutorial</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/NSS_Tutorial"/>
				<updated>2012-12-10T16:03:52Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: /* Strongly Agree, Percentage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;ref_section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class='db_ref'&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Field&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Type&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;ukprn&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(8)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;institution&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(100)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;subject&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(60)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;level&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(50)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;question&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(10)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_STRONGLY_DISAGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_DISAGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_NEUTRAL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_AGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_STRONGLY_AGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_NA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;CI_MIN&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;score&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;CI_MAX&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;response&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;sample&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;aggregate&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(1)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==National Student Survey 2012==&lt;br /&gt;
The National Student Survey http://www.thestudentsurvey.com/ is presented to thousands of graduating students in UK Higher Education. The survey asks 22 questions, students can respond with STRONGLY DISAGREE, DISAGREE, NEUTRAL, AGREE or STRONGLY AGREE.&lt;br /&gt;
&lt;br /&gt;
The table &amp;lt;code&amp;gt;nss&amp;lt;/code&amp;gt; has one row per institution, subject and question.&lt;br /&gt;
&lt;br /&gt;
==Check out one row== &lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
The example shows the number who responded for:&lt;br /&gt;
*question 1&lt;br /&gt;
*at 'Edinburgh Napier University'&lt;br /&gt;
*studying '(8) Computer Science'&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the the percentage who STRONGLY AGREE&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT response&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q01'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT A_STRONGLY_AGREE&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q01'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Calculate how many agree or strongly agree== &lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the institution and subject where the '''score''' is at least 100 for question 15.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT response&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q01'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT institution, subject&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND score&amp;gt;=100&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Unhappy Computer Students==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the institution and score where the score for '(8) Computer Science' is less than 50 for question 'Q15'&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT institution, score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND score&amp;lt;50&lt;br /&gt;
   AND subject = '(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==More Computing or Creative Students?==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the total number of students who responded to question 22 for the subject '(8) Computer Science' show the same figure for the subject '(H) Creative Arts and Design'.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='hint' title='HINT'&amp;gt;&lt;br /&gt;
You will need to use SUM over the '''response''' column and GROUP BY '''subject'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT subject,SUM(response)&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND subject IN ('(8) Computer Science','(H) Creative Arts and Design')&lt;br /&gt;
GROUP BY subject&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Strongly Agree Numbers==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the total number of students who A_STRONGLY_AGREE to question 22 for the subject '(8) Computer Science' show the same figure for the subject '(H) Creative Arts and Design'.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='hint' title='HINT'&amp;gt;&lt;br /&gt;
The A_STRONGLY_AGREE column is a percentage. To work out the total number of students who strongly agree you must multiply this percentage by the number who responded ('''response''') and divide by 100 - take the SUM of that.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT subject,SUM(response*A_STRONGLY_AGREE/100)&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND subject IN ('(8) Computer Science','(H) Creative Arts and Design')&lt;br /&gt;
GROUP BY subject&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Strongly Agree, Percentage==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the percentage of students who A_STRONGLY_AGREE to question 22 for the subject '(8) Computer Science' show the same figure for the subject '(H) Creative Arts and Design'.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Use the '''ROUND''' function to show the percentage without decimal places.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT subject,&lt;br /&gt;
  ROUND(SUM(response*A_STRONGLY_AGREE)/SUM(response),0)&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND subject IN ('(8) Computer Science','(H) Creative Arts and Design')&lt;br /&gt;
GROUP BY subject&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Show scores by subject==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the average scores for question 'Q01' for each institution that include &amp;quot;London&amp;quot; in the name.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
The column '''score''' is a percentage - you must use the method outlined&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT institution,&lt;br /&gt;
  ROUND(SUM(response*score)/SUM(response),0)&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q01'&lt;br /&gt;
   AND institution LIKE '%London%'&lt;br /&gt;
GROUP BY institution&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	<entry>
		<id>http://www.sqlzoo.net/wiki/NSS_Tutorial</id>
		<title>NSS Tutorial</title>
		<link rel="alternate" type="text/html" href="http://www.sqlzoo.net/wiki/NSS_Tutorial"/>
				<updated>2012-12-10T15:58:34Z</updated>
		
		<summary type="html">&lt;p&gt;Andr3w: /* Strongly Agree, Percentage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;ref_section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class='db_ref'&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Field&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Type&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;ukprn&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(8)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;institution&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(100)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;subject&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(60)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;level&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(50)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;question&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(10)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_STRONGLY_DISAGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_DISAGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_NEUTRAL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_AGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_STRONGLY_AGREE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A_NA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;CI_MIN&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;score&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;CI_MAX&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;response&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;sample&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;aggregate&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(1)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==National Student Survey 2012==&lt;br /&gt;
The National Student Survey http://www.thestudentsurvey.com/ is presented to thousands of graduating students in UK Higher Education. The survey asks 22 questions, students can respond with STRONGLY DISAGREE, DISAGREE, NEUTRAL, AGREE or STRONGLY AGREE.&lt;br /&gt;
&lt;br /&gt;
The table &amp;lt;code&amp;gt;nss&amp;lt;/code&amp;gt; has one row per institution, subject and question.&lt;br /&gt;
&lt;br /&gt;
==Check out one row== &lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
The example shows the number who responded for:&lt;br /&gt;
*question 1&lt;br /&gt;
*at 'Edinburgh Napier University'&lt;br /&gt;
*studying '(8) Computer Science'&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the the percentage who STRONGLY AGREE&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT response&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q01'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT A_STRONGLY_AGREE&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q01'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Calculate how many agree or strongly agree== &lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the institution and subject where the '''score''' is at least 100 for question 15.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT response&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q01'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT institution, subject&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND score&amp;gt;=100&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Unhappy Computer Students==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the institution and score where the score for '(8) Computer Science' is less than 50 for question 'Q15'&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT institution, score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND score&amp;lt;50&lt;br /&gt;
   AND subject = '(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==More Computing or Creative Students?==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the total number of students who responded to question 22 for the subject '(8) Computer Science' show the same figure for the subject '(H) Creative Arts and Design'.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='hint' title='HINT'&amp;gt;&lt;br /&gt;
You will need to use SUM over the '''response''' column and GROUP BY '''subject'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT subject,SUM(response)&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND subject IN ('(8) Computer Science','(H) Creative Arts and Design')&lt;br /&gt;
GROUP BY subject&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Strongly Agree Numbers==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the total number of students who A_STRONGLY_AGREE to question 22 for the subject '(8) Computer Science' show the same figure for the subject '(H) Creative Arts and Design'.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='hint' title='HINT'&amp;gt;&lt;br /&gt;
The A_STRONGLY_AGREE column is a percentage. To work out the total number of students who strongly agree you must multiply this percentage by the number who responded ('''response''') and divide by 100 - take the SUM of that.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT subject,SUM(response*A_STRONGLY_AGREE/100)&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND subject IN ('(8) Computer Science','(H) Creative Arts and Design')&lt;br /&gt;
GROUP BY subject&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Strongly Agree, Percentage==&lt;br /&gt;
&amp;lt;div class='qu'&amp;gt;&lt;br /&gt;
&amp;lt;p class='imper'&amp;gt;Show the percentage of students who A_STRONGLY_AGREE to question 22 for the subject '(8) Computer Science' show the same figure for the subject '(H) Creative Arts and Design'.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Use the '''ROUND''' function to show the percentage without decimal places.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='def'&amp;gt;&lt;br /&gt;
SELECT institution,score&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q15'&lt;br /&gt;
   AND institution='Edinburgh Napier University'&lt;br /&gt;
   AND subject='(8) Computer Science'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='sql' class='ans'&amp;gt;&lt;br /&gt;
SELECT subject,&lt;br /&gt;
  ROUND(SUM(response*A_STRONGLY_AGREE)/SUM(response),0)&lt;br /&gt;
  FROM nss&lt;br /&gt;
 WHERE question='Q22'&lt;br /&gt;
   AND subject IN ('(8) Computer Science','(H) Creative Arts and Design')&lt;br /&gt;
GROUP BY subject&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andr3w</name></author>	</entry>

	</feed>