


function listSort(myfield){
	var myform = document.getElementById('list_form');
	var curr_sort = myform.elements['sort'].value;
	if(curr_sort == myfield){
		myform.elements['orient'].value = -myform.elements['orient'].value;
	} else {
		myform.elements['sort'].value = myfield;
		myform.elements['orient'].value = 1;
	}
	myform.submit();
}

function setCohort(cohort){
	var myform = document.getElementById('list_form');
	if(cohort>=0){
		myform.elements['cohort'].value = cohort;		
		myform.submit();
	}
}

selected_list = 0;
unselect_all();

hover_obj=0;
hover_class=null;


function list_hover(x){
	if(x != hover_obj){
		if(hover_obj && css.elementHasClass(hover_obj, 'hover')) css.removeClassFromElement(hover_obj, 'hover');
		hover_obj = x;
		if(hover_obj) css.addClassToElement(hover_obj, 'hover');
	}
}

function update_selected(){
//	if(0==selected_id.length){
//		unselect_all();
//		return;
//	}
	selected_id = new Array();
	for(var i=0;i< selected_list.rows.length; i++){
		var x = selected_list.rows[i];
		if(is_selected(x)){
			var temp = x.id.split("[");
			var table = temp[0];
			var id = temp[1].slice(0,-1);
			selected_id.push(id);
			selected_table = table;
		}
	}
	selected_id = selected_id.join(",");
//	alert(selected_id);
}

function is_selected(x){
	return (x && css.elementHasClass(x, 'selected'));
}

function swap_rows(table,to){
	if(table != selected_table || !selected_list){
		alert("No rows from " + table + " selected");
	} else {
		var swapto = new getObj(table + to);
		for(var i=0;i< selected_list.rows.length; i++){
			var x = selected_list.rows[i];
			if(is_selected(x)){
				swapto.obj.appendChild(x); 
				new_sl = x.parentNode;
			}
		}
		selected_list = new_sl;
	}
//	unselect_all();
}

function include_rows(table){
	swap_rows(table,'_include')
}

function exclude_rows(table){
	swap_rows(table,'_exclude');
}

function unselect_all(){
	if(selected_list) for(var i=0;i< selected_list.rows.length; i++) unselect_row(selected_list.rows[i]);
	selected_table = "";
	selected_list = 0;
	selected_id = "";
	last_selected = 0;
}

function unselect_row(x){
	if(x && is_selected(x)) css.removeClassFromElement(x, 'selected');
}

function select_row(x){
	if(x && !is_selected(x)) css.addClassToElement(x, 'selected');
	selected_list = x.parentNode;
}

function click_row(e,x){
//	var mydiv = new getObj('debug');
//	mydiv.obj.innerHTML += "<xmp>" + printSubObjects(x,"-") + "</xmp>";
	if((getEventCtrl(e)||getEventShift(e))&& last_selected){
		if(selected_list && (selected_list != x.parentNode)){
			alert("Multiple select only valid within same table");
			return false;
		} else {
//			if(selected_index == x.rowIndex){
//				unselect_row(x);
//				update_selected();
//				return;
//			}
			if(getEventCtrl(e)){
				if(is_selected(x)){
					unselect_row(x);
				} else {
					select_row(x);
				}
			} else {
				var start = Math.min(last_selected.rowIndex,x.rowIndex);
				var finish = Math.max(last_selected.rowIndex,x.rowIndex);
				var mycells = x.parentNode.rows;
				for(var i = start;i<=finish;i++){
					select_row(mycells[i-1]);
				}
			}
			last_selected = x;
			update_selected();
			return
		}
	} else {
		if(x && css.elementHasClass(x, 'selected')){
		} else {
			unselect_all();
			select_row(x);
			last_selected = x;
			update_selected();
		}
	}
}

function dbl_click_row(e,x){
	select_row(x);
	update_selected();
	if(getEventAlt(e)){
		action_form_submit("action=edit&table=" + selected_table + "&id=" + selected_id);
	} else {
		action_form_submit("action=view&table=" + selected_table + "&id=" + selected_id);
	}
	cancel_bubble(e);
}
