// Feeder in javascript
// Necesita prototype.js, scriptaculous.js si effects.js

// numarul de frame-uri in feeder
var feeder_frames;
// indexul frame-ului actual
var feeder_pointer = 1;
// variabila pentru oprirea si pornirea intervalului
var changeFeederData;

// seteaza schimbarea frame-urilor la un anumit interval
function feederStart()
{
	changeFeederData = setInterval(feederChangeFrame, 5000);
}

// initializeaza feeder-ul
function javascriptFeeder(frames)
{
	// precizeaza numarul de frame-uri
	feeder_frames = frames;
	// porneste feeder-ul
	feederStart();
}

// pune feeder-ul pe pauza
function feederStop()
{
	clearInterval(changeFeederData);
}

// schimba frame-ul si indexul frame-ului
function feederChangeFrame()
{
	// ascunde div-ul vizibil actual
	actual_frame = feeder_pointer;
	new Effect.Opacity(document.getElementById("frame_" + feeder_pointer), {duration:0.3, from:1.0, to:0.0, afterFinish: function() {document.getElementById("frame_" + actual_frame).style.display = "none";} });
	// daca nu sunt pe ultimul frame
	if(feeder_pointer < feeder_frames)
	{
		// afiseaza frame-ul urmator
		document.getElementById("frame_" + (feeder_pointer + 1)).style.display = "block";
		new Effect.Opacity(document.getElementById("frame_" + (feeder_pointer + 1)), {duration:0.3, from:0.0, to:1.0});
	}
	// daca sunt pe ultimul frame
	else
	{
		// afiseaza primul frame
		document.getElementById("frame_1").style.display = "block";
		new Effect.Opacity(document.getElementById("frame_1"), {duration:0.3, from:0.0, to:1.0});
	}
	// updateaza indexul frame-ului
	feeder_pointer ++;
	if(feeder_pointer > feeder_frames)
	{
		feeder_pointer = 1;
	}
}


function feederPrevFrame()
{
	// ascunde div-ul vizibil actual
	actual_frame = feeder_pointer;
	new Effect.Opacity(document.getElementById("frame_" + feeder_pointer), {duration:0.3, from:1.0, to:0.0, afterFinish: function() {document.getElementById("frame_" + actual_frame).style.display = "none";} });
	// daca nu sunt pe primul frame
	if(feeder_pointer > 1)
	{
		// afiseaza frame-ul precedent
		document.getElementById("frame_" + (feeder_pointer - 1)).style.display = "block";
		new Effect.Opacity(document.getElementById("frame_" + (feeder_pointer - 1)), {duration:0.3, from:0.0, to:1.0});
	}
	// daca sunt pe primul frame
	else
	{
		// afiseaza ultimul frame
		document.getElementById("frame_" + feeder_frames).style.display = "block";
		new Effect.Opacity(document.getElementById("frame_" + feeder_frames), {duration:0.3, from:0.0, to:1.0});
	}
	// updateaza indexul frame-ului
	feeder_pointer --;
	if(feeder_pointer < 1)
	{
		feeder_pointer = feeder_frames;
	}
}

function feederGoTo(frame)
{
	// ascunde div-ul vizibil actual
	actual_frame = feeder_pointer;
	new Effect.Opacity(document.getElementById("frame_" + feeder_pointer), {duration:0.3, from:1.0, to:0.0, afterFinish: function() {document.getElementById("frame_" + actual_frame).style.display = "none";} });
	// afiseaza div-ul dorit
	document.getElementById("frame_" + frame).style.display = "block";
	new Effect.Opacity(document.getElementById("frame_" + frame), {duration:0.3, from:0.0, to:1.0});
	// updateaza indexul frame-ului
	feeder_pointer = frame;
}

// mergi la frame-ul urmator
function feederNext() {
	// opreste feeder-ul
	feederStop();
	// schimba frame-ul
	feederChangeFrame();
	// reporneste feeder-ul
	feederStart();
}

// mergi la frame-ul precedent
function feederPrev() {
	// opreste feeder-ul
	feederStop();
	// schimba frame-ul cu cel precedent
	feederPrevFrame();
	// reporneste feeder-ul
	feederStart();
}

// afiseaza frame-ul dorit
function feederSelectFrame(page) {
	// daca nu sunt deja acolo
	if(page != feeder_pointer)
	{
		// opreste feeder-ul
		feederStop();
		// du-te la frame-ul dorit
		feederGoTo(page);
		// reporneste feederul
		feederStart();
	}
}
