var fmglobalnews = new Array ( ) ;
var fmglobalmenus = '' ;
var fmChangeInterval = null ;
var selectedid = 0 ;
var changetime = 6000 ;
var mouselected = false ;
var totalnews = 0 ;

var xmlLoader  = null ;
var broze = null ;
var news = new Array ( ) ;

var fmNewsBox = function ( newsxml )
{    
    var newsfile = newsxml ;
    
    this.init = function ( )
    {
        return this.detectXMLParser ( ) ;
    };
    
    this.detectXMLParser = function ( )
    {
        // It Ite IE
        if ( window.ActiveXObject )
        {
            xmlLoader = new ActiveXObject("microsoft.xmldom") ;
            /*xmlLoader.async = false ;*/
            /*xmlLoader.__target = this ;*/
            xmlLoader.onreadystatechange = function ( )
            {
                if (xmlLoader.readyState == 4) createNewsBox()
            }
            broze = 'ie' ;
        }
        else if ( document.implementation && document.implementation.createDocument )
        {
            xmlLoader = document.implementation.createDocument("","",null) ;
            xmlLoader.onload = createNewsBox ;
            broze = 'fos' ;
        }
        else
        {
            return false ;
        }
        
        return true ;
    }
    
    this.printme = function ( )
    {
        xmlLoader.load ( newsfile ) ;
    };
    
    if ( ! this.init ( ) )
    {
        //Qaulcosa
    }
};

    function createNewsBox ( )
    {
        var childs = xmlLoader.getElementsByTagName('news') ;
        
        var i = x = j = 0 ;
        
        //alert ( childs[0].childNodes.length ) ;
        
        for ( i = 0 ; i < childs.length ; i++ )
        {
            if (childs[i].nodeType != 1) continue;

            news[x] = new Array ( ) ;

            for ( j = 0 ; j < childs[i].childNodes.length; j++ )
            {            
                if ( childs[i].childNodes[j].nodeType != 1) continue;
                news[x][childs[i].childNodes[j].nodeName] = childs[i].childNodes[j].firstChild.nodeValue ;
            }
            
            x++ ;
        }
        
        var menus = '' ;
        
        for ( i = 0 ; i < news.length ; i++ )
        {
            var mcls = 'midbutton' ;
            
            if ( i == 0 )
                mcls = 'topbutton' ;
            else if ( i == ( news.length - 1 ) )
                mcls = 'endbutton' ;
            
            menus += '<li id="fm_obj_' + i + '" onmouseover="changestyle(this, ' + i + ',\'over\');" onmouseout="changestyle(this, ' + i + ',\'out\');" class="' + mcls + '"><a href="' + news[i]['link'] + '"  onclick="return changenews(' + i + ')" target="' + news[i]['target'] + '">' + news[i]['title'] + '</a></li>' ;
            
            
        }
        //alert ( menus ) ;
        fmglobalnews = news ;
        totalnews = x ;
        fmglobalmenus = menus ;
        changenews ( 0 ) ;
    }

function changestyle ( target, id, evt )
{
    if ( evt == 'over' )
    {
        target.style.backgroundPosition = '0 -' + gety(id) + 'px' ;
        if ( selectedid != id )
        changenews(id) ;
        mouselected = true ;
    }
    
    if ( evt == 'out' && id != selectedid )
    {
        target.style.backgroundPosition = '0 0' ;
        mouselected = false ;
        
    }
    else if ( evt == 'out' )
    {
        if ( mouselected )
        {
          mouselected = false ;
          //clearTimeout(fmChangeInterval) ;
          fchangenews ( getnid ( id ) ) ;
        } 
    }
    
    if ( evt == 'selection' )
    {
        document.getElementById('fm_obj_'+id).style.backgroundPosition = '0 -' + gety(id) + 'px' ;
        //document.getElementById('fm_obj_'+id).className += '-selected' ;
    }
}

function gety ( i )
{
    var mcls = '50' ;
    if ( i == 0 )
        mcls = '51' ;
    else if ( Number(i) == (totalnews-1) )
        mcls = '51' ;
        
    //alert ( Number(i) +'=='+ totalnews );
    return mcls ;
}

function changenews ( id )
{
    if ( mouselected ) return ;
    
    if ( fmglobalnews[id] == undefined && fmglobalnews[id] == null ) return ;

        var std = '<div class="baseimage" style="background:url(' + fmglobalnews[id]['image'] + ') repeat;"><div class="newslinks"><ul>' + fmglobalmenus + '</ul></div><div class="newsinfos"><h3><a href="' + fmglobalnews[id]['link'] + '" target="' + fmglobalnews[id]['target'] + '">' + fmglobalnews[id]['title'] + '</a></h3>' + fmglobalnews[id]['contents'] + '</div></div>' ;
        
        //alert ( 'here' )
        
        document.getElementById('fm-news-box').innerHTML = std ;
        
        var nid = id + 1 ;
        
        if ( nid > ( fmglobalnews.length - 1 ) )
         nid = 0 ;
        else if ( nid < 0 )
         nid = 0 ;
         
    /*if ( mouselected != null && mouselected != undefined )
    {
        nid = mouselected ;
    }*/
         
        selectedid = id ;
        
        changestyle ( null, id, 'selection' ) ;
        clearTimeout( fmChangeInterval ) ;
        fmChangeInterval = setTimeout ( changenews, changetime, nid ) ;
        
        return false ;
}

function getnid ( id )
{
        var nid = id + 1 ;
        
        if ( nid > ( fmglobalnews.length - 1 ) )
         nid = 0 ;
        else if ( nid < 0 )
         nid = 0 ;
}

var t = new fmNewsBox ( 'newsbox/news.php'  ) ;

window.onLoad = t.printme ( ) ;