var marqueeSpeed = 5000;
var marqueeDir = 'up';
var marqueeTimer = '';
var marqueePos = 0;

function marqueeInit(config){
 if(!document.createElement) return;
 window.addEvent('domready', function() {			
	 marqueeRun(config);	
	 $(config.uniqueid).addEvents({ 'mousemove': function(e){
		 if (e == null) { e = window.event;}
		 var mp = e.page.y - $(config.uniqueid).getPosition().y;
		 /*if(mp < (parseFloat($(config.uniqueid).getSize().y) / 5)){
			 if(marqueeDir!='down' || marqueeSpeed != 1000){
				 if(marqueeTimer)clearTimeout(marqueeTimer);
				 marqueeDir='down';
				 marqueeSpeed = 1000;
				 marqueeUp(config);
			 }
		 }else if(mp > (parseFloat($(config.uniqueid).getSize().y)-(parseFloat($(config.uniqueid).getSize().y) / 5))){
			 if(marqueeDir!='up' || marqueeSpeed != 1000){
				 if(marqueeTimer)clearTimeout(marqueeTimer);
				 marqueeDir='up';
				 marqueeSpeed = 1000;
				 marqueeUp(config);
			 }
		 }else{*/
			 if(marqueeTimer)clearTimeout(marqueeTimer);
			 marqueeDir='stop';
		 /*}*/
	 }, 'mouseout':function(e){
		 if (e == null) { e = window.event;}
		 var mpy = e.page.y - $(config.uniqueid).getPosition().y;
		 var mpx = e.page.x - $(config.uniqueid).getPosition().x;
		 
		 if((mpy < 5 || mpy > parseFloat($(config.uniqueid).getSize().y) - 5) || (mpx < 5 || mpx > parseFloat($(config.uniqueid).getSize().x) - 5)){
			 if(marqueeTimer)clearTimeout(marqueeTimer);
			 marqueeDir='up';
			 marqueeSpeed = config.scroll_delay;
			 marqueeTimer = setTimeout(function(){marqueeUp(config)}, marqueeSpeed);
		 }
	 }});
 });
}

function marqueeRun(config){
	var ul = document.createElement('ul');
	ul.id = 'ul_'+config.uniqueid;
	ul.innerHTML = $(config.uniqueid).innerHTML;
	ul.style.padding = $(config.uniqueid).style.padding;
	ul.style.width = $(config.uniqueid).style.width;
	ul.style.position = 'absolute';
	ul.style.top = '-10000000px';
	document.body.appendChild(ul);
	marqueeSpeed = config.scroll_delay;
	
	if($(ul.id).getSize().y > parseFloat($(config.uniqueid).style.height)){
		li = config.uniqueid+'_'+(config.count - 1);
		var mySlide = new Fx.Slide(li);
	  	mySlide.hide();
		marqueeTimer = setTimeout(function(){marqueeUp(config)}, marqueeSpeed);
	}else{
		li = config.uniqueid+'_'+(config.count - 1);
		newli = document.createElement("li");
		newli.id = $(li).id;
		newli.innerHTML = $(li).innerHTML;
		$(li).innerHTML = '';
		li.parentNode.removeChild($(li));
		$(config.uniqueid).appendChild(newli);
	}
}

function marqueeUp(config){
  if(marqueeDir=='up'){
	oldli = marqueePos-1;
	if(oldli==-1){
		oldli = config.count - 1;
	}
	li = config.uniqueid+'_'+oldli;
	newli = document.createElement("li");
	newli.id = $(li).id;
	newli.innerHTML = $(li).innerHTML;
	$(li).innerHTML = '';
	li = $(li).parentNode;
		
	li.parentNode.removeChild(li);
	$(config.uniqueid).appendChild(newli);

	li = config.uniqueid+'_'+marqueePos;
	
	var mySlide = new Fx.Slide(li);
	mySlide.slideOut();
	
	marqueePos++;

	if(marqueePos==config.count){
		marqueePos=0;
	}
  }else if(marqueeDir=='down'){
  	  if(marqueePos==0){
  		  marqueePos = config.count - 1;
  	  }else{
  		  marqueePos --;
  	  }
  	  li = config.uniqueid+'_'+(marqueePos);
  	
  	  newli = document.createElement("li");
  	  newli.id = $(li).id;
  	  newli.innerHTML = $(li).innerHTML;

  	  if(marqueePos==0){
  		lastli = config.uniqueid+'_'+(config.count - 1);
  	  }else{
  		lastli = config.uniqueid+'_'+(marqueePos - 1);
  	  }

  	  newli = document.createElement("li");
  	  newli.id = $(lastli).id;
  	  newli.innerHTML = $(lastli).innerHTML;
  	  
  	  $(lastli).parentNode.removeChild($(lastli));
  	  $(config.uniqueid).insertBefore(newli,$(li).parentNode);
	  	  
  	  var mySlide = new Fx.Slide(newli.id);
  	  mySlide.hide();

  	  var mySlide = new Fx.Slide(li);
  	  mySlide.slideIn();
	  	  
  }
	
  marqueeTimer = setTimeout(function(){marqueeUp(config)}, marqueeSpeed);
}
