﻿// JavaScript Document

//选择器  function $(id){return document.getElementById(id);} 的扩展函数
function $(id, tag) {
    var re = (id && typeof (id) != 'string') ? id : document.getElementById(id);
    if (arguments.length == 1) { return re; } else { return (!tag) ? re : re.getElementsByTagName(tag); }
}

document.write('<scr' + 'ipt type="text/javascript" src="http://union.mapbar.com/apis/maps/free?f=mapi&v=31.2&k=aCW9cItqL7g9c7geLhNpEef9OIF9EeFhMYMzMeP9OYdhTeFh@hOdF@ch9Mc9ppFI9F9M79F77acqMIIc97EIhNcMch9dhzOFIFIOFE7Fp9eF9c79MI9c9z@pMqg9FB5="></scr' + 'ipt>');

var maplet = null;
var mapPanel = null;
var mapLevel = 11;

var standIcon = 'PointIcon/QI_24x24.png';
var markPointIcon = 'PointIcon/centerPoi.gif';

function initMap(mapPanelID) {
    mapPanel = $(mapPanelID);
    maplet = new Maplet(mapPanelID);
    maplet.addControl(new MStandardControl());
    maplet.centerAndZoom(new MPoint(114.02263, 33.57508), mapLevel);
    maplet.showOverview(true, false);
    maplet.clickToCenter = false;
    maplet.resize(mapPanel.style.width, mapPanel.style.height);
}

function converXY(lat, lon) {
    var xx = parseFloat(lat), yy = parseFloat(lon);
    xx = xx > 100000 ? (xx + 833) / 100000 : xx;
    yy = yy > 100000 ? (yy - 657) / 100000 : yy;
    var point = {
        x: xx,
        y: yy
    };
    return point;
}

function moveToCenter(lat, lon) {
    //maplet.refresh();
    //var xy1 = maplet.toScreenCoordinate(maplet.getCenter().lat + ',' + maplet.getCenter().lon)
    //var xy2 = maplet.toScreenCoordinate(lat + ',' + lon)
    //maplet.panTo(xy2[1]-xy1[1],xy2[0]-xy1[0]);
    maplet.centerAndZoom(new MPoint(lon, lat), maplet.getZoomLevel());
}

// moveToCenter & openInfoWindow
var tmpMarker = null;
function MTC_OIW(lat, lon) {
    if (tmpMarker) {
        tmpMarker.setIcon(new MIcon(standIcon, 24, 24), true);
    }
    var xy = converXY(lat, lon);
    for (i = 0; i < maplet.getMarkers().length; i++) {
        var m = maplet.getMarkers()[i];
        if (m.pt.lat == xy.x && m.pt.lon == xy.y) {
            tmpMarker = m;
            m.setIcon(new MIcon(markPointIcon, 32, 32), true);
            moveToCenter(xy.x, xy.y);
            m.openInfoWindow();
            return false;
        }
    }
    return false;
}


// ##################################################################################

function createXMLHttpRequest() {
    if (window.ActiveXObject) {
        var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest) {
        var xmlHttp = new XMLHttpRequest();
    }
    return xmlHttp;
}

// 加载商户坐标
function loadPoints(DepartmentID, LeaderID) {
    var url = 'Include/GetPoints.asp?D=' + (DepartmentID == null ? '' : DepartmentID) + '&L=' + (LeaderID == null ? '' : LeaderID);
    url = url + ((url.indexOf('?') < 0) ? '?' : '&') + new Date().getTime();
    var xmlHttp = createXMLHttpRequest();
    xmlHttp.onreadystatechange = function () {
        if (xmlHttp.readyState == 4) {
            if (xmlHttp.status == 200) {

                var responseXML = xmlHttp.responseXML;
                var items = responseXML.getElementsByTagName("items");

                for (i = 0; i < items.length; i++) {

                    //从XML中获取其子分类的各自段值
                    var Item = items[i];
                    var o_ID = Item.getElementsByTagName("ID")[0].firstChild.nodeValue;
                    var o_Name = Item.getElementsByTagName("Name")[0].firstChild.nodeValue;
                    var o_DepartMent = Item.getElementsByTagName("DepartMent")[0].firstChild.nodeValue;
                    var o_Address = Item.getElementsByTagName("Address")[0].firstChild.nodeValue;
                    var o_Leader = Item.getElementsByTagName("Leader")[0].firstChild.nodeValue;
                    var o_Point = Item.getElementsByTagName("Point")[0].firstChild.nodeValue.split('||');

                    var xy = converXY(o_Point[0], o_Point[1])
                    var x = xy.x;
                    var y = xy.y;
                    var z = o_Point[2];

                    var htmlStr = '';
                    htmlStr += '<div style="text-align:left; padding:3px 0px; line-height:20px;">';
                    htmlStr += '<div style="white-space:nowrap; overflow:hidden">经营场所：' + o_Address + '</div>';
                    htmlStr += '<div>监管人员：' + o_Leader + '</div>';
                    htmlStr += '<hr size="1">';
                    htmlStr += '<div><a href="Main.asp?D=' + o_DepartMent + '" title="查看 ' + o_Name + ' 所在管辖区域">所在管辖区域</a> | <a href="Details.asp?ID=' + o_ID + '" target="_blank" title="查看 ' + o_Name + ' 详细资料">商户详情</a> | <a href="Details.asp?ID=' + o_ID + '#mat" target="_blank" title="查看 ' + o_Name + ' 巡查情况">巡查记录</a></div>';
                    htmlStr += '</div>';

                    var options = {
                        xoffset: 24,
                        yoffset: 2,
                        opacity: 80,
                        enableStyle: false,
                        visible: true
                    };

                    var marker = new MMarker(
						new MPoint(y, x),
						new MIcon(standIcon, 24, 24),
						new MInfoWindow(
							"<strong style='font-size:9pt; line-height:14px; color:#FF6600;'>" + o_Name + "</strong>",
							htmlStr
						),
						new MLabel('<span style="display:inline-block; line-height:18px; padding:0px 3px; border:solid 1px #036; color:#036; background-color:#FFF;">' + o_Name + '</span>', options)
					);

                    MEvent.addListener(marker, "iw_afteropen", function (sender) {
                        moveToCenter(sender.pt.lat, sender.pt.lon);
                    });

                    maplet.addOverlay(marker);
                    maplet.setIwStdSize(240, 150);

                }

            } else {
                alert("在读取数据时发生异常!");
            }
        }
    };
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
}


// 加载工商所坐标
function loadDeparmentPoints(DepartmentID) {
    var url = 'Include/GetDepartmentPoints.asp?D=' + (DepartmentID == null ? '' : DepartmentID);
    url = url + ((url.indexOf('?') < 0) ? '?' : '&') + new Date().getTime();
    var xmlHttp = createXMLHttpRequest();
    xmlHttp.onreadystatechange = function () {
        if (xmlHttp.readyState == 4) {
            if (xmlHttp.status == 200) {

                var responseXML = xmlHttp.responseXML;
                var items = responseXML.getElementsByTagName("item");

                for (i = 0; i < items.length; i++) {

                    //从XML中获取其子分类的各自段值
                    var Item = items[i];
                    var iID = Item.getElementsByTagName("ID")[0].firstChild.nodeValue;
                    var iDepartMent = Item.getElementsByTagName("departMent")[0].firstChild.nodeValue;
                    var iAddress = Item.getElementsByTagName("address")[0].firstChild.nodeValue;
                    var iPoint = Item.getElementsByTagName("point")[0].firstChild.nodeValue.split('||');
                    var iPicture = Item.getElementsByTagName("picture")[0].firstChild.nodeValue;

                    var xy = converXY(iPoint[0], iPoint[1])
                    var x = xy.x;
                    var y = xy.y;
                    var z = iPoint[2];

                    var htmlStr = '';
                    htmlStr += '<div style="text-align:left; padding:3px 0px; line-height:20px; font-size:10pt;">';
                    htmlStr += '<div style="white-space:nowrap; overflow:hidden">地址：' + iAddress + '</div>';
                    htmlStr += '<hr size="1">';
                    htmlStr += '<div><a href="Main.asp?D=' + iID + '" title="查看 ' + iDepartMent + ' 管辖区域">查看管辖区域</a> | <a href="Display.asp?D=' + iID + '" title="查看 ' + iDepartMent + ' 管辖区域内所有商户分布">查看该区商户</a></div>';
                    htmlStr += '</div>';

                    var options = {
                        xoffset: 32,
                        yoffset: 6,
                        opacity: 80,
                        enableStyle: false,
                        visible: true
                    };

                    var marker = new MMarker(
						new MPoint(y, x),
						new MIcon(iPicture, 32, 32),
						new MInfoWindow(
							"<strong style='font-size:9pt; line-height:14px; color:#FF6600;'>" + iDepartMent + "</strong>",
							htmlStr
						),
						new MLabel('<span style="display:inline-block; line-height:18px; padding:0px 3px; border:solid 1px #F00; color:#F00; background-color:#FFF;">' + iDepartMent + '</span>', options)
					);

                    maplet.addOverlay(marker);
                    maplet.setIwStdSize(240, 120);

                }

            } else {
                alert("在读取数据时发生异常!");
            }
        }
    };
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
}


// 加载工商所管辖区域
function loadRegional(DepartmentID, fill, edit) {
    var url = 'Include/GetWayPoints.asp?ac=GET&D=' + (DepartmentID == null ? '' : DepartmentID);
    url = url + ((url.indexOf('?') < 0) ? '?' : '&') + new Date().getTime();
    var xmlHttp = createXMLHttpRequest();
    xmlHttp.onreadystatechange = function () {
        if (xmlHttp.readyState == 4) {
            if (xmlHttp.status == 200) {

                var responseXML = xmlHttp.responseXML;
                var departMentInfo = responseXML.getElementsByTagName("departMentInfo");
                var points = responseXML.getElementsByTagName("point");
                if (departMentInfo.length != 1 || points.length < 3) {
                    //alert('绘制区域至少需要3个坐标！');
                    return;
                }

                var departmentID = departMentInfo[0].getElementsByTagName("id")[0].firstChild.nodeValue;
                var departmentName = departMentInfo[0].getElementsByTagName("name")[0].firstChild.nodeValue;

                var wayPoint = [];

                for (i = 0; i < points.length; i++) {
                    var iX = points[i].getElementsByTagName("x")[0].firstChild.nodeValue;
                    var iY = points[i].getElementsByTagName("y")[0].firstChild.nodeValue;
                    var xy = converXY(iX, iY);
                    wayPoint.push(new MPoint(xy.y, xy.x));
                }
                //wayPoint.push(wayPoint[0]);

                var brush = new MBrush();
                brush.fill = fill;
                brush.stroke = 2;
                var line = new MPolyline(
					wayPoint,
					brush,
					new MInfoWindow(departmentName, "管辖区域<br /><br /><a href='Display.asp?D=" + departmentID + "'>查看管辖区域内商户信息</a>")
				);

                MEvent.addListener(line, "mouseover", function () {
                    var b = new MBrush();
                    b.fill = fill;
                    b.stroke = 2;
                    b.color = "blue";
                    b.bgcolor = "yellow";
                    line.setBrush(b);
                });

                MEvent.addListener(line, "mouseout", function () {
                    var b = new MBrush();
                    b.fill = fill;
                    b.stroke = 2;
                    line.setBrush(b);
                });

                maplet.addOverlay(line);
                if (edit) line.setEditable(true);

            } else {
                alert("在读取数据时发生异常!");
            }
        }
    };
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
}

// 清空区域坐标
function clearRegional(DepartmentID) {
    var url = 'Include/GetWayPoints.asp?ac=CLEAR&D=' + DepartmentID;
    url = url + ((url.indexOf('?') < 0) ? '?' : '&') + new Date().getTime();
    var xmlHttp = createXMLHttpRequest();
    xmlHttp.onreadystatechange = function () {
        if (xmlHttp.readyState == 4) {
            if (xmlHttp.status == 200) {
                var responseXML = xmlHttp.responseXML;
                var clearWayPoint = responseXML.getElementsByTagName("clearWayPoint");
                if (clearWayPoint.length != 1) throw ("清空数据时发生异常！");
            } else {
                alert("清空数据时发生异常!");
            }
        }
    };
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
}

// 加载工商所管辖区域
function saveRegional(DepartmentID, pidStr) {
    var url = 'Include/GetWayPoints.asp?ac=SET&D=' + DepartmentID + '&pidStr=' + pidStr;
    url = url + ((url.indexOf('?') < 0) ? '?' : '&') + new Date().getTime();
    var xmlHttp = createXMLHttpRequest();
    xmlHttp.onreadystatechange = function () {
        if (xmlHttp.readyState == 4) {
            if (xmlHttp.status == 200) {
                var responseXML = xmlHttp.responseXML;
                var clearWayPoint = responseXML.getElementsByTagName("setWayPoint");
                if (clearWayPoint.length != 1) throw ("保存数据时发生异常！");
            } else {
                alert("保存数据时发生异常!");
            }
        }
    };
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
}


// 加载管辖区域监管人员照片
function loadLeaderPhoto(DepartmentID, objID, itemsID) {
    var url = 'Include/GetDepartmentPoints.asp?D=' + (DepartmentID == null ? '' : DepartmentID);
    url = url + ((url.indexOf('?') < 0) ? '?' : '&') + new Date().getTime();
    var xmlHttp = createXMLHttpRequest();
    xmlHttp.onreadystatechange = function () {
        if (xmlHttp.readyState == 4) {
            if (xmlHttp.status == 200) {
                var responseXML = xmlHttp.responseXML;
                var leaders = responseXML.getElementsByTagName("leaders");
                if (leaders.length != 1) return;
                var leader = leaders[0].getElementsByTagName('leader');
                if (leader.length == 0) return;
                for (i = 0; i < leader.length; i++) {
                    var uID = leader[i].getElementsByTagName("ID")[0].firstChild.nodeValue;
                    var uName = leader[i].getElementsByTagName("name")[0].firstChild.nodeValue;
                    var uDuty = leader[i].getElementsByTagName("duty")[0].firstChild.nodeValue;
                    var uPhoto;
                    if (leader[i].getElementsByTagName("photo")[0].childNodes.length > 0) {
                        uPhoto = leader[i].getElementsByTagName("photo")[0].firstChild.nodeValue;
                    } else {
                        uPhoto = 'UpLoad/Face/Default.jpg';
                    }

                    var leaders = document.createElement('div');
                    leaders.className = 'item';
                    leaders.title = '职务：' + (uDuty == '' ? '未知' : uDuty);
                    leaders.onmouseover = function () {
                        this.style.borderColor = '#F60';
                    }
                    leaders.onmouseout = function () {
                        this.style.borderColor = '#036';
                    }

                    var leader_name = document.createElement('div');
                    leader_name.className = 'title';
                    leader_name.appendChild(document.createTextNode(uName));

                    function imgOnload(Img) {
                        Img.width = Img.width * 120 / Img.height;
                        Img.height = 120;
                    };
                    var img = new Image();
                    img.onload = function () { imgOnload(this); };
                    img.src = uPhoto;
                    img.width = 100;
                    img.height = 120;
                    img.border = 0;
                    window.setTimeout(function(){imgOnload(img)}, 500);

                    leaders.appendChild(img);
                    leaders.appendChild(leader_name);
                    $(itemsID).appendChild(leaders);
                }
                $(objID).style.display = 'block';
            }
        }
    };
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
}


// ##################################################################################
