<?php
/*
	File: preFunctionTest.php

	Example which demonstrates the use of a preFunction.
	
	Title: preFunction test
	
	Please see <copyright.inc.php> for a detailed description, copyright
	and license information.
*/

/*
	@package xajax
	@version $Id: preFunctionTest.php 361 2007-05-24 12:48:14Z calltoconstruct $
	@copyright Copyright (c) 2005-2006 by Jared White & J. Max Wilson
	@license http://www.xajaxproject.org/bsd_license.txt BSD License
*/

require_once("../../xajax_core/xajax.inc.php");
require_once("../../xajax_core/legacy.inc.php");

function testRegularFunction($formData)
{
	$objResponse = new legacyXajaxResponse();
	$objResponse->addAlert("formData: " . print_r($formData, true));
	$objResponse->addAssign("submittedDiv", "innerHTML", nl2br(print_r($formData, true)));
	return $objResponse->getXML();
}

function myPreFunction($funcName, $args)
{
	$objResponse = new legacyXajaxResponse();
	if ($args[1] == 0) {
		$objResponse->addAlert("This is from the pre-function, which will now call " . $funcName);
		return $objResponse;
	}
	$objResponse->addAlert("This is from the pre-function, which will now end the request.");
	return array(false, $objResponse);
}

class myPreObject
{
	var $message = "This is from the pre-function object method";
	
	function preMethod($funcName, $args)
	{
		$objResponse = new legacyXajaxResponse();
		if ($args[1] == 0) {
			$objResponse->addAlert($this->message . ", which will now call " . $funcName);
			return $objResponse;
		}
		$objResponse->addAlert($this->message . ", which will now end the request.");
		return array(false, $objResponse);		
	}
}

$xajax = new legacyXajax();
$xajax->debugOn();
if (@$_GET['useObjects'] == "true") {
	$preObj = new myPreObject();
	$xajax->registerPreFunction(array("myPreFunction", &$preObj, "preMethod"));
}
else {
	$xajax->registerPreFunction("myPreFunction");
}
$xajax->registerFunction("testRegularFunction");
$xajax->processRequests();
?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
	<title>Pre-function Test (Legacy) | xajax Tests</title>
	<?php $xajax->printJavascript("../../") ?>
</head>
<body>

	<h2><a href="index.php">xajax Legacy Mode Tests</a></h2>
	<h1>Pre-function Test (Legacy)</h1>

	<form id="testForm1" onsubmit="return false;">
	<p><input type="text" id="textBox1" name="textBox1" value="This is some text" /></p>
	<p><input type="submit" value="Normal request" onclick="xajax_testRegularFunction(xajax.getFormValues('testForm1'), 0); return false;" /></p>
	<p><input type="submit" value="Pre-function should end request" onclick="xajax_testRegularFunction(xajax.getFormValues('testForm1'), 1); return false;" /></p>
	</form>

	<p><a href="preFunctionTest.php?useObjects=true">Reload using object</a></p>

	<div id="submittedDiv"></div>

</body>
</html>