//
// sayi degiskeni script buraya geldiginde tanimlanmis olmali!
// var sayi = 4;//{SAYI}; // kac resim gosterilecek
//
var slayt_suresi = 6000; //mili saniye
var slayt_bekleme_suresi = 15000; // slaytın durdurulduktan sonraki bekleme süresi

//
// buradan sonrasina ellemeyelim
//

var offset = 0;
var slayt_timer = 0;
var sayac_timer = 0;

var kutular = new Array(sayi); // resim kutuları ile id'leri eşlemek için
var resimler = new Array();
var liste_alindi = !ajax;

var il = new imageLoader(resimler,Yukle);

function ResimKaydi(id,xid,tablo,url)
{
	this.id = id;
	this.xid = xid;
	this.tablo = tablo;
	this.url = url;
	
	this.GetURL = function () { return this.url; }
	this.GetLink = function () { return '/galeri.php?id='+ this.id +'&xid='+ this.xid +'&tablo='+ this.tablo; }
}



function ResimListesiAl(slayt)
{
	document.getElementById('yukleniyor').style.visibility = 'visible';
	urlAl(0,ajax_url,ResimEkle,slayt,true);
}

function ResimEkle(cevap,slayt)
{
	var root = XMLGetRoot(cevap);
	var dugumler = root.getElementsByTagName("resim");
	for(var i = 0; i < dugumler.length; i++)
	{
		var id = dugumler[i].attributes[0].value;
		var xid = dugumler[i].attributes[1].value;
		var tablo = dugumler[i].attributes[2].value;

		// varsa eklemeyeceğiz
		if(ResimVarmi(id,xid,tablo) == false)
		{
			var url = dugumler[i].firstChild.nodeValue;
			//alert(id + "\n" + xid + "\n" + url);
			YeniResim(id,xid,tablo,url);
		}
	}
	liste_alindi = true;
	ResimleriGoster(slayt);
}

function ResimVarmi(id,xid,tablo)
{
	id = eval(id);
	xid = eval(xid);
	tablo = eval(tablo);
	for(var i = 0; i < resimler.length; i++)
	{
		if(resimler[i].id == id && resimler[i].xid == xid && resimler[i].tablo == tablo)
		{
			return true;
		}
	}
	return false;
}

function YeniResim(id,xid,tablo,url)
{
	// yeni resim kaydı oluşturup gerekli dizilere ekler
	// referans olarak eklediği için bu dizilerde fazla yer kaplama gibi bir durum söz konusu değil
	var k = new ResimKaydi(id,xid,tablo,url);
	resimler.push(k);
	il.addImage(k);
}

function Hazirla(sutunSayisi)
{	
	// başlangıçta çalıştırılır ve dizeye eklenmiş kayıtlardan gösterilecek [sayi] tanesini gösterir
	var l = document.getElementById('resimler');
	l.style.visibility = 'hidden';
	var strHTML;
	
	if(!sutunSayisi) sutunSayisi = 1;
	
	if(sutunSayisi == 1)
	{
		for(var i = 0; i < sayi; i++)
		{
			strHTML += '<img src="" border="0" alt="" id="resim_kutu'+ i +'" class="thumb_resim" /><br />';
		}
	}
	else
	{
		var n = Math.floor(sayi / sutunSayisi);
		if(!n) n++;
		strHTML = '<table width="100%" cellspacing="0" cellpadding="1" border="0">';
		for(var i = 0; i < n; i++)
		{
			strHTML += '<tr>';
			for(var s = 0; s < sutunSayisi; s++)
			{
				strHTML += '<td><img src="" border="0" alt="" id="resim_kutu'+ (i * sutunSayisi + s) +'" class="thumb_resim" /></td>';
			}
			strHTML += '</tr>';
		}
		strHTML += '</table>';
	}
	
	l.innerHTML += strHTML;
	
	document.getElementById('yukleniyor').style.visibility = 'visible';
	ResimleriGoster();
}

function ResimleriGoster(slayt)
{
	// eğer slayt oynatılıyorsa dizedeki resimlerin hepsini,
	// normal durumda ise sadece [sayi] kadarını (offsete göre) yükler
	var n = sayi > resimler.length ? resimler.length : sayi;
	//alert(n);
	if(n) 
	{
		if(slayt)
		{
			il.callback = ResimSlaytCallback;
			il.loadImages(); // slayt için tümünü yükle
		}
		else 
		{
			il.callback = Yukle;
			il.loadImages(offset,offset + sayi - 1);
		}
	}
	else document.getElementById('yukleniyor').style.visibility = 'hidden';
}

function ResimScroll(sonraki)
{
	// aşağı yukarı tuşlarına basıldığında resimleri değiştiren fonksiyon
	if(resimler.length <= sayi || !liste_alindi) 
	{
		ResimListesiAl();
		return;
	}
	
	SlaytDurdur(); // slayt çalışıyorsa durdur
	if(sonraki && offset < resimler.length - sayi)
	{
		offset++;
	}
	else if(!sonraki && offset > 0)
	{
		offset--;
	}
	else return;

	document.getElementById('yukleniyor').style.visibility = 'visible';
	il.callback = Yukle;
	//alert(offset,offset + sayi - 1);
	il.loadImages(offset,offset + sayi - 1);
}


function ResimSlayt()
{
	// resim listesini alır, tümünü yükler
	// callback fonksiyon
	if(resimler.length <= sayi || !liste_alindi) 
	{
		ResimListesiAl(true);
		return;
	}
	// resim listesi zaten var, tüm resimleri yükle
	document.getElementById('yukleniyor').style.visibility = 'visible';
	il.callback = ResimSlaytCallback;
	il.loadImages();
}

function ResimSlaytCallback(objIL)
{
	SlaytDurdur();
	//alert("ok");
	document.getElementById('yukleniyor').style.visibility = 'hidden';
	SlaytScroll();
	if(slayt_timer == 0)
	{
		slayt_timer = window.setInterval(SlaytScroll,slayt_suresi);
	}
}

function SlaytDurdur()
{
	if(slayt_timer) {	
		window.clearInterval(slayt_timer);
		slayt_timer = 0;
		il.callback = Yukle;
	}
	
	if(sayac_timer) {
		window.clearTimeout(sayac_timer);
		sayac_timer = 0;
	}
	
	if(!slayt_timer) {
		sayac_timer = window.setTimeout("ResimSlayt()",slayt_bekleme_suresi);
	}
	
}

function SlaytScroll(objIL)
{
	objIL = il;
	objIL.bas = (offset) % resimler.length;
	//objIL.SetSon((offset + 1) % (resimler.length + 1));
	objIL.son = (offset + sayi - 1) % resimler.length;
	
	Yukle(objIL);
	//document.getElementById('status').innerHTML = objIL.bas + ' - ' + objIL.son;
	offset = (offset + sayi) % resimler.length;
}

function Yukle(objIL)
{
	//alert(objIL.bas + "\n" + objIL.son);
	var bas = objIL.bas;
	var son;
	
	if(objIL.bas > objIL.son)
	{
		// örneğin; bas 10, son 1 => bir kere dizinin sonuna kadar, sonra başa dönüp this.son'a kadar gidecek
		son = objIL.resimler.length - 1;
		var sayac = 2;
	}
	else 
	{
		son = objIL.son;
		var sayac = 1;
	}
	
	//alert(bas + "\n" + son + "\n" + resimler.length);
	
	var t = 0;
	var tekrar = false;
	while(sayac--)
	{
		for(var i = bas; i <= son; i++)
		{
			var k = document.getElementById('resim_kutu'+t);
			var r = objIL.resimler[i];
			
			//var oynat = (kutular[t] != null);
			kutular[t] = r.kayit; // referans
			
			k.src = r.image.src; // r.image.src
			
			k.onload = function() { this.style.visibility = 'visible'; }
			k.onclick = function () { 
				var id = this.id.match(/^resim_kutu([0-9]+)$/i); 
				SlaytDurdur();
				ac(kutular[id[1]].GetLink(),'_galeri',400,300);
			}
			
			t++;

		}
	
		son = objIL.son;
		bas = 0;

	}
	document.getElementById('yukleniyor').style.visibility = 'hidden';
}
