 /**
  * Retrieve the coordinates of the given event
  *
  * @param event
  *  A mouse-related DOM event.
  * @return
  *    A hash containing keys 'x' and 'y'.
  */
  function getCoordinates(e) {
	/*var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;

	if (e.pageX || e.pageY) 	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		posx = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}

    return { x: posx, y: posy };*/
		if(document.body.scrollTop == 0)
 			return { x: screen.availWidth/5, y: screen.availHeight/5 + document.body.scrollTop  + 20};
 		else
    	return { x: screen.availWidth/5, y: screen.availHeight/5 + document.body.scrollTop };
  }

  function displayLabelByUPC(event, upc) {
    var e = event || window.event;
    var pos = getCoordinates(event);
    var paddedUpc = upc.toString();

    while (paddedUpc.length < 13)
    	paddedUpc = "0" + paddedUpc;

    $('label').style.top = pos.y+"px";
    $('label').style.left = pos.x+"px";
	new Ajax.Updater('label', '/label.jsp?upc='+paddedUpc, {asynchronous:true, onComplete:function(){ new Effect.Appear('label');}});
  }

  function displayLabel(event, id) {
    var e = event || window.event;
    var pos = getCoordinates(event);

    $('label').style.top = pos.y+"px";
    $('label').style.left = pos.x+"px";
	new Ajax.Updater('label', '/label.jsp?id='+id, {asynchronous:true, onComplete:function(){ new Effect.Appear('label');}});
  }

  function printLabel(id) {
		window.open('/label.jsp?id='+id+'&print=yes','',
			'left=20,top=20,width=475,height=500,toolbar=0,resizable=1');
  }

  function printLabelByUPC(upc) {
		window.open('/label.jsp?upc='+upc+'&print=yes','',
			'left=20,top=20,width=475,height=500,toolbar=0,resizable=1');
  }

function addAll() {
	selectAll('available');
	addSelected();
	refreshRowColors('available');
	refreshRowColors('selected');
}

function removeAll() {
	selectAll('selected');
	removeSelected();
	refreshRowColors('available');
	refreshRowColors('selected');
}

function addSelected() {
	var available = document.getElementById('available').options;
	var selected = document.getElementById('selected').options;
	var transfer = Array();
	for(var i=available.length-1; i>=0; i--) {
		if(available[i].selected) {
			if(available[i].value==null) {
				transfer.push(new Option(available[i].text));
			}
			else {
				transfer.push(new Option(available[i].text, available[i].value));
			}
			available[i] = null;
		}
	}

	for(var i=transfer.length-1; i>=0; i--) {
		selected[selected.length] = transfer[i];
	}

	refreshRowColors('available');
	refreshRowColors('selected');
}

function addSelectedItem() {
 	//itype,ctype,value
 	var ctype = document.getElementById('ctype');
	var item = document.getElementById('itype');
	var value = document.getElementById('value').value;

	var ctypeValue = ctype.options.item(ctype.selectedIndex).value;
	var ctypeName = ctype.options.item(ctype.selectedIndex).text;
	var itemID = item.options.item(item.selectedIndex).value;
	var itemName = item.options.item(item.selectedIndex).text;

	var verbose = ctypeName+" "+value+" "+itemName.toLowerCase();
	var o = new Option();
	o.text = verbose;
	o.value = itemID+":"+ctypeValue+":"+value+":"+verbose;

	if(value.length < 1)
	{
		alert("Please enter a value.");
	}
	else {
		var list = document.getElementById('selecteditems');
		if(list.options.add) {
			list.options.add(o);
		}
		else {
			list.options[list.options.length] = o;
		}
	}

	refreshRowColors('selecteditems');
}

function removeSelected() {
	var available = document.getElementById('available').options;
	var selected = document.getElementById('selected').options;
	var transfer = Array();
	for(var i=selected.length-1; i>=0; i--) {
		if(selected[i].selected) {
			if(selected[i].value==null) {
				transfer.push(new Option(selected[i].text));
			}
			else {
				transfer.push(new Option(selected[i].text, selected[i].value));
			}
			selected[i] = null;
		}
	}

	for(var i=transfer.length-1; i>=0; i--) {
		available[available.length] = transfer[i];
	}

	refreshRowColors('available');
	refreshRowColors('selected');

}

function removeSelectedItems() {
	var selected = document.getElementById('selecteditems').options;
	for(var i=selected.length-1; i>=0; i--) {
		if(selected[i].selected) {
			selected[i] = null;
		}
	}

	refreshRowColors('selecteditems');
}

function selectAll(id) {
	if(document.getElementById(id) != null) {
		var list = document.getElementById(id).options;
		for(var i=0; i<list.length; i++) {
			list[i].selected = true;
		}
	}
}

function selectEverything() {
	selectAll('available');
	selectAll('selected');
	selectAll('selecteditems');
	document.form.submit();
}

function refineSearch() {
	document.results.setAttribute('action','advanced.jsp');
	document.results.submit();
}

function refreshRowColors (selectFieldName)
{
	var options = document.getElementById(selectFieldName).options;
	//var selected = document.getElementById('selected').options;

	for (i=0; i<options.length; i++)
	{
		if (i%2 == 0)
		{
			options[i].className = "grayOptionField";
		}
		else
		{
			options[i].className = "whiteOptionField";
		}
	}

	/*for (i=0; i<selected.length; i++)
	{
		if (i%2 == 0)
		{
			selected[i].className = "grayOptionField";
		}
		else
		{
			selected[i].className = "whiteOptionField";
		}
	}*/
}

	function checkSelected()
	{
		//var selected = document.getElementById('selected').options;
		alert(document.getElementById('selected').selectedIndex);
	}

	function submitWithAction(val)
	{
		document.results.actionEvent.value = val;
		document.results.submit();
	}


