// JavaScript Document
var centre=70;
var altimetre={id_alti100:null, id_alti1000:null};

var cap_disp= {
		  id_valeur:new Array,
		  id_ligne:null
	  };
var attitude={id:null,id_back:null,point_delay:null};
var compas_disp= {
		  id_valeur:new Array,
		  id_ligne:null
	  };
var sondes={id:null,id_scale:null,idx:0,scale:100};

function init_instruments() {
 // ALTIMETRE
 
 
      var frag = document.createDocumentFragment(true);
      for (var i = 0; i < 10; i++) {
        var ligne = document.createElementNS(svgns, 'line');
		var teta=Math.PI*i/5;
		var x1=centre+53*Math.sin(teta);
		var x2=centre+64*Math.sin(teta);
		var y1=centre-53*Math.cos(teta);
		var y2=centre-64*Math.cos(teta);
        ligne.setAttribute('x1', x1);
        ligne.setAttribute('y1', y1);
        ligne.setAttribute('x2', x2);
		ligne.setAttribute('y2', y2);
		ligne.setAttribute('stroke-opacity', '1');
		ligne.setAttribute('stroke-width', '3');
        ligne.setAttribute('stroke', 'white');
		
		var textNode = document.createTextNode(i, true);
		var chiffre = document.createElementNS(svgns, 'text');
		x1=-3+centre+45*Math.sin(teta);
		y1=5+centre-45*Math.cos(teta);
        chiffre.setAttribute('x', x1);
        chiffre.setAttribute('y', y1);
		chiffre.appendChild(textNode);
        frag.appendChild(ligne);
		frag.appendChild(chiffre);
      }
      // now append the DocumentFragment to the DOM
      //var svg = document.getElementsByTagNameNS(svgns, 'svg')[0];
	  var svg = document.getElementById('svg_alti');
      svg.appendChild(frag); // DocumentFragment disappears leaving circles
	  altimetre.id_alti100=document.getElementById('alti100');
	  altimetre.id_alti1000=document.getElementById('alti1000');
	  
	   // CAP avion
	  
      var frag = document.createDocumentFragment(true);
      for (var i = 0; i < 9; i++) {
        var ligne = document.createElementNS(svgns, 'line');
		var teta=Math.PI*(-10+2*i)/180;
		var x1=centre-60*Math.sin(teta);
		var y1=120;
		ligne.setAttribute('stroke-opacity', '1');	
		ligne.setAttribute('stroke-width', '2');
        ligne.setAttribute('x1', x1);
        ligne.setAttribute('y1', y1);
        ligne.setAttribute('x2', x1);
		ligne.setAttribute('y2', y1-10);
        ligne.setAttribute('stroke', 'white');
		frag.appendChild(ligne);
		
		
      }
	  cap_disp.id_ligne = document.getElementById('cap_ligne');
      cap_disp.id_ligne.appendChild(frag); // DocumentFragment disappears leaving circles
	  cap_disp.id_valeur.push(document.getElementById('svgcap1'),document.getElementById('svgcap2'),document.getElementById('svgcap3'));  //texte cap
	  
	  // compas bateau
	  
      var frag = document.createDocumentFragment(true);
      for (var i = 0; i < 9; i++) {
        var ligne = document.createElementNS(svgns, 'line');
		var teta=Math.PI*(-10+2*i)/180;
		var x1=centre-60*Math.sin(teta);
		var y1=85;
		ligne.setAttribute('stroke-opacity', '1');	
		ligne.setAttribute('stroke-width', '2');
        ligne.setAttribute('x1', x1);
        ligne.setAttribute('y1', y1);
        ligne.setAttribute('x2', x1);
		ligne.setAttribute('y2', y1-10);
        ligne.setAttribute('stroke', 'white');
		frag.appendChild(ligne);
		
		
      }
	  compas_disp.id_ligne = document.getElementById('compas_ligne');
      compas_disp.id_ligne.appendChild(frag); // DocumentFragment disappears leaving circles
	  compas_disp.id_valeur.push(document.getElementById('cap1_compas'),document.getElementById('cap2_compas'),document.getElementById('cap3_compas'));  //texte cap
	  
	  //Attitude
	  attitude.id=document.getElementById('attitude');
	  attitude.id_back=document.getElementById('attitude_back');

 	//Sondeur
	
	var frag = document.createDocumentFragment(true);
	for (i=0;i<50;i++){ //2 fois 25 rectangles pour tourner sur une fenetre glissante de 25
		var rect = document.createElementNS(svgns, 'rect');// x="7" y="26" width="125" height="88"
		var x= 5*i;  // double largeur
		var y=Math.floor(60+20*Math.random());
		var h=88-y;
        rect.setAttribute('x', x);
        rect.setAttribute('y', y);
        rect.setAttribute('height', h);
		rect.setAttribute('width', '5');
		
		frag.appendChild(rect);
		
	}
	 	sondes.id = document.getElementById('les_sondes');
        sondes.id.appendChild(frag);
		sondes.id_scale = document.getElementById('sondeur_scale');
	
}



//ALTIMETRE
function disp_alti(alti) {
	
	teta=Math.PI*alti/500;
	var x2=centre+60*Math.sin(teta);
	var y2=centre-60*Math.cos(teta);
	 altimetre.id_alti100.setAttribute('x2', x2);
	 altimetre.id_alti100.setAttribute('y2', y2);
	 
	 
	 var teta=Math.PI*alti/5000;
	x2=Math.floor(centre+30*Math.sin(teta-0.2));
	y2=Math.floor(centre-30*Math.cos(teta-0.2));
	var x3=centre+40*Math.sin(teta);
	var y3=centre-40*Math.cos(teta);
	var x4=centre+30*Math.sin(teta+0.2);
	var y4=centre-30*Math.cos(teta+0.2);
	var points="70,70,"+x2+","+y2+","+x3+","+y3+","+x4+","+y4;
	altimetre.id_alti1000.setAttribute('points', points);
}

function disp_attitude(cap_,tilt,roll) {
	
	var j=0;
	for (i=0;i<9;i++) {
		var teta=10*Math.floor(cap_/10)-40+10*i;
		var tetar=Math.PI*(teta-cap_)/180;
		var x1=centre-48*Math.sin(tetar);
		var y2=110;
		if (teta%30==0) {
			cap_disp.id_valeur[j].setAttribute('x', x1-8);
			cap_disp.id_valeur[j].childNodes[0].nodeValue=Math.floor(teta);
			y2=105;j++; 
		
		}
		cap_disp.id_ligne.childNodes[i].setAttribute('x1', x1);
		cap_disp.id_ligne.childNodes[i].setAttribute('x2', x1);
		cap_disp.id_ligne.childNodes[i].setAttribute('y2', y2);
	}
 	tilt=Math.PI*tilt/180;
	roll=Math.PI*roll/180;
	var t=centre-70*Math.sin(tilt);
	var r=70*Math.tan(roll);
	var y1=t+r;
	var y2=t-r;
	var points="0,"+y1+",140,"+y2+",140,140,0,140";
	attitude.id.setAttribute('points', points);
	attitude.point_delay= points;
	setTimeout('disp_attitude_delayed();',50);
}
function disp_attitude_delayed() { //2 eme image, evite flick sur IE
	attitude.id_back.setAttribute('points', attitude.point_delay);
}
function disp_cap(cap_) {
	
	var j=0;
	for (i=0;i<9;i++) {
		var teta=10*Math.floor(cap_/10)-40+10*i;
		var tetar=Math.PI*(teta-cap_)/180;
		var x1=centre-65*Math.sin(tetar);
		var y2=73;
		if (teta%30==0) {
			compas_disp.id_valeur[j].setAttribute('x', x1-8);
			compas_disp.id_valeur[j].childNodes[0].nodeValue=Math.floor(teta);
			y2=68;j++; 
		
		}
		compas_disp.id_ligne.childNodes[i].setAttribute('x1', x1);
		compas_disp.id_ligne.childNodes[i].setAttribute('x2', x1);
		compas_disp.id_ligne.childNodes[i].setAttribute('y2', y2);
	}
 	
}
function disp_sonde(depth,alti) {
	if (objet_3d[Platef[0].num_objet].type>1 ) {//bateua ou sub
		depth=Math.abs(depth);
		document.getElementById("sea_depth").innerHTML="Sea depth : "+Math.floor(depth)+ "m";
		sondes.scale=100;
		if (depth>100) sondes.scale=1000;
		if (depth>1000) sondes.scale=10000;
		sondes.id_scale.innerHTML=sondes.scale.toString()+"m _";
		depth= 88*depth/sondes.scale;
		var h=88-depth;
		sondes.idx=(sondes.idx+24)%25;var p=-sondes.idx*5;p=p+"px";
		 sondes.id.childNodes[sondes.idx].setAttribute('y', depth);
		 sondes.id.childNodes[sondes.idx].setAttribute('height', h);
		 sondes.id.childNodes[sondes.idx+25].setAttribute('y', depth); // image decalée
		 sondes.id.childNodes[sondes.idx+25].setAttribute('height', h);
		 document.getElementById('svg_sondeur').style.left=p; //decale la fenetre
		 
	}
	if (objet_3d[Platef[0].num_objet].type==3) { // S-Marin
		document.getElementById("sub_depth").innerHTML="Sub depth : "+Math.abs(alti)+ "m";
	}
}




