/**
 * Send email
 * 		@param $recipient
 * 		@param $sender
 * 		@param $email_template
 * 		@param $replace_holders
 * 		@param $cc_email
 * 		@param $cc_subject
 * 		@param $debug
 */
function send_email($recipient, $sender, $email_template, $replace_holders = array(), $lang = '', $cc_email = '', $cc_subject = '', $debug = false)
{
    global $objSettings;
    if ($lang == '') {
        $lang = Application::Get('lang');
        $lang_dir = Application::Get('lang_dir');
    } else {
        $lang_dir = Languages::Get($lang, 'lang_dir');
    }
    $objEmailTemplates = new EmailTemplates();
    $email_info = $objEmailTemplates->GetTemplate($email_template, $lang);
    $arr_constants = array();
    $arr_constants_all = array('{FIRST NAME}', '{LAST NAME}', '{USER NAME}', '{USER PASSWORD}', '{USER EMAIL}', '{REGISTRATION CODE}', '{BASE URL}', '{WEB SITE}', '{YEAR}', '{EVENT}');
    $arr_values = array();
    foreach ($replace_holders as $key => $val) {
        $arr_constants[] = $key;
        $arr_values[] = $val;
    }
    // add the rest of holders
    foreach ($arr_constants_all as $key) {
        if (!in_array($key, $arr_constants)) {
            $arr_constants[] = $key;
            $arr_values[] = '';
        }
    }
    $subject = str_ireplace($arr_constants, $arr_values, $email_info['template_subject']);
    if ($cc_email == '' && $cc_subject != '') {
        $subject = $cc_subject;
    }
    $body = '<div style=direction:' . $lang_dir . '>';
    $body .= str_ireplace($arr_constants, $arr_values, $email_info['template_content']);
    $body .= '</div>';
    if ($objSettings->GetParameter('mailer') == 'smtp') {
        $mail = PHPMailer::Instance();
        $mail->IsSMTP();
        // telling the class to use SMTP
        $mail->SMTPDebug = 0;
        // enables SMTP debug information (for testing)
        // 1 = errors and messages
        // 2 = messages only
        $mail->SMTPAuth = true;
        // enable SMTP authentication
        $mail->SMTPSecure = 'ssl';
        // sets the prefix to the server
        $mail->Host = $objSettings->GetParameter('smtp_host');
        $mail->Port = $objSettings->GetParameter('smtp_port');
        $mail->Username = $objSettings->GetParameter('smtp_username');
        $mail->Password = $objSettings->GetParameter('smtp_password');
        $mail->ClearAddresses();
        // clear previously added 'To' addresses
        $mail->ClearReplyTos();
        // clear previously added 'ReplyTo' addresses
        $mail->SetFrom($sender);
        // $mail->SetFrom($mail_from, 'First Last');
        $mail->AddReplyTo($sender);
        // $mail->AddReplyTo($mail_to, 'First Last');
        $recipients = explode(',', $recipient);
        foreach ($recipients as $key) {
            $mail->AddAddress($key);
            // $mail->AddAddress($mail_to, 'John Doe');
        }
        $mail->Subject = $subject;
        $mail->AltBody = strip_tags($body);
        $mail->MsgHTML(nl2br($body));
        $result = $mail->Send();
        if ($cc_email != '') {
            $mail->ClearAddresses();
            // clear previously added 'To' addresses
            $mail->ClearReplyTos();
            // clear previously added 'ReplyTo' addresses
            $mail->AddAddress($cc_email);
            // $mail->AddAddress($mail_to, 'John Doe');
            $mail->Subject = $cc_subject != '' ? $cc_subject : $subject;
            $result = $mail->Send();
        }
    } else {
        $text_version = strip_tags($body);
        $html_version = nl2br($body);
        $objEmail = new Email($recipient, $sender, $subject);
        $objEmail->textOnly = false;
        $objEmail->content = $html_version;
        $result = $objEmail->Send();
        if ($cc_email != '') {
            if ($cc_subject != '') {
                $subject = $cc_subject;
            }
            $objEmail = new Email($cc_email, $sender, $subject);
            $objEmail->textOnly = false;
            $objEmail->content = $html_version;
            $result = $objEmail->Send();
        }
    }
    if ($debug) {
        echo 'To: ' . $recipient . ' <br>From: ' . $sender . ' <br>Subject: ' . $subject . ' <br>' . $body;
        if ($cc_email != '') {
            echo '<br>--------<br>To: ' . $cc_email . ' <br>From: ' . $sender . ' <br>';
        }
        exit;
    }
    return $result;
}