<!--
function init() {
}
	<!-- hide
var version = 3
var count = 0
var i = 0
function getPath(URL) {
result = URL.substring(0,(URL.lastIndexOf("/")+1))
return result
}
baseref = getPath(window.location.href)

var choice = 1
var flag = 0

function makeArray(n) {
this.length = n
for (var i=0; i <= n; i++)
this[i] = ""
return this
}

function makeArray2(n) {
this.length = n
for (var i=0; i <= n; i++)
this[i] = 0
return this
}

var ct=48
var td = new makeArray2(ct)
var tm = new makeArray2(ct)
var ts = new makeArray2(ct)
var tr = new makeArray(ct)

var gd = new makeArray2(ct)
var gm = new makeArray2(ct)
var gs = new makeArray2(ct)
var gr = new makeArray(ct)
var nm = new makeArray(ct)

nm[1]="01, Adrar"; td[1]=27; tm[1]=53; ts[1]=59; tr[1]="N"; gd[1]=0; gm[1]=16; ts[1]=59; gr[1]="W";
nm[2]="02, Chlef"; td[2]=36; tm[2]=9; ts[2]=53; tr[2]="N"; gd[2]=1; gm[2]=20; ts[2]=6; gr[2]="E";
nm[3]="03, Laghouat"; td[3]=33; tm[3]=47; ts[3]=59; tr[3]="N"; gd[3]=2; gm[3]=52; ts[3]=59; gr[3]="E";
nm[4]="04, Oum el Bouaghi"; td[4]=35; tm[4]=52; ts[4]=39; tr[4]="N"; gd[4]=7; gm[4]=6; ts[4]=49; gr[4]="E";
nm[5]="05, Batna"; td[5]=35; tm[5]=33; ts[5]=19; tr[5]="N"; gd[5]=6; gm[5]=10; ts[5]=43; gr[5]="E";
nm[6]="06, Bejaia"; td[6]=36; tm[6]=45; ts[6]=0; tr[6]="N"; gd[6]=5; gm[6]=4; ts[6]=59; gr[6]="E";
nm[7]="07, Biskra"; td[7]=34; tm[7]=51; ts[7]=0; tr[7]="N"; gd[7]=5; gm[7]=43; ts[7]=59; gr[7]="E";
nm[8]="08, Bechar"; td[8]=31; tm[8]=37; ts[8]=0; tr[8]="N"; gd[8]=2; gm[8]=13; ts[8]=0; gr[8]="W";
nm[9]="09, Blida"; td[9]=36; tm[9]=28; ts[1]=0; tr[9]="N"; gd[9]=2; gm[9]=49; ts[9]=59; gr[9]="E";
nm[10]="10, Bouira"; td[10]=36; tm[10]=22; ts[10]=48; tr[10]="N"; gd[10]=3; gm[10]=54; ts[10]=5; gr[10]="E";
nm[11]="11, Tamanrasset"; td[11]=22; tm[11]=46; ts[11]=59; tr[11]="N"; gd[11]=5; gm[11]=51; ts[11]=0; gr[11]="E";
nm[12]="12, Tebessa"; td[12]=35; tm[12]=24; ts[12]=15; tr[12]="N"; gd[12]=8; gm[12]=7; ts[12]=27; gr[12]="E";
nm[13]="13, Tlemcen"; td[13]=34; tm[13]=52; ts[31]=42; tr[13]="N"; gd[13]=1; gm[13]=18; ts[13]=54; gr[13]="W";
nm[14]="14, Tiaret"; td[14]=35; tm[14]=22; ts[14]=33; tr[14]="N"; gd[14]=1; gm[14]=18; ts[14]=47; gr[14]="E";
nm[15]="15, Tizi Ouzou"; td[15]=36; tm[15]=43; ts[15]=1; tr[15]="N"; gd[15]=4; gm[15]=2; ts[15]=59; gr[15]="E";
nm[16]="16, Alger"; td[16]=36; tm[16]=45; ts[16]=47; tr[16]="N"; gd[16]=3; gm[16]=3; ts[16]=2; gr[16]="E";
nm[17]="17, Djelfa"; td[17]=34; tm[17]=40; ts[17]=0; tr[17]="N"; gd[17]=3; gm[17]=15; ts[17]=0; gr[17]="E";
nm[18]="18, Jijel"; td[18]=36; tm[18]=47; ts[18]=59; tr[18]="N"; gd[18]=5; gm[18]=46; ts[18]=0; gr[18]="E";
nm[19]="19, Setif"; td[19]=36; tm[19]=11; ts[19]=29; tr[19]="N"; gd[19]=5; gm[19]=24; ts[19]=34; gr[19]="E";
nm[20]="20, Saida"; td[20]=34; tm[20]=49; ts[20]=59; tr[20]="N"; gd[20]=0; gm[20]=9; ts[20]=0; gr[20]="E";
nm[21]="21, Skikda"; td[21]=36; tm[21]=51; ts[21]=44; tr[21]="N"; gd[21]=6; gm[21]=56; ts[21]=50; gr[21]="E";
nm[22]="22, Sidi Bel Abbes"; td[22]=35; tm[22]=11; ts[22]=38; tr[22]="N"; gd[22]=0; gm[22]=38; ts[22]=29; gr[22]="W";
nm[23]="23, Annaba"; td[23]=36; tm[23]=53; ts[23]=59; tr[23]="N"; gd[23]=7; gm[23]=46; ts[23]=0; gr[23]="E";
nm[24]="24, Guelma"; td[24]=36; tm[24]=27; ts[24]=58; tr[24]="N"; gd[24]=7; gm[24]=26; ts[24]=2; gr[24]="E";
nm[25]="25, Constantine"; td[25]=36; tm[25]=21; ts[25]=54; tr[25]="N"; gd[25]=6; gm[25]=36; ts[25]=53; gr[25]="E";
nm[26]="26, Medea"; td[26]=36; tm[26]=16; ts[26]=0; tr[26]="N"; gd[26]=2; gm[26]=45; ts[26]=0; gr[26]="E";
nm[27]="27, Mostaganem"; td[27]=35; tm[27]=55; ts[27]=59; tr[27]="N"; gd[27]=0; gm[27]=5; ts[27]=25; gr[27]="E";
nm[28]="28, Msila"; td[28]=35; tm[28]=43; ts[28]=32; tr[28]="N"; gd[28]=4; gm[28]=31; ts[28]=40; gr[28]="E";
nm[29]="29, Mascara"; td[29]=35; tm[29]=23; ts[29]=40; tr[29]="N"; gd[29]=0; gm[29]=8; ts[29]=23; gr[29]="E";
nm[30]="30, Ouargla"; td[30]=31; tm[30]=56; ts[30]=59; tr[30]="N"; gd[30]=5; gm[30]=19; ts[30]=59; gr[30]="E";
nm[31]="31, Oran"; td[31]=35; tm[31]=41; ts[31]=28; tr[31]="N"; gd[31]=0; gm[31]=38; ts[31]=30; gr[31]="W";
nm[32]="32, El Bayadh"; td[32]=33; tm[32]=41; ts[32]=10; tr[32]="N"; gd[32]=1; gm[32]=0; ts[32]=50; gr[32]="E";
nm[33]="33, Illizi"; td[33]=26; tm[33]=28; ts[33]=59; tr[33]="N"; gd[33]=8; gm[33]=28; ts[33]=0; gr[33]="E";
nm[34]="34, Bordj Bou Arreridj"; td[34]=36; tm[34]=4; ts[34]=0; tr[34]="N"; gd[34]=4; gm[34]=46; ts[34]=0; gr[34]="E";
nm[35]="35, Boumerdes"; td[35]=36; tm[35]=46; ts[35]=0; tr[35]="N"; gd[35]=3; gm[35]=28; ts[35]=38; gr[35]="E";
nm[36]="36, El Taref"; td[36]=36; tm[36]=46; ts[36]=7; tr[36]="N"; gd[36]=8; gm[36]=19; ts[36]=0; gr[36]="E";
nm[37]="37, Tindouf"; td[37]=27; tm[37]=40; ts[37]=27; tr[37]="N"; gd[37]=8; gm[37]=8; ts[37]=52; gr[37]="W";
nm[38]="38, Tissemsilt"; td[38]=35; tm[38]=36; ts[38]=28; tr[38]="N"; gd[38]=1; gm[38]=48; ts[38]=40; gr[38]="E";
nm[39]="39, El Oued"; td[39]=33; tm[39]=19; ts[39]=59; tr[39]="N"; gd[39]=6; gm[39]=52; ts[39]=59; gr[39]="E";
nm[40]="40, Khenchela"; td[40]=35; tm[40]=26; ts[40]=9; tr[40]="N"; gd[40]=7; gm[40]=8; ts[40]=36; gr[40]="E";
nm[41]="41, Souk Ahras"; td[41]=36; tm[41]=16; ts[41]=7; tr[41]="N"; gd[41]=7; gm[41]=56; ts[41]=8; gr[41]="E";
nm[42]="42, Tipaza"; td[42]=36; tm[42]=34; ts[42]=59; tr[42]="N"; gd[42]=2; gm[42]=27; ts[42]=0; gr[42]="E";
nm[43]="43, Mila"; td[43]=36; tm[43]=27; ts[43]=4; tr[43]="N"; gd[43]=6; gm[43]=15; ts[43]=55; gr[43]="E";
nm[44]="44, Ain Defla"; td[44]=36; tm[44]=4; ts[44]=0; tr[44]="N"; gd[44]=4; gm[44]=32; ts[44]=59; gr[44]="E";
nm[45]="45, Naama"; td[45]=33; tm[45]=16; ts[45]=0; tr[45]="N"; gd[45]=0; gm[45]=19; ts[45]=0; gr[45]="W";
nm[46]="46, Ain Temouchent"; td[46]=35; tm[46]=18; ts[46]=45; tr[46]="N"; gd[46]=1; gm[46]=8; ts[46]=43; gr[46]="W";
nm[47]="47, Ghardaia"; td[47]=32; tm[47]=28; ts[47]=59; tr[47]="N"; gd[47]=3; gm[47]=40; ts[47]=0; gr[47]="E";
nm[48]="48, Relizane"; td[48]=35; tm[48]=44; ts[48]=33; tr[48]="N"; gd[48]=0; gm[48]=33; ts[48]=33; gr[48]="E";

var pop=""
function refwin(){
pop=",,menubar,scrollbars,resizable,height=400,width=680"
window.open("distances.htm","",pop)
}

var nq=0
var nj=0
function fillin1(form) {
//get selected option number
nq = form.city1.selectedIndex+1
form.elements[25-24].value= td[nq]+"d :"+tm[nq]+" m:"+ts[nq]+" s "+tr[nq]
form.elements[26-24].value= gd[nq]+"d :"+gm[nq]+" m:"+gs[nq]+" s "+gr[nq]
if (nq>0 && nj>0) {caldist(form)}
}
function fillin2(form) {
//get selected option number
nj = form.city2.selectedIndex+1
form.elements[28-24].value= td[nj]+"d :"+tm[nj]+" m:"+ts[nj]+" s "+tr[nj]
form.elements[29-24].value= gd[nj]+"d :"+gm[nj]+" m:"+gs[nj]+" s "+gr[nj]
if (nq>0 && nj>0) {caldist(form)}
}

function positiveint(inputVal) {
inputStr = "" + inputVal
for (var i = 0; i < inputStr.length; i++) {
var oneChar = inputStr.charAt(i)
if (oneChar < "0" || oneChar > "9") {
return false
}
}
return true
}

function numberok(inputVal) {
oneDecimal = false
inputStr = "" + inputVal
if (inputStr=="") {
return false
}
for (var i = 0; i < inputStr.length; i++) {
var oneChar = inputStr.charAt(i)
if (i == "0" && oneChar == "-") {
//if (negno == 1) {
//alert ("neg")
return false
//} else {
//continue
//}
}
if (oneChar == "." && !oneDecimal) {
oneDecimal = true
continue
}
if (oneChar < "0" || oneChar > "9") {
return false
}
}
return true
}

//pico[0] = baseref+"c_i16.gif' ALIGN=LEFT><BR>"

//to go somewhere
function gonow(form) {
window.location = "distances.htm"
}

function caldist(form) {
var er = 6366.707
//ave. radius = 6371.315 (someone said more accurate is 6366.707)
//equatorial radius = 6378.388
//nautical mile = 1.15078
var radlat1 = Math.PI * (td[nq] + tm[nq]/60 + ts[nq]/3600)/180
var radlat2 = Math.PI * (td[nj] + tm[nj]/60 + ts[nj]/3600)/180

//now long.
var radlong1 = Math.PI * (gd[nq] + gm[nq]/60 + gs[nq]/3600)/180
var radlong2 = Math.PI * (gd[nj] + gm[nj]/60 + gs[nj]/3600)/180
//spherical coordinates x=r*cos(ag)sin(at), y=r*sin(ag)*sin(at), z=r*cos(at)
//zero ag is up so reverse lat
if (tr[nq]=="N") {radlat1=Math.PI/2-radlat1}
if (tr[nq]=="S") {radlat1=Math.PI/2+radlat1}
if (gr[nq]=="W") {radlong1=Math.PI*2-radlong1}

if (tr[nj]=="N") {radlat2=Math.PI/2-radlat2}
if (tr[nj]=="S") {radlat2=Math.PI/2+radlat2}
if (gr[nj]=="W") {radlong2=Math.PI*2-radlong2}

var x1 = er * Math.cos(radlong1)*Math.sin(radlat1)
var y1 = er * Math.sin(radlong1)*Math.sin(radlat1)
var z1 = er * Math.cos(radlat1)

var x2 = er * Math.cos(radlong2)*Math.sin(radlat2)
var y2 = er * Math.sin(radlong2)*Math.sin(radlat2)
var z2 = er * Math.cos(radlat2)

var d = Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2))

//side, side, side, law of cosines and arccos
var theta = Math.acos((er*er+er*er-d*d)/(2*er*er))
var distance = theta*er
form.elements[30-24].value = distance
form.elements[31-24].value = distance/1.609344
form.elements[32-24].value = distance/1.852

}

nst1 = 1
nsg2 = 1
nst3 = 1
nsg4 = 1

function ns1(form) {
nst1++
if (nst1>2) {nst1=1}
if (nst1==1) {form.nslat1.value = "North"}
if (nst1==2) {form.nslat1.value = "South"}
}
function ns2(form) {
nsg2++
if (nsg2>2) {nsg2=1}
if (nsg2==1) {form.nslong1.value = "West"}
if (nsg2==2) {form.nslong1.value = "East"}
}
function ns3(form) {
nst3++
if (nst3>2) {nst3=1}
if (nst3==1) {form.nslat2.value = "North"}
if (nst3==2) {form.nslat2.value = "South"}
}
function ns4(form) {
nsg4++
if (nsg4>2) {nsg4=1}
if (nsg4==1) {form.nslong2.value = "West"}
if (nsg4==2) {form.nslong2.value = "East"}
}

var ns = 0
function calcgsd(form) {
ns = form.latd1.value
if (ns=="") {
alert("Enter a number for degrees latitude <=90")
document.forms[0].elements[0].focus()
return
}
if (!numberok(ns)) {
alert("Enter degrees latitude between 0 and 90")
document.forms[0].elements[0].focus()
return
}
ns = parseFloat(ns) //force string to number
if (ns<0 || ns>90) {
alert("Enter degrees latitude between 0 and 90")
document.forms[0].elements[0].focus()
return
}
var dlat1=ns

ns = form.longd1.value
if (ns=="") {
alert("Enter a number for degrees longitude <=180")
document.forms[0].elements[5].focus()
return
}
if (!numberok(ns)) {
alert("Enter degrees longitude between 0 and 180")
document.forms[0].elements[5].focus()
return
}
ns = parseFloat(ns) //force string to number
if (ns<0 || ns>180) {
alert("Enter degrees longitude between 0 and 180")
document.forms[0].elements[5].focus()
return
}
var dlong1=ns

ns = form.latd2.value
if (ns=="") {
alert("Enter a number for degrees latitude <=90")
document.forms[0].elements[10].focus()
return
}
if (!numberok(ns)) {
alert("Enter degrees latitude between 0 and 90")
document.forms[0].elements[10].focus()
return
}
ns = parseFloat(ns) //force string to number
if (ns<0 || ns>90) {
alert("Enter degrees latitude between 0 and 90")
document.forms[0].elements[10].focus()
return
}
var dlat2=ns
ns = form.longd2.value
if (ns=="") {
alert("Enter a number for degrees longitude <=180")
document.forms[0].elements[15].focus()
return
}
if (!numberok(ns)) {
alert("Enter degrees longitude between 0 and 180")
document.forms[0].elements[15].focus()
return
}
ns = parseFloat(ns) //force string to number
if (ns<0 || ns>180) {
alert("Enter degrees longitude between 0 and 180")
document.forms[0].elements[15].focus()
return
}
var dlong2=ns
//rest of not error check

var dm1 = parseFloat("0"+form.latm1.value)
var ds1 = parseFloat("0"+form.lats1.value)
if (dm1>=60) {alert("Enter minutes <60"); document.forms[0].elements[1].focus(); return}
if (ds1>=60) {alert("Enter seconds <60"); document.forms[0].elements[2].focus(); return}
var er = 6366.707
//was 6371.315 but more accurate is 6366.707
var radlat1 = Math.PI * (dlat1 + dm1/60 + ds1/3600)/180
var dm2 = parseFloat("0"+form.latm2.value)
var ds2 = parseFloat("0"+form.lats2.value)
if (dm2>=60) {alert("Enter minutes <60"); document.forms[0].elements[11].focus(); return}
if (ds2>=60) {alert("Enter seconds <60"); document.forms[0].elements[12].focus(); return}
var radlat2 = Math.PI * (dlat2 + dm2/60 + ds2/3600)/180

//now long.
var dm3 = parseFloat("0"+form.longm1.value)
var ds3 = parseFloat("0"+form.longs1.value)
if (dm3>=60) {alert("Enter minutes <60"); document.forms[0].elements[6].focus(); return}
if (ds3>=60) {alert("Enter seconds <60"); document.forms[0].elements[7].focus(); return}
var radlong1 = Math.PI * (dlong1 + dm3/60 + ds3/3600)/180

var dm4 = parseFloat("0"+form.longm2.value)
var ds4 = parseFloat("0"+form.longs2.value)
if (dm4>=60) {alert("Enter minutes <60"); document.forms[0].elements[16].focus(); return}
if (ds4>=60) {alert("Enter seconds <60"); document.forms[0].elements[17].focus(); return}
var radlong2 = Math.PI * (dlong2 + dm4/60 + ds4/3600)/180

//spherical coordinates x=r*cos(ag)sin(at), y=r*sin(ag)*cos(at), z=r*cos(at)
//zero ag is up so reverse lat
if (nst1==1) {radlat1=Math.PI/2-radlat1}
if (nst1==2) {radlat1=Math.PI/2+radlat1}
if (nsg2==1) {radlong1=Math.PI*2-radlong1}

if (nst3==1) {radlat2=Math.PI/2-radlat2}
if (nst3==2) {radlat2=Math.PI/2+radlat2}
if (nsg4==1) {radlong2=Math.PI*2-radlong2}

var x1 = er * Math.cos(radlong1)*Math.sin(radlat1)
var y1 = er * Math.sin(radlong1)*Math.sin(radlat1)
var z1 = er * Math.cos(radlat1)

var x2 = er * Math.cos(radlong2)*Math.sin(radlat2)
var y2 = er * Math.sin(radlong2)*Math.sin(radlat2)
var z2 = er * Math.cos(radlat2)

var d = Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2))

//side, side, side, law of cosines and arccos
var theta = Math.acos((er*er+er*er-d*d)/(2*er*er))
var distance = theta*er
form.elements[21].value = distance
form.elements[22].value = distance/1.609344
form.elements[23].value = distance/1.852


}
init(); 
//-->