// remote scripting library
// (c) copyright 2005 modernmethod, inc
var rs_debug_mode = false;
var rs_obj = false;
var rs_callback = false;

function rs_debug(text) {
	if (rs_debug_mode)
		alert("RSD: " + text)
}
function rs_init_object() {
	rs_debug("rs_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)
		rs_debug("Could not create connection object.");
	return A;
}


    // wrapper for get
    function x_get() {
	// count args; build URL
	var i, x, n;
	var url = "cgi-bin/sajax.pl?rand="+Math.random()+"&rs=get", a = x_get.arguments;
	for (i = 0; i < a.length-1; i++) 
	    url = url + "&rsargs=" + escape(a[i]);
	url = url.replace( /[+]/g, '%2B'); // fix the unescaped plus signs 
	x = rs_init_object();
	x.open("GET", url, true);
	x.onreadystatechange = function() {
	    if (x.readyState != 4) 
		return;
	    rs_debug("received " + x.responseText);
	    
	    var status;
	    var data;
	    status = x.responseText.charAt(0);
	    data = x.responseText.substring(2);
	    if (status == "-") 
		alert("Error: " + callback_n);
	    else  
		a[a.length-1](data);
	}
	x.send(null);
	rs_debug("x_get url = " + url);
	rs_debug("x_get waiting..");
    }


    // wrapper for add
    function x_add() {
	// count args; build URL
	var i, x, n;
	var url = "cgi-bin/sajax.pl?rand="+Math.random()+"&rs=add", a = x_add.arguments;
	for (i = 0; i < a.length-1; i++) 
	    url = url + "&rsargs=" + escape(a[i]);
	url = url.replace( /[+]/g, '%2B'); // fix the unescaped plus signs 
	x = rs_init_object();
	x.open("GET", url, true);
	x.onreadystatechange = function() {
	    if (x.readyState != 4) 
		return;
	    rs_debug("received " + x.responseText);
	    
	    var status;
	    var data;
	    status = x.responseText.charAt(0);
	    data = x.responseText.substring(2);
	    if (status == "-") 
		alert("Error: " + callback_n);
	    else  
		a[a.length-1](data);
	}
	x.send(null);
	rs_debug("x_add url = " + url);
	rs_debug("x_add waiting..");
    }


    // wrapper for del
    function x_del() {
	// count args; build URL
	var i, x, n;
	var url = "cgi-bin/sajax.pl?rand="+Math.random()+"&rs=del", a = x_del.arguments;
	for (i = 0; i < a.length-1; i++) 
	    url = url + "&rsargs=" + escape(a[i]);
	url = url.replace( /[+]/g, '%2B'); // fix the unescaped plus signs 
	x = rs_init_object();
	x.open("GET", url, true);
	x.onreadystatechange = function() {
	    if (x.readyState != 4) 
		return;
	    rs_debug("received " + x.responseText);
	    
	    var status;
	    var data;
	    status = x.responseText.charAt(0);
	    data = x.responseText.substring(2);
	    if (status == "-") 
		alert("Error: " + callback_n);
	    else  
		a[a.length-1](data);
	}
	x.send(null);
	rs_debug("x_del url = " + url);
	rs_debug("x_del waiting..");
    }


    // wrapper for login
    function x_login() {
	// count args; build URL
	var i, x, n;
	var url = "cgi-bin/sajax.pl?rand="+Math.random()+"&rs=login", a = x_login.arguments;
	for (i = 0; i < a.length-1; i++) 
	    url = url + "&rsargs=" + escape(a[i]);
	url = url.replace( /[+]/g, '%2B'); // fix the unescaped plus signs 
	x = rs_init_object();
	x.open("GET", url, true);
	x.onreadystatechange = function() {
	    if (x.readyState != 4) 
		return;
	    rs_debug("received " + x.responseText);
	    
	    var status;
	    var data;
	    status = x.responseText.charAt(0);
	    data = x.responseText.substring(2);
	    if (status == "-") 
		alert("Error: " + callback_n);
	    else  
		a[a.length-1](data);
	}
	x.send(null);
	rs_debug("x_login url = " + url);
	rs_debug("x_login waiting..");
    }

