
// Meteorology calculator javascript is copyright (c) 1996 by Kurt Mayer.
// Feel free to steal the code, but be sure to include this copyright. 
// Drop me a line if you choose to do so. Thanks. 


function tempIt(inform) {
// variables taken from the input form
var fahrenheit = parseInt(inform.fahrenheit.value);
var celsius = parseInt(inform.celsius.value);

//F-C conversion
if (inform.celsius.value == "") {
celsius = (fahrenheit-32)*(5/9);
inform.celsius.value = parseInt(celsius);
}
//C-F conversion
else if (inform.fahrenheit.value == "") {
fahrenheit = celsius*(9/5) + 32
inform.fahrenheit.value = parseInt(fahrenheit);
}
else {
celsius = (fahrenheit-32)*(5/9);
inform.celsius.value = parseInt(celsius);
}

}

//MPH-KMH-knots conversion

function windIt(inform) {
var mph = parseInt(inform.mph.value);
var kmh = parseInt(inform.kmh.value);
var knots = parseInt(inform.knots.value);
var meters = parseInt(inform.meters.value);

//knots to X
if ((inform.mph.value == "") && (inform.kmh.value=="" ) && (inform.meters.value=="" )) {
mph = (knots)*(1.15155);
kmh = (knots)*(1.853);
meters = (knots)*(1.82800);
inform.mph.value = parseInt(mph);
inform.kmh.value = parseInt(kmh);
inform.meters.value = parseInt(meters);
}
//kmh to X
else if ((inform.mph.value == "") && (inform.knots.value=="") && (inform.meters.value=="" )) {
mph = (kmh)*(0.62137);
knots = (kmh)*(0.54704);
meters = (kmh)*(0.27778);
inform.mph.value = parseInt(mph);
inform.knots.value = parseInt(knots);
inform.meters.value = parseInt(meters);
}
//mph to X
else if ((inform.kmh.value == "") && (inform.knots.value=="") && (inform.meters.value=="")) {
kmh = (mph)*(1.60934);
knots = (mph)*(0.86957);
meters  = (mph)*(0.44704);
inform.kmh.value = parseInt(kmh);
inform.knots.value = parseInt(knots);
inform.meters.value = parseInt(meters);
}
//meters-second to X
else if ((inform.kmh.value == "") && (inform.knots.value=="") && (inform.mph.value=="")) {
kmh = (meters)*(3.6);
knots = (meters)*(1.96936);
mph  = (meters)*(2.23693);
inform.kmh.value = parseInt(kmh);
inform.knots.value = parseInt(knots);
inform.mph.value = parseInt(mph);
}
else {
kmh = (mph)*(1.60934);
knots = (mph)*(1.15193);
meters  = (mph)*(0.44704);
inform.kmh.value = parseInt(kmh);
inform.knots.value = parseInt(knots);
inform.meters.value = parseInt(meters);
}

}

var Temp;

function computec(inform) {
   if (inform.cel.value == "")  { 
   inform.cel.value = (eval(inform.fahr.value)-32)*5/9;}
   else  {
   if (inform.fahr.value == "")  {
   inform.fahr.value = (eval(inform.cel.value)*9/5)+32;}
}
}   
function resetc(inform) {
inform.fahr.value="";
inform.cel.value="";
}
function computews(inform) {
   if (inform.knots.value == "" && inform.mph.value == "")  
   { 
   inform.knots.value = (eval(inform.mps.value)/.514791);
   inform.mph.value = (eval(inform.mps.value)/.44704);
   }
   else
   if (inform.knots.value == "" && inform.mps.value == "")
   { 
   inform.knots.value = (eval(inform.mph.value)/1.15155);
   inform.mps.value = (eval(inform.mph.value)/2.23694); 
   }
   else  
   if (inform.mph.value == "" && inform.mps.value == "")  
   { 
   inform.mph.value = (eval(inform.knots.value)/.868391);
   inform.mps.value = (eval(inform.knots.value)/1.94254); 
   }

}   
function resetws(inform) {
inform.knots.value="";
inform.mps.value="";
inform.mph.value="";
}

function computewc(inform) {
if (inform.corf2[0].checked)  {
var t= 5* (parseInt(inform.Temp.value)-32)/9;
}
if (inform.corf2[1].checked)  {
var t= 5* (parseInt(inform.Temp.value))/5;
}
if (inform.corf[0].checked)  {
var w= parseInt(parseInt(inform.Wind.value)*.44704);
}
if (inform.corf[1].checked)  {
var w= (parseInt(inform.Wind.value)/1.609*.44704);
}
var h= (10.45+10*Math.pow(w,.5)-w)*(33-t);
var WC= parseInt (33-h/22.04);
if (inform.corf2[0].checked)  {
    inform.Windchill.value= parseInt (WC*9/5+32);
}
if (inform.corf2[1].checked)  {
    inform.Windchill.value=WC 
}

}
function resetwc(inform) {
inform.Windchill.value="";
inform.Temp.value="";
inform.Wind.value="";
}


function computerh(inform) {
if (inform.corf[1].checked)  {
var T=5*(parseInt(inform.Temp.value-32)/9+273.16);
var Td=5*(parseInt(inform.Dewp.value-32)/9+273.16);
}
if (inform.corf[0].checked)  {
var T=5*(parseInt(inform.Temp.value)/5 + 273.16);
var Td=5*(parseInt(inform.Dewp.value)/5 + 273.16);
}
T=(Math.log(1013.25)/Math.LN10-7.90298*(373.16/T-1)+5.02808*Math.log(373.16/T)/Math.LN10)-(1.3816e-7*(Math.pow(10,(11.334*(1-T/373.16)))-1))+8.1328e-3*(Math.pow(10,(-3.49149*(373.16/T-1)))-1);
Td=(Math.log(1013.25)/Math.LN10-7.90298*(373.16/Td-1)+5.02808*Math.log(373.16/Td)/Math.LN10)-(1.3816e-7*(Math.pow(10,(11.334*(1-Td/373.16)))-1))+8.1328e-3*(Math.pow(10,(-3.49149*(373.16/Td-1)))-1);
inform.Relh.value=parseInt(100*Math.exp((Td-T)*Math.LN10));
}
function reseth(inform) {
inform.Relh.value="";
inform.Temp.value="";
inform.Dewp.value="";
}

function computehi1(inform) {
if (inform.bullet[1].checked==1)  {
var T=5*(inform.Temp.value-32)/9+273.16;
var Td=5*(inform.Dewp.value-32)/9+273.16;
}
if (inform.bullet[0].checked)  {
var T=5*(inform.Temp.value)/5 + 273.16;
var Td=5*(inform.Dewp.value)/5 + 273.16;
}
T=(Math.log(1013.25)/Math.LN10-7.90298*(373.16/T-1)+5.02808*Math.log(373.16/T)/Math.LN10)-(1.3816e-7*(Math.pow(10,(11.334*(1-T/373.16)))-1))+8.1328e-3*(Math.pow(10,(-3.49149*(373.16/T-1)))-1);
Td=(Math.log(1013.25)/Math.LN10-7.90298*(373.16/Td-1)+5.02808*Math.log(373.16/Td)/Math.LN10)-(1.3816e-7*(Math.pow(10,(11.334*(1-Td/373.16)))-1))+8.1328e-3*(Math.pow(10,(-3.49149*(373.16/Td-1)))-1);
var RH=100*Math.exp((Td-T)*Math.LN10);
inform.Relh.value=RH;
if (inform.bullet[1].checked==1)  {
var T=5*(inform.Temp.value)/5
}
if (inform.bullet[0].checked)  {
var T=9*(inform.Temp.value)/5+32;
}
inform.Heat.value=-42.379+2.04901523*T+10.14333127*RH-.22475541*T*RH-.00683783*T*T-.05481717*RH*RH+.00122874*T*T*RH+.00085282*T*RH*RH-.00000199*T*T*RH*RH;
if (inform.bullet[0].checked)  {
inform.Heat.value=5*(inform.Heat.value-32)/9;
}
}
function resethi1(inform) {
inform.Dewp.value="";
inform.Temp.value="";
inform.Relh.value="";
inform.Heat.value="";
}


//HeatIndex
function heatIt(inform) {
// variables taken from the input form
var temp = parseInt(inform.temp.value);
var rh = parseInt(inform.rh.value);
var t2=temp*temp;
var t3=t2*temp;
var rh2=rh*rh;
var rh3=rh2*rh;

//Celsius conversion
if (inform.convert[1].checked) {
var temp = temp*(9/5) + 32
var index =16.923+0.185212*temp+5.37941*rh-0.100254*temp*rh+ 0.941695e-2*t2+0.728898e-2*rh2+0.345372e-3*t2*rh- 0.814971e-3*temp*rh2+0.102102e-4*t2*rh2- 0.38646e-4*t3+0.291583e-4*rh3+0.142721e-5*t3*rh+ 0.197483e-6*temp*rh3-0.218429e-7*t3*rh2+ 0.843296e-9*t2*rh3-0.481975e-10*t3*rh3;
index = parseInt(index);
index = index-32*(5/9)
var heatindex = parseInt(index);
inform.heatindex.value = parseInt(heatindex)
}

//Fahrenheit conversion
if (inform.convert[0].checked) {
var index =16.923+0.185212*temp+5.37941*rh-0.100254*temp*rh+ 0.941695e-2*t2+0.728898e-2*rh2+0.345372e-3*t2*rh- 0.814971e-3*temp*rh2+0.102102e-4*t2*rh2- 0.38646e-4*t3+0.291583e-4*rh3+0.142721e-5*t3*rh+ 0.197483e-6*temp*rh3-0.218429e-7*t3*rh2+ 0.843296e-9*t2*rh3-0.481975e-10*t3*rh3;
var heatindex = parseInt(index);
inform.heatindex.value = parseInt(heatindex);
}
}


