var trackerIdArray = new Array();

function trackerGridButtons(com,grid){
    if (com=='Удалить'){
        ($('.trSelected',grid).length>0)?deleteTrackers($('.trSelected',grid).id.substr(3),'#trackerGrid'):showAlert('Трекер не выбран.');
    }else if (com=='Добавить'){
        $('#addTracker').dialog('open');
        addTracker('#addTracker');
    }
}
function getPointsByTimer(){
    $.ajax({
        url: 'tracker/getPointsById',
        dataType: 'json',
        type: "POST",
        data:[{name:'ids',value:trackerIdArray}],
        success:function(data){
            currentGPSData.push(data);
            $.each(data,function(i,val){
                drawBaloon(yamap,val.lon,val.lat,val,val.id);
                if(opennedTrackerInfo){
                    getCurrentGPSData(opennedTrackerInfo);
                }
            });
        }
    });
    setTimeout('getPointsByTimer()',(Number($.settings.reload_limit)||30)*1000);
}

function trackerGridInit(){
    $("#trackerGrid").flexigrid({
        url: "tracker/getAllTrackers",
        dataType: 'json',
        colModel : [
            {display: 'S/N', name : 'tracker_id', width : 35, sortable : true, align: 'center'},
            {display: 'Название', name : 'short_name', width : 200, sortable : true, align: 'left'},
            {display: 'Действия', width : 60, sortable : true, align: 'left'}
        ],
        searchitems : [
            {display: 'S/N', name : 'tracker_id'},
            {display: 'Название', name : 'short_name', isdefault: true}
        ],
        buttons : [
            {name: 'Все объекты', onpress: function(com,grid){setCenterByPoints(yamap,yabaloons.leftBottom,yabaloons.rightTop);}},
            {separator: true},
            {name: 'Добавить', bclass: 'add', onpress : trackerGridButtons},
            {name: 'Удалить', bclass: 'delete', onpress : trackerGridButtons}
        ],
        singleSelect:true,
        sortname: "short_name",
        sortorder: "asc",
        usepager: true,
        resizable:false,
        nomsg:'Добавте трекеры.',
        useRp: true,
        rp: Math.floor(($(document).height()-178)/24),
        width: 360,
        height: ($(document.body).innerHeight() - 184),
        onSuccess: function(data){
            getTrackersPoints(data);
        }
    });
    setTimeout('getPointsByTimer()',30000);
    $('.add').attr('title','Добавить трекер в список объектов');
    $('.delete').attr('title','Удалить трекер из списка объектов');
}
function getTrackersPoints(data){
    $.trackers = data.points;
    $.each($("#trackerGrid tr"),function(i,val){
        var currentTrackerData = "";
        $.each(data.points,function(iter,value){
            if(value.id == $(val).attr("id").substr(3)){
                currentTrackerData = 'trackerInfo';
            }
        });
        $(val).bind('dblclick',function(){
            if(yalines[$(val).attr("id").substr(3)]){
                drawLine(yamap,[{ 
                    name : "ID", 
                    value : $(val).attr("id").substr(3)
                    }],$($(val).children().get(1)).children().html());
            }else{
                yamap.setCenter(yabaloons[$(val).attr("id").substr(3)].point.getGeoPoint());
                yabaloons[$(val).attr("id").substr(3)].point.openBalloon();
            }
        });
        $(':nth-child(3)',val).css('width','70px');
        if(currentTrackerData != ''){
            $(':nth-child(3)',val).html("<span style='float:left; margin: 0 5px;' title='Показать окно статистики трекера "+$(val).attr("id").substr(3)+"' class='ui-state-default ui-corner-all'><a href='#' style='display:block;' onclick='initInformationWindow("+$(val).attr("id").substr(3)
                +",\""+$($(val).children().get(1)).children().html()+"\");' ><span style='padding 2px;' class='ui-icon ui-icon-clipboard'></span></a></span><span title='Показать трекер "
                +$(val).attr("id").substr(3)+" на карте' style='float:right;'><a onclick='showTrackerById("+$(val).attr("id").substr(3)
                +",yamap)' href='#'><img src='images/eath.png' /></a></span>");
        }else{
            $(':nth-child(3)',val).append("<span title=\"Нет информации по трекеру "+$(val).attr("id").substr(3)+"\" class='ui-state-default ui-corner-all'><span class='ui-icon ui-icon-alert'></span></span>");
        }
    });
    currentGPSData.push(data.points);

    var left = 0,top = 0,right = 0, bottom = 0;
    for(var iter in data.points){
        trackerIdArray.push(data.points[iter].id);
        if(!data.points[iter].lat && !data.points[iter].lon)continue;
        drawBaloon(yamap,data.points[iter].lon,data.points[iter].lat,data.points[iter],data.points[iter].id,data.points[iter].short_name);
        if(left == 0 && top == 0 && right == 0 && bottom == 0){
            top = data.points[iter].lat;
            bottom = data.points[iter].lat;
            left = data.points[iter].lon;
            right = data.points[iter].lon;
        }
        if(data.points[iter].lat < top)top = data.points[iter].lat;
        if(data.points[iter].lat > bottom)bottom = data.points[iter].lat;
        if(data.points[iter].lon < right)right = data.points[iter].lon;
        if(data.points[iter].lon > left)left = data.points[iter].lon;
    }
    yabaloons.leftBottom = new YMaps.Point(left, bottom);
    yabaloons.rightTop = new YMaps.Point(right,top);
    if(data.points.length)
        $(document).bind('onMapRedraw',function(){
            setCenterByPoints(yamap,yabaloons.leftBottom,yabaloons.rightTop)
        });
}

