﻿(function ($) {
    $.fn.mapPlugin = null;
    $.fn.initScriptObject = function () {
        $.fn.mapPlugin = $("#objMap").get(0).content.MainPage;
    };
    //刷新画面
    $.fn.Reload = function () {
        location.reload();
    };
    //显示地图
    $.fn.ShowMap = function () {
        $("iframe", $("#divMap")).show();
        doBlur();
    };
    //隐藏地图
    $.fn.HideMap = function () {
        $("iframe", $("#divMap")).hide();
        $.fn.mapPlugin.ShowChildWindow();
    };
    //关闭窗口
    $.fn.CloseWindow = function () {
        window.close();
    };
    var frmMapPage;
    $.fn.getFrame = function () {
        if (!frmMapPage) {
            //            if ($.browser.msie) {
            //                frmMapPage = $("#frmMap")[0];
            //            }
            //            else {
            frmMapPage = $("#frmMap")[0].contentWindow;
            //            }
        }
        return frmMapPage;
    };
    $.fn.getAlarmFrame = function () {
        //        if ($.browser.msie) {
        //            return $("#frmAlarm")[0];
        //        }
        //        else {
        return $("#frmAlarm")[0].contentWindow;
        //        }
    };
    $.fn.drawLine = function (name, strJsonPoints, color, width) {
        if ($.fn.getFrame() != null) {
            var points = eval("(" + strJsonPoints + ")");
            $.fn.getFrame().$.fn.addLine(name, points, color, width);
        }
    };
    $.fn.drawPoint = function (name, strJsonPoints, color, width) {
        if ($.fn.getFrame() != null) {
            var points = eval("(" + strJsonPoints + ")");
            for (var n = 0; n < points.length; n++) {
                $.fn.getFrame().$.fn.addPoint(name, "text", points[n].Longitude, points[n].Latitude, "icon", "deg");
            }

        }
    };
    $.fn.updatePlyerCar = function (jsoncar) {
        var car;
        car = eval("(" + jsoncar + ")");
        $.fn.getFrame().$.fn.updateMarkCar(car);
    };
    $.fn.locCarFollowLine = function (jsoncar, followtype, lastLat, lastLon, lastColor, lineWidth) {
        $.fn.getFrame().$.fn.markCar(jsoncar, followtype, lastLat, lastLon, lastColor, lineWidth);
    };
    $.fn.clearLineAfter = function (posid) {
        $.fn.getFrame().jQuery.fn.removeLineAfter(posid);
    };
    $.fn.removeAllLine = function () {
        $.fn.getFrame().jQuery.fn.removeAllLine();
    };
    var winPlayer = null;
    $.fn.showPlayer = function (carid, lan,threadlan,user) {
        var windowwidth = screen.availWidth;
        var dialogLeft;
        dialogLeft = (windowwidth - 305) + "px";
        var urlPlayer = "TrajectoryPlayer.html";
        urlPlayer = urlPlayer + "?carid=" + encodeURIComponent(carid) + "&lan=" + encodeURIComponent(lan) + "&tlan=" + encodeURIComponent(threadlan) + "&user=" + encodeURIComponent(user);
        if (winPlayer == null || winPlayer.closed) {
            if ($.browser.msie) {
                winPlayer = window.showModelessDialog(urlPlayer, { "carid": carid, "lan": lan, "user": user }, "center:no;dialogLeft:" + dialogLeft + ";dialogTop:0px;scroll:0;status:0;help:0;resizable:1;dialogWidth:311px;dialogHeight:580px");
            }
            else {

                winPlayer = window.open(urlPlayer, "player", "left=" + dialogLeft + "height=600px,width=360px");
            }
        }
        else {
            winPlayer.focus();
        }
    };
    $.fn.playerIsOpen = function () {
        if (winPlayer == null || winPlayer.closed) {
            return false;
        }
        else {
            return true;
        }
    };
    $.fn.localCar = function (jsoncar, lastColor, lineWidth, type) {
        var car;
        car = eval("(" + jsoncar + ")");
        $.fn.getFrame().$.fn.LocalAndSetCenter(car, lastColor, lineWidth, type);
    };

    $.fn.getAddress = function (st1, st2, Latitude, Longitude) {
        if ($.fn.getFrame()&&$.fn.getFrame().$ && $.fn.getFrame().$.fn.getAddress) {
            $.fn.getFrame().$.fn.getAddress(st1, st2, Latitude, Longitude);
        }
    };

    $.fn.getAlarmAddress = function (rowIndex, Latitude, Longitude) {
        $.fn.getFrame().$.fn.getAlarmAddress(rowIndex, Latitude, Longitude);
    };
    $.fn.getMonthAddress = function (rowIndex, Latitude, Longitude) {
        $.fn.getFrame().$.fn.getMonthAddress(rowIndex, Latitude, Longitude);
    };
    $.fn.getPosiAddress = function (rowIndex, Latitude, Longitude) {
        $.fn.getFrame().$.fn.getPosiAddress(rowIndex, Latitude, Longitude);
    };
    $.fn.PreAddRectangle = function () {
        $.fn.getFrame().$.fn.PreAddRectangle();
    };
    $.fn.PreAddPolygon = function () {
        $.fn.getFrame().$.fn.PreAddPolygon();
    };
    $.fn.PreAddCircle = function () {
        $.fn.getFrame().$.fn.PreAddCircle();
    };
    $.fn.PreAddPath = function () {
        $.fn.getFrame().$.fn.PreAddPath();
    };
    $.fn.PreAddPoi = function () {
        $.fn.getFrame().$.fn.PreAddPoi();
    };
    $.fn.AddRegion = function (name, type, points) {
        $.fn.mapPlugin.AddRegion(name, type, points.join(""));
    };
    $.fn.DrawRegion = function (type, arrPoint, name, index) {
        arrPoint = eval("(" + arrPoint + ")");
        switch (type) {
            case 1:
                $.fn.getFrame().$.fn.PreAddCircle(1, arrPoint, name, index);
                break;
            case 2:
                $.fn.getFrame().$.fn.PreAddRectangle(1, arrPoint, name, index);
                break;
            case 3:
                $.fn.getFrame().$.fn.PreAddPolygon(1, arrPoint, name, index);
                break;
        }
    };
    $.fn.AddPath = function (name, width, points) {
        $.fn.mapPlugin.AddPath(name, width, points.join(""));
    };
    $.fn.DrawPath = function (arrPoint, name, index) {
        arrPoint = eval("(" + arrPoint + ")");
        $.fn.getFrame().$.fn.PreAddPath(1, arrPoint, name, index);
    };
    $.fn.AddPoi = function (name, address, points) {
        $.fn.mapPlugin.AddPoi(name, address, points.join(""));
    };
    $.fn.DrawPoi = function (arrPoint, poiname, index) {
        arrPoint = eval("(" + arrPoint + ")");
        $.fn.getFrame().$.fn.PreAddPoi(1, arrPoint, poiname, index);
    };
    $.fn.fitBounds = function (jsonPoints) {
        var points = eval("(" + jsonPoints + ")");
        $.fn.getFrame().$.fn.fitTBounds(points);
    };
    $.fn.MoveCarTo = function (carid, dir, lat, lon) {
        setTimeout(function () {
            $.fn.getFrame().$.fn.MoveCarTo(carid, dir, lat, lon);
        }, 10);
    };
    $.fn.TraceCarTo = function (carid, dir, lat, lon) {
        setTimeout(function () {
            $.fn.getFrame().$.fn.TraceCarTo(carid, dir, lat, lon);
        }, 10);
    };
    $.fn.ClearScreen = function () {
        window.setTimeout(function () {
            $.fn.getFrame().$.fn.removeAllLine();
            $.fn.getFrame().$.fn.RemoveGraphics();
            $.fn.getFrame().$.fn.removeAllocation();
            $.fn.getFrame().$.fn.RemoveRuler();
        }, 20);
    };
    $.fn.FreshMap = function () {
        window.setTimeout(function () {
            $.fn.getFrame().$.fn.FreshMap();
        }, 20);
    };
    $.fn.ClearTrajectory = function () {
        window.setTimeout(function () {
            $.fn.getFrame().$.fn.removeAllLine();
        }, 20);
    };
    $.fn.ClearRegion = function () {
        window.setTimeout(function () {
            $.fn.getFrame().$.fn.ClearRegionEvent();
        }, 20);
    };
    $.fn.ClearPath = function () {
        window.setTimeout(function () {
            $.fn.getFrame().$.fn.ClearPathEvent();
        }, 20);
    };
    $.fn.ClearPoi = function () {
        window.setTimeout(function () {
            $.fn.getFrame().$.fn.ClearPoiEvent();
        }, 20);
    };
    $.fn.SaveLan = function (lan) {
        $.fn.Lan = lan;
    };
    $.fn.ShowAlarm = function (alarminfo) {
        $.fn.getAlarmFrame().SetContent(eval("(" + alarminfo + ")"));
    };
    $.fn.GetCurCar = function () {
       return $.fn.getAlarmFrame().GetCurCar();
    };
    $.fn.ZoomIn = function () {
        $.fn.getFrame().$.fn.zoomIn();
    };
    $.fn.ZoomOut = function () {
        $.fn.getFrame().$.fn.zoomOut();
    };
    $.fn.Measure = function () {
        $.fn.getFrame().$.fn.addruler();
    };
    $.fn.SupportLang = function () {
        return '[{"Key":"ThreadLan","Value":"en-US"},{"Key":"Default","Value":"en-US"},{"Key":"zh-CN","Value":"中文"},{"Key":"en-US","Value":"English"},{"Key":"ru-RU","Value":"Russian"}]';
    };
    $.fn.closeRegion = function () {
        $.fn.getFrame().closeRegion();
    };
})(jQuery);
