var link_ob_arr=new Array()

function setup_links(){
	var links=document.getElementsByTagName("a")
	if(links.length>0){
		for(var i=0;i<links.length;i++){
			
			//if(links[i].parentNode.nodeName.toLowerCase()=="li"){
				link_ob_arr.push(new link_class(links[i],link_ob_arr.length))
			//}
		}
	}
	
	if(link_ob_arr.length>0){
		for(var i=0;i<link_ob_arr.length;i++){
			link_ob_arr[i].setup_interface()
		}
	}
}
function link_class(ob,listpos){
	var _me=this
	this.element=ob
	this.listpos=listpos
	if(this.element.href.indexOf("mailto:")==-1){
		this.text=this.element.innerHTML
		this.href=this.element.href
	}else{
		this.text=this.element.innerHTML
		this.href=this.element.title
	}
	this.pos_arr=[]
	this.pos_arr_str=""
	for(var i=0;i<=_me.text.length;i++){
		_me.pos_arr.push(i)
	}
	this.pos_arr_str=_me.pos_arr.join(",")
	
	this.pos=0
	this.timeout=0
	this.target_str=""
	this.inner=this.element.innerHTML
	
	this.setup_interface=function(){
		if(_me.element.addEventListener){

			_me.element.addEventListener('mouseover',_me.roll_on,false);
			_me.element.addEventListener('mouseout',_me.roll_off,false);
		}else{
			if(_me.element.attachEvent) {
				
				_me.element.attachEvent('onmouseover',_me.roll_on,false);
				_me.element.attachEvent('onmouseout',_me.roll_off,false);
			}
		}
	}
	
	this.roll_on=function(){
	
		_me.pos_arr=_me.pos_arr_str.split(",")
		_me.pos=0
		_me.target_str=_me.href
		_me.text_to_href()
		//_me.element.innerHTML=_me.href
	}
	
	this.roll_off=function(){
		_me.pos_arr=_me.pos_arr_str.split(",")
		_me.pos=0
		_me.target_str=_me.text
		_me.text_to_href()
		//_me.element.innerHTML=_me.text
	}
	
	this.text_to_href=function(){
		
		if(_me.inner!=_me.target_str){
			if(_me.inner.length>_me.target_str.length){
				_me.inner=_me.inner.substr(0,_me.inner.length-1)	
			}else{
				if(_me.pos_arr.length>0){
					if(_me.pos_arr.length==1){
						_me.pos=_me.pos_arr.splice(0,1)
					}else{
						_me.pos=_me.pos_arr.splice(random_num(_me.pos_arr.length),1)
					}
				
					var arr=_me.inner.split("")
					
					if(_me.pos<_me.target_str.length){
						arr.splice(_me.pos,1,_me.target_str.substr(_me.pos,1))
					}else{
						arr.splice(_me.pos,1," ")
					}
					_me.inner=arr.join("")
															 
				}else{
					_me.pos=_me.inner.length
					if(_me.pos<_me.target_str.length){
						_me.inner=_me.inner+_me.target_str.substr(_me.pos,1)
					}else{
						_me.inner=_me.target_str
					}
					
				}
			}
			_me.timeout=setTimeout(_me.text_to_href,50)
	
		}else{
			clearTimeout(_me.timeout)
			
		}
		_me.element.innerHTML=_me.inner //.replace(/  /g,"&nbsp;")
	}
}

function random_num(maxnum){
	return Math.floor(Math.random()*maxnum)	
}