if (typeof mnSport == "undefined" || !mnSport) {
  var mnSport = {};
}

mnSport.tabHandler = function(ev) {
  var Dom = YAHOO.util.Dom,
      Connect = YAHOO.util.Connect; 

  var tab = this.get('activeTab');
  var parent = tab.get('contentEl');
  Dom.addClass(parent.parentNode, tab.LOADING_CLASSNAME);
  var id = parent.id;

  var callback = {
    success: function(o) {
      this.set('content', o.responseText);
      this.set('dataLoaded', true);
      Dom.removeClass(this.get('contentEl').parentNode,
        this.LOADING_CLASSNAME);
    }, 
    failure: function(o) {
      Dom.removeClass(this.get('contentEl').parentNode,
        this.LOADING_CLASSNAME);
    },
    scope: tab
  };

  if (tab.get('dataLoaded') == false) {
  	var tmp = id.replace('mnsport-databox-', '');
    if (tmp.substr(0, 10) == 'auto-moto-') {
      var tmp = tmp.replace('auto-moto-', '');
    }
  	if (tmp != '') {
  	  var sUrl = '/sport/GetDatabox?f=' + tmp;
        var cObj = Connect.asyncRequest('GET', sUrl, callback);
  	} else {
        Dom.removeClass(parent.parentNode, tab.LOADING_CLASSNAME);
  	}
  } else {
    Dom.removeClass(parent.parentNode, tab.LOADING_CLASSNAME);
  }
};

mnSport.init = function() {
  var tabview = YAHOO.widget.TabView,
      Dom = YAHOO.util.Dom;
  for (var i = 0, len = this.tabsView.length;i < len; ++i) {
  	if (this.tabsView[i].substr(0, 2) == 'x-') {
      var obtabview = this.tabsView[i].replace('x-', '');
      new tabview(obtabview, { activeIndex: 0 });
      obtabview = null;
  	} else {
      Dom.setStyle(this.tabsView[i], 'display', 'block');
      var tab = new tabview(this.tabsView[i], { activeIndex: 0 });
      tab.on('click', this.tabHandler);
      tab = null;
    }
  }
};

mnSport.closeSelect = function() {
  var Dom = YAHOO.util.Dom;
  var select = mnSport.selectedSelect;
  var fils = select.childNodes;
  for (var i = 0; i < fils.length; i++) {
    if (fils[i].nodeName == 'DD') { 
      Dom.setStyle(fils[i], 'visibility', 'hidden');
      Dom.setStyle(fils[i], 'display', 'none');
      Dom.setStyle(fils[i], 'height', '1px');
      fils[i].onmouseover = '';
    } else if (fils[i].nodeName == 'DT') {
      fils[i].onmouseover = '';
    }
  }
  select.setAttribute('visible', "0");
}

var mnSportConfig = function() {};

YAHOO.lang.augmentProto(mnSportConfig, YAHOO.util.AttributeProvider);

Event.onDOMReady(mnSport.init, {}, mnSport);

(function () {
  var Dom = YAHOO.util.Dom,
      Event = YAHOO.util.Event,
      Element = YAHOO.util.Element,
      Connect = YAHOO.util.Connect;

  var nav_select = new Element('mn-sport-fake-select');

  nav_select.on('available', function () {
    var myConf = new mnSportConfig();

    var theNodes = nav_select.getElementsByTagName('A');
  
    for (var i = 0; i < theNodes.length; i++) {
      myConf.setAttributeConfig(theNodes[i].id, {
        value: false,
        validator: YAHOO.lang.isString,
        writeOnce: true
      });
    }
  
    Event.on(theNodes, 'click', function (ev) {
      Event.preventDefault(ev);
      var target = Event.getTarget(ev);
      var elTarget = new Element(target);
      var elId = elTarget.get('id');
      var theMenu = Dom.get('mn-sport-second-level-nav');
      if (!myConf.get(elId)) {
        var sUrl = '/sport/SecondLevelNav';
        // from http://code.google.com/p/js-uri/source/browse/trunk/lib/URI.js
        var parser = /^(?:([^:\/?\#]+):)?(?:\/\/([^\/?\#]*))?([^?\#]*)(?:\?([^\#]*))?(?:\#(.*))?/;
        var result = target.href.match(parser);
        var sUrl = sUrl + '?' + result[4];
        var callback = {
          success: function(o) {
            theMenu.innerHTML = o.responseText;
            myConf.set(elId, o.responseText);
            mnSport.closeSelect();
          },
          failure: function(o) {
          },
          scope: this
        };
  
        var transaction = Connect.asyncRequest('GET', sUrl, callback);
      } else {
        theMenu.innerHTML = myConf.get(elId);
        mnSport.closeSelect();
      }
      var dt = theMenu.parentNode.getElementsByTagName('DT');
      for (var i = 0; i < dt.length; i++) {
        dt[i].childNodes[1].textContent = this.innerHTML;
      }
    });
  
  function selectClick(select) {
      var fils = select.childNodes;
      if (select.getAttribute('visible') == '0') {
        for (var i = 0; i < fils.length; i++) {
          if (fils[i].nodeName == 'DT') { 
            selectLength = fils[i].offsetWidth;
            if (navigator.userAgent.indexOf("MSIE") == -1) {
              selectLength -= 2;
            }
          } else if (fils[i].nodeName == 'DD') { 
            Dom.setStyle(fils[i], 'visibility', 'visible');
            Dom.setStyle(fils[i], 'display', 'block');
            Dom.setStyle(fils[i], 'height', '');
            var hauteur = 0;
            a = fils[i].getElementsByTagName('A');
            for (var j = 0; j < a.length; j++) {
              hauteur += a[j].offsetHeight;
              if (hauteur > '200') {
                Dom.setStyle(fils[i], 'height', '200px');
                if (navigator.userAgent.indexOf("MSIE")!=-1 || (navigator.userAgent.indexOf("Mozilla")!=-1 && (navigator.userAgent.indexOf("Safari")==-1 || navigator.userAgent.indexOf("Konqueror")==-1))) {
                  fils[i].className = 'scrollbar';
                } else {
                  fils[i].className = 'scrollbars';
                }
                break;
              }
            }
            Dom.setStyle(fils[i], 'width', selectLength + 'px');
          }
        }
        select.setAttribute('visible', "1");
      } else {
        var fils = select.childNodes;
        for (var i = 0; i < fils.length; i++) {
          if (fils[i].nodeName == 'DD') { 
            Dom.setStyle(fils[i], 'visibility', 'hidden');
            Dom.setStyle(fils[i], 'display', 'none');
            Dom.setStyle(fils[i], 'height', '1px');
          }
        }
        select.setAttribute('visible', "0");
      }
    }
  
    function selectOut(select) {
      if (select.getAttribute('visible') == '1') {
        mnSport.selectedSelect = select;
        var fils = select.childNodes;
        for (var i = 0; i < fils.length; i++) {
          if (fils[i].nodeName == 'DD' || fils[i].nodeName == 'DT') { 
            fils[i].onmouseover = dontCloseSelect;
          }
        }
        selectTimer = setTimeout('mnSport.closeSelect()', 400);
      }
    }
  
    function dontCloseSelect(){
      clearTimeout(selectTimer);
    }
    
    nav_select.on('mouseout', function (ev) {
      var target = Event.getTarget(ev);
      selectOut(target.parentNode);
    });
  
    var sub_select = nav_select.getElementsByTagName('DT')[0];  
  
    Event.on(sub_select, 'mousedown', function (ev) {
      var target = Event.getTarget(ev);
      selectClick(target.parentNode);
    });
  });
})();
