
var name_chart, locat_chart, name_parent, locat_parent
var how = "0"
var pos
var latchartmin, latchartmax, longchartmin, longchartmax;
var picw = 476, pich = 477;	
var chartleft, charttop;
var borderx = 5, bordery = 5;
var pointerw = 16, pointerh = 16;
var pos, positie, latwreck, longwreck;
var deg, degdeg, degmin, degsec, dir, rad;
var xpointer, ypointer;
var picloc, prob, chart_id;
var navdir; 
var show_info;
var click;
var navArray = new Array();
var hide = "visible";
var recCount, datapSize, actPage; 
var wreck_pointer
var navdir

function init() {
chartleft = document.getElementById('diviframe').style.left;
chartleft = parseFloat(chartleft)
charttop = document.getElementById('diviframe').style.top;
charttop = parseFloat(charttop)

wreck_pointer = document.getElementById('wreck_pointer')
wreck_pointer.style.visibility = "hidden";
document.getElementById('showNoPages').innerText=document.getElementById('tbl').dataPageSize
load_chart()
load_tdc()
load_iframe()

//initialize the subchart listing and filter the subcharts according to the maincharts
prob = "(Mainchart_Name="+ name_parent + ")";
subchart.filter = prob;
subchart.reset();

}

 
function load_chart(){

// *** get main variables from url *** //
httploc = location.search.substring(1).split("?");
//
name_parent 	= httploc[4].split("=")[1];
locat_parent 	= httploc[3].split("=")[1];
hide 			= httploc[2].split("=")[1];
name_chart 		= httploc[1].split("=")[1];
locat_chart 	= httploc[0].split("=")[1];
//
latchartmax = locat_chart.split("-")[0];
longchartmin = locat_chart.split("-")[1];

// *** display document objects *** //
// fill the rosace
navArray = Array(0,0,0,0,0,0,0,0);
find_neighbours();
for (i in navArray)
	{if (navArray[i]!==0){document.getElementById("dir"+i).style.visibility="visible";}};
document.getElementById("list").style.visibility = "visible";
document.getElementById("mapname").innerText = name_chart;
document.all.subkaart.src = "../../img/seacharts/" + locat_chart + ".gif"; 
//special for Guernsey-Sark
if(name_chart=="Guernsey-Sark") 
{picw=777; pich=598;document.getElementById("list").style.left="956px";
document.getElementById("iframe").style.height="800px";
document.getElementById("wreck_pointer").getElementsByTagName("img")[0].src = "../../img/nav/frame_wreck_99_99.gif";
pointerw = 99; pointerh = 99;borderx=4;bordery=4;
}

}

function load_tdc(){
// filter the correct wrecks
deg2radchart(latchartmax);
latchartmax = Math.round(rad*10000000);
latchartmin = Math.round((rad-20/60)*10000000);
if(name_chart=="Guernsey-Sark"){latchartmin = Math.round((rad-10/60)*10000000);}
 
deg2radchart(longchartmin);
longchartmin = Math.round(rad*10000000);
longchartmax = Math.round((rad+20/60)*10000000);
prob = "(Lathr<"+latchartmax+")&(Lathr>"+latchartmin+")&(Longhr<"+longchartmax+")&(Longhr>"+longchartmin+")";
details.filter = prob;
details.reset();
recCount = details.recordset.recordCount;
init_list();
}


function load_iframe(){
var prob = locat_chart + ".html"
document.all.iframe.src = "../../db/seacharts/" + prob
}


function init2(how) {
document.getElementById('mapname').innerText = name_chart

//load the mapping for the chart (iframe)
var prob = locat_chart + ".html"
document.all.iframe.src = "../../db/seacharts/" + prob

//reset the navigating arrows
for (i in navArray)
{document.getElementById('dir'+i).style.visibility='hidden';}

//find out the new navigation_array
find_neighbours()

// display the navigating arrows now
for (i in navArray)
{	if ( navArray[i]!==0)
	{document.getElementById('dir'+i).style.visibility='visible';}
}

tmp = "../../img/seacharts/" + locat_chart + ".gif"
document.all.subkaart.src = tmp
loadtdcn();
}

//load the subchart details TDC now
//that should only be done if the user wants the listing
//--------------------------------------------------------------

function loadtdcn() {
var prober

if (how=="0"){prober=locat_chart}
else{prober=locat_chart.value}

prober = prober.split("-")
latchartmax = prober[0]
longchartmin = prober[1]
latchartmin = prober[2]
longchartmax = prober[3]

deg2radchart(latchartmax)
latchartmax = parseFloat(rad)
latchartmax = latchartmax*10000000
latchartmax = parseInt(latchartmax)

deg2radchart(longchartmin)
longchartmin= parseFloat(rad)
longchartmin= longchartmin*10000000
longchartmin= parseInt(longchartmin)

deg2radchart(latchartmin)
latchartmin= parseFloat(rad)
latchartmin= latchartmin*10000000
latchartmin= parseInt(latchartmin)

deg2radchart(longchartmax)
longchartmax= parseFloat(rad)
longchartmax= longchartmax*10000000
longchartmax= parseInt(longchartmax)

var tmpr = "(Lathr<"+latchartmax+")&(Lathr>"+latchartmin+")&(Longhr<"+longchartmax+")&(Longhr>"+longchartmin+")";
details.filter = tmpr;
details.reset();
recCount = details.recordset.recordCount;
init_list();
}

function zoomOut() {
location.href = "mainchart.html?location=" + locat_parent + "?name=" + name_parent + "?hide=visible"
}


function show_hide_list() {
var info = document.getElementById('information').style
var list = document.getElementById('list').style
if (list.visibility == "visible")
	{
	if (info.visibility == "hidden"){list.visibility = "hidden";init_list();}
	else	{info.visibility = "hidden";}
	}
else
	{info.visibility = "hidden";list.visibility = "visible";hide = "visible";loadtdcn();}
hide = list.visibility
}


function show_hide_info() {
var d = document.getElementById('information').style
if( d.visibility == "hidden" ){d.visibility = "visible";}else{d.visibility = "hidden";}
}


function show_hide_list_subch() {
var d = document.getElementById('list_subch').style
if( d.visibility == "hidden" ){d.visibility = "visible";}else{d.visibility = "hidden";}
}


// for the wreck_list sorting //
var offcol, oncol, stat, indexof
var sorteerreeks = Array("NameWreck","Latitude","Longitude")
var statusArray = Array("-","-","-")
offcol =  "#333399"
oncol = "#3333CC"

function sort_click(stat,indexof) {
var sort
for (i in statusArray) 		
	{
	sort = document.getElementById(sorteerreeks[i])
	if (i==indexof)	
		{
		if (statusArray[indexof]=="+"){statusArray[indexof]="-";}else{statusArray[indexof]="+";};	
		}
	else {statusArray[i]="-";}
	if (statusArray[i]=="-"){sort.style.color=offcol}else{sort.style.color=oncol;}
   	}
details.sort = statusArray[indexof] + stat
details.reset()
}

function hilitelist() {
window.event.srcElement.style.color="#FF0000";
window.event.srcElement.style.cursor="hand";
window.event.srcElement.style.border="1px solid #333399";
}
function unhilitelist() {
window.event.srcElement.style.color="#333399";
window.event.srcElement.style.border="1px solid #FFE7B3";
}


function hiliteinfo() {
window.event.srcElement.style.color="#FF0000";
window.event.srcElement.style.cursor="hand";
window.event.srcElement.style.border="1px solid #333399";
}
function unhiliteinfo() {
window.event.srcElement.style.color="#333399";
window.event.srcElement.style.border="1px solid #FFFFFF";
}

function hilite() {
window.event.srcElement.style.color=oncol;
window.event.srcElement.style.cursor='hand';
}
function unhilite() {

for (i=0;i<statusArray.length;i++)
  {	if (statusArray[i]=="-")
	{document.getElementById(sorteerreeks[i]).style.color=offcol;}
	else
	{document.getElementById(sorteerreeks[i]).style.color=oncol;}
  }
}


function navigate(navdir) {
var ndir
ndir = parseInt(navdir)
if (navArray[ndir]==0)
	{}
else {
	locat_chart = navArray[ndir];
	locate_name();
	how = "0"
	init2();
	} 
} 

function locate_name() {
var rs = subchart.recordset
var i
rs.moveFirst()
for (i=0;i<rs.recordCount;i++)
 {
 prob=rs.fields('SubChartLongName')
 if (prob==locat_chart)
	{name_chart=rs.fields('Subchart_Name')}
 else
	{rs.moveNext()}
 }
return(name_chart)
}


function change_chart() {
name_chart = window.event.srcElement.innerText
locate_chart()
how="1"
init2();
}




function locate_chart() {
var rs = subchart.recordset
var i
rs.moveFirst()
for (i=0;i<rs.recordCount;i++)
 {
 prob=rs.fields('Subchart_Name')
 if (prob==name_chart)
	{locat_chart=rs.fields('SubChartLongName')}
 else
	{rs.moveNext()}
 }
return(locat_chart)
}




function init_list() {
// initialisation for list_navigation
datapSize = document.getElementById('tbl').dataPageSize
var prob = parseInt(recCount/datapSize)
prob = recCount/datapSize - prob
if (prob==0)
	{datapSize = recCount/datapSize}
	else
	{datapSize = parseInt(recCount/datapSize)+1}
actPage = 1

document.getElementById('previous').style.visibility = "hidden";
prevHide = 1
if (datapSize==1)
	{document.getElementById('next').style.visibility = "hidden";}
	else
	{
		if (document.getElementById('list').style.visibility =="hidden")
			{document.getElementById('next').style.visibility = "hidden";}
		else 
			{document.getElementById('next').style.visibility = "visible";}
	}
write_wreck_page_of();
}

function deg2radchart(deg){
degdeg = (deg.substr(0,deg.length-5));
degmin = (deg.substr(deg.length-5,2));
degsec = (deg.substr(deg.length-3,2));
dir = (deg.substr(deg.length-1,1));
//below code was before parseInt makes trouble to the xy-pointer
//if no parseInt makes trouble to the TDC
//parseFloat looks the best solution ! 
degsec = parseFloat(degsec);
degmin = parseFloat(degmin);
degdeg = parseFloat(degdeg);
//alert (" degdeg="+degdeg+" degmin="+degmin+" degsec="+degsec)
rad = degdeg+degmin/60+degsec/3600
if (dir=="w" || dir=="s")
{rad=-rad;};
}

function locate_wreck_position() {
var wkName = window.event.srcElement.innerText;
var rs = details.recordset
var wkCount = rs.recordCount
var prob
var i
rs.moveFirst()
for (i=0;i<wkCount;i++)
	{ 
	prob = rs.fields('NameWreck')
	if (prob==wkName)
		{var latitudehr=rs.fields('Lathr').value
		var longitudehr=rs.fields('Longhr').value
		pos = latitudehr+"/"+longitudehr
		}
	else
		{rs.moveNext()}
	}
position_arrow()
}

function fwreck() {
var wkName = window.event.srcElement.innerText;
var rs = details.recordset
var wkCount = rs.recordCount
var prob
var i
rs.moveFirst()
for (i=0;i<wkCount;i++)
	{ 
	prob = rs.fields('NameWreck')
	if (prob!=wkName)
		{
		rs.moveNext()
		}
	else
		{
		var id = rs.fields('WreckID')
		//var link = "detail_query.html?filter="+rs.fields('WreckID')
		//window.location.href = link
		i=wkCount
		}
	}
getWreckS(id)
}



function position_arrow() {

if(pos){
var latlong = pos.split('/');
latwreck = latlong[0]
longwreck = latlong[1]
xpointer = longwreck-longchartmin
xpointer = xpointer*(picw/(longchartmax-longchartmin)) 
xpointer = xpointer + borderx
xpointer = xpointer - pointerw/2
xpointer = parseInt(xpointer)+chartleft
ypointer = latchartmax-latwreck
//alert ("ypointer= " + ypointer)
//alert ("latwreck= " + latwreck + " latchartmax=" + latchartmax + " latchartmin= " + latchartmin + " pich= " + pich)
ypointer = ypointer*(pich/(latchartmax-latchartmin))
ypointer = ypointer + bordery
ypointer = ypointer - pointerh/2
ypointer = parseInt(ypointer)+ charttop
//alert ("x= " + xpointer + "px and y = " + ypointer + "px")
wreck_pointer.style.left = xpointer; 
wreck_pointer.style.top = ypointer; 
wreck_pointer.style.visibility = "visible"; 
window.event.srcElement.style.color = "#FF0000";
window.event.srcElement.style.cursor = 'hand';
}
}

function hide_wreck_position(){
wreck_pointer.style.visibility = "hidden"; 
window.event.srcElement.style.color = "#333399"
}



function find_neighbours(){
// Newhaven-Eastbourne:
if (locat_chart == "505000n-00000e-503000n-02000e"){
navArray = Array(0,"505500n-02000e-503500n-04000e",0,0,0,0,0,0)}

// Bexhill-Hastings:
if (locat_chart == "505500n-02000e-503500n-04000e"){
navArray = Array(0,"510000n-04000e-504000n-10000e",0,0,0,"505000n-00000e-503000n-02000e",0,0)}

// Rye-Dungeness:
if (locat_chart == "510000n-04000e-504000n-10000e"){
navArray = Array(0,"511000n-10000e-505000n-12000e",0,0,0,"505500n-02000e-503500n-04000e",0,0);}

// Folkestone-Dover:
if (locat_chart == "511000n-10000e-505000n-12000e"){
navArray = Array(0,"512000n-11000e-510000n-13000e",0,0,0,"510000n-04000e-504000n-10000e",0,0);}

// Dover:
if (locat_chart == "512000n-11000e-510000n-13000e"){
navArray = Array(0,0,0,"510000n-12000e-504000n-14000e",0,"511000n-10000e-505000n-12000e",0,0);}

// Boulogne:
if (locat_chart == "510000n-12000e-504000n-14000e"){
navArray = Array(0,"511000n-14000e-505000n-20000e",0,0,0,0,0,"512000n-11000e-510000n-13000e");}

// Calais:
if (locat_chart == "511000n-14000e-505000n-20000e"){
navArray = Array(0,"512000n-20500e-510000n-22500e",0,0,0,"510000n-12000e-504000n-14000e",0,0);}

// Dunkerque West:
if (locat_chart == "512000n-20500e-510000n-22500e"){
navArray = Array(0,"514000n-22000e-512000n-24000e","512000n-21500e-510000n-23500e",0,0,"511000n-14000e-505000n-20000e",0,0);}

// Dunkerque East:
if (locat_chart == "512000n-21500e-510000n-23500e"){
navArray = Array("514000n-22000e-512000n-24000e","512500n-23000e-510500n-25000e",0,0,0,0,"512000n-20500e-510000n-22500e",0);}

// Westhinder:
if (locat_chart == "514000n-22000e-512000n-24000e"){
navArray = Array(0,0,0,"512500n-23000e-510500n-25000e",0,"512000n-21500e-510000n-23500e",0,0);}

// Nieuwpoort:
if (locat_chart == "512500n-23000e-510500n-25000e"){
navArray = Array(0,"513000n-24000e-511000n-30000e",0,0,0,"512000n-21500e-510000n-23500e",0,"514000n-22000e-512000n-24000e");}

// Oostende:
if (locat_chart == "513000n-24000e-511000n-30000e"){
navArray = Array(0,0,0,0,0,"512500n-23000e-510500n-25000e",0,"514000n-22000e-512000n-24000e");}

// Zeebrugge:
if (locat_chart == "513500n-30000e-511500n-32000e"){
navArray = Array("515000n-30000e-513000n-32000e","515000n-32000e-513000n-34000e","513500n-32000e-511500n-34000e",0,0,0,0,0);}

// Rabsbank:
if (locat_chart == "515000n-30000e-513000n-32000e"){
navArray = Array(0,0,"515000n-32000e-513000n-34000e","513500n-32000e-511500n-34000e","513500n-30000e-511500n-32000e",0,0,0);}

// Neeltje Jans:
if (locat_chart == "515000n-32000e-513000n-34000e"){
navArray = Array(0,"521000n-35000e-515000n-41000e",0,0,"513500n-32000e-511500n-34000e","513500n-30000e-511500n-32000e","515000n-30000e-513000n-32000e",0);}

// Breskens-Vlissingen:
if (locat_chart == "513500n-32000e-511500n-34000e"){
navArray = Array("515000n-32000e-513000n-34000e",0,0,0,0,0,"513500n-30000e-511500n-32000e","515000n-30000e-513000n-32000e");}

// Hoek Van Holland:
if (locat_chart == "521000n-35000e-515000n-41000e"){
navArray = Array(0,0,0,0,0,"515000n-32000e-513000n-34000e",0,0);}

// Isle of Wight East:
if (locat_chart == "505000n-12000w-503000n-10000w"){
navArray = Array(0,0,"505000n-10000w-503000n-04000w",0,0,0,"505000n-14000w-503000n-12000w",0);}

// Isle of Wight West:
if (locat_chart == "505000n-14000w-503000n-12000w"){
navArray = Array(0,0,"505000n-12000w-503000n-10000w",0,0,0,0,0);}

// Wittering:
if (locat_chart == "505000n-10000w-503000n-04000w"){
navArray = Array(0,0,0,0,0,0,"505000n-12000w-503000n-10000w",0);}

// Guernsey-Sark:
if (locat_chart == "493000n-24000w-492000n-22000w"){
navArray = Array(0,0,0,0,0,0,0,0);}

// Scheveningen:
if (locat_chart == "522000n-40000e-520000n-42000e"){
navArray = Array(0,"524000n-42000e-522000n-44000e",0,0,0,0,0,0);}

// Ijmuiden:
if (locat_chart == "524000n-42000e-522000n-44000e"){
navArray = Array(0,"530000n-42500e-524000n-44500e",0,0,0,"522000n-40000e-520000n-42000e",0,0);}

// Ijmuiden-Texel:
if (locat_chart == "530000n-42500e-524000n-44500e"){
navArray = Array(0,"532000n-43000e-530000n-45000e",0,0,0,"524000n-42000e-522000n-44000e",0,0);}

// Texel:
if (locat_chart == "532000n-43000e-530000n-45000e"){
navArray = Array(0,"533000n-44000e-531000n-50000e",0,0,0,"530000n-42500e-524000n-44500e",0,0);}

// Texel-Vlieland:
if (locat_chart == "533000n-44000e-531000n-50000e"){
navArray = Array(0,0,0,0,0,"532000n-43000e-530000n-45000e",0,0);}

// Teschelling-West:
if (locat_chart == "534000n-50000e-532000n-52000e"){
navArray = Array(0,0,"534000n-52000e-532000n-54000e",0,0,0,0,0);}

// Teschelling-East:
if (locat_chart == "534000n-52000e-532000n-54000e"){
navArray = Array(0,0,"534000n-54000e-532000n-60000e",0,0,0,"534000n-50000e-532000n-52000e",0);}

// Schiermonikkenoog:
if (locat_chart == "535000n-60000e-533000n-62000e"){
navArray = Array(0,0,"535000n-62000e-533000n-64000e",0,0,"534000n-54000e-532000n-60000e",0,0);}

// Ameland:
if (locat_chart == "534000n-54000e-532000n-60000e"){
navArray = Array(0,"535000n-60000e-533000n-62000e",0,0,0,0,"534000n-52000e-532000n-54000e",0);}

// Rottumer:
if (locat_chart == "535000n-62000e-533000n-64000e"){
navArray = Array(0,0,0,0,0,0,"535000n-60000e-533000n-62000e",0);}
}

//----------------------------------//
// Needed to get the wreckdetails   //
// when clicking a wreck on the map //
//----------------------------------//
function getWreckS(val) {
var lanS
var loc = window.parent.location.href
if (loc.indexOf("/wreck/")!=-1) {lanS="wreck-database";}
if (loc.indexOf("/epaves/")!=-1) {lanS="base-de-donnees-epaves";}
if (loc.indexOf("/wrakken/")!=-1) {lanS="wrakken-database";}

var loca = loc.split(lanS)
var leftd= parseInt(screen.availWidth)-655
loca = loca[0] + lanS + "/detail_query.html?filter="+val+"?menu=no"
var newWindow = window.open(loca,"details","top=0,left="+leftd+",width=650,height="+screen.availHeight+",scrollbars=yes")
newWindow.focus()
}

//----------------------------------//
// Needed to navigate the wrecklist //
//----------------------------------//

function next_records()	{
var nextButton = document.getElementById('next').style
var prevButton = document.getElementById('previous').style
actPage = actPage + 1
if (actPage==datapSize) 
	{
	nextButton.visibility = "hidden"; 
	nextHide = 1; 
	prevButton.visibility = "visible"; 
	prevHide = 0;
	}
if (actPage > 1)
	{
	prevButton.visibility = "visible";
	prevHide = 0;
	}
tbl.nextPage();
write_wreck_page_of();
}

function previous_records()	{
var nextButton = document.getElementById('next').style
var prevButton = document.getElementById('previous').style
actPage = actPage - 1
if (actPage==1)
	{
	prevButton.visibility = "hidden";
	nextButton.visibility = "visible";
	}
if (actPage < datapSize)
	{
	nextButton.visibility = "visible";
	}
tbl.previousPage();
write_wreck_page_of();
}

function write_wreck_page_of() {
document.getElementById('actPage').innerText = actPage;
document.getElementById('datapSize').innerText = datapSize;
var tmpstr
var prob
prob = document.getElementById('tbl').dataPageSize;
var prob2 = 1+(actPage-1)*prob
tmpstr = "[" +prob2 + "-"
if (actPage!==datapSize)
	{
	prob2 = prob2+prob-1;
	}
else
	{
	prob2 = prob2+(recCount-(datapSize-1)*prob-1);
	}
tmpstr = tmpstr + prob2 + "]"
document.getElementById('wreckof').innerText = tmpstr;
tmpstr = "Wrecks = [" + recCount + "]";
document.getElementById('nowrecks').innerText = tmpstr;
}

