/*
dat[0]//PORT_A ID
dat[1]//PORT_A_STR
dat[2]//DAYSINPORT
dat[3]//SPEED
dat[4]//DISTANCE
dat[5]//Min draft for this seg (string)
dat[6]//SERVER VIA POINTS (Array)
dat[7]//user Via code(s) (Array, but 1 value)
dat[8]//ROUTE (Array of coords)
*/

function build(){	
	
	//msg("build();");

	if(!verify())return;

	var classe="a";
	var totaldays=0;
	var totaldist=0;
	
	var htm="<TH WIDTH=300>Port</TH>";
	htm+="<TH WIDTH=60>In port</TH>";
	htm+="<TH WIDTH=60>Speed</TH>";
	htm+="<TH WIDTH=100>Via</TH>";
	htm+="<TH>Min.Draft</TH>";
	htm+="<TH WIDTH=250>Distance</TH>";
	htm+="<TH WIDTH=16><IMG SRC=gif/cancel2.gif ALIGN=ABSMIDDLE ONCLICK=clear_all() TITLE='Clear all' STYLE='cursor:pointer'></TH>";


	for(var i=0;i<sequence.length;i++){
	
		var port = sequence[i][1];//port str
		if(!sequence[i][2])sequence[i][2]=0;//days in port
		var daysinport = sequence[i][2];
		if(!sequence[i][3] || sequence[i][3]<1)sequence[i][3]=$("speed").value;//speed
		
		var speed = sequence[i][3];
		var distance = sequence[i][4];
		if(!distance)distance=0;

		//console.log("distance = "+sequence[i][4]);

		if(sequence[i][5])var min_draft = sequence[i][5]; else var min_draft ="";
		var vias = sequence[i][7];
		
		if(!vias){
			//msg("build() error: !via");///must be a array
			sequence[i][7]=new Array();
			vias=new Array();
			//continue;
		}

		var viastr=new Array();
		
		for(var j=0;j<vias.length;j++)viastr[viastr.length]=viap[vias[j]][0];
		
		if(i>0 && viastr.length==0)viastr[viastr.length]="select";

		if(classe=="a")classe="b"; else classe="a";

		htm+="<TR CLASS="+classe+" STYLE='cursor:pointer' ONCLICK='init_row("+i+");blu(this)'>";// ONCLICK=pop("+i+")
		htm+="<TD WIDTH=300><INPUT ID=p"+i+" NAME=p"+i+" VALUE=\""+port+"\" ONFOCUS=dlini(this,1) ONBLUR='dlb(this);get_frto(this)' STYLE='width:300'>";
		htm+="<TD ALIGN=RIGHT><INPUT ID=ds"+i+" VALUE="+daysinport+" STYLE='width:30' CLASS=r ONBLUR=set_days(this.value,"+i+")>days</TD>";// Days in port
		totaldays=(totaldays*1+daysinport*1);
		htm+="<TD ALIGN=RIGHT><INPUT ID=spd"+i+" VALUE="+speed+" STYLE='width:30' CLASS=r ONBLUR=set_spd(this.value,"+i+")>kts</TD>";// Speed
		htm+="<TD ALIGN=CENTER><A HREF=# ONCLICK=pop_via("+i+") TITLE='Select via'>"+viastr.join(" ; ")+"</A></TD>";// Via
		htm+="<TD>"+min_draft+"</TD>";// Min.Draft str

		var nbdays = Math.round(distance/(speed*24)*100);
		totaldays=(totaldays*1+nbdays/100);
		var strdays = "nm ("+nbdays/100+"days)";
		var redo="";

		/*
		if(!distance){
			distance="";
			strdays="";
			redo="<A HREF=# TITLE='distance calculation'>calcul</A>";//
		}
		*/

		if(i>0)htm+="<TD ALIGN=RIGHT ID=dist"+i+">"+distance+strdays+redo+"</TD>";
		else htm+="<TD></TD>";// Distance

		totaldist = (totaldist*1 + distance*1);//

		htm+="<TD><IMG SRC=gif/cancel2.gif ALIGN=ABSMIDDLE ONCLICK=remstep("+i+") TITLE='Remove this step'></TD>";// Delete
		htm+="</TR>";
	}

	//propose another sequence
	if(classe=="a")classe="b";else classe="a";
	

	htm+="<TR CLASS="+classe+">";//ONCLICK=pop("+i+")
	
	htm+="<TD WIDTH=300><INPUT ID=p"+i+" NAME=p"+i+" ONFOCUS=dlini(this,1) ONBLUR='dlb(this);get_frto(this)' STYLE='width:300'></TD>";//stay free

	htm+="<TD ALIGN=RIGHT></TD>";//days in port
	htm+="<TD ALIGN=RIGHT></TD>";//speed
	
	if(i>2)htm+="<TD><A HREF=# STYLE='color:#CC0000' ONCLICK=drawit() TITLE='Draw all'><IMG SRC=gif/edit.gif ALIGN=ABSMIDDLE>draw all</A></TD>";//via
	else htm+="<TD></TD>";//via
	
	htm+="<TD></TD>";//mndraft
	



	var totalstr="Total distance: "+totaldist+"nm - "+Math.round(totaldays*100)/100+" days";
	htm+="<TD CLASS=c ID=dist"+i+">"+totalstr+"</TD>";
	htm+="<TD></TD>";
	htm+="</TR>";

	//$("total_dist").innerHTML=totaldist;
	//$("total_days").innerHTML=totaldays;
	
	// CALCUL DE LA DATE ARRIVAL //

	var depart = $("departure").value;

	var now = new Date;
	var d=now.getDate();
	var M=now.getMonth();
	var Y=now.getFullYear();

	if(!depart){
		//set new dates
		var MON=(M+1);if(MON<10)MON="0"+MON;
		if(d<10)d="0"+d;
		$("departure").value=d+"/"+MON+"/"+Y;
	}else{

		var dep = $("departure").value;
		//alert("dep="+dep);
		dep=dep.split("/");	
		var d=dep[0]*1;
		var M=(dep[1]*1)-1;
		var Y=dep[2]*1;
	}

	var dat = new Date(Y, M, (d*1+totaldays*1), 0, 0, 0);

	var d=dat.getDate();if(d<10)d="0"+d;
	var M=dat.getMonth();M++;if(M<10)M="0"+M;
	var Y=dat.getFullYear();
	//set new dates
	$("arrival").value=d+"/"+M+"/"+Y;
	

	$("BOX").innerHTML="<TABLE BORDER=1 WIDTH='100%' STYLE='background-color:#D5E4F2;border-color:#B8CFE9;padding:2;layout:fixed'>"+htm+"</TABLE>";
	//msg("build ok");
	//window.status="build ok";
	if(i>0)$("p"+i).focus(); //Reference ticket#6786 By Doi Jao June 25, 2008
	$("p"+i).focus();
}




function verify(){//verify if the sequence is complete (drawable)
	
	for(var i=0;i<sequence.length;i++){
		
		if(sequence[i][4]==0){//DISTANCE
			//msg("distance ["+i+"] must be calculated");
			get_dist(i);
			return false;
		}
		//return false;
	}
	return true;
}



function init_row(num){//lorsqu'on clique sur une ligne du tableau	
	
	//msg("init_row("+num+")<BR>sequence["+num+"][0]="+sequence[num][0]+"<BR>sequence["+num+"][2]"+sequence[num][2]);

	cleare();//clear map

	if(num==0){
		msg("Start point : "+sequence[num][1]);
		show_startpoint(sequence[num][0]);
		return;
	}else{
		msg(sequence[(num-1)][1]+" to "+sequence[num][1]);
	}

	var fr = sequence[num][1];//from str
	var to = sequence[(num-1)][1];//to str

	//msg("From '"+from+"' to '"+to+"', "+nm+"nm");

	//ROUTE//
	c=sequence[num][8];//route
	
	draw_seg(num);

	//START POINT//
	if(c && c.length>0){
		var point = new GLatLng(c[0][0], c[0][1]);
		var title = sequence[(num-1)][1];
		var marker =new GMarker(point,{icon:iconStart, title: title });
		marker.title=title;
		map.addOverlay(marker);			
		GEvent.addListener(marker, "click", function(){point_detail(this.title);});
	}

	//END POINT//
	if(c && c.length-1>0){
		var point = new GLatLng(c[c.length-1][0], c[c.length-1][1]);
		var title = title;
		var marker=new GMarker(point,{icon:iconEnd, title: title });
		marker.title=title;
		map.addOverlay(marker);
		GEvent.addListener(marker, "click", function(){point_detail(this.title);});
	}
	
	//VIA POINTS//
	var vias = sequence[num][6];
	//alert("vias="+vias);
	for(var i=0;i<vias.length;i++)createminipoint(vias[i]);

}


document.body.scroll="no";