/*-----------------------------------------------------------*/
/*                       ZMIENNE                             */
/*-----------------------------------------------------------*/

/*----- zmienne konfiguracyjne ------------------------------*/

var szerokosc  = 500;	// szerokosc pola przesuwu suwaka
var rozmiar  	= 5;	// ilosc obrazkow w galerii

/*----- /zmienne konfiguracyjne -----------------------------*/

/*----- deklaracja i incjalizacja pozostalych zmiennych ----*/
var ie=document.all;
var nn6=document.getElementById&&!document.all;
var isdrag=false;
var x,y;
var dobj;
var tablicaObrazkow;

var top_trim 	= 1;
var left_trim 	= (nn6 ? -8 : 0);
var right_trim	= -26;

var przedzialy = 0;
var wyswietlany = 0;
var left_end = left_trim;
var right_end = 0;
var zaznaczony;
/*----- deklaracjai i incjalizacja pozostalych zmiennych ----*/



/*-----------------------------------------------------------*/
/*                       FUNKCJE                             */
/*-----------------------------------------------------------*/
// funkcja inicjujcaca obsluge zdarzen myszy, 
// sprawdzajaca czy pokazywac suwak, czy nie
// jako parametr - podac nalezy tablice sciezek do obrazkow galerii
function registerEvents(imgTable, rozm) {
	tablicaObrazkow = imgTable;
	rozmiar = rozm;
	zaznaczony = '10000';

	intervalID = setInterval(getScrollTopPosition, 1000);
	
	getScrollTopPosition();
	//left_end = getLeftOffset('scroll_linia') + left_trim;
	//right_end = left_end+szerokosc + right_trim;

	myScroller = document.getElementById('scroll_group');
	if (myScroller != undefined) {
		if ((myScroller.rows.length == 0) && (tablicaObrazkow.length>rozmiar)) {
			myScroller.insertRow(0);
			myRow = myScroller.rows[0];

			//myRow.innerHTML = '<td width="3"></td>';
			myRow.insertCell(0);
			myRow.cells[0].width=3;

			//myRow.innerHTML = myRow.innerHTML + '<td><div class="scroll_array_left" onclick="moveScroll(-1);"><img src="static/main/images/gallery/array_left.gif" width="13" height="13" border="0" alt=""></div></td>';
			myRow.insertCell(1);
			myRow.cells[1].innerHTML = '<div class="scroll_array_left" onclick="moveScroll(-1);"><img src="galery/array_left.gif" width="13" height="13" border="0" alt=""></div>';

			//myRow.innerHTML = myRow.innerHTML + '<td background="static/main/images/gallery/scroll_linia.gif" width="500" id="scroll_linia"><div id="scroll_suwak" class="scroll_suwak"><img src="static/main/images/gallery/suwak.gif" width="27" height="13" alt="" border="0"></div></td>';
			myRow.insertCell(2);
			myRow.cells[2].width=500;
			myRow.cells[2].id='scroll_linia';
			myRow.cells[2].background='galery/scroll_linia.gif';
			myRow.cells[2].innerHTML = '<div id="scroll_suwak class="scroll_suwak"><img src="galery/suwak.gif" width="27" height="13" alt="" border="0"></div>';

			//myRow.innerHTML = myRow.innerHTML + '<td><div class="scroll_array_right" onclick="moveScroll(1);"><img src="static/main/images/gallery/array_right.gif" width="13" height="13" border="0" alt=""></div></td>';
			myRow.insertCell(3);
			myRow.cells[3].innerHTML = '<div class="scroll_array_right" onclick="moveScroll(1);"><img src="galery/array_right.gif" width="13" height="13" border="0" alt=""></div>';
		}
	}
	
	mySuwak = document.getElementById('scroll_suwak');
	if (mySuwak != undefined) {
		mySuwak.style.left = left_end;
		//mySuwak.style.top = getTopOffset('scroll_linia')+top_trim;
		if (tablicaObrazkow.length>rozmiar) {
			przedzialy = tablicaObrazkow.length-rozmiar;
			document.onmousedown=selectmouse;
			document.onmouseup=new Function("isdrag=false");
		} else {
			mySuwak.innerHTML = '';
			myScroller = document.getElementById('scroll_group');
			if (myScroller != undefined) {
				myScroller.deleteRow(0);
			}
		}
	}
	
	reloadImages(0);
}

function getScrollTopPosition() {
	if (left_end == left_trim) {
		left_end = getLeftOffset('scroll_linia')+left_trim;
		right_end = left_end+szerokosc + right_trim;	
	}

	mySuwak = document.getElementById('scroll_suwak');
	if (mySuwak != undefined) {
		if (left_end == left_trim) {
			mySuwak.style.position = 'relative';
		} else {
			//if (intervalID != undefined) {
			//	clearInterval(intervalID);
			//	intervalID = undefined;
			//}
			mySuwak.style.position = 'absolute';
			mySuwak.style.top = getTopOffset('scroll_linia')+top_trim;

			if (mySuwak.style.left ==  left_trim+'px') {
				mySuwak.style.left = left_end;
			}
		}
	}
}

function getTopOffset(elid) {
	var el = document.getElementById(elid);
	var offset = 0;
	while (el != undefined) {
		//alert('Top: '+el+' -> '+el.offsetTop+ '('+offset+')');

		offset = offset + el.offsetTop;
		el = el.offsetParent;
	}
	return offset;
}

function getLeftOffset(elid) {
	var el = document.getElementById(elid);
	var offset = 0;
	while (el != undefined) {
		//alert('Left: '+el+' -> '+el.offsetLeft+ '('+offset+')');
	
		offset = offset + el.offsetLeft;
		el = el.offsetParent;
	}
	return offset;
}

// funkcja realizujaca obsluge ruchu myszy, 
// wywolywanie w okreslonym czasie przeladowania obrazkow
function movemouse(e) {
  if (isdrag) {
    aa = nn6 ? tx + e.clientX - x : tx + event.clientX - x;
	if (aa  < left_end) {aa = left_end;} 
	if (aa  > right_end) {aa = right_end;} 
	dobj.style.left = aa;

	zz = Math.round(przedzialy*(aa-left_end)/(right_end-left_end));
	if (zz != wyswietlany) {
		wyswietlany = zz;
		reloadImages(wyswietlany) 
	}
    return false;
  }
}

// funkcja wlaczajaca obsluge ruchu myszy, 
function selectmouse(e) {
  var fobj       = nn6 ? e.target : event.srcElement;
  var topelement = nn6 ? "HTML" : "BODY";
  while (fobj.tagName != topelement && fobj.className != "scroll_suwak") {
    fobj = nn6 ? fobj.parentNode : fobj.parentElement;
  }

  if (fobj.className=="scroll_suwak") {
    isdrag = true;
    dobj = fobj;
    tx = parseInt(dobj.style.left+0);
    ty = parseInt(dobj.style.top+0);
    x = nn6 ? e.clientX : event.clientX;
    y = nn6 ? e.clientY : event.clientY;
    document.onmousemove=movemouse;
    return false;
  }
}


function moveScroll(step) {
	//alert(wyswietlany+ ', '+przedzialy+', '+step);
	
	if ((wyswietlany + step >= 0) && (wyswietlany + step <=przedzialy)) {
		wyswietlany = wyswietlany + step;
		reloadImages(wyswietlany);
	}
}



// funkcja realizujaca przeladowywanie obrazkow

function reloadImages(pozycja) {
	myTable = document.getElementById('scroll_gallery');
	if (myTable != undefined) {

		myTable.deleteRow(1);
		myTable.deleteRow(0);
		
		myTable.insertRow(0);
		myTable.insertRow(1);
		
		myRow1 = myTable.rows[0];
		myRow1.valign="top";

		myRow2 = myTable.rows[1];
		myRow2.valign="top";

		for (i=0; i<rozmiar; i++) {
			if ( i < tablicaObrazkow.length ) {
				if (tablicaObrazkow[i+pozycja].adres != undefined) {
					adres = tablicaObrazkow[i+pozycja].adres;
				} else {
					adres = "";
				}
				
				if (tablicaObrazkow[i+pozycja].clickDef != undefined) {
					clickDef = tablicaObrazkow[i+pozycja].clickDef;
				} else {
					clickDef = "";
				}
				
				if (adres=="" && clickDef=="") {
					adres1 = "";
					adres2 = "";
				} else {
					if (adres=="") {
						if (clickDef=="") {
							adres1 = "";
							adres2 = "";
						} else {
							adres1 = "<a href='javascript:"+clickDef+";selectImg(this,"+(i+pozycja)+");'>";
							adres2 = "</a>";
						}
					} else {
					//	adres1 = "<a href='"+adres+"' onClick='"+clickDef+";selectImg(this,"+(i+pozycja)+");'>";
						adres1 = "<a href='"+adres+"' onClick='"+clickDef+"'>";
						adres2 = "</a>";
					}
				}
				
				myRow1.insertCell(i*2);
				myRow1.cells[i*2].align="center";
				myRow1.cells[i*2].valign="middle";
				myRow1.cells[i*2].className="image_border";
				if (zaznaczony == i+pozycja) {
					myRow1.cells[i*2].className = myRow1.cells[i*2].className + "_with_background";
				}
				//if (i%2 > 0 ) {myRow1.cells[i*2].className = myRow1.cells[i*2].className + "_with_background";}
				myRow1.cells[i*2].innerHTML = adres1 + "<img src='"+tablicaObrazkow[i+pozycja].img+"' border='0' onload='getScrollTopPosition();' onMouseOver='selectImageWindow(this, 1, "+(i+pozycja)+");' onMouseOut='selectImageWindow(this, 0, "+(i+pozycja)+");'>" + adres2;

				myRow1.insertCell(i*2+1);
				myRow1.cells[i*2+1].innerHTML = "&nbsp;"

				myRow2.insertCell(i*2);				
				if (tablicaObrazkow[i+pozycja].opis != undefined) {
					myRow2.cells[i*2].align="center";
					myRow2.cells[i*2].valign="middle";
					myRow2.cells[i*2].className="image_info";
					myRow2.cells[i*2].innerHTML = adres1 + tablicaObrazkow[i+pozycja].opis + adres2;
				}

				myRow2.insertCell(i*2+1);
				myRow2.cells[i*2+1].innerHTML = "&nbsp;"
			}
		}
		
		mySuwak = document.getElementById('scroll_suwak');
		if (mySuwak != undefined) {
			if (mySuwak.innerHTML != "") {
				mySuwak.style.left = pozycja*(right_end-left_end)/przedzialy + left_end;
				mySuwak.style.top = getTopOffset('scroll_linia')+top_trim;
			}
		}
	}	
}

function selectImg(el,x) {
	zaznaczony = x;
	reloadImages(wyswietlany);
}

function selectImageWindow(el, tryb, poz) {

	if (zaznaczony != poz) {
		elParent = el.parentNode;
		if (elParent.tagName != "TD") {
			elParent = elParent.parentNode;
		}
		
		if (elParent.tagName == "TD") {
			elParent.className = "image_border";
			if (tryb == 1) {
				elParent.className = elParent.className + "_with_background";
			}
		}
	}
	//alert(wyswietlany+" - "+poz)
}

