
YAHOO.namespace("Sports");
YAHOO.Sports.FLYOUT={show:125,hide:250};

YAHOO.Sports.oFlyout=function()
{
  var $S=YAHOO.Sports,$D=YAHOO.util.Dom,$E=YAHOO.util.Event,nShow=$S.FLYOUT.show,nHide=$S.FLYOUT.hide,aFlyout=[];

  function create()
  {
    if(!this.sName||!this.fnContent||!this.oJSON)return;
    if(this.oJSON&&!this.oJSON.parentNode)
    {
      var elFlyout=newDiv(this.sName),elWrapper=document.createElement('div'),elHd=newDiv(),elSpan=document.createElement('span'),elFt=newDiv();
      $D.addClass(elWrapper,$S.league);
      $D.addClass(elHd,'hd');
      elHd.appendChild(elSpan);
      elWrapper.appendChild(elHd);
      elWrapper.appendChild(this.fnContent(this.oJSON));
      $D.addClass(elFt,'ft');
      elWrapper.appendChild(elFt);
      $D.addClass(elFlyout,'flyout');
      $E.addListener(elWrapper,'mouseover',stopHide,this,true);
      $E.addListener(elWrapper,'mouseout',startHide,this,true);
      elFlyout.appendChild(elWrapper);
    }
    else
    {
      var elFlyout=this.fnContent(this.oJSON);
      $E.addListener(elFlyout,'mouseover',stopHide,this,true);
      $E.addListener(elFlyout,'mouseout',startHide,this,true);
    }
    return elFlyout;
  }

  function returnStaticFlyout(elStatic)
  {
    return elStatic;
  }


  function newDiv(sId,sClass)
  {
    var elDiv=document.createElement('div');
    if(sId)elDiv.id=sId;
    if(sClass)$D.addClass(elDiv,sClass);
      return elDiv;
  }

  function newUl(oJSON,bOddEven)
  {
    if(!oJSON)return;
    var elUl=document.createElement('ul'),i=oJSON.length-1,elLi,sOddEven;
    do
    {
      if(oJSON[i]&&oJSON[i].sHref)
      {
        elLi=newLi(newA(oJSON[i].sTxt,oJSON[i].sHref));
      }
      else if(oJSON[i]&&oJSON[i].sTxt)
      {
        elLi=newLi();elLi.innerHTML=oJSON[i].sTxt;
      }
      else
      {
        elLi=newLi();
      }
    
      if(bOddEven)
      {
        sOddEven=(i%2)?'odd':'even';
        $D.addClass(elLi,sOddEven);
      }
    
      elUl.appendChild(elLi);
      if(oJSON[i]&&oJSON[i].sClass)
      {
        $D.addClass(elLi,oJSON[i].sClass);
      }
    }
    while(i--);
    
    return elUl;
  }

  function newLi(elChild)
  {
    var elLi=document.createElement('li');
    if(elChild)elLi.appendChild(elChild);
    return elLi;
  }

  function newA(sTxt,sHref)
  {
    if(!sTxt||!sHref)return;
    var elA=document.createElement('a');elA.innerHTML=sTxt;
    elA.href=sHref;
    return elA;
  }

  function show()
  {
    if(!this.elFlyout&&this.oJSON)
    {
      var elFlyout=create.call(this);
      if(this.oJSON&&!this.oJSON.parentNode)
      {
        this.elHit.appendChild(elFlyout);
      }
      this.elFlyout=elFlyout;
    }

    $D.addClass(this.elFlyout,'show');
    $D.addClass(this.elHit,'open');
    if($E.isIE&&$S.oFlyout.oIE)
    {
      if(this.sName==="ysp-sub-nav-ac"&&!$S.oFlyout.oIE._oACFlyout)
      {
        $S.oFlyout.oIE._oACFlyout=this;
      }
      $S.oFlyout.oIE.addIEshim.call(this);
      this.aIEshadows=$S.oFlyout.oIE.addIEshadow.call(this);
    }
  }

  function hide()
  {
    if($E.isIE&&$S.oFlyout.oIE)
    {
      $S.oFlyout.oIE.removeIEshim.call(this);
      $S.oFlyout.oIE.removeIEshadow.call(this);
    }
      $D.removeClass(this.elFlyout,'show');
      $D.removeClass(this.elHit,'open');stopHide.call(this);
  }

  function startShow(e)
  {
    stopHide.call(this);
    if(!this.bOpenTimer&&!$D.hasClass(this.elFlyout,'show'))
    {
      this.bOpenTimer=scopeTimeout(show,this,nShow);
    }
  }

  function startHide(e)
  {
    if(this.bOpenTimer)
    {
      window.clearTimeout(this.bOpenTimer);this.bOpenTimer=false;
    }
  
    if(!this.bCloseTimer&&$D.hasClass(this.elFlyout,'show')&&!this.bSticky)
    {
      this.bCloseTimer=scopeTimeout(hide,this,nHide);
    }
  }

  function stopHide()
  {
    if(this.bCloseTimer)
    {
      window.clearTimeout(this.bCloseTimer);
    }
  
    this.bCloseTimer=false;
  }

  function scopeTimeout(fn,oScope,nTime)
  {
    return window.setTimeout(function(){fn.call(oScope)},nTime);
  }

  function getFlyoutFromArray(sName)
  {
    var i=aFlyout.length-1;do
    {
      var f=aFlyout[i];
      if(f.sName===sName)
      {
        var obj=f;break;
      }
    }
    while(i--);
    return obj||false;
  }

  function stopTargetClick(e,obj)
  {
    var el=$E.getTarget(e);
    if(el&&el.nodeName=='A'&&el.href&&$D.hasClass(el.parentNode,obj.sClassName))
    {
      $E.stopEvent(e);
    }
  }

  function hideTargetStatus(e,obj)
  {
    var el=$E.getTarget(e);
    if(el&&($D.hasClass(el,obj.sClassName)||$D.hasClass(el.parentNode,obj.sClassName)))
    {
      window.status='';
      return true;
    }
  }
 
  var set=function(elHit,oJSON,sName,fnContent)
  {
    if(!elHit||!oJSON||!sName||!fnContent)return;
    var oFlyout={'elHit':elHit,'oJSON':oJSON,'sName':sName,'fnContent':fnContent};
    $E.addListener(elHit,'mouseover',startShow,oFlyout,true);
    $E.addListener(elHit,'mouseout',startHide,oFlyout,true);aFlyout.push(oFlyout);
  }

  var init=function()
  {
    var aPrimaryFlyouts = $D.getElementsByClassName('more','li','mainmenu-nav');
    
	// Framsida
	//var collegeContent  = $D.getElementsByClassName('flyout','div',aPrimaryFlyouts[0])[0];
    //if(aPrimaryFlyouts[0] && collegeContent)
    //{
    //  set(aPrimaryFlyouts[0],collegeContent,'ysp-college',returnStaticFlyout);
    //  $E.addListener(aPrimaryFlyouts[0],'mouseover',hideTargetStatus,{sClassName:"college"});
    //}

    var collegeContent2  = $D.getElementsByClassName('flyout','div',aPrimaryFlyouts[1])[0];
    if(aPrimaryFlyouts[1] && collegeContent2)
    {
      set(aPrimaryFlyouts[1],collegeContent2,'ysp-college',returnStaticFlyout);
      $E.addListener(aPrimaryFlyouts[1],'mouseover',hideTargetStatus,{sClassName:"college"});
    }

    var collegeContent3  = $D.getElementsByClassName('flyout','div',aPrimaryFlyouts[2])[0];
    if(aPrimaryFlyouts[2] && collegeContent3)
    {
      set(aPrimaryFlyouts[2],collegeContent3,'ysp-college',returnStaticFlyout);
      $E.addListener(aPrimaryFlyouts[2],'mouseover',hideTargetStatus,{sClassName:"college"});
    }

    //var collegeContent4 = $D.getElementsByClassName('flyout','div',aPrimaryFlyouts[3])[0];
    //if(aPrimaryFlyouts[3] && collegeContent4)
   // {
   //   set(aPrimaryFlyouts[3],collegeContent4,'ysp-college',returnStaticFlyout);
   //   $E.addListener(aPrimaryFlyouts[3],'mouseover',hideTargetStatus,{sClassName:"college"});
   // }

    var collegeContent5 = $D.getElementsByClassName('flyout','div',aPrimaryFlyouts[4])[0];
    if(aPrimaryFlyouts[4] && collegeContent5)
    {
      set(aPrimaryFlyouts[4],collegeContent5,'ysp-college',returnStaticFlyout);
      $E.addListener(aPrimaryFlyouts[4],'mouseover',hideTargetStatus,{sClassName:"college"});
    }

    var collegeContent6 = $D.getElementsByClassName('flyout','div',aPrimaryFlyouts[5])[0];
    if(aPrimaryFlyouts[5] && collegeContent6)
    {
      set(aPrimaryFlyouts[5],collegeContent6,'ysp-college',returnStaticFlyout);
      $E.addListener(aPrimaryFlyouts[5],'mouseover',hideTargetStatus,{sClassName:"college"});
    }

    var collegeContent7 = $D.getElementsByClassName('flyout','div',aPrimaryFlyouts[6])[0];
    if(aPrimaryFlyouts[6] && collegeContent7)
    {
      set(aPrimaryFlyouts[6],collegeContent7,'ysp-college',returnStaticFlyout);
      $E.addListener(aPrimaryFlyouts[6],'mouseover',hideTargetStatus,{sClassName:"college"});
    }

    var collegeContent8 = $D.getElementsByClassName('flyout','div',aPrimaryFlyouts[7])[0];
    if(aPrimaryFlyouts[7] && collegeContent8)
    {
      set(aPrimaryFlyouts[7],collegeContent8,'ysp-college',returnStaticFlyout);
      $E.addListener(aPrimaryFlyouts[7],'mouseover',hideTargetStatus,{sClassName:"college"});
    }

    var collegeContent9 = $D.getElementsByClassName('flyout','div',aPrimaryFlyouts[8])[0];
    if(aPrimaryFlyouts[8] && collegeContent9)
    {
      set(aPrimaryFlyouts[8],collegeContent9,'ysp-college',returnStaticFlyout);
      $E.addListener(aPrimaryFlyouts[8],'mouseover',hideTargetStatus,{sClassName:"college"});
    }


  }

  var setSticky=function(sObj,bValue)
  {
    getFlyoutFromArray(sObj).bSticky=bValue;
  }   

  var hideNow=function(sName)
  {
    var o=getFlyoutFromArray(sName),el=document.getElementById(sName+'-field'),n=(el)?el.value.length:0;
    if(o.bSticky&&n<=YAHOO.Sports.oAC._nMinQueryLength)
    {
      o.bSticky=false;
    }
    if(el&&n<=0)
    {
      YAHOO.Sports.showLabel(null,{'id':sName+'-form'});
      el.blur();
      el.value='';
    }
    hide.call(o);
  }

  return{'init':init,'set':set,'setSticky':setSticky,'hideNow':hideNow}
}();

YAHOO.util.Event.onDOMReady(YAHOO.Sports.oFlyout.init);
