function ads_middle_init()
{ 
    // assign event handlers to trigger links
    var adsMiddleRight = YAHOO.util.Dom.get("ads_middle_right");
    if(!adsMiddleRight) return false;
    var adsMRLinks = adsMiddleRight.getElementsByTagName("a");  
    YAHOO.util.Event.addListener(adsMRLinks, "mouseover", ads_middle_trigger_over); 
    YAHOO.util.Event.addListener(adsMRLinks, "mouseout", ads_middle_trigger_out); 
    
    // assign event handlers to flyouts
    var adsMiddleFlyout = YAHOO.util.Dom.getElementsByClassName("ads-middle-flyout", "div", "ads_middle");  
    YAHOO.util.Event.addListener(adsMiddleFlyout, "mouseover", ads_middle_flyout_over); 
    YAHOO.util.Event.addListener(adsMiddleFlyout, "mouseout", ads_middle_flyout_out);  
}
function ads_middle_trigger_over(e)
{
    // pull the element and climb to link
    var el = this;
    while(el.nodeName != "A") el = el.parentNode;
    var i = el.id.match(/\d+/)[0];
    
    // clear the timeout
    clearTimeout(YAHOO.util.Dom.get("ads_middle")["to" + i]);
    
    // reset the flyouts
    _reset_ads_middle(i);
    
    // show the up arrow
    var arr = YAHOO.util.Dom.getElementsByClassName("icon-arrow-up", "div", el.parentNode);
    YAHOO.util.Dom.setStyle(arr, 'display', 'block');
    
    // show the flyout
    var flyout = YAHOO.util.Dom.getElementsBy(function(item){
        if((YAHOO.util.Dom.hasClass(item, "ads-middle-flyout")) && (item.id.indexOf(i)>-1)) return true;
    });
    YAHOO.util.Dom.setStyle(flyout, 'display', 'block');
}
function ads_middle_trigger_out(e)
{
    // pull the element and climb to link
    var el = this;
    while(el.nodeName != "A") el = el.parentNode;
    var i = el.id.match(/\d+/)[0];
    
    // timeout the hide command
    YAHOO.util.Dom.get("ads_middle")["to" + i] = setTimeout(function() {
        _hide_ads_middle(i);
    }, 250);
}
function ads_middle_flyout_over(e)
{
    // pull the element
    var el = this;
    while(!YAHOO.util.Dom.hasClass(el, "ads-middle-flyout")) el = el.parentNode;
    var i = el.id.match(/\d+/)[0];
    
    // clear the timeout
    clearTimeout(YAHOO.util.Dom.get("ads_middle")["to" + i]);
}
function ads_middle_flyout_out(e)
{
    // pull the element
    var el = this;
    while(!YAHOO.util.Dom.hasClass(el, "ads-middle-flyout")) el = el.parentNode;
    var i = el.id.match(/\d+/)[0];
    
    // timeout the hide command
    YAHOO.util.Dom.get("ads_middle")["to" + i] = setTimeout(function() {
        _hide_ads_middle(i);
    }, 250);
}

function _reset_ads_middle(i)
{
    // hide all up arrows
    var iconArrows = YAHOO.util.Dom.getElementsByClassName("icon-arrow-up", "div", "ads_middle");
    YAHOO.util.Dom.batch(iconArrows, function(item) {
        if(item.id.indexOf(i) == -1) {
            YAHOO.util.Dom.setStyle(item, "display", "none");
        }
    });
    
    // hide all flyouts
    var adsFlyout = YAHOO.util.Dom.getElementsByClassName("ads-middle-flyout", "div", "ads_middle");
    YAHOO.util.Dom.batch(adsFlyout, function(item) {
        if(item.id.indexOf(i) == -1) {
            YAHOO.util.Dom.setStyle(item, "display", "none");
        }
    });
}
function _hide_ads_middle(i)
{
    // pull the trigger link
    var ln = YAHOO.util.Dom.get("ads_middle_" + i);
    
    // hide the up arrow
    var arr = YAHOO.util.Dom.getElementsByClassName("icon-arrow-up", "div", ln.parentNode)[0];
    YAHOO.util.Dom.setStyle(arr, "display", "none");
    
    // hide the flyout
    var flyout = YAHOO.util.Dom.getElementsBy(function(item) {
        if((YAHOO.util.Dom.hasClass(item,"ads-middle-flyout")) && (item.id.indexOf(i) > -1)) return true;
    });
    YAHOO.util.Dom.setStyle(flyout, "display", "none");
}

YAHOO.util.Event.addListener(window, "load", ads_middle_init);
