From bd88aaef79e0cc0c5a57eb1da8d59fda5c575660 Mon Sep 17 00:00:00 2001
From: lucha <lucha@paranoici.org>
Date: Sun, 30 Dec 2018 13:37:28 -0800
Subject: [PATCH] Removed Solr for Wordpress plugin

---
 .../Apache/Solr/Document.php                  |  351 ----
 .../Apache/Solr/Response.php                  |  325 ----
 .../Apache/Solr/Service.php                   |  936 ----------
 .../Apache/Solr/Service/Balancer.php          |  763 ---------
 .../SolrPhpClient/Apache/Solr/Document.php    |  367 ----
 .../SolrPhpClient/Apache/Solr/Exception.php   |   50 -
 .../Apache/Solr/HttpTransport/Abstract.php    |   89 -
 .../Apache/Solr/HttpTransport/Curl.php        |  198 ---
 .../Apache/Solr/HttpTransport/CurlNoReuse.php |  196 ---
 .../Solr/HttpTransport/FileGetContents.php    |  216 ---
 .../Apache/Solr/HttpTransport/Interface.php   |   94 -
 .../Apache/Solr/HttpTransport/Response.php    |  255 ---
 .../Apache/Solr/HttpTransportException.php    |   79 -
 .../Apache/Solr/InvalidArgumentException.php  |   50 -
 .../Solr/NoServiceAvailableException.php      |   50 -
 .../Apache/Solr/ParserException.php           |   50 -
 .../SolrPhpClient/Apache/Solr/Response.php    |  247 ---
 .../SolrPhpClient/Apache/Solr/Service.php     | 1181 -------------
 .../Apache/Solr/Service/Balancer.php          |  914 ----------
 .../solr-for-wordpress/SolrPhpClient/COPYING  |   26 -
 .../tests/Apache/Solr/DocumentTest.php        |  439 -----
 .../Solr/HttpTransport/AbstractTest.php       |  208 ---
 .../Solr/HttpTransport/CurlNoReuseTest.php    |   53 -
 .../Apache/Solr/HttpTransport/CurlTest.php    |   53 -
 .../HttpTransport/FileGetContentsTest.php     |   53 -
 .../Solr/HttpTransport/ResponseTest.php       |  164 --
 .../Solr/HttpTransportExceptionTest.php       |   58 -
 .../tests/Apache/Solr/ResponseTest.php        |  194 ---
 .../Apache/Solr/Service/BalancerTest.php      |   47 -
 .../tests/Apache/Solr/ServiceAbstractTest.php |  139 --
 .../tests/Apache/Solr/ServiceTest.php         | 1119 ------------
 .../SolrPhpClient/tests/README                |   20 -
 .../SolrPhpClient/tests/phpunit.bootstrap.inc |   28 -
 .../SolrPhpClient/tests/phpunit.xml           |   15 -
 .../SolrPhpClient/tests/run.php               |   42 -
 .../plugins/solr-for-wordpress/readme.txt     |  146 --
 .../plugins/solr-for-wordpress/schema.xml     |  146 --
 .../solr-for-wordpress/screenshot-1.png       |  Bin 59183 -> 0 bytes
 .../solr-for-wordpress/screenshot-2.png       |  Bin 53142 -> 0 bytes
 .../solr-for-wordpress/solr-for-wordpress.php | 1519 -----------------
 .../solr-for-wordpress/solr-for-wordpress.pot |  292 ----
 .../solr-for-wordpress/solr-options-page.php  |  407 -----
 .../template/autocomplete.css                 |   27 -
 .../template/s4w_search.php                   |  182 --
 .../solr-for-wordpress/template/search.css    |  379 ----
 45 files changed, 12167 deletions(-)
 delete mode 100644 wp-content/plugins/solr-for-wordpress/Apache/Solr/Document.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/Apache/Solr/Response.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/Apache/Solr/Service.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/Apache/Solr/Service/Balancer.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/Document.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/Exception.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/Abstract.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/Curl.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/CurlNoReuse.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/FileGetContents.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/Interface.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/Response.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransportException.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/InvalidArgumentException.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/NoServiceAvailableException.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/ParserException.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/Response.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/Service.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/Service/Balancer.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/COPYING
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/DocumentTest.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransport/AbstractTest.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransport/CurlNoReuseTest.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransport/CurlTest.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransport/FileGetContentsTest.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransport/ResponseTest.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransportExceptionTest.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/ResponseTest.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/Service/BalancerTest.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/ServiceAbstractTest.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/ServiceTest.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/README
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/phpunit.bootstrap.inc
 delete mode 100644 wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/phpunit.xml
 delete mode 100755 wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/run.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/readme.txt
 delete mode 100644 wp-content/plugins/solr-for-wordpress/schema.xml
 delete mode 100644 wp-content/plugins/solr-for-wordpress/screenshot-1.png
 delete mode 100644 wp-content/plugins/solr-for-wordpress/screenshot-2.png
 delete mode 100644 wp-content/plugins/solr-for-wordpress/solr-for-wordpress.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/solr-for-wordpress.pot
 delete mode 100644 wp-content/plugins/solr-for-wordpress/solr-options-page.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/template/autocomplete.css
 delete mode 100644 wp-content/plugins/solr-for-wordpress/template/s4w_search.php
 delete mode 100644 wp-content/plugins/solr-for-wordpress/template/search.css

diff --git a/wp-content/plugins/solr-for-wordpress/Apache/Solr/Document.php b/wp-content/plugins/solr-for-wordpress/Apache/Solr/Document.php
deleted file mode 100644
index 6448c051f..000000000
--- a/wp-content/plugins/solr-for-wordpress/Apache/Solr/Document.php
+++ /dev/null
@@ -1,351 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2009, Conduit Internet Technologies, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Conduit Internet Technologies, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2009 Conduit Internet Technologies, Inc. (http://conduit-it.com)
- * @license New BSD (http://solr-php-client.googlecode.com/svn/trunk/COPYING)
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-/**
- * Holds Key / Value pairs that represent a Solr Document along with any associated boost
- * values. Field values can be accessed by direct dereferencing such as:
- * <code>
- * ...
- * $document->title = 'Something';
- * echo $document->title;
- * ...
- * </code>
- *
- * Additionally, the field values can be iterated with foreach
- *
- * <code>
- * foreach ($document as $fieldName => $fieldValue)
- * {
- * ...
- * }
- * </code>
- */
-class Apache_Solr_Document implements IteratorAggregate
-{
-	/**
-	 * Document boost value
-	 *
-	 * @var float
-	 */
-	protected $_documentBoost = false;
-
-	/**
-	 * Document field values, indexed by name
-	 *
-	 * @var array
-	 */
-	protected $_fields = array();
-
-	/**
-	 * Document field boost values, indexed by name
-	 *
-	 * @var array array of floats
-	 */
-	protected $_fieldBoosts = array();
-
-	/**
-	 * Clear all boosts and fields from this document
-	 */
-	public function clear()
-	{
-		$this->_documentBoost = false;
-
-		$this->_fields = array();
-		$this->_fieldBoosts = array();
-	}
-
-	/**
-	 * Get current document boost
-	 *
-	 * @return mixed will be false for default, or else a float
-	 */
-	public function getBoost()
-	{
-		return $this->_documentBoost;
-	}
-
-	/**
-	 * Set document boost factor
-	 *
-	 * @param mixed $boost Use false for default boost, else cast to float that should be > 0 or will be treated as false
-	 */
-	public function setBoost($boost)
-	{
-		$boost = (float) $boost;
-
-		if ($boost > 0.0)
-		{
-			$this->_documentBoost = $boost;
-		}
-		else
-		{
-			$this->_documentBoost = false;
-		}
-	}
-
-	/**
-	 * Add a value to a multi-valued field
-	 *
-	 * NOTE: the solr XML format allows you to specify boosts
-	 * PER value even though the underlying Lucene implementation
-	 * only allows a boost per field. To remedy this, the final
-	 * field boost value will be the product of all specified boosts
-	 * on field values - this is similar to SolrJ's functionality.
-	 *
-	 * <code>
-	 * $doc = new Apache_Solr_Document();
-	 *
-	 * $doc->addField('foo', 'bar', 2.0);
-	 * $doc->addField('foo', 'baz', 3.0);
-	 *
-	 * // resultant field boost will be 6!
-	 * echo $doc->getFieldBoost('foo');
-	 * </code>
-	 *
-	 * @param string $key
-	 * @param mixed $value
-	 * @param mixed $boost Use false for default boost, else cast to float that should be > 0 or will be treated as false
-	 */
-	public function addField($key, $value, $boost = false)
-	{
-		if (!isset($this->_fields[$key]))
-		{
-			// create holding array if this is the first value
-			$this->_fields[$key] = array();
-		}
-		else if (!is_array($this->_fields[$key]))
-		{
-			// move existing value into array if it is not already an array
-			$this->_fields[$key] = array($this->_fields[$key]);
-		}
-
-		if ($this->getFieldBoost($key) === false)
-		{
-			// boost not already set, set it now
-			$this->setFieldBoost($key, $boost);
-		}
-		else if ((float) $boost > 0.0)
-		{
-			// multiply passed boost with current field boost - similar to SolrJ implementation
-			$this->_fieldBoosts[$key] *= (float) $boost;
-		}
-
-		// add value to array
-		$this->_fields[$key][] = $value;
-	}
-
-	/**
-	 * Handle the array manipulation for a multi-valued field
-	 *
-	 * @param string $key
-	 * @param string $value
-	 * @param mixed $boost Use false for default boost, else cast to float that should be > 0 or will be treated as false
-	 *
-	 * @deprecated Use addField(...) instead
-	 */
-	public function setMultiValue($key, $value, $boost = false)
-	{
-		$this->addField($key, $value, $boost);
-	}
-
-	/**
-	 * Get field information
-	 *
-	 * @param string $key
-	 * @return mixed associative array of info if field exists, false otherwise
-	 */
-	public function getField($key)
-	{
-		if (isset($this->_fields[$key]))
-		{
-			return array(
-				'name' => $key,
-				'value' => $this->_fields[$key],
-				'boost' => $this->getFieldBoost($key)
-			);
-		}
-
-		return false;
-	}
-
-	/**
-	 * Set a field value. Multi-valued fields should be set as arrays
-	 * or instead use the addField(...) function which will automatically
-	 * make sure the field is an array.
-	 *
-	 * @param string $key
-	 * @param mixed $value
-	 * @param mixed $boost Use false for default boost, else cast to float that should be > 0 or will be treated as false
-	 */
-	public function setField($key, $value, $boost = false)
-	{
-		$this->_fields[$key] = $value;
-		$this->setFieldBoost($key, $boost);
-	}
-
-	/**
-	 * Get the currently set field boost for a document field
-	 *
-	 * @param string $key
-	 * @return float currently set field boost, false if one is not set
-	 */
-	public function getFieldBoost($key)
-	{
-		return isset($this->_fieldBoosts[$key]) ? $this->_fieldBoosts[$key] : false;
-	}
-
-	/**
-	 * Set the field boost for a document field
-	 *
-	 * @param string $key field name for the boost
-	 * @param mixed $boost Use false for default boost, else cast to float that should be > 0 or will be treated as false
-	 */
-	public function setFieldBoost($key, $boost)
-	{
-		$boost = (float) $boost;
-
-		if ($boost > 0.0)
-		{
-			$this->_fieldBoosts[$key] = $boost;
-		}
-		else
-		{
-			$this->_fieldBoosts[$key] = false;
-		}
-	}
-
-	/**
-	 * Return current field boosts, indexed by field name
-	 *
-	 * @return array
-	 */
-	public function getFieldBoosts()
-	{
-		return $this->_fieldBoosts;
-	}
-
-	/**
-	 * Get the names of all fields in this document
-	 *
-	 * @return array
-	 */
-	public function getFieldNames()
-	{
-		return array_keys($this->_fields);
-	}
-
-	/**
-	 * Get the values of all fields in this document
-	 *
-	 * @return array
-	 */
-	public function getFieldValues()
-	{
-		return array_values($this->_fields);
-	}
-
-	/**
-	 * IteratorAggregate implementation function. Allows usage:
-	 *
-	 * <code>
-	 * foreach ($document as $key => $value)
-	 * {
-	 * 	...
-	 * }
-	 * </code>
-	 */
-	public function getIterator()
-	{
-		$arrayObject = new ArrayObject($this->_fields);
-
-		return $arrayObject->getIterator();
-	}
-
-	/**
-	 * Magic get for field values
-	 *
-	 * @param string $key
-	 * @return mixed
-	 */
-	public function __get($key)
-	{
-		return $this->_fields[$key];
-	}
-
-	/**
-	 * Magic set for field values. Multi-valued fields should be set as arrays
-	 * or instead use the addField(...) function which will automatically
-	 * make sure the field is an array.
-	 *
-	 * @param string $key
-	 * @param mixed $value
-	 */
-	public function __set($key, $value)
-	{
-		$this->setField($key, $value);
-	}
-
-	/**
-	 * Magic isset for fields values.  Do not call directly. Allows usage:
-	 *
-	 * <code>
-	 * isset($document->some_field);
-	 * </code>
-	 *
-	 * @param string $key
-	 * @return boolean
-	 */
-	public function __isset($key)
-	{
-		return isset($this->_fields[$key]);
-	}
-
-	/**
-	 * Magic unset for field values. Do not call directly. Allows usage:
-	 *
-	 * <code>
-	 * unset($document->some_field);
-	 * </code>
-	 *
-	 * @param string $key
-	 */
-	public function __unset($key)
-	{
-		unset($this->_fields[$key]);
-		unset($this->_fieldBoosts[$key]);
-	}
-}
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/Apache/Solr/Response.php b/wp-content/plugins/solr-for-wordpress/Apache/Solr/Response.php
deleted file mode 100644
index 49d015892..000000000
--- a/wp-content/plugins/solr-for-wordpress/Apache/Solr/Response.php
+++ /dev/null
@@ -1,325 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2009, Conduit Internet Technologies, Inc. 
- * All rights reserved. 
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met: 
- * 
- *  - Redistributions of source code must retain the above copyright notice, 
- *    this list of conditions and the following disclaimer. 
- *  - Redistributions in binary form must reproduce the above copyright 
- *    notice, this list of conditions and the following disclaimer in the 
- *    documentation and/or other materials provided with the distribution. 
- *  - Neither the name of Conduit Internet Technologies, Inc. nor the names of 
- *    its contributors may be used to endorse or promote products derived from 
- *    this software without specific prior written permission. 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
- * POSSIBILITY OF SUCH DAMAGE.
- * 
- * @copyright Copyright 2007-2009 Conduit Internet Technologies, Inc. (http://conduit-it.com)
- * @license New BSD (http://solr-php-client.googlecode.com/svn/trunk/COPYING)
- * 
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-/**
- * Represents a Solr response.  Parses the raw response into a set of stdClass objects
- * and associative arrays for easy access.
- *
- * Currently requires json_decode which is bundled with PHP >= 5.2.0, Alternatively can be
- * installed with PECL.  Zend Framework also includes a purely PHP solution.
- *
- * @todo When Solr 1.3 is released, possibly convert to use PHP or Serialized PHP output writer
- */
-class Apache_Solr_Response
-{
-	/**
-	 * Holds the raw response used in construction
-	 *
-	 * @var string
-	 */
-	protected $_rawResponse;
-
-	/**
-	 * Parsed values from the passed in http headers
-	 *
-	 * @var string
-	 */
-	protected $_httpStatus, $_httpStatusMessage, $_type, $_encoding;
-
-	/**
-	 * Whether the raw response has been parsed
-	 *
-	 * @var boolean
-	 */
-	protected $_isParsed = false;
-
-	/**
-	 * Parsed representation of the data
-	 *
-	 * @var mixed
-	 */
-	protected $_parsedData;
-
-	/**
-	 * Data parsing flags.  Determines what extra processing should be done
-	 * after the data is initially converted to a data structure.
-	 *
-	 * @var boolean
-	 */
-	protected $_createDocuments = true,
-			$_collapseSingleValueArrays = true;
-
-	/**
-	 * Constructor. Takes the raw HTTP response body and the exploded HTTP headers
-	 *
-	 * @param string $rawResponse
-	 * @param array $httpHeaders
-	 * @param boolean $createDocuments Whether to convert the documents json_decoded as stdClass instances to Apache_Solr_Document instances
-	 * @param boolean $collapseSingleValueArrays Whether to make multivalued fields appear as single values
-	 */
-	public function __construct($rawResponse, $httpHeaders = array(), $createDocuments = true, $collapseSingleValueArrays = true)
-	{
-		//Assume 0, 'Communication Error', utf-8, and  text/plain
-		$status = 0;
-		$statusMessage = 'Communication Error';
-		$type = 'text/plain';
-		$encoding = 'UTF-8';
-
-		//iterate through headers for real status, type, and encoding
-		if (is_array($httpHeaders) && count($httpHeaders) > 0)
-		{
-			//look at the first headers for the HTTP status code
-			//and message (errors are usually returned this way)
-			//
-			//HTTP 100 Continue response can also be returned before
-			//the REAL status header, so we need look until we find
-			//the last header starting with HTTP
-			//
-			//the spec: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.1
-			//
-			//Thanks to Daniel Andersson for pointing out this oversight
-			while (isset($httpHeaders[0]) && substr($httpHeaders[0], 0, 4) == 'HTTP')
-			{
-				$parts = split(' ', substr($httpHeaders[0], 9), 2);
-
-				$status = $parts[0];
-				$statusMessage = trim($parts[1]);
-
-				array_shift($httpHeaders);
-			}
-
-			//Look for the Content-Type response header and determine type
-			//and encoding from it (if possible - such as 'Content-Type: text/plain; charset=UTF-8')
-            //Check for a chunked response and de-chunk it if necessary
-			foreach ($httpHeaders as $header)
-			{
-                if (strncasecmp($header, 'Transfer-Encoding: chunked', 26) == 0) {
-                    $rawResponse = $this->http_chunked_decode($rawResponse);
-                }
-
-				if (strncasecmp($header, 'Content-Type:', 13) == 0)
-				{
-					//split content type value into two parts if possible
-					$parts = split(';', substr($header, 13), 2);
-
-					$type = trim($parts[0]);
-
-					if ($parts[1])
-					{
-						//split the encoding section again to get the value
-						$parts = split('=', $parts[1], 2);
-
-						if ($parts[1])
-						{
-							$encoding = trim($parts[1]);
-						}
-					}
-
-					break;
-				}
-			}
-		}
-
-		$this->_rawResponse = $rawResponse;
-		$this->_type = $type;
-		$this->_encoding = $encoding;
-		$this->_httpStatus = $status;
-		$this->_httpStatusMessage = $statusMessage;
-		$this->_createDocuments = (bool) $createDocuments;
-		$this->_collapseSingleValueArrays = (bool) $collapseSingleValueArrays;
-	}
-
-    /** 
-     * dechunk an http 'transfer-encoding: chunked' message 
-     * 
-     * @param string $chunk the encoded message 
-     * @return string the decoded message.  If $chunk wasn't encoded properly it will be returned unmodified. 
-     */ 
-    protected function http_chunked_decode($chunk) {
-        $pos = 0; 
-        $len = strlen($chunk);
-        $dechunk = null;
-        
-        while(($pos < $len)  
-            && ($chunkLenHex = substr($chunk,$pos, ($newlineAt = strpos($chunk,"\n",$pos+1))-$pos)))
-        {   
-            if (! $this->is_hex($chunkLenHex)) { 
-                trigger_error('Value is not properly chunk encoded', E_USER_WARNING);
-                return $chunk;
-            }
-            
-            $pos = $newlineAt + 1; 
-            $chunkLen = hexdec(rtrim($chunkLenHex,"\r\n"));
-            $dechunk .= substr($chunk, $pos, $chunkLen);  
-            $pos = strpos($chunk, "\n", $pos + $chunkLen) + 1;
-        } 
-        return $dechunk;
-    }
-    
-    /** 
-     * determine if a string can represent a number in hexadecimal 
-     * 
-     * @param string $hex 
-     * @return boolean true if the string is a hex, otherwise false 
-     */ 
-    protected function is_hex($hex) {
-        // regex is for weenies 
-        $hex = strtolower(trim(ltrim($hex,"0")));
-        if (empty($hex)) { $hex = 0; };
-        $dec = hexdec($hex); 
-        return ($hex == dechex($dec));
-    }
-
-	/**
-	 * Get the HTTP status code
-	 *
-	 * @return integer
-	 */
-	public function getHttpStatus()
-	{
-		return $this->_httpStatus;
-	}
-
-	/**
-	 * Get the HTTP status message of the response
-	 *
-	 * @return string
-	 */
-	public function getHttpStatusMessage()
-	{
-		return $this->_httpStatusMessage;
-	}
-
-	/**
-	 * Get content type of this Solr response
-	 *
-	 * @return string
-	 */
-	public function getType()
-	{
-		return $this->_type;
-	}
-
-	/**
-	 * Get character encoding of this response. Should usually be utf-8, but just in case
-	 *
-	 * @return string
-	 */
-	public function getEncoding()
-	{
-		return $this->_encoding;
-	}
-
-	/**
-	 * Get the raw response as it was given to this object
-	 *
-	 * @return string
-	 */
-	public function getRawResponse()
-	{
-		return $this->_rawResponse;
-	}
-
-	/**
-	 * Magic get to expose the parsed data and to lazily load it
-	 *
-	 * @param unknown_type $key
-	 * @return unknown
-	 */
-	public function __get($key)
-	{
-		if (!$this->_isParsed)
-		{
-			$this->_parseData();
-			$this->_isParsed = true;
-		}
-
-		if (isset($this->_parsedData->$key))
-		{
-			return $this->_parsedData->$key;
-		}
-
-		return null;
-	}
-
-	/**
-	 * Parse the raw response into the parsed_data array for access
-	 */
-	protected function _parseData()
-	{
-		//An alternative would be to use Zend_Json::decode(...)
-		$data = json_decode($this->_rawResponse);
-
-		//if we're configured to collapse single valued arrays or to convert them to Apache_Solr_Document objects
-		//and we have response documents, then try to collapse the values and / or convert them now
-		if (($this->_createDocuments || $this->_collapseSingleValueArrays) && isset($data->response) && is_array($data->response->docs))
-		{
-			$documents = array();
-
-			foreach ($data->response->docs as $originalDocument)
-			{
-				if ($this->_createDocuments)
-				{
-					$document = new Apache_Solr_Document();
-				}
-				else
-				{
-					$document = $originalDocument;
-				}
-
-				foreach ($originalDocument as $key => $value)
-				{
-					//If a result is an array with only a single
-					//value then its nice to be able to access
-					//it as if it were always a single value
-					if ($this->_collapseSingleValueArrays && is_array($value) && count($value) <= 1)
-					{
-						$value = array_shift($value);
-					}
-
-					$document->$key = $value;
-				}
-
-				$documents[] = $document;
-			}
-
-			$data->response->docs = $documents;
-		}
-
-		$this->_parsedData = $data;
-	}
-}
diff --git a/wp-content/plugins/solr-for-wordpress/Apache/Solr/Service.php b/wp-content/plugins/solr-for-wordpress/Apache/Solr/Service.php
deleted file mode 100644
index 2ec22d991..000000000
--- a/wp-content/plugins/solr-for-wordpress/Apache/Solr/Service.php
+++ /dev/null
@@ -1,936 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2009, Conduit Internet Technologies, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Conduit Internet Technologies, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2009 Conduit Internet Technologies, Inc. (http://conduit-it.com)
- * @license New BSD (http://solr-php-client.googlecode.com/svn/trunk/COPYING)
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-// See Issue #1 (http://code.google.com/p/solr-php-client/issues/detail?id=1)
-// Doesn't follow typical include path conventions, but is more convenient for users
-require_once(dirname(__FILE__) . '/Document.php');
-require_once(dirname(__FILE__) . '/Response.php');
-
-/**
- * Starting point for the Solr API. Represents a Solr server resource and has
- * methods for pinging, adding, deleting, committing, optimizing and searching.
- *
- * Example Usage:
- * <code>
- * ...
- * $solr = new Apache_Solr_Service(); //or explicitly new Apache_Solr_Service('localhost', 8180, '/solr')
- *
- * if ($solr->ping())
- * {
- * 		$solr->deleteByQuery('*:*'); //deletes ALL documents - be careful :)
- *
- * 		$document = new Apache_Solr_Document();
- * 		$document->id = uniqid(); //or something else suitably unique
- *
- * 		$document->title = 'Some Title';
- * 		$document->content = 'Some content for this wonderful document. Blah blah blah.';
- *
- * 		$solr->addDocument($document); 	//if you're going to be adding documents in bulk using addDocuments
- * 										//with an array of documents is faster
- *
- * 		$solr->commit(); //commit to see the deletes and the document
- * 		$solr->optimize(); //merges multiple segments into one
- *
- * 		//and the one we all care about, search!
- * 		//any other common or custom parameters to the request handler can go in the
- * 		//optional 4th array argument.
- * 		$solr->search('content:blah', 0, 10, array('sort' => 'timestamp desc'));
- * }
- * ...
- * </code>
- *
- * @todo Investigate using other HTTP clients other than file_get_contents built-in handler. Could provide performance
- * improvements when dealing with multiple requests by using HTTP's keep alive functionality
- */
-class Apache_Solr_Service
-{
-	/**
-	 * Response version we support
-	 */
-	const SOLR_VERSION = '1.2';
-
-	/**
-	 * Response writer we support
-	 *
-	 * @todo Solr 1.3 release may change this to SerializedPHP or PHP implementation
-	 */
-	const SOLR_WRITER = 'json';
-
-	/**
-	 * NamedList Treatment constants
-	 */
-	const NAMED_LIST_FLAT = 'flat';
-	const NAMED_LIST_MAP = 'map';
-
-	/**
-	 * Servlet mappings
-	 */
-	const PING_SERVLET = 'admin/ping';
-	const UPDATE_SERVLET = 'update';
-	const SEARCH_SERVLET = 'select';
-	const THREADS_SERVLET = 'admin/threads';
-
-	/**
-	 * Server identification strings
-	 *
-	 * @var string
-	 */
-	protected $_host, $_port, $_path;
-
-	/**
-	 * Whether {@link Apache_Solr_Response} objects should create {@link Apache_Solr_Document}s in
-	 * the returned parsed data
-	 *
-	 * @var boolean
-	 */
-	protected $_createDocuments = true;
-
-	/**
-	 * Whether {@link Apache_Solr_Response} objects should have multivalue fields with only a single value
-	 * collapsed to appear as a single value would.
-	 *
-	 * @var boolean
-	 */
-	protected $_collapseSingleValueArrays = true;
-
-	/**
-	 * How NamedLists should be formatted in the output.  This specifically effects facet counts. Valid values
-	 * are {@link Apache_Solr_Service::NAMED_LIST_MAP} (default) or {@link Apache_Solr_Service::NAMED_LIST_FLAT}.
-	 *
-	 * @var string
-	 */
-	protected $_namedListTreatment = self::NAMED_LIST_MAP;
-
-	/**
-	 * Query delimiters. Someone might want to be able to change
-	 * these (to use &amp; instead of & for example), so I've provided them.
-	 *
-	 * @var string
-	 */
-	protected $_queryDelimiter = '?', $_queryStringDelimiter = '&';
-
-	/**
-	 * Constructed servlet full path URLs
-	 *
-	 * @var string
-	 */
-	protected $_updateUrl, $_searchUrl, $_threadsUrl;
-
-	/**
-	 * Keep track of whether our URLs have been constructed
-	 *
-	 * @var boolean
-	 */
-	protected $_urlsInited = false;
-
-	/**
-	 * Stream context for posting
-	 *
-	 * @var resource
-	 */
-	protected $_postContext;
-
-	/**
-	 * Escape a value for special query characters such as ':', '(', ')', '*', '?', etc.
-	 *
-	 * NOTE: inside a phrase fewer characters need escaped, use {@link Apache_Solr_Service::escapePhrase()} instead
-	 *
-	 * @param string $value
-	 * @return string
-	 */
-	static public function escape($value)
-	{
-		//list taken from http://lucene.apache.org/java/docs/queryparsersyntax.html#Escaping%20Special%20Characters
-		$pattern = '/(\+|-|&&|\|\||!|\(|\)|\{|}|\[|]|\^|"|~|\*|\?|:|\\\)/';
-		$replace = '\\\$1';
-
-		return preg_replace($pattern, $replace, $value);
-	}
-
-	/**
-	 * Escape a value meant to be contained in a phrase for special query characters
-	 *
-	 * @param string $value
-	 * @return string
-	 */
-	static public function escapePhrase($value)
-	{
-		$pattern = '/("|\\\)/';
-		$replace = '\\\$1';
-
-		return preg_replace($pattern, $replace, $value);
-	}
-
-	/**
-	 * Convenience function for creating phrase syntax from a value
-	 *
-	 * @param string $value
-	 * @return string
-	 */
-	static public function phrase($value)
-	{
-		return '"' . self::escapePhrase($value) . '"';
-	}
-
-	/**
-	 * Constructor. All parameters are optional and will take on default values
-	 * if not specified.
-	 *
-	 * @param string $host
-	 * @param string $port
-	 * @param string $path
-	 */
-	public function __construct($host = 'localhost', $port = 8180, $path = '/solr/')
-	{
-		$this->setHost($host);
-		$this->setPort($port);
-		$this->setPath($path);
-
-		$this->_initUrls();
-
-		//set up the stream context for posting with file_get_contents
-		$contextOpts = array(
-			'http' => array(
-				'method' => 'POST',
-				'header' => "Content-Type: text/xml; charset=UTF-8\r\n" //php.net example showed \r\n at the end
-			)
-		);
-
-		$this->_postContext = stream_context_create($contextOpts);
-	}
-
-	/**
-	 * Return a valid http URL given this server's host, port and path and a provided servlet name
-	 *
-	 * @param string $servlet
-	 * @return string
-	 */
-	protected function _constructUrl($servlet, $params = array())
-	{
-		if (count($params))
-		{
-			//escape all parameters appropriately for inclusion in the query string
-			$escapedParams = array();
-
-			foreach ($params as $key => $value)
-			{
-				$escapedParams[] = urlencode($key) . '=' . urlencode($value);
-			}
-
-			$queryString = $this->_queryDelimiter . implode($this->_queryStringDelimiter, $escapedParams);
-		}
-		else
-		{
-			$queryString = '';
-		}
-
-		return 'http://' . $this->_host . ':' . $this->_port . $this->_path . $servlet . $queryString;
-	}
-
-	/**
-	 * Construct the Full URLs for the three servlets we reference
-	 */
-	protected function _initUrls()
-	{
-		//Initialize our full servlet URLs now that we have server information
-		$this->_updateUrl = $this->_constructUrl(self::UPDATE_SERVLET, array('wt' => self::SOLR_WRITER ));
-		$this->_searchUrl = $this->_constructUrl(self::SEARCH_SERVLET);
-		$this->_threadsUrl = $this->_constructUrl(self::THREADS_SERVLET, array('wt' => self::SOLR_WRITER ));
-
-		$this->_urlsInited = true;
-	}
-
-	/**
-	 * Central method for making a get operation against this Solr Server
-	 *
-	 * @param string $url
-	 * @param float $timeout Read timeout in seconds
-	 * @return Apache_Solr_Response
-	 *
-	 * @todo implement timeout ability
-	 * @throws Exception If a non 200 response status is returned
-	 */
-	protected function _sendRawGet($url, $timeout = FALSE)
-	{
-		//$http_response_header is set by file_get_contents
-		$response = new Apache_Solr_Response(@file_get_contents($url), $http_response_header, $this->_createDocuments, $this->_collapseSingleValueArrays);
-
-		if ($response->getHttpStatus() != 200)
-		{
-			throw new Exception('"' . $response->getHttpStatus() . '" Status: ' . $response->getHttpStatusMessage(), $response->getHttpStatus());
-		}
-
-		return $response;
-	}
-
-	/**
-	 * Central method for making a post operation against this Solr Server
-	 *
-	 * @param string $url
-	 * @param string $rawPost
-	 * @param float $timeout Read timeout in seconds
-	 * @param string $contentType
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Exception If a non 200 response status is returned
-	 */
-	protected function _sendRawPost($url, $rawPost, $timeout = FALSE, $contentType = 'text/xml; charset=UTF-8')
-	{
-		//ensure content type is correct
-		stream_context_set_option($this->_postContext, 'http', 'header', 'Content-Type: ' . $contentType);
-
-		//set the read timeout if specified
-		if ($timeout !== FALSE)
-		{
-			stream_context_set_option($this->_postContext, 'http', 'timeout', $timeout);
-		}
-
-		//set the content
-		stream_context_set_option($this->_postContext, 'http', 'content', $rawPost);
-
-		//$http_response_header is set by file_get_contents
-		$response = new Apache_Solr_Response(@file_get_contents($url, false, $this->_postContext), $http_response_header, $this->_createDocuments, $this->_collapseSingleValueArrays);
-
-		if ($response->getHttpStatus() != 200)
-		{
-			throw new Exception('"' . $response->getHttpStatus() . '" Status: ' . $response->getHttpStatusMessage(), $response->getHttpStatus());
-		}
-
-		return $response;
-	}
-
-	/**
-	 * Returns the set host
-	 *
-	 * @return string
-	 */
-	public function getHost()
-	{
-		return $this->_host;
-	}
-
-	/**
-	 * Set the host used. If empty will fallback to constants
-	 *
-	 * @param string $host
-	 */
-	public function setHost($host)
-	{
-		//Use the provided host or use the default
-		if (empty($host))
-		{
-			throw new Exception('Host parameter is empty');
-		}
-		else
-		{
-			$this->_host = $host;
-		}
-
-		if ($this->_urlsInited)
-		{
-			$this->_initUrls();
-		}
-	}
-
-	/**
-	 * Get the set port
-	 *
-	 * @return integer
-	 */
-	public function getPort()
-	{
-		return $this->_port;
-	}
-
-	/**
-	 * Set the port used. If empty will fallback to constants
-	 *
-	 * @param integer $port
-	 */
-	public function setPort($port)
-	{
-		//Use the provided port or use the default
-		$port = (int) $port;
-
-		if ($port <= 0)
-		{
-			throw new Exception('Port is not a valid port number');
-		}
-		else
-		{
-			$this->_port = $port;
-		}
-
-		if ($this->_urlsInited)
-		{
-			$this->_initUrls();
-		}
-	}
-
-	/**
-	 * Get the set path.
-	 *
-	 * @return string
-	 */
-	public function getPath()
-	{
-		return $this->_path;
-	}
-
-	/**
-	 * Set the path used. If empty will fallback to constants
-	 *
-	 * @param string $path
-	 */
-	public function setPath($path)
-	{
-		$path = trim($path, '/');
-
-		$this->_path = '/' . $path . '/';
-
-		if ($this->_urlsInited)
-		{
-			$this->_initUrls();
-		}
-	}
-
-	/**
-	 * Set the create documents flag. This determines whether {@link Apache_Solr_Response} objects will
-	 * parse the response and create {@link Apache_Solr_Document} instances in place.
-	 *
-	 * @param unknown_type $createDocuments
-	 */
-	public function setCreateDocuments($createDocuments)
-	{
-		$this->_createDocuments = (bool) $createDocuments;
-	}
-
-	/**
-	 * Get the current state of teh create documents flag.
-	 *
-	 * @return boolean
-	 */
-	public function getCreateDocuments()
-	{
-		return $this->_createDocuments;
-	}
-
-	/**
-	 * Set the collapse single value arrays flag.
-	 *
-	 * @param boolean $collapseSingleValueArrays
-	 */
-	public function setCollapseSingleValueArrays($collapseSingleValueArrays)
-	{
-		$this->_collapseSingleValueArrays = (bool) $collapseSingleValueArrays;
-	}
-
-	/**
-	 * Get the current state of the collapse single value arrays flag.
-	 *
-	 * @return boolean
-	 */
-	public function getCollapseSingleValueArrays()
-	{
-		return $this->_collapseSingleValueArrays;
-	}
-
-	/**
-	 * Set how NamedLists should be formatted in the response data. This mainly effects
-	 * the facet counts format.
-	 *
-	 * @param string $namedListTreatment
-	 * @throws Exception If invalid option is set
-	 */
-	public function setNamedListTreatmet($namedListTreatment)
-	{
-		switch ((string) $namedListTreatment)
-		{
-			case Apache_Solr_Service::NAMED_LIST_FLAT:
-				$this->_namedListTreatment = Apache_Solr_Service::NAMED_LIST_FLAT;
-				break;
-
-			case Apache_Solr_Service::NAMED_LIST_MAP:
-				$this->_namedListTreatment = Apache_Solr_Service::NAMED_LIST_MAP;
-				break;
-
-			default:
-				throw new Exception('Not a valid named list treatement option');
-		}
-	}
-
-	/**
-	 * Get the current setting for named list treatment.
-	 *
-	 * @return string
-	 */
-	public function getNamedListTreatment()
-	{
-		return $this->_namedListTreatment;
-	}
-
-
-	/**
-	 * Set the string used to separate the path form the query string.
-	 * Defaulted to '?'
-	 *
-	 * @param string $queryDelimiter
-	 */
-	public function setQueryDelimiter($queryDelimiter)
-	{
-		$this->_queryDelimiter = $queryDelimiter;
-	}
-
-	/**
-	 * Set the string used to separate the parameters in thequery string
-	 * Defaulted to '&'
-	 *
-	 * @param string $queryStringDelimiter
-	 */
-	public function setQueryStringDelimiter($queryStringDelimiter)
-	{
-		$this->_queryStringDelimiter = $queryStringDelimiter;
-	}
-
-	/**
-	 * Call the /admin/ping servlet, can be used to quickly tell if a connection to the
-	 * server is able to be made.
-	 *
-	 * @param float $timeout maximum time to wait for ping in seconds, -1 for unlimited (default is 2)
-	 * @return float Actual time taken to ping the server, FALSE if timeout occurs
-	 */
-	public function ping($timeout = 2)
-	{
-		$timeout = (float) $timeout;
-
-		if ($timeout <= 0)
-		{
-			$timeout = -1;
-		}
-
-		$start = microtime(true);
-
-		//to prevent strict errors
-		$errno = 0;
-		$errstr = '';
-
-		//try to connect to the host with timeout
-		$fp = fsockopen($this->_host, $this->_port, $errno, $errstr, $timeout);
-
-		if ($fp)
-		{
-			//If we have a timeout set, then determine the amount of time we have left
-			//in the request and set the stream timeout for the write operation
-			if ($timeout > 0)
-			{
-				//do the calculation
-				$writeTimeout = $timeout - (microtime(true) - $start);
-
-				//check if we're out of time
-				if ($writeTimeout <= 0)
-				{
-					fclose($fp);
-					return false;
-				}
-
-				//convert to microseconds and set the stream timeout
-				$writeTimeoutInMicroseconds = (int) $writeTimeout * 1000000;
-				stream_set_timeout($fp, 0, $writeTimeoutInMicroseconds);
-			}
-
-			$request = 	'HEAD ' . $this->_path . self::PING_SERVLET . ' HTTP/1.1' . "\r\n" .
-						'host: ' . $this->_host . "\r\n" .
-						'Connection: close' . "\r\n" .
-						"\r\n";
-
-			fwrite($fp, $request);
-
-			//check the stream meta data to see if we timed out during the operation
-			$metaData = stream_get_meta_data($fp);
-
-			if (isset($metaData['timeout']) && $metaData['timeout'])
-			{
-				fclose($fp);
-				return false;
-			}
-
-
-			//if we have a timeout set and have made it this far, determine the amount of time
-			//still remaining and set the timeout appropriately before the read operation
-			if ($timeout > 0)
-			{
-				//do the calculation
-				$readTimeout = $timeout - (microtime(true) - $start);
-
-				//check if we've run out of time
-				if ($readTimeout <= 0)
-				{
-					fclose($fp);
-					return false;
-				}
-
-				//convert to microseconds and set the stream timeout
-				$readTimeoutInMicroseconds = $readTimeout * 1000000;
-				stream_set_timeout($fp, 0, $readTimeoutInMicroseconds);
-			}
-
-			//at the very least we should get a response header line of
-			//HTTP/1.1 200 OK
-			$response = fread($fp, 15);
-
-			//check the stream meta data to see if we timed out during the operation
-			$metaData = stream_get_meta_data($fp);
-			fclose($fp); //we're done with the connection - ignore the rest
-
-			if (isset($metaData['timeout']) && $metaData['timeout'])
-			{
-				return false;
-			}
-
-			//finally, check the response header line
-			if ($response != 'HTTP/1.1 200 OK')
-			{
-				return false;
-			}
-
-			//we made it, return the approximate ping time
-			return microtime(true) - $start;
-		}
-
-		//we weren't able to make a connection
-		return false;
-	}
-
-	/**
-	 * Call the /admin/threads servlet and retrieve information about all threads in the
-	 * Solr servlet's thread group. Useful for diagnostics.
-	 *
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Exception If an error occurs during the service call
-	 */
-	public function threads()
-	{
-		return $this->_sendRawGet($this->_threadsUrl);
-	}
-
-	/**
-	 * Raw Add Method. Takes a raw post body and sends it to the update service.  Post body
-	 * should be a complete and well formed "add" xml document.
-	 *
-	 * @param string $rawPost
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Exception If an error occurs during the service call
-	 */
-	public function add($rawPost)
-	{
-		return $this->_sendRawPost($this->_updateUrl, $rawPost);
-	}
-
-	/**
-	 * Add a Solr Document to the index
-	 *
-	 * @param Apache_Solr_Document $document
-	 * @param boolean $allowDups
-	 * @param boolean $overwritePending
-	 * @param boolean $overwriteCommitted
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Exception If an error occurs during the service call
-	 */
-	public function addDocument(Apache_Solr_Document $document, $allowDups = false, $overwritePending = true, $overwriteCommitted = true)
-	{
-		$dupValue = $allowDups ? 'true' : 'false';
-		$pendingValue = $overwritePending ? 'true' : 'false';
-		$committedValue = $overwriteCommitted ? 'true' : 'false';
-
-		$rawPost = '<add allowDups="' . $dupValue . '" overwritePending="' . $pendingValue . '" overwriteCommitted="' . $committedValue . '">';
-		$rawPost .= $this->_documentToXmlFragment($document);
-		$rawPost .= '</add>';
-
-		return $this->add($rawPost);
-	}
-
-	/**
-	 * Add an array of Solr Documents to the index all at once
-	 *
-	 * @param array $documents Should be an array of Apache_Solr_Document instances
-	 * @param boolean $allowDups
-	 * @param boolean $overwritePending
-	 * @param boolean $overwriteCommitted
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Exception If an error occurs during the service call
-	 */
-	public function addDocuments($documents, $allowDups = false, $overwritePending = true, $overwriteCommitted = true)
-	{
-		$dupValue = $allowDups ? 'true' : 'false';
-		$pendingValue = $overwritePending ? 'true' : 'false';
-		$committedValue = $overwriteCommitted ? 'true' : 'false';
-
-		$rawPost = '<add allowDups="' . $dupValue . '" overwritePending="' . $pendingValue . '" overwriteCommitted="' . $committedValue . '">';
-
-		foreach ($documents as $document)
-		{
-			if ($document instanceof Apache_Solr_Document)
-			{
-				$rawPost .= $this->_documentToXmlFragment($document);
-			}
-		}
-
-		$rawPost .= '</add>';
-
-		return $this->add($rawPost);
-	}
-
-	/**
-	 * Create an XML fragment from a {@link Apache_Solr_Document} instance appropriate for use inside a Solr add call
-	 *
-	 * @return string
-	 */
-	protected function _documentToXmlFragment(Apache_Solr_Document $document)
-	{
-		$xml = '<doc';
-
-		if ($document->getBoost() !== false)
-		{
-			$xml .= ' boost="' . $document->getBoost() . '"';
-		}
-
-		$xml .= '>';
-
-		foreach ($document as $key => $value)
-		{
-			$key = htmlspecialchars($key, ENT_QUOTES, 'UTF-8');
-			$key = preg_replace('/\pC/u', '', $key); // remove unicode Control chars.
-			$fieldBoost = $document->getFieldBoost($key);
-
-			if (is_array($value))
-			{
-				foreach ($value as $multivalue)
-				{
-					$xml .= '<field name="' . $key . '"';
-
-					if ($fieldBoost !== false)
-					{
-						$xml .= ' boost="' . $fieldBoost . '"';
-
-						// only set the boost for the first field in the set
-						$fieldBoost = false;
-					}
-
-					$multivalue = htmlspecialchars($multivalue, ENT_NOQUOTES, 'UTF-8');
-					$multivalue = preg_replace('/\pC/u', '', $multivalue); // remove unicode Control chars.
-                    
-					$xml .= '>' . $multivalue . '</field>';
-				}
-			}
-			else
-			{
-				$xml .= '<field name="' . $key . '"';
-
-				if ($fieldBoost !== false)
-				{
-					$xml .= ' boost="' . $fieldBoost . '"';
-				}
-
-				$value = htmlspecialchars($value, ENT_NOQUOTES, 'UTF-8');
-				$value = preg_replace('/\pC/u', '', $value); // remove unicode Control chars.
-
-				$xml .= '>' . $value . '</field>';
-			}
-		}
-
-		$xml .= '</doc>';
-
-		return $xml;
-	}
-
-	/**
-	 * Send a commit command.  Will be synchronous unless both wait parameters are set to false.
-	 *
-	 * @param boolean $optimize Defaults to true
-	 * @param boolean $waitFlush Defaults to true
-	 * @param boolean $waitSearcher Defaults to true
-	 * @param float $timeout Maximum expected duration (in seconds) of the commit operation on the server (otherwise, will throw a communication exception). Defaults to 1 hour
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Exception If an error occurs during the service call
-	 */
-	public function commit($optimize = true, $waitFlush = true, $waitSearcher = true, $timeout = 3600)
-	{
-		$optimizeValue = $optimize ? 'true' : 'false';
-		$flushValue = $waitFlush ? 'true' : 'false';
-		$searcherValue = $waitSearcher ? 'true' : 'false';
-
-		$rawPost = '<commit optimize="' . $optimizeValue . '" waitFlush="' . $flushValue . '" waitSearcher="' . $searcherValue . '" />';
-
-		return $this->_sendRawPost($this->_updateUrl, $rawPost, $timeout);
-	}
-
-	/**
-	 * Raw Delete Method. Takes a raw post body and sends it to the update service. Body should be
-	 * a complete and well formed "delete" xml document
-	 *
-	 * @param string $rawPost Expected to be utf-8 encoded xml document
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Exception If an error occurs during the service call
-	 */
-	public function delete($rawPost)
-	{
-		return $this->_sendRawPost($this->_updateUrl, $rawPost);
-	}
-
-	/**
-	 * Create a delete document based on document ID
-	 *
-	 * @param string $id Expected to be utf-8 encoded
-	 * @param boolean $fromPending
-	 * @param boolean $fromCommitted
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Exception If an error occurs during the service call
-	 */
-	public function deleteById($id, $fromPending = true, $fromCommitted = true)
-	{
-		$pendingValue = $fromPending ? 'true' : 'false';
-		$committedValue = $fromCommitted ? 'true' : 'false';
-
-		//escape special xml characters
-		$id = htmlspecialchars($id, ENT_NOQUOTES, 'UTF-8');
-
-		$rawPost = '<delete fromPending="' . $pendingValue . '" fromCommitted="' . $committedValue . '"><id>' . $id . '</id></delete>';
-
-		return $this->delete($rawPost);
-	}
-
-	/**
-	 * Create a delete document based on a query and submit it
-	 *
-	 * @param string $rawQuery Expected to be utf-8 encoded
-	 * @param boolean $fromPending
-	 * @param boolean $fromCommitted
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Exception If an error occurs during the service call
-	 */
-	public function deleteByQuery($rawQuery, $fromPending = true, $fromCommitted = true)
-	{
-		$pendingValue = $fromPending ? 'true' : 'false';
-		$committedValue = $fromCommitted ? 'true' : 'false';
-
-		// escape special xml characters
-		$rawQuery = htmlspecialchars($rawQuery, ENT_NOQUOTES, 'UTF-8');
-
-		$rawPost = '<delete fromPending="' . $pendingValue . '" fromCommitted="' . $committedValue . '"><query>' . $rawQuery . '</query></delete>';
-
-		return $this->delete($rawPost);
-	}
-
-	/**
-	 * Send an optimize command.  Will be synchronous unless both wait parameters are set
-	 * to false.
-	 *
-	 * @param boolean $waitFlush
-	 * @param boolean $waitSearcher
-	 * @param float $timeout Maximum expected duration of the commit operation on the server (otherwise, will throw a communication exception)
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Exception If an error occurs during the service call
-	 */
-	public function optimize($waitFlush = true, $waitSearcher = true, $timeout = 3600)
-	{
-		$flushValue = $waitFlush ? 'true' : 'false';
-		$searcherValue = $waitSearcher ? 'true' : 'false';
-
-		$rawPost = '<optimize waitFlush="' . $flushValue . '" waitSearcher="' . $searcherValue . '" />';
-
-		return $this->_sendRawPost($this->_updateUrl, $rawPost, $timeout);
-	}
-
-	/**
-	 * Simple Search interface
-	 *
-	 * @param string $query The raw query string
-	 * @param int $offset The starting offset for result documents
-	 * @param int $limit The maximum number of result documents to return
-	 * @param array $params key / value pairs for other query parameters (see Solr documentation), use arrays for parameter keys used more than once (e.g. facet.field)
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Exception If an error occurs during the service call
-	 */
-	public function search($query, $offset = 0, $limit = 10, $params = array())
-	{
-	    $searchurl = $this->_searchUrl;
-	    
-		if (!is_array($params))
-		{
-			$params = array();
-		}
-
-		// construct our full parameters
-		// sending the version is important in case the format changes
-		$params['version'] = self::SOLR_VERSION;
-
-        if ($params['qt'] && substr($params['qt'], 0, 1) === "/") {
-            $searchurl = $this->_constructUrl(substr($params['qt'], 1));
-            unset($params['qt']);
-        }
-        
-		// common parameters in this interface
-		$params['wt'] = self::SOLR_WRITER;
-		$params['json.nl'] = $this->_namedListTreatment;
-
-		$params['q'] = $query;
-		$params['start'] = $offset;
-		$params['rows'] = $limit;
-
-		// use http_build_query to encode our arguments because its faster
-		// than urlencoding all the parts ourselves in a loop
-		$queryString = http_build_query($params, null, $this->_queryStringDelimiter);
-
-		// because http_build_query treats arrays differently than we want to, correct the query
-		// string by changing foo[#]=bar (# being an actual number) parameter strings to just
-		// multiple foo=bar strings. This regex should always work since '=' will be urlencoded
-		// anywhere else the regex isn't expecting it
-		$queryString = preg_replace('/%5B(?:[0-9]|[1-9][0-9]+)%5D=/', '=', $queryString);
-
-		return $this->_sendRawGet($searchurl . $this->_queryDelimiter . $queryString);
-	}
-}
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/Apache/Solr/Service/Balancer.php b/wp-content/plugins/solr-for-wordpress/Apache/Solr/Service/Balancer.php
deleted file mode 100644
index ba0776b48..000000000
--- a/wp-content/plugins/solr-for-wordpress/Apache/Solr/Service/Balancer.php
+++ /dev/null
@@ -1,763 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2009, Conduit Internet Technologies, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Conduit Internet Technologies, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2009 Conduit Internet Technologies, Inc. (http://conduit-it.com)
- * @license New BSD (http://solr-php-client.googlecode.com/svn/trunk/COPYING)
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>, Dan Wolfe
- */
-
-// See Issue #1 (http://code.google.com/p/solr-php-client/issues/detail?id=1)
-// Doesn't follow typical include path conventions, but is more convenient for users
-require_once(dirname(dirname(__FILE__)) . '/Service.php');
-
-/**
- * Reference Implementation for using multiple Solr services in a distribution. Functionality
- * includes:
- * 	routing of read / write operations
- * 	failover (on selection) for multiple read servers
- */
-class Apache_Solr_Service_Balancer
-{
-	protected $_createDocuments = true;
-
-	protected $_readableServices = array();
-	protected $_writeableServices = array();
-
-	protected $_currentReadService = null;
-	protected $_currentWriteService = null;
-
-	protected $_readPingTimeout = 2;
-	protected $_writePingTimeout = 4;
-
-	// Configuration for server selection backoff intervals
-	protected $_useBackoff = false;		// Set to true to use more resillient write server selection
-	protected $_backoffLimit = 600;		// 10 minute default maximum
-	protected $_backoffEscalation = 2.0; 	// Rate at which to increase backoff period
-	protected $_defaultBackoff = 2.0;		// Default backoff interval
-
-	/**
-	 * Escape a value for special query characters such as ':', '(', ')', '*', '?', etc.
-	 *
-	 * NOTE: inside a phrase fewer characters need escaped, use {@link Apache_Solr_Service::escapePhrase()} instead
-	 *
-	 * @param string $value
-	 * @return string
-	 */
-	static public function escape($value)
-	{
-		return Apache_Solr_Service::escape($value);
-	}
-
-	/**
-	 * Escape a value meant to be contained in a phrase for special query characters
-	 *
-	 * @param string $value
-	 * @return string
-	 */
-	static public function escapePhrase($value)
-	{
-		return Apache_Solr_Service::escapePhrase($value);
-	}
-
-	/**
-	 * Convenience function for creating phrase syntax from a value
-	 *
-	 * @param string $value
-	 * @return string
-	 */
-	static public function phrase($value)
-	{
-		return Apache_Solr_Service::phrase($value);
-	}
-
-	/**
-	 * Constructor. Takes arrays of read and write service instances or descriptions
-	 *
-	 * @param array $readableServices
-	 * @param array $writeableServices
-	 */
-	public function __construct($readableServices = array(), $writeableServices = array())
-	{
-		//setup readable services
-		foreach ($readableServices as $service)
-		{
-			$this->addReadService($service);
-		}
-
-		//setup writeable services
-		foreach ($writeableServices as $service)
-		{
-			$this->addWriteService($service);
-		}
-	}
-
-	public function setReadPingTimeout($timeout)
-	{
-		$this->_readPingTimeout = $timeout;
-	}
-
-	public function setWritePingTimeout($timeout)
-	{
-		$this->_writePingTimeout = $timeout;
-	}
-
-	public function setUseBackoff($enable)
-	{
-		$this->_useBackoff = $enable;
-	}
-
-	/**
-	 * Generates a service ID
-	 *
-	 * @param string $host
-	 * @param integer $port
-	 * @param string $path
-	 * @return string
-	 */
-	protected function _getServiceId($host, $port, $path)
-	{
-		return $host . ':' . $port . $path;
-	}
-
-	/**
-	 * Adds a service instance or service descriptor (if it is already
-	 * not added)
-	 *
-	 * @param mixed $service
-	 *
-	 * @throws Exception If service descriptor is not valid
-	 */
-	public function addReadService($service)
-	{
-		if ($service instanceof Apache_Solr_Service)
-		{
-			$id = $this->_getServiceId($service->getHost(), $service->getPort(), $service->getPath());
-
-			$this->_readableServices[$id] = $service;
-		}
-		else if (is_array($service))
-		{
-			if (isset($service['host']) && isset($service['port']) && isset($service['path']))
-			{
-				$id = $this->_getServiceId((string)$service['host'], (int)$service['port'], (string)$service['path']);
-
-				$this->_readableServices[$id] = $service;
-			}
-			else
-			{
-				throw new Exception('A Readable Service description array does not have all required elements of host, port, and path');
-			}
-		}
-	}
-
-	/**
-	 * Removes a service instance or descriptor from the available services
-	 *
-	 * @param mixed $service
-	 *
-	 * @throws Exception If service descriptor is not valid
-	 */
-	public function removeReadService($service)
-	{
-		$id = '';
-
-		if ($service instanceof Apache_Solr_Service)
-		{
-			$id = $this->_getServiceId($service->getHost(), $service->getPort(), $service->getPath());
-		}
-		else if (is_array($service))
-		{
-			if (isset($service['host']) && isset($service['port']) && isset($service['path']))
-			{
-				$id = $this->_getServiceId((string)$service['host'], (int)$service['port'], (string)$service['path']);
-			}
-			else
-			{
-				throw new Exception('A Readable Service description array does not have all required elements of host, port, and path');
-			}
-		}
-		else if (is_string($service))
-		{
-			$id = $service;
-		}
-
-		if ($id && isset($this->_readableServices[$id]))
-		{
-			unset($this->_readableServices[$id]);
-		}
-	}
-
-	/**
-	 * Adds a service instance or service descriptor (if it is already
-	 * not added)
-	 *
-	 * @param mixed $service
-	 *
-	 * @throws Exception If service descriptor is not valid
-	 */
-	public function addWriteService($service)
-	{
-		if ($service instanceof Apache_Solr_Service)
-		{
-			$id = $this->_getServiceId($service->getHost(), $service->getPort(), $service->getPath());
-
-			$this->_writeableServices[$id] = $service;
-		}
-		else if (is_array($service))
-		{
-			if (isset($service['host']) && isset($service['port']) && isset($service['path']))
-			{
-				$id = $this->_getServiceId((string)$service['host'], (int)$service['port'], (string)$service['path']);
-
-				$this->_writeableServices[$id] = $service;
-			}
-			else
-			{
-				throw new Exception('A Writeable Service description array does not have all required elements of host, port, and path');
-			}
-		}
-	}
-
-	/**
-	 * Removes a service instance or descriptor from the available services
-	 *
-	 * @param mixed $service
-	 *
-	 * @throws Exception If service descriptor is not valid
-	 */
-	public function removeWriteService($service)
-	{
-		$id = '';
-
-		if ($service instanceof Apache_Solr_Service)
-		{
-			$id = $this->_getServiceId($service->getHost(), $service->getPort(), $service->getPath());
-		}
-		else if (is_array($service))
-		{
-			if (isset($service['host']) && isset($service['port']) && isset($service['path']))
-			{
-				$id = $this->_getServiceId((string)$service['host'], (int)$service['port'], (string)$service['path']);
-			}
-			else
-			{
-				throw new Exception('A Readable Service description array does not have all required elements of host, port, and path');
-			}
-		}
-		else if (is_string($service))
-		{
-			$id = $service;
-		}
-
-		if ($id && isset($this->_writeableServices[$id]))
-		{
-			unset($this->_writeableServices[$id]);
-		}
-	}
-
-	/**
-	 * Iterate through available read services and select the first with a ping
-	 * that satisfies configured timeout restrictions (or the default)
-	 *
-	 * @return Apache_Solr_Service
-	 *
-	 * @throws Exception If there are no read services that meet requirements
-	 */
-	protected function _selectReadService($forceSelect = false)
-	{
-		if (!$this->_currentReadService || !isset($this->_readableServices[$this->_currentReadService]) || $forceSelect)
-		{
-			if ($this->_currentReadService && isset($this->_readableServices[$this->_currentReadService]) && $forceSelect)
-			{
-				// we probably had a communication error, ping the current read service, remove it if it times out
-				if ($this->_readableServices[$this->_currentReadService]->ping($this->_readPingTimeout) === false)
-				{
-					$this->removeReadService($this->_currentReadService);
-				}
-			}
-
-			if (count($this->_readableServices))
-			{
-				// select one of the read services at random
-				$ids = array_keys($this->_readableServices);
-
-				$id = $ids[rand(0, count($ids) - 1)];
-				$service = $this->_readableServices[$id];
-
-				if (is_array($service))
-				{
-					//convert the array definition to a client object
-					$service = new Apache_Solr_Service($service['host'], $service['port'], $service['path']);
-					$this->_readableServices[$id] = $service;
-				}
-
-				$service->setCreateDocuments($this->_createDocuments);
-				$this->_currentReadService = $id;
-			}
-			else
-			{
-				throw new Exception('No read services were available');
-			}
-		}
-
-		return $this->_readableServices[$this->_currentReadService];
-	}
-
-	/**
-	 * Iterate through available write services and select the first with a ping
-	 * that satisfies configured timeout restrictions (or the default)
-	 *
-	 * @return Apache_Solr_Service
-	 *
-	 * @throws Exception If there are no write services that meet requirements
-	 */
-	protected function _selectWriteService($forceSelect = false)
-	{
-		if($this->_useBackoff)
-		{
-			return $this->_selectWriteServiceSafe($forceSelect);
-		}
-
-		if (!$this->_currentWriteService || !isset($this->_writeableServices[$this->_currentWriteService]) || $forceSelect)
-		{
-			if ($this->_currentWriteService && isset($this->_writeableServices[$this->_currentWriteService]) && $forceSelect)
-			{
-				// we probably had a communication error, ping the current read service, remove it if it times out
-				if ($this->_writeableServices[$this->_currentWriteService]->ping($this->_writePingTimeout) === false)
-				{
-					$this->removeWriteService($this->_currentWriteService);
-				}
-			}
-
-			if (count($this->_writeableServices))
-			{
-				// select one of the read services at random
-				$ids = array_keys($this->_writeableServices);
-
-				$id = $ids[rand(0, count($ids) - 1)];
-				$service = $this->_writeableServices[$id];
-
-				if (is_array($service))
-				{
-					//convert the array definition to a client object
-					$service = new Apache_Solr_Service($service['host'], $service['port'], $service['path']);
-					$this->_writeableServices[$id] = $service;
-				}
-
-				$this->_currentWriteService = $id;
-			}
-			else
-			{
-				throw new Exception('No write services were available');
-			}
-		}
-
-		return $this->_writeableServices[$this->_currentWriteService];
-	}
-
-	/**
-	 * Iterate through available write services and select the first with a ping
-	 * that satisfies configured timeout restrictions (or the default).  The
-	 * timeout period will increase until a connection is made or the limit is
-	 * reached.   This will allow for increased reliability with heavily loaded
-	 * server(s).
-	 *
-	 * @return Apache_Solr_Service
-	 *
-	 * @throws Exception If there are no write services that meet requirements
-	 */
-
-	protected function _selectWriteServiceSafe($forceSelect = false)
-	{
-		if (!$this->_currentWriteService || !isset($this->_writeableServices[$this->_currentWriteService]) || $forceSelect)
-		{
-			if (count($this->_writeableServices))
-			{
-				$backoff = $this->_defaultBackoff;
-
-				do {
-					// select one of the read services at random
-					$ids = array_keys($this->_writeableServices);
-
-					$id = $ids[rand(0, count($ids) - 1)];
-					$service = $this->_writeableServices[$id];
-
-					if (is_array($service))
-					{
-						//convert the array definition to a client object
-						$service = new Apache_Solr_Service($service['host'], $service['port'], $service['path']);
-						$this->_writeableServices[$id] = $service;
-					}
-
-					$this->_currentWriteService = $id;
-
-					$backoff *= $this->_backoffEscalation;
-
-					if($backoff > $this->_backoffLimit)
-					{
-						throw new Exception('No write services were available.  All timeouts exceeded.');
-					}
-
-				} while($this->_writeableServices[$this->_currentWriteService]->ping($backoff) === false);
-			}
-			else
-			{
-				throw new Exception('No write services were available');
-			}
-		}
-
-		return $this->_writeableServices[$this->_currentWriteService];
-	}
-
-	public function setCreateDocuments($createDocuments)
-	{
-		$this->_createDocuments = (bool) $createDocuments;
-
-		if ($this->_currentReadService)
-		{
-			$service = $this->_selectReadService();
-			$service->setCreateDocuments($createDocuments);
-		}
-	}
-
-	public function getCreateDocuments()
-	{
-		return $this->_createDocuments;
-	}
-
-	/**
-	 * Raw Add Method. Takes a raw post body and sends it to the update service.  Post body
-	 * should be a complete and well formed "add" xml document.
-	 *
-	 * @param string $rawPost
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Exception If an error occurs during the service call
-	 */
-	public function add($rawPost)
-	{
-		$service = $this->_selectWriteService();
-
-		do
-		{
-			try
-			{
-				return $service->add($rawPost);
-			}
-			catch (Exception $e)
-			{
-				if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
-				{
-					throw $e;
-				}
-			}
-
-			$service = $this->_selectWriteService(true);
-		} while ($service);
-
-		return false;
-	}
-
-	/**
-	 * Add a Solr Document to the index
-	 *
-	 * @param Apache_Solr_Document $document
-	 * @param boolean $allowDups
-	 * @param boolean $overwritePending
-	 * @param boolean $overwriteCommitted
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Exception If an error occurs during the service call
-	 */
-	public function addDocument(Apache_Solr_Document $document, $allowDups = false, $overwritePending = true, $overwriteCommitted = true)
-	{
-		$service = $this->_selectWriteService();
-
-		do
-		{
-			try
-			{
-				return $service->addDocument($document, $allowDups, $overwritePending, $overwriteCommitted);
-			}
-			catch (Exception $e)
-			{
-				if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
-				{
-					throw $e;
-				}
-			}
-
-			$service = $this->_selectWriteService(true);
-		} while ($service);
-
-		return false;
-	}
-
-	/**
-	 * Add an array of Solr Documents to the index all at once
-	 *
-	 * @param array $documents Should be an array of Apache_Solr_Document instances
-	 * @param boolean $allowDups
-	 * @param boolean $overwritePending
-	 * @param boolean $overwriteCommitted
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Exception If an error occurs during the service call
-	 */
-	public function addDocuments($documents, $allowDups = false, $overwritePending = true, $overwriteCommitted = true)
-	{
-		$service = $this->_selectWriteService();
-
-		do
-		{
-			try
-			{
-				return $service->addDocuments($documents, $allowDups, $overwritePending, $overwriteCommitted);
-			}
-			catch (Exception $e)
-			{
-				if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
-				{
-					throw $e;
-				}
-			}
-
-			$service = $this->_selectWriteService(true);
-		} while ($service);
-
-		return false;
-	}
-
-	/**
-	 * Send a commit command.  Will be synchronous unless both wait parameters are set
-	 * to false.
-	 *
-	 * @param boolean $waitFlush
-	 * @param boolean $waitSearcher
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Exception If an error occurs during the service call
-	 */
-	public function commit($optimize = true, $waitFlush = true, $waitSearcher = true, $timeout = 3600)
-	{
-		$service = $this->_selectWriteService();
-
-		do
-		{
-			try
-			{
-				return $service->commit($optimize, $waitFlush, $waitSearcher, $timeout);
-			}
-			catch (Exception $e)
-			{
-				if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
-				{
-					throw $e;
-				}
-			}
-
-			$service = $this->_selectWriteService(true);
-		} while ($service);
-
-		return false;
-	}
-
-	/**
-	 * Raw Delete Method. Takes a raw post body and sends it to the update service. Body should be
-	 * a complete and well formed "delete" xml document
-	 *
-	 * @param string $rawPost
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Exception If an error occurs during the service call
-	 */
-	public function delete($rawPost)
-	{
-		$service = $this->_selectWriteService();
-
-		do
-		{
-			try
-			{
-				return $service->delete($rawPost);
-			}
-			catch (Exception $e)
-			{
-				if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
-				{
-					throw $e;
-				}
-			}
-
-			$service = $this->_selectWriteService(true);
-		} while ($service);
-
-		return false;
-	}
-
-	/**
-	 * Create a delete document based on document ID
-	 *
-	 * @param string $id
-	 * @param boolean $fromPending
-	 * @param boolean $fromCommitted
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Exception If an error occurs during the service call
-	 */
-	public function deleteById($id, $fromPending = true, $fromCommitted = true)
-	{
-		$service = $this->_selectWriteService();
-
-		do
-		{
-			try
-			{
-				return $service->deleteById($id, $fromPending, $fromCommitted);
-			}
-			catch (Exception $e)
-			{
-				if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
-				{
-					throw $e;
-				}
-			}
-
-			$service = $this->_selectWriteService(true);
-		} while ($service);
-
-		return false;
-	}
-
-	/**
-	 * Create a delete document based on a query and submit it
-	 *
-	 * @param string $rawQuery
-	 * @param boolean $fromPending
-	 * @param boolean $fromCommitted
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Exception If an error occurs during the service call
-	 */
-	public function deleteByQuery($rawQuery, $fromPending = true, $fromCommitted = true)
-	{
-		$service = $this->_selectWriteService();
-
-		do
-		{
-			try
-			{
-				return $service->deleteByQuery($rawQuery, $fromPending, $fromCommitted);
-			}
-			catch (Exception $e)
-			{
-				if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
-				{
-					throw $e;
-				}
-			}
-
-			$service = $this->_selectWriteService(true);
-		} while ($service);
-
-		return false;
-	}
-
-	/**
-	 * Send an optimize command.  Will be synchronous unless both wait parameters are set
-	 * to false.
-	 *
-	 * @param boolean $waitFlush
-	 * @param boolean $waitSearcher
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Exception If an error occurs during the service call
-	 */
-	public function optimize($waitFlush = true, $waitSearcher = true)
-	{
-		$service = $this->_selectWriteService();
-
-		do
-		{
-			try
-			{
-				return $service->optimize($waitFlush, $waitSearcher);
-			}
-			catch (Exception $e)
-			{
-				if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
-				{
-					throw $e;
-				}
-			}
-
-			$service = $this->_selectWriteService(true);
-		} while ($service);
-
-		return false;
-	}
-
-	/**
-	 * Simple Search interface
-	 *
-	 * @param string $query The raw query string
-	 * @param int $offset The starting offset for result documents
-	 * @param int $limit The maximum number of result documents to return
-	 * @param array $params key / value pairs for query parameters, use arrays for multivalued parameters
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Exception If an error occurs during the service call
-	 */
-	public function search($query, $offset = 0, $limit = 10, $params = array())
-	{
-		$service = $this->_selectReadService();
-
-		do
-		{
-			try
-			{
-				return $service->search($query, $offset, $limit, $params);
-			}
-			catch (Exception $e)
-			{
-				if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
-				{
-					throw $e;
-				}
-			}
-
-			$service = $this->_selectReadService(true);
-		} while ($service);
-
-		return false;
-	}
-}
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/Document.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/Document.php
deleted file mode 100644
index 7b9784a70..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/Document.php
+++ /dev/null
@@ -1,367 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- * @version $Id: Document.php 54 2011-02-04 16:29:18Z donovan.jimenez $
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-/**
- * Holds Key / Value pairs that represent a Solr Document along with any associated boost
- * values. Field values can be accessed by direct dereferencing such as:
- * <code>
- * ...
- * $document->title = 'Something';
- * echo $document->title;
- * ...
- * </code>
- *
- * Additionally, the field values can be iterated with foreach
- *
- * <code>
- * foreach ($document as $fieldName => $fieldValue)
- * {
- * ...
- * }
- * </code>
- */
-class Apache_Solr_Document implements IteratorAggregate
-{
-	/**
-	 * SVN Revision meta data for this class
-	 */
-	const SVN_REVISION = '$Revision: 54 $';
-
-	/**
-	 * SVN ID meta data for this class
-	 */
-	const SVN_ID = '$Id: Document.php 54 2011-02-04 16:29:18Z donovan.jimenez $';
-
-	/**
-	 * Document boost value
-	 *
-	 * @var float
-	 */
-	protected $_documentBoost = false;
-
-	/**
-	 * Document field values, indexed by name
-	 *
-	 * @var array
-	 */
-	protected $_fields = array();
-
-	/**
-	 * Document field boost values, indexed by name
-	 *
-	 * @var array array of floats
-	 */
-	protected $_fieldBoosts = array();
-
-	/**
-	 * Clear all boosts and fields from this document
-	 */
-	public function clear()
-	{
-		$this->_documentBoost = false;
-
-		$this->_fields = array();
-		$this->_fieldBoosts = array();
-	}
-
-	/**
-	 * Get current document boost
-	 *
-	 * @return mixed will be false for default, or else a float
-	 */
-	public function getBoost()
-	{
-		return $this->_documentBoost;
-	}
-
-	/**
-	 * Set document boost factor
-	 *
-	 * @param mixed $boost Use false for default boost, else cast to float that should be > 0 or will be treated as false
-	 */
-	public function setBoost($boost)
-	{
-		$boost = (float) $boost;
-
-		if ($boost > 0.0)
-		{
-			$this->_documentBoost = $boost;
-		}
-		else
-		{
-			$this->_documentBoost = false;
-		}
-	}
-
-	/**
-	 * Add a value to a multi-valued field
-	 *
-	 * NOTE: the solr XML format allows you to specify boosts
-	 * PER value even though the underlying Lucene implementation
-	 * only allows a boost per field. To remedy this, the final
-	 * field boost value will be the product of all specified boosts
-	 * on field values - this is similar to SolrJ's functionality.
-	 *
-	 * <code>
-	 * $doc = new Apache_Solr_Document();
-	 *
-	 * $doc->addField('foo', 'bar', 2.0);
-	 * $doc->addField('foo', 'baz', 3.0);
-	 *
-	 * // resultant field boost will be 6!
-	 * echo $doc->getFieldBoost('foo');
-	 * </code>
-	 *
-	 * @param string $key
-	 * @param mixed $value
-	 * @param mixed $boost Use false for default boost, else cast to float that should be > 0 or will be treated as false
-	 */
-	public function addField($key, $value, $boost = false)
-	{
-		if (!isset($this->_fields[$key]))
-		{
-			// create holding array if this is the first value
-			$this->_fields[$key] = array();
-		}
-		else if (!is_array($this->_fields[$key]))
-		{
-			// move existing value into array if it is not already an array
-			$this->_fields[$key] = array($this->_fields[$key]);
-		}
-
-		if ($this->getFieldBoost($key) === false)
-		{
-			// boost not already set, set it now
-			$this->setFieldBoost($key, $boost);
-		}
-		else if ((float) $boost > 0.0)
-		{
-			// multiply passed boost with current field boost - similar to SolrJ implementation
-			$this->_fieldBoosts[$key] *= (float) $boost;
-		}
-
-		// add value to array
-		$this->_fields[$key][] = $value;
-	}
-
-	/**
-	 * Handle the array manipulation for a multi-valued field
-	 *
-	 * @param string $key
-	 * @param string $value
-	 * @param mixed $boost Use false for default boost, else cast to float that should be > 0 or will be treated as false
-	 *
-	 * @deprecated Use addField(...) instead
-	 */
-	public function setMultiValue($key, $value, $boost = false)
-	{
-		$this->addField($key, $value, $boost);
-	}
-
-	/**
-	 * Get field information
-	 *
-	 * @param string $key
-	 * @return mixed associative array of info if field exists, false otherwise
-	 */
-	public function getField($key)
-	{
-		if (isset($this->_fields[$key]))
-		{
-			return array(
-				'name' => $key,
-				'value' => $this->_fields[$key],
-				'boost' => $this->getFieldBoost($key)
-			);
-		}
-
-		return false;
-	}
-
-	/**
-	 * Set a field value. Multi-valued fields should be set as arrays
-	 * or instead use the addField(...) function which will automatically
-	 * make sure the field is an array.
-	 *
-	 * @param string $key
-	 * @param mixed $value
-	 * @param mixed $boost Use false for default boost, else cast to float that should be > 0 or will be treated as false
-	 */
-	public function setField($key, $value, $boost = false)
-	{
-		$this->_fields[$key] = $value;
-		$this->setFieldBoost($key, $boost);
-	}
-
-	/**
-	 * Get the currently set field boost for a document field
-	 *
-	 * @param string $key
-	 * @return float currently set field boost, false if one is not set
-	 */
-	public function getFieldBoost($key)
-	{
-		return isset($this->_fieldBoosts[$key]) ? $this->_fieldBoosts[$key] : false;
-	}
-
-	/**
-	 * Set the field boost for a document field
-	 *
-	 * @param string $key field name for the boost
-	 * @param mixed $boost Use false for default boost, else cast to float that should be > 0 or will be treated as false
-	 */
-	public function setFieldBoost($key, $boost)
-	{
-		$boost = (float) $boost;
-
-		if ($boost > 0.0)
-		{
-			$this->_fieldBoosts[$key] = $boost;
-		}
-		else
-		{
-			$this->_fieldBoosts[$key] = false;
-		}
-	}
-
-	/**
-	 * Return current field boosts, indexed by field name
-	 *
-	 * @return array
-	 */
-	public function getFieldBoosts()
-	{
-		return $this->_fieldBoosts;
-	}
-
-	/**
-	 * Get the names of all fields in this document
-	 *
-	 * @return array
-	 */
-	public function getFieldNames()
-	{
-		return array_keys($this->_fields);
-	}
-
-	/**
-	 * Get the values of all fields in this document
-	 *
-	 * @return array
-	 */
-	public function getFieldValues()
-	{
-		return array_values($this->_fields);
-	}
-
-	/**
-	 * IteratorAggregate implementation function. Allows usage:
-	 *
-	 * <code>
-	 * foreach ($document as $key => $value)
-	 * {
-	 * 	...
-	 * }
-	 * </code>
-	 */
-	public function getIterator()
-	{
-		$arrayObject = new ArrayObject($this->_fields);
-
-		return $arrayObject->getIterator();
-	}
-
-	/**
-	 * Magic get for field values
-	 *
-	 * @param string $key
-	 * @return mixed
-	 */
-	public function __get($key)
-	{
-		if (isset($this->_fields[$key]))
-		{
-			return $this->_fields[$key];
-		}
-		
-		return null;
-	}
-
-	/**
-	 * Magic set for field values. Multi-valued fields should be set as arrays
-	 * or instead use the addField(...) function which will automatically
-	 * make sure the field is an array.
-	 *
-	 * @param string $key
-	 * @param mixed $value
-	 */
-	public function __set($key, $value)
-	{
-		$this->setField($key, $value);
-	}
-
-	/**
-	 * Magic isset for fields values.  Do not call directly. Allows usage:
-	 *
-	 * <code>
-	 * isset($document->some_field);
-	 * </code>
-	 *
-	 * @param string $key
-	 * @return boolean
-	 */
-	public function __isset($key)
-	{
-		return isset($this->_fields[$key]);
-	}
-
-	/**
-	 * Magic unset for field values. Do not call directly. Allows usage:
-	 *
-	 * <code>
-	 * unset($document->some_field);
-	 * </code>
-	 *
-	 * @param string $key
-	 */
-	public function __unset($key)
-	{
-		unset($this->_fields[$key]);
-		unset($this->_fieldBoosts[$key]);
-	}
-}
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/Exception.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/Exception.php
deleted file mode 100644
index e6bc4f4b6..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/Exception.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- * @version $Id: Exception.php 54 2011-02-04 16:29:18Z donovan.jimenez $
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-class Apache_Solr_Exception extends Exception
-{
-	/**
-	 * SVN Revision meta data for this class
-	 */
-	const SVN_REVISION = '$Revision: 54 $';
-
-	/**
-	 * SVN ID meta data for this class
-	 */
-	const SVN_ID = '$Id: Exception.php 54 2011-02-04 16:29:18Z donovan.jimenez $';
-}
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/Abstract.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/Abstract.php
deleted file mode 100644
index cf9f76d38..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/Abstract.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- * @version $Id: $
- *
- * @package Apache
- * @subpackage Solr
- * @author Timo Schmidt <timo.schmidt@aoemedia.de>, Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-/**
- * Convenience class that implements the transport implementation. Can be extended by
- * real implementations to do some of the common book keeping
- */
-abstract class Apache_Solr_HttpTransport_Abstract implements Apache_Solr_HttpTransport_Interface
-{	
-	/**
-	 * Our default timeout value for requests that don't specify a timeout
-	 *
-	 * @var float
-	 */
-	private $_defaultTimeout = false;
-		
-	/**
-	 * Get the current default timeout setting (initially the default_socket_timeout ini setting)
-	 * in seconds
-	 *
-	 * @return float
-	 */
-	public function getDefaultTimeout()
-	{
-		// lazy load the default timeout from the ini settings
-		if ($this->_defaultTimeout === false)
-		{
-			$this->_defaultTimeout = (int) ini_get('default_socket_timeout');
-
-			// double check we didn't get 0 for a timeout
-			if ($this->_defaultTimeout <= 0)
-			{
-				$this->_defaultTimeout = 60;
-			}
-		}
-		
-		return $this->_defaultTimeout;
-	}
-	
-	/**
-	 * Set the current default timeout for all HTTP requests
-	 *
-	 * @param float $timeout
-	 */
-	public function setDefaultTimeout($timeout)
-	{
-		$timeout = (float) $timeout;
-		
-		if ($timeout >= 0)
-		{
-			$this->_defaultTimeout = $timeout;
-		}
-	}	
-}
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/Curl.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/Curl.php
deleted file mode 100644
index 7cb7743e6..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/Curl.php
+++ /dev/null
@@ -1,198 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- * @version $Id: $
- *
- * @package Apache
- * @subpackage Solr
- * @author Timo Schmidt <timo.schmidt@aoemedia.de>, Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-// Require Apache_Solr_HttpTransport_Abstract
-require_once(dirname(__FILE__) . '/Abstract.php');
-
-/**
- * A Curl based HTTP transport. Uses a single curl session for all requests.
- */
-class Apache_Solr_HttpTransport_Curl extends Apache_Solr_HttpTransport_Abstract
-{
-	/**
-	 * SVN Revision meta data for this class
-	 */
-	const SVN_REVISION = '$Revision:$';
-
-	/**
-	 * SVN ID meta data for this class
-	 */
-	const SVN_ID = '$Id:$';
-
-	/**
-	 * Curl Session Handle
-	 *
-	 * @var resource
-	 */
-	private $_curl;
-
-	/**
-	 * Initializes a curl session
-	 */
-	public function __construct()
-	{
-		// initialize a CURL session
-		$this->_curl = curl_init();
-
-		// set common options that will not be changed during the session
-		curl_setopt_array($this->_curl, array(
-			// return the response body from curl_exec
-			CURLOPT_RETURNTRANSFER => true,
-
-			// get the output as binary data
-			CURLOPT_BINARYTRANSFER => true,
-
-			// we do not need the headers in the output, we get everything we need from curl_getinfo
-			CURLOPT_HEADER => false
-		));
-	}
-
-	/**
-	 * Closes a curl session
-	 */
-	function __destruct()
-	{
-		// close our curl session
-		curl_close($this->_curl);
-	}
-
-	public function performGetRequest($url, $timeout = false)
-	{
-		// check the timeout value
-		if ($timeout === false || $timeout <= 0.0)
-		{
-			// use the default timeout
-			$timeout = $this->getDefaultTimeout();
-		}
-
-		// set curl GET options
-		curl_setopt_array($this->_curl, array(
-			// make sure we're returning the body
-			CURLOPT_NOBODY => false,
-
-			// make sure we're GET
-			CURLOPT_HTTPGET => true,
-
-			// set the URL
-			CURLOPT_URL => $url,
-
-			// set the timeout
-			CURLOPT_TIMEOUT => $timeout
-		));
-
-		// make the request
-		$responseBody = curl_exec($this->_curl);
-
-		// get info from the transfer
-		$statusCode = curl_getinfo($this->_curl, CURLINFO_HTTP_CODE);
-		$contentType = curl_getinfo($this->_curl, CURLINFO_CONTENT_TYPE);
-
-		return new Apache_Solr_HttpTransport_Response($statusCode, $contentType, $responseBody);
-	}
-
-	public function performHeadRequest($url, $timeout = false)
-	{
-		// check the timeout value
-		if ($timeout === false || $timeout <= 0.0)
-		{
-			// use the default timeout
-			$timeout = $this->getDefaultTimeout();
-		}
-
-		// set curl HEAD options
-		curl_setopt_array($this->_curl, array(
-			// this both sets the method to HEAD and says not to return a body
-			CURLOPT_NOBODY => true,
-
-			// set the URL
-			CURLOPT_URL => $url,
-
-			// set the timeout
-			CURLOPT_TIMEOUT => $timeout
-		));
-
-		// make the request
-		$responseBody = curl_exec($this->_curl);
-
-		// get info from the transfer
-		$statusCode = curl_getinfo($this->_curl, CURLINFO_HTTP_CODE);
-		$contentType = curl_getinfo($this->_curl, CURLINFO_CONTENT_TYPE);
-
-		return new Apache_Solr_HttpTransport_Response($statusCode, $contentType, $responseBody);
-	}
-
-	public function performPostRequest($url, $postData, $contentType, $timeout = false)
-	{
-		// check the timeout value
-		if ($timeout === false || $timeout <= 0.0)
-		{
-			// use the default timeout
-			$timeout = $this->getDefaultTimeout();
-		}
-
-		// set curl POST options
-		curl_setopt_array($this->_curl, array(
-			// make sure we're returning the body
-			CURLOPT_NOBODY => false,
-
-			// make sure we're POST
-			CURLOPT_POST => true,
-
-			// set the URL
-			CURLOPT_URL => $url,
-
-			// set the post data
-			CURLOPT_POSTFIELDS => $postData,
-
-			// set the content type
-			CURLOPT_HTTPHEADER => array("Content-Type: {$contentType}"),
-
-			// set the timeout
-			CURLOPT_TIMEOUT => $timeout
-		));
-
-		// make the request
-		$responseBody = curl_exec($this->_curl);
-
-		// get info from the transfer
-		$statusCode = curl_getinfo($this->_curl, CURLINFO_HTTP_CODE);
-		$contentType = curl_getinfo($this->_curl, CURLINFO_CONTENT_TYPE);
-
-		return new Apache_Solr_HttpTransport_Response($statusCode, $contentType, $responseBody);
-	}
-}
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/CurlNoReuse.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/CurlNoReuse.php
deleted file mode 100644
index 14549588e..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/CurlNoReuse.php
+++ /dev/null
@@ -1,196 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- * @version $Id: $
- *
- * @package Apache
- * @subpackage Solr
- * @author Timo Schmidt <timo.schmidt@aoemedia.de>, Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-// Require Apache_Solr_HttpTransport_Abstract
-require_once(dirname(__FILE__) . '/Abstract.php');
-
-/**
- * An alternative Curl HTTP transport that opens and closes a curl session for
- * every request. This isn't the recommended way to use curl, but some version of
- * PHP have memory issues.
- */
-class Apache_Solr_HttpTransport_CurlNoReuse extends Apache_Solr_HttpTransport_Abstract
-{
-	/**
-	 * SVN Revision meta data for this class
-	 */
-	const SVN_REVISION = '$Revision:$';
-
-	/**
-	 * SVN ID meta data for this class
-	 */
-	const SVN_ID = '$Id:$';
-
-	public function performGetRequest($url, $timeout = false)
-	{
-		// check the timeout value
-		if ($timeout === false || $timeout <= 0.0)
-		{
-			// use the default timeout
-			$timeout = $this->getDefaultTimeout();
-		}
-		
-		$curl = curl_init();
-
-		// set curl GET options
-		curl_setopt_array($curl, array(
-			// return the response body from curl_exec
-			CURLOPT_RETURNTRANSFER => true,
-
-			// get the output as binary data
-			CURLOPT_BINARYTRANSFER => true,
-
-			// we do not need the headers in the output, we get everything we need from curl_getinfo
-			CURLOPT_HEADER => false,
-			
-			// set the URL
-			CURLOPT_URL => $url,
-
-			// set the timeout
-			CURLOPT_TIMEOUT => $timeout
-		));
-
-		// make the request
-		$responseBody = curl_exec($curl);
-
-		// get info from the transfer
-		$statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
-		$contentType = curl_getinfo($curl, CURLINFO_CONTENT_TYPE);
-		
-		// close our curl session - we're done with it
-		curl_close($curl);
-
-		return new Apache_Solr_HttpTransport_Response($statusCode, $contentType, $responseBody);
-	}
-
-	public function performHeadRequest($url, $timeout = false)
-	{
-		// check the timeout value
-		if ($timeout === false || $timeout <= 0.0)
-		{
-			// use the default timeout
-			$timeout = $this->getDefaultTimeout();
-		}
-		
-		$curl = curl_init();
-
-		// set curl HEAD options
-		curl_setopt_array($curl, array(
-			// return the response body from curl_exec
-			CURLOPT_RETURNTRANSFER => true,
-
-			// get the output as binary data
-			CURLOPT_BINARYTRANSFER => true,
-
-			// we do not need the headers in the output, we get everything we need from curl_getinfo
-			CURLOPT_HEADER => false,
-			
-			// this both sets the method to HEAD and says not to return a body
-			CURLOPT_NOBODY => true,
-
-			// set the URL
-			CURLOPT_URL => $url,
-
-			// set the timeout
-			CURLOPT_TIMEOUT => $timeout
-		));
-
-		// make the request
-		$responseBody = curl_exec($curl);
-
-		// get info from the transfer
-		$statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
-		$contentType = curl_getinfo($curl, CURLINFO_CONTENT_TYPE);
-		
-		// close our curl session - we're done with it
-		curl_close($curl);
-
-		return new Apache_Solr_HttpTransport_Response($statusCode, $contentType, $responseBody);
-	}
-
-	public function performPostRequest($url, $postData, $contentType, $timeout = false)
-	{
-		// check the timeout value
-		if ($timeout === false || $timeout <= 0.0)
-		{
-			// use the default timeout
-			$timeout = $this->getDefaultTimeout();
-		}
-
-		$curl = curl_init();
-		
-		// set curl POST options
-		curl_setopt_array($curl, array(
-			// return the response body from curl_exec
-			CURLOPT_RETURNTRANSFER => true,
-
-			// get the output as binary data
-			CURLOPT_BINARYTRANSFER => true,
-
-			// we do not need the headers in the output, we get everything we need from curl_getinfo
-			CURLOPT_HEADER => false,
-			
-			// make sure we're POST
-			CURLOPT_POST => true,
-
-			// set the URL
-			CURLOPT_URL => $url,
-
-			// set the post data
-			CURLOPT_POSTFIELDS => $postData,
-
-			// set the content type
-			CURLOPT_HTTPHEADER => array("Content-Type: {$contentType}"),
-
-			// set the timeout
-			CURLOPT_TIMEOUT => $timeout
-		));
-
-		// make the request
-		$responseBody = curl_exec($curl);
-
-		// get info from the transfer
-		$statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
-		$contentType = curl_getinfo($curl, CURLINFO_CONTENT_TYPE);
-
-		// close our curl session - we're done with it
-		curl_close($curl);
-
-		return new Apache_Solr_HttpTransport_Response($statusCode, $contentType, $responseBody);
-	}
-}
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/FileGetContents.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/FileGetContents.php
deleted file mode 100644
index 5e01775cd..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/FileGetContents.php
+++ /dev/null
@@ -1,216 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- * @version $Id: $
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-// Require Apache_Solr_HttpTransport_Abstract
-require_once(dirname(__FILE__) . '/Abstract.php');
-
-/**
- * HTTP Transport implemenation that uses the builtin http URL wrappers and file_get_contents
- */
-class Apache_Solr_HttpTransport_FileGetContents extends Apache_Solr_HttpTransport_Abstract
-{
-	/**
-	 * SVN Revision meta data for this class
-	 */
-	const SVN_REVISION = '$Revision:  $';
-
-	/**
-	 * SVN ID meta data for this class
-	 */
-	const SVN_ID = '$Id:  $';
-		
-	/**
-	 * Reusable stream context resources for GET and POST operations
-	 *
-	 * @var resource
-	 */
-	private $_getContext, $_headContext, $_postContext;
-	
-	/**
-	 * Initializes our reuseable get and post stream contexts
-	 */
-	public function __construct()
-	{
-		$this->_getContext = stream_context_create();
-		$this->_headContext = stream_context_create();
-		$this->_postContext = stream_context_create();
-	}
-
-	public function performGetRequest($url, $timeout = false)
-	{
-		// set the timeout if specified
-		if ($timeout !== FALSE && $timeout > 0.0)
-		{
-			// timeouts with file_get_contents seem to need
-			// to be halved to work as expected
-			$timeout = (float) $timeout / 2;
-
-			stream_context_set_option($this->_getContext, 'http', 'timeout', $timeout);
-		}
-		else
-		{
-			// use the default timeout pulled from default_socket_timeout otherwise
-			stream_context_set_option($this->_getContext, 'http', 'timeout', $this->getDefaultTimeout());
-		}
-
-		// $http_response_headers will be updated by the call to file_get_contents later
-		// see http://us.php.net/manual/en/wrappers.http.php for documentation
-		// Unfortunately, it will still create a notice in analyzers if we don't set it here
-		$http_response_header = null;
-		$responseBody = @file_get_contents($url, false, $this->_getContext);
-		
-		return $this->_getResponseFromParts($responseBody, $http_response_header);
-	}
-
-	public function performHeadRequest($url, $timeout = false)
-	{
-		stream_context_set_option($this->_headContext, array(
-				'http' => array(
-					// set HTTP method
-					'method' => 'HEAD',
-
-					// default timeout
-					'timeout' => $this->getDefaultTimeout()
-				)
-			)
-		);
-
-		// set the timeout if specified
-		if ($timeout !== FALSE && $timeout > 0.0)
-		{
-			// timeouts with file_get_contents seem to need
-			// to be halved to work as expected
-			$timeout = (float) $timeout / 2;
-
-			stream_context_set_option($this->_headContext, 'http', 'timeout', $timeout);
-		}
-		
-		// $http_response_headers will be updated by the call to file_get_contents later
-		// see http://us.php.net/manual/en/wrappers.http.php for documentation
-		// Unfortunately, it will still create a notice in analyzers if we don't set it here
-		$http_response_header = null;
-		$responseBody = @file_get_contents($url, false, $this->_headContext);
-
-		return $this->_getResponseFromParts($responseBody, $http_response_header);
-	}
-	
-	public function performPostRequest($url, $rawPost, $contentType, $timeout = false)
-	{
-		stream_context_set_option($this->_postContext, array(
-				'http' => array(
-					// set HTTP method
-					'method' => 'POST',
-
-					// Add our posted content type
-					'header' => "Content-Type: $contentType",
-
-					// the posted content
-					'content' => $rawPost,
-
-					// default timeout
-					'timeout' => $this->getDefaultTimeout()
-				)
-			)
-		);
-
-		// set the timeout if specified
-		if ($timeout !== FALSE && $timeout > 0.0)
-		{
-			// timeouts with file_get_contents seem to need
-			// to be halved to work as expected
-			$timeout = (float) $timeout / 2;
-
-			stream_context_set_option($this->_postContext, 'http', 'timeout', $timeout);
-		}
-
-		// $http_response_header will be updated by the call to file_get_contents later
-		// see http://us.php.net/manual/en/wrappers.http.php for documentation
-		// Unfortunately, it will still create a notice in analyzers if we don't set it here
-		$http_response_header = null;
-		$responseBody = @file_get_contents($url, false, $this->_postContext);
-		
-		// reset content of post context to reclaim memory
-		stream_context_set_option($this->_postContext, 'http', 'content', '');
-		
-		return $this->_getResponseFromParts($responseBody, $http_response_header);
-	}
-	
-	private function _getResponseFromParts($rawResponse, $httpHeaders)
-	{
-		//Assume 0, false as defaults
-		$status = 0;
-		$contentType = false;
-
-		//iterate through headers for real status, type, and encoding
-		if (is_array($httpHeaders) && count($httpHeaders) > 0)
-		{
-			//look at the first headers for the HTTP status code
-			//and message (errors are usually returned this way)
-			//
-			//HTTP 100 Continue response can also be returned before
-			//the REAL status header, so we need look until we find
-			//the last header starting with HTTP
-			//
-			//the spec: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.1
-			//
-			//Thanks to Daniel Andersson for pointing out this oversight
-			while (isset($httpHeaders[0]) && substr($httpHeaders[0], 0, 4) == 'HTTP')
-			{
-				// we can do a intval on status line without the "HTTP/1.X " to get the code
-				$status = intval(substr($httpHeaders[0], 9));
-
-				// remove this from the headers so we can check for more
-				array_shift($httpHeaders);
-			}
-
-			//Look for the Content-Type response header and determine type
-			//and encoding from it (if possible - such as 'Content-Type: text/plain; charset=UTF-8')
-			foreach ($httpHeaders as $header)
-			{
-				// look for the header that starts appropriately
-				if (strncasecmp($header, 'Content-Type:', 13) == 0)
-				{
-					$contentType = substr($header, 13);
-					break;
-				}
-			}
-		}
-		
-		return new Apache_Solr_HttpTransport_Response($status, $contentType, $rawResponse);
-	}
-}
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/Interface.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/Interface.php
deleted file mode 100644
index 090fc27ab..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/Interface.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- * @version $Id: $
- *
- * @package Apache
- * @subpackage Solr
- * @author Timo Schmidt <timo.schmidt@aoemedia.de>, Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-// require Apache_Solr_HttpTransport_Response
-require_once(dirname(__FILE__) . '/Response.php');
-
-/**
- * Interface that all Transport (HTTP Requester) implementations must implement. These
- * Implementations can then be plugged into the Service instance in order to user their
- * the desired method for making HTTP requests
- */
-interface Apache_Solr_HttpTransport_Interface
-{
-	/**
-	 * Get the current default timeout for all HTTP requests
-	 *
-	 * @return float
-	 */
-	public function getDefaultTimeout();
-	
-	/**
-	 * Set the current default timeout for all HTTP requests
-	 *
-	 * @param float $timeout
-	 */
-	public function setDefaultTimeout($timeout);
-		
-	/**
-	 * Perform a GET HTTP operation with an optional timeout and return the response
-	 * contents, use getLastResponseHeaders to retrieve HTTP headers
-	 *
-	 * @param string $url
-	 * @param float $timeout
-	 * @return Apache_Solr_HttpTransport_Response HTTP response
-	 */
-	public function performGetRequest($url, $timeout = false);
-	
-	/**
-	 * Perform a HEAD HTTP operation with an optional timeout and return the response
-	 * headers - NOTE: head requests have no response body
-	 *
-	 * @param string $url
-	 * @param float $timeout
-	 * @return Apache_Solr_HttpTransport_Response HTTP response
-	 */
-	public function performHeadRequest($url, $timeout = false);
-	
-	/**
-	 * Perform a POST HTTP operation with an optional timeout and return the response
-	 * contents, use getLastResponseHeaders to retrieve HTTP headers
-	 *
-	 * @param string $url
-	 * @param string $rawPost
-	 * @param string $contentType
-	 * @param float $timeout
-	 * @return Apache_Solr_HttpTransport_Response HTTP response
-	 */
-	public function performPostRequest($url, $rawPost, $contentType, $timeout = false);
-}
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/Response.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/Response.php
deleted file mode 100644
index 3f113aee8..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransport/Response.php
+++ /dev/null
@@ -1,255 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- * @version $Id: $
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-/**
- * Represents the required pieces of an HTTP response provided by HTTP transport
- * implementations and then consumed by the Apache_Solr_Response class which provides
- * decoding
- */
-class Apache_Solr_HttpTransport_Response
-{
-	/**
-	 * Status Messages indexed by Status Code
-	 * Obtained from: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
-	 *
-	 * @var array
-	 */
-	static private $_defaultStatusMessages = array(
-		// Specific to PHP Solr Client
-		0 => "Communication Error",
-		
-		// Informational 1XX
-		100 => "Continue",
-		101 => "Switching Protocols",
-		
-		// Successful 2XX
-		200 => "OK",
-		201 => "Created",
-		202 => "Accepted",
-		203 => "Non-Authoritative Information",
-		204 => "No Content",
-		205 => "Reset Content",
-		206 => "Partial Content",
-		
-		// Redirection 3XX
-		300 => "Multiple Choices",
-		301 => "Moved Permanently",
-		302 => "Found",
-		303 => "See Other",
-		304 => "Not Modified",
-		305 => "Use Proxy",
-		307 => "Temporary Redirect",
-		
-		// Client Error 4XX
-		400 => "Bad Request",
-		401 => "Unauthorized",
-		402 => "Payment Required",
-		403 => "Forbidden",
-		404 => "Not Found",
-		405 => "Method Not Allowed",
-		406 => "Not Acceptable",
-		407 => "Proxy Authentication Required",
-		408 => "Request Timeout",
-		409 => "Conflict",
-		410 => "Gone",
-		411 => "Length Required",
-		412 => "Precondition Failed",
-		413 => "Request Entity Too Large",
-		414 => "Request-URI Too Long",
-		415 => "Unsupported Media Type",
-		416 => "Request Range Not Satisfiable",
-		417 => "Expectation Failed",
-		
-		// Server Error 5XX
-		500 => "Internal Server Error",
-		501 => "Not Implemented",
-		502 => "Bad Gateway",
-		503 => "Service Unavailable",
-		504 => "Gateway Timeout",
-		505 => "HTTP Version Not Supported"
-	);
-	
-	/**
-	 * Get the HTTP status message based on status code
-	 *
-	 * @return string
-	 */
-	public static function getDefaultStatusMessage($statusCode)
-	{
-		$statusCode = (int) $statusCode;
-		
-		if (isset(self::$_defaultStatusMessages[$statusCode]))
-		{
-			return self::$_defaultStatusMessages[$statusCode];
-		}
-		
-		return "Unknown Status";
-	}
-	
-	/**
-	 * The response's HTTP status code
-	 *
-	 * @var integer
-	 */
-	private $_statusCode;
-	
-	/**
-	 * The response's HTTP status message
-	 *
-	 * @var string
-	 */
-	private $_statusMessage;
-	
-	/**
-	 * The response's mime type
-	 *
-	 * @var string
-	 */
-	private $_mimeType;
-	
-	/**
-	 * The response's character encoding
-	 *
-	 * @var string
-	 */
-	private $_encoding;
-	
-	/**
-	 * The response's data
-	 *
-	 * @var string
-	 */
-	private $_responseBody;
-	
-	/**
-	 * Construct a HTTP transport response
-	 * 
-	 * @param integer $statusCode The HTTP status code
-	 * @param string $contentType The VALUE of the Content-Type HTTP header
-	 * @param string $responseBody The body of the HTTP response
-	 */
-	public function __construct($statusCode, $contentType, $responseBody)
-	{
-		// set the status code, make sure its an integer
-		$this->_statusCode = (int) $statusCode;
-		
-		// lookup up status message based on code
-		$this->_statusMessage = self::getDefaultStatusMessage($this->_statusCode);
-		
-		// set the response body, it should always be a string
-		$this->_responseBody = (string) $responseBody;
-		
-		// parse the content type header value for mimetype and encoding
-		// first set default values that will remain if we can't find
-		// what we're looking for in the content type
-		$this->_mimeType = "text/plain";
-		$this->_encoding = "UTF-8";
-		
-		if ($contentType)
-		{
-			// now break apart the header to see if there's character encoding
-			$contentTypeParts = explode(';', $contentType, 2);
-
-			if (isset($contentTypeParts[0]))
-			{
-				$this->_mimeType = trim($contentTypeParts[0]);
-			}
-
-			if (isset($contentTypeParts[1]))
-			{
-				// we have a second part, split it further
-				$contentTypeParts = explode('=', $contentTypeParts[1]);
-
-				if (isset($contentTypeParts[1]))
-				{
-					$this->_encoding = trim($contentTypeParts[1]);
-				}
-			}
-		}
-	}
-	
-	/**
-	 * Get the status code of the response
-	 *
-	 * @return integer
-	 */
-	public function getStatusCode()
-	{
-		return $this->_statusCode;
-	}
-	
-	/**
-	 * Get the status message of the response
-	 *
-	 * @return string
-	 */
-	public function getStatusMessage()
-	{
-		return $this->_statusMessage;
-	}
-	
-	/**
-	 * Get the mimetype of the response body
-	 *
-	 * @return string
-	 */
-	public function getMimeType()
-	{
-		return $this->_mimeType;
-	}
-	
-	/**
-	 * Get the charset encoding of the response body.
-	 *
-	 * @return string
-	 */
-	public function getEncoding()
-	{
-		return $this->_encoding;
-	}
-	
-	/**
-	 * Get the raw response body
-	 *
-	 * @return string
-	 */
-	public function getBody()
-	{
-		return $this->_responseBody;
-	}
-}
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransportException.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransportException.php
deleted file mode 100644
index 83c0001b1..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/HttpTransportException.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- * @version $Id: HttpTransportException.php 54 2011-02-04 16:29:18Z donovan.jimenez $
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-class Apache_Solr_HttpTransportException extends Apache_Solr_Exception
-{
-	/**
-	 * SVN Revision meta data for this class
-	 */
-	const SVN_REVISION = '$Revision: 54 $';
-
-	/**
-	 * SVN ID meta data for this class
-	 */
-	const SVN_ID = '$Id: HttpTransportException.php 54 2011-02-04 16:29:18Z donovan.jimenez $';
-
-	/**
-	 * Response for which exception was generated
-	 *
-	 * @var Apache_Solr_Response
-	 */
-	private $_response;
-
-	/**
-	 * HttpTransportException Constructor
-	 *
-	 * @param Apache_Solr_Response $response
-	 */
-	public function __construct(Apache_Solr_Response $response)
-	{
-		parent::__construct("'{$response->getHttpStatus()}' Status: {$response->getHttpStatusMessage()}", $response->getHttpStatus());
-
-		$this->_response = $response;
-	}
-
-	/**
-	 * Get the response for which this exception was generated
-	 *
-	 * @return Apache_Solr_Response
-	 */
-	public function getResponse()
-	{
-		return $this->_response;
-	}
-}
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/InvalidArgumentException.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/InvalidArgumentException.php
deleted file mode 100644
index 273f3d064..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/InvalidArgumentException.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- * @version $Id: InvalidArgumentException.php 54 2011-02-04 16:29:18Z donovan.jimenez $
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-class Apache_Solr_InvalidArgumentException extends Apache_Solr_Exception
-{
-	/**
-	 * SVN Revision meta data for this class
-	 */
-	const SVN_REVISION = '$Revision: 54 $';
-
-	/**
-	 * SVN ID meta data for this class
-	 */
-	const SVN_ID = '$Id: InvalidArgumentException.php 54 2011-02-04 16:29:18Z donovan.jimenez $';
-}
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/NoServiceAvailableException.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/NoServiceAvailableException.php
deleted file mode 100644
index eead73206..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/NoServiceAvailableException.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- * @version $Id: NoServiceAvailableException.php 54 2011-02-04 16:29:18Z donovan.jimenez $
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-class Apache_Solr_NoServiceAvailableException extends Apache_Solr_Exception
-{
-	/**
-	 * SVN Revision meta data for this class
-	 */
-	const SVN_REVISION = '$Revision: 54 $';
-
-	/**
-	 * SVN ID meta data for this class
-	 */
-	const SVN_ID = '$Id: NoServiceAvailableException.php 54 2011-02-04 16:29:18Z donovan.jimenez $';
-}
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/ParserException.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/ParserException.php
deleted file mode 100644
index 29283dbcd..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/ParserException.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- * @version $Id: ParserException.php 54 2011-02-04 16:29:18Z donovan.jimenez $
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-class Apache_Solr_ParserException extends Apache_Solr_Exception
-{
-	/**
-	 * SVN Revision meta data for this class
-	 */
-	const SVN_REVISION = '$Revision: 54 $';
-
-	/**
-	 * SVN ID meta data for this class
-	 */
-	const SVN_ID = '$Id: ParserException.php 54 2011-02-04 16:29:18Z donovan.jimenez $';
-}
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/Response.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/Response.php
deleted file mode 100644
index 1a35e5688..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/Response.php
+++ /dev/null
@@ -1,247 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- * @version $Id: Response.php 54 2011-02-04 16:29:18Z donovan.jimenez $
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-require_once(dirname(__FILE__) . '/ParserException.php');
-
-/**
- * Represents a Solr response.  Parses the raw response into a set of stdClass objects
- * and associative arrays for easy access.
- *
- * Currently requires json_decode which is bundled with PHP >= 5.2.0, Alternatively can be
- * installed with PECL.  Zend Framework also includes a purely PHP solution.
- */
-class Apache_Solr_Response
-{
-	/**
-	 * SVN Revision meta data for this class
-	 */
-	const SVN_REVISION = '$Revision: 54 $';
-
-	/**
-	 * SVN ID meta data for this class
-	 */
-	const SVN_ID = '$Id: Response.php 54 2011-02-04 16:29:18Z donovan.jimenez $';
-
-	/**
-	 * Holds the raw response used in construction
-	 *
-	 * @var Apache_Solr_HttpTransport_Response HTTP response
-	 */
-	protected $_response;
-
-	/**
-	 * Whether the raw response has been parsed
-	 *
-	 * @var boolean
-	 */
-	protected $_isParsed = false;
-
-	/**
-	 * Parsed representation of the data
-	 *
-	 * @var mixed
-	 */
-	protected $_parsedData;
-
-	/**
-	 * Data parsing flags.  Determines what extra processing should be done
-	 * after the data is initially converted to a data structure.
-	 *
-	 * @var boolean
-	 */
-	protected $_createDocuments = true,
-			$_collapseSingleValueArrays = true;
-
-	/**
-	 * Constructor. Takes the raw HTTP response body and the exploded HTTP headers
-	 *
-	 * @return Apache_Solr_HttpTransport_Response HTTP response
-	 * @param boolean $createDocuments Whether to convert the documents json_decoded as stdClass instances to Apache_Solr_Document instances
-	 * @param boolean $collapseSingleValueArrays Whether to make multivalued fields appear as single values
-	 */
-	public function __construct(Apache_Solr_HttpTransport_Response $response, $createDocuments = true, $collapseSingleValueArrays = true)
-	{
-		$this->_response = $response;
-		$this->_createDocuments = (bool) $createDocuments;
-		$this->_collapseSingleValueArrays = (bool) $collapseSingleValueArrays;
-	}
-
-	/**
-	 * Get the HTTP status code
-	 *
-	 * @return integer
-	 */
-	public function getHttpStatus()
-	{
-		return $this->_response->getStatusCode();
-	}
-
-	/**
-	 * Get the HTTP status message of the response
-	 *
-	 * @return string
-	 */
-	public function getHttpStatusMessage()
-	{
-		return $this->_response->getStatusMessage();
-	}
-
-	/**
-	 * Get content type of this Solr response
-	 *
-	 * @return string
-	 */
-	public function getType()
-	{
-		return $this->_response->getMimeType();
-	}
-
-	/**
-	 * Get character encoding of this response. Should usually be utf-8, but just in case
-	 *
-	 * @return string
-	 */
-	public function getEncoding()
-	{
-		return $this->_response->getEncoding();
-	}
-
-	/**
-	 * Get the raw response as it was given to this object
-	 *
-	 * @return string
-	 */
-	public function getRawResponse()
-	{
-		return $this->_response->getBody();
-	}
-
-	/**
-	 * Magic get to expose the parsed data and to lazily load it
-	 *
-	 * @param string $key
-	 * @return mixed
-	 */
-	public function __get($key)
-	{
-		if (!$this->_isParsed)
-		{
-			$this->_parseData();
-			$this->_isParsed = true;
-		}
-
-		if (isset($this->_parsedData->$key))
-		{
-			return $this->_parsedData->$key;
-		}
-
-		return null;
-	}
-
-	/**
-	 * Magic function for isset function on parsed data
-	 *
-	 * @param string $key
-	 * @return boolean
-	 */
-	public function __isset($key)
-	{
-		if (!$this->_isParsed)
-		{
-			$this->_parseData();
-			$this->_isParsed = true;
-		}
-
-		return isset($this->_parsedData->$key);
-	}
-
-	/**
-	 * Parse the raw response into the parsed_data array for access
-	 *
-	 * @throws Apache_Solr_ParserException If the data could not be parsed
-	 */
-	protected function _parseData()
-	{
-		//An alternative would be to use Zend_Json::decode(...)
-		$data = json_decode($this->_response->getBody());
-
-		// check that we receive a valid JSON response - we should never receive a null
-		if ($data === null)
-		{
-			throw new Apache_Solr_ParserException('Solr response does not appear to be valid JSON, please examine the raw response with getRawResponse() method');
-		}
-
-		//if we're configured to collapse single valued arrays or to convert them to Apache_Solr_Document objects
-		//and we have response documents, then try to collapse the values and / or convert them now
-		if (($this->_createDocuments || $this->_collapseSingleValueArrays) && isset($data->response) && is_array($data->response->docs))
-		{
-			$documents = array();
-
-			foreach ($data->response->docs as $originalDocument)
-			{
-				if ($this->_createDocuments)
-				{
-					$document = new Apache_Solr_Document();
-				}
-				else
-				{
-					$document = $originalDocument;
-				}
-
-				foreach ($originalDocument as $key => $value)
-				{
-					//If a result is an array with only a single
-					//value then its nice to be able to access
-					//it as if it were always a single value
-					if ($this->_collapseSingleValueArrays && is_array($value) && count($value) <= 1)
-					{
-						$value = array_shift($value);
-					}
-
-					$document->$key = $value;
-				}
-
-				$documents[] = $document;
-			}
-
-			$data->response->docs = $documents;
-		}
-
-		$this->_parsedData = $data;
-	}
-}
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/Service.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/Service.php
deleted file mode 100644
index e7650c331..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/Service.php
+++ /dev/null
@@ -1,1181 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- * @version $Id: Service.php 59 2011-02-08 20:38:59Z donovan.jimenez $
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-// See Issue #1 (http://code.google.com/p/solr-php-client/issues/detail?id=1)
-// Doesn't follow typical include path conventions, but is more convenient for users
-require_once(dirname(__FILE__) . '/Exception.php');
-require_once(dirname(__FILE__) . '/HttpTransportException.php');
-require_once(dirname(__FILE__) . '/InvalidArgumentException.php');
-
-require_once(dirname(__FILE__) . '/Document.php');
-require_once(dirname(__FILE__) . '/Response.php');
-
-require_once(dirname(__FILE__) . '/HttpTransport/Interface.php');
-
-/**
- * Starting point for the Solr API. Represents a Solr server resource and has
- * methods for pinging, adding, deleting, committing, optimizing and searching.
- *
- * Example Usage:
- * <code>
- * ...
- * $solr = new Apache_Solr_Service(); //or explicitly new Apache_Solr_Service('localhost', 8180, '/solr')
- *
- * if ($solr->ping())
- * {
- * 		$solr->deleteByQuery('*:*'); //deletes ALL documents - be careful :)
- *
- * 		$document = new Apache_Solr_Document();
- * 		$document->id = uniqid(); //or something else suitably unique
- *
- * 		$document->title = 'Some Title';
- * 		$document->content = 'Some content for this wonderful document. Blah blah blah.';
- *
- * 		$solr->addDocument($document); 	//if you're going to be adding documents in bulk using addDocuments
- * 										//with an array of documents is faster
- *
- * 		$solr->commit(); //commit to see the deletes and the document
- * 		$solr->optimize(); //merges multiple segments into one
- *
- * 		//and the one we all care about, search!
- * 		//any other common or custom parameters to the request handler can go in the
- * 		//optional 4th array argument.
- * 		$solr->search('content:blah', 0, 10, array('sort' => 'timestamp desc'));
- * }
- * ...
- * </code>
- *
- * @todo Investigate using other HTTP clients other than file_get_contents built-in handler. Could provide performance
- * improvements when dealing with multiple requests by using HTTP's keep alive functionality
- */
-class Apache_Solr_Service
-{
-	/**
-	 * SVN Revision meta data for this class
-	 */
-	const SVN_REVISION = '$Revision: 59 $';
-
-	/**
-	 * SVN ID meta data for this class
-	 */
-	const SVN_ID = '$Id: Service.php 59 2011-02-08 20:38:59Z donovan.jimenez $';
-
-	/**
-	 * Response writer we'll request - JSON. See http://code.google.com/p/solr-php-client/issues/detail?id=6#c1 for reasoning
-	 */
-	const SOLR_WRITER = 'json';
-
-	/**
-	 * NamedList Treatment constants
-	 */
-	const NAMED_LIST_FLAT = 'flat';
-	const NAMED_LIST_MAP = 'map';
-
-	/**
-	 * Search HTTP Methods
-	 */
-	const METHOD_GET = 'GET';
-	const METHOD_POST = 'POST';
-
-	/**
-	 * Servlet mappings
-	 */
-	const PING_SERVLET = 'admin/ping';
-	const UPDATE_SERVLET = 'update';
-	const SEARCH_SERVLET = 'select';
-	const THREADS_SERVLET = 'admin/threads';
-	const EXTRACT_SERVLET = 'update/extract';
-
-	/**
-	 * Server identification strings
-	 *
-	 * @var string
-	 */
-	protected $_host, $_port, $_path;
-
-	/**
-	 * Whether {@link Apache_Solr_Response} objects should create {@link Apache_Solr_Document}s in
-	 * the returned parsed data
-	 *
-	 * @var boolean
-	 */
-	protected $_createDocuments = true;
-
-	/**
-	 * Whether {@link Apache_Solr_Response} objects should have multivalue fields with only a single value
-	 * collapsed to appear as a single value would.
-	 *
-	 * @var boolean
-	 */
-	protected $_collapseSingleValueArrays = true;
-
-	/**
-	 * How NamedLists should be formatted in the output.  This specifically effects facet counts. Valid values
-	 * are {@link Apache_Solr_Service::NAMED_LIST_MAP} (default) or {@link Apache_Solr_Service::NAMED_LIST_FLAT}.
-	 *
-	 * @var string
-	 */
-	protected $_namedListTreatment = self::NAMED_LIST_MAP;
-
-	/**
-	 * Query delimiters. Someone might want to be able to change
-	 * these (to use &amp; instead of & for example), so I've provided them.
-	 *
-	 * @var string
-	 */
-	protected $_queryDelimiter = '?', $_queryStringDelimiter = '&', $_queryBracketsEscaped = true;
-
-	/**
-	 * Constructed servlet full path URLs
-	 *
-	 * @var string
-	 */
-	protected $_pingUrl, $_updateUrl, $_searchUrl, $_threadsUrl;
-
-	/**
-	 * Keep track of whether our URLs have been constructed
-	 *
-	 * @var boolean
-	 */
-	protected $_urlsInited = false;
-
-	/**
-	 * HTTP Transport implementation (pluggable)
-	 *
-	 * @var Apache_Solr_HttpTransport_Interface
-	 */
-	protected $_httpTransport = false;
-
-	/**
-	 * Escape a value for special query characters such as ':', '(', ')', '*', '?', etc.
-	 *
-	 * NOTE: inside a phrase fewer characters need escaped, use {@link Apache_Solr_Service::escapePhrase()} instead
-	 *
-	 * @param string $value
-	 * @return string
-	 */
-	static public function escape($value)
-	{
-		//list taken from http://lucene.apache.org/java/docs/queryparsersyntax.html#Escaping%20Special%20Characters
-		$pattern = '/(\+|-|&&|\|\||!|\(|\)|\{|}|\[|]|\^|"|~|\*|\?|:|\\\)/';
-		$replace = '\\\$1';
-
-		return preg_replace($pattern, $replace, $value);
-	}
-
-	/**
-	 * Escape a value meant to be contained in a phrase for special query characters
-	 *
-	 * @param string $value
-	 * @return string
-	 */
-	static public function escapePhrase($value)
-	{
-		$pattern = '/("|\\\)/';
-		$replace = '\\\$1';
-
-		return preg_replace($pattern, $replace, $value);
-	}
-
-	/**
-	 * Convenience function for creating phrase syntax from a value
-	 *
-	 * @param string $value
-	 * @return string
-	 */
-	static public function phrase($value)
-	{
-		return '"' . self::escapePhrase($value) . '"';
-	}
-
-	/**
-	 * Constructor. All parameters are optional and will take on default values
-	 * if not specified.
-	 *
-	 * @param string $host
-	 * @param string $port
-	 * @param string $path
-	 * @param Apache_Solr_HttpTransport_Interface $httpTransport
-	 */
-	public function __construct($host = 'localhost', $port = 8180, $path = '/solr/', $httpTransport = false)
-	{
-		$this->setHost($host);
-		$this->setPort($port);
-		$this->setPath($path);
-
-		$this->_initUrls();
-
-		if ($httpTransport)
-		{
-			$this->setHttpTransport($httpTransport);
-		}
-
-		// check that our php version is >= 5.1.3 so we can correct for http_build_query behavior later
-		$this->_queryBracketsEscaped = version_compare(phpversion(), '5.1.3', '>=');
-	}
-
-	/**
-	 * Return a valid http URL given this server's host, port and path and a provided servlet name
-	 *
-	 * @param string $servlet
-	 * @return string
-	 */
-	protected function _constructUrl($servlet, $params = array())
-	{
-		if (count($params))
-		{
-			//escape all parameters appropriately for inclusion in the query string
-			$escapedParams = array();
-
-			foreach ($params as $key => $value)
-			{
-				$escapedParams[] = urlencode($key) . '=' . urlencode($value);
-			}
-
-			$queryString = $this->_queryDelimiter . implode($this->_queryStringDelimiter, $escapedParams);
-		}
-		else
-		{
-			$queryString = '';
-		}
-
-		return 'http://' . $this->_host . ':' . $this->_port . $this->_path . $servlet . $queryString;
-	}
-
-	/**
-	 * Construct the Full URLs for the three servlets we reference
-	 */
-	protected function _initUrls()
-	{
-		//Initialize our full servlet URLs now that we have server information
-		$this->_extractUrl = $this->_constructUrl(self::EXTRACT_SERVLET);
-		$this->_pingUrl = $this->_constructUrl(self::PING_SERVLET);
-		$this->_searchUrl = $this->_constructUrl(self::SEARCH_SERVLET);
-		$this->_threadsUrl = $this->_constructUrl(self::THREADS_SERVLET, array('wt' => self::SOLR_WRITER ));
-		$this->_updateUrl = $this->_constructUrl(self::UPDATE_SERVLET, array('wt' => self::SOLR_WRITER ));
-
-		$this->_urlsInited = true;
-	}
-
-	protected function _generateQueryString($params)
-	{
-		// use http_build_query to encode our arguments because its faster
-		// than urlencoding all the parts ourselves in a loop
-		//
-		// because http_build_query treats arrays differently than we want to, correct the query
-		// string by changing foo[#]=bar (# being an actual number) parameter strings to just
-		// multiple foo=bar strings. This regex should always work since '=' will be urlencoded
-		// anywhere else the regex isn't expecting it
-		//
-		// NOTE: before php 5.1.3 brackets were not url encoded by http_build query - we've checked
-		// the php version in the constructor and put the results in the instance variable. Also, before
-		// 5.1.2 the arg_separator parameter was not available, so don't use it
-		if ($this->_queryBracketsEscaped)
-		{
-			$queryString = http_build_query($params, null, $this->_queryStringDelimiter);
-			return preg_replace('/%5B(?:[0-9]|[1-9][0-9]+)%5D=/', '=', $queryString);
-		}
-		else
-		{
-			$queryString = http_build_query($params);
-			return preg_replace('/\\[(?:[0-9]|[1-9][0-9]+)\\]=/', '=', $queryString);
-		}
-	}
-
-	/**
-	 * Central method for making a get operation against this Solr Server
-	 *
-	 * @param string $url
-	 * @param float $timeout Read timeout in seconds
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If a non 200 response status is returned
-	 */
-	protected function _sendRawGet($url, $timeout = FALSE)
-	{
-		$httpTransport = $this->getHttpTransport();
-
-		$httpResponse = $httpTransport->performGetRequest($url, $timeout);
-		$solrResponse = new Apache_Solr_Response($httpResponse, $this->_createDocuments, $this->_collapseSingleValueArrays);
-
-		if ($solrResponse->getHttpStatus() != 200)
-		{
-			throw new Apache_Solr_HttpTransportException($solrResponse);
-		}
-
-		return $solrResponse;
-	}
-
-	/**
-	 * Central method for making a post operation against this Solr Server
-	 *
-	 * @param string $url
-	 * @param string $rawPost
-	 * @param float $timeout Read timeout in seconds
-	 * @param string $contentType
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If a non 200 response status is returned
-	 */
-	protected function _sendRawPost($url, $rawPost, $timeout = FALSE, $contentType = 'text/xml; charset=UTF-8')
-	{
-		$httpTransport = $this->getHttpTransport();
-
-		$httpResponse = $httpTransport->performPostRequest($url, $rawPost, $contentType, $timeout);
-		$solrResponse = new Apache_Solr_Response($httpResponse, $this->_createDocuments, $this->_collapseSingleValueArrays);
-
-		if ($solrResponse->getHttpStatus() != 200)
-		{
-			throw new Apache_Solr_HttpTransportException($solrResponse);
-		}
-
-		return $solrResponse;
-	}
-
-	/**
-	 * Returns the set host
-	 *
-	 * @return string
-	 */
-	public function getHost()
-	{
-		return $this->_host;
-	}
-
-	/**
-	 * Set the host used. If empty will fallback to constants
-	 *
-	 * @param string $host
-	 *
-	 * @throws Apache_Solr_InvalidArgumentException If the host parameter is empty
-	 */
-	public function setHost($host)
-	{
-		//Use the provided host or use the default
-		if (empty($host))
-		{
-			throw new Apache_Solr_InvalidArgumentException('Host parameter is empty');
-		}
-		else
-		{
-			$this->_host = $host;
-		}
-
-		if ($this->_urlsInited)
-		{
-			$this->_initUrls();
-		}
-	}
-
-	/**
-	 * Get the set port
-	 *
-	 * @return integer
-	 */
-	public function getPort()
-	{
-		return $this->_port;
-	}
-
-	/**
-	 * Set the port used. If empty will fallback to constants
-	 *
-	 * @param integer $port
-	 *
-	 * @throws Apache_Solr_InvalidArgumentException If the port parameter is empty
-	 */
-	public function setPort($port)
-	{
-		//Use the provided port or use the default
-		$port = (int) $port;
-
-		if ($port <= 0)
-		{
-			throw new Apache_Solr_InvalidArgumentException('Port is not a valid port number');
-		}
-		else
-		{
-			$this->_port = $port;
-		}
-
-		if ($this->_urlsInited)
-		{
-			$this->_initUrls();
-		}
-	}
-
-	/**
-	 * Get the set path.
-	 *
-	 * @return string
-	 */
-	public function getPath()
-	{
-		return $this->_path;
-	}
-
-	/**
-	 * Set the path used. If empty will fallback to constants
-	 *
-	 * @param string $path
-	 */
-	public function setPath($path)
-	{
-		$path = trim($path, '/');
-
-		$this->_path = '/' . $path . '/';
-
-		if ($this->_urlsInited)
-		{
-			$this->_initUrls();
-		}
-	}
-
-	/**
-	 * Get the current configured HTTP Transport
-	 *
-	 * @return HttpTransportInterface
-	 */
-	public function getHttpTransport()
-	{
-		// lazy load a default if one has not be set
-		if ($this->_httpTransport === false)
-		{
-			require_once(dirname(__FILE__) . '/HttpTransport/FileGetContents.php');
-
-			$this->_httpTransport = new Apache_Solr_HttpTransport_FileGetContents();
-		}
-
-		return $this->_httpTransport;
-	}
-
-	/**
-	 * Set the HTTP Transport implemenation that will be used for all HTTP requests
-	 *
-	 * @param Apache_Solr_HttpTransport_Interface
-	 */
-	public function setHttpTransport(Apache_Solr_HttpTransport_Interface $httpTransport)
-	{
-		$this->_httpTransport = $httpTransport;
-	}
-
-	/**
-	 * Set the create documents flag. This determines whether {@link Apache_Solr_Response} objects will
-	 * parse the response and create {@link Apache_Solr_Document} instances in place.
-	 *
-	 * @param boolean $createDocuments
-	 */
-	public function setCreateDocuments($createDocuments)
-	{
-		$this->_createDocuments = (bool) $createDocuments;
-	}
-
-	/**
-	 * Get the current state of teh create documents flag.
-	 *
-	 * @return boolean
-	 */
-	public function getCreateDocuments()
-	{
-		return $this->_createDocuments;
-	}
-
-	/**
-	 * Set the collapse single value arrays flag.
-	 *
-	 * @param boolean $collapseSingleValueArrays
-	 */
-	public function setCollapseSingleValueArrays($collapseSingleValueArrays)
-	{
-		$this->_collapseSingleValueArrays = (bool) $collapseSingleValueArrays;
-	}
-
-	/**
-	 * Get the current state of the collapse single value arrays flag.
-	 *
-	 * @return boolean
-	 */
-	public function getCollapseSingleValueArrays()
-	{
-		return $this->_collapseSingleValueArrays;
-	}
-
-	/**
-	 * Get the current default timeout setting (initially the default_socket_timeout ini setting)
-	 * in seconds
-	 *
-	 * @return float
-	 *
-	 * @deprecated Use the getDefaultTimeout method on the HTTP transport implementation
-	 */
-	public function getDefaultTimeout()
-	{
-		return $this->getHttpTransport()->getDefaultTimeout();
-	}
-
-	/**
-	 * Set the default timeout for all calls that aren't passed a specific timeout
-	 *
-	 * @param float $timeout Timeout value in seconds
-	 *
-	 * @deprecated Use the setDefaultTimeout method on the HTTP transport implementation
-	 */
-	public function setDefaultTimeout($timeout)
-	{
-		$this->getHttpTransport()->setDefaultTimeout($timeout);
-	}
-
-	/**
-	 * Set how NamedLists should be formatted in the response data. This mainly effects
-	 * the facet counts format.
-	 *
-	 * @param string $namedListTreatment
-	 * @throws Apache_Solr_InvalidArgumentException If invalid option is set
-	 */
-	public function setNamedListTreatment($namedListTreatment)
-	{
-		switch ((string) $namedListTreatment)
-		{
-			case Apache_Solr_Service::NAMED_LIST_FLAT:
-				$this->_namedListTreatment = Apache_Solr_Service::NAMED_LIST_FLAT;
-				break;
-
-			case Apache_Solr_Service::NAMED_LIST_MAP:
-				$this->_namedListTreatment = Apache_Solr_Service::NAMED_LIST_MAP;
-				break;
-
-			default:
-				throw new Apache_Solr_InvalidArgumentException('Not a valid named list treatement option');
-		}
-	}
-
-	/**
-	 * Get the current setting for named list treatment.
-	 *
-	 * @return string
-	 */
-	public function getNamedListTreatment()
-	{
-		return $this->_namedListTreatment;
-	}
-
-	/**
-	 * Set the string used to separate the path form the query string.
-	 * Defaulted to '?'
-	 *
-	 * @param string $queryDelimiter
-	 */
-	public function setQueryDelimiter($queryDelimiter)
-	{
-		$this->_queryDelimiter = $queryDelimiter;
-	}
-
-	/**
-	 * Set the string used to separate the parameters in thequery string
-	 * Defaulted to '&'
-	 *
-	 * @param string $queryStringDelimiter
-	 */
-	public function setQueryStringDelimiter($queryStringDelimiter)
-	{
-		$this->_queryStringDelimiter = $queryStringDelimiter;
-	}
-
-	/**
-	 * Call the /admin/ping servlet, can be used to quickly tell if a connection to the
-	 * server is able to be made.
-	 *
-	 * @param float $timeout maximum time to wait for ping in seconds, -1 for unlimited (default is 2)
-	 * @return float Actual time taken to ping the server, FALSE if timeout or HTTP error status occurs
-	 */
-	public function ping($timeout = 2)
-	{
-		$start = microtime(true);
-		
-		$httpTransport = $this->getHttpTransport();
-
-		$httpResponse = $httpTransport->performHeadRequest($this->_pingUrl, $timeout);
-		$solrResponse = new Apache_Solr_Response($httpResponse, $this->_createDocuments, $this->_collapseSingleValueArrays);
-
-		if ($solrResponse->getHttpStatus() == 200)
-		{
-			return microtime(true) - $start;
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	/**
-	 * Call the /admin/threads servlet and retrieve information about all threads in the
-	 * Solr servlet's thread group. Useful for diagnostics.
-	 *
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
-	 */
-	public function threads()
-	{
-		return $this->_sendRawGet($this->_threadsUrl);
-	}
-
-	/**
-	 * Raw Add Method. Takes a raw post body and sends it to the update service.  Post body
-	 * should be a complete and well formed "add" xml document.
-	 *
-	 * @param string $rawPost
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
-	 */
-	public function add($rawPost)
-	{
-		return $this->_sendRawPost($this->_updateUrl, $rawPost);
-	}
-
-	/**
-	 * Add a Solr Document to the index
-	 *
-	 * @param Apache_Solr_Document $document
-	 * @param boolean $allowDups
-	 * @param boolean $overwritePending
-	 * @param boolean $overwriteCommitted
-	 * @param integer $commitWithin The number of milliseconds that a document must be committed within, see @{link http://wiki.apache.org/solr/UpdateXmlMessages#The_Update_Schema} for details.  If left empty this property will not be set in the request.
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
-	 */
-	public function addDocument(Apache_Solr_Document $document, $allowDups = false, $overwritePending = true, $overwriteCommitted = true, $commitWithin = 0)
-	{
-		$dupValue = $allowDups ? 'true' : 'false';
-		$pendingValue = $overwritePending ? 'true' : 'false';
-		$committedValue = $overwriteCommitted ? 'true' : 'false';
-		
-		$commitWithin = (int) $commitWithin;
-		$commitWithinString = $commitWithin > 0 ? " commitWithin=\"{$commitWithin}\"" : '';
-		
-		$rawPost = "<add allowDups=\"{$dupValue}\" overwritePending=\"{$pendingValue}\" overwriteCommitted=\"{$committedValue}\"{$commitWithinString}>";
-		$rawPost .= $this->_documentToXmlFragment($document);
-		$rawPost .= '</add>';
-
-		return $this->add($rawPost);
-	}
-
-	/**
-	 * Add an array of Solr Documents to the index all at once
-	 *
-	 * @param array $documents Should be an array of Apache_Solr_Document instances
-	 * @param boolean $allowDups
-	 * @param boolean $overwritePending
-	 * @param boolean $overwriteCommitted
-	 * @param integer $commitWithin The number of milliseconds that a document must be committed within, see @{link http://wiki.apache.org/solr/UpdateXmlMessages#The_Update_Schema} for details.  If left empty this property will not be set in the request.
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
-	 */
-	public function addDocuments($documents, $allowDups = false, $overwritePending = true, $overwriteCommitted = true, $commitWithin = 0)
-	{
-		$dupValue = $allowDups ? 'true' : 'false';
-		$pendingValue = $overwritePending ? 'true' : 'false';
-		$committedValue = $overwriteCommitted ? 'true' : 'false';
-
-		$commitWithin = (int) $commitWithin;
-		$commitWithinString = $commitWithin > 0 ? " commitWithin=\"{$commitWithin}\"" : '';
-
-		$rawPost = "<add allowDups=\"{$dupValue}\" overwritePending=\"{$pendingValue}\" overwriteCommitted=\"{$committedValue}\"{$commitWithinString}>";
-
-		foreach ($documents as $document)
-		{
-			if ($document instanceof Apache_Solr_Document)
-			{
-				$rawPost .= $this->_documentToXmlFragment($document);
-			}
-		}
-
-		$rawPost .= '</add>';
-
-		return $this->add($rawPost);
-	}
-
-	/**
-	 * Create an XML fragment from a {@link Apache_Solr_Document} instance appropriate for use inside a Solr add call
-	 *
-	 * @return string
-	 */
-	protected function _documentToXmlFragment(Apache_Solr_Document $document)
-	{
-		$xml = '<doc';
-
-		if ($document->getBoost() !== false)
-		{
-			$xml .= ' boost="' . $document->getBoost() . '"';
-		}
-
-		$xml .= '>';
-
-		foreach ($document as $key => $value)
-		{
-			$key = htmlspecialchars($key, ENT_QUOTES, 'UTF-8');
-			$fieldBoost = $document->getFieldBoost($key);
-
-			if (is_array($value))
-			{
-				foreach ($value as $multivalue)
-				{
-					$xml .= '<field name="' . $key . '"';
-
-					if ($fieldBoost !== false)
-					{
-						$xml .= ' boost="' . $fieldBoost . '"';
-
-						// only set the boost for the first field in the set
-						$fieldBoost = false;
-					}
-					$multivalue = utf8_encode($multivalue);
-					$multivalue = htmlspecialchars($multivalue, ENT_NOQUOTES, 'UTF-8');
-
-					$xml .= '>' . $multivalue . '</field>';
-				}
-			}
-			else
-			{
-				$xml .= '<field name="' . $key . '"';
-
-				if ($fieldBoost !== false)
-				{
-					$xml .= ' boost="' . $fieldBoost . '"';
-				}
-
-				$value = htmlspecialchars($value, ENT_NOQUOTES, 'UTF-8');
-
-				$xml .= '>' . $value . '</field>';
-			}
-		}
-
-		$xml .= '</doc>';
-
-		// replace any control characters to avoid Solr XML parser exception
-		return $this->_stripCtrlChars($xml);
-	}
-
-	/**
-	 * Replace control (non-printable) characters from string that are invalid to Solr's XML parser with a space.
-	 *
-	 * @param string $string
-	 * @return string
-	 */
-	protected function _stripCtrlChars($string)
-	{
-		// See:  http://w3.org/International/questions/qa-forms-utf-8.html
-		// Printable utf-8 does not include any of these chars below x7F
-		return preg_replace('@[\x00-\x08\x0B\x0C\x0E-\x1F]@', ' ', $string);
-	}
-
-	/**
-	 * Send a commit command.  Will be synchronous unless both wait parameters are set to false.
-	 *
-	 * @param boolean $expungeDeletes Defaults to false, merge segments with deletes away
-	 * @param boolean $waitFlush Defaults to true,  block until index changes are flushed to disk
-	 * @param boolean $waitSearcher Defaults to true, block until a new searcher is opened and registered as the main query searcher, making the changes visible
-	 * @param float $timeout Maximum expected duration (in seconds) of the commit operation on the server (otherwise, will throw a communication exception). Defaults to 1 hour
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
-	 */
-	public function commit($expungeDeletes = false, $waitFlush = true, $waitSearcher = true, $timeout = 3600)
-	{
-		$expungeValue = $expungeDeletes ? 'true' : 'false';
-		$flushValue = $waitFlush ? 'true' : 'false';
-		$searcherValue = $waitSearcher ? 'true' : 'false';
-
-		$rawPost = '<commit expungeDeletes="' . $expungeValue . '" waitFlush="' . $flushValue . '" waitSearcher="' . $searcherValue . '" />';
-
-		return $this->_sendRawPost($this->_updateUrl, $rawPost, $timeout);
-	}
-
-	/**
-	 * Raw Delete Method. Takes a raw post body and sends it to the update service. Body should be
-	 * a complete and well formed "delete" xml document
-	 *
-	 * @param string $rawPost Expected to be utf-8 encoded xml document
-	 * @param float $timeout Maximum expected duration of the delete operation on the server (otherwise, will throw a communication exception)
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
-	 */
-	public function delete($rawPost, $timeout = 3600)
-	{
-		return $this->_sendRawPost($this->_updateUrl, $rawPost, $timeout);
-	}
-
-	/**
-	 * Create a delete document based on document ID
-	 *
-	 * @param string $id Expected to be utf-8 encoded
-	 * @param boolean $fromPending
-	 * @param boolean $fromCommitted
-	 * @param float $timeout Maximum expected duration of the delete operation on the server (otherwise, will throw a communication exception)
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
-	 */
-	public function deleteById($id, $fromPending = true, $fromCommitted = true, $timeout = 3600)
-	{
-		$pendingValue = $fromPending ? 'true' : 'false';
-		$committedValue = $fromCommitted ? 'true' : 'false';
-
-		//escape special xml characters
-		$id = htmlspecialchars($id, ENT_NOQUOTES, 'UTF-8');
-
-		$rawPost = '<delete fromPending="' . $pendingValue . '" fromCommitted="' . $committedValue . '"><id>' . $id . '</id></delete>';
-
-		return $this->delete($rawPost, $timeout);
-	}
-
-	/**
-	 * Create and post a delete document based on multiple document IDs.
-	 *
-	 * @param array $ids Expected to be utf-8 encoded strings
-	 * @param boolean $fromPending
-	 * @param boolean $fromCommitted
-	 * @param float $timeout Maximum expected duration of the delete operation on the server (otherwise, will throw a communication exception)
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
-	 */
-	public function deleteByMultipleIds($ids, $fromPending = true, $fromCommitted = true, $timeout = 3600)
-	{
-		$pendingValue = $fromPending ? 'true' : 'false';
-		$committedValue = $fromCommitted ? 'true' : 'false';
-
-		$rawPost = '<delete fromPending="' . $pendingValue . '" fromCommitted="' . $committedValue . '">';
-
-		foreach ($ids as $id)
-		{
-			//escape special xml characters
-			$id = htmlspecialchars($id, ENT_NOQUOTES, 'UTF-8');
-
-			$rawPost .= '<id>' . $id . '</id>';
-		}
-
-		$rawPost .= '</delete>';
-
-		return $this->delete($rawPost, $timeout);
-	}
-
-	/**
-	 * Create a delete document based on a query and submit it
-	 *
-	 * @param string $rawQuery Expected to be utf-8 encoded
-	 * @param boolean $fromPending
-	 * @param boolean $fromCommitted
-	 * @param float $timeout Maximum expected duration of the delete operation on the server (otherwise, will throw a communication exception)
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
-	 */
-	public function deleteByQuery($rawQuery, $fromPending = true, $fromCommitted = true, $timeout = 3600)
-	{
-		$pendingValue = $fromPending ? 'true' : 'false';
-		$committedValue = $fromCommitted ? 'true' : 'false';
-
-		// escape special xml characters
-		$rawQuery = htmlspecialchars($rawQuery, ENT_NOQUOTES, 'UTF-8');
-
-		$rawPost = '<delete fromPending="' . $pendingValue . '" fromCommitted="' . $committedValue . '"><query>' . $rawQuery . '</query></delete>';
-
-		return $this->delete($rawPost, $timeout);
-	}
-
-	/**
-	 * Use Solr Cell to extract document contents. See {@link http://wiki.apache.org/solr/ExtractingRequestHandler} for information on how
-	 * to use Solr Cell and what parameters are available.
-	 *
-	 * NOTE: when passing an Apache_Solr_Document instance, field names and boosts will automatically be prepended by "literal." and "boost."
-	 * as appropriate. Any keys from the $params array will NOT be treated this way. Any mappings from the document will overwrite key / value
-	 * pairs in the params array if they have the same name (e.g. you pass a "literal.id" key and value in your $params array but you also
-	 * pass in a document isntance with an "id" field" - the document's value(s) will take precedence).
-	 *
-	 * @param string $file Path to file to extract data from
-	 * @param array $params optional array of key value pairs that will be sent with the post (see Solr Cell documentation)
-	 * @param Apache_Solr_Document $document optional document that will be used to generate post parameters (literal.* and boost.* params)
-	 * @param string $mimetype optional mimetype specification (for the file being extracted)
-	 *
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_InvalidArgumentException if $file, $params, or $document are invalid.
-	 */
-	public function extract($file, $params = array(), $document = null, $mimetype = 'application/octet-stream')
-	{
-		// check if $params is an array (allow null for default empty array)
-		if (!is_null($params))
-		{
-			if (!is_array($params))
-			{
-				throw new Apache_Solr_InvalidArgumentException("\$params must be a valid array or null");
-			}
-		}
-		else
-		{
-			$params = array();
-		}
-		
-		// if $file is an http request, defer to extractFromUrl instead
-		if (substr($file, 0, 7) == 'http://' || substr($file, 0, 8) == 'https://')
-		{
-			return $this->extractFromUrl($file, $params, $document, $mimetype);
-		}
-		
-		// read the contents of the file
-		$contents = @file_get_contents($file);
-
-		if ($contents !== false)
-		{
-			// add the resource.name parameter if not specified
-			if (!isset($params['resource.name']))
-			{
-				$params['resource.name'] = basename($file);
-			}
-
-			// delegate the rest to extractFromString
-			return $this->extractFromString($contents, $params, $document, $mimetype);
-		}
-		else
-		{
-			throw new Apache_Solr_InvalidArgumentException("File '{$file}' is empty or could not be read");
-		}
-	}
-	
-	/**
-	 * Use Solr Cell to extract document contents. See {@link http://wiki.apache.org/solr/ExtractingRequestHandler} for information on how
-	 * to use Solr Cell and what parameters are available.
-	 *
-	 * NOTE: when passing an Apache_Solr_Document instance, field names and boosts will automatically be prepended by "literal." and "boost."
-	 * as appropriate. Any keys from the $params array will NOT be treated this way. Any mappings from the document will overwrite key / value
-	 * pairs in the params array if they have the same name (e.g. you pass a "literal.id" key and value in your $params array but you also
-	 * pass in a document isntance with an "id" field" - the document's value(s) will take precedence).
-	 *
-	 * @param string $data Data that will be passed to Solr Cell
-	 * @param array $params optional array of key value pairs that will be sent with the post (see Solr Cell documentation)
-	 * @param Apache_Solr_Document $document optional document that will be used to generate post parameters (literal.* and boost.* params)
-	 * @param string $mimetype optional mimetype specification (for the file being extracted)
-	 *
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_InvalidArgumentException if $file, $params, or $document are invalid.
-	 *
-	 * @todo Should be using multipart/form-data to post parameter values, but I could not get my implementation to work. Needs revisisted.
-	 */
-	public function extractFromString($data, $params = array(), $document = null, $mimetype = 'application/octet-stream')
-	{
-		// check if $params is an array (allow null for default empty array)
-		if (!is_null($params))
-		{
-			if (!is_array($params))
-			{
-				throw new Apache_Solr_InvalidArgumentException("\$params must be a valid array or null");
-			}
-		}
-		else
-		{
-			$params = array();
-		}
-
-		// make sure we receive our response in JSON and have proper name list treatment
-		$params['wt'] = self::SOLR_WRITER;
-		$params['json.nl'] = $this->_namedListTreatment;
-
-		// check if $document is an Apache_Solr_Document instance
-		if (!is_null($document) && $document instanceof Apache_Solr_Document)
-		{
-			// iterate document, adding literal.* and boost.* fields to $params as appropriate
-			foreach ($document as $field => $fieldValue)
-			{
-				// check if we need to add a boost.* parameters
-				$fieldBoost = $document->getFieldBoost($field);
-
-				if ($fieldBoost !== false)
-				{
-					$params["boost.{$field}"] = $fieldBoost;
-				}
-
-				// add the literal.* parameter
-				$params["literal.{$field}"] = $fieldValue;
-			}
-		}
-
-		// params will be sent to SOLR in the QUERY STRING
-		$queryString = $this->_generateQueryString($params);
-
-		// the file contents will be sent to SOLR as the POST BODY - we use application/octect-stream as default mimetype
-		return $this->_sendRawPost($this->_extractUrl . $this->_queryDelimiter . $queryString, $data, false, $mimetype);
-	}
-	
-	/**
-	 * Use Solr Cell to extract document contents. See {@link http://wiki.apache.org/solr/ExtractingRequestHandler} for information on how
-	 * to use Solr Cell and what parameters are available.
-	 *
-	 * NOTE: when passing an Apache_Solr_Document instance, field names and boosts will automatically be prepended by "literal." and "boost."
-	 * as appropriate. Any keys from the $params array will NOT be treated this way. Any mappings from the document will overwrite key / value
-	 * pairs in the params array if they have the same name (e.g. you pass a "literal.id" key and value in your $params array but you also
-	 * pass in a document isntance with an "id" field" - the document's value(s) will take precedence).
-	 *
-	 * @param string $url URL
-	 * @param array $params optional array of key value pairs that will be sent with the post (see Solr Cell documentation)
-	 * @param Apache_Solr_Document $document optional document that will be used to generate post parameters (literal.* and boost.* params)
-	 * @param string $mimetype optional mimetype specification (for the file being extracted)
-	 *
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_InvalidArgumentException if $url, $params, or $document are invalid.
-	 */
-	public function extractFromUrl($url, $params = array(), $document = null, $mimetype = 'application/octet-stream')
-	{
-		// check if $params is an array (allow null for default empty array)
-		if (!is_null($params))
-		{
-			if (!is_array($params))
-			{
-				throw new Apache_Solr_InvalidArgumentException("\$params must be a valid array or null");
-			}
-		}
-		else
-		{
-			$params = array();
-		}
-
-		$httpTransport = $this->getHttpTransport();
-		
-		// read the contents of the URL using our configured Http Transport and default timeout
-		$httpResponse = $httpTransport->performGetRequest($url);
-		
-		// check that its a 200 response
-		if ($httpResponse->getStatusCode() == 200)
-		{
-			// add the resource.name parameter if not specified
-			if (!isset($params['resource.name']))
-			{
-				$params['resource.name'] = $url;
-			}
-
-			// delegate the rest to extractFromString
-			return $this->extractFromString($httpResponse->getBody(), $params, $document, $mimetype);
-		}
-		else
-		{
-			throw new Apache_Solr_InvalidArgumentException("URL '{$url}' returned non 200 response code");
-		}
-	}
-
-	/**
-	 * Send an optimize command.  Will be synchronous unless both wait parameters are set
-	 * to false.
-	 *
-	 * @param boolean $waitFlush
-	 * @param boolean $waitSearcher
-	 * @param float $timeout Maximum expected duration of the commit operation on the server (otherwise, will throw a communication exception)
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
-	 */
-	public function optimize($waitFlush = true, $waitSearcher = true, $timeout = 3600)
-	{
-		$flushValue = $waitFlush ? 'true' : 'false';
-		$searcherValue = $waitSearcher ? 'true' : 'false';
-
-		$rawPost = '<optimize waitFlush="' . $flushValue . '" waitSearcher="' . $searcherValue . '" />';
-
-		return $this->_sendRawPost($this->_updateUrl, $rawPost, $timeout);
-	}
-
-	/**
-	 * Simple Search interface
-	 *
-	 * @param string $query The raw query string
-	 * @param int $offset The starting offset for result documents
-	 * @param int $limit The maximum number of result documents to return
-	 * @param array $params key / value pairs for other query parameters (see Solr documentation), use arrays for parameter keys used more than once (e.g. facet.field)
-	 * @param string $method The HTTP method (Apache_Solr_Service::METHOD_GET or Apache_Solr_Service::METHOD::POST)
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
-	 * @throws Apache_Solr_InvalidArgumentException If an invalid HTTP method is used
-	 */
-	public function search($query, $offset = 0, $limit = 10, $params = array(), $method = self::METHOD_GET)
-	{
-		// ensure params is an array
-		if (!is_null($params))
-		{
-			if (!is_array($params))
-			{
-				// params was specified but was not an array - invalid
-				throw new Apache_Solr_InvalidArgumentException("\$params must be a valid array or null");
-			}
-		}
-		else
-		{
-			$params = array();
-		}
-		
-		// construct our full parameters
-
-		// common parameters in this interface
-		$params['wt'] = self::SOLR_WRITER;
-		$params['json.nl'] = $this->_namedListTreatment;
-
-		$params['q'] = $query;
-		$params['start'] = $offset;
-		$params['rows'] = $limit;
-
-		$queryString = $this->_generateQueryString($params);
-
-		if ($method == self::METHOD_GET)
-		{
-			return $this->_sendRawGet($this->_searchUrl . $this->_queryDelimiter . $queryString);
-		}
-		else if ($method == self::METHOD_POST)
-		{
-			return $this->_sendRawPost($this->_searchUrl, $queryString, FALSE, 'application/x-www-form-urlencoded; charset=UTF-8');
-		}
-		else
-		{
-			throw new Apache_Solr_InvalidArgumentException("Unsupported method '$method', please use the Apache_Solr_Service::METHOD_* constants");
-		}
-	}
-}
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/Service/Balancer.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/Service/Balancer.php
deleted file mode 100644
index cad57e52b..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/Apache/Solr/Service/Balancer.php
+++ /dev/null
@@ -1,914 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- * @version $Id: Balancer.php 54 2011-02-04 16:29:18Z donovan.jimenez $
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>, Dan Wolfe
- */
-
-// See Issue #1 (http://code.google.com/p/solr-php-client/issues/detail?id=1)
-// Doesn't follow typical include path conventions, but is more convenient for users
-require_once(dirname(dirname(__FILE__)) . '/Service.php');
-
-require_once(dirname(dirname(__FILE__)) . '/NoServiceAvailableException.php');
-
-/**
- * Reference Implementation for using multiple Solr services in a distribution. Functionality
- * includes:
- * 	routing of read / write operations
- * 	failover (on selection) for multiple read servers
- */
-class Apache_Solr_Service_Balancer
-{
-	/**
-	 * SVN Revision meta data for this class
-	 */
-	const SVN_REVISION = '$Revision: 54 $';
-
-	/**
-	 * SVN ID meta data for this class
-	 */
-	const SVN_ID = '$Id: Balancer.php 54 2011-02-04 16:29:18Z donovan.jimenez $';
-
-	protected $_createDocuments = true;
-
-	protected $_readableServices = array();
-	protected $_writeableServices = array();
-
-	protected $_currentReadService = null;
-	protected $_currentWriteService = null;
-
-	protected $_readPingTimeout = 2;
-	protected $_writePingTimeout = 4;
-
-	// Configuration for server selection backoff intervals
-	protected $_useBackoff = false;		// Set to true to use more resillient write server selection
-	protected $_backoffLimit = 600;		// 10 minute default maximum
-	protected $_backoffEscalation = 2.0; 	// Rate at which to increase backoff period
-	protected $_defaultBackoff = 2.0;		// Default backoff interval
-
-	/**
-	 * Escape a value for special query characters such as ':', '(', ')', '*', '?', etc.
-	 *
-	 * NOTE: inside a phrase fewer characters need escaped, use {@link Apache_Solr_Service::escapePhrase()} instead
-	 *
-	 * @param string $value
-	 * @return string
-	 */
-	static public function escape($value)
-	{
-		return Apache_Solr_Service::escape($value);
-	}
-
-	/**
-	 * Escape a value meant to be contained in a phrase for special query characters
-	 *
-	 * @param string $value
-	 * @return string
-	 */
-	static public function escapePhrase($value)
-	{
-		return Apache_Solr_Service::escapePhrase($value);
-	}
-
-	/**
-	 * Convenience function for creating phrase syntax from a value
-	 *
-	 * @param string $value
-	 * @return string
-	 */
-	static public function phrase($value)
-	{
-		return Apache_Solr_Service::phrase($value);
-	}
-
-	/**
-	 * Constructor. Takes arrays of read and write service instances or descriptions
-	 *
-	 * @param array $readableServices
-	 * @param array $writeableServices
-	 */
-	public function __construct($readableServices = array(), $writeableServices = array())
-	{
-		//setup readable services
-		foreach ($readableServices as $service)
-		{
-			$this->addReadService($service);
-		}
-
-		//setup writeable services
-		foreach ($writeableServices as $service)
-		{
-			$this->addWriteService($service);
-		}
-	}
-
-	public function setReadPingTimeout($timeout)
-	{
-		$this->_readPingTimeout = $timeout;
-	}
-
-	public function setWritePingTimeout($timeout)
-	{
-		$this->_writePingTimeout = $timeout;
-	}
-
-	public function setUseBackoff($enable)
-	{
-		$this->_useBackoff = $enable;
-	}
-
-	/**
-	 * Generates a service ID
-	 *
-	 * @param string $host
-	 * @param integer $port
-	 * @param string $path
-	 * @return string
-	 */
-	protected function _getServiceId($host, $port, $path)
-	{
-		return $host . ':' . $port . $path;
-	}
-
-	/**
-	 * Adds a service instance or service descriptor (if it is already
-	 * not added)
-	 *
-	 * @param mixed $service
-	 *
-	 * @throws Apache_Solr_InvalidArgumentException If service descriptor is not valid
-	 */
-	public function addReadService($service)
-	{
-		if ($service instanceof Apache_Solr_Service)
-		{
-			$id = $this->_getServiceId($service->getHost(), $service->getPort(), $service->getPath());
-
-			$this->_readableServices[$id] = $service;
-		}
-		else if (is_array($service))
-		{
-			if (isset($service['host']) && isset($service['port']) && isset($service['path']))
-			{
-				$id = $this->_getServiceId((string)$service['host'], (int)$service['port'], (string)$service['path']);
-
-				$this->_readableServices[$id] = $service;
-			}
-			else
-			{
-				throw new Apache_Solr_InvalidArgumentException('A Readable Service description array does not have all required elements of host, port, and path');
-			}
-		}
-	}
-
-	/**
-	 * Removes a service instance or descriptor from the available services
-	 *
-	 * @param mixed $service
-	 *
-	 * @throws Apache_Solr_InvalidArgumentException If service descriptor is not valid
-	 */
-	public function removeReadService($service)
-	{
-		$id = '';
-
-		if ($service instanceof Apache_Solr_Service)
-		{
-			$id = $this->_getServiceId($service->getHost(), $service->getPort(), $service->getPath());
-		}
-		else if (is_array($service))
-		{
-			if (isset($service['host']) && isset($service['port']) && isset($service['path']))
-			{
-				$id = $this->_getServiceId((string)$service['host'], (int)$service['port'], (string)$service['path']);
-			}
-			else
-			{
-				throw new Apache_Solr_InvalidArgumentException('A Readable Service description array does not have all required elements of host, port, and path');
-			}
-		}
-		else if (is_string($service))
-		{
-			$id = $service;
-		}
-
-		if ($id && isset($this->_readableServices[$id]))
-		{
-			unset($this->_readableServices[$id]);
-		}
-	}
-
-	/**
-	 * Adds a service instance or service descriptor (if it is already
-	 * not added)
-	 *
-	 * @param mixed $service
-	 *
-	 * @throws Apache_Solr_InvalidArgumentException If service descriptor is not valid
-	 */
-	public function addWriteService($service)
-	{
-		if ($service instanceof Apache_Solr_Service)
-		{
-			$id = $this->_getServiceId($service->getHost(), $service->getPort(), $service->getPath());
-
-			$this->_writeableServices[$id] = $service;
-		}
-		else if (is_array($service))
-		{
-			if (isset($service['host']) && isset($service['port']) && isset($service['path']))
-			{
-				$id = $this->_getServiceId((string)$service['host'], (int)$service['port'], (string)$service['path']);
-
-				$this->_writeableServices[$id] = $service;
-			}
-			else
-			{
-				throw new Apache_Solr_InvalidArgumentException('A Writeable Service description array does not have all required elements of host, port, and path');
-			}
-		}
-	}
-
-	/**
-	 * Removes a service instance or descriptor from the available services
-	 *
-	 * @param mixed $service
-	 *
-	 * @throws Apache_Solr_InvalidArgumentException If service descriptor is not valid
-	 */
-	public function removeWriteService($service)
-	{
-		$id = '';
-
-		if ($service instanceof Apache_Solr_Service)
-		{
-			$id = $this->_getServiceId($service->getHost(), $service->getPort(), $service->getPath());
-		}
-		else if (is_array($service))
-		{
-			if (isset($service['host']) && isset($service['port']) && isset($service['path']))
-			{
-				$id = $this->_getServiceId((string)$service['host'], (int)$service['port'], (string)$service['path']);
-			}
-			else
-			{
-				throw new Apache_Solr_InvalidArgumentException('A Readable Service description array does not have all required elements of host, port, and path');
-			}
-		}
-		else if (is_string($service))
-		{
-			$id = $service;
-		}
-
-		if ($id && isset($this->_writeableServices[$id]))
-		{
-			unset($this->_writeableServices[$id]);
-		}
-	}
-
-	/**
-	 * Iterate through available read services and select the first with a ping
-	 * that satisfies configured timeout restrictions (or the default)
-	 *
-	 * @return Apache_Solr_Service
-	 *
-	 * @throws Apache_Solr_NoServiceAvailableException If there are no read services that meet requirements
-	 */
-	protected function _selectReadService($forceSelect = false)
-	{
-		if (!$this->_currentReadService || !isset($this->_readableServices[$this->_currentReadService]) || $forceSelect)
-		{
-			if ($this->_currentReadService && isset($this->_readableServices[$this->_currentReadService]) && $forceSelect)
-			{
-				// we probably had a communication error, ping the current read service, remove it if it times out
-				if ($this->_readableServices[$this->_currentReadService]->ping($this->_readPingTimeout) === false)
-				{
-					$this->removeReadService($this->_currentReadService);
-				}
-			}
-
-			if (count($this->_readableServices))
-			{
-				// select one of the read services at random
-				$ids = array_keys($this->_readableServices);
-
-				$id = $ids[rand(0, count($ids) - 1)];
-				$service = $this->_readableServices[$id];
-
-				if (is_array($service))
-				{
-					//convert the array definition to a client object
-					$service = new Apache_Solr_Service($service['host'], $service['port'], $service['path']);
-					$this->_readableServices[$id] = $service;
-				}
-
-				$service->setCreateDocuments($this->_createDocuments);
-				$this->_currentReadService = $id;
-			}
-			else
-			{
-				throw new Apache_Solr_NoServiceAvailableException('No read services were available');
-			}
-		}
-
-		return $this->_readableServices[$this->_currentReadService];
-	}
-
-	/**
-	 * Iterate through available write services and select the first with a ping
-	 * that satisfies configured timeout restrictions (or the default)
-	 *
-	 * @return Apache_Solr_Service
-	 *
-	 * @throws Apache_Solr_NoServiceAvailableException If there are no write services that meet requirements
-	 */
-	protected function _selectWriteService($forceSelect = false)
-	{
-		if($this->_useBackoff)
-		{
-			return $this->_selectWriteServiceSafe($forceSelect);
-		}
-
-		if (!$this->_currentWriteService || !isset($this->_writeableServices[$this->_currentWriteService]) || $forceSelect)
-		{
-			if ($this->_currentWriteService && isset($this->_writeableServices[$this->_currentWriteService]) && $forceSelect)
-			{
-				// we probably had a communication error, ping the current read service, remove it if it times out
-				if ($this->_writeableServices[$this->_currentWriteService]->ping($this->_writePingTimeout) === false)
-				{
-					$this->removeWriteService($this->_currentWriteService);
-				}
-			}
-
-			if (count($this->_writeableServices))
-			{
-				// select one of the read services at random
-				$ids = array_keys($this->_writeableServices);
-
-				$id = $ids[rand(0, count($ids) - 1)];
-				$service = $this->_writeableServices[$id];
-
-				if (is_array($service))
-				{
-					//convert the array definition to a client object
-					$service = new Apache_Solr_Service($service['host'], $service['port'], $service['path']);
-					$this->_writeableServices[$id] = $service;
-				}
-
-				$this->_currentWriteService = $id;
-			}
-			else
-			{
-				throw new Apache_Solr_NoServiceAvailableException('No write services were available');
-			}
-		}
-
-		return $this->_writeableServices[$this->_currentWriteService];
-	}
-
-	/**
-	 * Iterate through available write services and select the first with a ping
-	 * that satisfies configured timeout restrictions (or the default).  The
-	 * timeout period will increase until a connection is made or the limit is
-	 * reached.   This will allow for increased reliability with heavily loaded
-	 * server(s).
-	 *
-	 * @return Apache_Solr_Service
-	 *
-	 * @throws Apache_Solr_NoServiceAvailableException If there are no write services that meet requirements
-	 */
-
-	protected function _selectWriteServiceSafe($forceSelect = false)
-	{
-		if (!$this->_currentWriteService || !isset($this->_writeableServices[$this->_currentWriteService]) || $forceSelect)
-		{
-			if (count($this->_writeableServices))
-			{
-				$backoff = $this->_defaultBackoff;
-
-				do {
-					// select one of the read services at random
-					$ids = array_keys($this->_writeableServices);
-
-					$id = $ids[rand(0, count($ids) - 1)];
-					$service = $this->_writeableServices[$id];
-
-					if (is_array($service))
-					{
-						//convert the array definition to a client object
-						$service = new Apache_Solr_Service($service['host'], $service['port'], $service['path']);
-						$this->_writeableServices[$id] = $service;
-					}
-
-					$this->_currentWriteService = $id;
-
-					$backoff *= $this->_backoffEscalation;
-
-					if($backoff > $this->_backoffLimit)
-					{
-						throw new Apache_Solr_NoServiceAvailableException('No write services were available.  All timeouts exceeded.');
-					}
-
-				} while($this->_writeableServices[$this->_currentWriteService]->ping($backoff) === false);
-			}
-			else
-			{
-				throw new Apache_Solr_NoServiceAvailableException('No write services were available');
-			}
-		}
-
-		return $this->_writeableServices[$this->_currentWriteService];
-	}
-
-	/**
-	 * Set the create documents flag. This determines whether {@link Apache_Solr_Response} objects will
-	 * parse the response and create {@link Apache_Solr_Document} instances in place.
-	 *
-	 * @param boolean $createDocuments
-	 */
-	public function setCreateDocuments($createDocuments)
-	{
-		$this->_createDocuments = (bool) $createDocuments;
-
-		// set on current read service
-		if ($this->_currentReadService)
-		{
-			$service = $this->_selectReadService();
-			$service->setCreateDocuments($createDocuments);
-		}
-	}
-
-	/**
-	 * Get the current state of teh create documents flag.
-	 *
-	 * @return boolean
-	 */
-	public function getCreateDocuments()
-	{
-		return $this->_createDocuments;
-	}
-	
-	/**
-	 * Raw Add Method. Takes a raw post body and sends it to the update service.  Post body
-	 * should be a complete and well formed "add" xml document.
-	 *
-	 * @param string $rawPost
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
-	 */
-	public function add($rawPost)
-	{
-		$service = $this->_selectWriteService();
-
-		do
-		{
-			try
-			{
-				return $service->add($rawPost);
-			}
-			catch (Apache_Solr_HttpTransportException $e)
-			{
-				if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
-				{
-					throw $e;
-				}
-			}
-
-			$service = $this->_selectWriteService(true);
-		} while ($service);
-
-		return false;
-	}
-
-	/**
-	 * Add a Solr Document to the index
-	 *
-	 * @param Apache_Solr_Document $document
-	 * @param boolean $allowDups
-	 * @param boolean $overwritePending
-	 * @param boolean $overwriteCommitted
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
-	 */
-	public function addDocument(Apache_Solr_Document $document, $allowDups = false, $overwritePending = true, $overwriteCommitted = true)
-	{
-		$service = $this->_selectWriteService();
-
-		do
-		{
-			try
-			{
-				return $service->addDocument($document, $allowDups, $overwritePending, $overwriteCommitted);
-			}
-			catch (Apache_Solr_HttpTransportException $e)
-			{
-				if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
-				{
-					throw $e;
-				}
-			}
-
-			$service = $this->_selectWriteService(true);
-		} while ($service);
-
-		return false;
-	}
-
-	/**
-	 * Add an array of Solr Documents to the index all at once
-	 *
-	 * @param array $documents Should be an array of Apache_Solr_Document instances
-	 * @param boolean $allowDups
-	 * @param boolean $overwritePending
-	 * @param boolean $overwriteCommitted
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
-	 */
-	public function addDocuments($documents, $allowDups = false, $overwritePending = true, $overwriteCommitted = true)
-	{
-		$service = $this->_selectWriteService();
-
-		do
-		{
-			try
-			{
-				return $service->addDocuments($documents, $allowDups, $overwritePending, $overwriteCommitted);
-			}
-			catch (Apache_Solr_HttpTransportException $e)
-			{
-				if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
-				{
-					throw $e;
-				}
-			}
-
-			$service = $this->_selectWriteService(true);
-		} while ($service);
-
-		return false;
-	}
-
-	/**
-	 * Send a commit command.  Will be synchronous unless both wait parameters are set
-	 * to false.
-	 *
-	 * @param boolean $waitFlush
-	 * @param boolean $waitSearcher
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
-	 */
-	public function commit($optimize = true, $waitFlush = true, $waitSearcher = true, $timeout = 3600)
-	{
-		$service = $this->_selectWriteService();
-
-		do
-		{
-			try
-			{
-				return $service->commit($optimize, $waitFlush, $waitSearcher, $timeout);
-			}
-			catch (Apache_Solr_HttpTransportException $e)
-			{
-				if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
-				{
-					throw $e;
-				}
-			}
-
-			$service = $this->_selectWriteService(true);
-		} while ($service);
-
-		return false;
-	}
-
-	/**
-	 * Raw Delete Method. Takes a raw post body and sends it to the update service. Body should be
-	 * a complete and well formed "delete" xml document
-	 *
-	 * @param string $rawPost
-	 * @param float $timeout Maximum expected duration of the delete operation on the server (otherwise, will throw a communication exception)
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
-	 */
-	public function delete($rawPost, $timeout = 3600)
-	{
-		$service = $this->_selectWriteService();
-
-		do
-		{
-			try
-			{
-				return $service->delete($rawPost, $timeout);
-			}
-			catch (Apache_Solr_HttpTransportException $e)
-			{
-				if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
-				{
-					throw $e;
-				}
-			}
-
-			$service = $this->_selectWriteService(true);
-		} while ($service);
-
-		return false;
-	}
-
-	/**
-	 * Create a delete document based on document ID
-	 *
-	 * @param string $id
-	 * @param boolean $fromPending
-	 * @param boolean $fromCommitted
-	 * @param float $timeout Maximum expected duration of the delete operation on the server (otherwise, will throw a communication exception)
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
-	 */
-	public function deleteById($id, $fromPending = true, $fromCommitted = true, $timeout = 3600)
-	{
-		$service = $this->_selectWriteService();
-
-		do
-		{
-			try
-			{
-				return $service->deleteById($id, $fromPending, $fromCommitted, $timeout);
-			}
-			catch (Apache_Solr_HttpTransportException $e)
-			{
-				if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
-				{
-					throw $e;
-				}
-			}
-
-			$service = $this->_selectWriteService(true);
-		} while ($service);
-
-		return false;
-	}
-
-	/**
-	 * Create and post a delete document based on multiple document IDs.
-	 *
-	 * @param array $ids Expected to be utf-8 encoded strings
-	 * @param boolean $fromPending
-	 * @param boolean $fromCommitted
-	 * @param float $timeout Maximum expected duration of the delete operation on the server (otherwise, will throw a communication exception)
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
-	 */
-	public function deleteByMultipleIds($ids, $fromPending = true, $fromCommitted = true, $timeout = 3600)
-	{
-		$service = $this->_selectWriteService();
-
-		do
-		{
-			try
-			{
-				return $service->deleteByMultipleId($ids, $fromPending, $fromCommitted, $timeout);
-			}
-			catch (Apache_Solr_HttpTransportException $e)
-			{
-				if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
-				{
-					throw $e;
-				}
-			}
-
-			$service = $this->_selectWriteService(true);
-		} while ($service);
-
-		return false;
-	}
-
-	/**
-	 * Create a delete document based on a query and submit it
-	 *
-	 * @param string $rawQuery
-	 * @param boolean $fromPending
-	 * @param boolean $fromCommitted
-	 * @param float $timeout Maximum expected duration of the delete operation on the server (otherwise, will throw a communication exception)
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
-	 */
-	public function deleteByQuery($rawQuery, $fromPending = true, $fromCommitted = true, $timeout = 3600)
-	{
-		$service = $this->_selectWriteService();
-
-		do
-		{
-			try
-			{
-				return $service->deleteByQuery($rawQuery, $fromPending, $fromCommitted, $timeout);
-			}
-			catch (Apache_Solr_HttpTransportException $e)
-			{
-				if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
-				{
-					throw $e;
-				}
-			}
-
-			$service = $this->_selectWriteService(true);
-		} while ($service);
-
-		return false;
-	}
-	
-	/**
-	 * Use Solr Cell to extract document contents. See {@link http://wiki.apache.org/solr/ExtractingRequestHandler} for information on how
-	 * to use Solr Cell and what parameters are available.
-	 *
-	 * NOTE: when passing an Apache_Solr_Document instance, field names and boosts will automatically be prepended by "literal." and "boost."
-	 * as appropriate. Any keys from the $params array will NOT be treated this way. Any mappings from the document will overwrite key / value
-	 * pairs in the params array if they have the same name (e.g. you pass a "literal.id" key and value in your $params array but you also
-	 * pass in a document isntance with an "id" field" - the document's value(s) will take precedence).
-	 *
-	 * @param string $file Path to file to extract data from
-	 * @param array $params optional array of key value pairs that will be sent with the post (see Solr Cell documentation)
-	 * @param Apache_Solr_Document $document optional document that will be used to generate post parameters (literal.* and boost.* params)
-	 * @param string $mimetype optional mimetype specification (for the file being extracted)
-	 *
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_InvalidArgumentException if $file, $params, or $document are invalid.
-	 */
-	public function extract($file, $params = array(), $document = null, $mimetype = 'application/octet-stream')
-	{
-		$service = $this->_selectWriteService();
-
-		do
-		{
-			try
-			{
-				return $service->extract($file, $params, $document, $mimetype);
-			}
-			catch (Apache_Solr_HttpTransportException $e)
-			{
-				if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
-				{
-					throw $e;
-				}
-			}
-
-			$service = $this->_selectWriteService(true);
-		} while ($service);
-
-		return false;
-	}
-	
-	/**
-	 * Use Solr Cell to extract document contents. See {@link http://wiki.apache.org/solr/ExtractingRequestHandler} for information on how
-	 * to use Solr Cell and what parameters are available.
-	 *
-	 * NOTE: when passing an Apache_Solr_Document instance, field names and boosts will automatically be prepended by "literal." and "boost."
-	 * as appropriate. Any keys from the $params array will NOT be treated this way. Any mappings from the document will overwrite key / value
-	 * pairs in the params array if they have the same name (e.g. you pass a "literal.id" key and value in your $params array but you also
-	 * pass in a document isntance with an "id" field" - the document's value(s) will take precedence).
-	 *
-	 * @param string $data Data that will be passed to Solr Cell
-	 * @param array $params optional array of key value pairs that will be sent with the post (see Solr Cell documentation)
-	 * @param Apache_Solr_Document $document optional document that will be used to generate post parameters (literal.* and boost.* params)
-	 * @param string $mimetype optional mimetype specification (for the file being extracted)
-	 *
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_InvalidArgumentException if $file, $params, or $document are invalid.
-	 *
-	 * @todo Should be using multipart/form-data to post parameter values, but I could not get my implementation to work. Needs revisisted.
-	 */
-	public function extractFromString($data, $params = array(), $document = null, $mimetype = 'application/octet-stream')
-	{
-		$service = $this->_selectWriteService();
-
-		do
-		{
-			try
-			{
-				return $service->extractFromString($data, $params, $document, $mimetype);
-			}
-			catch (Apache_Solr_HttpTransportException $e)
-			{
-				if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
-				{
-					throw $e;
-				}
-			}
-
-			$service = $this->_selectWriteService(true);
-		} while ($service);
-
-		return false;
-	}
-	
-	/**
-	 * Send an optimize command.  Will be synchronous unless both wait parameters are set
-	 * to false.
-	 *
-	 * @param boolean $waitFlush
-	 * @param boolean $waitSearcher
-	 * @param float $timeout Maximum expected duration of the optimize operation on the server (otherwise, will throw a communication exception)
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
-	 */
-	public function optimize($waitFlush = true, $waitSearcher = true, $timeout = 3600)
-	{
-		$service = $this->_selectWriteService();
-
-		do
-		{
-			try
-			{
-				return $service->optimize($waitFlush, $waitSearcher, $timeout);
-			}
-			catch (Apache_Solr_HttpTransportException $e)
-			{
-				if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
-				{
-					throw $e;
-				}
-			}
-
-			$service = $this->_selectWriteService(true);
-		} while ($service);
-
-		return false;
-	}
-
-	/**
-	 * Simple Search interface
-	 *
-	 * @param string $query The raw query string
-	 * @param int $offset The starting offset for result documents
-	 * @param int $limit The maximum number of result documents to return
-	 * @param array $params key / value pairs for query parameters, use arrays for multivalued parameters
-	 * @param string $method The HTTP method (Apache_Solr_Service::METHOD_GET or Apache_Solr_Service::METHOD::POST)
-	 * @return Apache_Solr_Response
-	 *
-	 * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
-	 */
-	public function search($query, $offset = 0, $limit = 10, $params = array(), $method = Apache_Solr_Service::METHOD_GET)
-	{
-		$service = $this->_selectReadService();
-
-		do
-		{
-			try
-			{
-				return $service->search($query, $offset, $limit, $params, $method);
-			}
-			catch (Apache_Solr_HttpTransportException $e)
-			{
-				if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
-				{
-					throw $e;
-				}
-			}
-
-			$service = $this->_selectReadService(true);
-		} while ($service);
-
-		return false;
-	}
-}
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/COPYING b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/COPYING
deleted file mode 100644
index 01522fb13..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/COPYING
+++ /dev/null
@@ -1,26 +0,0 @@
-Copyright (c) 2007-2011, Servigistics, Inc. 
-All rights reserved. 
-
-Redistribution and use in source and binary forms, with or without 
-modification, are permitted provided that the following conditions are met: 
-
- * Redistributions of source code must retain the above copyright notice, 
-   this list of conditions and the following disclaimer. 
- * Redistributions in binary form must reproduce the above copyright 
-   notice, this list of conditions and the following disclaimer in the 
-   documentation and/or other materials provided with the distribution. 
- * Neither the name of Servigistics, Inc. nor the names of 
-   its contributors may be used to endorse or promote products derived from 
-   this software without specific prior written permission. 
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
-POSSIBILITY OF SUCH DAMAGE. 
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/DocumentTest.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/DocumentTest.php
deleted file mode 100644
index 92261c8e7..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/DocumentTest.php
+++ /dev/null
@@ -1,439 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-/**
- * Apache_Solr_Document Unit Test
- */
-class Apache_Solr_DocumentTest extends PHPUnit_Framework_TestCase
-{
-	/**
-	 * Fixture used for testing
-	 *
-	 * @var Apache_Solr_Document
-	 */
-	private $_fixture;
-
-	/**
-	 * Setup for the fixture before each unit test - part of test case API
-	 */
-	protected function setup()
-	{
-		$this->_fixture = new Apache_Solr_Document();
-	}
-
-	/**
-	 * Teardown after each unit test - part of test case API
-	 */
-	protected function tearDown()
-	{
-		unset($this->_fixture);
-	}
-
-	public function testDefaultStateAfterConstructor()
-	{
-		// document boost should be false
-		$this->assertFalse($this->_fixture->getBoost());
-
-		// document fields should be empty
-		$this->assertEquals(0, count($this->_fixture->getFieldNames()));
-		$this->assertEquals(0, count($this->_fixture->getFieldValues()));
-		$this->assertEquals(0, count($this->_fixture->getFieldBoosts()));
-
-		// document iterator should be empty
-		$this->assertEquals(0, iterator_count($this->_fixture));
-	}
-
-	public function testSetAndGetField()
-	{
-		$field = 'field';
-		$value = 'value';
-		$boost = 0.5;
-
-		// set the field
-		$this->_fixture->setField($field, $value, $boost);
-
-		$result = $this->_fixture->getField($field);
-
-		// check the array values
-		$this->assertTrue(is_array($result));
-		$this->assertEquals($field, $result['name']);
-		$this->assertEquals($value, $result['value']);
-		$this->assertEquals($boost, $result['boost']);
-	}
-
-	public function testGetFieldReturnsFalseForNonExistentField()
-	{
-		$this->assertFalse($this->_fixture->getField('field'));
-	}
-
-	public function testMagicGetForFieldValues()
-	{
-		$field = 'field';
-		$value = 'value';
-
-		$this->_fixture->setField($field, $value);
-
-		// test the __get value
-		$this->assertEquals($value, $this->_fixture->{$field});
-	}
-	
-	/**
-	 * Added for issue #48 (http://code.google.com/p/solr-php-client/issues/detail?id=48)
-	 */
-	public function testMagicGetReturnsNullForNonExistentField()
-	{
-		$this->assertNull($this->_fixture->nonExistent);
-	}
-
-	public function testMagicSetForFieldValues()
-	{
-		$field = 'field';
-		$value = 'value';
-
-		// set field value with magic __set
-		$this->_fixture->{$field} = $value;
-
-		$fieldArray = $this->_fixture->getField($field);
-
-		// set values
-		$this->assertEquals($field, $fieldArray['name']);
-		$this->assertEquals($value, $fieldArray['value']);
-		$this->assertTrue($fieldArray['boost'] === false);
-	}
-
-	public function testMagicIssetForNonExistentField()
-	{
-		$this->assertFalse(isset($this->_fixture->field));
-	}
-
-	public function testMagicIssetForExistingField()
-	{
-		$field = 'field';
-		$this->_fixture->{$field} = 'value';
-		$this->assertTrue(isset($this->_fixture->{$field}));
-	}
-
-	public function testMagicUnsetForExistingField()
-	{
-		$field = 'field';
-
-		$this->_fixture->{$field} = 'value';
-
-		// now unset the field
-		unset($this->_fixture->{$field});
-
-		// now test that its unset
-		$this->assertFalse(isset($this->_fixture->{$field}));
-	}
-
-	public function testMagicUnsetForNonExistingField()
-	{
-		$field = 'field';
-		unset($this->_fixture->{$field});
-
-		// now test that it still does not exist
-		$this->assertFalse(isset($this->_fixture->{$field}));
-	}
-
-	public function testSetAndGetFieldBoostWithPositiveNumberSetsBoost()
-	{
-		$field = 'field';
-		$boost = 0.5;
-
-		$this->_fixture->setFieldBoost($field, $boost);
-
-		// test the field boost
-		$this->assertEquals($boost, $this->_fixture->getFieldBoost($field));
-	}
-
-	public function testSetAndGetFieldBoostWithZeroRemovesBoost()
-	{
-		$field = 'field';
-		$boost = 0;
-
-		$this->_fixture->setFieldBoost($field, $boost);
-
-		// test the field boost
-		$this->assertTrue($this->_fixture->getFieldBoost($field) === false);
-	}
-
-	public function testSetAndGetFieldBoostWithNegativeNumberRemovesBoost()
-	{
-		$field = 'field';
-		$boost = -1;
-
-		$this->_fixture->setFieldBoost($field, $boost);
-
-		// test the field boost
-		$this->assertTrue($this->_fixture->getFieldBoost($field) === false);
-	}
-
-	public function testSetAndGetFieldBoostWithNonNumberRemovesBoost()
-	{
-		$field = 'field';
-		$boost = "i am not a number";
-
-		$this->_fixture->setFieldBoost($field, $boost);
-
-		// test the field boost
-		$this->assertTrue($this->_fixture->getFieldBoost($field) === false);
-	}
-
-	public function testSetAndGetBoostWithPositiveNumberSetsBoost()
-	{
-		$boost = 0.5;
-		$this->_fixture->setBoost($boost);
-
-		// the boost should now be set
-		$this->assertEquals($boost, $this->_fixture->getBoost());
-	}
-
-	public function testSetAndGetBoostWithZeroRemovesBoost()
-	{
-		$this->_fixture->setBoost(0);
-
-		// should be boolean false
-		$this->assertTrue($this->_fixture->getBoost() === false);
-	}
-
-	public function testSetAndGetBoostWithNegativeNumberRemovesBoost()
-	{
-		$this->_fixture->setBoost(-1);
-
-		// should be boolean false
-		$this->assertTrue($this->_fixture->getBoost() === false);
-	}
-
-	public function testSetAndGetBoostWithNonNumberRemovesBoost()
-	{
-		$this->_fixture->setBoost("i am not a number");
-
-		// should be boolean false
-		$this->assertTrue($this->_fixture->getBoost() === false);
-	}
-
-	public function testAddFieldCreatesMultiValueWhenFieldDoesNotExist()
-	{
-		$field = 'field';
-		$value = 'value';
-
-		$this->_fixture->addField($field, $value);
-
-		// check that value is an array with correct values
-		$fieldValue = $this->_fixture->{$field};
-
-		$this->assertTrue(is_array($fieldValue));
-		$this->assertEquals(1, count($fieldValue));
-		$this->assertEquals($value, $fieldValue[0]);
-	}
-
-	/**
-	 *	setMultiValue has been deprecated and defers to addField
-	 *
-	 *	@deprecated
-	 */
-	public function testSetMultiValueCreateMultiValueWhenFieldDoesNotExist()
-	{
-		$field = 'field';
-		$value = 'value';
-
-		$this->_fixture->setMultiValue($field, $value);
-
-		// check that value is an array with correct values
-		$fieldValue = $this->_fixture->{$field};
-
-		$this->assertTrue(is_array($fieldValue));
-		$this->assertEquals(1, count($fieldValue));
-		$this->assertEquals($value, $fieldValue[0]);
-	}
-
-	public function testAddFieldCreatesMultiValueWhenFieldDoesExistAsSingleValue()
-	{
-		$field = 'field';
-		$value1 = 'value1';
-		$value2 = 'value2';
-
-		// set first value as singular value
-		$this->_fixture->{$field} = $value1;
-
-		// add a second value with addField
-		$this->_fixture->addField($field, $value2);
-
-		// check that value is an array with correct values
-		$fieldValue = $this->_fixture->{$field};
-
-		$this->assertTrue(is_array($fieldValue));
-		$this->assertEquals(2, count($fieldValue));
-		$this->assertEquals($value1, $fieldValue[0]);
-		$this->assertEquals($value2, $fieldValue[1]);
-	}
-
-	/**
-	 *	setMultiValue has been deprecated and defers to addField
-	 *
-	 *	@deprecated
-	 */
-	public function testSetMultiValueCreatesMultiValueWhenFieldDoesExistAsSingleValue()
-	{
-		$field = 'field';
-		$value1 = 'value1';
-		$value2 = 'value2';
-
-		// set first value as singular value
-		$this->_fixture->{$field} = $value1;
-
-		// add a second value with addField
-		$this->_fixture->setMultiValue($field, $value2);
-
-		// check that value is an array with correct values
-		$fieldValue = $this->_fixture->{$field};
-
-		$this->assertTrue(is_array($fieldValue));
-		$this->assertEquals(2, count($fieldValue));
-		$this->assertEquals($value1, $fieldValue[0]);
-		$this->assertEquals($value2, $fieldValue[1]);
-	}
-
-	public function testAddFieldWithBoostSetsFieldBoost()
-	{
-		$field = 'field';
-		$boost = 0.5;
-
-		$this->_fixture->addField($field, 'value', $boost);
-
-		// check the field boost
-		$this->assertEquals($boost, $this->_fixture->getFieldBoost($field));
-	}
-
-	public function testAddFieldWithBoostMultipliesWithAPreexistingBoost()
-	{
-		$field = 'field';
-		$boost = 0.5;
-
-		// set a field with a boost
-		$this->_fixture->setField($field, 'value1', $boost);
-
-		// now add another value with the same boost
-		$this->_fixture->addField($field, 'value2', $boost);
-
-		// new boost should be $boost * $boost
-		$this->assertEquals($boost * $boost, $this->_fixture->getFieldBoost($field));
-	}
-
-	public function testGetFieldNamesIsInitiallyEmpty()
-	{
-		$fieldNames = $this->_fixture->getFieldNames();
-
-		$this->assertTrue(empty($fieldNames));
-	}
-
-	public function testGetFieldNamesAfterFieldIsSetIsNotEmpty()
-	{
-		$field = 'field';
-
-		$this->_fixture->{$field} = 'value';
-		$fieldNames = $this->_fixture->getFieldNames();
-
-		$this->assertTrue(!empty($fieldNames));
-		$this->assertEquals(1, count($fieldNames));
-		$this->assertEquals($field, $fieldNames[0]);
-	}
-
-	public function testGetFieldValuesIsInitiallyEmpty()
-	{
-		$fieldValues = $this->_fixture->getFieldValues();
-
-		$this->assertTrue(empty($fieldValues));
-	}
-
-	public function testGetFieldValuessAfterFieldIsSetIsNotEmpty()
-	{
-		$value = 'value';
-
-		$this->_fixture->field = $value;
-		$fieldValues = $this->_fixture->getFieldValues();
-
-		$this->assertTrue(!empty($fieldValues));
-		$this->assertEquals(1, count($fieldValues));
-		$this->assertEquals($value, $fieldValues[0]);
-	}
-
-	public function testGetIteratorAfterFieldValueIsSet()
-	{
-		$field = 'field';
-		$value = 'value';
-
-		$this->_fixture->{$field} = $value;
-
-		$itemCount = 0;
-
-		foreach ($this->_fixture as $iteratedField => $iteratedValue)
-		{
-			++$itemCount;
-
-			// test field and value
-			$this->assertEquals($field, $iteratedField);
-			$this->assertEquals($value, $iteratedValue);
-		}
-
-		// test number of iterations is 1
-		$this->assertEquals(1, $itemCount);
-	}
-
-	public function testClearReturnsDocumentToDefaultState()
-	{
-		// set the document boost
-		$this->_fixture->setBoost(0.5);
-
-		// set a field
-		$this->_fixture->someField = "some value";
-
-		// clear the document to remove boost and fields
-		$this->_fixture->clear();
-
-		// document boost should now be false
-		$this->assertFalse($this->_fixture->getBoost());
-
-		// document fields should now be empty
-		$this->assertEquals(0, count($this->_fixture->getFieldNames()));
-		$this->assertEquals(0, count($this->_fixture->getFieldValues()));
-		$this->assertEquals(0, count($this->_fixture->getFieldBoosts()));
-
-		// document iterator should now be empty
-		$this->assertEquals(0, iterator_count($this->_fixture));
-	}
-}
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransport/AbstractTest.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransport/AbstractTest.php
deleted file mode 100644
index a16e8b6d9..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransport/AbstractTest.php
+++ /dev/null
@@ -1,208 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-/**
- * Apache_Solr_HttpTransport_Abstract Unit Tests
- */
-abstract class Apache_Solr_HttpTransport_AbstractTest extends PHPUnit_Framework_TestCase
-{	
-	const TIMEOUT = 2;
-	
-	// request our copyright file from googlecode for GET and HEAD
-	const GET_URL = "http://solr-php-client.googlecode.com/svn/trunk/COPYING";
-	const GET_RESPONSE_MIME_TYPE = 'text/plain';
-	const GET_RESPONSE_ENCODING = 'UTF-8';
-	const GET_RESPONSE_MATCH = 'Copyright (c) ';
-	
-	// post to the issue list page with a search for 'meh'
-	const POST_URL = "http://code.google.com/p/solr-php-client/issues/list";
-	const POST_DATA = "can=2&q=meh&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary&cells=tiles";
-	const POST_REQUEST_CONTENT_TYPE = 'application/x-www-form-urlencoded; charset=UTF-8';
-	
-	const POST_RESPONSE_MIME_TYPE = 'text/html';
-	const POST_RESPONSE_ENCODING = 'UTF-8';
-	//const POST_RESPONSE_MATCH = 'not sure';
-	
-	abstract public function getFixture();
-	
-	public function testGetDefaultTimeoutWithDefaultConstructor()
-	{
-		$fixture = $this->getFixture();
-		$timeout = $fixture->getDefaultTimeout();
-		
-		$this->assertGreaterThan(0, $timeout);
-	}
-	
-	public function testGetDefaultTimeoutSetToSixtyForBadValues()
-	{
-		// first set our default_socket_timeout ini setting
-		$previousValue = ini_get('default_socket_timeout');
-		ini_set('default_socket_timeout', 0);
-		
-		$fixture = $this->getFixture();
-		$timeout = $fixture->getDefaultTimeout();
-		
-		// reset timeout
-		ini_set('default_socket_timeout', $previousValue);
-		
-		$this->assertEquals(60, $timeout);
-	}
-	
-	public function testSetDefaultTimeout()
-	{
-		$newTimeout = 1234;
-		
-		$fixture = $this->getFixture();
-		$fixture->setDefaultTimeout($newTimeout);
-		$timeout = $fixture->getDefaultTimeout();
-		
-		$this->assertEquals($newTimeout, $timeout);
-	}
-	
-	public function testPerformGetRequest()
-	{
-		$fixture = $this->getFixture();
-		$fixture->setDefaultTimeout(self::TIMEOUT);
-		
-		$response = $fixture->performGetRequest(self::GET_URL);
-		
-		$this->assertType('Apache_Solr_HttpTransport_Response', $response);
-		
-		$this->assertEquals(200, $response->getStatusCode(), 'Status code was not 200');
-		$this->assertEquals(self::GET_RESPONSE_MIME_TYPE, $response->getMimeType(), 'mimetype was not correct');
-		$this->assertEquals(self::GET_RESPONSE_ENCODING, $response->getEncoding(), 'character encoding was not correct');
-		$this->assertStringStartsWith(self::GET_RESPONSE_MATCH, $response->getBody(), 'body did not start with match text');
-	}
-	
-	public function testPerformGetRequestWithTimeout()
-	{
-		$fixture = $this->getFixture();
-		$response = $fixture->performGetRequest(self::GET_URL, self::TIMEOUT);
-		
-		$this->assertType('Apache_Solr_HttpTransport_Response', $response);
-		
-		$this->assertEquals(200, $response->getStatusCode(), 'Status code was not 200');
-		$this->assertEquals(self::GET_RESPONSE_MIME_TYPE, $response->getMimeType(), 'mimetype was not correct');
-		$this->assertEquals(self::GET_RESPONSE_ENCODING, $response->getEncoding(), 'character encoding was not correct');
-		$this->assertStringStartsWith(self::GET_RESPONSE_MATCH, $response->getBody(), 'body did not start with match text');
-	}
-	
-	public function testPerformHeadRequest()
-	{
-		$fixture = $this->getFixture();
-		$fixture->setDefaultTimeout(self::TIMEOUT);
-		
-		$response = $fixture->performHeadRequest(self::GET_URL);
-		
-		// we should get everything the same as a get, except the body
-		$this->assertType('Apache_Solr_HttpTransport_Response', $response);
-		
-		$this->assertEquals(200, $response->getStatusCode(), 'Status code was not 200');
-		$this->assertEquals(self::GET_RESPONSE_MIME_TYPE, $response->getMimeType(), 'mimetype was not correct');
-		$this->assertEquals(self::GET_RESPONSE_ENCODING, $response->getEncoding(), 'character encoding was not correct');
-		$this->assertEquals("", $response->getBody(), 'body was not empty');
-	}
-	
-	public function testPerformHeadRequestWithTimeout()
-	{
-		$fixture = $this->getFixture();
-		$response = $fixture->performHeadRequest(self::GET_URL, self::TIMEOUT);
-		
-		// we should get everything the same as a get, except the body
-		$this->assertType('Apache_Solr_HttpTransport_Response', $response);
-		
-		$this->assertEquals(200, $response->getStatusCode(), 'Status code was not 200');
-		$this->assertEquals(self::GET_RESPONSE_MIME_TYPE, $response->getMimeType(), 'mimetype was not correct');
-		$this->assertEquals(self::GET_RESPONSE_ENCODING, $response->getEncoding(), 'character encoding was not correct');
-		$this->assertEquals("", $response->getBody(), 'body was not empty');
-	}
-	
-	public function testPerformPostRequest()
-	{
-		$fixture = $this->getFixture();
-		$fixture->setDefaultTimeout(self::TIMEOUT);
-		
-		$response = $fixture->performPostRequest(self::POST_URL, self::POST_DATA, self::POST_REQUEST_CONTENT_TYPE);
-		
-		$this->assertType('Apache_Solr_HttpTransport_Response', $response);
-		
-		$this->assertEquals(200, $response->getStatusCode(), 'Status code was not 200');
-		$this->assertEquals(self::POST_RESPONSE_MIME_TYPE, $response->getMimeType(), 'mimetype was not correct');
-		$this->assertEquals(self::POST_RESPONSE_ENCODING, $response->getEncoding(), 'character encoding was not correct');
-		//$this->assertStringStartsWith(self::POST_RESPONSE_MATCH, $response->getBody(), 'body did not start with match text');
-	}
-	
-	public function testPerformPostRequestWithTimeout()
-	{
-		$fixture = $this->getFixture();
-		$response = $fixture->performPostRequest(self::POST_URL, self::POST_DATA, self::POST_REQUEST_CONTENT_TYPE, self::TIMEOUT);
-		
-		$this->assertType('Apache_Solr_HttpTransport_Response', $response);
-		
-		$this->assertEquals(200, $response->getStatusCode(), 'Status code was not 200');
-		$this->assertEquals(self::POST_RESPONSE_MIME_TYPE, $response->getMimeType(), 'mimetype was not correct');
-		$this->assertEquals(self::POST_RESPONSE_ENCODING, $response->getEncoding(), 'character encoding was not correct');
-		//$this->assertStringStartsWith(self::POST_RESPONSE_MATCH, $response->getBody(), 'body did not start with match text');
-	}
-		
-	/**
-	 * Test one session doing multiple requests in multiple orders
-	 */
-	public function testMultipleRequests()
-	{
-		// initial get request
-		$this->testPerformGetRequest();
-		
-		// head following get
-		$this->testPerformHeadRequest();
-		
-		// post following head
-		$this->testPerformPostRequest();
-		
-		// get following post
-		$this->testPerformGetRequest();
-		
-		// post following get
-		$this->testPerformPostRequest();
-	
-		// head following post
-		$this->testPerformHeadRequest();
-		
-		// get following post
-		$this->testPerformGetRequest();		
-	}
-}
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransport/CurlNoReuseTest.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransport/CurlNoReuseTest.php
deleted file mode 100644
index 0484dd4d3..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransport/CurlNoReuseTest.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-/**
- * Apache_Solr_HttpTransport_CurlNoReuse Unit Tests
- */
-class Apache_Solr_HttpTransport_CurlNoReuseTest extends Apache_Solr_HttpTransport_AbstractTest
-{
-	public function getFixture()
-	{
-		// ensure curl is enabled
-		if (!extension_loaded('curl'))
-		{
-			$this->markTestSkipped("curl module is not enabled");
-		}
-		
-		return new Apache_Solr_HttpTransport_CurlNoReuse();
-	}
-}
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransport/CurlTest.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransport/CurlTest.php
deleted file mode 100644
index 070c164fe..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransport/CurlTest.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-/**
- * Apache_Solr_HttpTransport_Curl Unit Tests
- */
-class Apache_Solr_HttpTransport_CurlTest extends Apache_Solr_HttpTransport_AbstractTest
-{	
-	public function getFixture()
-	{
-		// ensure curl is enabled
-		if (!extension_loaded('curl'))
-		{
-			$this->markTestSkipped("curl module is not enabled");
-		}
-		
-		return new Apache_Solr_HttpTransport_Curl();
-	}
-}
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransport/FileGetContentsTest.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransport/FileGetContentsTest.php
deleted file mode 100644
index 2e4f8e90d..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransport/FileGetContentsTest.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-/**
- * Apache_Solr_HttpTransport_FileGetContents Unit Tests
- */
-class Apache_Solr_HttpTransport_FileGetContentsTest extends Apache_Solr_HttpTransport_AbstractTest
-{
-	public function getFixture()
-	{
-		// make sure allow_url_fopen is on
-		if (!ini_get("allow_url_fopen"))
-		{
-			$this->markTestSkipped("allow_url_fopen is not enabled");
-		}
-		
-		return new Apache_Solr_HttpTransport_FileGetContents();
-	}
-}
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransport/ResponseTest.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransport/ResponseTest.php
deleted file mode 100644
index f3c11273d..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransport/ResponseTest.php
+++ /dev/null
@@ -1,164 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-/**
- * Apache_Solr_HttpTransport_Response Unit Tests
- */
-class Apache_Solr_HttpTransport_ResponseTest extends PHPUnit_Framework_TestCase
-{
-	// generated with the following query string: select?q=solr&wt=json
-	const STATUS_CODE_200 = 200;
-	const STATUS_MESSAGE_200 = "OK";
-	const BODY_200 = '{"responseHeader":{"status":0,"QTime":0,"params":{"q":"solr","wt":"json"}},"response":{"numFound":0,"start":0,"docs":[]}}';
-	const BODY_200_WITH_DOCUMENTS = '{"responseHeader":{"status":0,"QTime":0,"params":{"q":"*:*","wt":"json"}},"response":{"numFound":1,"start":0,"docs":[{"guid":"dev/2/products/45410/1236981","cit_domain":"products","cit_client":"2","cit_instance":"dev","cit_timestamp":"2010-10-06T18:16:51.573Z","product_code_t":["235784"],"product_id":[1236981],"dealer_id":[45410],"category_id":[1030],"manufacturer_id":[0],"vendor_id":[472],"catalog_id":[202]}]}}';
-	const CONTENT_TYPE_200 = "text/plain; charset=utf-8";
-	const MIME_TYPE_200 = "text/plain";
-	const ENCODING_200 = "utf-8";
-
-	// generated with the following query string: select?qt=standad&q=solr&wt=json
-	// NOTE: the intentional mispelling of the standard in the qt parameter
-	const STATUS_CODE_400 = 400;
-	const STATUS_MESSAGE_400 = "Bad Request";
-	const BODY_400 = '<html><head><title>Apache Tomcat/6.0.24 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 400 - unknown handler: standad</h1><HR size="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u>unknown handler: standad</u></p><p><b>description</b> <u>The request sent by the client was syntactically incorrect (unknown handler: standad).</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/6.0.24</h3></body></html>';
-	const CONTENT_TYPE_400 = "text/html; charset=utf-8";
-	const MIME_TYPE_400 = "text/html";
-	const ENCODING_400 = "utf-8";
-	
-	// generated with the following query string: select?q=solr&wt=json on a core that does not exist
-	const STATUS_CODE_404 = 404;
-	const STATUS_MESSAGE_404 = "Not Found";
-	const BODY_404 = '<html><head><title>Apache Tomcat/6.0.24 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 404 - /solr/doesnotexist/select</h1><HR size="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u>/solr/doesnotexist/select</u></p><p><b>description</b> <u>The requested resource (/solr/doesnotexist/select) is not available.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/6.0.24</h3></body></html>';
-	const CONTENT_TYPE_404 = "text/html; charset=utf-8";
-	const MIME_TYPE_404 = "text/html";
-	const ENCODING_404 = "utf-8";
-		
-	public static function get0Response()
-	{
-		return new Apache_Solr_HttpTransport_Response(null, null, null);
-	}
-	
-	public static function get200Response()
-	{
-		return new Apache_Solr_HttpTransport_Response(self::STATUS_CODE_200, self::CONTENT_TYPE_200, self::BODY_200);
-	}
-	
-	public static function get200ResponseWithDocuments()
-	{
-		return new Apache_Solr_HttpTransport_Response(self::STATUS_CODE_200, self::CONTENT_TYPE_200, self::BODY_200_WITH_DOCUMENTS);
-	}
-	
-	public static function get400Response()
-	{
-		return new Apache_Solr_HttpTransport_Response(self::STATUS_CODE_400, self::CONTENT_TYPE_400, self::BODY_400);
-	}
-	
-	public static function get404Response()
-	{
-		return new Apache_Solr_HttpTransport_Response(self::STATUS_CODE_404, self::CONTENT_TYPE_404, self::BODY_404);
-	}
-		
-	public function testGetStatusCode()
-	{
-		$fixture = self::get200Response();
-		
-		$statusCode = $fixture->getStatusCode();
-		
-		$this->assertEquals(self::STATUS_CODE_200, $statusCode);
-	}
-	
-	public function testGetStatusMessage()
-	{
-		$fixture = self::get200Response();
-		
-		$statusMessage = $fixture->getStatusMessage();
-		
-		$this->assertEquals(self::STATUS_MESSAGE_200, $statusMessage);
-	}
-	
-	public function testGetStatusMessageWithUnknownCode()
-	{
-		$fixture = new Apache_Solr_HttpTransport_Response(499, null, null);
-		
-		$statusMessage = $fixture->getStatusMessage();
-		$this->assertEquals("Unknown Status", $statusMessage);
-	}
-	
-	public function testGetBody()
-	{
-		$fixture = self::get200Response();
-		
-		$body = $fixture->getBody();
-		
-		$this->assertEquals(self::BODY_200, $body);
-	}
-	
-	public function testGetMimeType()
-	{
-		$fixture = self::get200Response();
-		
-		$mimeType = $fixture->getMimeType();
-		
-		$this->assertEquals(self::MIME_TYPE_200, $mimeType);
-	}
-	
-	public function testGetEncoding()
-	{
-		$fixture = self::get200Response();
-		
-		$encoding = $fixture->getEncoding();
-		
-		$this->assertEquals(self::ENCODING_200, $encoding);
-	}
-	
-	public function testGetStatusMessageWhenNotProvided()
-	{
-		// test 4 of the most common status code responses, probably don't need
-		// to test all the codes we have
-		
-		$fixture = new Apache_Solr_HttpTransport_Response(null, null, null, null, null);
-		$this->assertEquals("Communication Error", $fixture->getStatusMessage(), 'Did not get correct default status message for status code 0');
-		
-		$fixture = new Apache_Solr_HttpTransport_Response(200, null, null, null, null);
-		$this->assertEquals("OK", $fixture->getStatusMessage(), 'Did not get correct default status message for status code 200');
-		
-		$fixture = new Apache_Solr_HttpTransport_Response(400, null, null, null, null);
-		$this->assertEquals("Bad Request", $fixture->getStatusMessage(), 'Did not get correct default status message for status code 400');
-		
-		$fixture = new Apache_Solr_HttpTransport_Response(404, null, null, null, null);
-		$this->assertEquals("Not Found", $fixture->getStatusMessage(), 'Did not get correct default status message for status code 404');
-	}
-}
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransportExceptionTest.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransportExceptionTest.php
deleted file mode 100644
index a0958753e..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/HttpTransportExceptionTest.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-/**
- * Apache_Solr_HttpTransportException Unit Tests
- */
-class Apache_Solr_HttpTransportExceptionTest extends PHPUnit_Framework_TestCase
-{
-	/**
-	 * @expectedException PHPUnit_Framework_Error
-	 */
-	public function testConstructorRequiresResponse()
-	{
-		$fixture = new Apache_Solr_HttpTransportException();
-	}
-	
-	public function testGetResponse()
-	{
-		$response = Apache_Solr_ResponseTest::get0Response();
-		$fixture = new Apache_Solr_HttpTransportException($response);
-		
-		$this->assertEquals($response, $fixture->getResponse());
-	}
-}
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/ResponseTest.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/ResponseTest.php
deleted file mode 100644
index 6ba4fe993..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/ResponseTest.php
+++ /dev/null
@@ -1,194 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-/**
- * Apache_Solr_Response Unit Test
- */
-class Apache_Solr_ResponseTest extends PHPUnit_Framework_TestCase
-{
-	static public function get0Response($createDocuments = true, $collapseSingleValueArrays = true)
-	{
-		return new Apache_Solr_Response(Apache_Solr_HttpTransport_ResponseTest::get0Response(), $createDocuments, $collapseSingleValueArrays);
-	}
-
-	static public function get200Response($createDocuments = true, $collapseSingleValueArrays = true)
-	{
-		return new Apache_Solr_Response(Apache_Solr_HttpTransport_ResponseTest::get200Response(), $createDocuments, $collapseSingleValueArrays);
-	}
-
-	static public function get200ResponseWithDocuments($createDocuments = true, $collapseSingleValueArrays = true)
-	{
-		return new Apache_Solr_Response(Apache_Solr_HttpTransport_ResponseTest::get200ResponseWithDocuments(), $createDocuments, $collapseSingleValueArrays);
-	}
-
-	static public function get400Response($createDocuments = true, $collapseSingleValueArrays = true)
-	{
-		return new Apache_Solr_Response(Apache_Solr_HttpTransport_ResponseTest::get400Response(), $createDocuments, $collapseSingleValueArrays);
-	}
-
-	static public function get404Response($createDocuments = true, $collapseSingleValueArrays = true)
-	{
-		return new Apache_Solr_Response(Apache_Solr_HttpTransport_ResponseTest::get404Response(), $createDocuments, $collapseSingleValueArrays);
-	}
-
-	public function testConstuctorWithValidBodyAndHeaders()
-	{
-		$fixture = self::get200Response();
-
-		// check that we parsed the HTTP status correctly
-		$this->assertEquals(Apache_Solr_HttpTransport_ResponseTest::STATUS_CODE_200, $fixture->getHttpStatus());
-
-		// check that we received the body correctly
-		$this->assertEquals(Apache_Solr_HttpTransport_ResponseTest::BODY_200, $fixture->getRawResponse());
-
-		// check that our defaults are correct
-		$this->assertEquals(Apache_Solr_HttpTransport_ResponseTest::ENCODING_200, $fixture->getEncoding());
-		$this->assertEquals(Apache_Solr_HttpTransport_ResponseTest::MIME_TYPE_200, $fixture->getType());
-	}
-
-	public function testConstructorWithBadBodyAndHeaders()
-	{
-		$fixture = self::get0Response();
-
-		// check that our defaults are correct
-		$this->assertEquals(0, $fixture->getHttpStatus());
-		$this->assertEquals("UTF-8", $fixture->getEncoding());
-		$this->assertEquals("text/plain", $fixture->getType());
-	}
-
-	public function testMagicGetWithValidBodyAndHeaders()
-	{
-		$fixture = self::get200Response();
-
-		// test top level gets
-		$this->assertType('stdClass', $fixture->responseHeader);
-		$this->assertEquals(0, $fixture->responseHeader->status);
-		$this->assertEquals(0, $fixture->responseHeader->QTime);
-
-		$this->assertType('stdClass', $fixture->response);
-		$this->assertEquals(0, $fixture->response->numFound);
-
-		$this->assertTrue(is_array($fixture->response->docs));
-		$this->assertEquals(0, count($fixture->response->docs));
-	}
-
-	/**
-	 * @expectedException Apache_Solr_ParserException
-	 */
-	public function testMagicGetWith0Response()
-	{
-		$fixture = self::get0Response();
-
-		// attempting to magic get a part of the response
-		// should throw a ParserException
-		$fixture->responseHeader;
-
-		$this->fail("Expected Apache_Solr_ParserException was not raised");
-	}
-
-	/**
-	 * @expectedException Apache_Solr_ParserException
-	 */
-	public function testMagicGetWith400Response()
-	{
-		$fixture = self::get400Response();
-
-		// attempting to magic get a part of the response
-		// should throw a ParserException
-		$fixture->responseHeader;
-
-		$this->fail("Expected Apache_Solr_ParserException was not raised");
-	}
-
-	/**
-	 * @expectedException Apache_Solr_ParserException
-	 */
-	public function testMagicGetWith404Response()
-	{
-		$fixture = self::get404Response();
-
-		// attempting to magic get a part of the response
-		// should throw a ParserException
-		$fixture->responseHeader;
-
-		$this->fail("Expected Apache_Solr_ParserException was not raised");
-	}
-
-	public function testCreateDocuments()
-	{
-		$fixture = self::get200ResponseWithDocuments();
-
-		$this->assertTrue(count($fixture->response->docs) > 0, 'There are not 1 or more documents, cannot test');
-		$this->assertType('Apache_Solr_Document', $fixture->response->docs[0], 'The first document is not of type Apache_Solr_Document');
-	}
-	
-	public function testDontCreateDocuments()
-	{
-		$fixture = self::get200ResponseWithDocuments(false);
-
-		$this->assertTrue(count($fixture->response->docs) > 0, 'There are not 1 or more documents, cannot test');
-		$this->assertType('stdClass', $fixture->response->docs[0], 'The first document is not of type stdClass');
-	}
-	
-	public function testGetHttpStatusMessage()
-	{
-		$fixture = self::get200Response();
-		
-		$this->assertEquals("OK", $fixture->getHttpStatusMessage());
-	}
-	
-	public function testMagicGetReturnsNullForUndefinedData()
-	{
-		$fixture = self::get200Response();
-		
-		$this->assertNull($fixture->doesnotexist);
-	}
-	
-	public function testMagicIssetForDefinedProperty()
-	{
-		$fixture = self::get200Response();
-		
-		$this->assertTrue(isset($fixture->responseHeader));
-	}
-	
-	public function testMagicIssetForUndefinedProperty()
-	{
-		$fixture = self::get200Response();
-		
-		$this->assertFalse(isset($fixture->doesnotexist));
-	}
-}
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/Service/BalancerTest.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/Service/BalancerTest.php
deleted file mode 100644
index df398749e..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/Service/BalancerTest.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-/**
- * Apache_Solr_Service_Balancer Unit Tests
- */
-class Apache_Solr_Service_BalancerTest extends Apache_Solr_ServiceAbstractTest
-{
-	public function getFixture()
-	{
-		return new Apache_Solr_Service_Balancer();
-	}
-}
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/ServiceAbstractTest.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/ServiceAbstractTest.php
deleted file mode 100644
index 0e8fdf526..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/ServiceAbstractTest.php
+++ /dev/null
@@ -1,139 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-/**
- * Provides base funcationality test for both Apache_Solr_Service and the
- * Apache_Solr_Service_Balancer classes. 
- */
-abstract class Apache_Solr_ServiceAbstractTest extends PHPUnit_Framework_TestCase
-{
-	/**
-	 * Method that gets the appropriate instance for testing
-	 */
-	abstract public function getFixture();
-	
-	/**
-	 * @dataProvider testEscapeDataProvider
-	 */
-	public function testEscape($input, $expectedOutput)
-	{
-		$fixture = $this->getFixture();
-		
-		$this->assertEquals($expectedOutput, $fixture->escape($input));
-	}
-	
-	public function testEscapeDataProvider()
-	{
-		return array(
-			array(
-				"I should look the same",
-				"I should look the same"
-			),
-			
-			array(
-				"(There) are: ^lots \\ && of spec!al charaters",
-				"\\(There\\) are\\: \\^lots \\\\ \\&& of spec\\!al charaters"
-			)
-		);
-	}
-	
-	/**
-	 * @dataProvider testEscapePhraseDataProvider
-	 */
-	public function testEscapePhrase($input, $expectedOutput)
-	{
-		$fixture = $this->getFixture();
-		
-		$this->assertEquals($expectedOutput, $fixture->escapePhrase($input));
-	}
-	
-	public function testEscapePhraseDataProvider()
-	{
-		return array(
-			array(
-				"I'm a simple phrase",
-				"I'm a simple phrase"
-			),
-		
-			array(
-				"I have \"phrase\" characters",
-				'I have \\"phrase\\" characters'
-			)
-		);
-	}
-	
-	/**
-	 * @dataProvider testPhraseDataProvider
-	 */
-	public function testPhrase($input, $expectedOutput)
-	{
-		$fixture = $this->getFixture();
-		
-		$this->assertEquals($expectedOutput, $fixture->phrase($input));
-	}
-	
-	public function testPhraseDataProvider()
-	{
-		return array(
-			array(
-				"I'm a simple phrase",
-				'"I\'m a simple phrase"'
-			),
-			
-			array(
-				"I have \"phrase\" characters",
-				'"I have \\"phrase\\" characters"'
-			)
-		);
-	}
-	
-	public function testGetCreateDocumentWithDefaultConstructor()
-	{
-		$fixture = $this->getFixture();
-		
-		$this->assertTrue($fixture->getCreateDocuments());
-	}
-	
-	public function testSetCreateDocuments()
-	{
-		$fixture = $this->getFixture();
-		
-		$fixture->setCreateDocuments(false);
-		
-		$this->assertFalse($fixture->getCreateDocuments());
-	}
-}
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/ServiceTest.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/ServiceTest.php
deleted file mode 100644
index 4f0284e0f..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/Apache/Solr/ServiceTest.php
+++ /dev/null
@@ -1,1119 +0,0 @@
-<?php
-/**
- * Copyright (c) 2007-2011, Servigistics, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Servigistics, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
- * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
- *
- * @package Apache
- * @subpackage Solr
- * @author Donovan Jimenez <djimenez@conduit-it.com>
- */
-
-/**
- * Apache_Solr_Service Unit Test
- */
-class Apache_Solr_ServiceTest extends Apache_Solr_ServiceAbstractTest
-{
-	public function getFixture()
-	{
-		return new Apache_Solr_Service();
-	}
-	
-	public function getMockHttpTransportInterface()
-	{
-		return $this->getMock(
-			'Apache_Solr_HttpTransport_Interface',
-			array(
-				'getDefaultTimeout',
-				'setDefaultTimeout',
-				'performGetRequest',
-				'performHeadRequest',
-				'performPostRequest',
-			)
-		);
-	}
-	
-	//================================================================//
-	// ATTEMPT TO MOVE THESE TO ServiceAbstractTest AT SOME POINT     //
-	//   Apache_Solr_Service_Balancer will need functions added       //
-	//================================================================//
-	public function testGetHttpTransportWithDefaultConstructor()
-	{
-		$fixture = new Apache_Solr_Service();
-		
-		$httpTransport = $fixture->getHttpTransport();
-		
-		$this->assertInstanceOf('Apache_Solr_HttpTransport_Interface', $httpTransport, 'Default http transport does not implement interface');
-		$this->assertInstanceOf('Apache_Solr_HttpTransport_FileGetContents', $httpTransport, 'Default http transport is not URL Wrapper implementation');
-	}
-	
-	
-	public function testSetHttpTransport()
-	{
-		$newTransport = new Apache_Solr_HttpTransport_Curl();
-		$fixture = new Apache_Solr_Service();
-		
-		$fixture->setHttpTransport($newTransport);
-		$httpTransport = $fixture->getHttpTransport();
-		
-		$this->assertInstanceOf('Apache_Solr_HttpTransport_Interface', $httpTransport);
-		$this->assertInstanceOf('Apache_Solr_HttpTransport_Curl', $httpTransport);
-		$this->assertEquals($newTransport, $httpTransport);
-		
-	}
-	
-	public function testSetHttpTransportWithConstructor()
-	{
-		$newTransport = new Apache_Solr_HttpTransport_Curl();
-		
-		$fixture = new Apache_Solr_Service('localhost', 8180, '/solr/', $newTransport);
-		
-		$fixture->setHttpTransport($newTransport);
-		$httpTransport = $fixture->getHttpTransport();
-		
-		$this->assertInstanceOf('Apache_Solr_HttpTransport_Interface', $httpTransport);
-		$this->assertInstanceOf('Apache_Solr_HttpTransport_Curl', $httpTransport);
-		$this->assertEquals($newTransport, $httpTransport);
-	}
-
-	public function testGetCollapseSingleValueArraysWithDefaultConstructor()
-	{
-		$fixture = $this->getFixture();
-		
-		$this->assertTrue($fixture->getCollapseSingleValueArrays());
-	}
-	
-	public function testSetCollapseSingleValueArrays()
-	{
-		$fixture = $this->getFixture();
-		
-		$fixture->setCollapseSingleValueArrays(false);
-		$this->assertFalse($fixture->getCollapseSingleValueArrays());
-	}
-	
-	public function testGetNamedListTreatmetnWithDefaultConstructor()
-	{
-		$fixture = $this->getFixture();
-		
-		$this->assertEquals(Apache_Solr_Service::NAMED_LIST_MAP, $fixture->getNamedListTreatment());
-	}
-	
-	public function testSetNamedListTreatment()
-	{
-		$fixture = $this->getFixture();
-		
-		$fixture->setNamedListTreatment(Apache_Solr_Service::NAMED_LIST_FLAT);
-		$this->assertEquals(Apache_Solr_Service::NAMED_LIST_FLAT, $fixture->getNamedListTreatment());
-		
-		$fixture->setNamedListTreatment(Apache_Solr_Service::NAMED_LIST_MAP);
-		$this->assertEquals(Apache_Solr_Service::NAMED_LIST_MAP, $fixture->getNamedListTreatment());
-	}
-	
-	/**
-	 * @expectedException Apache_Solr_InvalidArgumentException
-	 */
-	public function testSetNamedListTreatmentInvalidArgumentException()
-	{
-		$fixture = $this->getFixture();
-		
-		$fixture->setNamedListTreatment("broken");
-	}
-	
-	//================================================================//
-	// END SECTION OF CODE THAT SHOULD BE MOVED                       //
-	//   Apache_Solr_Service_Balancer will need functions added       //
-	//================================================================//
-	
-
-	public function testConstructorDefaultArguments()
-	{
-		$fixture = new Apache_Solr_Service();
-		
-		$this->assertInstanceOf('Apache_Solr_Service', $fixture);
-	}
-
-	public function testGetHostWithDefaultConstructor()
-	{
-		$fixture = new Apache_Solr_Service();
-		$host = $fixture->getHost();
-		
-		$this->assertEquals("localhost", $host);
-	}
-	
-	public function testSetHost()
-	{
-		$newHost = "example.com";
-		
-		$fixture = new Apache_Solr_Service();
-		$fixture->setHost($newHost);
-		$host = $fixture->getHost();
-		
-		$this->assertEquals($newHost, $host);
-	}
-	
-	/**
-	 * @expectedException Apache_Solr_InvalidArgumentException
-	 */
-	public function testSetEmptyHost()
-	{
-		$fixture = new Apache_Solr_Service();
-		
-		// should throw an invalid argument exception
-		$fixture->setHost("");
-	}
-	
-	public function testSetHostWithConstructor()
-	{
-		$newHost = "example.com";
-		
-		$fixture = new Apache_Solr_Service($newHost);
-		$host = $fixture->getHost();
-		
-		$this->assertEquals($newHost, $host);
-	}
-	
-	public function testGetPortWithDefaultConstructor()
-	{
-		$fixture = new Apache_Solr_Service();
-		$port = $fixture->getPort();
-		
-		$this->assertEquals(8180, $port);
-	}
-	
-	public function testSetPort()
-	{
-		$newPort = 12345;
-		
-		$fixture = new Apache_Solr_Service();
-		$fixture->setPort($newPort);
-		$port = $fixture->getPort();
-		
-		$this->assertEquals($newPort, $port);
-	}
-	
-	/**
-	 * @expectedException Apache_Solr_InvalidArgumentException
-	 */
-	public function testSetPortWithInvalidArgument()
-	{
-		$fixture = new Apache_Solr_Service();
-		
-		$fixture->setPort("broken");
-	}
-	
-	public function testSetPortWithConstructor()
-	{
-		$newPort = 12345;
-		
-		$fixture = new Apache_Solr_Service('locahost', $newPort);
-		$port = $fixture->getPort();
-		
-		$this->assertEquals($newPort, $port);
-	}
-		
-	public function testGetPathWithDefaultConstructor()
-	{
-		$fixture = new Apache_Solr_Service();
-		$path = $fixture->getPath();
-		
-		$this->assertEquals("/solr/", $path);
-	}
-	
-	public function testSetPath()
-	{
-		$newPath = "/new/path/";
-		
-		$fixture = new Apache_Solr_Service();
-		$fixture->setPath($newPath);
-		$path = $fixture->getPath();
-		
-		$this->assertEquals($path, $newPath);
-	}
-	
-	public function testSetPathWillAddContainingSlashes()
-	{
-		$newPath = "new/path";
-		$containedPath = "/{$newPath}/";
-		
-		$fixture = new Apache_Solr_Service();
-		$fixture->setPath($newPath);
-		$path = $fixture->getPath();
-		
-		$this->assertEquals($containedPath, $path, 'setPath did not ensure propertly wrapped with slashes');
-	}
-	
-	public function testSetPathWithConstructor()
-	{
-		$newPath = "/new/path/";
-		
-		$fixture = new Apache_Solr_Service('localhost', 8180, $newPath);
-		$path = $fixture->getPath();
-		
-		$this->assertEquals($newPath, $path);
-	}
-	
-	
-	public function testGetDefaultTimeoutCallsThroughToTransport()
-	{
-		$fixture = new Apache_Solr_Service();
-		
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call
-		$mockTransport->expects($this->once())->method('getDefaultTimeout');
-		
-		$fixture->setHttpTransport($mockTransport);
-		
-		$fixture->getDefaultTimeout();
-	}
-	
-	public function testSetDefaultTimeoutCallsThroughToTransport()
-	{
-		$timeout = 12345;
-		$fixture = new Apache_Solr_Service();
-		
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call
-		$mockTransport->expects($this->once())->method('setDefaultTimeout')->with($this->equalTo($timeout));
-		
-		$fixture->setHttpTransport($mockTransport);		
-		$fixture->setDefaultTimeout($timeout);
-	}
-	
-	public function testPing()
-	{
-		$expectedUrl = "http://localhost:8180/solr/admin/ping";
-		$expectedTimeout = 2;
-		
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performHeadRequest')
-			->with($this->equalTo($expectedUrl), $this->equalTo($expectedTimeout))
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		// call ping 
-		$fixture = new Apache_Solr_service();
-		$fixture->setHttpTransport($mockTransport);
-		$time = $fixture->ping();
-		
-		$this->assertGreaterThan(0, $time);
-	}
-	
-	public function testPingReturnsFalse()
-	{
-		$expectedUrl = "http://localhost:8180/solr/admin/ping";
-		$expectedTimeout = 2;
-		
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performHeadRequest')
-			->with($this->equalTo($expectedUrl), $this->equalTo($expectedTimeout))
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get0Response()));
-		
-		// call ping 
-		$fixture = new Apache_Solr_service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$this->assertFalse($fixture->ping());
-	}
-	
-	public function testThreads()
-	{
-		$expectedUrl = "http://localhost:8180/solr/admin/threads?wt=json";
-		$expectedTimeout = false;
-		
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performGetRequest')
-			->with($this->equalTo($expectedUrl), $this->equalTo($expectedTimeout))
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		// call threads
-		$fixture = new Apache_Solr_service();
-		$fixture->setHttpTransport($mockTransport);
-		$fixture->threads();
-	}
-	
-	/**
-	 * @expectedException Apache_Solr_HttpTransportException
-	 */
-	public function testThreads404()
-	{
-		$expectedUrl = "http://localhost:8180/solr/admin/threads?wt=json";
-		$expectedTimeout = false;
-		
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performGetRequest')
-			->with($this->equalTo($expectedUrl), $this->equalTo($expectedTimeout))
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get404Response()));
-		
-		// call threads
-		$fixture = new Apache_Solr_service();
-		$fixture->setHttpTransport($mockTransport);
-		$fixture->threads();
-	}
-	
-	public function testAdd()
-	{
-		$postData = "does not have to be valid";
-		
-		$expectedUrl = "http://localhost:8180/solr/update?wt=json";
-		$expectedTimeout = false;
-		$expectedPostData = $postData;
-		$expectedContentType = "text/xml; charset=UTF-8"; // default for _sendRawPost
-		
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performPostRequest')
-			->with($this->equalTo($expectedUrl), $this->equalTo($postData), $this->equalTo($expectedContentType), $this->equalTo($expectedTimeout))
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		// call add
-		$fixture = new Apache_Solr_service();
-		$fixture->setHttpTransport($mockTransport);
-		$fixture->add($postData);
-	}
-	
-	/**
-	 * @expectedException Apache_Solr_HttpTransportException
-	 */
-	public function testAdd400()
-	{
-		$postData = "does not have to be valid";
-		
-		$expectedUrl = "http://localhost:8180/solr/update?wt=json";
-		$expectedTimeout = false;
-		$expectedPostData = $postData;
-		$expectedContentType = "text/xml; charset=UTF-8"; // default for _sendRawPost
-		
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performPostRequest')
-			->with($this->equalTo($expectedUrl), $this->equalTo($postData), $this->equalTo($expectedContentType), $this->equalTo($expectedTimeout))
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get400Response()));
-		
-		// call add
-		$fixture = new Apache_Solr_service();
-		$fixture->setHttpTransport($mockTransport);
-		$fixture->add($postData);
-	}
-	
-	public function testAddDocument()
-	{
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performPostRequest')
-			->with(
-				// url
-				$this->equalTo('http://localhost:8180/solr/update?wt=json'),
-				
-				// raw post
-				$this->equalTo('<add allowDups="false" overwritePending="true" overwriteCommitted="true"><doc></doc></add>'),
-				
-				// content type
-				$this->equalTo('text/xml; charset=UTF-8'),
-				
-				// timeout
-				$this->equalTo(false)
-			)
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$fixture = new Apache_Solr_service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$document = new Apache_Solr_Document();
-		
-		$fixture->addDocument($document);
-	}
-	
-	public function testAddDocumentWithNonDefaultParameters()
-	{
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performPostRequest')
-			->with(
-				// url
-				$this->equalTo('http://localhost:8180/solr/update?wt=json'),
-				
-				// raw post
-				$this->equalTo('<add allowDups="true" overwritePending="false" overwriteCommitted="false" commitWithin="3600"><doc></doc></add>'),
-				
-				// content type
-				$this->equalTo('text/xml; charset=UTF-8'),
-				
-				// timeout
-				$this->equalTo(false)
-			)
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$fixture = new Apache_Solr_service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$document = new Apache_Solr_Document();
-		
-		$fixture->addDocument($document, true, false, false, 3600);
-	}
-	
-	public function testAddDocumentWithFields()
-	{
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performPostRequest')
-			->with(
-				// url
-				$this->equalTo('http://localhost:8180/solr/update?wt=json'),
-			
-				// raw post
-				$this->equalTo('<add allowDups="false" overwritePending="true" overwriteCommitted="true"><doc><field name="guid">global unique id</field><field name="field">value</field><field name="multivalue">value 1</field><field name="multivalue">value 2</field></doc></add>'),
-			
-				// content type
-				$this->equalTo('text/xml; charset=UTF-8'),
-			
-				// timeout
-				$this->equalTo(false)
-			)
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$fixture = new Apache_Solr_service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$document = new Apache_Solr_Document();
-
-		$document->guid = "global unique id";
-		$document->field = "value";
-		$document->multivalue = array("value 1", "value 2");
-		
-		$fixture->addDocument($document);
-	}
-	
-	public function testAddDocumentWithFieldBoost()
-	{
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performPostRequest')
-			->with(
-				// url
-				$this->equalTo('http://localhost:8180/solr/update?wt=json'),
-		
-				// raw post
-				$this->equalTo('<add allowDups="false" overwritePending="true" overwriteCommitted="true"><doc><field name="guid">global unique id</field><field name="field" boost="2">value</field><field name="multivalue" boost="3">value 1</field><field name="multivalue">value 2</field></doc></add>'),
-		
-				// content type
-				$this->equalTo('text/xml; charset=UTF-8'),
-		
-				// timeout
-				$this->equalTo(false)
-			)
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$fixture = new Apache_Solr_service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$document = new Apache_Solr_Document();
-
-		$document->guid = "global unique id";
-		
-		$document->field = "value";
-		$document->setFieldBoost('field', 2);
-		
-		$document->multivalue = array("value 1", "value 2");
-		$document->setFieldBoost('multivalue', 3);
-		
-		$fixture->addDocument($document);
-	}
-	
-	public function testAddDocumentWithDocumentBoost()
-	{
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performPostRequest')
-			->with(
-				// url
-				$this->equalTo('http://localhost:8180/solr/update?wt=json'),
-		
-				// raw post
-				$this->equalTo('<add allowDups="false" overwritePending="true" overwriteCommitted="true"><doc boost="2"><field name="guid">global unique id</field><field name="field">value</field></doc></add>'),
-		
-				// content type
-				$this->equalTo('text/xml; charset=UTF-8'),
-		
-				// timeout
-				$this->equalTo(false)
-			)
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$fixture = new Apache_Solr_service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$document = new Apache_Solr_Document();
-		$document->setBoost(2);
-
-		$document->guid = "global unique id";
-		$document->field = "value";
-		
-		$fixture->addDocument($document);
-	}
-	
-	public function testAddDocuments()
-	{
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performPostRequest')
-			->with(
-				// url
-				$this->equalTo('http://localhost:8180/solr/update?wt=json'),
-		
-				// raw post
-				$this->equalTo('<add allowDups="false" overwritePending="true" overwriteCommitted="true"><doc></doc><doc></doc></add>'),
-		
-				// content type
-				$this->equalTo('text/xml; charset=UTF-8'),
-		
-				// timeout
-				$this->equalTo(false)
-			)
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$fixture = new Apache_Solr_service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$documents = array(
-			new Apache_Solr_Document(),
-			new Apache_Solr_Document()
-		);
-		
-		$fixture->addDocuments($documents);
-	}
-	
-	public function testAddDocumentsWithNonDefaultParameters()
-	{
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performPostRequest')
-			->with(
-				// url
-				$this->equalTo('http://localhost:8180/solr/update?wt=json'),
-				
-				// raw post
-				$this->equalTo('<add allowDups="true" overwritePending="false" overwriteCommitted="false" commitWithin="3600"><doc></doc><doc></doc></add>'),
-				
-				// content type
-				$this->equalTo('text/xml; charset=UTF-8'),
-				
-				// timeout
-				$this->equalTo(false)
-			)
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$fixture = new Apache_Solr_service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$documents = array(
-			new Apache_Solr_Document(),
-			new Apache_Solr_Document()
-		);
-		
-		$fixture->addDocuments($documents, true, false, false, 3600);
-	}
-	
-	public function testCommit()
-	{
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performPostRequest')
-			->with(
-				// url
-				$this->equalTo('http://localhost:8180/solr/update?wt=json'),
-				
-				// raw post
-				$this->equalTo('<commit expungeDeletes="false" waitFlush="true" waitSearcher="true" />'),
-				
-				// content type
-				$this->equalTo('text/xml; charset=UTF-8'),
-				
-				// timeout
-				$this->equalTo(3600)
-			)
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$fixture = new Apache_Solr_Service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$fixture->commit();
-	}
-	
-	public function testCommitWithNonDefaultParameters()
-	{
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performPostRequest')
-			->with(
-				// url
-				$this->equalTo('http://localhost:8180/solr/update?wt=json'),
-				
-				// raw post
-				$this->equalTo('<commit expungeDeletes="true" waitFlush="false" waitSearcher="false" />'),
-				
-				// content type
-				$this->equalTo('text/xml; charset=UTF-8'),
-				
-				// timeout
-				$this->equalTo(7200)
-			)
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$fixture = new Apache_Solr_Service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$fixture->commit(true, false, false, 7200);
-	}
-	
-	public function testDelete()
-	{
-		$postData = "does not have to be valid";
-		
-		$expectedUrl = "http://localhost:8180/solr/update?wt=json";
-		$expectedTimeout = 3600; // default for delete
-		$expectedPostData = $postData;
-		$expectedContentType = "text/xml; charset=UTF-8"; // default for _sendRawPost
-		
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performPostRequest')
-			->with($this->equalTo($expectedUrl), $this->equalTo($postData), $this->equalTo($expectedContentType), $this->equalTo($expectedTimeout))
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		// call add
-		$fixture = new Apache_Solr_service();
-		$fixture->setHttpTransport($mockTransport);
-		$fixture->delete($postData);
-	}
-	
-	public function testDeleteById()
-	{
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performPostRequest')
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$fixture = new Apache_Solr_Service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$fixture->deleteById("does not exist");
-	}
-	
-	public function testDeleteByMultipleIds()
-	{
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performPostRequest')
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$fixture = new Apache_Solr_Service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$fixture->deleteByMultipleIds(array(1, 2, 3));
-	}
-	
-	public function testDeleteByQuery()
-	{
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performPostRequest')
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$fixture = new Apache_Solr_Service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$fixture->deleteByQuery("*:*");
-	}
-	
-	public function testExtracts()
-	{
-		$extractFile = __FILE__;
-		
-		$expectedUrl = "http://localhost:8180/solr/update/extract?resource.name=ServiceTest.php&wt=json&json.nl=map";
-		$expectedPostData = file_get_contents($extractFile);
-		$expectedContentType = 'application/octet-stream'; // default for extract
-		$expectedTimeout = false;
-		
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performPostRequest')
-			->with($this->equalTo($expectedUrl), $this->equalTo($expectedPostData), $this->equalTo($expectedContentType), $this->equalTo($expectedTimeout))
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$fixture = new Apache_Solr_Service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$fixture->extract($extractFile);
-	}
-	
-	/**
-	 * @expectedException Apache_Solr_InvalidArgumentException
-	 */
-	public function testExtractWithInvalidParams()
-	{
-		$extractFile = __FILE__;
-		
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-
-		$fixture = new Apache_Solr_Service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$fixture->extract($extractFile, "invalid");
-	}
-	
-	/**
-	 * @expectedException Apache_Solr_InvalidArgumentException
-	 */
-	public function testExtractFromStringWithInvalidParams()
-	{
-		$extractFileData = "does not matter what it is";
-		
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-
-		$fixture = new Apache_Solr_Service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$fixture->extractFromString($extractFileData, "invalid");
-	}
-	
-	public function testExtractsWithNullParams()
-	{
-		$extractFile = __FILE__;
-		
-		$expectedUrl = "http://localhost:8180/solr/update/extract?resource.name=ServiceTest.php&wt=json&json.nl=map";
-		$expectedPostData = file_get_contents($extractFile);
-		$expectedContentType = 'application/octet-stream'; // default for extract
-		$expectedTimeout = false;
-		
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performPostRequest')
-			->with($this->equalTo($expectedUrl), $this->equalTo($expectedPostData), $this->equalTo($expectedContentType), $this->equalTo($expectedTimeout))
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$fixture = new Apache_Solr_Service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$fixture->extract($extractFile, null);
-	}
-	
-	/**
-	 * @expectedException Apache_Solr_InvalidArgumentException
-	 */
-	public function testExtractWithEmptyFile()
-	{
-		$extractFile = "iDontExist.txt";
-				
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-				
-		$fixture = new Apache_Solr_Service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$fixture->extract($extractFile);
-	}
-	
-	public function testExtractsWithDocument()
-	{
-		$extractFile = __FILE__;
-		
-		$expectedUrl = "http://localhost:8180/solr/update/extract?resource.name=ServiceTest.php&wt=json&json.nl=map&boost.field=2&literal.field=literal+value";
-		$expectedPostData = file_get_contents($extractFile);
-		$expectedContentType = 'application/octet-stream'; // default for extract
-		$expectedTimeout = false;
-		
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performPostRequest')
-			->with($this->equalTo($expectedUrl), $this->equalTo($expectedPostData), $this->equalTo($expectedContentType), $this->equalTo($expectedTimeout))
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$fixture = new Apache_Solr_Service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$literals = new Apache_Solr_Document();
-		$literals->field = "literal value";
-		$literals->setFieldBoost('field', 2);
-		
-		$fixture->extract($extractFile, null, $literals);
-	}
-	
-	public function testExtractWithUrlDefers()
-	{
-		$extractUrl = "http://example.com";
-		
-		$expectedUrl = "http://localhost:8180/solr/update/extract?resource.name=http%3A%2F%2Fexample.com&wt=json&json.nl=map";
-		$expectedPostData = Apache_Solr_HttpTransport_ResponseTest::BODY_200;
-		$expectedContentType = 'application/octet-stream'; // default for extract
-		$expectedTimeout = false;
-		
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performGetRequest')
-			->with(
-				$this->equalTo($extractUrl)
-			)
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$mockTransport->expects($this->once())
-			->method('performPostRequest')
-			->with(
-				$this->equalTo($expectedUrl),
-				$this->equalTo($expectedPostData),
-				$this->equalTo($expectedContentType),
-				$this->equalTo($expectedTimeout)
-			)
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$fixture = new Apache_Solr_Service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$fixture->extract($extractUrl);
-	}
-	
-	public function testExtractFromUrl()
-	{
-		$extractUrl = "http://example.com";
-		
-		$expectedUrl = "http://localhost:8180/solr/update/extract?resource.name=http%3A%2F%2Fexample.com&wt=json&json.nl=map";
-		$expectedPostData = Apache_Solr_HttpTransport_ResponseTest::BODY_200;
-		$expectedContentType = 'application/octet-stream'; // default for extract
-		$expectedTimeout = false;
-		
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performGetRequest')
-			->with(
-				$this->equalTo($extractUrl)
-			)
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$mockTransport->expects($this->once())
-			->method('performPostRequest')
-			->with(
-				$this->equalTo($expectedUrl),
-				$this->equalTo($expectedPostData),
-				$this->equalTo($expectedContentType),
-				$this->equalTo($expectedTimeout)
-			)
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$fixture = new Apache_Solr_Service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$fixture->extractFromUrl($extractUrl);
-	}
-	
-	/**
-	 * @expectedException Apache_Solr_InvalidArgumentException
-	 */
-	public function testExtractFromUrlWithInvalidParams()
-	{
-		$extractUrl = "http://example.com";
-		
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-			
-		$fixture = new Apache_Solr_Service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$fixture->extractFromUrl($extractUrl, "invalid");
-	}
-	
-	public function testOptimize()
-	{
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performPostRequest')
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$fixture = new Apache_Solr_Service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$fixture->optimize();
-	}
-	
-	public function testSearch()
-	{
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performGetRequest')
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$fixture = new Apache_Solr_service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$fixture->search("solr");
-	}
-	
-	/**
-	 * @expectedException Apache_Solr_InvalidArgumentException
-	 */
-	public function testSearchWithInvalidParams()
-	{
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		$fixture = new Apache_Solr_service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$fixture->search("solr", 0, 10, "invalid");
-		
-		$this->fail("Should have through InvalidArgumentException");
-	}
-	
-	public function testSearchWithEmptyParams()
-	{
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performGetRequest')
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$fixture = new Apache_Solr_service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$fixture->search("solr", 0, 10, null);
-	}
-	
-	public function testSearchWithPostMethod()
-	{
-		// set a mock transport
-		$mockTransport = $this->getMockHttpTransportInterface();
-		
-		// setup expected call and response
-		$mockTransport->expects($this->once())
-			->method('performPostRequest')
-			->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
-		
-		$fixture = new Apache_Solr_service();
-		$fixture->setHttpTransport($mockTransport);
-		
-		$fixture->search("solr", 0, 10, array(), Apache_Solr_Service::METHOD_POST);
-	}
-	
-	/**
-	 * @expectedException Apache_Solr_InvalidArgumentException
-	 */
-	public function testSearchWithInvalidMethod()
-	{
-		$fixture = new Apache_Solr_service();
-		
-		$fixture->search("solr", 0, 10, array(), "INVALID METHOD");
-	}
-}
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/README b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/README
deleted file mode 100644
index 39ede2e94..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/README
+++ /dev/null
@@ -1,20 +0,0 @@
-Use the run.php script included in this directory to run all unit tests for the
-Solr PHP Client library. Your system will require phpunit PEAR package - which
-you can get install instructions for at:
-
-http://www.phpunit.de/
-
-To generate the code coverage report, you will also need the XDebug pecl package
-installed, typically this can be done with a simple:
-
-pecl install xdebug
-
-If you need more information on installation, then please see the official website:
-
-http://www.xdebug.org
-
-The scripts, configuration, and test files in this directory have been confirmed to
-work with the following versions:
-
-phpunit: 3.3.16
-xdebug: 2.0.4
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/phpunit.bootstrap.inc b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/phpunit.bootstrap.inc
deleted file mode 100644
index 237a0ec13..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/phpunit.bootstrap.inc
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-// set error reporting high
-error_reporting(E_ALL | E_STRICT);
-
-// make sure we see them
-ini_set('display_errors', 'On');
-
-// make sure current directory and class directories are on include path
-// this is necessary for auto load to work
-set_include_path(
-	// distribution files (where the zip / tgz is unpacked)
-	dirname(dirname(__FILE__)) . PATH_SEPARATOR .
-
-	// test file directory "tests"
-	dirname(__FILE__) . PATH_SEPARATOR .
-
-	// current include path (for PHPUnit, etc.)
-	get_include_path()
-);
-
-// set up an autoload for Zend / Pear style class loading
-spl_autoload_register(
-	function($class)
-	{
-		include(str_replace("_", DIRECTORY_SEPARATOR, $class) . ".php");
-	}
-);
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/phpunit.xml b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/phpunit.xml
deleted file mode 100644
index 05df4133c..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/phpunit.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<phpunit bootstrap="phpunit.bootstrap.inc" colors="true">
-	<logging>
-		<log type="coverage-html" target="coverage-report" charset="UTF-8"/>
-		<!--<log type="testdox-text" target="testdox.txt" charset="UTF-8"/>-->
-	</logging>
-	<filter>
-		<whitelist>
-			<directory suffix=".php">../Apache</directory>
-			<exclude>
-				<file>./run.php</file>
-			</exclude>
-		</whitelist>
-	</filter>
-</phpunit>
diff --git a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/run.php b/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/run.php
deleted file mode 100755
index b7445481b..000000000
--- a/wp-content/plugins/solr-for-wordpress/SolrPhpClient/tests/run.php
+++ /dev/null
@@ -1,42 +0,0 @@
-#! /usr/bin/php
-<?php
-/**
- * Copyright (c) 2007-2010, Conduit Internet Technologies, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Conduit Internet Technologies, Inc. nor the names of
- *    its contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-// make sure the working directory is correct (parent directory)
-// phpunit will use it to include our configuration files and find
-// the following specified test suite
-chdir(dirname(__FILE__));
-
-// run phpunit - will automatically use ./phpunit.xml for configuration
-// that configuration file points to a bootstrap that will include our test suite
-passthru("phpunit .");
-
-// extra newline so our next prompt isn't stuck appended to the output
-echo "\n";
diff --git a/wp-content/plugins/solr-for-wordpress/readme.txt b/wp-content/plugins/solr-for-wordpress/readme.txt
deleted file mode 100644
index 47027c20c..000000000
--- a/wp-content/plugins/solr-for-wordpress/readme.txt
+++ /dev/null
@@ -1,146 +0,0 @@
-=== Solr for WordPress ===
-Contributors: mattweber
-Author URI: http://www.mattweber.org
-Plugin URI: https://github.com/mattweber/solr-for-wordpress
-Donate link: http://www.mattweber.org
-Tags: solr, search, search results, search integration, custom search 
-Requires at least: 3.0
-Tested up to: 3.2.1
-Stable tag: 0.5.1
-
-A WordPress plugin that replaces the default WordPress search with Solr.
-
-== Description ==
-
-A WordPress plugin that replaces the default WordPress search with Solr.  Features include:
-
-*	Index pages and posts
-*	Enable faceting on fields such as tags, categories, author, and page type.
-* Indexing and faceting on custom fields
-* Multisite support
-*	Treat the category facet as a taxonomy
-*	Add special template tags so you can create your own custom result pages to match your theme.
-* Completely replaces default WordPress search, just install and configure.
-* Completely integrated into default WordPress theme and search widget.
-*	Configuration options allow you to select pages to ignore, features to enable/disable, and what type of result information you want output.
-* i18n Support
-* Multi server/core support
-
-    Note that this plugin requires you to have an instance of Solr using a schema with the following fields: id, permalink, title, content, numcomments, categories, categoriessrch, tags, tagssrch, author, type, and text.  The facet fields (categories, tags, author, and type) should be string fields.  You can make tagssrch and categoriessrch of any type you want as they are used for general searching.  The plugin is distributed with a Solr schema you can use at `solr-for-wordpress/schema.xml`.
-
-
-== Installation ==
-
-1. Upload the `solr-for-wordpress` folder to the `/wp-content/plugins/` directory
-2. Activate the plugin through the 'Plugins' menu in WordPress
-3. Configure the plugin with the hostname, port, and URI path to your Solr installation.
-4. Load all your posts and/or pages via the "Load All Posts" button in the settings page.
-
-= Custom Theme Integration =
-1. Create a new theme file called "s4w_search.php".
-2. Insert your markup, use template methods s4w_search_form() and s4w_search_results() to insert the search box and results respectively.
-3. Add result styling to your theme css file, see `solr-for-wordpress/template/search.css` for an example.
-4. You can use the search widget in your sidebar for search, or use a custom search box that submits the query in the parameter "s".
-
-
-== Frequently Asked Questions ==
-
-= What version of WordPress does Solr for WordPress work with? =
-
-Solr for WordPress works with WordPress 3.0 and greater.
-
-= What version of Solr is required. =
-
-Solr 1.4 or greater.
-
-= Can I enable/disable specific facets. =
-
-Yes, from the settings page.  Uncheck the "Facet on FIELD" option, for the FIELD you don't want a facet for.
-
-= Do I need to run my own Solr server to use this plugin? =
-
-No, there are Solr hosting providers that will setup and manager Solr for you.  As long as they allow custom schema's and support the 
-standard Solr http api, then the plugin should work.  Some sites:
-
-http://www.mysolrserver.com/
-http://www.websolr.com/
-http://powcloud.com/
-
-= Can I run a local instance of Solr for testing? =
-
-Yes, you may grab a copy from the apache website: http://www.apache.org/dist/lucene/solr/
-Since it runs on java solr is platform independent, just make sure you have java install So go ahead and Download the .tgz/.zip file (there is no difference).
-1) Extract the files you have downloaded
-2) Copy the schema file (schema.xml) from this plugin to the folder you extracted 'apache-solr-*/examples/solr/conf/' (yes overwrite the file there)
-3) Open up terminal and then go to where you extracted the files and inside './apache-solr-*/examples' run the command "java -jar start.jar"
-
-For any further information please the README that comes with solr.
-
-= What is a taxonomy =
-
-A taxonomy is a hierarchal facet.  This means that your subcategories will be treated as a child to the parent category instead of an individual facet.  
-
-Here is what an example category taxonomy look like:
-
-`
--States
----California
-------Los Angeles
----New York
-------New York
-`
-
-Here is that same category not treating it as a taxonomy:
-
-`
--States
--California
--Los Angeles
--New York
--New York
-`
-
-As you can see, treating it as a taxonomy is much better.
-
-= I was treating the category as a taxonomy disabled it, now my category facet looks weird =
-
-You need to delete and re-index your data.  
-
-= How do I know what html tags to style in my custom theme =
-
-See `solr-for-wordpress/template/search.css` for an example, or view the source of the search results.
-
-= Can I create a custom search page such as http://www.myblog.com/search/? =
-
-Yes, it is fairly trivial as well.  Follow the steps for custom theme integration.  At the top of that page, insert a comment similar to the following:
-
-<?php
-/*
-Template Name: Search
-*/
-?>
-
-Login to the WordPress admin GUI, select add new page, set the title of the page to "Search".  On the right hand side you will see a drop-down box that says "Template", click that and select "Search".  Leave the content of the page blank and publish the page.  
-
-You will have have your "/search/" page.
-
-= I need the output of this plugin in a different language =
-
-Solr for WordPress is internationalized.  There is supplied .pot file that you can use for translations.  See http://codex.wordpress.org/Translating_WordPress for more details.
-
-= How do I find out the page or post id to exclude? =
-
-Login to the WordPress admin, select pages, click the page you want to exclude.  The post id is what you are looking for, you can find it in the titlebar as the &post= parameter.  In this example, the page id is 22, http://www.yourblog.com/wp-admin/page.php?action=edit&post=22.
-
-
-== Screenshots ==
-
-1. Configuration Page
-2. Example of results page in default WordPress Theme
-
-== Credits ==
-
-Dominique Bejean for custom field support and testing.
-Eric Pugh multi server support.
-Dustin Rue - fixes for batch import and multisite.
-
diff --git a/wp-content/plugins/solr-for-wordpress/schema.xml b/wp-content/plugins/solr-for-wordpress/schema.xml
deleted file mode 100644
index 037742872..000000000
--- a/wp-content/plugins/solr-for-wordpress/schema.xml
+++ /dev/null
@@ -1,146 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<schema name="wpdata" version="1.1">
-    <types>
-        <fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
-        <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true"/>
-        <fieldType name="integer" class="solr.IntField" omitNorms="true"/>
-        <fieldType name="long" class="solr.LongField" omitNorms="true"/>
-        <fieldType name="float" class="solr.FloatField" omitNorms="true"/>
-        <fieldType name="double" class="solr.DoubleField" omitNorms="true"/>
-        <fieldType name="sint" class="solr.SortableIntField" sortMissingLast="true" omitNorms="true"/>
-        <fieldType name="slong" class="solr.SortableLongField" sortMissingLast="true" omitNorms="true"/>
-        <fieldType name="sfloat" class="solr.SortableFloatField" sortMissingLast="true" omitNorms="true"/>
-        <fieldType name="sdouble" class="solr.SortableDoubleField" sortMissingLast="true" omitNorms="true"/>
-        <fieldType name="date" class="solr.DateField" sortMissingLast="true" omitNorms="true"/>
-        <fieldType name="random" class="solr.RandomSortField" indexed="true" />
-
-        <fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100">
-            <analyzer>
-                <tokenizer class="solr.WhitespaceTokenizerFactory"/>
-            </analyzer>
-        </fieldType>
-
-		<fieldType name="text_lws" class="solr.TextField" positionIncrementGap="100">
-            <analyzer>
-                <tokenizer class="solr.WhitespaceTokenizerFactory"/>
-				<filter class="solr.LowerCaseFilterFactory"/>
-            </analyzer>
-        </fieldType>
-
-        <fieldType name="text" class="solr.TextField" positionIncrementGap="100">
-            <analyzer type="index">
-                <tokenizer class="solr.WhitespaceTokenizerFactory"/>
-                <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
-                <filter class="solr.LowerCaseFilterFactory"/>
-                <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
-                <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
-            </analyzer>
-            <analyzer type="query">
-                <tokenizer class="solr.WhitespaceTokenizerFactory"/>
-                <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
-                <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
-                <filter class="solr.LowerCaseFilterFactory"/>
-                <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
-                <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
-            </analyzer>
-        </fieldType>
-
-        <fieldType name="textTight" class="solr.TextField" positionIncrementGap="100" >
-            <analyzer>
-                <tokenizer class="solr.WhitespaceTokenizerFactory"/>
-                <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false"/>
-                <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
-                <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
-                <filter class="solr.LowerCaseFilterFactory"/>
-                <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
-                <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
-            </analyzer>
-        </fieldType>
-
-        <fieldType name="textSpell" class="solr.TextField" positionIncrementGap="100" >
-            <analyzer>
-                <tokenizer class="solr.StandardTokenizerFactory"/>
-                <filter class="solr.LowerCaseFilterFactory"/>
-                <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
-            </analyzer>
-        </fieldType>
-
-        <fieldType name="alphaOnlySort" class="solr.TextField" sortMissingLast="true" omitNorms="true">
-            <analyzer>
-                <tokenizer class="solr.KeywordTokenizerFactory"/>
-                <filter class="solr.LowerCaseFilterFactory" />
-                <filter class="solr.TrimFilterFactory" />
-                <filter class="solr.PatternReplaceFilterFactory" pattern="([^a-z])" replacement="" replace="all"/>
-            </analyzer>
-        </fieldType>
-
-        <fieldtype name="ignored" stored="false" indexed="false" class="solr.StrField" /> 
-    </types>
-
-
-    <fields>
-        <field name="id" type="string" indexed="true" stored="true" required="true" /> 
-
-		<field name="blogid" type="string" indexed="true" stored="true"/>
-		<field name="blogdomain" type="string" indexed="true" stored="true"/>
-		<field name="blogpath" type="string" indexed="true" stored="true"/>
-		<field name="wp" type="string" indexed="true" stored="true"/>
-		
-		<field name="permalink" type="string" indexed="true" stored="true"/> 
-        <field name="title" type="text_lws" indexed="true" stored="true"/>
-		<field name="content" type="text" indexed="true" stored="true"/>
-		<field name="numcomments" type="integer" indexed="true" stored="true"/>
-		<field name="comments" type="text" indexed="true" stored="true" multiValued="true"/>
-
-        <field name="categories" type="string" indexed="true" stored="true" multiValued="true"/>
-		<field name="categoriessrch" type="text_lws" indexed="true" stored="false" multiValued="true"/>
-		
-        <field name="tags" type="string" indexed="true" stored="true" multiValued="true"/>
-		<field name="tagssrch" type="text_lws" indexed="true" stored="false" multiValued="true"/>
-		
-        <field name="author" type="string" indexed="true" stored="true"/>
-		<field name="type" type="string" indexed="true" stored="true"/>
-
-		<!-- Date fields used for sorting and searching -->
-		<field name="date" type="date" indexed="true" stored="false"/>
-		<field name="modified" type="date" indexed="true" stored="false"/>
-		
-		<!-- Fields used to display the date -->
-		<field name="displaydate" type="string" indexed="false" stored="true"/>
-		<field name="displaymodified" type="string" indexed="false" stored="true"/>
-		
-		<!-- For spell checking, did you mean? -->
-		<field name="spell" type="textSpell" indexed="true" stored="true" multiValued="true"/>
-		
-        <!-- composite field -->
-        <field name="text" type="text" indexed="true" stored="false" multiValued="true"/>
-
-        <!-- dynamic fields -->
-        <dynamicField name="*_str"  type="string"  indexed="true"  stored="true" multiValued="true"/>
-        <dynamicField name="*_srch"  type="text_lws"  indexed="true"  stored="false" multiValued="true"/>
-        <dynamicField name="*_taxonomy" type="string" indexed="true" stored="true" multiValued="true"/>
-        
-        <dynamicField name="*_i"  type="sint"    indexed="true"  stored="true"/>
-        <dynamicField name="*_s"  type="string"  indexed="true"  stored="true"/>
-        <dynamicField name="*_l"  type="slong"   indexed="true"  stored="true"/>
-        <dynamicField name="*_t"  type="text"    indexed="true"  stored="true"/>
-        <dynamicField name="*_b"  type="boolean" indexed="true"  stored="true"/>
-        <dynamicField name="*_f"  type="sfloat"  indexed="true"  stored="true"/>
-        <dynamicField name="*_d"  type="sdouble" indexed="true"  stored="true"/>
-        <dynamicField name="*_dt" type="date"    indexed="true"  stored="true"/>
-        <dynamicField name="random*" type="random" />
-     </fields>
-
-     <uniqueKey>id</uniqueKey>
-     <defaultSearchField>text</defaultSearchField>
-     <solrQueryParser defaultOperator="OR"/>
-     <copyField source="title" dest="text"/>
-     <copyField source="tags" dest="text"/>
-     <copyField source="categories" dest="text"/>
-     <copyField source="content" dest="text"/>
-     <copyField source="tags" dest="tagssrch"/>
-     <copyField source="categories" dest="categoriessrch"/>
-     <copyField source="title" dest="spell"/>
-	 <copyField source="content" dest="spell"/>
-	 <copyField source="author" dest="spell"/>
-</schema>
diff --git a/wp-content/plugins/solr-for-wordpress/screenshot-1.png b/wp-content/plugins/solr-for-wordpress/screenshot-1.png
deleted file mode 100644
index a5b74d503895d5bee03a32e56328f55e4b9d70c5..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 59183
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
GXaWGSRqyNo

diff --git a/wp-content/plugins/solr-for-wordpress/screenshot-2.png b/wp-content/plugins/solr-for-wordpress/screenshot-2.png
deleted file mode 100644
index ed10f3fec60ce5377ee4e63e873bc6342ce6caed..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 53142
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

diff --git a/wp-content/plugins/solr-for-wordpress/solr-for-wordpress.php b/wp-content/plugins/solr-for-wordpress/solr-for-wordpress.php
deleted file mode 100644
index 345d833b8..000000000
--- a/wp-content/plugins/solr-for-wordpress/solr-for-wordpress.php
+++ /dev/null
@@ -1,1519 +0,0 @@
-<?php
-/*
-Plugin Name: Solr for WordPress
-Plugin URI: http://wordpress.org/extend/plugins/solr-for-wordpress/
-Donate link: http://www.mattweber.org
-Description: Indexes, removes, and updates documents in the Solr search engine.
-Version: 0.5.1
-Author: Matt Weber
-Author URI: http://www.mattweber.org
-*/
-/*  
-    Copyright (c) 2011 Matt Weber
-
-    Permission is hereby granted, free of charge, to any person obtaining a copy
-    of this software and associated documentation files (the "Software"), to deal
-    in the Software without restriction, including without limitation the rights
-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    copies of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be included in
-    all copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-    THE SOFTWARE.
-*/
-
-global $wp_version, $version;
-
-$version = '0.5.1';
-
-$errmsg = __('Solr for WordPress requires WordPress 3.0 or greater. ', 'solr4wp');
-if (version_compare($wp_version, '3.0', '<')) {
-    exit ($errmsg);
-}
-
-require_once(dirname(__FILE__) . '/SolrPhpClient/Apache/Solr/Service.php');
-
-function s4w_get_option() {
-    $indexall = FALSE;
-    $option = 'plugin_s4w_settings';
-    if (is_multisite()) {
-        $plugin_s4w_settings = get_site_option($option);
-        $indexall = $plugin_s4w_settings['s4w_index_all_sites'];
-    }
-    
-    if ($indexall) {
-        return get_site_option($option);
-    } else {
-        return get_option($option);
-    }
-}
-
-function s4w_update_option($optval) {
-    $indexall = FALSE;
-    $option = 'plugin_s4w_settings';
-    if (is_multisite()) {
-       $plugin_s4w_settings = get_site_option($option);
-       $indexall = $plugin_s4w_settings['s4w_index_all_sites'];
-    }
-    
-    if ($indexall) {
-        update_site_option($option, $optval);
-    } else {
-        update_option($option, $optval);
-    }
-}
-/**
- * Connect to the solr service
- * @param $server_id string/int its either master or array index
- * @return solr service object
- */
-function s4w_get_solr($server_id = NULL) {
-  # get the connection options
-  $plugin_s4w_settings = s4w_get_option();
-  //if the provided server_id does not exist use the default id 'master'
-  if(!$plugin_s4w_settings['s4w_server']['info'][$server_id]['host']) {
-    $server_id = $plugin_s4w_settings['s4w_server']['type']['update'];
-  }
-  $host = $plugin_s4w_settings['s4w_server']['info'][$server_id]['host'];
-  $port = $plugin_s4w_settings['s4w_server']['info'][$server_id]['port'];
-  $path = $plugin_s4w_settings['s4w_server']['info'][$server_id]['path'];
-  # double check everything has been set
-  if ( ! ($host and $port and $path) ) {
-    syslog(LOG_ERR,"host, port or path are empty, host:$host, port:$port, path:$path");
-    return NULL;
-  }
-
-  # create the solr service object
-  $solr = new Apache_Solr_Service($host, $port, $path);
-
-  return $solr;
-}
-
-
-/**
- * check if the server by pinging it
- * @param server if wanting to ping a different 
- *        server than default provide name
- * @return boolean
- */
-function s4w_ping_server($server_id = NULL) {
-  $solr = s4w_get_solr($server);
-  $ping = FALSE;
-  # if we want to check if the server is alive, ping it
-  if ($solr->ping()) {
-    $ping = TRUE;
-  }
-  return $ping;
-}
-
-function s4w_build_document( $post_info, $domain = NULL, $path = NULL) {
-    $doc = NULL;
-    $plugin_s4w_settings = s4w_get_option();
-    $exclude_ids = $plugin_s4w_settings['s4w_exclude_pages'];
-    $categoy_as_taxonomy = $plugin_s4w_settings['s4w_cat_as_taxo'];
-    $index_comments = $plugin_s4w_settings['s4w_index_comments'];
-    $index_custom_fields = $plugin_s4w_settings['s4w_index_custom_fields'];
-    
-    if ($post_info) {
-        
-        # check if we need to exclude this document
-        if (is_multisite() && in_array(substr(site_url(),7) . $post_info->ID, (array)$exclude_ids)) {
-            return NULL;
-        } else if ( !is_multisite() && in_array($post_info->ID, (array)$exclude_ids) ) {
-            return NULL;
-        }
-        
-        $doc = new Apache_Solr_Document();
-        $auth_info = get_userdata( $post_info->post_author );
-        
-        # wpmu specific info
-        if (is_multisite()) {
-            // if we get here we expect that we've "switched" what blog we're running
-            // as
-            
-            if ($domain == NULL)
-                $domain = $current_blog->domain;
-            
-            if ($path == NULL)
-                $path = $current_blog->path;
-            
-            
-            $blogid = get_blog_id_from_url($domain, $path);
-            $doc->setField( 'id', $domain . $path . $post_info->ID );
-            $doc->setField( 'permalink', get_blog_permalink($blogid, $post_info->ID));
-            $doc->setField( 'blogid', $blogid );
-            $doc->setField( 'blogdomain', $domain );
-            $doc->setField( 'blogpath', $path );
-            $doc->setField( 'wp', 'multisite');
-        } else {
-            $doc->setField( 'id', $post_info->ID );
-            $doc->setField( 'permalink', get_permalink( $post_info->ID ) );
-            $doc->setField( 'wp', 'wp');
-        }
-        
-        $numcomments = 0;
-        if ($index_comments) {
-            $comments = get_comments("status=approve&post_id={$post_info->ID}");
-            foreach ($comments as $comment) {
-                $doc->addField( 'comments', $comment->comment_content );
-                $numcomments += 1;
-            }
-        }
-           
-        $doc->setField( 'title', $post_info->post_title );
-        $doc->setField( 'content', strip_tags($post_info->post_content) );
-        $doc->setField( 'numcomments', $numcomments );
-        $doc->setField( 'author', $auth_info->display_name );
-        $doc->setField( 'author_s', get_author_posts_url($auth_info->ID, $auth_info->user_nicename));
-        $doc->setField( 'type', $post_info->post_type );
-        $doc->setField( 'date', s4w_format_date($post_info->post_date_gmt) );
-        $doc->setField( 'modified', s4w_format_date($post_info->post_modified_gmt) );
-        $doc->setField( 'displaydate', $post_info->post_date );
-        $doc->setField( 'displaymodified', $post_info->post_modified );
-        
-        $categories = get_the_category($post_info->ID);
-        if ( ! $categories == NULL ) {
-            foreach( $categories as $category ) {
-                if ($categoy_as_taxonomy) {
-                    $doc->addField('categories', get_category_parents($category->cat_ID, FALSE, '^^'));
-                } else {
-                    $doc->addField('categories', $category->cat_name);
-                }
-            }
-        }
-        
-        //get all the taxonomy names used by wp
-        $taxonomies = (array)get_taxonomies(array('_builtin'=>FALSE),'names');
-        foreach($taxonomies as $parent) {
-          $terms = get_the_terms( $post_info->ID, $parent );
-          if ((array) $terms === $terms) {
-            //we are creating *_taxonomy as dynamic fields using our schema
-            //so lets set up all our taxonomies in that format
-            $parent = $parent."_taxonomy";
-            foreach ($terms as $term) {
-              $doc->addField($parent, $term->name);
-            }
-          }
-        }
-        
-        $tags = get_the_tags($post_info->ID);
-        if ( ! $tags == NULL ) { 
-            foreach( $tags as $tag ) {
-                $doc->addField('tags', $tag->name);
-            }
-        }
-        
-        if (count($index_custom_fields)>0 && count($custom_fields = get_post_custom($post_info->ID))) {
-        	foreach ((array)$index_custom_fields as $field_name ) {
-          	$field = (array)$custom_fields[$field_name];
-    				foreach ( $field as $key => $value ) {
-    					$doc->addField($field_name . '_str', $value);
-    					$doc->addField($field_name . '_srch', $value);
-    				}
-        	}
-        }
-    } else {
-        // this will fire during blog sign up on multisite, not sure why
-        _e('Post Information is NULL', 'solr4wp');
-    }
-    return $doc;
-}
-
-function s4w_format_date( $thedate ) {
-    $datere = '/(\d{4}-\d{2}-\d{2})\s(\d{2}:\d{2}:\d{2})/';
-    $replstr = '${1}T${2}Z';
-    return preg_replace($datere, $replstr, $thedate);
-}
-
-function s4w_post( $documents, $commit = TRUE, $optimize = FALSE) { 
-    try {
-        $solr = s4w_get_solr();
-        if ( ! $solr == NULL ) {
-            
-            if ($documents) {
-                syslog(LOG_INFO,"posting " . count($documents) . " documents for blog:" . get_bloginfo('wpurl'));
-                $solr->addDocuments( $documents );
-            }
-            
-            if ($commit) {
-               syslog(LOG_INFO,"telling Solr to commit");
-                $solr->commit();
-            }
-            
-            if ($optimize) {
-                $solr->optimize();
-            }
-        }
-        else {
-          syslog(LOG_ERR, "failed to get a solr instance created");
-        }
-    } catch ( Exception $e ) {
-        syslog(LOG_INFO,"ERROR: " . $e->getMessage());
-        //echo $e->getMessage();
-    }
-}
-
-function s4w_optimize() {
-    try {
-        $solr = s4w_get_solr();
-        if ( ! $solr == NULL ) {
-            $solr->optimize();
-        }
-    } catch ( Exception $e ) {
-        syslog(LOG_ERR,$e->getMessage());
-    }
-}
-
-function s4w_delete( $doc_id ) {
-    try {
-        $solr = s4w_get_solr();
-        if ( ! $solr == NULL ) {
-            $solr->deleteById( $doc_id );
-            $solr->commit();
-        }
-    } catch ( Exception $e ) {
-        syslog(LOG_ERR,$e->getMessage());
-    }
-}
-
-function s4w_delete_all() {
-    try {
-        $solr = s4w_get_solr();
-        if ( ! $solr == NULL ) {
-            $solr->deleteByQuery( '*:*' );
-            $solr->commit();
-        }
-    } catch ( Exception $e ) {
-        echo $e->getMessage();
-    }
-}
-
-function s4w_delete_blog($blogid) {
-    try {
-        $solr = s4w_get_solr();
-        if ( ! $solr == NULL ) {
-            $solr->deleteByQuery( "blogid:{$blogid}" );
-            $solr->commit();
-        }
-    } catch ( Exception $e ) {
-        echo $e->getMessage();
-    }
-}
-
-function s4w_load_blog_all($blogid) {
-    global $wpdb;
-    $documents = array();
-    $cnt = 0;
-    $batchsize = 10;
-    
-    $bloginfo = get_blog_details($blogid, FALSE);
-   
-    if ($bloginfo->public && !$bloginfo->archived && !$bloginfo->spam && !$bloginfo->deleted) {
-        $postids = $wpdb->get_results("SELECT ID FROM {$wpdb->base_prefix}{$blogid}_posts WHERE post_status = 'publish';");
-        for ($idx = 0; $idx < count($postids); $idx++) {
-            $postid = $ids[$idx];
-            $documents[] = s4w_build_document( get_blog_post($blogid, $postid->ID), $bloginfo->domain, $bloginfo->path );
-            $cnt++;
-            if ($cnt == $batchsize) {
-                s4w_post($documents);
-                $cnt = 0;
-                $documents = array();
-            }
-        }
-        
-        if ($documents) {
-            s4w_post($documents);
-        }
-    }
-}
-
-function s4w_handle_modified( $post_id ) {
-    global $current_blog;
-    $post_info = get_post( $post_id );
-    $plugin_s4w_settings = s4w_get_option();
-    $index_pages = $plugin_s4w_settings['s4w_index_pages'];
-    $index_posts = $plugin_s4w_settings['s4w_index_posts'];
-    
-	s4w_handle_status_change( $post_id, $post_info );
-
-    if (($index_pages && $post_info->post_type == 'page') || ($index_posts && $post_info->post_type == 'post')) {
-        
-        # make sure this blog is not private or a spam if indexing on a multisite install
-        if (is_multisite() && ($current_blog->public != 1 || $current_blog->spam == 1 || $current_blog->archived == 1)) {
-            return;
-        }
-        
-        $docs = array();
-        $doc = s4w_build_document( $post_info );
-        if ( $doc ) {
-            $docs[] = $doc;
-            s4w_post( $docs );
-        }
-    }
-}
-
-function s4w_handle_status_change( $post_id, $post_info = null ) {
-    global $current_blog;
-	
-	if ( ! $post_info ){
-    	$post_info = get_post( $post_id );
-	}
-	
-    $plugin_s4w_settings = s4w_get_option();
-    $private_page = $plugin_s4w_settings['s4w_private_page'];
-    $private_post = $plugin_s4w_settings['s4w_private_post'];
-    
-    if ( ($private_page && $post_info->post_type == 'page') || ($private_post && $post_info->post_type == 'post') ) {
-	 	/**
-		 * We need to check if the status of the post has changed.
-	     * Inline edits won't have the prev_status of original_post_status,
-	     * instead we check of the _inline_edit variable is present in the $_POST variable
-	    */
-	    if ( ($_POST['prev_status'] == 'publish' || $_POST['original_post_status'] == 'publish' || 
-				( isset( $_POST['_inline_edit'] ) && !empty( $_POST['_inline_edit']) ) )  && 
-				($post_info->post_status == 'draft' || $post_info->post_status == 'private') ) {
-	
-			if (is_multisite()) {
-                s4w_delete( $current_blog->domain . $current_blog->path . $post_info->ID );
-          	} else {
-         		s4w_delete( $post_info->ID );
-          	}
-        }
-    }
-}
-
-
-function s4w_handle_delete( $post_id ) {
-    global $current_blog;
-    $post_info = get_post( $post_id );
-    $plugin_s4w_settings = s4w_get_option();
-    $delete_page = $plugin_s4w_settings['s4w_delete_page'];
-    $delete_post = $plugin_s4w_settings['s4w_delete_post'];
-    
-    if ( ($delete_page && $post_info->post_type == 'page') || ($delete_post && $post_info->post_type == 'post') ) {
-        if (is_multisite()) {
-            s4w_delete( $current_blog->domain . $current_blog->path . $post_info->ID );
-        } else {
-            s4w_delete( $post_info->ID );
-        }
-    }
-}
-
-function s4w_handle_deactivate_blog($blogid) {
-    s4w_delete_blog($blogid);
-}
-
-function s4w_handle_activate_blog($blogid) {
-    s4w_apply_config_to_blog($blogid);
-    s4w_load_blog_all($blogid);
-}
-
-function s4w_handle_archive_blog($blogid) {
-    s4w_delete_blog($blogid);
-}
-
-function s4w_handle_unarchive_blog($blogid) {
-    s4w_apply_config_to_blog($blogid);
-    s4w_load_blog_all($blogid);
-}
-
-function s4w_handle_spam_blog($blogid) {
-    s4w_delete_blog($blogid);
-}
-
-function s4w_handle_unspam_blog($blogid) {
-    s4w_apply_config_to_blog($blogid);
-    s4w_load_blog_all($blogid);
-}
-
-function s4w_handle_delete_blog($blogid) {
-    s4w_delete_blog($blogid);
-}
-
-function s4w_handle_new_blog($blogid) {
-    s4w_apply_config_to_blog($blogid);
-    s4w_load_blog_all($blogid);
-}
-
-function s4w_load_all_posts($prev) {
-    global $wpdb, $current_blog, $current_site;
-    $documents = array();
-    $cnt = 0;
-    $batchsize = 250;
-    $last = "";
-    $found = FALSE;
-    $end = FALSE;
-    $percent = 0;
-    //multisite logic is decided s4w_get_option
-    $plugin_s4w_settings = s4w_get_option();
-    $blog_id = $blog->blog_id;
-    if ($plugin_s4w_settings['s4w_index_all_sites']) {
-
-        // there is potential for this to run for an extended period of time, depending on the # of blgos
-        syslog(LOG_ERR,"starting batch import, setting max execution time to unlimited"); 
-        ini_set('memory_limit', '1024M');
-        set_time_limit(0);
-
-        // get a list of blog ids
-        $bloglist = $wpdb->get_col("SELECT * FROM {$wpdb->base_prefix}blogs WHERE spam = 0 AND deleted = 0", 0);
-        syslog(LOG_INFO,"pushing posts from " . count($bloglist) . " blogs into Solr");
-        foreach ($bloglist as $bloginfo) {
-
-            // for each blog we need to import we get their id 
-            // and tell wordpress to switch to that blog
-            $blog_id = trim($bloginfo);
-            syslog(LOG_INFO,"switching to blogid $blog_id");
-
-            // attempt to save some memory by flushing wordpress's cache
-            wp_cache_flush();
-
-            // everything just works better if we tell wordpress
-            // to switch to the blog we're using, this is a multi-site
-            // specific function
-            switch_to_blog($blog_id);
-
-            // now we actually gather the blog posts
-            $postids = $wpdb->get_results("SELECT ID FROM {$wpdb->base_prefix}{$bloginfo}_posts WHERE post_status = 'publish' AND post_type = 'post' ORDER BY ID;");
-            $postcount = count($postids);
-            syslog(LOG_INFO,"building $postcount documents for " . substr(get_bloginfo('wpurl'),7));
-            for ($idx = 0; $idx < $postcount; $idx++) {
-                
-                $postid = $postids[$idx]->ID;
-                $last = $postid;
-                $percent = (floatval($idx) / floatval($postcount)) * 100;
-                if ($prev && !$found) {
-                    if ($postid === $prev) {
-                        $found = TRUE;
-                    }
-                    
-                    continue;
-                }
-                
-                if ($idx === $postcount - 1) {
-                    $end = TRUE;
-                }
-                
-                // using wpurl is better because it will return the proper
-                // URL for the blog whether it is a subdomain install or otherwise
-                $documents[] = s4w_build_document( get_blog_post($blog_id, $postid), substr(get_bloginfo('wpurl'),7), $current_site->path );
-                $cnt++;
-                if ($cnt == $batchsize) {
-                    s4w_post( $documents, false, false);
-                    s4w_post(false, true, false);
-                    wp_cache_flush();
-                    $cnt = 0;
-                    $documents = array();
-                }
-            }
-            // post the documents to Solr
-            // and reset the batch counters
-            s4w_post( $documents, false, false);
-            s4w_post(false, true, false);
-            $cnt = 0;
-            $documents = array();
-            syslog(LOG_INFO,"finished building $postcount documents for " . substr(get_bloginfo('wpurl'),7));
-            wp_cache_flush();
-        }
-
-        // done importing so lets switch back to the proper blog id
-       restore_current_blog();
-    } else {
-        $posts = $wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post' ORDER BY ID;" );
-        $postcount = count($posts);
-        for ($idx = 0; $idx < $postcount; $idx++) {
-            $postid = $posts[$idx]->ID;
-            $last = $postid;
-            $percent = (floatval($idx) / floatval($postcount)) * 100;
-            if ($prev && !$found) {
-                if ($postid === $prev) {
-                    $found = TRUE;
-                }
-                continue;
-            }
-            
-            if ($idx === $postcount - 1) {
-                $end = TRUE;
-            }
-            $documents[] = s4w_build_document( get_post($postid) );
-            $cnt++;
-            if ($cnt == $batchsize) {
-                s4w_post( $documents, FALSE, FALSE);
-                $cnt = 0;
-                $documents = array();
-                wp_cache_flush();
-                break;
-            }
-        }
-    }
-    
-    if ( $documents ) {
-        s4w_post( $documents , FALSE, FALSE);
-    }
-    
-    if ($end) {
-        s4w_post(FALSE, TRUE, FALSE);
-        printf("{\"type\": \"post\", \"last\": \"%s\", \"end\": true, \"percent\": \"%.2f\"}", $last, $percent);
-    } else {
-        printf("{\"type\": \"post\", \"last\": \"%s\", \"end\": false, \"percent\": \"%.2f\"}", $last, $percent);
-    }
-}
-
-function s4w_load_all_pages($prev) {
-    global $wpdb;
-    $documents = array();
-    $cnt = 0;
-    $batchsize = 100;
-    $last = "";
-    $found = FALSE;
-    $end = FALSE;
-    $percent = 0;
-    $plugin_s4w_settings = s4w_get_option();
-    if ($plugin_s4w_settings['s4w_index_all_sites']) {
-        $bloglist = $wpdb->get_col("SELECT * FROM {$wpdb->base_prefix}blogs", 0);
-        foreach ($bloglist as $bloginfo) {
-            $postids = $wpdb->get_results("SELECT ID FROM {$wpdb->base_prefix}{$bloginfo->blog_id}_posts WHERE post_status = 'publish' AND post_type = 'page' ORDER BY ID;");
-            $postcount = count($postids);
-            for ($idx = 0; $idx < $postcount; $idx++) {
-                $postid = $postids[$idx]->ID;
-                $last = $postid;
-                $percent = (floatval($idx) / floatval($postcount)) * 100;
-                if ($prev && !$found) {
-                    if ($postid === $prev) {
-                        $found = TRUE;
-                    }
-                    
-                    continue;
-                }
-                
-                if ($idx === $postcount - 1) {
-                    $end = TRUE;
-                }
-                
-                $documents[] = s4w_build_document( get_blog_post($bloginfo->blog_id, $postid), $bloginfo->domain, $bloginfo->path );
-                $cnt++;
-                if ($cnt == $batchsize) {
-                    s4w_post( $documents, FALSE, FALSE);
-                    $cnt = 0;
-                    $documents = array();
-                    break;
-                }
-            }
-        }        
-    } else {
-        $pages = $wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'page' ORDER BY ID;" );
-        $pagecount = count($pages);
-        for ($idx = 0; $idx < $pagecount; $idx++) {
-            $pageid = $pages[$idx]->ID;
-            $last = $pageid;
-            $percent = (floatval($idx) / floatval($pagecount)) * 100;
-            if ($prev && !$found) {
-                if ($pageid === $prev) {
-                    $found = TRUE;
-                }
-                
-                continue;
-            }
-            
-            if ($idx === $pagecount - 1) {
-                $end = TRUE;
-            }
-            
-            $documents[] = s4w_build_document( get_post($pageid) );
-            $cnt++;
-            if ($cnt == $batchsize) {
-                s4w_post( $documents, FALSE, FALSE);
-                $cnt = 0;
-                $documents = array();
-                break;
-            }
-        }
-    }
-    
-    if ($documents) {
-        s4w_post( $documents, FALSE, FALSE);
-    }
-    
-    if ($end) {
-        s4w_post(FALSE, TRUE, FALSE);
-        printf("{\"type\": \"page\", \"last\": \"%s\", \"end\": true, \"percent\": \"%.2f\"}", $last, $percent);
-    } else {
-        printf("{\"type\": \"page\", \"last\": \"%s\", \"end\": false, \"percent\": \"%.2f\"}", $last, $percent);
-    }
-}
-
-function s4w_search_form() {
-    $sort = $_GET['sort'];
-    $order = $_GET['order'];
-    $server = $_GET['server'];
-    
-    
-    if ($sort == 'date') {
-        $sortval = __('<option value="score">Score</option><option value="date" selected="selected">Date</option><option value="modified">Last Modified</option>');
-    } else if ($sort == 'modified') {
-        $sortval = __('<option value="score">Score</option><option value="date">Date</option><option value="modified" selected="selected">Last Modified</option>');
-    } else {
-        $sortval = __('<option value="score" selected="selected">Score</option><option value="date">Date</option><option value="modified">Last Modified</option>');
-    }
-    
-    if ($order == 'asc') {
-        $orderval = __('<option value="desc">Descending</option><option value="asc" selected="selected">Ascending</option>');
-    } else {
-        $orderval = __('<option value="desc" selected="selected">Descending</option><option value="asc">Ascending</option>');
-    }
-    //if server id has been defined keep hold of it
-    if($server) {
-      $serverval = '<input name="server" type="hidden" value="'.$server.'" />';
-    }
-    $form = __('<form name="searchbox" method="get" id="searchbox" action=""><input type="text" id="qrybox" name="s" value="%s"/><input type="submit" id="searchbtn" /><label for="sortselect" id="sortlabel">Sort By:</label><select name="sort" id="sortselect">%s</select><label for="orderselect" id="orderlabel">Order By:</label><select name="order" id="orderselect">%s</select>%s</form>');
-    
-    printf($form, htmlspecialchars(stripslashes($_GET['s'])), $sortval, $orderval,$serverval);
-}
-
-function s4w_search_results() {
-    $qry = stripslashes($_GET['s']);
-    $offset = $_GET['offset'];
-    $count = $_GET['count'];
-    $fq = $_GET['fq'];
-    $sort = $_GET['sort'];
-    $order = $_GET['order'];
-    $isdym = $_GET['isdym'];
-    $server = $_GET['server'];
-    
-    $plugin_s4w_settings = s4w_get_option();
-    $output_info = $plugin_s4w_settings['s4w_output_info'];
-    $output_pager = $plugin_s4w_settings['s4w_output_pager'];
-    $output_facets = $plugin_s4w_settings['s4w_output_facets'];
-    $results_per_page = $plugin_s4w_settings['s4w_num_results'];
-    $categoy_as_taxonomy = $plugin_s4w_settings['s4w_cat_as_taxo'];
-    $dym_enabled = $plugin_s4w_settings['s4w_enable_dym'];
-    $out = array();
-    
-    if ( ! $qry ) {
-        $qry = '';
-    }
-    //if server value has been set lets set it up here 
-    // and add it to all the search urls henceforth
-    if ($server) {
-      $serverval = '&server='.$server;
-    }
-    # set some default values
-    if ( ! $offset ) {
-        $offset = 0;
-    }
-    
-    # only use default if not specified in post information
-    if ( ! $count ) {
-        $count = $results_per_page;
-    }
-        
-    if ( ! $fq ) {
-        $fq = '';
-    }
-    
-    if ( $sort && $order ) {
-        $sortby = $sort . ' ' . $order;
-    } else {
-        $sortby = '';
-        $order = '';
-    }
-    
-    if ( ! $isdym ) {
-        $isdym = 0;
-    }
-    
-    $fqstr = '';
-    $fqitms = split('\|\|', stripslashes($fq));
-    $selectedfacets = array();
-    foreach ($fqitms as $fqitem) {
-        if ($fqitem) {
-            $splititm = split(':', $fqitem, 2);
-            $selectedfacet = array();
-            $selectedfacet['name'] = sprintf(__("%s:%s"), ucwords(preg_replace('/_str$/i', '', $splititm[0])), str_replace("^^", "/", $splititm[1]));
-            $removelink = '';
-            foreach($fqitms as $fqitem2) {
-                if ($fqitem2 && !($fqitem2 === $fqitem)) {
-                    $splititm2 = split(':', $fqitem2, 2);
-                    $removelink = $removelink . urlencode('||') . $splititm2[0] . ':' . urlencode($splititm2[1]);
-                }
-            }
-            
-            if ($removelink) {
-                $selectedfacet['removelink'] = htmlspecialchars(sprintf(__("?s=%s&fq=%s"), urlencode($qry), $removelink));
-            } else {
-                $selectedfacet['removelink'] = htmlspecialchars(sprintf(__("?s=%s"), urlencode($qry)));
-            }
-            //if server is set add it on the end of the url
-            $selectedfacet['removelink'] .=$serverval;
-            
-            $fqstr = $fqstr . urlencode('||') . $splititm[0] . ':' . urlencode($splititm[1]);
-            
-            $selectedfacets[] = $selectedfacet;
-        }
-    }
-
-    if ($qry) {
-        $results = s4w_query( $qry, $offset, $count, $fqitms, $sortby, $server);
-
-        if ($results) {
-            $response = $results->response;
-            $header = $results->responseHeader;
-            $teasers = get_object_vars($results->highlighting);
-            $didyoumean = $results->spellcheck->suggestions->collation;
-            
-            if ($output_info) {
-                $out['hits'] = sprintf(__("%d"), $response->numFound);
-                $out['qtime'] = sprintf(__("%.3f"), $header->QTime/1000);
-                
-                if ($didyoumean && !$isdym && $dym_enabled) {
-                    $dymout = array();
-                    $dymout['term'] = htmlspecialchars($didyoumean);
-                    $dymout['link'] = htmlspecialchars(sprintf(__("?s=%s&isdym=1"), urlencode($didyoumean)));
-                    //if server is set add it on the end of the url
-                    $selectedfacet['removelink'] .=$serverval;
-                    $out['dym'] = $dymout.$serverval;
-                }   
-            }
-                        
-            if ($output_pager) {      
-                # calculate the number of pages
-                $numpages = ceil($response->numFound / $count);
-                $currentpage = ceil($offset / $count) + 1;
-                $pagerout = array();
-                
-                if ($numpages == 0) {
-                    $numpages = 1;
-                }
-                
-                foreach (range(1, $numpages) as $pagenum) {
-                    if ( $pagenum != $currentpage ) {
-                        $offsetnum = ($pagenum - 1) * $count;
-                        $pageritm = array();
-                        $pageritm['page'] = sprintf(__("%d"), $pagenum);
-                        $pagerlink = sprintf(__("?s=%s&offset=%d&count=%d"), urlencode($qry), $offsetnum, $count);
-                        if($fqstr) $pagerlink .= '&fq=' . $fqstr;
-                        $pageritm['link'] = htmlspecialchars($pagerlink);
-                        //if server is set add it on the end of the url
-                        $selectedfacet['removelink'] .=$serverval;
-                        $pagerout[] = $pageritm;
-                    } else {
-                        $pageritm = array();
-                        $pageritm['page'] = sprintf(__("%d"), $pagenum);
-                        $pageritm['link'] = "";
-                        $pagerout[] = $pageritm;
-                    }
-                }
-                
-                $out['pager'] = $pagerout;
-            }
-            
-            if ($output_facets) {
-                # handle facets
-                $facetout = array();
-
-                if($results->facet_counts) {
-                    foreach ($results->facet_counts->facet_fields as $facetfield => $facet) {
-                        if ( ! get_object_vars($facet) ) {
-                            continue;
-                        }
-                        
-                        $facetinfo = array();
-                        $facetitms = array();
-                        $facetinfo['name'] = ucwords(preg_replace('/_str$/i', '', $facetfield));
-                        
-                        # categories is a taxonomy
-                        if ($categoy_as_taxonomy && $facetfield == 'categories') {
-                            # generate taxonomy and counts
-                            $taxo = array();
-                            foreach ($facet as $facetval => $facetcnt) {
-                                $taxovals = explode('^^', rtrim($facetval, '^^'));
-                                $taxo = s4w_gen_taxo_array($taxo, $taxovals);
-                            }
-                            
-                            $facetitms = s4w_get_output_taxo($facet, $taxo, '', $fqstr.$serverval, $facetfield);
-                            
-                        } else {
-                            foreach ($facet as $facetval => $facetcnt) {
-                                $facetitm = array();
-                                $facetitm['count'] = sprintf(__("%d"), $facetcnt);
-                                $facetitm['link'] = htmlspecialchars(sprintf(__('?s=%s&fq=%s:%s%s', 'solr4wp'), urlencode($qry), $facetfield, urlencode('"' . $facetval . '"'), $fqstr));
-                                //if server is set add it on the end of the url
-                                $facetitm['link'] .=$serverval;
-                                $facetitm['name'] = $facetval;
-                                $facetitms[] = $facetitm; 
-                            }
-                        }
-                        
-                        $facetinfo['items'] = $facetitms;
-                        $facetout[$facetfield] = $facetinfo;
-                    }
-                }
-                
-                $facetout['selected'] = $selectedfacets;
-                $out['facets'] = $facetout;
-            }
-            
-            $resultout = array();
-
-            if ($response->numFound != 0) {                 
-                foreach ( $response->docs as $doc ) {
-                    $resultinfo = array();
-                    $docid = strval($doc->id);
-                    $resultinfo['permalink'] = $doc->permalink;
-                    $resultinfo['title'] = $doc->title;
-                    $resultinfo['author'] = $doc->author;
-                    $resultinfo['authorlink'] = htmlspecialchars($doc->author_s);
-                    $resultinfo['numcomments'] = $doc->numcomments;
-                    $resultinfo['date'] = $doc->displaydate;
-
-                    if ($doc->numcomments === 0) { 
-                        $resultinfo['comment_link'] = $doc->permalink . "#respond";
-                    } else {
-                        $resultinfo['comment_link'] = $doc->permalink . "#comments";
-                    }
-
-                    $resultinfo['score'] = $doc->score;
-                    $resultinfo['id'] = $docid;
-                    $docteaser = $teasers[$docid];
-                    if ($docteaser->content) {
-                        $resultinfo['teaser'] = sprintf(__("...%s..."), implode("...", $docteaser->content));
-                    } else {
-                        $words = split(' ', $doc->content);
-                        $teaser = implode(' ', array_slice($words, 0, 30));
-                        $resultinfo['teaser'] = sprintf(__("%s..."), $teaser);
-                    }
-                    $resultout[] = $resultinfo;
-                }
-            }
-            $out['results'] = $resultout;
-        }
-    } else {
-        $out['hits'] = "0";
-    }
-
-    # pager and results count helpers
-    $out['query'] = htmlspecialchars($qry);
-    $out['offset'] = strval($offset);
-    $out['count'] = strval($count);
-    $out['firstresult'] = strval($offset + 1);
-    $out['lastresult'] = strval(min($offset + $count, $out['hits']));
-    $out['sortby'] = $sortby;
-    $out['order'] = $order;
-    $out['sorting'] = array(
-                        'scoreasc' => htmlspecialchars(sprintf('?s=%s&fq=%s&sort=score&order=asc%s', urlencode($qry), stripslashes($fq), $serverval)),
-                        'scoredesc' => htmlspecialchars(sprintf('?s=%s&fq=%s&sort=score&order=desc%s', urlencode($qry), stripslashes($fq), $serverval)),
-                        'dateasc' => htmlspecialchars(sprintf('?s=%s&fq=%s&sort=date&order=asc%s', urlencode($qry), stripslashes($fq), $serverval)),
-                        'datedesc' => htmlspecialchars(sprintf('?s=%s&fq=%s&sort=date&order=desc%s', urlencode($qry), stripslashes($fq), $serverval)),
-                        'modifiedasc' => htmlspecialchars(sprintf('?s=%s&fq=%s&sort=modified&order=asc%s', urlencode($qry), stripslashes($fq), $serverval)),
-                        'modifieddesc' => htmlspecialchars(sprintf('?s=%s&fq=%s&sort=modified&order=desc%s', urlencode($qry), stripslashes($fq), $serverval)),
-                        'commentsasc' => htmlspecialchars(sprintf('?s=%s&fq=%s&sort=numcomments&order=asc%s', urlencode($qry), stripslashes($fq), $serverval)),
-                        'commentsdesc' => htmlspecialchars(sprintf('?s=%s&fq=%s&sort=numcomments&order=desc%s', urlencode($qry), stripslashes($fq), $serverval))
-                    );
-    
-    return $out;
-}
-
-function s4w_print_facet_items($items, $pre = "<ul>", $post = "</ul>", $before = "<li>", $after = "</li>",
-                                $nestedpre = "<ul>", $nestedpost = "</ul>", $nestedbefore = "<li>", $nestedafter = "</li>") {
-    if (!$items) {
-        return;
-    }
-    printf(__("%s\n"), $pre);
-    foreach ($items as $item) {
-        printf(__("%s<a href=\"%s\">%s (%s)</a>%s\n"), $before, $item["link"], $item["name"], $item["count"], $after);
-        $item_items = isset($item["items"]) ? true : false;
-        
-        if ($item_items) {
-            s4w_print_facet_items($item["items"], $nestedpre, $nestedpost, $nestedbefore, $nestedafter, 
-                                                  $nestedpre, $nestedpost, $nestedbefore, $nestedafter);
-        }
-    }
-    printf(__("%s\n"), $post);
-}
-
-function s4w_get_output_taxo($facet, $taxo, $prefix, $fqstr, $field) {
-    $qry = stripslashes($_GET['s']);
-    
-    if (count($taxo) == 0) {
-        return;
-    } else {
-        $facetitms = array();
-        foreach ($taxo as $taxoname => $taxoval) {                    
-            $newprefix = $prefix . $taxoname . '^^';
-            $facetvars = get_object_vars($facet);
-            $facetitm = array();
-            $facetitm['count'] = sprintf(__("%d"), $facetvars[$newprefix]);
-            $facetitm['link'] = htmlspecialchars(sprintf(__('?s=%s&fq=%s:%s%s', 'solr4wp'), $qry, $field,  urlencode('"' . $newprefix . '"'), $fqstr));
-            $facetitm['name'] = $taxoname;
-            $outitms = s4w_get_output_taxo($facet, $taxoval, $newprefix, $fqstr, $field);
-            if ($outitms) {
-                $facetitm['items'] = $outitms;
-            }
-            $facetitms[] = $facetitm;
-        }
-        
-        return $facetitms;
-    }
-}
-
-function s4w_gen_taxo_array($in, $vals) {
-    if (count($vals) == 1) {
-        if ( ! $in[$vals[0]]) {
-            $in[$vals[0]] = array();
-        }
-        return $in;
-    } else {
-        $in[$vals[0]] = s4w_gen_taxo_array($in[$vals[0]], array_slice($vals, 1));
-        return $in;
-    }
-}
-
-/**
- * Query the required server
- * passes all parameters to the appropriate function based on the server name
- * This allows for extensible server/core based query functions.
- * TODO allow for similar theme/output function
- */
-function s4w_query( $qry, $offset, $count, $fq, $sortby, $server = NULL) {
-  //NOTICE: does this needs to be cached to stop the db being hit to grab the options everytime search is being done.
-  $plugin_s4w_settings = s4w_get_option();
-  //if no server has been provided use the default server
-  if(!$server) {
-    $server = $plugin_s4w_settings['s4w_server']['type']['search'];
-  }
-  $solr = s4w_get_solr($server);
-  if (!function_exists($function = 's4w_'.$server.'_query')) {
-    $function = 's4w_master_query';
-  }
-  
-  return $function($solr, $qry, $offset, $count, $fq, $sortby, $plugin_s4w_settings);
-}
-
-function s4w_master_query($solr, $qry, $offset, $count, $fq, $sortby, &$plugin_s4w_settings) {
-    $response = NULL;
-    $facet_fields = array();
-    $number_of_tags = $plugin_s4w_settings['s4w_max_display_tags'];
-    
-    if ($plugin_s4w_settings['s4w_facet_on_categories']) {
-      $facet_fields[] = 'categories';
-    }
-    
-    $facet_on_tags = $plugin_s4w_settings['s4w_facet_on_tags'];
-    if ($facet_on_tags) {
-      $facet_fields[] = 'tags';
-    }
-    
-    if ($plugin_s4w_settings['s4w_facet_on_author']) {
-      $facet_fields[] = 'author';
-    }
-    
-    if ($plugin_s4w_settings['s4w_facet_on_type']) {
-      $facet_fields[] = 'type';
-    }
-    
-    
-    $facet_on_custom_taxonomy = $plugin_s4w_settings['s4w_facet_on_taxonomy'];
-    if (count($facet_on_custom_taxonomy)) {
-      $taxonomies = (array)get_taxonomies(array('_builtin'=>FALSE),'names');
-      foreach($taxonomies as $parent) {
-        $facet_fields[] = $parent."_taxonomy";
-      }
-    }
-    
-    $facet_on_custom_fields = $plugin_s4w_settings['s4w_facet_on_custom_fields'];
-    if (count($facet_on_custom_fields)) {
-        foreach ( $facet_on_custom_fields as $field_name ) {
-        	$facet_fields[] = $field_name . '_str';
-        }
-    }   	
-    
-    if ( $solr ) {
-        $params = array();
-        $params['defType'] = 'dismax';
-        $params['qf'] = 'tagssrch^5 title^10 categoriessrch^5 content^3.5 comments^1.5'; // TODO : Add "_srch" custom fields ?
-        $params['pf'] = 'title^15 text^10';
-        $params['facet'] = 'true';
-        $params['facet.field'] = $facet_fields;
-        $params['facet.mincount'] = '1';
-        $params['fq'] = $fq;
-        $params['fl'] = '*,score';
-        $params['hl'] = 'on';
-        $params['hl.fl'] = 'content';
-        $params['hl.snippets'] = '3';
-        $params['hl.fragsize'] = '50';
-        $params['sort'] = $sortby;
-        $params['spellcheck.onlyMorePopular'] = 'true';
-        $params['spellcheck.extendedResults'] = 'false';
-        $params['spellcheck.collate'] = 'true';
-        $params['spellcheck.count'] = '1';
-        $params['spellcheck'] = 'true';
-        
-        if ($facet_on_tags) {
-            $params['f.tags.facet.limit'] = $number_of_tags;
-        }
-
-        try { 
-            $response = $solr->search($qry, $offset, $count, $params);
-            if ( ! $response->getHttpStatus() == 200 ) { 
-                $response = NULL; 
-            }
-        }
-        catch(Exception $e) {
-            syslog(LOG_ERR, "failed to query solr for " . print_r($qry, true) . print_r($params,true));
-            $response = NULL;
-        }
-    }
-    
-    return $response;
-}
-
-function s4w_options_init() {
-    
-    $method = $_POST['method'];
-    if ($method === "load") {
-        $type = $_POST['type'];
-        $prev = $_POST['prev'];
-        
-        if ($type === 'post' ) {
-            s4w_load_all_posts($prev);
-            exit;
-        } else if ($type === 'page') {
-            s4w_load_all_pages($prev);
-            exit;
-        } else {
-            return;
-        }
-    }
-    register_setting('s4w-options-group', 'plugin_s4w_settings', 's4w_sanitise_options' );   
-}
-
-/**
- * Sanitises the options values
- * @param $options array of s4w settings options
- * @return $options sanitised values
- */
-function s4w_sanitise_options($options) {
-  $options['s4w_solr_host'] = wp_filter_nohtml_kses($options['s4w_solr_host']);
-  $options['s4w_solr_port'] = absint($options['s4w_solr_port']);
-  $options['s4w_solr_path'] = wp_filter_nohtml_kses($options['s4w_solr_path']);
-  $options['s4w_solr_update_host'] = wp_filter_nohtml_kses($options['s4w_solr_update_host']);
-  $options['s4w_solr_update_port'] = absint($options['s4w_solr_update_port']);
-  $options['s4w_solr_update_path'] = wp_filter_nohtml_kses($options['s4w_solr_update_path']);  
-  $options['s4w_index_pages'] = absint($options['s4w_index_pages']);
-  $options['s4w_index_posts'] = absint($options['s4w_index_posts']);
-  $options['s4w_index_comments'] = absint($options['s4w_index_comments']); 
-  $options['s4w_delete_page'] = absint($options['s4w_delete_page']); 
-  $options['s4w_delete_post'] = absint($options['s4w_delete_post']); 
-  $options['s4w_private_page'] = absint($options['s4w_private_page']); 
-  $options['s4w_private_post'] = absint($options['s4w_private_post']);
-  $options['s4w_output_info'] = absint($options['s4w_output_info']); 
-  $options['s4w_output_pager'] = absint($options['s4w_output_pager']); 
-  $options['s4w_output_facets'] = absint($options['s4w_output_facets']);
-  $options['s4w_exclude_pages'] = s4w_filter_str2list($options['s4w_exclude_pages']);
-  $options['s4w_num_results'] = absint($options['s4w_num_results']);
-  $options['s4w_cat_as_taxo'] = absint($options['s4w_cat_as_taxo']);
-  $options['s4w_max_display_tags'] = absint($options['s4w_max_display_tags']);
-  $options['s4w_facet_on_categories'] = absint($options['s4w_facet_on_categories']);
-  $options['s4w_facet_on_tags'] = absint($options['s4w_facet_on_tags'] );
-  $options['s4w_facet_on_author'] = absint($options['s4w_facet_on_author']);
-  $options['s4w_facet_on_type'] = absint($options['s4w_facet_on_type']);
-  $options['s4w_index_all_sites'] = absint($options['s4w_index_all_sites']);
-  $options['s4w_enable_dym'] = absint($options['s4w_enable_dym'] );
-  $options['s4w_connect_type'] = wp_filter_nohtml_kses($options['s4w_connect_type']);
-  $options['s4w_index_custom_fields'] = s4w_filter_str2list($options['s4w_index_custom_fields']);
-  $options['s4w_facet_on_custom_fields'] = s4w_filter_str2list($options['s4w_facet_on_custom_fields']);    
-  return $options;
-}
-
-function s4w_filter_str2list_numeric($input) {
-    $final = array();
-    if ($input != "") {
-        foreach( split(',', $input) as $val ) {
-            $val = trim($val);
-            if ( is_numeric($val) ) {
-                $final[] = $val;
-            }
-        }
-    }
-
-    return $final;
-}
-
-function s4w_filter_str2list($input) {
-    $final = array();
-    if ($input != "") {
-        foreach( split(',', $input) as $val ) {
-            $final[] = trim($val);
-        }
-    }
-
-    return $final;
-}
-
-function s4w_filter_list2str($input) {
-	if (!is_array($input)) {
-		return "";
-	}
-	
-    $outval = implode(',', $input);
-    if (!$outval) {
-        $outval = ""; 
-    }
-    
-    return $outval;
-}
-
-function s4w_add_pages() {
-    $addpage = FALSE;
-    
-    if (is_multisite() && is_site_admin()) {
-        $plugin_s4w_settings = s4w_get_option();
-        $indexall = $plugin_s4w_settings['s4w_index_all_sites'];
-        if (($indexall && is_main_blog()) || !$indexall) {
-            $addpage = TRUE;
-        }
-    } else if (!is_multisite() && is_admin()) {
-        $addpage = TRUE;
-    }
-    
-    if ($addpage) {
-        add_options_page('Solr Options', 'Solr Options', 8, __FILE__, 's4w_options_page');
-    }
-}
-
-function s4w_options_page() {
-    if ( file_exists ( dirname(__FILE__) . '/solr-options-page.php' )) {
-        include( dirname(__FILE__) . '/solr-options-page.php' );
-    } else {
-        _e("<p>Couldn't locate the options page.</p>", 'solr4wp');
-    }
-}
-
-function s4w_admin_head() {
-    // include our default css 
-    if (file_exists(dirname(__FILE__) . '/template/search.css')) {
-        printf(__("<link rel=\"stylesheet\" href=\"%s\" type=\"text/css\" media=\"screen\" />\n"), plugins_url('/template/search.css', __FILE__));
-    }
-?>
-<script type="text/javascript">
-    var $j = jQuery.noConflict();
-    
-    function switch1() {
-        if ($j('#solrconnect_single').is(':checked')) {
-            $j('#solr_admin_tab2').css('display', 'block');
-            $j('#solr_admin_tab2_btn').addClass('solr_admin_on');         
-            $j('#solr_admin_tab3').css('display', 'none');
-            $j('#solr_admin_tab3_btn').removeClass('solr_admin_on');            
-        }
-        if ($j('#solrconnect_separated').is(':checked')) {
-            $j('#solr_admin_tab2').css('display', 'none');
-            $j('#solr_admin_tab2_btn').removeClass('solr_admin_on');  
-            $j('#solr_admin_tab3').css('display', 'block');
-            $j('#solr_admin_tab3_btn').addClass('solr_admin_on');                   
-        }        
-    }
- 
-    
-    function doLoad($type, $prev) {
-        if ($prev == null) {
-            $j.post("options-general.php?page=solr-for-wordpress/solr-for-wordpress.php", {method: "load", type: $type}, handleResults, "json");
-        } else {
-            $j.post("options-general.php?page=solr-for-wordpress/solr-for-wordpress.php", {method: "load", type: $type, prev: $prev}, handleResults, "json");
-        }
-    }
-    
-    function handleResults(data) {
-        $j('#percentspan').text(data.percent + "%");
-        if (!data.end) {
-            doLoad(data.type, data.last);
-        } else {
-            $j('#percentspan').remove();
-            enableAll();
-        }
-    }
-    
-    function disableAll() {
-        $j('[name=s4w_postload]').attr('disabled','disabled');
-        $j('[name=s4w_deleteall]').attr('disabled','disabled');
-        $j('[name=s4w_init_blogs]').attr('disabled','disabled');
-        $j('[name=s4w_optimize]').attr('disabled','disabled');
-        $j('[name=s4w_pageload]').attr('disabled','disabled');
-        $j('[name=s4w_ping]').attr('disabled','disabled');
-        $j('#settingsbutton').attr('disabled','disabled');
-    }
-    
-    function enableAll() {
-        $j('[name=s4w_postload]').removeAttr('disabled');
-        $j('[name=s4w_deleteall]').removeAttr('disabled');
-        $j('[name=s4w_init_blogs]').removeAttr('disabled');
-        $j('[name=s4w_optimize]').removeAttr('disabled');
-        $j('[name=s4w_pageload]').removeAttr('disabled');
-        $j('[name=s4w_ping]').removeAttr('disabled');
-        $j('#settingsbutton').removeAttr('disabled');
-    }
-    
-    $percentspan = '<span style="font-size:1.2em;font-weight:bold;margin:20px;padding:20px" id="percentspan">0%</span>';
-    
-    $j(document).ready(function() {
-        switch1();
-        $j('[name=s4w_postload]').click(function() {
-            $j(this).after($percentspan);
-            disableAll();
-            doLoad("post", null);
-            $j(this).preventDefault();
-        });
-        
-        $j('[name=s4w_pageload]').click(function() {
-            $j(this).after($percentspan);
-            disableAll();
-            doLoad("page", null);
-            $j(this).preventDefault();
-        });
-    });
-    
-</script> <?php
-}
-
-function s4w_default_head() {
-    // include our default css 
-    if (file_exists(dirname(__FILE__) . '/template/search.css')) {
-        printf(__("<link rel=\"stylesheet\" href=\"%s\" type=\"text/css\" media=\"screen\" />\n"), plugins_url('/template/search.css', __FILE__));
-    }
-}
-
-function s4w_autosuggest_head() {
-    if (file_exists(dirname(__FILE__) . '/template/autocomplete.css')) {
-        printf(__("<link rel=\"stylesheet\" href=\"%s\" type=\"text/css\" media=\"screen\" />\n"), plugins_url('/template/autocomplete.css', __FILE__));
-    }
-?>
-<script type="text/javascript">
-    jQuery(document).ready(function($) {
-        $("#s").suggest("?method=autocomplete",{});
-        $("#qrybox").suggest("?method=autocomplete",{});
-    });
-</script>
-<?php
-}
-
-function s4w_template_redirect() {
-    wp_enqueue_script('suggest');
-
-    // not a search page; don't do anything and return
-    // thanks to the Better Search plugin for the idea:  http://wordpress.org/extend/plugins/better-search/
-    $search = stripos($_SERVER['REQUEST_URI'], '?s=');
-    $autocomplete = stripos($_SERVER['REQUEST_URI'], '?method=autocomplete');
-
-    if ( ($search || $autocomplete) == FALSE ) {
-        return;
-    }
-    
-    if ($autocomplete) {
-        $q = stripslashes($_GET['q']);
-        $limit = $_GET['limit'];
-
-        s4w_autocomplete($q, $limit);
-        exit;
-    }
-    
-    // If there is a template file then we use it
-    if (file_exists(TEMPLATEPATH . '/s4w_search.php')) {
-        // use theme file
-        include_once(TEMPLATEPATH . '/s4w_search.php');
-    } else if (file_exists(dirname(__FILE__) . '/template/s4w_search.php')) {
-        // use plugin supplied file
-        add_action('wp_head', 's4w_default_head');
-        include_once(dirname(__FILE__) . '/template/s4w_search.php');
-    } else {
-        // no template files found, just continue on like normal
-        // this should get to the normal WordPress search results
-        return;
-    }
-    
-    exit;
-}
-
-function s4w_mlt_widget() {
-    register_widget('s4w_MLTWidget');
-}
-
-class s4w_MLTWidget extends WP_Widget {
-
-    function s4w_MLTWidget() {
-        $widget_ops = array('classname' => 'widget_s4w_mlt', 'description' => __( "Displays a list of pages similar to the page being viewed") );
-        $this->WP_Widget('mlt', __('Similar'), $widget_ops);
-    }
-
-    function widget( $args, $instance ) {
-        
-        extract($args);
-        $title = apply_filters('widget_title', empty($instance['title']) ? __('Similar') : $instance['title']);
-        $count = empty($instance['count']) ? 5 : $instance['count'];
-        if (!is_numeric($count)) {
-            $count = 5;
-        }
-        
-        $showauthor = $instance['showauthor'];
-
-        $solr = s4w_get_solr();
-        $response = NULL;
-
-        if ((!is_single() && !is_page()) || !$solr) {
-            return;
-        }
-        
-        $params = array();
-        $qry = 'permalink:' . $solr->escape(get_permalink());
-        $params['fl'] = 'title,permalink,author';
-        $params['mlt'] = 'true';
-        $params['mlt.count'] = $count;
-        $params['mlt.fl'] = 'title,content';
-
-        $response = $solr->search($qry, 0, 1, $params);
-        if ( ! $response->getHttpStatus() == 200 ) { 
-            return;
-        }
-    
-        echo $before_widget;
-        if ( $title )
-            echo $before_title . $title . $after_title;
-        
-        $mltresults = $response->moreLikeThis;
-        foreach ($mltresults as $mltresult) {
-            $docs = $mltresult->docs;
-            echo "<ul>";
-            foreach($docs as $doc) {
-                if ($showauthor) {
-                    $author = " by {$doc->author}";
-                }
-                echo "<li><a href=\"{$doc->permalink}\" title=\"{$doc->title}\">{$doc->title}</a>{$author}</li>";
-            }
-            echo "</ul>";
-        }
-        
-        echo $after_widget;
-    }
-
-    function update( $new_instance, $old_instance ) {
-        $instance = $old_instance;
-        $new_instance = wp_parse_args( (array) $new_instance, array( 'title' => '', 'count' => 5, 'showauthor' => 0) );
-        $instance['title'] = strip_tags($new_instance['title']);
-        $cnt = strip_tags($new_instance['count']);
-        $instance['count'] = is_numeric($cnt) ? $cnt : 5;
-        $instance['showauthor'] = $new_instance['showauthor'] ? 1 : 0;
-        
-        return $instance;
-    }
-
-    function form( $instance ) {
-        $instance = wp_parse_args( (array) $instance, array( 'title' => '', 'count' => 5, 'showauthor' => 0) );
-        $title = strip_tags($instance['title']);
-        $count = strip_tags($instance['count']);
-        $showauthor = $instance['showauthor'] ? 'checked="checked"' : '';
-?>
-            <p>
-                <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label>
-                <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>" />
-            </p>
-            <p>
-                <label for="<?php echo $this->get_field_id('count'); ?>"><?php _e('Count:'); ?></label>
-                <input class="widefat" id="<?php echo $this->get_field_id('count'); ?>" name="<?php echo $this->get_field_name('count'); ?>" type="text" value="<?php echo esc_attr($count); ?>" />
-            </p>
-            <p>
-                <label for="<?php echo $this->get_field_id('showauthor'); ?>"><?php _e('Show Author?:'); ?></label>
-                <input class="checkbox" type="checkbox" <?php echo $showauthor; ?> id="<?php echo $this->get_field_id('showauthor'); ?>" name="<?php echo $this->get_field_name('showauthor'); ?>" />
-            </p>
-<?php
-    }
-}
-
-function s4w_autocomplete($q, $limit) {
-    $solr = s4w_get_solr();
-    $response = NULL;
-
-    if (!$solr) {
-        return;
-    }
-    
-    $params = array();
-    $params['terms'] = 'true';
-    $params['terms.fl'] = 'spell';
-    $params['terms.lower'] = $q;
-    $params['terms.prefix'] = $q;
-    $params['terms.lower.incl'] = 'false';
-    $params['terms.limit'] = $limit;
-    $params['qt'] = '/terms';
-
-    $response = $solr->search($q, 0, $limit, $params);
-    if ( ! $response->getHttpStatus() == 200 ) { 
-        return;
-    }
-    
-    $terms = get_object_vars($response->terms->spell);
-    foreach($terms as $term => $count) {
-        printf("%s\n", $term);
-    }
-}
-
-// copies config settings from the main blog
-// to all of the other blogs
-function s4w_copy_config_to_all_blogs() {
-  global $wpdb;
-
-  $blogs = $wpdb->get_results("SELECT blog_id FROM $wpdb->blogs WHERE spam = 0 AND deleted = 0");
-
-  $plugin_s4w_settings = s4w_get_option();
-  foreach($blogs as $blog) {
-    switch_to_blog($blog->blog_id);
-    wp_cache_flush();
-    syslog(LOG_INFO,"pushing config to {$blog->blog_id}");
-    s4w_update_option($plugin_s4w_settings);
-  }
-
-  wp_cache_flush();
-  restore_current_blog();
-}
-
-function s4w_apply_config_to_blog($blogid) {
-  syslog(LOG_ERR,"applying config to blog with id $blogid");
-  if (!is_multisite())
-    return;
-
-  wp_cache_flush();
-  $plugin_s4w_settings = s4w_get_option();
-  switch_to_blog($blogid);
-  wp_cache_flush();
-  s4w_update_option($plugin_s4w_settings);
-  restore_current_blog();
-  wp_cache_flush();
-}
-
-add_action( 'template_redirect', 's4w_template_redirect', 1 );
-add_action( 'publish_post', 's4w_handle_modified' );
-add_action( 'publish_page', 's4w_handle_modified' );
-add_action( 'save_post', 's4w_handle_modified' );
-add_action( 'delete_post', 's4w_handle_delete' );
-add_action( 'admin_menu', 's4w_add_pages');
-add_action( 'admin_init', 's4w_options_init');
-add_action( 'widgets_init', 's4w_mlt_widget');
-add_action( 'wp_head', 's4w_autosuggest_head');
-add_action( 'admin_head', 's4w_admin_head');
-
-if (is_multisite()) {
-    add_action( 'deactivate_blog', 's4w_handle_deactivate_blog');
-    add_action( 'activate_blog', 's4w_handle_activate_blog');
-    add_action( 'archive_blog', 's4w_handle_archive_blog');
-    add_action( 'unarchive_blog', 's4w_handle_unarchive_blog');
-    add_action( 'make_spam_blog', 's4w_handle_spam_blog');
-    add_action( 'unspam_blog', 's4w_handle_unspam_blog');
-    add_action( 'delete_blog', 's4w_handle_delete_blog');
-    add_action( 'wpmu_new_blog', 's4w_handle_new_blog');
-}
-
-?>
diff --git a/wp-content/plugins/solr-for-wordpress/solr-for-wordpress.pot b/wp-content/plugins/solr-for-wordpress/solr-for-wordpress.pot
deleted file mode 100644
index 994c0655c..000000000
--- a/wp-content/plugins/solr-for-wordpress/solr-for-wordpress.pot
+++ /dev/null
@@ -1,292 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR Matt Weber
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: Solr for WordPress 0.2.0\n"
-"Report-Msgid-Bugs-To: http://wordpress.org/tag/solr-for-wordpress\n"
-"POT-Creation-Date: 2009-05-13 10:15-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: solr-for-wordpress.php:36
-msgid "Solr for WordPress requires WordPress 2.7 or greater. "
-msgstr ""
-
-#: solr-for-wordpress.php:108
-msgid "Post Information is NULL"
-msgstr ""
-
-#: solr-for-wordpress.php:215
-#, php-format
-msgid ""
-"<form name=\"searchbox\" method=\"get\" id=\"searchbox\" action=\"\"><input "
-"type=\"text\" id=\"qrybox\" name=\"s\" value=\"%s\"/><input type=\"submit\" "
-"id=\"searchbtn\" /></form>"
-msgstr ""
-
-#: solr-for-wordpress.php:262
-#, php-format
-msgid ""
-"<div id=\"resultinfo\"><p>Found <em id=\"resultcnt\">%d</em> results for <em "
-"id=\"resultqry\">%s</em> in <em id=\"qrytime\">%.3f</em> seconds.</p></"
-"div><div id=\"infoclear\"></div>"
-msgstr ""
-
-#: solr-for-wordpress.php:275
-msgid "<div id=\"resultpager\"><ul>"
-msgstr ""
-
-#: solr-for-wordpress.php:279
-#, php-format
-msgid "<li><a href=\"?s=%s&offset=%d&count=%d\">%d</a></li>"
-msgstr ""
-
-#: solr-for-wordpress.php:282
-#, php-format
-msgid "<li>%d</li>"
-msgstr ""
-
-#: solr-for-wordpress.php:285
-msgid "</ul></div><div id=\"pagerclear\"></div>"
-msgstr ""
-
-#: solr-for-wordpress.php:290
-msgid "<div id=\"facets\"><ul class=\"facets\">"
-msgstr ""
-
-#: solr-for-wordpress.php:299
-#, php-format
-msgid "<li class=\"facet\"><h3>%s</h3><ul class=\"facetitems\">"
-msgstr ""
-
-#: solr-for-wordpress.php:314 solr-for-wordpress.php:364
-#, php-format
-msgid "?s=%s&fq=%s:%s%s"
-msgstr ""
-
-#: solr-for-wordpress.php:315 solr-for-wordpress.php:365
-#, php-format
-msgid "<li class=\"facetitem\"><a href=\"%s\">%s</a> (%d)</li>"
-msgstr ""
-
-#: solr-for-wordpress.php:318 solr-for-wordpress.php:370
-msgid "</ul></li>"
-msgstr ""
-
-#: solr-for-wordpress.php:323
-msgid "</ul></div><div id=\"facetclear\"></div>"
-msgstr ""
-
-#: solr-for-wordpress.php:324
-msgid "<div id=\"results\">"
-msgstr ""
-
-#: solr-for-wordpress.php:327
-msgid "<div id=\"noresults\">No Results Found</div>"
-msgstr ""
-
-#: solr-for-wordpress.php:331
-msgid "<div class=\"result\">"
-msgstr ""
-
-#: solr-for-wordpress.php:332
-#, php-format
-msgid ""
-"<h2><a href=\"%s\">%s</a></h2><h3>by <em id=\"resultauthor\">%s</em> has a "
-"score of <em id=\"resultscore\">%f</em></h3>"
-msgstr ""
-
-#: solr-for-wordpress.php:337
-#, php-format
-msgid "<p>...%s...</p></div>"
-msgstr ""
-
-#: solr-for-wordpress.php:341
-#, php-format
-msgid "<p>%s...</p></div>"
-msgstr ""
-
-#: solr-for-wordpress.php:345
-msgid "</div><div id=\"resultsclear\"></div>"
-msgstr ""
-
-#: solr-for-wordpress.php:358
-msgid "<li><ul class=\"facetchildren\">"
-msgstr ""
-
-#: solr-for-wordpress.php:493
-msgid "<p>Couldn't locate the options page.</p>"
-msgstr ""
-
-#: solr-options-page.php:60
-msgid "Ping Success!"
-msgstr ""
-
-#: solr-options-page.php:64
-msgid "Ping Failed!"
-msgstr ""
-
-#: solr-options-page.php:70
-msgid "Pages Loaded!"
-msgstr ""
-
-#: solr-options-page.php:75
-msgid "Posts Loaded!"
-msgstr ""
-
-#: solr-options-page.php:80
-msgid "All Indexed Pages Deleted!"
-msgstr ""
-
-#: solr-options-page.php:86
-msgid "Solr For WordPress"
-msgstr ""
-
-#: solr-options-page.php:89
-msgid "Connection Information"
-msgstr ""
-
-#: solr-options-page.php:92
-msgid "Solr Host"
-msgstr ""
-
-#: solr-options-page.php:97
-msgid "Solr Port"
-msgstr ""
-
-#: solr-options-page.php:102
-msgid "Solr Path"
-msgstr ""
-
-#: solr-options-page.php:107
-msgid "Indexing Options"
-msgstr ""
-
-#: solr-options-page.php:110
-msgid "Index Pages"
-msgstr ""
-
-#: solr-options-page.php:112
-msgid "Index Posts"
-msgstr ""
-
-#: solr-options-page.php:117
-msgid "Remove Page on Delete"
-msgstr ""
-
-#: solr-options-page.php:119
-msgid "Remove Post on Delete"
-msgstr ""
-
-#: solr-options-page.php:124
-msgid "Remove Page on Status Change"
-msgstr ""
-
-#: solr-options-page.php:126
-msgid "Remove Post on Status Change"
-msgstr ""
-
-#: solr-options-page.php:131
-msgid "Excludes (comma-separated integer ids)"
-msgstr ""
-
-#: solr-options-page.php:136
-msgid "Result Options"
-msgstr ""
-
-#: solr-options-page.php:139
-msgid "Output Result Info"
-msgstr ""
-
-#: solr-options-page.php:141
-msgid "Output Result Pager"
-msgstr ""
-
-#: solr-options-page.php:146
-msgid "Output Facets"
-msgstr ""
-
-#: solr-options-page.php:148
-msgid "Category Facet as Taxonomy"
-msgstr ""
-
-#: solr-options-page.php:153
-msgid "Categories as Facet"
-msgstr ""
-
-#: solr-options-page.php:155
-msgid "Tags as Facet"
-msgstr ""
-
-#: solr-options-page.php:160
-msgid "Author as Facet"
-msgstr ""
-
-#: solr-options-page.php:162
-msgid "Type as Facet"
-msgstr ""
-
-#: solr-options-page.php:167
-msgid "Number of Results Per Page"
-msgstr ""
-
-#: solr-options-page.php:172
-msgid "Max Number of Tags to Display"
-msgstr ""
-
-#: solr-options-page.php:180
-msgid "Save Changes"
-msgstr ""
-
-#: solr-options-page.php:186
-msgid "Actions"
-msgstr ""
-
-#: solr-options-page.php:189
-msgid "Check Server Settings"
-msgstr ""
-
-#: solr-options-page.php:190 solr-options-page.php:195
-#: solr-options-page.php:200 solr-options-page.php:205
-msgid "Execute"
-msgstr ""
-
-#: solr-options-page.php:194
-msgid "Load All Pages"
-msgstr ""
-
-#: solr-options-page.php:199
-msgid "Load All Posts"
-msgstr ""
-
-#: solr-options-page.php:204
-msgid "Delete All"
-msgstr ""
-
-#. Plugin Name of an extension
-msgid "Solr for WordPress"
-msgstr ""
-
-#. Plugin URI of an extension
-msgid "https://launchpad.net/solr4wordpress"
-msgstr ""
-
-#. Description of an extension
-msgid "Indexes, removes, and updates documents in the Solr search engine."
-msgstr ""
-
-#. Author of an extension
-msgid "Matt Weber"
-msgstr ""
-
-#. Author URI of an extension
-msgid "http://www.mattweber.org"
-msgstr ""
diff --git a/wp-content/plugins/solr-for-wordpress/solr-options-page.php b/wp-content/plugins/solr-for-wordpress/solr-options-page.php
deleted file mode 100644
index b3bbedaa8..000000000
--- a/wp-content/plugins/solr-for-wordpress/solr-options-page.php
+++ /dev/null
@@ -1,407 +0,0 @@
-<?php
-/*  
-    Copyright (c) 2009 Matt Weber
-
-    Permission is hereby granted, free of charge, to any person obtaining a copy
-    of this software and associated documentation files (the "Software"), to deal
-    in the Software without restriction, including without limitation the rights
-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    copies of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be included in
-    all copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-    THE SOFTWARE.
-*/
-
-//get the plugin settings
-$s4w_settings = s4w_get_option('plugin_s4w_settings');
-#set defaults if not initialized
-if ($s4w_settings['s4w_solr_initialized'] != 1) {
-  
-  $options['s4w_index_all_sites'] = 0;
-  $options['s4w_server']['info']['single']= array('host'=>'localhost','port'=>8983, 'path'=>'/solr');
-  $options['s4w_server']['info']['master']= array('host'=>'localhost','port'=>8983, 'path'=>'/solr');
-  $options['s4w_server']['type']['search'] = 'master';
-  $options['s4w_server']['type']['update'] = 'master';
-  
-  $options['s4w_index_pages'] = 1;
-  $options['s4w_index_posts'] = 1;
-  $options['s4w_delete_page'] = 1;
-  $options['s4w_delete_post'] = 1;
-  $options['s4w_private_page'] = 1;
-  $options['s4w_private_post'] = 1;
-  $options['s4w_output_info'] = 1;
-  $options['s4w_output_pager'] = 1;
-  $options['s4w_output_facets'] = 1;
-  $options['s4w_exclude_pages'] =  array();
-  $options['s4w_exclude_pages'] = '';  
-  $options['s4w_num_results'] = 5;
-  $options['s4w_cat_as_taxo'] = 1;
-  $options['s4w_solr_initialized'] = 1;
-  $options['s4w_max_display_tags'] = 10;
-  $options['s4w_facet_on_categories'] = 1;
-  $options['s4w_facet_on_taxonomy'] = 1;
-  $options['s4w_facet_on_tags'] = 1;
-  $options['s4w_facet_on_author'] = 1;
-  $options['s4w_facet_on_type'] = 1;
-  $options['s4w_enable_dym'] = 1;
-  $options['s4w_index_comments'] = 1;
-  $options['s4w_connect_type'] = 'solr';
-  $options['s4w_index_custom_fields'] =  array();
-  $options['s4w_facet_on_custom_fields'] =  array();
-  $options['s4w_index_custom_fields'] = '';  
-  $options['s4w_facet_on_custom_fields'] = '';  
-  
-  //update existing settings from multiple option record to a single array
-  //if old options exist, update to new system
-  $delete_option_function = 'delete_option';
-  if (is_multisite()) {
-    $indexall = get_site_option('s4w_index_all_sites');
-    $delete_option_function = 'delete_site_option';
-  }
-  //find each of the old options function
-  //update our new array and delete the record.
-  foreach($options as $key => $value ) {
-    if( $existing = get_option($key)) {
-      $options[$key] = $existing;
-      $indexall = FALSE;
-      //run the appropriate delete options function
-      $delete_option_function($key);
-    }
-  }
-  
-  $s4w_settings = $options;
-  //save our options array
-  s4w_update_option($options);
-}
-
-wp_reset_vars(array('action'));
-
-# save form settings if we get the update action
-# we do saving here instead of using options.php because we need to use
-# s4w_update_option instead of update option.
-# As it stands we have 27 options instead of making 27 insert calls (which is what update_options does)
-# Lets create an array of all our options and save it once.
-if ($_POST['action'] == 'update') {   
-  //lets loop through our setting fields $_POST['settings']
-  foreach ($s4w_settings as $option => $old_value ) {
-    $value = $_POST['settings'][$option];
-
-    switch ($option) {
-      case 's4w_solr_initialized':
-        $value = trim($old_value);
-        break;
-    case 's4w_server':
-      //remove empty server entries
-      $s_value = &$value['info'];
-      
-      foreach ($s_value as $key => $v) {
-        //lets rename the array_keys
-        if(!$v['host']) unset($s_value[$key]);
-      }
-      break;
-
-    }
-    if ( !is_array($value) ) $value = trim($value); 
-    $value = stripslashes_deep($value);
-    $s4w_settings[$option] = $value;
-  }
-  // if we are in single server mode set the server types to master
-  // and configure the master server to the values of the single server
-  if ($s4w_settings['s4w_connect_type'] =='solr_single'){
-    $s4w_settings['s4w_server']['info']['master']= $s4w_settings['s4w_server']['info']['single'];
-    $s4w_settings['s4w_server']['type']['search'] = 'master';
-    $s4w_settings['s4w_server']['type']['update'] = 'master';
-  }
-  // if this is a multi server setup we steal the master settings
-  // and stuff them into the single server settings in case the user
-  // decides to change it later 
-  else {
-    $s4w_settings['s4w_server']['info']['single']= $s4w_settings['s4w_server']['info']['master'];
-  }
-  //lets save our options array
-  s4w_update_option($s4w_settings);
-
-  //we need to make call for the options again 
-  //as we need them to come out in an a sanitised format
-  //otherwise fields that need to run s4w_filter_list2str will come up with nothin
-  $s4w_settings = s4w_get_option('plugin_s4w_settings');
-
-  ?>
-  <div id="message" class="updated fade"><p><strong><?php _e('Success!', 'solr4wp') ?></strong></p></div>
-  <?php
-}
-
-# checks if we need to check the checkbox
-function s4w_checkCheckbox( $fieldValue ) {
-  if( $fieldValue == '1'){
-    echo 'checked="checked"';
-  }
-}
-
-function s4w_checkConnectOption($optionType, $connectType) {
-    if ( $optionType === $connectType ) {
-        echo 'checked="checked"';
-    }
-}
-
-
-
-# check for any POST settings
-if ($_POST['s4w_ping']) {
-    if (s4w_ping_server()) {
-?>
-<div id="message" class="updated fade"><p><strong><?php _e('Ping Success!', 'solr4wp') ?></strong></p></div>
-<?php
-    } else {
-?>
-    <div id="message" class="updated fade"><p><strong><?php _e('Ping Failed!', 'solr4wp') ?></strong></p></div>
-<?php
-    }
-} else if ($_POST['s4w_deleteall']) {
-    s4w_delete_all();
-?>
-    <div id="message" class="updated fade"><p><strong><?php _e('All Indexed Pages Deleted!', 'solr4wp') ?></strong></p></div>
-<?php
-} else if ($_POST['s4w_optimize']) {
-    s4w_optimize();
-?>
-    <div id="message" class="updated fade"><p><strong><?php _e('Index Optimized!', 'solr4wp') ?></strong></p></div>
-<?php
-} else if ($_POST['s4w_init_blogs']) {
-    s4w_copy_config_to_all_blogs();
-  }  ?>
-        <div id="message" class="updated fade"><p><strong><?php _e('Solr for Wordpress Configured for All Blogs!', 'solr4wp') ?></strong></p></div>
-
-
-<div class="wrap">
-<h2><?php _e('Solr For WordPress', 'solr4wp') ?></h2>
-
-<form method="post" action="options-general.php?page=solr-for-wordpress/solr-for-wordpress.php">
-<h3><?php _e('Configure Solr', 'solr4wp') ?></h3>
-
-<div class="solr_admin clearfix">
-	<div class="solr_adminR">
-		<div class="solr_adminR2" id="solr_admin_tab2">
-			<label><?php _e('Solr Host', 'solr4wp') ?></label>
-			<input name="settings[s4w_server][type][update]" type="hidden" value="master" />
-			<input name="settings[s4w_server][type][search]" type="hidden" value="master" />
-			<p><input type="text" name="settings[s4w_server][info][single][host]" value="<?php echo $s4w_settings['s4w_server']['info']['single']['host']?>" /></p>
-			<label><?php _e('Solr Port', 'solr4wp') ?></label>
-			<p><input type="text" name="settings[s4w_server][info][single][port]" value="<?php echo $s4w_settings['s4w_server']['info']['single']['port']?>" /></p>
-			<label><?php _e('Solr Path', 'solr4wp') ?></label>
-			<p><input type="text" name="settings[s4w_server][info][single][path]" value="<?php echo $s4w_settings['s4w_server']['info']['single']['path']?>" /></p>
-		</div>
-		<div class="solr_adminR2" id="solr_admin_tab3">
-		  <table>
-  		  <tr>
-  		  <?php 
-  		    //we are working with multiserver setup so lets
-  		    //lets provide an extra fields for extra host on the fly by appending an empty array
-  		    //this will always give a count of current servers+1
-  		    $serv_count = count($s4w_settings['s4w_server']['info']);
-  		    $s4w_settings['s4w_server']['info'][$serv_count] = array('host'=>'','port'=>'', 'path'=>'');
-  		    foreach ($s4w_settings['s4w_server']['info'] as $server_id => $server) { 
-                      if ($server_id == "single")
-                        continue;
-  		      //lets set serverIDs
-  		      $new_id =(is_numeric($server_id)) ? 'slave_'.$server_id : $server_id ;
-  		  ?>
-    		  <td>
-    		  <label><?php _e('ServerID', 'solr4wp') ?>: <strong><?php echo $new_id; ?></strong></label>
-    		  <p>Update Server: &nbsp;&nbsp;<input name="settings[s4w_server][type][update]" type="radio" value="<?php echo $new_id?>" <?php s4w_checkConnectOption($s4w_settings['s4w_server']['type']['update'], $new_id); ?> /></p>
-    			<p>Search Server: &nbsp;&nbsp;<input name="settings[s4w_server][type][search]" type="radio" value="<?php echo $new_id?>" <?php s4w_checkConnectOption($s4w_settings['s4w_server']['type']['search'], $new_id); ?> /></p>
-    		  <label><?php _e('Solr Host', 'solr4wp') ?></label>
-    			<p><input type="text" name="settings[s4w_server][info][<?php echo $new_id ?>][host]" value="<?php echo $server['host'] ?>" /></p>
-    			<label><?php _e('Solr Port', 'solr4wp') ?></label>
-    			<p><input type="text" name="settings[s4w_server][info][<?php echo $new_id ?>][port]" value="<?php echo $server['port'] ?>" /></p>
-    			<label><?php _e('Solr Path', 'solr4wp') ?></label>
-    			<p><input type="text" name="settings[s4w_server][info][<?php echo $new_id ?>][path]" value="<?php echo $server['path'] ?>" /></p>		  
-    			</td>
-    			<?php 
-    			  }
-    			?>
-  			</tr>
-			</table>
-		</div>		
-	</div>
-	<ol>
-		<li id="solr_admin_tab1_btn" class="solr_admin_tab1">
-		</li>
-		<li id="solr_admin_tab2_btn" class="solr_admin_tab2">
-			<h4><input id="solrconnect_single" name="settings[s4w_connect_type]" type="radio" value="solr_single" <?php s4w_checkConnectOption($s4w_settings['s4w_connect_type'], 'solr_single'); ?> onclick="switch1();" />Single Solr Server</h4>
-			<ol>
-				<li>Download, install and configure your own <a href="http://lucene.apache.org/solr/">Apache Solr</a> instance</li>
-			</ol>
-		</li>
-		<li id="solr_admin_tab3_btn" class="solr_admin_tab3">
-			<h4><input id="solrconnect_separated" name="settings[s4w_connect_type]" type="radio" value="solr_separated" <?php s4w_checkConnectOption($s4w_settings['s4w_connect_type'], 'solr_separated'); ?> onclick="switch1();" />Separated Solr Servers</h4>
-			<ol>
-				<li>Separate URL's for updates and searches.</li>
-			</ol>
-		</li>		
-	</ol>
-</div>
-<hr />
-<h3><?php _e('Indexing Options', 'solr4wp') ?></h3>
-<table class="form-table">
-    <tr valign="top">
-        <th scope="row" style="width:200px;"><?php _e('Index Pages', 'solr4wp') ?></th>
-        <td style="width:10px;float:left;"><input type="checkbox" name="settings[s4w_index_pages]" value="1" <?php echo s4w_checkCheckbox($s4w_settings['s4w_index_pages']); ?> /></td>
-        <th scope="row" style="width:200px;float:left;margin-left:20px;"><?php _e('Index Posts', 'solr4wp') ?></th>
-        <td style="width:10px;float:left;"><input type="checkbox" name="settings[s4w_index_posts]" value="1" <?php echo s4w_checkCheckbox($s4w_settings['s4w_index_posts']); ?> /></td>
-    </tr>
-
-    <tr valign="top">
-        <th scope="row" style="width:200px;"><?php _e('Remove Page on Delete', 'solr4wp') ?></th>
-        <td style="width:10px;float:left;"><input type="checkbox" name="settings[s4w_delete_page]" value="1" <?php echo s4w_checkCheckbox($s4w_settings['s4w_delete_page']); ?> /></td>
-        <th scope="row" style="width:200px;float:left;margin-left:20px;"><?php _e('Remove Post on Delete', 'solr4wp') ?></th>
-        <td style="width:10px;float:left;"><input type="checkbox" name="settings[s4w_delete_post]" value="1" <?php echo s4w_checkCheckbox($s4w_settings['s4w_delete_post']); ?> /></td>
-    </tr>
-    
-    <tr valign="top">
-        <th scope="row" style="width:200px;"><?php _e('Remove Page on Status Change', 'solr4wp') ?></th>
-        <td style="width:10px;float:left;"><input type="checkbox" name="settings[s4w_private_page]" value="1" <?php echo s4w_checkCheckbox($s4w_settings['s4w_private_page']); ?> /></td>
-        <th scope="row" style="width:200px;float:left;margin-left:20px;"><?php _e('Remove Post on Status Change', 'solr4wp') ?></th>
-        <td style="width:10px;float:left;"><input type="checkbox" name="settings[s4w_private_post]" value="1" <?php echo s4w_checkCheckbox($s4w_settings['s4w_private_post']); ?> /></td>
-    </tr>
-
-    <tr valign="top">
-        <th scope="row" style="width:200px;"><?php _e('Index Comments', 'solr4wp') ?></th>
-        <td style="width:10px;float:left;"><input type="checkbox" name="settings[s4w_index_comments]" value="1" <?php echo s4w_checkCheckbox($s4w_settings['s4w_index_comments']); ?> /></td>
-    </tr>
-        
-    <?php
-    //is this a multisite installation
-    if (is_multisite() && is_main_site()) {
-    ?>
-    
-    <tr valign="top">
-        <th scope="row" style="width:200px;"><?php _e('Index all Sites', 'solr4wp') ?></th>
-        <td style="width:10px;float:left;"><input type="checkbox" name="settings[s4w_index_all_sites]" value="1" <?php echo s4w_checkCheckbox($s4w_settings['s4w_index_all_sites']); ?> /></td>
-    </tr>
-    <?php
-    }
-    ?>
-    <tr valign="top">
-        <th scope="row"><?php _e('Index custom fields (comma separated names list)') ?></th>
-        <td><input type="text" name="settings[s4w_index_custom_fields]" value="<?php print( s4w_filter_list2str($s4w_settings['s4w_index_custom_fields'], 'solr4wp')); ?>" /></td>
-    </tr>
-    <tr valign="top">
-        <th scope="row"><?php _e('Excludes Posts or Pages (comma separated ids list)') ?></th>
-        <td><input type="text" name="settings[s4w_exclude_pages]" value="<?php print(s4w_filter_list2str($s4w_settings['s4w_exclude_pages'], 'solr4wp')); ?>" /></td>
-    </tr>
-</table>
-<hr />
-<h3><?php _e('Result Options', 'solr4wp') ?></h3>
-<table class="form-table">
-    <tr valign="top">
-        <th scope="row" style="width:200px;"><?php _e('Output Result Info', 'solr4wp') ?></th>
-        <td style="width:10px;float:left;"><input type="checkbox" name="settings[s4w_output_info]" value="1" <?php echo s4w_checkCheckbox($s4w_settings['s4w_output_info']); ?> /></td>
-        <th scope="row" style="width:200px;float:left;margin-left:20px;"><?php _e('Output Result Pager', 'solr4wp') ?></th>
-        <td style="width:10px;float:left;"><input type="checkbox" name="settings[s4w_output_pager]" value="1" <?php echo s4w_checkCheckbox($s4w_settings['s4w_output_pager']); ?> /></td>
-    </tr>
- 
-    <tr valign="top">
-        <th scope="row" style="width:200px;"><?php _e('Output Facets', 'solr4wp') ?></th>
-        <td style="width:10px;float:left;"><input type="checkbox" name="settings[s4w_output_facets]" value="1" <?php echo s4w_checkCheckbox($s4w_settings['s4w_output_facets']); ?> /></td>
-        <th scope="row" style="width:200px;float:left;margin-left:20px;"><?php _e('Category Facet as Taxonomy', 'solr4wp') ?></th>
-        <td style="width:10px;float:left;"><input type="checkbox" name="settings[s4w_cat_as_taxo]" value="1" <?php echo s4w_checkCheckbox($s4w_settings['s4w_cat_as_taxo']); ?> /></td>
-    </tr>
-
-    <tr valign="top">
-        <th scope="row" style="width:200px;"><?php _e('Categories as Facet', 'solr4wp') ?></th>
-        <td style="width:10px;float:left;"><input type="checkbox" name="settings[s4w_facet_on_categories]" value="1" <?php echo s4w_checkCheckbox($s4w_settings['s4w_facet_on_categories']); ?> /></td>
-        <th scope="row" style="width:200px;float:left;margin-left:20px;"><?php _e('Tags as Facet', 'solr4wp') ?></th>
-        <td style="width:10px;float:left;"><input type="checkbox" name="settings[s4w_facet_on_tags]" value="1" <?php echo s4w_checkCheckbox($s4w_settings['s4w_facet_on_tags']); ?> /></td>
-    </tr>
-    
-    <tr valign="top">
-        <th scope="row" style="width:200px;"><?php _e('Author as Facet', 'solr4wp') ?></th>
-        <td style="width:10px;float:left;"><input type="checkbox" name="settings[s4w_facet_on_author]" value="1" <?php echo s4w_checkCheckbox($s4w_settings['s4w_facet_on_author']); ?> /></td>
-        <th scope="row" style="width:200px;float:left;margin-left:20px;"><?php _e('Type as Facet', 'solr4wp') ?></th>
-        <td style="width:10px;float:left;"><input type="checkbox" name="settings[s4w_facet_on_type]" value="1" <?php echo s4w_checkCheckbox($s4w_settings['s4w_facet_on_type']); ?> /></td>
-    </tr>
-
-     <tr valign="top">
-         <th scope="row" style="width:200px;"><?php _e('Taxonomy as Facet', 'solr4wp') ?></th>
-         <td style="width:10px;float:left;"><input type="checkbox" name="settings[s4w_facet_on_taxonomy]" value="1" <?php echo s4w_checkCheckbox($s4w_settings['s4w_facet_on_taxonomy']); ?> /></td>
-      </tr>
-      
-    <tr valign="top">
-        <th scope="row"><?php _e('Custom fields as Facet (comma separated ordered names list)') ?></th>
-        <td><input type="text" name="settings[s4w_facet_on_custom_fields]" value="<?php print( s4w_filter_list2str($s4w_settings['s4w_facet_on_custom_fields'], 'solr4wp')); ?>" /></td>
-    </tr>
-
-    <tr valign="top">
-        <th scope="row" style="width:200px;"><?php _e('Enable Spellchecking', 'solr4wp') ?></th>
-        <td style="width:10px;float:left;"><input type="checkbox" name="settings[s4w_enable_dym]" value="1" <?php echo s4w_checkCheckbox($s4w_settings['s4w_enable_dym']); ?> /></td>
-    </tr>
-                   
-    <tr valign="top">
-        <th scope="row"><?php _e('Number of Results Per Page', 'solr4wp') ?></th>
-        <td><input type="text" name="settings[s4w_num_results]" value="<?php _e($s4w_settings['s4w_num_results'], 'solr4wp'); ?>" /></td>
-    </tr>   
-    
-    <tr valign="top">
-        <th scope="row"><?php _e('Max Number of Tags to Display', 'solr4wp') ?></th>
-        <td><input type="text" name="settings[s4w_max_display_tags]" value="<?php _e($s4w_settings['s4w_max_display_tags'], 'solr4wp'); ?>" /></td>
-    </tr>
-</table>
-<hr />
-<?php settings_fields('s4w-options-group'); ?>
-
-<p class="submit">
-<input type="hidden" name="action" value="update" />
-<input id="settingsbutton" type="submit" class="button-primary" value="<?php _e('Save Changes', 'solr4wp') ?>" />
-</p>
-
-</form>
-<hr />
-<form method="post" action="options-general.php?page=solr-for-wordpress/solr-for-wordpress.php">
-<h3><?php _e('Actions', 'solr4wp') ?></h3>
-<table class="form-table">
-    <tr valign="top">
-        <th scope="row"><?php _e('Check Server Settings', 'solr4wp') ?></th>
-        <td><input type="submit" class="button-primary" name="s4w_ping" value="<?php _e('Execute', 'solr4wp') ?>" /></td>
-    </tr>
-
-    <?php if(is_multisite()) { ?>
-    <tr valign="top">
-        <th scope="row"><?php _e('Push Solr Configuration to All Blogs', 'solr4wp') ?></th>
-        <td><input type="submit" class="button-primary" name="s4w_init_blogs" value="<?php _e('Execute', 'solr4wp') ?>" /></td>
-    </tr>
-    <?php } ?>
-    
- 
-    <tr valign="top">
-        <th scope="row"><?php _e('Load All Pages', 'solr4wp') ?></th>
-        <td><input type="submit" class="button-primary" name="s4w_pageload" value="<?php _e('Execute', 'solr4wp') ?>" /></td>
-    </tr>
-
-    <tr valign="top">
-        <th scope="row"><?php _e('Load All Posts', 'solr4wp') ?></th>
-        <td><input type="submit" class="button-primary" name="s4w_postload" value="<?php _e('Execute', 'solr4wp') ?>" /></td>
-    </tr>
-    
-    <tr valign="top">
-        <th scope="row"><?php _e('Optimize Index', 'solr4wp') ?></th>
-        <td><input type="submit" class="button-primary" name="s4w_optimize" value="<?php _e('Execute', 'solr4wp') ?>" /></td>
-    </tr>
-        
-    <tr valign="top">
-        <th scope="row"><?php _e('Delete All', 'solr4wp') ?></th>
-        <td><input type="submit" class="button-primary" name="s4w_deleteall" value="<?php _e('Execute', 'solr4wp') ?>" /></td>
-    </tr>
-</table>
-</form>
-
-</div>
diff --git a/wp-content/plugins/solr-for-wordpress/template/autocomplete.css b/wp-content/plugins/solr-for-wordpress/template/autocomplete.css
deleted file mode 100644
index 1346245d0..000000000
--- a/wp-content/plugins/solr-for-wordpress/template/autocomplete.css
+++ /dev/null
@@ -1,27 +0,0 @@
-.ac_results {
-	border: 1px solid gray;
-	background-color: white;
-	padding: 0;
-	margin: 0;
-	list-style: none;
-	position: absolute;
-	z-index: 10000;
-	display: none;
-}
-
-.ac_results li {
-	padding: 2px 5px;
-	white-space: nowrap;
-	color: #101010;
-	text-align: left;
-}
-
-.ac_over {
-	cursor: pointer;
-	background-color: #F0F0B8;
-}
-
-.ac_match {
-	text-decoration: underline;
-	color: black;
-}
\ No newline at end of file
diff --git a/wp-content/plugins/solr-for-wordpress/template/s4w_search.php b/wp-content/plugins/solr-for-wordpress/template/s4w_search.php
deleted file mode 100644
index 70f5755fc..000000000
--- a/wp-content/plugins/solr-for-wordpress/template/s4w_search.php
+++ /dev/null
@@ -1,182 +0,0 @@
-<?php
-/*
-Template Name: Search
-*/
-?>
-
-<?php get_header(); ?>
-<div id="content">
-
-<div class="solr clearfix">
-	
-<?php 
-    $results = s4w_search_results(); 
-    if (!isset($results['results']) || $results['results'] === NULL) {
-        echo "<div class='solr_noresult'><h2>Sorry, search is unavailable right now</h2><p>Try again later?</p></div>";
-    } 
-    else {
-    ?>
-
-	<div class="solr1 clearfix">
-		<div class="solr_search">
-		    <?php if ($results['qtime']) {
-                printf("<label class='solr_response'>Response time: <span id=\"qrytime\">{$results['qtime']}</span> s</label>");
-            } 
-            
-            //if server id has been defined keep hold of it
-            $server = $_GET['server'];
-            if($server) {
-              $serverval = '<input name="server" type="hidden" value="'.$server.'" />';
-            }
-            
-            ?>
-
-            <form name="searchbox" method="get" id="searchbox" action="">
-			        <input id="qrybox" name="s" type="text" class="solr_field" value="<?php echo $results['query'] ?>"/>
-			        <?php echo $serverval; ?>
-			        <input id="searchbtn" type="submit" value="Search" />
-            </form>
-		</div>
-
-		<?php if($results['dym']) {
-			printf("<div class='solr_suggest'>Did you mean: <a href='%s'>%s</a> ?</div>", $results['dym']['link'], $results['dym']['term']);
-		} ?>
-
-	</div>
-
-	<div class="solr2">
-
-		<div class="solr_results_header clearfix">
-			<div class="solr_results_headerL">
-
-				<?php if ($results['hits'] && $results['query'] && $results['qtime']) {
-				    if ($results['firstresult'] === $results['lastresult']) {
-				        printf("Displaying result %s of <span id='resultcnt'>%s</span> hits", $results['firstresult'], $results['hits']);
-				    } else {
-				        printf("Displaying results %s-%s of <span id='resultcnt'>%s</span> hits", $results['firstresult'], $results['lastresult'], $results['hits']);
-                    }
-				} ?>
-
-			</div>
-			<div class="solr_results_headerR">
-				<ol class="solr_sort2">
-					<li class="solr_sort_drop"><a href="<?php echo $results['sorting']['scoredesc'] ?>">Relevance<span></span></a></li>					
-					<li><a href="<?php echo $results['sorting']['datedesc'] ?>">Newest</a></li>					
-					<li><a href="<?php echo $results['sorting']['dateasc'] ?>">Oldest</a></li>					
-					<li><a href="<?php echo $results['sorting']['commentsdesc'] ?>">Most Comments</a></li>					
-					<li><a href="<?php echo $results['sorting']['commentsasc'] ?>">Least Comments</a></li>					
-				</ol>
-				<div class="solr_sort">Sort by:</div>
-			</div>
-		</div>
-
-		<div class="solr_results">
-			
-<?php 
-                    
-           
-                    if ($results['hits'] === "0") {
-					printf("<div class='solr_noresult'>
-										<h2>Sorry, no results were found.</h2>
-										<h3>Perhaps you mispelled your search query, or need to try using broader search terms.</h3>
-										<p>For example, instead of searching for 'Apple iPhone 3.0 3GS', try something simple like 'iPhone'.</p>
-									</div>\n");
-			} else {
-				printf("<ol>\n");
-					foreach($results['results'] as $result) {
-							printf("<li onclick=\"window.location='%s'\">\n", $result['permalink']);
-							printf("<h2><a href='%s'>%s</a></h2>\n", $result['permalink'], $result['title']);
-							printf("<p>%s <a href='%s'>(comment match)</a></p>\n", $result['teaser'], $result['comment_link']);
-							printf("<label> By <a href='%s'>%s</a> in %s %s - <a href='%s'>%s comments</a></label>\n", 
-							            $result['authorlink'], 
-							            $result['author'], 
-							            get_the_category_list( ', ', '', $result['id']), 
-							            date('m/d/Y', strtotime($result['date'])), 
-							            $result['comment_link'], 
-							            $result['numcomments']);
-							printf("</li>\n");
-					}
-				printf("</ol>\n");
-			} ?>
-
-			<?php if ($results['pager']) {
-				printf("<div class='solr_pages'>");
-				    $itemlinks = array();
-				    $pagecnt = 0;
-				    $pagemax = 10;
-				    $next = '';
-				    $prev = '';
-				    $found = false;
-					foreach($results['pager'] as $pageritm) {
-						if ($pageritm['link']) {
-						    if ($found && $next === '') {
-						        $next = $pageritm['link'];
-						    } else if ($found == false) {
-						        $prev = $pageritm['link'];
-						    }
-						    
-							$itemlinks[] = sprintf("<a href='%s'>%s</a>", $pageritm['link'], $pageritm['page']);
-						} else {
-						    $found = true;
-							$itemlinks[] = sprintf("<a class='solr_pages_on' href='%s'>%s</a>", $pageritm['link'], $pageritm['page']);
-						}
-						
-						$pagecnt += 1;
-						if ($pagecnt == $pagemax) {
-						    break;
-						}
-					}
-					
-					if ($prev !== '') {
-					    printf("<a href='%s'>Previous</a>", $prev);
-					}
-					
-					foreach ($itemlinks as $itemlink) {
-					    echo $itemlink;
-					}
-					
-					if ($next !== '') {
-					    printf("<a href='%s'>Next</a>", $next);
-					}
-					
-				printf("</div>\n");
-			} ?>
-
-
-		</div>	
-	</div>
-
-	<div class="solr3">
-		<ul class="solr_facets">
-
-			<li class="solr_active">
-				<ol>
-					<?php if ($results['facets']['selected']) {
-					    foreach( $results['facets']['selected'] as $selectedfacet) {
-					        printf("<li><span></span><a href=\"%s\">%s<b>x</b></a></li>", $selectedfacet['removelink'], $selectedfacet['name']);
-					    }
-					} ?>
-				</ol>
-			</li>
-
-			<?php if ($results['facets'] && $results['hits'] != 1) {
-					foreach($results['facets'] as $facet) {
-					    if (sizeof($facet["items"]) > 1) { #don't display facets with only 1 value
-  							printf("<li>\n<h3>%s</h3>\n", $facet['name']);
-  							s4w_print_facet_items($facet["items"], "<ol>", "</ol>", "<li>", "</li>",
-  																					"<li><ol>", "</ol></li>", "<li>", "</li>");
-  							printf("</li>\n");
-              }
-					}
-			} ?>
-
-		</ul>
-	</div>
-
-</div>
-
-</div>
-<?php 
-                
-    } 
-                get_footer(); ?>
diff --git a/wp-content/plugins/solr-for-wordpress/template/search.css b/wp-content/plugins/solr-for-wordpress/template/search.css
deleted file mode 100644
index 0c0b1b4e0..000000000
--- a/wp-content/plugins/solr-for-wordpress/template/search.css
+++ /dev/null
@@ -1,379 +0,0 @@
-#content {
-	width: auto !important;
-}
-
-*+ html clearfix {
-	display: inline-block !important;
-}
-*+ html ul,ol {
-	list-style-position: outside !important;
-}
-
-
-.solr * {
-	line-height: 1 !important;
-	padding: 0 !important;
-	margin: 0 !important;
-	text-align: left !important;
-}
-.solr ol, .solr ul, .solr ol li, .solr ul li {
-	background: none !important;
-	list-style-type: none !important;
-	overflow: hidden !important; /* IE7 */
-}
-.solr h2 {font-size:16px !important;}
-.solr h3 {font-size:14px !important;}
-.solr {
-	font-size: 12px !important;
-	line-height: 1 !important;
-	margin: 0 !important;
-	padding: 20px !important;
-	width: auto !important;
-}
-div.solr1 {
-	border-bottom: 1px solid #cccccc !important;
-	padding: 0 0 6px !important;
-}
-div.solr_search {
-	clear: both !important;
-	padding: 0 0 12px !important;
-}
-div.solr_search input {
-	font-size: 18px !important;
-}
-.solr_field {
-	border: 1px solid #b7b7b7 !important;
-	border-top: 2px solid #999999 !important;
-	padding: 3px !important;
-	margin: 0 8px 0 0 !important;
-	width: 330px !important;
-}
-ol.solr_auto {
-	background: #ffffff !important;
-	border: 1px solid #b7b7b7 !important;
-	width: 336px !important;
-	padding: 6px 0 !important;
-	position: absolute !important;
-	clear: both !important; /* IE6 */
-	z-index: 100 !important;
-}
-.solr_auto li {
-	padding: 2px 8px !important;
-}
-.solr_auto li:hover {
-	background: #efffb0 !important;
-}
-div.solr_suggest {
-	padding: 0 0 5px !important;
-}
-label.solr_response {
-	font-size: 10px !important;
-	color: #666666 !important;
-	float: right !important;
-	position: relative !important;
-	top: 13px !important;
-}
-div.solr3 {
-	float: left !important;
-	padding: 18px 2% 0 0 !important;
-	width: 23% !important;
-}
-.solr_active span {
-	border-top: 4px solid #ffffff !important;
-	border-left: 5px solid #999999 !important;
-	border-bottom: 4px solid #ffffff !important;
-	font-size: 0 !important;
-	line-height: 0 !important;
-	width: 0 !important;
-	margin: 0 4px 0 0 !important;
-	position: relative !important;
-	bottom: 4px !important;
-	zoom: 1 !important; /* IE7 */
-}
-.solr_active b {
-	font-family: Arial, Verdana, Helvetica, sans-serif !important;
-	font-weight: bold !important;
-	color: #999999 !important;
-}
-.solr_active a {
-	text-decoration: none !important;
-}
-.solr_facets ol li {
-	padding: 3px 0 3px !important;
-}
-.solr_facets ol li ol {
-	padding: 3px 0 0 10px !important;
-}
-.solr_facets h3 {
-	padding: 10px 0 3px !important;
-}
-.solr_active ol li {
-	padding: 3px 0 !important;
-}
-.solr_active a {
-	color: #000000 !important;
-}
-div.solr2 {
-	float: right !important;
-	padding: 8px 0 0 !important;
-	width: 70% !important;
-}
-div.solr_results_header {
-	font-size: 10px !important;
-	color: #666666 !important;
-	padding: 0 0 4px !important;
-}
-div.solr_results_headerL {
-	width: 60% !important;
-	float: left !important;
-	padding: 0 0 0 12px !important;
-}
-div.solr_results_headerR {
-	width: 35% !important;
-	font-weight: bold !important;
-	float: right !important;
-}
-.solr_sort {
-	margin: 4px 4px 0 0 !important;
-	float: right !important;
-}
-ol.solr_sort2 {
-	background: #ffffff !important;
-	text-decoration: none !important;
-	border: 1px solid #cccccc !important;
-	padding: 2px 0 1px !important;
-	float: right !important;
-}
-.solr_sort2 li {
-	display: block !important; /* FF3 */
-	padding: 2px 2px 2px 4px !important;
-}
-.solr_sort2 li:hover {
-	background: #efffb0 !important;
-}
-.solr_sort2 a {
-	text-decoration: none !important;
-}
-.solr_sort_drop span {
-	border-top: 4px solid #999999 !important;
-	border-right: 4px solid #ffffff !important;
-	border-left: 5px solid #ffffff !important;
-	font-size: 0 !important;
-	line-height: 0 !important;
-	width: 0 !important;
-	margin: 0 0 0 2px !important;
-	position: relative !important;
-	bottom: 1px !important;
-	zoom: 1 !important; /* IE7 */
-}
-
-.solr_results ol {
-	font-size: 12px !important;
-	padding: 0 0 14px !important;
-	clear: both !important; /* IE7 */
-}
-.solr_results li {
-	border-bottom: 1px solid #e6e6e6 !important;
-	padding: 14px 12px !important;
-}
-.solr_results li:hover {
-	background: #efffb0 !important;
-}
-.solr_results img {
-	height: 50px !important;
-	border: 1px solid #cccccc !important;
-	float: right !important;
-	display: block;
-	margin: 0 0 0 5px !important;
-}
-.solr_results h2 {
-	font-weight: normal !important;
-	line-height: 1.1 !important;
-	padding: 0 0 5px !important;
-}
-.solr_results label {
-	font-size: 10px !important;
-	color: #666666 !important;
-	padding: 5px 0 0 !important;
-	display: block !important;
-}
-.solr_pages {
-	font-size: 14px !important;
-	font-weight: bold !important;
-	text-align: right !important;
-}
-.solr_pages a {
-	margin: 0 0 0 5px !important;
-}
-.solr_pages_on {
-	color: #000000 !important;
-}
-div.solr_noresult {
-	padding: 20px 5% 40px 0 !important;
-}
-.solr_noresult h2 {
-	font-weight: normal !important;
-	line-height: 1.2 !important;
-	padding: 0 0 14px !important;
-}
-.solr_noresult h3 {
-	font-weight: normal !important;
-	line-height: 1.2 !important;
-	padding: 0 0 14px !important;
-}
-.solr_noresult p {
-	font-weight: normal !important;
-	line-height: 1.2 !important;
-}
-
-
-.solr_HL {
-	background: #efffb0 !important;
-}
-
-.solr_admin {
-	font-size: 14px;
-	color: #464646;
-	min-width: 800px;
-	padding: 0 0 20px;
-}
-.solr_admin h4 {
-	font-family: Georgia;
-	font-size: 20px;
-	font-style: italic;
-	font-weight: normal;
-	margin: 0;
-}
-.solr_admin h4 input {
-	margin-right: 3px;
-}
-.solr_admin h5 {
-	font-size: 14px;
-	padding: 0 0 12px;
-}
-.solr_admin ol {
-	list-style-type: none;
-	width: 35%;
-	float: right;
-	position: relative;
-	left: 1px;
-	margin-left: 0;
-}
-.solr_admin li {
-	color: #999999;
-	background: #eeeeee;
-	padding: 12px;
-	margin-bottom: 0;
-}
-.solr_admin ol li ol {
-	width: auto;
-	float: none;
-	left: 0;
-	padding: 5px 0 0 32px;
-}
-
-.solr_admin ol li ol li {
-	font-size: 12px;
-	line-height: 1.2;
-	background: none;
-	list-style-type: disc;
-	list-style-position: outside;
-	padding: 1px 0;
-}
-
-.solr_admin_tab1 {
-	border: 1px solid #cccccc;
-	-moz-border-radius-topleft:6px;
-	-webkit-border-top-left-radius:6px;
-}
-
-.solr_admin_tab2 {
-	border-right: 1px solid #cccccc;
-	border-bottom: 1px solid #cccccc;
-	border-left: 1px solid #cccccc;
-	-moz-border-radius-bottomleft:6px;
-	-webkit-border-bottom-left-radius:6px;
-}
-
-.solr_admin_tab2 h4 {
-	font-size: 18px;
-}
-
-.solr_admin_tab3 {
-	border-right: 1px solid #cccccc;
-	border-bottom: 1px solid #cccccc;
-	border-left: 1px solid #cccccc;
-	-moz-border-radius-bottomleft:6px;
-	-webkit-border-bottom-left-radius:6px;
-}
-
-.solr_admin_tab3 h4 {
-	font-size: 18px;
-}
-.solr_adminR {
-	background: #ffffff;
-	float: right;
-	width: 65%;
-}
-
-li.solr_admin_on {
-	color: #464646;
-	background: #ffffff;
-	border-right: 1px solid #eeeeee;
-}
-
-li.solr_admin_on li {
-	color: #464646;
-}
-
-.solr_adminR1, .solr_adminR2 {
-	border: 1px solid #cccccc;
-	-moz-border-radius-topright:6px;
-	-moz-border-radius-bottomright:6px;
-	-moz-border-radius-bottomleft:6px;
-	-webkit-border-top-right-radius:6px;
-	-webkit-border-bottom-right-radius:6px;
-	-webkit-border-bottom-left-radius:6px;
-	padding: 24px 32px;
-}
-.solr_adminR2 {
-	display: none;
-}
-.solr_adminR label {
-	display: block;
-	padding: 0 0 2px 3px;
-}
-.solr_adminR span {
-	font-size: 11px;
-	font-weight: bold;
-	color: #00CC00;
-	font: block;
-	padding: 0 0 2px 3px;
-}
-span.solr_admin_warning {
-	color: #FF9900;
-}
-.solr_adminR p {
-	padding: 0 0 10px;
-}
-.solr_adminR input[type=text] {
-	width: 220px;
-}
-
-/*CLEARFIX*/
-.clearfix:after {
-	content: " ";
-	display: block;
-	height: 0;
-	clear: both;
-	visibility: hidden;
-	font-size: 0;
-}
-.clearfix {
-	display: block;/*the holly hack for a bug in IE6 for Windows*/
-}
-* html .clearfix {height: 1%;}/* Hides from IE-mac \*/
-/* END CLEARFIX*/
-.clear {
-	clear: both;
-}
-- 
GitLab