function findPos(obj)
{
 var curleft = 0;
 var curtop = 0;
 if (obj.offsetParent)
 {
  while (obj.offsetParent)
  {
   curleft += obj.offsetLeft-obj.scrollLeft;
   curtop += obj.offsetTop-obj.scrollTop;
   var position='';
   if (obj.style&&obj.style.position) position=obj.style.position.toLowerCase();
   if ((position=='absolute')||(position=='relative')) break;
   while (obj.parentNode!=obj.offsetParent) {
    obj=obj.parentNode;
    curleft -= obj.scrollLeft;
    curtop -= obj.scrollTop;
   }
   obj = obj.offsetParent;
  }
 }
 else {
     if (obj.x)
      curleft += obj.x;
  if (obj.y)
      curtop += obj.y;
    }
 return {left:curleft,top:curtop};
}
function toggleOpenClose(el) {
	var classOpen = "bar-open";
	var classClose = "bar-close";
	if(el.className == classOpen) {
		el.className = classClose;
		get(el.id+'_moreless-img').innerHTML = '<img src="lib/more.gif" />';
		get(el.id+'_moreless-text').innerHTML = 'einblenden';
		return "close";
	}
	else if(el.className == classClose) {
		el.className = classOpen;
		get(el.id+'_moreless-img').innerHTML = '<img src="lib/less.gif" />';
		get(el.id+'_moreless-text').innerHTML = 'ausblenden';
		return "open";
	}
	return false;
}

function showLoader(div, pos) {
	var divobj = get(div);
	var origdiv = divobj;
	var position='';
   	if (divobj.style && divobj.style.position)
	   position=divobj.style.position.toLowerCase();
   	/*if ((position!='absolute')&&(position!='relative')) {
   		while (divobj.parentNode!=divobj.offsetParent) {
		    divobj=divobj.parentNode;
		}
   	}*/

	var bgpos = "50% 50%";
	if(pos == 'top') {
		bgpos = "50% 10%";
	}
	else if(pos == 'bottom') {
		bgpos = "50% 90%";
	}
	var loader = document.createElement("DIV");
	loader.id = div+"_loader";
	loader.className = "spin_div";
	loader.style.display="inline";
	loader.style.backgroundPosition = bgpos;
	/*loader.style.left = origdiv.offsetLeft+"px";
	loader.style.top = (divobj.offsetTop + origdiv.offsetTop) + "px";*/
	loader.style.width = origdiv.offsetWidth+"px";
	loader.style.height = origdiv.offsetHeight+"px";
	loader.style.position = "absolute";
	divobj.appendChild(loader);
	divobj.insertBefore(loader, divobj.firstChild);
}
function removeEl(rel) {
	if(rel != null) {
		rel.parentNode.removeChild(rel);
	}
}
function hideLoader(div){
	if(div != "") {
		removeEl(get(div+'_loader'));
	}
}
function getFormValues(fobj)
{
	var robj = new Object();
	for(var i = 0;i < fobj.elements.length;i++)
	{
		robj[fobj.elements[i].name] = fobj.elements[i].value;
	}
	return robj;
}

function openurl(url) {
	document.location = url;
}
function stopDefaultEvent(e) {
	if (e.preventDefault) e.preventDefault();
	else e.returnResult = false;
	if (e.stopPropagation) e.stopPropagation();
	else e.cancelBubble = true;
}
function get(objectid) {
	if(objectid != "") {
		if(typeof(document.getElementById(objectid)) != "undefined") {
			return document.getElementById(objectid);
		}
	}
	return false;
}
function form_submit(formName) {
	document.forms[formName].submit();
}
function clearContainer(id) {
	document.getElementById(id).innerHTML = "";
}

var slide;
function slidePagesEnd() {
	window.clearInterval(slide);
}
function slidePages(direction, elname) {
	window.clearInterval(slide);
	slide = window.setInterval("slidex('"+elname+"', 1, " + direction + ")", 25);
}
function slidex(elname, dist, direction) {
	movedist = 0;
	el = document.getElementById(elname);
	leftpos = parseInt(el.style.marginLeft.split("px")[0]);
	space = parseInt(el.parentNode.style.width.split("px")[0]);
	width = el.offsetWidth;
	if(direction == -1 && leftpos < 0)
		movedist = dist;
	if(direction == 1 && width + leftpos > space)
		movedist = 0-dist;
	//alert(leftpos + " " + movedist + " " + el.style.marginLeft + " " + direction + " " + width + " " + space);
	el.style.marginLeft = (leftpos + movedist) + "px";
}
function NrOfDecPlaces(val){
	var StrAfterPoint = (val % 1).toString().split(".");
	if(StrAfterPoint[1] != undefined) {
		return StrAfterPoint[1].length;
	}
	else {
		return 0;
	}
}
MySlider = function (params) {
	var _slider = this;
	var _form = ((params["form"] != undefined) ? params["form"] : false);
	var _maxfield = ((params["maxfield"] != undefined) ? params["maxfield"] : false);
	var _minfield = ((params["minfield"] != undefined) ? params["minfield"] : false);
	var _width = ((params["width"] != undefined) ? params["width"] : false);
	var _min = ((params["min"] != undefined) ? params["min"] : false);
	var _max = ((params["max"] != undefined) ? params["max"] : false);
	var _start = ((params["start"] != undefined) ? params["start"] : _min);
	var _end = ((params["end"] != undefined) ? params["end"] : _max+"+");
	var _container = ((params["container"] != undefined) ? params["container"] : false);
	var _intervall = ((params["intervall"] != undefined) ? params["intervall"] : false);
	var _created = false;

	var _szone;

	function create() {
		if(!_created) {
			_szone = new Ext.ux.SlideZone(_container, {
							type: 'horizontal',
							size: _width,
							sliderWidth: 18,
							sliderHeight: 21,
							allowSliderCrossing: false,
							sliderSnap: Math.round(_width * _intervall / (_max - _min)),
							maxValue: _max,
							minValue: _min
							});
			var slider_start = new Ext.ux.ThumbSlider({
						value: _start,
						name: 'start'
						});
			var slider_stop = new Ext.ux.ThumbSlider({
					value: parseFloat(_end),
					name: 'stop'
					});

			slider_start.on('drag',function() {
					showValues(["start"]);
					})
			slider_stop.on('drag',function() {
					showValues(["stop"]);
					})
			_szone.add(slider_start);
			_szone.add(slider_stop);

			addEvent(document.forms[_form].elements[_minfield],"change",function() {
				var newv = document.forms[_form].elements[_minfield].value;
				if(newv.length>0) {
					_slider.setSlider("start", parseFloat(newv));
				}
			});
			addEvent(document.forms[_form].elements[_maxfield],"change",function() {
				var newv = document.forms[_form].elements[_maxfield].value;
				if(newv.length>0) {
					_slider.setSlider("stop", parseFloat(newv));
				}
			});
			_created = true;
		}
	}
	function showValues(opt) {
		for(var i=0; i<opt.length; i++) {
			var value = _szone.getSlider(opt[i]).value;

			if((value % _intervall) < _intervall - (value % _intervall)) {
				value = value - (value % _intervall);
			}
			else {
				value = value - (value % _intervall) + _intervall;
			}
			if(opt[i] == "stop" && value == _max) {
				value = _max + "+";
			}
			var field;
			if(opt[i] == "start") {
				field = _minfield;
			}
			else if(opt[i] == "stop") {
				field = _maxfield;
			}
			document.forms[_form].elements[field].value = value;
		}
	}
	function setslider(slider, pos) {
		if(slider == "start") {
			if(pos < _szone.getSlider("stop").value) {
				_szone.getSlider("start").value = pos;
				_szone.initSliderPosition(_szone.getSlider("start"));
			}
		}
		if(slider == "stop") {
			if(pos > _szone.getSlider("start").value) {
				_szone.getSlider("stop").value = pos;
				_szone.initSliderPosition(_szone.getSlider("stop"));
			}
		}
	}

	this.setSlider = setslider;

	this.updateValues = function(){
		_szone.updateValues();
		showValues(["start", "stop"]);
	}

	this.Create = create;
}
function addEvent(object, type, listener) {
	/*if(typeof(object) != "undefined") {
		switch(type.toLowerCase()) {
			case "click":
				object.onclick = listener;
				break;
			default:
				break;
		}
	}*/
    if (object.addEventListener) {
        object.addEventListener(type, listener, false);
    }
    else if (object.attachEvent) {
        object.attachEvent('on' + type, listener);
    }
}
function removeEvent(object,type,listener) {
	/*if(typeof(object) != "undefined") {
		switch(type.toLowerCase()) {
			case "click":
				object.onclick = null;
				break;
			default:
				break;
		}
	}*/
	if (object.removeEventListener)
		object.removeEventListener(type,listener,false);
	else if (object.detachEvent)
		object.detachEvent('on'+type,listener);
}
