// JavaScript Document

// Classe descrittore dell'oggetto Palla, gestisce la creazione e le coordinate della palla, ed il posizionamento dell'immagine associata
function Palla( tipo )
{
	// Imposta la coordinata x della palla e sposta l'immagine associata
	this.setX = function(x)
	{
		this.x = x;
		this.ref.style.left = (x - RAGGIO) + "px";
	}

	// Imposta la coordinata y della palla e sposta l'immagine associata
	this.setY = function(y)
	{
		this.y = y;
		this.ref.style.top = (y - RAGGIO) + "px";
	}
	
	// Estrae un colore a caso tra quelli presenti nel vettore COLORI ed associa la GIF corrispondente
	this.estraiColore = function()
	{
		this.colore = getNumeroRandom( COLORI.length - 1);
		this.ref.src = "images/" + COLORI[this.colore] + ".gif";
	}
	
	// Costruttore

	this.ref = document.createElement("img"); // Creazione dell'oggetto HTML IMG
	this.estraiColore(); // Assegnamento colore casuale

    if ( tipo == PALLA_PIOGGIA ) // Se la palla è per la pioggia
	{
		this.y = -RAGGIO; // Posiziona la palla sopra il campo di gioco
		do
		{
			this.x = getNumeroRandom(LARGHEZZA_GIOCO-2*RAGGIO) + RAGGIO; // Assegna la x in modo che non collida subito con altre palle
		} while ( collide(this) ); // Ripete finchè continua a collidere con altre
		this.vx = 0; // Imposta la velocità orizzontale iniziale
		this.vy = 2; // Imposta la velocità verticale iniziale
		if ( palle.length == 0 )
		{
			do
			{
				this.estraiColore();
			} while ( this.colore ==  prossimaPalla.colore )
		}
		this.ref.className = "pallaPioggia"; // Imposta la classe di stile
	}
	else // Se la palla è un proiettile
	{
		// Posiziona il proiettile nel caricatore e azzera la velocità
		this.x = POSIZIONE_CARICATORE_X;
		this.y = POSIZIONE_CARICATORE_Y;
		this.vx = 0;
		this.vy = 0;

		this.ref.className = "pallaProiettile"; // Imposta la classe di stile
		//divCaricatore.appendChild(this.ref); // Inserisce l'oggetto IMG nel DIV del caricatore
	}

	// Riflette le impostazioni sull'oggetto IMG
	this.setX(this.x);
	this.setY(this.y);
	
	if ( tipo == PALLA_PIOGGIA )
		divGioco.appendChild(this.ref); // Inserisce l'oggetto IMG nel DIV del gioco
	//this.ref.style.display = "block";   // visualizza la palla

}