var uno = null;
var dos = null;
var tres = null;
var cuatro = null;
var nombre = new Array();
var flag = 0;
var tabique = new Array();

/* empieza lo de tabique */

function click(x) {
if (x == 0) {
	tabique[1] = 0;
	tabique[2] = 1;
	nombre[0] = top.decoracion;
	writ(1, 0);
	setTimeout('salteado(1, 1)', 1000);
	}

if (x == 1) {
	search(1, 1);
	setTimeout('writt(1, 1)', 2000);
	setTimeout('salteado1()', 5000);
}

if (x == 2) {
	search(2, 1);
	setTimeout('writt(2, 1)', 4000);
	setTimeout('salteado2()', 8000);
}

if (x == 3) {
	search(3, 1);
	setTimeout('writt(3, 1)', 8000);
	setTimeout('salteado3()', 16000);
}

if (x == 4) callme_please(16, 4);

x++;
x = x % 5;
document.getElementById('counter').innerHTML = x;
contar = x;
}

function search(i, j) {
if (i/2 == Math.floor(i/2)) {
	if (tabique[j] == 0) {
		nombre[ene(j, i)].document.write('<html></html>');
		nombre[ene(j, i)].document.close();
		}
	}
else {
	if (tabique[j] == 1) {
		nombre[ene(j, i)].document.write('<html></html>');
		nombre[ene(j, i)].document.close();
		}
	}
j++;
if (j <= Math.pow(2, i)) setTimeout('search(' + i + ',' + j + ')', 1000);
}

function writt(i, j) {
if (i/2 == Math.floor(i/2)) {
	if (tabique[j] == 0) { vert(j, i); }
	}
else {
	if (tabique[j] == 1) { hor(j, i); }
}
nombre[2*ene(j, i) + 1] = nombre[ene(j, i)].a;
nombre[2*ene(j, i) + 2] = nombre[ene(j, i)].b;
j++;
if (j <= Math.pow(2, i)) setTimeout('writt(' + i + ',' + j + ')', 1000);
}

function salteado(k, l)
{
	if (tabique[l] == 0)
		hor(l, k);
	else
		vert(l, k);
	nombre[2*ene(l, k) + 1] = nombre[ene(l, k)].a;
	nombre[2*ene(l, k) + 2] = nombre[ene(l, k)].b;
	l++;
	if (l <= Math.pow(2, k))
		dos = setTimeout("salteado(" + k + "," + l + ")", 1000); 
}	

function salteado1() {
tabique[1] = 1;
tabique[2] = 0;
tabique[3] = 0;
tabique[4] = 1;
salteado(2, 1);
}

function salteado2() {
tabique[1] = 0;
tabique[2] = 1;
tabique[3] = 1;
tabique[4] = 0;
tabique[5] = 0;
tabique[6] = 1;
tabique[7] = 1;
tabique[8] = 0;
salteado(3, 1);
}

function salteado3() {
tabique[1] = 1;
tabique[2] = 0;
tabique[3] = 0;
tabique[4] = 1;
tabique[5] = 1;
tabique[6] = 0;
tabique[7] = 0;
tabique[8] = 1;
tabique[9] = 1;
tabique[10] = 0;
tabique[11] = 0;
tabique[12] = 1;
tabique[13] = 1;
tabique[14] = 0;
tabique[15] = 0;
tabique[16] = 1;
salteado(4, 1);
}

/* termina lo de tabique */

/* empieza browser detect de quirksmode.org */
var detect = navigator.userAgent.toLowerCase();
var OS,browser,version,total,thestring;

if (checkIt('konqueror'))
{
        browser = "Konqueror";
        OS = "Linux";
}
else if (checkIt('safari')) browser = "Safari"
else if (checkIt('omniweb')) browser = "OmniWeb"
else if (checkIt('opera')) browser = "Opera"
else if (checkIt('webtv')) browser = "WebTV";
else if (checkIt('icab')) browser = "iCab"
else if (checkIt('msie')) browser = "Internet Explorer"
else if (!checkIt('compatible'))
{
        browser = "Netscape Navigator"
        version = detect.charAt(8);
}
else browser = "An unknown browser";

if (!version) version = detect.charAt(place + thestring.length);

if (!OS)
{
        if (checkIt('linux')) OS = "Linux";
        else if (checkIt('x11')) OS = "Unix";
        else if (checkIt('mac')) OS = "Mac"
        else if (checkIt('win')) OS = "Windows"
        else OS = "an unknown operating system";
}

function checkIt(string)
{
        place = detect.indexOf(string) + 1;
        thestring = string;
        return place;
}
/* termina browser detect de quirksmode.org */

function ene(k, l)
{
	if (l == 0)
		return 0;
	else
		return k - 2 + Math.pow(2, l);
}

function vert(k, l)
{
	nombre[ene(k, l)].document.write('<frameset cols="50%,50%">');
	if (browser == "Safari") {
		nombre[ene(k, l)].document.write('<frame name=a scrolling=no>');
		nombre[ene(k, l)].document.write('<frame name=b scrolling=no>');
	}
	else {
		nombre[ene(k, l)].document.write('<frame src="about:blank" name=a scrolling=no>');
		nombre[ene(k, l)].document.write('<frame src="about:blank" name=b scrolling=no>');
	}
	nombre[ene(k, l)].document.write('</frameset>');
	nombre[ene(k, l)].document.close();
}

function hor(k, l)
{
	nombre[ene(k, l)].document.write('<frameset rows="50%,50%">');
	if (browser == "Safari") {
		nombre[ene(k, l)].document.write('<frame name=a scrolling=no>');
		nombre[ene(k, l)].document.write('<frame name=b scrolling=no>');
	}
	else {
		nombre[ene(k, l)].document.write('<frame src="about:blank" name=a scrolling=no>');
		nombre[ene(k, l)].document.write('<frame src="about:blank" name=b scrolling=no>');
	}
	nombre[ene(k, l)].document.write('</frameset>');
	nombre[ene(k, l)].document.close();
}

function writ(k, l)
{
	if (l/2 == Math.floor(l/2))
		vert(k, l);
	else
		hor(k, l);
	nombre[2*ene(k, l) + 1] = nombre[ene(k, l)].a;
	nombre[2*ene(k, l) + 2] = nombre[ene(k, l)].b;
	if (flag == 1) {
		tres = setTimeout("callme_please(" + k + "," + l + ")", 1000);
		clearTimeout(uno);
	};
	k++;
	if (k <= Math.pow(2, l) && !(flag == 1)) {
		dos = setTimeout("writ(" + k + "," + l + ")", 1000); 
		};
	if (l == 7 && k == 129) { flag = 3; }
}	

function callme(j, i)
{
	tiempo = 1000 * (Math.pow(2, i) - j - 1) + 2000;
	writ(j, i); 
	i++;
	j = 1;
	if (i < 8) {
		uno = setTimeout("callme(" + j + "," + i + ")", tiempo);
		if (flag == 1) { 
			clearTimeout(uno);
		};
	};
}

function undo(k, l)
{
	nombre[ene(k, l)].document.write('<html></html>');
	nombre[ene(k, l)].document.close();
	if (flag == 2) {
		clearTimeout(tres);
		uno = setTimeout("callme(" + k + "," + l + ")", 1000);
	};
	k--;
	if (1 <= k && !(flag == 2)) {
		cuatro = setTimeout("undo(" + k + "," + l + ")", 1000);
	};
}

function callme_please(j, i)
{
	tiempo = 1000 * (j + 1) + 2000;
	undo(j, i); 
	i--;
	j = Math.pow(2, i);
	if (0 <= i) { 
		tres = setTimeout("callme_please(" + j + "," + i + ")", tiempo);
	};
	if (flag == 2) {
		clearTimeout(tres);
	};
	if (i == 0) flag = 0;
}

function botton_fwd()
{
	if (flag == 0) {
		nombre[0] = parent.arriba;
		flag = 2;
		callme(1, 0);
	};
	if (flag == 1) flag = 2;
}

function botton_rwd()
{
	if (flag == 3) { callme_please(128, 7); flag = 1; }
	if (flag == 2) flag = 1;
}
