function RTSA_teamFocus(key) {
   var elId = 'rtsa_scroll_container_' + key;
   
   var highlightEl = null;
   
   $$('#' + elId + ' tr.rtsa_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 RTSA_showStandings(key) {
   if (RTSA_timers[key]) {
      clearInterval(RTSA_timers[key]);
   }
   
   var language = RTSA_settings[key].language;
   var team = RTSA_settings[key].team;
   var contest = RTSA_settings[key].contest;
   var updateElement = 'rtsa_module_inner_' + key;
   var url = "./index.php?option=com_rtsa&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;
      }
      RTSA_showLoader(key, 0);
      $(updateElement).innerHTML = jsonObj.html;
      RTSA_teamFocus(key);
//      RTSA_showCalendar(key, false);
//      RTSA_showMatchToolbar(key, false);
      
   }
   options.onRequest = function() {
      RTSA_showLoader(key, 1);
   }
   
   
   var json = new Json.Remote(url, options);
   json.send();
}



function RTSA_changeContest(key, contest) {
   RTSA_settings[key].contest = contest;
   
   var ward = '=';

   RTSA_settings[key].date1 = RTSA_settings[key].date3;
   RTSA_settings[key].date2 = RTSA_settings[key].date4;
   RTSA_showMatches(key, ward);
}


function RTSA_matchFocus(key) {
   var elId = 'rtsa_scroll_container_' + key;
   
   if (null != RTSA_settings[key].scrollTop) {
      $(elId).scrollTop = RTSA_settings[key].scrollTop;
      RTSA_settings[key].scrollTop = null;
      return;
   }
   
   var matchEl = null;
   
   $$('#' + elId + ' div.rtsa_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 RTSA_onArr(key, where) {
   RTSA_showMatches(key, where);
}


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

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

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


function RTSA_showLoader(key, flag) {
   var innerElId = 'rtsa_module_inner_' + key;
   var outerElId = 'rtsa_module_outer_' + key;

   
   $(innerElId).innerHTML = '';
   
   
   var loader = new Element('span');
   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 - 80) + 'px');

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

      loader.setProperty('class','rtsa_loader');
      
//      $(innerElId).setOpacity('0.1');
//      loader.innerHTML = 'Loading...';
      $(innerElId).appendChild(loader);      
      
   } else {
      $(innerElId).setOpacity('1');
   }
}

var RTSA_timers = new Array();
function RTSA_loadMatches(key) {
   if (RTSA_timers[key]) {
      clearInterval(RTSA_timers[key]);
   }
   
   var language = RTSA_settings[key].language;
   var ward = '=';
   var date = new Date();
   
   if (arguments.length > 1) {
      switch (arguments[1]) {
         case '>':
            date = RTSA_settings[key].date2;
            ward = '>';
            break;
            
         case '<':
            date = RTSA_settings[key].date1;
            ward = '<';
            break;
      }
   }
   
   
   var team = RTSA_settings[key].team;
   var contest = RTSA_settings[key].contest;
   
   var updateElement = 'rtsa_module_inner_' + key;
   
   var url = "./index.php?option=com_rtsa&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;
      }
      RTSA_settings[key].ward = ward;
      RTSA_showLoader(key, 0);
      
      $(updateElement).innerHTML = jsonObj.html;
      RTSA_matchFocus(key);
      RTSA_setMonthDay(key, jsonObj.t1, jsonObj.t2, jsonObj.fixture);
   }
   
   options.onRequest = function() {
      RTSA_showLoader(key, 1);
   }
   
   
   var json = new Json.Remote(url, options);
   json.send();
}


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