var partides = new Array();
var p_a;
var origen=-1;
var npartida;
var colorusuari=0;
var colorpintat=-5;
var ampX = 55; 
var ampY = 55;
var offX = 27+148-5;
//var offY = 448+5+47-(60-55)*7;
var offY = 465+(ampY-55)*7;
var i_p='';
var col_i_p=0;
var bloquejar=0;
var refresc=1;
var Bdo, BX, BY, Xor=0, Yor=0;
var ntimer=10;
var stopauto=0;
var tira =0;
var confJugada=0;
var cond=0;
var obertures="";
var comentades="";
var oberturestitol="";
var comentadestitol="";


function cPartida (npart){ 
	this.partida=npart;
	this.historic = 0;
    this.movsTS=new Array();
    this.movs=new Array();
    this.movp0=new Array();
    this.movp1=new Array();
	this.tirs=new Array();
	this.comsTS=new Array();
	this.coms=new Array();
	this.coms_jug=new Array();
	this.coms_fmt=new Array();
    this.condsc=new Array();
    this.condsa=new Array();
    this.condsnc=new Array();
    this.condsniv=new Array();
	this.tipus="";
	this.jCond1="";
	this.jCond2="";
	this.temps1=0;
	this.temps2=0;
	this.nmov=0;
	this.maxmov=0;
    this.maxcond=0;
	this.notes="";
	this.timestamp="";
	this.dibuixa_moviments = dibuixa_moviments;
	this.retorna_condicio = retorna_condicio;
	this.escriu_comentaris = escriu_comentaris;
	this.inici = inici;
	this.darrer = darrer;
	this.enrera = enrera;
	this.endavant = endavant;
	this.auto = auto;
	this.actualitza = actualitza;
	this.mesMov = mesMov;
	this.mesCom = mesCom;
	this.mesCond = mesCond;
	this.jugCond = jugCond;
	this.posaTemps = posaTemps;
} 
// funció d'objecte cPartida
function tmpsT(tmps) {
	hrs=Math.floor(tmps/3600);
	dies=Math.floor(hrs/24);
	hrs=hrs%24;
	if (dies>30*8) return "més de 8 mesos";
	return ""+dies+" dies "+hrs+" hores ";
}
function dibuixa_moviments() {
	if (!this.partida) return; if (modeConversa) return;
	str="";
	if (this.temps1 || this.temps2)
		str += "Temps invertit (" + " BLANQUES: " + tmpsT(this.temps1) + ", NEGRES: " + tmpsT(this.temps2) + ")" + " <a href='javascript:carregaText(\"Caducitat\","+ this.partida + ")'>(Criteris caducitat)</a><br>";
	for (i=0;i<this.tirs.length;i++)
	  { if (Math.floor(i/2)*2 == i) str+=(Math.floor(i/2)+1)+". ";
		if (i==this.nmov) str += "<b>" + this.tirs[i] + "</b> ";
		else {
			i1=i+1;
			if (this.movs[i]=="") str += this.tirs[i] + " ";
			else str += "<a href='javascript:actualitza_tauler(" + i + ",2);'>" + this.tirs[i] + "</a> ";
		}
	  }
	if (this.jCond1!="") str += " (i si " + this.jCond1 + ", respondre "+ this.jCond2 +")";
	if (str!="") {
		str="<table width='100%' style='border:2px solid gray;'><tr bgcolor='gray' ><td bgcolor='gray' style='FONT: normal; color:#CCFF66; font-size:9'>Moviments</td></tr><tr><td>"+str+"</td></tr>";
		
		str+= this.retorna_condicio();
		
		if (this.notes !="") {
			str+="<tr bgcolor='gray' ><td bgcolor='gray' style='FONT: normal; color:#CCFF66; font-size:9'>Anotacions</td></tr>";
			str+="<tr><td>"+this.notes+"</td></tr>";
			str+="<tr><td><a style='FONT: bold; color:#993333; font-size:9' href='javascript:obrirNotes("+this.partida+")' title='Accedir a anotacions'>Accedir a anotacions</a></td></tr>"
		} else
		str+="<tr><td><a style='FONT: bold; color:#993333; font-size:9' href='javascript:obrirNotes("+this.partida+")' title='Afegir anotacions que només veuràs tu'>Afegir anotacions</a></td></tr>"

		str+="</table>";
	}
	dShw('text',0);
	dShw('moviments',1);
	dWrt('moviments',str);
}

function retorna_condicio() {
	str=""; strbloc="";

	if (!this.condsnc.length) return "";
	
	
	str+="<tr bgcolor='gray' ><td bgcolor='gray' style='FONT: normal; color:#CCFF66; font-size:9'>Jugades condicionades</td></tr><tr><td>";
	ncprev=this.condsnc[0];
	for (i=0;i<this.condsnc.length;i++) {	  
		if (ncprev!=this.condsnc[i]) {
			nouniv=this.condsniv[i]+1;
			str += "(-)" + strbloc + "<a href='javascript:jugadaCondicionadaNou("+ncprev+","+nouniv+")'>(+)</a>\n";
			strbloc="";
			ncprev=i;
		}

		njug = Math.floor(this.nmov/2 + this.condsniv[i]);
		if (Math.floor(this.nmov/2)*2 == this.nmov) { // negres
			strbloc += "Si " + njug + "." + this.condsc[i] + ", " + this.condsa[i];
		} else {
			strbloc += "Si " + njug + "..." + this.condsc[i] + ", " + (njug+1) + "." + this.condsa[i];
		}

		if (i!=this.condsnc.length-1) strbloc += "; ";
	}
	nouniv=this.condsniv[this.condsnc.length-1]+1;
	str += "(-)" + strbloc + "<a href='javascript:jugadaCondicionadaNou("+ncprev+","+nouniv+")'>(+)</a>\n";
	ncprev+=1;
	str+="<br><a style='FONT: bold; color:#993333; font-size:9' href='javascript:jugadaCondicionadaNou("+ncprev+")' title='Afegir una nova condició'>Afegir condició</a>"

	str+="</td></tr>";
	
	return str;
}
function obrirNotes(partida){
	window.open("Notes.php?partida="+partida,"Notes","height=300,width=500,status=yes,toolbar=no,menubar=no,location=no");
}

function escriu_comentaris(par) {
	if (!this.partida) return; if (modeConversa) return;
	if (par==undefined) ordre=-1; else if (par!='timeout') ordre=1;
	str="";
	for (i=this.coms.length-1;i>=0;i--) { 
		if (ordre==-1) j=i; else j=this.coms.length-i;
		if (this.coms_fmt[j]) str+="<font color='#006400'>";
		else str+="<font color='#000099'>";
		str += "<font style='FONT: normal;color:#404040'>" + this.coms_jug[j] + "></font>";
		str += this.coms[j] + "</font><br>\n ";
	}
	if (par=='timeout') str+="<span style='color:#FF4040; FONT:bold'>S'ha aturat el refresc de la partida per inactivitat.</span><br>";
	
	dShw('text',0); dShw('comentaris',1);
	if (str=="") str="<br>";
	str2="<table width='100%' style='border:2px solid gray;'><tr bgcolor='gray' ><td bgcolor='gray' style='FONT: normal; color:white; font-size:9'>Comentaris en <u>ordre invers</u> (primer els més nous)";
	str2+="</td></tr><tr><td>"+str+"</td></tr></table>";
	dWrt('comentaris',str2);

}

function mesCom(comentari, jugador, TS, format) {
	ncom = this.coms.length;
	for (i=0; i<ncom; i++)
		if (this.comsTS[i]==TS && this.coms[i]==comentari) ncom=i;
	this.comsTS[ncom]=TS;
	this.coms[ncom]=comentari;
	this.coms_jug[ncom]=jugador;
	this.coms_fmt[ncom]=format;
}

function mesCond(nc, c, a, niv, TS) {
	nconds = this.condsnc.length;
	this.condsnc[nconds]=nc; // número condició
	this.condsc[nconds]=c; // condició
	this.condsa[nconds]=a; // acció
	this.condsniv[nconds]=niv; // nivell
}

function mesMov(tirada, posicio, TS, nummov) {
	nmov = this.movs.length;
	if (nmov)
		if (this.movs[nmov-1]==posicio) return;
	if (nummov!=undefined) if (nummov==(nmov%2)) return;
	
	this.movp0[nmov] = this.movp0[nmov] = -1;
	if (posicio=="") {
		if (nmov>0) movant = this.movs[nmov-1];
		else movant="TCADRACTPPPPPPPP                                pppppppptcadract";
		colMov=((nmov)%2); posicio = anMov(tirada, "N", movant);
		if ((tirada=="1-0" || tirada=="0-1" || tirada=="½-½") && nmov>0) posicio=this.movs[nmov-1];
	}
	this.movsTS[nmov]=TS;
	this.movs[nmov]=posicio;
	this.tirs[nmov]=tirada;
	this.maxmov++; this.nmov=this.maxmov;
}

function jugCond(sJugCond1, sJugCond2) {
	this.jCond1=sJugCond1;
	this.jCond2=sJugCond2;
}

function posaTemps(temps1, temps2) {
	this.temps1=temps1;
	this.temps2=temps2;
}

function inici() {
	if (!this.partida) return;
	this.nmov=0;
	this.actualitza(this.nmov,2);
	stopauto=1;
}

function enrera() {
	if (!this.partida) return;
	if (this.nmov>0) this.nmov--;
	this.actualitza(this.nmov,2);
	stopauto=1;
}
function endavant() {
	if (!this.partida) return;
	if (this.nmov<this.maxmov-1) {
		this.nmov++;
		if (this.nmov==this.maxmov) this.darrer();
		else this.actualitza(this.nmov,2);
	}
	stopauto=1;
}
function auto() {
	if (!this.partida) return;
	if (this.nmov<this.maxmov && (!stopauto)) {
		this.nmov++;
		if (this.nmov!=this.maxmov) { 
			this.actualitza(this.nmov,2);
			setTimeout('botonera_auto()', 1000);
		}
	} 
}

function darrer() {
	if (!this.partida) return;
	this.nmov=this.maxmov-1;
	this.actualitza(this.nmov,colorusuari);
	stopauto=1;
}

function actualitza(posicio,color) {
	this.nmov=posicio;
	if (this.nmov==this.maxmov-1) color = colorusuari;
	if (bloquejar) color=2;
	for (i=0; i<8; i++)
		for (j=0; j<8; j++) {
			mobil="nv";
			peca = this.movs[posicio].substr(i*8+j,1);
			if (peca==" ") imatge="blank";
			else {
				if (peca>='a' && peca<='z') {
					if (peca.toLowerCase()=="d" && this.tipus=="A") peca="x";
					if (color==1) mobil="mv";
					imatge='imn'+peca.toLowerCase();
				}
				else {
					if (peca.toLowerCase()=="d" && this.tipus=="A") peca="x";
					if (color==0) mobil="mv";
					imatge='imb'+peca.toLowerCase();
				}
				if (peca=='Z' || peca=='z') imatge='imz';
			}
			if (colorusuari==1) pos = (7-i)*10+(7-j); else pos = i*10+j;

			if (this.tipus=="O") {mobil="mv"; imatge="blank"; }

			eval("document.images['pos"+pos+"'].src='imatges/" + pp + "/" + imatge+".gif'");
			document.getElementById("s"+pos).className=mobil;
		}
	this.dibuixa_moviments();
	pintatauler(this.movp0[posicio], this.movp1[posicio]);
}

function actualitzaabsolut(posicio,color,partida,interrompre,origenT,destiT) {
	if (posicio.length==0) return;
	if (posicio.length<64) for (i=posicio.length;i<=64;i++) posicio+= " ";
	if (p_a!=undefined)
		if (p_a.partida == partida && p_a.nmov!=p_a.maxmov-1) {
			if (interrompre) p_a.nmov=p_a.maxmov-1;
			else return;
		}

	pintatauler(origenT,destiT);
	if (bloquejar) color=2;
	for (i=0; i<8; i++)
		for (j=0; j<8; j++) {
			marcacapa(i,j,posicio.substr(i*8+j,1),color);
		}
}

function marcacapa(i,j,peca,color) {
	mobil="nv";
	if (peca==" ") imatge="blank";
	else {
		if (peca>='a' && peca<='z') { 
			if (peca.toLowerCase()=="d" && p_a.tipus=="A") peca="x";
			if (color==1) mobil="mv";
			imatge='imn'+peca;
		}
		else {
			if (peca.toLowerCase()=="d" && p_a.tipus=="A") peca="x";
			if (color==0) mobil="mv";      
			imatge='imb'+peca.toLowerCase();
		}
		if (peca=='Z' || peca=='z') imatge='imz';
	}
	if (peca.toLowerCase()=="y" || peca.toLowerCase()=="z" || peca.toLowerCase()=="_") mobil="nv";
	if (colorusuari==1) pos = (7-i)*10+(7-j); else pos = i*10+j;
	if (p_a.tipus=="O") {mobil="mv"; imatge="blank"; }
	eval("document.images['pos"+pos+"'].src='imatges/" + pp + "/" + imatge+".gif'");
	document.getElementById("s"+pos).className=mobil;		
	
	defDrag(pos);
}

function existeixPartida(npart) {
	for (i=0;i<partides.length;i++)
		if (partides[i].partida==npart) return 1;
	return 0;
}

function retornaPartida(npart,tipus) {
	if (npart==undefined) return null;
	for (i=0;i<partides.length;i++)
		if (partides[i].partida==npart) return partides[i];
	longitud = partides.length;
	partides[longitud] = new cPartida(npart);
	partides[longitud].partida = npart;
	partides[longitud].tipus = tipus;
	npartida=npart;

	return partides[longitud];
}
function retornaPartidaTS(npart) {
	for (i=0;i<partides.length;i++)
		if (partides[i].partida==npart) return partides[i].timestamp;
	return "";
}


function botonera_primer() {
	p_a.inici();
}
function botonera_enrera() {
	p_a.enrera();
}
function botonera_endavant() {
	p_a.endavant();
}
function botonera_auto() {
	p_a.auto();
}
function botonera_top() {
	p_a.darrer();
}

function escriu_text(txtPar) {
modeConversa=0;
dShw('comentaris',0); dWrt('comentaris','');
dShw('moviments',0); dWrt('moviments','');
dShw('menuDret',0); dWrt('menuDret','');

dShw('text',0); 
if (txtPar==undefined) dWrt('text',window.frames['Inferior'].text); ////
else dWrt('text',txtPar);
dShw('text',1);
}

function confirmar(text,enllac){
	if (confirm(text)) document.location.href=enllac;
}

function confirmarInferior(text,enllac){
	if (confirm(text)) window.frames['Inferior'].location.href=enllac;
}

function escriu_info_partida() {
str="";
str+="<strong>" + i_p + "</strong>";
dShw('infopartida',1);
//if (dGet('x')) dShw('x',1);
dWrt('infopartida',str);
switch (col_i_p){
	case 0: c="#AB5"; break;
	case 1: c="#A44"; break;
	case 2: c="#999"; break;
	case 3: c="#DA4"; break;
	case 4: c="#C0D4AB"; break;
	case 5: c="#FF8"; break;
	case 6: c="#A77"; break;
	case -1: c="#899696"; break;
	}
eval(dGet('infopartida')+".style.background='"+c+"';");
}

function partidaactual() {partida(p_a.partida);}
function partida(p,h) {
if (h==undefined) h='';
canviaTauler();
if (!modeConversa) { 
	coloca_tauler();
	carregaMenuDret();
	carregaBotonera();
	refresc=0;
	for (i=0; i<8; i++)
	  for (j=0; j<8; j++) {
		el=j+i*10;
		eval("document.images['pos"+el+"'].src='imatges/blank.gif'");
	  }
	dShw('menuDret',1);
	dWrt('moviments',"");
	dWrt('text',"");

	ts=retornaPartidaTS(p);
	window.frames['Inferior'].document.location.href="Inferior.php?partida" + h + "=" + p + "&accio=C&timestamp="+ts;
	document.forms['com'].timestamp.value=ts;
	
	modeConversa=1;
	canviaTauler();
	modeConversa=0;
	}
}
function posaTS(timestamp) {
	p_a.timestamp=timestamp;
	document.forms['com'].timestamp.value=timestamp;
}
function recarregaMenu() {
window.frames['Inferior2'].document.location.href="Inferior.php?accio=LLISTES&inmenu="+lastmenu;	
}
function actualitzaConfirmar(conf) {
modeConversa=0;
npartida=0;
window.frames['Inferior'].document.location.href="ConfirmarMoviment.php?confirmar=" + conf
}
function midaTauler(conf) {
modeConversa=0;
npartida=0;
window.frames['Inferior'].document.location.href="MidaTauler.php?mida=" + conf
}
function carregaText(text,origen) {
modeConversa=0;
npartida=0;
if (origen!=undefined) text+="&origenllac="+origen;
window.frames['Inferior'].document.location.href="Inferior.php?accio=TEXT&text=" + text;
}
function carregaContingut(text,origen) {
modeConversa=0;
npartida=0;
if (origen!=undefined) text+="&origenllac="+origen;
window.frames['Inferior'].document.location.href="Inferior.php?accio=CONT&text=" + text;
}
function carregaProblema() {
npartida=0;
window.frames['Inferior'].document.location.href="Inferior.php?accio=TEXT&text=problema";
}
function usuaris(inic,orig,con) {
modeConversa=0;
npartida=0;
window.frames['Inferior'].document.location.href="Inferior.php?accio=TEXT&text=USUARIS"+ con +"&inici=" + inic + "&ordre=" + orig;
}

function coloca_tauler(){
for (i=0; i<8; i++)
  for (j=0; j<8; j++) {
	pos = i*10+j;
    eval(dGet("s"+pos)+".style.position='absolute'");
    eval(dGet("s"+pos)+".style.top='"+ (offY-i*ampY) +"px'");
    eval(dGet("s"+pos)+".style.left='"+ (offX+j*ampX) +"px'");
    eval(dGet("s"+pos)+".style.width='20px'");
    eval(dGet("s"+pos)+".style.heigth='20px'");
  }
}

function actualitza_tauler(posicio,color) {
	p_a.actualitza(posicio,color);
}

function drag(obj,X,Y) {
	a=Math.round((X-offX-20)/ampX);
	b=Math.round((offY-(Y)-20)/ampY);
	RX=a;
	RY=b;
	Xor=RX;
	Yor=RY;
	origen=RX+RY*10;
	
	if (obj!="s"+origen) {
		coloca_tauler();
		origen=-1;
	}
}

function drop(obj,X,Y) {
	if (origen==-1) {
		coloca_tauler();
		i_p = "Hi ha hagut un problema de refresc. Repeteix el moviment";
		col_i_p = 5;
		refresc=0;
		escriu_info_partida();	
		return;
	}
	BX=offX+RX*ampX;
	BY=offY-RY*ampY;
	RX=Math.round((X-offX-25)/ampX);
	RY=Math.round((offY-(Y)-25)/ampY);
	
	document.getElementById("s"+origen).left=offX+RX*ampX;
	document.getElementById("s"+origen).top=offY-RY*ampY;
	var desti=RX+RY*10;
	if (origen!=desti) {
		if (RX>=0 && RX<=7 && RY>=0 && RY<=7) {
			pec = eval("document.images['pos"+origen+"']");
			peca = pec.src;
			inipeca=peca.substr(peca.length-5,1);
			if ((RY==0 || RY==7) && (peca.substr(peca.length-5,1)=='p')) 
			{
				i_p = "";
				for (i=1;i<=4;i++) {
					if (i==1) {
						cor="D"; txtcor="dama"; 
						if (p_a.tipus=="V") {i=2;} // Escacs ancians no promocionen dama.
					}
					if (i==2) {cor="T"; txtcor="torre"; }
					if (i==3) {cor="A"; txtcor="alfil"; }
					if (i==4) {cor="C"; txtcor="cavall";}
					i_p = i_p + "<a href='javascript:corona("+origen+","+desti+",\""+cor+"\",0)' title='Promocionar "+ txtcor +"'><img src='/imatges/" + pp + "/" + "im"+(colorusuari?'n':'b')+cor.toLowerCase()+'.gif'+"'></a>";
				}
				escriu_info_partida();
			} else {
				if (confJugada) {
					ords = "abcdefgh";
					if (colorusuari==1) 
						{x0=7-Xor; y0=8-Yor; x1=7-RX; y1=8-RY;}
					else
						{x0=Xor; y0=Yor+1; x1=RX; y1=RY+1;}
					i_p = "<table><tr><td><br><div style='font-size: 12px; FONT: bold; color: #003333'>";
					i_p += "Estàs fent el moviment ";
					i_p += (ords.substr(x0,1)) + (y0);
					i_p += "-";
					i_p += (ords.substr(x1,1)) + (y1);
					i_p += " <a href='javascript:carregaText(\"ConfirmaMov\","+p_a.partida+");' title='Què vol dir la confirmació de moviment?'>(què vol dir això?)</a><br><br>";
					i_p += "<li><a href='javascript:corona("+origen+","+desti+",\"\",0)' title='Confirmar el moviment'>Confirmo el moviment.</a></li>";
					i_p += "<li><a href='javascript:partida("+p_a.partida+");' title='Declinar el moviment'>No ho veig clar, prefereixo tornar a fer-lo.</a></li>";
					i_p += "<li><a href='javascript:corona("+origen+","+desti+",\"\",1)' title='Confirmar el moviment i evitar futures confirmacions'>Confirmo el moviment, però no m'ho tornis a preguntar.</a></li>";
					i_p += "</div></td></tr></table>";
					col_i_p = 5;
					refresc=0;
					escriu_info_partida();	
				} else {
					refresc=0;
					col_i_p=-1;
					i_p="<table><tr><td width=30><img src='imatges/esperant.gif'></td><td><br><br><div style='font-size: 14px; FONT: bold; color: #003333'>S'està processant el moviment...</div></td></tr></table>";
					escriu_info_partida();
					window.frames['Inferior'].document.location.href='Inferior.php?accio=T&cond='+cond+'&partida='+p_a.partida+'&origen='+origen+'&desti='+desti+"&timestamp="+p_a.timestamp;
				}
			}
		}
		else {
			document.getElementById("s"+origen).left=offX+Xor*ampX; 
			document.getElementById("s"+origen).top=offY-Yor*ampY;
		}
	} else {
		document.getElementById("s"+origen).left=offX+Xor*ampX; 
		document.getElementById("s"+origen).top=offY-Yor*ampY;
	}
}

function corona(origen,desti,corona,noConf) {
str='Inferior.php?accio=T&cond='+cond+'&partida='+p_a.partida+'&origen='+origen+'&desti='+desti+'&corona='+corona+"&timestamp="+p_a.timestamp;
if (noConf) {
	str+="&noconf=1";
	confJugada=0;
}
window.frames['Inferior'].document.location.href=str;
}

function recarrega() {
if (refresc && modeConversa==0)
	if (p_a.partida) window.frames['Inferior'].document.location.href="Inferior.php?accio=R&partida="+p_a.partida+"&timestamp="+p_a.timestamp+"&tira="+tira;
}

function recarregaNotes() {
if (refresc && modeConversa==0)
	if (p_a.partida) window.frames['Inferior'].document.location.href="Inferior.php?accio=R&partida="+p_a.partida+"&timestamp="+p_a.timestamp+"&tira="+tira+"&refrescanotes=1";
}

function recarregaTop() {
modeConversa=0;
	document.location.href="index.php";
}

function obtePGN() {
if (modeConversa) return;
if (!p_a.partida) return;
if (p_a.historic) H="H"; else H="";
	window.frames['Inferior'].document.location.href="Inferior.php?accio=PGN&partida"+ H +"="+p_a.partida;
}

function jugadaCondicionada() {
if (modeConversa) return;
if (!p_a.partida) return;
window.frames['Inferior'].document.location.href="Inferior.php?cond=1&partida="+p_a.partida+"&timestamp="+p_a.timestamp;	
}

function jugadaCondicionadaNou(ncond,nivcond) {
if (modeConversa) return;
if (!p_a.partida) return;
if (ncond==undefined) ncond=0;
if (nivcond==undefined) nivcond=0;
window.frames['Inferior'].document.location.href="Inferior.php?noucond=1&numcondicio="+ncond+"&nivellcondicio="+nivcond+"&partida="+p_a.partida+"&timestamp="+p_a.timestamp;	
}

function operacio(op) {accComu("SEGUR QUE VOLS DUR A TERME AQUESTA OPERACIÓ?",op);}
function rendir() {accComu(segurRendir,"REN");}
function oferirTaules() {accComu(segurOferirTaules,"OFT");}
function retrocedir() {accComu("Segur que vols demanar la retrocessió del moviment?","RTR");}
function retrocedirAcceptar() {accComu("Segur que vols acceptar la retrocessió del moviment?","RTC");}
function acceptarTaules() {accComu(segurAcceptarTaules,"TAU");}
function denegarTaules() {accComu("","NTA");}
function retirarTaules() {accComu(segurRetirarTaules,"RTA");}

function accComu(cnf,acc) {
if (modeConversa) return;
if (!p_a.partida) return;
fer=1;
if (cnf) fer=confirm(cnf);
if (fer) window.frames['Inferior'].document.location.href="Inferior.php?accio="+acc+"&partida="+p_a.partida+"&timestamp="+p_a.timestamp;
}
				 
var nivell=0;
function cniv(n) {
nivell=n;
}

function pintatauler(origenT, destiT){
	col=colorusuari; if (col!=1) col=0;
	if (origen==undefined) {origen=-1; desti=-1;}
	colorpintat=col;
	str = "<table border='0' cellpadding='0' cellspacing='0' bgcolor='#454'>";//505050'>";
	str += "<tr><th colspan=10>&nbsp;</th></tr>";
	for (i=0; i<8; i++) {
		str += "<tr><th width='8'>" + (col?i+1:8-i) + "</th>";
		for (j=0; j<8; j++) {
			colcas = ((i+j)%2?"#689":"#C8D0D8");
			bckimatge="";
			tAmp = (ampX==55? "": ampX);
			origim=" background-image:url(imatges/T" + tAmp + ".gif);";
			destim=" background-image:url(imatges/TT" + tAmp + ".gif);";
			if (col) {if (origenT==i*10+(7-j)) bckimatge=origim; else if (destiT==i*10+(7-j)) bckimatge=destim;}
			else {if (origenT==(7-i)*10+j) bckimatge=origim; else if (destiT==(7-i)*10+j) bckimatge=destim;}
			
			str += "<td height='"+ampX+"' width='"+ampY+"' style='background-color:"+ colcas +";"+ bckimatge+"'><img src='imatges/blank.gif' height='"+ampX+"' width='"+ampY+"' border='0'></td>";
			
		}
		str += "<th width='8'><img src='imatges/blank.gif' height='1' width='10' border='0'></th></tr>\n";
	}
	str += "<tr><th>&nbsp;</th>";
	for (i=0;i<8;i++) {
		ll="abcdefgh";
		str += "<th>" + ll.substr((col?7-i:i),1) + "</th>";
	}
	str += "<th></th>";
	str += "</tr></table>";

	dWrt('tauler',str);
}

function act_capa(n,img,meve) {
	if (pp==undefined) {pp="D";}
	eval("document.images['pos"+n+"'].src='imatges/" + pp + "/" + img + ".gif'");
	eval("document.getElementById('s" + n + "').className='" + meve + "'");
	defDrag(n);
}

function act_capes(pos,ind) { 
	for (l=0;l<8;l++)
		for (m=0;m<8;m++) {
			i=l*10+m;
		}
}

function mensep() {
return "<tr height='1'><td colspan='2'><img src='imatges/gris.gif' height='1' width='135' border='0'></td></tr>";
}

function pacab(tipusP,numP,dataP,oponP) {
return "&nbsp;<tr><td><img src='imatges/logomini"+tipusP+".gif'></td><td><img src='imatges/blank.gif' height='0' width='108' border='0'><br><a href=\'javascript:partida("+numP+");\' title='"+dataP+" "+oponP+"'>"+dataP+"<br>"+oponP+"</a></td></tr>";
}
function rcrea() {
return "<form name='crepte' action='Inferior.php' target='Inferior'><table><tr><td>Tipus:&nbsp;&nbsp;&nbsp;<select name='tipus' size=1><option value='N'>Normal</option><option value='C'>Cega</option><option value='F'>Fischer</option><option value='A'>Amazona</option><option value='I'>Intercanvi</option><option value='B'>Nuclear</option><option value='R'>Cilíndrica</option><option value='O'>Tauler buit</option></select><div><br>Color:&nbsp;&nbsp;&nbsp;<select name='color' size=1><option value='2'>Aleatori</option><option value='0'>Blanques</option><option value='1'>Negres</option></select><br>Elo:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name='elo_min' type='text' value='0' size='4' maxlength='4'> a<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name='elo_max' type='text' value='3000' size='4' maxlength='4'> <br>Jugador a reptar:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name='jug_desti' type='text' value='' size='13' maxlength='15'> <br><input name='crear_repte' type='hidden' value='1'><input name='accio' type='hidden' value='LLISTES'><input name='inmenu' type='hidden' value='4'></td></tr><tr><td><input type='submit' value=' Crear '>&nbsp;&nbsp;<input type='button' value=' Ajuda ' onclick='javascript:carregaText(\"CrearRepte\")'></td></tr></table></form>";
}
function ccrea() {
return "<form name='cercador'><table><tr><td>Jugador a cercar:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name='jugador' type='text' value='' size='13' maxlength='15'> <br></td></tr><tr><td><input type='button' value=' Cercar ' onclick='javascript:veurePerfil(forms[\"cercador\"].jugador.value)'></td></tr></table></form>";
}
// Conversa
var modeConversa=0;
var horaConv='';
var numConv=0;
var numCUsr=0;
var CUsr=new Array();
var Conv=new Array();
var ConvUsr=new Array();
var ConvTip=new Array();
function refrescaConv(compt) {
if (modeConversa) window.frames['InferiorConv'].document.location.href="Conversa.php?accio=R&compt=" + compt + "&hora=" + horaConv;
}
function afegirConv(tip,usr,text) {
Conv[numConv]=text;
ConvUsr[numConv]=usr;
ConvTip[numConv]=tip;
numConv++;
avisAfegir("L'usuari "+usr+" està parlant pel xat.",2);
}
function afegirUsr(usr) {
CUsr[numCUsr]=usr;
numCUsr++;
}
function canviaTauler() {
	if (modeConversa) {
		modeConversa=0;
		document.forms['com'].action='Inferior.php';
	}
}
function canviaConversa(par) {
	if (modeConversa==0) {
		modeConversa=1;
		npartida=0;
		carregaBotonera("0");
		document.forms['com'].action='Conversa.php';
		dShw('infopartida',0); dWrt('infopartida',"");
		dShw('menuDret',0); dWrt('menuDret',"");
		dShw('moviments',0); dWrt('moviments',"");
		dShw('comentaris',0); dWrt('comentaris',"");

		pintaConversa(par);
		pintaUsr();

		refrescaConv(21);
	}
}
function pintaConversa(par) {
str="";
ordre=-1;
if (par==undefined) ordre=-1;
else if (par==1) ordre=1;

for (i=numConv-1;i>=0;i--)
  { if (ordre==-1) j=i; else j=numConv-i-1;
    str+="<font color='#404040'>" + ConvUsr[j] + ">&nbsp</font>";
  	if (ConvTip[j]==0) str+="<font color='#006400'>";
  	else if (ConvTip[j]==1) str+="<font color='#000099'>";
  	else if (ConvTip[j]==2) str+="<font color='#990000'>";
  	else str+="<font color='#404040'>";
  	str = str + Conv[j] + "</font><br> ";
  }
if (par=="timeout") str+="<a href='javascript:refrescaSessioXat();' style='color:#FF4040; FONT:bold' title='Tornar a refrescar informació'>S'ha aturat el refresc per inactivitat. Fes clic aquí per continuar.</a><br>";

dShw('text',0);
dShw('comentaris',1);
if (str=="") str="<font color='#808080'>No hi ha missatges<br>";
str2="<table class='taulainfo'><tr><th>CONVERSA en línia (missatges en <strong>ordre invers</strong>)";
str2+="</a></td></tr><tr><td>"+str+"</td></tr></table>";
dWrt('comentaris',str2);
}
function refrescaSessioXat() {
	window.frames['InferiorConv'].document.location.href='Conversa.php?accio=RR&hora=' + horaConv;
}

function pintaUsr() {
str="";
for (i=0;i<numCUsr;i++)
  { str+="<a href='javascript:veurePerfil(\"" + CUsr[i] + "\")' title='Veure fitxa'>+</a> <font color='#404040'>" + CUsr[i] + "<br></font>";
  }

dShw('text',0);
dShw('moviments',1);
if (str=="") str="<font color='#404040'>No hi ha jugadors connectats<br></font>";
str2="<table class='taulainfo'><tr><th>Jugadors CONNECTATS</td></tr><tr><td>"+str+"</td></tr></table>";
dWrt('moviments',str2);
}

function reptarJ(usuari) {
menu(5);
document.forms['crepte'].jug_desti.value=usuari;
}
function submitMissatge() {
if (p_a.partida) document.forms['com'].action='Inferior.php';
else document.forms['com'].action='Conversa.php';
document.forms['com'].submit();
}
function veurePerfil(usr, orig) {
if (usr==undefined) url="VeurePerfil.php";
else { url="VeurePerfil.php?usuari=" + usr;
	if (orig!=undefined) url += "&origenllac=" + orig;
}
window.frames['Inferior'].document.location.href=url;
}
function canviarDades() {
window.frames['Inferior'].document.location.href="VeurePerfil.php?edicio=1";
}

function analisi(cmt, obe, com, nobe, ncom) {
paramsAdd="";
if (cmt>0) {
	paramsAdd = "&comentada=" + cmt;
	eP = existeixPartida(-cmt);
	p_a=retornaPartida(-cmt);
//	if (eP) return;
} else {
	if (obe!=undefined) paramsAdd += "&obertura="+obe;
	if (com!=undefined) paramsAdd += "&comentada="+com;
	if (nobe!=undefined) paramsAdd += "&obenum="+nobe;
	if (ncom!=undefined) paramsAdd += "&comnum="+ncom;
}
window.frames['Inferior'].document.location.href="Inferior.php?accio=ANALISI" + paramsAdd;
}
function analisidespres() {
	titol="<br>";
	if (comentadestitol) titol+=comentadestitol + "<br>";
	if (comentadestitol) titol+=comentadestitol + "<br>";
	posaTitol(titol, 2);
	
	escriu_text(obertures + "<br><br>" + comentades);
}
function posaTitol(titol, colTitol) {
i_p=titol;
col_i_p=colTitol;
escriu_info_partida();
}

function posaTitolPart(blanques, cnxbl, negres, cnxne, txt, colTitol, txtAdicional) {
if (blanques=="") {
	i_p="<table><tr><td><div style='font-size: 14px; font-weight: bold; color: #003333'><br>" + txt + "</div></td></tr></table>";
} else {
	cnx = " <img src='imatges/connectat.gif' title='El teu oponent està connectat'>";
	if (txtAdicional!=undefined && !confJugada) txtA = "<br><div style='font-size: 10px; color: #003333'><a href=\"javascript:actualitzaConfirmar(1);\">No tens activada la confirmació de jugada. Si vols, pots activar-la fent clic aquí</a> o amb l'opció de menú LES MEVES DADES</div>"; else txtA = "";
	i_p="<table><tr><td width=30><img src='imatges/logopetit" + p_a.tipus + ".gif'></td><td>" + blanques + " (<a href=\'javascript:veurePerfil(\"" + blanques + "\"," + p_a.partida + ")\' title=\'Veure fitxa\'>+</a>)" + (cnxbl?cnx:"") + " - " + negres + " (<a href=\'javascript:veurePerfil(\"" + negres + "\"," + p_a.partida + ")\' title=\'Veure fitxa\'>+</a>)" + (cnxne?cnx:"") + "<br><br><div style='font-size: 14px; font-weight: bold; color: #003333'>" + txt + "</div>"+ txtA +"</td></tr></table>";
}
col_i_p=colTitol;
escriu_info_partida();
}

function valsPartida(prt, ncoms, blq, tr, smf ,cnd) {
if (prt) {
	document.forms['com'].partida.value=prt;
	document.forms['com'].num_coms_tauler.value=ncoms;
	document.forms['com'].num_com.value=ncoms;
	p_a.dibuixa_moviments();
}
bloquejar=blq;
p_a.escriu_comentaris();
tira=tr;
semafor=smf;
cond=cnd;
}

function carregaPortada(conn, tiraC, primeraC, sabies, posicio, prblText, prblDia, prblSolucio, colSolucio) {
tira=tiraC;
p_a=retornaPartida(0);
colorusuari=colSolucio;
pintatauler();
coloca_tauler();

txtP="<div class='titol1'><br>PROBLEMA D\'" + (prblDia==0?"AVUI":(prblDia==1?"AHIR":"ABANS D'AHIR")) + ": " + prblText + "<br><br>";
if (conn) {
	if (prblDia) txtP+= "Solució: " + prblSolucio + "<br><br>";
	if (prblDia!=0) txtP+= "<a href='javascript:carregaText(\"Portada_XAT\")' title=\"Veure el problema d'avui\">Problema d'avui</a><br>";
	if (prblDia!=1) txtP+= "<a href='javascript:carregaText(\"Portada_Ahir\")' title=\"Veure el problema d'ahir\">Problema d'ahir</a><br>";
	if (prblDia!=2) txtP+= "<a href='javascript:carregaText(\"Portada_AbansAhir\")' title=\"Veure el problema d'abans d'ahir\">Problema d'abans d'ahir</a><br>";
	txtP += "<a href='javascript:carregaText(\"LLPRB\")' title=\"Veure resultats de problemes anteriors\"><strong>Veure resultats de problemes anteriors</strong></a>";
	txtP += "<br>&nbsp;</div>";
	if (primeraC) txtP += "<div class='cf'><table><tr height=10><td><a href='primeraConnexio.html' target='primeraConnexio' title='Informació bàsica del web'>No saps com funciona aquest web? Fes clic aquí</a></td></tr></table></div>";
//	if (sabies) txtP += sabiesText;
//	else txtP += enigmaliaText;
	txtP += sabiesText;//
	canviaConversa();
} else {
	missIn="<table width='100%' border='0' valign='top'><tr valign='top'><td><div class='notic1'><span style=\"font-size:12px\"><strong>Millors puntuacions</strong></span><br>" + top10peuTauler + "</div></td><td><div class='notic4'>";	
	missFi="<br><span class='subtitol1'>Ja pots resoldre problemes d'escacs en línia!!! Per fer-ho, només t'has de connectar i fer el primer moviment de la solució. Si és correcte, sumaràs punts per la classificació mensual.</span><br><br></div></td></tr></table>";
	carregaBotonera(missIn + "<p style=\"font-size:12px\"><strong>PROBLEMA D'AVUI: " + prblText + "</strong></p>" + missFi);
	txtP = "<table><tr'><td width=5%></td><td width=95%></td><td></td></tr><tr class='portada2'><td colspan=2><strong>Benvingut a Escaquejant !!!</strong></td></tr><tr class='portada1'><td></td><td>El portal de joc d'escacs en línia on jugar sense presses i gaudir dels escacs i d'algunes de les seves variants.<br><br></td></tr><tr class='portada2'><td colspan=2>Juga partides al teu ritme</td></tr><tr class='portada1'><td></td><td>En línia (coincidint amb el teu oponent) o de forma diferida (si ara mateix no està connectat).<br><br>Amb aquest darrer mode, que serà el més habitual, pots moure i desconnectar després. Quan el teu contrincant es connecti veurà el teu moviment, jugarà, i tu podràs respondre quan entris novament al web consultant les partides en curs.<br><br></td></tr><tr class='portada2'><td colspan=2>Resol el problema diari</td></tr><tr class='portada1'><td></td><td>Només t'has de connectar i fer el primer moviment de la solució. Si és correcta, acumularàs punts en el rànquing mensual.<br><br></td></tr><tr class='portada2'><td colspan=2>Descobreix variants dels escacs</td></tr><tr class='portada1'><td></td><td><a href='javascript:carregaContingut(\"MODALITATS\",\"Portada\")'>Si t'agrada provar coses noves, juga a alguna de les variants disponibles a Escaquejant: Fischer-Random, a Cegues, d'Intercanvi, Amazona, Nuclear, Cilíndrica i Tauler buit.</a><br><br></td></tr><tr class='portada2'><td colspan=2>Juga la Lliga i Tornejos Temàtics</td></tr><tr class='portada1'><td></td><td>Millora el teu repertori d'obertures apuntant-te a un torneig temàtic. I competeix a la lliga per mantenir-te a la teva divisió i intentar ascendir.<br><br></td></tr><tr class='portada2'><td colspan=2>Si vols saber més coses</td></tr><tr class='portada1'><td></td><td><a href='javascript:carregaContingut(\"AJUDA\",\"Portada\")'>d'Escaquejant, visita l'ajuda en línia.</a><br><br></td></tr></table>";
	dShw('text',0); 
}

	eval(dGet('infopartida')+".style.background='#fff'");
	dWrt('infopartida',txtP);
	dShw('infopartida',1);

actualitzaabsolut(posicio, colSolucio, 0, 1);
bloquejar=0;
cond=0;
refresc=1;
}