﻿// Ustawienia
/*
Znak = Czy zostało już zaznaczone jakieś pole (true - tak, false - nie)
Obiekt1 = odnośnik do pierwszego zaznaczonego pola
Obiekt2 = odnośnik do drugiego zaznaczonego pola
Lacznie = ilość pól która ma zostać wyświetlona
Ruchow = ile łącznie ruchów wykonał użytkownik (ile par odkrył)
*/
// Settings
/*
Znak = Is the filed was clicked (true - yes, false - no)
Obiekt1 = reference to first checked field
Obiekt2 = reference to secound checked field
Lacznie = number of field to become show
Ruchow = how many moves has user done
*/
var znak = false;
var obiekt1;
var obiekt2;
var lacznie = pol * pol;
var ruchow = 0;

/// Funkcje sterujące
/// Control function
// Na kliknięcie myszki na pole
// On mouse down to field
MyszDol = function(sender, mouseEventArgs)
{
    // Jeżeli zaznaczono drugie pole
    // If the secound filed was clicked
	if(znak)
	{
	    // Podstawienie pod obiekt2 adresu pola klikniętego
	    // Put the reference to second filed
		obiekt2 = sender.Name;

        // Jeżeli użytkownik kliknął w to samo pole - nic nie rób
        // If the user click the same field - do nothing
        // jeżeli klinkął w inne pole:
        // if he click other field
		if(obiekt1 != obiekt2)
		{
		    // Zwiększa ilość ruchów
		    // Increacse number of moves
			ruchow++;
			//Uruchom animacje dla drugiego pola i przekazanie dla zmiennej znak wartości false
			// Start the animation for second field and set the "znak" to false
			Animacja('anima2', sender, false);
			// Sprawdza czy pola z obiekt1 i obiekt2 mają te same obrazki
			// Check if the obiekt1 and obiekt2 is the same
			SprawdzCzySieZgadza(sender);
		}
			
	}
	// Jeżeli zaznaczono pierwsze pole
	// If first field was clicked
	else
	{
	    // Uruchomienie animacji dla pierwszego pola i przekazanie dla zmiennej znak wartości true
	    // Start the animation for secound field and set the "znak" to true
		Animacja('anima', sender, true);
		// Podstawienie pod obiekt1 adresu pola klikniętego
		// Put the reference to secound filed
		obiekt1 = sender.Name;
		
		// Nowa para więc trzeba wyczyścić animacje drugą
		// New pair then clear the animaction
		sender.findName("anima2").stop();
	}
}
// Sprawdza czy pola z obiekt1 i obiekt2 mają te same obrazki
SprawdzCzySieZgadza = function(aa)
{
    // pobranie treści z obiektów 1 i 2
	var trescA = aa.findName('tresc' + obiekt1.replace('Zaslepka', ''));
	var trescB = aa.findName('tresc' + obiekt2.replace('Zaslepka', ''));

    // Sprawdzenie czy pola mają takie same obrazki
    // przy schemacie obrazka 'img/Ikony/02.jpg'
	if(trescA.Source.replace('img/Ikony/','').replace('.jpg','') == trescB.Source.replace('img/Ikony/','').replace('.jpg',''))
		ZatwierdzPola(aa, trescA.Name, trescB.Name);
}
// Ukrycie zaślepkek z obiektów
// Haid curtain and field
ZatwierdzPola = function(aa, trescA, trescB)
{
    // Ukrycie zaślepiek pól
    // Hide curtain
	aa.findName(obiekt1).Visibility = 'Collapsed';
	aa.findName(obiekt2).Visibility = 'Collapsed';
	
	// Ukrycie pól w celu pokazania obrazka z tyłu
	// Hide field and show the picture becgraound
	aa.findName(trescA).Visibility = 'Collapsed';
    aa.findName(trescB).Visibility = 'Collapsed';
	
	// Zmniejszenie ilości wszystkich pól o 2 ukryte pola
	// Reduction the numer of all fields
	lacznie = lacznie - 2;
	// Jeżeli odkryto już wszystkie pola pokazuje wynik
	// If all the fields was uncover show the results
	if(lacznie==0)
	{
	    document.getElementById("Wyniki").className = 'progressPanel';
	    document.getElementById("Wyniki").innerHTML = "<img src=\"img/brawo.gif\" alt=\"Brawo\" align=\"left\"  />To jest już koniec<br />Wykonano "+ruchow+" ruchów<br /><br />The end<br />You make a "+ruchow+" moves";
	}
}
// Animacja dla odkrywania pól
// Animaction for uncover field
Animacja = function(ktora, cel, znakk)
{
	var aa = cel.findName(ktora);
	aa.stop();
	aa["Storyboard.TargetName"] = cel.Name;
	aa.begin();
	
	znak = znakk;
}