
/**
 * Öffnet einen Link in einem PopUp-Fenster. Die Funktion liefert
 * entsprechend dem Erfolg (PopUp-Blocker, etc.) true oder false
 * zurück.
 *
 * @param elem Das Link-Element, aus dem die URL geholt wird
 * @param w Die Breite des Fensters
 * @param h Die Höhe des Fensters
 * @return boolean - true, wenn das Fenster geöffnet wurde,
 *  ansonsten false.
 */
function popUp(elem, w, h) {
	var url = (elem.getAttribute) ? elem.getAttribute('href') : elem.href;
	
	if (!url) {
		return false;
	}
	
	w = w ? w += 20 : 640;
	h = h ? h += 25 : 480;
	
	var args = 'width=' + w + ',height=' + h + ',resizable';
	
	var ok = window.open(url, '', args);
	return ok ? true : false;
}

/**
 * Öffnet einen Link in einem PopUp-Fenster. Die Funktion liefert
 * entsprechend dem Erfolg (PopUp-Blocker, etc.) true oder false
 * zurück.
 *
 * @param elem Das Link-Element, aus dem die URL geholt wird
 * @return boolean - true, wenn das Fenster geöffnet wurde,
 *  ansonsten false.
 */
function popUp2(elem) {
	var url = (elem.getAttribute) ? elem.getAttribute('href') : elem.href;
	
	if (!url) {
		return false;
	}

	var args = 'width=800,height=600,left=0,top=0,resizable=1,location=1,directories=1,status=1,menubar=1,scrollbars=1,toolbar=1';
	
	var ok = window.open(url, '', args);
	return ok ? true : false;
}

/**
 * Zwingt den IE zum neu rendern der Seite.
 * Damit js-Features wie Slidebar korrekt dargestellt werden
 *
  */
function updateIE() {
   $$('div.foot').each(function(el) {
      var val = el.getStyle('marginTop').toInt();
      el.setStyle('marginTop', (val + 1) % 2);
   });
}

/**
 * Ausgabe einer Confirm-Funktion, 
 * die eine Antwort vom User erwartet
 *
 * @param msg Die Nachricht, die ausgegeben wird
 * @return boolean - true, wenn der Dialog bestätigt wurde
  */
function userConfirm(msg) {
   return confirm(msg);
}

/**
 * Begrenzt die Eingabe von Zeichen in eine Textarea
 * und zeigt die aktuelle Anzahl an
 *
 * @param textareaId ID der Textarea
 * @param textfieldId ID der Ausgabe
 * @param length Begrenzung
 */
function textareaLimit(textareaId, textfieldId, length) {
   var textareaNode = document.getElementById(textareaId);
   var textfieldNode = document.getElementById(textfieldId);
   
   if (!textareaNode || !textfieldNode || isNaN(length)) { return false; }
   
   var amount = textareaNode.value.length;
   if (amount > length) { 
      textareaNode.value = textareaNode.value.slice(0, length);
      amount = length;
   }
   textfieldNode.innerHTML = length-amount;
}