//Copyright © 2005 Caneias.com ANS. All Rights Reserved


var snolast=0;
var flate=0;
var l=0;
var h=0;
var boyler=0;
var v=0;
var n=0;
var bb=0;
var bh=0;
var friksjon=0;
var gruppe='';
var html = '';
var Uts;

function getBoyle(form)
{
	var a = new Array;
	l=(document.isn.l.value);
	h=(document.isn.h.value);
	var o = document.getElementById('behov');
	flate = l * h;
	if(flate==0){ o.innerHTML = "Du må angi lengde og avstand takskjegg-møne!";return}
	snolast=(document.isn.kommune.options[document.isn.kommune.selectedIndex].value);
	if(snolast==0){o.innerHTML = "Du må angi en snølast!";return}
	a = (document.isn.stein.options[document.isn.stein.selectedIndex].value).split(':');
	krum = a[0]; bh=a[1]; bl = a[2]; friksjon = a[3]; gruppe = a[4];
	if(a[0] == ''){o.innerHTML = "Du må velge en takstein type!";return}
	v=(document.isn.vinkel.options[document.isn.vinkel.selectedIndex].value);
	if(v==0){o.innerHTML = "Du må angi en takvinkel!";return}
       	document.getElementById('tak').innerHTML = '&nbsp;';
   
	boyler = beregnantall(flate,snolast,v,friksjon);
	document.getElementById('behov').innerHTML = boyler + " snøfangerbøyler";
	//if(n==-2) document.isn.disp.value=("Snølast " + snolast/100 + " må beregnes manuelt");
	//if(n==-1) document.isn.disp.value=("Snøfangerbøyler uegnet");
	if(boyler==0) {document.getElementById('behov').innerHTML = 'Snøfangere unødvendig'; return};
	
	with(Math)
	{
		var kolonner = round(l * 1000 / bl);
		var rader = ceil(h * 1000 / bh);
		var steiner = kolonner * rader;
		var maxboyler = kolonner * (rader - 2);
		var halv = ceil(boyler/2);
		var restrad = rader;
		var dobbel = 0;
		var loop=0;
		var tak = new Array(rader+2);
		html = '';
        	

		for(var i=0;i<rader;i++)
		{
			tak[i] = new Array(kolonner);
		}

		if(boyler > maxboyler && krum == 2) boyler = boyler - maxboyler, dobbel = 1;
		if(boyler > maxboyler) {alert('Snøfangerbøylen er uegnet på dette taket, det er ikke plass til så mange bøyler');return}
		var restboyle = boyler;


		//Nederste rader
		var rad=0;
		while(rad < rader)
		{
			for(kolonne=0;kolonne < kolonner;kolonne++)
			{
				tak[rad][kolonne] = 1;
				restboyle--;
				maxboyler--;
			}
			restrad--;
			rad++;
			if(restboyle < halv) break;
		}

		//resten
		var teller = 1;
		var nevner = maxboyler;
		var nteller;
		var nnevner;
		while(teller / nevner < restboyle / maxboyler)
		{
			nteller = teller, nnevner = nevner;
			if(teller == 1 && nevner > 2) nevner--;
			else teller++, nevner++;
			if(nevner == maxboyler) break;
		}
		//alert('kolonner=' + kolonner + ' brøk1=' + teller+'/'+nevner + ' brøk2=' + nteller + '/' + nnevner);

		var d = kolonner-1; 
		var kolonne = -1;
		var x=0; 
		var s=0;
		var next=0;
		while(restboyle > 0)
		{
			r = rad + floor(s / kolonner);
			k = s % kolonner;
			if(r % 2 == 0) k = kolonner - k - 1;
			//alert('x=' + x + ' r='+ r + ' k=' + k);
			s++; maxboyler--;
			
			if(x < teller) tak[r][k] = 1,restboyle--;
			x++; 
			if(x==nevner)
			{ 
				if(restboyle <= (maxboyler * nteller / nnevner)) teller = nteller, nevner = nnevner;
				//alert('rest/max=' + (restboyle / maxboyler) + ' brøk=' + (nteller  /  nnevner));
				x=0;
			}
			if(loop++ > 10000) alert('c');
		}


		//vis taket
		for(rad=0;rad<rader;rad++)
		{
			var radhtml = '<tr><td bgcolor=white border=0 width=20>' + (rad + 1) + '</td>';
			for(kolonne=0;kolonne<kolonner;kolonne++)
			{	
				radhtml += '<td align=center>';
				if(dobbel && rad < rader - 2) radhtml += '<img src=u.gif>';
				if(tak[rad][kolonne]) radhtml += '<img src=u.gif>';
				else radhtml += '&nbsp;';
				radhtml += '</td>';
			}
			radhtml += '</tr>';
			html = radhtml + html;
		}


		var fra = floor(restboyle / restrad);
		var til = ceil(restboyle / restrad);

        	html = '<b>Leggemønster på taket:</b><br><table border=1 bgcolor="#CC6633" CELLSPACING=0 CELLPADDING=0>' + html + '</table><br>';
        	document.getElementById('tak').innerHTML = html + (l < 9 ? '' : '<a href="javascript:utskrift()" title="Klikk her hvis du vil lage en separat utskrift av leggemønsteret.  Landskapsformat anbefales for å få plass">Separat utskrift av leggemønsteret</a>');
        	document.getElementById('kolonner').innerHTML = kolonner;
        	document.getElementById('rekker').innerHTML = rader;
		document.getElementById('steiner').innerHTML = steiner;
		
		var bilder = '<table><tr><td>';
		if(krum == 1) bilder += '<img src=11.jpg><br>Montering på stein';
		else
		{
			if(dobbel) bilder += '<img src=22.jpg><br>Montering av 2 bøyler pr stein</td><td><img src=21.jpg><br>Montering av 1 bøyle pr stein';
			else bilder += '<img src=21.jpg><br>Montering på stein';
		}
		bilder += '</td></tr></table>';
		document.getElementById('bilder').innerHTML = bilder;
	}
}

function utskrift()
{
	Uts = window.open("","uts","height=30,widt=30");
	Uts.close();
	Uts = window.open("","uts","menubar=yes,toolbar=yes,addressbar=no,status=yes,scrollbars=yes,resizable=yes,height=600,width=800");
	Uts.document.writeln('<html><title>Snøfangerbøylen</title><b>Snøfangerbøylen </b> - ' + html + '</html>');
}

function javaok()
{
        document.getElementById('behov').innerHTML = "Fyll inn ovenfor";
}

function openHelpWindow(winURL)
{
        helpWindow=open(winURL,"helpWindow","toolbar=no,directories=no,menubar=yes,height=350,width=267,scrollbars=yes,resizable=no");
}

function makenumeric(o)
{	
	o.value = o.value.replace(',','.');
}

function beregnantall(flate,last,vinkel,friksjon)
{
	
	var lastfaktor = 1.35;
	var styrke = 0.193;
	var formfakt = vinkel <= 30 ? 0.8 : 0.8 * (60 - vinkel) / 30;
	with (Math) 
	{
		if(sin(vinkel * PI / 180) - friksjon * cos(vinkel * PI / 180) <= 0) return 0;
		//alert ('last='+ last + ' lastfaktor='+ lastfaktor + ' vinkel=' + vinkel + 'friksjon=' +  friksjon + ' formfaktor=' + formfakt + 'styrke='+styrke);
		return ceil(flate * last / 100 / styrke * lastfaktor * (sin(vinkel * PI / 180) - friksjon * cos(vinkel * PI / 180)) * cos(vinkel * PI / 180) * formfakt);
	}
}


