
var Radio538Menu = new Class({
	initialize:function( argElStart )
	{
		var i = 0;
		$$( argElStart )[0].getElements('li').each(function(node)
		{
			var elA = node.getElement('a');
			var elSubUl = node.getElement('ul');

			if( elSubUl )
			{
				var objPos = node.getPosition();
				
				var arrElSub = elSubUl.getElements('li');
							
				
				node.addEvent('mouseenter',function(){
					this.open();
				});
				
				node.addEvent('mouseleave',function(){
					this.close();
				});
				
				arrElSub.setStyle('float','none');
				node.elSubUl = elSubUl;
				var elWrapper = $('headerWrapper');
				var objWrapperSize = elWrapper.getSize();
				
				node.open = function(){
					this.elSubUl.setStyle('display','block');
					var aftrek = ( this.elSubUl.getPosition( elWrapper ).x + this.elSubUl.getSize().x ) - objWrapperSize.x;
					if( aftrek > 0 )
					{
						this.elSubUl.setStyle('left',this.elSubUl.getPosition( elWrapper ).x - aftrek + 'px');
					}
				}
				
				node.close = function(){
					this.elSubUl.setStyle('display','none');
				}
				
				node.close();
				
				if( arrElSub.length > 0 )
				{
					arrElSub.addEvent('mouseover',function(){
						//this.setStyle('background-color','#FFFFFF');
					});
				}
			}
		}.bind(this));
	}
});

var Radio538Slider = new Class({
	initialize:function( argEl, argElButton )
	{
		var elButton = $(argElButton);
		elButton.elSlide = $(argEl);
		elButton.myFx = new Fx.Tween( elButton.elSlide, { duration:400, transition:Fx.Transitions.Quad.easeInOut } );
		
		elButton.addEvent('click',function(){
			if( this.elSlide.getStyle('width').toInt() < 1 )
			{
				// this.elSlide.setStyle('width', '365px');
				this.myFx.set('width', '365px');
				this.addClass('arrow-right');
			}
			else
			{
				//this.elSlide.setStyle('width', '0px');
				this.myFx.set('width', '0px');
				this.removeClass('arrow-right');
			}
		});
	}
});

var Radio538VerticalItemScroller = new Class({
	
	elUp:false,
	elDown:false,
	elList:false,
	mousedown:false,
	pageHeight:0,
	elHolderHeight:0,
	scrollHeight:0,
	scrollWidth:0,
	nrOfPages:1,
	intHeight:0,
	intItemHeight:false,
	intItems:0,
	intCurrentPage:1,
	intPreviousPage:0,
	intBeginPage:1,
	intEndPage:4,
	blnlok:false,
	prevObj:null,
	
	initialize:function( argElUp, argElDown, argElHolder, argElPaging )
	{			
		this.elHolder = $(argElHolder);
		this.elHolderDiv = this.elHolder.getElement('ul');
		this.elUlLi = this.elHolder.getElements('li');
		this.elHolderHeight = this.elHolder.getSize().y;
		this.scrollHeight = this.elHolderDiv.getStyle('margin-top').toInt() + this.elHolderHeight;
		this.Fx = new Fx.Tween(this.elHolderDiv,{
			onComplete:function(){
				this.blnlok = false;
			}.bind(this)
		});
		
		this.elUlLi.each(function(obj){
			objDim = obj.getSize();
			var tempPages  = 0;
			var tempHeight = 0;
						
			if ( !this.intItemHeight ) this.intItemHeight = objDim.y;
									
			if (this.elHolderHeight > 0) {
				tempPages  = Math.floor(objDim.y / this.elHolderHeight);
				tempHeight = objDim.y % this.elHolderHeight;
				
				if (!this.prevObj) {
					this.pageHeight = tempHeight;
					this.nrOfPages += tempPages;
				} else {
					if ((this.pageHeight + objDim.y) > this.elHolderHeight) {
						var newHeight = this.prevObj.getSize().y + (this.elHolderHeight - this.pageHeight);
						var padding = this.prevObj.getStyle('padding-top').toInt() +
										  this.prevObj.getStyle('padding-bottom').toInt() +
										  this.prevObj.getStyle('border-bottom-width').toInt();
						var margin  = this.prevObj.getStyle('margin-top').toInt();
						newHeight = newHeight - (padding + margin);
						this.prevObj.setStyle('height', newHeight + 'px');
						
						this.pageHeight = tempHeight;
						this.nrOfPages += 1 + tempPages;
					} else {
						this.pageHeight += objDim.y;						
					}
				}				
				this.prevObj = obj;
			}	
			
			this.intHeight += objDim.y; 
			this.intItems++;			
		}.bind(this));
		
		this.intCurrentItem = this.intItems;
		this.elHolderDiv.setStyle('height', this.intHeight + 'px');
		
		if (argElDown) {
			this.elDown = $(argElDown);
			this.elDown.setStyle('cursor','pointer');
			this.elDown._parent = this;
			this.elDown.addEvent('mousedown',function(){
				this._parent.nextPage();
				this._parent.displayPaging();
			});
		}
		
		if (argElUp) {
			this.elUp = $(argElUp);
			this.elUp.setStyle('cursor','pointer');
			this.elUp._parent = this;
			this.elUp.addEvent('mousedown',function(){
				this._parent.prevPage();
				this._parent.displayPaging();
			});
		}
		
		if (argElPaging) {
			this.elPaging = $(argElPaging);
			//this.elPaging = this.elPagingDiv.getElement('ul');
			this.displayPaging();			
		}
	},

	gotoPage:function(e, pageNr) {
		var page = pageNr;
		
		if ( page < 1 || page > this.nrOfPages ) {
			page = 1;
		}		
		
		if( !this.blnlok ) {
			var intMarginTop = this.elHolderDiv.getStyle('margin-top').toInt();
			this.Fx.start('margin-top', intMarginTop , -1 * ((page - 1) * this.scrollHeight));
			this.blnlok = true;
			this.intPreviousPage = this.intCurrentPage;
			this.intCurrentPage = page;
		} 
		
		this.displayPaging();
	},
	
	displayPaging:function() {
		if (this.intCurrentPage > this.intPreviousPage) {
			if (this.intCurrentPage >= this.intEndPage) {
				this.intEndPage = this.intCurrentPage + 1;				
				this.intBeginPage = this.intEndPage - 3;				
			} 	
		} else {
			if (this.intCurrentPage <= this.intBeginPage) {
				this.intBeginPage = this.intCurrentPage - 1;				
				this.intEndPage = this.intBeginPage + 3;				
			} 		
		}		
		
		if (this.intEndPage >= this.nrOfPages) {
			this.intEndPage = this.nrOfPages;
		}
		
		if (this.intBeginPage < 1) {
			this.intBeginPage = 1;
		}
				
		this.elPaging.innerHTML = "";
		if (this.nrOfPages > 1) {
			for (var i = this.intBeginPage; i <= this.intEndPage; i++) {
				var newLink = this.elPaging.appendChild(document.createElement('li'));
				if (i == this.intCurrentPage) {
					newLink.innerHTML = '<div class=\"current\">' + i + '</div>';
				} else {
					newLink.innerHTML = '<div>' + i + '<\div>';
				}
				var elNewLink = $(newLink);
				elNewLink.setStyle('cursor','pointer');
				if (this.scrollWidth <= 0) {
					this.scrollWidth = elNewLink.getStyle('width').toInt();
				}
				elNewLink._parent = this;
				elNewLink.addEvent('click', this.gotoPage.bindWithEvent(elNewLink._parent, i));
			}
			
			this.elPaging.setStyle('display', 'block');
			
			if (this.intCurrentPage > 1) {
				this.elUp.setStyle('display', 'block');
			} else {
				this.elUp.setStyle('display', 'none');
			}
			
			if (this.intCurrentPage < this.nrOfPages) {
				this.elDown.setStyle('display', 'block');
			} else {
				this.elDown.setStyle('display', 'none');
			}
		}			
	},
	
	nextPage:function(){
		if( !this.blnlok && this.intCurrentPage  < this.nrOfPages ) {
			var intMarginTop = this.elHolderDiv.getStyle('margin-top').toInt();
			this.Fx.start('margin-top', intMarginTop , intMarginTop - this.scrollHeight);
			this.blnlok = true;
			this.intPreviousPage = this.intCurrentPage;
			this.intCurrentPage++;
		}		
	},
	
	prevPage:function(){
		if( !this.blnlok && this.intCurrentPage > 1 )	{
			var intMarginTop = this.elHolderDiv.getStyle('margin-top').toInt();
			this.Fx.start('margin-top', intMarginTop , intMarginTop + this.scrollHeight);//this.intItemHeight);
			this.intPreviousPage = this.intCurrentPage;
			this.intCurrentPage--;
			this.blnlok = true;			
		}
	}
});

var Radio538HorizontalItemScroller = new Class({
	
	elLeft:false,
	elRight:false,
	elList:false,
	
	intWidth:0,
	intItemWidth:false,
	intItems:0,
	intCurrentItem:0,
	blnlok:false,
	
	initialize:function( argElLeft, argElRight, argElHolder )
	{	
		this.elLeft = $(argElLeft);
		this.elLeft.setStyle('cursor','pointer');
		
		this.elRight = $(argElRight);
		this.elRight.setStyle('cursor','pointer');

		this.elHolder = $(argElHolder);
		this.elHolderDiv = this.elHolder.getElement('ul');
		this.elUlLi = this.elHolder.getElements('li');
		
		this.Fx = new Fx.Tween(this.elHolderDiv,{
			onComplete:function(){
				this.blnlok = false;
			}.bind(this)
		});
		
		this.elUlLi.getSize().each(function(obj){
			if( !this.intItemWidth ) this.intItemWidth = obj.x;
			this.intItems++;
			this.intWidth = this.intWidth + obj.x;
		}.bind(this));
		this.intCurrentItem = this.intItems;
		
		this.elHolderDiv.setStyle('width', this.intWidth + 'px');
		
		this.elRight._parent = this;
		this.elRight.addEvent('click',function(){
			this._parent.prevItem();
		});
		
		this.elLeft._parent = this;
		this.elLeft.addEvent('click',function(){
			this._parent.nextItem();
		});
	},
	

	nextItem:function(){
		if( !this.blnlok && this.intCurrentItem  < this.intItems )
		{
			var intMarginLift = this.elHolderDiv.getStyle('margin-left').toInt();
			this.Fx.start('margin-left', intMarginLift , intMarginLift + this.intItemWidth);
			this.blnlok = true;
			this.intCurrentItem++;
		}
	},
	
	prevItem:function(){
		if( !this.blnlok && ( this.intCurrentItem - 4 ) > 0 )
		{
			var intMarginLift = this.elHolderDiv.getStyle('margin-left').toInt();
			this.Fx.start( 'margin-left',intMarginLift , intMarginLift - this.intItemWidth);
			this.intCurrentItem--;
			this.blnlok = true;			
		}
	}
});


function objectHttpRequest(reqUrl, id, preloadId) {
	try {		
		var req = new Request.HTML({
			url: reqUrl, 
			onSuccess: function(html) {
				if (preloadId != null) {
					$(preloadId).setStyle('display', 'none');
				}				
				$(id).set('text', '');
				$(id).adopt(html);
				$(id).setStyle('display', 'block');						
			}			
		}).send();
	} catch(err){}
}