var hoverMore = null;
var hoverMoreTimerId = null;
var isInternetExplorer = document.all?true:false;
window.onload = attachRefinementEvents;


hitTest = function(o, l){
    function getOffset(o){
	    for(var r = {l: o.offsetLeft, t: o.offsetTop, r: o.offsetWidth, b: o.offsetHeight};
		    o = o.offsetParent; r.l += o.offsetLeft, r.t += o.offsetTop);
	    return r.r += r.l, r.b += r.t, r;
    }
    for(var b, s, r = [], a = getOffset(o), j = isNaN(l.length), i = (j ? l = [l] : l).length; i;
	    b = getOffset(l[--i]), (a.l == b.l || (a.l > b.l ? a.l <= b.r : b.l <= a.r))
	    && (a.t == b.t || (a.t > b.t ? a.t <= b.b : b.t <= a.b)) && (r[r.length] = l[i]));
    return j ? !!r.length : r;
};
function attachRefinementEvents()
{
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    if(!prm.get_isInAsyncPostBack())
    {
        prm.add_endRequest(onRefinementsLoaded);
        prm.add_initializeRequest(beforeRefinementsLoaded);
    }
    if('function' == typeof window.OnDocumentLoaded)
        OnDocumentLoaded(); 
}
function beforeRefinementsLoaded()
{
    // Look thru all the divs on the page.  If class is popupContainer, then hide before displaying
    // these refinements
    var divs = document.getElementsByTagName("div");
    for(var i=0; i<divs.length; i++)
    {
        if(divs[i].className=="popupContainerLeftNav")
            removePopup(divs[i]);
    }
}
function onRefinementsLoaded()
{
    var divs = document.getElementsByTagName("div");

    for(var i=0; i<divs.length; i++)
    {
       
        if(divs[i].className == "popupContainerLeftNav" && divs[i].style.display != "none")
        {
            var el = divs[i];
            
            // Look for any select (dropdown) control that would be under the popup window and hide it
            if(!el.ieFix)
                el.ieFix = hitTest(el, document.getElementsByTagName("select"));
            for(var i2 = el.ieFix.length; i2; el.ieFix[--i2].style.visibility = "hidden"); 
            
            if(!isInternetExplorer)
            {
                el.style.left = "95px";
                el.style.top = "75px";
                var bubble = document.getElementById("bubbleArrowCanvas");
                bubble.style.left = "81px";
                bubble.style.top = "90px";
            }
            
        }       
    }
    DrawBubble("bubbleArrowCanvas");
}
function getAttachedButton(href)
{
    var btnId = href.attributes["attachedLink"].value;
    return document.getElementById(btnId);
}
function stopHoverMore()
{
    hoverMore = null;
}
function removePopup(div)
{
    var divs = document.getElementsByTagName("div");
  
    for(var i=0; i<divs.length; i++)
    {
       
        if(divs[i].className == "popupContainerLeftNav" && divs[i].style.display != "none")
        {
            var el = divs[i];
            
            // Look for any select (dropdown) control that would be under the popup window and hide it
            if(!el.ieFix)
                el.ieFix = hitTest(el, document.getElementsByTagName("select"));
            for(var i2 = el.ieFix.length; i2; el.ieFix[--i2].style.visibility = "visible");
       } 
    }
    
    while(div.firstChild != null)
        div.removeChild(div.firstChild);
    
}

function isChild(parent, child)
{
    while(child.parentElement != null && child != parent)
        child = child.parentElement;
    return child == parent;
}

function startHoverMore(href)
{
    hoverMore = href;
    hoverMoreTimerId = setTimeout(hoverMoreRefinements, 1000);
}
function hoverMoreRefinements()
{
    clearTimeout(hoverMoreTimerId);    
    var hr = hoverMore;
    if(hr != null)
    {
        hoverMore = null;
        loadRefinements(hr);
    }
}
function mouseOutRefinementDiv(div, e)
{
   if(isInternetExplorer)
    {
      if(!isChild(div, e.toElement))  
      {  
           
            removePopup(div);
            }
    }
}


function loadRefinements(href,button)
{
    // Kill the hoverover process in case it has already started
    href.innerHTML = "MORE &nbsp;<img src='/images/blue_spinning_ball.gif' alt='Please Wait' style='border-width:0px' />";
    eval(decodeURI(button.href));
}
function closeRefinementDivButton(img)
{
    var div = img;
    removePopup(div);
}

function DrawBubble(divName)
{
    // Call jsGraphics() with no parameters if drawing within the entire document 
    var jg = new jsGraphics(divName);

    // Draw a filled triangle with definitive bg color
    // First array is x values for pts 1-n, second array is y values for pts 1-n
    jg.setColor("#DEE5F1");
    jg.fillPolygon(new Array(0, 14, 14), new Array(10, 20, 0)); 

    // Draw borders around the top and bottom of triangle to match the div bubble
    jg.setStroke(1);
    jg.setColor("#999999");
    jg.drawLine(0, 10, 14, 0);  // draw border from pt(0, 10) to (14, 0)
    jg.drawLine(0, 10, 14, 20); // draw border from pt(0, 10) to (14, 20)

    jg.paint(); 
}


