function DocGroupSlideMenu() {
    var setpWidth;
    var imageWidth;
    var timerInterval;
    var id;
    var mainDiv;
    var listElements;
    var listCount;
    var offsetWidth;
    var gw;
    var ot;
    var currentElementIndex = 0;
    var mouseOut = false;
    var currentTitle;

    this.build = function(newImageWidth, newTimerInterval, newStepWidth, newId, firstTitle, objectname){
        this.stepWidth = newStepWidth;
        this.imageWidth = newImageWidth;
        this.timerInterval = newTimerInterval;
        this.id = newId;
        this.mainDiv = document.getElementById('imageMenu' + this.id);
        if (this.mainDiv == null) {
            return;
        }
        this.listElements = this.mainDiv.getElementsByTagName('li');
        this.listCount = this.listElements.length;
        this.offsetWidth = this.mainDiv.offsetWidth;
        this.gw = this.offsetWidth / this.listCount;
        this.ot = Math.floor((this.offsetWidth - this.imageWidth) / (this.listCount - 1));
        for (var i = 0; i < this.listCount; i++){
            this.listElements[i].style.width = this.gw + 'px';
        }
        this.currentElementIndex = 0;
        this.mouseOut = false;
        this.currentTitle = firstTitle;
        this.mainDiv.timer = setInterval(objectname+".slide()", this.timerInterval);
    };
    this.doOpenImage = function(id, title, objectname) {
        clearInterval(this.mainDiv.htimer);
        clearInterval(this.mainDiv.timer);
        this.currentElementIndex = id - 1;
        this.mouseOut = false;
        this.currentTitle = title;
        this.mainDiv.timer = setInterval(objectname+".slide()", this.timerInterval);
    };
    this.doCloseImage = function(id, objectname) {
        clearInterval(this.mainDiv.timer);
        clearInterval(this.mainDiv.htimer);
        this.currentElementIndex = id - 1;
        this.mouseOut = true;
        this.currentTitlte = "&nbsp;";
        this.mainDiv.htimer = setInterval(objectname+".slide()", this.timerInterval);
    };
    this.slide = function() {
        var elementIndex = this.currentElementIndex;
        var mouseOut = this.mouseOut;
        var currentTitle = this.currentTitle;
        this.doSlide(elementIndex, mouseOut, currentTitle);
    };
    this.doSlide = function(elementIndex, mouseOut, newTitle) {
        var listElement = this.listElements[elementIndex];
        var cw = parseInt(listElement.style.width);
        var a = listElement.childNodes[0];
        var img = a.childNodes[0];
        var title;
        if (typeof newTitle === 'undefined') {
            title = $j(img).attr('alt');
        }
        else {
            title = newTitle;
        }
        $j(img).attr('title', "");
        $j('#tt' + this.id).empty();
        if (!mouseOut) {
            $j('#tt' + this.id).append(title);
        } else {
            $j('#tt' + this.id).append('&nbsp');
        }
        if ((cw < this.imageWidth && !mouseOut) || (cw > this.gw && mouseOut)) {
            var owt = 0;
            for (var i = 0; i < this.listCount; i++){
                if (i != elementIndex){
                    var oi = 0;
                    var o = this.listElements[i];
                    var ow = parseInt(o.style.width);
                    if (ow < this.gw && mouseOut) {
                        oi = Math.floor((this.gw - ow) / this.stepWidth);
                        oi = (oi > 0) ? oi : 1;
                        o.style.width=(ow + oi) + 'px';
                    }
                    else if (ow > this.ot && !mouseOut){
                        oi = Math.floor((ow - this.ot) / this.stepWidth);
                        oi = (oi > 0) ? oi : 1;
                        o.style.width = (ow - oi) + 'px';
                    }
                    if (mouseOut) {
                        owt = owt + (ow + oi);
                    } else {
                        owt = owt + (ow - oi);
                    }
                }
            }
            listElement.style.width = (this.offsetWidth - owt - 3) + 'px';
        } else {
            clearInterval(this.mainDiv.timer);
            clearInterval(this.mainDiv.htimer);
        }
    };
};


var slideMenu=function(){
	var sp,st,t,m,sa,l,w,gw,ot;
	return{
		build:function(sm,sw,mt,s,sl,h){
			sp=s; st=sw; t=mt;
			m=document.getElementById(sm);
			if(m == null) { return; }
            $j(m).addClass('imageMenu');
			$j(m).before('<div id="teaserm" class="teaser"></div>');
			$j('#teaserm').append('<div id="ondemandm" class="mediathek"></div>');
			$j('#ondemandm').append('<h2 id="dachzeile"><span class="dachzeile">Neue Videos aus der Region</span></h2>');
			$j('#dachzeile').append(m);
            $j('#dachzeile').append('<div class="temp"></div>');
			$j('#dachzeile').append('<p class="tt1">&nbsp;</p>');
			var aelem = $j('#'+sm+' > ul > li > a');
			aelem.each(function () {
				$j(this).css('backgroundAttachment', 'scroll');
				$j(this).css('backgroundColor', 'white');
				$j(this).css('backgroundPosition', '0% 0%');
				$j(this).css('backgroundRepeat', 'no-repeat');
				var text = this.firstChild.data;
				this.innerHTML = "";
				var bildlink = $j(this).css('backgroundImage');
				var bildlink1 = bildlink.match(/http:.+[a-zA-Z0-9-_.=\/]/);
				$j(this).css('backgroundImage', "");
				$j(this).append('<img title="'+text+'" alt="'+text+'" src="'+bildlink1+'"/>');
			});
			sa=m.getElementsByTagName('li');
			l=sa.length; w=m.offsetWidth; gw=w/l;
			ot=Math.floor((w-st)/(l-1)); var i=0;
			for(i;i<l;i++){s=sa[i]; s.style.width=gw+'px'; this.timer(s)}
			if(sl!=null){m.timer=setInterval(function(){slideMenu.slide(sa[sl-1])},t)}
		},
		timer:function(s){
			s.onmouseover=function(){clearInterval(m.htimer);clearInterval(m.timer);m.timer=setInterval(function(){slideMenu.slide(s)},t)}
			s.onmouseout=function(){clearInterval(m.timer);clearInterval(m.htimer);m.htimer=setInterval(function(){slideMenu.slide(s,true)},t)}
		},
		slide:function(s,c){
			var cw=parseInt(s.style.width);
			var a = s.childNodes[0];
			var img = a.childNodes[0];
			var title = $j(img).attr('alt');
			$j(img).attr('title', "");
			$j('.tt1').empty();
			if(!c ) {
				$j('.tt1').append(title);
			} else {
				$j('.tt1').append('&nbsp');
				}
			if((cw<st && !c) || (cw>gw && c)){
				var owt=0; var i=0;
				for(i;i<l;i++){
					if(sa[i]!=s){
						var o,ow; var oi=0; o=sa[i]; ow=parseInt(o.style.width);
						if(ow<gw && c){oi=Math.floor((gw-ow)/sp); oi=(oi>0)?oi:1; o.style.width=(ow+oi)+'px';
						}else if(ow>ot && !c){oi=Math.floor((ow-ot)/sp); oi=(oi>0)?oi:1; o.style.width=(ow-oi)+'px'}
						if(c){owt=owt+(ow+oi)}else{owt=owt+(ow-oi)}}}
				s.style.width=(w-owt-1)+'px';
			}else{
				clearInterval(m.timer);clearInterval(m.htimer);
			}
		}
	};
}();

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

				addLoadEvent( function() { slideMenu.build('imageMenu1', 256, 50, 10, 1) } );
