function calculateNewHcpByPoints() {
	var oh=MM_findObj(oldHcp).value;var nho=MM_findObj(newHcp);var p=MM_findObj(points).value;var cho=MM_findObj(change);var tmp="";
	var nho2=MM_findObj(newHcp2);
	for(var i=0; i<oh.length; i++){ 
	   	var chr=oh.substring(i,i+1);if(chr==","){chr=".";tmp=tmp+chr;}else{tmp=tmp+chr;}
	} 
   	oh=tmp;hcp=new Number(oh.valueOf());var f=0.0;var b=0;var d=(p-36);var g=5;
	if(hcp>36){b=99999;g=0;}
	else if(hcp<=36.0 && hcp>=26.5){b=5;g=1;}
	else if(hcp<26.5 && hcp>=18.5){b=4;g=2;}
	else if(hcp<18.5 && hcp>=11.5){b=3;g=3;}
	else if(hcp<11.5 && hcp>=4.5){b=2;g=4;}
	else if(hcp<4.5){b=1;g=5;}
	if(p==36){hcp=hcp;}
	else if(p>36 && hcp<4.5)
		{hcp=(hcp-(p-36)*0.1);}
	else if(p>36) {
		hl=new Array(6);
		hl[0]=36.1;
		hl[1]=26.5;
		hl[2]=18.5;
		hl[3]=11.5;
		hl[4]=4.5;
		hl[5]=-99.9;
		f=new Array(6);
		f[0]=1.0;
		f[1]=0.5;
		f[2]=0.4;
		f[3]=0.3;
		f[4]=0.2;
		f[5]=0.1;
		var l=hl[g];
		var fc=f[g];
		hcp=hcp-fc;
		d=d-1;
		if(d>0){
			do{
				if(hcp<l && d>0){
					g=g+1;
					l=hl[g];
					fc=f[g];
				}
				hcp=hcp-fc;d=d-1;
			}
			while(d>0);
		}
		else{
			hcp=hcp;
		}
	}
	else if(p<(36-b)){
		if(g==0){
			hcp=hcp;
		}
		else if(g==1){
			hcp=(hcp+0.2);
		}
		else{hcp=(hcp+0.1);
		}
	}          
	else {
		hcp = hcp;
	}
	if ( oh <= 36 && hcp > 36 ) { hcp = 36 ; }
	/* else{hcp=(hcp+0.1);}} */
	var nh=Math.round(10*hcp)/10;
	var ov=new Number(oh.valueOf());var nv=new Number(nh.valueOf());var ch=Math.round(10*(nv-ov))/10; 
	if ( nh < 0 ) { nho2.value = "+"+Math.abs(nh); } else { nho2.value = nh; }
	nho.value = nh;cho.value=ch;
}

function calculateNewHcp(oldHcp,points,newHcp,change, full_round) {
	var oh=oldHcp;var nho=MM_findObj(newHcp);var p=points;var cho=MM_findObj(change);var tmp="";var nho2=MM_findObj(newHcp2);
	for(var i=0; i<oh.length; i++){ 
	   	var chr=oh.substring(i,i+1);if(chr==","){chr=".";tmp=tmp+chr;}else{tmp=tmp+chr;}
	} 
   	oh=tmp;hcp=new Number(oh.valueOf());var f=0.0;var b=0;var d=(p-36);var g=5;
	if(hcp>36){b=99999;g=0;}
	else if(hcp<=36.0 && hcp>=26.5 && full_round != true){b=3;g=1;}
	else if(hcp<=36.0 && hcp>=26.5){b=5;g=1;}
	else if(hcp<26.5 && hcp>=18.5 && full_round != true){b=2;g=2;}
	else if(hcp<26.5 && hcp>=18.5){b=4;g=2;}
	else if(hcp<18.5 && hcp>=11.5){b=3;g=3;}
	else if(hcp<11.5 && hcp>=4.5){b=2;g=4;}
	else if(hcp<4.5){b=1;g=5;}
	/*if (full_round == false) {
		p=new Number(p.valueOf())+18;
	}*/
	/*alert('Pisteitä '+p);*/
	if(p==36)
		{hcp=hcp;}
	else if(p>36 && hcp<4.5)
		{hcp=(hcp-(p-36)*0.1);}
	else if(p>36) {
		hl=new Array(6);hl[0]=36.1;hl[1]=26.5;hl[2]=18.5;hl[3]=11.5;hl[4]=4.5;hl[5]=-99.9;
		f=new Array(6);f[0]=1.0;f[1]=0.5;f[2]=0.4;f[3]=0.3;f[4]=0.2;f[5]=0.1;
		var l=hl[g];var fc=f[g];hcp=hcp-fc;d=d-1;
		if(d>0){do{if(hcp<l && d>0){g=g+1;l=hl[g];fc=f[g];}hcp=hcp-fc;d=d-1;}while(d>0);}else{hcp=hcp;}
	}
	else if(p<(36-b)){if(g==0){hcp=hcp;}else if(g==1){hcp=(hcp+0.2);}
	/* else{hcp=hcp;}} */
	else{hcp=(hcp+0.1);}}
	else{hcp=hcp;}
	if ( oh <= 36 && hcp > 36 ) { hcp = 36 ; } // basically just cases 35.9 and 36
	var nh=Math.round(10*hcp)/10;
	var ov=new Number(oh.valueOf());var nv=new Number(nh.valueOf());var ch=Math.round(10*(nv-ov))/10; 
	if ( nh < 0 ) { nho2.value = "+"+Math.abs(nh); } else { nho2.value = nh; }
	nho.value = nh;cho.value=ch;
}
