
function getValidPixFromOdds(input, priceType, incFees, tickSize, minPix, maxPix, layersOdds){
	
	//alert("input: " + input );
	var pix = 50;
	if(isNaN(input)){
		alert("Please enter a valid number");
		return;
	}
	
	input = Number(input);
	
	pix=getNearestPixEquiv(input, priceType, tickSize);

	if(incFees)
		pix=pix-0.8;


	if(layersOdds)
		pix=maxPix-pix;

	pix = roundToNearestTick(pix, tickSize)	;
		
	pix = pix>=maxPix?maxPix-1:pix;	
	pix = pix<=minPix?minPix+1:pix;	


	//alert("output: " + pix);

	return  pix;
}




function getNearestPixEquiv(input, priceType){
	if(priceType==PIX){
	    return input;
	}else if(priceType==DIGITAL){
		var pix =  100/input;
		return pix;
	}else if(priceType==MONEYLINE){
	    var pix = 50;
		if(input>=0){
			pix =  10000/(input+100);
		}else{
			pix = 100-( 10000/((-1*input)+100)   );

		}
		return pix;
	
	
	}else if(priceType==FRACTIONAL){
		//give the odds for input/1
	    var pix = 50;
		pix = 100/(1+input);
		return pix;
		
		
	}else{
	    alert("unknown priceType: " + priceType);
	}
		
}


function getOdds(pix, priceType,incFees, rounding, tickSize){
	if(isNaN(pix))
		return "n/a";
		
	pix=Number(pix);
	
	if(pix>99.9  || pix < 0.1)
		return "n/a";
	
	if(incFees)
		pix+=0.8;
		
	if(null==tickSize)
		tickSize = 1;

			
	return oddsMethods[priceType](pix, rounding, tickSize);
}


function getPix(pix){
	return roundNoEx(pix, 1);
}


function getML(pix, rounding, tickSize){
	if(isNaN(rounding))
		rounding=1;
	if(pix>99.9 )
		return "n/a";
	
	if(pix<=50){
		var res=((10000/pix)-100);
		res = roundNoEx(res, 1);
		return "+"+res;
	}else if(pix>50){
		var res=(100*pix)/(100-pix);
		res = roundNoEx(res, 1);
		return "-"+res;
	}
}
	
	
function getDigital(pix, rounding, tickSize){
	if(pix>100)
		return "n/a";

	res =  100/pix;
	if(!isNaN(tickSize) ){
		if(tickSize==0.1)
			return roundNoEx(res,3);
	}
	
	return round(res,2);
	
}


function getFractional(pix){
	if(pix>99.9)
		return "n/a";
	if(pix==50)
		return "evens";
	
	var gain = 100-pix;
	gain = roundNoEx(gain,2);
    pix = roundNoEx(pix,2);
	
	if(gain == round(gain,0) && pix==round(pix,0)){
	    var gcd = GCD(gain,pix);
		gain= gain/gcd;
	    gain = roundNoEx(gain,2);
		pix= pix/gcd;
	    pix = roundNoEx(pix,2);
	}
	
	return gain+"/"+pix;
}

var PIX=0;
var MONEYLINE=1;
var FRACTIONAL=2;
var DIGITAL=3;
var priceNames =        new Array("0-100", "moneyline", "fractional", "digital");
var priceNamesShort =   new Array("0-100", "ml",        "frac",       "dig");
var oddsMethods = new Array(getPix, getML, getFractional, getDigital);



