var mts_act_id;    //全局变量,活动ID;
var ditu;
var map;
var mapicon3;
var mapicon4;
var dituicon;
var ditupoints=[];
var users;
var updateindex=0;
var isditumove=false;
var ismapmove=false;
var issend = false;                      //全局变量,防止同时有多个函数运行;
var picMarkers = [];                //活动图片数组;
var chatcount = 0;
var isChatMsgDisplay = true;                 //标志网友聊天窗口是否显示;
var isTelMsgDisplay = false;                 //标志手机聊天窗口是否显示;
var isChangeMsg = false;                     //标志是否更改菜单文本;
var pmsgmarkers=[];
var timmerGettingPics = null;                //是否定时运行获取图片函数;
var isFF=false;
var isShow=false;
var now_index=0;                                 //当前打开的marker序号
var isByClick=true;                             //是否由点击marker产生
var isNext_pic;                                    //下一张-->上一张
var isPrev_pic;                                    //上一张-->下一张
var isLast=false;                                 //是否是最后一张
var isFirst=false;                                //是否是第一张
function ditugetuser()
{
    if(!issend)
    {
        issend=true;
        try{
            var paramsValue ="act_id="+mts_act_id;
            var url= '/actlive/getuserlocations';
            new Ajax.Request(url,{
               parameters : paramsValue,
               method: 'POST',
               onSuccess: function(request)
               { 
                    var tJson = eval("("+request.responseText+")");
                    if(tJson.status == "ok 200"){
                        if(updateindex==1)
                        {
                            dituloaduser3(tJson); 
                        }
                        else if(updateindex==0)
                        {
                            dituloaduser1(tJson);
                            updateindex++;
                        }
                        else if(updateindex>1)
                        {
                            dituloaduser2(tJson);                   
                        }                   
                        updateindex++;
                        if(updateindex>5)
                        {
                            updateindex=1;
                        }

                    }

              },
              onFailure: function(request)
              { 
              } 
            });
        }
        catch(er){
        
        }
        finally{
        issend=false;
        }
        
      }
}


function dituloaduser1(tJson)
{   
     users=[];
     ditu.clearOverLays();
     ditupoints=[];
     var alluserhtml = ""
     for(var i=0;i<tJson.locations.length;i++)
     {
         var user= new Object();
         var lon=parseInt((parseFloat(tJson.locations[i].lon)+0.0049)*100000);
	     var lat=parseInt((parseFloat(tJson.locations[i].lat)-0.0027)*100000);
          
         user.id=tJson.locations[i].user_id;
         user.nikename=tJson.locations[i].nickname;
         user.state="在线";//0代表在线，1代表离线
         alluserhtml=alluserhtml+'<a href="javascript:void(0)" onclick="getusercenter('+tJson.locations[i].user_id+')"><span class=listA>'+tJson.locations[i].nickname+'</span></a>&nbsp;&nbsp;';
         
         var point =new LTPoint(lon,lat); 
         var gpoint = new GLatLng(parseFloat(tJson.locations[i].lat),parseFloat(tJson.locations[i].lon));
         var ptxt=tJson.locations[i].nickname+" " + (tJson.locations[i].speed == null ? 0 : tJson.locations[i].speed) + "km/h";
         var marker;
         var gmarker;
         marker=dituMarker1(point,tJson.locations[i].status,tJson.locations[i].phoneuserpic); 
         gmarker=mapMarker1(gpoint,"",tJson.locations[i].status,tJson.locations[i].phoneuserpic);
         ditu.addOverLay(marker);
         map.addOverlay(gmarker);
         user.marker=marker;
         user.gmarker=gmarker;
         var text = new LTMapText(marker);
         var gtext=new Textmarker(gpoint,ptxt,12);
         map.addOverlay(gtext);
         text.setLabel(ptxt); 
         ditu.addOverLay(text); 
         user.text=text;
         user.gtext=gtext;
         users.push(user);         
         ditupoints.push(point);
      }
      var allusers=$("allusers");
      allusers.innerHTML=alluserhtml;
      //ditugetall();初始化时不是显示所有人
}

function dituloaduser2(tJson)
{   
     ditupoints=[];
     for(var j=0;j<users.length;j++)
     {
         for(var i=0;i<tJson.locations.length;i++)
         {
             if(users[j].id==tJson.locations[i].user_id)
             {
                 var lon=parseInt((parseFloat(tJson.locations[i].lon)+0.0049)*100000);
	         var lat=parseInt((parseFloat(tJson.locations[i].lat)-0.0027)*100000);
                 var point =new LTPoint(lon,lat);
                 var gpoint = new GLatLng(parseFloat(tJson.locations[i].lat),parseFloat(tJson.locations[i].lon));
                 var ptxt=tJson.locations[i].nickname+" "+tJson.locations[i].speed+"km/h";
                 var marker;
                 var gmarker;
                 marker=dituMarker1(point,tJson.locations[i].status,tJson.locations[i].phoneuserpic);
                 gmarker=mapMarker1(gpoint,"",tJson.locations[i].status,tJson.locations[i].phoneuserpic);
                 ditu.removeOverLay(users[j].marker);
                 map.removeOverlay(users[j].gmarker);
                 users[j].marker=marker;
                 users[j].gmarker=gmarker;
                 ditu.addOverLay(marker);
                 map.addOverlay(gmarker);
                 var text = new LTMapText(marker);
                 text.setLabel(ptxt); 
                 var gtext=new Textmarker(gpoint,ptxt,12);
                 ditu.removeOverLay(users[j].text);
                 map.removeOverlay(users[j].gtext);
                 users[j].text=text;
                 users[j].gtext=gtext;
                 map.addOverlay(gtext);
                 ditu.addOverLay(text); 
                 ditupoints.push(point);
             } 
          }     
     }
}
function dituloaduser3(tJson)
{   
     ditupoints=[];
     var resul;
     var j;
     var i;
     var lon;
     var lat;
     var point;
     var gpoint;
     var ptxt;
     var marker;
     var gmarker;
     var text;
     var gtext;
     var alluserhtml = "";
     for(j=0;j<users.length;j++)
     {         
         result=true;
         for(i=0;i<tJson.locations.length;i++)
         {
             if(users[j].id==tJson.locations[i].user_id)
             {
                 lon=parseInt((parseFloat(tJson.locations[i].lon)+0.0049)*100000);
	         lat=parseInt((parseFloat(tJson.locations[i].lat)-0.0027)*100000);
                 point =new LTPoint(lon,lat); 
                 gpoint = new GLatLng(parseFloat(tJson.locations[i].lat),parseFloat(tJson.locations[i].lon));
                 alluserhtml=alluserhtml+'<a href="javascript:void(0)" onclick="getusercenter('+tJson.locations[i].user_id+')"><span class=listA>'+tJson.locations[i].nickname+'</span></a>&nbsp;&nbsp;';        
                 ptxt=tJson.locations[i].nickname+" "+tJson.locations[i].speed+"km/h";  
                 marker=dituMarker1(point,tJson.locations[i].status,tJson.locations[i].phoneuserpic);
                 gmarker=mapMarker1(gpoint,"",tJson.locations[i].status,tJson.locations[i].phoneuserpic);
                 ditu.removeOverLay(users[j].marker);
                 map.removeOverlay(users[j].gmarker);
                 users[j].marker=marker;
                 users[j].gmarker=gmarker;
                 ditu.addOverLay(marker);
                 map.addOverlay(gmarker);
                 text = new LTMapText(marker);
                 text.setLabel(ptxt);
                 gtext=new Textmarker(gpoint,ptxt,12);
                 map.removeOverlay(users[j].gtext);
                 ditu.removeOverLay(users[j].text);
                 users[j].text=text;
                 users[j].gtext=gtext;
                 ditu.addOverLay(text); 
                 map.addOverlay(gtext);
                 ditupoints.push(point);
                 result=false;
             }              
          }
          if(result)
          {
              ditu.removeOverLay(users[j].marker);
              ditu.removeOverLay(users[j].text);
              map.removeOverlay(users[j].gmarker);
              map.removeOverlay(users[j].gtext);
              users.splice(j,1);
              j=j-1;
          }        
      }
      for(i=0;i<tJson.locations.length;i++)
      {
          result=true;
          for(j=0;j<users.length;j++)
          {
              if(users[j].id==tJson.locations[i].user_id){
                  result=false;
                  }
          }
          if(result)
          {
             var user= new Object();
             user.id=tJson.locations[i].user_id;
             user.nikename=tJson.locations[i].nickname;
             user.phone_no=tJson.locations[i].phone_no;
             user.state="在线";//0代表在线，1代表离线
             alluserhtml=alluserhtml+'<a href="javascript:void(0)" onclick="getusercenter('+tJson.locations[i].user_id+')"><span class=listA>'+tJson.locations[i].nickname+'</span></a>&nbsp;&nbsp;';
             
             lon=parseInt((parseFloat(tJson.locations[i].lon)+0.0049)*100000);
	     lat=parseInt((parseFloat(tJson.locations[i].lat)-0.0027)*100000);
             point =new LTPoint(lon,lat); 
             gpoint = new GLatLng(parseFloat(tJson.locations[i].lat),parseFloat(tJson.locations[i].lon));
             ptxt=tJson.locations[i].nickname+" "+tJson.locations[i].speed+"km/h";
             marker=dituMarker1(point,tJson.locations[i].status,tJson.locations[i].phoneuserpic);
             gmarker=mapMarker1(gpoint,"",tJson.locations[i].status,tJson.locations[i].phoneuserpic);
             ditu.addOverLay(marker);
             map.addOverlay(gmarker);
             user.marker=marker;
             user.gmarker=gmarker;
             gtext=new Textmarker(gpoint,ptxt,12);
             text = new LTMapText(marker);
             text.setLabel(ptxt); 
             ditu.addOverLay(text); 
             map.addOverlay(gtext);
             user.text=text;
             user.gtext=gtext;
             users.push(user);
             ditupoints.push(point);
          } 
      }
      var allusers=$("allusers");
      allusers.innerHTML=alluserhtml;
}
function d2mpoint(dpoint)
{
	var lon=parseFloat(dpoint.getLongitude()/100000-0.0049);
	var lat=parseFloat(dpoint.getLatitude()/100000+0.0027);
	var mpoint=new GLatLng(lat,lon);
	return mpoint;
}
function m2dpoint(mpoint)
{
	var lon=(mpoint.lng()+0.0049)*100000;
	var lat=(mpoint.lat()-0.0027)*100000;
	var dpoint=new LTPoint(lon,lat);
	return dpoint;
}
function mMoveEnd()
{
       //alert(map.getCenter())
	if(isditumove)
	{
            isditumove=false;
	}
	else
	{
            ditu.moveToCenter(m2dpoint(map.getCenter()));
            ismapmove=true;
        }
}
function dMoveEnd()
{
	if(ismapmove)
	{
		ismapmove=false;
	}
	else
	{
		map.panTo(d2mpoint(ditu.getCenterPoint()));    
                isditumove=true;
         }
}
function dozoomin()
{
	var zoom=ditu.getCurrentZoom();
        //alert(zoom)
	if(zoom>0)
	{
		ditu.zoomIn();
		map.zoomIn();
	}
	else
	{
		alert("地图不能再放大了！");
	}
}

function dozoomout()
{
	var zoom=ditu.getCurrentZoom();
	if(zoom<14)
	{
		ditu.zoomOut();
		map.zoomOut();
	}
	else
	{
		alert("地图不能再缩小了！");
	}
}
function dituload(act_id)
{
    mts_act_id = act_id;   		
    map = new GMap(document.getElementById("map"));
    map.disableDoubleClickZoom();
    var btnZoomIn=new GButtonZoomIn();
    map.addControl(btnZoomIn,new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(3,3)));
    var btnZoomOut=new GButtonZoomOut();
    map.addControl(btnZoomOut,new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(3,23)));
    var btnGetAll=new GButtonGetAll();
    map.addControl(btnGetAll,new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(3,43)));   
    var btnShowTrack=new GButtonShowTrack();
    map.addControl(btnShowTrack,new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(3,63)));   
    var btnCheckPic=new GButtonCheckPic();
    map.addControl(btnCheckPic,new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(3,3)));    
    var btnLogo=new GButtonLogo();
    map.addControl(btnLogo,new GControlPosition(G_ANCHOR_BOTTOM_LEFT,new GSize(0,7)));  
    map.setCenter(new GLatLng(23.084417,114.3538),12,G_SATELLITE_MAP);
    //初始化地图
    var map_zoom=map.getZoom();
    ditu = new LTMaps( "ditu" );
    ditu.centerAndZoom(m2dpoint(new GLatLng(23.084417,114.3538)), 17-map_zoom);
    LTEvent.addListener(ditu,"moveend",dMoveEnd);        
    GEvent.addListener(map,"moveend",mMoveEnd);
    
    mapicon3 = new GIcon();
    mapicon3.image = "http://www.2bulu.com/mappic/Pic.png";
    mapicon3.shadow = "";
    mapicon3.iconSize = new GSize(24, 24);
    mapicon3.shadowSize = new GSize(22, 20);
    mapicon3.iconAnchor = new GPoint(6, 20);
    mapicon3.infoWindowAnchor = new GPoint(5, 1);
    
    mapicon4 = new GIcon();
    mapicon4.image = "http://www.2bulu.com/mappic/Pao2.png";
    mapicon4.shadow = "";
    mapicon4.iconSize = new GSize(20, 20);
    mapicon4.shadowSize = new GSize(22, 20);
    mapicon4.iconAnchor = new GPoint(6, 20);
    mapicon4.infoWindowAnchor = new GPoint(5, 1);
    
    ditu.handleKeyboard(); //键盘操作支持
    ditugetuser();
    window.setInterval("ditugetuser();",10100);
}

function loadLolaAge(){
   window.open("http://www.lolaage.com/")
}

function ditugetall()
{
     ditu.getBestMap(ditupoints);
     ditu.zoomOut();
     var mapZoom=map.getZoom();
     var dituZoom=ditu.getCurrentZoom();
     if(mapZoom!=17-dituZoom){
        var gZoom=17-ditu.getCurrentZoom();
        map.setZoom(gZoom);
     }
     dMoveEnd();
}
//加载赛事路线
function getSDTrack(){
   if(isShow==false){
       var paramsValue ="name=1";
       var url='/actlive/gethuizhoukmlfile';
       new Ajax.Request(url,{
           parameters : paramsValue,
           method: 'POST',
           onSuccess: function(request)
           { 
                var tJson = eval("("+request.responseText+")");
                if(tJson.status=="ok 200"){
                    loadSDTrack(tJson.data);                        
                 }else{

                 }
          },
          onFailure: function(request)
          { 
                alert('对不起 轨迹显示失败!\n' + request.responseText); 
          } 
       });	
   }else{
      map.setZoom(12);
      var point=new GLatLng(23.084417,114.3538);  
      ditu.centerAndZoom(m2dpoint(point),5);
      map.panTo(point);      
   }
}

function loadPoints(){
 var points=[[114.41034,23.098645,"第1签到点（起点）"],[114.353450999962,23.07889500045111,"第2签到点"],[114.3147000000395,23.12330299991929,"第3签到点"],[114.333003,23.090837,"第4签到点"],
     [114.336399,23.046261,"第5签到点（终点）"]]
 for(var i=0;i<=points.length-1;i++){
   var lat=points[i][1];
   var lon=points[i][0];
   var text=points[i][2];
   if(i==0){
     createFirstMarker(lat,lon);
   }else if(i==points.length-1){
     createLastMarker(lat,lon);
   }else{
     createMarker(lat,lon);
   }  
   createTextMarker(new GLatLng(lat,lon),text);
 }         
}

function createMarker(lat,lon){
   var picicon = new GIcon();
   picicon.image = "/mappic/actlive/qiandaodian.png";
   picicon.iconSize = new GSize(24, 24);
   picicon.shadowSize = new GSize(22, 20);
   picicon.iconAnchor = new GPoint(6, 20);
   picicon.infoWindowAnchor = new GPoint(5, 1);
   var point = new GLatLng(lat,lon);
   var pmarker=new GMarker(point,{icon:picicon});
   map.addOverlay(pmarker);    
}

function createLastMarker(lat,lon){
   var picicon = new GIcon();
   picicon.image = "/mappic/actlive/zhongdian.png";
   picicon.iconSize = new GSize(24, 24);
   picicon.shadowSize = new GSize(22, 20);
   picicon.iconAnchor = new GPoint(6, 20);
   picicon.infoWindowAnchor = new GPoint(5, 1);
   var point = new GLatLng(lat,lon);
   var pmarker=new GMarker(point,{icon:picicon});
   map.addOverlay(pmarker);    
}

function createFirstMarker(lat,lon){
   var picicon = new GIcon();
   picicon.image = "/mappic/actlive/qidian.png";
   picicon.iconSize = new GSize(24, 24);
   picicon.shadowSize = new GSize(22, 20);
   picicon.iconAnchor = new GPoint(6, 20);
   picicon.infoWindowAnchor = new GPoint(5, 1);
   var point = new GLatLng(lat,lon);
   var pmarker=new GMarker(point,{icon:picicon});
   map.addOverlay(pmarker);    
}

function createTextMarker(point,text){
   var pTextMarker=new Textmarker(point,text,12);
   map.addOverlay(pTextMarker); 
}

function loadSDTrack(xmlurl){
      var everysdyytrack_points=[];
      var xmldoc= loadxml(xmlurl);
      if(isFF==true){
          var str =xmldoc.documentElement; 
          var lastNode=str.childNodes[1].childNodes[8].childNodes[5].childNodes[1];
          var value=[];
          var everyvalue;
          var everyvalues="";
          for(var i=0;i<=lastNode.childNodes.length-1;i++){
              everyvalue=lastNode.childNodes[i].nodeValue;	
              everyvalues=everyvalues+everyvalue;
          } 
          var pointlatlons=everyvalues.split(" ");
          for(var j=0;j<=pointlatlons.length-2;j++){
             var latlons=pointlatlons[j].split(",");
             var point=new GLatLng(latlons[1],latlons[0]);
             everysdyytrack_points.push(point);
           }             
      }else{
          var coordinates = xmldoc.getElementsByTagName("kml/Document/Placemark/LineString/coordinates");
          for (var i = 0; i < coordinates.length;i++) {
                var text=coordinates[i].text;
                var pointlatlons=text.split(" ");
                for(var j=0;j<=pointlatlons.length-1;j++){
                   var latlons=pointlatlons[j].split(",");
                   var point=new GLatLng(parseFloat(latlons[1]),parseFloat(latlons[0]));
                   everysdyytrack_points.push(point);
                }
           }
      }
      var polyline;
      polyline=new GPolyline(everysdyytrack_points,"#FE0203",5,0.6); 
      map.addOverlay(polyline);
      isShow=true; //已经显示路线
      loadPoints();
      map.setZoom(12);
      var point=new GLatLng(23.084417,114.3538);  
      /*画线定位时用到
      var point=getcenter(everysdyytrack_points);
      var maxlength=getmaxlength(everysdyytrack_points);
      var zoom=InitMapzoom(maxlength);
      */
      ditu.centerAndZoom(m2dpoint(point),5);
      map.panTo(point); 
}

function loadxml(xmlFile){
    var xmlDoc;
    if(window.ActiveXObject)
    {
        xmlDoc= new ActiveXObject('Microsoft.XMLDOM');
        xmlDoc.async = false;
        xmlDoc.load(xmlFile);
    }
    else if(document.implementation&&document.implementation.createDocument)
    {
        xmlDoc= document.implementation.createDocument('', '', null);
		xmlDoc.async = false;
        xmlDoc.load(xmlFile);
		isFF=true;
    }
    else
    {
        return null;
    }
    return xmlDoc;
 }
 
function getcenter(points){
          var point;
          var minx,maxx,miny,maxy;
          var i=0;
	  maxx=minx=points[0].lat();
	  maxy=miny=points[0].lng();
	  for(i=0;i<points.length;i=i+1){
	     if(points[i].lat()<minx){
		    minx=points[i].lat();
		  }
		  else 
		      if(points[i].lat()>maxx){
		            maxx=points[i].lat();
		      }
			  
		  if(points[i].lng()<miny){
		    miny=points[i].lng();
		  }
		  else 
		       if(points[i].lng()>maxy){
		    maxy=points[i].lng();
		     } 
	  }
	  point=new GLatLng((parseFloat(minx)+parseFloat(maxx))/2,(parseFloat(miny)+parseFloat(maxy))/2);
	  return point;
   }
   
 function getmaxlength(points){
        var maxlength;
        var lengths=[];
        var i=0;
        var j;
        var distance;
        if(points.length>=2000){
            for(j=1;j<points.length;j=j+2){
                distance=Math.sqrt(Math.pow(points[0].lat()-points[j].lat(),2)+Math.pow(points[0].lng()-points[j].lng(),2))
                lengths.push(distance);
             }            
        }else{
            for(j=1;j<points.length;j=j+1){
                distance=Math.sqrt(Math.pow(points[0].lat()-points[j].lat(),2)+Math.pow(points[0].lng()-points[j].lng(),2))
                lengths.push(distance);
             }
        }
	  maxlength=lengths[0];
	  for(i=0;i<lengths.length;i++){
	    if(lengths[i]>maxlength){
		   maxlength=lengths[i];
		}
	  }
	  return maxlength;
  }
  
function InitMapzoom(len)
{
	var length=parseFloat(len);
	if(length<=0.00398)
	{
		return 18;
	}
	else if(length>0.00398&&length<=0.00794)
	{
		return 17;
	}
	else if(length>0.00794&&length<=0.01595)
	{
		return 16;
	}
	else if(length>0.01595&&length<=0.03174)
	{
		return 15;
	}
	else if(length>0.03174&&length<=0.06434)
	{
		return 14;
	}
	else if(length>0.06434&&length<=0.12697)
	{
		return 13;
	}
	else if(length>0.12697&&length<=0.25476)
	{
		return 12;
	}
	else if(length>0.25476&&length<=0.50769)
	{
		return 11;
	}
	else if(length>0.50769&&length<=1.02057)
	{
		return 10;
	}
	else if(length>1.02057&&length<=2.02308)
	{
		return 9;
	}
	else if(length>2.02308&&length<=4.03199)
	{
		return 8;
	}
	else if(length>4.03199&&length<=8.06836)
	{
		return 7;
	}
	else if(length>8.06836&&length<=16.35166)
	{
		return 6;
	}
	else if(length>16.35166&&length<=32.33948)
	{
		return 5;
	}
	else if(length>32.33948&&length<=65.03624)
	{
		return 4;
	}
	else 
	{
		return 3;
	}
}

function ForDight(Dight,How)  
{  
   Dight=Math.round(Dight*Math.pow(10,How))/Math.pow(10,How);  
   return  Dight;  
}  

function getusercenter(uid)
{
     for(var i=0;i<users.length;i++)
    {
          if(users[i].id==uid)
          {
              var points=[];            
	      var point=users[i].marker.getPoint();
              points.push(point);
              ditu.getBestMap(points);
              var gZoom=17-ditu.getCurrentZoom();
              if(map.getZoom()!=gZoom){
                 map.setZoom(gZoom); 
              }
              dMoveEnd();
          }  
     }
}

function mapMarker1(point,html,status,phonepic){
        var phoneicon;
        var phonemarker;
        phoneicon = new GIcon();
        if(status==1){
            phoneicon.image = "http://www.2bulu.com/mappic/userpic/"+phonepic+".png";
        }else{
            phoneicon.image = "http://www.2bulu.com/mappic/userpic/"+phonepic+"_.png";
        }
        phoneicon.shadow = "";
        phoneicon.iconSize = new GSize(20,20);
        phoneicon.shadowSize = new GSize(22, 20);
        phoneicon.iconAnchor = new GPoint(6, 20);
        phoneicon.infoWindowAnchor = new GPoint(5, 1);
        phonemarker=new GMarker(point,phoneicon);
        if(html!=""){
        GEvent.addListener(phonemarker, "click", function() 
        {    
        phonemarker.openInfoWindowHtml(html);  
        }); 
        }
        return phonemarker;        
}

function dituMarker1(point,status,phonepic){
    var dituicon;
    dituicon= new LTIcon();
    if(status==1){
        dituicon.setImageUrl( "http://www.2bulu.com/mappic/userpic/"+ phonepic+".png");
    }else{
        dituicon.setImageUrl( "http://www.2bulu.com/mappic/userpic/"+ phonepic+"_.png" );
    }
    dituicon.setWidth(20);
    dituicon.setHeight(20);
    var ditumarker=new LTMarker(point,dituicon);
    return ditumarker;
}
//标记泡泡,并添加事件监听;
function cMarker(point,html,icon) 
{     
        var marker = new GMarker(point,icon);  
        GEvent.addListener(marker, "click", function() 
        {    
        marker.openInfoWindowHtml(html);  
        }); 
         return marker;
}

function getActPic()
{
        if(!issend)
        {
             issend = true;
             try
             {
                    var url ='/actlive/get_actlivepics?act_id=' + $("act_id").value;
                    var paramValue = {}
                    new Ajax.Request(url,{
                    method: 'POST',
                    parameters: paramValue,
                    onSuccess: function(request){ 
                        var pJson = eval("("+request.responseText+")");
                        if(pJson.status == "ok 200")
                        {
                            var pics = pJson.pics;
                            var length = pics.length;
                            var j = picMarkers.length;
                            for(var i = 0; i < length; i++)
                            {

                                  var title = pics[i].title;
                                  var lat = pics[i].lat;
                                  var lng = pics[i].lon;
                                  var picname = pics[i].picname;
                                  var username = pics[i].user_name;
                                  var created_at = pics[i].created_at;
                                  var nickname = pics[i].nickname;
                                  var url = "http://static.2bulu.com/userfiles/" + username + '/pic/' + picname;
                                  var html = '<table width="200" border="0">' + 
                                                  '<tr>' + 
                                                      '<td>' + title + '&nbsp;' + nickname + '上传&nbsp;' + 
                                                              '<hr>' +                                                             
                                                              '<a href="' +  url + '" target="_blank">' + 
                                                                   '<img src="' + url + '" width="150px" border="0">' + 
                                                              '</a>' +
                                                              '<br>' + 
                                                              '上传于:' + created_at +
                                                      '</td>' + 
                                                  '</tr>' + 
                                              '</table>';
                                  var marker;            
                                  marker = mapMarker2(new GLatLng(lat, lng), html,j);
                                  picMarkers.push([marker,j]);
                                  j=j+1;
                                  map.addOverlay(marker); 
                                 
                            }
                        }
                        else
                        {

                        }
                    },
                    onFailure: function(){ 

                    } 
                    });                
            }
            catch(ee){}
            finally{issend = false;}
             
        }

}

//显示图片Marker;
function mapMarker2(point, html,index) 
{  
        var marker = new GMarker(point);  
        if(html!=""){
              GEvent.addListener(marker, "click", function() 
              {    
                if(isByClick){
                   now_index=index;     
                }  
                isByClick=true; 
                marker.openInfoWindowHtml(html);  
              }); 
        }     
        return marker;
}

function showpic(isNext){  
  isByClick=false;   
  var isAdded=false;
  if(isNext){
    isNext_pic = true;  
    //下一张
    if(picMarkers.length==0){
      return;
    }else if(now_index==0){
      if(isPrev_pic){
          if(isFirst){
             isFirst=false; 
             GEvent.trigger(picMarkers[now_index+1][0],"click");
             now_index=now_index+2;                   
          }else{
             GEvent.trigger(picMarkers[now_index+2][0],"click");
             now_index=now_index+3;           
          }
          isPrev_pic=false;
          isAdded=true;
      }else{
         GEvent.trigger(picMarkers[0][0],"click");
      }
    }else{
      if(now_index <= picMarkers.length-1){
          if(isPrev_pic){
              if(isFirst){
                 isFirst=false; 
                 GEvent.trigger(picMarkers[now_index+1][0],"click");
                 now_index=now_index+2;                   
              }else{
                 GEvent.trigger(picMarkers[now_index+2][0],"click");
                 now_index=now_index+3;           
              }
              isPrev_pic=false;
              isAdded=true;
          }else{
              isAdded=false;
              GEvent.trigger(picMarkers[now_index][0],"click");
          }
      }  
    }

    if(now_index == picMarkers.length-1){
      isLast=true;
    }
    if(!isAdded && now_index<picMarkers.length-1){
       now_index=now_index+1;  
    }
  }else{
    isPrev_pic=true;
    //上一张
    if(picMarkers.length==0){
      return;
    }else if(now_index==0){
      isNext_pic=false;
      GEvent.trigger(picMarkers[0][0],"click");
    }else{
      if(now_index >= 0){
          if(isNext_pic){
              if(isLast){
                   isLast=false;
                   GEvent.trigger(picMarkers[now_index-1][0],"click");
                   now_index=now_index-2;                      
               }else{
                  GEvent.trigger(picMarkers[now_index-2][0],"click");
                  now_index=now_index-3;          
               }
               isNext_pic=false;
               isAdded=true;
          }else{
            isAdded=false;
            GEvent.trigger(picMarkers[now_index][0],"click");
          }
      }    
    }
    if(now_index == 0){
      isFirst=true;
    }    
    if(!isAdded && now_index>0){
       now_index=now_index-1;  
    }    
  }
}

function getGuestBook(){   //接收聊天消息;
   if(!issend)
   {
        issend=true;
        try
        {
            var url = '/actlive/get_chat_content';
            new Ajax.Request(url,{
            method: 'POST',
            parameters: {"act_id":$("act_id").value},
            onSuccess: function(request){ 
                var rtnJson = eval("("+request.responseText+")");
                if(rtnJson.status == "ok 200"){
                   chatcount++;
                   if(chatcount % 500 == 0)
                   {
                       alert("聊天记录太多，浏览器将自动清除聊天记录");
                       $("chat_content").innerHTML = '<div id="processer" style="display:none"><img src="/images/loading.gif"></div>';
                       chatcount = 1;                   
                   }
                   leng = rtnJson.chat_content.length;
                   var html = "";
                   var max_chat_id;
                   for(var i=0; i<leng; i++)
                   {
                      var id;
                      var style;
                      id = rtnJson.chat_content[i].id;
                      if(id % 2 == 0)
                      {
                          style="chat_content_item1";
                      }
                      else{
                          style="chat_content_item2"; 
                     }
                      html += "<div class=" + style +  ">"

                      html += "<span class=chat_title>" + rtnJson.chat_content[i].created_at;
                      html +=  rtnJson.chat_content[i].guestname + "：</span><br>&nbsp;&nbsp;<span class=chat_content>" + rtnJson.chat_content[i].content+"</span>";
                      html += "</div>"
                   }
                   $("processer").style.display = "none";
                   $("chat_content").innerHTML += html;
                   $("chat_content").scrollTop += 10000;     //滚动到最底部
                   if(isChatMsgDisplay == false)
                   {
                        isChangeMsg = true;
                        try{
                                $("td1").innerHTML = "网友聊天（<span style='color:#f00; font-size:13px;'>新消息</span>）"; 
                        }
                        catch(er){}
                        finally
                        {                       
                           isChangeMsg = false;
                        }
                   }
                   
                }else{
                }
            },
            onFailure: function(request){ 
               if($("processer") != null){
                   $("processer").style.display = "none";
                }
            } 
            })
        }
        catch(er)
        {
        }
        finally{
          issend=false;
        }
        
    }
}

function sendChatMessage(){      //发送聊天信息
        if($("chat").value.replace(/(^\s*)|(\s*$)/g, "") == "")
        {
             alert("请填写聊天信息");
             $("chat").value = "";
             $("chat").focus();
             return;
        }
        showFloatDiv($("processer"),$("chat_content"));
        var url ='/actlive/add_chat_content';
        var paramValue = {"myname" : $("myname").value, "content" : $("chat").value, "act_id" : $("act_id").value}
        new Ajax.Request(url,{
        method: 'POST',
        parameters: paramValue,
        onSuccess: function(request){ 
            var rtnJson = eval("("+request.responseText+")");
            if(rtnJson.status == "ok 200"){
                $("chat").value = "";
            }else{
               $("chat_content").innerHTML += "<div class='chat_content_item1'>&nbsp;&nbsp;" + rtnJson.data + "</div>";
               $("chat_content").scrollTop += 10000;       //滚动到最底部
               if($("processer") != null){
                  $("processer").style.display = "none";
               }
            }
        },
        onFailure: function(){ 
            alert("由于网络原因,你的信息发送不成功");
            if($("processer") != null){
               $("processer").style.display = "none";
            }
        } 
        })
}

//获取所有的手机聊天记录;
function getAllPmsgs()
{
    var paramsValue ="act_id="+mts_act_id;
    var url = '/actlive/getallphonemsgs';
    new Ajax.Request({
           parameters : paramsValue,
           method: 'POST',
           onSuccess: function(request)
           { 
                var tJson = eval("("+request.responseText+")");
                if(tJson.status== "ok 200")
                {
                    romovePmsgs();                                          //删除原来的消息泡泡;
                    loadPmsgs(tJson);                                       //在地图上显示新的泡泡;
                    showAllPmsgs(tJson,false);                              //在手机聊天框中显示手机聊天信息;
                }                          
          },
          onFailure: function()
          { 
               // alert('对不起 轨迹显示失败!\n' + result.responseText); 
          } 
    })
}

//显示所有的手机聊天信息;
//两个参数,信息tJson, 是否清空的标记,true表示清空所有后重新显示, false表示信息的添加.
function showAllPmsgs(tJson,clear){
    try{
          var msg = tJson.messages;
          var msglength = msg.length;
          var html = "";
          if(msglength > 0)
          {
              for(var i=0;i<msglength;i++)
              {
                    var style;
                    if(i % 2 == 0)
                    {
                       style = "chat_content_item1";
                    }
                    else
                    {
                       style="chat_content_item2";
                    }
                    html += "<div class="+ style + "><span class=item_font_bold>" + msg[i].created_at +
                    "</span>&nbsp;&nbsp;<a href=# onClick='getUserPmsgs("+ msg[i].send_userid + ")' >" + msg[i].nickname+"</a>" ;
                    html += "<br>&nbsp;&nbsp;<a href=# onclick='getOnePmsg(" + toJsonString(msg[i]) + ")'>" + msg[i].message + "</a></div>";
              }
              if(clear == true)                                             //如果清空;
              {
                     $("right2_content").innerHTML = html;
              }
              else                                                           //如果不是清空,即信息添加;
              {
                     $("right2_content").innerHTML += html;
                     if(isTelMsgDisplay == false)
                     {
                              isChangeMsg = true;
                              try
                              {
                                      $("td2").innerHTML = "手机聊天（<span style='color:#f00; font-size:13px;'>新消息</span>）"; 
                              }
                              catch(er){}
                              finally
                              {                       
                                 isChangeMsg = false;
                              }
                     }
              }
              $("right2_content").scrollTop += 10000;                     //滚动到最底部;
          }
    }
    catch(ee){}

}

//在地图上显示手机聊天信息;
function loadPmsgs(tJson)
{
    var msglength=tJson.messages.length;
    var dpoints=[];
    if(msglength>0)
    {
        for(var i=0;i<msglength;i++)
        {
            var lon=parseInt((parseFloat(tJson.messages[i].lon)+0.0049)*100000);   
            var lat=parseInt((parseFloat(tJson.messages[i].lat)-0.0027)*100000);
            var dpoint =new LTPoint(lon,lat); 
            var point = new GLatLng(parseFloat(tJson.messages[i].lat),parseFloat(tJson.messages[i].lon));
            var html="<table width=200 border=0 cellspacing=0 cellpadding=0><tr><td>发言人："+tJson.messages[i].nickname+"<hr>消息："+tJson.messages[i].message+"<hr>时间："+tJson.messages[i].created_at+"</td></tr></table>";	
            var marker=cMarker(point,html,mapicon4);
            map.addOverlay(marker); 
            pmsgmarkers.push(marker);
            dpoints.push(dpoint);                           
        }
        ditu.getBestMap(dpoints);
        ditu.zoomOut();
        var gZoom=17-ditu.getCurrentZoom();
        map.setZoom(gZoom);
        dMoveEnd();
    }
}

//删除地图上手机的聊天信息(泡泡);
function romovePmsgs()
{
    var pmsglen=pmsgmarkers.length;
    if(pmsglen>0)
    {
        for(var i=0;i<pmsglen;i++)
        {
            map.removeOverlay(pmsgmarkers[i]);
        }
        pmsgmarkers=[];
    }
}

function getPhonemsgs()
{
   if(!issend)
    {
        issend=true;
        try{
                var paramsValue = {"act_id" : $("act_id").value};
                var url = '/actlive/get_telephone_chat';        
                var myAjax = new Ajax.Request(
                        url, 
                        {
                            method: 'POST', 
                            parameters: paramsValue, 
                            onSuccess: function(request)
                            {
                                var tJson = eval("("+request.responseText+")");
                                if(tJson.status== "ok 200")
                                {
                                     loadPhonemsgs(tJson);
                                }  
                            },
                            onFailure: function()
                            { 
                            }
                        }); 
           }
        catch(er){

        }
        finally{
        issend=false;
        }     
          issend = false
      }
}

//显示新来的手机聊天信息;
function loadPhonemsgs(tJson)
{
   showAllPmsgs(tJson, false);
}

//获取单个手机聊天信息;
function getOnePmsg(msg)
{
    romovePmsgs();
    var point = new GLatLng(parseFloat(msg.lat),parseFloat(msg.lon));
    var html="<table width=200 border=0 cellspacing=0 cellpadding=0><tr><td>发言人："+msg.nickname+"<hr>消息："+msg.message+"<hr>时间："+msg.created_at+"</td></tr></table>";	
    var marker=cMarker(point,html,mapicon4);
    map.addOverlay(marker);
    map.openInfoWindow(point,html);
    map.panTo(point);
    pmsgmarkers.push(marker);
}


//获取单个用户的所有手机聊天记录;
function getUserPmsgs(uid)
{
    var paramsValue ={"act_id" : mts_act_id, "user_id" : uid};
    var url = '/actlive/getuserphonemsgs';
    
    var myAjax = new Ajax.Request(
                        url, 
                        {
                            method: 'POST', 
                            parameters: paramsValue, 
                            onSuccess: function(request)
                            {
                                var tJson = eval("("+request.responseText+")");
                                if(tJson.status== "ok 200")
                                {
                                      romovePmsgs();
                                      loadPmsgs(tJson);
                                }  
                            },
                            onFailure: function()
                            { 
                            }
                        }); 

}

//json转换成字符串;
function toJsonString(object)
{
   var type = typeof object;
   if ('object' == type)
   {
         if (Array == object.constructor)
             type = 'array';
         else if (RegExp == object.constructor)
             type = 'regexp';
         else
             type = 'object';
   }
   switch(type)
   {
       case 'undefined':
       case 'unknown': 
           return;
           break;
       case 'function':
       case 'boolean':
       case 'regexp':
           return object.toString();
           break;
       case 'number':
           return isFinite(object) ? object.toString() : 'null';
           break;
       case 'string':
           return '"' + object.replace(/(\\|\")/g,"\\$1").replace(/\n|\r|\t/g,
       function(){   
                 var a = arguments[0];                   
                 return  (a == '\n') ? '\\n':   
                                   (a == '\r') ? '\\r':   
                                   (a == '\t') ? '\\t': ""  
                         }) + '"';
                 break;
       case 'object':
            if (object === null) return 'null';
            var results = [];
            for (var property in object) {
                  var value = toJsonString(object[property]);
                  if (value !== undefined)
                      results.push(toJsonString(property) + ':' + value);
            }
            return '{' + results.join(',') + '}';
            break;
       case 'array':
            var results = [];
            for(var i = 0; i < object.length; i++)
            {
                 var value = toJsonString(object[i]);
                 if (value !== undefined) results.push(value);
            }
            return '[' + results.join(',') + ']';
            break;
   }
}


function showFloatDiv(sourceDiv,targetDiv)  //sourceDiv要显示的div id，targetDiv被覆盖的div id;
{
    sourceDiv = $(sourceDiv);
    targetDiv = $(targetDiv);
    var offHeight = targetDiv.offsetHeight;
    var offWidth = targetDiv.offsetWidth;
    var offsetTop = targetDiv.offsetTop;
    var offsetLeft = targetDiv.offsetLeft;
    while(targetDiv = targetDiv.offsetParent){  
         offsetTop += targetDiv.offsetTop;   
         offsetLeft += targetDiv.offsetLeft;   
    } 
       
    //计算sourceDiv的位置;
    sourceDiv.style.top = offsetTop + offHeight / 2 - sourceDiv.offsetHeight / 2 + "px";
    sourceDiv.style.left = offsetLeft + offWidth / 2 - sourceDiv.offsetWidth / 2 + "px";
    sourceDiv.style.position = "absolute";
    sourceDiv.style.display = "block";
    sourceDiv.style.zIndex = "999";
}

function showTD(el)
{
   if(el.id == "td1")
   {
      setTDStyle("chat_message", "telephone_messages", "td1", "td2")
      isChatMsgDisplay = true;
      isTelMsgDisplay = false;
      if(isChangeMsg == false)
      el.innerHTML = "网友聊天";
   }
   else
   {
      setTDStyle("telephone_messages", "chat_message", "td2", "td1")
      isChatMsgDisplay = false;
      isTelMsgDisplay = true;
      if(isChangeMsg == false)
      el.innerHTML = "手机聊天";
   }
   
}

function setTDStyle(m1,m2,t1,t2)
{
    m1El = $(m1);
    m2El = $(m2); 
    t1El = $(t1);
    t2El = $(t2);
    m2El.hide();
    t2El.style.backgroundColor = "#EDF4F8";
    t2El.style.fontWeight = "normal";
    t1El.style.backgroundColor = "#D8E7F1";
    t1El.style.fontWeight = "bold";
    m1El.show();             //参数,true 显示渐变动画,false 不显示;
}

function autoRefresh()
{
    document.location.reload();
}

function show_all_pics()
{
   var checkbox_pics = $("all_pic");
   if(checkbox_pics.checked == false)
   {
       if(timmerGettingPics != null)
       {
           clearInterval(timmerGettingPics);
           timmerGettingPics = null;
       }  
       var length = picMarkers.length;
       for(var i = 0; i<length; i++)
       {
              map.removeOverlay(picMarkers[i][0]);
       }
   }
   else
   {
       if(timmerGettingPics == null)
       {
              timmerGettingPics = window.setInterval("getActPic();", 1000 * 60 * 1); //不立即获取图片，防止用户不停点checkbox;
       }
       var length = picMarkers.length;
       for(var i = 0; i<length; i++)
       {
              map.addOverlay(picMarkers[i][0]);
       } 
   }
}
function act_init()
{
   dituload($("act_id").value);
   var btn = $("btnSendChat");
   btn.observe("click", sendChatMessage);
   window.setInterval("getGuestBook();",6000);
   var checkbox_pics = $("all_pic");
   checkbox_pics.checked = true;
   checkbox_pics.observe("click", show_all_pics);
   if(checkbox_pics.checked == true)
   {  
        getActPic();
        timmerGettingPics = window.setInterval("getActPic();", 1000 * 60 * 1);  //每1分钟取一次图片;
   }
   window.setInterval("autoRefresh();", 1000 * 60 * 35);   //每45分钟页面自动刷新一次;
   getPhonemsgs();
   window.setInterval("getPhonemsgs();",1000 * 60 * 2);      //6分钟取一回手机聊天信息;
   window.setTimeout("getSDTrack()",1000*1)                       //加载路线
}

Event.observe(window, "load", act_init);
