function ssr(text) {
	//alert("called!");
	var myform = $("dash_bugchecking");
	//if (dash_bugcheck_flag) {
		if (myform) { myform.response.value = text; }// else { alert("myform not loaded???\n"+myform);//+" ["+myform.id+"]"); }
	//}
}

function gsr() {
	var myform = $("dash_bugchecking");;
	//if (dash_bugcheck_flag) {
		if (myform) { return myform.response.value; }
	//}
}

function dev_ip() {
	if (my_ip_address_short == "24129") { return true; } else { return false; }
}

function hashdump(ha,indent) {
	if (indent == undefined) { indent = ""; }
	ssr(gsr() + indent + "in hash dump... typeof ha: "+typeof(ha)+"\n");
	//ssr(gsr() + "JSON the bastage:\n"+JSON.encode(ha));
	//ssr(gsr() + "QSTring the bastage:\n"+ha.toQueryString());
	//*
	ha = $H(ha);
	ha.each(function(v,k) {
		if (typeof(v) == "object") {
			ssr(gsr() + indent + "k("+k+") val is object... dumping\n");
			//indent += "\t";
			hashdump(v,indent);
		} else {
			ssr(gsr() + indent + "v: "+v+",k: "+k + "\n");
		}
	});
	//*/
}


/**
 * Concatenates the values of a variable into an easily readable string
 * by Matt Hackett [scriptnode.com]
 * @param {Object} x The variable to debug
 * @param {Number} max The maximum number of recursions allowed (keep low, around 5 for HTML elements to prevent errors) [default: 10]
 * @param {String} sep The separator to use between [default: a single space ' ']
 * @param {Number} l The current level deep (amount of recursion). Do not use this parameter: it's for the function's own use
 */

function print_r(x, max, sep, l) {

	l = l || 0;
	max = max || 10;
	sep = sep || ' ';

	if (l > max) {
		return "[WARNING: Too much recursion]\n";
	}

	var
		i,
		r = '',
		t = typeof x,
		tab = '';

	if (x === null) {
		r += "(null)\n";
	} else if (t == 'object') {

		l++;

		for (i = 0; i < l; i++) {
			tab += sep;
		}

		if (x && x.length) {
			t = 'array';
		}

		r += '(' + t + ") :\n";

		for (i in x) {
			try {
				r += tab + '[' + i + '] : ' + print_r(x[i], max, sep, (l + 1));
			} catch(e) {
				return "[ERROR: " + e + "]\n";
			}
		}

	} else {

		if (t == 'string') {
			if (x == '') {
				x = '(empty)';
			}
		}

		r += '(' + t + ') ' + x + "\n";

	}

	return r;

};
var_dump = print_r;
