 
// 
// Gibt die CSS-Eigenschaften des übergebenen Elements zurück
// 
function getStyleValue (element, cssProperty) 
{
   var value = "";
   if (window.getComputedStyle) 
   {
      var styles = window.getComputedStyle(element, null);
      value = window.getComputedStyle(element, null)[cssProperty];
   } 
   else if (element.currentStyle) 
   {
      value = element.currentStyle[cssProperty];
   }
   return value;
}

function getElementHeightValue(element)
{
	if (!element)
		return 0;
		
	// Der einfache Weg:
	if(element.getBoundingClientRect)
	{
		return element.getBoundingClientRect().bottom - element.getBoundingClientRect().top;
	}
	else
	{
		return getStyleMeasureValue(getStyleValue(element, "height"));
	}
}

function getElementWidthValue(element)
{
	if (!element)
		return 0;
		
	// Der einfache Weg:
	if(element.getBoundingClientRect)
	{
		return element.getBoundingClientRect().right - element.getBoundingClientRect().left;
	}
	else
	{
		return getStyleMeasureValue(getStyleValue(element, "height"));
	}
}

function getStyleMeasureValue(measureValue)
{
	var ergebnis = 0;
	
	if (isNaN(measureValue))
	{
		var numberEnd = false;
		var numberString = "";
		for (var i = 0; i < measureValue.length && !numberEnd; i++)
		{
			if (!isNaN(measureValue[i]) || measureValue[i] == '.' || measureValue[i] == '-' || measureValue[i] == '+')
				numberString += measureValue[i];
			else
				numberEnd = true;
		}
		ergebnis = Number(numberString);
	}
	else
		ergebnis = measureValue;
	
	return ergebnis;
}

/**
 * Funktion ermittelt die Einheit einer CSS-Größenangabe.
 * Aus "100px" wird beispielsweise "px". Bei Spezialangaben, wie
 * auto, wird ein Leerstring zurückgegeben, da es sich nicht um eine Einheit handelt.
 * 
 * @param {Object} measureValue Größenangabe als Zeichenkette.
 */
function getStyleMeasureUnit(measureValue)
{
	var ergebnis = "";
	
	if (isNaN(measureValue))
	{
		var unitEnd = false;
		for (var i = measureValue.length - 1; i >=0 && !unitEnd; i--)
		{
			if (!isNaN(measureValue[i]) || measureValue[i] == '.' || measureValue[i] == '-' || measureValue[i] == '+')
				unitEnd = true;
			else
				ergebnis = measureValue[i] + ergebnis;
		}
		if (!unitEnd)			// Wenn wir bei der Suche nie auf eine Zahl gestoßen sind, bedeutet das,
			ergebnis = "";		// dass wir z.B. eine Angabe wie auto haben, dann gibts auch keine Einheit.
	}
	
	return ergebnis;
}

