<?xml version="1.0" encoding="UTF-8" ?> 
<Module>
<ModulePrefs title="Calcy" height="120">
<Require feature="rpc"/>
</ModulePrefs>
<Content type="html">
 <![CDATA[ 
  <style type="text/css">
	body
	{
		font-family: Arial, Helvetica, Georgia;
		font-size: 13px;
	}
	
	td input
	{
		background-color: #CCC;
		border: 1px solid #999;
	}
	
	td input.small
	{
		width: 25px;
	}
	
	td
	{
		align: center;
	}
	
	#content_div
	{
		background-color: #CCC;
		border: 1px solid #999;
	}
	
	table
	{
		background-color: #AAA;
		border: 1px solid #666;
	}
	
	.title 
	{
		font-size: 16px;
		font-weight: bold;
	}
  </style>
  <script type="text/javascript"
      src="http://wave-api.appspot.com/public/wave.js"></script>
	 <center>
	 <br/><br/><b class="title">Calcy</b><br/><br/>
	<table cellpadding="2" cellspacing="2">
		<tr>
			<td colspan="4"><div id="content_div" style="width: 100%; text-align: right;"></div></td>
		</tr>
		<tr>
			<td><input class="small" type="submit" value=" 7 " onClick="buttonClicked(7)"></td>
			<td><input class="small"  type="submit" value=" 8 " onClick="buttonClicked(8)"></td>
			<td><input class="small"  type="submit"  value=" 9 " onClick="buttonClicked(9)"></td>
			<td><input class="small"  type="submit"  value="/" onClick="setOperator(this)"></td>
		</tr>
		<tr>
			<td><input class="small"  type="submit"  value=" 4 " onClick="buttonClicked(4)"></td>
			<td><input class="small"  type="submit"  value=" 5 " onClick="buttonClicked(5)"></td>
			<td><input class="small"  type="submit"  value=" 6 " onClick="buttonClicked(6)"></td>
			<td><input class="small"  type="submit"  value="*" onClick="setOperator(this)"></td>
		</tr>
		<tr>
			<td><input class="small"  type="submit"  value=" 1 " onClick="buttonClicked(1)"></td>
			<td><input class="small"  type="submit"  value=" 2 " onClick="buttonClicked(2)"></td>
			<td><input class="small"  type="submit"  value=" 3 " onClick="buttonClicked(3)"></td>
			<td><input class="small"  type="submit"  value="-" onClick="setOperator(this)"></td>
		</tr>
		<tr>
			<td><input class="small"  type="submit"  id="0" value=" 0 " onClick="buttonClicked()"></td>
			<td><input class="small"  type="submit"  value="+/-" onClick="toggleSign()"></td>
			<td><input class="small"  type="submit"  value="." onClick="setOperator(this)"></td>
			<td><input class="small"  type="submit"  value="+" onClick="setOperator(this)"></td>
		</tr>
		<tr>
			<td align="center" colspan="4"><input type="submit"  value=" CLEAR  " onClick="reset()"></td>
		</tr>
	</table>
	<br/><br/>
	Obviously not very robust or fully implemented. Just playing around.<br/>
	<a href="mailto: jade@design1online.com">jade@design1online.com</a>
	</center>
	
	<script type="text/javascript">

    var div = document.getElementById('content_div');
	var sign = 1;
	var operator;

    function buttonClicked(numeral) 
	{
      var value = parseInt(wave.getState().get('total', '0'));
	  
		switch (operator)
		{
			case "/":  wave.getState().submitDelta({'total': value / numeral});
				break;
			case "+": wave.getState().submitDelta({'total': value + numeral});
				break;
			case "-": wave.getState().submitDelta({'total': value - numeral});
				break;
			case "*": wave.getState().submitDelta({'total': value * numeral});
				break;
			default: 
				if (value <= 0) 
					wave.getState().submitDelta({'total': value + numeral});
				else
					wave.getState().submitDelta({'total': value = numeral});
		}
		
		operator = null;
		
    }
	
	function toggleSign()
	{
		sign *= -1;
	}
	
	function setOperator(type)
	{
		operator = type.value;
	}

    function stateUpdated() {
      if(!wave.getState().get('total')) {
        div.innerHTML = "0"
      }
      else {
        div.innerHTML =  wave.getState().get('total');
      } 
    }
 
    function main() {
      if (wave && wave.isInWaveContainer()) {
        wave.setStateCallback(stateUpdated);
      }
    }
    gadgets.util.registerOnLoadHandler(main);

    // Reset total
    function reset(){
      wave.getState().submitDelta({'total': '0'});
    }

    </script>
  ]]>
	</Content>
</Module>