// This script is Krom software; please see accompanying license  

function hover_log(msg) {
	hover_log_node = $('hover_log');
	if (hover_log_node) {
		hover_log_node.update(msg);
	}
}                   
function hover_clear_queue(node_id) {
  var c_queue = Effect.Queues.get('ux_hover' + node_id);
  c_queue.each(function(effect) { effect.cancel(); });
}
function hover_show(node_id) {
  var queue = {scope: 'ux_hover' + node_id, position: 'end'};   
  hover_clear_queue(node_id);

	hover_log('show!');
  // effectively delay the start x.x seconds
  var node = $(node_id);
 // if (!(node.visible())) {
	/* IE does not let you initialize with CSS opacity set to 0... */
	node.setOpacity('0.0');
	node.show();
  //}
  new Effect.Morph(node, {
	  style: 'opacity: 0.0;',
	  duration: 0.2,
	  queue: queue
	 });  
  new Effect.Morph(node, {
	  //delay: 0.2,
	  style: 'opacity: 1.0;',
	  duration: 0.3,
	  queue: queue
	});
};
// function hover_toggle(node_id) {
//   $(node_id).toggle();  
// }; 
function hover_hide(node_id) {
	hover_log('hide!');  
  hover_clear_queue(node_id);
  var queue = {scope: 'ux_hover' + node_id, position: 'end'};   
  var node = $(node_id);
  new Effect.Morph(node, {
	  style: 'opacity: 0.0;',
	  duration: 0.3,
	  queue: queue,
	  afterFinish: function() {node.hide();}
	});                                      
  // if we don't hide afterFinish, then it'll be "displayed" but completely transparent, and
  // it'll interfere with clicking and evern appear on hover-over...

};      
function hover_stay_on(node_id) {
		hover_log('stay_on!');
  var queue = {scope: 'ux_hover' + node_id, position: 'end'};   
  var c_queue = Effect.Queues.get('ux_hover' + node_id);
  c_queue.each(function(effect) { effect.cancel(); });
  node = $(node_id);
  node.setOpacity('1.0');
  node.show();
}
function hover_stay_off(node_id) {
		hover_log('stay_off!');
  var queue = {scope: 'ux_hover' + node_id, position: 'end'};   
  var c_queue = Effect.Queues.get('ux_hover' + node_id);
  c_queue.each(function(effect) { effect.cancel(); });
  node = $(node_id);
  node.setOpacity('0.0'); 
  node.hide();
}

