function addTrackerUser(grid,tracker_id){
    $('#addUserTrackerWindow').dialog('open');
    $('#addUserTrackerWindow').unbind('dialogclose');
    $('#addUserTrackerWindow').bind('dialogclose',function(){
        if($('#addUserTrackerGrid .trSelected').length == 0){
            showAlert('Пользователь не выбран');
            return;
        }
        var name = '';
        for(i in $.trackers.points){
            if($.trackers.points[i].id == tracker_id){
                name = $.trackers.points[i].short_name;
            }
        }
        $.ajax({
            url:'tracker/add',
            data:[
                {name:'user_id',value:$('#addUserTrackerGrid .trSelected').attr('id').substr(3)},
                {name:'name',value:name},
                {name:'tracker_id',value:tracker_id}
            ],
            dataType:'json',
            type: 'POST',
            success: function(responseText, statusText){
                $("#addTrackerError").css('display','none');
                if(responseText.error){
                    $("#addTrackerError").css('display','');
                    $("#warn").html(responseText.error);
                }else{
                    $("#addTrackerError").css('display','none');
                    $('#addTracker').dialog("close");
                }
                $(grid).flexReload();
            }
        });
    });
}
function trackerUserButtons(com,grid){
    if (com=='Удалить'){
        ($('.trSelected',grid).length>0)?deleteTrackers($('#dialog').dialog("option","title").substr(28),'#trackerUsers',$('.trSelected',grid).attr('id').substr(3)):showAlert('Трекер не выбран.');//TODO дописать
    }else if (com=='Добавить'){
        addTrackerUser('#trackerUsers',$('#dialog').dialog("option","title").substr(28));
    }
}
$(function(){
    $('#timeForm input:button').click(function(){
        if($('#from').val() != '' || $('#to').val() != ''){
            $(this).button('disable');
            $.cookie("from"+$('#dialog').dialog("option", "title" ).substr('Последнее состояние объекта '.length), ($('#from').datepicker( "getDate" ).getTime()/1000));
            $.cookie("to"+$('#dialog').dialog("option", "title" ).substr('Последнее состояние объекта '.length), ($('#to').datepicker( "getDate" ).getTime()/1000));
            drawLine(yamap,[{
                name : 'ID',
                value : $('#dialog').dialog("option", "title" ).substr('Последнее состояние объекта '.length)
            }],name,true);
        }else{
            showAlert('Заполните оба поля.');
        }
    });
    $('#dialog').dialog({
        autoOpen: false,
        width: 600,
        resizable: false,
        show: 'clip',
        hide: 'clip',
        minHeight: 500,
        position:'center'
    });
    if($("#trackerUsers").length){
        addUserTrackerWindow =  document.createElement('div');
        addUserTrackerWindow.id = 'addUserTrackerWindow';
        addUserTrackerGrid = document.createElement('div');
        addUserTrackerGrid.id = 'addUserTrackerGrid';
        addUserTrackerWindow.appendChild(addUserTrackerGrid);
        
        $(addUserTrackerWindow).dialog({
            autoOpen:false,
            resizable: false,
            title:'Добавить пользователя к трекеру',
            width: 500,
            height: 500,
            buttons:{
                "Добавить": function() {
                    $('.trSelected',addUserTrackerGrid).attr('id').substr(3);
                    $('#addUserTrackerWindow').dialog('close');
                }
            }
        });
        $(addUserTrackerGrid).flexigrid({
            url: "user/getAllUsers",
            dataType: 'json',
            colModel : [
                {display: 'ID', name : 'u.user_id', width : 35, sortable : true, align: 'center'},
                {display: 'Имя', name : 'u.name', width : 150, sortable : true, align: 'left'},
                {display: 'E-Mail', name : 'u.email', width :150, sortable : true, align: 'left'}
            ],
            searchitems : [
                {display: 'Имя', name : 'u.name', isdefault: true},
                {display: 'ID', name : 'u.user_id'}
            ],
            sortname: "u.user_id",
            sortorder: "asc",
            height:350,
            usepager: true,
            resizable:false,
            nomsg:'Добавте прользователей.',
            useRp: true,
            rp: 16
        });
        $("#trackerUsers").flexigrid({
            dataType: 'json',
            colModel : [
            {
                display: 'ID',
                name : 'id',
                width : 120,
                sortable : true,
                align: 'left'
            },{
                display: 'Имя',
                name : 'name',
                width : 120,
                sortable : true,
                align: 'left'
            },{
                display: 'E-mail',
                name : 'email',
                width : 120,
                sortable : true,
                align: 'left'
            }],
            buttons:[
                {name: 'Добавить', bclass: 'add', onpress : trackerUserButtons},
                {name: 'Удалить', bclass: 'delete', onpress : trackerUserButtons}
            ],
            nomsg:'У трекера нет пользователей',
            useRp: true,
            rp: 16,
            height: 420
        })
    }
    $("#connectionStatistics").flexigrid({
        nomsg:'Трекер с сервером не соеденялся',
        dataType: 'json',
        colModel : [
        {
            display: 'ID',
            name : 'id',
            width : 35,
            sortable : true,
            align: 'center',
            hide:true
        },

        {
            display: 'Начало сессии',
            name : 'session_begin',
            width : 110,
            sortable : true,
            align: 'left'
        },

        {
            display: 'Окончание сессии',
            name : 'session_end',
            width : 130,
            sortable : true,
            align: 'left'
        },

        {
            display: 'Байт отправлено',
            name : 'bytes_sent',
            width : 120,
            sortable : true,
            align: 'left'
        },

        {
            display: 'Байт получено',
            name : 'bytes_recieved',
            width : 110,
            sortable : true,
            align: 'left'
        }
        ],
        searchitems : [
        {
            display: 'ID',
            name : 'ID',
            isdefault: true
        },

        {
            display: 'Байт отправлено',
            name : 'bytes_sent'
        },

        {
            display: 'Байт получено',
            name : 'bytes_recieved'
        }
        ],
        sortname: "id",
        sortorder: "desc",
        usepager: true,
        useRp: true,
        rp: 17,
        height: 420
    });//$("#connectionStatistics").flexigrid
    $("#trackerLog").flexigrid({
        dataType: 'json',
        colModel : [
        {
            display: 'ID',
            name : 'id',
            width : 55,
            sortable : true,
            align: 'left'
        },

        {
            display: 'Время',
            name : 'observation_time',
            width : 110,
            sortable : true,
            align: 'left'
        },

        {
            display: 'Событие',
            name : 'event_type',
            width : 200,
            sortable : true,
            align: 'left'
        },

        {
            display: 'Координаты',
            name : 'koord',
            width : 270,
            sortable : false,
            align: 'left'
        },

        {
            display: 'Показания датчиков',
            name : 'tracker_data',
            width : 710,
            sortable : false,
            align: 'left'
        }
        ],
        searchitems : [
        {
            display: 'Событие',
            name : 'lat'
        }
        ],
        sortname: "id",
        sortorder: "desc",
        usepager: true,
        nomsg:'Трекер с сервером не соеденялся',
        useRp: true,
        rp: 16,
        height: 420,
        onSuccess:function(data){
            $.each($('#trackerLog tr'),function(i,val){
                $($(val).children('td').get(2)).children('div').html(event_type[$($(val).children('td').get(2)).children('div').html()].full_name);
            });
        }
    });//$("#trackerLog").flexigrid
})//document.ready
function connectionStatisticsGridInit(id){
    $("#connectionStatistics").flexOptions({
        url:"tracker/getTrackerConnectionStatistics/"+id,
        sortname: "session_begin",
        sortorder: "desc",
        rp: 17,
        query: '',
        qtype: 'session_begin'
    }).flexReload();
}//connectionStatisticsGridInit

function trackerLogGridInit (id){
    $("#trackerLog").flexOptions({
        url:"tracker/getTrackerLog/"+id,
        sortorder: "desc",
        rp: 16,
        sortname: "observation_time",
        query: '',
        qtype: 'observation_time'
    }).flexReload();
}//trackerLogGridInit
function getTrackerUsers(id){
    $("#trackerUsers").flexOptions({
        url:"tracker/getUsers/"+id,
        sortorder: "id",
        rp: 16,
        sortname: "id",
        query: '',
        qtype: 'id'
    }).flexReload();
}//getTrackerUsers
var opennedTrackerInfo = new Number();
function getCurrentGPSData(id){
    opennedTrackerInfo = id;
    if($.user.role_fis_name == 'admin'){
        for(value in $.trackers.points){
            var val = $.trackers.points[value];
            if(id == val.id){
                $('#currentState').html(
                    "<table><tbody>"+
                    "<tr ><td>Время:</td><td>"+UTCDateToString(val.time)+"</td></tr>"+
                    "<tr ><td>Долгота:</td><td>"+val.lat+"</td></tr>"+
                    "<tr ><td>Широта:</td><td>"+val.lon+"</td></tr>"+
                    "<tr ><td>Скорость:</td><td>"+val.speed+" км/ч</td></tr>"+
                    "<tr ><td>Направление движения:</td><td>"+val.heading+"</td></tr>"+
                    "<tr ><td>Высота над уровнем моря:</td><td>"+val.altitude+"</td></tr>"+
                    "<tr ><td>hdop:</td><td>"+val.satCount+"</td></tr>"+
                    "<tr ><td>Количество спутников GPS/ГЛОНАСC:</td><td>"+val.hdop +"</td></tr>"+
                    "<tr ><td>Уровень GSM сигнала:</td><td>"+val.gsm+" дБ</td></tr>"+
                    "<tr ><td>Счетчик пройденного пути:</td><td>"+val.adometr+" м</td></tr>"+
                    "<tr ><td>Дискретные входы DI6...DI0:</td><td>"+val.domask+"</td></tr>"+
                    "<tr ><td>Дискретные выходы DO6...DO0:</td><td>"+val.domask+"</td></tr>"+
                    "<tr ><td>"+($.settings.ai0?$.settings.ai0:"Аналоговый вход AI0")+":</td><td>"+val.ai0+" мВ</td></tr>"+
                    "<tr ><td>"+($.settings.ai1?$.settings.ai1:"Аналоговый вход AI1")+":</td><td>"+val.ai1+" мВ</td></tr>"+
                    "<tr ><td>"+($.settings.ai2?$.settings.ai2:"Аналоговый вход AI2")+":</td><td>"+val.ai2+" мВ</td></tr>"+
                    "<tr ><td>"+($.settings.ai3?$.settings.ai3:"Аналоговый вход AI3")+":</td><td>"+val.ai3+" мВ</td></tr>"+
                    "<tr ><td>"+($.settings.ai12?$.settings.ai12:"Аналоговый вход AI12")+":</td><td>"+val.ai12+" мВ</td></tr>"+
                    "<tr ><td>"+($.settings.ai13?$.settings.ai13:"Аналоговый вход AI13")+":</td><td>"+val.ai13+" мВ</td></tr>"+
                    "<tr ><td>"+($.settings.ai14?$.settings.ai14:"Аналоговый вход AI14")+":</td><td>"+val.ai14+" мВ</td></tr>"+
                    "<tr ><td>"+($.settings.ai15?$.settings.ai15:"Аналоговый вход AI15")+":</td><td>"+val.ai15+" мВ</td></tr>"+
                    "<tr ><td>"+($.settings.c0?$.settings.c0:"Значение счетчика С0")+":</td><td>"+val.c0+"</td></tr>"+
                    "<tr ><td>"+($.settings.c1?$.settings.c1:"Значение счетчика С1")+":</td><td>"+val.c1+"</td></tr>"+
                    "<tr ><td>"+($.settings.c2?$.settings.c2:"Значение счетчика С2")+":</td><td>"+val.c2+"</td></tr>"+
                    "</tbody></table>"
                );
            }
        }
 
    }else if($.user.role_fis_name == 'user'){
        $.each(currentGPSData[currentGPSData.length-1],function(i,val){
            if(val.id == id){
                var time='',lat='',lon='',speed='',heading='',altitude='',satCount='',hdop='',gsm='',
                adometr='',domask='',dimask='',ai0='',ai1='',ai2='',ai3='',ai12='',ai13='',ai14='',ai15='',c0='',c1='',c2='';//fadadd
                if(currentGPSData.length != 1){
                    $.each(currentGPSData[currentGPSData.length-2],function(iter,value){
                        if(value.id == id){
                            value.time != val.time?time='style="background:#fadadd"':time='';
                            value.lat != val.lat?lat='style="background:#fadadd"':lat='';
                            value.lon != val.lon?lon='style="background:#fadadd"':lon='';
                            value.speed != val.speed?speed='style="background:#fadadd"':speed='';
                            value.heading != val.heading?heading='style="background:#fadadd"':heading='';
                            value.altitude != val.altitude?altitude='style="background:#fadadd"':altitude='';
                            value.satCount != val.satCount?satCount='style="background:#fadadd"':satCount='';
                            value.hdop != val.hdop?hdop='style="background:#fadadd"':hdop='';
                            value.gsm != val.gsm?gsm='style="background:#fadadd"':gsm='';
                            value.adometr != val.adometr?adometr='style="background:#fadadd"':adometr='';
                            value.domask != val.domask?domask='style="background:#fadadd"':domask='';
                            value.dimask != val.dimask?dimask='style="background:#fadadd"':dimask='';
                            value.ai0 != val.ai0?ai0='style="background:#fadadd"':ai0='';
                            value.ai1 != val.ai1?ai1='style="background:#fadadd"':ai1='';
                            value.ai2 != val.ai2?ai2='style="background:#fadadd"':ai2='';
                            value.ai3 != val.ai3?ai3='style="background:#fadadd"':ai3='';
                            value.ai12 != val.ai12?ai12='style="background:#fadadd"':ai12='';
                            value.ai13 != val.ai13?ai13='style="background:#fadadd"':ai13='';
                            value.ai14 != val.ai14?ai14='style="background:#fadadd"':ai14='';
                            value.ai15 != val.ai15?ai15='style="background:#fadadd"':ai15='';
                            value.c0 != val.c0?c0='style="background:#fadadd"':c0='';
                            value.c1 != val.c1?c1='style="background:#fadadd"':c1='';
                            value.c2 != val.c2?c2='style="background:#fadadd"':c2='';
                    }})
                }
                $('#currentState').html(
                    "<table><tbody>"+
                    "<tr "+time+"><td>Время:</td><td>"+UTCDateToString(val.time)+"</td></tr>"+
                    "<tr "+lat+"><td>Долгота:</td><td>"+val.lat+"</td></tr>"+
                    "<tr "+lon+"><td>Широта:</td><td>"+val.lon+"</td></tr>"+
                    "<tr "+speed+"><td>Скорость:</td><td>"+val.speed+" км/ч</td></tr>"+
                    "<tr "+heading+"><td>Направление движения:</td><td>"+val.heading+"</td></tr>"+
                    "<tr "+altitude+"><td>Высота над уровнем моря:</td><td>"+val.altitude+"</td></tr>"+
                    "<tr "+satCount+"><td>hdop:</td><td>"+val.satCount+"</td></tr>"+
                    "<tr "+hdop+"><td>Количество спутников GPS/ГЛОНАСC:</td><td>"+val.hdop +"</td></tr>"+
                    "<tr "+gsm+"><td>Уровень GSM сигнала:</td><td>"+val.gsm+" дБ</td></tr>"+
                    "<tr "+adometr+"><td>Счетчик пройденного пути:</td><td>"+val.adometr+" м</td></tr>"+
                    "<tr "+domask+"><td>Дискретные входы DI6...DI0:</td><td>"+val.domask+"</td></tr>"+
                    "<tr "+dimask+"><td>Дискретные выходы DO6...DO0:</td><td>"+val.domask+"</td></tr>"+
                    "<tr "+ai0+"><td>"+($.settings.ai0?$.settings.ai0:"Аналоговый вход AI0")+":</td><td>"+val.ai0+" мВ</td></tr>"+
                    "<tr "+ai1+"><td>"+($.settings.ai1?$.settings.ai1:"Аналоговый вход AI1")+":</td><td>"+val.ai1+" мВ</td></tr>"+
                    "<tr "+ai2+"><td>"+($.settings.ai2?$.settings.ai2:"Аналоговый вход AI2")+":</td><td>"+val.ai2+" мВ</td></tr>"+
                    "<tr "+ai3+"><td>"+($.settings.ai3?$.settings.ai3:"Аналоговый вход AI3")+":</td><td>"+val.ai3+" мВ</td></tr>"+
                    "<tr "+ai12+"><td>"+($.settings.ai12?$.settings.ai12:"Аналоговый вход AI12")+":</td><td>"+val.ai12+" мВ</td></tr>"+
                    "<tr "+ai13+"><td>"+($.settings.ai13?$.settings.ai13:"Аналоговый вход AI13")+":</td><td>"+val.ai13+" мВ</td></tr>"+
                    "<tr "+ai14+"><td>"+($.settings.ai14?$.settings.ai14:"Аналоговый вход AI14")+":</td><td>"+val.ai14+" мВ</td></tr>"+
                    "<tr "+ai15+"><td>"+($.settings.ai15?$.settings.ai15:"Аналоговый вход AI15")+":</td><td>"+val.ai15+" мВ</td></tr>"+
                    "<tr "+c0+"><td>"+($.settings.c0?$.settings.c0:"Значение счетчика С0")+":</td><td>"+val.c0+"</td></tr>"+
                    "<tr "+c1+"><td>"+($.settings.c1?$.settings.c1:"Значение счетчика С1")+":</td><td>"+val.c1+"</td></tr>"+
                    "<tr "+c2+"><td>"+($.settings.c2?$.settings.c2:"Значение счетчика С2")+":</td><td>"+val.c2+"</td></tr>"+
                    "</tbody></table>"
                );
            }
        });
    }
}

function initInformationWindow(id,name){
    $( "#accordion" ).accordion({
        header: "h3",
        autoHeight: false
    });
    $('#dialog').dialog('open');
    $('#dialog').dialog("option","title",'Последнее состояние объекта '+id);
    $( ".selector" ).bind( "dialogclose",function(){
        opennedTrackerInfo = 0;
    });
    getCurrentGPSData(id);
    connectionStatisticsGridInit(id);
    trackerLogGridInit(id);
    $('.ui-accordion-content .trackInfo').hide();
    if($.user.role_fis_name == 'admin')getTrackerUsers(id);
    if(typeof(yamap)==='undefined')return false;
    
    var dates = $('#from, #to').datepicker({
        changeMonth: true,
        numberOfMonths: 1,
        dateFormat: 'dd.mm.yy',
        onSelect: function(selectedDate) {
            var option = this.id == "from" ? "minDate" : "maxDate";
            var instance = $(this).data("datepicker");
            var date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
            dates.not(this).datepicker("option", option, date);
        }
    });
    if($.cookie("from"+$('#dialog').dialog("option", "title" ).substr('Последнее состояние объекта '.length)) &&
        $.cookie("to"+$('#dialog').dialog("option", "title" ).substr('Последнее состояние объекта '.length))
        ){
        $('#from').datepicker( "setDate",new Date(Number($.cookie('from'+$('#dialog').dialog("option", "title" ).substr('Последнее состояние объекта '.length)))*1000));
        $('#to').datepicker( "setDate",new Date(Number($.cookie("to"+$('#dialog').dialog("option", "title" ).substr('Последнее состояние объекта '.length)))*1000));
    }else{
        $('#from, #to').datepicker( "setDate",new Date());
    }
    return false;
}


