Okay, I'm starting out with some AJAX stuff in a wordpress theme

1) I'm building a child theme OFF the thematic framework
2) My child theme has a header.php, index.php, functions.php and style.css (at this stage)

In my header.php I have the following (btw: the code is adapted from http://codex.wordpress.org/AJAX_in_Plugins):

    <?php
        if( !is_admin() ) {
     add_action('wp_ajax_my_special_action', 'my_action_callback');
     add_action('wp_ajax_nopriv_my_special_action', 'my_action_callback');
     $_ajax = admin_url('admin-ajax.php');    
    }
    ?>
    <script type="text/javascript" >
    jQuery(document).ready(function($) {
    
     var data = {
      action: 'my_special_action',
      whatever: 1234
     };
    
     jQuery.post('<?php echo($_ajax); ?>', data, function(response) {
      jQuery('#output').html('Got this from the server: ' + response);
     });
     
    });
    </script>
    </head>

Right so that's all cool - and it updates the OUTPUT div on the page with "Got this from the server: 0"

I need a PHP function called "my_action_callback" - so in my theme's functions.php I have the following:

    function my_action_callback() {
    
     $whatever = $_POST['whatever'];
    
     $whatever += 10;
    
        echo 'whatever now equals: ' . $whatever;
        
     die();
    }

This is the ONLY function in my functions.php

To make sure the PHP function is working I stick my_action_callback() into my index.php - and it outputs "whatever now equals: 10" as expected.

HOWEVER - the AJAX response is always 'Got this from the server: 0'
Ajax never seems to get the response from the PHP function. 

I tried adding .ajaxError() to see if there were any errors - nope.

I tried adding the PHP functions to another plugin of mine - nope.

What am I missing that jQuery isn't doing the ajax bit for me?

Thanks in advance