<?php

global $smarty, $tables, $customer_id;
$extended_review_customer_id =& cw_session_register("extended_review_customer_id", 0);
$_customer_id = $customer_id;
if (!empty($extended_review_customer_id)) {
    $_customer_id = $extended_review_customer_id;
}
if (defined('IS_AJAX') && !empty($review_id)) {
    cw_load('ajax');
    $review = cw_query_first("\n        SELECT r.*, v.vote_value\n        FROM {$tables['products_reviews']} r\n        LEFT JOIN {$tables['products_votes']} v ON r.review_id = v.review_id\n        WHERE r.review_id='{$review_id}' AND r.customer_id='{$_customer_id}'\n    ");
    $review['attribute_votes'] = cw_review_get_attribute_vote_values($review);
    $review['p_vote'] = cw_query_first_cell("SELECT COUNT(*) FROM {$tables['products_reviews_ratings']} WHERE review_id =  {$review['review_id']} AND rate = 1");
    $review['n_vote'] = cw_query_first_cell("SELECT COUNT(*) FROM {$tables['products_reviews_ratings']} WHERE review_id =  {$review['review_id']} AND rate = 2");
    $smarty->assign('review_item', $review);
    $avail_by_settings = cw_review_avail_by_settings($review['product_id'], $_customer_id, $extended_review_customer_id);
    $smarty->assign('avail_by_settings', $avail_by_settings);
    cw_add_ajax_block(array('id' => 'customer_review_item_' . $review_id, 'action' => 'update', 'template' => 'addons/estore_products_review/customer_reviews_management_item.tpl'));
}
            $exists = cw_query_first_cell("SELECT vote_id FROM {$tables['products_votes']} WHERE review_id = '{$review_id}' AND attribute_id ='{$attr_id}'");
            if ($exists) {
                cw_array2update('products_votes', array('vote_value' => $vote), "review_id = '{$review_id}' AND attribute_id ='{$attr_id}'");
            } else {
                cw_array2insert('products_votes', array('remote_ip' => $review_data['remote_ip'], 'vote_value' => $vote, 'product_id' => $review_data['product_id'], 'customer_id' => $review_data['customer_id'], 'review_id' => $review_id, 'attribute_id' => $attr_id));
            }
            cw_review_recalculate_avg_rating($review_data['product_id'], $attr_id);
        }
        cw_review_recalculate_avg_rating($review_data['product_id']);
        // update review
        $update_review_data = array();
        $update_review_data['testimonials'] = $review['addto'] == 'testimonials' ? 1 : 0;
        $update_review_data['stoplist'] = $review['addto'] == 'stoplist' ? 1 : 0;
        $update_review_data['name'] = $review['name'];
        $update_review_data['email'] = $review['email'];
        $update_review_data['main_title'] = $review['main_title'];
        $update_review_data['message'] = $review['message'];
        $update_review_data['status'] = $review['status'];
        cw_array2update('products_reviews', $update_review_data, "review_id = '{$review_id}'");
    }
}
$review = array();
if (!empty($review_id)) {
    $review = cw_query_first("SELECT  * FROM {$tables['products_reviews']} r  WHERE r.review_id='{$review_id}'");
    $attribute_votes = cw_review_get_attribute_vote_values($review);
}
$smarty->assign('review', $review);
$smarty->assign('attribute_votes', $attribute_votes);
$smarty->assign('current_section_dir', 'main');
$smarty->assign('main', 'estore_review_management');
$smarty->assign('home_style', 'popup');
            $vote_reviews[2][0]++;
        } elseif ($review['vote'] >= 1) {
            $vote_reviews[1][0]++;
        } else {
            $vote_reviews[0][0]++;
        }
    }
    for ($i = 0; $i <= 5; $i++) {
        $vote_reviews[$i][1] = intval($vote_reviews[$i][0] / count($reviews) * 100);
    }
    $smarty->assign('vote_reviews', $vote_reviews);
}
$reviews = array_slice($reviews, ($page - 1) * $reviews_per_page, $reviews_per_page);
foreach ($reviews as $k => $review) {
    $reviews[$k]['customer_vote'] = cw_query_first_cell("SELECT rate FROM {$tables['products_reviews_ratings']} WHERE customer_id = '{$customer_id}' AND review_id = {$review['review_id']}");
    $reviews[$k]['attribute_votes'] = cw_review_get_attribute_vote_values($reviews[$k]);
}
// Restore review data to fill form if error occured
if (!empty($review_store_place)) {
    $smarty->assign("review", $review_store_place);
    $review_store_place = false;
}
$stoplist_where = "remote_ip='{$user_ip}'";
if (!empty($_customer_id)) {
    $stoplist_where .= " OR customer_id='{$_customer_id}'";
}
$block_by_stop_list = cw_query_first_cell("\n    SELECT review_id FROM {$tables['products_reviews']}\n    WHERE ({$stoplist_where}) AND stoplist = 1\n");
$smarty->assign("block_by_stop_list", $block_by_stop_list);
$smarty->assign("user_is_purchasers", cw_review_check_is_purchasers($product_id, $_customer_id));
$smarty->assign("reviews", $reviews);
$smarty->assign("extended_review_customer_id", $extended_review_customer_id);