(function() {

function setBgHover(bg, listen) {
	if (!listen) return false;

	// init image paths
	var orig 	= bg.getStyle('backgroundImage');
	var over	= orig.replace(/_off.jpg/, '_over.jpg');
	var down	= orig.replace(/_off.jpg/, '_on.jpg');

	// preload images
	(new Image()).src = over.replace(/(url\("?|"?\))/g, '');
	(new Image()).src = down.replace(/(url\("?|"?\))/g, '');

	try {
		// setup observers
		listen.observe('mouseover', function() {
			bg.style.backgroundImage = over;
		});
		listen.observe('mouseout', function() {
			bg.style.backgroundImage = orig;
		});
		listen.observe('mousedown', function() {
			bg.style.backgroundImage = down;
		});
	} catch(e) {

	}
}

})();

function refreshStylesheets(loop) {
	var rnd = Math.round(Math.random()*500);
	$A($$('link')).each(function(l) {
		try {
			l.href = l.href.replace(/\?.*$/, '') + '?rnd = ' + rnd;
			debug(l.href);
		} catch(e) { debug(e); };
	});

	if (loop > 1000) {
		setInterval(refreshStylesheets, loop);
	}
}
var debug = function() {
	// do nothing
}
if (typeof(console) != "undefined") {
	debug = function(str) {
		console.log(str);
	};
}

function tsSortValue(a, b) {
	return fdTableSort.sortText(a, b);
}
function tsSortValueNumeric(a, b) {
	return fdTableSort.sortNumeric(a, b);
}
function tsSortValueNumericPrepareData(td, inner) {
	return tsSortValuePrepareData(td, inner);
}
function tsSortValuePrepareData(tdNode, innerText) {
	try {
		var txt = $(tdNode).down('.sortValue').innerHTML;
		debug(txt);
		return txt;
	} catch(e) {
		return innerText;
	}
}
