// Scritto da Jacopo Esano[MSS] Feb. 2002 

totali = new Array ()
liv_esa = new Array (
"Akuma[Lw]",3,
"Ataru&Slumper[MSS]",43,
"BluFlame",5,
"El_Barto[MSS]",1,
"Ela(W)"	,1,
"Em@[MSS]",	1,
"Fano" , 11,
"Guru[MSS]",	1,
"IlBuonZeph[MSS]",47,
"Killex[MSS]", 11,
"Krusty&Hidro[MSS]", 18,
"L'Angelo[MSS]", 5,
"LiLiTh(W)",31,
"Mack3(W)",	11,
"Mankk[MSS]",	22,
"Navar",1,
"Oz[MSS]",	32,
"Play_more",5,
"Pippobaudo[MSS]" ,	1,
"Ruz(W)",31,
"Scissor"	,2,
"Sephiroth(W)",30,
"Shirokishi(W)", 19,
"Squarta[MSS]",	5,
"Tassadar(SN)",	1,
"The(W)Sheriff", 9,
"Tony[MSS]", 5,
"ZioEnzo(W)",	21
)

liv_facile = new Array (
"Castore",46,
"Squarta",45,
"Gipsy",41,
"Em@",34,
"Pacciani",29,
"thekismet",26,
"Mulligano",25,
"Gian",21, "Polluce",21,
"Senziente",15,
"IlCapitano",11, "Jorian",11,
"Fed",9,
"Sfigoboy",6 ,
"Hariseldon",5,
"Obiuan",5
)

liv_medio = new Array (
"Squarta",60, "BlueMarlin", 60,
"Polluce", 56,
"KingBlades", 51,
"Castore",50, "Senziente",50, "Pietra", 50,
"Spettro", 39,
"El_Barto", 37,
"Zacat", 36,
"Hariseldon", 34,
"Pillgrimo", 32,
"Ert@i",31, "Em@", 31,
"Armage",14,"IlCapitano", 14,
"M@xmius",7, "Gange", 7,
"Haug",6,"Gippo", 06)

liv_difficile = new Array ("Castore",45,
"Gipsy",38,
"IlBuonZeph",38,
"Slumper con Ataru",31,
"Krusty",26,
"Armage",23,"Esano",24,
"Ert@i",19,
"Hidro (Shemo)",16,
"jimmy",15,
"Bax",20,
"Oz",12,
"Polluce",7,
"Shiva_GF",8,
"Hariseldon",4,
"L'Angelo",4,
"Zurban",1,
"Squarta",1,
"Enola-Gay",1,"El_Barto",1)

autori_esa = new Array ("nome",
'<a href="mailto:jacapaz@tiscali.it">Esano[MSS]</a>',
'<a href="mailto:jacapaz@tiscali.it">Esano[MSS]</a>',
'<a href="mailto:jacapaz@tiscali.it">Esano[MSS]</a>',
'<a href="mailto:jacapaz@tiscali.it">Esano[MSS]</a>',
'<a href="mailto:zeph@email.it">IlBuonZeph[MSS]</a>',
'<a href="mailto:jacapaz@tiscali.it">Esano[MSS]</a>',
'<a href="mailto:jacapaz@tiscali.it">Esano[MSS]</a>',
'<a href="mailto:jacapaz@tiscali.it">Esano[MSS]</a>',
'<a href="mailto:fambrg85@virgilio.it">LiLiTh(W)</a>',
'<a href="mailto:jacapaz@tiscali.it">Esano[MSS]</a>'
)

autori = new Array ("nome",
'<a href="mailto:maggix@schannel.zzn.com">Maggix</a>',
'<a href="mailto:man.raf@tin.it">Pker868</a>',
'<a href="mailto:maggix@schannel.zzn.com">Maggix</a>',
'<a href="mailto:man.raf@tin.it">Pker868</a>',
'<a href="mailto:maggix@schannel.zzn.com">Maggix</a>',
'<a href="mailto:man.raf@tin.it">Pker868</a>',
'<a href="mailto:man.raf@tin.it">Pker868</a>',
'<a href="mailto:man.raf@tin.it">Pker868</a>',
'<a href="mailto:man.raf@tin.it">Pker868</a>',
'<a href="mailto:man.raf@tin.it">Pker868</a>')

soluzioni = new Array ("Soluzioni",
                       "Questo Quiz non è stato creato da noi,\n contatta l'autore per informazioni",
                       "Questo Quiz non è stato creato da noi,\n contatta l'autore per informazioni", 
                       "Questo Quiz non è stato creato da noi,\n contatta l'autore per informazioni",
					   "Questo Quiz non è stato creato da noi,\n contatta l'autore per informazioni",
					   "Questo Quiz non è stato creato da noi,\n contatta l'autore per informazioni",
                       "Questo Quiz non è stato creato da noi,\n contatta l'autore per informazioni",
                       "Questo Quiz non è stato creato da noi,\n contatta l'autore per informazioni",
                       "Questo Quiz non è stato creato da noi,\n contatta l'autore per informazioni",
					   "Questo Quiz non è stato creato da noi,\n contatta l'autore per informazioni",
					   "Non fare il furbo! La saluzione sarà pubblicata domenica prossima")

var lastquiz=10
var ind=0
hexstr = '0123456789ABCDEF'

function dectohex(x) {
  s = ''
  x1 = hexstr.charAt(Math.floor(x/16))
  x2 = hexstr.charAt(x % 16)
  s = s + x1 + x2
return s
}

var data_size=2
var off_set=1
	function Quicksort(vec, loBound, hiBound)
	/**************************************************************
	sorting sugli elementi pari di un array
		This function adapted from the algorithm given in:
			Data Abstractions & Structures Using C++, by
			Mark Headington and David Riley, pg. 586.

		Quicksort is the fastest array sorting routine for
		unordered arrays.  Its big O is n log n.
	 **************************************************************/
	{	var pivot, loSwap, hiSwap, temp, pivot_data;
		// Two items to sort
		if (hiBound - loBound == data_size)
		{	if (vec[loBound+off_set] > vec[hiBound+off_set])
			{	for (i = 0; i < data_size; i++)
			    {   temp = vec[loBound+i];
				    vec[loBound+i] = vec[hiBound+i];
				    vec[hiBound+i] = temp;
				}				
			}
			return;
		}

		// Three or more items to sort
		
		pivot = vec[2*parseInt((loBound + hiBound) / 4)+off_set];
		vec[2*parseInt((loBound + hiBound) / 4)+off_set] = vec[off_set+loBound];
		vec[off_set+loBound] = pivot;
		
		pivot_data = vec[2*parseInt((loBound + hiBound) / 4)];
		vec[2*parseInt((loBound + hiBound) / 4)] = vec[loBound];
		vec[loBound] = pivot_data;
		
		
		loSwap = loBound + data_size;
		hiSwap = hiBound;

		do {
			// Find the right loSwap
			while (loSwap <= hiSwap && vec[off_set+loSwap] <= pivot)
				loSwap=loSwap+data_size;
			// Find the right hiSwap
			while (vec[off_set+hiSwap] > pivot)
				hiSwap=hiSwap-data_size;
			// Swap values if loSwap is less than hiSwap
			if (loSwap < hiSwap)
			{   for (i = 0; i < data_size; i++)
			    {  temp = vec[loSwap+i];
				   vec[loSwap+i] = vec[hiSwap+i];
				   vec[hiSwap+i] = temp;
				}
			}
		} while (loSwap < hiSwap);
		vec[loBound+off_set] = vec[hiSwap+off_set];
		vec[hiSwap+off_set] = pivot;
		
		vec[loBound] = vec[hiSwap];
		vec[hiSwap] = pivot_data;

		// Recursively call function...  the beauty of quicksort
		// 2 or more items in first section		
		if (loBound < (hiSwap - data_size))
			Quicksort(vec,  loBound, hiSwap - data_size);
		// 2 or more items in second section
		if ((hiSwap + data_size) < hiBound)
			Quicksort(vec,  hiSwap+data_size, hiBound);
	}


function contagruppivec (vec)
{var ind=0;lastpunti=0
 var gruppi=0; punti=0
 for (ind = 0; ind <vec.length ; ind=ind+2)
   {punti = vec[ind+1]
    if (lastpunti!=punti) gruppi++
    lastpunti=punti
   }
   gruppi++
return gruppi
}

function add_array (arr_sorg,arr_dest)
{var ind_sorg,ind_dest;
for (ind_sorg = 0; ind_sorg <(arr_sorg.length) ; ind_sorg=ind_sorg+2)
    {
	 for (ind_dest = 0; ind_dest <arr_dest.length ; ind_dest=ind_dest+2)
	   { if (arr_sorg[ind_sorg]==arr_dest[ind_dest])                              
	        {arr_dest[ind_dest+1]=arr_sorg[ind_sorg+1]+arr_dest[ind_dest+1];
			 break;
			}
	   }
	   if (ind_dest>=arr_dest.length) 
	      {arr_dest[ind_dest]=arr_sorg[ind_sorg] 
		   arr_dest[ind_dest+1]=arr_sorg[ind_sorg+1]	
		  } 
	}
} //end function add_array

function print_sol (quiz_id)
{ 
if (confirm("Sei sicuro di voler vedere la soluzione?\n      Ripensaci, non ti rovinare il divertimento!!"))
 {alert("            Soluzione Quiz num. " + quiz_id +"\n  "+ soluzioni[quiz_id])};

}

function fill_table (vec)
{
<!-- Jacopo/Esano 04/02/2002 -->		
var lastpunti=0; var colore=1
var coloresfondo=0 
var posizione=1, conta=0
var delta= Math.round (256/contagruppivec(vec))
//Quicksort (vec,0,vec.length-2)
lastpunti=vec[vec.length-1]
for (ind = (vec.length-2); ind >= 0 ; ind=ind-2)
  {nomegioc= vec[ind]
   punti   = vec[ind+1]
   conta++
   if (lastpunti!=punti) // nuovo scaglione,cambio colore
      {colore= -1*colore;
       coloresfondo=coloresfondo+delta
	   posizione=conta
      }
   document.write ("<tr bgcolor=#",dectohex(coloresfondo),dectohex(255-coloresfondo),"00>")
 if (colore==1)
   document.write ('<td class="centro_bold"><font color="#000000"><i>')
 else
   document.write ('<td class="centro_bold"><font color="#0000AA"><i>')
 document.write (posizione,'°</i></font></td>')
  if (colore==1)
     document.write ('<td><font color="#000000">')
  else
     document.write ('<td><font color="#0000AA">')
  document.write ("<B>",nomegioc,'</b></font></td>')
  if (colore==1)
     document.write ('<td class="centro_bold"><font color="#000000">')
  else
     document.write ('<td class="centro_bold"><font color="#0000AA">')
  document.write  (punti,'</font></td></tr>') 
  lastpunti=punti
   }
}


