/*
	DOMnews 1.0 
	homepage: http://www.onlinetools.org/tools/domnews/
	released 11.07.05
*/

/* Variables, go nuts changing those! */
	// initial position 
	var dn_startpos=960; 			
	// end position
	var dn_endpos=-600; 			
	// Speed of scroller higher number = slower scroller 
	var dn_speed=25;
	// ID of the news box
    var dn_newsID='news_scroll';            
	// class to add when JS is available
	var dn_classAdd='hasJS';		
	// Message to stop scroller
	var dn_stopMessage='Stop scroller';	
	// ID of the generated paragraph
	var dn_paraID='DOMnewsstopper';

	/* Initialise scroller when window loads */
	window.onload=function()
	{
		// check for DOM
		if(!document.getElementById || !document.createTextNode){return;}
		initDOMnews();
		// add more functions as needed
	}
	/* stop scroller when window is closed */
	window.onunload=function()
	{
		clearInterval(dn_interval);
	}

/*
	This is the functional bit, do not press any buttons or flick any switches
	without knowing what you are doing!
*/

	var dn_scrollpos=dn_startpos;
	/* Initialise scroller */
	function initDOMnews()
	{
		var n=document.getElementById(dn_newsID);
		if(!n){return;}
               
		n.className=dn_classAdd;
		dn_interval=setInterval('scrollDOMnews()',dn_speed);
//		var newa=document.createElement('a');
		var newp=document.createElement('p');
		newp.setAttribute('id',dn_paraID);
//		newa.href='#';
//		newa.appendChild(document.createTextNode(dn_stopMessage));
//		newa.onclick=stopDOMnews;
//		newp.appendChild(newa);
		n.parentNode.insertBefore(newp,n.nextSibling);
        
        var myp = n.getElementsByTagName('p')[0]; //Claudio
        var news_head   = document.createElement('span');//Claudio
        var news_end    = document.createElement('span');//Claudio
        news_head.setAttribute('id', 'news_head');//Claudio
        news_end.setAttribute('id', 'news_end');//Claudio
        myp.insertBefore(news_head, myp.getElementsByTagName('a')[0]);//Claudio
        myp.appendChild(news_end);//Claudio
        document.getElementById('news_head').style.position = 'relative';//Claudio
        document.getElementById('news_end').style.position = 'relative';//Claudio
        
		n.onmouseover=function()
		{		
			clearInterval(dn_interval);
		}
		n.onmouseout=function()
		{
			dn_interval=setInterval('scrollDOMnews()',dn_speed);
		}
        
        
	}

	function stopDOMnews()
	{
		clearInterval(dn_interval);
        var n=document.getElementById('news_scroll');
		n.className='';
		n.parentNode.removeChild(n.nextSibling);
		return false;
	}
	function scrollDOMnews()
	{
        var n=document.getElementById(dn_newsID).getElementsByTagName('ul')[0];
		n.style.left=dn_scrollpos+'px';	
		//if(dn_scrollpos==dn_endpos){dn_scrollpos=dn_startpos;}
        var dn_scrolltailposX = getPosX( document.getElementById('news_end') );//Claudio
        var dn_scrolltailposY = getPosY( document.getElementById('news_end') );//Claudio
        
        
        var domnewsY = getPosY( document.getElementById('news_head') ); //Claudio
        if(dn_scrolltailposX<=0 && dn_scrolltailposY == domnewsY){dn_scrollpos=dn_startpos;}//Claudio
		dn_scrollpos--;	
	}
    
    // Claudio
    function getPosX(obj)
    {
        var curleft = 0;
        if (obj.offsetParent)
        {
            while (obj.offsetParent)
            {
                curleft += obj.offsetLeft
                obj = obj.offsetParent;
            }
        }
        else if (obj.x)
            curleft += obj.x;
    
        return curleft;
    }
    function getPosY(obj)
    {
        var curleft = 0;
        if (obj.offsetParent)
        {
            while (obj.offsetParent)
            {
                curleft += obj.offsetTop
                obj = obj.offsetParent;
            }
        }
        else if (obj.y)
            curleft += obj.y;
    
        return curleft;
}

