
/* Optional: Temporarily hide the "tabber" class so it does not "flash"
   on the page as plain HTML. After tabber runs, the class is changed
   to "tabberlive" and it will appear. */

document.write('<style type="text/css">.tabber{display:none;}<\/style>');
var MatchID = -1;
var SFCAUser = '';
var SFCADivision = -1;
var SFCATeam = -1;
var CurrentIndex = 0;
var CurrentTabber = null;
var CurrentDiv = null;
var playersTree = null;
var now = new Date();
var tabberOptions = {
  'onClick': function(argsObj) {

    if (SFCAUser.length == 0) {
      return;
    }

    var t = argsObj.tabber; /* Tabber object */
    var i = argsObj.index; /* Which tab was clicked (0..n) */

    CurrentDiv = this.tabs[i].div; /* The tab content div */

    /* Display a loading message */
    CurrentDiv.innerHTML = "<p>Please wait...<\/p>";

    /* Save current Tab. */
    CurrentIndex = i;
    CurrentTabber = t;

    if ((i > 0) && (i < 5) && (MatchID == -1)) {
      CurrentDiv.innerHTML = "<p>Select a match from the My Matches tab first.<\/p>";
      
      return;
    }

    /* Fetch some html depending on which tab was clicked */
    var url;
    var pars = 'mid=' + MatchID;
    
    switch (i) {
    case 0:
      url = '/cgi/schedule.cgi';
      pars = 'team=' + SFCATeam;
      break;
    case 1:
      url = '/cgi/summary.cgi';
      break;
    case 2:
      url = '/cgi/innings.cgi';
      pars = pars + '&innings=1';
      break;
    case 3:
      url = '/cgi/innings.cgi';
      pars = pars + '&innings=2';
      break;
    case 4:
      url = '/cgi/scorecard.cgi';
      pars = pars + '&tab=' + i + '&team=' + SFCATeam;
      break;
    case 5:
      url = '/cgi/statistics.cgi';
      pars = 'team=' + SFCATeam;
      break;
    case 6:
      url = '/cgi/register.cgi';
      break;
    case 7:
      url = '/cgi/add-player.cgi';
      pars = pars + '&division=' + SFCADivision + '&team=' + SFCATeam;
      break;
    case 8:
      url = '/cgi/add-match.cgi';
      pars = 'mid=-1';
      break;
    case 9:
      url = '/cgi/add-match.cgi';
      var m = prompt('Enter Match ID:', MatchID);
      if (m == null) {
	return;
      }
      MatchID = m;
      pars = 'mid=' + MatchID;
      break;
    case 10:
      url = '/cgi/points.cgi';
      pars = 'year=' + now.getFullYear() + '&division=' + SFCADivision;
      break;
    }

    var myAjax = new Ajax.Updater(CurrentDiv, url,
				  {method:'get',parameters:pars,evalScripts:true});
  },

  'onLoad': function(argsObj) {
    /* Load the current tab */
    argsObj.index = CurrentIndex;
    this.onClick(argsObj);
  },

  'onRefresh': function(argsObj) {
    /* Refresh current tab. */
    argsObj.index = CurrentIndex;
    this.onClick(argsObj);
  }
}

  function ajaxPost(fm, name, params)
{
  var cgi = '/cgi/save-form.cgi';
  var tobj = {'tabber':CurrentTabber,
	      'index':CurrentIndex,
	      'event':window.event};
  var pars;

  if (params) {
    pars = params;
  } else {
    pars = $(fm).serialize() + '&form=' + fm.name;
  }

  var savedInnerHTML = CurrentDiv.innerHTML = '';
  var optobj =  {
    'method': 'post',
    'parameters': pars,
    'onSuccess': function(transport) {
      alert(name + ' saved.');
      CurrentTabber.onRefresh(tobj);
    },
    'onFailure': function() {
      alert(name + ' not saved.');
      CurrentDiv.innerHTML = savedInnerHTML;
    }
  };

  CurrentDiv.innerHTML = '';

  var myAjax = new Ajax.Request(cgi, optobj);
}

function ajaxUpdate(fm, dname, cgi)
{
  var pars = $(fm).serialize() + '&form=' + fm.name;

  var optobj = {
    'method' : 'post',
    'parameters' : pars
  };
  var div = $(dname);

  if (cgi == null) {
    cgi = '/cgi/save-form.cgi';
  }

  var myAjax = new Ajax.Updater(div, cgi, optobj);
}

function setMatchID(mid)
{
  MatchID = mid;
}

function setUser(user, team)
{
  SFCAUser = user;
  SFCATeam = team;
}

function getPlayers(tm, div)
{
  var team = tm.value;

  if (team == -1) {
    CurrentDiv.innerHTML = '';

    return true;
  }

  var division = div.value;

  if (division == -1) {
    CurrentDiv.innerHTML = '';

    return true;
  }

  SFCATeam = team;
  SFCADivision = division;

  var optobj = {
    'method' : 'post',
    'parameters' : 'team=' + team + '&division=' + division
  };

  var myAjax = new Ajax.Updater(CurrentDiv, '/cgi/add-player.cgi', optobj);

  return true;
}

function setDivision(div, tree)
{
  var division = div.value;

  if (division == -1) {
    return true;
  }
 
  SFCADivision = division;

  var optobj = {
    'method' : 'post',
    'parameters' : 'division=' + division
  };

  if (div.name == 'player_div') {
    var myAjax = new Ajax.Updater(CurrentDiv, '/cgi/add-player.cgi', optobj);
  } else {
    var myAjax = new Ajax.Updater(CurrentDiv, '/cgi/add-match.cgi', optobj);
  }
  return true;
}

function loadXMLTree(div, query, checkBoxes, oldTree)
{
  if (oldTree != null) {
    oldTree.destructor();
  }

  query = '/cgi/xml.cgi?' + query;

  // alert('Loading ' + div + '<--' + query);

  var tree = new dhtmlXTreeObject(div, "100%", "100%", 0);

  tree.setSkin('dhx_skyblue');
  tree.setImagePath("/codebase/imgs/csh_bluebooks/");
  tree.enableCheckBoxes(checkBoxes, checkBoxes);
  tree.setXMLAutoLoading(query);
  tree.loadXML(query);

  return tree;
}

function assignSelectedPlayers(players, teams) {
  var playerList = '';
  var teamId = teams.getSelectedItemId();
  var teamName = '';
  var idArray = teamId.split('_');

  if (idArray.length > 0) {
    teamId = idArray[0];

    if (teamId > 0) {
      teamName = teams.getItemText(teamId);
    } else {
      alert('No team selected on right side!');

      return false;
    }
  }

  var iDs = players.getAllChecked();

  if (iDs.length == 0) {
    iDs = players.getSelectedItemId();
  }

  idArray = iDs.split(',');

  if (iDs.length > 0 && idArray.length > 0) {
    var names = "Add these players to " + teamName + ":\n";

    for (i = 0; i < idArray.length; i++) {
      var values = idArray[i].split('_');
      var name = players.getItemText(idArray[i]);
      
      // alert(idArray[i] + '-->' + values[0] + '/' + values[1] + '-->' + name);

      names = names + name + "\n";
      playerList = values[1] + ',' + playerList;
    }

    if (confirm(names)) {
      ajaxPost(null, teamName, 'form=team&team=' + teamId + '&players=' + playerList + '&active=1');

      for (i = 0; i < idArray.length; i++) {
	var values = idArray[i].split('_');

	teams.insertNewChild(teamId, teamId + '_' + values[1], players.getItemText(idArray[i]));
      }

      players.setSubChecked('0', false);
    }
  } else {
    alert('No players selected from left side.');

    return false;
  }

  return true;
}

function removeSelectedPlayers(teams)
{
  var playerList = '';
  var iDs = teams.getAllUnchecked();

  if (iDs.length == 0) {
    iDs = teams.getSelectedItemId();
  }

  idArray = iDs.split(',');

  if (iDs.length > 0 && idArray.length > 0) {
    var names = "Remove these players:\n";

    for (i = 0; i < idArray.length; i++) {
      var values = idArray[i].split('_');

      if (values.length == 2) {
	var name = teams.getItemText(idArray[i]);
	var team = teams.getItemText(values[0]);

	// alert(idArray[i] + '-->' + values[0] + '/' + values[1] + '-->' + name);
	
	names = names + name + ' from ' + team + "\n";
	playerList = idArray[i] + ',' + playerList;
      }
    }

    if (confirm(names)) {
      ajaxPost(null, "Unregister", 'form=team&team=0&players=' + playerList + '&active=0');
    }
  } else {
    alert('No players unchecked on right side.');

    return false;
  }

  return true;
}

function filterWaivers(txt, tree)
{
  if (txt.length > 0) {
    tree.findItem(txt, false, true)
  } else {
    
  }
}

