function URLEncode( plaintext )
{
	var SAFEC = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_.!~*'()";
	var HEX = "0123456789ABCDEF";
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ )
	{
		var ch = plaintext.charAt(i);
		if (ch == " ")
		{
			encoded += "+";
		}
		else if (SAFEC.indexOf(ch) != -1)
		{
			encoded += ch;
		}
		else
		{
			var charCode = ch.charCodeAt(0);
			if (charCode > 255)
			{
//				encoded += "+";
				encoded += escape(String.fromCharCode(charCode));
			}
			else
			{
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	}
	return encoded;
}

function replaceIt(st,search,repl)
{
	var res = st;
	res = res.split(search);
	res = res.join(repl);
	return res;
}

function lshowhide(layer_ref,state)
{
	if (document.getElementById)
	{ // DOM3 = IE5, NS6 
		document.getElementById(layer_ref).style.visibility = state; 
	} 
	else if (document.layers) 
	{ // Netscape 4 
		document.layer_ref.visibility = state; 
	} 
	else 
	{ // IE 4 
		document.all.layer_ref.style.visibility = state; 
	} 
} 

function lshowhide1(layer_ref,state)
{
	if (document.getElementById)
	{ // DOM3 = IE5, NS6 
		document.getElementById(layer_ref).style.display = state; 
	} 
	else if (document.layers) 
	{ // Netscape 4 
		document.layer_ref.display = state; 
	} 
	else 
	{ // IE 4 
		document.all.layer_ref.style.display = state; 
	} 
} 

function radioWert(rObj)
{
	for (var i=0; i<rObj.length; i++) if (rObj[i].checked) return rObj[i].value;
	return false;
}

function setRadioWert(rObj,val)
{
	for (var i=0; i<rObj.length; i++)
	{
		if (rObj[i].value==val)
		{
			rObj[i].checked=true;
			return;
		}
	}
}

function selectWert(rObj)
{
	for (var i=0; i<rObj.length; i++) if (rObj[i].selected) return rObj[i].value;
	return false;
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
	{
		curtop += obj.x;
	}
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
	{
		curtop += obj.y;
	}
	return curtop;
}

function getWidth(element)
{
	element = $(element);
	return element.offsetWidth; 
}

function getHeight(element)
{
	element = $(element);
	return element.offsetHeight;
}

function getTop(element)
{
	element = $(element);
	return parseInt(element.style.top); 
}

function getSrc(element)
{
	element = $(element);
	return element.src; 
}

function setWidth(element,w)	
{
	element = $(element);
	if(element) element.style.width = w +"px";
}

function setHeight(element,h) 
{
	element = $(element);
    	if(element) element.style.height = h +"px";
}

function setTop(element,t)
{
	element = $(element);
	if(element) element.style.top = t +"px";
}

function setLeft(element,t)
{
	element = $(element);
	if(element) element.style.left = t +"px";
}

function setSrc(element,src)
{
	element = $(element);
	if(element) element.src = src; 
}

function setClass(element,classn)
{
	element = $(element);
	if(element) element.className = classn; 
}

function setName(element,val)
{
	element = $(element);
	if(element) element.name = val; 
}

function setAlt(element,alt)	
{
	element = $(element);
	if(element) element.alt = alt; 
}

function setVisibility(element,val)
{
	element = $(element);
	if(element) element.style.visibility = val; 
}

function setColor(element,val)
{
	element = $(element);
	if(element) element.style.color = val; 
}

function setOpacity(element,opacity)
{
	element = $(element);
	if(element) element.style.opacity = opacity; 
}

function setHref(element,href)
{
	element = $(element);
	if(element) element.href = href; 
}

function setInnerHTML(element,content)
{
	element = $(element);
	if(element) element.innerHTML = content;
}

function hide(element)
{
	element = $(element);
	if(element) element.style.display = 'none';
}

function show(element)
{
	element = $(element);
	if(element) element.style.display = 'inline';
}

function setClick(element,val)
{
	element = $(element);
	if(element) element.onclick = val; 
}

function addEvent(element,typ,val)
{
	if(element)
	{
		if (element.addEventListener)
		{
			element.addEventListener(typ, val, false);
		}
//		else if (element.attachEvent)
//		{
//			element.attachEvent('on' + typ, val);
//		}
		else
		{
			eval("element.on"+typ+" = val");
		}
	}
}

function removeEvent(element,typ,val)
{
	if(element)
	{
		if (element.removeEventListener)
		{
			element.removeEventListener(typ, val, false);
		}
//		else if (element.detachEvent)
//		{
//			element.detachEvent('on' + typ, val);
//		}
		else
		{
			eval("element.on"+typ+" = null");
		}
	}
}

function setMouseDown(element,val)
{
	element = $(element);
	addEvent(element,'mousedown',val);
}

function setMouseUp(element,val)
{
	element = $(element);
	addEvent(element,'mouseup',val);
}

function addLoadEvent(func)
{	
	var oldonload = window.onload;
	if (typeof window.onload != 'function')
	{
	    	window.onload = func;
	}
	else
	{
		window.onload = function()
		{
			oldonload();
			func();
		}
	}
}

function addunLoadEvent(func)
{	
	var oldonload = window.onunload;
	if (typeof window.onunload != 'function')
	{
	    	window.onunload = func;
	}
	else
	{
		window.onunload = function()
		{
			oldonload();
			func();
		}
	}
}

//transitions

function ww_trans_sinoidal(pos)
{
	return ((-Math.cos(pos*Math.PI)/2) + 0.5);
}

function ww_trans_linear(pos)
{
	return pos;
}

function ww_trans_cubic(pos)
{
	return Math.pow(pos, 3);
}

function ww_trans_circ(pos)
{
	return Math.sqrt(pos);
}

function ww_set_opacity(el,val)
{

	if(el.style.display=='none') el.style.display = "";
	if (val >= 1 && (/Firefox/.test(navigator.userAgent))) val = 0.9999;
	if (val <= 0 && el.style.visibility != "hidden")
	{
		el.style.visibility = "hidden";
	}
	else if (el.style.visibility != "visible")
	{
		el.style.visibility = "visible";
	}
	if (window.ActiveXObject) el.style.filter = "alpha(opacity=" + val*100 + ")";
	el.style.opacity = val;
}

function ww_timer_height(el,op,seth)
{
	if(el.stTimer)
	{
		var time  = (new Date).getTime();
		var aa=el.stNow;
		if (time >= el.stDuration+el.stTime)
		{
			clearInterval(el.stTimer);
			el.stTimer=null;
			if(op==1)
			{
				if(el.stNow>el.stTo)
				{
					ww_set_opacity(el,0);
				}
				else
				{
					ww_set_opacity(el,1);
				}
			}
			el.stNow=el.stTo;
			if(el.onComplete)
			{
				el.onComplete(el);
			}
		}
		else
		{
			var Tpos = (time - el.stTime) / (el.stDuration);
			el.stNow = el.stTrans(Tpos) * (el.stTo-el.stFrom) + el.stFrom;
			if(op==1)
			{
				if(el.stNow>el.stTo)
				{
					ww_set_opacity(el,1-el.stTrans(Tpos));
				}
				else
				{
					ww_set_opacity(el,el.stTrans(Tpos));
				}
			}
		}
		if(seth)
		{
			el.style.height = el.stNow + "px";
		}
	}
}

function ww_fade(el,hei)
{
	if(el.stTyp==2)
	{
		if(hei!=el.stNow)
		{
			if(el.stTimer)
			{
				clearInterval(el.stTimer);
			}
			el.stTo=hei;
			el.stFrom=el.stNow;
			el.stTimer = setInterval (function(){ww_timer_height(el,1,0);}, 10);
			el.stTime=(new Date).getTime();
		}
	}
}

function ww_set_height(el,hei)
{
	if(el.stTyp==0)
	{
		el.style.height = hei + "px";
		el.stNow=hei;
	}
	else if(el.stTyp==1)
	{
		if(hei!=el.stNow)
		{
			if(el.stTimer)
			{
				clearInterval(el.stTimer);
			}
			el.stTo=hei;
			el.stFrom=el.stNow;
			el.stTimer = setInterval (function(){ww_timer_height(el,0,1);}, 10);
			el.stTime=(new Date).getTime();
		}
		else
		{
			if(el.onComplete)
			{
				el.onComplete(el);
			}
		}
	}
	else if(el.stTyp==2)
	{
		if(hei!=el.stNow)
		{
			if(el.stTimer)
			{
				clearInterval(el.stTimer);
			}
			el.stTo=hei;
			el.stFrom=el.stNow;
			el.stTimer = setInterval (function(){ww_timer_height(el,1,1);}, 10);
			el.stTime=(new Date).getTime();
		}
		else
		{
			if(el.onComplete)
			{
				el.onComplete(el);
			}
		}
	}
}

function clickStretcher()
{
	cdiv = Element.find(this, 'nextSibling');
	ch=cdiv.stNow;
	toggles=document.getElementsByClassName(this.className);
	var obj=this;

	toggles.each(function(el, i)
	{
		div = Element.find(el, 'nextSibling');
		div.onComplete='';
		if(obj.doneClose && div.stNow>0)
		{
			div.onComplete=obj.doneClose;
		}
		ww_set_height(div,0);
	});
	if(ch==0)
	{
		if(this.doneOpen)
		{
			cdiv.onComplete=this.doneOpen;
		}
		setTimeout('ww_set_height(cdiv,cdiv.stHeight)',cdiv.stDelay);
	}
	if(this.clickOpen)
	{
		this.clickOpen();
	}
}

function offStretcher()
{
	if(this.stCname)
	{
		toggles=document.getElementsByClassName(this.stCname);
		toggles.each(function(el, i)
		{
			div = Element.find(el, 'nextSibling');
			ww_set_height(div,0);
		});
	}
	if(this.clickOpen)
	{
		this.clickOpen();
	}
}

function ww_set_par(div,loptions)
{
	options=
	{
		duration: 500,
		transition: ww_trans_sinoidal,
		mtyp: 2,
		onComplete: ''
	};
	for (property in loptions) options[property] = loptions[property];
	div.stTyp = 0; // erst mal wirklich schliessen
	div.style.overflow = "hidden";
	div.stNow = 0;
	div.stTo = 0;
	div.stFrom = 0;
	div.stTime = 0;
	div.stDuration = options.duration;
	div.stTimer=null;
	div.stTrans=options.transition;
	div.stHeight = div.offsetHeight;
	div.stWidth = div.offsetWidth;
	div.onComplete=options.onComplete;
}

function wwStretcher(cname,loptions)
{
	options=
	{
		duration: 500,
		transition: ww_trans_sinoidal,
		to_open: -1,
		class_off: '',
		id_off: '',
		mtyp: 2,
		cursor: '',
		clickOpen: '',
		doneOpen: '',
		doneClose: '',
		delay: 100,
		onComplete: ''
	};
	for (property in loptions) options[property] = loptions[property];
	toggles=document.getElementsByClassName(cname);
	toggles.each(function(el, i)
	{
		var div = Element.find(el, 'nextSibling');
		ww_set_par(div,options);
		if(i==options.to_open)
		{
			div.style.visibility='visible';
			ww_set_height(div,div.stHeight);
		}
		else
		{
			ww_set_height(div,0);
		}
		div.stTyp = options.mtyp;
		if(options.clickOpen)
		{
			el.clickOpen=options.clickOpen;
		}
		if(options.doneOpen)
		{
			el.doneOpen=options.doneOpen;
		}
		if(options.doneClose)
		{
			el.doneClose=options.doneClose;
		}
		el.onclick=clickStretcher;
		el.toggleNum=i;
		el.style.visibility='visible';
		
		if(options.cursor!='')
		{
			el.style.cursor=options.cursor;
		}
	});

	if(options.class_off)
	{
		toggles=document.getElementsByClassName(options.class_off);
		toggles.each(function(el, i)
		{
			el.onclick=offStretcher;
			el.stCname=cname;
			el.toggleNum=-1;
			if(options.clickOpen)
			{
				el.clickOpen=options.clickOpen;
			}
			if(options.cursor!='')
			{
				el.style.cursor=options.cursor;
			}
		});
	}

	if(options.id_off)
	{
		el=$(options.id_off);
		el.onclick=offStretcher;
		el.stCname=cname;
		el.toggleNum=-1;
		if(options.clickOpen)
		{
			el.clickOpen=options.clickOpen;
		}
		if(options.cursor!='')
		{
			el.style.cursor=options.cursor;
		}
	}
}

function wwStretcher_get_open(cname)
{
	var last=-1;
	toggles=document.getElementsByClassName(cname);
	toggles.each(function(el, i)
	{
		var div = Element.find(el, 'nextSibling');
		if(div.stNow!=0)
		{
			last=i;
		}
	});

	return last;
}

function ww_set_click(el,click,cursor)
{
	var toggles=document.getElementsByClassName(el);
	toggles.each(function(el, i)
	{
		el.onclick=click;
		if(cursor)
		{
			el.style.cursor=cursor;
		}
	});
}

function wwHeight(cname,loptions)
{
	options=
	{
		duration: 500,
		transition: ww_trans_sinoidal,
		mtyp: 2,
		onComplete: ''
	};
	for (property in loptions) options[property] = loptions[property];
	var div=$(cname);
	ww_set_par(div,options);
	ww_set_height(div,0);
	div.stTyp = options.mtyp;
	return div;
}

function wwInit_element(cname,loptions)
{
	options=
	{
		duration: 500,
		transition: ww_trans_sinoidal,
		mtyp: 2,
		en_height: false,
		set_height: 0,
		en_opacity: false,
		set_opacity: 0,
		onComplete: ''
	};
	for (property in loptions) options[property] = loptions[property];
	var div=$(cname);
	ww_set_par(div,options);
	if(this.options.en_height)
	{
		ww_set_height(div,this.options.set_height);
	}
	if(this.options.en_opacity)
	{
		div.stNow=this.options.set_opacity;
		ww_set_opacity(div,this.options.set_opacity);
	}
	div.stTyp = options.mtyp;
	return div;
}

function ww_set_open(cname)
{
	el=$(cname);
	if(el)
	{
		el.stNow=0;
		setTimeout('ww_set_height(el,el.stHeight)',el.stDelay);
	}
}

function ww_set_open2(cname)
{
	el=$(cname);
	if(el)
	{
		el.stNow=0;
		ww_set_height(el,el.stHeight);
	}
}


function ww_set_close(cname)
{
	el=$(cname);
	if(el)
	{
		el.stNow=el.stHeight;
		ww_set_height(el,0);
	}
}

function ww_blend_width(div)
{
	if(div.stTimer)
	{
		var time  = (new Date).getTime();
		var aa=div.stNow;
		if (time >= div.stDuration+div.stTime)
		{
			clearInterval(div.stTimer);
			div.stTimer=null;
			div.stNow=div.stTo;
//			div.style.width = div.stNow +"px";
			div.style.marginLeft = div.stNow +"px";
			if(div.onComplete)
			{
				div.onComplete(div);
			}
		}
		else
		{
			var Tpos = (time - div.stTime) / (div.stDuration);
			div.stNow = div.stTrans(Tpos) * (div.stTo-div.stFrom) + div.stFrom;
//			div.style.width = div.stNow +"px";
			div.style.marginLeft = div.stNow +"px";
		}
	}
}

function ww_blend_start(div,from,to)
{
	if(div.hobj)
	{
		div.stTo=to;
		div.stFrom=from;
		div.stTimer = setInterval (function(){ww_blend_width(div);}, 10);
		div.stTime=(new Date).getTime();
	}
}

function ww_blend(cname,hname,loptions)
{
	options=
	{
		duration: 500,
		transition: ww_trans_sinoidal,
		mtyp: 2,
		onComplete: ''
	};
	for (property in loptions) options[property] = loptions[property];
	var div=$(cname);
	ww_set_par(div,options);
	var hdiv=$(hname);
	ww_set_par(hdiv,options);
	div.stTyp = options.mtyp;
	div.hobj=hdiv;
	return div;
}


function evalScript(text)
{
	pos=0;
	while(1)
	{
		if((pos=text.indexOf('<script>', pos))>=0)
		{
			if((pos1=text.indexOf('</script>', pos))>=0)
			{
				aa=text.substring(pos+8,pos1);
				eval(aa);
				pos=pos1;
			}
		}
		else
		{
			break;
		}
	}
}

//based on prototype's ajax class
//to be used with prototype.lite, moofx.mad4milk.net.

ajax = Class.create();
ajax.prototype = 
{
	initialize: function(url, options)
	{
		this.transport = this.getTransport();
		this.postBody = options.postBody || '';
		this.method = options.method || 'post';
		this.onComplete = options.onComplete || null;
		this.update = $(options.update) || null;
		this.evalScript = options.evalScript || false;
		this.evalObj = options.evalObj || '';
		this.request(url);
	},

	request: function(url)
	{
		this.transport.open(this.method, url, true);
		this.transport.onreadystatechange = this.onStateChange.bind(this);
		if (this.method == 'post') 
		{
			this.transport.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
			if (this.transport.overrideMimeType) this.transport.setRequestHeader('Connection', 'close');
		}
		this.transport.send(this.postBody);
	},

	onStateChange: function()
	{
		if (this.transport.readyState == 4 && this.transport.status == 200) 
		{
			if (this.onComplete) 
				setTimeout(function(){this.onComplete(this.transport);}.bind(this), 10);
			if (this.update)
				setTimeout(function(){this.update.innerHTML = this.transport.responseText;}.bind(this), 10);
			if (this.evalScript)
				setTimeout(function(){evalScript(this.transport.responseText);}.bind(this), 50);
			if (this.evalObj)
				eval(this.evalObj+"=eval('(' + this.transport.responseText + ')')");
			this.transport.onreadystatechange = function(){};
		}
	},

	getTransport: function()
	{
		if (window.ActiveXObject) return new ActiveXObject('Microsoft.XMLHTTP');
		else if (window.XMLHttpRequest) return new XMLHttpRequest();
		else return false;
	}
};

document.iframeLoaders = {};

iframe = Class.create();
iframe.prototype = 
{
	initialize: function(form, options)
	{
		if (!options) options = {};
		this.form = form;
		this.uniqueId = new Date().getTime();
		document.iframeLoaders[this.uniqueId] = this;
		this.transport = this.getTransport();
		this.onComplete = options.onComplete || null;
		this.update = $(options.update) || null;
		this.updateMultiple = options.multiple || false;
		form.target= 'frame_'+this.uniqueId;
		form.setAttribute("target", 'frame_'+this.uniqueId); // in case the other one fails.
		form.submit();
	},

	onStateChange: function()
	{
		this.transport = $('frame_'+this.uniqueId);
		try
		{
			var doc = this.transport.contentDocument.document.body.innerHTML;
			this.transport.contentDocument.document.close();
		} // For NS6
		catch (e)
		{
			try
			{
				var doc = this.transport.contentWindow.document.body.innerHTML;
				this.transport.contentWindow.document.close();
			} // For IE5.5 and IE6
			catch (e)
			{
				try
				{
					var doc = this.transport.document.body.innerHTML;
					this.transport.document.body.close();
				} // for IE5
				catch (e)
				{
					try
					{
						var doc = window.frames['frame_'+this.uniqueId].document.body.innerText;
					} // for really nasty browsers
					catch (e) { } // forget it.
				}
			}
		}
		this.transport.responseText = doc;
		if (this.onComplete) setTimeout(function(){this.onComplete(this.transport);}.bind(this), 10);
		if (this.update) setTimeout(function(){this.update.innerHTML = this.transport.responseText;}.bind(this), 10);
		if (this.updateMultiple)
		{
			setTimeout(function()
			{ // JSON support!
				try 
				{
					var hasscript = false; eval("var inputObject = "+this.transport.responseText);	// we're expecting a JSON object, eval it to inputObject
					for (var i in inputObject) 
					{
						if (i == 'script')
						{
							hasscript = true;
						} // check if we passed some javascript along too
						else
						{
							if ( elm = $(i))
							{
								elm.innerHTML = inputObject[i];
							}
							else
							{
								alert("element "+i+" not found!");
							}
						} // if it's not script, update the corresponding div
					}
					if (hasscript) eval(inputObject['script']); // some on-the-fly-javascript exchanging support too
				}
				catch (e)
				{
					alert('There was an error processing: '+this.transport.responseText);
				} // in case of an error
			}.bind(this), 10);
		}
	},

	getTransport: function() 
	{
		var divElm = document.createElement('DIV');
		divElm.style.position = "absolute";
		divElm.style.top = "0";
		divElm.style.marginLeft = "-10000px";
		if (navigator.userAgent.indexOf('MSIE') > 0 && navigator.userAgent.indexOf('Opera') == -1)
		{// switch to the crappy solution for IE
			divElm.innerHTML = '<iframe name=\"frame_'+this.uniqueId+'\" id=\"frame_'+this.uniqueId+'\" src=\"about:blank\" onload=\"setTimeout(function(){document.iframeLoaders['+this.uniqueId+'].onStateChange()},20);"></iframe>';
		}
		else
		{
			var frame = document.createElement("iframe");
			frame.setAttribute("name", "frame_"+this.uniqueId);
			frame.setAttribute("id", "frame_"+this.uniqueId);
			frame.addEventListener("load", 	function(){	this.onStateChange(); }.bind(this), false);
			divElm.appendChild(frame);
		}
		document.getElementsByTagName("body").item(0).appendChild(divElm);
	}
};

var ToolTip =
{
	el: '',
	callobj:'',
	ajp:'',
	old_alt: '',
	evmoli: '',
	usemouse: true,
	mx: 0,
	my: 0,
	dx: 0,
	dy: 0,
	dx1: 0,
	dy1: 0,
	px: 0,
	py: 0,
	mpx: 0,
	onClose: '',
	mpy: 0,
	isActive: false,
	evo: '',

	// init
	init: function (ajp)
	{
		if(!this.el)
		{
			var divElm = document.createElement('DIV');
			divElm.id = "t00ltip";
			divElm.style.position = "absolute";
			divElm.style.top = "0px";
			divElm.style.zIndex = "1000";
			divElm.style.left = "0px";
			divElm.style.display = "none";
			divElm.style.visibility = "hidden";
			document.getElementsByTagName("body").item(0).appendChild(divElm);
			this.el=divElm;
			if(ajp) this.ajp=ajp;
		}
	},

	get: function (datset,callobj,usemouse,ext)
	{
		var obj=this;
		if(!this.el)
		{
			this.init();
		}
		if(usemouse==false)
		{
			this.usemouse=false;
		}
		else
		{
			this.usemouse=true;
		}
		this.callobj=callobj;
		this.old_alt='';
		if(callobj.alt)
		{
			this.old_alt=callobj.alt;
		}
		if(ext)
			new ajax(this.ajp, {postBody:'data='+datset+ext,onComplete:function(transport){obj.isloaded(transport)}});
		else
			new ajax(this.ajp, {postBody:'data='+datset,onComplete:function(transport){obj.isloaded(transport)}});
	},

	get_id: function (callobj,ajp,ext)
	{
		if(callobj.id)
		{
			pos=callobj.id.indexOf("tt_");
			if(pos==0)
			{
				this.get(callobj.id.substring(pos+3),callobj,ajp,ext);
			}
		}
	},

	init_class: function (clname,ajp)
	{
		var obj = this;
		if(!this.el)
		{
			this.init(ajp);
		}
		ww_set_click(clname,function()
		{
			obj.get_id(this);
		},'pointer');
	},

	isloaded: function (transport)
	{
		var a=transport.responseText.indexOf("<---->");
		var obj=this;
		var of_left=-10;
		var of_top=-10;
		if(a!=-1)
		{
			eval("obj.evo=eval('(' + transport.responseText.substring(0,a) + ')')");
			setInnerHTML('t00ltip',transport.responseText.substring(a+6));
		}
		else
		{
			setInnerHTML('t00ltip',transport.responseText);
		}
		if(this.evo.left) of_left=this.evo.left;
		if(this.evo.top) of_top=this.evo.top;
		this.el.style.display='';
		setTop(this.el,findPosY(this.callobj)+of_top);
		setLeft(this.el,findPosX(this.callobj)+of_left);
		this.dx=findPosX(this.callobj)+of_left,
		this.dy=findPosY(this.callobj)+of_top,
		this.dx1=this.dx+getWidth('t00ltip');
		this.dy1=this.dy+getHeight('t00ltip');
		this.isActive=true;
		this.el.style.visibility = "visible";
		if(this.usemouse==true) addEvent(document,'mousemove',function(ev) { obj.mousetracker(ev)});
	},

	hide: function ()
	{
		if(this.isActive==true)
		{
			if(this.usemouse==true) removeEvent(document,'mousemove',this.evmoli);
		}
		this.isActive=false;
		if(this.old_alt)
		{
			this.callobj.alt=this.old_alt;
		}
		this.el.style.display = "none";
		this.el.style.visibility = "hidden";
		this.evo='';
		if(this.onClose) this.onClose();
	},

	pagepos: function()
	{
		if(window.pageXOffset)
		{
			this.px=window.pageXOffset;
			this.py=window.pageYOffset;
		}
		else if (document.documentElement)
		{
			this.px=(document.body.scrollLeft + document.documentElement.scrollLeft);
			this.py=(document.body.scrollTop + document.documentElement.scrollTop);
		}
		else if (document.body.scrollLeft >= 0)
		{
			this.px=document.body.scrollLeft;
			this.py=document.body.scrollTop;
		}
	},

	mousetracker: function(ev)
	{
		if (!ev)
		{
			ev = window.event;
		}
		this.mx = ev.clientX;
		this.my = ev.clientY;
		if(this.isActive)
		{
			this.pagepos();
			this.mpx = this.mx+this.px;
			this.mpy = this.my+this.py;
			if(arguments.callee) this.evmoli=arguments.callee;
			if(this.mpx<this.dx || this.mpx>this.dx1 || this.mpy<this.dy || this.mpy>this.dy1)
			{
				this.hide();
			}
			return false;
		}
	}

}

var PlugIn_div_temp = null;
var PlugIn =
{
	el: '',
	ajp:'',
	ins_obj: null,
	move_obj: null,
	moving: false,
	Timer: '',
	opTime: 0,
	duration: 400,
	onOnComplete: '',
	onOffComplete: '',
	onFlushComplete: '',
	evo: '',

	// init
	init: function (div,ajp)
	{
		if(div) this.ins_obj=$(div);
		if(ajp) this.ajp=ajp;
		if(!this.el)
		{
			var divElm = document.createElement('DIV');
			divElm.id = "P1UgIn";
			divElm.style.position = "absolute";
			divElm.style.top = "0px";
			divElm.style.left = "0px";
			divElm.style.display = "none";
			document.getElementsByTagName("body").item(0).appendChild(divElm);
			this.el=divElm;
		}
	},

	get: function (div,datset,ajp,ext)
	{
		if(!this.moving)
		{
			this.moving=true;
			var obj=this;
			if(this.move_obj)
			{
				if($(div).id==this.move_obj.id)
				{
					this.move_obj.onComplete=function()
					{
						obj.move_obj.onComplete=null;
						obj.move_obj.stNow=0;
						obj.move_obj=null;
						obj.moving=false;
						if(obj.onOffComplete)
						{
							obj.offOnComplete();
						}
					};
					ww_set_close(this.move_obj);
				}
				else
				{
					this.move_obj.onComplete=function()
					{
						obj.move_obj.onComplete=null;
						obj.get_checked(div,datset,ajp,ext);
						if(obj.onOffComplete)
						{
							obj.offOnComplete();
						}
					};
					ww_set_close(this.move_obj);
				}
			}
			else
			{
				obj.get_checked(div,datset,ajp,ext);
			}
		}
	},

	get_checked: function (div,datset,ajp,ext)
	{
		if (PlugIn_div_temp != null){
      $(PlugIn_div_temp).innerHTML = '';
    }
    PlugIn_div_temp = div;
		var obj=this;
		this.init(div,ajp);
		if(ext)
		{
			new ajax(this.ajp, {postBody:'data='+datset+ext,onComplete:function(transport){obj.isloaded(transport)}});
		}
		else
		{
			new ajax(this.ajp, {postBody:'data='+datset,onComplete:function(transport){obj.isloaded(transport)}});
		}
	},

	get_id: function (div,callobj,ajp,ext)
	{
		if(callobj.id)
		{
			pos=callobj.id.indexOf("pi_");
			if(pos==0)
			{
				this.get(div,callobj.id.substring(pos+3),ajp,ext);
			}
		}
	},

	isloaded: function (transport)
	{
		var a=transport.responseText.indexOf("<---->");
		var obj=this;
		
		this.el.style.visibility='hidden';
		this.el.style.display='';
		setWidth(this.el,getWidth(this.ins_obj));
		if(a!=-1)
		{
			eval("obj.evo=eval('(' + transport.responseText.substring(0,a) + ')')");
			setInnerHTML(this.el,transport.responseText.substring(a+6));
		}
		else
		{
			setInnerHTML(this.el,transport.responseText);
		}

		if(this.ins_obj.stNow==undefined)
		{
			this.move_obj=wwInit_element(this.ins_obj,{});
		}
		else
		{
			this.move_obj=this.ins_obj;
		}
		this.move_obj.stNow=0;
		this.move_obj.stHeight=getHeight(this.el);
		setHeight(this.move_obj,0),
		hide(this.move_obj);
		setInnerHTML(this.ins_obj,this.el.innerHTML);
		setHeight(this.move_obj,0),
		ww_set_height(obj.move_obj,getHeight(this.el));
		this.move_obj.onComplete=obj.move_end();
	},

	move_end: function()
	{
		this.move_obj.onComplete=null;
		this.moving=false;
		if(this.onOnComplete)
		{
			this.onOnComplete();
		}
	},

	flush: function(div,color)
	{
		var obj=this;
		var div_obj=$(div);
		this.init();
		this.el.style.visibility='hidden';
		this.el.style.display='';
		setInnerHTML(this.el,'<div style="width:'+getWidth(div_obj)+'px;height:'+getHeight(div_obj)+'px;background-color:'+color+'"></div>');
		setTop(this.el,findPosY(div_obj));
		setLeft(this.el,findPosX(div_obj));
		this.el.style.visibility='visible';
		this.el.style.zindex='1000';
		this.opTime=(new Date).getTime();
		this.Timer = setInterval (function(){obj.flush_time();}, 10);
	},

	flush_time: function()
	{
		if(this.Timer)
		{
			var time  = (new Date).getTime();
			if(time>=this.opTime+this.duration)
			{
				clearInterval(this.Timer);
				this.Timer=null;
				this.el.style.visibility='hidden';
				setTop(this.el,0);
				setLeft(this.el,0);
				if(this.onFlushComplete)
				{
					this.onFlushComplete();
				}
			}
			else
			{
				ww_set_opacity(this.el,1-(time - this.opTime) / (this.duration));
			}
		}
	},

	hide: function ()
	{
		if(this.move_obj)
		{
			var obj=this;
			
			obj.move_obj.onComplete=function()
			{
				obj.move_obj.onComplete=null;
				if(obj.onOffComplete)
				{
					obj.onOffComplete();
				}
				obj.moving=false;
				obj.move_obj=null;
			};
			this.moving=true;
			ww_set_close(this.move_obj);
		}
	}
}

function EvalSound(soundobj)
{
	var thissound= eval("document."+soundobj);
	thissound.Play();
}

var return_login;
function getlogin()
{
	if(return_login._MO_LOGIN_STATUS=='_ET_LO_BUG')
	{
		PlugIn.onFlushComplete=function(){location.href=PPATH+'user_bug.html';};
		PlugIn.flush('li_flush','#b73a18');
		return;
	}
	else if(return_login._MO_LOGIN_STATUS=='_ET_LO_OK')
	{
		PlugIn.onFlushComplete=function(){location.href=PPATH+'controlcenter-member.html';};
		PlugIn.flush('li_flush','#23982b');

		return;
	}
	setInnerHTML('loginerr',return_login._MO_LOGIN_ETXT);
	PlugIn.flush('li_flush','#b73a18')
//	EvalSound('faultsound');
}
function testlogin(obj)
{
	var name=URLEncode(document.getElementsByName("i_form[login]")[0].value);
	var pw=URLEncode(document.getElementsByName("i_form[pwd]")[0].value);
	new ajax(PPATH+'ajax/login.html', {postBody:'NAME='+name+'&PW='+pw+'&STLO=0',onComplete:function(){},evalObj:'return_login'});
}
/*
function testlogin(obj)
{
	return;
	//var stlo=obj.STLO.checked;
	var stlo=false;
	if(stlo==true)
	{
		stlo=1;
	}
	else
	{
		stlo=0;
	}
	//var name=URLEncode(obj.NAME.value);
	//var pw=URLEncode(obj.PW.value);
	var name=URLEncode(document.getElementsByName("i_form[login]")[0].value);
	var pw=URLEncode(document.getElementsByName("i_form[pwd]")[0].value);
	new ajax(PPATH+'ajax/login.html', {postBody:'NAME='+name+'&PW='+pw+'&STLO='+stlo,onComplete:getlogin,evalObj:'return_login'});
}
*/
function BilderVorladen()
{
    document.Vorladen = new Array();
    if(document.images)
    {
        for(var i = 0; i < BilderVorladen.arguments.length; i++)
        {
            document.Vorladen[i] = new Image();
            document.Vorladen[i].src = BilderVorladen.arguments[i];
        }
    }
}

addLoadEvent(function()
{
	BilderVorladen('grafiken/icons/icon_blogs_ro.gif',
	'grafiken/icons/icon_bookmarks_ro.gif',
	'grafiken/icons/icon_chat_ro.gif',
	'grafiken/icons/icon_classifieds_ro.gif',
	'grafiken/icons/icon_controlcenter_ro.gif',
	'grafiken/icons/icon_default_ro.gif',
	'grafiken/icons/icon_forums_ro.gif',
	'grafiken/icons/icon_groups_ro.gif',
	'grafiken/icons/icon_help_ro.gif',
	'grafiken/icons/icon_news_ro.gif',
	'grafiken/icons/icon_people_ro.gif',
	'grafiken/icons/icon_photos_ro.gif',
	'grafiken/icons/icon_schedule_ro.gif',
	'grafiken/icons/icon_search_ro.gif',
	'grafiken/icons/icon_bookmarks_ro.gif',
	'grafiken/icons/icon_video_ro.gif',
	'grafiken/user/user_chat_ro.gif',
	'grafiken/user/user_view-id-card_ro.gif',
	'grafiken/user/user_send-msg_ro.gif',
	'grafiken/mini-user/mini-user_chat_ro.gif',
	'grafiken/mini-user/mini-user_view-id-card_ro.gif',
	'grafiken/mini-user/mini-user_send-msg_ro.gif'
	);
});

//declaring the class
var ww_sslider = Class.create();
//defining the rest of the class implmentation
ww_sslider.prototype = {

	sl_gap: 0,
	sl_div_obj: '',
	sl_pos: 0,
	sl_x: 0,
	sl_to_track: false,

	sl_div: '',
	sl_left: 0,
	sl_max: 2000,
	sl_width: 10,
	sl_minv: 0,
	sl_maxv: 100,
	sl_akt: 30,
	sl_release: '',
	sl_move: '',
	sl_form: '',
	sl_hover: '',

	initialize: function(options)
	{
		if(options.sl_div!='undefined') this.sl_div=options.sl_div;
		if(options.sl_left!='undefined') this.sl_left=options.sl_left;
		if(options.sl_max!='undefined') this.sl_max=options.sl_max;
		if(options.sl_width!='undefined') this.sl_width=options.sl_width;
		if(options.sl_minv!='undefined') this.sl_minv=options.sl_minv;
		if(options.sl_maxv!='undefined') this.sl_maxv=options.sl_maxv;
		if(options.sl_akt!='undefined') this.sl_akt=options.sl_akt;
		if(options.sl_release!='undefined') this.sl_release=options.sl_release;
		if(options.sl_move!='undefined') this.sl_move=options.sl_move;
		if(options.sl_form!='undefined') this.sl_form=options.sl_form;
		this.sl_div_obj=$(this.sl_div);
		var obj=this;
		if (this.sl_div_obj.addEventListener) {
			this.sl_div_obj.addEventListener('mousedown', function() {obj.track()}, false);
			this.sl_div_obj.addEventListener('mouseup', function() {obj.track_stop()}, false);
		} else {
			this.sl_div_obj.onmousedown = function() {obj.track()};
			this.sl_div_obj.onmouseup = function() {obj.track_stop()};
		}
		if (window.addEventListener)
		{
			document.addEventListener('mousemove', function(ev) { obj.mousetracker(ev)}, false);
		}
		else if (window.attachEvent)
		{
			document.attachEvent('onmousemove', function(ev) { obj.mousetracker(ev)});
		}
		else
		{
			document.onmousemove = function(ev) { obj.mousetracker(ev)};
		}
		this.sl_pos=(this.sl_max-this.sl_width)/(this.sl_maxv-this.sl_minv)*(this.sl_akt-this.sl_minv);
		this.sl_div_obj.style.marginLeft = this.sl_pos+ "px";
	},

	track: function(ev)
	{
		var obj=this;
		if(this.sl_hover) this.sl_hover();
		if (document.addEventListener)
		{
	                document.addEventListener('mouseup', function() {obj.track_stop()}, false);
	        }
	        else
	        {
			document.onmouseup = function() {obj.track_stop()};
	        }
		this.sl_gap=parseInt(this.sl_pos);
		if (isNaN(this.sl_gap))
		{
			this.sl_gap = 0;
		}
		this.sl_gap -= this.sl_x;
		this.sl_to_track=true;
	},
	
	track_stop: function()
	{
		var obj=this;
		if (document.removeEventListener)
		{
			document.removeEventListener('mouseup', function() {obj.track_stop()}, false);
		}
		else
		{
			document.onmouseup = null;
		}
		if(this.sl_release) this.sl_release(this.sl_akt);
		this.sl_to_track=false;
	},
	
	mousetracker: function(ev)
	{
		if (!ev)
		{
			ev = window.event;
		}
		this.sl_x = ev.clientX;
		if(this.sl_to_track)
		{
			var old_pos = this.sl_pos;
			this.sl_pos= this.sl_gap + this.sl_x;
			if(this.sl_pos<0)
			{
				this.sl_pos=0;
			}
			if(this.sl_pos>=this.sl_max-this.sl_width)
			{
				this.sl_pos=this.sl_max-this.sl_width;
			}
			this.sl_div_obj.style.marginLeft = this.sl_pos+ "px";
			if(old_pos != this.sl_pos)
			{
				this.sl_akt=this.sl_minv+((this.sl_maxv-this.sl_minv)*this.sl_pos/(this.sl_max-this.sl_width));
				if(this.sl_move) this.sl_move(this.sl_akt);
				if(this.sl_form) this.sl_form.value=this.sl_akt;
			}
			if (ev && ev.preventDefault)
			{
				ev.preventDefault(); 
			}
			else if (window.event)
			{
				window.event.returnValue = false;
			}
		}
	}
};

function set_bof(v1,v2)
{
	new ajax(PPATH+'ajax/bof_add.html', {postBody:'XID='+v1+'&OTYP='+v2,onComplete:function(){location.href=location.href}});
}

function rm_bof(v1,v2)
{
	new ajax(PPATH+'ajax/bof_del.html', {postBody:'XID='+v1+'&OTYP='+v2,onComplete:function(){location.href=location.href}});
}

function add_sign(v1,v2,v3)
{
	new ajax(PPATH+'ajax/sign_add.html', {postBody:'XID='+v1+'&OTYP='+v2+'&ARTTYP='+v3,onComplete:function(){location.href=location.href}});
}

function del_sign(v1,v2,v3)
{
	new ajax(PPATH+'ajax/sign_del.html', {postBody:'XID='+v1+'&OTYP='+v2+'&ARTTYP='+v3,onComplete:function(){location.href=location.href}});
}


function set_historyfix (name,value)
{
	var end = new Date();
	var enddate = end.getTime() + (60 * 1000);
	end.setTime(enddate);
	document.cookie = location.href+"|||"+name+"="+value+"; expires=" + end.toGMTString();
}
function get_historyfix ()
{
	return document.cookie;
}
function chk_historyfix (name)
{
	var vars = get_historyfix();
	var vars_arr = vars.split("; ");
	for (i=0; i<vars_arr.length; i++)
	{
		var vars_arr2 = vars_arr[i].split("|||");
		if (vars_arr2[0] == location.href)
		{
			var vars_arr3 = vars_arr2[1].split("=");
			if (vars_arr3[0] == name)
			{
				return vars_arr3[1];
				break;
			}
		}
	}
}

/**
* Handle Firebug calls when Firebug is not available (getfirebug.com)
*/
if (!window.console || !console.firebug)
{
	window.console = {};
	var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
	for (var i = 0; i < names.length; ++i) window.console[names[i]] = function() {};
}

function console_alert(txt)
{
	console.info(txt);
}

function escape_umlaute(text){
 umlaute = new Array("<FC>", "<F6>", "<E4>","<DC>","<D6>","<C4>","<DF>");
 umlaute_escape = new Array("&uuml;", "&ouml;", "&auml;","&Uuml;","&Ouml;","&Auml;","&szlig;");
 for (var i=0; i<umlaute.length; i++)
 {
        eval('text = text.replace(/'+umlaute[i]+'/g, \''+umlaute_escape[i]+'\')');
 }
 return text;
}

function encode_utf8(rohtext)
{
	// dient der Normalisierung des Zeilenumbruchs
	rohtext = rohtext.replace(/\r\n/g,"\n");
	var utftext = "";
	for(var n=0; n<rohtext.length; n++)
		{
		// ermitteln des Unicodes des  aktuellen Zeichens
		var c=rohtext.charCodeAt(n);
		// alle Zeichen von 0-127 => 1byte
		if (c<128)
			utftext += String.fromCharCode(c);
		// alle Zeichen von 127 bis 2047 => 2byte
		else if((c>127) && (c<2048)) {
			utftext += String.fromCharCode((c>>6)|192);
			utftext += String.fromCharCode((c&63)|128);}
		// alle Zeichen von 2048 bis 66536 => 3byte
		else {
			utftext += String.fromCharCode((c>>12)|224);
			utftext += String.fromCharCode(((c>>6)&63)|128);
			utftext += String.fromCharCode((c&63)|128);}
		}
	return utftext;
}

function decode_utf8(utftext)
{
	var plaintext = ""; var i=0; var c=c1=c2=0;
	// while-Schleife, weil einige Zeichen uebersprungen werden
	while(i<utftext.length)
		{
		c = utftext.charCodeAt(i);
		if (c<128) {
			plaintext += String.fromCharCode(c); i++;}
		else if((c>191) && (c<224)) {
			c2 = utftext.charCodeAt(i+1);
			plaintext += String.fromCharCode(((c&31)<<6) | (c2&63));
			i+=2;}
		else {
			c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2);
			plaintext += String.fromCharCode(((c&15)<<12) | ((c2&63)<<6) | (c3&63));
			i+=3;}
		}
	return plaintext;
}




