var dragapproved=false
var z
var ctrash, cdropped
ctrash=0
cdropped=0
dragpositionleft = new Array();
dragpositiontop = new Array();


function move(){
        if (event.button==1&&dragapproved){
                z.style.pixelLeft=temp1+event.clientX-x
                z.style.pixelTop=temp2+event.clientY-y
                return false
        }
}

function drops()
{
        if (!dragapproved) return false;

        document.onmousemove=""
        document.onmousedown=drags
        dragapproved=false

        w=28
        h=25
        count = 0;

        x = z.offsetLeft + w/2;        
        y = z.offsetTop  + h/2;        

        var o,j,u;

	u = document.all('board').getElementsByTagName("U")

        for (j=0;j<u.length;j++)
        {
                o = u(j)
                if (o.className.substr(0,3)=="fix")
                {
                        if (x>o.offsetLeft && x<o.offsetLeft+w && y>o.offsetTop && y<o.offsetTop+h )
                        {
                                if (!busy(o.id))
                                {
                                        if (z.className== "trashed") ctrash--;

                                        z.style.pixelLeft = o.offsetLeft - offsetx + temp1
                                        z.style.pixelTop = o.offsetTop - offsety + temp2
                                        z.className = "dropped"
                                        letter = z.innerText.toString();

                                        switch(letter)        
                                        {
                                                case "CH5": letter = "!";break;
                                                case "LL8": letter = "#";break;
                                                case "RR8": letter = "$";break;
                                                case "Z10": letter = "Z";break;
                                                default: letter = letter.substr(0,letter.length-1);
                                        }

                                        z.id = o.id + letter


                                        count = 1;
                                        cdropped++

                                        break;
                                }
                        }
                }else
                if (o.className=="drag" && z.className=="drag" && o.outerHTML!=z.outerHTML)
                {
                        if (x>o.offsetLeft && x<o.offsetLeft+w && y>o.offsetTop && y<o.offsetTop+h )
                        {

				z.style.left = ""
				z.style.top = ""
				spanz = z.outerHTML
				z.outerHTML = o.outerHTML
				o.outerHTML = spanz


				//Grabo la ubicacion
				code = generatecode()
				var exp = new Date()
				var oneYear = exp.getTime() + (60000 * 60 * 24 * 8)
				exp.setTime(oneYear)

				document.cookie = "letterscode_" + play.namenative.value + "_" + play.game.value + "="+escape(code)+";expires=" + exp.toGMTString(); 
				
                                count = 1;

                                break;
                        }
                }else
                if (o.className=="trash")
                {
                        if (x>o.offsetLeft && x<o.offsetLeft+w && y>o.offsetTop && y<o.offsetTop+h )
                        {
                                if (z.className== "dropped")
                                {
                                        temp1=0
                                        temp2=0
                                        cdropped--
                                }

                                if (z.className!= "trashed")
                                {
                                        z.className = "trashed"
                                        z.id = getletter(z)
                                        ctrash++
                                }else{
                                        z.className = "drag"
                                        z.id = ""
                                        ctrash--
                                }

                                break;
                        }
                }
        }

        //Si no pegue en el tablero vuelvo
        if (count==0)
        {
                if (z.className=="dropped")
                {
                        temp1=0
                        temp2=0        
                        
                        z.className="drag"
                        cdropped--
                        z.id = ""
                }
                z.style.pixelLeft=temp1
                z.style.pixelTop=temp2
        }
        
        z.style.zIndex = 9;
}

function drags()
{
if (!document.all)
        return;

z=event.srcElement

if (z.tagName=="B" || z.tagName=="S")
{
        z = z.parentElement;
}

zclass=z.className

if ((zclass=="drag") || (zclass=="dropped") || (zclass=="trashed"))
{
        z.id = ""

        document.onmousedown=""
        dragapproved=true
        
        temp1=z.style.pixelLeft
        temp2=z.style.pixelTop

        offsetx=z.offsetLeft
        offsety=z.offsetTop

        x=event.clientX
        y=event.clientY

        z.style.zIndex = 10;
        document.onmousemove=move
}
}

document.onmousedown=drags
document.onmouseup=drops

function busy(id)
{
        var o,j,u;

	u = document.all('board').getElementsByTagName("U")

        for (j=0;j<u.length;j++)
        {
                o = u(j)
                if (o.className=="dropped")
                        if (o.id.substr(0,4)==id)
                                return true;
        }
        return false;
}

function fillform()
{
	var u = document.all('board').getElementsByTagName("U")

        document.all("coloca").value = "";
        document.all("cambia").value = "";

        for (j=0;j<u.length;j++)
        {
                o = u(j)
                if (o.className=="dropped")
                {
                        document.all("coloca").value += o.id + " ";
                }else
                if (o.className=="trashed"){
                        document.all("cambia").value += getletter(o) + " ";
                }
        }
}

function formoff()
{
        sta(true);
}


function sta(b)
{
        if (document.all("colocar"))
        {
                document.all("colocar").disabled=b;
                document.all("cambiar").disabled=b;
                document.all("pasar").disabled=b;
                document.all("rechazar").disabled=b;
        }
}

function rep(id,str)
{
        if (document.all(id))
                document.all(id).outerHTML = str
}

function rep2(id,str)
{
        if (document.all(id))
                document.all(id).innerHTML = str
}

function cleanused()
{
	var u = document.all('board').getElementsByTagName("U")

        for (j=0;j<u.length;j++)
                if (u(j).className=="lastused")
                        u(j).className = "used";
}

function recoverlastorder(code)
{

	if (sameletters(code))
	{
		c = code.split(" ")

		u = document.all('playerletters').all

		loop=1
	        for (j=0;j<u.length;j++)
        	{
	                o = u(j)

			if (o.parentElement.id=="trash")
			{		
			}
			else
			if (o.tagName=='S')
			{
				o.innerText = c[loop]
				loop++
			}
			else
			if (o.tagName=='B')
			{
				o.innerText = c[loop]

				switch(c[loop])	
				{
					case "CH": o.className="s";break;
					case "LL": o.className="s";break;
					case "RR": o.className="s";break;
					case "*":  o.className="comodin";break;
					default: o.className="";break;
				}

				loop++
			}
		}
	}
}

function generatecode()
{
	u = document.all('playerletters').all

	code = ""

        for (j=0;j<u.length;j++)
        {
                o = u(j)
		if (o.tagName=='S' || o.tagName=='B')
			if (o.innerText!="")
				code = code + " " + o.innerText
	}

	return code
}


function sameletters(code)
{
	c = code.split(" ")
	letters = generatecode()

	if (letters.length!=code.length) return false;

        for (j=1;j<c.length;j=j+2)
		if (c[j]!="")
			letters = letters.replace(" "+c[j]+" "+c[j+1],"");

	return letters==""
}


function getletter(tobj)
{
	tletter = tobj.innerText.toString();

	switch(tletter)        
        {
        	case "CH5": tletter = "!";break;
                case "LL8": tletter = "#";break;
                case "RR8": tletter = "$";break;
                case "Z10": tletter = "Z";break;
                default: tletter = tletter.substr(0,tletter.length-1);
	}

	return tletter
}

function cambiareplace(value)
{
	return value.replace("!","CH").replace("$","RR").replace("#","LL");
}

function comodinvalido(value)
{
	if (value=='') return false;

	value = value.toUpperCase();
	switch(value)
	{
		case "CH": value= "!";break;
		case "LL": value = "#";break;
		case "RR": value = "$";break;
	}

	alf = 'ABCDEFGHIJLMNÑOPQRSTUVXYZ!#$';

	if (alf.replace(value,"").length!=alf.length-1)
	{
		alert("El valor de comodín '" + value + "' no es correcto, debe escribir una ficha válida del juego.");
		return false;
	}else
		return true;
}


function banner2(s)
{
	o = document.all("banner2");

	if (s==null)
		o.style.display='none';
	else
	{
		o.style.left = document.all("0303").offsetLeft;
		o.style.top = document.all("0302").offsetTop;

		o.innerHTML= s //"<a style='float:right' href=javascript:// onclick=banner2() title=Cerrar>X</a>" + s;
		o.style.display='block';
	}
}

function zero(n)
{
	if (n<10) return "0" + n.toString();
	return n.toString();
}
