// #################################################################################################################
// 											Kategorien bearbeiten - START
// 											   Mario Dietrich, 21.02.07
// #################################################################################################################

function categoryEditShow(checkVisibility) {
	var startAction = 0;
	if(checkVisibility == 1) {
		if($('photoVisibility').innerHTML=='privat') {
			alert('Dieses Foto hat die Sichtbarkeit "privat".Nur öffentliche Fotos können Kategorien zugeordnet werden. Du musst dein Foto also zunächst veröffentlichen.');
		} else {
			startAction = 1;
		}
	} else {
		startAction = 1;
	}
	
	if(startAction == 1) {
		hideSelectBoxes();
		hideBanners();
		arrayPageSize = getPageSize();
		
		var objBody = document.getElementsByTagName("body").item(0);
	
		initLightbox();	

		// set height of Overlay to take up whole page and show
		objOverlay = document.getElementById('overlay');
		objOverlay.style.height = (arrayPageSize[1] + 'px');
		objOverlay.style.display = 'block';
	
		new Effect.Appear('overlay_categories', { duration: 0.2, from: 0.0, to: 0.90 });
		var arrayPageScroll = getPageScroll();
		var lightboxTop = arrayPageScroll[1] + (arrayPageSize[3] / 15);
		Element.setTop('categoriesBox', lightboxTop);
		new Effect.Appear('categoriesBox', { duration: 0.2, from: 0.0, to: 0.9999 });	
		
	}			
}
	
function categoryEditHide() {
	showSelectBoxes();
	showBanners();
	
	new Effect.Fade('categoriesBox', { duration: 0.2 });
	
	objOverlay = document.getElementById('overlay');
	objOverlay.style.display = 'none';
}

function categoryEditRestoreData() {
	// alte Daten zurückspielen
	$('ccount').value = $('ccount_orig').value;
	$('cid1').value = $('cid1_orig').value;
	$('cid2').value = $('cid2_orig').value;
	$('cid3').value = $('cid3_orig').value;
	$('cid1').topcat = $('cid1_orig').topcat;
	$('cid2').topcat = $('cid2_orig').topcat;
	$('cid3').topcat = $('cid3_orig').topcat;
	
	// alle Markierungen entfernen
	var el = document.forms['categories'].elements;
	for ( i = 0; i < el.length; i++)
	  {
	    if (el[i].type == "checkbox")
	    {
	      el[i].checked = false;
	    }	   
	  }
	
	// markierte Kategorien "checked" setzen
	var cid1 = $('cid1').value;
	var cid2 = $('cid2').value;
	var cid3 = $('cid3').value;
	if(cid1 != 0) {
		$('cat_'+cid1).checked = true;
		$('cselected1').innerHTML = $('cat_'+cid1).value + ' (<a href="javascript:categoryRemove('+cid1+')">entfernen</a>)';				
	} else {
		$('cselected1').innerHTML = '&nbsp;';				
	}
	if(cid2 != 0) {
		$('cat_'+cid2).checked = true;
		$('cselected2').innerHTML = $('cat_'+cid2).value + ' (<a href="javascript:categoryRemove('+cid2+')">entfernen</a>)';
	} else {
		$('cselected2').innerHTML = '&nbsp;';	
	}
	if(cid3 != 0) {
		$('cat_'+cid3).checked = true;
		$('cselected3').innerHTML = $('cat_'+cid3).value + ' (<a href="javascript:categoryRemove('+cid3+')">entfernen</a>)';
	} else {
		$('cselected3').innerHTML = '&nbsp;';	
	}
}

function categoryEditSave() {
	// Speichern-URL aufrufen
	var url = '/content/myhome/ajax_saveCategories.php';
	var params = 'fid='+$('fid').value+'&cid1='+$('cid1').value+'&cid2='+$('cid2').value+'&cid3='+$('cid3').value;	
	var ajax = new Ajax.Updater(
		{success: 'ajaxCategories'},
		url,
		{method: 'post', parameters: params, onFailure: reportError, onComplete: categoryEditHide}
	);
	
	// Kategorien auf foto_view updaten
	
	// Fenster verstecken
	//categoryEditHide();
}

function categoryEditCancel() {
	categoryEditRestoreData();
	categoryEditHide();
}

function categoryOpen(cid) {
	var oldcid = $('cid').value;
	if(oldcid != 0) {
		new Effect.Fade('cat_'+oldcid, { duration: 0 });	
		$('topcat_'+oldcid).style.color = '#FCAB54';
	}
	$('cid').value = cid;
	$('topcat_'+cid).style.color = '#aaa';
	new Effect.Appear('cat_'+cid, { duration: 0.2, from: 0.0, to: 0.9999 });	
}

// öffentliche Funktion um Kategorien hinzuzufügen
// die Checkbox wird dabei noch gesetzt
function categoryAdd(cid) {
	$('cat_'+cid).checked = true;
	_categoryAdd(cid);
}

// interne Funktion um Kategorien hinzuzufügen
function _categoryAdd(cid) {
	if( parseInt($('ccount').value) + 1 > 3) {
		$('cat_'+cid).checked = false;
		alert('Du kannst dein Bild in maximal 3 Kategorien legen.');
	} else {
		$('ccount').value = parseInt($('ccount').value) + 1;
		var ccount = $('ccount').value;
		$('cid'+ccount).value = cid;
		
		// zwischengespeicherte Top-Kategorie-ID holen, Bezeichnung auslesen und unten rein schreiben
		topcatid = $('cid').value;
		$('cid'+ccount).topcat = $('topcat_'+topcatid).innerHTML;
	}
	
	// Ausgewählte Objekte darstellen		
	var cid = $('cid').value;
	var cid1 = $('cid1').value;
	var cid2 = $('cid2').value;
	var cid3 = $('cid3').value;
	if(cid1!=0) $('cselected1').innerHTML = $('cat_'+cid1).value + ' (<a href="javascript:categoryRemove('+cid1+')">entfernen</a>)';
	if(cid2!=0) $('cselected2').innerHTML = $('cat_'+cid2).value+' (<a href="javascript:categoryRemove('+cid2+')">entfernen</a>)';
	if(cid3!=0) $('cselected3').innerHTML = $('cat_'+cid3).value+' (<a href="javascript:categoryRemove('+cid3+')">entfernen</a>)';
}

// öffentliche Funktion um Kategorien zu entfernen
// die Checkbox wird dabei noch entfernt
function categoryRemove(cid) {
	$('cat_'+cid).checked = false;
	_categoryRemove(cid);
}

// interne Funktion um Kategorien zu entfernen
function _categoryRemove(cid) {
	var ccount = $('ccount').value;
	
	if($('cid1').value == cid) {
		$('cid1').value = $('cid2').value;
		$('cid2').value = $('cid3').value;
		$('cid3').value = 0;
	}
	if($('cid2').value == cid) {
		$('cid2').value = $('cid3').value;
		$('cid3').value = 0;
	}
	if($('cid3').value == cid) $('cid3').value = 0;
	$('cid'+ccount).value = 0;
	$('ccount').value = parseInt($('ccount').value) - 1;				
		
	// Ausgewählte Objekte darstellen		
	var cid1 = $('cid1').value;
	var cid2 = $('cid2').value;
	var cid3 = $('cid3').value;
	
	if(cid1!=0) {
		$('cselected1').innerHTML = $('cat_'+cid1).value+' (<a href="javascript:categoryRemove('+cid1+')">entfernen</a>)';
	} else {
		$('cselected1').innerHTML = '&nbsp;';
	}
	if(cid2!=0) {
		$('cselected2').innerHTML = $('cat_'+cid2).value+' (<a href="javascript:categoryRemove('+cid2+')">entfernen</a>)';
	} else {
		$('cselected2').innerHTML = '&nbsp;';
	}
	if(cid3!=0) {
		$('cselected3').innerHTML = $('cat_'+cid3).value+' (<a href="javascript:categoryRemove('+cid3+')">entfernen</a>)';
	} else {
		$('cselected3').innerHTML = '&nbsp;';
	}
	
	//alert('ccount:'+$('ccount').value);
	//alert('cid1:'+cid1+'\ncid2:'+cid2+'\ncid3:'+cid3+'\n');
}

function categoryClick(cid) {
	var checked = $('cat_'+cid).checked;
	
	// Kategorie wurde hinzugefuegt
	if(checked) {
		_categoryAdd(cid);
		
	// Kategorie wurde entfernt
	} else {
		_categoryRemove(cid);
		
	}
}

Object.extend(Element, {
	getWidth: function(element) {
	   	element = $(element);
	   	return element.offsetWidth; 
	},
	setWidth: function(element,w) {
	   	element = $(element);
    	element.style.width = w +"px";
	},
	setHeight: function(element,h) {
   		element = $(element);
    	element.style.height = h +"px";
	},
	setTop: function(element,t) {
	   	element = $(element);
    	element.style.top = t +"px";
	},
	setSrc: function(element,src) {
    	element = $(element);
    	element.src = src; 
	},
	setHref: function(element,href) {
    	element = $(element);
    	element.href = href; 
	},
	setInnerHTML: function(element,content) {
		element = $(element);
		element.innerHTML = content;
	}
});

function showSelectBoxes(){
	selects = document.getElementsByTagName("select");
	for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "visible";
	}
}

function hideSelectBoxes(){
	selects = document.getElementsByTagName("select");
	for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "hidden";
	}
}

// #################################################################################################################
// 											Kategorien bearbeiten - ENDE
// #################################################################################################################

// #################################################################################################################
// 											Kategorien hinzufügen - START
// 											   Mario Dietrich, 21.02.07
// #################################################################################################################

function categoryAddSave() {
	var cid1 = $('cid1').value;
	var cid2 = $('cid2').value;
	var cid3 = $('cid3').value;
	
	$('categoryid_1').value = cid1;
	$('categoryid_2').value = cid2;
	$('categoryid_3').value = cid3;
	
	
	var string = '';
	if(cid1!=0) {
		string = $('cat_'+cid1).value;
	}
	if(cid2!=0) {
		string = string + ' | ' + $('cat_'+cid2).value;
	}
	if(cid3!=0) {
		string = string + ' | ' + $('cat_'+cid3).value;
	}
	$('categories').value = string;
	
	// Fenster verstecken
	categoryEditHide();
}

function categoryAddCancel() {
	categoryEditRestoreData();
	categoryEditHide();
}




// #################################################################################################################
// 											Overlays allgemein - START
// 											   Mario Dietrich, 03.03.07
// #################################################################################################################
function getWindowCenter(objWidth) {
	var width = document.documentElement.clientWidth / 2;
	var offsetX = width - (objWidth / 2);
	return offsetX;
}

function overlayShow(overlay, objWidth) {
	hideSelectBoxes();
	arrayPageSize = getPageSize();
	Element.setHeight('overlay_bg', arrayPageSize[1]);
	new Effect.Appear('overlay_bg', { duration: 0.2, from: 0.0, to: 0.90 });
	var arrayPageScroll = getPageScroll();
	var lightboxTop = arrayPageScroll[1] + (arrayPageSize[3] / 15);

	// Positionierung Abstand von oben. Mittige Positionierung über CSS?
	Element.setTop(overlay, lightboxTop);
	
	var offsetX = getWindowCenter(objWidth);
	$(overlay).style.left = offsetX+"px";
	$(overlay).style.display = "block";
}

function overlayHide(overlay) {
	showSelectBoxes();
	new Effect.Fade(overlay, { duration: 0.2 });
	new Effect.Fade('overlay_bg', { duration: 0.2 });
}