/**
 * File:    	JaeggiSolar.js
 *
 * Author:  	charles.geiser@dodeka.ch
 * Date:    	2009-02-06
 *
 * Purpose: 	Javascript  functions to compute elevation of sun at noon 
 */
 
/*
Show value in textfield
*/ 
function ShowAltitude()
{
	window.document.Form1.Altitude.value = AltitudeAtCulmination(DayNbr())
}

/*
Get declination 
According Ch. Blatter earth is at perihelion on Jan 3
*/	
function Declination(daynbr)
{	
	var rad = Math.PI / 180.0
	var deg = 180.0 / Math.PI
	var Epsilon = 23.43954 * rad // 0.40909715
	var Ttrop = 365.2422
	var D0 = 80.535132
	var k = 0.016713
	var a = 77.2316 * rad        // 1.3479457
	var t = (daynbr - 3) * 2 * Math.PI/Ttrop
	var d = 2 * k * Math.sin(t) + 1.25 * k * k * Math.sin(2 * t)
	var h = Math.sin(t + d - a) * Math.sin(Epsilon)
	var decl = Math.asin(h) * deg
	return decl
}

/*
Get elevation of sun at noon
*/	
function AltitudeAtCulmination(daynbr)
{
	var geoLatitudeBrugg = 47.5
	var h = Declination(daynbr) + 90 - geoLatitudeBrugg
	h = h.toFixed(1)	// round to one decimal
	return h
}
	
  
/* 
Get number of day in current year
Attention: In JS months are numbered 0..11
*/
function DayNbr()
{
	var d = new Date()
	var now = d.getTime() / 86400000
	var jan1 = Date.UTC(d.getFullYear(), 0, 1) / 86400000
	var dnbr = now - jan1
	return Math.ceil(dnbr)
}
