function roundTo(decimalpositions){
	var i = this * Math.pow(10,decimalpositions);
	i = Math.round(i);
	return i / Math.pow(10,decimalpositions);
}
Number.prototype.roundTo = roundTo; 

//elimina le minuscole e l'apice dalla stringa in input
function filterSpecial(str) {
	re = /\?|\"|'/g;
	// remove special characters like "$" and "," etc...
	return str.replace(re, "");
}

function IsUneven(numero)
{
    if (isNaN(numero) == false)
    {
        return (numero %2 == 1 ?  false : true);
    }
    else
    {
        return null;
    }
}


//Controllo delle competizioni, fino ad un massimo di 200
for(var cComp=1;cComp<=200;cComp++){
	try{


		var legenda=new Array
		var tot=new Array
		var sommaTot=new Array
		var sommaPunti=new Array
		var sommaMI=new Array
		var gol=new Array()
		var punti=new Array()
		var MI=new Array()

		var giornataAttuale
		var giornataIniziale=arrIncontri[1].GiornataDiA
		var giornataRecente=GetUltimaGiornataGiocata()
		var giornateGiocate=giornataRecente-giornataIniziale+1

		//il massimo non deve superare i 300'000 pixel di larghezza*altezza, così dice Google
		var larghezza=800
		var altezza=375 
		
		var maxPunti=0
		var minPunti=0
		var maxTotali=0
		var minTotali=100
		var maxGP=0
		var minGP=100
		var maxMI=0
		var minMI=0

		//valore per cui moltiplicare il numero di gol in modo che venga visualizzato bene per tutta l'altezza
		var valZoomGol = 10
		// var valZoomSommaTot = giornataRecente

		var col=new Array



		//stringa dei totali
		var valoriTot="&chd=t:" 
		var valoriSommaTot="&chd=t:" 

		//stringa dei gol
		var valoriGol="&chd=t:" 

		//stringa dei punti in classifica
		var valoriPunti="&chd=t:" 
		var valoriMI="&chd=t:" 

		var iniz=0
		for (iniz; iniz<=NumSquVisCla; iniz++){
			sommaTot[iniz]=0
		}

		var index
		var iLeg

		var maxIDsquadre = 0
		var IDcasa
		var IDfuori

		for (giornataAttuale=giornataIniziale; giornataAttuale<=giornataRecente; giornataAttuale++){
			var i=0
		

				//inizializza le stringhe degli andamenti di somma
				for (conta=1; conta<=NumIncVisUltRis; conta++){
					sommaTot[RiempiListaIncontri(giornataIniziale,cComp)[conta].IDSquadre.Casa*giornataRecente]=0
					//document.write("<BR>Index Casa: "+RiempiListaIncontri(giornataIniziale,cComp)[conta].IDSquadre.Casa*giornataRecente)
					sommaPunti[RiempiListaIncontri(giornataIniziale,cComp)[conta].IDSquadre.Casa*giornataRecente]=0
					sommaMI[RiempiListaIncontri(giornataIniziale,cComp)[conta].IDSquadre.Casa*giornataRecente]=0
					sommaTot[RiempiListaIncontri(giornataIniziale,cComp)[conta].IDSquadre.Fuori*giornataRecente]=0
					//document.write("<BR>Index Fuori: "+RiempiListaIncontri(giornataIniziale,cComp)[conta].IDSquadre.Fuori*giornataRecente)
					sommaPunti[RiempiListaIncontri(giornataIniziale,cComp)[conta].IDSquadre.Fuori*giornataRecente]=0
					sommaMI[RiempiListaIncontri(giornataIniziale,cComp)[conta].IDSquadre.Fuori*giornataRecente]=0
				}

			try{
				
				for (conta=1; conta<=NumIncVisUltRis; conta++){
					//gol in casa e fuori, giusto per semplificare il codice
					var casa = RiempiListaIncontri(giornataAttuale,cComp)[conta].Gol.Casa
					var fuori = RiempiListaIncontri(giornataAttuale,cComp)[conta].Gol.Fuori
					
					//considera la squadra in casa
					i++
					
					IDcasa=RiempiListaIncontri(giornataAttuale,cComp)[conta].IDSquadre.Casa
					if(IDcasa>maxIDsquadre){
						maxIDsquadre=IDcasa
					}
					
					index=giornataAttuale+(IDcasa*giornataRecente)-(giornataIniziale-1)
					

					legenda[index]=RiempiListaIncontri(giornataAttuale,cComp)[conta].Nomi.Casa
					
					tot[index]=(RiempiListaIncontri(giornataAttuale,cComp)[conta].Totali.Casa)
					
					sommaTot[index]=(sommaTot[index-1]+(tot[index]))
					//document.write("<BR>SommaTot "+(index-1)+": "+sommaTot[index-1]+" > "+sommaTot[index])
					gol[index]=casa*valZoomGol
					
					if(RiempiListaIncontri(giornataRecente,cComp)[conta].IDTipo!=INC_GRANPREMIO){
						//considera ora la squadra fuori casa
						
						i++
						
						IDfuori=RiempiListaIncontri(giornataAttuale,cComp)[conta].IDSquadre.Fuori
						if(IDfuori>maxIDsquadre){
							maxIDsquadre=IDfuori
						}
						
						indexFuori=giornataAttuale+(IDfuori*giornataRecente)-(giornataIniziale-1)
						
						legenda[indexFuori]=RiempiListaIncontri(giornataAttuale,cComp)[conta].Nomi.Fuori

						tot[indexFuori]=(RiempiListaIncontri(giornataAttuale,cComp)[conta].Totali.Fuori)
						
						sommaTot[indexFuori]=(sommaTot[indexFuori-1]+(tot[indexFuori]))
						//document.write("<BR>Somma Tot "+(indexFuori-1)+": "+sommaTot[indexFuori-1]+" > "+sommaTot[indexFuori])
						
						gol[indexFuori]=fuori*valZoomGol
						
						//calcola quanti punti vengono dati a ciascuna squadra per vittoria, pareggio o sconfitta in ogni giornata
						if(casa > fuori){
							punti[index]=3
							punti[indexFuori]=0
							MI[index]=0
							MI[indexFuori]=-1
						}
						if(fuori == casa){
							punti[index]=1
							punti[indexFuori]=1
							MI[index]=-2
							MI[indexFuori]=0
						}
						if(casa < fuori){
							punti[index]=0
							punti[indexFuori]=3
							MI[index]=-3
							MI[indexFuori]=2
						}
						
						sommaPunti[indexFuori]=sommaPunti[indexFuori-1]+punti[indexFuori]
						sommaPunti[index]=sommaPunti[index-1]+punti[index]
						sommaMI[indexFuori]=sommaMI[indexFuori-1]+parseInt(MI[indexFuori])
						sommaMI[index]=parseInt(sommaMI[index-1])+parseInt(MI[index])
						
					}
				}
			//document.write("<BR>")
			}
			catch(err){"Errore nel calcolo - "+document.write(err)}
		}

		//aggiunge i nomi delle fantasquadre per la legenda
		var valoriLegenda="&chdl="
		var valoriLeg="&chdlp=t&chdl="
		
		var indexTest

		try{
			for(i=1; i<=maxIDsquadre; i++){

				indexTest=(i*giornataRecente)+giornataIniziale-(giornataIniziale-1)

				if (legenda[indexTest]!=null){

					//document.write("<br>Giornata Iniziale calcolata: "+	giornataIniziale )
					for (giornataAttuale=giornataIniziale; giornataAttuale<=giornataRecente; giornataAttuale++){
						//concatenamento delle stringhe
						index=(i*giornataRecente)+giornataAttuale-(giornataIniziale-1)
						
						
						if(giornataAttuale==giornataIniziale){
							valoriLegenda=valoriLegenda+filterSpecial(legenda[index])
							valoriLeg=valoriLeg+filterSpecial(legenda[index])
							if (i<maxIDsquadre){
								valoriLegenda=valoriLegenda+"|"
								valoriLeg=valoriLeg+"|"
							}
						}
						
						if(giornataRecente==giornataIniziale){

							valoriTot=valoriTot+"0,"
							valoriGol=valoriGol+"0,"
							valoriPunti=valoriPunti+"0,"
							valoriMI=valoriMI+"0,"
							valoriSommaTot=valoriSommaTot+"0,"
						}
						
						
						if(tot[index]>maxTotali){maxTotali=tot[index]}
						if(tot[index]<minTotali){minTotali=tot[index]}
						
						valoriTot=valoriTot+tot[index]
						valoriGol=valoriGol+gol[index]
						
						
						if(((sommaTot[index])/giornataAttuale).roundTo(2)>maxGP){maxGP=((sommaTot[index])/giornataAttuale).roundTo(2)}
						if(((sommaTot[index])/giornataAttuale).roundTo(2)<minGP){minGP=((sommaTot[index])/giornataAttuale).roundTo(2)}
						
						valoriSommaTot=valoriSommaTot+((sommaTot[index])/giornataAttuale).roundTo(1)
						
							
						if(sommaPunti[index]>maxPunti){maxPunti=sommaPunti[index]}
						if(sommaPunti[index]<minPunti){minPunti=sommaPunti[index]}
							
						valoriPunti=valoriPunti+(sommaPunti[index]).roundTo(1)
						
						if(sommaMI[index]>maxMI){maxMI=sommaMI[index]}
						if(sommaMI[index]<minMI){minMI=sommaMI[index]}
						
						valoriMI=valoriMI+(sommaMI[index]).roundTo(1)
						
						if (giornataAttuale<giornataRecente){
							valoriTot=valoriTot+","
							valoriGol=valoriGol+","
							
							valoriSommaTot=valoriSommaTot+","
							valoriPunti=valoriPunti+","
							valoriMI=valoriMI+","
						}
						
						if (giornataAttuale==giornataRecente){
							if(i<maxIDsquadre){
								valoriTot=valoriTot+"|"
								valoriGol=valoriGol+"|"		
								valoriSommaTot=valoriSommaTot+"|"		
								valoriPunti=valoriPunti+"|"	
								valoriMI=valoriMI+"|"
							}
						}
					}
				}
			}
		}
		catch(err){document.write("Errore nella concatenazione dei valori - "+err)}
		
		
//*********************Variabili del diagramma		
		
		col[1]="00ffff" //aqua
		col[2]="0000ff" //blue
		col[3]="4169e1" //royal blue
		col[4]="000000" //black
		col[5]="ff8c00" //dark orange
		col[6]="ffff00" //yellow
		col[7]="00ff00" //lime
		col[8]="ff0000" //red
		col[9]="800000" //maroon
		col[10]="ff69b4" //hot pink
		col[11]="006400" //dark green
		col[12]="C0C0C0" //silver
		col[13]="ffd700" //gold
		col[14]="ff00ff" //magenta
		col[15]="6495ed" //cornflowerblue
		col[16]="a0522d" //sienna
		col[17]="ff0000" //red
		col[18]="00ff00" //lime
		col[19]="0000ff" //blue
		col[20]="000000" //black
		col[21]="C0C0C0" //silver
		col[22]="800000" //maroon
		col[23]="ffff00" //yellow
		col[24]="00ffff" //aqua
		col[25]="ff00ff" //fuchsia
		col[26]="800080" //purple
		col[27]="008080" //teal
		col[28]="ffa500" //orange
		col[29]="ffd700" //gold
		col[30]="ff00ff" //magenta
		col[31]="6495ed" //cornflowerblue
		col[32]="a0522d" //sienna

		//chxt=y mostra  gli indici sull'asse y

		//qui inizia la composizione dell'URL da dare in pasto a Google Chart
		var URL="http://chart.apis.google.com/chart?cht=lc"

	var minMaxPunti="&chds=0,"+maxPunti
	var minMaxTotali="&chds="+minTotali+","+maxTotali
	var minMaxGP="&chds="+minGP+","+maxGP
	var minMaxMI="&chds="+minMI+","+maxMI
	var assi="&chxt=x,y"

	//mette i numeri di giornata sulle ascisse
	var assiLabel=assi+"&chxl="

	var assiPos="1:|0"
	var splitPos=maxPunti
	for(var ax=1; ax<=(maxPunti); ax++){
		if(IsUneven(ax)){
		assiPos=assiPos+"|"+(ax)}
		else{assiPos=assiPos+"| "}
	}
	
	var assiTot="1:|"+minTotali
	var splitTot=maxTotali-minTotali
	for(var ax=1; ax<=(splitTot); ax++){
		if((IsUneven(ax))||(ax==splitTot)){
		assiTot=assiTot+"|"+(ax+minTotali)}
		else{assiTot=assiTot+"| "}
	}
	
	var assiMI="1:|"+minMI
	var splitMI=maxMI-minMI
		var interMI=1//((maxMI-minMI)/5).roundTo(1)
	for(var ax=1; ax<=(splitMI); ax++){
		
	if(IsUneven(ax)){
	assiMI=assiMI+"|"+((ax*interMI)+minMI).roundTo(1)}
	else{assiMI=assiMI+"| "}
	
	}
	
	var assiGol="1:|0"
	for(var ax=1; ax<=(100/valZoomGol); ax++){
		assiGol=assiGol+"|"+ax
	}
	
	var assiGP="1:|"+minGP
	var splitGP=(maxGP-minGP)
	
	for(var ax=1; ax<=(5); ax++){
		assiGP=assiGP+"|"+((ax*splitGP/5)+minGP).roundTo(2)
	}
	
	var assiGiornata="0:"
	for (var g=giornataIniziale; g<=giornataRecente; g++){
		assiGiornata=assiGiornata+"|"+g
	}

	//mette la griglia di sfondo...
	griglia="&chg=100,20&chf=c,ls,90,eeeeee,0.10,FFFFFF,0.10"
	grigliaGol="&chg=100,"+valZoomGol+"&chf=c,ls,90,eeeeee,0."+valZoomGol+",FFFFFF,0."+valZoomGol
	grigliaPos="&chf=c,ls,90,eeeeee,"+(1/splitPos*3).roundTo(6)+",FFFFFF,"+(1/splitPos*3).roundTo(6)
	grigliaTot="&chf=c,ls,90,eeeeee,"+(1/splitTot*2).roundTo(6)+",FFFFFF,"+(1/splitTot*2).roundTo(6)
	grigliaGP="&chf=c,ls,90,eeeeee,"+(1/splitGP).roundTo(6)+",FFFFFF,"+(1/splitGP).roundTo(6)
	grigliaMI="&chf=c,ls,90,eeeeee,"+(1/splitMI*2).roundTo(6)+",FFFFFF,"+(1/splitMI*2).roundTo(6)

	//...e i colori delle linee
	coloriLinee="&chco="
	for (var j=1; j<=NumSquVisCla; j++){
		coloriLinee=coloriLinee+col[j]
		if (j<NumSquVisCla){
			coloriLinee=coloriLinee+","
		}
	}

//*******************************************OUTPUT
	var dim="&chs="+larghezza+"x"+altezza
	var dim2="&chs=600x500"
	
	document.write("<h2 class='titletext'>Competizione "+RiempiListaIncontri(giornataIniziale,cComp)[1].IDCompetizione+" - "+RiempiListaIncontri(giornataIniziale,cComp)[1].Competizione+"</h2><br>Giornata iniziale: "+giornataIniziale)



	
	//questa è la parte dell'output per l'andamento basato sulla posizione in classifica
	if(RiempiListaIncontri(giornataRecente,cComp)[conta-1].IDTipo!=INC_GRANPREMIO){
		document.write("<h2 class='titletext'>Andamento della Posizione in Classifica</h2>")
		document.write("<img border=none width="+(larghezza)+" height="+(altezza)+" src='"+URL+minMaxPunti+assiLabel+assiGiornata+"|"+assiPos+dim+grigliaPos+coloriLinee+valoriPunti+"'></img>")
		
						//questa è la parte dell'output per la legenda
	if(RiempiListaIncontri(giornataRecente,cComp)[conta-1].IDTipo!=INC_GRANPREMIO){
		document.write("<img border=none width="+(larghezza)+" height=36 src='"+URL+"&chs="+larghezza+"x36"+coloriLinee+valoriLeg+"'></img>")
	}
	
		document.write("<BR><A target='_blank' href='"+URL+minMaxPunti+assiLabel+assiGiornata+"|"+assiPos+dim2+grigliaPos+coloriLinee+valoriPunti+"'>Apri in una nuova finestra</A>")
	}


	//questa è la parte dell'output per l'andamento basato sui Totali
	document.write("<h2 class='titletext'>Andamento dei Punteggi (Totali Squadra) </h2>")
	document.write("<img border=none width="+(larghezza)+" height="+(altezza)+"  src='"+URL+minMaxTotali+assiLabel+assiGiornata+"|"+assiTot+dim+grigliaTot+coloriLinee+valoriTot+"'></img>")
	
					//questa è la parte dell'output per la legenda
	if(RiempiListaIncontri(giornataRecente,cComp)[conta-1].IDTipo!=INC_GRANPREMIO){
		document.write("<img border=none width="+(larghezza)+" height=36 src='"+URL+"&chs="+larghezza+"x36"+coloriLinee+valoriLeg+"'></img>")
	}
	
	document.write("<BR><A target='_blank' href='"+URL+minMaxTotali+assiLabel+assiGiornata+"|"+assiTot+dim2+grigliaTot+coloriLinee+valoriTot+"'>Apri in una nuova finestra</A>")

	//questa è la parte dell'output per l'andamento basato sulla somma dei Totali
	document.write("<h2 class='titletext'>Andamento del GranPremio (Totali Squadra Medi)</h2>")
	document.write("<img border=none width="+(larghezza)+" height="+(altezza)+"  src='"+URL+minMaxGP+assiLabel+assiGiornata+"|"+assiGP+dim+grigliaGP+coloriLinee+valoriSommaTot+"'></img>")
	
					//questa è la parte dell'output per la legenda
	if(RiempiListaIncontri(giornataRecente,cComp)[conta-1].IDTipo!=INC_GRANPREMIO){
		document.write("<img border=none width="+(larghezza)+" height=36 src='"+URL+"&chs="+larghezza+"x36"+coloriLinee+valoriLeg+"'></img>")
	}
	
	document.write("<BR><A target='_blank' href='"+URL+minMaxGP+assiLabel+assiGiornata+"|"+assiGP+dim2+grigliaGP+coloriLinee+valoriSommaTot+"'>Apri in una nuova finestra</A>")

	//questa è la parte dell'output per l'andamento basato sui Gol
	if(RiempiListaIncontri(giornataRecente,cComp)[conta-1].IDTipo!=INC_GRANPREMIO){
		document.write("<h2 class='titletext'>Andamento dei Gol Fatti (Gol Singola Giornata)</h2>")
		document.write("<img border=none width="+(larghezza)+" height="+(altezza)+"  src='"+URL+assiLabel+assiGiornata+"|"+assiGol+dim+grigliaGol+coloriLinee+valoriGol+"'></img>")
		
						//questa è la parte dell'output per la legenda
	if(RiempiListaIncontri(giornataRecente,cComp)[conta-1].IDTipo!=INC_GRANPREMIO){
		document.write("<img border=none width="+(larghezza)+" height=36 src='"+URL+"&chs="+larghezza+"x36"+coloriLinee+valoriLeg+"'></img>")
	}
	
		document.write("<BR><A target='_blank' href='"+URL+assiLabel+assiGiornata+"|"+assiGol+"&chs=1000x300"+grigliaGol+coloriLinee+valoriGol+"'>Apri in una nuova finestra</A>")
	}

	//questa è la parte dell'output per l'andamento basato sulla Media Inglese
	if(RiempiListaIncontri(giornataRecente,cComp)[conta-1].IDTipo!=INC_GRANPREMIO){
		document.write("<h2 class='titletext'>Andamento della Media Inglese</h2>")
		document.write("<img border=none width="+(larghezza)+" height="+(altezza)+"  src='"+URL+minMaxMI+assiLabel+assiGiornata+"|"+assiMI+dim+grigliaMI+coloriLinee+valoriMI+"'></img>")
		
				//questa è la parte dell'output per la legenda
	if(RiempiListaIncontri(giornataRecente,cComp)[conta-1].IDTipo!=INC_GRANPREMIO){
		document.write("<img border=none width="+(larghezza)+" height=36 src='"+URL+"&chs="+larghezza+"x36"+coloriLinee+valoriLeg+"'></img>")
	}
		
		document.write("<BR><A target='_blank' href='"+URL+minMaxMI+assiLabel+assiGiornata+"|"+assiMI+dim2+grigliaMI+coloriLinee+valoriMI+"'>Apri in una nuova finestra</A>")
	}
}
catch(err){}
}