function UCLA_teamFocus(key) {
   var elId = 'ucla_scroll_container_' + key;
   
   var highlightEl = null;
   
   $$('#' + elId + ' tr.ucla_standings_highlight').each(function(el) {
      if (null != highlightEl) {
         return;
      }
      highlightEl = el;
   });

   if (null != highlightEl) {
      
      if (highlightEl.getPosition().y - $(elId).getPosition().y > $(elId).getSize().size.y - highlightEl.getSize().size.y) {
         var scroll = new Fx.Scroll(elId, {
            wait: false,
            duration: 400,
            offset: {'x': -0, 'y': 0},
            transition: Fx.Transitions.Quad.easeInOut
         });
         scroll.toElement(highlightEl);
      }
   }
}


function UCLA_showStandings(key) {
   if (UCLA_timers[key]) {
      clearInterval(UCLA_timers[key]);
   }
   
   var language = UCLA_settings[key].language;
   var team = UCLA_settings[key].team;
   var contest = UCLA_settings[key].contest;
   var updateElement = 'ucla_module_inner_' + key;
   var url = "./index.php?option=com_ucla&view=standings";
   url += '&ht=' + encodeURIComponent(team);
   url += '&c=' + encodeURIComponent(contest);
   url += '&key=' + encodeURIComponent(key);
   url += '&l=' + encodeURIComponent(language);
   
   var options = {encoding: 'UTF-8', method: 'get'};
   
   options.onComplete = function(jsonObj) {
      if (jsonObj.errno || jsonObj.error) {
         $(updateElement).innerHTML = jsonObj.error;
         return false;
      }
      UCLA_showLoader(key, 0);
      $(updateElement).innerHTML = jsonObj.html;
      UCLA_teamFocus(key);
//      UCLA_showCalendar(key, false);
//      UCLA_showMatchToolbar(key, false);
      
   }
   options.onRequest = function() {
      UCLA_showLoader(key, 1);
   }
   
   
   var json = new Json.Remote(url, options);
   json.send();
}



function UCLA_changeContest(key, contest) {
   UCLA_settings[key].contest = contest;
   
   var ward = '=';

   UCLA_settings[key].date1 = UCLA_settings[key].date3;
   UCLA_settings[key].date2 = UCLA_settings[key].date4;
   UCLA_showMatches(key, ward);
}


function UCLA_matchFocus(key) {
   var elId = 'ucla_scroll_container_' + key;
   
   if (null != UCLA_settings[key].scrollTop) {
      $(elId).scrollTop = UCLA_settings[key].scrollTop;
      UCLA_settings[key].scrollTop = null;
      return;
   }
   
   var matchEl = null;
   
   $$('#' + elId + ' div.ucla_match_highlight').each(function(el) {
      if (null != matchEl) {
         return;
      }
      matchEl = el;
   });

   
   if (null != matchEl) {
      var scroll = new Fx.Scroll(elId, {
         wait: false,
         duration: 500,
         offset: {'x': -0, 'y': -0},
         transition: Fx.Transitions.Quad.easeInOut
      });
      scroll.toElement(matchEl);
   }
}







function UCLA_onArr(key, where) {
   UCLA_showMatches(key, where);
}


function UCLA_showCalendar(key, flag) {
   var elId = 'ucla_calendar_' + key;
   if (flag) {
      $(elId).setStyle('display', 'block');
   } else {
      $(elId).setStyle('display', 'none');
   }
}

function UCLA_setMonthDay(key, t1, t2, fixture) {
   
   var date1 = new Date();
   var date2 = new Date();
         
   date1.setTime(t1 * 1000);
   date2.setTime(t2 * 1000);
   
   UCLA_settings[key].date3 = UCLA_settings[key].date1;
   UCLA_settings[key].date4 = UCLA_settings[key].date2;
   
   UCLA_settings[key].date1 = date1;
   UCLA_settings[key].date2 = date2;
   
/*   
   var elName = 'ucla_monthday_picker_' + key;
   
   $(elName).innerHTML = UCLA_monthes[date1.getMonth()] + "&nbsp;" + date1.getDate();
   if (date2.getMonth() + date2.getDate() != date1.getMonth() + date1.getDate()) {
      $(elName).innerHTML += '&nbsp;&nbsp;-&nbsp;&nbsp;';
      $(elName).innerHTML += UCLA_monthes[date2.getMonth()] + "&nbsp;" + date2.getDate();
   }
   
   if (fixture > 0) {
      $(elName).innerHTML += '<br>&nbsp;&nbsp;(' + UCLA_lang['fixture'] + '' + fixture + ')';
   }
*/   
}

function UCLA_showMatchToolbar(key, flag) {
   var elId = 'ucla_match_toolbar_' + key;
   
   if (flag) {
      $(elId).setStyle('display', 'block');
   } else {
      $(elId).setStyle('display', 'none');
   }
}


function UCLA_showLoader(key, flag) {
   var innerElId = 'ucla_module_inner_' + key;
   var outerElId = 'ucla_module_outer_' + key;

   
   $(innerElId).innerHTML = '';
   
   
   var loader = new Element('div');
   if (flag) {
      var size = $(innerElId).getSize().size;
      
      loader.setStyle('width', size.x + 'px');
      loader.setStyle('height','50px');
      
      loader.setStyle('position', 'absolute');
      
      loader.setStyle('display', 'block');
      loader.setOpacity('1');
      
      loader.setStyle('top', (size.y / 2) + 'px');

      loader.setProperty('id','ucla_module_outer_' + key);

      loader.setProperty('class','ucla_loader');
      
//      $(innerElId).setOpacity('0.1');
      loader.setOpacity('1');
      
      $(innerElId).appendChild(loader);      
      
   } else {
      $(innerElId).setOpacity('1');
   }
}

var UCLA_timers = new Array();
function UCLA_loadMatches(key) {
   if (UCLA_timers[key]) {
      clearInterval(UCLA_timers[key]);
   }
   
   var language = UCLA_settings[key].language;
   var ward = '=';
   var date = new Date();
   
   if (arguments.length > 1) {
      switch (arguments[1]) {
         case '>':
            date = UCLA_settings[key].date2;
            ward = '>';
            break;
            
         case '<':
            date = UCLA_settings[key].date1;
            ward = '<';
            break;
      }
   }
   
   
   var team = UCLA_settings[key].team;
   var contest = UCLA_settings[key].contest;
   
   var updateElement = 'ucla_module_inner_' + key;
   
   var url = "./index.php?option=com_ucla&view=matches&d=" + (date.getTime() / 1000);
   url += '&ht=' + encodeURIComponent(team);
   url += '&c=' + encodeURIComponent(contest);
   url += '&key=' + encodeURIComponent(key);
   url += '&w=' + encodeURIComponent(ward);
   url += '&l=' + encodeURIComponent(language);
   
   
   var options = {encoding: 'UTF-8', method: 'get'};
   
   options.onComplete = function(jsonObj) {
      if (jsonObj.errno || jsonObj.error) {
         $(updateElement).innerHTML = jsonObj.error;
         return false;
      }
      UCLA_settings[key].ward = ward;
      UCLA_showLoader(key, 0);
      
      $(updateElement).innerHTML = jsonObj.html;
      UCLA_matchFocus(key);
      UCLA_setMonthDay(key, jsonObj.t1, jsonObj.t2, jsonObj.fixture);
   }
   
   options.onRequest = function() {
      UCLA_showLoader(key, 1);
   }
   
   
   var json = new Json.Remote(url, options);
   json.send();
}


function UCLA_showMatches(key) {
   var ward = '=';
   if (arguments.length > 1) {
      ward = arguments[1];
   }
   UCLA_loadMatches(key, ward);
}