<modification>
	<id>Reviews Revamped</id>
	<version>1.0</version>
	<vqmver>2.0</vqmver>
	<author>Exel</author>

	<!-- ALTER TABLE  `review` ADD  `email` VARCHAR( 96 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL AFTER  `author` ; -->
	<!-- ALTER TABLE  `review` ADD  `staffreply` TEXT CHARACTER SET utf8 COLLATE utf8_bin NOT NULL AFTER  `rating` ; -->
	<!-- ALTER TABLE  `review` ADD  `thumbup` INT( 11 ) NOT NULL ; -->
	<!-- ALTER TABLE  `review` ADD  `thumbdown` INT( 11 ) NOT NULL ; -->

	<file name="catalog/controller/product/product.php">
		<operation error="log">
			<search position="after"><![CDATA[
			'rating'     => $result['rating'],
			]]></search>
			<add><![CDATA[
			'staffreply'       => html_entity_decode($result['staffreply'], ENT_QUOTES, 'UTF-8'),
			'review_id'     => $result['review_id'],
			'thumbup'     => $result['thumbup'],
			'thumbdown'     => $result['thumbdown'],
			]]></add>
		</operation>
		<operation error="log">
			<search position="before"><![CDATA[
			public function captcha() {
			]]></search>
			<add><![CDATA[
			public function thumbup() {
				$this->language->load('product/product');
				
				$this->load->model('catalog/review');
				
				$json = array();
				
				if (($this->request->server['REQUEST_METHOD'] == 'POST')) {
					$this->model_catalog_review->thumbup($this->request->post);
					
					$json['success'] = 'Thanks!';
				} else {
					$json['error'] = 'Review ID is incorrect or invalid.';
				}	
				
				$this->load->library('json');
				
				$this->response->setOutput(Json::encode($json));
			}

			public function thumbdown() {
				$this->language->load('product/product');
				
				$this->load->model('catalog/review');
				
				$json = array();
				
				if (($this->request->server['REQUEST_METHOD'] == 'POST')) {
					$this->model_catalog_review->thumbdown($this->request->post);
					
					$json['success'] = 'Thanks!';
				} else {
					$json['error'] = 'Review ID is incorrect or invalid.';
				}	
				
				$this->load->library('json');
				
				$this->response->setOutput(Json::encode($json));
			}
			]]></add>
		</operation>
	</file>

	<file name="catalog/model/catalog/review.php">
		<operation error="log">
			<search position="replace"><![CDATA[
			text = '" . $this->db->escape(strip_tags($data['text'])) . "',
			]]></search>
			<add><![CDATA[
			email = '" . $this->db->escape($data['email']) . "', text = '" . $this->db->escape(strip_tags($data['text'])) . "',
			]]></add>
		</operation>
		<operation error="log">
			<search position="replace"><![CDATA[
			SELECT r.review_id, r.author, r.rating,
			]]></search>
			<add><![CDATA[
			SELECT r.review_id, r.author, r.rating, r.staffreply, r.thumbup, r.thumbdown,
			]]></add>
		</operation>
		<operation error="log">
			<search position="before"><![CDATA[
			public function getAverageRating($product_id) {
			]]></search>
			<add><![CDATA[
			public function thumbup($data) {
				$this->db->query("UPDATE " . DB_PREFIX . "review SET thumbup = thumbup + 1 WHERE review_id = '" . $this->db->escape($data['review_id']) . "'");
			}

			public function thumbdown($data) {
				$this->db->query("UPDATE " . DB_PREFIX . "review SET thumbdown = thumbdown + 1 WHERE review_id = '" . $this->db->escape($data['review_id']) . "'");
			}
			]]></add>
		</operation>	
	</file>

	<file name="admin/view/template/catalog/review_form.tpl">
		<operation error="log">
			<search position="after" offset="3"><![CDATA[
			<span class="error"><?php echo $error_rating; ?></span>
			]]></search>
			<add><![CDATA[
		  	<tr>
          	<td>Staff Reply:</td>
         	<td><textarea name="staffreply" cols="60" rows="8"><?php echo $staffreply?></textarea></td>
       		</tr>

       		<script type="text/javascript" src="view/javascript/ckeditor/ckeditor.js"></script>
			<script type="text/javascript">
			CKEDITOR.replace('staffreply');
			</script>
        	]]></add>
		</operation>
		<operation error="log">
			<search position="after" offset="3"><![CDATA[
			<span class="error"><?php echo $error_author; ?></span>
			]]></search>
			<add><![CDATA[
		  	<tr>
          	<td>E-mail:</td>
         	<td><input type="text" name="email" value="<?php echo $email?>" /></td>
       		</tr>
        	]]></add>
		</operation>	
	</file>

	<file name="admin/controller/catalog/review.php">
		<operation error="log">
			<search position="after"><![CDATA[
			'author'     => $result['author'],
			]]></search>
			<add><![CDATA[
			'email'     => $result['email'],
			]]></add>
		</operation>
		<operation error="log">
			<search position="after"><![CDATA[
			'rating'     => $result['rating'],
			]]></search>
			<add><![CDATA[
			'staffreply'     => $result['staffreply'],
			]]></add>
		</operation>
		<operation error="log">
			<search position="after" offset="2"><![CDATA[
			$this->data['author'] = '';
			]]></search>
			<add><![CDATA[
			if (isset($this->request->post['email'])) {
			$this->data['email'] = $this->request->post['email'];
			} elseif (isset($review_info)) {
			$this->data['email'] = $review_info['email'];
			} else {
			$this->data['email'] = '';
			}
			]]></add>
		</operation>
		<operation error="log">
			<search position="after" offset="2"><![CDATA[
			$this->data['rating'] = '';
			]]></search>
			<add><![CDATA[
			if (isset($this->request->post['staffreply'])) {
			$this->data['staffreply'] = $this->request->post['staffreply'];
			} elseif (isset($review_info)) {
			$this->data['staffreply'] = $review_info['staffreply'];
			} else {
			$this->data['staffreply'] = '';
			}
			]]></add>
		</operation>	
	</file>

	<file name="admin/model/catalog/review.php">
		<operation error="log">
			<search position="replace"><![CDATA[
			text = '" . $this->db->escape(strip_tags($data['text'])) . "',
			]]></search>
			<add><![CDATA[
			text = '" . $this->db->escape(strip_tags($data['text'])) . "', email = '" . $this->db->escape($data['email']) . "', staffreply = '" . $this->db->escape($data['staffreply']) . "', 
			]]></add>
		</operation>
	</file>

	<file name="catalog/view/theme/default/template/product/product.tpl">
		<operation error="log">
			<search position="after"><![CDATA[
			<input type="text" name="name" value="" />
			]]></search>
			<add><![CDATA[
			<br />
			<br />
			<b>E-mail:</b> (<span style="font-size: 11px;"><span style="color: #FF0000;">Note:</span> Only used for follow ups and / or support.</span>)
			<br />
	        <input type="text" name="email" value="" />
	        ]]></add>
		</operation>
		<operation error="log">
			<search position="replace"><![CDATA[
			data: 'name=' + encodeURIComponent($('input[name=\'name\']').val()) +
			]]></search>
			<add><![CDATA[
			data: 'name=' + encodeURIComponent($('input[name=\'name\']').val()) + '&email=' + encodeURIComponent($('input[name=\'email\']').val()) +
			]]></add>
		</operation>
		<operation error="log">
			<search position="after"><![CDATA[
			$('input[name=\'name\']').val('');
			]]></search>
			<add><![CDATA[
			$('input[name=\'email\']').val('');
			]]></add>
		</operation>
		</file>

	<file name="catalog/view/theme/default/template/product/review.tpl">
		<operation error="log">
			<search position="replace"><![CDATA[
			<?php echo $review['text']; ?></div>
			]]></search>
			<add><![CDATA[
			<?php echo $review['text']; ?>
			<?php if(!empty($review['staffreply'])) { ?>
			<script type="text/javascript" src="http://pogearacingusa.com/readmore.js"></script>
			<script type="text/javascript">
			$(document).ready(function() {
			  // override default options (also overrides global overrides)
			  $('#staffreply_<?php echo $review['review_id']; ?>').expander({
			    slicePoint:       100,  // default is 100
			    preserveWords: true,
			    expandPrefix:     '...', // default is '... '
			    expandText:       'Read More..', // default is 'read more'
			    collapseTimer:    0, // re-collapses after 5 seconds; default is 0, so no re-collapsing
			    userCollapseText: 'Read Less..'  // default is 'read less'
			  });

			});
			</script>

			<br /> <br />
 			<div class="content">
 			<span><img src="http://i.imgur.com/lpwVrW4.png"> <b>MADNESS Staff Reply:</b></span>
 			<br />
 			<div id="staffreply_<?php echo $review['review_id']; ?>">
 			<?php echo $review['staffreply']; ?>
 			</div>
 			</div>
 			<?php } ?>

			<script type="text/javascript">
			function thumbup_<?php echo $review['review_id']; ?>() {
			$.ajax({
					type: 'POST',
					url: 'index.php?route=product/product/thumbup',
					dataType: 'json',
					data: 'review_id=' + <?php echo $review['review_id']; ?>,
					success: function(data) {
						if (data.error) {
							console.log(data.error);
						}
						
						if (data.success) {
						console.log(data.success);
						$('#thumcont_<?php echo $review['review_id']; ?>').html('<span class="rate rateUp" data-item="8"><span class="rateUpN">Thanks!</span></span><span class="rate rateDown" style="height: 21px;border-left: 0px;background-position: -30px -48px;padding: 3px 0px 0 6px;" data-item="8"><span class="rateDownN"></span></span>');

					}
				}
			});
			}
			</script>

			<script type="text/javascript">
			function thumbdown_<?php echo $review['review_id']; ?>() {
			$.ajax({
					type: 'POST',
					url: 'index.php?route=product/product/thumbdown',
					dataType: 'json',
					data: 'review_id=' + <?php echo $review['review_id']; ?>,
					success: function(data) {
						if (data.error) {
							console.log(data.error);
						}
						
						if (data.success) {
						console.log(data.success);
						$('#thumcont_<?php echo $review['review_id']; ?>').html('<span class="rate rateUp" style="height: 21px;background-position: -30px -48px;padding: 3px 0px 0 6px;" data-item="8"><span class="rateUpN"></span></span><span class="rate rateDown" style="border-left: 0px;" data-item="8"><span class="rateDownN">Thanks!</span></span>');

					}
				}
			});
			}
			</script>
			
			<div id="thumcont_<?php echo $review['review_id']; ?>" class="rateWrapper">
			<span class="rate rateUp" data-item="8" onclick="thumbup_<?php echo $review['review_id']; ?>();">
			<span class="rateUpN"><?php echo $review['thumbup']; ?></span>
			</span>
			<span class="rate rateDown" data-item="8" onclick="thumbdown_<?php echo $review['review_id']; ?>();">
			<span class="rateDownN"><?php echo $review['thumbdown']; ?></span>
			</span>
			</div>
			<div style="clear:right;"></div>
			</div>
			]]></add>
		</operation>
		<operation error="log">
			<search position="after"><![CDATA[
			<?php if ($reviews) { ?>
			]]></search>
			<add><![CDATA[
			<style>
			.rateWrapper {
				float: right;
				height: 24px;
				margin-top: 15px;
				-webkit-border-radius: 7px;
				-moz-border-radius: 7px;
				border-radius: 7px;
			}
			.rate,.rateDone {	
				display: block;
				float: left;	
				background: #fff;
				text-decoration: none;
				background-image: url(http://i.imgur.com/RTnge84.png);
				background-repeat: no-repeat;
				font-weight: bold;
			}
			.rate {
				cursor: pointer;
			}
			.rateDone {
				cursor: default;
			}
			.rateUp {
				background-position: 0 0;
				border-top: solid 1px #aaa;
				border-bottom: solid 1px #aaa;
				border-left: solid 1px #aaa;
				-webkit-border-top-left-radius: 7px;
				-webkit-border-bottom-left-radius: 7px;
				-moz-border-radius-topleft: 7px;
				-moz-border-radius-bottomleft: 7px;
				border-top-left-radius: 7px;
				border-bottom-left-radius: 7px;
				padding: 3px 10px 0 35px;
				height: 21px;
			}
			.rateDown {
				background-position: 0 -48px;
				border: solid 1px #aaa;
				-webkit-border-top-right-radius: 7px;
				-webkit-border-bottom-right-radius: 7px;
				-moz-border-radius-topright: 7px;
				-moz-border-radius-bottomright: 7px;
				border-top-right-radius: 7px;
				border-bottom-right-radius: 7px;
				padding: 3px 10px 0 35px;
				height: 21px;
			}
			.rateUp:hover,.rateUp.active {
				background-position: 0 -24px;
			}
			.rateDown:hover,.rateDown.active {
				background-position: 0 -72px;
			}
			</style>
			]]></add>
		</operation>
	</file>
</modification>