var eqltimer;
var throbtimer;

eqlize = {
    throb: function() {
	$("#loadimg").css("visibility", "visible");
    },
    
    unthrob: function() {
	$("#loadimg").css("visibility", "hidden");
    },
    
    setup_nested: function() {
	$('table').each(function() {
	    var table = this;
	    if (table.className.search(/\beqldata\b/) != -1) {
		var sortedcol = $("#sortcol").val();
		if (sortedcol != '') {
		    var col = table.tHead.rows[0].cells[sortedcol];
		    var evt = null;
		    if (document.createEvent) {
			evt = document.createEvent('MouseEvents');
		    }
		    if(col.dispatchEvent && evt && evt.initMouseEvent) {
			var max = $("#sortorder").val();
			for (var i = 0; i < max; ++i) {
			    evt.initMouseEvent(
			    'click',
			    true,     // Click events bubble
			    true,     // and they can be cancelled
			    document.defaultView,  // Use default view
			    1,        // Just a single click
			    0,        // Don't bother with co-ordinates
			    0,
			    0,
			    0,
			    false,    // Don't apply any key modifiers
			    false,
			    false,
			    false,
			    0,        // 0 - left, 1 - middle, 2 - right
			    null);    // Click events don't have any
				      // targets other than
				      // the recipient of the click

			    col.dispatchEvent(evt);
			}
		    }
		}
	    }
	});
	clearTimeout(throbtimer);
	throbtimer = setTimeout(function() {
	    eqlize.unthrob();
	}, 500);
    },

    load_table: function(target) {
	var criteria = $("input#searchtext").val();
	var colorder = new Array();
	var colstring = $("#column-listing").val();
	if (colstring != '') {
	    colorder = colstring.split(',');
	}
	clearTimeout(throbtimer);
	throbtimer = setTimeout(function() {
	    eqlize.throb();
	}, 500);
	$("#tabledata").load(target, {'filter': criteria,
		                       'comments': 1,
				       'm': 'ehtml',
				       'wantedids[]': colorder},
				       eqlize.setup_nested);
    },

    setup_table: function(target) {
	jQuery(function() {
	    eqlize.load_table(target);
	    $("form").submit(function(event) {
		//event.preventDefault();  return false is faster?
		return false;
	    });
	    $("#searchtext").keyup(function() {
		if (eqltimer != null) {
		    clearTimeout(eqltimer);
		}

		eqltimer = setTimeout(function() {
		    eqlize.load_table(target);
		}, 100);
	    });
	    $("#searchtext").focus();
	});
    }
}
