
// @version  2007-03-04


/**
* Entfernt Leerzeichen am Anfang und Ende eines Strings
*/
function trim (str) {
    str = this != window ? this : str;
    return str.replace(/^\s+/, '').replace(/\s+$/, '');
}

/**
	@usedBy 	snippets/center_search.inc.php
	@usedBy 	snippets/center_profil_edit.inc.php
	@version 2006-07-19
*/
function selectAllTimes( obj) {
	var checkboxes = document.getElementsByName( "check_dtow[]");
	var max = checkboxes.length;
	if( obj.checked)
	{
		for( i=0; i<max; ++i) {
			checkboxes[i].checked = true;
		}
		document.getElementById( "checkDtowLabel").innerHTML = "Alle aufheben";
	}
	else {
		for( i=0; i<max; ++i) {
			checkboxes[i].checked = false;
		}
		document.getElementById( "checkDtowLabel").innerHTML = "Alle markieren";
	}
}

//# Funktionen zum Pruefen von Formularen /////////////////////

/** Email- Format Pruefen;
	@param id die ID des Textelementes
 */
function checkEmail( id) {
	var src = document.getElementById(id);
	if( src == null) return true;
	var inhalt = src.value;
	if( ! inhalt || inhalt == "") return true; // Pruefe NICHT auf leeres Feld!
	
	if( ! inhalt.match(/^[_a-zA-Z0-9äöüÄÖÜ-]+(\.[_a-zA-Z0-9äöüÄÖÜ-]+)*@([a-zA-Z0-9äöüÄÖÜ-]+\.)+([a-zA-Z]{2,})$/))
    {
		src.focus();
		src.select();
		return false;
    }
	return true;
}

/** Pruefe Feld auf Leere - weicht ab von anderen ?hnlichen Funktionen!
	@param id die ID des Textelementes
 */
function checkEmpty(id) {
	var src = document.getElementById(id);
	if( src == null) return true; // Pruefe keine nichtexistenten Felder
	var inhalt = src.value;
	if( inhalt.length == 0)
	{	
		src.focus();
		return false;
	}
	return true;
}

/*
	Markiert alle TD in einer TR, falls true
*/
function markRow( elem, boolSelected) {
	
	var color = "#bbcdd1";
	
	if( boolSelected) {
		elem.style.backgroundColor = color;
	} else {
		elem.style.backgroundColor = '';
	}
}

function showHideObject( id ,b) {
	var obj = document.getElementById( id);
	if( obj != null) {
		if(typeof b =="undefined") {
			b = obj.style.display=='none';
		}
		obj.style.display = (b ? 'block' : 'none');
	}
}

/**
* CSS-Stil ermitteln
*/
function getStyle(el, style) {
   if(!document.getElementById) return;
   
    var value = el.style[toCamelCase(style)];
   
    if(!value)
        if(document.defaultView)
            value = document.defaultView.
                 getComputedStyle(el, "").getPropertyValue(style);
       
        else if(el.currentStyle)
            value = el.currentStyle[toCamelCase(style)];
     
     return value;
}

 /** toCamelCase(input)
 * Converts string input to a camel cased version of itself.
 * For example:
 * toCamelCase("z-index"); // returns zIndex
 * toCamelCase("border-bottom-style"); // returns borderBottomStyle.
 */
function toCamelCase( sInput ) {
    var oStringList = sInput.split('-');
    if(oStringList.length == 1)    
        return oStringList[0];
    var ret = sInput.indexOf("-") == 0 ? 
    	oStringList[0].charAt(0).toUpperCase() + oStringList[0].substring(1) : oStringList[0];
    for(var i = 1, len = oStringList.length; i < len; i++){
        var s = oStringList[i];
        ret += s.charAt(0).toUpperCase() + s.substring(1)
    }
    return ret;
}

/// Thanks to Scott Andrew 
function addEvent(obj, evType, fn, useCapture)
{
  if (obj.addEventListener) {
	obj.addEventListener(evType, fn, useCapture);
	return true;
  } 
  else if (obj.attachEvent){
	var r = obj.attachEvent("on"+evType, fn);
	return r;
  } 
  else {
	window.status ="Fehler beim EventHandler!";
  }
} 

function removeEvent(obj, evType, fn, useCapture)
{
	if (obj.removeEventListener) {
		obj.removeEventListener(evType, fn, useCapture);
		return true;
	} 
	else if (obj.detachEvent) {
		var r = obj.detachEvent("on"+evType, fn);
		return r;
	} 
	else {
		window.status ="Fehler beim EventHandler!";
	}
} 

/**
	Tauscht beim Element mit der id den src-Wert aus.
	Die beiden ben?tigten Dateinamen (basename) m?ssen im ?bergebenen Array 
	an den ersten beiden Indizes stehen. 
	Beide Dateien m?ssen im selben Ordner sein.
	@param	id						id des ver?nderten Elements
	@param	filenameArray	Array mit den beiden Dateinamen
	@return	boolean	success
*/
function switch_src( id, filenameArray) {
	var obj = document.getElementById( id);

	if( obj != null 
		&& obj.src != null
		&& typeof( filenameArray) == 'object'
		&& filenameArray.length >=2)
	{
		var dir = dirOfSrc( id);
		if( ! dir) return;
		
		var fileName = (obj.src == dir + filenameArray[0]) ? 
			filenameArray[1] : filenameArray[0];
		obj.src = dir + fileName;
		return true;
	}
}

/**
	Holt vom src des (img)-Elements das Verzeichnis als String
	@param	id			id des Elements
	@return	String	dir, bei Fehler: false
*/
function dirOfSrc( id) {
	var obj = document.getElementById( id);

	if( obj != null 
		&& obj.src != null
		&& obj.src.length > 1)
	{
		var dir = obj.src.substring( 0, obj.src.lastIndexOf( '/')+1 );
		if( dir.length >= 1) {
			return dir;
		}
	}
	return false;
}


/**
	Speziell fuer shodex
	Leitet um zur Suchseite und ?bergibt als GET-Parameter das innerHTML des Objektes
	@param	obj	Das HTML-Objekt mit dem Suchtext, typischerweise ein <a>-Tag
*/
function searchKeyword( obj) {
	var suchtextRaw = obj.innerHTML;
	var suchtext = escape( suchtextRaw);
	var loco = '?seitenid=1&keyword=' + suchtext;
	window.location.href = loco;
	return false;
}

function setMailLink(lnk) {
	lnk.href = "mailto:" + lnk.innerHTML;
}


function replaceIText(text){
  while(text.lastIndexOf("&") > 0){
  	text = text.replace("&", "[i-Stats]");
  }
  return text;
}

/**
 * Cookies zum Auslesen der Bildschirmgroesse, vorerst uninteressant
 */
function schreibeCookie() 
{
	var cookie1 = "sw="+ screen.width + ";";
	var cookie2 = "sc="+ screen.colorDepth + ";";
	document.cookie=cookie1;
	document.cookie=cookie2;	 
}

/**@js Popupfenster */
var MyWindow = null;
function DD_openWindow(url,left,top,breite,hoehe) {
	if(MyWindow != null && !MyWindow.closed)
		MyWindow.close();
	MyWindow = open (url, "popup", "left="+left+",top="+top+",toolbar=0,location=0,status=1,scrollbars=1,resizable=1,width="+breite+",height="+hoehe); 
}

function DD_reOpenWindow(url,left,top,breite,hoehe) {
	if(MyWindow != null && !MyWindow.closed) {
			MyWindow.close();
		    MyWindow = open (url, "popup", "left="+left+",top="+top+",toolbar=0,location=0,status=1,scrollbars=1,resizable=1,width="+breite+",height="+hoehe); 
	}
}

