<?php

/**
 *
 * @copyright  2010 frasq.org
 * @version    2
 * @link       http://www.frasq.org
 */

require_once 'readarg.php';
require_once 'validatemail.php';
require_once 'ismailinjected.php';

function mailme($lang) {
	$action='init';
	if (isset($_POST['mailme_send'])) {
		$action='send';
	}

	$mail=$subject=$message=false;

	switch($action) {
		case 'send':
			if (isset($_POST['mailme_mail'])) {
				$mail=strip_tags(readarg($_POST['mailme_mail'], true));
			}
			if (isset($_POST['mailme_subject'])) {
				$subject=strip_tags(readarg($_POST['mailme_subject'], true));
			}
			if (isset($_POST['mailme_message'])) {
				$message=strip_tags(readarg($_POST['mailme_message'], true));
			}
			break;
		default:
			break;
	}

	$missing_mail=false;
	$bad_mail=false;

	$missing_subject=false;
	$bad_subject=false;

	$missing_message=false;

	$email_sent=false;
	$home_page=url('home', $lang);

	$internal_error=false;

	switch($action) {
		case 'send':
			if (!$mail) {
				$missing_mail=true;
			}
			else if (!validate_mail($mail)) {
				$bad_mail=true;
			}
			if (!$subject) {
				$missing_subject=true;
			}
			else if (is_mail_injected($subject)) {
				$bad_subject=true;
			}
			if (!$message) {
				$missing_message=true;
			}

			break;
		default:
			break;
	}

	switch($action) {
		case 'send':
			if ($missing_mail or $bad_mail or $missing_subject or $bad_subject or $missing_message) {
				break;
			}

			require_once 'emailme.php';

			$r = emailme($subject, $message, $mail);

			if (!$r) {
				$internal_error=true;
				break;
			}

			$subject=$message=false;
			$email_sent=true;

			break;
		default:
			break;
	}

	$errors = compact('missing_mail', 'bad_mail', 'missing_subject', 'bad_subject', 'missing_message', 'internal_error');
	$infos = compact('email_sent', 'home_page');

	$output = view('mailme', $lang, compact('mail', 'subject', 'message', 'errors', 'infos'));

	return $output;
}
