﻿if(typeof dode !== 'undefined') {
	dode.mainfunc.bilderstreckeInline = {
		daten : [],
		init : function () {
			////////////////////// PRIVATE EIGENSCHAFTEN /////////////////////////////////////
			var bildVorAktivSrc = "/media/system/seitenelemente/iconsbuttons/bilderstrecke/bs_re_aktiv.png";
			var bildVorAktivAlt = dode.pagevar.lang.bildVorAktiv;
			var bildVorInaktivSrc = "/media/system/seitenelemente/iconsbuttons/bilderstrecke/bs_re_inaktiv.png";
			var bildVorInaktivAlt = dode.pagevar.lang.bildVorInAktiv;
			var bildZurueckAktivSrc = "/media/system/seitenelemente/iconsbuttons/bilderstrecke/bs_li_aktiv.png";
			var bildZurueckAktivAlt = dode.pagevar.lang.bildZurueckAktiv;
			var bildZurueckInaktivSrc = "/media/system/seitenelemente/iconsbuttons/bilderstrecke/bs_li_inaktiv.png";
			var bildZurueckInaktivAlt = dode.pagevar.lang.bildZurueckInAktiv;
			var dataSetQuantity = 5;
			var maxHeight = 347;
			var maxWidth = 463;
			var paddingLeft = 0;
			var paddingRight = 0;
			var paddingHeigth = 0;
			var bsPrefix = "bilderstreckeInline_";
			var objPrefix = "bildbox_";
			var scrollPrefixLeft = "scrollLeft_";
			var scrollPrefixRight = "scrollRight_";
			var mainImgPrefix = "img_";
			var textBoxPrefix = "img_";
			var allPictureGaleries = [];
			
			var setScrollButtons = function (objId,galeriePictureBoxNode) {
				var scrollPicLeft = document.createElement("IMG");
				var scrollPicRight = document.createElement("IMG");
				scrollPicLeft.id = scrollPrefixLeft+objId;
				scrollPicLeft.src = bildZurueckAktivSrc;
				scrollPicLeft.alt = bildZurueckAktivAlt;
				scrollPicRight.id = scrollPrefixRight+objId;
				scrollPicRight.src = bildVorAktivSrc;
				scrollPicRight.alt = bildVorAktivAlt;
				dode.css.addCssClass(scrollPicLeft,"buttonLinks");
				dode.css.addCssClass(scrollPicLeft,"pointer");
				dode.css.addCssClass(scrollPicRight,"buttonRechts");
				dode.css.addCssClass(scrollPicRight,"pointer");
				galeriePictureBoxNode.insertBefore(scrollPicLeft,galeriePictureBoxNode.firstChild);
				galeriePictureBoxNode.appendChild(scrollPicRight);
				return true;
			};
			
			var setImage = function (galerieIndex) {
				var picBoxImg = allPictureGaleries[galerieIndex].htmlPicBoxObj.getElementsByTagName("IMG")[1];
				var altText = dode.mainfunc.bilderstreckeInline.daten[allPictureGaleries[galerieIndex].id][(allPictureGaleries[galerieIndex].actualPic+1)*dataSetQuantity-2];
				picBoxImg.src = dode.mainfunc.bilderstreckeInline.daten[allPictureGaleries[galerieIndex].id][(allPictureGaleries[galerieIndex].actualPic+1)*dataSetQuantity-4];
				picBoxImg.setAttribute("alt",altText);
				picBoxImg.setAttribute("title",altText);
				var picWidth = dode.mainfunc.bilderstreckeInline.daten[allPictureGaleries[galerieIndex].id][(allPictureGaleries[galerieIndex].actualPic+1)*dataSetQuantity-1];
				var picHeight = dode.mainfunc.bilderstreckeInline.daten[allPictureGaleries[galerieIndex].id][(allPictureGaleries[galerieIndex].actualPic+1)*dataSetQuantity-0];
				if (!isNaN(picWidth)) {
					var picWidthNum = parseInt(picWidth);
					if (picWidthNum > maxWidth) {
						picWidthNum = maxWidth;
					}
					paddingLeft = paddingRight = (maxWidth-picWidthNum)/2;
					if ((paddingLeft%2) != 1) {
						paddingLeft = paddingLeft - 0.5;
						paddingRight = paddingRight + 0.5;
						if (paddingLeft < 0) {paddingLeft = 0;}
						if (paddingRight <= 0.5) {paddingRight = 0;}
					}
					paddingLeft = Math.round(paddingLeft/12/0.001)*0.001;
					paddingRight = Math.round(paddingRight/12/0.001)*0.001;
					picBoxImg.style.width = String(Math.round(picWidthNum/12/0.001)*0.001)+"em";
				}
				if (!isNaN(picHeight)) {
					var picHeightNum = parseInt(picHeight);
					if (picHeightNum > maxHeight) {
						picHeightNum = maxHeight;
					}
					paddingHeight = ((maxHeight-picHeightNum)/2) / 12;
					paddingHeight = Math.round(paddingHeight/0.001)*0.001;
					if (paddingHeight < 0.083) {
						paddingHeight = 0;
					}
					picBoxImg.style.height = String(Math.round(picHeightNum/12/0.001)*0.001)+"em";
				}
				picBoxImg.style.padding = String(paddingHeight)+"em "+ String(paddingRight)+"em "+String(paddingHeight)+"em "+String(paddingLeft)+"em ";
				setBu(galerieIndex);
				return true;				
			};
			
			var scrollForeward = function (e) {
				for (var i = 0; i < allPictureGaleries.length; i++) {
					if (allPictureGaleries[i].htmlMainObj === this.parentNode.parentNode) {
						if (allPictureGaleries[i].actualPic === (allPictureGaleries[i].quantity - 1)) {
							allPictureGaleries[i].actualPic = 0;
						} else {
							allPictureGaleries[i].actualPic = allPictureGaleries[i].actualPic + 1;
						}
						setImage(i);
					}
				}
			};
			
			var scrollBackward = function (e) {
				for (var i = 0; i < allPictureGaleries.length; i++) {
					if (allPictureGaleries[i].htmlMainObj === this.parentNode.parentNode) {
						if (allPictureGaleries[i].actualPic === 0) {
							allPictureGaleries[i].actualPic = allPictureGaleries[i].quantity - 1;
						} else {
							allPictureGaleries[i].actualPic = allPictureGaleries[i].actualPic - 1;
						}
						setImage(i);
					}
				}
			};
			
			var setBu = function (i) {
				var picBoxBuBox = allPictureGaleries[i].htmlPicBoxObj.getElementsByTagName("P")[0];
				var newBuBoxNode = document.createElement("P");
				var textHelper = document.createElement("B");
				textHelper.appendChild(document.createTextNode(dode.pagevar.lang.bild+" "+(allPictureGaleries[i].actualPic+1)+"/"+allPictureGaleries[i].quantity+" "));
				newBuBoxNode.appendChild(textHelper);
				var buTextString = dode.mainfunc.bilderstreckeInline.daten[allPictureGaleries[i].id][(allPictureGaleries[i].actualPic+1)*dataSetQuantity-3];
				if (buTextString !== "null") {
					newBuBoxNode = dode.util.stringToDom(newBuBoxNode,buTextString);
				}
				if (picBoxBuBox) {
					allPictureGaleries[i].htmlPicBoxObj.replaceChild(newBuBoxNode,picBoxBuBox);
				}
				return true;
			};
			
			var checkDataArray = function () {
				if (dode.mainfunc.bilderstreckeInline.daten.length > 0) {
					for (var i = 0; i < dode.mainfunc.bilderstreckeInline.daten.length; i++) {
						// check ID und Array Länge
						var dataLength = dode.mainfunc.bilderstreckeInline.daten[i].length;
						if (((dataLength-1)/dataSetQuantity)%1 !== 0 || typeof dode.mainfunc.bilderstreckeInline.daten[i][0] !== "number" || document.getElementById(bsPrefix+dode.mainfunc.bilderstreckeInline.daten[i][0]) === null) {
							alert("ID nicht korrekt? "+dode.mainfunc.bilderstreckeInline.daten[i][0]+" oder Array-Struktur? "+((dataLength-1)/dataSetQuantity)%1);
							return false;
						}
						// ArrayDaten i.O.
						var allChildElements = document.getElementById(bsPrefix+dode.mainfunc.bilderstreckeInline.daten[i][0]).childNodes;
						var galeriePictureBoxNode = null;
						for (var i2 = 0; i2 < allChildElements.length; i2++) {
							if (allChildElements[i2].nodeName === "DIV" && dode.css.hasCssClass(allChildElements[i2],"bilder")) {
								galeriePictureBoxNode = allChildElements[i2];
							}
							if (allChildElements[i2].nodeName === "P" && dode.css.hasCssClass(allChildElements[i2],"bilderstreckeInlineLinkMedienportal")) {
								document.getElementById(bsPrefix+dode.mainfunc.bilderstreckeInline.daten[i][0]).removeChild(allChildElements[i2]);
							}
						};
						if (!galeriePictureBoxNode) {
							alert("Innere Box nicht da!");
						}
						setScrollButtons(dode.mainfunc.bilderstreckeInline.daten[i][0],galeriePictureBoxNode);
						allPictureGaleries[i] = {
							id : i,
							idObj : dode.mainfunc.bilderstreckeInline.daten[i][0],
							htmlMainObj : document.getElementById(bsPrefix+dode.mainfunc.bilderstreckeInline.daten[i][0]),
							htmlPicBoxObj : galeriePictureBoxNode,
							quantity : (dataLength-1)/dataSetQuantity,
							actualPic : 0,
							markerEnd : 1
						};
						setBu(i);
						dode.newevent.addEvent(document.getElementById(scrollPrefixRight+allPictureGaleries[i].idObj),"click",scrollForeward);
						dode.newevent.addEvent(document.getElementById(scrollPrefixLeft+allPictureGaleries[i].idObj),"click",scrollBackward);
					}
					return true;
				} else {
					return false;
				}
			};
			
			if (!checkDataArray()) {
				alert("Fehler bei der Initialisierung der Bilderstrecke");
			}
		}
	};
	dode.domLoad.registerOnLoad(dode.mainfunc.bilderstreckeInline.init);
};
