    function ajax_load() {
        new Ajax.Updater('body', 
                         'http://meansandends.com/russia/index.php?a=load', 
                         {asynchronous:true, evalScripts: true });
    }
    
    // prepare the "save" button
    var butt = document.createElement('BUTTON');
	var buttext = document.createTextNode('save');
	butt.appendChild(buttext);
	butt.onclick = ajax_save;
    
    function make_editable( identifier ) {
        $(identifier+'-content').style.display = 'none';
        $(identifier+'-form').style.display = 'block';
    }
    
    // not working yet...
    function close_forms() {
        // var f = $$('form');
        var f = document.getElementsByTagName('form');
        for(var i=0; i<f.length; i++){
            f[i].style.display = 'none';
        }
        var f = $$('.content');
        for(var i=0; i<f.length; i++){
            f[i].style.display = 'block';
        }
    }

    // go back from editable to normal state    
    function revert_editable( identifier ) {
        $(identifier+'-content').style.display = 'block';
        $(identifier+'-form').style.display = 'none';
    }

    // helper function
    function insertAfter(parent, node, referenceNode) {
        parent.insertBefore(node, referenceNode.nextSibling);
    }    
    
    function keyhandler( e, identifier ) {
        var keycode;
        if (window.event) { 
            keycode = window.event.keyCode;
            ctrl = window.event.ctrlKey;
        } else {
            keycode = e.which;
            ctrl = e.ctrlKey;
        }
        
        if(keycode==115 && ctrl){ 
            ajax_save( identifier, true );
            return false;
        }
        return true;
    }
    
    // save (progress=true if just a save-in-progress type of save). 
    function ajax_save( identifier, progress ) {
        $(identifier+'-form').save.disabled=true;
        $(identifier+'-form').progress.disabled=true;
        var content = $(identifier + '-area').value;
        var characters = content.length;
        
        // get metadata
        var metadata= new Array();
        var postBody= '';
        for(var i=0; i<$(identifier+'-form').length; i++){
            if( $(identifier+'-form')[i].type=='checkbox' && $(identifier+'-form')[i].checked=='' ) {
                ;
            } else {
                postBody = postBody + '&' + $(identifier+'-form')[i].name + '=' + encodeURIComponent( $(identifier+'-form')[i].value );
            }
        }
        if( progress == false ) {
            postBody = postBody + '&progress=';
        }
        
        var request = new Ajax.Request(
                                      document.URL, 
                                      { 
                                         method: 'post',
                                         asynchronous: true, 
                                         evalScripts: true, 
                                         postBody: 'a=save&i='+identifier + postBody,
                                         onSuccess: function(t) {
                                                $('messages').innerHTML='Saved '+ characters +' chars OK.';
                                                if( progress == false ) {
                                                    nextSibling= $(identifier).nextSibling;
                                                    $(identifier).parentNode.removeChild( $(identifier) );
                                                    var newChunk= document.createElement('div');
                                                    newChunk.innerHTML= t.responseText;
                                                    nextSibling.parentNode.insertBefore( newChunk, nextSibling );
                                                    
                                                    revert_editable( identifier );
                                                }
                                                $(identifier+'-form').save.disabled=false;
                                                $(identifier+'-form').progress.disabled=false;
                                            },
                                         onFailure: function(t) {
                                                alert( "couldn't save changes, "+t.statusText );
                                                $(identifier+'-form').save.disabled=false;
                                                $(identifier+'-form').progress.disabled=false;
                                            }
                                      }
                                 );
    }

