//
// AJAX Init
//

var do_refocus = 0;
var last_dyn_dropdown_click = null;

function dyn_table_dropdown_toggle(item) {

	var myid = item.id;
	var mycontents = document.getElementById(myid + "_contents");
	var myimage = document.getElementById(myid + "_image");

	if (item.className == "dyn_table_dropdown") {
		// switch on
		item.className = "dyn_table_dropdown_sel";
		mycontents.style.display = "block";
		myimage.src = "images/icon_small_uparrow.gif";
	} else {
		// switch off
		item.className = "dyn_table_dropdown";
		mycontents.style.display = "none";
		myimage.src = "images/icon_small_downarrow.gif";
	}

}

function dyn_table_dropdown(item) {

	if ((last_dyn_dropdown_click != null) && (last_dyn_dropdown_click != item)) {

		if (last_dyn_dropdown_click.className == "dyn_table_dropdown_sel") {
			dyn_table_dropdown_toggle(last_dyn_dropdown_click);
		}
	}

	dyn_table_dropdown_toggle(item);
	last_dyn_dropdown_click = item;

	return false;
}

function refresh_table_search_keyup(e, mytable, lastsort, order, sortby, page, search, args, numfields) {

	var mysearch = document.getElementById(search).value;

	if (mysearch) {
		refresh_table(mytable, lastsort, order, sortby, page, mysearch, 1, args, numfields);
	}

	mysearch.focus();

}

function refresh_table_search(e, mytable, lastsort, order, sortby, page, search, args, numfields) {

	if (e && e.preventDefault) { e.preventDefault();  }

	var mysearch = document.getElementById(search).value;

	if (search) {
		refresh_table(mytable, lastsort, order, sortby, page, mysearch,'', args, numfields);
		return false;
	} else {
		return false;
	}

}

function refresh_table(mytable, lastsort, order, sortby, page, search, refocus, args, numfields) {

	var mysearch = search;
	var rnd = Math.floor(Math.random()*100000);

	if (numfields == null) { numfields = 0; }

	if (refocus == 1) {
		do_refocus = search.id;
	} else {
		do_refocus = 0;
	}

	var my_busyicon = document.getElementById("busyicon");
	if (my_busyicon) { my_busyicon.style.display = "block"; }

	//if (search) { mysearch = search.value; }

	// Init a new XMLHTTP

	if(navigator.appName == "Microsoft Internet Explorer") {
	  	var table_http = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
	 	var table_http = new XMLHttpRequest();
	}

	// split table and salt

	var splits = mytable.split("#");
	var mytable = splits[0];
	var salt = splits[1];

	//alert("Table is " + mytable);
	//alert("Salt is " + salt);

	table_http.abort();
	table_http.open("POST","index.php?page=fetch_table&table=" + mytable + "&salt=" + salt + "&rnd=" + rnd, true);
	table_http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

	table_http.onreadystatechange=function() {

		if(table_http.readyState == 4) {

			var myelement = document.getElementById("table_" + mytable + "#" + salt);

			if (!myelement) {
				alert("Warning - Element table_" + mytable + " does not exist.");
			} else {
				myelement.innerHTML = table_http.responseText;
			}

			var my_busyicon = document.getElementById("busyicon");
			if (my_busyicon) { my_busyicon.style.display = "none"; }

			if (do_refocus) { document.getElementById(do_refocus).focus(); }
		}

	}

	var numfields_vars = new Array();
	var filter_array = "";
	var show_array = "";

	for (var a=0; a<numfields; a++) {

		var mystring = "";
		var my_lt = document.getElementById("t_" + mytable + "#"+ salt +"_filter_lt_" + a);
		var my_cn = document.getElementById("t_" + mytable + "#"+ salt +"_filter_cn_" + a);
		var my_gt = document.getElementById("t_" + mytable + "#"+ salt +"_filter_gt_" + a);
		var my_vis = document.getElementById("t_" + mytable + "#"+ salt +"_show_" + a);
		var myshow = "";

		if ((my_lt == undefined) || (my_lt == null)) {
			mystring = mystring + "|";
		} else {
			mystring = mystring + my_lt.value.replace("|","") + "|";
		}

		if ((my_cn == undefined) || (my_cn == null)) {
			mystring = mystring + "|";
		} else {
			mystring = mystring + my_cn.value.replace("|","") + "|";
		}

		if ((my_gt == undefined) || (my_gt == null)) {
			mystring = mystring + "|";
		} else {
			mystring = mystring + my_gt.value.replace("|","").replace("#","") + "|";
		}

		if ((my_vis) && (my_vis.type == "checkbox")) {
			if (my_vis.checked == true) {
				myshow = "1";
			} else {
				myshow = "0";
			}
		} else {
			myshow = "1";
		}

		filter_array = filter_array + mystring + "#";
		show_array = show_array + myshow + "#";

	}

	//alert("sending to table");

	table_http.send("lastsort=" + lastsort + "&order=" + order + "&sortby=" + sortby + "&pageno=" + page + "&search=" + mysearch + "&args=" + args + "&filter_array=" + filter_array + "&show_cols=" + show_array);

	// for IE
	return false;

}
