
function initDoc()
{
    loadMenu();
    loadTicker();
    loadPanels();
    loadCorners();
}


function loadPanels()
{
    var panels = $$('div.panel');
    
    for(ii=0; ii<panels.length; ii++)
    {
        var headerLink = $(panels[ii]).getElementsBySelector('.header a');
        if(headerLink[0])
        {
            Event.observe(panels[ii], 'click', clickPanel.bindAsEventListener(this,headerLink[0]) );
            $(panels[ii]).addClassName('clickable');
        }
    }
}

function clickPanel(obj)
{
    var data = $A(arguments);
    data.shift();
    document.location.href = data[0].href;
}


function loadCorners()
{
    //Replace images with gif
    if (!/MSIE (5\.5|6\.)/.test(navigator.userAgent) ) return;
    
    var acArr = new Array('TopRight','TopLeft','BottomLeft','BottomRight');
    
    for(var aa=0; aa<acArr.length; aa++)
    {
        var acObj = $$('div.ac'+acArr[aa]);
        
        if(acObj && acObj[0])
        {
            var bgImg = $(acObj[0]).getStyle('backgroundImage').replace('.png','.gif');
            
            for(var oo=0; oo<acObj.length; oo++)
            {
                $(acObj[oo]).setStyle({ backgroundImage:bgImg });
            }
        }
    }
}


function loadTicker()
{
    if($('newsTicker')) { getNews(); }
}


function loadMenu()
{
    var lists = document.getElementsByTagName('li');

    for(ii=0; ii<lists.length; ii++)
    {
        if(lists[ii].className.indexOf('item') != -1 && $(lists[ii]).getStyle('background-image') != 'none')
        {
            var id = lists[ii].className.replace('item','menu').replace('first','').replace('last','').replace(' ','');
            
            Event.observe(lists[ii], 'mouseover', switchImage.bindAsEventListener(this,'on',id) );
            Event.observe(lists[ii], 'mouseout', switchImage.bindAsEventListener(this,'off',id) );
        }
    }
}


function switchImage(obj,direction,id)
{
    if($(id) && id.indexOf('mselected') == -1)
    {
        var bgPos = 'top';
        
        if(direction == 'on')
        {
            bgPos = 'bottom';
        }
        
        $(id).setStyle( { backgroundPosition:bgPos } );
    }
    
}


window.onload = function() { initDoc(); }






var pausecontent=new Array();

function getNews(newsUrl)
{    
    if(!newsUrl)  { newsUrl = '/news/' }
    
    new Ajax.Request('/_news/latest',
        {
            onComplete: function(t)
                {
                    var reply = eval('(' + t.responseText + ')');
                
                    for(var ii=0; ii<reply.news.length; ii++)
                    {
                        var newsHref = newsUrl + reply.news[ii].id+'/';
                        var htmlLine = '<p>';
                        htmlLine = htmlLine + "<span class=\"date\"><a href=\""+newsHref+"\">"+reply.news[ii].date+":</a></span> ";
                        htmlLine = htmlLine + "<span class=\"name\"><a href=\""+newsHref+"\">"+reply.news[ii].name+"</a></span>";
                        htmlLine = htmlLine + "</p>";
                        pausecontent[pausecontent.length] = htmlLine;
                    }
                
                    new pausescroller(pausecontent, 'newsTicker', 'newsTicker', 2000);
                }
        }
    );
}









/***********************************************
* Pausing up-down scroller- © Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/

function pausescroller(content, divId, divClass, delay)
{
    this.content=content //message array content
    this.tickerid=divId //ID of ticker div to display information
    this.delay=delay //Delay between msg change, in miliseconds.
    this.mouseoverBol=0 //Boolean to indicate whether mouse is currently over scroller (and pause it if it is)
    this.hiddendivpointer=1 //index of message array for hidden div
    this.scrollTimer='';
    
    //document.write('<div id="'+divId+'" class="'+divClass+'" style="position: relative; overflow: hidden"><div class="innerDiv" style="position: absolute; width: 90%" id="'+divId+'1">'+content[0]+'</div><div class="innerDiv" style="position: absolute; width: 90%; visibility: hidden" id="'+divId+'2">'+content[1]+'</div></div>')


    if(content[0]) { $(divId+'1').innerHTML = content[0]; }

    if(content[1]) { $(divId+'2').innerHTML = content[1]; }
    else if(content[0]) { $(divId+'2').innerHTML = content[0]; }


    var scrollerinstance=this

    this.initialize();

    //function(){scrollerinstance.initialize()}, false);

    /*if (window.addEventListener) //run onload in DOM2 browsers
    window.addEventListener("load", function(){scrollerinstance.initialize()}, false)
    else if (window.attachEvent) //run onload in IE5.5+
    window.attachEvent("onload", function(){scrollerinstance.initialize()})
    else if (document.getElementById) //if legacy DOM browsers, just start scroller after 0.5 sec
    setTimeout(function(){scrollerinstance.initialize()}, 500)*/
}

// -------------------------------------------------------------------
// initialize()- Initialize scroller method.
// -Get div objects, set initial positions, start up down animation
// -------------------------------------------------------------------

pausescroller.prototype.initialize=function()
{
    this.tickerdiv=document.getElementById(this.tickerid)
    this.visiblediv=document.getElementById(this.tickerid+"1")
    this.hiddendiv=document.getElementById(this.tickerid+"2")
    this.visibledivleft=parseInt(pausescroller.getCSSpadding(this.tickerdiv))
    
    //set width of inner DIVs to outer DIV's width minus padding (padding assumed to be top padding x 2)
    this.visiblediv.style.width=this.hiddendiv.style.width=this.tickerdiv.offsetWidth-(this.visibledivleft*2)+"px"
    this.getinline(this.visiblediv, this.hiddendiv)
    this.hiddendiv.style.visibility="visible"
    
    var scrollerinstance=this
    document.getElementById(this.tickerid).onmouseover=function(){scrollerinstance.mouseoverBol=1;}
    document.getElementById(this.tickerid).onmouseout=function(){scrollerinstance.mouseoverBol=0;}
    if (window.attachEvent) //Clean up loose references in IE
    window.attachEvent("onunload", function(){scrollerinstance.tickerdiv.onmouseover=scrollerinstance.tickerdiv.onmouseout=null})
    //setTimeout(function(){scrollerinstance.animateup()}, this.delay)
    setTimeout(function(){scrollerinstance.animateleft()}, this.delay)
}


// -------------------------------------------------------------------
// animateup()- Move the two inner divs of the scroller up and in sync
// -------------------------------------------------------------------

pausescroller.prototype.animateup=function(){
    var scrollerinstance=this
    if (parseInt(this.hiddendiv.style.top)>(this.visibledivtop+2)){
    this.visiblediv.style.top=parseInt(this.visiblediv.style.top)-2+"px"
    this.hiddendiv.style.top=parseInt(this.hiddendiv.style.top)-2+"px"
    setTimeout(function(){scrollerinstance.animateup()}, 50)
    }
    else{
    this.getinline(this.hiddendiv, this.visiblediv)
    this.swapdivs()
    setTimeout(function(){scrollerinstance.setmessage()}, this.delay)
    }
}

// -------------------------------------------------------------------
// animateleft()- Move the two inner divs of the scroller up and in sync
// -------------------------------------------------------------------

pausescroller.prototype.animateleft=function(){
    var scrollerinstance=this
    
    if(this.mouseoverBol == 1)
    {
        clearTimeout(this.scrollTimer);
        this.scrollTimer = setTimeout(function(){scrollerinstance.animateleft()}, 2000);
        return;
    }
    
    if (parseInt(this.hiddendiv.style.left)>(this.visibledivleft+1))
    {
        this.visiblediv.style.left=parseInt(this.visiblediv.style.left)-1+"px"
        this.hiddendiv.style.left=parseInt(this.hiddendiv.style.left)-1+"px"
        this.scrollTimer = setTimeout(function(){scrollerinstance.animateleft()}, 10);
    }
    else
    {
        this.getinline(this.hiddendiv, this.visiblediv)
        this.swapdivs()
        this.scrollTimer = setTimeout(function(){scrollerinstance.setmessage()}, this.delay)
    }
}

// -------------------------------------------------------------------
// swapdivs()- Swap between which is the visible and which is the hidden div
// -------------------------------------------------------------------

pausescroller.prototype.swapdivs=function(){
    var tempcontainer=this.visiblediv
    this.visiblediv=this.hiddendiv
    this.hiddendiv=tempcontainer
}

pausescroller.prototype.getinline=function(div1, div2){
    div1.style.left=this.visibledivleft+"px"
    div2.style.left=Math.max(div1.parentNode.offsetWidth, div1.offsetWidth)+"px"
    div1.style.width=div1.parentNode.offsetWidth+"px"
    div2.style.width=div1.parentNode.offsetWidth+"px"
}

// -------------------------------------------------------------------
// setmessage()- Populate the hidden div with the next message before it's visible
// -------------------------------------------------------------------

pausescroller.prototype.setmessage=function(){
    var scrollerinstance=this
    if (this.mouseoverBol==1) //if mouse is currently over scoller, do nothing (pause it)
    setTimeout(function(){scrollerinstance.setmessage()}, 100)
    else{
    var i=this.hiddendivpointer
    var ceiling=this.content.length
    this.hiddendivpointer=(i+1>ceiling-1)? 0 : i+1
    this.hiddendiv.innerHTML=this.content[this.hiddendivpointer]
    this.animateleft()
    }
}

pausescroller.getCSSpadding=function(tickerobj){ //get CSS padding value, if any
    if (tickerobj.currentStyle)
    return tickerobj.currentStyle["paddingLeft"]
    else if (window.getComputedStyle) //if DOM2
    return window.getComputedStyle(tickerobj, "").getPropertyValue("padding-left")
    else
    return 0
}

