<?php

/**
 * This file is part of an ADDON for use with LEPTON Core.
 * This ADDON is released under the GNU GPL.
 * Additional license terms can be seen in the info.php of this module.
 *
 *
 *	@module			captcha
 *	@version		see info.php of this module
 *	@authors		LEPTON Project, W. Studer
 *	@copyright		2020  LEPTON Project
 *	@link			https://lepton-cms.org
 *	@license		http://www.gnu.org/licenses/gpl.html
 *	@license_terms	please see info.php of this module
 *	@platform		see info.php of this module
 *
 *
 */

 // include class.secure.php to protect this file and the whole CMS!
if (defined('LEPTON_PATH')) {
	include(LEPTON_PATH.'/framework/class.secure.php');
} else {
	$oneback = "../";
	$root = $oneback;
	$level = 1;
	while (($level < 10) && (!file_exists($root.'/framework/class.secure.php'))) {
		$root .= $oneback;
		$level += 1;
	}
	if (file_exists($root.'/framework/class.secure.php')) {
		include($root.'/framework/class.secure.php');
	} else {
		trigger_error(sprintf("[ <b>%s</b> ] Can't include class.secure.php!", $_SERVER['SCRIPT_NAME']), E_USER_ERROR);
	}
}
// end include class.secure.php


/* ----------------------------
 *
 * This script is called via ajax from all_js.lte
 *
 * ----------------------------
 */

// init output
	$json_return = array( "status" => false );

// do input validation
	$oREQUEST = LEPTON_request::getInstance();
	$input_fields = array (
		 "action"		=> array( "type" => "string_clean", "default" => "" )
		,"section_id"	=> array( "type" => "integer+", "default" => 0 )
	);
	$valid_fields = $oREQUEST->testPostValues($input_fields);

	// process only if section_id is available
	if ( $valid_fields[ "section_id" ] >= 0 )
	{
		switch( $valid_fields[ "action" ] )
		{
			case "title":
				$json_return[ "title" ] = $_SESSION[ "captcharequest" . $valid_fields[ "section_id" ] ][ "SPEECH"];
				$json_return[ "status" ]  = true;
				break;

			case "reload":
				// get captcha instance
				$oCAPTCHA = captcha::getInstance();

				// recalculate
				$params = array( "SECTION_ID" => $valid_fields[ "section_id" ] );
				$json_return[ "image" ] = $oCAPTCHA->calculate_captcha( $params );

				// reset title
				$json_return[ "title" ] = $_SESSION[ "captcharequest" . $valid_fields[ "section_id" ] ][ "SPEECH"];
				$json_return[ "status" ]  = true;
				break;
		}
	}

	// return
	echo json_encode( $json_return );

?>
