/* DHTML-Bibliothek */

var DHTML = false, DOM = false, MSIE4 = false, NS4 = false, OP = false, MSVER=10;

var BrowserDetect = {
        init: function () {
                this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
                this.version = this.searchVersion(navigator.userAgent)
                        || this.searchVersion(navigator.appVersion)
                        || "an unknown version";
                this.OS = this.searchString(this.dataOS) || "an unknown OS";
        },
        searchString: function (data) {
                for (var i=0;i<data.length;i++) {
                        var dataString = data[i].string;
                        var dataProp = data[i].prop;
                        this.versionSearchString = data[i].versionSearch || data[i].identity;
                        if (dataString) {
                                if (dataString.indexOf(data[i].subString) != -1)
                                        return data[i].identity;
                        }
                        else if (dataProp)
                                return data[i].identity;
                }
        },
        searchVersion: function (dataString) {
                var index = dataString.indexOf(this.versionSearchString);
                if (index == -1) return;
                return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
        },
        dataBrowser: [
                {
                        string: navigator.userAgent,
                        subString: "Chrome",
                        identity: "Chrome"
                },
                {       string: navigator.userAgent,
                        subString: "OmniWeb",
                        versionSearch: "OmniWeb/",
                        identity: "OmniWeb"
                },
                {
                        string: navigator.vendor,
                        subString: "Apple",
                        identity: "Safari",
                        versionSearch: "Version"
                },
                {
                        prop: window.opera,
                        identity: "Opera"
                },
                {
                        string: navigator.vendor,
                        subString: "iCab",
                        identity: "iCab"
                },
                {
                        string: navigator.vendor,
                        subString: "KDE",
                        identity: "Konqueror"
                },
                {
                        string: navigator.userAgent,
                        subString: "Firefox",
                        identity: "Firefox"
                },
                {
                        string: navigator.vendor,
                        subString: "Camino",
                        identity: "Camino"
                },
                {               // for newer Netscapes (6+)
                        string: navigator.userAgent,
                        subString: "Netscape",
                        identity: "Netscape"
                },
                {
                        string: navigator.userAgent,
                        subString: "MSIE",
                        identity: "Explorer",
                        versionSearch: "MSIE"
                },
                {
                        string: navigator.userAgent,
                        subString: "Gecko",
                        identity: "Mozilla",
                        versionSearch: "rv"
                },
                {               // for older Netscapes (4-)
                        string: navigator.userAgent,
                        subString: "Mozilla",
                        identity: "Netscape",
                        versionSearch: "Mozilla"
                }
        ],
        dataOS : [
                {
                        string: navigator.platform,
                        subString: "Win",
                        identity: "Windows"
                },
                {
                        string: navigator.platform,
                        subString: "Mac",
                        identity: "Mac"
                },
                {
                        string: navigator.platform,
                        subString: "Linux",
                        identity: "Linux"
                }
        ]

};
BrowserDetect.init();

function setBrowser( ){
	setContent("id", "browser", 0, BrowserDetect.OS + " - " + BrowserDetect.browser + " " + BrowserDetect.version );
}


if (document.getElementById) {
  DHTML = true;
  DOM = true;
} else {
  if (document.all) {
    DHTML = true;
    MSIE4 = true;
  } else {
    if (document.layers) {
      DHTML = true;
      NS4 = true;
    }
  }
}
if (window.opera) {
  OP = true;
}
if(BrowserDetect.browser=="Explorer")
{
	MSVER=BrowserDetect.version;
}

function getElement (Mode, Identifier, ElementNumber) {
  var Element, ElementList;
  if (DOM) {
    if (Mode.toLowerCase() == "id") {
      Element = document.getElementById(Identifier);
      if (!Element) {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "name") {
      ElementList = document.getElementsByName(Identifier);
      Element = ElementList[ElementNumber];
      if (!Element) {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "tagname") {
      ElementList = document.getElementsByTagName(Identifier);
      Element = ElementList[ElementNumber];
      if (!Element) {
        Element = false;
      }
      return Element;
    }
    return false;
  }
  if (MSIE4) {
    if (Mode.toLowerCase() == "id" || Mode.toLowerCase() == "name") {
      Element = document.all(Identifier);
      if (!Element) {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "tagname") {
      ElementList = document.all.tags(Identifier);
      Element = ElementList[ElementNumber];
      if (!Element) {
        Element = false;
      }
      return Element;
    }
    return false;
  }
  if (NS4) {
    if (Mode.toLowerCase() == "id" || Mode.toLowerCase() == "name") {
      Element = document[Identifier];
      if (!Element) {
        Element = document.anchors[Identifier];
      }
      if (!Element) {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "layerindex") {
      Element = document.layers[Identifier];
      if (!Element) {
        Element = false;
      }
      return Element;
    }
    return false;
  }
  return false;
}

function getAttribute (Mode, Identifier, ElementNumber, AttributeName) {
  var Attribute;
  var Element = getElement(Mode, Identifier, ElementNumber);
  if (!Element) {
    return false;
  }
  if (DOM || MSIE4) {
    Attribute = Element.getAttribute(AttributeName);
    return Attribute;
  }
  if (NS4) {
    Attribute = Element[AttributeName];
    if (!Attribute) {
       Attribute = false;
    }
    return Attribute;
  }
  return false;
}

function getElementContent( Element ){
  if (!Element) {
    return false;
  }
  if (DOM && Element.firstChild) {
    if (Element.firstChild.nodeType == 3) {
      Content = Element.firstChild.nodeValue;
    } else {
      Content = "";
    }
    return Content;
  }
  if (MSIE4) {
    Content = Element.innerText;
    return Content;
  }
  return false;	
}

function getContent (Mode, Identifier, ElementNumber) {
  var Content;
  var Element = getElement(Mode, Identifier, ElementNumber);
  if (!Element) {
    return false;
  }
  return getElementContent( Element );
}

function setElementContent( Element, Text ){
  if (DOM && Element.firstChild) {
    Element.firstChild.nodeValue = Text;
    return true;
  }
  if (MSIE4) {
    Element.innerText = Text;
    return true;
  }
  if (NS4) {
    Element.document.open();
    Element.document.write(Text);
    Element.document.close();
    return true;
  }

}

function initToggleVisible( toggleid, elementid, collapsed ){
	var e = getElement( "id", elementid );
	var toggle = getElement( "id", toggleid );
	var visible = !collapsed;
	if( visible ){
		toggle.style.backgroundImage="url(/styles/Pics/minus.png)";
	}
	else{
		toggle.style.backgroundImage="url(/styles/Pics/plus.png)";
	}
	setElementVisible( e, visible);
}

function toggleVisible( toggle, id, feldbezeichnung ){
	var e = getElement( "id", id );
	if( !e ){
		return e;
	}
	var visible = !isElementVisible(e);
	if( visible ){
		toggle.style.backgroundImage="url(/styles/Pics/minus.png)";
		toggle.title= feldbezeichnung + " ausblenden";
	}
	else{
		toggle.style.backgroundImage="url(/styles/Pics/plus.png)";
		toggle.title= feldbezeichnung + " einblenden";
	}
	setElementVisible( e, visible);
	return visible;
}

function setVisible( id, visible ){
	e = getElement( "id", id );
	return setElementVisible(e, visible );
}

function isElementVisible( e ){
	return e.style.display != 'none';
}

function setElementVisible( e, visible ){
	if( !e ){
		return false;
	}
	if( visible ){
		if( e.style.display == "" || e.style.display == "none" ){
			e.style.display = "block";
			return true;
		}
	}
	else{
		if( e.style.display != "none" ){		
			e.style.display = "none";
			return true;
		}
	}
	return false;
}

function setOpacity( element, opacity ){
  	if (MSIE4) {
		element.style.filter = "alpha(opacity=" + opacity + ")";
	}
	else{
		element.style.opacity = opacity/100;
	}
}


function setContent (Mode, Identifier, ElementNumber, Text) {
  var Element = getElement(Mode, Identifier, ElementNumber);
  if (!Element) {
    return false;
  }
  return setElementContent( Element, Text);
}

//findPosX and findPosY are included only to put the div over the dropdownbox.
//They are not necessary in order to position the iFrame under the div
function findPosX(obj){
    var curleft = 0;
    if (obj.offsetParent)
    {
        while (obj.offsetParent)
        {
            curleft += obj.offsetLeft;
            obj = obj.offsetParent;
        }
    }
    else if (obj.x)
            curleft += obj.x;
    if( BrowserDetect.browser='FireFox'){
    	var b = document.body;
    	var s = b.style;
    	var border = s.borderLeftWidth;
    	curleft += border;
    }
    return curleft;
}

function findPosY(obj){
    var curtop = 0;
    if (obj.offsetParent) {
        while (obj.offsetParent) {
            curtop += obj.offsetTop;
            obj = obj.offsetParent;
        }
    }
    else if (obj.y){
            curtop += obj.y;
    }
    return curtop;
}

function ieHide( e, show ){
   	h = $("iehide");
	if( show ){
		var pos = $(e).getPosition();
		var size = $(e).getSize();
		h.setPosition( pos);
		h.style.width = size.x +"px";
		h.style.height = size.y + "px";
	   	h.style.display = "block";
	}
	else{
	   	h.style.display = "none";	
	}
}

function fadein(step, element) {
    step = step || 0;
    setOpacity(element, step);
    step = step + 10;
    if (step <= 100) {
        window.setTimeout(function () { fadein(step, element); }, 1);
    }
}

function fadeout(step, element) {
    setOpacity(element, step);
    step = step - 10;
    if (step >= 0) {
        window.setTimeout(function () { fadeout(step, element); }, 1);
    }
}

function clearForm( formId ){
	form = getElement( "id", formId );
	//alert(form);
	elements = form.elements;
	
	for( i = 0; i < elements.length; i++ ){
		if( elements[i].type  == "text"){
			elements[i].value="";
		}
		else if( elements[i].type  == "checkbox"){
			elements[i].checked=false;
		}
	}
}

//AJAX-Standards
//Weniger interessant

function httpXMLobjects() {
	var xmlHttp = null;
	try {
		// Fuer Firefox, Opera und Safari
		xmlHttp = new XMLHttpRequest();
	} catch (e) {
		// Der Internet Explorer wills wieder anders
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

function consumeEvent( e ){
	 e.cancelBubble = true;
     if (e.stopPropagation){ 
    	 e.stopPropagation();
     }
     //alert( "consumed");
}

