var h2fToolbox = {
	defaultPwdFields : new Array("passwort","passwort2"),
	defaultTextField : "showPwd",
	defaultPwdFieldText: "Ihr generiertes Passwort lautet:<br /> ",
	
	startList: function(element) {
		if(!element)
			element = "nav";
		if (document.all&&document.getElementById) {
			if(document.getElementById(element)) {
				navRoot = document.getElementById("nav");
				for (i=0; i<navRoot.childNodes.length; i++) {
					node = navRoot.childNodes[i];
					if (node.nodeName=="LI") {
						node.onmouseover=function() {
							this.className+=" over";
						}
						node.onmouseout=function() {
							this.className=this.className.replace(" over", "");
						}
					}
				}
			}
		}
	},

	hoverTable: function() {
		if (document.all&&document.getElementById) {
			tableRoot = document.getElementsByTagName("tr");
			for (i=0; i<tableRoot.length; i++) {
				if(tableRoot[i].className=="tablehover") {
					nodeTR = tableRoot[i];
					nodeTR.onmouseover=function() {
						this.className+=" active";
					}
					nodeTR.onmouseout=function() {
						this.className=this.className.replace(" active", "");
					}
				}
			}
		}
	},
	
 	// Usage: getElementsByClassName(document, "*", "ocms_de_new");
	getElementsByClassName: function(oElm, strTagName, strClassName){

			
			
			if(oElm == null){
				if(document.all){
					var arrElements = document.all;
				}else{
					var arrElements = document.getElementsByTagName(strTagName);
				}
			}else if(oElm.all && strTagName == "*"){
				var arrElements = oElm.all;
			}else{
				var arrElements = oElm.getElementsByTagName(strTagName);
			}

//			var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
			var arrReturnElements = new Array();
		
			strClassName = strClassName.replace(/\-/g, "\\-");
			var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
			var oElement;
			for(var i=0; i<arrElements.length; i++){
				oElement = arrElements[i];
				if(oRegExp.test(oElement.className)){
					arrReturnElements.push(oElement);
				}
			}
			return (arrReturnElements)
	},


	/**
		upperCapital
		Setzt den ersten Buchstaben eines Wortes auf einen Gro&szlig;buchstaben

		@param string 	Wort
		
		@return string
	*/
	upperCapital: function(string) {
		var first = string.substring(0,1).toUpperCase();
		var tail = string.substring(1,string.length);
		return first+tail;
	},
	
	
	/**
		in_array (PHP Clone)
		sucht nach einem angebenen Wert (needle) in einem Array (haystack)
		@Param needle		Wert der gefunden werden soll
		@param haystack		Array, welches durchsucht werden soll
		
		@return true/false
		
		@Beispiel:	in_array("hallo",["hallo","Welt"])
					Gibt TRUE zur&uuml;ck
	*/
	in_array: function(needle, haystack, strict) {
		var found = false, key, strict = !!strict;
 
	    for (key in haystack) {
	        if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
	            found = true;
	            break;
	        }
	    }
 
	    return found;
	},
	
	/**
		is_array (PHP Clone)
		&Uuml;berpr&uuml;ft, ob eine Variabl ein Array ist
		@Param mixed_var		Variable die &uuml;berpr&uuml;ft werden soll
		
		@return true/false
		
		@Beispiel:	is_array(["hallo","Welt"])
					Gibt TRUE zur&uuml;ck
	*/
	is_array: function( array ) {
    	return ( array instanceof Array );
	},
	
	is_null: function(element){
		if ((typeof element =="undefined") || (element == false) || (element == null)){
			return true;
		}
		return false; 
	},
	
	clearInput: function(id) {
		if(document.getElementById(id))
			document.getElementById(id).value="";
	},

	arrayUnique: function(array) {
		if (this.is_array(array)) {
			for (var i = 0; i < array.length; i++) {
				for (var j = (i + 1); j <= array.length; j++) {
					if (array[i] === array[j]) {
						array.splice(j, 1);
					}
				}
			}
			return array;
		}
		else
			return false;
	},
	
	arrayRemoveItem: function(array, item2remove) {
		var cleanedArray = new Array();
		var dirty = false;
		var a = 0;
		
		for(var i =0;i<array.length;i++) {
			if(item2remove!=array[i]){
				cleanedArray.push(array[i]);
			}
		}
		return cleanedArray;
	    //return array.toString().split(item2remove + ",").join("").split(",");    
	},
	
	arrayRemoveEmpty : function(array) {
	    var cache_array = new Array();
	    for (i=0; i<array.length;i++){
			if (array[i] != undefined) {
				cache_array.push (array[i]);
			}
		}
		
	    return cache_array;
	},
	
	arrayRemoveEmptyFalse : function(array) {
	    var cache_array = new Array();
	    for (i=0; i<array.length;i++){
			if (array[i] != undefined && array[i] != false) {
				cache_array.push (array[i]);
			}
		}
		
	    return cache_array;
	},
	
	strToArray: function(string) {
		return string.split("");
	},
	
	generatePassword: function(maxlength) {
		var chars = "123456789-.,#+0abcdeABfgh-.,<>ijCDklmnoEFprstuGHvwxyIJzABCDKLEFGHmnoIJKLpqrsMNOPQtRSTUVWXYZ1234567890";
		var arrChar = this.strToArray(chars);
		var pwd = new Array();
		
		var str = "", temp_str = chars.split("");
		
		for(var i=0;i<maxlength;i++) {
			tmp = Math.random(1,arrChar.length).toString();

			var randomZahl = tmp.substr(3,1);
			if(Math.round(Math.random())==0) {
				randomZahl = randomZahl*10;
				if(randomZahl>arrChar.length)
					randomZahl = arrChar.length;
			}
			pwd.push(arrChar[Math.round(randomZahl)]);
			pwd = this.arrayRemoveEmpty(pwd);
		}
		
		return pwd.join("");
	},
	
	getObject: function(obj) {
	
		if(typeof obj == "undefined" || obj == null || !obj)
			return false;
			
		if(typeof obj == "object")
			return obj;
			
		if(document.getElementById(obj)) {
			return document.getElementById(obj);
		}

		return false;
		
	},
	
	writeToValue: function(element,output) {
		if(this.is_array(element)) {
			for(var i=0; i<element.length;i++) {
				this.getObject(element[i]).value = output;
			}
			this.getObject(this.defaultTextField).innerHTML = this.defaultPwdFieldText+"<strong>"+output+"</strong>";
			this.getObject(this.defaultTextField).style.display = "block";
		}
		else
			this.getObject(element).value = output;
	},
	
	addEvent: function(sevent, func, objid, bubble) {
		var obj = this.getObject(objid);

		if(typeof bubble=="undefined") var bubble=true;

		if(obj) {
			if(obj.addEventListener) {
				obj.addEventListener(sevent, func, bubble);
				return true;
			}
			else {
				obj.attachEvent("on"+sevent, func);
				return true;
			}
			return false;
		}
		
		return false;
		
	},
	
	toggle: function(instance, toggle) {
		if(typeof instance=='undefined')
			return false;
		
		if(typeof toggle != "undefined") {
			if(this.getObject(instance)!=null)
				this.getObject(instance).style.display=toggle;
		}else{
			if(this.getObject(instance)!=null)
				if(this.getObject(instance).style.display=='block' || this.getObject(instance).style.display=='')
					this.getObject(instance).style.display='none';
				else
					this.getObject(instance).style.display='block';
		}
	},
	
	getElementByName: function(name, tag){
    	if(!tag){
	        tag = '*';
    	}
    	var elems = document.getElementsByTagName(tag);
    	var res = []
    	for(var i=0;i<elems.length;i++){
        	att = elems[i].getAttribute('name');
        	if(att == name) {
            	res.push(elems[i]);
        	}
    	}
    	return res;
	},
  
	findPosY: function(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;
	},
	
	findPosX: function(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;
  },
  
  removeTags: function(id){
	 	if(document.getElementById && document.getElementById("input-code")){
	 		var strInputCode = document.getElementById("input-code").innerHTML;

	 	 	strInputCode = strInputCode.replace(/&(lt|gt);/g, function (strMatch, p1){
	 		 	return (p1 == "lt")? "&lt;" : ">";
	 		});
	 		var strTagStrippedText = strInputCode.replace(/&lt;\/?[^>]+(>|$)/g, "");
	 		return strTagStrippedText;
	 	}	
	}


}// JavaScript Document
