// JavaScript Document
function ProveraPoteza()
{
	this.pokazivacNaNizFen = 0;//pokazuje koji je fen trenutno na tabli
	this.nemaulistisledecihpoteza = false;
	this.nizfenova = new Array();
	this.listapoteza = new Array();
	this.promocijautoku = false;
	this.FEN = "tsldklst/pppppppp/8/8/8/8/PPPPPPPP/TSLDKLST w KDkd - 0 1";
	this.nizfenova[0] = this.FEN;
	this.m_cPozicija = new Array(144);
	for (i = 0; i<144;i++)
      this.m_cPozicija[i] = 'o';
    this.m_cPozicija[26] = 'T';
    this.m_cPozicija[27] = 'S';
    this.m_cPozicija[28] = 'L';
    this.m_cPozicija[29] = 'D';
    this.m_cPozicija[30] = 'K';
    this.m_cPozicija[31] = 'L';
    this.m_cPozicija[32] = 'S';
    this.m_cPozicija[33] = 'T';

    for (i = 38; i<46;i++)
      this.m_cPozicija[i] = 'P';

    for (i = 50; i<58;i++)
      this.m_cPozicija[i] = 'x';

    for (i = 62; i<70;i++)
      this.m_cPozicija[i] = 'x';

    for (i = 74; i<82;i++)
      this.m_cPozicija[i] = 'x';

    for (i = 86; i<94;i++)
      this.m_cPozicija[i] = 'x';

    for (i = 98; i<106;i++)
      this.m_cPozicija[i] = 'p';

    this.m_cPozicija[110] = 't';
    this.m_cPozicija[111] = 's';
    this.m_cPozicija[112] = 'l';
    this.m_cPozicija[113] = 'd';
    this.m_cPozicija[114] = 'k';
    this.m_cPozicija[115] = 'l';
    this.m_cPozicija[116] = 's';
    this.m_cPozicija[117] = 't';
	
	this.m_kretanje_konja = new Array(14, -14, 23, -23, 25, -25, 10, -10);
 	this.m_kretanje_lovca = new Array(11, -11, 13, -13);
  	this.m_kretanje_topa = new Array(12, -12, 1, -1);
  	this.m_kretanje_dame = new Array(11, -11, 13, -13, 12, -12, 1, -1);//isto i za kralja
	
	this.KraljUSahu = KraljUSahu;
	this.KreirajFen = KreirajFen;
	this.PotezPesakom = PotezPesakom;
	this.PretvoriPoljeUBroj = PretvoriPoljeUBroj;
	this.PretvoriBrojUPolje = PretvoriBrojUPolje;
	this.isValid = isValid;
	this.ObradiPotez = ObradiPotez;
	this.PotezKonjem = PotezKonjem;
	this.PotezLovcem = PotezLovcem;
	this.PotezTopom = PotezTopom;
	this.PotezDamom = PotezDamom;
	this.ResiAnPasan = ResiAnPasan;
	this.ResiPromociju = ResiPromociju;
	this.PotezKraljem = PotezKraljem;
	this.ResiRokadu = ResiRokadu;
	this.UbaciUListuPoteza = UbaciUListuPoteza;
	this.StartujAjax = StartujAjax;
	this.IsNumeric = IsNumeric;
	this.kreirajPozicijuNaOsnovuFena = kreirajPozicijuNaOsnovuFena;
	this.ocistiNizFenova = ocistiNizFenova;
	this.ocistiListuPoteza = ocistiListuPoteza;
}

function StartujAjax(figura, polje,drugoslovo)
{
	if (kliknapamtipoziciju)
		return;
	var potez = this.PretvoriBrojUPolje(polje);
	if (drugoslovo!='')
		potez=drugoslovo+potez;
	var tabla = document.getElementById("unosubazu");
	var vrste = tabla.getElementsByTagName("tr");
	var strZauporedbu = figura + ".gif";
	var naso = false;
	if(polje == 1000)
		strZauporedbu = 'O-O';
	if (polje == 10000)
		strZauporedbu = 'O-O-O';
	for (i=3;i<vrste.length;i=i+3)
	{
		var kolona = vrste[i].getElementsByTagName("td");
		if ((polje==1000 && kolona[0].innerHTML.indexOf(strZauporedbu) != -1) || (polje==10000 && kolona[0].innerHTML.indexOf(strZauporedbu) != -1))
		{
			naso = true;
			break;
		}
		if (figura != '')
		{
			if (kolona[0].innerHTML.indexOf(potez) != -1 && kolona[0].innerHTML.indexOf(strZauporedbu) != -1)
			{
				naso = true;
				break;
			}
		}
		else
		{
			if (kolona[0].innerHTML.indexOf(potez) != -1 && kolona[0].innerHTML.indexOf(".gif") == -1)
			{
				naso = true;
				break;
			}
		}
	}
	if (naso)
	{
		if (kolona[0].innerHTML.indexOf("href") != -1)
		{
			var ind = kolona[0].innerHTML.indexOf("Start(");
			var idfena = kolona[0].innerHTML.substring(ind+6, kolona[0].innerHTML.indexOf(',', ind+6));
			Start(parseInt(idfena), 1, '');
		}
		else
		{
			var ind=kolona[1].innerHTML.indexOf("partija.php");
			var idpartije = kolona[1].innerHTML.substring(ind+15, kolona[1].innerHTML.indexOf('\"', ind+15));
			location.href = "partija.php?id="+idpartije;			
		}
	}
	else
	{
		this.nemaulistisledecihpoteza = true;
	}
}

function UbaciUListuPoteza(figura, polje, nosi, poc_polje)
{
	
	var strPolje = this.PretvoriBrojUPolje(polje);
	var strPocPolje = this.PretvoriBrojUPolje(poc_polje);
	( nosi ) ? x = 'x' : x='';
	var prvoSlovo = figura;
	if ( figura == '' && nosi) 
		prvoSlovo = strPocPolje.substring(0, 1);
	var strZaUnos = prvoSlovo + x + strPolje;
	this.listapoteza.push(strZaUnos);
	//alert(figura + " " + strPolje + " " + nosi + " " + poc_polje);
	/*if (figura.length == 2)
	{
		drugoslovo=figura.substring(1, 2);
		figura=figura.substring(0, 1);
	}
	else
		drugoslovo='';
	if (citajpotez.pot.length == 4 && drugoslovo=='')
		dod = citajpotez.pot.substring(1, 2);
	else
		dod = '';
	if (nosi) x = 'x';
	else x='';
	var FEN = this.FEN.split(" ");
	var fennapotezu = FEN[1];
	var fenpotez = FEN[5];
	if (poc_polje == 1000 || poc_polje == 10000)
		this.StartujAjax(figura, poc_polje,'');
	else
		this.StartujAjax(figura, polje,drugoslovo);
			
	if (figura != '') 
		figura = "<img src=images/"+figura+".gif border=0 width=14 height=14>"
	else
	{
		if(nosi)
		{
			figura = this.PretvoriBrojUPolje(poc_polje).substring(0, 1);
			x='';
		}
	}
	var str = figura + drugoslovo+dod + x + this.PretvoriBrojUPolje(polje);
	if (poc_polje == 1000)
		str = "0-0";
	if (poc_polje == 10000)
		str = "0-0-0";
	this.listapoteza.push(str);
	if (fennapotezu == 'b')
		str = parseInt(fenpotez) + ". " + "<a href='javascript:KlikNaListuPoteza("+this.listapoteza.length +")'>"+str+"</a>";
	else
		str = " "+"<a href='javascript:KlikNaListuPoteza("+this.listapoteza.length +")'>"+str+"</a>";
	var lejer = document.getElementById("listapoteza");
	lejer.style.visibility = 'visible';
	lejer.innerHTML = lejer.innerHTML + str + " ";*/
}

function ResiRokadu(mala, velika, polje, nije_okrenuta_tabla)
{
	/*alert(polje);
	i = (polje - 26) %12 + 1;
	j = (7 - (polje - 26 - i + 1)/12) + 1;
	alert(i+" "+j);*/
	
	var FEN = this.FEN.split(" ");
	var fennapotezu = FEN[1];
	var index;
	var tabla = document.getElementById("tabla");
	var vrste = tabla.getElementsByTagName("tr");
	
	if (mala)
	{
		if ( nije_okrenuta_tabla && fennapotezu == "w")
		{
			var kolona = vrste[8].getElementsByTagName("td");
			kolona[6].innerHTML = kolona[8].innerHTML;
			kolona[8].innerHTML = "&nbsp;";
		}
		
		if ( nije_okrenuta_tabla && fennapotezu == "b")
		{
			var kolona = vrste[1].getElementsByTagName("td");
			kolona[6].innerHTML = kolona[8].innerHTML;
			kolona[8].innerHTML = "&nbsp;";
		}
		if ( !nije_okrenuta_tabla && fennapotezu == "w")
		{
			var kolona = vrste[1].getElementsByTagName("td");
			kolona[3].innerHTML = kolona[1].innerHTML;
			kolona[1].innerHTML = "&nbsp;";
		}
		
		if ( !nije_okrenuta_tabla && fennapotezu == "b")
		{
			var kolona = vrste[8].getElementsByTagName("td");
			kolona[3].innerHTML = kolona[1].innerHTML;
			kolona[1].innerHTML = "&nbsp;";
		}
		this.listapoteza.push("O-O");
		return 1000;
	}
	if (velika)
	{
		if ( nije_okrenuta_tabla && fennapotezu == "w")
		{
			var kolona = vrste[8].getElementsByTagName("td");
			kolona[4].innerHTML = kolona[1].innerHTML;
			kolona[1].innerHTML = "&nbsp;";
		}
		
		if ( nije_okrenuta_tabla && fennapotezu == "b")
		{
			var kolona = vrste[1].getElementsByTagName("td");
			kolona[4].innerHTML = kolona[1].innerHTML;
			kolona[1].innerHTML = "&nbsp;";
		}
		if ( !nije_okrenuta_tabla && fennapotezu == "w")
		{
			var kolona = vrste[1].getElementsByTagName("td");
			kolona[5].innerHTML = kolona[8].innerHTML;
			kolona[8].innerHTML = "&nbsp;";
		}
		
		if ( !nije_okrenuta_tabla && fennapotezu == "b")
		{
			var kolona = vrste[8].getElementsByTagName("td");
			kolona[5].innerHTML = kolona[8].innerHTML;
			kolona[8].innerHTML = "&nbsp;";
		}
		this.listapoteza.push("O-O-O");	
		return 10000;
	}
}

function ResiPromociju(polje, dolazak, boja)
{
	//document.write("<div id=promocija></div>");
	if (dolazak == 1)
	{
		if (boja == 0)
		{
			document.getElementById("promocija").innerHTML = "Choose Figure:<br><img src='images/wq.gif' width='40' height='40' onClick=provera.ResiPromociju("+polje+",'D',"+boja+");><img src='images/wr.gif' width='40' height='40' onClick=provera.ResiPromociju("+polje+",'T',"+boja+");><img src='images/wb.gif' width='40' height='40' onClick=provera.ResiPromociju("+polje+",'L',"+boja+");><img src='images/wn.gif' width='40' height='40' onClick=provera.ResiPromociju("+polje+",'S',"+boja+");>";
		}
		else
		{
			document.getElementById("promocija").innerHTML = "Choose Figure:<br><img src='images/bq.gif' width='40' height='40' onClick=provera.ResiPromociju("+polje+",'d',"+boja+");><img src='images/br.gif' width='40' height='40' onClick=provera.ResiPromociju("+polje+",'t',"+boja+");><img src='images/bb.gif' width='40' height='40' onClick=provera.ResiPromociju("+polje+",'l',"+boja+");><img src='images/bn.gif' width='40' height='40' onClick=provera.ResiPromociju("+polje+",'s',"+boja+");>";
		}
		document.getElementById('promocija').style.visibility = 'visible';
		this.promocijautoku = true;
		return;
	}
	figura = dolazak;
	switch(figura)
	{
		case 'D': figura = 'Q';
		break;
		case 'd': figura = 'q';
		break;
		case 'T': figura = 'R';
		break;
		case 't': figura = 'r';
		break;
		case 'L': figura = 'B';
		break;
		case 'S': figura = 'N';
		break;
		case 'l': figura = 'b';
		break;
		case 's': figura = 'n';
		break;
	}
	i = (polje - 26) %12;
	j = 7 - (polje - 26 - i)/12;
	var tabla = document.getElementById("tabla");
	var vrste = tabla.getElementsByTagName("tr");
	var kolona = vrste[j].getElementsByTagName("td");
	this.m_cPozicija[polje] = dolazak;
	if (boja == 0)
		kolona[i].innerHTML = "<img src='images/w"+figura.toLowerCase()+".gif'>";
	else
		kolona[i].innerHTML = "<img src='images/b"+figura+".gif'>";
	this.promocijautoku = false;
	document.getElementById('promocija').style.visibility = 'hidden';
	return dolazak;
}

function ResiAnPasan(polje)
{
	i = (polje - 26) % 12;
	j = 8 - (polje - 26 - i)/12;
	var tabla = document.getElementById("tabla");
	var vrste = tabla.getElementsByTagName("tr");
	var kolona = vrste[j].getElementsByTagName("td");
	kolona[i].innerHTML = "&nbsp;";
}

function ObradiPotez(pocpolje, krajnjepolje)
{
	var FEN = this.FEN.split(" ");
	var fennapotezu = FEN[1];
	
	this.ocistiListuPoteza();
	
	if (this.isValid(this.m_cPozicija[pocpolje], "mala") && fennapotezu=='b')//potez crnog
	{
		switch(this.m_cPozicija[pocpolje])
		{
			case 'p': return this.PotezPesakom(1, pocpolje, krajnjepolje);
			break;
			case 's': return this.PotezKonjem(1, pocpolje, krajnjepolje);
			break;
			case 'l': return this.PotezLovcem(1, pocpolje, krajnjepolje);
			break;
			case 't': return this.PotezTopom(1, pocpolje, krajnjepolje);
			break;
			case 'd': return this.PotezDamom(1, pocpolje, krajnjepolje);
			break;
			case 'k': return this.PotezKraljem(1, pocpolje, krajnjepolje);
			break;
		}
	}
	if (this.isValid(this.m_cPozicija[pocpolje], "velika") && fennapotezu=='w')//potez crnog
	{
		switch(this.m_cPozicija[pocpolje])
		{
			case 'P': return this.PotezPesakom(0, pocpolje, krajnjepolje);
			break;
			case 'S': return this.PotezKonjem(0, pocpolje, krajnjepolje);
			break;
			case 'L': return this.PotezLovcem(0, pocpolje, krajnjepolje);
			break;
			case 'T': return this.PotezTopom(0, pocpolje, krajnjepolje);
			break;
			case 'D': return this.PotezDamom(0, pocpolje, krajnjepolje);
			break;
			case 'K': return this.PotezKraljem(0, pocpolje, krajnjepolje);
			break;
		}
	}
	return false;
}

function isValid(parm,val)
{
	var lwr = 'dklpst';
	var upr = 'DKLPST';
	if (val == "mala")
		val = lwr;
	else
		val = upr;
	
	if (parm == "") return false;
 	for (i=0; i<parm.length; i++) 
  	{
		if (val.indexOf(parm.charAt(i),0) == -1) return false;
  	}
  	return true;
}
function KraljUSahu(bojakralja)//0 - beli kralj  1 - crni kralj
{
	if (bojakralja == 0)
	{
		kralj = 'K';
		pesak = 'p';
		konj = 's';
		lovac = 'l';
		top1 = 't';
		dama = 'd';
	}
	else
	{
		kralj = 'k';
		pesak = 'P';
		konj = 'S';
		lovac = 'L';
		top1 = 'T';
		dama = 'D';
	}
	//prvo nalazimo polozaj kralja
	for (i=0;i<144;i++)
	{
		if (this.m_cPozicija[i] == kralj)
		{
			pozkralja = i;
			break;
		}
	}
	//pesak
	if (bojakralja == 0)
	{
		if (this.m_cPozicija[pozkralja+11] == 'p' || this.m_cPozicija[pozkralja+13] == 'p')
			return true;
	}
	else
	{
		if (this.m_cPozicija[pozkralja-11] == 'P' || this.m_cPozicija[pozkralja-13] == 'P')
			return true;
	}
	//konj
	if (this.m_cPozicija[pozkralja+10] == konj || this.m_cPozicija[pozkralja+14] == konj || this.m_cPozicija[pozkralja+23] == konj || this.m_cPozicija[pozkralja+25] == konj || this.m_cPozicija[pozkralja-10] == konj || this.m_cPozicija[pozkralja-14] == konj || this.m_cPozicija[pozkralja-23] == konj || this.m_cPozicija[pozkralja-25] == konj)
			return true;
	//lovac i dama
	m = pozkralja;
	while (this.m_cPozicija[m] == kralj || this.m_cPozicija[m] == 'x')
	{
		m = m+11;
		if (this.m_cPozicija[m] == lovac || this.m_cPozicija[m] == dama)
			return true;
	}
	m = pozkralja;
	while (this.m_cPozicija[m] == kralj || this.m_cPozicija[m] == 'x')
	{
		m = m+13;
		if (this.m_cPozicija[m] == lovac || this.m_cPozicija[m] == dama)
			return true;
	}
	m = pozkralja;
	while (this.m_cPozicija[m] == kralj || this.m_cPozicija[m] == 'x')
	{
		m = m-11;
		if (this.m_cPozicija[m] == lovac || this.m_cPozicija[m] == dama)
			return true;
	}
	m = pozkralja;
	while (this.m_cPozicija[m] == kralj || this.m_cPozicija[m] == 'x')
	{
		m = m-13;
		if (this.m_cPozicija[m] == lovac || this.m_cPozicija[m] == dama)
			return true;
	}
	//top i dama
	m = pozkralja;
	while (this.m_cPozicija[m] == kralj || this.m_cPozicija[m] == 'x')
	{
		m = m+1;
		if (this.m_cPozicija[m] == top1 || this.m_cPozicija[m] == dama)
			return true;
	}
	m = pozkralja;
	while (this.m_cPozicija[m] == kralj || this.m_cPozicija[m] == 'x')
	{
		m = m-1;
		if (this.m_cPozicija[m] == top1 || this.m_cPozicija[m] == dama)
			return true;
	}
	m = pozkralja;
	while (this.m_cPozicija[m] == kralj || this.m_cPozicija[m] == 'x')
	{
		m = m+12;
		if (this.m_cPozicija[m] == top1 || this.m_cPozicija[m] == dama)
			return true;
	}
	m = pozkralja;
	while (this.m_cPozicija[m] == kralj || this.m_cPozicija[m] == 'x')
	{
		m = m-12;
		if (this.m_cPozicija[m] == top1 || this.m_cPozicija[m] == dama)
			return true;
	}
	return false;
}

function KreirajFen()
{
	var FEN = this.FEN.split(" ");
	var fenfigure = FEN[0];
	var fennapotezu = FEN[1];
	var fenrokada = FEN[2];
	var fenanpasan = FEN[3];
	var fenpravilo50 = FEN[4];
	var fenpotez = FEN[5];
	
	var pomstr = '';
	var brpraznihpolja = 0;
	mi = 110; ni = 118;
	for(j=0;j<8;j++)
	{
		for(i = mi;i<ni;i++)
		{
			if (this.m_cPozicija[i] == 'x')
				brpraznihpolja++;
			else
			{
				if (brpraznihpolja == 0)
				{
					pomstr = pomstr + this.m_cPozicija[i];
				}
				else
				{
					pomstr = pomstr + brpraznihpolja + this.m_cPozicija[i];
					brpraznihpolja = 0;
				}
			}
		}
		if (brpraznihpolja != 0)
		{
			pomstr = pomstr + brpraznihpolja;
			brpraznihpolja = 0;
		}
		if (j == 7)
			pomstr = pomstr;
		else
			pomstr = pomstr + '/';
		mi = mi - 12; ni = ni - 12;
	}
	fenfigure = pomstr;
	this.FEN = fenfigure+" "+fennapotezu+" "+fenrokada+" "+fenanpasan+" "+fenpravilo50+" "+fenpotez;
	this.ocistiNizFenova();
	this.nizfenova.push(this.FEN);
	this.pokazivacNaNizFen++;
}

function PretvoriPoljeUBroj(polje)
{
	var slovo = polje.charCodeAt(0) - 71;
	var broj = parseInt(polje.charAt(1));
	return (slovo+(broj-1)*12);
}

function PretvoriBrojUPolje(broj)
{
	var br = Math.floor(broj/12) -1;
	var slovo = String.fromCharCode(broj-(br-1)*12+71);
	return slovo+br;
}

function PotezPesakom(boja, pocetno_polje, krajnje_polje)//0 - beli kralj  1 - crni kralj
{
	if (this.m_cPozicija[krajnje_polje] != 'x')
		nosi = true;
	else
		nosi=false;
	var FEN = this.FEN.split(" ");
	var fenfigure = FEN[0];
	var fennapotezu = FEN[1];
	var fenrokada = FEN[2];
	var fenanpasan = FEN[3];
	var fenpravilo50 = FEN[4];
	var fenpotez = FEN[5];
		
	if (boja == 0)//beli
	{
		var uslov1 = pocetno_polje + 12 == krajnje_polje && this.m_cPozicija[krajnje_polje] == 'x';//normalan potez
		var uslov2 = pocetno_polje + 24 == krajnje_polje && this.m_cPozicija[krajnje_polje] == 'x' && this.m_cPozicija[krajnje_polje - 12] == 'x' && 37<pocetno_polje && pocetno_polje<46;//potez sa pocetne linije
		var uslov3 = pocetno_polje + 11 == krajnje_polje && this.m_cPozicija[pocetno_polje + 11] != 'x' && this.isValid(this.m_cPozicija[pocetno_polje + 11], "mala");//nosi na levo
		var uslov4 = pocetno_polje + 13 == krajnje_polje && this.m_cPozicija[pocetno_polje + 13] != 'x' && this.isValid(this.m_cPozicija[pocetno_polje + 13], "mala");//nosi na desno
		var uslov5 = this.PretvoriBrojUPolje(krajnje_polje) == fenanpasan && (krajnje_polje == pocetno_polje + 13 || krajnje_polje == pocetno_polje + 11);//anpasan
		
		var uslov7 = uslov3 || uslov4;//nosi pesak
		var uslov8 = 109<krajnje_polje && krajnje_polje<118;//promocija

		if(uslov1 || uslov2 || uslov7 || uslov5)//normalan potez
		{
			this.m_cPozicija[pocetno_polje] = 'x';
			this.m_cPozicija[krajnje_polje] = 'P';
			if (uslov5) 
			{
				this.m_cPozicija[krajnje_polje -12] = 'x';
			}
			if(this.KraljUSahu(0))
			{
				this.m_cPozicija[pocetno_polje] = 'P';
				this.m_cPozicija[krajnje_polje] = 'x';
				if (uslov5)
				{
					this.m_cPozicija[krajnje_polje -12] = 'p';
				}
				return false;
			}
			if (uslov5) 
			{
				this.ResiAnPasan(krajnje_polje - 11);
				nosi = true;
			}
			if (uslov8)
			{
				this.ResiPromociju(krajnje_polje, 1, 0);
			}
			fenpravilo50 = 0;
			fennapotezu = 'b';
			fenanpasan = '-';
			if (uslov2) fenanpasan = this.PretvoriBrojUPolje(krajnje_polje-12);
			this.FEN = fenfigure+" "+fennapotezu+" "+fenrokada+" "+fenanpasan+" "+fenpravilo50+" "+fenpotez;
			this.UbaciUListuPoteza('', krajnje_polje, nosi, pocetno_polje);
			this.KreirajFen();
			return true;
		}
	}
	else
	{
		var uslov1 = pocetno_polje - 12 == krajnje_polje && this.m_cPozicija[krajnje_polje] == 'x';//normalan potez
		var uslov2 = pocetno_polje - 24 == krajnje_polje && this.m_cPozicija[krajnje_polje] == 'x' && this.m_cPozicija[krajnje_polje + 12] == 'x' && 97<pocetno_polje && pocetno_polje<106;//potez sa pocetne linije
		var uslov3 = pocetno_polje - 11 == krajnje_polje && this.m_cPozicija[pocetno_polje - 11] != 'x' && this.isValid(this.m_cPozicija[pocetno_polje - 11], "velika");//nosi na levo
		var uslov4 = pocetno_polje - 13 == krajnje_polje && this.m_cPozicija[pocetno_polje - 13] != 'x' && this.isValid(this.m_cPozicija[pocetno_polje - 13], "velika");//nosi na desno
		var uslov5 = this.PretvoriBrojUPolje(krajnje_polje) == fenanpasan && (krajnje_polje == pocetno_polje - 13 || krajnje_polje == pocetno_polje - 11);//anpasan
		
		var uslov7 = uslov3 || uslov4;//nosi pesak
		var uslov8 = 25<krajnje_polje && krajnje_polje<34;//promocija

		if(uslov1 || uslov2 || uslov7 || uslov5)//normalan potez
		{
			this.m_cPozicija[pocetno_polje] = 'x';
			this.m_cPozicija[krajnje_polje] = 'p';
			if (uslov5) this.m_cPozicija[krajnje_polje +12] = 'x';
			if(this.KraljUSahu(1))
			{
				this.m_cPozicija[pocetno_polje] = 'p';
				this.m_cPozicija[krajnje_polje] = 'x';
				if (uslov5) this.m_cPozicija[krajnje_polje +12] = 'P';
				return false;
			}
			if (uslov5) 
			{
				this.ResiAnPasan(krajnje_polje +13); 
				nosi = true;
			}
			if (uslov8)
			{
				this.ResiPromociju(krajnje_polje, 1, 1);
			}
			fenpravilo50 = 0;
			fennapotezu = 'w';
			fenanpasan = '-';
			fenpotez = parseInt(fenpotez)+1;
			if (uslov2) fenanpasan = this.PretvoriBrojUPolje(krajnje_polje+12);
			this.FEN = fenfigure+" "+fennapotezu+" "+fenrokada+" "+fenanpasan+" "+fenpravilo50+" "+fenpotez;
			this.UbaciUListuPoteza('', krajnje_polje, nosi, pocetno_polje);
			this.KreirajFen();
			return true;
		}
	}
	return false;
}

function PotezKonjem(boja, pocetno_polje, krajnje_polje)//0 - beli kralj  1 - crni kralj
{
	if (this.m_cPozicija[krajnje_polje] != 'x')
		nosi = true;
	else
		nosi=false;
	var FEN = this.FEN.split(" ");
	var fenfigure = FEN[0];
	var fennapotezu = FEN[1];
	var fenrokada = FEN[2];
	var fenanpasan = FEN[3];
	var fenpravilo50 = FEN[4];
	var fenpotez = FEN[5];
	
	var uslov1 = (pocetno_polje+14==krajnje_polje) || (pocetno_polje-14==krajnje_polje) || (pocetno_polje-10==krajnje_polje) || (pocetno_polje+23==krajnje_polje) || (pocetno_polje-23==krajnje_polje) || (pocetno_polje+25==krajnje_polje) || (pocetno_polje-25==krajnje_polje) || (pocetno_polje+10==krajnje_polje);
	if (boja == 0)
	{
		var uslov3 = this.isValid(this.m_cPozicija[krajnje_polje], "mala")
	}
	else
	{
		var uslov3 = this.isValid(this.m_cPozicija[krajnje_polje], "velika")
	}
	
	var uslov2 = this.m_cPozicija[krajnje_polje] == 'x' || uslov3;
	if (uslov2 && uslov1)
	{
		this.m_cPozicija[krajnje_polje] = this.m_cPozicija[pocetno_polje];
		this.m_cPozicija[pocetno_polje] = 'x';
		if(this.KraljUSahu(boja))
		{
			this.m_cPozicija[pocetno_polje] = this.m_cPozicija[krajnje_polje];
			this.m_cPozicija[krajnje_polje] = 'x';
			return false;
		}
		if (boja == 1)
		{
			fenpotez = parseInt(fenpotez)+1;
			fennapotezu = 'w';
			var uslov4=(this.m_cPozicija[krajnje_polje+14]=='s') || (this.m_cPozicija[krajnje_polje-14]=='s') || (this.m_cPozicija[krajnje_polje-10]=='s') || (this.m_cPozicija[krajnje_polje+23]=='s') || (this.m_cPozicija[krajnje_polje-23]=='s') || (this.m_cPozicija[krajnje_polje+25]=='s') || (this.m_cPozicija[krajnje_polje-25]=='s') || (this.m_cPozicija[krajnje_polje+10]=='s');
		}
		else
		{
			fennapotezu = 'b';
			var uslov4=(this.m_cPozicija[krajnje_polje+14]=='S') || (this.m_cPozicija[krajnje_polje-14]=='S') || (this.m_cPozicija[krajnje_polje-10]=='S') || (this.m_cPozicija[krajnje_polje+23]=='S') || (this.m_cPozicija[krajnje_polje-23]=='S') || (this.m_cPozicija[krajnje_polje+25]=='S') || (this.m_cPozicija[krajnje_polje-25]=='S') || (this.m_cPozicija[krajnje_polje+10]=='S');
		}
		if (!uslov3) fenpravilo50 = parseInt(fenpravilo50) + 1;
		else fenpravilo50 = 0;
		fenanpasan = '-';
		this.FEN = fenfigure+" "+fennapotezu+" "+fenrokada+" "+fenanpasan+" "+fenpravilo50+" "+fenpotez;
		//treba proveriti da li i drugi konj moze skociti na to polje
		if (!uslov4)
		{
			this.UbaciUListuPoteza('N', krajnje_polje, nosi);
		}
		else
		{
			slovo=this.PretvoriBrojUPolje(pocetno_polje).substring(0,1);
			this.UbaciUListuPoteza('N'+slovo, krajnje_polje, nosi);
		}
		this.KreirajFen();
		return true;
	}
	return false;
}

function PotezLovcem(boja, pocetno_polje, krajnje_polje)
{
	if (this.m_cPozicija[krajnje_polje] != 'x')
		nosi = true;
	else
		nosi=false;
	var FEN = this.FEN.split(" ");
	var fenfigure = FEN[0];
	var fennapotezu = FEN[1];
	var fenrokada = FEN[2];
	var fenanpasan = FEN[3];
	var fenpravilo50 = FEN[4];
	var fenpotez = FEN[5];

	if (boja == 0)
	{
		var uslov3 = this.isValid(this.m_cPozicija[krajnje_polje], "mala")
	}
	else
	{
		var uslov3 = this.isValid(this.m_cPozicija[krajnje_polje], "velika")
	}
	for(i=0;i<4;i++)
	{
		pom = pocetno_polje + this.m_kretanje_lovca[i];
		while(this.m_cPozicija[pom] == 'x' || (uslov3 && pom == krajnje_polje))
		{
			if (pom == krajnje_polje)
			{
				this.m_cPozicija[krajnje_polje] = this.m_cPozicija[pocetno_polje];
				this.m_cPozicija[pocetno_polje] = 'x';
				if(this.KraljUSahu(boja))
				{
					this.m_cPozicija[pocetno_polje] = this.m_cPozicija[krajnje_polje];
					this.m_cPozicija[krajnje_polje] = 'x';
					return false;
				}
				if (boja == 1)
				{
					fenpotez = parseInt(fenpotez)+1;
					fennapotezu = 'w';
				}
				else
					fennapotezu = 'b';		
				if (!uslov3) fenpravilo50 = parseInt(fenpravilo50) + 1;
				else fenpravilo50 = 0;
				fenanpasan = '-';
				this.FEN = fenfigure+" "+fennapotezu+" "+fenrokada+" "+fenanpasan+" "+fenpravilo50+" "+fenpotez;
				this.UbaciUListuPoteza('B', krajnje_polje, nosi);
				this.KreirajFen();
				return true;
			}
			pom = pom + this.m_kretanje_lovca[i];
		}
	}
	return false;
}

function PotezTopom(boja, pocetno_polje, krajnje_polje)
{
	if (this.m_cPozicija[krajnje_polje] != 'x')
		nosi = true;
	else
		nosi=false;
	var FEN = this.FEN.split(" ");
	var fenfigure = FEN[0];
	var fennapotezu = FEN[1];
	var fenrokada = FEN[2];
	var fenanpasan = FEN[3];
	var fenpravilo50 = FEN[4];
	var fenpotez = FEN[5];

	if (boja == 0)
	{
		var uslov3 = this.isValid(this.m_cPozicija[krajnje_polje], "mala")
	}
	else
	{
		var uslov3 = this.isValid(this.m_cPozicija[krajnje_polje], "velika")
	}
	for(i=0;i<4;i++)
	{
		pom = pocetno_polje + this.m_kretanje_topa[i];
		while(this.m_cPozicija[pom] == 'x' || (uslov3 && pom == krajnje_polje))
		{
			if (pom == krajnje_polje)
			{
				this.m_cPozicija[krajnje_polje] = this.m_cPozicija[pocetno_polje];
				this.m_cPozicija[pocetno_polje] = 'x';
				if(this.KraljUSahu(boja))
				{
					this.m_cPozicija[pocetno_polje] = this.m_cPozicija[krajnje_polje];
					this.m_cPozicija[krajnje_polje] = 'x';
					return false;
				}
				if (boja == 1)
				{
					if (pocetno_polje == 117)
						fenrokada = fenrokada.replace("k", "-");
					if (pocetno_polje == 110)
						fenrokada = fenrokada.replace("d", "-");
					fenpotez = parseInt(fenpotez)+1;
					fennapotezu = 'w';
				}
				else
				{
					if (pocetno_polje == 33)
						fenrokada = fenrokada.replace("K", "-");
					if (pocetno_polje == 26)
						fenrokada = fenrokada.replace("D", "-");
					fennapotezu = 'b';		
				}
				if (!uslov3) fenpravilo50 = parseInt(fenpravilo50) + 1;
				else fenpravilo50 = 0;
				fenanpasan = '-';
				this.FEN = fenfigure+" "+fennapotezu+" "+fenrokada+" "+fenanpasan+" "+fenpravilo50+" "+fenpotez;
				this.UbaciUListuPoteza('R', krajnje_polje, nosi);
				this.KreirajFen();
				return true;
			}
			pom = pom + this.m_kretanje_topa[i];
		}
	}
	return false;
}

function PotezDamom(boja, pocetno_polje, krajnje_polje)
{
	if (this.m_cPozicija[krajnje_polje] != 'x')
		nosi = true;
	else
		nosi=false;
	var FEN = this.FEN.split(" ");
	var fenfigure = FEN[0];
	var fennapotezu = FEN[1];
	var fenrokada = FEN[2];
	var fenanpasan = FEN[3];
	var fenpravilo50 = FEN[4];
	var fenpotez = FEN[5];

	if (boja == 0)
	{
		var uslov3 = this.isValid(this.m_cPozicija[krajnje_polje], "mala")
	}
	else
	{
		var uslov3 = this.isValid(this.m_cPozicija[krajnje_polje], "velika")
	}
	for(i=0;i<8;i++)
	{
		pom = pocetno_polje + this.m_kretanje_dame[i];
		while(this.m_cPozicija[pom] == 'x' || (uslov3 && pom == krajnje_polje))
		{
			if (pom == krajnje_polje)
			{
				this.m_cPozicija[krajnje_polje] = this.m_cPozicija[pocetno_polje];
				this.m_cPozicija[pocetno_polje] = 'x';
				if(this.KraljUSahu(boja))
				{
					this.m_cPozicija[pocetno_polje] = this.m_cPozicija[krajnje_polje];
					this.m_cPozicija[krajnje_polje] = 'x';
					return false;
				}
				if (boja == 1)
				{
					fenpotez = parseInt(fenpotez)+1;
					fennapotezu = 'w';
				}
				else
					fennapotezu = 'b';		
				if (!uslov3) fenpravilo50 = parseInt(fenpravilo50) + 1;
				else fenpravilo50 = 0;
				fenanpasan = '-';
				this.FEN = fenfigure+" "+fennapotezu+" "+fenrokada+" "+fenanpasan+" "+fenpravilo50+" "+fenpotez;
				this.UbaciUListuPoteza('Q', krajnje_polje, nosi);
				this.KreirajFen();
				return true;
			}
			pom = pom + this.m_kretanje_dame[i];
		}
	}
	return false;
}

function PotezKraljem(boja, pocetno_polje, krajnje_polje)
{
	if (this.m_cPozicija[krajnje_polje] != 'x')
		nosi = true;
	else
		nosi=false;
	var rok = 0;
	var FEN = this.FEN.split(" ");
	var fenfigure = FEN[0];
	var fennapotezu = FEN[1];
	var fenrokada = FEN[2];
	var fenanpasan = FEN[3];
	var fenpravilo50 = FEN[4];
	var fenpotez = FEN[5];

	if (boja == 0)
	{
		var uslov3 = this.isValid(this.m_cPozicija[krajnje_polje], "mala")
		var uslovrokada = pocetno_polje == 30 && krajnje_polje == 32 && this.m_cPozicija[krajnje_polje] == 'x' && this.m_cPozicija[krajnje_polje-1] == 'x';
		if (uslovrokada) uslovrokada = uslovrokada && fenrokada.search('K')!=-1;
		if (uslovrokada) uslovrokada = uslovrokada && !this.KraljUSahu(0);
		if (uslovrokada) 
		{
			this.m_cPozicija[31] = 'K';
			this.m_cPozicija[30] = 'x';
			uslovrokada = uslovrokada && !this.KraljUSahu(0);
			this.m_cPozicija[31] = 'x';
			this.m_cPozicija[30] = 'K';
		}
		var uslovrokadavelika = pocetno_polje == 30 && krajnje_polje == 28 && this.m_cPozicija[krajnje_polje] == 'x' && this.m_cPozicija[krajnje_polje+1] == 'x' && this.m_cPozicija[krajnje_polje-1] == 'x';
		if (uslovrokadavelika) uslovrokadavelika = uslovrokadavelika && fenrokada.search('D')!=-1;
		if (uslovrokadavelika) uslovrokadavelika = uslovrokadavelika && !this.KraljUSahu(0);
		if (uslovrokadavelika) 
		{
			this.m_cPozicija[29] = 'K';
			this.m_cPozicija[30] = 'x';
			uslovrokadavelika = uslovrokadavelika && !this.KraljUSahu(0);
			this.m_cPozicija[29] = 'x';
			this.m_cPozicija[30] = 'K';
		}
		if (uslovrokadavelika) 
		{
			this.m_cPozicija[27] = 'K';
			this.m_cPozicija[30] = 'x';
			uslovrokadavelika = uslovrokadavelika && !this.KraljUSahu(0);
			this.m_cPozicija[27] = 'x';
			this.m_cPozicija[30] = 'K';
		}
	}
	else
	{
		var uslov3 = this.isValid(this.m_cPozicija[krajnje_polje], "velika");
		var uslovrokada = pocetno_polje == 114 && krajnje_polje == 116 && this.m_cPozicija[krajnje_polje] == 'x' && this.m_cPozicija[krajnje_polje-1] == 'x';
		if (uslovrokada) uslovrokada = uslovrokada && fenrokada.search('k')!=-1;
		if (uslovrokada) uslovrokada = uslovrokada && !this.KraljUSahu(1);
		if (uslovrokada) 
		{
			this.m_cPozicija[115] = 'k';
			this.m_cPozicija[114] = 'x';
			uslovrokada = uslovrokada && !this.KraljUSahu(1);
			this.m_cPozicija[115] = 'x';
			this.m_cPozicija[114] = 'k';
		}
		var uslovrokadavelika = pocetno_polje == 114 && krajnje_polje == 112 && this.m_cPozicija[krajnje_polje] == 'x' && this.m_cPozicija[krajnje_polje+1] == 'x' && this.m_cPozicija[krajnje_polje-1] == 'x';
		if (uslovrokadavelika) uslovrokadavelika = uslovrokadavelika && fenrokada.search('d')!=-1;
		if (uslovrokadavelika) uslovrokadavelika = uslovrokadavelika && !this.KraljUSahu(1);
		if (uslovrokadavelika) 
		{
			this.m_cPozicija[113] = 'k';
			this.m_cPozicija[114] = 'x';
			uslovrokadavelika = uslovrokadavelika && !this.KraljUSahu(1);
			this.m_cPozicija[113] = 'x';
			this.m_cPozicija[114] = 'k';
		}
		if (uslovrokadavelika) 
		{
			this.m_cPozicija[111] = 'k';
			this.m_cPozicija[114] = 'x';
			uslovrokadavelika = uslovrokadavelika && !this.KraljUSahu(1);
			this.m_cPozicija[111] = 'x';
			this.m_cPozicija[114] = 'k';
		}
	}
	for(i=0;i<8;i++)
	{
		pom = pocetno_polje + this.m_kretanje_dame[i];
		if (((this.m_cPozicija[pom] == 'x' || uslov3) && pom == krajnje_polje) || uslovrokada || uslovrokadavelika)
		{
			this.m_cPozicija[krajnje_polje] = this.m_cPozicija[pocetno_polje];
			this.m_cPozicija[pocetno_polje] = 'x';
			if(uslovrokada)
			{
				this.m_cPozicija[krajnje_polje-1] = this.m_cPozicija[krajnje_polje+1];
				this.m_cPozicija[krajnje_polje+1] = 'x';
			}
			if(uslovrokadavelika)
			{
				this.m_cPozicija[krajnje_polje+1] = this.m_cPozicija[krajnje_polje-2];
				this.m_cPozicija[krajnje_polje-2] = 'x';
			}
			if(this.KraljUSahu(boja))
			{
				this.m_cPozicija[pocetno_polje] = this.m_cPozicija[krajnje_polje];
				this.m_cPozicija[krajnje_polje] = 'x';
				if(uslovrokada)
				{
					this.m_cPozicija[krajnje_polje+1] = this.m_cPozicija[krajnje_polje-1];
					this.m_cPozicija[krajnje_polje-1] = 'x';
				}
				if(uslovrokadavelika)
				{
					this.m_cPozicija[krajnje_polje-2] = this.m_cPozicija[krajnje_polje+1];
					this.m_cPozicija[krajnje_polje+1] = 'x';
				}
				return false;
			}
			if (uslovrokada || uslovrokadavelika)
				rok = this.ResiRokadu(uslovrokada,uslovrokadavelika, krajnje_polje, beli_je_dole);
			if (boja == 1)
			{
				fenrokada = fenrokada.replace("k", "-");
				fenrokada = fenrokada.replace("d", "-");
				fenpotez = parseInt(fenpotez)+1;
				fennapotezu = 'w';
			}
			else
			{
				fenrokada = fenrokada.replace("K", "-");
				fenrokada = fenrokada.replace("D", "-");
				fennapotezu = 'b';
			}
			if (!uslov3) fenpravilo50 = parseInt(fenpravilo50) + 1;
			else fenpravilo50 = 0;
			fenanpasan = '-';
			this.FEN = fenfigure+" "+fennapotezu+" "+fenrokada+" "+fenanpasan+" "+fenpravilo50+" "+fenpotez;
			if (rok == 0) this.UbaciUListuPoteza('K', krajnje_polje, nosi, rok);
			this.KreirajFen();
			return true;
		}
	}
	return false;
}

function kreirajPozicijuNaOsnovuFena(fen)
{
	var arrFen = fen.split(" ");
	var skraceniFen = arrFen[0];
	var arrSkraceniFen = skraceniFen.split("/");
	for(var i=0;i<arrSkraceniFen.length;i++)
	{
		var index = (9 - i) * 12 + 2;
		
		//alert(arrSkraceniFen[i]);
		for(var j=0;j<arrSkraceniFen[i].length;j++)
		{
			//alert(i + " " + j + " " + arrSkraceniFen[i].slice(j, j+1));
			if (this.IsNumeric(arrSkraceniFen[i].slice(j, j+1)))
			{
				for(var k=0;k<parseInt(arrSkraceniFen[i].slice(j, j+1));k++)
				{
					this.m_cPozicija[index++] = 'x';
				}
			}
			else
			{
				this.m_cPozicija[index++] = arrSkraceniFen[i].slice(j, j+1);
			}
		}
	}
	this.FEN = fen;
}

function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (var i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }

function ocistiNizFenova()
{
	var duzNizFenova = this.nizfenova.length;
	for (var i=this.pokazivacNaNizFen + 1;i<duzNizFenova;i++)
		this.nizfenova.pop();
}

function ocistiListuPoteza()
{
	var duzNizListaPoteza = this.listapoteza.length;
	for (var i=this.pokazivacNaNizFen;i<duzNizListaPoteza;i++)
		this.listapoteza.pop();
}

