<?php

if ($_SERVER['SCRIPT_FILENAME'] == __FILE__) {
    die('Access denied.');
}
$errors = isset($mail['errors']) ? $mail['errors'] : null;
if (!is_wp_error($errors)) {
    $errors = new WP_Error();
}
$data_sources = EM_Mailer::get_data_sources();
if (isset($_REQUEST['data_source']) && array_key_exists($_REQUEST['data_source'], $data_sources)) {
    $email_source = $_REQUEST['data_source'];
} elseif (isset($mail['source']['id'])) {
    $email_source = $mail['source']['id'];
} else {
    $email_source = 'wp';
}
?>


<div class="wrap">
    <div id="icon-options-general" class="icon32"><br /></div>

    <?php 
wpem_mail_tabs();
if (isset($_REQUEST['message']) && isset($_REQUEST['recepients'])) {
    $recepients = $_REQUEST['recepients'];
    ?>
        <div id="message" class="updated"><p><?php 
    echo sprintf(__('The email was sent to %s recepients', 'wpem'), $recepients);
    ?>
 public function validate_inputs($post)
 {
     $post = apply_filters('wpem_pre_validate_schedule', $post);
     $errors = new WP_Error();
     if (!absint($post['id'])) {
         $errors->add('schedule_id', __('invalid schedule.', 'wpem'));
     }
     $data_sources = EM_Mailer::get_data_sources();
     if (!isset($post['source']['id']) || !array_key_exists($post['source']['id'], $data_sources)) {
         $errors->add('email_source', __('Invalid value for Emaill source given', 'wpem'));
     }
     /* if($post['source']['id']=='wp'){
     
                   }else{
     
                   } */
     if (!in_array($post['mail_format'], array('html', 'plaintext'))) {
         $errors->add('mail_format', __('Unsupported mail format', 'wpem'));
     }
     if (empty($post['from_name'])) {
         $errors->add('from_name', __('From Name should not be empty', 'wpem'));
     } else {
         $post['from_name'] = sanitize_text_field($post['from_name']);
     }
     if (!is_email($post['from_email'])) {
         $errors->add('from_email', __('invalid email', 'wpem'));
     } else {
         $post['from_email'] = sanitize_email($post['from_email']);
     }
     $start_date = $post['start_date'];
     if (!preg_match('#([0-9]{1,4})-([0-9]{1,2})-([0-9]{1,2})#', $start_date, $matches)) {
         $errors->add('start_date', __('Invalid Start Date', 'wpem'));
     }
     if (!in_array($post['frequency'], array('Once', 'Daily', 'Weekly', 'Monthly', 'Yearly'))) {
         $errors->add('frequency', __('Invalid Frequency', 'wpem'));
     }
     $end_date = $post['end_date'];
     if (!preg_match('#([0-9]{1,4})-([0-9]{1,2})-([0-9]{1,2})#', $end_date, $matches)) {
         $errors->add('end_date', __('Invalid End Date', 'wpem'));
     }
     if (!intval($post['template'])) {
         $errors->add('template', __('Invalid template', 'wpem'));
     }
     if (empty($post['title'])) {
         $errors->add('title', __('Title cannot be empty.', 'wpem'));
     } else {
         $post['title'] = sanitize_text_field($post['title']);
     }
     if (empty($post['body'])) {
         $errors->add('body', __('Notification body cannot be empty.', 'wpem'));
     } else {
         $post['body'] = wp_unslash($post['body']);
     }
     if (!empty($post['attachments'])) {
         $post['attachments'] = wpem_sanitize_attachments($post['attachments']);
     }
     foreach ($post as $key => $value) {
         if (!in_array($key, apply_filters('wpem_allowed_mail_keys', array('id', 'source', 'mail_format', 'from_name', 'from_email', 'start_date', 'frequency', 'end_date', 'template', 'title', 'body', 'attachments')))) {
             unset($post[$key]);
         }
     }
     $post['errors'] = $errors;
     return apply_filters('wpem_validate_schedule', $post);
 }