<?php

// localhost/Distributed/Mongo/Auditor/index_data.php?p_id=1&project=indigo.com&pos=26&t=500&grade=F

    require_once "conf.php"; //common configuration constants and error function defined
    require_once 'ErrorDetail.php';

    $pos = (int) $_GET['pos'];
    $total = $_GET['total'];
    $grade = $_GET['grade'];
    // var_dump($_GET); die("test");

    $err_col_arr['_id'] = 0; $err_col_arr['u'] = $err_col_arr['pos'] = $err_col_arr['t'] = $err_col_arr['etit.tit'] = 1;
    $this_errors_list['_id'] = 0;

    $proj_data = getProjData($my_dist_host, $my_dist_user, $my_dist_pass, $my_dist_db);
    $week = (int)$proj_data['crawl_no'] - 1;

    $ERR_VALUES['_id'] = 0;
    $err_value = $mongoDB->auditor->findOne(
        array('pi' => P_ID, 'w' => $week, 'pos' => (int) $pos),
        $ERR_VALUES
    );

    $s_errors = array();
    $page_errors = array();
    $error_names = array();

    $this_errors = $mongoDB->auditor->findOne(
        array('pi' => P_ID, 'w' => $week, 'pos' => (int) $pos),
        $err_col_arr
    );
    foreach ($this_errors as $tekey => $tevalue) {

        if ($tekey !== "u" && $tekey !== "pos" && $tekey !== 't') {
            if (is_array($tevalue)) {
                foreach ($tevalue as $esk => $esv) {
                    if (!empty($tevalue[$esk]) && $tevalue[$esk] >= 1 && $esk !== 'tit') {
                        $s_errors[$esk] = $tekey.".".$esk;
                        $this_errors_list[$tekey.".".$esk] = 1;
                    }
                }
            } elseif (!empty($this_errors[$tekey]) && $this_errors[$tekey] >= 1 && $tekey !== 'tit') {
                $s_errors[$tekey] = $tekey;

                $this_errors_list[$tekey] = 1;
            }
        }
        if ($this_errors['t'] > T_SPEED_SLOW) {
            $this_errors_list['t'] = 1;
        }
    }

    $each_errors = $mongoDB->auditor->find(
        array('pi' => P_ID, 'w' => $week),
        $err_col_arr
    );

    while ($e_error = $each_errors->getNext()) {
        foreach ($e_error as $eskey => $esvalue) {
            if ($eskey !== "u" && $eskey !== "pos" && $eskey !== 't') {
                // var_dump($esvalue);
                if (is_array($esvalue)) {
                    foreach ($esvalue as $esk => $esv) {
                        if (!empty($esvalue[$esk]) && $esvalue[$esk] >= 1 && array_key_exists($eskey.".".$esk, $this_errors_list)) {
                            if (empty($page_errors[$esk])) {
                                $page_errors[$esk] = 0;
                            }
                            $page_errors[$esk] += 1;
                        }
                    }
                } elseif (!empty($e_error[$eskey]) && $e_error[$eskey] >= 1 && array_key_exists($eskey, $this_errors_list)) {
                    if (empty($page_errors[$eskey])) {
                        $page_errors[$eskey] = 0;
                    }
                    $page_errors[$eskey] += 1;
                }
            }
        }
        if ($e_error['t'] > T_SPEED_SLOW && array_key_exists('t', $this_errors_list)) {
            if (empty($page_errors['t'])) {
                $page_errors['t'] = 0;
            }

            $page_errors['t'] += 1;
        }
    }

    $detail = new ErrorDetail(P_ID, URL_TO_CRAWL, $pos, $week);

    $page_count = 0;
    foreach ($page_errors as $pkey => $pvalue) {
        $error_names[$pkey] = $final_arr[$pkey];

        if (strstr(T_ERR_MAJOR, $pkey)) {
            $impact = "High";
        }
        if (strstr(T_ERR_MEDIUM, $pkey)) {
            $impact = "Medium";
        }
        if (strstr(T_ERR_MINOR, $pkey)) {
            $impact = "Low";
        }

        $error_effect[$pkey] = $impact;

        if ($pkey == 'dti') {
            $page_count = $detail->title_duplicate("show count");
        } elseif ($pkey == 'dde') {
            $page_count = $detail->meta_desc_duplicate("show count");
        } elseif ($pkey == 'dkw') {
            $page_count = $detail->meta_kw_duplicate("show count");
        }

        $description_arr[$pkey] = get_error_desc($pkey, $err_value, $page_count, $this_errors['u']);
    }

    $title = "";
    if(!empty($this_errors['etit']['tit']))
        $title = $this_errors['etit']['tit'];

    $page_info = array(
        'tit' => $title,
        'u' => rawurlencode($this_errors['u']),
    );
    $page['page_errors'] = json_encode($page_errors);
    $page['page_info'] = json_encode($page_info);
    $page['description_arr'] = json_encode($description_arr);
    $page['s_errors'] = json_encode($s_errors);
    $page['error_effect'] = json_encode($error_effect);
    $page['error_names'] = json_encode($error_names);

    echo $tt = json_encode($page);
