function getLeft(el) {
	var xPos = el.offsetLeft;
	var tempEl = el.offsetParent;
	while ((tempEl != null) && (tempEl.style['position'].toUpperCase() != 'ABSOLUTE')) {
		xPos += tempEl.offsetLeft;
		tempEl = tempEl.offsetParent;
	}
	return xPos;
}

function getTop(el) {
	var yPos = el.offsetTop;
	var tempEl = el.offsetParent;
//	alert(tempEl + '-' + tempEl.style['position']+ '-' +tempEl.id );

	while ((tempEl != null) && (tempEl.style['position'].toUpperCase() != 'ABSOLUTE')) {
		yPos += tempEl.offsetTop;
		tempEl = tempEl.offsetParent;
	}
	return yPos;
}
/*
function getParentElement(el) {
	var tempEl = el.parentNode;

	do {
	    if (tempEl.parentNode != null) 
	        tempEl = tempEl.parentNode;
	    else
	        break;
	} while ((tempEl != null) && (tempEl.style && tempEl.style['position'].toUpperCase() != 'ABSOLUTE'))
	

	return tempEl;
}*/

function getTopSchnellErf(el) {
	var yPos = el.offsetTop;
	var tempEl = el.offsetParent;
	while (tempEl != null) {
		yPos += tempEl.offsetTop;
		tempEl = tempEl.offsetParent;
	}
	return yPos;
}

function getLeftSchnellErf(el) {
	var xPos = el.offsetLeft;
	var tempEl = el.offsetParent;
	while (tempEl != null) {
		xPos += tempEl.offsetLeft;
		tempEl = tempEl.offsetParent;
	}
	return xPos;
}

function centerDiv(sPoint, sObj){
    if (document.all){
	    sPoint.x = (document.body.offsetWidth/2 - sObj.offsetWidth/2);
	    sPoint.y = (document.documentElement.scrollTop + document.documentElement.clientHeight/2 - sObj.offsetHeight/2);
    }
    else{
	    sPoint.x = (document.body.offsetWidth/2 - sObj.offsetWidth/2);
	    sPoint.y = (document.documentElement.scrollTop + window.innerHeight/2 - sObj.offsetHeight/2);
    }
}

function Coord(x, y){
  this.x = (!x)?0:x;
  this.y = (!y)?0:y;
  
  this.toString = objToString;
  this.equals = equalsCoord;
}

function objToString(){
	var ret = "{";
	for(p in this){
		if (typeof this[p] == "function" || typeof this[p] == "object") 
			continue;
		if(ret.length > 1)
			ret += ",";
		ret += p + ":" + this[p];
	}
	return ret + "}";
}

function equalsCoord(c){
	return (this.x == c.x && this.y == c.y);
}

function ftGetMouseXY(ev) {
	var pos = new Coord(0,0);
	if(ev.pageX){
		pos.x = ev.pageX;	
		pos.y = ev.pageY;
	} 
	else if(window.event && window.event.clientX){
		var isStrictMode = document.compatMode && document.compatMode != 'BackCompat' ? true : false;
		var scrollX = isStrictMode ? document.documentElement.scrollLeft : document.body.scrollLeft;
		var scrollY	= isStrictMode ? document.documentElement.scrollTop : document.body.scrollTop;
		pos.x = window.event.clientX + scrollX;
		pos.y = window.event.clientY + scrollY;
	}
	return pos;
}

function zeitstempel()
{
  	var a = new Date();
	var mi=a.getTime() 
	var ss=a.getSeconds();
	var ms=a.getMilliseconds();
	return mi+ss+ms;
}

function array_contains(array, value) {	
	for (var i = 0; i < array.length; i++) {
		if (array[i] == value)
			return true;
	}
	return false;
}

//Combobox-Eintrag selektieren
function setComboboxValue(combo, value) {
	var items = combo.items;

	for (var i = 0; i < items.length; i++) {
		if (items[i].value == value) {
			combo.setSelectedIndex(i);
			break;
		}
	}
}

//Combobox-Eintrag selektieren
function setComboboxSelectedIndex(combo, value) {
    var items = combo.options;
    for (var i = 0; i < items.length; i++) {
        if (items[i].value == value) {
            combo.options.selectedIndex = i;
            break;
        }
    }
}

//ersetzt document.getElementById
function ge(id) {
	if (document.getElementById)
		return document.getElementById(id);
	else
		return document.all[id];
}

//Formatiert Zahlen mit Nachkommastellen und Tausenderpunkten Teil1
function formatNumber(value, decimal, separator) {
	var number = Trim(value);

	if (number.length > 0) {
		number = value.replace(/\./g,'')
		number = parseFloat(number.replace(',','.'))
	
		if (decimal > 0)
			number = number.toFixed(decimal)
			
		if (separator) {
			number = setDigitSeparator(number)
		}
		else {
			number = number.toString().replace(/\./g,',')
		}
	}
	return number;
}

//Formatiert Zahlen mit Nachkommastellen und Tausenderpunkten Teil2
function setDigitSeparator(number) {
	var number = '' + number;
	var tmpNumber = '';

	if (number.indexOf(".") > 0) {
		tmpNumber = number.substring(number.indexOf(".")+1)
		number = number.substring(0, number.indexOf("."))
	}

	var laenge = number.length;
	if (laenge > 3) {
		var mod = laenge % 3;
		var output = (mod > 0 ? (number.substring(0,mod)) : '');
		for (i=0 ; i < Math.floor(laenge / 3); i++) {
			if ((mod == 0) && (i == 0))
				output += number.substring(mod+ 3 * i,mod + 3 * i + 3); 
			else
				output+= '.' + number.substring(mod + 3 * i,mod + 3 * i + 3); 
		} 
		if (tmpNumber.length > 0)
			output += ',' + tmpNumber;
		return output 
	}
	else {
		if (tmpNumber.length > 0)
			number += ',' + tmpNumber;
		return number; 
	}
}

function Trim(TRIM_VALUE){
	if(TRIM_VALUE.length < 1)
		return "";

	TRIM_VALUE = RTrim(TRIM_VALUE);
	TRIM_VALUE = LTrim(TRIM_VALUE);

	if (TRIM_VALUE=="")
		return "";
	else
		return TRIM_VALUE;
} 

function RTrim(VALUE){
	var w_space = String.fromCharCode(32);
	var v_length = VALUE.length;
	var strTemp = "";
	if(v_length < 0)
		return"";
	var iTemp = v_length -1;
	
	while(iTemp > -1){
		if(VALUE.charAt(iTemp) == w_space){
		}
		else{
			strTemp = VALUE.substring(0,iTemp +1);
		break;
		}
		iTemp = iTemp-1;
	} //End While
	return strTemp;
} //End Function

function LTrim(VALUE){
	var w_space = String.fromCharCode(32);
	if(v_length < 1)
		return"";
	var v_length = VALUE.length;
	var strTemp = "";
	var iTemp = 0;
	
	while(iTemp < v_length){
		if(VALUE.charAt(iTemp) == w_space){
		}
		else{
			strTemp = VALUE.substring(iTemp,v_length);
			break;
		}
		iTemp = iTemp + 1;
	} //End While
	return strTemp;
} //End Function

function hidestatus(statusmsg){
    window.status=statusmsg
    return true
}

function gtGetStyleClass(sObjOGrp){
    var lClass="";
	switch(sObjOGrp){
		case 1:
			lClass = "std_Obj_WHS";
			break;
		case 2:
			lClass = "std_Obj_WHG";
			break;
		case 101: case 102:
			lClass = "std_Obj_GRP";
			break;
		case 201:
			lClass = "std_Obj_WGA";
			break;
		case 301: case 305:
			lClass = "std_Obj_GEW";
			break;
		case 302:
			lClass = "std_Obj_GST";
			break;
		case 304:
			lClass = "std_Obj_HOF";
			break;
		case 303:
			lClass = "std_Obj_GSO";
			break;
	}
	return lClass;
}

function inStr(strSearch, charSearchFor, startPos)
{
	var lStart = 0;
	if (typeof(startPos)!="undefined"){
		lStart = startPos;
	}
    for (i=lStart; i < strSearch.length; i++)
    	if (charSearchFor == mid(strSearch, i, 1))
        	return i;
    return -1;
}

function mid(str, start, len)
{
// Make sure start and len are within proper bounds
    if (start < 0 || len < 0) return "";
    var iEnd, iLen = String(str).length;
    if (start + len > iLen)
          iEnd = iLen;
    else
          iEnd = start + len;
    return String(str).substring(start,iEnd);
}

function left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function ftMarkName(sRefStr, sStr, sSG){
	var lRet;
	
    if (sStr != "" && sRefStr != ""){
		var such_kl, such_gr, such_grkl, such_klgr;
		
		such_kl = sStr.toLowerCase();
		such_gr = sStr.toUpperCase();
		such_grkl = left(sStr, 1).toUpperCase() + right(sStr, sStr.length - 1).toLowerCase();
		such_klgr = left(sStr, 1).toLowerCase() + right(sStr, sStr.length - 1).toUpperCase();
		
	    sRefStr = GetMarkSpan(sRefStr, such_gr);
		sRefStr = GetMarkSpan(sRefStr, such_klgr);
		sRefStr = GetMarkSpan(sRefStr, such_grkl);
		sRefStr = GetMarkSpan(sRefStr, such_kl);
		sRefStr = GetMarkSpan(sRefStr, sStr);      
		        
        lRet = sRefStr;
    }
    else
        lRet = sRefStr;
                
    return lRet;
}

function GetMarkSpan(sRefStr, sStr, sSG){

    var markSpanBefore, markSpanAfter, lHelp, lText;
    markSpanBefore = '<span style="font-weight:800;">';
    markSpanAfter = '</span>';
    lHelp = sRefStr.toLowerCase();
    var lSG = 1;
    
	if ((sRefStr.indexOf(sStr) > -1) && (lHelp.indexOf("<span") == -1)){
		/*if AS_Value_Name_SG = "0" then
				lHelp = left(refStr,instr(refStr, str)+ len(str) -1)
				lText = replace(refStr,lHelp,"")
				return = Replace(left(refStr,instr(refStr, str)+ len(str) -1), str, markSpanBefore & str & markSpanAfter & lText)
		else*/
		    lHelp = markSpanBefore + sStr + markSpanAfter;
			return sRefStr.replace(sStr,lHelp);
		/*end if*/
    }
    else
        return sRefStr;
    
}

function GetWindowWidth() {
  var myWidth = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
  } else if( document.documentElement && ( document.documentElement.clientWidth) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
  } else if( document.body && ( document.body.clientWidth) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
  }
  return myWidth;
}

function GetWindowHeight() {
  var myHeight = 0;
  if( typeof( window.innerHeight ) == 'number' ) {
    //Non-IE
    myHeight = window.innerHeight;
  } else if( document.documentElement && (document.documentElement.clientHeight) ) {
    //IE 6+ in 'standards compliant mode'
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && (document.body.clientHeight) ) {
    //IE 4 compatible
    myHeight = document.body.clientHeight;
  }
  return myHeight;
}


function remove_param_alt(querystr, param){
	// --- funktion entfernt parameter aus (request.)querystring
	var r, start_offset, end_offset;
	
	start_offset = querystr.indexOf(param);
	if(start_offset == 0){
		end_offset = inStr(querystr,"&",start_offset);
		if (end_offset > 0)
			r = right(querystr,querystr.length - end_offset);
		else
			r = "";
	}
	else if (start_offset > 0){
		start_offset = querystr.indexOf("&" + param);
		r = left(querystr,start_offset);
		end_offset = inStr(querystr, "&",start_offset+1) - 1;
		if (end_offset > 0)
			r += mid(querystr,end_offset+1,querystr.length - end_offset);
	}
	else
		r = querystr;
		
	return r;
}

function remove_param(querystring,parameter){
     var p = escape(unescape(parameter));
     var regex = new RegExp('[?&]' + p + '(?:=([^&]*))?','gi');
     var value = querystring.replace(regex,'');
     return value;
}

function ftDisplayDivImg(divID, imgID, imgO, imgC, zuObjID, zuObjSymBlock){
    var lDiv = ge(divID);
    var lImg = ge(imgID);
    var lZuObj = ge(zuObjID);
    var lZuObjSymBlock = false;
    
    if (typeof(zuObjSymBlock) != 'undefined')
        lZuObjSymBlock = zuObjSymBlock;
    
    if (lDiv.style.display=='block'){
        lDiv.style.display = 'none';
        lImg.src = imgC;
        if (lZuObjSymBlock)
            lZuObj.style.display = 'none';
        else
            lZuObj.style.display = 'block';
    }
    else{
        lDiv.style.display = 'block';
        lImg.src = imgO;
        if (lZuObjSymBlock)
            lZuObj.style.display = 'block';
        else
            lZuObj.style.display = 'none';
    }
}

function persKopfHandle(ID, imgOpen, imgClose) {
	var el = ge('persKopf_' + ID);
	var img = ge('persKopf_' + ID + '_img');
	if (el) {
		var status = el.getAttribute('status');
		el.style.display = (status == 0) ? 'block' : 'none';
		img.src = (status == 0) ? imgClose : imgOpen;
		el.setAttribute('status', status ^ 1);
	}
}

function OpenNewWindow(sWidth, sHeight, sUrl, sRefID, sBez){
    var MaxWidth = screen.availWidth;
	var MaxHeight = screen.availHeight;
	var ClientWidth;
	var ClientHeight;
	if (navigator.appName.indexOf('Internet Explorer')!=-1){
	    ClientWidth = window.document.documentElement.clientWidth +44;
	    ClientHeight = window.document.documentElement.clientHeight +50;
	}
	else{
	    ClientWidth = window.innerWidth  + 18;
	    ClientHeight = window.innerHeight + 28;
	}
	var diffWidth = MaxWidth - ClientWidth;
	var diffHeight = MaxHeight - ClientHeight;
	
	var RefObj = ge(sRefID);
	var Bez = 'NeuesFenster';
	if (typeof(sBez) != "undefined")
	    Bez = sBez;
    var WinWidth = sWidth;
	var WinHeight = sHeight;
	var WinX = MaxWidth/2 - WinWidth/2;
	var WinY = MaxHeight/2 - WinHeight/2;
	if (RefObj){
	    WinX = parseInt(getLeft(RefObj)) + diffWidth;
	    WinY = parseInt(getTop(RefObj)) + diffHeight;
	}
	var CenterWin = window.open(sUrl, Bez, "toolbar=0,location=0,status=0,menubar=0,scrollbars=1,personalbar=0,resizable=0,width="+String(WinWidth)+",height="+String(WinHeight)+",screenX=100,screenY=100");
	if (CenterWin){
	    CenterWin.moveTo(WinX,WinY);
	    CenterWin.focus();
	}
	return CenterWin;
}

function printDiv(sDivId){
    var DruckVersion = window.open("about:blank", "DruckVersion", "toolbar=0,location=0,status=0,menubar=0,scrollbars=1,personalbar=0,resizable=0,width=565,height=300,screenX=100,screenY=100");
	DruckVersion.onerror = 'FALSE'; 
	DruckVersion.document.open();
	DruckVersion.document.write('<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');
    DruckVersion.document.write('<!-- Copyright: LAGLER Spezial-Software GmbH -->');
    DruckVersion.document.write('<HTML xmlns="http://www.w3.org/1999/xhtml">');
    DruckVersion.document.write('<HEAD>');
	DruckVersion.document.write('<TITLE>Druckfenster</TITLE>');
	DruckVersion.document.write('<LINK REL="stylesheet" HREF="/centerStyle/base.css">');
	DruckVersion.document.write('<LINK REL="stylesheet" HREF="/centerStyle/menue.css">');
	DruckVersion.document.write('<LINK REL="stylesheet" HREF="/centerStyle/components.css">');

	DruckVersion.document.write('<!--[if IE]>');
	DruckVersion.document.write('<LINK REL=stylesheet HREF=/centerStyle/iehack.css>');
	DruckVersion.document.write('<![endif]-->');

	DruckVersion.document.write('</HEAD><BODY><center>');
	DruckVersion.document.write("<div style=margin-left:0px;width:100%;height:100%;background-image:url('/b.gif');position:absolute;display:block;z-Index:100000></div>")
	//DruckVersion.document.write("<DIV style='text-align:center;'>")
	//DruckVersion.document.write("<%=druckKopf%>");
	resHTML=ge(sDivId).innerHTML;
	tAdr=resHTML.replace(/<scrip/gi, "<!--");
	tAdr=tAdr.replace(/\/script>/gi, "-->");
    DruckVersion.document.write(tAdr);
	//DruckVersion.document.write("</DIV>")
    DruckVersion.document.write('</center></BODY></HTML>');
    DruckVersion.document.close();
	DruckVersion.focus();
	DruckVersion.print();
}

function writeCookie(name, val, exp, path){
    var cooTxt = '';
    
    cooTxt += name+'='+val+'; ';
    if (typeof(exp)!='undefined'){
        var a = new Date();
        a = new Date(a.getTime() +exp);
        cooTxt += 'expires='+a.toGMTString()+';';
    }
    if (typeof(path)!='undefined')
        cooTxt += 'path=' + path + ';';
    else{
        if (document.cookie.indexOf('/path=') == -1)   
            cooTxt += 'path=/;';
    }
    document.cookie = cooTxt;
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function deleteCookie(name){
    document.cookie = name+'=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
} 

  function CGlider(sName,sWidth,sHeight,sRoot,sDirection){
	var _self = this;
	var _aktiv;
	var ACCEL_CONST = 5;
	var SLIDE_INTERVAL = 5;
	var _maxGlide = 0;
	
	_self.ObjName = sName;
	_self.h = sHeight+1;
	_self.w = sWidth;
	_self.glide = _self.h;
	
	_self.obj = document.getElementById(_self.ObjName);
	_self.root = sRoot;
	_self.IsGlideOut = false;
	_self.IsGlideIn = false;
	if (typeof(sDirection)!='undefined')
		_self.dir = sDirection;
	else
		_self.dir = 0;
    _self.IsOpen = false;
    
	_maxGlide = _self.h;
	
    if (document.attachEvent)
	    document.attachEvent("onclick", _glideClick);
    else if	(document.addEventListener)
	    document.addEventListener("click", _glideClick, false);
	
	function _glideClick(e) {
	    var key = e.keyCode ? e.keyCode : e.which; 
    	
	    var target;
	    if (e && e.target)
		    target = e.target;
	    else
		    target = event.srcElement;

	    var suppressHiding = target.getAttribute("GlideSuppressHiding");
	    if (suppressHiding != "true" && suppressHiding != "1" && _self.IsOpen)
		    _self.Glide();
	}
	
	function _glideOut(){
		_self.IsGlideOut = true;
		if (_self.glide <= 0){
			_self.IsGlideOut = false;
			return;
		}
		else
		    _self.obj.style.visibility = 'visible';
		
		if (_self.glide < ACCEL_CONST)
			_self.glide = ACCEL_CONST;
		_self.glide -= ACCEL_CONST;
		if (_self.dir == 0)
			_self.obj.style.top = (_self.root - _self.glide) + 'px';
		else
			_self.obj.style.top = (_self.root) + 'px';
			
		_self.obj.style.clip = 'rect(' + _self.glide + 'px, ' + _self.w + 'px, ' + _self.h + 'px, 0px)';
		window.setTimeout(_glideOut, SLIDE_INTERVAL);
	}
	
	function _glideIn(){
		_self.IsGlideIn = true;
		if (_self.glide >= _maxGlide){
			_self.IsGlideIn = false;
			return;
		}
		if (_self.glide < ACCEL_CONST)
			_self.glide = ACCEL_CONST;
		_self.glide += ACCEL_CONST;
		if (_self.dir == 0)
			_self.obj.style.top = (_self.root - _self.glide) + 'px';
		else
			_self.obj.style.top = (_self.root) + 'px';
		_self.obj.style.clip = 'rect(' + _self.glide + 'px, ' + _self.w + 'px, ' + _self.h + 'px, 0px)';
		window.setTimeout(_glideIn, SLIDE_INTERVAL);
	}
	
	this.Glide = function(){
	    
	    if (_self.IsOpen)
	        _self.StartGlideIn();
	    else
	        _self.StartGlideOut();
	}
	
	this.StartGlideOut = function(){
		_glideOut();
		_self.IsOpen = true;
	}
	
	this.StartGlideIn = function(){
		_glideIn();
		_self.IsOpen = false;
	}
		
}


function CResizer(sObjName){
	var _self;
	var _step = 5;
	var _speed = 10;
	var _resizeDirH = 1;
	var _resizeDirW = 1;
	var _endWidth = 500;
	var _endHeight = 500;
	
	_self = this;
	
	this.ObjName = sObjName;
	this.Obj = document.getElementById(this.ObjName);
	this.Height = parseInt(this.Obj.style.height);
	this.Width = parseInt(this.Obj.style.width);
	this.EndWidth = _endWidth;
	this.EndHeight = _endHeight;
	this.Speed = _speed;
	this.Step = _step;
	
	this.start = function (){
	    _self.Obj.style.height = _self.Height + 'px';
	    _self.Obj.style.width = _self.Width + 'px';
		if (_self.Height > _self.EndHeight)
			_resizeDirH = 0;
		if (_self.Width > _self.EndWidth)
			_resizeDirW = 0;	
		
		_ftCenter(_self.Height, _self.Width);
		_self.Obj.style.visibility = 'visible';
	}
	
	this.startResize = function (){
		_ftResize();
	}	
	
	function _ftResize(){
		if (_self.Obj){
			var lResH = false;
			var lResW = false;
			
			if (_resizeDirH == 0){
				if (_self.Height >= _self.EndHeight){
					_self.Height -= _self.Step;
					lResH = true;
				}
			}
			else{
				if (_self.Height < _self.EndHeight){
					_self.Height += _self.Step;
					lResH = true;
				}
			}
			if (_resizeDirW == 0){
				if (_self.Width >= _self.EndWidth){
					_self.Width -= _self.Step;
					lResW = true;
				}		
			}
			else{
				if (_self.Width < _self.EndWidth){
					_self.Width += _self.Step;
					lResW = true;
				}	
			}
			
			if (!lResH && !lResW){
			    _self.onStopResize();
				return;
			}
			_self.Obj.style.height = _self.Height + 'px';
			_self.Obj.style.width = _self.Width + 'px';
			
			_ftCenter(_self.Height, _self.Width);
			
			setTimeout(_ftResize,_self.Speed);
		}
	}
	
	
	function _ftCenter(sHeight, sWidth){
		if (document.all){
			_self.Obj.style.left = (document.body.offsetWidth/2 - sWidth/2) + "px";
			_self.Obj.style.top = (document.documentElement.scrollTop + document.body.offsetHeight/2 - sHeight/2) + "px";
		}
		else{
			_self.Obj.style.left = (document.width/2 - sWidth/2) + "px";
			_self.Obj.style.top = (document.documentElement.scrollTop + window.innerHeight/2 - sHeight/2) + "px";
		}
	}
	
	this.onStopResize = function (){

	}
}

function LoadScript(sScriptname){ 
    var lNode = document.createElement('script');
    var lHead = document.getElementsByTagName('head')[0];
    if (lHead.innerHTML.toLowerCase().indexOf(sScriptname.toLowerCase())==-1){
        lNode.setAttribute('type','text/javascript');  
        lNode.setAttribute('src',sScriptname);
        lHead.appendChild(lNode); 
    }
}  

function printPage(sLasid, sKatID, sPID, sType, sUrl){
    var DruckVersion;
    var lWidth = 560;
    var lHeight = 600;
    var lType = 0;
    if (typeof(sType) != 'undefined')
        lType = sType;
    if (String(lType) == '1'){
        lWidth = 510;
        lHeight = 350;
    }
    else{
        lWidth = 790;
    }
    var lUrl = '/SCR/allg/print.asp?Lasid='+sLasid+'&katid='+sKatID+'&pid='+sPID+'&type='+lType;
    if (typeof(sUrl) != 'undefined')
        lUrl = sUrl+'&type='+lType;
    //DruckVersion = window.open(lUrl, 'DruckVersion', '_blank', 'toolbar=0,location=0,status=0,menubar=0,scrollbars=1,personalbar=0,resizable=1,screenX=100,screenY=100');
	DruckVersion = OpenNewWindow(lWidth, lHeight, lUrl, '', 'DruckVersion');
	
	DruckVersion.focus();
}

function getPrintPageText(){
    return ge('mCont').innerHTML;
}
   
function checkField (sFieldID){
    if (ge(sFieldID).value == "")
	    return false;
    else
	    return true;
}

function pool_navigate(Art,Page) {
	switch (Art) {
		case 'branchen': {
			if (Page && Page != '')
				$("#load").load('/SCR/intern/branchen/auswahl_'+Page+'.asp?LASID='+gLASID);
			else
				$("#load").load('/SCR/intern/branchen/auswahl_schwerpunkte.asp?LASID='+gLASID);
			break
		}
		case 'liste': {
			if (Page) {
				//alert(Page);
				Page = Page.split('{+}')
				gLastList = Page[0];
				Listen_LoadAjax(Page[1],Page[0]);
			} else {
				var url = '';
				url = document.location.toString();
				url = url.replace(/(SrcAction)=[^&]*?(&|$)/gi,'&SrcAction=1');
				//alert(url);
				Listen_LoadAjax(url+'&LAjax'+gLastList+'=Solo',gLastList);
			}
			break
		}
	}
}
var gLastAction = '';
var gLastList = '';
function pageload(hash) {
		// hash doesn't contain the first # character.
		if(hash) {
			// restore ajax loaded state
			hash = hash.split('{~}')
			gLastAction = hash[0];
			pool_navigate(hash[0],hash[1])
		} else {
			// start page
			pool_navigate(gLastAction,'')
			//$("#load").load('/SCR/intern/branchen/auswahl_schwerpunkte.asp?LASID=<%=LASID%>');
		}
	}

function txtFunc(sID, sTxt, sButID, sBut, sButInakt, sClass, sFormID, sSearchedVal, sMask){
    var _ObjTxt = ge(sID),
        _ID = sID,
        _Txt = sTxt,
        _Class = 'stdKur',
        _dis = false,
        _self = this,
        _ObjForm = null,
        _searched = null,
        _filled = null,
        _IsMasked = false,
        _Mask = '',
        _MaskArr = [],
        _MaskArrCopy = [],
        _tmpObjText = _ObjTxt.value;
        _initObj = true;
        _expCookie = 365*24*60*60*1000;
    
    
    if (typeof(sClass) != 'undefined')
        if (sClass != null)
        _Class = sClass;
    
    if ((typeof(sFormID) != 'undefined'))
        _ObjForm = ge(sFormID);
    
    if (_ObjForm){
        if (!ge('txtFuncSearched')){
            _searched = document.createElement('input');
            _searched.id = 'txtFuncSearched';
            _searched.name = 'txtFuncSearched';
            _searched.type = 'hidden';
            _ObjForm.appendChild(_searched);
            _searched.value = 0;
        }
        _filled = document.createElement('input');
        _filled.id = sID+'_hid';
        _filled.name = sID+'_hid';
        _filled.type = 'hidden';
        _ObjForm.appendChild(_filled);
        _filled.value = 0;
        setFilledCoo(sID+'_hid','0');
    }
    
    if (typeof(sMask)!='undefined'){
        _Mask = sMask;
        _IsMasked = true;
        /*_ObjTxt.setAttribute('maxlength', _Mask.length);
        _Mask = _Mask.replace(/([0-9]|[a-zA-Z])/g,'_');
        _MaskArr = _Mask.split('');
        _MaskArrCopy = _Mask.split('');*/
    }
    
    var _attr = document.createAttribute('selected');
    _attr.nodeValue = "0";
    _ObjTxt.setAttributeNode(_attr);

    if (_initObj || _Txt != '' && _ObjTxt.value == ''){
        if (_filled)
            _filled.value = 0;
        if (_Txt == '{%LEER%}')
            _Txt = '';
        ChangeClass(0);
        _dis = true
    }
    else{
        if (_filled)
            _filled.value = 1;
        if (_searched)
            _searched.value = 1;
    }
         
    if (_Txt == '{%LEER%}')
        _Txt = '';
    
    var _ButID = '', 
        _But = '', 
        _ButInakt = '',
        _ObjBut = null;
    if (typeof(sButID) != 'undefined'){
        _ButID = sButID;
        _But = sBut;
        _ButInakt = sButInakt;
        _ObjBut = ge(_ButID);
        if (_ObjBut)
            _ObjBut.src = _ButInakt;
    }
    
    if ((_ObjTxt.value == _Txt || _ObjTxt.value == '') && _dis)
        if (_ObjBut)
            _ObjBut.disabled = true;
    else{
        if (_ObjBut)
            _ObjBut.src = _But;
    }
    
    this.setInputTxt = function(sITxt, sOverwrite){
        var lOverwrite = true;
        if (typeof(sOverwrite) != 'undefined')
            lOverwrite = sOverwrite;
        _Txt = sITxt;
        sTxt = sITxt;
        if (sOverwrite)
            ChangeClass(0);
    }
    this.setSearchedvalue = function(sITxt){
        _ObjTxt.value = sITxt;
        ChangeClass(1, false);
        if (_ObjForm){
            _filled.value = 1;
            _searched.value = 1;
        }
    }
    this.focusEnabled = true;
    this.setObjOnClick = function(sObj){
        multihandle_append(sObj,"onclick",function(e){
            OnClick(e);
        });
    }
    
    this.addEventOnObj = function(sObj, sEvent, sFunc, sSetTimeOut){
        multihandle_append(sObj,sEvent,function(e){
            var lSetTimeOut = 0;
            if (typeof(sSetTimeOut)!='undefined')
                lSetTimeOut = sSetTimeOut;
            if (lSetTimeOut > 0)
                window.setTimeout(sFunc,lSetTimeOut);
            else
                sFunc(e);
        });
    }
    
    if ((typeof(sSearchedVal) != 'undefined') && sSearchedVal != ''){
        ChangeClass(parseInt(sSearchedVal));
        if (parseInt(sSearchedVal) == 1)
            _ObjTxt.value = _tmpObjText;
    }
    multihandle_append(_ObjTxt,"onkeyup",function(e){ 
        CheckTxtBox(_ObjTxt.value);
        //if (_IsMasked && _ObjTxt.value != _Txt)
        //    HandleMask(e);
    });
    
    multihandle_append(_ObjTxt,"onclick",function(e){
        OnClick(e);
    });
    
    multihandle_append(_ObjTxt,"onfocus",function(e){
        OnClick(e);
    });
    
    multihandle_append(_ObjTxt,"onchange",function(e){ 
        CheckTxtBox(_ObjTxt.value);
    });

    multihandle_append(_ObjTxt,"onblur",function (e){
        CheckTxtBox(_ObjTxt.value);
        if (_Txt != '')
            HandleTxt(_Txt);
    });
    
    function OnClick(e){
        if (_ObjTxt.value == _Txt)
            ChangeClass(1);
            /*if (_IsMasked && _ObjTxt.value == ''){
                _ObjTxt.value = _Mask;
                SetCursorPos(0);
            }*/
        else{
            if (_self.focusEnabled){
                if (_ObjTxt.getAttribute('selected') == '0'){
                    _ObjTxt.focus();
                    _ObjTxt.select();
                    _ObjTxt.setAttribute('selected', '1');
                }
                else{
                    _ObjTxt.value = _ObjTxt.value;
                    _ObjTxt.setAttribute('selected', '0');
                }
            }
        }
    
    }
    
    this.setFilledCookie = function(sFieldID, sVal){
        setFilledCoo(sFieldID, sVal);
    }
    
    function setFilledCoo(sFieldID, sVal){
        writeCookie(sFieldID,sVal,_expCookie,'/');
    }
    
    function CheckTxtBox(sVal){
        _initObj = false;
        if(sVal == ''){
            if (_filled){
                _filled.value = '0';    
                setFilledCoo(_ID+'_hid','0');
            }
            if (_ObjBut){
                _ObjBut.src = _ButInakt;
                _ObjBut.disabled = true;
            }
        }
        else{    
            if (_filled){
                _filled.value = '1';   
                setFilledCoo(_ID+'_hid','1');
            }
            if (_ObjBut){
                _ObjBut.src = _But;
                _ObjBut.disabled = false;
            }
        }
    };
    
    function ChangeClass(sMod, sOverwrite){
        _initObj = false;
        var lOverwrite = true;
        if (typeof(sOverwrite) != 'undefined')
            lOverwrite = sOverwrite;
        var lClass = _ObjTxt.className;
        if (sMod == 0){
            _ObjTxt.className = Trim(lClass + ' ' + _Class);
            _ObjTxt.value = _Txt; 
            if (_searched)
                _searched.value = 0;
        }    
        else{
            if (lOverwrite)
                _ObjTxt.value = '';
            _ObjTxt.className = Trim(_ObjTxt.className.replace(eval('/'+_Class+'/gi'),''));
            if (_searched)
                _searched.value = 1;
        }
    }
    
    function HandleTxt(sTxt){
        if (_ObjTxt.value == '' || (_IsMasked && _ObjTxt.value == _Mask)){
            ChangeClass(0);
        }
    }
    function HandleMask(ev){
        var charcode = ev.keyCode ? ev.keyCode : ev.charCode ? ev.charCode : ev.which;
        var allowedChar = new Array(8, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57);
        var charOK = false;

        if (charcode) 
		    for (var i in allowedChar) 
			    if (allowedChar[i] == charcode) 
				    charOK = true;
        
        if (charOK){
            var curPos = GetCursorPos();
            if(curPos < _MaskArr.length){
                if (charcode == 8 || charcode == 46){
                    _MaskArr[curPos] = '_';
                    _ObjTxt.value = _MaskArr.join('');
                    SetCursorPos(curPos);
                    if(curPos-1 >= 0 && _MaskArrCopy[curPos-1] != '_'){
                        SetCursorPos(curPos-1);
                        curPos -= 1;
                    }
                }
                else{
                    if(curPos+1 < _MaskArr.length && _MaskArr[curPos] != '_'){
                        SetCursorPos(curPos+1);
                        curPos += 1;
                    }
                    _MaskArr[curPos] = String.fromCharCode(charcode);
                    _ObjTxt.value = _MaskArr.join('');
                    SetCursorPos(curPos+1);
                } 
            }
        }
    }
    
    function GetCursorPos(){
        var CurrentSelection, FullRange, SelectedRange, LocationIndex = -1;
        if (typeof _ObjTxt.selectionStart == "number"){
            LocationIndex = _ObjTxt.selectionStart;
        }
        else if (document.selection && _ObjTxt.createTextRange){
            CurrentSelection = document.selection;
            if (CurrentSelection){
                SelectedRange = CurrentSelection.createRange();
                FullRange = _ObjTxt.createTextRange();
				try{
                	FullRange.setEndPoint("EndToStart", SelectedRange);
				}
				catch (e){}
                LocationIndex = FullRange.text.length;
            }
        }
        return LocationIndex;
    }
    function SetCursorPos(curPos) {
        if(_ObjTxt.createTextRange) {
            var range = _ObjTxt.createTextRange();
            range.move('character', curPos);
            range.select();
        }
        else {
            if(_ObjTxt.selectionStart) {
                _ObjTxt.focus();
                _ObjTxt.setSelectionRange(curPos, curPos);
            }
            else
                _ObjTxt.focus();
        }
    }
}

/* Start of the multihandle Object...*/
function MultiHandle(owner){
  var my_handlers = new Array();
  var my_owner = owner;
  this.append = function(handler){
    my_handlers[my_handlers.length] = handler;
  }
  this.fire = function(evt){
    var i;
    for(i = 0; i < my_handlers.length; i++){
      my_owner.tempspace = my_handlers[i];
      my_owner.tempspace(evt);
    }
  }
}
/* End of the multihandle object*/

function multihandle_append(object,event,func){
  if(typeof(MultiHandle) != "undefined"){
    var mup_handler = object["mh_"+event];
    if(!mup_handler){
      mup_handler = new MultiHandle(object);
      object["mh_"+event] = mup_handler;
      object[event] = function(evt){this["mh_"+event].fire(evt);};
    }
    mup_handler.append(func);
  }else{
    object.onmouseup = func;
  }
}

function LAHash(){
    this.Items = new Array();
    this.get=function(key){
        return this.Items[key];    
    };
    
    this.has=function(key){
        var exists = false;
        for (var i in this.Items) {
            if (i == key && this.Items[i] != null) {
                exists = true;
                break;
            }
        }
        return exists;
    };
    
    this.each=function(bind){
        for (var i in this.Items)
            bind(this.Items[i], i, this);
    };
    
    this.erase=function(key){
        var rtn = this.Items[key];
        var lItems = new Array()

        if (rtn)
            for (var i in this.Items)
                if (i != key && this.Items[i] != null)
                    lItems[i]=this.Items[i];
        this.Items = lItems;
        return rtn;
    };
    this.set=function(key,value){
        this.Items[key] = value;    
    };
    this.getLength=function(){
        var size = 0;
        for (var i in this.Items) {
            if (this.Items[i] != null) 
                size ++;
        }
        return size;
    }        
    this.getKeys=function(){
        var keys = [];
		this.each(function(value, key){
			keys.push(key);
		});
		return keys;
    }
}

function decTxt(sTxt, sMode){
    var txt='';
    var y = 1;
    
    for (var i=0;i<sTxt.length-1;i+=3){
        var x = sTxt.substr(i, 3);
        x = Number(x)-y;
        txt += String.fromCharCode(x);
        y += 1
    }
    if (sMode==0)
        location.href = txt;
    else
        document.write(txt);
}

function SetThousandSeperator(obj) {

    var current = '';
    if (obj.innerHTML) {
        current = obj.innerHTML;
    }
    else {
        current = obj.value;
    }
    current = current.replace(/\./g,'');
    
    var after=current;

    current = current.replace(/,/g, '');
    var minus = current.lastIndexOf('-');
    current = current.replace(/-/g, '');
    
    var decimalpoint=current.lastIndexOf('.');

    var n;
    var d;
    if(decimalpoint>=0){
        var f=current.split('.');
        d=f[1];
        n=f[0];
    }
    else{
        n=current;
    }

    var index=parseInt((n.length-1)/3);
    if (index != 0) {
        var prefixIndex = n.length - index * 3;
        after = n.substr(0, prefixIndex) + '.' + n.substr(prefixIndex, 3);
        for (var i = 2; i <= index; i++) {
            after += '.' + n.substr(prefixIndex + 3 * (i - 1), 3);
        }

        if (decimalpoint >= 0) {
            after += '.' + d;
        }
        if (minus >= 0) after = '-' + after
    }
    if (obj.innerHTML) {
        obj.innerHTML = after;
    }
    else {
        obj.value = after;
    }
}

function setTransparenz(el,prozent) 
{
	var i, count, objStyle, filterValue, opacityValue;
	
	if(typeof(el)=='object' && el) { obj=el; }
  	else if (ge(el)) { obj=ge(el); }
	else { obj=false; }
	
  	if(obj) 
  	{
   		prozent=(typeof(prozent)=='undefined')?50:100-prozent;
   		filterValue='Alpha(opacity='+prozent+')';
   		opacityValue=''+prozent/100;
   		count=(obj.length)?obj.length:1;
   		for(i=0;i<count;i++) 
		{
    		objStyle=(obj.length)?obj[i].style:obj.style;
    		objStyle.filter=filterValue;
    		objStyle.MozOpacity=opacityValue;
    		objStyle.KhtmlOpacity=opacityValue;
    		objStyle.opacity=opacityValue;
   		}
  	}
}

if (!this.JSON) {

    JSON = function () {

        function f(n) {
            return n < 10 ? '0' + n : n;
        }
        Date.prototype.toJSON = function () {
            return this.getUTCFullYear()   + '-' +
                 f(this.getUTCMonth() + 1) + '-' +
                 f(this.getUTCDate())      + 'T' +
                 f(this.getUTCHours())     + ':' +
                 f(this.getUTCMinutes())   + ':' +
                 f(this.getUTCSeconds())   + 'Z';
        };


        var m = {
            '\b': '\\b',
            '\t': '\\t',
            '\n': '\\n',
            '\f': '\\f',
            '\r': '\\r',
            '"' : '\\"',
            '\\': '\\\\'
        };

        function stringify(value, whitelist) {
            var a,          
                i,          
                k,          
                l,          
                r = /["\\\x00-\x1f\x7f-\x9f]/g,
                v;          

            switch (typeof value) {
            case 'string':
                return r.test(value) ?
                    '"' + value.replace(r, function (a) {
                        var c = m[a];
                        if (c) {
                            return c;
                        }
                        c = a.charCodeAt();
                        return '\\u00' + Math.floor(c / 16).toString(16) +
                                                   (c % 16).toString(16);
                    }) + '"' :
                    '"' + value + '"';

            case 'number':
                return isFinite(value) ? String(value) : 'null';

            case 'boolean':
            case 'null':
                return String(value);

            case 'object':
                if (!value) {
                    return 'null';
                }
                if (typeof value.toJSON === 'function') {
                    return stringify(value.toJSON());
                }
                a = [];
                if (typeof value.length === 'number' &&
                        !(value.propertyIsEnumerable('length'))) {

                    l = value.length;
                    for (i = 0; i < l; i += 1) {
                        a.push(stringify(value[i], whitelist) || 'null');
                    }
                    return '[' + a.join(',') + ']';
                }
                if (whitelist) {
                    l = whitelist.length;
                    for (i = 0; i < l; i += 1) {
                        k = whitelist[i];
                        if (typeof k === 'string') {
                            v = stringify(value[k], whitelist);
                            if (v) {
                                a.push(stringify(k) + ':' + v);
                            }
                        }
                    }
                } else {
                    for (k in value) {
                        if (typeof k === 'string') {
                            v = stringify(value[k], whitelist);
                            if (v) {
                                a.push(stringify(k) + ':' + v);
                            }
                        }
                    }
                }
                return '{' + a.join(',') + '}';
            }
        }

        return {
            stringify: stringify,
            parse: function (text, filter) {
                var j;

                function walk(k, v) {
                    var i, n;
                    if (v && typeof v === 'object') {
                        for (i in v) {
                            if (Object.prototype.hasOwnProperty.apply(v, [i])) {
                                n = walk(i, v[i]);
                                if (n !== undefined) {
                                    v[i] = n;
                                }
                            }
                        }
                    }
                    return filter(k, v);
                }
                if (/^[\],:{}\s]*$/.test(text.replace(/\\./g, '@').
replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(:?[eE][+\-]?\d+)?/g, ']').
replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
                    j = eval('(' + text + ')');
                    return typeof filter === 'function' ? walk('', j) : j;
                }
                throw new SyntaxError('parseJSON');
            }
        };
    }();
}


