var myMap;var GEversion;var GEversionMajeure;var GEversionMini=5.2;var cptReq=0;var tP=1000;var nPPU=0;var nPM=350;var camera;var uBEPlacemark;var uBEPoint;var nbBE=0;var bECM="auto";var vCE=true;var CAP_CHANGE;var previousCap=0;var previousChronoStart=0;var newChronoStart=0;var nbUAs=0;var uA=new Array();var userArrayLength=0;var lRI=0;var lTRG=0;var lTRS=0;var nbESR=0;var cTDT=true;var kAP="http://www.nexxtep-online.net/kmz/";var kmzAddressLocalPrefix="C:/Program Files/neXXtep Technologies/Parcours";var oKaL=false;var KMZ2=null;var getUsersCallbackFunc="";google.load("earth","1",{"other_params":"client=gme-nexxteptechnologies&sensor=true"});function init(){if(tM=='DIRECT'){nPPU=10;CAP_CHANGE=90;}else if(tM=='REPLAY'){nPPU=1;CAP_CHANGE=10;}google.earth.createInstance('map_canvas',iGe,fGE);};function iGe(instance){setTimeout(function(){myMap=instance;myMap.getWindow().setVisibility(true);myMap.getNavigationControl().setVisibility(myMap.VISIBILITY_AUTO);myMap.getOptions().setScaleLegendVisibility(true);myMap.getOptions().setStatusBarVisibility(false);myMap.getOptions().setOverviewMapVisibility(false);myMap.getOptions().setGridVisibility(false);myMap.getOptions().setMouseNavigationEnabled(true);myMap.getLayerRoot().enableLayerById(myMap.LAYER_BORDERS,true);myMap.getLayerRoot().enableLayerById(myMap.LAYER_ROADS,true);myMap.getLayerRoot().enableLayerById(myMap.LAYER_TERRAIN,true);myMap.getLayerRoot().enableLayerById(myMap.LAYER_BUILDINGS,true);myMap.getLayerRoot().enableLayerById(myMap.LAYER_BUILDINGS_LOW_RESOLUTION,true);GEversion=myMap.getPluginVersion();var versions=GEversion.split(".");GEversionMajeure=versions[0]+"."+versions[1];if(GEversionMajeure<GEversionMini){alert("Votre version de Google Earth est trop ancienne.\nVeuillez installer une version plus récente.\n\nVotre version: "+GEversion+"\nVersion minimale: "+GEversionMini+"\n\nUne page de mise à jour va s'ouvrir automatiquement.");window.open("http://earth.google.fr/intl/fr/download-earth.html");}camera=myMap.getView().copyAsCamera(myMap.ALTITUDE_RELATIVE_TO_GROUND);lookAt=myMap.getView().copyAsLookAt(myMap.ALTITUDE_RELATIVE_TO_GROUND);uBEPoint=myMap.createPoint("");uBEPlacemark=myMap.createPlacemark("");uBEPlacemark.setName("");uBEPlacemark.setGeometry(uBEPoint);var icon=myMap.createIcon('');icon.setHref("http://www.nexxtep-online.net/images/mapIcons/suivi_plan.png");var style=myMap.createStyle("");style.getIconStyle().setIcon(icon);uBEPlacemark.setStyleSelector(style);if(kTL!=''&&kTL!=undefined){google.earth.fetchKml(myMap,kAP+kTL,kL);}else{gU();}if(kTL2!=''&&kTL2!=undefined){google.earth.fetchKml(myMap,kAP+kTL2,kmlLoaded2);}},50);};function fGE(errorCode){setTimeout(function(){alert("Erreur au chargement du plugin Google Earth !\n\nVeuillez vérifier qu'il est bien installé et que votre navigateur internet est compatible avec ce logiciel.");},500);};function aC(){courbeDenivele.show('south');if(tM!='DIRECT'){slidereplay.show('south');}if(afCV){courbeVitesse.show('south');}if(afCFC){courbeCardio.show('south');}setTimeout('$("#map_canvas").css("height", ($(".centre").height() - $("#bandeau").height() - 8 +"px"));',500);$(".centre").css("width","100%");$("#placeholder").css("height","150px");$("#placeholder").css("width","99%");$("#placeholder").css("margin-left","5px");$("#placeholder").css("margin-top","5px");afC=true;};function sC(){if(tM!="DIRECT"){slidereplay.show('south');}if(afCV){courbeVitesse.show('south');}if(afCFC){courbeCardio.show('south');}if(afAlt){courbeAltitude.show('south');}setTimeout('$("#map_canvas").css("height", ($(".centre").height() - $("#bandeau").height() - 8 + "px") );',500);$("#map_canvas").css("width","100%");$("#placeholder").css("height","0px");$("#placeholder").css("width","0px");afC=false;};function kL(object){if(!object){setTimeout(function(){alert('Erreur au chargement du parcours.');},500);sC();gU();}else{oKaL=true;myMap.getFeatures().appendChild(object);var gex=new GEarthExtensions(myMap);if(object.getAbstractView()){myMap.getView().setAbstractView(object.getAbstractView());}else{try{var folder=myMap.getFeatures().getLastChild().getFeatures().getFirstChild();var bounds=gex.dom.computeBounds(folder);gex.view.setToBoundsView(bounds,{aspectRatio:5,scaleRange:5});}catch(Error){}}lookAt=myMap.getView().copyAsLookAt(myMap.ALTITUDE_RELATIVE_TO_GROUND);camera=myMap.getView().copyAsCamera(myMap.ALTITUDE_RELATIVE_TO_GROUND);gex.dom.walk({rootObject:myMap,visitCallback:function(){if('getType'in this){if(this.getType()=='KmlTour'){tour=this;myMap.getTourPlayer().setTour(tour);myMap.getTime().getControl().setVisibility(myMap.VISIBILITY_SHOW);}else if(this.getType()=='KmlPlacemark'){desc=this.getDescription();if(desc.indexOf("<embed")>=0){google.earth.addEventListener(this,"click",function(event){event.stopPropagation();event.preventDefault();oVB(event.getTarget());});}}}}});if(afC){setTimeout("rTFX();",1000);}else{gU();}}};function kmlLoaded2(object){if(!object){setTimeout(function(){alert('Erreur au chargement du parcours.');},500);sC();}else{KMZ2=object;if(aKTL2){myMap.getFeatures().appendChild(KMZ2);}}};function tDT(){if(cTDT){if(lTRG==0){lTRG=gTFD;}if(tM=='DIRECT'){if(directTurboMode==true||nbUAs==0){if(eventID==null){var strUT='';for(var i in uA){if(uA[i].userName!=undefined){if(strUT!=''){strUT+=',';}strUT+=uA[i].userName;}}GPSdataService.gUTSGdTT(gTFD,strUT,nPM,tLO,tLNO);}else{GPSdataService.gUTurbo(gTFD,eventID,nPM,tLO,tLNO);}}else{var xSUT='<l>';for(var i in uA){if(uA[i].userName!=undefined){cUN=uA[i].userName;cULTRG=uA[i].lTRG;if(cULTRG==0){cULTRG=gTFD;}xSUT+='<ut>';xSUT+='<un>'+cUN+'</un>';xSUT+='<lt>'+cULTRG+'</lt>';xSUT+='</ut>';}}xSUT+='</l>';GPSdataService.gUTSGdT(xSUT,nPM,tLO,tLNO);}}else if(tM=='REPLAY'){var nbUA=0;var strUT='';for(var i in uA){if(uA[i].userName!=undefined){if(strUT!=''){strUT+=',';}strUT+=uA[i].userName;nbUA++;}}var nPD=nPPU*nbUA;if(nPD>nPM){nPD=nPM;}if(nPD==0){nPD=10;}if(!recalage){GPSdataService.gTSGdT(lTRG,gTTD,strUT,nPD,tLO,tLNO);}else{GPSdataService.gTSGdTR(lTRG,gTTD,strUT,nPD,tLO,tLNO);}}}else{setTimeout("tDT();",tP);}};function tLO(result,eventArgs){var nbE=result.length;if(nbE==0){nbESR++;}for(a=0;a<nbE;a++){var trackerName=result[a]["tn"];if(uTW.in_array(trackerName)){if(cTDT){if(gTTD>0){if(parseInt(result[a]["t"])>=gTTD){uA["_"+trackerName].display=false;}}}if(cTDT){if(uA["_"+trackerName].display==null){sU(trackerName);}else if(uA["_"+trackerName].placemark!=null){try{tUP(trackerName,uA["_"+trackerName].display);}catch(e){}}description="";if(altiBalise){Altitude=result[a]["alt"];description+="<br>Altitude :&nbsp;"+Altitude;}else{Altitude=0;}if(tM=='DIRECT'&&result[a]["bat"]!= -1&&organisateur){uA["_"+trackerName].bat=result[a]["bat"];updateBatterie(trackerName);}if(tM=='DIRECT'&&result[a]["gsm"]!=1&&organisateur){uA["_"+trackerName].gsm=result[a]["gsm"];updateGSM(trackerName);}if(tM=='DIRECT'&&result[a]["gps"]!= -1&&organisateur){uA["_"+trackerName].gps=result[a]["gps"];updateGPS(trackerName);}if(tM=='DIRECT'){}if((cS>0&&nTs>startTimestamp)||(cS==0)){if(!recalage){uA["_"+trackerName].dist+=result[a]["d"];}else{uA["_"+trackerName].dist=result[a]["d"];}}if(afC){if((kTL==''||kTL==undefined)&&Altitude!=0){aPED(result[a]["d"],Altitude,result[a]["la"],result[a]["lo"]);}else{curIndice=result[a]["ind"];aUED(trackerName,result[a]["la"],result[a]["lo"]);}}if((cS>0&&nTs>startTimestamp)||(cS==0)){if(afC&&uA["_"+trackerName].indexUserCourbeOK==true){description+="Distance: "+(tKALL[uA["_"+trackerName].indexUserCourbe]["km"]).toFixed(2)+" Km<br>";}}if(!(uA["_"+trackerName].arrive)){if(uA["_"+trackerName].vit.length>=10){uA["_"+trackerName].vit.pop();uA["_"+trackerName].vit.unshift(result[a]["v"]);}else{uA["_"+trackerName].vit.unshift(result[a]["v"]);}var tailleTab=uA["_"+trackerName].vit.length;var vit=0;for(k=0;k<tailleTab;k++){vit+=uA["_"+trackerName].vit[k];}vit/=tailleTab;description+="Vitesse: "+(vit).toFixed(2)+" Km / h<br>";if(sport=="aviron"){var vitesseAviron;vitesseAviron=1800/vit;min=vitesseAviron/60;s=vitesseAviron%60;if(s<10){description+="Vitesse: "+min.toFixed(0)+" min 0"+s.toFixed(0)+" s / 500m <br>";}else{description+="Vitesse: "+min.toFixed(0)+" min "+s.toFixed(0)+" s / 500m <br>";}}if(afCV&&uA["_"+trackerName].indexUserCourbeOK==true&&vit>3){addVitesseToCourbe(trackerName,tKALL[uA["_"+trackerName].indexUserCourbe]["km"],vit);}if(!afC&&afCV&&vit>3){addVitesseToCourbe(trackerName,uA["_"+trackerName].dist,vit);}}if(cS>0){if(afC&&uA["_"+trackerName].indexUserCourbeOK&&restant>0){if(!(uA["_"+trackerName].arrive)){var vitMoy=(tKALL[uA["_"+trackerName].indexUserCourbe]["km"]*3600)/restant;uA["_"+trackerName].vitMoy=vitMoy.toFixed(2);}description+="Vitesse moyenne: "+uA["_"+trackerName].vitMoy+" Km / h<br>";}}if(!(uA["_"+trackerName].arrive)&&result[a]["fc"]>0){try{description+="Fréquence cardiaque: "+(result[a]["fc"])+"<br>";if(afCFC&& !afAlt&&uA["_"+trackerName].indexUserCourbeOK==true){addCardioToCourbe(trackerName,tKALL[uA["_"+trackerName].indexUserCourbe]["km"],result[a]["fc"]);}}catch(e){}}if(!afC){if(afAlt){addAltToCourbe(trackerName,uA["_"+trackerName].dist,result[a]["alt"]);}if(afCFC&&result[a]["fc"]>0){addCardioToCourbe(trackerName,uA["_"+trackerName].dist,result[a]["fc"]);}}if(afC){if(coureurRef!=null&&trackerName!=coureurRef){if(uA["_"+trackerName].indexUserCourbeOK&&uA["_"+coureurRef].indexUserCourbeOK){var timeStampCourRef=(dateDoubleToDate(uA["_"+trackerName].lTRG).getTime())/1000;var timeStampCour=(dateDoubleToDate(uA["_"+coureurRef].lTRG).getTime())/1000;var timeEcart=Math.abs(timeStampCour-timeStampCourRef);if(timeEcart<60){var ecart=tKALL[uA["_"+trackerName].indexUserCourbe]["km"].toFixed(2)-tKALL[uA["_"+coureurRef].indexUserCourbe]["km"].toFixed(2);ecart=ecart*1000;var signe="";if(ecart>0){signe="+";}description+="<br />Ecart distance: "+signe+ecart.toFixed(0)+" m "+" de "+uA["_"+coureurRef].nom+" "+uA["_"+coureurRef].prenom+"<br/>";}}}}if(result[a]["t"]>20100101010101){description+="<br />Le: "+dDTS(result[a]["t"],"dd/mm/yyyy HH:MM:ss")+"<br>";}if(dM){description+="<br>Cap:&nbsp;"+result[a]["c"];description+="<br>Altitude:&nbsp;"+Altitude;description+="<br>Distance instantanée:&nbsp;"+result[a]["d"];description+="<br>Distance totale:&nbsp;"+uA["_"+trackerName].dist;description+="<br>Vitesse instantanée:&nbsp;"+result[a]["v"];description+="<br>Latitude:&nbsp;"+result[a]["la"];description+="<br>Longitude:&nbsp;"+result[a]["lo"];description+="<br>ServerTime:&nbsp;"+dDTS(result[a]["st"],"dd/mm/yyyy HH:MM:ss");if(afC){description+="<br><br><b>Courbe de dénivelé:&nbsp;</b>";description+="<br>indexUserCourbe:&nbsp;"+uA["_"+trackerName].indexUserCourbe;description+="<br>indexUserCourbeOK:&nbsp;"+uA["_"+trackerName].indexUserCourbeOK;description+="<br>tKALL[km]:&nbsp;"+tKALL[uA["_"+trackerName].indexUserCourbe]["km"];}if(altiBalise){description+="<br>Altitude:&nbsp;"+Altitude+"<br>";}}if(result[a]["Cap"]!=0){if(uA["_"+trackerName].cap.length>=3){uA["_"+trackerName].cap.shift();}uA["_"+trackerName].cap.push(result[a]["c"]);}if(uA["_"+trackerName].placemark==null||dOP==false){if(recalage){cUP(trackerName,uA["_"+trackerName].nom+" "+uA["_"+trackerName].prenom,'',result[a]["la"],result[a]["lo"],Altitude,result[a]["c"],description,false);}else{cUP(trackerName,uA["_"+trackerName].nom+" "+uA["_"+trackerName].prenom,'',result[a]["la"],result[a]["lo"],Altitude,result[a]["c"],description,false);}}else{if(recalage){mUP(trackerName,result[a]["la"],result[a]["lo"],Altitude,result[a]["c"],description);}else{mUP(trackerName,result[a]["la"],result[a]["lo"],Altitude,result[a]["c"],description);}}if(altiBalise){drawLineAB(uA["_"+trackerName].lat,uA["_"+trackerName].lon,uA["_"+trackerName].alt,result[a]["la"],result[a]["lo"],Altitude,trackerName);}else{dL(uA["_"+trackerName].lat,uA["_"+trackerName].lon,result[a]["la"],result[a]["lo"],trackerName);}uA["_"+trackerName].lat=result[a]["la"];uA["_"+trackerName].lon=result[a]["lo"];uA["_"+trackerName].alt=Altitude;uA["_"+trackerName].lineStringPlacemark=description;uA["_"+trackerName].lTRG=result[a]["t"];uA["_"+trackerName].lTRS=result[a]["st"];if(afC){MAJtUC(trackerName);}}}if(afC&&uA["_"+trackerName].arrive==false){isArrived(trackerName);}if(result[a]["id"]>lRI){lRI=result[a]["id"];}if(result[a]["t"]>lTRG){lTRG=result[a]["t"];}if(result[a]["st"]>lTRS){lTRS=result[a]["st"];}}if(cS>0&&cSS==false){previousChronoStart=cS;newChronoStart=cS;var year=parseInt(dDTS(cS,"yyyy"));var month=parseInt(dDTS(cS,"m"));var day=parseInt(dDTS(cS,"d"));var hour=parseInt(dDTS(cS,"H"));var min=parseInt(dDTS(cS,"M"));var sec=parseInt(dDTS(cS,"s"));var startDateTime=new Date(year,month-1,day,hour,min,sec,0);startTimestamp=parseInt(startDateTime.getTime()/1000,10);if(gTTD>0){var year=parseInt(dDTS(gTTD,"yyyy"));var month=parseInt(dDTS(gTTD,"m"));var day=parseInt(dDTS(gTTD,"d"));var hour=parseInt(dDTS(gTTD,"H"));var min=parseInt(dDTS(gTTD,"M"));var sec=parseInt(dDTS(gTTD,"s"));var endDateTime=new Date(year,month-1,day,hour,min,sec,0);endTimestamp=parseInt(endDateTime.getTime()/1000,10);}else{endTimestamp=0;}}if(cS>0){if(lTRG>0&&tM=='REPLAY'){stoUNTI();var year=parseInt(dDTS(lTRG,"yyyy"));var month=parseInt(dDTS(lTRG,"m"));var day=parseInt(dDTS(lTRG,"d"));var hour=parseInt(dDTS(lTRG,"H"));var min=parseInt(dDTS(lTRG,"M"));var sec=parseInt(dDTS(lTRG,"s"));var nowDateTime=new Date(year,month-1,day,hour,min,sec,0);nTs=parseInt(nowDateTime.getTime()/1000,10);}else{staUNTI();}}if(cS>0&&cSS==false){cSS=true;setTimeout("lCh();",1500);}if(!cTDT&&cS>0){staUNTI();}if(isGroup){var numGroup=userGroupArray["_"+trackerName];tableDistanceR(numGroup);}else{tableDistance();}setTimeout("tDT();",tP);};function tLNO(error){setTimeout("tDT();",tP);};function gU(callbackFunc){if(callbackFunc!=undefined&&callbackFunc!=""){getUsersCallbackFunc=callbackFunc;}else{getUsersCallbackFunc="";}if(eventID==null){var strUT='';$.each(uTW,function(i,cV){if(cV!=undefined){if(strUT!=''){strUT+=',';}strUT+=cV;}});}var infosFromDateTime=0;var infosToDateTime=0;if(cS>0){infosFromDateTime=cS;if(tM=='DIRECT'){infosToDateTime=dateTimeNowDouble;}else if(tM=='REPLAY'){if(lTRG>gTFD){infosToDateTime=lTRG;}else if(gTFD>cS){infosToDateTime=gTFD;}else{infosToDateTime=cS;}infosToDateTime=parseInt(infosToDateTime);}}if(eventID==null){GPSdataService.gAU(strUT,infosFromDateTime,infosToDateTime,uLO,uLNO);}else{GPSdataService.gAUe(eventID,infosFromDateTime,infosToDateTime,uLO,uLNO);}};function uLO(result,eventArgs){var nbE=result.length;if(nbE>0){var fTLU=false;if(userArrayLength==0){fTLU=true;}for(a=0;a<nbE;a++){var userName=result[a]["un"];if(uTW.in_array(userName)){if(uA["_"+userName]==undefined){cU(userName,result[a]["n"],result[a]["p"],result[a]["d"],result[a]["ico"]);}else{updateUser(userName,result[a]["n"],result[a]["p"],result[a]["d"],result[a]["ico"]);}}}if(fTLU&&afC&&(kTL==''||kTL==undefined)){aCED();}if(fTLU){setTimeout("tDT();",1500);setTimeout("vfB();",15000);}if(getUsersCallbackFunc!=""){eval(getUsersCallbackFunc);}setTimeout("gU();",600000);}else{setTimeout("gU(getUsersCallbackFunc);",5000);}};function uLNO(error){setTimeout("gU();",5000);};function cU(_userName,_nom,_prenom,_distance,_icone){var _icoKMZ=false;if(altiBalise){var chaine2=_icone;var reg=new RegExp(".kmz$");if(chaine2.match(reg)){_icoKMZ=true;}}var userTmp={userName:_userName,nom:_nom,prenom:_prenom,display:null,addedToForm:false,lat:0,lon:0,cap:new Array(),alt:0,dist:_distance,vit:new Array(),vitMoy:0,lTRG:0,lTRS:0,indexUserCourbe:0,indexUserCourbeOK:false,color:"FFFFFF",placemark:null,placemarkStyle:null,point:null,balloon:null,lineString:null,lineStringStyle:null,lineStringPlacemark:null,desc:"",datatableRow:null,groupID:null,displayInfos:false,arrive:false,temps:0,icoKMZ:_icoKMZ,model:null};if(_icone!='Null'&&_icone!=''){userTmp.icon=_icone;}else{userTmp.icon="";}uA["_"+_userName]=userTmp;userArrayLength+=1;};function updateUser(userName,nom,prenom,distance,icone){uA["_"+userName].nom=nom;uA["_"+userName].prenom=prenom;uA["_"+userName].dist=distance;if(icone!='Null'&&icone!=''){uA["_"+userName].icon=icone;}if(uA["_"+userName].placemark!=null){uA["_"+userName].placemark.setName(nom+" "+prenom);}if(!isGroup){var aTrs=tUTD.fnGetNodes();for(var i=0;i<aTrs.length;i++){var tmpUserName=tUTD.fnGetData(aTrs[i])[0];if(tmpUserName==userName){tUTD.fnUpdate(nom,i,2);tUTD.fnUpdate(prenom,i,3);break;}}}else{if(uA["_"+userName].datatableRow!=undefined){var datatableUser=groupArray["_"+userGroupArray["_"+userName]].dataTable;var indiceTR=datatableUser.fnGetPosition(uA["_"+userName].datatableRow);datatableUser.fnUpdate(nom,indiceTR,2);datatableUser.fnUpdate(prenom,indiceTR,3);}}};function cUP(userName,Pname,Picon,Plat,Plon,Palt,Pcap,Pdesc,PopenBalloon){try{if(Pname==''){Pname='Coureur '+userName;}if(Picon==''){Picon=uA["_"+userName].icon;}if(uA["_"+userName].icoKMZ){var point=myMap.createPoint('');point.setLatitude(Plat);point.setLongitude(Plon);if(altiBalise){point.setAltitudeMode(myMap.ALTITUDE_ABSOLUTE);point.setAltitude(Palt);}var placemark=myMap.createPlacemark('');placemark.setName(Pname);placemark.setDescription(Pdesc);placemark.setGeometry(point);myMap.getFeatures().appendChild(placemark);var icon=myMap.createIcon('');var style=myMap.createStyle('');style.getIconStyle().setIcon(icon);placemark.setStyleSelector(style);uA["_"+userName].placemarkStyle=style;uA["_"+userName].placemarkStyle.getIconStyle().setScale(0.0);rajoutICOKMZ(userName,Plat,Plon,Palt,Pcap);}else{var point=myMap.createPoint('');point.setLatitude(Plat);point.setLongitude(Plon);if(altiBalise){point.setAltitudeMode(myMap.ALTITUDE_ABSOLUTE);point.setAltitude(Palt);}var placemark=myMap.createPlacemark('');placemark.setName(Pname);placemark.setDescription(Pdesc);placemark.setGeometry(point);myMap.getFeatures().appendChild(placemark);var icon=myMap.createIcon('');icon.setHref(Picon);var style=myMap.createStyle('');style.getIconStyle().setIcon(icon);placemark.setStyleSelector(style);uA["_"+userName].placemarkStyle=style;if(trackMode!="KML"){google.earth.addEventListener(placemark,"click",function(event){event.preventDefault();showUserInfos(userName,Pdesc);});}else{google.earth.addEventListener(placemark,"click",function(event){event.preventDefault();});}}uA["_"+userName].point=point;uA["_"+userName].placemark=placemark;if(uA["_"+userName].display==true){tUP(userName,true);}else{tUP(userName,false);}if(uBE==userName){var aTrs=tUTD.fnGetNodes();for(var i=0;i<aTrs.length;i++){if(tUTD.fnGetData(aTrs[i])[0]==uBE){$($(aTrs[i]).children(".sU")[0]).click();}}}}catch(e){}};var passeBirdEye=false;function mUP(userName,Plat,Plon,Palt,Pcap,Pdesc){uA["_"+userName].point.setLatitude(Plat);uA["_"+userName].point.setLongitude(Plon);if(altiBalise){uA["_"+userName].point.setAltitude(Palt);}uA["_"+userName].placemark.setGeometry(uA["_"+userName].point);if(Pdesc!=''){$("#window_coureur_"+userName+" p").html(Pdesc);}if(uA["_"+userName].icoKMZ&&uA["_"+userName].model!=undefined){uA["_"+userName].model.getLocation().setLatLngAlt(Plat,Plon,Palt);uA["_"+userName].model.getOrientation().setHeading(Pcap);}if(uBE==userName&&uA["_"+uBE].cap[1]!=undefined&&uA["_"+uBE].cap[2]!=undefined&&uA["_"+uBE].cap[0]!=undefined){if(!passeBirdEye){previousCap=uA["_"+uBE].cap[0];passeBirdEye=true;}uBEPoint.setLatitude(Plat);uBEPoint.setLongitude(Plon);uBEPlacemark.setGeometry(uBEPoint);bE(Plat,Plon);}};function dL(Olat1,Olon1,Olat2,Olon2,userName){try{if(Olat1!=0&&Olon1!=0&&Olat2!=0&&Olon2!=0){if(uA["_"+userName].lineString==null){var lineStringPlacemark=myMap.createPlacemark('');lineStringPlacemark.setStyleSelector(myMap.createStyle(''));var lineStyle=lineStringPlacemark.getStyleSelector().getLineStyle();lineStyle.setWidth(6);if(tU&&uA["_"+userName].display){lineStyle.getColor().set('99'+uA["_"+userName].color);}else{lineStyle.getColor().set('00'+uA["_"+userName].color);}var lineString=myMap.createLineString('');lineStringPlacemark.setGeometry(lineString);if(altiBalise){lineString.setAltitudeMode(myMap.ALTITUDE_ABSOLUTE);lineString.getCoordinates().pushLatLngAlt(Olat1,Olon1,0);lineString.getCoordinates().pushLatLngAlt(Olat2,Olon2,0);}else{lineString.setAltitudeMode(myMap.ALTITUDE_CLAMP_TO_GROUND);lineString.getCoordinates().pushLatLngAlt(Olat1,Olon1,0);lineString.getCoordinates().pushLatLngAlt(Olat2,Olon2,0);}uA["_"+userName].lineString=lineString;uA["_"+userName].lineStringStyle=lineStyle;uA["_"+userName].lineStringPlacemark=lineStringPlacemark;myMap.getFeatures().appendChild(uA["_"+userName].lineStringPlacemark);}else{uA["_"+userName].lineString.getCoordinates().pushLatLngAlt(Olat1,Olon1,0);uA["_"+userName].lineString.getCoordinates().pushLatLngAlt(Olat2,Olon2,0);}}}catch(e){}};function drawLineAB(Olat1,Olon1,Oalt1,Olat2,Olon2,Oalt2,userName){try{if(Olat1!=0&&Olon1!=0&&Olat2!=0&&Olon2!=0){if(uA["_"+userName].lineString==null){var lineStringPlacemark=myMap.createPlacemark('');lineStringPlacemark.setStyleSelector(myMap.createStyle(''));var lineStyle=lineStringPlacemark.getStyleSelector().getLineStyle();lineStyle.setWidth(6);if(tU&&uA["_"+userName].display){lineStyle.getColor().set('99'+uA["_"+userName].color);}else{lineStyle.getColor().set('00'+uA["_"+userName].color);}var lineString=myMap.createLineString('');lineStringPlacemark.setGeometry(lineString);lineString.setAltitudeMode(myMap.ALTITUDE_ABSOLUTE);lineString.getCoordinates().pushLatLngAlt(Olat1,Olon1,Oalt1);lineString.getCoordinates().pushLatLngAlt(Olat2,Olon2,Oalt2);uA["_"+userName].lineString=lineString;uA["_"+userName].lineStringStyle=lineStyle;uA["_"+userName].lineStringPlacemark=lineStringPlacemark;myMap.getFeatures().appendChild(uA["_"+userName].lineStringPlacemark);}else{uA["_"+userName].lineString.getCoordinates().pushLatLngAlt(Olat1,Olon1,Oalt1);uA["_"+userName].lineString.getCoordinates().pushLatLngAlt(Olat2,Olon2,Oalt2);}}}catch(e){}};function tUL(userName,show){if(uA["_"+userName].lineString!=null){if(show){uA["_"+userName].lineStringStyle.getColor().set('99'+uA["_"+userName].color);}else{uA["_"+userName].lineStringStyle.getColor().set('00'+uA["_"+userName].color);}}};function tAUL(show){for(var i in uA){if(uA[i].userName!=undefined){if(uA[i].display==true){tUL(uA[i].userName,show);}}}};function tUP(userName,show){if(uA["_"+userName].placemark!=null){if(show){if(dOP){uA["_"+userName].placemarkStyle.getIconStyle().setScale(0.6);uA["_"+userName].placemarkStyle.getLabelStyle().setScale(0.5);}else{uA["_"+userName].placemarkStyle.getIconStyle().setScale(0.3);uA["_"+userName].placemarkStyle.getLabelStyle().setScale(0.3);}}else{uA["_"+userName].placemarkStyle.getIconStyle().setScale(0.0);uA["_"+userName].placemarkStyle.getLabelStyle().setScale(0.0);}}};function bE(Plat,Plon){if(Plat!=0&&Plon!=0){var ALTITUDE=0;var ALTITUDEMODE=myMap.ALTITUDE_RELATIVE_TO_GROUND;if(altiBalise){ALTITUDE=uA["_"+uBE].alt;ALTITUDEMODE=myMap.ALTITUDE_ABSOLUTE;}var TILT=75;var RANGE=370;var capMoy=0;var nbC=uA["_"+uBE].cap.length;if(nbC>=3){if(uA["_"+uBE].cap[1]>uA["_"+uBE].cap[2]){capMax=uA["_"+uBE].cap[1];capMin=uA["_"+uBE].cap[2];}else{capMax=uA["_"+uBE].cap[2];capMin=uA["_"+uBE].cap[1];}capVar1=(360-capMax)+capMin;capVar2=capMax-capMin;if(capVar1<capVar2){capMoy=360+((capMin-(360-capMax))/2);}else{capMoy=(capMin+capMax)/2;}}else if(nbC>0){capMoy=uA["_"+uBE].cap[nbC-1];}if(nbBE==0){myMap.getOptions().setFlyToSpeed(myMap.SPEED_TELEPORT);nbBE=1;}else if(nbBE==2){myMap.getOptions().setFlyToSpeed(0.7);}try{sCa(Plat,Plon,ALTITUDEMODE,capMoy,ALTITUDE);}catch(e){}}};function sCa(lat,lon,altMode,cap,ALTITUDE){if(vCE){if(bECM=="auto"){var ANGLE_CAMERA=$("#sliderAngleCam").slider("option","value");var RANGE_CAMERA=$("#sliderRangeCam").slider("option","value");var DIST_POINT_CAMERA=Math.cos((ANGLE_CAMERA*Math.PI)/180)*RANGE_CAMERA;var HAUTEUR_CAMERA=Math.sin((ANGLE_CAMERA*Math.PI)/180)*RANGE_CAMERA;var hauteur_camera=0;var alt_point=myMap.getGlobe().getGroundAltitude(lat,lon);if(altiBalise){alt_point=ALTITUDE;}var d_cap=cap-previousCap;if(Math.abs(d_cap)<180&&d_cap<0){if(Math.abs(d_cap)<CAP_CHANGE)cap=previousCap-Math.abs(d_cap);else cap=previousCap-CAP_CHANGE;}else if(Math.abs(d_cap)<180&&d_cap>0){if(Math.abs(d_cap)<CAP_CHANGE)cap=previousCap+Math.abs(d_cap);else cap=previousCap+CAP_CHANGE;}else if(Math.abs(d_cap)>180&&d_cap<0){if(Math.abs(d_cap)<CAP_CHANGE)cap=previousCap+Math.abs(d_cap);else cap=previousCap+CAP_CHANGE;}else{if(Math.abs(d_cap)<CAP_CHANGE)cap=previousCap-Math.abs(d_cap);else cap=previousCap-CAP_CHANGE;}cap=modulo(cap,360);var camCoord=nxP(lat,lon,DIST_POINT_CAMERA,(cap+180)%360);var latCam=camCoord[0];var lonCam=camCoord[1];var alt_sous_camera=myMap.getGlobe().getGroundAltitude(latCam,lonCam);var newRange;var newTilt;if(HAUTEUR_CAMERA+alt_point<alt_sous_camera){hauteur_camera=20;newRange=Math.sqrt(Math.pow((alt_sous_camera+hauteur_camera)-alt_point,2)+Math.pow(DIST_POINT_CAMERA,2));newTilt=(Math.asin(((alt_sous_camera+hauteur_camera)-alt_point)/newRange)*180)/Math.PI;}else{newTilt=ANGLE_CAMERA;hauteur_camera=(HAUTEUR_CAMERA+alt_point)-alt_sous_camera;}camera.set(latCam,lonCam,hauteur_camera,altMode,cap,90-newTilt,0);previousCap=cap;myMap.getView().setAbstractView(camera);}else if(bECM=="semi-auto"){var lookAt=myMap.getView().copyAsLookAt(myMap.ALTITUDE_RELATIVE_TO_GROUND);lookAt.set(lat,lon,0,altMode,lookAt.getHeading(),60,lookAt.getRange());myMap.getView().setAbstractView(lookAt);}else if(bECM=="manu"){lookAt=myMap.getView().copyAsLookAt(myMap.ALTITUDE_RELATIVE_TO_GROUND);fCP(lat,lon,lookAt.getAltitude());}vCE=false;google.earth.addEventListener(myMap.getView(),'viewchangeend',function(){setTimeout("vCE = true;",20);});nbBE++;}};function nxP(lat1,lon1,distance,cap){var earthRadiusKms=6378.164;var lat1InRad=lat1*(Math.PI/180.0);var lon1InRad=lon1*(Math.PI/180.0);var capInRad=cap*(Math.PI/180.0);var lat2InRad=Math.asin(Math.sin(lat1InRad)*Math.cos(distance/(earthRadiusKms*1000))+Math.cos(lat1InRad)*Math.sin(distance/(earthRadiusKms*1000))*Math.cos(capInRad));var lon2InRad=lon1InRad+Math.atan2(Math.sin(capInRad)*Math.sin(distance/(earthRadiusKms*1000))*Math.cos(lat1InRad),Math.cos(distance/(earthRadiusKms*1000))-Math.sin(lat1InRad)*Math.sin(lat2InRad));return new Array((lat2InRad*180)/Math.PI,(lon2InRad*180)/Math.PI);};function fCP(lat,lon,alt){if(lat!=0&&lon!=0){var coordPointScreen=myMap.getView().project(lat,lon,alt,myMap.ALTITUDE_RELATIVE_TO_GROUND);var x_point=coordPointScreen.getX();var y_point=coordPointScreen.getY();var height_map=$("#map_canvas").height();var width_map=$("#map_canvas").width();if(x_point<0||x_point>width_map||y_point<0||y_point>height_map){camera=myMap.getView().copyAsCamera(myMap.ALTITUDE_RELATIVE_TO_GROUND);var tilt=camera.getTilt();if(tilt>70){tilt=70;}var hauteur_camera=camera.getAltitude();if(hauteur_camera<300){hauteur_camera=300;}var distance_point_camera=hauteur_camera/Math.tan(((90-tilt)*Math.PI)/180);var coord_next_camera=nxP(lat,lon,distance_point_camera,(camera.getHeading()+180)%360);var latNextCam=coord_next_camera[0];var lonNextCam=coord_next_camera[1];camera.set(latNextCam,lonNextCam,hauteur_camera,camera.getAltitudeMode(),camera.getHeading(),tilt,0);myMap.getView().setAbstractView(camera);}}};function isArrived(userName){var distanceMin=tKALL[tKALL.length-3]["km"]*(1-0.01);if(uA["_"+userName].indexUserCourbe>=tKALL.length-3&&uA["_"+userName].dist>=distanceMin&&uA["_"+userName].indexUserCourbeOK==true){if(hideEnd){deleteUser(userName);}uA["_"+userName].arrive=true;var userID;var aTrs=tUTD.fnGetNodes();for(var i=0;i<aTrs.length;i++){userID=tUTD.fnGetData(aTrs[i])[0];if(userName==userID){if(uBE==userName){$(aTrs[i]).removeClass("row_selected");try{tUTD.fnUpdate("",aTrs[i],6);}catch(e){}$("#suiviCourbe").remove();$('input[name=visible_'+userName+']').attr('disabled',false);uBE=0;}myMap.getFeatures().removeChild(uBEPlacemark);}}}};function deleteUser(userName){if($(uA["_"+userName].datatableRow).hasClass("row_selected")){$($(".row_selected").children(".sU")[0]).click();}$("input[name='visible_"+userName+"']").attr("disabled",true);$($(uA["_"+userName].datatableRow).children(".sU")).unbind("click");uA["_"+userName].display=false;tUP(userName,false);$("#userCourbe_"+uA["_"+userName].userName).css("left",9999);$("#userCourbe_"+uA["_"+userName].userName).css("top",9999);tUL(userName,false);};function displayUser(){$.each($("input[name*=visible_]"),function(){$(this).attr("disabled",false);if($(this).attr("checked")){uA["_"+$(this).val()].display=true;}});if(!isGroup){tULS();}else{for(var i in groupArray){if(groupArray[i].id!=undefined){tblUsersListenSelectG(groupArray[i].id);}}}if($('#tU:checked').val()=="oui"){tU=true;}else{tU=false;}tAUL(tU);};function rajoutICOKMZ(userName,Plat,Plon,Palt,Pcap){google.earth.fetchKml(myMap,uA["_"+userName].icon,function(obj){finishInitUI_(obj,userName,Plat,Plon,Palt,Pcap);});};function finishInitUI_(kml,userName,Plat,Plon,Palt,Pcap){modelPlacemark=kml.getFeatures().getFirstChild();model=modelPlacemark.getGeometry();model.setAltitudeMode(myMap.ALTITUDE_ABSOLUTE);myMap.getFeatures().appendChild(modelPlacemark);uA["_"+userName].model=model;uA["_"+userName].model.getLocation().setLatLngAlt(Plat,Plon,Palt);uA["_"+userName].model.getOrientation().setHeading(Pcap);}
