//	<![CDATA[

// Stale ustawiajace parametry wyswietlacza
//rozmiar w pixelach jednej diody
_cell_size=7;
//ilosc wierszy
_rows=7;
//ilosc kolumn
_columns=95;
//kolor dioddy zaswieconej
_color_on="red";
//kolor diody wygaszonej
_color_off="#800000";

  znak_tab = this;
  znak_tab[ 32] = "3344..................................."; //  
  znak_tab[ 33] = "3317..*....*....*....*..............*.."; // !
  
  znak_tab[ 40] = "2417...*...*...*....*....*.....*.....*."; // (
  znak_tab[ 41] = "2417.*.....*.....*....*....*...*...*..."; // )
  znak_tab[ 42] = "1526.......*..*.*.*.***.*.*.*..*......."; // *
  znak_tab[ 43] = "1526.......*....*..*****..*....*......."; // +
  znak_tab[ 44] = "2357.....................**....*...*..."; // ,
  znak_tab[ 45] = "1544...............*****..............."; // -
  znak_tab[ 46] = "2367..........................**...**.."; // .
  znak_tab[ 47] = "1526.........*...*...*...*...*........."; // /
  znak_tab[ 48] = "1517.***.*...**..***.*.***..**...*.***."; // 0
  znak_tab[ 49] = "2417..*...**....*....*....*....*...***."; // 1
  znak_tab[ 50] = "1517.***.*...*....*...*...*...*...*****"; // 2
  znak_tab[ 51] = "1517*****...*...*.....*.....**...*.***."; // 3
  znak_tab[ 52] = "1517...*...**..*.*.*..*.*****...*....*."; // 4
  znak_tab[ 53] = "1517******....****.....*....**...*.***."; // 5
  znak_tab[ 54] = "1517..**..*...*....****.*...**...*.***."; // 6
  znak_tab[ 55] = "1517******...*....*...*...*....*....*.."; // 7
  znak_tab[ 56] = "1517.***.*...**...*.***.*...**...*.***."; // 8
  znak_tab[ 57] = "1517.***.*...**...*.****....*...*..**.."; // 9
  znak_tab[ 58] = "2326......**...**........**...**......."; // :
  znak_tab[ 59] = "2327......**...**........**....*...*..."; // ;
  znak_tab[ 60] = "1417...*...*...*...*.....*.....*.....*."; // <
  znak_tab[ 61] = "1535..........*****.....*****.........."; // =
  znak_tab[ 62] = "2517.*.....*.....*.....*...*...*...*..."; // >
  znak_tab[ 63] = "1517.***.*...*....*...*...*.........*.."; // ?
  znak_tab[ 64] = "1517.***.*...*....*.**.**.*.**.*.*.***."; // @
  znak_tab[ 65] = "1517.***.*...**...*******...**...**...*"; // A
  znak_tab[ 66] = "1517****.*...**...*****.*...**...*****."; // B
  znak_tab[ 67] = "1517.***.*...**....*....*....*...*.***."; // C
  znak_tab[ 68] = "1517****.*...**...**...**...**...*****."; // D
  znak_tab[ 69] = "1517******....*....****.*....*....*****"; // E
  znak_tab[ 70] = "1517******....*....****.*....*....*...."; // F
  znak_tab[ 71] = "1517.***.*...**....*.****...**...*.***."; // G
  znak_tab[ 72] = "1517*...**...**...*******...**...**...*"; // H
  znak_tab[ 73] = "3317..*....*....*....*....*....*....*.."; // I
  znak_tab[ 74] = "1517*****....*....*....*....**...*.***."; // J
  znak_tab[ 75] = "1517*...**..*.*.*..**...*.*..*..*.*...*"; // K
  znak_tab[ 76] = "1517*....*....*....*....*....*....*****"; // L
  znak_tab[ 77] = "1517*...***.***.*.**.*.**...**...**...*"; // M
  znak_tab[ 78] = "1517*...**...***..**.*.**..***...**...*"; // N
  znak_tab[ 79] = "1517.***.*...**...**...**...**...*.***."; // O
  znak_tab[ 80] = "1517****.*...**...*****.*....*....*...."; // P
  znak_tab[ 81] = "1517.***.*...**...**...**.*.**..*..**.*"; // Q
  znak_tab[ 82] = "1517****.*...**...*****.*.*..*..*.*...*"; // R
  znak_tab[ 83] = "1517.*****....*.....***.....*....*****."; // S
  znak_tab[ 84] = "1517*****..*....*....*....*....*....*.."; // T
  znak_tab[ 85] = "1517*...**...**...**...**...**...*.***."; // U
  znak_tab[ 86] = "1517*...**...**...**...**...*.*.*...*.."; // V
  znak_tab[ 87] = "1517*...**...**...**.*.**.*.**.*.*.*.*."; // W
  znak_tab[ 88] = "1517*...**...*.*.*...*...*.*.*...**...*"; // X
  znak_tab[ 89] = "1517*...**...**...*.*.*...*....*....*.."; // Y
  znak_tab[ 90] = "1517*****....*...*...*...*...*....*****"; // Z
  znak_tab[ 91] = "2417.***..*....*....*....*....*....***."; // [
  znak_tab[ 92] = "1526.....*.....*.....*.....*.....*....."; // \
  znak_tab[ 93] = "2417.***....*....*....*....*....*..***."; // ]
  znak_tab[ 94] = "1513..*...*.*.*...*...................."; // ^
  znak_tab[ 95] = "1577..............................*****"; // _
  znak_tab[ 96] = "2413.*.....*.....*....................."; // `
  znak_tab[ 97] = "1537...........***.....*.*****...*.****"; // a
  znak_tab[ 98] = "1517*....*....*.**.**..**...**...*****."; // b
  znak_tab[ 99] = "1537...........***.*....*....*...*.***."; // c
  znak_tab[100] = "1517....*....*.**.**..***...**...*.****"; // d
  znak_tab[101] = "1537...........***.*...*******.....***."; // e
  znak_tab[102] = "1517..**..*..*.*...***...*....*....*..."; // f
  znak_tab[103] = "1517......*****...**...*.****....*.***."; // g
  znak_tab[104] = "1517*....*....*.**.**..**...**...**...*"; // h
  znak_tab[105] = "2417..*........**....*....*....*...***."; // i
  znak_tab[106] = "1417...*........**....*....*.*..*..**.."; // j
  znak_tab[107] = "1417*....*....*..*.*.*..**...*.*..*..*."; // k
  znak_tab[108] = "2417.**....*....*....*....*....*...***."; // l
  znak_tab[109] = "1537..........**.*.*.*.**.*.**...**...*"; // m
  znak_tab[110] = "1537..........*.**.**..**...**...**...*"; // n
  znak_tab[111] = "1537...........***.*...**...**...*.***."; // o
  znak_tab[112] = "1537..........****.*...*****.*....*...."; // p
  znak_tab[113] = "1537...........**.**..**.****....*....*"; // q
  znak_tab[114] = "1537..........*.**.**..**....*....*...."; // r
  znak_tab[115] = "1537...........***.*.....***.....*****."; // s
  znak_tab[116] = "1517.*....*...***...*....*....*..*..**."; // t
  znak_tab[117] = "1537..........*...**...**...**..**.**.*"; // u
  znak_tab[118] = "1537..........*...**...**...*.*.*...*.."; // v
  znak_tab[119] = "1537..........*...**.*.**.*.**.*.*.*.*."; // w
  znak_tab[120] = "1537..........*...*.*.*...*...*.*.*...*"; // x
  znak_tab[121] = "1537..........*...**...*.****....*.***."; // y
  znak_tab[122] = "1537..........*****...*...*...*...*****"; // z
  znak_tab[246] = "1517.*.*.......***.*...**...**...*.***."; // ö

/**
 *  Funkcja wypisujaca komunikat na ekran (cos jak std::err)
 **/
function err(text)
{
 var debug=document.getElementById("debug");
 debug.innerHTML+=text+"<br /> ";
}

/**
 *  Tworzy wirtualna matryce , ustawia wszyskie wartosci poczatkowe
 **/
function build_matryca()
{

var matryca=document.getElementById("matryca");
matryca.style.height=_cell_size*_rows+"px";
matryca.style.width=_cell_size*(_columns)+"px";
matryca.style.border="1px solid black";
matryca.style.backgroundColor=_color_off;
document.getElementById("conf").style.width=_cell_size*(_columns)+2+"px";

/* to zaczyna działa pod IE ..a le daj dupa
err("L="+matryca.style.left);
for(row=0;row<_rows;row++) 
{
 for(column=0;column<_columns;column++)
  {
    var dioda= document.createElement("div");
    dioda.style.height=_cell_size-2 + "px";
    dioda.style.width=_cell_size-2  + "px";
    dioda.id="pix"+row+"x"+column;
    dioda.style.border="1px solid black";
    //dioda.style.pixelTop="50px";
    //dioda.style.pixelLeft="50px";
    //dioda.style.cssFloat="left";
    ///dioda.styleFloat="left";
    dioda.style.position="absolute";
    
    dioda.style.top=_cell_size*row+"px";
    dioda.style.left=_cell_size*column+"px";
    matryca.appendChild(dioda);
//    dioda.setAttribute("style","float:left");
    //dioda.style.pixelTop=0;
    //dioda.style.pixelLeft=_cell_size*column;
  }
}*/


/* działa pod FF*/
for(row=0;row<_rows;row++) 
{
 var div_row= document.createElement("div");
 div_row.style.height=_cell_size;
 div_row.style.width=_cell_size*_columns;

 matryca.appendChild(div_row);
 
 for(column=0;column<_columns;column++)
  {
    var dioda= document.createElement("div");
    dioda.style.height=_cell_size-2 + "px";
    dioda.style.width=_cell_size-2  + "px";
    dioda.id="pix"+row+"x"+column;
    dioda.style.border="1px solid black";
    dioda.style.cssFloat="left";
    dioda.styleFloat="left";
    div_row.appendChild(dioda);
  }
}

};

/**
 *  Zaswieca pixel o wspolrzednej x,y
 **/
function putpixel(x,y)
{
 var dioda=document.getElementById("pix"+y+"x"+x);
 dioda.style.backgroundColor=_color_on;
};

/**
 *  Gasi pixel w wspolrzednej x,y
 **/
function clearpixel(x,y)
{
 var dioda=document.getElementById("pix"+y+"x"+x);
 dioda.style.backgroundColor=_color_off;
};

/**
 *  Ustawia(s==1) / Gasi (s==0) pixel x,y
 **/
function pixel(x,y,s)
{
 if(s)
   putpixel(x,y);
 else  
   clearpixel(x,y);  
};

/**
 *  Zwraca czy pixel jest ustawiony czy nie
 **/
function getpixel(x,y)
{
 var dioda=document.getElementById("pix"+y+"x"+x);
 
 if(dioda.style.backgroundColor==_color_on)
   return 1;
 else  
   return 0;  
};

/**
 *  czysci wiersz o indexie y
 **/
function clearrow(y)
{
  for (x=0;x<_columns;x++)
     clearpixel(x,y);	
};
/**
 *  czysci kolumne o indexie x
 **/
function clearcolumn(x)
{
   for (y=0;y<_rows;y++)
     clearpixel(x,y);	
};

/**
 *  czysci cala matryce
 **/
function clearled()
{
  for (x=0;x<_columns;x++)
   for (y=0;y<_rows;y++)
     clearpixel(x,y);
};

/**
 * Wyswietla znak od pozycji pos 
 **/
function putchar(znak,pos)
{
  for (y=0;y<7;y++)
    for (x=0;x<5;x++)
       if (znak_tab[znak.charCodeAt(0)].substring(4+y*5+x,4+y*5+x+1) == "*")
         putpixel(pos+x,y)
};

/**
 *  Wyswietla lancuch textowy od pozycji pos
 **/
function print(text,pos)
{
  for (i=0;i<text.length;i++)
  {
     putchar(text.substring(i,i+1),pos);
     pos+=6;
  }   
};



var timerID = null;
var timerRunning = false;
var klatka=0;

var timerZjazd = null;

function print_napis(){
 nap=document.getElementById("napis");
 err(nap.value);
 clearled();
 print(nap.value,0);
 stopclock();
 timerID = setTimeout("showtime()",3000); 
}



function stopclock()
{
 clearTimeout(timerID)    
 timerRunning = false;
}

function startclock()
{
  stopclock();	
  showtime();
}

function showtime()
{  
  clearled();
  if(klatka<7)
  {
   var now = new Date();
   var hours = now.getHours();
   var minutes = now.getMinutes();
   var seconds = now.getSeconds();
   var timeValue = ""+ hours;
   timeValue  += ((minutes < 10) ? ":0" : ":") + minutes;
   timeValue  += ((seconds < 10) ? ":0" : ":") + seconds;
   print(timeValue,25);
   timerID = setTimeout("showtime()",1000); 
   klatka++;
  }
  else
  {
   print("-4.2 *C",25);
   timerID = setTimeout("showtime()",3000); 
   klatka=1;
  }
    
  timerRunning = true;
}




var step=0;
var tryb=0;

var _zjazdSpeed=100;

function zjazdStart(x)
{
step=0;
tryb=x;
zjazd();
}

function zjazd()
{
var i,j;
stopclock();

switch ( tryb )
{
case 1: 
	{
        
       	if(step<_rows-1) {
		  for (x=0;x<_columns;x++)
            for (y=0;y<_rows-1;y++)
    			pixel(x,y,getpixel(x,y+1));
          clearrow(_rows-step-1);
          step++;	  
          timerZjazd = setTimeout("zjazd()",_zjazdSpeed); 
    	 }
    	else if(step==_rows-1){
		  clearrow(_rows-step-1);
	      step++;	  
	      timerZjazd = setTimeout("zjazd()",_zjazdSpeed); 	    	 
    	 }    	 
    	else 
          {    	
    	  step=0; 
    	  startclock();
    	  }
		break;
	}
case 2: 
	{
       	if(step<_rows-1){
		  for (x=0;x<_columns;x++)
            for (y=_rows-1;y>0;y--)
    			pixel(x,y,getpixel(x,y-1));
		  clearrow(step);
          step++;	  
	      timerZjazd = setTimeout("zjazd()",_zjazdSpeed); 
    	 }
    	else if(step==_rows-1){
		  clearrow(step);
	      step++;	  
	      timerZjazd = setTimeout("zjazd()",_zjazdSpeed); 	    	 
    	 }
    	else{    	
    	  step=0; 
    	  startclock();
    	 }
		break;
	}
	
case 3: 
	{
       	if(step<_columns-1){
	       	
		  for (x=0;x<_columns-1;x++)
            for (y=0;y<_rows;y++)
    			pixel(x,y,getpixel(x+1,y));
		  clearcolumn(_columns-step-1);
          step++;	  
	      timerZjazd = setTimeout("zjazd()",_zjazdSpeed); 
    	 }
    	else if(step==_columns-1){
		  clearcolumn(0);
	      step++;	  
	      timerZjazd = setTimeout("zjazd()",_zjazdSpeed); 	    	 
    	 }
    	else{    	
    	  step=0; 
    	  startclock();
    	 }
		break;
	}
	
case 4: 
	{
       	if(step<_columns-1){
	       	
		  for (x=_columns-1;x>0;x--)
            for (y=0;y<_rows;y++)
    			pixel(x,y,getpixel(x-1,y));
		  clearcolumn(step);
          step++;	  
	      timerZjazd = setTimeout("zjazd()",_zjazdSpeed); 
    	 }
    	else if(step==_columns-1){
		  clearcolumn(step);
	      step++;	  
	      timerZjazd = setTimeout("zjazd()",_zjazdSpeed); 	    	 
    	 }
    	else{    	
    	  step=0; 
    	  startclock();
    	 }
		break;
	}

}
}

/*
 * Pokazuje element o danej nazwie
 */

function showEl(nazwa)
{
  document.getElementById(nazwa).style.visibility="visible";
  document.getElementById(nazwa).style.position="static";	
}

/*
 * Chowa element o danej nazwie
 */

function hideEl(nazwa)
{
  document.getElementById(nazwa).style.visibility="hidden";
  document.getElementById(nazwa).style.position="fixed";	
}

function expertShow()
{
var expertconf=document.getElementById("expertconf");
zarzadzajKlatkami(); 

if(expertconf.style.visibility=="visible"){
  hideEl('expertconf');
  hideEl("klatka1");
  hideEl("klatka2");
  hideEl("klatka3");
  hideEl("klatka4");
  }
else 
  showEl('expertconf');
}

function zarzadzajKlatkami()
{
var klatek=document.getElementById("klatek").value;	


switch(klatek){
	case '1':
	 	   showEl('klatka1');
	 	   hideEl('klatka2');
	 	   hideEl('klatka3');
	 	   hideEl('klatka4');
	 	   break;
	case '2':
	 	   showEl('klatka1');
	 	   showEl('klatka2');
	 	   hideEl('klatka3');
	 	   hideEl('klatka4');
	 	   break;
	case '3':
	 	   showEl('klatka1');
	 	   showEl('klatka2');
	 	   showEl('klatka3');
	 	   hideEl('klatka4');
	 	   break 	   ;
	case '4':
	 	   showEl('klatka1');
	 	   showEl('klatka2');
	 	   showEl('klatka3');
	 	   showEl('klatka4');
	 	   break 	   ;
	default:
    	   break;	 	   
}

}

build_matryca();
startclock();

//	]]>

