SubmenuSlider={

/**
 * init
 *
 **********
 *
 * Initialiserer submenuen og klargører scrolling.
 */
init:function(){
	// Indlæs en reference til submenuen
	this.menu=document.getElementById('submenu_wrapper').getElementsByTagName('ul')[0];
	this.slider=document.getElementById('submenu_slider').getElementsByTagName('div')[0];

	// Håndter indlæsning af billederne
	this.imgs=document.getElementById('submenu').getElementsByTagName('img');
	this.loaded=0;

	// Gennemgå alle billederne og håndter preloading
	var i=this.imgs.length; var j=i;
	if(i>0)do{
		// Kør load, når billedet er indlæst
		var img=this.imgs[j-i];

		if(img.complete) this.load();
		else{
			img.onerror=function(){SubmenuSlider.load();};
			img.onload=function(){SubmenuSlider.load();};
		}
	}while(--i);
},

/**
 * load
 *
 **********
 *
 * Køres når et billede er indlæst, og sørger for at aktivere submenuen, når alle billeder er indlæst.
 */
load:function(){
	// Opdater antal indlæste billeder
	this.loaded++;
	if(this.loaded<this.imgs.length) return;

	// Indlæs info om størrelsen af submenuen
	this.width=this.menu.offsetWidth-910;
	if(this.width<=0) return;

	// Vis slideren
	document.getElementById('submenu').style.height='170px';
	document.getElementById('submenu_slider').style.display='block';

	// Klargør scrolling - IE
	if(document.attachEvent){
		// Drag'n'drop
		this.slider.attachEvent('onmousedown',function(e){SubmenuSlider.down(e);});

		// Højre/venstre-pilen
		document.getElementById('submenu_left').attachEvent('onmousedown',function(e){SubmenuSlider.startSlide(-2,e);});
		document.getElementById('submenu_right').attachEvent('onmousedown',function(e){SubmenuSlider.startSlide(2,e);});
		document.attachEvent('onmouseup',function(){SubmenuSlider.endSlide();});

	// Firefox, Safari mv.
	}else{
		// Drag'n'drop
		this.slider.addEventListener('mousedown',function(e){SubmenuSlider.down(e);},false);

		// Højre/venstre-pilen
		document.getElementById('submenu_left').addEventListener('mousedown',function(e){SubmenuSlider.startSlide(-2,e);},false);
		document.getElementById('submenu_right').addEventListener('mousedown',function(e){SubmenuSlider.startSlide(2,e);},false);
		document.addEventListener('mouseup',function(){SubmenuSlider.endSlide();},false);
	}
},

/**
 * down
 *
 **********
 *
 * Klargører scrolling, når brugeren trykker på slideren.
 *
 **********
 *
 * Parametre:
 * e (event)							Indeholder informationer om brugerens input.
 */
down:function(e){
	// Indlæs informationer om brugerens input
	var e=e||window.event;
	this.x=(e.clientX||e.pageX)-this.slider.offsetLeft;

	// Klargør mousemove-eventet, så scrolling håndteres - IE
	if(document.attachEvent){
		document.attachEvent('onmousemove',SubmenuSlider.move);
		document.attachEvent('onmouseup',SubmenuSlider.up);

	// Firefox, Safari mv.
	}else{
		document.addEventListener('mousemove',SubmenuSlider.move,false);
		document.addEventListener('mouseup',SubmenuSlider.up,false);
	}

	// Afslut funktionen
	this.cancelEvent(e);
},

/**
 * up
 *
 **********
 *
 * Afslutter scrolling, når brugeren slipper slideren.
 *
 **********
 *
 * Parametre:
 * e (event)							Indeholder informationer om brugerens input.
 */
up:function(e){SubmenuSlider.up2(e);},
up2:function(e){
	// Afslut mousemove-eventet - IE
	if(document.attachEvent){
		document.detachEvent('onmousemove',SubmenuSlider.move);
		document.detachEvent('onmouseup',SubmenuSlider.up);

	// Firefox, Safari mv.
	}else{
		document.removeEventListener('mousemove',SubmenuSlider.move,false);
		document.removeEventListener('mouseup',SubmenuSlider.up,false);
	}

	// Afslut funktionen
	this.cancelEvent(e);
},

/**
 * move
 *
 **********
 *
 * Håndterer scrolling af submenuen, når brugeren trækker slideren.
 *
 **********
 *
 * Parametre:
 * e (event)							Indeholder informationer om brugerens input.
 */
move:function(e){SubmenuSlider.move2(e);},
move2:function(e){
	// Indlæs informationer om brugerens input
	var x=e.clientX||e.pageX;

	// Udregn scroll
	var pos=Math.max(2,Math.min(768,x-this.x));
	var pos2=30-Math.round(this.width/766*(pos-2));

	this.slider.style.left=pos+'px';
	this.menu.style.left=pos2+'px';

	// Afslut funktionen
	this.cancelEvent(e);
},

/**
 * startSlide
 *
 **********
 *
 * Begynder at slide, når brugeren trykker på højre/venstre-pilen.
 *
 **********
 *
 * Parametre:
 * speed (integer)						Angiv hastigheden, der skal scrolles med.
 * e (event)							Indeholder informationer om brugerens input.
 */
startSlide:function(speed,e){
	// Start sliding
	this.timer_speed=speed;
	this.timer=setInterval(function(){SubmenuSlider.slide();},15);

	// Afslut funktionen
	this.cancelEvent(e);
},

/**
 * slide
 *
 **********
 *
 * Slider submenuen, når brugeren holder højre/venstre-pilen nede.
 */
slide:function(){
	// Udregn scroll
	var pos=Math.max(2,Math.min(768,this.slider.offsetLeft+this.timer_speed));
	var pos2=30-Math.round(this.width/766*(pos-2));

	// Slide
	this.slider.style.left=pos+'px';
	this.menu.style.left=pos2+'px';
},

/**
 * endSlide
 *
 **********
 *
 * Afbryder slideren igen, når brugeren slipper højre/venstre-pilen.
 */
endSlide:function(){
	// Afslut sliding
	clearInterval(this.timer);
},

/**
 * cancelEvent
 *
 **********
 *
 * Afbryder et event, så browseren ikke visuelt reagerer på dette. (Blokerer markering af submenuen.)
 *
 **********
 *
 * Parametre:
 * e (event)							Indeholder informationer om brugerens input.
 */
cancelEvent:function(e){
	// Afbryd eventet i alle tænkelige browsere
	if(e.preventDefault) e.preventDefault();
	if(e.stopPropagation) e.stopPropagation();
	if(e.stop) e.stop();
	if(document.all&&e.keyCode) try{e.keyCode=0;}catch(e){}
	e.cancelBubble=true;
	e.returnValue=false;
}

}

// Klargør submenuen
SubmenuSlider.init();