function preLoadImages(){
    return;
    // alle Images aus Seite preloaden
    var pics = document.getElementsByTagName("p");
    alert('preLoadImages: '+pics.length);
    if(pics.length > 0){
    	for(var i=0;i<pics.length;i++){
    		alert('image-src: '+pics[i].src);
    		//var tmpBild = new Image();
			//tmpBild.src = pics[i].src;
    	}
    }
}

function elementAddClass(ele,claname){
    if('string' == typeof(ele)) ele = document.getElementsByTagName('ele');
    if(!ele) return false;
    
    var regExpSearch = new RegExp("\\b"+claname+"\\b","");
    if(!regExpSearch.test(ele.className)){
        ele.className += ' ' +claname;
        ele.className.trim();
    }
}
function elementRemoveClass(ele,claname){
    if('string' == typeof(ele)) ele = document.getElementsByTagName('ele');
    if(!ele) return false;
    
    var regExpSearch = new RegExp("\\b"+claname+"\\b","");
    ele.className = ele.className.replace(regExpSearch, ' ').trim();
}
function elementHasClass(ele,claname){
    if('string' == typeof(ele)) ele = document.getElementsByTagName('ele');
    if(!ele) return false;
    
    var regExpSearch = new RegExp("\\b"+claname+"\\b","");
    if(!regExpSearch.test(ele.className)){
        return false;
    } else {
    	return true;
    }
}
// Formhelper
function checkradio(field){
	for (i=0; i<field.length; i++){
			if(field[i].checked == true){
				return field[i].value;
			}
	}
}
// return the value of the radio button that is checked
// return an empty string if none are checked, or
// there are no radio buttons
function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

// set the radio button with the given value as being checked
// do nothing if there are no radio buttons
// if the given value does not exist, all the radio buttons
// are reset to unchecked
function setCheckedValue(radioObj, newValue) {
	if(!radioObj)
		return;
	var radioLength = radioObj.length;
	if(radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if(radioObj[i].value == newValue.toString()) {
			radioObj[i].checked = true;
		}
	}
}
// end of Formhelper
String.prototype.rtrim = function() {return this.replace(/\s+$/, '')}
String.prototype.ltrim = function() {return this.replace(/^\s+/, '')}
String.prototype.trim  = function() {return this.replace(/^\s+|\s+$/g, '')}
String.prototype.empty = function(){ return ('' == this.trim()) ? true : false }
String.prototype.explode = function (delimiter) {
	var item = this;
	tempArray=new Array(1);
	var Count=0;
	var tempString=new String(item);
	while (tempString.indexOf(delimiter)>0) {
		tempArray[Count]=tempString.substr(0,tempString.indexOf(delimiter)).trim();
		tempString=tempString.substr(tempString.indexOf(delimiter)+1,tempString.length-tempString.indexOf(delimiter)+1);
		Count=Count+1
	}
	tempArray[Count]=tempString;
	return tempArray;
}
Array.prototype.implode = function (delimiter) {
	var iLen = this.length;
	var cRet="";
	if(typeof(delimiter) != "string") delimiter=" ";
	for (var i = 0; i < iLen; i++){
		if(i==0){
			cRet = this[i];
		} else {
			cRet = cRet+delimiter+this[i];
		}
	}

	return cRet;
}
Array.prototype.search = function(searchvalue,showDebug){
	var iLen = this.length;
	var retval=-1;
	for (var i = 0; i < iLen; i++){
		if(showDebug) alert('array_search - searchvalue: '+searchvalue+', i: '+i+', current value: '+this[i]);
        if(this[i] == searchvalue){
			retval=i;
			break;
		}
	}
	return retval;
}
/** ULTRA-SIMPLE EVENT ADDING **/
function addEventSimple(obj,evt,fn) {
	if (obj.addEventListener)
		obj.addEventListener(evt,fn,false);
	else if (obj.attachEvent)
		obj.attachEvent('on'+evt,fn);
}
function removeEventSimple(obj,evt,fn) {
	if (obj.removeEventListener)
		obj.removeEventListener(evt,fn,false);
	else if (obj.detachEvent)
		obj.detachEvent('on'+evt,fn);
}
/** PUSH AND SHIFT FOR IE5 **/
function Array_push() {
	var A_p = 0
	for (A_p = 0; A_p < arguments.length; A_p++) {
		this[this.length] = arguments[A_p]
	}
	return this.length
}
if (typeof Array.prototype.push == "undefined") {
	Array.prototype.push = Array_push
}
function Array_shift() {
	var A_s = 0
	var response = this[0]
	for (A_s = 0; A_s < this.length-1; A_s++) {
		this[A_s] = this[A_s + 1]
	}
	this.length--
	return response
}
if (typeof Array.prototype.shift == "undefined") {
	Array.prototype.shift = Array_shift
}

Array.prototype.showDebug = __arrShowDebug;
function __arrShowDebug(){
	var tempString=new String('');
	var len = this.length;
	if(0 == len){
        tempString = 'Array ist leer';
    } else {
        for(i=0;i<len;i++){
    		try{
                tempString = tempString+i+': '+this[i]+'\n';
            } catch(e){}
    	}
	}
	ShowDebug(tempString);
}
// if (typeof Event.prototype.showDebug == "undefined") {
// 	Event.prototype.showDebug = __showDebug;
// }
Object.prototype.showDebug = __showDebug;
function __showDebug(){
	var tempString=new String('');
	for(x in this){
		try{
            tempString = tempString+x+': '+this[x]+'\n';
        } catch(e){}
	}
	ShowDebug(tempString);
}
function ShowDebug(dbgText) {
	var a=Math.ceil(1000*Math.random());
    var dbgWindow = window.open('about:blank','debug_'+a,'scrollbars=yes,width=800,height=600');
	dbgWindow.document.open();
	dbgWindow.document.writeln('<pre>\n');
	dbgWindow.document.write(dbgText);
	dbgWindow.document.writeln('</pre>\n');
	dbgWindow.document.close();
	dbgWindow.focus();
}


function old_getElementsByClassName(class_name){
    var all_obj,ret_obj=new Array(),j=0,teststr;
    
    if(document.all)all_obj=document.all;
    else if(document.getElementsByTagName && !document.all)
      all_obj=document.getElementsByTagName("*");
/*    
    for(i=0;i<all_obj.length;i++){
      if(all_obj[i].className.indexOf(class_name)!=-1)
      {
        teststr=","+all_obj[i].className.split(" ").join(",")+",";
        if(teststr.indexOf(","+class_name+",")!=-1)
        {
          ret_obj[j]=all_obj[i];
          j++;
        }
      }
    }
*/    

   	var regExp = new RegExp("\\b"+class_name+"\\b");
    for(i=0;i<all_obj.length;i++){
    	if(regExp.test(all_obj[i].className)){
            ret_obj[j]=all_obj[i];
            //ret_obj[j]=all_obj[i].className;
            j++;
        }
    }
    return ret_obj;
}
/*
	Developed by Robert Nyman, http://www.robertnyman.com
	Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/	
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};
function getElementsByAttribute(aname,avalue){
    var all_obj,ret_obj=new Array(),j=0,teststr,regExp;
    
    if(document.all)all_obj=document.all;
    else if(document.getElementsByTagName && !document.all)
      all_obj=document.getElementsByTagName("*");
  

   	if('undefined' != typeof avalue)
       regExp = new RegExp("\\b"+avalue+"\\b");
    for(i=0;i<all_obj.length;i++){
    	if(all_obj[i].getAttribute && all_obj[i].getAttribute(aname)){
            //ret_obj[j]=all_obj[i];
            if('undefined' != typeof avalue){
                if(regExp.test(all_obj[i].getAttribute(aname))){
                    ret_obj[j]=all_obj[i];
                    j++;
                }
            } else {
                ret_obj[j]=all_obj[i];
                j++;
            }
        }
    }
    return ret_obj;
}

function MM_preloadImages() { //v3.0
	var d=document; 
	if(d.images){ 
		if(!d.MM_p) d.MM_p=new Array();
		var i,j=d.MM_p.length,a=MM_preloadImages.arguments; 
		for(i=0; i<a.length; i++){
			if (a[i].indexOf("#")!=0){ 
				d.MM_p[j]=new Image; 
				d.MM_p[j++].src=a[i];
			}
		}
	}
}

function MM_swapImgRestore() { //v3.0
	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 MM_swapImage() { //v3.0
	var i,j=0,x,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_findObj(n, d) { //v4.01
	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_showHideLayers() { //v6.0
	var i,p,v,obj,args=MM_showHideLayers.arguments;
	for (i=0; i<(args.length-2); i+=3){ 
		if ((obj=MM_findObj(args[i]))!=null) { 
			v=args[i+2];
			if (obj.style) { 
				obj=obj.style; 
				v=(v=='show')?'visible':(v=='hide')?'hidden':v; 
			}
			obj.visibility=v; 
		}
	}
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
	if (init==true) with (navigator) {
		if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
			document.MM_pgW=innerWidth; 
			document.MM_pgH=innerHeight; 
			onresize=MM_reloadPage; 
		}
	} else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}

function MachAuf(theURL,winName,features) { //v2.0
	window.open(theURL,winName,features).focus();
}

function MissingFeature(){
    var msg="Ooops - Leider sind wir hier noch nicht ganz fertig geworden.\nDiese Funktion steht demnächst zur Verfügung.";
    alert(msg);
}

MM_reloadPage(true);
