
<!--
/**
 * 示意图关于前台展示信息点的所有js脚本 by zhangn
 */

/*
 *定义全局变量
 */
//定义信息点对象数组和其下标
var XXD = new Array();
var i_xxd = 0;
//定义天气信息点对象数组和其下标
var TQXXD = new Array();
var i_tq = 0;
//基建天气对象数组和其下标
var JJTQ = new Array();
var i_jjtq = 0;
//定义基建路况信息点对象数组
//起点->终点
var Q_Z_JJLKXXD = new Array();
//终点->起点
var Z_Q_JJLKXXD = new Array();
//基建路况对象数组和其下标
var JJLK = new Array();
var i_jjlk = 0;
//定义存储交调、施工和封闭图片地址的变量
var ShiGong;
var FengBi;
var JiaoDiao;
var JiaoDiaoShanDong;
//非基建施工与封闭信息对象数组和其下标
var SGFB = new Array();
var i_sgfb = 0;
//交调路况信息点对象数组和其下标
var JDLKXXD = new Array();
var i_jdlkxxd = 0;
//交调路况信息对象数组和其下标
//上行
var JDLK_SX = new Array();
var i_jdlk_sx = 0;
//下行
var JDLK_XX = new Array();
var i_jdlk_xx = 0;

/*
 *定义函数和对象
 */
//交调路况信息对象
function Jdlk(jtlId, ldId, ldmc, jczmc, gslmc, rq, pjcs, fwspdj, sxx, icon, qdcs, zdcs) {
  this.jtlId = jtlId;
  this.ldId = ldId;
  this.ldmc = ldmc;
  this.jczmc = jczmc;
  this.gslmc = gslmc;
  this.rq = rq;
  this.pjcs = pjcs;
  this.fwspdj = fwspdj;
  this.sxx = sxx;
  this.icon = icon;
  this.qdcs = qdcs;
  this.zdcs = zdcs;
}
//基建路况信息对象
function Jjlk(lkId, qdzhk, qdzhm, zdzhk, zdzhm, yclx, fx, ms, sj, sffb, icon) {
    this.lkId = lkId;
    this.qdzhk = qdzhk;
    this.qdzhm = qdzhm;
    this.zdzhk = zdzhk;
    this.zdzhm = zdzhm;
    this.yclx = yclx;
    this.fx = fx;
    this.ms = ms;
    this.sj = sj;
    this.sffb = sffb;
    this.icon = icon;
}
//基建天气信息对象
function Jjtq(tqId, ldId, qk, ms, sj, sffb, icon) {
    this.tqId = tqId;
    this.ldId = ldId;
    this.qk = qk;
    this.ms = ms;
    this.sj = sj;
    this.sffb = sffb;
    this.icon = icon;
}
//信息点对象
function Sytxxd(iconId, id, dyxxId, mc, x, y, width, height, isdiv, lx, sx, zt, zh1, ms) {
    this.iconId = iconId;
    this.id = id;
    this.dyxxId = dyxxId;
    this.x = x;
    this.y = y;
    this.mc = mc;
    this.width = width;
    this.height = height;
    this.isdiv = isdiv;
    this.lx = lx;
    this.sx = sx;
    this.zt = zt;
    this.zh1 = zh1; //基建路况使用
    this.ms = ms;   //非基建施工和封闭信息使用
}

//创建并往container中加入div
function addDiv(sytxxd) {
	// alert(window.top.screenTop);
    var divv = document.createElement("DIV");
    // y:230;x:310
    //document.body.scrollTop
    //alert(document.getElementById("ms_div").style.left + "," + document.getElementById("ms_div").style.top);
    //alert(sytxxd.x + "," + sytxxd.y);
    divv.style.top = Number(sytxxd.y) + "px";
    divv.style.left = Number(sytxxd.x) + "px";
    divv.style.position = "absolute";
    if(sytxxd.zt == '1')
      divv.style.visibility = "visible";
    else
      divv.style.visibility = "hidden";
    divv.style.zIndex = sytxxd.sx;
    //divv.setAttribute("dyxxId", sytxxd.dyxxId);
    if (sytxxd.isdiv == "1") {
        var wid = sytxxd.width;
        var hei = sytxxd.height;
        if (wid < 5) {      //Math.abs(wid)
            wid = 5;
        }
        if (hei < 18) {
            hei = 18;
        }
        divv.style.width = wid;
        divv.style.height = hei;
        divv.style.borderStyle = "solid"; //TODO 根据不同类型使用不同边线
        divv.style.borderColor = "blue"; //TODO 根据不同类型使用不同颜色   
        divv.style.borderWidth = 0;
        divv.title = sytxxd.mc;
        var innerDiv = document.createElement("DIV");
        innerDiv.setAttribute("customAttribute", "true");
        innerDiv.style.width = "100%";
        innerDiv.style.height = "100%";
        innerDiv.style.backgroundColor = "red";
        innerDiv.style.filter = "Alpha(opacity=0)";
        divv.appendChild(innerDiv);
    } else {
        divv.innerHTML = "<img src='showImage.img?tpid="+sytxxd.iconId+"' border='0' title='' "+"style='z-index:"+sytxxd.sx+" '"+" >";
        //定义层的宽度和高度，以备图内定位使用
        divv.style.width = 20;
        divv.style.height = 20;
    }
    divv.setAttribute("id", sytxxd.id);
    divv.setAttribute("mc", sytxxd.mc);
    divv.setAttribute("dyxxId", sytxxd.dyxxId);
    divv.setAttribute("lx", sytxxd.lx);
    divv.style.cursor = "hand";
    a.appendChild(divv);
    divv.onclick = link2xx;
    divv.onmouseenter = function () {
        //divv.style.borderWidth = 1;
        //divv.style.borderColor = "blue";
        //divv.style.borderStyle = "solid";
        //divv.style.filter = null;
        selectXxd(sytxxd.dyxxId);
    };
    
    divv.onmouseleave = function () {
        //divv.style.borderWidth = 0;
        unselectXxd(sytxxd.dyxxId);
    };
}

function selectXxd(dyxxId){
   for (var i = 0; i < XXD.length; i++) {
        if(XXD[i].lx == 24)
          continue;
	    if (XXD[i].dyxxId == dyxxId) {
	        document.getElementById(XXD[i].id).style.borderWidth = 1;
           document.getElementById(XXD[i].id).style.borderColor="blue";
	    }
    }
}

function unselectXxd(dyxxId){
   for (var i = 0; i < XXD.length; i++) {
       if (XXD[i].dyxxId == dyxxId) {
           document.getElementById(XXD[i].id).style.borderWidth = 0;
       }
    }
}

//鼠标点击信息点的响应事件
function link2xx() {
    var sl = parseInt(container.getAttribute("forDisplay_SL"));
    var st = parseInt(container.getAttribute("forDisplay_ST"));
    if (Math.abs(sl - container.scrollLeft) < 3 && Math.abs(st - container.scrollTop) < 3) {
        var xxdId = this.id;
        if(this.lx == '3' || this.lx == '24' || this.lx == '23' || this.lx == '25')  //区域路网不需要新开一个窗口（此处可扩充，凡不需要新开一个窗口的）。
          window.open("syt_dispather.do?id=" + xxdId,"_self");
        else
          window.open("syt_dispather.do?id=" + xxdId);
        //, "sytdisplayxx" + j++, "height=300,width=400,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=yes,status=yes,top=100,left=100"
    }
}

//鼠标移动到信息点的响应事件
//function change2hand(){
//  var xxd = event.srcElement;
//  xxd.style.cursor = 'hand';
//}

//显示数据库中已有的信息点
function displayxxd() {
    for (var i = 0; i < XXD.length; i ++) {
        xx = XXD[i];
        addDiv(xx);
    }
}

//图内定位匹配算法
function locateTo(v) {
    if (v == null || v == "") {
        alert("\u8bf7\u8f93\u5165\u8981\u5b9a\u4f4d\u7684\u5185\u5bb9");
        return;
    }
    var findxxd = new Array();
    var j = 0;
    for (var i = 0; i < XXD.length; i++) {
      var s = XXD[i].mc.indexOf(v);
      var t = v.indexOf(XXD[i].mc);
        if (s != -1) {
            findxxd[j++] = XXD[i];
        }
        else if(t != -1){
            findxxd[j++] = XXD[i];
        } 
        else {
            outXxd(XXD[i]);
        }
    }
    var nsxxd = noSameXxd(findxxd);
    if (nsxxd.length == 0) {
        alert("\u672a\u627e\u5230\u540d\u79f0\u4e3a[" + v + "]\u7684\u4fe1\u606f\u70b9\u3002");
    }
    else if(nsxxd.length == 1){
        lightXxd(nsxxd[0][0]);
        move2center(nsxxd[0][0]);
        for(var i=1;i < nsxxd[0].length;i++){
          lightXxd(nsxxd[0][i]);
        }
    }
    else{
      //alert("共匹配到["+nsxxd.length+"]个信息点。");
      for(var i = 0;i < nsxxd.length;i++){
        //if(confirm("是否显示第"+(i+1)+"个信息点，名称为："+findxxd[i].mc)){
          lightXxd(nsxxd[i][0]);
          move2center(nsxxd[i][0]);
          for(var j = 1;j < nsxxd[i].length;j++){
            lightXxd(nsxxd[i][j]);
          }
          //return;
        //}
      }
    }
}

function lightXxd(o){
  document.getElementById(o.id).style.borderColor = "#0000FF"
  document.getElementById(o.id).style.borderWidth = 3;
  //document.getElementById(o.id).style.borderStyle = "groove";
}

function move2center(o){
  var w = parseInt(container.style.width);
  var h = parseInt(container.style.height);
  var x = parseInt(o.x);
  var y = parseInt(o.y);
  //var l = container.scrollLeft;
  //var t = container.scrollTop;
  container.scrollLeft = x - w / 2 + parseInt(document.getElementById(o.id).style.width) / 2;
  container.scrollTop = y - h / 2 + parseInt(document.getElementById(o.id).style.height) / 2;
}

function outXxd(o){
  document.getElementById(o.id).style.borderWidth = 0;
}

function noSameXxd(findxxd){
  var nsxxd = new Array();
  for(i = 0;i < findxxd.length;i++){
    var k = 0;
    var sxxd = new Array();
    var ppxxd = findxxd[i];
    sxxd[k++] = ppxxd;
    for(j = 0;j < findxxd.length;j++){
      if(i != j && ppxxd.dyxxId == findxxd[i].dyxxId){
        sxxd[k++] = findxxd[i];
      }
    }
    nsxxd[i] = sxxd;
  }
  return nsxxd;
}

//显示天气信息点
function displayTqxxd(){
  for(var i = 0;i < JJTQ.length;i++){
    for(var j = 0;j < TQXXD.length;j++){
      if(JJTQ[i].ldId == TQXXD[j].dyxxId){
        addTqdiv(TQXXD[j],JJTQ[i]);
      }
    }
  }
}

function addTqdiv(sytxxd,jjtq){
    var divv = document.createElement("DIV");
    divv.style.top = sytxxd.y + "px";
    divv.style.left = sytxxd.x + "px";
    divv.style.position = "absolute";
    if(sytxxd.zt == '1')
      divv.style.visibility = "visible";
    else
      divv.style.visibility = "hidden";
    divv.style.zIndex = sytxxd.sx;
    //divv.setAttribute("dyxxId", sytxxd.dyxxId);
    divv.innerHTML = "<img src='"+jjtq.icon+"' border='0' title='' "+"style='z-index:"+sytxxd.sx+" '"+" >";
    divv.setAttribute("id", sytxxd.id);
    divv.setAttribute("mc", sytxxd.mc);
    divv.setAttribute("dyxxId", sytxxd.dyxxId);
    a.appendChild(divv);
    divv.onmouseenter = function () {
        drawcitys("发布时间："+jjtq.sj+"<br>"+jjtq.ms,sytxxd.x,sytxxd.y);
    };
    divv.onmouseleave = function () {
        mout();
    };
}

//按桩号1排序
function orderByZh1(arr){
  //分离不同方向的路况信息
  var j = 0, k = 0;
  for(var i = 0;i < arr.length;i++){
    if(arr[i].zh1 < 0)
      Z_Q_JJLKXXD[j++] = arr[i];
    else
      Q_Z_JJLKXXD[k++] = arr[i];
  }
  var temp = null;
  //开始起点->终点信息点的排序
  for(var c = 0;c < Q_Z_JJLKXXD.length;c++){
    for(var v = c+1;v < Q_Z_JJLKXXD.length;v++){
      if(Q_Z_JJLKXXD[c].zh1 > Q_Z_JJLKXXD[v].zh1){
        temp = Q_Z_JJLKXXD[v];
        Q_Z_JJLKXXD[v] = Q_Z_JJLKXXD[c];
        Q_Z_JJLKXXD[c] = temp;
      }
    }
  }
  //开始终点->起点信息点的排序
  for(var c = 0;c < Z_Q_JJLKXXD.length;c++){
    for(var v = c+1;v < Z_Q_JJLKXXD.length;v++){
      if(Z_Q_JJLKXXD[c].zh1 < Z_Q_JJLKXXD[v].zh1){
        temp = Z_Q_JJLKXXD[v];
        Z_Q_JJLKXXD[v] = Z_Q_JJLKXXD[c];
        Z_Q_JJLKXXD[c] = temp;
      }
    }
  }
}

//显示基建路况信息
function displayLkxxd(){
  for(var j = 0;j < JJLK.length;j++){
    if(JJLK[j].fx == '1'){
      //显示起点到终点的信息点
      for(var i = 0;i < Q_Z_JJLKXXD.length;i++){
        if(JJLK[j].qdzhk <= Q_Z_JJLKXXD[i].zh1 && JJLK[j].zdzhk >= Q_Z_JJLKXXD[i].zh1)
          addLkdiv(Q_Z_JJLKXXD[i],JJLK[j]);
      }
    }
    if(JJLK[j].fx == '2'){
      //显示终点到起点的信息点
      for(var i = 0;i < Z_Q_JJLKXXD.length;i++){
        if(JJLK[j].qdzhk <= Math.abs(Z_Q_JJLKXXD[i].zh1) && JJLK[j].zdzhk >= Math.abs(Z_Q_JJLKXXD[i].zh1))
          addLkdiv(Z_Q_JJLKXXD[i],JJLK[j]);
      }
    }
    if(JJLK[j].fx == '3'){
      //显示双向的信息点
      for(var i = 0;i < Q_Z_JJLKXXD.length;i++){
        if(JJLK[j].qdzhk <= Q_Z_JJLKXXD[i].zh1 && JJLK[j].zdzhk >= Q_Z_JJLKXXD[i].zh1)
          addLkdiv(Q_Z_JJLKXXD[i],JJLK[j]);
      }
      for(var i = 0;i < Z_Q_JJLKXXD.length;i++){
        if(JJLK[j].qdzhk <= Math.abs(Z_Q_JJLKXXD[i].zh1) && JJLK[j].zdzhk >= Math.abs(Z_Q_JJLKXXD[i].zh1))
          addLkdiv(Z_Q_JJLKXXD[i],JJLK[j]);
      }
    }
  }
}

function addLkdiv(sytxxd,jjlk){
    var divv = document.createElement("DIV");
    divv.style.top = sytxxd.y + "px";
    divv.style.left = sytxxd.x + "px";
    divv.style.position = "absolute";
    if(sytxxd.zt == '1')
      divv.style.visibility = "visible";
    else
      divv.style.visibility = "hidden";
    divv.style.zIndex = sytxxd.sx;
    //divv.setAttribute("dyxxId", sytxxd.dyxxId);
    divv.innerHTML = "<img src='"+jjlk.icon+"' border='0' title='' "+"style='z-index:"+sytxxd.sx+" '"+" >";
    divv.setAttribute("id", sytxxd.id);
    divv.setAttribute("mc", sytxxd.mc);
    divv.setAttribute("dyxxId", sytxxd.dyxxId);
    a.appendChild(divv);
    divv.onmouseenter = function () {
        drawcitys("发布时间："+jjlk.sj+"<br>"+jjlk.ms,sytxxd.x,sytxxd.y);
    };
    divv.onmouseleave = function () {
        mout();
    };
}

//非基建施工与封闭信息点的添加
function displaySGFBxxd(){
  for(var i = 0;i < SGFB.length;i++)
    addSGFBdiv(SGFB[i]);
}

function addSGFBdiv(sytxxd){
    var divv = document.createElement("DIV");
    divv.style.top = sytxxd.y + "px";
    divv.style.left = sytxxd.x + "px";
    divv.style.position = "absolute";
    if(sytxxd.zt == '1')
      divv.style.visibility = "visible";
    else
      divv.style.visibility = "hidden";
    divv.style.zIndex = sytxxd.sx;
    //divv.setAttribute("dyxxId", sytxxd.dyxxId);
    if(sytxxd.lx == '21')
      divv.innerHTML = "<img src='"+ShiGong+"' border='0' title='' "+"style='z-index:"+sytxxd.sx+" '"+" >";
    if(sytxxd.lx == '22')
      divv.innerHTML = "<img src='"+FengBi+"' border='0' title='' "+"style='z-index:"+sytxxd.sx+" '"+" >";
    divv.setAttribute("id", sytxxd.id);
    divv.setAttribute("mc", sytxxd.mc);
    divv.setAttribute("dyxxId", sytxxd.dyxxId);
    a.appendChild(divv);
    divv.onmouseenter = function () {
        drawcitys(sytxxd.ms,sytxxd.x,sytxxd.y);
    };
    divv.onmouseleave = function () {
        mout();
    };
}

//显示交调数据信息点  修正于 06-06-09 11:03 by zhangn
function displayJdlkxxd(){
	var flag = false;
	for(var k = 0;k < JDLKXXD.length;k++){
	  flag = false;
	  for(var i =0;i < JDLK_SX.length;i++){
	    if(JDLKXXD[k].dyxxId == JDLK_SX[i].ldId){
	      for(var j = 0;j < JDLK_XX.length;j++){
	        if(JDLKXXD[k].dyxxId == JDLK_XX[j].ldId){
	          addJdlkdiv(JDLKXXD[k],JDLK_SX[i],JDLK_XX[j]);
	          flag = true;
	          break;
	        }
	      }
	      if(flag == true)
	        break;
	      addJdlkdiv(JDLKXXD[k],JDLK_SX[i],null);
	      flag = true;
	      break;
	    }
	  }
	  if(flag == false){
	    for(var j = 0;j < JDLK_XX.length;j++){
	      if(JDLKXXD[k].dyxxId == JDLK_XX[j].ldId){
	        addJdlkdiv(JDLKXXD[k],null,JDLK_XX[j]);
	        flag = true;
	        break;
	      }
	    }
	  }
	  if(flag == false)
	    addJdlkdiv(JDLKXXD[k],null,null);
	}
}

function addJdlkdiv(sytxxd,sx,xx){
  var divv = document.createElement("DIV");
    divv.style.top = sytxxd.y + "px";
    divv.style.left = sytxxd.x + "px";
    divv.style.position = "absolute";
    if(sytxxd.zt == '1')
      divv.style.visibility = "visible";
    else
      divv.style.visibility = "hidden";
    divv.style.zIndex = sytxxd.sx;
    divv.innerHTML = "<img src='"+JiaoDiaoShanDong+"' border='0' title='' "+"style='z-index:"+sytxxd.sx+" '"+" >";
    divv.setAttribute("id", sytxxd.id);
    divv.setAttribute("mc", sytxxd.mc);
    divv.setAttribute("dyxxId", sytxxd.dyxxId);
    a.appendChild(divv);
    if(sx == null && xx == null){
        divv.innerHTML = "<img src='"+JiaoDiao+"' border='0' title='' "+"style='z-index:"+sytxxd.sx+" '"+" >";
        divv.onmouseenter = function () {
	        drawcitys("数据暂未上传!",sytxxd.x,sytxxd.y);
	    };
    }
    else if(sx == null && xx != null){
        divv.onmouseenter = function () {
	        drawcitys("监测站："+xx.jczmc+"<br><b>"+xx.zdcs+"方向：</b>数据暂未上传!"+
	          "<br><b>"+xx.qdcs+"方向：</b><br><img src='"+xx.icon+"' border='0' title='' "+"style='z-index:"+sytxxd.sx+" '"+" >&nbsp;公路服务水平："+xx.fwspdj
	          +"<br>发布时间："+xx.rq+"<br>平均车速："+xx.pjcs+"km/h",sytxxd.x,sytxxd.y);
	    };
    }
    else if(sx != null && xx == null){
        divv.onmouseenter = function () {
	        drawcitys("监测站："+sx.jczmc+"<br><b>"+sx.zdcs+"方向：</b><br><img src='"+sx.icon+"' border='0' title='' "+"style='z-index:"+sytxxd.sx+" '"+" >&nbsp;公路服务水平："+sx.fwspdj
	          +"<br>发布时间："+sx.rq+"<br>平均车速："+sx.pjcs+"km/h"+"<br><b>"+sx.qdcs+"方向：</b>数据暂未上传!",sytxxd.x,sytxxd.y);
	    };
    }
    else{
	    divv.onmouseenter = function () {
	        drawcitys("监测站："+sx.jczmc+"<br><b>"+sx.zdcs+"方向：</b><br><img src='"+sx.icon+"' border='0' title='' "+"style='z-index:"+sytxxd.sx+" '"+" >&nbsp;公路服务水平："+sx.fwspdj
	          +"<br>发布时间："+sx.rq+"<br>平均车速："+sx.pjcs+"km/h"+
	          "<br><b>"+xx.qdcs+"方向：</b><br><img src='"+xx.icon+"' border='0' title='' "+"style='z-index:"+sytxxd.sx+" '"+" >&nbsp;公路服务水平："+xx.fwspdj
	          +"<br>发布时间："+xx.rq+"<br>平均车速："+xx.pjcs+"km/h",sytxxd.x,sytxxd.y);
	    };
    }
    divv.onmouseleave = function () {
        mout();
    };
}

-->
