
function stringToDate(string) {
    var matches;
    if (matches = string.match(/^(\d{4,4})-(\d{2,2})-(\d{2,2}) (\d{2,2}):(\d{2,2}):(\d{2,2})$/)) {
       return new Date(matches[1], matches[2] - 1, matches[3], matches[4], matches[5], matches[6]);
    } else {
       return null;
    };
}

function showHideLiveItem(liveId){
    var divId = "#snatch_"+liveId.toString();
    AjaxGetData_async('GenericHandlers/LiveGameHandler.ashx?req=expanditem&liveid=' + liveId.toString(), ajax_expandItem);
    
    if( $(divId).css("display") == "none" ){
        $(divId).show();
        $(divId).css("display", "table");
        $("#arrow_"+liveId.toString()).html("<img src='images/live/arrow_open.png'/>");
        }
    else{
        $(divId).hide();
        $("#arrow_"+liveId.toString()).html("<img src='images/live/arrow_close.png'/>");
        }
    }

function starLiveItem(liveId, liveGameId){
    //AjaxGetData_async('GenericHandlers/LiveGameHandler.ashx?req=staritem&liveid=' + liveId.toString() + "&livegid=" + liveGameId.toString(), ajax_starItem);
    }
    
var _timer_intervalId = 0;
var _loopSeconds = 0;
var _serverTime = "";
var _serverDateTimeUsed = new Date();

function refreshLiveTimesPerSecond(){
    _loopSeconds = 0;
    if( _timer_intervalId > 0 ){
        clearInterval(_timer_intervalId);
        _timer_intervalId = 0;
        }

    refreshLiveTimesPerSecond_timer();  
    _timer_intervalId = setInterval("refreshLiveTimesPerSecond_timer();", 1000);
    }
    
function getLiveGameIds(){
    var liveElements = document.getElementsByName("liveElem");
    var loop = 0;
    var arrLiveIds = new Array();
    
    while( loop < liveElements.length ){
        arrLiveIds[arrLiveIds.length] = parseInt(liveElements[loop].id);
        loop ++;
        }
    
    return arrLiveIds;
    }

function refreshLiveTimesPerSecond_timer(){
    var liveElements = document.getElementsByName("liveElem");
    var loop = 0;
    var liveId = 0;
    
    while( loop < liveElements.length ){
        liveId = parseInt(liveElements[loop].id);
        refreshLiveTime(liveId);
        loop ++;
        }
        
    _loopSeconds += 1; // Increase loop of seconds.
}
    
function refreshLiveTime(liveId){
    var bStarted = $("#started_"+liveId.toString()).html();
    if( bStarted != "True" && bStarted != "1" ) return;
    var bTick = "True";//$("#tick_"+liveId.toString()).html();
    var tmServerNow = null;
    
    if( _serverTime != "" )
        tmServerNow = stringToDate(_serverTime);
    else
        tmServerNow = stringToDate($("#server_time").html().toString());
        
    if( _serverDateTimeUsed.getTime() != tmServerNow.getTime())
    {
        _serverDateTimeUsed = tmServerNow;
        _loopSeconds = 0;
    }
        
    var tmStartTime = stringToDate($("#start_time_"+liveId.toString()).html().toString());
    var tmEndTime = stringToDate($("#end_time_"+liveId.toString()).html().toString());
   
    var tmAdd = $("#time_add_"+liveId.toString()).html();
    var sTimeElemName = $("#time_elem_name_"+liveId.toString()).html();

    if( sTimeElemName == null || sTimeElemName.length == 0 )  return;
    if( tmServerNow == null || tmStartTime == null) {
        $("#"+sTimeElemName).html("");
        return;
        }
        
    var hoursAdd = parseInt(tmAdd.substr(0, 2));
    var minutesAdd = parseInt(tmAdd.substr(3, 2));
    var secondsAdd = parseInt(tmAdd.substr(5, 2));
    if( (bTick == "True" || bTick == "1") && tmEndTime == null ){
        tmStartTime.setTime ( tmStartTime.getTime() - minutesAdd*60*1000 - _loopSeconds*1000);
        }
    else
        tmStartTime.setTime ( tmStartTime.getTime() - minutesAdd*60*1000 /*- _loopSeconds*1000*/);
        
    var tmLiveDurationSec = 0;
    var tmLiveDurationMin = 0;
        
    if( tmEndTime == null ){
        tmLiveDurationSec = ((tmServerNow.getTime() - tmStartTime.getTime()) / 1000) % 60;
        tmLiveDurationMin = Math.floor(((tmServerNow.getTime() - tmStartTime.getTime()) / 1000) / 60);
        }
    else{
        tmLiveDurationSec = ((tmEndTime.getTime() - tmStartTime.getTime()) / 1000) % 60;
        tmLiveDurationMin = Math.floor(((tmEndTime.getTime() - tmStartTime.getTime()) / 1000) / 60);
        }
            
    var minutes = tmLiveDurationMin;
    var seconds = tmLiveDurationSec;
    var zeroMinutes = "";
    var zeroSeconds = "";
    
    if( minutes < 10 )
        zeroMinutes = "0";
    if( seconds < 10 )
        zeroSeconds = "0";

    $("#"+sTimeElemName).html(String.format("{0}{1}:{2}{3}", zeroMinutes, minutes, zeroSeconds, seconds));
    }
