<html>
<head>
<title>Dojo Testing Script</title>

<script type="text/javascript">
        var djConfig = {isDebug: true,debugContainerId: "dojoDebug" };
        //djConfig.debugAtAllCosts = true;
</script>

<script type="text/javascript" src="../../dojo.js"></script>

<script type="text/javascript">
	dojo.require("dojo.debug.Firebug");
	dojo.require("dojo.widget.*");
	dojo.require("dojo.widget.Button");
	dojo.require("dojo.rpc.JsonService");
	dojo.require("dojo.rpc.Deferred");
</script>

</head>


<body>

<div id="example">
	<h2> How to initialize a JSON-RPC Service: </h2>
	<pre>
	//You need the package of course
	dojo.require("dojo.rpc.JsonService");

	// Create a callback function to handle the results generated
	// by a method A second optional parameter to your call back
	// will allow the callback to use the submission Id of the 
	// json-rpc request

        function contentCallBack(result) {
	 	dojo.debug("in contentCallBack");
                var handlerNode = document.getElementById("content");
                handlerNode.innerHTML = result;
        }

	function contentErrBack(obj) {
		dojo.debug(obj);
	}

	// Create a new object
        var testClass = new dojo.rpc.JsonService("testClass.smd");
	</pre>
</div>

<div id="actions">
	<h2>Push these buttons to execute code in the button.</h2>
	<h3>Results will be returned below under "Returned Content"</h3>

	<h4>This button will perform a simple echo</h4>
	<div id="myecho" dojoType="Button" onClick='testClass.myecho("blah").addCallbacks(contentCallBack,contentErrBack);'>testClass.myecho("blah").addCallbacks(contentCallBack,contentErrBack); </div><br>
	<h4>This Button will simply call the function contentB() </h4>
	<div id="contentB" dojoType="Button" onClick='testClass.contentB().addCallbacks(contentCallBack,contentErrBack);'>testClass.contentB().addCallbacks(contentCallBack,contentErrBack);</div><br>
	<h4>This button will call add() to add two numbers together</h4>
	<div id="add" dojoType="Button" onClick='testClass.add(5,6).addCallbacks(contentCallBack,contentErrBack);'>testClass.add(5,6).addCallbacks(contentCallBack,contentErrBack);</div><br>
	<h4>This button will make a call that returns an RPC error (as opposed to a transport error)</h4>
	<div id="triggerRpcError" dojoType="Button" onClick='testClass.triggerRpcError().addCallbacks(contentCallBack,contentErrBack);'>testClass.triggerRpcError().addCallbacks(contentCallBack,contentErrBack);</div><br>
	<h4>This button will make a call that returns a transport error</h4>
	<div id="triggerTransportError" dojoType="Button" onClick='erroringClass.content().addCallbacks(contentCallBack,contentErrBack);'>erroringClass.content().addCallbacks(contentCallBack,contentErrBack);</div><br>
</div>
<br>

<br>
<h2>Returned Content:</h2>
<div id="ReturnedContent">
None.
</div>

<div id="dojoDebug">
<h2>Debug Log:</h2>      
</div>

<script type="text/javascript">

	function contentCallBack(result) {
		var handlerNode = document.getElementById("ReturnedContent");
		handlerNode.innerHTML = "<p>" + result + "</p>" ;
	}

	function contentErrBack(obj) {
		dojo.debug(obj);
	}

	dojo.addOnLoad(function(){
		testClass = new dojo.rpc.JsonService("testClass.smd");
		erroringClass=new dojo.rpc.JsonService("erroringClass.smd");
	});
</script>
</head>
</html>