﻿var DynDivs = Class.create();
DynDivs.prototype = {
    divPrefix: "dynDiv",
    linkPrefix: "dynDivLink",
    hoverWrapper: "linkWrapper",
    currentDiv: null,
    
    initialize: function(dprefix, lprefix, lwrapper) {
        this.divPrefix = dprefix;
        this.hoverPrefix = lprefix;
        this.hoverWrapper = lwrapper;
        
        this.initHovers();
        this.initDivs();
    },
    
    initHovers: function() {
        var hoverWrapper = p$(this.hoverWrapper);
        if ( hoverWrapper ) {
            var hoverObjs = hoverWrapper.getElementsByTagName('p');
            for(i=0; i<hoverObjs.length; i++) {
                Event.observe(hoverObjs[i], 'mouseover', this.showDiv.bindAsEventListener(this), false);
                
                var links = hoverObjs[i].getElementsByTagName('a');
                if ( links.length > 0 ) {
                    eval("var eventCallback = function() { document.location.href='"+links[0].href+"'; }");
                    Event.observe(hoverObjs[i], 'click', eventCallback, false);
                }
			}
        }
    },
    
    initDivs: function() {
        var divObjs = document.getElementsByClassName("newsSpotItem");
        Element.setStyle(divObjs[0], {display: 'block'});
        this.currentDiv = divObjs[0];
    },
    
    showDiv: function(event) {
        var el = Event.element(event);
        el = this.findParent(el, 'li');
        if ( el.tagName.toLowerCase()=='li' ) {
            var divId = el.id.replace(this.hoverPrefix, '');
            
            if ( this.currentDiv != null ) this.hideDiv(this.currentDiv);
            this.currentDiv = p$(this.divPrefix+divId);
            Element.setStyle(this.currentDiv, {display: 'block'});
        }
    },
    
    hideDiv: function(element) {
        Element.hide(element);
    },
    
    findParent: function(element, tagname) {
        while( element!=null && element.tagName.toLowerCase()!=tagname.toLowerCase() && element.tagName.toLowerCase()!='body' ) {
            element = element.parentNode;
        }
        return element;
    }
}

