﻿/*********************************************************************
*
*功能：详细信息DIV在地图叠加和DIV内部功能实现
*
*作者：周国民
*
*版权：本程序只能在有效的授权许可下使用。未经许可，不得以任何手段擅自使用或传播。
*
*********************************************************************/

var infoDiv ;
var nData
var SmX="";
var SmY="";
var LayerName="";//图层名
var MarkID;
var DWName="未知";//单位名称
var D=new Function('obj','return document.getElementById(obj);')

function InfoDiv(markId,smx,smy,layername){
    
    SmX=smx;
    SmY=smy; 
    LayerName=layername;
    MarkID = markId;
  
    for(var k=0;k<XmlRegionData.selectNodes("//Geooe/ViewBlocks/ViewBlock").length;k++){
        var FirstLayerNodes = XmlRegionData.selectNodes("//Geooe/ViewBlocks/ViewBlock").item(k);
        
        if(FirstLayerNodes.getAttribute('KeyWord') == LayerName)
        {  
            //nData =  returnDataXML().item(0).selectSingleNode("//R/F[@N='SmID'  and @V='"+markId+"' ]").parentNode;   
                
            var FirstLayerNodes = XmlRegionData.selectNodes("//Geooe/ViewBlocks/ViewBlock").item(k);
            var SecondLayerNodes = FirstLayerNodes.selectNodes("Style/Map/DetailInfo/Items/Item");
            
            nData = FirstLayerNodes.selectSingleNode("D/Table/R/F[@N='SmID' and @V='"+markId+"']").parentNode; //通过markid找到所要数据的R节点 
             
            var name = getDynamicValue(SecondLayerNodes.item(0).getAttribute("FieldName"),nData,SecondLayerNodes.item(0).getAttribute("DefaultValue"));
            DWName = name;
            if(infoDiv !="" && infoDiv!=null)
            {
                infoDiv.close();
            }
            infoDiv = new InfoBox();
            
            CreateInfoDiv(250,150);
            
        }
    
    }
    
}
//创建一个详细信息DIV
function CreateInfoDiv(DivWidth , DivHeight , type)
{
            
           
            var infoHtml ="<div id='MessageDiv' style='margin-right:10px'><span style='font-size:14px'><strong>"+DWName+"</strong></span></div>";
            infoDiv.init(MarkID,DivWidth,DivHeight,infoHtml);
            var tbl = CreateMessageTable();
            infoDiv.append(tbl);
            
            if(type=="Rim")
            {
                
                var txtDiv = CreateTxtDiv(type);
                infoDiv.append(txtDiv);
            }
            else if(type=='ErroCheck')
            {
                var txtDiv = CreateTxtDiv(type);
                infoDiv.append(txtDiv);
            }
            
            var ltb = CreateDiv();
            infoDiv.append(ltb);
            
            infoDiv.addToMap(oMap,MarkID,SmX,SmY);
            oMap.MoveTo([SmX,SmY]); 
            
}

//创建详细信息DIV表格
function CreateMessageTable()
{
    for(var k=0;k<XmlRegionData.selectNodes("//Geooe/ViewBlocks/ViewBlock").length;k++){
        var FirstLayerNodes = XmlRegionData.selectNodes("//Geooe/ViewBlocks/ViewBlock").item(k);
        
        if(FirstLayerNodes.getAttribute('KeyWord') == LayerName){
        

            var SecondLayerNodes = FirstLayerNodes.selectNodes("Style/Map/DetailInfo/Items/Item");    

            var otable = document.createElement("table");
            otable.setAttribute("border" ,"0");
            otable.setAttribute("width","100%");
            otable.setAttribute("class","DivMessage");
            var otbody = document.createElement("tbody");
            otable.appendChild(otbody);
            var arrFieldName =  new Array();
            for(var i = 0; i<SecondLayerNodes.length;i++)
            {

                var DataText = getDynamicValue(SecondLayerNodes.item(i).getAttribute("FieldName"),nData,SecondLayerNodes.item(i).getAttribute("DefaultValue"));//获取数据             
                var oTitle = SecondLayerNodes.item(i).getAttribute('Title');
                var NoSameField =true;
                for(var j=0;j<=i;j++)
                {    
                   if(oTitle == arrFieldName[j])
                   {
                        NoSameField=false;
                   } 
                 }             
               if(NoSameField)
               { 

                    arrFieldName.push(oTitle);
                    var oRow = otbody.insertRow(i);
                    
                    var oCell = oRow.insertCell(0);
                    oCell.setAttribute("width" , "50");
                    oCell.appendChild(document.createTextNode(SecondLayerNodes.item(i).getAttribute('Title')));//获取字段名称
                    oRow.insertCell(1);
                    if(DataText !=null && DataText != "" ){
                        oRow.cells[1].appendChild(document.createTextNode(DataText));
                    }
                    else
                    {
                        oRow.cells[1].appendChild(document.createTextNode("未知"));
                    }
                }
                
            }

            otable.deleteRow(0);
            return otable;
        }
    }
}

//创建详细信息DIV中的周边查询div
function CreateDiv()
{
    var oDiv = document.createElement("div");
    oDiv.setAttribute("class","RimDiv");
    var oBtn = document.createElement("input");
    oBtn.setAttribute("id","DivBtn");
    oBtn.setAttribute("type" , "button");
    oBtn.setAttribute("value" , "周边查询>>");
    oBtn.setAttribute("class","RimBtnCSS");
    oBtn.setAttribute("onclick" , "ShowRimQurey(1);")
    var oErroCheckBtn = document.createElement("input");
    oErroCheckBtn.setAttribute("id" , "ErroCheckBtn");
    oErroCheckBtn.setAttribute("type" , "button");
    oErroCheckBtn.setAttribute("value" , "地图纠错>>");
    oErroCheckBtn.setAttribute("class" , "RimBtnCSS");
    oErroCheckBtn.setAttribute("onclick" , "ShowRimQurey(2);");
    oDiv.appendChild(oBtn);
    oDiv.appendChild(oErroCheckBtn);
    
    
    return oDiv;
}

//文本输入框
function CreateTxtDiv(type)
{
    var oDiv = document.createElement("div");
     oDiv.setAttribute("class" , "TxtDivCSS");
    if(type=="Rim")
    {
        var oRimDiv = document.createElement("div");
        oRimDiv.setAttribute("id","RimDivdiv");
        oRimDiv.setAttribute("class","RimDivdivCSS"); 
        var oRimTxtBox = "<div><span>周边查询：</span><br/><input type='textbox' id='RimTxtBox' onclick='this.focus();' style='width:170px' /><input type='button' value='查询' onclick='RimQuery()'/></div>";
        oRimDiv.innerHTML = oRimTxtBox;
        
        oDiv.appendChild(oRimDiv);
       
    }
    else if(type=="ErroCheck")
    {
        var oErroCheckDiv = document.createElement("div");
        oErroCheckDiv.setAttribute("id","ErroCheckDivdiv");
        oErroCheckDiv.setAttribute("class","RimDivdivCSS");
        var oRimTxtAreaBox = "<div><span>地图纠错：</span><br/><textarea id='DescriptionMeg' cols='20' rows='3' onclick='this.focus();'></textarea><input type='button' value='提交' onclick='sendErroDescription()'/></div>";
        oErroCheckDiv.innerHTML = oRimTxtAreaBox;
        
        oDiv.appendChild(oErroCheckDiv);
    }
    return oDiv;
}

//获取地图上的某点的点坐标
function GetCoordinate(x , y)
{
    var PointImg = "<img alt='' src='images/Erro.gif'/>"
    oMap.AddMark("NewCoordinate", x , y,1,75,PointImg,"",2000,"");
    oMap.PanTo();
}
//显示查询框
function ShowRimQurey(id)
{
    var RimDiv = document.getElementById("RimDivdiv");
    var ErroCheckDiv = document.getElementById("ErroCheckDiv");
    if(id==1)
    {
        CreateInfoDiv(250,150,'Rim'); 
    }
    else
    {
  
        CreateInfoDiv(250,200,'ErroCheck');
    }
    
}
//隐藏查询框
function HiddenRimQurey(id)
{
    if(id=="RimDiv")
    {
        document.getElementById("RimDivdiv").style.display='none';
    }
    else
    {
        document.getElementById("ErroCheckDiv").style.display='none';
    }
    document.getElementById("DivBtn").style.display='block';
    document.getElementById("ErroCheckBtn").style.display='block';
}


//周边查询的查询方法
function RimQuery()
{
   // CreateInfoDiv(250,200);//创建InfoDiv
    
    window.status="正在查询，请稍候...";
    var strWhere = document.getElementById("RimTxtBox").value;
    var oQueryParam = new Object();
    //var arrLayer =["539","499","547","545","503","484","540","472","501","515","470","541","496","487","482","489","467","468","483","493","493"];
    var strQuery="";
    strQuery +="539@Name like '%"+strWhere+"%'#547@Name like '%"+strWhere+"%'#472@Name like'%"+strWhere+"%'#540@DanWeiName like '%"+strWhere+"%'#515@Name like '%"+strWhere+"%'#493@Name like '%"+strWhere+"%'#541@Remark='菜市场' and ShiChangName like '%"+strWhere+"%'";
    oQueryParam.QueryExp = escape(strQuery);
    oQueryParam.QueryType ="MapList";
    oMap.SpacialQuery(oQueryParam,[SmX,500],[SmY],"Circle");//缓冲查询..
    
}
function CreateHttpRequest()
{
    var oH=null;
    if(window.ActiveXObject)
        oH=new ActiveXObject("MicroSoft.XMLHTTP");
    else if(window.XMLHttpRequest)
        oH=new XMLHttpRequest();
    return oH;
}

//提交错误描述
function sendErroDescription()
{   
    var DescriptionMeg = D("DescriptionMeg").value;
    var layerID;
    if(oMap.QueryParams.QueryExp.indexOf("@")>0)
    {
        var arrID = oMap.QueryParams.QueryExp.split("@");
        layerID = arrID[0];
    }

    var httpRequest=null;
    httpRequest=CreateHttpRequest();
    httpRequest.onreadystatechange=function()
        {
            if(httpRequest.readyState==4&&httpRequest.status==200)
            {            
                alert(httpRequest.responseText);
            }
        }
    httpRequest.open("GET","Ajax/AjaxErroMessage.aspx?value=" +escape( DescriptionMeg) + "&layerID=" + escape(layerID) + "&SmID=" + escape(MarkID) ,true);
    httpRequest.send(null);

}