   var team_tags = new Array();
   var player_tags = new Array();
   var blankRE = /^(\s+)$/;
   var tpAuto = null;
   
   function getTeamPlayerTagArray(tagType) {
     if (tagType == 'team') {
       return team_tags;
     } else if (tagType == 'player') {
       return player_tags;
     }
   }
 
   function addTeamPlayerTag(tagName,tagType,tagId) {
     if (blankRE.test(tagName) || tagName == "" ) {
       alert("Error: you provided a blank tag");
       return;    
     }
     
     if (tagType == "" ) {
       
     }

     tpTags = getTeamPlayerTagArray(tagType);
     if (tpTags.indexOf(tagName) < 0 ) {
       tagBox = document.getElementById('tag_box_'+tagType);
       tagBox.innerHTML += createTeamPlayerTagElement(tagId,tagName,tagType);
       tpTags.push(Array(tagId,tagName));
       prepareTeamPlayerPost();
       document.getElementById("tag_teamplayer").value = "";
       document.getElementById('tag_box_'+tagType).style.display='block';
     } else {
       alert("Error: this tag has already been added.");
     }
   }
 
   function addTeamPlayerTagElement(tagElement) {
     tagInfo = tagElement.id.split("_");
     addTeamPlayerTag(tagElement.innerHTML,tagInfo[0],tagInfo[1]);
   }

   function createTeamPlayerTagElement(tagId,tagName,tagType) {
     return "<div><a href='javascript:;' onClick='removeTeamPlayerTag(\""+tagId+"\",\""+tagType+"\"); return false;'><img style='margin-left:4px;margin-right:4px;margin-top:1px;margin-bottom:1px;' src='<?php echo IMAGE_CDN_URL_C ?>images/dialogs-icon-delete.png'/></a> "+tagName+"</div>";
   }

   function removeTeamPlayerTag(tagId,tagType) {
     tpTags = getTeamPlayerTagArray(tagType);
     
     for (i=0;i<tpTags.length;i++) {
       if (tpTags[i][0] == tagId) {
         tpTags.splice(i,1);
         tagBox = document.getElementById('tag_box_'+tagType)
         tagBox.innerHTML = "";
         for (j=0;j<tpTags.length;j++) {
           tagBox.innerHTML += createTeamPlayerTagElement(tpTags[j][0],tpTags[j][1],tagType);
         }
         
         if (tpTags.length == 0) {
           document.getElementById('tag_box_'+tagType).style.display='none';
         }
         
         prepareTeamPlayerPost();
        return; 
       }
     }
   }

   function js_array_to_php_array(a)
   {
      var a_php = "";
      for (var key=0; key<a.length; key++)
      {
        a_php = a_php + "s:" +
                String(key).length + ":\"" + String(key) + "\";s:" +
                String(a[key]).length + ":\"" + String(a[key]) + "\";";
      }
      if (key > 0)
          a_php = "a:" + key + ":{" + a_php + "}";
      return a_php;
   }

   function prepareTeamPlayerPost() {
        if (document.getElementById('tag_submit_team'))
            document.getElementById('tag_submit_team').value = js_array_to_php_array(team_tags);
        if (document.getElementById('tag_submit_player'))
            document.getElementById('tag_submit_player').value = js_array_to_php_array(player_tags);
   }
   
   function updateTeamPlayerSport(sport_id) {
     tag_teamplayer_sport_id = sport_id;
     if(tpAuto!=null) { // destroy existing autocompleter
       tpAuto.getUpdatedChoices =function(){};
       tpAuto.getAllChoices =function(){};
       tpAuto=null;
     }
     // add new autocompleter for this sport
     tpAuto = new Ajax.Autocompleter("tag_teamplayer","tag_hint_teamplayer","/ajax/tag_autocomplete_teamplayer.php?sport_id="+tag_teamplayer_sport_id, {updateElement: addTeamPlayerTagElement, frequency: 0.3 });
   }
   
   function updatePlayerSport(sport_id) {
     tag_teamplayer_sport_id = sport_id;
     if(tpAuto!=null) { // destroy existing autocompleter
       tpAuto.getUpdatedChoices =function(){};
       tpAuto.getAllChoices =function(){};
       tpAuto=null;
     }
     // add new autocompleter for this sport
     tpAuto = new Ajax.Autocompleter("tag_teamplayer","tag_hint_teamplayer","/ajax/tag_autocomplete_teamplayer.php?player_only=1&sport_id="+tag_teamplayer_sport_id, {updateElement: addTeamPlayerTagElement, frequency: 0.3 });
   }
   
   function clearTeamPlayers() {
     team_tags = new Array();
     player_tags = new Array();
     if (document.getElementById('tag_box_team'))
        document.getElementById('tag_box_team').innerHTML = "";
     if (document.getElementById('tag_box_player'))
        document.getElementById('tag_box_player').innerHTML = "";
     prepareTeamPlayerPost();
   }   
   
   function toggleTeamPlayerTagDisplay(sport_id) {
     var star = document.getElementById('teamplayer_tag_display_star');
     var name = document.getElementById('teamplayer_tag_display_name');
     var box = document.getElementById('teamplayer_tag_display_box');
     
     if (! sport_id) {
       star.style.display = name.style.display = box.style.display = 'none';
     } else {
       star.style.display = name.style.display = box.style.display = 'block';
     }
   }
   
   function toggleUseTeams(sport_id) {
     var useTeams = document.getElementById('useTeams');
     if (! sport_id) {
       useTeams.style.display = 'none';
     } else {
       useTeams.style.display = 'block';
     }
   }
