var isIE = document.all&&!window.opera?1:0;
var isW3C = document.getElementById?1:0;
var boxOffsetX = 10;
var boxOffsetY = 10;
var toolMode = "lupe";

/* courtesy http://blog.firetree.net/2005/07/04/javascript-find-position/ */
function findPosX(obj)
{
		var curleft = 0;
		if(obj.offsetParent)
				while(1) 
				{
						curleft += obj.offsetLeft;
						if(!obj.offsetParent)
								break;
						obj = obj.offsetParent;
				}
		else if(obj.x)
				curleft += obj.x;
		return curleft;
}

function findPosY(obj)
{
		var curtop = 0;
		if(obj.offsetParent)
				while(1)
				{
						curtop += obj.offsetTop;
						if(!obj.offsetParent)
								break;
						obj = obj.offsetParent;
				}
		else if(obj.y)
				curtop += obj.y;
		return curtop;
}
//
// Funktionen fuer linke Navigation - DEPRECATED ?
//
function togglePreview(caller) {
	var ref=document.previewForm.show_preview;
	if (caller == 'link') {
		if (ref.checked) {
			ref.checked = false;
		} else {
			ref.checked = true;
		}
	}
	var set_display = 'none';
	if (ref && ref.checked) {
		set_display = 'block';
	}
	var all_spans = document.getElementsByTagName('span');
	if (all_spans.length) {
		for (var i = 0; i < all_spans.length; i++) {
			if (all_spans[i].className && all_spans[i].className == "seitenvorschau") {
				all_spans[i].style.display = set_display;
			}
		}
	}
	// Aktuellen Zustand im Memory speichern
	if (document.images.epaper_memory) {
		// aktuelle Millisekunden seit 1970 - werden an URL fuer memory-pixel gehaengt um jegliches Caching zu unterbinden
		var currentTime = new Date();
		var dummyAddition = currentTime.getTime();
		var url = 'show.php?template=ep2_memory&mem_var=previewMode&mem_mode=set&mem_val=' + set_display + '&dummy=' + dummyAddition;
		document.images.epaper_memory.src = url;
	}
}
function toggleRessort(ressortIdent,mode) {
	var openerIdent = ressortIdent.replace('seiten_','opener_');
	var openerObject = document.getElementById(openerIdent);
	// aktuelle Millisekunden seit 1970 - werden an URL fuer memory-pixel gehaengt um jegliches Caching zu unterbinden
	var currentTime = new Date();
	var dummyAddition = currentTime.getTime();
	if (ressortObject = document.getElementById(ressortIdent)) {
		if (ressortObject.style.display == 'inline') {
			ressortObject.style.display = 'none';
			if (openerObject) {
				openerObject.className = openerObject.className.replace(' open', ' closed');
				// in der Session merken
				if (document.images.epaper_memory && mode != 'quick') {
					var url = 'show.php?template=ep2_memory&mem_var=' + ressortIdent + '&mem_slot=navStatus&mem_mode=unset&dummy=' + dummyAddition;
					document.images.epaper_memory.src = url;
				}
			}
		} else {
			ressortObject.style.display = 'inline';
			if (openerObject) {
				openerObject.className = openerObject.className.replace(' closed', ' open');
				// in der Session merken
				if (document.images.epaper_memory && mode != 'quick') {
					var url = 'show.php?template=ep2_memory&mem_var=' + ressortIdent + '&mem_slot=navStatus&mem_val=open&mem_mode=set&dummy=' + dummyAddition;
					document.images.epaper_memory.src = url;
				}
			}
		}
	}
}
//
// Funktionen fuer Sammelmappe
//
function selectRessort (ressort, caller, slot) {
	var selectorId = 'selector_' + ressort;
	var setValue = true;
	if (selectorObject = document.getElementById(selectorId)) {
		if (caller == 'link') {
			if (selectorObject.checked) {
				selectorObject.checked = false;
			} else {
				selectorObject.checked = true;
			}
		}
		setValue = selectorObject.checked;
		if (document.sammelmappe) {
			var ref = document.sammelmappe;
			if (ref.elements.length) {
				var identList = new Array();
				var listIndex = 0;
				for (var i = 0; i < ref.elements.length; i++) {
					theElement = ref.elements[i];
					if (theElement.id.indexOf(ressort) == 0) {
						theElement.checked = setValue;
						var pageNumber = theElement.id;
						selectPage(pageNumber,'selectRessort');
						identList[listIndex] = theElement.value;
						listIndex ++;
					}
				}
				// bei Aufruf durch Funktion (selectAll) die Liste der IDs zurueckliefern
				if (caller == 'function') {
					return identList.join(',');
				}
				var setMode = 'list_unset';
				if (setValue) {
					setMode = 'list_set';
				}
				epaperMemory({
					mem_slot : slot,
					mem_mode : setMode,
					mem_var : identList.join(','),
					mem_val : 'in'
				});
			}
		}
	}
}
function findPageId(ident) {
	var returnValue = '';
	if (document.sammelmappe) {
		var ref = document.sammelmappe;
		if (ref.elements.length) {
			for (var i = 0; i < ref.elements.length; i++) {
				if (ref.elements[i].name == 'pageBox[]' && ref.elements[i].value == ident) {
					returnValue = ref.elements[i].id;
					break;
				}
			}
		}
	}
	return returnValue;
}
function selectPage (pageId, caller, ident, slot) {
	if (pageObject = document.getElementById(pageId)) {
		if (caller == 'link' || caller == 'autoSet') {
			if (pageObject.checked) {
				pageObject.checked = false;
			} else {
				pageObject.checked = true;
			}
		}
		divIdent = 'div_' + pageId;
		if (cellObject = document.getElementById(divIdent)) {
			if (pageObject.checked && cellObject.className.indexOf('markiert') < 0) {
				cellObject.className = cellObject.className + ' markiert';
				var setMode = 'set';
			} else if (pageObject.checked == false) {
				cellObject.className = cellObject.className.replace(' markiert','');
				var setMode = 'unset';
			}
			if (caller == 'link' || caller == 'checkbox') {
				epaperMemory({
					mem_slot : slot,
					mem_mode : setMode,
					mem_var : ident,
					mem_val : 'in'
				});
			}
		}
	}
}
function selectAll (caller,slot) {
	var ref = document.sammelmappe;
	var selectorObject = ref.elements.alle_ressorts;
	if (caller == 'link') {
		if (selectorObject.checked) {
			selectorObject.checked = false;
		} else {
			selectorObject.checked = true;
		}
	}
	var setValue = selectorObject.checked;
	var listIndex = 0;
	var identList = new Array();
	if (ref.elements.length) {
		for (var i = 0; i < ref.elements.length; i++) {
			theElement = ref.elements[i];
			if (theElement.id.indexOf('selector') > -1) {
				theElement.checked = setValue;
				theRessort = theElement.id.replace('selector_','');
				identList[listIndex] = selectRessort(theRessort,'function');
				listIndex ++;
			}
		}
	}
	var setMode = 'list_unset';
	if (setValue) {
		setMode = 'list_set';
	}
	epaperMemory({
		mem_slot : slot,
		mem_mode : setMode,
		mem_var : identList.join(','),
		mem_val : 'in'
	});
		
}
function gatherPDF() {
	if (boxCollection = document.getElementsByName('pageBox[]')) {
		boxCount = boxCollection.length;
		var boxChecked = false;
		for (var i=0; i < boxCount; i++) {
			if (boxCollection[i].checked) {
				boxChecked = true;
				break;
			}
		}
		if (boxChecked) {
			document.sammelmappe.submit();
		} else {
			alert ('Bitte wählen Sie mindestens eine Seite aus');
		}
	}
}

//
// Funktionen fuer Kalender
//
function showTitle(thedate,thepic) {
	picdiv = document.getElementById('ausgabe_preview_thumb');
	datediv = document.getElementById('ausgabe_preview_datum');
	prevdiv = document.getElementById('ausgabe_preview');
	if (thepic != '') {
		picdiv.style.backgroundImage = "url("+thepic+")";
		datediv.innerHTML = thedate;
		prevdiv.style.visibility = "visible";
	} else {
		prevdiv.style.visibility = "hidden";
		picdiv.style.backgroundImage = "none";
		datediv.innerHTML = '';
	}
}
//
// Funktionen fuer Artikelboxen
//
function showContent(contentId) {
	// nur im passenden Modus tun wir auch was
	if (toolMode != "artikelboxen") {
		return;
	}
	var box = document.getElementById('hover_box');
	var box_title = document.getElementById('hover_box_titel');
	var box_teaser = document.getElementById('hover_box_teaser');
	idContentTitel = 'hover_titel_' + contentId;
	idContentTeaser = 'hover_teaser_' + contentId;
	if (titelObject = document.getElementById(idContentTitel)) {
		box_title.innerHTML = titelObject.innerHTML;
	}
	if (teaserObject = document.getElementById(idContentTeaser)) {
		box_teaser.innerHTML = teaserObject.innerHTML;
	}
	idActiveElement = 'hover_' + contentId;
	if (hoverObject = document.getElementById(idActiveElement)) {
		hoverObject.className = hoverObject.className.replace('aus','ein');
	}
	document.onmousemove = checkPosition;
}
function hideContent(contentId) {
	// nur im passenden Modus tun wir auch was
	if (toolMode != "artikelboxen") {
		return;
	}
	var box = document.getElementById('hover_box');
	box.style.visibility = 'hidden';
	document.onmousemove = null;
	idActiveElement = 'hover_' + contentId;
	if (hoverObject = document.getElementById(idActiveElement)) {
		hoverObject.className = hoverObject.className.replace('ein','aus');
	}
}
function checkPosition (myEvent) {
	var box = document.getElementById('hover_box');
	myEvent = fixEvent(myEvent);
	var mousePos = getMousePos(myEvent);
	// Mausposition + Offset = divposition
	var boxPosX = mousePos.x + boxOffsetX;
	var boxPosY = mousePos.y + boxOffsetY;
	box.style.position = 'absolute';
	box.style.left = boxPosX + 'px';
	box.style.top = boxPosY + 'px';
	if (box.style.display == 'none') {
		box.style.display = 'block';
	}
	if (box.style.visibility == 'hidden') {
		box.style.visibility = 'visible';
	}
}
function openContent(contentId) {
	// nur im passenden Modus tun wir auch was
	if (toolMode != "artikelboxen") {
		return;
	}
	var windowOptions = 'height=600,width=800,location=no,resizable=yes,scrollbars=yes,status=no';
	var windowName = 'ausschnitt';
	var idActiveElement = 'hover_' + contentId;
	var pageId = document.getElementById("left_selector").getAttribute("cms_id");
	var windowUrl = webroot + "page/cutout/" + pageId;

	if (hoverObject = document.getElementById(idActiveElement)) {
		var posX, posY, sizeX, sizeY;
		if (isIE) {
			posX = hoverObject.style.pixelLeft;
			posY = hoverObject.style.pixelTop;
			sizeX = hoverObject.style.pixelWidth;
			sizeY = hoverObject.style.pixelHeight;
		} else if (isW3C) {
			posX = parseInt (hoverObject.style.left);
			posY = parseInt (hoverObject.style.top);
			sizeX = parseInt (hoverObject.style.width);
			sizeY = parseInt (hoverObject.style.height);
		}
		//windowUrl += '&x=' + posX + '&y=' + posY + '&w=' + sizeX + '&h=' + sizeY;
		windowUrl += "/" + posX + "/" + posY + "/" + sizeX + "/" + sizeY;
	}
	var newWindow = window.open(windowUrl,windowName,windowOptions);
	newWindow.focus();
	newWindow.origWindow = window;
}

//
// Funktionen fuer Seitenlupe
//

var preservedOnload = false;
if (window.onload && typeof window.onload == "function") {
	preservedOnload = window.onload;
}

leftSelector = false;
rightSelector = false;
window.onload = function () {

	if (document.getElementById("bild_links")) {
		leftSelector = new selectorBox("bild_links", "left_selector");
	}

	if (document.getElementById("bild_rechts")) {
		rightSelector = new selectorBox("bild_rechts", "right_selector");
	}

	if (preservedOnload) {
		preservedOnload();
	}

}

function switchToolMode(newMode) {
	// die globale setzen
	toolMode = newMode;
	var active = "link_lupe";
	var inactive = "link_artikelboxen";
	var setCursor = "crosshair";
	if (toolMode == "artikelboxen") {
		// evtl. shade schliessen
		if (leftSelector) {
			leftSelector.close();
		}
		if (rightSelector) {
			rightSelector.close();
		}
		active = "link_artikelboxen";
		inactive = "link_lupe";
		setCursor = "auto";
	}
	// Klassen der Links umschalten
	if (aObject = document.getElementById(active)) {
		aObject.className = aObject.className.replace(' inaktiv', ' aktiv');
	}
	if (iObject = document.getElementById(inactive)) {
		iObject.className = iObject.className.replace(' aktiv', ' inaktiv');
	}
	var leftPic = document.getElementById("bild_links");
	var rightPic = document.getElementById("bild_rechts");
	if (leftPic) {
		leftPic.style.cursor = setCursor;
	}
	if (rightPic) {
		rightPic.style.cursor = setCursor;
	}
}
function selectorBox (imgIdent, shadeIdent) {
	this.startPos = new Object();
	this.clickPos = new Object();
	this.imgIdent = imgIdent;
	this.shadeIdent = shadeIdent;
	this.initSelection();
}
selectorBox.prototype.initSelection = function () {
	this.image = document.getElementById(this.imgIdent);
	this.shade = new selectorShade(this.shadeIdent);
	this.shade.image = document.getElementById(this.imgIdent);
	var myObject = this;
	this.image.onmousedown = function (myEvent) {
		if (toolMode != "lupe") {
			return;
		}
//		myObject.close();
		if (leftSelector) {
			leftSelector.close();
		}
		if (rightSelector) {
			rightSelector.close();
		}
		myEvent = fixEvent(myEvent);
		myEvent.stopPropagation();
		myEvent.preventDefault();
		var myPos = getMousePos(myEvent);
		myObject.startPos.x = myPos.x;
		myObject.startPos.y = myPos.y;
		myObject.shade.x = myObject.startPos.x;
		myObject.shade.y = myObject.startPos.y;
		delete myPos;
		document.onmousemove = function (myEvent) {
			myEvent = fixEvent(myEvent);
			myEvent.stopPropagation();
			myEvent.preventDefault();
			var myPos = getMousePos(myEvent);
			myObject.shade.farX = myPos.x;
			myObject.shade.farY = myPos.y;
			delete myPos;
			myObject.shade.drawShade();
		};
		document.onmouseup = function () {
			document.onmousemove = null;
		};
	};
	this.shade.div.onmousedown = function (myEvent) {
		myEvent = fixEvent(myEvent);
		myEvent.stopPropagation();
		myEvent.preventDefault();
		// get current mouse position and store it
		myObject.clickPos = getMousePos(myEvent);
		// remember starting position for selection
		myObject.startPos.x = myObject.shade.right;
		myObject.startPos.y = myObject.shade.bottom;
		myObject.shade.x = myObject.shade.left;
		myObject.shade.farX = myObject.shade.right;
		myObject.shade.y = myObject.shade.top;
		myObject.shade.farY = myObject.shade.bottom;
		myObject.shade.div.style.cursor = "move";
		document.onmousemove = function (myEvent) {
			myEvent = fixEvent(myEvent);
			myEvent.stopPropagation();
			myEvent.preventDefault();
			// calculate mouse movement
			var mousePos = getMousePos(myEvent);
			var diffX = myObject.clickPos.x - mousePos.x;
			var diffY = myObject.clickPos.y - mousePos.y;
			// calculate new position of lower right corner
			myObject.shade.farX = myObject.startPos.x - diffX;
			myObject.shade.farY = myObject.startPos.y - diffY;
			// calculate new position of top left corner
			myObject.shade.x = myObject.shade.farX - myObject.shade.width;
			myObject.shade.y = myObject.shade.farY - myObject.shade.height;
			delete myPos;
			myObject.shade.drawShade();
		};
		document.onmouseup = function () {
			myObject.shade.div.style.cursor = "auto";
			document.onmousemove = null;
		};
	};
};
selectorBox.prototype.close = function () {
	this.shade.farX = this.shade.x;
	this.shade.farY = this.shade.y;
	this.shade.width = 0;
	this.shade.height = 0;
	this.shade.drawShade();
}
selectorShade = function (myIdent) {
	this.div = document.getElementById(myIdent);
	this.img = document.getElementById('bild_links');
	this.width = 0;
	this.height = 0;
	this.x = 0;
	this.y = 0;
	this.farX = 0;
	this.farY = 0;
	this.startPos = new Object();
	var resizeIdent = "_corner_" + myIdent.replace("_selector","");
	this.resizePoints = new Object();
	this.resizePoints.nw = document.getElementById("nw" + resizeIdent);
	this.resizePoints.ne = document.getElementById("ne" + resizeIdent);
	this.resizePoints.sw = document.getElementById("sw" + resizeIdent);
	this.resizePoints.se = document.getElementById("se" + resizeIdent);
	var myShade = this;
	this.div.ondblclick = function () {
		var picLeft = findPosX(myShade.image);
		
		/* we need to append the height of col3_content, because the class="clearfix" attribute breaks the findPosY function */
		var picTop = findPosY(myShade.image);

		var x = myShade.left - picLeft;
		var y = myShade.top - picTop;
		var w = myShade.width;
		var h = myShade.height;
		//var thumbwidth = parseInt(myShade.image.style.width);
		var seiteIdent = myShade.div.getAttribute("cms_id");
		var windowOptions = "height=600,width=800,location=no,resizable=yes,menubar=yes,scrollbars=yes,status=no";
		
		// todo: find a way to get seiteIdent and thumbwidth
		// FIXME: This url needs to be changed to fit epaper3
		//var windowUrl = "show.php?id=" + seiteIdent + "&template=ep2_ausschnitt&x=" + x + "&y=" + y + "&w=" + w + "&h=" + h;
		//windowUrl += "&thumbwidth=" + thumbwidth;
		
		var windowUrl = webroot + "page/cutout/" + seiteIdent + "/" + x + "/" + y + "/" + w + "/" + h;
		var windowName = "ausschnitt";
		var newWindow = window.open(windowUrl, windowName, windowOptions);
		newWindow.focus();
	};

	this.cornerResize = function (myEvent) {
		myEvent = fixEvent(myEvent);
		myEvent.stopPropagation();
		myEvent.preventDefault();
		var moveDirection = myEvent.target.id.substr(0,2);
		myShade.clickPos = getMousePos(myEvent);
		var keepY = "top";
		var keepX = "left";
		var changeY = "bottom";
		var changeX = "right";
		if (moveDirection == "nw" || moveDirection == "ne") {
			var keepY = "bottom";
			var changeY = "top";
		}
		if (moveDirection == "sw" || moveDirection == "nw") {
			var keepX = "right";
			var changeX = "left";
		}
		myShade.div.style.cursor = moveDirection + "-resize";
		myShade.y = myShade[keepY];
		myShade.farY = myShade[changeY];
		myShade.x = myShade[keepX];
		myShade.farX = myShade[changeX];
		myShade.startPos.x = myShade.farX;
		myShade.startPos.y = myShade.farY;
		document.onmousemove = function (myEvent) {
			myEvent = fixEvent(myEvent);
			myEvent.stopPropagation();
			myEvent.preventDefault();
			var mousePos = getMousePos (myEvent);
			var diffX = myShade.clickPos.x - mousePos.x;
			var diffY = myShade.clickPos.y - mousePos.y;
			myShade.farX = myShade.startPos.x - diffX;
			myShade.farY = myShade.startPos.y - diffY;
			delete mousePos
			myShade.drawShade();
		};
		document.onmouseup = function () {
			myShade.div.style.cursor = "auto";
			document.onmousemove = null;
		}
	};
	this.resizePoints.nw.onmousedown = this.cornerResize;
	this.resizePoints.ne.onmousedown = this.cornerResize;
	this.resizePoints.sw.onmousedown = this.cornerResize;
	this.resizePoints.se.onmousedown = this.cornerResize;
}
selectorShade.prototype.checkMax = function () {
		var picLeft = findPosX(this.image);
		
		/* we need to append the height of col3_content, because the class="clearfix" attribute breaks the findPosY function */
		var picTop = findPosY(this.image);

	//var picLeft = this.image.offsetLeft;
	//var picTop = this.image.offsetTop;
	var picRight = picLeft - (-1 * parseInt(this.image.offsetWidth));
	var picBottom = picTop - (-1 * parseInt(this.image.offsetHeight));
	if (this.left < picLeft) {
		this.left = picLeft;
		this.right = this.left - (-1 * this.width);
	}
	if (this.top < picTop) {
		this.top = picTop;
		this.bottom = this.top - (-1 * this.height);
	}
	if (this.right > picRight) {
		this.right = picRight;
		this.left = this.right - this.width;
	}
	if (this.bottom > picBottom) {
		this.bottom = picBottom;
		this.top = this.bottom - this.height;
	}
};
selectorShade.prototype.showResizePoints = function (mode) {
	if (mode != "hidden") {
		mode = "visible";
	}
	this.resizePoints.nw.style.visibility = mode;
	this.resizePoints.ne.style.visibility = mode;
	this.resizePoints.sw.style.visibility = mode;
	this.resizePoints.se.style.visibility = mode;
};
selectorShade.prototype.drawShade = function () {
	// find the four corners
	this.left = (this.x < this.farX) ? this.x : this.farX;
	this.top = (this.y < this.farY) ? this.y : this.farY;
	this.right = (this.x > this.farX) ? this.x : this.farX;
	this.bottom = (this.y > this.farY) ? this.y : this.farY;
	// check max size
	this.checkMax();
	// calculate width and height
	this.width = this.right - this.left;
	this.height = this.bottom - this.top;
	// change the style according to the new values
	this.div.style.left = this.left + "px";
	this.div.style.top = this.top + "px";
	this.div.style.width = Math.abs(this.width) + "px";
	this.div.style.height = Math.abs(this.height) + "px";
	// toggle visibility of resize points
	if (Math.abs(this.width) > 14 && Math.abs(this.height) > 14) {
		this.showResizePoints();
		this.div.style.border  = "1px solid black";
	} else if (Math.abs(this.width) > 4 && Math.abs(this.height) > 4) {
		this.showResizePoints("hidden");
		this.div.style.border = "1px solid black";
	} else {
		this.showResizePoints("hidden");
		this.div.style.border = "none";
	}
};
function getMousePos(myEvent) {
	var returnValue = new Object();
	if (!isIE && myEvent.pageX) {
		returnValue.x = myEvent.pageX;
		returnValue.y = myEvent.pageY;
	} else if (document.documentElement && document.documentElement.scrollTop) {
		returnValue.x = myEvent.clientX + document.documentElement.scrollLeft;
		returnValue.y = myEvent.clientY + document.documentElement.scrollTop;
	} else {
		returnValue.x = myEvent.clientX + document.body.scrollLeft;
		returnValue.y = myEvent.clientY + document.body.scrollTop;
	}
	return returnValue;
}
//
// Funktionen fuer Merkzettel
//
function Merkzettel(mode,ident,slot) {
	var currentTime = new Date();
	var dummyAddition = currentTime.getTime();

	var linkIdent = 'mz_link_' + ident;
	if (!(clickedLink = document.getElementById(linkIdent))) {
		clickedLink=document.getElementById('mz_topLink');
	}
	if (mode != 'addForm' && clickedLink.className.indexOf(' on') > 0) {
		mode = "remove";
	} else if (mode != 'addForm') {
		mode = "add";
	}
	holder = getCurrentHolder();
	if (mode == "add") {
		var url = webroot + 'leaflet/set/' + ident + '/' + Math.random();
		ajax = getHTTPObject();
		ajax.open( "GET", url, true );
		/**alert(holder);*/
		ajax.send( true );
		clickedLink.className = clickedLink.className + ' on';
		if(holder != 'undefined'){
			holder.setAttribute("leaflet", "on");
		}else{
			alert("no holder");
		}
		
	} else if (mode == 'remove') {
	var url = webroot + 'leaflet/remove/' + ident + '/' + Math.random();
	ajax = getHTTPObject();
	ajax.open( "GET", url, true );
	ajax.send( true );
		clickedLink.className = clickedLink.className.replace(' on', '');

		if(holder != 'undefined'){
			holder.setAttribute("leaflet", "");
		}else{
			alert("no holder");
		}
	} else if (mode == 'addForm') {
		ref = document.forms['sammelmappe'];
		identList = new Array();
		var formLength = ref.elements.length;
		var listIndex = 0;
		for (var i=0; i < formLength; i++) {
			myBox = ref.elements[i];
			if (myBox.type == "checkbox") {
				if (myBox.checked && myBox.name == 'pageBox[]') {
					identList[listIndex] = myBox.value;
					listIndex ++;
				}
			}
		}
		identString = identList.join(',');
		//var url = 'show.php?template=ep2_memory&mem_mode=list_set&mem_slot=' + slot + '&mem_val=in&mem_var=' + identString + '&dummy=' + dummyAddition;
		//document.images.epaper_memory.src = url;
		var url = webroot + 'leaflet/list_set/' + identString + '/' + Math.random();
		ajax = getHTTPObject();
		ajax.open( "GET", url, true );
		ajax.send( true );
	}
}
function mzRemove(rowIdent, mem_var, slot) {
	// aus dem Merkzettel entfernen
	//if (document.images.epaper_memory) {
	//	var url = 'show.php?template=ep2_memory&mem_slot=' + slot + '&mem_mode=unset&mem_var=' + mem_var;
	//	document.images.epaper_memory.src = url;
	//}
		var url = webroot + 'leaflet/remove/' + mem_var + '/' + Math.random();
		//document.images.epaper_memory.src = url;
		ajax = getHTTPObject();
		ajax.open( "GET", url, true );
		ajax.send( true );


	// Tabellenreihe finden und entfernen
	if (myRow = document.getElementById(rowIdent)) {
		myIndex = myRow.rowIndex;
		if (myTable = document.getElementById('mz_auswahl')) {
			myTable.deleteRow(myIndex);
		}
	}
	
	// jetzt neu durchzählen und Gesamtgröße berechnen
	if (ref = document.mz_form) {
		if (sizeFields = ref.elements['filesize[]']) {
			var pageCounter = sizeFields.length;
			var filesizeTotal = 0;
			if (pageCounter > 1) {
				for (var i=0; i < pageCounter; i++) {
					filesizeTotal -= sizeFields[i].value * (-1);
				}
			} else {
				pageCounter = 1;
				// IE handles that differently
				if (isIE) {
					filesizeTotal = sizeFields[0].value;
				} else {
					filesizeTotal = sizeFields.value;
				}
			}
		} else {
			pageCounter = 0;
			filesizeTotal = 0;
		}
		if (counterSpan = document.getElementById('mz_pageCounter')) {
			counterSpan.innerHTML = pageCounter;
		}
		if (sizeSpan = document.getElementById('mz_filesizeTotal')) {
			filesizeTotal = filesizeTotal / (1024*1024);
			filesizeTotal = (filesizeTotal.toString().substr(0,5));
			sizeSpan.innerHTML = filesizeTotal;
		}
				
	}
}
//
// Funktionen fuer Suche
//
function toggleDateFields () {
	if (fieldObject = document.getElementById('datumsSuche')) {
		checkObject = document.getElementById('zeitraumcheck');
		ref = document.sammelmappe;
		if (ref.zeitraum) {
			myIndex = ref.zeitraum.selectedIndex;
			if (ref.zeitraum[myIndex].value == 'free') {
				fieldObject.style.display = 'inline';
				checkObject.value = '1';
			} else {
				fieldObject.style.display = 'none';
				checkObject.value = '0';
			}
		}
	}
}
function submitSearch(formName) {
	var myForm = document.forms[formName];
	if (myForm['query'] && myForm['query'].value == '') {
		alert ('Bitte geben Sie einen Suchbegriff ein');
	} else {
		myForm.submit();
	}
}
//
// epaperMemory 
//
function epaperMemory(params) {
		// aktuelle Millisekunden seit 1970 - werden an URL fuer memory-pixel gehaengt um jegliches Caching zu unterbinden
		var currentTime = new Date();
		var dummyAddition = currentTime.getTime();
		//var url = 'show.php?template=ep2_memory&dummy=' + dummyAddition;
		//for (var paramKey in params) {
		//	url += '&' + paramKey + '=' + params[paramKey];
		//}
params['mem_mode'] = params['mem_mode'].replace( /unset/, 'remove' );
		//params['mem_mode'] = params['mem_mode'] == 'unset' ? 'remove' : params['mem_mode'];

		var url = webroot + 'leaflet/' + params['mem_mode'] + '/' + params['mem_var'] + '/' + Math.random();
		//document.images.epaper_memory.src = url;
		/*alert(url);*/
		ajax = getHTTPObject();
		ajax.open( "GET", url, true );
		ajax.send( true );

}
//
// events "normalisieren"
//
function fixEvent(myEvent) {
	// fix the event for IE
	if (window.event) {
		myEvent=window.event;
		if (!myEvent.target) {
			myEvent.target = myEvent.srcElement;
		}
		if (!myEvent.stopPropagation) {
			myEvent.stopPropagation = function () {
				this.cancelBubble = true;
			};
		}
		if (!myEvent.preventDefault) {
			myEvent.preventDefault = function () {
				this.returnValue = false;
			};
		}
	}
	return myEvent;
}

// gratuitiously nabbed from http://www.thesession.org/scripts/ajax.js

function getHTTPObject() {
	try {
		var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {
			try {
				var xmlhttp = new XMLHttpRequest();
			} catch (e) {
				var xmlhttp = false;
			}
		}
	}
	return xmlhttp;
}

//this function should return element object by its name in any browser
function gE(id) {
    return (document.getElementById ? document.getElementById(id) :
        (document.all ? document.all[id] :
            (document.layers ? document.layers[id] : null)
        )
    );
}
