Add lang="en" dir="ltr" to <html>
ini type conversion

- Also cleaning up wrong php_error_reporting default (off by default)
Update jQuery to 1.7.1 (issue #121)
Implement front-end configuration settings

- New ini section for [client] (self documented inline)

- Add check that $run_id, $run_url and $run_desc are all valid (fixes #99), otherwise runInfo is false

- Refactor run.js to accommodate the new object
 * Instead of `timeLeft = (updateRate * (run_url ? 0.5 : 1)) - 1;`
   the cooldown_rate and update_rate are now seperate.
 * Re-order functions
 * Wrap run.js in an IIFE to get a closure and easy abortion.
 * Request to SWARM.web.contextpath instead of '.'
   although POST parameters override GET parameters,
   it is better for state=savejob*.. to go to /testswarm,
   instead of POSTing state=savejob to /testswarm?state=run&user=username

- Settings
 * Make contextpath have a trailing slash again, like it was. Otherwise
   a POST request to "/testswarm" with AJAX will fail, because htaccess
   rewrites/redirects /foo to /foo/ sometimes but redirects as GET, thus
   loosing the query. Trailing slashes are fine.

- Fixes:
 * issue #107 Implement browser client settings framework
 * issue #99 getrun JSON response breaks sometimes
typo in WebRequest::hasKey
Implement WebRequest::hasKeys
Fixup addjob (issue #119, #112)

- Don't use $_REQUEST, using $_POST+$_GET instead to avoid cookie interference on older PHP versions

- Add checks for hasKey "user" and "auth", only then treat it as a submission. (still allowing either GET or POST, so f2da2db0ad8b90afcdda93696bbfe5496ab8a296 is still in tact)

- Removed normalization of auth and username. They must be correct, and if not they should be catches by the "else" case as incorrect input

- Fixes:
 * issue #119 [Regression] state=addjob over GET creates new jobs unconditionally
 * issue #122 ?state=job inaccessible as GET view for HTML form
update gitinfo
Add more file documentation and @since annotation
Require PHP 5.2.3; update README
Move IP-address detection into WebRequest

- Also removed the global "$ip" variable, which wasn't used anywhere in browser.php.
  It was used once in init-usersession.php, replaced with a call to WebRequest::getIP()
[TestSwarm OOP] Implement BrowserInfo class

- Removed now redundant browser.php
 * Following globals were killed in the proces:
 * $browser
 * $version
 * $os
 * $useragent
 * $useragent_name
 * $useragent_id

- Using $swarmBrowser->get methods instead

- Removed or simplified various queries that are no longer needed since the values are now cached in $swarmBrowser
more $useragent_id left overs
- follow-ups 10443af8f06f5eb715f4cfbc4c3f270ca81b61c0
require -> require_once

* Classes, global functions and global variables should only be included once if they are requested twice (especially for classes, require_once is like a dependency declaration. It'll load if it needs it, and if already skips it.)
requres.php -> WebRequest.php

- Per convention, files should be named after the class they provide
Remove getItem(key, GPC, ..) in favor of WebRequest->getVal(key, ..)

- Since getItem was only used on GPC arrays, the function was no longer needed.
   As such removed it.

content/tinder.php inc/init-usersession.php inc/utilities.php index.php logic/login.php logic/run.php logic/saverun.php logic/signup.php
[TestSwarm OOP] Implement Database class

- Migrated a few query to use $swarmDB as example
Eliminate `$found` global

- Using return values instead
remove odd "open" file

- follows-up 69ba0e49ef16a95ccef73af8e2c92059cea8dd73
remove redundant condition

- follows-up 7367f03b279456e0b87970e9ea72da6455496c29