function RefSetProcess($RefArr, $RefId = false, $HostObj = false)
 {
     //global $Db, $StId, $Skip, $NaturalKey, $HostsArr, $CookieLogSet, $UpdateVisPath;
     global $_NS_TRACK_VARS;
     $Db =& $_NS_TRACK_VARS['Db'];
     $StId =& $_NS_TRACK_VARS['StId'];
     $Skip =& $_NS_TRACK_VARS['Skip'];
     $NaturalKey =& $_NS_TRACK_VARS['NaturalKey'];
     $HostsArr =& $_NS_TRACK_VARS['HostsArr'];
     $CookieLogSet =& $_NS_TRACK_VARS['CookieLogSet'];
     $UpdateVisPath =& $_NS_TRACK_VARS['UpdateVisPath'];
     $QrArr = NS_TRACK_QUERY::ParseTemplate(NS_TRACK_MISC::ValidVar($RefArr['query']));
     if (NS_TRACK_MISC::ValidVar($HostObj->KEY_VAR) && isset($QrArr[$HostObj->KEY_VAR])) {
         $Key = NS_TRACK_MISC::ToLower(urldecode(urldecode($QrArr[$HostObj->KEY_VAR])));
         $Key = NS_TRACK_REFERER::ReplacePunkt($Key);
         $Key = preg_replace("/\\s+/", " ", $Key);
         $Key = trim($Key);
         $KeyId = NS_TRACK_REFERER::GetKeywordId($Key);
     } else {
         $KeyId = 0;
     }
     $NaturalKey = $KeyId;
     $Query = "INSERT INTO " . NS_DB_PFX . "_tracker_referer_set (HOST_ID, NATURAL_KEY, PROCESSED, REFERER_ID) VALUES (" . $HostObj->ID . ", {$KeyId}, '1', {$RefId})";
     $Db->Query($Query);
     return $Db->LastInsertId;
 }
$GetVars = NS_TRACK_QUERY::ParseTemplate(NS_TRACK_MISC::ValidVar($CurrentPageArr['query']));
$Skip = NS_TRACK_MISC::ValidId($GetVars['ns_skip']) ? true : false;
if ($Skip) {
    return NS_TRACK_GENERAL::FinishTracking();
}
$ClickSubId = NS_TRACK_MISC::ValidId($GetVars[$VarCamp]) ? $GetVars[$VarCamp] : 0;
if (!$ClickSubId) {
    $ClickSubId = NS_TRACK_CAMPAIGN::GetCampaignBySrc(NS_TRACK_MISC::ValidVar($GetVars[$VarCampSource]));
}
$KeyId = NS_TRACK_MISC::ValidId($GetVars[$VarKeyword]) ? $GetVars[$VarKeyword] : 0;
$Keyword = NS_TRACK_MISC::ValidVar($GetVars[$VarKw]) ? $GetVars[$VarKw] : false;
if ($Keyword) {
    $KeyId = NS_TRACK_REFERER::GetKeywordId($Keyword);
}
$RefSet = NS_TRACK_REFERER::GetRefererSet($RefPageArr, $Ref);
$QueryId = NS_TRACK_QUERY::GetQueryId($CurrentPageArr['query']);
$Actions = NS_TRACK_ACTION::GetActionIds($PageId, $CurrentPageArr);
if (!$KeepNoRef && $RefSet == 0 && !NS_TRACK_MISC::ValidId($_COOKIE['ns_log']) && $ClickSubId != 0) {
    $Skip = true;
}
if ($Skip) {
    return NS_TRACK_GENERAL::FinishTracking();
}
if ($NoDblPageLoad) {
    NS_TRACK_GENERAL::CheckPathDblClick();
}
if ($NoDblAdvClick) {
    NS_TRACK_GENERAL::CheckAdvDblClick();
}
if ($Skip) {
    return NS_TRACK_GENERAL::FinishTracking();
 function CompareTemplate($Query = false, $Template = false)
 {
     $ItemValue = false;
     if (!$Template) {
         return true;
     }
     if (!$Query) {
         return false;
     }
     $TplGet = NS_TRACK_QUERY::ParseTemplate($Template);
     $QrGet = NS_TRACK_QUERY::ParseTemplate($Query);
     if (!$TplGet || !$QrGet) {
         return false;
     }
     foreach ($TplGet as $Key => $Value) {
         if (!isset($QrGet[$Key])) {
             return 0;
         }
         if ($Value == "{a}") {
             $ItemValue = $QrGet[$Key];
             continue;
         }
         if ($Value == "*") {
             continue;
         }
         if ($Value != $QrGet[$Key]) {
             return 0;
         }
     }
     if ($ItemValue) {
         global $Item;
         $Item = $ItemValue;
     }
     return 1;
 }
$SiteHostId = NS_TRACK_GENERAL::CurrentSiteHost($HostsArr, $CurrentPageArr);
if (!$SiteHostId) {
    $Skip = true;
}
if ($Skip) {
    NS_TRACK_MISC::Redir($Redir);
}
$RefSet = NS_TRACK_REFERER::GetRefererSet($RefPageArr, $Ref);
if (!$KeepNoRef && $RefSet == 0 && !NS_TRACK_MISC::ValidId($_COOKIE[NS_COOKIE_PFX . 'log']) && $ClickSubId != 0) {
    $Skip = true;
}
if ($Skip) {
    NS_TRACK_MISC::Redir($Redir);
}
$Actions = NS_TRACK_ACTION::GetActionIds($PageId, $CurrentPageArr);
$QueryId = NS_TRACK_QUERY::GetQueryId(NS_TRACK_MISC::ValidVar($CurrentPageArr['query']));
if ($NoDblPageLoad) {
    NS_TRACK_GENERAL::CheckPathDblClick();
}
if ($NoDblAdvClick) {
    NS_TRACK_GENERAL::CheckAdvDblClick();
}
if ($Skip) {
    NS_TRACK_MISC::Redir($Redir);
}
$Fraud = NS_TRACK_GENERAL::CheckClickFraud($Settings, $VisId, $ClickSubId);
NS_TRACK_GENERAL::UpdateVisitorPath();
$nsUser->SetCookie(NS_COOKIE_PFX . 'tmp_skip', '1', time() + 120, '/', $_NS_TRACK_VARS['COOKIE_DOMAIN']);
NS_TRACK_GENERAL::UpdateVisitorAction();
if (NS_TRACK_MISC::ValidId($ClickSubId) && $ClickSubId > 0) {
    NS_TRACK_GENERAL::UpdateVisitorClick();