//////////////////////////
// list.js
//////////////////////////
function List_moveSelected(fromList,toList) {
	// Move Selected Items
	for (var i = document.all(fromList).options.length - 1; i >= 0; i--) {
		if( document.all(fromList).options[i].selected ) {
			var o = new Option(document.all(fromList).options[i].text,document.all(fromList).options[i].value,false,false);
			document.all(toList).options[document.all(toList).options.length] = o;
			document.all(fromList).options[i] = null;
		}
	}
	// Resort Target List
	List_sort(document.all(toList).options,0,document.all(toList).options.length-1);
}

function List_copySelected(fromList,toList) {
	// Copy Selected Items
	for (var i = document.all(fromList).options.length - 1; i >= 0; i--) {
		if( document.all(fromList).options[i].selected ) {
			var o = new Option(document.all(fromList).options[i].text,document.all(fromList).options[i].value,false,false);
			var found = false;
			for (var j = document.all(toList).options.length - 1; j >= 0; j--) {
				if (document.all(toList).options[j].value == o.value)
					found = true;
			}
			if( found == false )
				document.all(toList).options[document.all(toList).options.length] = o;
			document.all(fromList).options[i].selected = false;
		}
	}
	// Resort Target List
	List_sort(document.all(toList).options,0,document.all(toList).options.length-1);
}

function List_removeSelected(list) {
	// Remove Selected Items
	for (var i = document.all(list).options.length - 2; i >= 0; i--) {
		if( document.all(list).options[i].selected ) {
			document.all(list).options[i].selected = false;
			document.all(list).options[i] = null;
		}
	}
}

function List_moveUpSelected(list) {
	// move Selected Item up one place
	for (var i = document.all(list).options.length - 2; i > 0; i--) {
		if( document.all(list).options[i].selected ) {
		  var o = new Option(document.all(list).options[i].text,
		                     document.all(list).options[i].value,false,false);
		  var h = i-1;
			document.all(list).options[i].text = document.all(list).options[h].text;
			document.all(list).options[i].value = document.all(list).options[h].value;
			document.all(list).options[h].text = o.text;
			document.all(list).options[h].value = o.value;
			document.all(list).options[i].selected = false;
			document.all(list).options[h].selected = true;
			break;
		}
	}
}

function List_moveDownSelected(list) {
	// move Selected Item down one place
	for (var i = document.all(list).options.length - 3; i >= 0; i--) {
		if( document.all(list).options[i].selected ) {
		  var o = new Option(document.all(list).options[i].text,
		                     document.all(list).options[i].value,false,false);
		  var j = i+1;
			document.all(list).options[i].text = document.all(list).options[j].text;
			document.all(list).options[i].value = document.all(list).options[j].value;
			document.all(list).options[j].text = o.text;
			document.all(list).options[j].value = o.value;
			document.all(list).options[i].selected = false;
			document.all(list).options[j].selected = true;
			break;
		}
	}
}

function List_selectAll(list) {
	for (var i = document.all(list).options.length - 2; i >= 0; i--) {
		document.all(list).options[i].selected = true;
	}
}

function List_unselectAll(list) {
	for (var i = document.all(list).options.length - 1; i >= 0; i--) {
		document.all(list).options[i].selected = false;
	}
}

function List_sort(vec,lo,up) {
	var i, j;
	var t = new Option();

	while(up > lo){
		i = lo;
		j = up;
		t.text  = vec[lo].text;
		t.value = vec[lo].value;
		while(i < j) {
			while(List_compare(vec[j],t) > 0)
				j -= 1;
			vec[i].text  = vec[j].text;
			vec[i].value = vec[j].value;
			while((i < j) && (List_compare(vec[i],t) <= 0))
				i++;
			vec[j].text  = vec[i].text;
			vec[j].value = vec[i].value;
		}

		vec[i].text  = t.text;
		vec[i].value = t.value;

		if(i - lo < up - i) {
			List_sort(vec,lo,i-1); lo = i+1;
		} else {
			List_sort(vec,i+1,up); up = i-1;
		}
	}
}

function List_compare(option1,option2) {
	return (option1.text.toUpperCase() == option2.text.toUpperCase()) ? 0 : (option1.text.toUpperCase() > option2.text.toUpperCase()) ? 1 : -1;
}

function buildTitles(date,list)
{
  // populate titles list according to type selected
  try {
	  var x = document.getElementById(date).selectedIndex;
	  document.all(list).options.length = 0;
	  if (x != 0)
	  {
		  var d = document.getElementById(date).options[document.getElementById(date).selectedIndex].value;
		  var count = document.getElementById("titlecount").value;
		  var newi = 0;
		  for(var i=0; i <= count; i++) {
		    if(d == 0 || d == document.getElementById("d"+i).value ) {
		  	  var o = new Option(document.getElementById("t"+i).value,
		  	                     document.getElementById("i"+i).value,false,false);
		    	document.all(list).options[newi] = o;
		    	newi++;
		    }
		  }
		}
  } catch(e) {}
}


