var FilterListsFrame = {
	Name: "FilterListsFrame",
  Frames: new Array(),
	
  InitFrame: function() {
 	  jQuery("#FilterListsFrameTabs").tabs();	
 	  jQuery("#FilterListsFrameTabs").bind('tabsshow', FilterListsFrame.HandleTabSelect);	
		
    // Register Frames
		FilterListsFrame.Frames[0] = AwlFrame;
		FilterListsFrame.Frames[1] = AblFrame;
		FilterListsFrame.Frames[2] = DwlFrame;
		FilterListsFrame.Frames[3] = DblFrame;
		FilterListsFrame.Frames[4] = SwlFrame;
		FilterListsFrame.Frames[5] = SblFrame;

		// Initialize Frames
		for (x in FilterListsFrame.Frames)	{
		  if (FilterListsFrame.Frames[x].Name != null)
        FilterListsFrame.Frames[x].InitFrame();
		}
  },
	
  ShowFrame: function() {
	  var selectedTab = jQuery("#FilterListsFrameTabs").tabs('option', 'selected');
	  if (FilterListsFrame.Frames.length > selectedTab) {
      FilterListsFrame.Frames[selectedTab].ShowFrame();	
		}
		jQuery('#FilterListsFrame').show();
    FilterListsFrame.OnFrameResize();
  },

  HideFrame: function() {
    jQuery('#FilterListsFrame').hide();
  },
	
	OnLogoff: function() {
		for (x in FilterListsFrame.Frames)	{
		  if (FilterListsFrame.Frames[x].Name != null)
        FilterListsFrame.Frames[x].OnLogoff();
		}
	},
	
  OnFrameResize: function() {
	  var selectedTab = jQuery("#FilterListsFrameTabs").tabs('option', 'selected');
	  if (FilterListsFrame.Frames.length > selectedTab) {
  		FilterListsFrame.Frames[selectedTab].OnFrameResize();	
		}	
  },
	
	HandleTabSelect: function(event, ui) {
	  if (FilterListsFrame.Frames.length > ui.index) {
      FilterListsFrame.Frames[ui.index].ShowFrame();	
		}	
	},
	
	ApplyGroupPolicy: function() {
	  var pol = Session.GroupPolicy.SpamfinderFilterListsRules;
    var tabs = new Array();
		var i = 0;
		
	  if (pol.DisableAWL && pol.DisableABL && pol.DisableDWL && pol.DisableDBL && pol.DisableSWL && pol.DisableSBL) {
		  jQuery("#UserSettingsFrameTabs").tabs('option', 'selected', 0);
		  jQuery("#UserSettingsFrameTabs").data('disabled.tabs', [2]);
		} else {
			jQuery("#UserSettingsFrameTabs").data('disabled.tabs', tabs);
			
			if (pol.DisableAWL) { tabs[i] = 0; i++; }
			if (pol.DisableABL) { tabs[i] = 1; i++; }
			if (pol.DisableDWL) { tabs[i] = 2; i++; }
			if (pol.DisableDBL) { tabs[i] = 3; i++; }
			if (pol.DisableSWL) { tabs[i] = 4; i++; }
			if (pol.DisableSBL) { tabs[i] = 5; i++; }
			
			// Select the first available tab
			for(i=0 ; i < FilterListsFrame.Frames.length ; i++) {
			  if (tabs.indexOf(i) < 0) {
	        jQuery("#FilterListsFrameTabs").tabs('option', 'selected', i);			
				  break;
				}
			}
			
			// Disable tabs
			jQuery("#FilterListsFrameTabs").data('disabled.tabs', tabs);
		}
	}
}
