<?php

set_time_limit(0);
//require_once 'nitroDbInfo.php';
require_once('dbConfig.php');
$dbName = 'dorifrie_seonitrov2';
$dbConnection = mysql_connect('localhost', 'dorifrie_nitrov2', '@-!y8;sAQV)7');

$response = array();
if (connect_db($dbConnection, $dbName)) {

    require_once("IXR_Library.php.inc");

    $fullRpcDomain = 'http://www.villo.me/nitroserver.php';

    // Create the client object
    $client = new IXR_Client($fullRpcDomain);


    $response = array();

    if (!$client->query('nitro.getCampaignStats')) {
        $response[] = 'Error: ' . $client->getErrorCode() . " : " . $client->getErrorMessage();
        pr($response);
    } else {
        $response = $client->getResponse();

        pr(array('success'));
        //exit;

        if ($response) {
            if ($response) {
                $dbTableName = 'trackeddomains';
                $allDomains = result_array("SELECT * FROM domains WHERE status != -1");
                foreach ($response as $domain => $resultsByDomain) {
                    $domainId = getDomainIdByPinger($allDomains, $domain);
                    $domainId = $domainId ? $domainId : 0;
                    $prevDelete = @query("DELETE FROM $dbTableName WHERE (domain_id = $domainId || pinger like '%$domain%')");
                    //echo '<br/>';
                    if (!is_array($prevDelete) && $prevDelete !== false) {
                        if ($domainId) {
                            foreach ($resultsByDomain as $rBD) {
                                $resultRow['domain_id'] = $domainId;
                                $resultRow['campaign_id'] = $rBD['campaign_id'];
                                $resultRow['pinger'] = $rBD['pinger'];
                                $resultRow['post_id'] = $rBD['post_id'];
                                $resultRow['codefound'] = $rBD['codefound'];
                                $resultRow['created'] = date('Y-m-d G:i:s');
                                $inserted = insert($dbTableName, $resultRow);
                            }
                        }
                    }
                }
            }
        }
    }
    //pr($response);
    generateCampaignResults();

    close_db($dbConnection);
    exit;

    //sleep(10);
    //setResults();
}

exit;

function getPlainDomain($url) {
    $url = str_replace('http://', '', strtolower($url));
    $url = str_replace('https://', '', $url);
    $plainDomain = str_replace('www.', '', $url);
    if (strpos($url, '/')) {
        $plainDomain = strstr($url, '/', true);
    }
    return $plainDomain;
}

function getPreviousResult($dataArr, $cId, $pinger) {
    $reArr = array();
    if (is_array($dataArr) && count($dataArr)) {
        foreach ($dataArr as $dA) {
            if ($dA['campaign_id'] == $cId && $dA['pinger'] == $pinger) {
                $reArr = $dA;
                break;
            }
        }
    }
    return $reArr;
}

function getDomainIdByPinger($dataArr, $pinger) {
    $reId = false;
    if (is_array($dataArr) && count($dataArr)) {
        foreach ($dataArr as $dA) {
            if (strpos($pinger, $dA['domain']) !== false) {
                $reId = $dA['id'];
                break;
            }
        }
    }
    return $reId;
}

/* === generate result functions === */

function seoShuffleMtSrand($items, $mtSrand = 1) {

    if ($items) {
        mt_srand($mtSrand);
        for ($i = count($items) - 1; $i > 0; $i--) {
            $j = @mt_rand(0, $i);
            $tmp = $items[$i];
            $items[$i] = $items[$j];
            $items[$j] = $tmp;
        }
    }
    return $items;
}

function seoShuffle($items) {

    if ($items) {
        mt_srand(5);
        for ($i = count($items) - 1; $i > 0; $i--) {
            $j = @mt_rand(0, $i);
            $tmp = $items[$i];
            $items[$i] = $items[$j];
            $items[$j] = $tmp;
        }
    }
    return $items;
}

function getUniqueIds($dataArr, $fieldName) {
    $reArr = array();
    if (is_array($dataArr) && count($dataArr)) {
        foreach ($dataArr as $dA) {
            $reArr[] = $dA[$fieldName];
        }
        $reArr = array_unique($reArr);
    }
    return $reArr;
}

function getUniqueDomainIdsByCid($dataArr, $dataArr2, $cId) {
    $reArr = array();
    if (is_array($dataArr) && count($dataArr)) {
        foreach ($dataArr as $dA) {
            if ($dA['campaign_id'] == $cId) {
                $reArr[] = $dA['domain_id'];
            }
        }
        $reArr = array_unique($reArr);
    }
    if (is_array($dataArr2) && count($dataArr2)) {
        foreach ($dataArr2 as $dA) {
            if ($dA['campaign_id'] == $cId) {
                $reArr[] = $dA['domain_id'];
            }
        }
    }
    $reArr = array_unique($reArr);
    return $reArr;
}

function getUniqueIdsByField($dataArr, $fieldName, $dataArr2 = array()) {
    $reArr = array();
    if (is_array($dataArr) && count($dataArr)) {
        foreach ($dataArr as $dA) {
            $reArr[] = $dA[$fieldName];
        }
        $reArr = array_unique($reArr);
    }
    if (is_array($dataArr2) && count($dataArr2)) {
        foreach ($dataArr2 as $dA) {
            $reArr[] = $dA[$fieldName];
        }
    }
    $reArr = array_unique($reArr);
    sort($reArr);
    return $reArr;
}

function getCodeFoundByCid($dataArr, $cId) {
    $reNum = 0;
    if (is_array($dataArr) && count($dataArr)) {
        $foundByCid = 0;
        foreach ($dataArr as $k => $dA) {
            $codeFound = $dA['codefound'] ? $dA['codefound'] : 0;
            if (($dA['campaign_id'] == $cId)) {
                $foundByCid += $codeFound;
            }
        }
        $reNum = $foundByCid;
    }
    return $reNum;
}

function getBlogRollByCid($dataArr, $cId) {
    $reNum = 0;
    if (is_array($dataArr) && count($dataArr)) {
        $foundByCid = 0;
        foreach ($dataArr as $k => $dA) {
            if (($dA['campaign_id'] == $cId)) {
                $foundByCid +=1;
            }
        }
        $reNum = $foundByCid;
    }
    return $reNum;
}

function getCodeFoundByDomainCampaignId($dataArr, $dId, $cId) {
    $reArr = array();
    if (is_array($dataArr) && count($dataArr)) {
        $foundForSidebar = 0;
        $foundForFooter = 0;
        foreach ($dataArr as $k => $dA) {
            if (($dA['domain_id'] == $dId) && ($dA['campaign_id'] == $cId)) {
                if ($dA['setting_option'] == 1) {
                    $foundForSidebar +=1;
                } elseif ($dA['setting_option'] == 2) {
                    $foundForFooter +=1;
                }
            }
        }
        $reArr['sidebar'] = $foundForSidebar;
        $reArr['footer'] = $foundForFooter;
    }
    return $reArr;
}

function getCodeFoundByPingerIdCampaignId($dataArr, $pId, $cId) {
    $reArr = array();
    if (is_array($dataArr) && count($dataArr)) {
        $codeFoundByCid = 0;
        foreach ($dataArr as $k => $dA) {
            if (($dA['pinger_id'] == $pId) && ($dA['campaign_id'] == $cId)) {
                $codefound = $dA['codefound'] ? $dA['codefound'] : 0;
                $codeFoundByCid += $codefound;
                $domain_id = $dA['domain_id'];
            }
        }
        $reArr['pinger_id'] = $codeFoundByCid;
        $reArr['found'] = $codeFoundByCid;
        $reArr['domain_id'] = $domain_id;
    }
    return $reArr;
}

function getPingersByCid($dataArr, $cId) {
    $reArr = array();
    if (is_array($dataArr) && count($dataArr)) {
        foreach ($dataArr as $dA) {
            if ($cId == $dA['campaign_id']) {
                $reArr[] = $dA;
            }
        }
    }
    return $reArr;
}

function getCampaignResultsByDomainId($domainId, $campArr) {
    $returnArr = array();
    if (is_array($campArr) && count($campArr)) {
        foreach ($campArr as $key => $cA) {
            if ($cA['domain_id'] == $domainId) {
                $returnArr[$key]['campaign_id'] = $cA['campaign_id'];
                $returnArr[$key]['pinger'] = $cA['pinger'];
                $returnArr[$key]['results'] = $cA['results'];
            }
        }
    }
    return $returnArr;
}

function getAllPingersBy_DomainId_cId($dataArr, $cId, $domainId) {
    $reArr = array();
    if (is_array($dataArr) && count($dataArr)) {
        foreach ($dataArr as $k => $dA) {
            if ($dA['campaign_id'] == $cId && $dA['domain_id'] == $domainId && $dA['campaign_id'] != -1) {
                $reArr[] = $dA;
            }
        }
    }
    return $reArr;
}

function getTrackedDomainsId($dataArr, $cId, $domainId, $pinger) {
    $reArr = array();
    if (is_array($dataArr) && count($dataArr)) {
        foreach ($dataArr as $k => $dA) {
            if ($dA['campaign_id'] == $cId && $dA['domain_id'] == $domainId && $dA['pinger'] == $pinger) {
                $reArr = $dA;
                break;
            }
        }
    }
    return $reArr;
}

function getAnchorListByCid($anchorList, $cId) {
    $finalList = array();
    if (is_array($anchorList) && count($anchorList)) {
        foreach ($anchorList as $k => $data) {
            if ($data['campaign_id'] == $cId) {

                $tDensity = intval(trim($data['targetDensity']));
                $aText = trim($data['anchortexts']);
                $aNoFollow = $data['nofollow'];
                $aTextArr = (array) explode(",", $aText);
                $uText = trim($data['internalPageUrl']);
                $uTextArr = (array) explode(",", $uText);
                $tDensityEach = $tDensity / count($aTextArr);

                if (($tDensity == '') || ($aText == ''))
                    continue;

                $aCount = count($aTextArr) ? count($aTextArr) : 0;
                $aTextFullArr = array();
                if ($aCount) {
                    $uIndex = 0;
                    for ($i = 0; $i < $aCount; $i++) {
                        if (isset($uTextArr[$uIndex])) {
                            $aTextFullArr[] = $uTextArr[$uIndex];
                        } else {
                            $uIndex = 0;
                            $aTextFullArr[] = $uTextArr[$uIndex];
                        }
                        $uIndex++;
                    }
                }
                // all multiple anchor text with commas
                for ($ii = 0; $ii < count($aTextArr); $ii++) {
                    $temp = array();
                    $noFollow = '';
                    if ($aNoFollow == 1) {
                        $noFollow = 'rel="nofollow" ';
                    }
                    $interPageUrl = isset($aTextFullArr[$ii]) ? $aTextFullArr[$ii] : '#';
                    $temp['campaign_id'] = $cId;
                    $temp['anchorText'] = isset($aTextArr[$ii]) ? $aTextArr[$ii] : '-';
                    $temp['internalPageUrl'] = $interPageUrl;
                    $temp['targetDensity'] = $tDensityEach;
                    $temp['noFollow'] = $noFollow;
                    //$temp['anchorLink'] = '<a' . $noFollow . ' href="' . 'http://' . str_replace('http://', '', $temp['internalPageUrl']) . '">' . $temp['anchorText'] . '</a>';
                    $finalList[] = $temp;
                    //pr($temp);
                }
            }
        }
    }
    return $finalList;
}

function getContentAnchorArray($anchorList, $count) {
    $arr = array();
    $versionCount = 3;
    if ($anchorList) {
        //pr($anchorList);

        $tempURLs = array();
        $tempAnchorTexts = array();

        $countM = 0;
        foreach ($anchorList as $k => $aL) {
            $times = @ceil($count * ( $aL['targetDensity'] / 100 ));
            if ($times > 0) {
                for ($i = 0; $i < $times; $i++) {
                    $temp['arrIndex'] = $countM;
                    $temp['campaign_id'] = $aL['campaign_id'];
                    $temp['anchorText'] = $aL['anchorText'];
                    $temp['noFollow'] = $aL['noFollow'];
                    $temp['internalPageUrl'] = $aL['internalPageUrl'];
                    $tempURLs[] = $temp;
                    $tempAnchorTexts[] = $aL['anchorText'];
                    $countM++;
                }
            }
        }
        //pr($tempURLs);
        //pr($tempAnchorTexts);
        if ($tempURLs) {
            $tempURLs = array_slice($tempURLs, 0, $count);
            $arr['aLinks'] = $tempURLs;
            $tempAnchorTexts = array_slice($tempAnchorTexts, 0, $count);
            for ($mt = 0; $mt <= $versionCount; $mt++) {
                $arr['aTexts'][] = seoShuffleMtSrand($tempAnchorTexts, $mt);
            }
        }
    }
    //pr($arr);
    //exit;
    return $arr;
}

function generateCampaignResults($campId = null) {

    //echo 'here';
    //get all the blogrolls
    $allBlogRolls = result_array("SELECT blogrolls.*,domains.domain FROM blogrolls JOIN domains ON domains.id = blogrolls.domain_id");
    //get previously generated results if any
    $allTrackedDomains = result_array("SELECT trackeddomains.*, campaigns.campignname, campaigns.user_id FROM trackeddomains LEFT JOIN campaigns ON campaigns.id = trackeddomains.campaign_id");

    $allUniqueDomainIds = getUniqueIdsByField($allBlogRolls, 'domain_id', $allTrackedDomains);
    $allUniqueCampaignIds = getUniqueIdsByField($allBlogRolls, 'campaign_id', $allTrackedDomains);

    //pr($allUniqueDomainIds);
    //pr($allUniqueCampaignIds);

    $domainWhereClause = '';
    if ($allUniqueDomainIds) {
        $allDomainIdString = implode(',', $allUniqueDomainIds);
        $domainWhereClause = " AND id IN($allDomainIdString)";
    }
    $campWhereClause = '';
    if ($allUniqueCampaignIds) {
        $allCampIdString = implode(',', $allUniqueCampaignIds);
        $campWhereClause = " AND id IN($allCampIdString)";
        $campWhereClause2 = " AND campaign_id IN($allCampIdString)";
    }
    //pr($uAllDomainIds);
    //get all the active campaigns
    $allCampaigns = result_array("SELECT id,campignname FROM campaigns WHERE status = 1 $campWhereClause");

    //pr($allCampaigns);
    //exit;
    //get all the anchors
    $allAnchors = result_array("SELECT * from anchortexts WHERE 1=1 $campWhereClause2 ORDER BY targetDensity DESC");

    //get all the domains
    $allDomains = result_array("SELECT * FROM domains WHERE status != -1 $domainWhereClause");

    //initialize the volume array
    $volumeArray = array();

    $allAnchorSets = array();

    $domForThisCampaign = array();
    //loop through the campaigns
    foreach ($allCampaigns as $aC) {
        //campaign id
        $uCI = $aC['id'];

        $allUniqueDomainIdsByCid = getUniqueDomainIdsByCid($allBlogRolls, $allTrackedDomains, $uCI);

        if ($campId) {
            $domForThisCampaign = $allUniqueDomainIdsByCid;
        }

        //get all the blogrolls using this campaign id
        $blogRollCountByCid = getBlogRollByCid($allBlogRolls, $uCI);

        //get all dcl codes found by this campaign id
        $getCodeFoundByCid = getCodeFoundByCid($allTrackedDomains, $uCI);

        //add blogrolls found and dcl codes found to get the total
        $totalCodeFoundByCid = $blogRollCountByCid + $getCodeFoundByCid;

        //get anchor list by this campaign id
        $anchorListByCid = getAnchorListByCid($allAnchors, $uCI);

        //pr($anchorListByCid);
        //get the generated anchor list counted by the total found codes
        $anchorArrayByCid = getContentAnchorArray($anchorListByCid, $totalCodeFoundByCid);

        //pr($anchorArrayByCid);
        //exit;

        if ($anchorArrayByCid) {
            //pr($anchorArrayByCid[0]);
            //get the volume array ready per campaign id
            $volumeArray[$uCI]['campaign_id'] = $uCI;
            $allAnchorSets[$uCI] = $anchorArrayByCid['aTexts'];
            //$volumeArray[$uCI]['campaign_anchors'] = $anchorArrayByCid;

            if (is_array($allDomains) && count($allDomains)) {
                //loop through all the domains
                $aCountByCid = 0;
                foreach ($allDomains as $k => $aD) {
                    //domain id
                    $uADI = $aD['id'];

                    if (in_array($uADI, $allUniqueDomainIdsByCid)) {

                        //initialize a counter
                        //get if any blogrolls added for this domain by this campaign id
                        $getCodeFoundByDomainCampaignId = getCodeFoundByDomainCampaignId($allBlogRolls, $uADI, $uCI);

                        //blogrolls for sidebar
                        $sidebarCount = $getCodeFoundByDomainCampaignId['sidebar'];

                        //blogrolls for footer
                        $footerCount = $getCodeFoundByDomainCampaignId['footer'];

                        $volumeArray[$uCI]['domains'][$k]['sidebar_anchors'] = array();
                        $volumeArray[$uCI]['domains'][$k]['footer_anchors'] = array();
                        $volumeArray[$uCI]['domains'][$k]['domain_id'] = $uADI;
                        $volumeArray[$uCI]['domains'][$k]['domain'] = $aD['domain'];
                        $volumeArray[$uCI]['domains'][$k]['campaign_id'] = $uCI;
                        $volumeArray[$uCI]['domains'][$k]['sidebar_count'] = $sidebarCount;
                        $volumeArray[$uCI]['domains'][$k]['footer_count'] = $footerCount;

                        if (($sidebarCount + $footerCount) > 0) {
                            for ($s = 0; $s < $sidebarCount; $s++) {
                                $volumeArray[$uCI]['domains'][$k]['sidebar_anchors']['aLinks'][] = $anchorArrayByCid['aLinks'][$aCountByCid];
                                $aCountByCid++;
                            }
                            for ($f = 0; $f < $footerCount; $f++) {
                                $volumeArray[$uCI]['domains'][$k]['footer_anchors']['aLinks'][] = $anchorArrayByCid['aLinks'][$aCountByCid];
                                $aCountByCid++;
                            }
                        }

                        //echo $uCI . '=================' . $uADI . '<br/>';
                        $pingersByCid = getAllPingersBy_DomainId_cId($allTrackedDomains, $uCI, $uADI);

                        if ($pingersByCid) {
                            foreach ($pingersByCid as $pk => $pBC) {
                                $codeFound = $pBC['codefound'];
                                $volumeArray[$uCI]['domains'][$k]['pingers_found'] = count($pingersByCid);
                                $volumeArray[$uCI]['domains'][$k]['pingers_all'][$pk]['aLinks'] = array();
                                for ($cf = 0; $cf < $codeFound; $cf++) {
                                    $volumeArray[$uCI]['domains'][$k]['pingers_all'][$pk]['aLinks'][] = $anchorArrayByCid['aLinks'][$aCountByCid];
                                    $aCountByCid++;
                                }
                                $volumeArray[$uCI]['domains'][$k]['pingers_all'][$pk]['pinger'] = $pBC['pinger'];
                                $volumeArray[$uCI]['domains'][$k]['pingers_all'][$pk]['id'] = $pBC['id'];
                                $volumeArray[$uCI]['domains'][$k]['pingers_all'][$pk]['post_id'] = $pBC['post_id'];
                                $volumeArray[$uCI]['domains'][$k]['pingers_all'][$pk]['codefound'] = $pBC['codefound'];
                            }
                        }
                        //pr($pingersByCid);
                    }
                }
            }
        }
    }
    //pr($allAnchorSets);
    //pr($volumeArray);
    //exit;

    $domainArr = array();
    if (is_array($allDomains) && count($allDomains)) {
        foreach ($allDomains as $k => $aD) {
            $domainId = $aD['id'];
            $domainArr[$k]['id'] = $domainId;
            $domainArr[$k]['domain'] = $aD['domain'];

            foreach ($volumeArray as $vA) {
                if (isset($vA['domains'])) {
                    foreach ($vA['domains'] as $uD) {
                        if ($uD['domain_id'] == $domainId) {
                            $campaignId = $uD['campaign_id'];
                            if (isset($uD['sidebar_anchors']['aLinks']) && $uD['sidebar_anchors']['aLinks']) {
                                foreach ($uD['sidebar_anchors']['aLinks'] as $sA) {
                                    $domainArr[$k]['sidebar_anchors'][] = $sA;
                                }
                            }
                            if (isset($uD['footer_anchors']['aLinks']) && $uD['footer_anchors']['aLinks']) {
                                foreach ($uD['footer_anchors']['aLinks'] as $fA) {
                                    $domainArr[$k]['footer_anchors'][] = $fA;
                                }
                            }
                            if (isset($uD['pingers_all']) && $uD['pingers_all']) {
                                foreach ($uD['pingers_all'] as $pA) {
                                    if ($pA['aLinks']) {
                                        $pinger = $pA['pinger'];
                                        $domainArr[$k]['pingers_all'][$pinger][$campaignId] = $pA['aLinks'];
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    //pr($domainArr);

    $finalArray = array();
    if ($domainArr) {
        foreach ($domainArr as $key => $dA) {
            $blogRollsForDomain = array();
            $blogRollsForDomain['domain_id'] = $dA['id'];
            $blogRollsForDomain['pinger'] = $dA['domain'];
            $blogRollsForDomain['campaign_id'] = -1;
            if (isset($dA['sidebar_anchors']) && $dA['sidebar_anchors']) {
                for ($mt = 0; $mt < 4; $mt++) {
                    $sidebarHtml = '<ul>';
                    foreach ($dA['sidebar_anchors'] as $sA) {
                        $cId = $sA['campaign_id'];
                        $arrIndex = $sA['arrIndex'];
                        $finalLink = '<a ' . $sA['noFollow'] . 'href="http://' . preg_replace('/https?\:\/\//i', '', $sA['internalPageUrl']) . '">' . $allAnchorSets[$cId][$mt][$arrIndex] . '</a>';
                        $sidebarHtml .= '<li>' . $finalLink . '</li>';
                    }
                    $sidebarHtml .= '</ul>';
                    $blogRollsForDomain['results']['sidebar_html'][$mt] = $sidebarHtml;
                }
            }

            if (isset($dA['footer_anchors']) && $dA['footer_anchors']) {
                for ($mt = 0; $mt < 4; $mt++) {
                    $footerHtml = '<ul>';
                    foreach ($dA['footer_anchors'] as $k => $fA) {
                        $cId = $fA['campaign_id'];
                        $arrIndex = $fA['arrIndex'];
                        $finalLink = '<a ' . $fA['noFollow'] . 'href="http://' . preg_replace('/https?\:\/\//i', '', $fA['internalPageUrl']) . '">' . $allAnchorSets[$cId][$mt][$arrIndex] . '</a>';
                        $liBorder = ($k + 1 != count($dA['footer_anchors'])) ? 'border-right:1px solid gray;' : '';
                        $footerHtml .= "<li style='display:inline;padding:0 3px;margin-left:0;{$liBorder}'>" . $finalLink . "</li>";
                    }
                    $footerHtml .= '</ul>';
                    $blogRollsForDomain['results']['footer_html'][$mt] = $footerHtml;
                }
            }
            $finalArray[] = $blogRollsForDomain;

            if (isset($dA['pingers_all']) && $dA['pingers_all']) {
                foreach ($dA['pingers_all'] as $pinger => $pA) {
                    $pingerForDomain = array();
                    $pingerForDomain['domain_id'] = $dA['id'];
                    $pingerForDomain['pinger'] = $pinger;

                    $campaignAnchors = $pA;

                    foreach ($campaignAnchors as $k => $cA) {
                        $pingerForDomain['campaign_id'] = $k;
                        $dclAnchors = array();
                        for ($mt = 0; $mt < 4; $mt++) {
                            foreach ($cA as $k => $aLink) {
                                $pCampaignId = $aLink['campaign_id'];
                                $arrIndex = $aLink['arrIndex'];
                                $finalLink = '<a ' . $aLink['noFollow'] . 'href="http://' . preg_replace('/https?\:\/\//i', '', $aLink['internalPageUrl']) . '">' . $allAnchorSets[$pCampaignId][$mt][$arrIndex] . '</a>';
                                $dclAnchors[$mt][] = $finalLink;
                            }
                            $pingerForDomain['results'] = $dclAnchors;
                        }
                        $finalArray[] = $pingerForDomain;
                    }
                }
            }
        }
    }

    //pr($finalArray);
    //exit;

    if ($finalArray) {
        $dbTableName = 'trackeddomains';
        foreach ($finalArray as $fA) {
            $codeFound = isset($fA['results'][0]) ? count($fA['results'][0]) : 0;
            $fA['results'] = isset($fA['results']) ? serialize($fA['results']) : serialize(array());
            $resultsNow = getTrackedDomainsId($allTrackedDomains, $fA['campaign_id'], $fA['domain_id'], $fA['pinger']);
            if ($resultsNow) {
                $updateData['results'] = $fA['results'];
                $updateData['modified'] = date('Y-m-d G:i:s');
                update($dbTableName, $updateData, array('id' => $resultsNow['id']));
            } else {
                $fA['created'] = date('Y-m-d G:i:s');
                insert($dbTableName, $fA);
            }
        }
    }

    //exit;

    if ($campId) {
        $uDomString = '0';
        if ($domForThisCampaign) {
            $uDomString = implode(',', $domForThisCampaign);
            setCampaignResults($uDomString);
        }
    }
}

function setCampaignResults($uDomString = null) {

    $campWhereClause = '';
    if ($uDomString) {
        $campWhereClause = " AND domains.id IN($uDomString)";
    }
    $allCampaignResults = result_array("SELECT domains.id,domains.domain,domains.cms,trackeddomains.* FROM trackeddomains JOIN domains ON domains.id = trackeddomains.domain_id WHERE domains.status != -1 $campWhereClause");
    //$allDomains = result_array("SELECT * FROM domains WHERE status = 1 AND domain = '8thstreetdesigndistrict.com'");
    //pr($allCampaignResults);

    $uniqueIds = array();
    $uniqueDomains = array();
    if ($allCampaignResults) {
        foreach ($allCampaignResults as $key => $aDoms) {
            if (!in_array($aDoms['domain_id'], $uniqueIds)) {
                $uniqueIds[] = $aDoms['domain_id'];
                $uniqueDomains[] = $aDoms;
            }
        }
        //pr($uniqueDomains);
        //pr($allCampaignResults);
        //exit;
        if (is_array($uniqueDomains) && count($uniqueDomains)) {
            require_once("IXR_Library.php.inc");
            $finalResult = array();
            foreach ($uniqueDomains as $aD) {
                $domainRpc = getPlainDomain($aD['domain']);
                $domainId = $aD['domain_id'];
                $cms = $aD['cms'];
                if ($cms == 'wordpress') {
                    if ($domainRpc) {
                        $fullRpcDomain = 'https://' . $domainRpc;
                        // Create the client object
                        $client = new IXR_Client($fullRpcDomain . '/xmlrpc.php');
                        //$client->debug = true; // Set it to fase in Production Environment
                        //$campaignResults = result_array("SELECT campaign_id, pinger, results FROM $tableName WHERE domain_id = $domainId");
                        $campaignResults = getCampaignResultsByDomainId($domainId, $allCampaignResults);

                        //pr($campaignResults);

                        /**/
                        $myresponse = array();
                        $params = array();
                        if (!empty($campaignResults)) {
                            $params = $campaignResults;
                        }
                        // Run a query To Read Posts From Wordpress
                        if (!$client->query('nitro.setCampaignResults', $params)) {
                            $myresponse[] = $client->getErrorCode() . ' : ' . $client->getErrorMessage();
                        } else {
                            //$myresponse = $client->getResponse();
                            $myresponse[] = 'Success';
                        }
                        $finalResult[$domainRpc] = $myresponse;
                        /* */
                    }
                }
            }
            //pr($finalResult);
            //$pingTime = date('Y-m-d H:i:s');
            //mail('mainulnitro@gmail.com', 'SetCampaignResults', "Testing hello one two three... Run at $pingTime");
        }
    }
}

function setResults() {

    set_time_limit(0);

    $dbName = 'dorifrie_seonitrov2';
    $dbConnection = mysql_connect('localhost', 'dorifrie_nitrov2', '@-!y8;sAQV)7');

    $response = array();
    if (connect_db($dbConnection, $dbName)) {

        $allCampaignResults = result_array("SELECT domains.id,domains.domain,domains.cms,domains.dbname,domains.dbuser,domains.dbpassword,domains.dbtable_prefix,trackeddomains.* FROM trackeddomains JOIN domains ON domains.id = trackeddomains.domain_id WHERE domains.status != -1");

        if ($allCampaignResults) {
            $dbList = getUniqueDbUsers($allCampaignResults);
            if ($dbList) {
                $$allCampaignResultsString = json_encode($allCampaignResults);
                $dbListJsonString = json_encode($dbList);
                $post_data = array('dbList' => $dbListJsonString, 'resultList' => $$allCampaignResultsString, 'set_campaign_stats' => true);
                $urltopost = "http://www.villo.me/ctracker.php";
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, $urltopost);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
                curl_setopt($ch, CURLOPT_USERAGENT, 'PHP/' . phpversion());
                $response = (curl_exec($ch));
                curl_close($ch);
            }

            if ($response) {
                $response = json_decode($response, true);
            }
        }

        close_db($dbConnection);
    }
    pr($response);
}

function getUniqueDbUsers($dataArr) {
    $reArr = array();
    $dbUserArr = array();
    if (is_array($dataArr) && count($dataArr)) {
        foreach ($dataArr as $dA) {
            if (!in_array($dA['dbuser'], $dbUserArr)) {
                if ($dA['dbtable_prefix'] != '') {
                    $dbUserArr[] = $dA['dbuser'];
                    $temp['domain_id'] = $dA['domain_id'];
                    $temp['domain'] = $dA['domain'];
                    $temp['dbname'] = $dA['dbname'];
                    $temp['dbuser'] = $dA['dbuser'];
                    $temp['dbpassword'] = $dA['dbpassword'];
                    $temp['dbtable_prefix'] = $dA['dbtable_prefix'];
                    $reArr[] = $temp;
                }
            }
        }
    }
    return $reArr;
}
