    function rateStory(e,id,v)
    {
        Event.stop(e);
        var url = '/post/rate/';
        var ajax = new Ajax.Request(
            url, 
            {
                method: 'post', 
                parameters: {story_id:id,value:v}, 
                onComplete: handleRateStoryResponse
            });
       return false 
    }

    function handleRateStoryResponse(response)
    {
        var JSON = eval('('+ response.responseText +')');
        for(var i=0; i < JSON.length; i++) {
            var elem = $('s'+JSON[i].story_id)
            elem.textContent = JSON[i].rating;
            elem.innerText = JSON[i].rating
        }
        Element.extend($('votecontrols'));
        $('votecontrols').hide();
    }

    function bookmarkStory(id)
    {
        var url = '/bookmarks/add/';
        
        var ajax = new Ajax.Request(
            url, 
            {
                method: 'post', 
                parameters: {story_id:id}, 
                onSuccess: handleBookmarkStoryResponse 
            });
       return false 
    }

    function handleBookmarkStoryResponse(response) {

        var JSON = eval('('+ response.responseText +')');
        for(var i=0; i < JSON.length; i++) {
            $('db_'+JSON[i].story_id).style.display = 'block';
            $('ab_'+JSON[i].story_id).style.display = 'none';
        }
    }

    function deleteBookmark(id)
    {
        var url = '/bookmarks/delete/';
        
        var ajax = new Ajax.Request(
            url, 
            {
                method: 'post', 
                parameters: {story_id:id}, 
                onSuccess: handleDeleteBookmarkResponse
            });
       return false 
    }

    function handleDeleteBookmarkResponse(response) {
           
        var JSON = eval('('+ response.responseText +')');
        for(var i=0; i < JSON.length; i++) {
            $('ab_'+JSON[i].story_id).style.display = 'block';
            $('db_'+JSON[i].story_id).style.display = 'none';
        }
    }


    function rateComment(e,id,v)
    {
        Event.stop(e)
        var url = '/post/comment/rate/';
        
        var ajax = new Ajax.Request(
            url, 
            {
                method: 'post', 
                parameters: {comment_id:id,value:v}, 
                onComplete: handleRateCommentResponse
            });
        return false 
    }

    function handleRateCommentResponse(response)
    {
        var JSON = eval('('+ response.responseText +')');
        for(var i=0; i < JSON.length; i++) {
            var elem = $('c'+JSON[i].comment_id)
            elem.textContent = JSON[i].rating;
            elem.innerText = JSON[i].rating;
        }
    }

    function commentIt(e, replyLink, replyTo) {
        if (e) {
            Event.stop(e);
        }
        displayInplaceReplyForm(replyLink, replyTo);
        return false;
    }

    function displayInplaceReplyForm(replyLink, replyTo) {
        replyLink.blur();
        replyForm = $('replyform');
        Element.extend(replyForm);
        $('reply_to').value = replyTo;
        replyLink.parentNode.parentNode.appendChild(replyForm);
        replyForm.show();
        Element.extend($('default_reply_link'));
        $('default_reply_link').show();
        return false;
    }

    function displayDefaultReplyForm(e) {
        if (e) {
            Event.stop(e);
        }
        replyForm = $('replyform');
        if (replyForm) {
            Element.extend(replyForm);
            replyForm.show();
            $('storycomments').appendChild(replyForm);
            Element.extend($('default_reply_link'));
            $('default_reply_link').hide();
        }
        return false;
    }


