<?php

if(!(isset($_POST['secretPassword']) && $_POST['secretPassword'] == 'bma@2020')) {
    $arr = array ('response' => 0, 'message' => 'Erro! Password errada ou não existe.');
    echo json_encode($arr);
    return false;
}

/** Enviar lead */
date_default_timezone_set("Portugal");
$actualTime = date('Y-m-d H:i:s'); 

$con = mysqli_connect("94.46.30.69", "bluemark_OMH2019", "xhYdv66{Dx!f", "bluemark_OMHwp")or die(json_encode("unconnected"));

$queryCamp = mysqli_query($con, "SELECT * FROM Campanhas WHERE Nome like 'MariaHelena'");
$campaign = mysqli_fetch_assoc($queryCamp);

$IP         = $_SERVER['REMOTE_ADDR'];
$Country    = "PT";
$Site       = "pt.mariahelena.facebook";
$campaignName = 'MariaHelena';
$campaignNameLaura = 'Getresponse2PT';

$utmTerm = $campaign['utmTermDefault'] ? $campaign['utmTermDefault'] : 'bma';
$affSub2 = '';
$utmSource = 'facebook_LF';
$utmMedium = 'fb_leadForm';
$HorarioEnvio = $actualTime;

$Atraso = explode("/",$campaign['Regra']);
if($Atraso[1] > 0){
    $HorarioEnvio = date("Y-m-d H:i:s", strtotime('+'.$Atraso[1].' hours',strtotime($HorarioEnvio)));
}

if(isset($_POST['newRows']) && !empty($_POST['newRows'])) {
    foreach(json_decode($_POST['newRows'], true) as $lead) {

        $telefone_without_plus = str_replace('+', '', clean($lead[16][0]));
        $refactor_phone_number = substr($telefone_without_plus, 0, 3) == '351' ? substr($telefone_without_plus, 3) : $telefone_without_plus;
    
        //Tenho que ver se já existe o email na bd
        //se não existir é que adiciona o nome campo a várias coisas
//        $checkIfEmailOrNumberAlreadyExists = mysqli_query($con, "SELECT * FROM OMH_registosLaura WHERE EMAIL like '" . $lead[15][0] . "' AND TELEFONE like '" . $refactor_phone_number . "'");
//        if(mysqli_num_rows($checkIfEmailOrNumberAlreadyExists) > 0) { # If rows are found for query
//            continue;
//        }

        $DHRegisto  = date_format(date_create($lead[1][0]),"Y-m-d H:i:s");
        $Name       = utf8_decode($lead[13][0]);
        $PNome      = explode(" ", $Name, 2)[0];
        $UNome      = explode(" ", $Name, 2)[1] ? explode(" ", $Name, 2)[1] : '';
        $BData      = date_format(date_create($lead[14][0]),"Y-m-d");
        $Email      = $lead[15][0] ?  $lead[15][0] : 'N/A';
        $Telefone   = $refactor_phone_number;
        $Desejo     = $lead[12][0] ? ucfirst(utf8_decode($lead[12][0])) : ''; //não há esse campo
        $Genero     = strtoupper(json_decode(file_get_contents('https://api.genderize.io/?name=' . tirarAcentos(utf8_encode($PNome)) . '&country_id=PT'), true)['gender'][0]);
        $Genero     = $Genero ? $Genero : strtoupper(json_decode(file_get_contents('https://api.genderize.io/?name=' . utf8_encode($PNome) . '&country_id=PT'), true)['gender'][0]);
        $Genero     = $Genero ? $Genero : 'N/A';
        
        // // echo "ID: " . $lead[0] . '<br/>'; // vem sempre
        // echo "Data de criação: " . $DHRegisto . '<br/>'; // vem sempre
        // // echo "É organico: " . ($lead[10] ? 'Sim' : 'Não') . '<br/>'; // vem sempre
        // // echo "Plataforma: " . $lead[11] . '<br/>'; // vem sempre
        // echo "Nome completo: " . $Name . '<br/>'; // são campos personalizados
        // echo "P Nome: " . $PNome . '<br/>'; // são campos personalizados
        // echo "U Nome: " . $UNome . '<br/>'; // são campos personalizados
        // echo "E-mail: " . $Email . '<br/>'; // são campos personalizados
        // echo "Telefone: " . $Telefone . '<br/>'; // são campos personalizados
        // echo "Data de nascimento: " . $BData . '<br/>'; // são campos personalizados
        // echo "Desejo: " . $Desejo . '<br/>'; // são campos personalizados
        // echo "Genero: " . $Genero . '<br/>'; // são campos personalizados

        $SqlInsert = "INSERT INTO OMH_registosLaura (DESEJO, FNAME, LNAME, BDATE, GENDER, EMAIL, TELEFONE, NUMVIDA, dataHoraRegisto, IP, Horario, `Site`, Country, GeoIP, utm_source, utm_term) VALUES ('".$Desejo."', '".$PNome."', '".$UNome."', '".$BData."', '".$Genero."', '".$Email."', '".$Telefone."', 0, '".$DHRegisto."', '".$IP."', '".$HorarioEnvio."', '".$Site."', '".$Country."', '".$Country."', '".$utmSource."', '".$utmTerm."')";
        // echo $SqlInsert;
        $insertRegistoLaura = mysqli_query($con, $SqlInsert);
        //return
        $SqlInsertLC = "INSERT INTO LeadCampanha (Lead, Campanha,HorarioEnvio,Site,Resposta,RespostaCliente,DataHoraRegisto,utmTerm,utmSource) VALUES ('".$Email."','".$campaignName."','".$HorarioEnvio."','".$Site."','ok','Email Enviado','".$DHRegisto."','".$utmTerm."','".$utmSource."')";
        $insertLeadCampanha = mysqli_query($con, $SqlInsertLC); 
        //return       

        $SqlInsertLCLaura = "INSERT INTO LeadCampanha (Lead, Campanha,HorarioEnvio,Site,Resposta,RespostaCliente,DataHoraRegisto,utmTerm,utmSource) VALUES ('".$Email."','".$campaignNameLaura."','".$HorarioEnvio."','".$Site."','ok','Email Enviado','".$DHRegisto."','".$utmTerm."','".$utmSource."')";
        $insertLeadCampanhaLaura = mysqli_query($con, $SqlInsertLCLaura); 
        //return       


        $SqlInsertLeads = "INSERT INTO Leads (Email,FName,LName,BData,Genero,IP,DataHoraRegisto,Telefone,Country,Site,utmTerm) VALUES ('".$Email."','".$PNome."','".$UNome."','".$BData."','".$Genero."','".$IP."','".$DHRegisto."','".$Telefone."','".$Country."','".$Site."','".$utmTerm."')";
        // echo "<p>".$SqlInsertLeads."</p>";
        $insertLeads = mysqli_query($con, $SqlInsertLeads);
    }
    
    //adicionados à base de dados! 
    // $arr = array ('response' => 1, 'message' => 'Adicionado com sucesso!');
    // echo json_encode($arr);
    // return true;
    echo 'Adicionado com sucesso!';
    return;
}

//não há novas leads 
// $arr = array ('response' => 0, 'message' => 'Ocorreu algum problema na inserção na bd ou não tens novas leads!');
// echo json_encode($arr);
// return false;
echo 'Ocorreu algum problema na inserção na bd ou não tens novas leads!';
return;

/* FUNCTIONS */
function clean($string) {
    $string = str_replace(' ', '', $string); // Replaces all spaces
    return preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special chars.
}

function tirarAcentos($string){
    return preg_replace(array("/(á|à|ã|â|ä)/","/(Á|À|Ã|Â|Ä)/","/(é|è|ê|ë)/","/(É|È|Ê|Ë)/","/(í|ì|î|ï)/","/(Í|Ì|Î|Ï)/","/(ó|ò|õ|ô|ö)/","/(Ó|Ò|Õ|Ô|Ö)/","/(ú|ù|û|ü)/","/(Ú|Ù|Û|Ü)/","/(ñ)/","/(Ñ)/"),explode(" ","a A e E i I o O u U n N"),$string);
}