<!--
/**
 * global stuff
 */
var myRootUrl = "http://www.hvar-caric.de";
//myRootUrl="file://C:\\Projekte\\Kunden\\hvar-caric\\Internetauftritt V3";

var dataPageWidth = "600px"; // Breite des Datenbereichs
var extWindow; // globale Variable
var gallery;
var pictureGallery = new PictureGallery(); // Bilder-Galerie
var galleryMap; // Karte der Bilder-Galerie
var activeGalleryImage; // aktuelles Bild in der Bildergalerie

/**
 * öffnet ein neues Fenster
 */
function openWindow(url,titel,width,heigth) {
	if (typeof(extWindow) != 'undefined') {
		extWindow.close();
	}
	extWindow = window.open(url,titel,"toolbar=no,location=no,directories=no,status=no,menubar=no,width="+width+"px,height="+heigth+"px");
}
/**
 * Liefert die Root-URL der Starteseite.
 * 
 * @return die Root-URL
 */
function getRootUrl() {
	return myRootUrl;
}
/**
 * Liefert das Verzeichnis in dem die aktuelle Seite befindet.
 *
 * @return der Name des aktuellen Verzeichnisses ohne abschliessendes "/"
 */
function getCurrentDirecotry() {
	var dir = '' + unescape(document.URL);
	var lastChar = (''+dir).lastIndexOf('\\');
	
	if (lastChar < 1) {
		lastChar = dir.lastIndexOf('/');
	}
	dir = dir.substring(0,lastChar);
	return dir;
}
/**
 *
 */
function getFullUrl(url) {
	var myUrl = '' + url;
	// ein absoluter Name wurde angegeben
	if (myUrl.indexOf(myRootUrl) > 0) {
	} else {
	}
}
/**
 *
 */
function getTopUrl() {
	return this.top.URL;
}
/**
 * Erzeugt ein Zoomimage
 */
function createZoomImageHyperLink(titel,url,description) {
	var href;
	href = 'href="/zeigebild.html?'
		+ 'imageName=' + (url)
		+ '&imageTitel=' + (titel)
		+ '&imageDescription='  + (description)
		+ '"'
		;
	return href;
}
/**
 * Wandelet eine relative URL in eine absolute URL um.
 */
function getAbsoluteUrlName(url) {
	var currentUrl;
	var newUrl = '' + url;
	// es wurde eine relative Url angegeben
	if (newUrl.indexOf('.') == 1) {
		newUrl = newUrl.substring(1,url.length);
		if (newUrl.indexOf('/') == 1) {
			newUrl = newUrl.substring(1,newUrl.length);
		}
	}
	return newUrl;
}
/**
 * Ein Bild.
 */
function Picture(titel,smallImageUrl,largeImageUrl,description) {
	this.titel = (titel?titel:'');
	this.smallImageUrl = (smallImageUrl?smallImageUrl:'');
	this.largeImageUrl = (largeImageUrl?largeImageUrl:'');
	this.description = (description?description:'');
}
/**
 * Eine Bildergalerie.
 */
function PictureGallery() {
	this.gallery = new Array(); // die Galerie mit den Bildern
	this.activeElementNumber = -1; // die derzeit aktive Bildnummer in der Galerie
	this.activeElement = null; // das derzeit aktive Bild in der Galerie
	
	PictureGallery.prototype.addElement = pictureGallery__addElement;
	PictureGallery.prototype.getElement = pictureGallery__getElement;
	PictureGallery.prototype.getActiveElement = pictureGallery__getActiveElement;
	PictureGallery.prototype.getNextElement = pictureGallery__getNextElement;
	PictureGallery.prototype.getPreviousElement = pictureGallery__getPreviousElement;
	PictureGallery.prototype.getMap = pictureGallery__getMap;
	PictureGallery.prototype.getNumberOfPictures = pictureGallery__getNumberOfPictures;

	/**
	 * Fügt der Galerie ein Bild hinzu.
	 *
	 * @param picture Bild in Form eines Objekts vom Typ Picture
	 */
	function pictureGallery__addElement(picture) {
		if (picture) {
			this.gallery[this.gallery.length] = picture;
		}
	}
	/**
	 * Liefert ein Element der Galerie.
	 *
	 * @param elementNumber  Nummer innerhalb der Galerie des zu liefernden Elements.
	 * @return Das Bild in Form eines Objektes vom Typ Picture. Ist
	 *   kein Element verfügbar, wird null zurückgeliefert.
	 */
	function pictureGallery__getElement(elementNumber) {
		var returnValue = null;
		if (elementNumber >= 0 && elementNumber <= this.gallery.length) {
			this.activeElementNumber = elementNumber;
			returnValue = this.gallery[elementNumber];
		}
		return returnValue;
	}
	/**
	 * Liefert das aktive Element in der Galerie
	 *
	 * @return Liefert das aktive Element der Galerie in Form eines 
	 *   Objektes vom Typ Picture.
	 */
	function pictureGallery__getActiveElement() {
		var returnValue = null;
		if (this.activeElementNumber < 0) {
			returnValue = this.getNextElement();
		} else {
			returnValue = this.gallery[this.activeElementNumber];
		}
		return returnValue;
	}
	/**
	 * Liefert das nächste Bild der Galerie
	 *
	 * @return Das nächste Bild in Form eines Objektes vom Typ Picture. Ist
	 *   kein Element verfügbar, wird null zurückgeliefert.
	 */
	function pictureGallery__getNextElement() {
		var returnValue = null;
		// prüfen ob bereits ein Element aktiv ist
		if (this.activeElementNumber >= 0) {
			// Überlauf prüfen
			if (this.activeElementNumber >= (this.gallery.length - 1)) {
				this.activeElementNumber = 0;
			} else {
				this.activeElementNumber += 1;
			}
		} else {
			// prüfen ob ein Bild in der Galerie vorhanden ist
			if (this.gallery.length > 0) {
				this.activeElementNumber = 0;
			}
		}
		// das nächste aktive Element zur Auslieferung vorbereiten
		if (this.activeElementNumber >= 0) {
			returnValue =  this.gallery[this.activeElementNumber];
		} 
		return returnValue;
	}
	/**
	 * Liefert das vorige Bild der Galerie
	 *
	 * @return Das vorige Bild in Form eines Objektes vom Typ Picture. Ist
	 *   kein Element verfügbar, wird null zurückgeliefert.
	 */
	function pictureGallery__getPreviousElement() {
		var returnValue = null;
		// prüfen ob bereits ein Element aktiv ist
		if (this.activeElementNumber >= 0) {
			// Überlauf prüfen
			if (this.activeElementNumber <= 0) {
				this.activeElementNumber = this.gallery.length - 1;
			} else {
				this.activeElementNumber -= 1;
			}
		} else {
			// prüfen ob ein Bild in der Galerie vorhanden ist
			if (this.gallery.length > 0) {
				this.activeElementNumber = 0;
			}
		}
		// das nächste aktive Element zur Auslieferung vorbereiten
		if (this.activeElementNumber >= 0) {
			returnValue =  this.gallery[this.activeElementNumber];
		} 
		return returnValue;
	}
	/**
	 * Liefert eine Karte der Galerie.
	 */
	function pictureGallery__getMap() {
		var map = new Array();
		var i;
		var element;
		for (i=0;i<this.gallery.length;i++) {
			element = this.gallery[i];
			map[element.smallImageUrl] = i;
		}
		return map;
	}
	/**
	 * Liefert die Anzahl der Bilder in der Galerie
	 *
	 * @return Die Anzahl
	 */
	function pictureGallery__getNumberOfPictures() {
		return this.gallery.length;
	}
}


/**
 * Liefert das nächste Bild der Galerie
 *
 * @return Das nächste Bild in Form eines GalleryLink
 */
function getNextGalleryElement() {
	var nextGalleryElement;
	var element;
	var getNextElement = false;
	// die Galerie durchlaufen und das aktive Element suchen
	for (element in gallery) {
		// Ist kein Element der Galerie aktiv, so wird das erste verfügbare benutzt
		if (!activeGalleryImage) {
			nextGalleryElement = element;
			break;
		}
		// das aktuelle Element entspricht dem derzeit aktiven Element in der Galerie
		if (element == activeGalleryElement) {
			getNextElement = true;
		}
	}
}
/**
 * Erzeugt ein Bild ...
 *
 * @param titel  Der Titel des Bildes
 * @param smallImageUrl  Die URL des Bildes im Kleinformat
 * @param largeImageUrl  Die URL des Bildes im Großformat
 * @param description  Die Beschreibung zum Bild
 */
function createViewPicture(titel,smallImageUrl,largeImageUrl,description) {
	var tag;
	var currentUrl = getCurrentDirecotry();
	var rootUrl = getRootUrl();
	var smallImageAbsoluteUrl = currentUrl + '/' + smallImageUrl;
	var largeImageAbsoluteUrl = currentUrl + '/' + largeImageUrl;

	tag = '<TABLE>'
		+ '<TR>'
		// das anzuzeigende Bild im Kleinformat
		+ '<TD>'
			+ '<a href="' + rootUrl + '/zeigebild.html'
				+ '?imageTitel=' + (titel)
				+ '\&imageUrl=' + (largeImageAbsoluteUrl)
				+ '\&imageDescription=' + escape(description)
				+ '"'
			+ ' target="_self">'
			+ '<IMG src="' + smallImageAbsoluteUrl + '">'
			+ '</a>'
		+ '</TD>'
		+ '</TR>'

		+ '<TR>'

		// der Vergrößerungshinweis
		+ '<TD>'
			+ '<P class="hint">'
			+ '<a href="' + rootUrl + '/zeigebild.html'
				+ '?imageTitel=' + (titel)
				+ '\&imageUrl=' + (largeImageAbsoluteUrl)
				+ '\&imageDescription=' + escape(description)
				+ '"'
			+ ' target="_self">Bild vergr&ouml;&szlig;ern'
			+ '</a>'
			+ '</P>'
		+ '</TD>'
		
		+ '</TR>'
		+ '</TABLE>'
		;
	document.write(tag);
}
function createViewPictureLink(text,titel,largeImageUrl,description) {
	var tag;
	var currentUrl = getCurrentDirecotry();
	var rootUrl = getRootUrl();
	var largeImageAbsoluteUrl = currentUrl + '/' + largeImageUrl;

	tag = '<A'
		+ ' href="' + rootUrl + '/zeigebild.html'
			+ '?imageTitel=' + (titel)
			+ '\&imageUrl=' + (largeImageAbsoluteUrl)
			+ '\&imageDescription=' + escape(description)
			+ '"'
		+ ' target="_self">'
		+ text
		+ '</a>'
		;
	document.write(tag);
}
/**
 *
 */
function createLink(text,url) {
	var tag;
	tag = '<A'
		+ ' href="' + url + '"'
		+ ' target="_self">'
		+ text
		+ '</a>'
		;
	document.write(tag);
}
/**
 * Ein GalleryLink ist ein Element der Gallery
 */
function GalleryLink (titel,smallImageUrl,largeImageUrl,description) {
	this.titel = (titel?titel:'');
	this.smallImageUrl = (smallImageUrl?smallImageUrl:'');
	this.largeImageUrl = (largeImageUrl?largeImageUrl:'');
	this.description = (description?description:'');
}
/**
 * Fügt der Galerie ein Element hinzu
 *
 * @param imageUrl
 * @param titel
 * @param largeImageUrl
 * @param description
 */
function addGalleryLink(titel,smallImageUrl,largeImageUrl,description) {
	if (typeof(gallery) == 'undefined') gallery = new Array();

	var galleryLink = new GalleryLink(titel,smallImageUrl,largeImageUrl,description);
	gallery[gallery.length] = galleryLink;
}
/**
 * Malt die aktuelle Galerie als Symbole.
 *
 * @param gallery  Die Bildergalerie in Form einer PictureGallery
 * @param numberOfImagesPerRow  Anzahl der Symbole pro Zeile
 */
function paintGallery(gallery,numberOfImagesPerRow) {
	var i;
	var tag;
	var galleryImage;
	var numberOfImages = gallery.getNumberOfPictures();
	var element;

	tag = '<TABLE align="center" width="' + dataPageWidth + '">';
	tag += '<TR>';

	for (i=0;i<numberOfImages;i++){
		galleryImage = gallery.getElement(i);
		if ((i % numberOfImagesPerRow) == 0) tag += '</TR></TR>';
		tag += '<TD><P align="center">'
				+ '<a '
				+ ' href="javascript:showGalleryPicture(pictureGallery,' + i + ')"'
				+ '>'
					+ '<IMG'
					+ ' src="' + galleryImage.smallImageUrl + '"'
					+ ' width="70px"'
					+ ' height="70px"'
					+ '>' // end IMG
				+ '</a>'
			+ '</P></TD>'
			;
	}
	if ((i%numberOfImagesPerRow) > 0) tag += '</TR>';
	tag += '</TABLE>';
	document.write(tag);
}
/**
 *
 */
function showGalleryPicture(gallery,imageNumber) {
	var rootUrl = getRootUrl();
	var currentUrl = getCurrentDirecotry();

	var anchor = getAnchor("galleryViewerLink");

	var galleryViewerImage = document.images["galleryViewerImage"];
	var galleryImage = gallery.getElement(imageNumber);

	// das Bild laden
	if (galleryViewerImage && galleryImage) {
		galleryViewerImage.src = galleryImage.largeImageUrl;
	}
	// den Anker anpassen
	if (anchor) {
		anchor.href = rootUrl + '/zeigebild.html'
				+ '?imageTitel=' + (galleryImage.titel)
				+ '\&imageUrl=' + (currentUrl + '/' + galleryImage.largeImageUrl)
				+ '\&imageDescription=' + escape(galleryImage.description)
				;
	}
}
/**
 * Liefert den benannten Anker.
 *
 * @param name  Name des Ankers.
 * @return Den gefundenen Anker
 */
function getAnchor(name) {
	var i;
	var anchor;
	for (i=0; i<document.anchors.length;i++) {
		if (document.anchors[i].name == name) {
			anchor = document.anchors[i];
		}
	}
	return anchor;
}
//-->
