﻿var _toolbar = null;
var _markLayer = null;
var _markAddDlg = null;
var _coverLayer = null;
var _fullConfig = {};
var _navCoverDiv = null;
var _tipStr = '';
var _markIcon = '<div onclick="document.getElementById(\'markDlg_{$id}\').style.display=\'block\';" title="{$markTitle}" style="position:absolute;z-index:2;left:0;top:0;width:49px;width:49px;height:45px;cursor:pointer;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'/images/ding.png\',sizingMethod=\'image\');"><!--[if !IE]><!--><img src="/images/ding.png" /><!--<![endif]--></div>'
                + '<div id="markDlg_{$id}" style="position:absolute;z-index:1;left:20px;top:20px;border:1px solid #ACB9C2;width:200px;background-color:#FFFFFF;"><div style="width:100%;height:24px;background-image:url(/images/barBg1.gif);">'
                + '<div style="float:left;width:140px;overflow:hidden;height:20px;line-height:20px;background-image:url(/images/toolbar.gif);background-position:0 0;background-repeat:no-repeat;margin:2px 0 0 3px;padding-left:24px;color:#314F67;font-size:12px;font-weight:bold;">{$markTitle}</div>'
                + '<div style="float:right;width:20px;height:20px;background-image:url(/images/toolbar.gif);background-position:0 -168px;background-repeat:no-repeat;margin:2px;cursor:pointer;" onclick="document.getElementById(\'markDlg_{$id}\').style.display=\'none\';" id="markDelBut_{$id}"></div>'
                + '</div><div style="padding:6px;font-size:12px;">{$markContent}</div>'
                + '<div style="padding:0 6px 6px 6px;font-size:12px;"><span style="height:16px;color:#1A70C7;padding:2px 10px 0 21px;background:url(/images/toolbar.gif) no-repeat 0 -195px;cursor:pointer;" onclick="parent.fnRemoveMark(\'{$id}\')">删除标记</span>'
                + '<span style="height:16px;color:#1A70C7;padding:2px 8px 0 23px;background:url(/images/toolbar.gif) no-repeat 0 -219px;cursor:pointer;" onclick="parent.fnCopyMark(\'{$id}\')">复制链接</span></div>'
                + '</div>';
var _markAddStr = '<div style="position:absolute;z-index:2;left:0;top:0;width:49px;height:45px;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'/images/ding.png\',sizingMethod=\'image\');"><!--[if !IE]><!--><img src="/images/ding.png" /><!--<![endif]--></div>'
                + '<div style="position:absolute;z-index:1;left:20px;top:20px;border:1px solid #ACB9C2;width:300px;background-color:#FFFFFF;"><div style="width:100%;height:24px;background-image:url(/images/barBg1.gif);">'
                + '<div style="float:left;width:240px;overflow:hidden;height:20px;line-height:20px;background-image:url(/images/toolbar.gif);background-position:0 0;background-repeat:no-repeat;margin:2px 0 0 3px;padding-left:24px;color:#314F67;font-size:12px;font-weight:bold;">添加标记</div>'
                + '<div style="float:right;width:20px;height:20px;background-image:url(/images/toolbar.gif);background-position:0 -144px;background-repeat:no-repeat;margin:2px;cursor:pointer;" onclick="parent.fnRemoveMarkDlg();"></div>'
                + '</div><div style="padding:12px;font-size:12px;"><div>标 题:<input id="markTitle" style="width:230px;color:#333000;border:solid 1px #666000;margin-left:4px;font-size:12px;" type="text" /></div>'
                + '<div>内 容:<textarea id="markContent" style="width:230px;height:65px;border:solid 1px #666000;margin-left:4px;margin-top:4px;font-size:12px;"></textarea></div>'
                + '<div>坐 标:<input type="text" style="overflow:visible;margin:0 0 0 4px;padding:0px;height:17px;overflow:hidden;line-height:17px;border:none;font-size:12px;" value="{$x}&nbsp;&nbsp;&nbsp;{$y}" /></div>'
                + '<div>经 纬:<input type="text" style="overflow:visible;margin:0 0 0 4px;padding:0px;width:200px;height:17px;overflow:hidden;line-height:17px;border:none;font-size:12px;" value="{$gisW}N   {$gisJ}E" /></div>'
                + '<div id="markSaveBut" style="width:48px;height:20px;line-height:21px;overflow:hidden;margin-left:116px;margin-top:6px;background-image:url(/images/butBg.gif);text-align:center;cursor:pointer;">确 定</div>'
                + '</div></div>';
var _paneSearchStr = '<div style="border:1px solid #ACB9C2;width:300px;background-color:#FFFFFF;"><div style="width:100%;height:24px;background-image:url(/images/barBg1.gif);">'
                + '<div style="float:left;width:240px;overflow:hidden;height:20px;line-height:20px;background-image:url(/images/toolbar.gif);background-position:0 -48px;background-repeat:no-repeat;margin:2px 0 0 3px;padding-left:24px;color:#314F67;font-size:12px;font-weight:bold;">框选搜索</div>'
                + '<div style="float:right;width:20px;height:20px;background-image:url(/images/toolbar.gif);background-position:0 -144px;background-repeat:no-repeat;margin:2px;cursor:pointer;" onclick="parent.fnUnPane();"></div></div>'
                + '<div style="padding:10px 12px;height:40px;font-size:12px;">'
                + '<div style="padding-bottom:3px">在指定范围内进行搜索</div>'
                + '<div style="float:left;">关键字:<input id="paneKeywords" style="width:170px;color:#333000;border:solid 1px #666000;margin-left:4px;font-size:12px;" type="text" /></div>'
                + '<div id="paneOkBut" style="float:left;width:48px;height:20px;margin-left:4px;line-height:21px;overflow:hidden;background-image:url(/images/butBg.gif);text-align:center;cursor:pointer;">确 定</div>'
                + '</div></div>'

function bindToolbarEvent() {
    _toolbar = $("MapToolBar");
    if(!_toolbar) return;
    _toolbar.onclick = function(event) {
        if(!vM) return;
        var ele = $event(event);
        if(!ele || ele.tagName != "LI") return;
        if(ele.id != "tfull") {
            if(_isBeginMark) {
                fnUnMark();
            }
            if(_markAddDlg) {
                fnRemoveMarkDlg();
            }
            if(_isBeginScale) {
                fnUnScale();
            }
            if(_isBeginPloy) {
                fnUnPloy();
            }
            if(_isBeginPane) {
                fnUnPane();
            }
        }
        switch (ele.id) {
            case "tmark":
                fnMark();
                break;
            case "tscale":
                fnScale();
                break;
            case "tploy":
                fnPloy();
                break;
            case "tpane":
                fnPane();
                break;
            case "tnav":
                fnNav();
                break;
            case "tfull":
                fnFull();
                break;
            case "tlabel":
                fnLabel(ele);
                break;
            default:
                return;
        }
    }
    _toolbar.onmouseover = function(event) {
        var ele = $event(event);
        if(!ele || ele.tagName != "LI") return;
        ele.style.color = "#FF4D00";
        if(!ele.onmouseout) {
            ele.onmouseout = function() {
                this.style.color = "";
            }
        }
    }
    $attachEventListener(document, $EventName.keypress, function(event) {
        event = event || window.event;
        if(!event) return;
        if(event.keyCode == 27) {
            if(_isBeginMark) fnUnMark();
            if(_markAddDlg) fnRemoveMarkDlg();
            if(_isBeginScale) fnUnScale();
            if(_isBeginPloy) fnUnPloy();
            if(_isBeginPane) fnUnPane();
            if(_navCoverDiv) fnNavExit();
            if(_isFullScreen) fnFull();
        }
    });
}

function fnShowCover() {
    if(!_coverLayer) {
        _coverLayer = vM.$C("div");
        _coverLayer.innerHTML = "<div style='position:absolute;left:0px;top:0px;background-color:#FFFFFF;filter:alpha(opacity=0);opacity:0;-moz-opacity:.0;z-index:200;'></div>";
        _coverLayer = _coverLayer.childNodes[0];
        vM.Body.document.body.appendChild(_coverLayer);
    }
    _coverLayer.style.width = _bodyWidth + "px";
    _coverLayer.style.height = _bodyHeight + "px";
    _coverLayer.style.display = "block";
}

function fnHidCover() {
    if(_coverLayer) _coverLayer.style.display = "none";
}

function fnMark() {
    var tip = '<div style="height:15px; line-height:15px; border:1px solid #1A70C7; background:#FFFFFF; padding:0 4px 0 4px;filter:alpha(opacity=90); opacity:.9; float:left; color:#000; font-size:12px; white-space:nowrap;">单击左键选择标记位置</div>';
    vM.ShowPointerTip(tip);
    fnShowCover();
    _coverLayer.onmousedown = function(event) {
        event=event||vM.Body.window.event;
        if(event.button == 2) {
            fnUnScale();
            return;
        }
        this.downX = event.clientX;
        this.downY = event.clientY
    };
    _coverLayer.onclick = function(event) {
        event=event || vM.Body.window.event;
        if(Math.abs(event.clientX - _coverLayer.downX) > 9 || Math.abs(event.clientY - _coverLayer.downY) > 9) return;
        if(!_MarkLayer)_MarkLayer = vM.NewMapLayer('Mark', 265, 0);
        fnShowMarkDlg(vM.PointerX(),vM.PointerY(),'');
	}
    
    _isBeginMark = true;
}

function fnUnMark() {
    vM.HidePointerTip();
    fnHidCover();
    _coverLayer.onmousedown = null;
    _coverLayer.onclick = null;
    _isBeginMark = false;
}

function fnShowMarkDlg(x, y, title) {
    vM.HidePointerTip();
    fnHidCover();
    vM.MoveTo(x + 300, y + 300, true);
    _markAddDlg = vM.$C("div");
    var gis = mapToGis(x, y);
    _markAddDlg.innerHTML = _markAddStr.replace("{$x}",x).replace("{$y}",y).replace("{$gisW}",gisConvert(gis.w).replace("\"","&quot;")).replace("{$gisJ}",gisConvert(gis.j).replace("\"","&quot;"));
    if(!_markLayer) {
        _markLayer = vM.NewMapLayer("markLayer", 1000);
    }
    _markLayer.style.display = "block";
    vM.appendEntity(_markAddDlg, _markLayer, false, x, y, 49, 43, 1, 42, false);
    _markAddDlg.markTitle = vM.$("markTitle");
    _markAddDlg.markContent = vM.$("markContent");
    _markAddDlg.markSaveBut = vM.$("markSaveBut");
    _markAddDlg.markSaveBut.onclick = function() {
        if(_markAddDlg.markTitle.value == "" || _markAddDlg.markTitle.value.length > 20) {
            alert("标题不能为空，且长度不能大于20个字符！");
            _markAddDlg.markTitle.focus();
            return;
        }else if(_markAddDlg.markContent.value.length > 100){
            alert("内容长度不能大于100个字符！");
            _markAddDlg.markContent.focus();
            return;
        }else {
            var title = _markAddDlg.markTitle.value.replace("\"", "&quot;");
            var content = _markAddDlg.markContent.value.replace("\"", "&quot;");
	        fnRemoveMarkDlg();
            fnAppendMark(x, y, title, content);
        }
    }
    _markAddDlg.onkeyup = function(event) {
	    if(!event && !(event = vM.Body.window.event)) return;
	    if(event.keyCode == 13 && (event.ctrlKey || $event(event).tagName != "TEXTAREA"))
	        _markAddDlg.markSaveBut.onclick();
	    else if(event.keyCode == 27)
	        fnRemoveMarkDlg();
	};
	_markAddDlg.markTitle.focus();
    _isBeginMark = false;
}

function fnRemoveMarkDlg() {
    if(_markAddDlg){
        _markAddDlg.parentNode.removeChild(_markAddDlg);
        _markAddDlg = null;
    }
}

function fnAppendMark(x, y, title, content, id) {
    if(!_markLayer) {
        _markLayer = vM.NewMapLayer("markLayer", 1000);
    }
    var div = vM.$C("div");
    if(typeof id == "undefined")
        div.id = "mark_" + new Date().valueOf().toString();
    else
        div.id = id;
    div.x = x;
    div.y = y;
    div.title = title;
    div.content = content;
    div.innerHTML = _markIcon.replace(/\{[$]markTitle\}/g, title).replace("{$markContent}", content).replace(/\{[$]id\}/g, div.id);
    vM.appendEntity(div, _markLayer, false, x, y, 49, 43, 1, 42, false);
    if(typeof id == "undefined") {
        var cookie = new CookieHelper();
        var date = new Date();
        date.setMonth(date.getMonth() + 2);
        var markValue = cookie.getCookie('Mark');
        if(markValue == null) markValue = "";
        markValue += div.id + "__^" + x + "__^" + y + "__^" + title + "__^" + content + "__|";
        cookie.setCookie('Mark', markValue, date);
    }
}

function fnRemoveMark(id) {
    var div = vM.$(id);
    div.parentNode.removeChild(div);
    var cookie = new CookieHelper();
    var date = new Date();
    date.setMonth(date.getMonth() + 2);
    var re = new RegExp(id + ".*?__[|]", "ig");
    var markValue = cookie.getCookie('Mark') == null ? '' : cookie.getCookie('Mark').replace(re, "");
    cookie.setCookie('Mark', markValue, date);
}

function fnCopyMark(id) {
    var div = vM.$(id);
    var url = location.protocol + "//" + location.host + "/?x=" + div.x + "&y=" + div.y + "&title=" + escape(div.title) + "&content=" + escape(div.content);
    fnCopyToClipboard(url, "标记链接复制成功，你可以到其它地方粘贴该标记的链接地址。");
}

function fnScale() { //测距
    var tip = '<div style="height:15px; line-height:15px; border:1px solid #1A70C7; background:#FFFFFF; padding:0 4px 0 4px;filter:alpha(opacity=90); opacity:.9; float:left; color:#000; font-size:12px; white-space:nowrap;">单击左键插入测量点，右键结束</div>';
    vM.ShowPointerTip(tip);
    fnShowCover();
    _coverLayer.onmousedown = function(event) {
        event=event||vM.Body.window.event;
        if(event.button == 2) {
            fnUnScale();
            return;
        }
        this.downX = event.clientX;
        this.downY = event.clientY
    };
    _coverLayer.pointArr = [];
    _coverLayer.drawLayer = vM.NewMapLayer("drawLayer", 1000);
    _coverLayer.onclick = function(event) {
        event=event || vM.Body.window.event;
        if(Math.abs(event.clientX - _coverLayer.downX) > 9 || Math.abs(event.clientY - _coverLayer.downY) > 9) return;
        var pX = vM.PointerX(), pY = vM.PointerY();
        var pEnd = _coverLayer.pointArr[_coverLayer.pointArr.length] = {x:pX, y:pY, d:0};
        if(_coverLayer.pointArr.length > 1) {
            var p = _coverLayer.pointArr[_coverLayer.pointArr.length - 2];
            pEnd.d = getDistance(p.x, p.y, pEnd.x, pEnd.y) + p.d;
            var coords = p.x * _zoomPer + "," +  p.y * _zoomPer + "," + pX * _zoomPer + "," + pY * _zoomPer;
            vM.DrawPolyLine(_coverLayer.drawLayer,coords, 2, "#FFFF00", 0.7).style.zIndex = 200;
        }
        
        vM.DrawDot(_coverLayer.drawLayer, pX * _zoomPer, pY * _zoomPer, 6, "#FF0000", 1).style.zIndex = 201;
        fnAppendLabel(pX, pY, pEnd.d);
    }
    _isBeginScale = true;
}

function fnReDrawScale() {
    if(!_coverLayer.pointArr || _coverLayer.pointArr.length < 1 || !_coverLayer.drawLayer) return;
    var p0 = _coverLayer.pointArr[0], p1, coords;
    _coverLayer.drawLayer.innerHTML = "";
    vM.DrawDot(_coverLayer.drawLayer, p0.x * _zoomPer, p0.y * _zoomPer, 6, "#FF0000", 1).style.zIndex = 201;
    fnAppendLabel(p0.x, p0.y, p0.d);
    for(var i=1; i<_coverLayer.pointArr.length; i++) {
        p1 = _coverLayer.pointArr[i];
        var coords = p0.x * _zoomPer + "," +  p0.y * _zoomPer + "," + p1.x * _zoomPer + "," + p1.y * _zoomPer;
        vM.DrawPolyLine(_coverLayer.drawLayer, coords, 2, "#FFFF00", 0.7).style.zIndex = 200;
        vM.DrawDot(_coverLayer.drawLayer, p1.x * _zoomPer, p1.y * _zoomPer, 6, "#FF0000", 1).style.zIndex = 201;
        fnAppendLabel(p1.x, p1.y, p1.d);
        p0 = p1;
    }
}

function fnAppendLabel(x, y, d, unit) {
    if(typeof unit == "undefined") unit = "m";
    var div = vM.$C("div");
    var l = Math.round(d);
    if(l > 1024) l = l / 1000 + "&nbsp;k" + unit;
    else l = l + "&nbsp;" + unit;
    div.innerHTML = "<span style='border:1px solid #000000;background-color:#ffffff;color:#000000;font-size:12px;padding:0 2px;'>" + l + "</span>";
    vM.appendEntity(div, _coverLayer.drawLayer, false, x, y, 20, 16, -3, -3, false);
    div.style.zIndex = 202;
    return div;
}

function fnUnScale() {
    if(_coverLayer.drawLayer) {
        _coverLayer.drawLayer.innerHMTL = "";
        _coverLayer.drawLayer.parentNode.removeChild(_coverLayer.drawLayer);
        _coverLayer.drawLayer = null
    }
    _coverLayer.pointArr = null;
    _coverLayer.onmousedown = null;
    _coverLayer.onclick = null;
    _coverLayer.ondblclick = null;
    vM.HidePointerTip();
    fnHidCover();
    _isBeginScale = false;
}

function fnChangeCoords(coords, zoomPer) {
    var str = "";
    if(coods.length > 0) {
        str = coords[0].x * zoomPer + "," + coords[0].y * zoomPer;
    }
    if(coords.length > 1) {
        for(var i=1; i<coords.length; i++) {
            str += "," + coords[i].x * zoomPer + "," + coords[0].y * zoomPer;
        }
    }
    return str;
}

function fnPloy() { // 测面
    var tip = '<div style="height:15px; line-height:15px; border:1px solid #1A70C7; background:#FFFFFF; padding:0 4px 0 4px;filter:alpha(opacity=90); opacity:.9; float:left; color:#000; font-size:12px; white-space:nowrap;">单击左键插入测量点，右键结束</div>';
    vM.ShowPointerTip(tip);
    fnShowCover();
    _coverLayer.onmousedown = function(event) {
        event=event||vM.Body.window.event;
        if(event.button == 2) {
            if(_coverLayer.releaseCapture)
                _coverLayer.releaseCapture();
            else if(window.releaseEvents)
                window.releaseEvents(Event.MOUSEDOWN|Event.MOUSEMOVE|Event.MOUSEUP);
            fnUnScale();
            return;
        }
        this.downX = event.clientX;
        this.downY = event.clientY
    };
    _coverLayer.pointArr = [];
    _coverLayer.area = 0;
    _coverLayer.drawLayer = vM.NewMapLayer("drawLayer", 1000);
    _coverLayer.onclick = function(event) {
        event=event || vM.Body.window.event;
        if(Math.abs(event.clientX - _coverLayer.downX) > 9 || Math.abs(event.clientY - _coverLayer.downY) > 9) return;
        _coverLayer.pointArr[_coverLayer.pointArr.length] = [];
        _coverLayer.pointArr[_coverLayer.pointArr.length - 1][0] = vM.PointerX();
        _coverLayer.pointArr[_coverLayer.pointArr.length - 1][1] = vM.PointerY();
        if(_coverLayer.pointArr.length == 1) {
            vM.DrawDot(_coverLayer.drawLayer, _coverLayer.pointArr[0][0] * _zoomPer, _coverLayer.pointArr[0][1] * _zoomPer, 6, "#FF0000", 1).style.zIndex = 201;
            _coverLayer.onmousemove = function(event) {
                event=event || vM.Body.window.event;
                if(_coverLayer.ployTempLine) _coverLayer.ployTempLine.parentNode.removeChild(_coverLayer.ployTempLine);
                if(_coverLayer.pointArr.length == 1)
                    _coverLayer.coords = _coverLayer.pointArr[0][0] * _zoomPer + "," + _coverLayer.pointArr[0][1] * _zoomPer +
                                        "," + vM.PointerX() * _zoomPer + "," + vM.PointerY() * _zoomPer;
                else
                    _coverLayer.coords = _coverLayer.pointArr[0][0] * _zoomPer + "," + _coverLayer.pointArr[0][1] * _zoomPer +
                                        "," + vM.PointerX() * _zoomPer + "," + vM.PointerY() * _zoomPer +
                                        "," + _coverLayer.pointArr[_coverLayer.pointArr.length - 1][0] * _zoomPer + "," + _coverLayer.pointArr[_coverLayer.pointArr.length - 1][1] * _zoomPer;
                _coverLayer.ployTempLine = vM.DrawPolyLine(_coverLayer.drawLayer, _coverLayer.coords, 2, "#FFFF00", 0.4);
            }
            if(_coverLayer.setCapture)
                _coverLayer.setCapture();
            else if(window.captureEvents)
               window.captureEvents(Event.MOUSEDOWN|Event.MOUSEMOVE|Event.MOUSEUP);
        }else {
            _coverLayer.coords = fnGetCoordsStr(_coverLayer.pointArr);
            if(_coverLayer.ploy){_coverLayer.ploy.parentNode.removeChild(_coverLayer.ploy);}
            _coverLayer.ploy = vM.DrawPoly(_coverLayer.drawLayer, _coverLayer.coords, 1.5, "#B9E7FB", "#FFFF00", 0.6);
            if(_coverLayer.pointArr.length > 2) {
                _coverLayer.area = getArea(_coverLayer.pointArr);
                if(_coverLayer.label) _coverLayer.label.parentNode.removeChild(_coverLayer.label);
                _coverLayer.label = fnAppendLabel(_coverLayer.pointArr[_coverLayer.pointArr.length - 1][0], _coverLayer.pointArr[_coverLayer.pointArr.length - 1][1], _coverLayer.area, "m<sup>2</sup>");
            }
        }
    }
    _isBeginPloy = true;
}

function fnGetCoordsStr(pointArr) {
    var x0 = pointArr[0][0], y0 = pointArr[0][1];
    var coords = x0 * _zoomPer + "," + y0 * _zoomPer;
    for(var i=1; i<pointArr.length; i++) {
        coords += "," + pointArr[i][0] * _zoomPer + "," + pointArr[i][1] * _zoomPer;
    }
    return coords;
}

function fnReDrawPloy() {
    if(!_coverLayer.pointArr || _coverLayer.pointArr.length < 1 || !_coverLayer.drawLayer) return;
    _coverLayer.drawLayer.innerHTML = "";
    _coverLayer.ploy = null;
    _coverLayer.label = null;
    vM.DrawDot(_coverLayer.drawLayer, _coverLayer.pointArr[0][0] * _zoomPer, _coverLayer.pointArr[0][1] * _zoomPer, 6, "#FF0000", 1).style.zIndex = 201;
    if(_coverLayer.pointArr.length > 1) {
        _coverLayer.coords = fnGetCoordsStr(_coverLayer.pointArr);
        if(_coverLayer.ploy){_coverLayer.ploy.parentNode.removeChild(_coverLayer.ploy);}
        _coverLayer.ploy = vM.DrawPoly(_coverLayer.drawLayer, _coverLayer.coords, 1.5, "#B9E7FB", "#FFFF00", 0.6);
        if(_coverLayer.pointArr.length > 2) {
            _coverLayer.area = getArea(_coverLayer.pointArr);
            if(_coverLayer.label) _coverLayer.label.parentNode.removeChild(_coverLayer.label);
            _coverLayer.label = fnAppendLabel(_coverLayer.pointArr[_coverLayer.pointArr.length - 1][0], _coverLayer.pointArr[_coverLayer.pointArr.length - 1][1], _coverLayer.area, "m<sup>2</sup>");
        }
    }
}

function fnUnPloy() {
    vM.HidePointerTip();
    _coverLayer.onmousemove = null;
    _coverLayer.onmousedown = null;
    _coverLayer.onclick = null;
    _coverLayer.pointArr = null;
    _coverLayer.coords = null;
    _coverLayer.area = null;
    _coverLayer.ployTempLine = null;
    _coverLayer.ploy = null;
    _coverLayer.label = null;
    if(_coverLayer.drawLayer) {
        _coverLayer.drawLayer.innerHMTL = "";
        _coverLayer.drawLayer.parentNode.removeChild(_coverLayer.drawLayer);
        _coverLayer.drawLayer = null
    }
    fnHidCover();
    _isBeginPloy = false;
}

function fnPane() { // 框选
    var tip = '<div style="height:15px;line-height:15px;border:1px solid #1A70C7;background:#FFFFFF;padding:0 4px 0 4px;filter:alpha(opacity=90);opacity:.9;float:left;color:#000; font-size:12px; white-space:nowrap;">在地图上框选出搜索范围</div>';
    vM.ShowPointerTip(tip);
    fnShowCover();
    _coverLayer.onmousedown = function(event) {
        event = event || vM.Body.window.event;
        cancelBubble(event, true);
        if(_coverLayer.setCapture){
            _coverLayer.setCapture();
        }else if(window.captureEvents){
           window.captureEvents(Event.MOUSEDOWN|Event.MOUSEMOVE|Event.MOUSEUP);
        }
        if(_coverLayer.pane) return;
        _coverLayer.paneLayer = vM.NewMapLayer("paneLayer", 1000);
        _coverLayer.pane = vM.$C("div");
        _coverLayer.pane.style.border = "1px solid #68D5F4";
        _coverLayer.pane.innerHTML = "<div style='width:100%;height:100%;background:#A2E3FF;filter:alpha(opacity=40);opacity:.4;'></div>";
        _coverLayer.pane.style.width = "1px";
        _coverLayer.pane.style.height = "1px";
        _coverLayer.pane.style.overflow = "hidden";
        _coverLayer.paneDownX = event.clientX;
        _coverLayer.paneDownY = event.clientY;
        _coverLayer.paneLeft = vM.CenterX() + (_coverLayer.paneDownX - _bodyWidth / 2) / _zoomPer;
        _coverLayer.paneTop = vM.CenterY() + (_coverLayer.paneDownY - (_bodyHeight - _vMTop) / 2) / _zoomPer;
        vM.appendEntity(_coverLayer.pane, _coverLayer.paneLayer, false, _coverLayer.paneLeft, _coverLayer.paneTop, 1, 1, 0, 0, false);
        _coverLayer.beginPane = true;
    }
    _coverLayer.onmousemove = function(event) {
        event = event || vM.Body.window.event;
        cancelBubble(event, true);
        
        if(event.pageX == undefined){event.pageX = event.clientX + document.body.scrollLeft;}
        if(event.pageY == undefined){event.pageY = event.clientY + document.body.scrollTop;}
        if(vM.Body.MapState.PointerTip){ //有用户自定义的Tip则鼠标跟随显示
            vM.Body._ShowPointerTip(event.pageX,event.pageY);
        }
        if(!_coverLayer.beginPane) return;
        var w = event.clientX - _coverLayer.paneDownX;
        var h = event.clientY - _coverLayer.paneDownY;
        _coverLayer.pane.style.width = w < 1 ? "1px" : w + "px";
        _coverLayer.pane.style.height = h < 1 ? "1px" : h + "px";
    }
    _coverLayer.onmouseup = function(event) {
        event = event || vM.Body.window.event;
        cancelBubble(event, false);
        if(_coverLayer.releaseCapture){
            _coverLayer.releaseCapture();
        }else if(window.releaseEvents){
            window.releaseEvents(Event.MOUSEDOWN|Event.MOUSEMOVE|Event.MOUSEUP);
        }
        if(!_coverLayer.beginPane) return;
        _coverLayer.beginPane = false;
        _coverLayer.paneRight = vM.CenterX() + (event.clientX - _bodyWidth / 2) / _zoomPer;
        _coverLayer.paneBottom = vM.CenterY() + (event.clientY - (_bodyHeight - _vMTop) / 2) / _zoomPer;
        if(_coverLayer.paneRight - _coverLayer.paneLeft < 10 || _coverLayer.paneBottom - _coverLayer.paneTop < 10) {
            _coverLayer.paneDownX = _coverLayer.paneDownY = null;
            _coverLayer.paneRight = _coverLayer.paneBottom = _coverLayer.paneLeft = _coverLayer.paneTop = null;
            _coverLayer.pane.parentNode.removeChild(_coverLayer.pane);
            _coverLayer.pane = null;
        }else {
            var div = vM.$C("div");
            div.innerHTML = _paneSearchStr;
            vM.appendEntity(div, _coverLayer.paneLayer, false, vM.CenterX(), vM.CenterY(), 300, 83, 150, 100, false);
            _coverLayer.paneLayer.paneKeywords = vM.$("paneKeywords");
            _coverLayer.paneLayer.paneOkBut = vM.$("paneOkBut");
            _coverLayer.paneLayer.paneOkBut.onclick = function(event) {
                if(_coverLayer.paneLayer.paneKeywords.value == "") {
                    alert("请输入搜索关键字！");
                    return;
                }else {
                    beginSearch(_coverLayer.paneLayer.paneKeywords.value, "ad", _coverLayer.paneLeft, _coverLayer.paneTop, _coverLayer.paneRight, _coverLayer.paneBottom);
                    fnUnPane();
                }
            };
            _coverLayer.paneLayer.onkeydown = function(event) {
                if(!event && !(event = vM.Body.window.event)) return;
                if(event.keyCode == 13) {
                    _coverLayer.paneLayer.paneOkBut.onclick();
                }else if(event.keyCode == 27) {
                    fnUnPane();
                }
            }
            vM.HidePointerTip();
            fnHidCover();
            _coverLayer.paneLayer.paneKeywords.focus();
        }
    }
    _coverLayer.onkeypress = function(event) {
        event = event || vM.Body.window.event;
        if(!event) return;
        if(event.keyCode == 27) {
            fnUnPane();
        }
    }
    _isBeginPane = true;
}

function fnUnPane() {
    vM.HidePointerTip();
    fnHidCover();
    if(_coverLayer.pane) {
        _coverLayer.paneDownX = _coverLayer.paneDownY = null;
        _coverLayer.paneRight = _coverLayer.paneBottom = _coverLayer.paneLeft = _coverLayer.paneTop = null;
        _coverLayer.beginPane = null;
        _coverLayer.pane.parentNode.removeChild(_coverLayer.pane);
        _coverLayer.pane = null;
    }
    if(_coverLayer.paneLayer) {
        _coverLayer.paneLayer.innerHTML = "";
        _coverLayer.paneLayer.parentNode.removeChild(_coverLayer.paneLayer);
        _coverLayer.paneLayer = null;
    }
    if(_coverLayer.beginPane) {
        if(_coverLayer.releaseCapture){
            _coverLayer.releaseCapture();
        }else if(window.releaseEvents){
            window.releaseEvents(Event.MOUSEDOWN|Event.MOUSEMOVE|Event.MOUSEUP);
        }
    }
    _coverLayer.onmouseup = _coverLayer.onmousemove = _coverLayer.onmousedown = null;
    _isBeginPane = false;
}

function fnNav() { // 导航
	_navCoverDiv = $To($C("div"), document.body);
	_navCoverDiv.className = "coverDiv";
	_navCoverDiv.div = $To($C("div"), document.body);
	_navCoverDiv.div.style.position = "absolute";
	_navCoverDiv.div.style.top = _navCoverDiv.div.style.left = "1px";
	_navCoverDiv.div.style.width = _navCoverDiv.div.style.height = "100%";
	_navCoverDiv.div.style.marginRight = _navCoverDiv.div.style.marginLeft = "auto";
	_navCoverDiv.div.style.textAlign = navigator.B=="IE" ? "center" : "-moz-center";
	_navCoverDiv.div.style.zIndex = 1001;
	_navCoverDiv.div.style.display = "block";
	_navCoverDiv.div.innerHTML = '<div style="marign:auto;width:590px;height:500px;">'
	                       + '  <div style="width:100%;height:40px;margin-top:100px;text-align:right;"><img src="/images/navclose.gif" style="cursor:pointer;" onclick="fnNavExit();" /></div>'
	                       + '  <div style="width:100%;text-align:center;"><img src="/images/daohang.gif" border="0" usemap="#Map" /></div>'
	                       + '</div>'
	                       + '<map name="Map" id="Map1">'
	                       + '  <area shape="rect" coords="368,159,399,173" href="javascript:fnNavClick(21961,9375);" />'
	                       + '  <area shape="rect" coords="275,117,313,131" href="javascript:fnNavClick(16622,6773);" />'
	                       + '  <area shape="rect" coords="345,97,383,111" href="javascript:fnNavClick(20777,7194);" />'
	                       + '  <area shape="rect" coords="73,157,127,171" href="javascript:fnNavClick(2322,8775);" />'
	                       + '  <area shape="rect" coords="300,183,343,197" href="javascript:fnNavClick(17771,10610);" />'
	                       + '  <area shape="rect" coords="309,142,347,156" href="javascript:fnNavClick(19360,8606);" />'
	                       + '  <area shape="rect" coords="394,126,435,139" href="javascript:fnNavClick(23644,7268);" />'
	                       + '  <area shape="rect" coords="378,344,443,356" href="javascript:fnNavClick(23488,21871);" />'
	                       + '  <area shape="rect" coords="142,127,196,141" href="javascript:fnNavClick(10624,8381);" />'
	                       + '  <area shape="rect" coords="340,241,378,255" href="javascript:fnNavClick(21660,15026);" />'
	                       + '  <area shape="rect" coords="230,219,284,232" href="javascript:fnNavClick(13831,13009);" />'
	                       + '</map>';
}

function fnNavExit() {
    if(_navCoverDiv.div) document.body.removeChild(_navCoverDiv.div);
    _navCoverDiv.div = null;
    document.body.removeChild(_navCoverDiv);
    _navCoverDiv = null;
}

function fnNavClick(x, y) {
    fnNavExit();
    vM.MoveTo(x, y, true);
    vMe.MoveTo(x, y, true);
}

function fnFull() { // 全屏
    if(_isFullScreen) {
        $("topLine").style.display = "";
        if(_fullConfig.searchDialog) {
            searchDialog.moveTo(parseInt(_fullConfig.searchDialog.left), parseInt(_fullConfig.searchDialog.top));
            searchDialog.mini(_fullConfig.searchDialog.minied);
        }
        if(_fullConfig.newsDialog) {
            newsDialog.moveTo(parseInt(_fullConfig.newsDialog.left), parseInt(_fullConfig.newsDialog.top));
            newsDialog.mini(_fullConfig.newsDialog.minied);
        }
        if(_fullConfig.newsDetailDialog) {
            newsDetailDialog.moveTo(parseInt(_fullConfig.newsDetailDialog.left), parseInt(_fullConfig.newsDetailDialog.top));
            newsDetailDialog.mini(_fullConfig.newsDetailDialog.minied);
        }
        if(_fullConfig.vEyeZoomBar && ($('EyeHid').className == 'EyeShow')) {
            vEyeZoomBar.EyeHid();
        }
        if(_srcexitBut) _srcexitBut.style.display = "none";
        _vMTop = _fullConfig._vMTop;
        window.onresize();
        _isFullScreen = false;
    }else {
        $("topLine").style.display = "none";
        if(searchDialog && searchDialog.showed) {
            _fullConfig.searchDialog = {left:searchDialog.div.style.left, top:searchDialog.div.style.top, minied:searchDialog.minied};
            searchDialog.moveTo(5, 5);
            searchDialog.mini(true);
        }else _fullConfig.searchDialog = null;
        if(newsDialog && newsDialog.showed) {
            _fullConfig.newsDialog = {left:newsDialog.div.style.left, top:newsDialog.div.style.top, minied:newsDialog.minied};
            newsDialog.moveTo(5, 38);
            newsDialog.mini(true);
        }else _fullConfig.newsDialog = null;
        if(newsDetailDialog && newsDetailDialog.showed) {
            _fullConfig.newsDetailDialog = {left:newsDetailDialog.div.style.left, top:newsDetailDialog.div.style.top, minied:newsDetailDialog.minied};
            newsDetailDialog.moveTo(308, 5);
            newsDetailDialog.mini(true);
        }else _fullConfig.newsDetailDialog = null;
        if(vEyeZoomBar && ($('EyeHid').className == 'EyeHid')) {
            _fullConfig.vEyeZoomBar = {showed:true};
            vEyeZoomBar.EyeHid();
        }else _fullConfig.vEyeZoomBar = null;
        if(!_srcexitBut){
            _srcexitBut = $To($C("div"), document.body);
            _srcexitBut.className = "srcexit";
            _srcexitBut.onclick= fnFull;
        }
        _srcexitBut.style.display = "block";
        _fullConfig._vMTop = _vMTop;
        _vMTop = 0;
        window.onresize();
        _isFullScreen = true;
    }
}

function fnLabel(ele){
    if(vM.flgShowLabel){
        vM.flgShowLabel=false;
        vM.ViewLabels(false);
        vM.Show();
        ele.innerHTML = "显示标签";
    }else{
        vM.flgShowLabel=true;
        vM.ViewLabels(true);
        vM.Show();
        ele.innerHTML = "隐藏标签";
    }
}
