        
        // remote scripting library
        // (c) copyright 2005 modernmethod, inc
        var sajax_debug_mode = false;
        var sajax_request_type = "POST";
        
        function sajax_debug(text) {
            if (sajax_debug_mode)
                alert("RSD: " + text)
        }
        function sajax_init_object() {
            sajax_debug("sajax_init_object() called..")
            
            var A;
            try {
                A=new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    A=new ActiveXObject("Microsoft.XMLHTTP");
                } catch (oc) {
                    A=null;
                }
            }
            if (!A && typeof XMLHttpRequest != "undefined")
                A = new XMLHttpRequest();
            if (!A)
                sajax_debug("Could not create connection object.");
            return A;
        }
        function sajax_do_call(func_name, args) {
            var i, x, n;
            var uri;
            var post_data;
            
            uri = "/sajax.php?load=followers,flag,comments,likes";
                        
            if (sajax_request_type == "GET") {
                if (uri.indexOf("?") == -1) 
                    uri = uri + "?rs=" + escape(func_name);
                else
                    uri = uri + "&rs=" + escape(func_name);
                for (i = 0; i < args.length-1; i++) 
                    uri = uri + "&rsargs[]=" + escape(args[i]);
                uri = uri + "&rsrnd=" + new Date().getTime();
                post_data = null;
            } else {
                post_data = "rs=" + escape(func_name);
                for (i = 0; i < args.length-1; i++) 
                    post_data = post_data + "&rsargs[]=" + escape(args[i]);
            }
            
            x = sajax_init_object();
            
            x.open(sajax_request_type, uri, true);
            if (sajax_request_type == "POST") {
                x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1");
                x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            }
            x.onreadystatechange = function() {
                                
                if (x.readyState != 4)
                    return;
                            
                sajax_debug("received " + x.responseText);
            
                var status;
                var data;
                status = x.responseText.charAt(0);
                data = x.responseText.substring(2);
            
                if (status == "-") 
                    alert("Error: " + data);
                else  
                    args[args.length-1](data);
            }
            
            if (x) x.send(post_data);   
            
            sajax_debug(func_name + " uri = " + uri + "/post = " + post_data);
            sajax_debug(func_name + " waiting..");
            delete x;
        }
        
                
        // wrapper for addCircle        
        function x_addCircle() {
            sajax_do_call("addCircle",
                x_addCircle.arguments);
        }
        
                
        // wrapper for editContact        
        function x_editContact() {
            sajax_do_call("editContact",
                x_editContact.arguments);
        }
        
                
        // wrapper for follow        
        function x_follow() {
            sajax_do_call("follow",
                x_follow.arguments);
        }
        
                
        // wrapper for unfollow        
        function x_unfollow() {
            sajax_do_call("unfollow",
                x_unfollow.arguments);
        }
        
                
        // wrapper for blockFollower        
        function x_blockFollower() {
            sajax_do_call("blockFollower",
                x_blockFollower.arguments);
        }
        
                
        // wrapper for unblockFollower        
        function x_unblockFollower() {
            sajax_do_call("unblockFollower",
                x_unblockFollower.arguments);
        }
        
                
        // wrapper for approveFollower        
        function x_approveFollower() {
            sajax_do_call("approveFollower",
                x_approveFollower.arguments);
        }
        
                
        // wrapper for denyFollower        
        function x_denyFollower() {
            sajax_do_call("denyFollower",
                x_denyFollower.arguments);
        }
        
                
        // wrapper for flagContent        
        function x_flagContent() {
            sajax_do_call("flagContent",
                x_flagContent.arguments);
        }
        
                
        // wrapper for getComments        
        function x_getComments() {
            sajax_do_call("getComments",
                x_getComments.arguments);
        }
        
                
        // wrapper for approveComment        
        function x_approveComment() {
            sajax_do_call("approveComment",
                x_approveComment.arguments);
        }
        
                
        // wrapper for addComment        
        function x_addComment() {
            sajax_do_call("addComment",
                x_addComment.arguments);
        }
        
                
        // wrapper for addCommentReply        
        function x_addCommentReply() {
            sajax_do_call("addCommentReply",
                x_addCommentReply.arguments);
        }
        
                
        // wrapper for editComment        
        function x_editComment() {
            sajax_do_call("editComment",
                x_editComment.arguments);
        }
        
                
        // wrapper for deleteComment        
        function x_deleteComment() {
            sajax_do_call("deleteComment",
                x_deleteComment.arguments);
        }
        
                
        // wrapper for deleteCommentActivity        
        function x_deleteCommentActivity() {
            sajax_do_call("deleteCommentActivity",
                x_deleteCommentActivity.arguments);
        }
        
                
        // wrapper for addLike        
        function x_addLike() {
            sajax_do_call("addLike",
                x_addLike.arguments);
        }
        
                
        // wrapper for deleteLike        
        function x_deleteLike() {
            sajax_do_call("deleteLike",
                x_deleteLike.arguments);
        }
        
        