if (!Enthink) var Enthink = {};
if (!Enthink.Tabs) Enthink.Tabs = {};

// Enthink.Tabs namespace
(function() {
  var ME = Enthink.Tabs;
  var Q = jQuery;

  ME.InitTabs = function (paneContentSelector,tabTextSelector,hide,ulID,ulClass,liClass,liActiveClass,ulTarget,someFunction,smartEdit) {

    if(!paneContentSelector || !tabTextSelector)
        return false;

    // default css styles
    var _ulClass = (ulClass) ? ulClass : 'tabs';
    var _liClass = (liClass) ? liClass : 'tab';
    var _liActiveClass = (liActiveClass) ? liActiveClass : 'active-tab';
    var _ulTarget = (ulTarget) ? ulTarget : false;
    
    // hide tab text source
    var _hide = (hide==true || hide==false) ? hide : true;
    
    // setup elements
    var _newTabs = Q('<ul></ul>');
    var _panes = Q(paneContentSelector);
    if (ulID) _newTabs.attr('id',ulID);
    
    // pane content related
    _panes.each(function () {
        var header = Q(this).children(tabTextSelector);
        if(_hide) { header.hide(); }
        
        var title = header.text();
        if(title!=""){
            var tab = Q('<li />').html("<span>" + title + "</span>").addClass(_liClass).data('parent', this);
            tab.appendTo(_newTabs);
        }
    });

    // tab behaviour
    _newTabs.delegate('li', 'click', function () {
        _panes.hide().filter(Q.data(this, 'parent')).show();
        Q(this).addClass(_liActiveClass).siblings().removeClass(_liActiveClass);
        Q(someFunction);
        if(smartEdit && Enthink.Utils) Enthink.Utils.SetCookie(ulID,Q(this).index());
    });

    // initialize
    _panes.hide();

    if(_ulTarget!=false) {
        Q(_ulTarget).html(_newTabs);
    } else {
        _panes.first().before(_newTabs);
    }

    // Putting the next line into the now-nonexistant 'else' clause of urlParts prevents the subtabs in Insights & Analysis to show up for some reason. Bringing it out here fixed that and kept the functionality of the anchor tab picker below.

    // default behaviour -- show 1st tab, aka Overview.  

    var ulCookie = null;
    if(Enthink.Utils) ulCookie = Enthink.Utils.GetCookie(ulID);
    if(ulCookie!=null){
        _newTabs.addClass(_ulClass).children('li:eq('+ulCookie+')').click();
    } else {
        _newTabs.addClass(_ulClass).children().first().click();  
    }
      
    //Here we check to see if we have an anchor, and if so, looks through the tabs created above for a match.
    //This works against gibberish as well, since the line above will default to Overview unless overridden below.
    
    var urlParts=window.location.href.split('#'); //see if we have an anchor to deal with
    if(urlParts.length==2&&urlParts[1]!=''){
        var pageAnchor=urlParts[1].toLowerCase();
        var portfolioFit=["ip","aw","ii","pd","hrr","te"];
        if(jQuery.inArray(pageAnchor,portfolioFit)>-1){
            $("span."+pageAnchor).parent().click();//portfolio fit click
        }else{
            pageAnchor=pageAnchor.replace(/\b([a-z])/gi,function(c){return c.toUpperCase()});
            $("ul.tabs > li.tab > span:contains('"+pageAnchor+"')").click();//fund detail tab click
        }//fund detail
    }//ifanchor
    else{
        $("ul.tabs > li.tab > span:contains('Overview')").click();
        $('#banner_overview').css('display', 'inline-block');
    }//if no anchor, default behaviour            
  };
  
})();
