

function checknum(input, min, max, msg)
{
    msg = msg + " field has invalid data: " + input.value;

    var str = input.value;
    for (var i = 0; i < str.length; i++) {
        var ch = str.substring(i, i + 1)
        if ((ch < "0" || "9" < ch) && ch != '.' && ch!='-' ) {
            alert(msg);
        }
    }
    var num = parseFloat(str)
    if (num < min || max < num) {
        alert(msg + " not in range [" + min + ".." + max + "]");
    }
    input.value = str;

}


function ssntoflux(sunspotnum)
{
	 var ssn = parseFloat(sunspotnum)
	 C0=49.4;
	 C1=0.97;
	 C2=17.6;
	 C3=-0.035;

	 return(C0 + C1*ssn + C2 * Math.exp(C3*ssn));

}

function fluxtossn(solarflux)
{

	 cons1=0.00538
	 cons2=0.0000139

	 var flux = parseFloat(solarflux)
	 F0min = 67.0;
	 f = flux - F0min;

	 f2 = f * f;
	 f3 = f * f * f;


	 ssn = 1.61 * f - cons1 * f2 + cons2 * f3;

	 if(ssn <0) ssn = 0;

	 return ssn;

}

function ssntotindex(ssn)
{
	tindex = -1.75 + 0.695 * ssn + 0.298 * ssn;
	return tindex;
}

function tindextossn(tindex)
{
	ssn = 2.54 + 0.999 * tindex;
	return ssn;
}

function defaults(form)
{


	today = new Date();
	day = today.getDay();
	month = today.getMonth();
	year = today.getYear();
        year = fullyear(year);
	form.day.value = today.getDate();
	form.month.value = today.getMonth()+1;
	form.year.value = year;
}

function fullyear(form)
{
        if(year < 50) year = year + 2000;
        else if (year < 100) year = year + 1900;
        else if (year >= 100 && year < 500 ) year = year + 1900;
        return year;
}

function setflux(form)
{
	checknum(form.flux, 0, 300,'10 cm flux value');
	form.ssn.value = fluxtossn(form.flux.value);
	form.tindex.value = ssntotindex(form.ssn.value);
}

function settindex(form)
{
	checknum(form.tindex, -50, 250,'T index value');
	form.ssn.value = tindextossn(form.tindex.value);
	form.flux.value = ssntoflux(form.ssn.value);
}

function setssn(form)
{
	checknum(form.ssn, 0, 300,'Sunspot number value');
	form.flux.value = ssntoflux(form.ssn.value);
	form.tindex.value = ssntotindex(form.ssn.value);
}




