function OpravaEla( PocetPartii, Body)
{
	var uhral;
    uhral = Body / PocetPartii;
    var Uhrano;
    uhral = (uhral * 100)+.5;
	Uhrano = Math.floor(uhral);
    //alert(Uhrano)
	if(Uhrano > 50){
        if( Uhrano == 99 ) return  677;
        if( Uhrano == 98 ) return  589;
        if( Uhrano == 97 ) return  538;
        if( Uhrano == 96 ) return  501;
        if( Uhrano == 95 ) return  470;
        if( Uhrano == 94 ) return  444;
        if( Uhrano == 93 ) return  422;
        if( Uhrano == 92 ) return  401;
        if( Uhrano == 91 ) return  383;
        if( Uhrano == 90 ) return  368;
        if( Uhrano == 89 ) return  351;
        if( Uhrano == 88 ) return  336;
        if( Uhrano == 87 ) return  322;
        if( Uhrano == 86 ) return  309;
        if( Uhrano == 85 ) return  296;
        if( Uhrano == 84 ) return  284;
        if( Uhrano == 83 ) return  273;
        if( Uhrano == 82 ) return  262;
        if( Uhrano == 81 ) return  251;
        if( Uhrano == 80 ) return  240;
        if( Uhrano == 79 ) return  230;
        if( Uhrano == 78 ) return  220;
        if( Uhrano == 77 ) return  211;
        if( Uhrano == 76 ) return  202;
        if( Uhrano == 75 ) return  193;
        if( Uhrano == 74 ) return  184;
        if( Uhrano == 73 ) return  175;
        if( Uhrano == 72 ) return  166;
        if( Uhrano == 71 ) return  158;
        if( Uhrano == 70 ) return  149;
        if( Uhrano == 69 ) return  141;
        if( Uhrano == 68 ) return  133;
        if( Uhrano == 67 ) return  125;
        if( Uhrano == 66 ) return  117;
        if( Uhrano == 65 ) return  110;
        if( Uhrano == 64 ) return  102;
        if( Uhrano == 63 ) return  95;
        if( Uhrano == 62 ) return  87;
        if( Uhrano == 61 ) return  80;
        if( Uhrano == 60 ) return  72;
        if( Uhrano == 59 ) return  65;
        if( Uhrano == 58 ) return  57;
        if( Uhrano == 57 ) return  50;
        if( Uhrano == 56 ) return  43;
        if( Uhrano == 55 ) return  36;
        if( Uhrano == 54 ) return  29;
        if( Uhrano == 53 ) return  21;
        if( Uhrano == 52 ) return  14;
        if( Uhrano == 51 ) return  7;
    }else{
        if( Uhrano == 50 ) return  0;
        if( Uhrano == 49 ) return  -7;
        if( Uhrano == 48 ) return  -14;
        if( Uhrano == 47 ) return  -21;
        if( Uhrano == 46 ) return  -29;
        if( Uhrano == 45 ) return  -36;
        if( Uhrano == 44 ) return  -43;
        if( Uhrano == 43 ) return  -50;
        if( Uhrano == 42 ) return  -57;
        if( Uhrano == 41 ) return  -65;
        if( Uhrano == 40 ) return  -72;
        if( Uhrano == 39 ) return  -80;
        if( Uhrano == 38 ) return  -87;
        if( Uhrano == 37 ) return  -95;
        if( Uhrano == 36 ) return  -102;
        if( Uhrano == 35 ) return  -110;
        if( Uhrano == 34 ) return  -117;
        if( Uhrano == 33 ) return  -125;
        if( Uhrano == 32 ) return  -133;
        if( Uhrano == 31 ) return  -141;
        if( Uhrano == 30 ) return  -149;
        if( Uhrano == 29 ) return  -158;
        if( Uhrano == 28 ) return  -166;
        if( Uhrano == 27 ) return  -175;
        if( Uhrano == 26 ) return  -184;
        if( Uhrano == 25 ) return  -193;
        if( Uhrano == 24 ) return  -202;
        if( Uhrano == 23 ) return  -211;
        if( Uhrano == 22 ) return  -220;
        if( Uhrano == 21 ) return  -230;
        if( Uhrano == 20 ) return  -240;
        if( Uhrano == 19 ) return  -251;
        if( Uhrano == 18 ) return  -262;
        if( Uhrano == 17 ) return  -273;
        if( Uhrano == 16 ) return  -284;
        if( Uhrano == 15 ) return  -296;
        if( Uhrano == 14 ) return  -309;
        if( Uhrano == 13 ) return  -322;
        if( Uhrano == 12 ) return  -336;
        if( Uhrano == 11 ) return  -351;
        if( Uhrano == 10 ) return  -366;
        if( Uhrano == 9 ) return  -383;
        if( Uhrano == 8 ) return  -401;
        if( Uhrano == 7 ) return  -422;
        if( Uhrano == 6 ) return  -444;
        if( Uhrano == 5 ) return  -470;
        if( Uhrano == 4 ) return  -501;
        if( Uhrano == 3 ) return  -538;
        if( Uhrano == 2 ) return  -589;
        if( Uhrano == 1 ) return  -677;
	}
	return 0;
}

function NoveELO( Prumer,  PocetPartii,  Body)
{
    return Prumer + OpravaEla(PocetPartii, Body);
}

function MelUhrat( StareElo,  Prumer) 
{
   var rozdil = StareElo - Prumer;
	var ar;
	var ret;
    
    if( rozdil > 0 )
        ar = rozdil;
    else
        ar = -rozdil;
    
    if (ar <= 3 )
        ret = 50;
    else if (ar <= 10)
        ret = 51;
    else if (ar <= 17)
        ret = 52;
    else if (ar <= 25)
        ret = 53;
    else if (ar <= 32)
        ret = 54;
    else if (ar <= 39)
        ret = 55;
    else if (ar <= 46)
        ret = 56;
    else if (ar <= 53)
        ret = 57;
    else if (ar <= 61)
        ret = 58;
    else if (ar <= 68)
        ret = 59;
    else if (ar <= 76)
        ret = 60;
    else if (ar <= 83)
        ret = 61;
    else if (ar <= 91)
        ret = 62;
    else if (ar <= 98)
        ret = 63;
    else if (ar <= 106)
        ret = 64;
    else if (ar <= 113)
        ret = 65;
    else if (ar <= 121)
        ret = 66;
    else if (ar <= 129)
        ret = 67;
    else if (ar <= 137)
        ret = 68;
    else if (ar <= 145)
        ret = 69;
    else if (ar <= 153)
        ret = 70;
    else if (ar <= 162)
        ret = 71;
    else if (ar <= 170)
        ret = 72;
    else if (ar <= 179)
        ret = 73;
    else if (ar <= 188)
        ret = 74;
    else if (ar <= 197)
        ret = 75;
    else if (ar <= 206)
        ret = 76;
    else if (ar <= 215)
        ret = 77;
    else if (ar <= 225)
        ret = 78;
    else if (ar <= 235)
        ret = 79;
    else if (ar <= 245)
        ret = 80;
    else if (ar <= 256)
        ret = 81;
    else if (ar <= 267)
        ret = 82;
    else if (ar <= 278)
        ret = 83;
    else if (ar <= 290)
        ret = 84;
    else if (ar <= 302)
        ret = 85;
    else if (ar <= 315)
        ret = 86;
    else if (ar <= 328)
        ret = 87;
    else if (ar <= 344)
        ret = 88;
    else if (ar <= 357)
        ret = 89;
    else if (ar <= 374)
        ret = 90;
    else if (ar <= 391)
        ret = 91;
    else if (ar <= 411)
        ret = 92;
    else if (ar <= 432)
        ret = 93;
    else if (ar <= 456)
        ret = 94;
    else if (ar <= 484) 
        ret = 95;
    else if (ar <= 517)
        ret = 96;
    else if (ar <= 559)
        ret = 97;
    else if (ar <= 619)
        ret = 98;
    else if (ar <= 735)
        ret = 99;
    else
        ret = 100;

    if( rozdil > 0 )
        return ret;
    else
        return 100 - ret;
}

function ELO( StareElo, Prumer,  PocetPartii,  Body, koef)
{//alert(Body+" * "+StareElo+" * "+Prumer+" * "+koef+" * "+PocetPartii)
    var p;
    p = MelUhrat(StareElo, Prumer) * PocetPartii;
	
    p /=100;
    p = Body - p;
	
    p *= koef;
    return StareElo + Math.round(p);
}

function Spocti()
{ 
	var stareelo, prumer, pocet, koef;
	var body,pom;
	//fscanf(stdin, "stareelo=%d&prumer=%d&koeficient=%d&pocet=%d&body=%f", &stareelo, &prumer, &koef, &pocet, &body);
	pom=form.body.value
	pom=pom.replace(",", "."); 
	body=parseFloat(pom)
	//alert (body)
	if (isNaN(body) ) body=0
	stareelo=parseFloat(form.stareelo.value)
	if (isNaN(stareelo) ) stareelo=0
	prumer=parseFloat(form.prumer.value)
	if (isNaN(prumer) ) prumer=0
	koef=parseFloat(form.koeficient.value)
	if (isNaN(koef) ) koef=0
	pocet=parseFloat(form.pocet.value)
	if (isNaN(pocet) ) pocet=0
	//alert(koef)
	if( body>pocet ){
		form.poznamka.value="Máš víc bodů než parií !";
		return 0;
	};

	//printf("Současné ELO: %d<br>\nPrůměr soupeřů: %d<br>\nKoeficient: %d<br>\nPočet partií: %d<br>\nDosažené body: %0.1f<br>\n",
		//stareelo, prumer,  koef, pocet, body);
	var elo;

	if(stareelo==0)
		elo=NoveELO(prumer, pocet, body);
	else
		elo=ELO(stareelo, prumer, pocet, body, koef);

	form.elo.value=elo
	return (false);
}
