// JavaScript Document
function MnMx(Y)  //return [Min Max] of an Array
{
    var MxY=Y[0]*1.0;
    var MnY=Y[0]*1.0;
    for (var i=1;i<Y.length;i=i+1)
        {if((Y[i]*1.0)>MxY)
            {MxY=Y[i];}
            if(Y[i]*1.0<MnY)
            {MnY=Y[i];}
        }
	var X=new Array();
	X[0]=MnY;X[1]=MxY;
	return X;
}
function Nmbr(Tmp)
{
if((Math.abs(Tmp)<0.1)||(Math.abs(Tmp)>1000))
    {Tmp=Number(Tmp).toExponential(2)}
   else
    {Tmp=Number(Tmp).toPrecision(3)}
if((Math.abs(Tmp)<10e-22))
    {Tmp=Number(Tmp).toPrecision(1)}
return Tmp;
}

function Lbl(Mn,Mx)
{
var Rngs=new Array(2000,1200,600,200,120,60,20,12,6,2  ,1.2,.6,.12,.06,.02 ,.012,.006)
var Stps=new Array(400 ,200 ,100,40, 20, 10,4 ,2, 1,.4,.2 , .1,.04,.01,.004,.002,.001)
Nx=Mx-Mn;
var Stp=0;
for(var i=0;i<Rngs.length;i=i+1)
    {
    if(Nx<Rngs[i])
        {Stp=Stps[i];N=Math.ceil(Nx/Stps[i]);}
    }

var Strt;
if(Stp!=0)
    {
    Strt=Stp*Math.floor(Mn/Stp);
    //alert('Strt+N '+ (Strt+N*Stp) +' N '+N +'Mx '+Mx);
    if((Strt+N*Stp)<Mx)
        N=N+1;
    N=N+1; //lables are more than segments
    var Lbls=new Array(N);
    for(var i=0;i<N;i=i+1)
        {Lbls[i]=Strt+i*Stp;}
    //alert('Mn '+Mn+' Mx '+Mx+' Strt '+Strt+' Stp '+Stp+' N '+N + ' last '+Lbls[N-1]);
    //if(UsrLSet==1) //if user defined the limits
    Lbls[0]=Mn;Lbls[N-1]=Mx;
    }
else //data out of range
    {N=4;
    Strt=Mn;Stp=(Mx-Mn)/N;
    N=5; //lables are more than segments
    var Lbls=new Array(N);
    for(var i=0;i<N;i=i+1)
        {Lbls[i]=Strt+i*Stp;}
    //alert('Mn '+Mn+' Mx '+Mx+' Strt '+Strt+' Stp '+Stp+' N '+N + ' last '+Lbls[N-1]);
    //if(UsrLSet==1) //if user defined the limits
    Lbls[0]=Mn;Lbls[N-1]=Mx;    
    }
return Lbls;
}

