/*
	funktionen.js
	Nützliche Funktionen (s.a. ~/eigene dateien/eigene ebooks/javascript_ajax/javascript1-sample.pdf)
  stand: 20080303

	Übersicht:

  addEvent(elm, evType, fn, useCapture)									 | Setze Event-Handler
	getsElementsByClass({ "class" | reg_ausdruck })	       | Feld von Elementen mit Klasse
		var elementArray = getElementsByClass("dataTable");  |
	hasClass(target,"class")                               | Enthält Element die Klasse?
  InsertMail(mailnam,mailsvr,maildom,text) 							 | Fügt eine E-Mail-Adresse ein
	addClass(target,"class")                               | Element erhält eine Klasse
	removeClass(target,"class")                            | Klasse am Element löschen
  showMore(property) 																		 | Zeigen und Verbergen eines Objektes

*/
/****************************************************************************/
function addEvent(elm, evType, fn, useCapture)
{

// cross-browser event handling for IE5+, NS6+ and Mozilla/Gecko
// By Scott Andrew
  if (elm.addEventListener) {
    elm.addEventListener(evType, fn, useCapture);
    return true;
  } else if (elm.attachEvent) {
    var r = elm.attachEvent('on' + evType, fn);
    return r;
  } else {
    elm['on' + evType] = fn;
  }
}

/****************************************************************************/
//*** Fügt eine E-Mail-Adresse ein ***
function InsertMail(mailnam,mailsvr,maildom,text)
{
  if(text=="")
    document.write('<a href="mailto:'+mailnam+'@'+mailsvr+'.'+maildom+'">'+mailnam+'@'+mailsvr+'.'+maildom+'</a>');
  else
    document.write('<a href="mailto:'+mailnam+'@'+mailsvr+'.'+maildom+'">'+text+'</a>');
}

/****************************************************************************/
getElementsByClass = function(theClass)
/*
1. Look at each element in the document.
2. For each element, perform a check that compares its class against the
looking for.
3. If the classes match, add the element to our group of elements.

*/
{
	var elementArray = [];
	if (document.all)
	{
		elementArray = document.all;	//IE5
	}
	else
	{
		elementArray = document.getElementsByTagName("*");
	}
	var matchedArray = [];
	var pattern = new RegExp("(^| )" + theClass + "( |$)");
	for (var i = 0; i < elementArray.length; i++)
	{
		if (pattern.test(elementArray[i].className))
		{
			matchedArray[matchedArray.length] = elementArray[i]; // Treffer hinzufügen
		}
	}
	return matchedArray;
};
/****************************************************************************/
hasClass = function(target, theClass)
{
	var pattern = new RegExp("(^| )" + theClass + "( |$)");
	if (pattern.test(target.className))
	{
		return true;
	}
	return false;
};
/****************************************************************************/
addClass = function(target, theClass)
{
	if (!Core.hasClass(target, theClass))
	{
		if (target.className == "")
		{
			target.className = theClass;
		}
		else
		{
			target.className += " " + theClass;
		}
	}
};

/****************************************************************************/
removeClass = function(target, theClass)
{
	var pattern = new RegExp("(^| )" + theClass + "( |$)");
	target.className = target.className.replace(pattern, "$1");
	target.className = target.className.replace(/ $/, "");
};
/****************************************************************************/
// Zeigen und Verbergen eines Objektes
showMore = function(property)
{
	   var pOBJ = document.getElementById(property);

	   if(pOBJ.style.display == 'none')
	   {
	   		pOBJ.style.display='';
	   }
	   else
	   {
	   		pOBJ.style.display='none';
     }

	   return false;
};

