/*
phpBookWorm: image.js

Build: 20100402
Copyright: CC-BY-SA 3.0, 2010

Author:
Udo Neist (webmaster@singollo.de, GPG-Fingerprint 4A8F B229 2AE9 9634 04D1 E2F0 21F2 E27D FE97 D87F)
*/

function showPortfolio(_uid) {
/*
	Zeigt die Galerie des ausgewählten Users an.

	* Variablen
	_uid: UID des Users (wird benötigt!)

	* Rückgabe
	Inhalt im Block 'memberGalleryUID' oder 'content'
*/
	if (!_uid || _uid.length==0 || _uid==0) return false;

	if (dijit.byId('gallery')) dijit.byId('gallery').destroyRecursive();

	// Alle 
	var nodes = dojo.query(".member");
	for(var i = 0; i < nodes.length; i++) nodes[i].style.display='block';

	var data = {
		url:path+'portfolio.php',
		content: {'guid': _uid},
		load: function(response, ioArgs){
			if (dijit.byId('memberGallery'+_uid)) {
				dojo.byId('memberPortfolio'+_uid).style.display='none';
				dojo.byId('memberGallery'+_uid).style.display='block';
				dijit.byId('memberGallery'+_uid).attr({'content':response});
				dojo.byId('b2cat').style.display='none';
			}else{
				dijit.byId('content').attr({'content':response});
			}
			return response;
		},
		error: function(response, ioArgs){
			showDlg('nogalleryalert');
			return response;
		}
	};
	dojo.xhrGet(data);
}

function back2Portfolio(_uid) {
/*
	Löscht die Galerie und zeigt wieder das Portfolio selbst an.

	* Variablen
	_uid: UID des Users (wird benötigt!)

	* Rückgabe
	keine
*/
	if (!_uid || _uid.length==0 || _uid==0) return false;

	if (dijit.byId('gallery')) dijit.byId('gallery').destroyRecursive();

	dijit.byId('memberGallery'+_uid).attr({'content':''});
	dojo.byId('memberPortfolio'+_uid).style.display='block';
	dojo.byId('memberGallery'+_uid).style.display='none';
	dojo.byId('b2cat').style.display='none';

	if (dijit.byId('gallery')) dijit.byId('gallery').destroyRecursive();

	return true;
}

function showCategory(txt) {
/*
	Zeigt die Bilderkategorie an

	* Variablen
	txt: Element

	* Rückgabe
	Webseite
*/

	if (!txt) return false;

	// Dummy-Grafik einsetzen
	document.getElementById('image').setAttribute('src','css/gfx/loading.gif');

	// Überschrift umschreiben
	dijit.byId('imageheadline').attr({'content':'Bilder: Serie ' + document.getElementById(txt.id).innerHTML});
	// Hinweistext ausblenden und Grafikauswahl einblenden
	if (dojo.byId('imagestext')) dojo.byId('imagestext').style.display='none';
	if (dojo.byId('imagelist')) dojo.byId('imagelist').style.display='block';

	// Zeigt die erste Grafik einer Kategorie an
	return showCategoryImages(document.getElementById(txt.id).getAttribute('category'),1);
}

function showCategoryImages(cat,image) {
/*
	Zeigt ein Bild aus der Kategorie an (Bilderstrecke) und setzt die Navigation auf das jeweils nächste Bild

	* Variablen
	cat: Kategorie
	image: Grafikindex

	* Rückgabe
	Grafikelement auf gewähltes Bild setzen
*/

	if (!cat || !image) return false;

	var nodes = dojo.query("#imagelist"+cat+" span");
	for(var i = 0; i < nodes.length; i++) {
		if (nodes[i].getAttribute('category')==cat && nodes[i].getAttribute('pos')==image) var node = i;
	}

	// Kategorie und Position zwischenspeichern
	document.getElementById('back2category').setAttribute('pos',image);
	document.getElementById('back2category').setAttribute('category',cat);

	dojo.byId('prev').style.display= ((image>1) ? 'block' : 'none');
	dojo.byId('next').style.display= ((image<nodes.length) ? 'block' : 'none');

	if (nodes[node]) {
		document.getElementById('image').setAttribute('src','image='+nodes[node].getAttribute('file')+';0;180;0;1');
		document.getElementById('image').setAttribute('image',nodes[node].getAttribute('id'));
		dijit.byId('imagename').attr({'content':nodes[node].getAttribute('filename')});
		dijit.byId('imageheadline').attr({'content':'Bilder: Serie ' + document.getElementById('gallery'+cat).innerHTML+' [Bild '+image+' von '+nodes.length+']'})
		return true;
	}else{
		return false;
	}
}

function showImage(txt) {
/*
	Zeigt das entsprechende Bild an

	* Variablen
	txt: Element

	* Rückgabe
	Webseite
*/

	if (!txt) return false;

	// Dummy-Grafik einsetzen
	document.getElementById('image').setAttribute('src','css/gfx/loading.gif');

	// Holt die Infos zur aktuellen Position
	var id = document.getElementById(txt.id).getAttribute('image'); // ImageID auslesen
	if (id=="") return false; // Zurück, da nicht definiert
	var node = dojo.query("#"+id);
	var uid = node[0].getAttribute('uid'); // Aktuelle Position
	var cat = node[0].getAttribute('category'); // Kategorie ermitteln
	if (dojo.byId('imagelist')) dojo.byId('imagelist').style.display='none';

	var data = {
		url:path+'portfolio.php',
		content: {'guid':uid,'gallery':cat,'idx':id.replace(/image_/,'')},
		load: function(response, ioArgs){
			dijit.byId('imagestext').attr({'content':response});
			dojo.byId('imagestext').style.display='block';
			dojo.byId('b2cat').style.display='block';
			return response;
		}
	};
	dojo.xhrGet(data);
}

function selectImage(txt) {
/*
	Zeigt das entsprechende Bild an

	* Variablen
	txt: Element

	* Rückgabe
	Setzt Auswahlgrafik auf die jeweilige Position vor oder nach dem derzeit angezeigten Bild
*/

	if (!txt) return false;

	// Dummy-Grafik einsetzen
	document.getElementById('image').setAttribute('src','css/gfx/loading.gif');

	// Holt die Infos zur aktuellen Position
	var id = document.getElementById('image').getAttribute('image'); // ImageID auslesen
	if (id=="") return false; // Zurück, da nicht definiert
	var node = dojo.query("#"+id);
	var pos = node[0].getAttribute('pos'); // Aktuelle Position
	var cat = node[0].getAttribute('category'); // Kategorie ermitteln

	var nodes = dojo.query("#imagelist"+cat+" span"); // Alle Bilder in der Kategorie suchen

	if (txt.id=='previousImage') {
		if (pos<=1) return false; // Zurück, wenn untere Grenze erreicht
		pos--;
	}else{
		if (pos>=nodes.length) return false; // Zurück, wenn obere Grenze erreicht
		pos++;
	}

	showCategoryImages(cat,pos);
}

function back2Category(txt) {
/*
	Springt zur gewählten Kategorie und Bild zurück

	* Variablen
	txt: Element

	* Rückgabe
	Setzt Auswahlgrafik auf die jeweilige Position des derzeit angezeigten Bildes
*/

	if (!txt) return false;

	var pos = document.getElementById(txt.id).getAttribute('pos'); // Aktuelle Position
	var cat = document.getElementById(txt.id).getAttribute('category'); // Kategorie ermitteln

	if (dojo.byId('imagestext')) dojo.byId('imagestext').style.display='none';
	if (dojo.byId('imagelist')) dojo.byId('imagelist').style.display='block';
	dojo.byId('b2cat').style.display='none';

	/*
		Eigentlich reicht obiges aus, aber könnte ja aus dem Cache gelöscht worden sein.
		Falls das ein Problem sein sollte, dann die folgenden zwei Codezeilen wieder freischalten.
	*/

	document.getElementById('image').setAttribute('src','css/gfx/loading.gif');
	return showCategoryImages(cat,pos);
	
}
