
function MM_openBrWindow(theURL, winName, features) { //v2.0
	window.open(theURL, winName, features);
}

function change_prop(form, field, new_value, submit, question) {
	if (submit) {
		if (question.length>1) { var eingabe; eingabe=confirm(question); }
		else { var eingabe=true; }
		if (eingabe) {
			if ($('scrollposition')) {
				var scroll_position;
				if (window.pageYOffset) { scroll_position=window.pageYOffset; }
				else if (document.body) { scroll_position=document.body.scrollTop; }
				else { scroll_position='x'; }
				change_prop(form, 'scrollposition', scroll_position, false, '');
			}
			$(field).value=new_value; $(form).submit();
		}
	} else { $(field).value=new_value; }
}

function predefined_input_focus(what, term) {
	var feld=$(what), wert=String($F(what));
	if (wert==term) { feld.value=""; }
}
function predefined_input_blur(what, term) {
	var feld=$(what), wert=String($F(what));
	if (wert.blank()) { feld.value=term; }
}
function predefined_input_submit(what, term) {
	var wert=String($F(what));
	if (wert.blank() || wert==term) { return false; }
	return true;
}

function showLoading(controllId, controllValue, doReturn) {
	var do_show=false;
	if (controllId==undefined) {
		if ($F("screen").substring(0, 4)=="save") {
			do_show=true;
		}
	} else if ($F(controllId)==controllValue) {
		do_show=true;
	}
	if (do_show) {
		var objBody=document.getElementsByTagName("body").item(0);
		var objOverlay=document.createElement("div");
		objOverlay.setAttribute('id', 'darkoverlay');
		objBody.appendChild(objOverlay);
		var objLightbox=document.createElement("div");
		objLightbox.setAttribute('id', 'lightoverlay');
		objBody.appendChild(objLightbox);
		var objLightboxLoading=document.createElement("img");
		objLightboxLoading.setAttribute('src', root_path+fileLoadingImage);
		objLightbox.appendChild(objLightboxLoading);
		var objLightboxBr=document.createElement("br");
		objLightbox.appendChild(objLightboxBr);
		var objLightboxLoadingText=document.createElement("div");
		objLightboxLoadingText.setAttribute('id', 'loadingtext');
		objLightbox.appendChild(objLightboxLoadingText);
		$('loadingtext').innerHTML=submitFormLang;
		
		var arrayPageSize=getPageSize();
		var arrayPageScroll=getPageScroll();
		
		Element.setHeight('darkoverlay', arrayPageSize[1]);
		Element.setTop('lightoverlay', arrayPageScroll[1]+(arrayPageSize[3]/2-150/2));
		Element.setLeft('lightoverlay', arrayPageScroll[0]+(arrayPageSize[2]/2-400/2));
		
		toggleSelectBoxes("hidden");
	}
	
	if (doReturn!=false) {
		return true;
	}
}

function scrollToPos(y_pos) {
	if (scroller) {
		var x=document.documentElement.scrollLeft || window.pageXOffset || 0;
		var y=($(y_pos) ? Element.getTop(y_pos) : y_pos);
		scroller.scrollTo(x, y);
	}
}

function MM_findObj(n, d) {
	var p,i,x;
	if (!d) {
		d=document;
	}
	if ((p=n.indexOf("?"))>0 && parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document;
		n=n.substring(0,p);
	}
	if (!(x=d[n]) && d.all) {
		x=d.all[n];
	}
	for (i=0; !x && i<d.forms.length; i++) {
		x=d.forms[i][n];
	}
	for (i=0; !x && d.layers && i<d.layers.length; i++) {
		x=MM_findObj(n,d.layers[i].document);
	}
	if (!x && d.getElementById) {
		x=d.getElementById(n);
	}
	return x;
}

function MM_swapImage() {
	var i;
	var j=0;
	var x;
	var a=MM_swapImage.arguments;
	document.MM_sr=new Array;
	for (i=0; i<(a.length-2); i+=3) {
		if ((x=MM_findObj(a[i]))!=null) {
			document.MM_sr[j++]=x;
			if (!x.oSrc) {
				x.oSrc=x.src;
			}
			x.src=a[i+2];
		}
	}
}

function MM_swapImgRestore() {
	var i,x,a=document.MM_sr;
	for (i=0; a && i<a.length && (x=a[i]) && x.oSrc; i++) {
		x.src=x.oSrc;
	}
}

function autofill_search(search, within, sd, sm, sy, ed, em, ey) {
	$('autofill_search').value=search;
	$('autofill_within_navi').value=within;
	$('autofill_start_day').value=sd;
	$('autofill_start_month').value=sm;
	$('autofill_start_year').value=sy;
	$('autofill_end_day').value=ed;
	$('autofill_end_month').value=em;
	$('autofill_end_year').value=ey;
	$('sidebar_searchform').submit();
}

function addBookmark() {
	var url=window.location.href;
	var title=document.title;
	
	if (Prototype.Browser.IE) {
		window.external.AddFavorite(url, title);
	} else if (Prototype.Browser.Gecko) {
		window.sidebar.addPanel(title, url, '');
	} else if ((typeof window.sidebar=="object") && (typeof window.sidebar.addPanel=="function")) {
		window.sidebar.addPanel(title, url, "");
	} else {
		alert("It's not possible to add bookmarks with a click with your browser.\nBut you can do this manually. (Please look in browser's help)");
	}
}

// returns [xScroll, yScroll]
// Core code from - quirksmode.org
function getPageScroll() {
	var xScroll, yScroll;
	if (self.pageXOffset) {
		xScroll=self.pageXOffset;
	} else if (document.documentElement && document.documentElement.scrollLeft) { // Explorer 6 Strict
		xScroll=document.documentElement.scrollLeft;
	} else if (document.body) { // all other Explorers
		xScroll=document.body.scrollLeft;
	}
	if (self.pageYOffset) {
		yScroll=self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict
		yScroll=document.documentElement.scrollTop;
	} else if (document.body) { // all other Explorers
		yScroll=document.body.scrollTop;
	}
	return [xScroll, yScroll];
}

// returns [pageWidth, pageHeight, windowWidth, windowHeight]
// Core code from - quirksmode.org
// Edit for Firefox by pHaez
function getPageSize() {
	var xScroll, yScroll;
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll=document.body.scrollWidth;
		yScroll=window.innerHeight+window.scrollMaxY;
	} else if (document.body.scrollHeight>document.body.offsetHeight) { // all but Explorer Mac
		xScroll=document.body.scrollWidth;
		yScroll=document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll=document.body.offsetWidth;
		yScroll=document.body.offsetHeight;
	}
	var windowWidth, windowHeight;
	if (self.innerHeight) { // all except Explorer
		windowWidth=self.innerWidth;
		windowHeight=self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth=document.documentElement.clientWidth;
		windowHeight=document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth=document.body.clientWidth;
		windowHeight=document.body.clientHeight;
	}
	// for small pages with total height less then height of the viewport
	if (yScroll<windowHeight) {
		pageHeight=windowHeight;
	} else { 
		pageHeight=yScroll;
	}
	// for small pages with total width less then width of the viewport
	if (xScroll<windowWidth) {	
		pageWidth=windowWidth;
	} else {
		pageWidth=xScroll;
	}
	return [pageWidth, pageHeight, windowWidth, windowHeight];
}

// wird benötigt, damits mit moo.accordion funktioniert, weil das auch flash versteckt!
var dontShowFlash=[];
function toggleSelectBoxes(type, usedParent) {
	if (Prototype.Browser.IE) {
		var selects=($(usedParent) || document.body).getElementsByTagName("select");
		for (var i=0; i<selects.length; i++) {
			selects[i].style.visibility=type;
		}
	}
	var objects=($(usedParent) || document.body).getElementsByTagName("object");
	for (var i=0; i<objects.length; i++) {
		if (type=="visible" && !dontShowFlash.has(objects[i].id)) {
			objects[i].style.visibility=type;
		} else if (type!="visible") {
			objects[i].style.visibility=type;
		}
	}
	var embeds=($(usedParent) || document.body).getElementsByTagName("embed");
	for (var i=0; i<embeds.length; i++) {
		if (type=="visible" && !dontShowFlash.has(embeds[i].id)) {
			embeds[i].style.visibility=type;
		} else if (type!="visible") {
			embeds[i].style.visibility=type;
		}
	}
}

// Additional methods for Element added by SU, Couloir
// - further additions by Lokesh Dhakar (huddletogether.com)
Object.extend(Element, {
	getSize: function(element) {
		return [this.getWidth(element), this.getHeight(element)];
	},
	setWidth: function(element, w) {
		element=$(element);
		element.style.width=w+"px";
	},
	setHeight: function(element, h) {
		element=$(element);
		element.style.height=h+"px";
	},
	getLeft: function(element) {
		element=$(element);
		var l=0;
		while(element!=null) {
			l+=element.offsetLeft;
			element=element.offsetParent;
		}
		return l;
	},
	getTop: function(element) {
		element=$(element);
		var t=0;
		while(element!=null) {
			t+=element.offsetTop;
			element=element.offsetParent;
		}
		return t;
	},
	getPos: function(element) {
		return [this.getLeft(element), this.getTop(element)];
	},
	setLeft: function(element, l) {
		element=$(element);
		element.style.left=l+"px";
	},
	setTop: function(element, t) {
		element=$(element);
		element.style.top=t+"px";
	},
	setPos: function(element, l, t) {
		this.setLeft(element, l);
		this.setTop(element, t);
	},
	setSrc: function(element,src) {
		element=$(element);
		element.src=src; 
	}
});

Array.prototype.removeDuplicates=function(index) {
	if (index==undefined) { index=0; }
	for (var i=0; i<this.length; i++) {
		for (var j=this.length-1; j>i; j--) {
			if (typeof this[i]!="object" && this[i]==this[j]) {
				this.splice(j, 1);
			} else if (typeof this[i]=="object" && this[i][index]==this[j][index]) {
				this.splice(j, 1);
			}
		}
	}
}

Array.prototype.has=function(value) {
	for (var i=0; i<this.length; i++) {
		if (this[i]==value) {
			return true;
		}
	}
	return false;
}


