var ButtonWidth=50;
var ButtonHeigth=20;
var TheBalance=1000;
var TheVolume=100;
var PlayRate=1;
var Antal=1;
var TheArea;
var LeftPoint=650; //Dette er venstre for TheArea, den kan desværre ikke læses fra js.
var isMP=true;
var Paused=false;
//Main vars
var timerInterval=50;
var Taeller=0;
var CurTime=0;
var ie;
var started=false;
var APoint=0;
var BPoint
var FininA=true
var PlayAB=false;
var StartTid=0;
var SlutTid=0;
var SliderWidth
var TheTotTime;
var PresetA;
var PresetB;
var player
var app="x-oleobject";
var MoveTheMarker=true;
var CurrentFileType;
var TheFinZero;
var StartPlayMid=false;
var SlideTop;
var CurX;
var CurY;
var MoveOn=false;
var CounterCounting=true;
var FirstTime=true;
var OptagPrikOn=false;
var Prikker;
var DenneTid;
var NaesteTid;
var CurrentPrikIndex=0;
var VerseLength=0;
var SecondVerse=true;
var VerseNo=0;
var lan;
var TaellerObj;
var melodier;
var titler;
var opt='';
var LastPlayedValues='';
var LastPlayedTexts='';
var sidsteSoegValues='';
var sidsteSoegTexts='';
var FirstBalanceKlik=false;
var DontReactOnKeyb=false;
var RestartNext=false;
var NodeFoelger = new Array();
var Docu= new Array();
var hast=1;
var StartPlayAnother=true;
function init(mel,TheKey,prikker,melodier,opt,lang,titler,hast,A,B){
	if(Version!=''){
		//Checking mid version.
	  Mels=mel.split('.');
	  mel=Mels[0]+'_'+Version+'.'+Mels[1];
	}	
	lan=lang;
	if(melodier.indexOf(";")==0){
		//alert(melodier)
		//melodier=melodier.slice(1,melodier.length);
	}
	MakeNodeMove(prikker);	
	if(hast==''){
	hast=1;
	}


		
	if(!FirstTime){
		FirstTime=!FirstTime
		LukVindue();
		return false;	
	}
	FirstTime=!FirstTime	
	if(document.all){
		ie=true;
		isMP=true;
	}
	else {
		ie=false;
		isMP=true;
	}
	CounterCounting=true;
	document.onkeydown=keyDown;

	TheArea=document.getElementById("playarea");	
	TheArea.style.width=120;
	TheArea.style.height=360;
	LayPrik.style.left =0;
	LayPrik.style.top =0;
	//LayPrik.style.visibility='hidden';
	TheArea.style.left=LeftPoint;
	TheArea.style.top=0;	
	TheArea.style.visibility='visible';
	/*TheInnerHTML='';
	SliderWidth=250;
	TheInnerHTML+=MakeMainSlider(40,15,8,SliderWidth,0,'&nbsp;');
	SlideTop=120;
	TheInnerHTML+=MakeSlider(SlideTop,15,8,SliderWidth,'LayFinIndstilling',50,'Finindstilling&nbsp;&nbsp;&nbsp; A (s)',0);
	SlideTop+=15;
	
	TheInnerHTML+=MakeSlider(SlideTop,15,8,SliderWidth,'LaySpeed',50,'Hastighed',hast);
	SlideTop+=15;
	TheInnerHTML+=MakeSlider(SlideTop,15,8,SliderWidth,'LayBalance',50,'Balance',0);
	SlideTop+=15;
	TheInnerHTML+=MakeSlider(SlideTop,15,8,SliderWidth,'LayVolume',98,'Volumen',100);
	//":|:" er skillesymbol
	TheInnerHTML+=MakeButtons(60,10,45,"Rewind:|:StartPause:|:GoToPrev:|:GoToNext:|:LayLanguage","&nbsp;|<<:|:&nbsp;&nbsp;||:|:&nbsp;<<<:|:&nbsp;>>>:|:Dansk");
	TheInnerHTML+='<BR/>'
	TheInnerHTML+=MakeButtons(86,10,45,"setA:|:setB:|:gotoA:|:gotoB:|:passB:|:ResetRange","set&nbsp;A:|:set&nbsp;B:|:A=>:|:=>B:|:B=>:|:|&lt;A-B&gt;|");
	TheInnerHTML+='<BR/>'
	*/
	TheInnerHTML='';
	TheInnerHTML+='<form id=PlayerForm  method="POST" action=ChangePlayer.php>';
	TheInnerHTML+='<input name="PrikArr" id="PrikArr" type="hidden" value=""></input>'
	TheInnerHTML+='<input name="GoNext" id="GoNext" type="hidden" value="0"></input>'
	TheInnerHTML+='<input name="TheKey" id="TheKey" type="hidden" value="'+TheKey+'"></input>'
	TheInnerHTML+='<input name="mel" id="mel" type="hidden" value="'+mel+'"></input>'	
	TheInnerHTML+='<div id=moveme onmousedown="SkydNed(this)" onmouseup="BlaaOp(this)" onmousemove="MoveAll()" style="position:absolute;left:0;top:0;width:120;background-color:0000CC;color:FFFFFF;TEXT-ALIGN:right;")><span onclick="LukVindue()" onmousemove="this.style.cursor=\'hand\';" style="background-color:CC0000;"> &nbsp;X&nbsp;</span>';
	TheInnerHTML+='</div>';
	
	SliderWidth=90;
	SliderLeft=5;
	ButtonLeft=5;
	TheInnerHTML+=MakeMainSlider(25,SliderLeft,8,SliderWidth+20,0,'&nbsp;');
	SlideTop=65;

	TheInnerHTML+=MakeSlider(SlideTop,SliderLeft,8,SliderWidth,'LaySpeed',50,'Hastighed',hast);
	SlideTop+=15;
	TheInnerHTML+=MakeSlider(SlideTop,SliderLeft,8,SliderWidth,'LayBalance',50,'Balance',0);
	SlideTop+=15;
	TheInnerHTML+=MakeSlider(SlideTop,SliderLeft,8,SliderWidth,'LayVolume',98,'Volumen',100);
	SlideTop+=30;
	TheInnerHTML+=MakeSlider(SlideTop,SliderLeft,8,SliderWidth,'LayFinIndstilling',50,'Finindstilling&nbsp;&nbsp;&nbsp;&nbsp; A (s)',0);
	//":|:" er skillesymbol
	ButtonTop=40
	TheInnerHTML+=MakeButtons(ButtonTop,ButtonLeft,45,"Rewind:|:StartPause","&nbsp;|<<:|:&nbsp;&nbsp;||");
	//ButtonTop+=26;
	//
	ButtonTop=140;
	TheInnerHTML+='<BR/>'
	TheInnerHTML+=MakeButtons(ButtonTop,ButtonLeft,45,"setA:|:setB","set&nbsp;A:|:set&nbsp;B");
	ButtonTop+=26;
	TheInnerHTML+=MakeButtons(ButtonTop,ButtonLeft,45,"gotoA:|:gotoB","A=>:|:=>B");
	ButtonTop+=26;
	
	TheInnerHTML+=MakeButtons(ButtonTop,ButtonLeft,45,"passB:|:ResetRange","B=>:|:|&lt;A-B&gt;|");
	
	ButtonTop+=26;
	TheInnerHTML+='<div id=DivOptioner style="position:absolute;top:'+ButtonTop+';left:'+ButtonLeft+'"> <font size=1>Optioner:</font></div>'
	ButtonTop+=12;
	Values=";Prikindstillinger;sidstspillet;sidsteSoeg"; //Repertoireliste";
	switch(lan){
		case "eng":
		Texts=":|:Moving point:|:Last played:|:Last selection"; //:|:Repertoirelister";
		break;
		case 'dk':
		Texts=":|:Prik indstillinger:|:Sidst spillet:|:Sidste søgning"; //:|:Repertoirelister";
		break;
		case 'se':
		Texts=":|:Prik uppsättning:|:Sist Spelat:|:Sista sökningen"; //:|:Repertoirelister";
		break;
		default:
		Texts=":|:Prik indstillinger:|:Sidst spillet:|:Sidste søgning"; 		
	}
	SelValue="";
	ID="SelTypeOfArray"
	TheInnerHTML+=MakeDropDown(Values,Texts,SelValue,ID,ButtonTop,0,1);		
	ButtonTop+=26;
	TheInnerHTML+=MakeButtons(ButtonTop,ButtonLeft,45,"OptagPrik:|:GemPrik","&nbsp;&nbsp;&nbsp;&nbsp;<b>O</b>:|:Gem");

	
	LastPlayedValues=melodier
	LastPlayedTexts=melodier.replace(/;/g,":|:")
	LastPlayedTexts=titler;
	TheInnerHTML+=MakeButtons(ButtonTop,10,45,"GoToPrev:|:GoToNext","&nbsp;<<<:|:&nbsp;>>>");
	ButtonTop+=26;
	ID='LastPlayed'
	TheInnerHTML+=MakeDropDown(LastPlayedValues,LastPlayedTexts,TheKey,ID,ButtonTop,0,1);	
	if(opt=='sidsteSoeg'){
		sidsteSoegValues=melodier
		sidsteSoegTexts=melodier.replace(/;/g,":|:")
		sidsteSoegTexts=titler
	}
	ID='LastSearch';
	
	
	TheInnerHTML+=MakeDropDown(sidsteSoegValues,sidsteSoegTexts,TheKey,ID,ButtonTop,0,1);
	TheInnerHTML+='<div id=DivsidsteSoeg style="position:absolute;top:'+ButtonTop+';visibility:hidden"></div>'
	TheInnerHTML+='<div id=DivRepertoireliste style="position:absolute;top:'+ButtonTop+';visibility:hidden">Ikke implementeret<br>'+melodier+'</div>'
	switch(lan){
		case 'eng':
	TheInnerHTML+='<div id=DivManual style="position:absolute;z-order:15;top:'+340+'px;visibility:visible"><a href=PlayerHelpEng.htm>FHPlayer Help</a></div>'
	break;
	case 'dk':
		
		TheInnerHTML+='<div id=DivManual style="position:absolute;z-order:15;top:'+340+'px;visibility:visible"><a href=PlayerHelp.htm>FHPlayer Manual</a></div>'
	break;
	case 'se':
	
		TheInnerHTML+='<div id=DivManual style="position:absolute;z-order:15;top:'+340+'px;visibility:visible"><a href=PlayerHelpSe.htm>FHPlayer Manual</a></div>'
		
	break;
	
	}
	ButtonTop+=26;
	TheInnerHTML+=MakeCheckBox('VisPrik','Vis prik',ButtonTop,ButtonLeft)
	TheInnerHTML+='</form >'
	//visPrik=document.getElementById('VisPrik')
	
	TheArea.innerHTML=TheInnerHTML;
	TheForm=document.getElementById('PlayerForm');
	IntializeMelody(mel);
	TheForm.VisPrik.checked=true
	TaellerObj=window.setInterval("tael()",timerInterval)
	TheFinZero=parseInt(LayFinIndstilling.style.left) +0.5*parseInt(LayFinIndstilling.style.width);
	if(lan=="")	lan='dk';
	chLan();
	GemAlleOptions();
	switch(opt){
		case 'sidstspillet':
			TheForm.SelTypeOfArray.value='sidstspillet';	
			DivLastPlayed.style.visibility='visible';
			GoToNext.style.visibility='visible';
		break;
		case 'sidsteSoeg':
			
			TheForm.SelTypeOfArray.value='sidsteSoeg';
			//Søren ville ikke have dette visible før vi får ordelinge texter
			DivLastSearch.style.visibility='visible';
			GoToPrev.style.visibility='visible';
			GoToNext.style.visibility='visible';
		
		break;
		
		
	}

	if(hast!=1){
	SetHastighed(hast);
	}	
	if(A!=''){
	
	APoint=A;
	PresetA=A;
	}
	if(B!=''){
	
		if(B>PresetA){
				BPoint=B;					
				PresetB=B;
				PlayAB=true;
		}

	}

	
	
	
	
}
function DE(e){
return document.getElementById(e)	
}
function chLan(){
switch(lan){
	case "eng":
		ActiveRange.title='Click for going to another place in melody';
		LaySpeed.title='Keyboard: plus (+) or minus(-) \nFor changing speed without chaning pitch keboard "1" for normal speed\note: mp3 files cannot go lower than 0.5 (half) speed';
		LaySpeed.innerHTML='Speed';
		MarkLaySpeed.title='Key 1 \nor klik here to set speed to normal';
		LaySpeedValue.title='Key 1: \nor klick to set speed to normal speed (=1)';
		LayBalance.title='You may change between first and second harmony';
		LayBalanceValue.title='Keyboard: 2 \nTogle between first and second harmony';
		MarkLayBalance.title='Key 3: Play both';
		LayVolume.title='';
		LayFinIndstilling.title='For setting point A or B exatcly';
		LayFinIndstilling.innerHTML='Fine Tuning';
		Rewind.title='Keyboard: R \nRewind to start of tune';
		StartPause.title='Keyboard: P \nStarts and Pauses playing';
		setA.title='Keyboard: A \nSets the start point for a strophe for exersising';
		setB.title='Keyboard B: \nSets stop point';
		gotoA.title='Keyboard: C \nGo to start point';
		gotoB.title='Keyboard: D \nGo to stop point';
		passB.title='Keyboard: F \nExtend range beyond stop point (beyond B)';
		ResetRange.title='Key R \nReset range';
		DivOptioner.title='';
		OptagPrik.title='Keyboard: O \nRecord a pointer (move mouse and pres I for every recording. - Remember to Save)';
		GemPrik.innerHTML='Save';
		GemPrik.title='Keyboard G: \nSave the recorded pointer';
		TheForm.VisPrik.title='Show pointer on/off';	
		GoToPrev.style.title='Go to previous tune'
		GoToNext.style.title='Go to next tune';
	break;					
	case "dk":
		//ActiveRange=DE('ActiveRange');
		Rewind.title='spil fra starten'
		ActiveRange.title='Klik her for gå til et andet sted i melodien'	
		LaySpeed.title='tast:+ eller minus \nKlik her for at ændre hastighed.(uden at ændre tonehøjde)\nKlik på sort marker eller på hastighedsværdien for at sætte hastigheden tilbage til normal =1\nBemærk mp3 filer kan ikke køre langsomere end 0.5 (halv hastighed)'
		LaySpeed.innerHTML='Hastighed';
		MarkLaySpeed.title='tast 1\nKlik her for at få normal hastighed (=1)';
		LaySpeedValue.title='tast 1\nKlik her for at få normal hastighed (=1)';
		LayBalance.title='Juster balancen mellem højre og venstre kanal\nDu kan også bruge tast 2 og 3';
		LayBalanceValue.title='tast 2\nSkift mellem højre og venstre kanal (første og anden stemme hvis melodien er 2-stemt';
		MarkLayBalance.title='tast 2\nSkift mellem højre og venstre kanal (første og anden stemme hvis melodien er 2-stemt';
		LayVolume.title='Juster volumen';
		LayFinIndstilling.title='Her kan du finjustere en strofe (brug =>A eller =>B knappen for at skifte mellem finjustering af A og B punkt)';
		Rewind.title='tast: S\nGå til starten af melodien';
		StartPause.title='tast: P: Tryk for at skifte mellem start og pause (nogen gange skal man trykke 2 gange før det virker)';
		setA.title='tast: A \nSætter start punkt på den strofe du vil gentage igen og igen';
		setB.title='tast: B \nSætter slutpunkt på strofe\nNår du har sat A og B vil melodien gentage mellem disse to punkter';
		gotoA.title='tast: C \nGår til start af strofe';
		gotoB.title='tast: D \nGår til (lige lidt før) slutningen af en strofe';
		passB.title='tast: F (Fortsæt)\nDenne knap bruges når du vil udvide en A/B strofen, tasten sløjfer B-markeringen, og du vil spille videre til du trykker på B igen';
		ResetRange.title='tast: R\n Sløjfer A/B markeringen';
		DivOptioner.title='Her kan du sætte forskellige muligheder afhængig af hvad du vælger i listen';
		OptagPrik.title='Tast O\n Her kan du optage markering i noden\nTryk (to gange på) "P" tast for at starte. \nHold musen oven over noden og tryk på "N" for hver markering\nHusk at du kun behøver at markere rytmen \n(en eller to noder i hver takt)\nQ for at genstarte \nG for gemme (Husk at gemme når du er færdig)\nDu behøver kun at markere første vers + første tone i næste vers';
		GemPrik.title='Når du har lavet en ny prik i noden liste skal du huske at gemme den. Når du gemmer bliver den gjort tilgængelig for andre også.';
		TheForm.VisPrik.title='Her kan du slå vis prik markeringen fra';
		GemPrik.innerHTML='Gem';
		GoToPrev.style.title='Gå til forrige melodi'
		GoToNext.style.title='Gå til næste melodi';		
	break;	

	case "se":
		LaySpeed.innerHTML='Hastighet';
		Rewind.title='spela från början'
		LayBalance.innerHTML='Balans';
		GemPrik.innerHTML='Lagra';
		ActiveRange.title='Klicka här för at flytta dig i melodin \n(Använd Set A och Set B om du vil återvända till samma ställe igen och igen)';
		LaySpeed.title='+ eller minus på keyboard\nÄndra hastighet (utan at ändra tonhöjd)\nOBS mp3 filer kan inte köras lägre än halv hastighet (0.5)';
		MarkLaySpeed.title='Keyboard 1\nKlicka här om du vill sätta hastigheten til normal (=1)';
		LaySpeedValue.title='Du kan klicka här för att sätta hastigheten til normal (=1)';		
		LayBalance.title='keyboard: 2 eller 3\nBalans \n(första eller andra stämman)';
		LayBalanceValue.title='';
		MarkLayBalance.title='';
		LayVolume.title='';
		LayFinIndstilling.title='Med denna funktion kan du sätta start och slut av strof mera exakt \n(tryck på =>A eller =>B för att ändra mellan start och slut)';
		Rewind.title='';
		StartPause.title='';
		setA.title='(Eller tryck A på keyboard)\nSätt start på strof som du vil öva dig på';
		setB.title='Tryck B\nSätt slut på strof';
		gotoA.title='Tryck C\nGå till starten på strofen';
		gotoB.title='Tryck D\nGå till strax före slutet av strofen';
		passB.title='Eller Tryck F (för fortsätt)\nGå förbi slutet av strofen';
		ResetRange.title='Eller Tryck R på keyboard\nReset (spela hela melodien)';
		DivOptioner.title='';
		OptagPrik.title='Keyboard O\nBlir röd när du spelar in prikken i noten. Starta (P) klicka därefter i noten eller tryk på i på keyboard för varje markering flytta musen över noten och se till at du inte skymmer noten med den prick du har satt. Kom ihåg at lagra din inspelning af pricken';
		GemPrik.title='Lagrar prickinspelning';
		TheForm.VisPrik.title='Visa prikken som flyttar sig i noten';	
				GoToPrev.style.title='Gå till förra låten'
		GoToNext.style.title='Gå till nästa låt';
	break;

}	
	
	
}
function GemAlleOptions(){
	OptagPrik.style.visibility='hidden';
	GemPrik.style.visibility='hidden';
	TheVisPrik.style.visibility='hidden';
	DivLastPlayed.style.visibility='hidden';
	DivLastSearch.style.visibility='hidden';
			GoToPrev.style.visibility='hidden';
			GoToNext.style.visibility='hidden';
	//DivsidsteSoeg.style.visibility='hidden';
	//DivLastSelection.style.visibility='hidden';
	//DivRepertoireliste.style.visibility='hidden';
	
}
function keyDown(e) {
	/*********************************
	Opfanger KeyDown
	*********************************/
	if(DontReactOnKeyb) return;
	var evt=(e)?e:(window.event)?window.event:null;
	if(evt){
		var key=(evt.charCode)?evt.charCode:
			((evt.keyCode)?evt.keyCode:((evt.which)?evt.which:0));
		//if(key=="13") document.forms[0].submit();
		switch(key){
			case 65://A
				ButtonClick(setA);
				//SaetStartPunkt();
			break;
			case 66://B
				ButtonClick(setB);
				//SaetStopPunkt();
			break;
			case 67: //C
				ButtonClick(gotoA);
			
			break;
			case 68: //D
				ButtonClick(gotoB);
			
			break;
			case 69: //E
				
			break;							
			case 70: //F
				ButtonClick(passB)			
			break;	
			case 71: //G  //GemPrik
				ButtonClick(GemPrik);

			break;
			case 72: //H

			break;
			case 73: //I
				MakeTimeEvent();	
			break;
			case 86: //V
			ButtonClick(GoToPrev)
			break;	
			case 78: //N	
			if(OptagPrikOn){		
				MakeTimeEvent();
			}
			else {
				ButtonClick(GoToNext)
			}				
			break;
			case 79: //O			
				//TheForm.OptagPrik.checked=!TheForm.OptagPrik.checked	
				
				ButtonClick(OptagPrik)
				//ChkboxChange(TheForm.OptagPrik);		
			break;
			
			case 32: //space (same as P)			
			case 80: //P
				ButtonClick(StartPause)							
			break;							
			case 81://Q
				if(OptagPrikOn){
					NodeFoelger=new Array();
				}	
			break;
			case 82: //R
				ButtonClick(ResetRange);
			break;
			case 83: //S
				ButtonClick(Rewind);
			break;
			case 84: //T
		
			break;									
			case 87: //W
				if(OptagPrikOn){
				//TheForm.PrikArr.value=GemPrikerne(NodeFoelger);				
				//PlayerForm.submit();
				ButtonClick(GemPrik)
				}	
			break;
			case 49://1
			case 97: //numpad 1
				//Stemme1();
				SetHastighed(1);
				
			
			break;
			case 53://5
			case 101: //numpad 5
				//Stemme1();
				SetHastighed(0.5);
				
			
			break;	
			case 54://6
			case 102: //numpad 6
				//Stemme1();
				SetHastighed(0.6);
				
			
			break;	
			case 55://7
			case 103: //numpad7
				//Stemme1();
				SetHastighed(0.7);
				
			
			break;	
			case 56://8
			case 104: //numpad8
				//Stemme1();
				SetHastighed(0.8);
				
			
			break;	
			case 57://9
			case 105: //numpad9
				//Stemme1();
				SetHastighed(0.9);
				
			
			break;															
			
			
			case 50://2
			case 98:
				//Stemme2();
				//Player.Balance=-10000;
				SkydNed(LayBalanceValue)
			break;
			case 51: //3
			case 99:
				SkydNed(MarkLayBalance)
				Player.Balance=0;
			break;
			case 187: //+
			case 107: //+
				Rate=parseFloat(Player.Rate)+0.1
				SetHastighed(Rate)
				
				
				/*********************************
				Sætter hastigheds markøren
				*********************************/
			
				

			break;
			case 189: //-
			case 109: //-
				Rate=parseFloat(Player.Rate)-0.1
				SetHastighed(Rate)
				
			break;
			
		}	
			
		
	}
	//LayInfo1.innerHTML = key
}
function SetHastighed(Rate){
MarkLaySpeed.style.left=parseInt(LaySpeed.style.left)+ (Rate-0.25)*parseInt(LaySpeed.style.width)/1.75	
LaySpeedValue.innerHTML =parseInt(Rate*100)/100
Player.Rate=Rate;
hast=Rate;
}
function LukVindue(){
	Player.stop();
	CounterCounting=false;
	TheArea.style.width=0;
	TheArea.style.height=0;	
	setTimeout("TheArea.innerHTML=''",100);	
	LayInfo.innerHTML="";
}
function MakeCheckBox(CheckId,CheckText,top,left){
var theCheck=''
theCheck+='<div id="The'+CheckId+'" style="POSITION:absolute; TOP:'+top+';LEFT:'+left+';">'
theCheck+='<font size=1><input onclick="ChkboxChange(this)" type="checkbox" id='+CheckId+' name='+CheckId+' >'+CheckText+'</input></font></div>';
return theCheck;
	
}
function MakeDropDown(Values,Texts,SelValue,DropDownId,top,left,size){
	var theDrop=''
	theDrop+='<div id=Div'+DropDownId+' style="POSITION:absolute;  TOP:'+top+';LEFT:'+left+'"><select id='+DropDownId+' style="width:120px; FONT-SIZE: 9px; LINE-HEIGHT: 9px; align: center"  name='+DropDownId+' size='+size+' onchange="DropDownChange(this);" >'
	ValueArr=Values.split(";");
	TextArr=Texts.split(":|:")
	for(i=0;i<ValueArr.length;i++){
		theDrop+='<option value="'+ValueArr[i] + '"'
		if(ValueArr[i]==SelValue){
			theDrop+=' selected="selected" ';
		}
		theDrop+=">"+TextArr[i]+"</option>"
	
	}	

	theDrop+="</select></div>"
	return theDrop;
	
}
function MakeButtons(StartTop,StartLeft,width, IDs, Captions){
	/***************************************************
	Makes an array of buttons
	****************************************************/
	arrCaptions=Captions.split(":|:");
	arrIDs=IDs.split(":|:");
	var TheReturn='';
	for(i=0;i<arrCaptions.length;i++){
		TheLeft=StartLeft+i*(width+5);
		TheReturn+=MakeButton(arrIDs[i],arrCaptions[i],StartTop,TheLeft,width);	
	}
	return TheReturn;
}

function MakeButton(ButtonId,ButtonText,top,left,width){
	/***************************************************
	Makes one button
	****************************************************/
	TheButton='<div id='+ButtonId+' onclick=ButtonClick(this)  class=Butt'
	TheButton+=' onmousemove=MouseHand(this,"hand")  onmouseup=ResetBorder(this); onmousedown="ChBorder(this)"'  
	TheButton+=' style="HEIGHT: ' + ButtonHeigth + 'px;'
	TheButton+='  TOP: ' + top + 'px; LEFT: ' + left + 'px; WIDTH:' + width + 'px;'                               
	TheButton+='"'
	TheButton+='>' + ButtonText + '</div>' 
	return TheButton;

}
function MakeSlider(Top,Left,Height,width,SliderName,startpos,text,StartValue){
	sl='';
	sl+='<div  id="'+SliderName+'" class="Slider2" onmousemove=MouseHand(this,"hand")  onmouseup="SkydUp(this)" onmousedown="SkydNed(this)"';
	sl+=' style="LEFT:'+Left+';TOP:'+Top+';HEIGHT: '+Height+'px ;WIDTH:'+width+';Z-INDEX: 5; ';
	sl+=' FONT-SIZE: 8px; LINE-HEIGHT: 9px;  ' 
	sl+='" >'+text+'</div>'
	TheValueLeft=Left+width+5
	sl+='<div  id="'+SliderName+'Value" class="Slider2" onmousemove=MouseHand(this,"hand")  onmouseup="SkydUp(this)" onmousedown="SkydNed(this)"';
	sl+=' style="LEFT:'+TheValueLeft+';TOP:'+Top+';HEIGHT: '+Height+'px ;WIDTH:15;Z-INDEX: 5; ';
	sl+=' FONT-SIZE: 8px; LINE-HEIGHT: 9px;  ' 
	sl+='" >'+StartValue+'</div>'
	TheLeft=Left+startpos*width/100;
	sl+='<div id="Mark'+SliderName+'"  onmouseup="MarkUp(this)" onmousemove="" onmousedown="SkydNed(this);"  onmouseout="" ' 
	sl+='style="FONT-SIZE: '+Height+'px ;LINE-HEIGHT: '+Height+'; Z-INDEX: 12; ' 
	sl+='LEFT:' +TheLeft+'; WIDTH: 5px;  POSITION: absolute; TOP:'+Top+'; HEIGHT: '+Height+'; BACKGROUND-COLOR: #000000" '
	sl+='></DIV>';
	return sl;
	
}
function MakeMainSlider(Top,Left,Height,width,startpos,text){
	sl='';
	sl+='<div  id="TidsSkyder" class="Slider1" onmouseup="SkydUp(this)" onmousedown="SkydNed(this)" onmousemove=MouseHand(this,"hand") ';
	sl+=' style="LEFT:'+Left+';TOP:'+Top+';HEIGHT: '+Height+'px ;WIDTH:'+width+';Z-INDEX: 5; ';
	sl+=' FONT-SIZE: 8px; LINE-HEIGHT: 9px;  ' 
	sl+='" >'+text+'</div>'
	sl+='<div  id="ActiveRange" class="Slider2" onmouseup="SkydUp(this)" onmousedown="SkydNed(this)"  onmousemove=MouseHand(this,"hand") ';
	sl+=' style="LEFT:'+Left+';TOP:'+Top+';HEIGHT:'+Height+'px ;WIDTH:'+width+';Z-INDEX: 10 ';
	sl+=' FONT-SIZE: 8px ; LINE-HEIGHT: 9px;  ' 
	sl+='" >&nbsp;</div>'
	TheLeft=Left+startpos*width/100
	sl+='<div id=TMark  onmouseup="MouseUpMarker()" onmousemove="MoveMarker1()" onmousedown="MouseDownMarker()"  onmouseout="MouseUpMarker()" ' 
	sl+='style="FONT-SIZE: '+Height+'px ;LINE-HEIGHT: '+Height+'; Z-INDEX: 12; ' 
	sl+='LEFT:' +TheLeft+'; WIDTH: 5px;  POSITION: absolute; TOP:'+Top+'; HEIGHT: '+Height+'; BACKGROUND-COLOR: #000000" '
	sl+='></DIV>';
	return sl;
}

function ResetBorder(TheLay){
	TheLay.style.border="2px outset #cccccc"
}

function ChBorder(TheLay){
	TheLay.style.border="2px inset #AAAAAA"
}

function MouseHand(e,TheStyle){
	e.style.cursor=TheStyle
}
function ChkboxChange(e){
	switch(e){

		case TheForm.VisPrik:
			if(e.checked){
				LayPrik.style.visibility='visible';	
			}
			else {
				LayPrik.style.visibility='hidden';	
			}	
		
		break;
	}	
}

function DropDownChange(e){
	switch(e){
		case TheForm.SelTypeOfArray:
			GemAlleOptions();
			switch(e.value){
				
			case "Prikindstillinger":	
				OptagPrik.style.visibility='visible'
				GemPrik.style.visibility='visible'
				TheVisPrik.style.visibility='visible'
			break;
			//Prikindstillinger;sidstspillet;sidsteSoeg;Repertoireliste
			case "sidstspillet":
				DivLastPlayed.style.visibility='visible'
				GoToNext.style.visibility='visible';
				//DivLastPlayed.innerHTML="Liste af spillede melodier<br>Ikke implementeret";
			break;
			case "sidsteSoeg":
				//Denne er to steder
				DivLastSearch.style.visibility='visible'
				GoToPrev.style.visibility='visible';
				GoToNext.style.visibility='visible';
				
				//DivLastPlayed.innerHTML="Denne er lidt sjovt, her vil man kunne finde de melodier har listet ved sidste søgning<br>Ikke implementeret";
			break;
			case "Repertoireliste":
				DivRepertoireliste.style.visibility='visible'
				//DivLastPlayed.innerHTML="Her vil man finde valgt repertoireliste<br>Ikke implementeret";
			
			break;
			}
			
		break;
		case TheForm.LastPlayed:
		 TheForm.submit();
		break
		case TheForm.LastSearch:
			//TheForm.TheKey.value=TheForm.LastSearch.value;
			//if(TheForm.LastSearch.options.length<3){
			//	TheForm.GoNext.value=1
			//}
			TheForm.submit();
		break;	
	
	}		
	
}

function ButtonClick(e){
	if(isMP){
		switch(e){
			case Rewind:			 
				Player.currentPosition=0;
			break;
			case StartPause:
				CurrentPrikIndex=0
				VerseNo=0;							
				if(Paused){
					//player.currentPosition=CurTime;
					Player.Play();
					CounterCounting=true;
					StartPause.innerHTML='&nbsp;&nbsp;&nbsp;||';
					
					
				}
				else{				
					StartPause.innerHTML='&nbsp;&nbsp;=>';	
					CounterCounting=false;
					Player.pause();	
								
				}
				Paused=!Paused;
			break;
			case GemPrik:
				//prikArr=document.getElementById('PrikArr');
				TheForm.PrikArr.value=GemPrikerne(NodeFoelger);
				
				PlayerForm.submit();
			
			break;
			case OptagPrik:				
				OptagPrikOn=!OptagPrikOn
				if(OptagPrikOn){
					Paused=true;
					e.style.color="FF0000";
					Player.currentPosition=0
					StartPause.innerHTML='&nbsp;&nbsp;=>';		
					Player.pause();	
					SetHastighed(0.6)
					NodeFoelger.length=0;
					Noden.onclick=function(){if(OptagPrikOn){if(!isNaN(CurX)){NodeFoelger[NodeFoelger.length]=new AddPrikArray();LayPrik.style.visibility='visible';}}}
					Noden.onmousemove=function(){ CurX=event.x;CurY=event.y}
					
					alert('Tryk (to gange på) "P" tast for at starte. \nHold musen oven over noden og tryk på "N" for hver markering\nHusk at du kun behøver at markere rytmen \n(en eller to noder i hver takt)\nQ for at genstarte \nG for gemme (Husk at gemme når du er færdig)\nDu behøver kun at markere første vers + første tone i næste vers');
					
				}
				else {
					e.style.color="000000";
					Noden.onclick=""
				}
			break;			
			case GoToPrev:			        
				   TheForm.GoNext.value=-1;  
				   TheForm.submit()
			break;
			case GoToNext:	
				if(TheForm.SelTypeOfArray.value=='sidstspillet'){
					if(TheForm.LastPlayed.options.length>0){
						TheForm.LastPlayed.selectedIndex=0;
					}
				}
					TheForm.GoNext.value=1;  
					TheForm.submit()
			      	
				case 'sidstspillet':
         
			break;
			case setA:
				LayInfo.innerHTML=GemPrikerne(Docu)
				CurTime = Player.currentPosition
				APoint=CurTime;
				if(TheTotTime!=0)	ActiveRange.style.left =CurTime*parseInt(TidsSkyder.style.width)/TheTotTime + parseInt(TidsSkyder.style.left);
				ActiveRange.style.width = BPoint*parseInt(TidsSkyder.style.width)/TheTotTime-parseInt(ActiveRange.style.left) + parseInt(TidsSkyder.style.left)
				//parseInt(TidsSkyder.style.width)- parseInt(ActiveRange.style.left) + parseInt(TidsSkyder.style.left);
				PlayAB=true;	
				
		document.getElementById('moveme').innerHTML=' A:'+parseInt(APoint*10)/10+' B:'+parseInt(BPoint*10)/10+'<span onclick="LukVindue()" onmousemove="this.style.cursor=\'hand\';" style="background-color:CC0000;"> &nbsp;X&nbsp;</span>'
						
			break;
			case setB:
				CurTime = Player.currentPosition
				if(CurTime>APoint){
					BPoint=CurTime;					
					ActiveRange.style.width=CurTime*parseInt(TidsSkyder.style.width)/TheTotTime-parseInt(ActiveRange.style.left) + parseInt(TidsSkyder.style.left)
					PlayAB=true;
					moveme.innerHTML=' A:'+parseInt(APoint*10)/10+' B:'+parseInt(BPoint*10)/10+'<span onclick="LukVindue()" onmousemove="this.style.cursor=\'hand\';" style="background-color:CC0000;"> &nbsp;X&nbsp;</span>'
				}
				else {
					alert("B < A")	
				}
			break;
			case gotoA:
				CounterCounting=true;
				CurrentPrikIndex=0
				if(CurrentFileType==".mid"){
					Player.currentPosition=parseInt(APoint);
					StartPlayMid=true;	
				}
				else {	
					Player.currentPosition=APoint;	
				}				
				LayFinIndstilling.innerHTML="Finindstilling&nbsp;&nbsp; A (s)"
				FininA=true
				
			break;
			case gotoB:
				CounterCounting=true;
				FininA=false
				Player.currentPosition=BPoint-2;
				LayFinIndstilling.innerHTML="Finindstilling&nbsp;&nbsp; B (s)"
			break;
			case passB:
				PlayAB=false;
				ActiveRange.style.width =parseInt(TidsSkyder.style.width)- parseInt(ActiveRange.style.left) + parseInt(TidsSkyder.style.left);			
				document.getElementById('moveme').innerHTML='<span onclick="LukVindue()" onmousemove="this.style.cursor=\'hand\';" style="background-color:CC0000;"> &nbsp;X&nbsp;</span>'				
			break;
			case ResetRange:
				ActiveRange.style.width = TidsSkyder.style.width;
				ActiveRange.style.left = TidsSkyder.style.left;
				PlayAB=false;
				APoint=0;
				BPoint=TheTotTime;
				document.getElementById('moveme').innerHTML='<span onclick="LukVindue()" onmousemove="this.style.cursor=\'hand\';" style="background-color:CC0000;"> &nbsp;X&nbsp;</span>'
			break;
		} //switch(e)
	}
	else{  //!isMP
			//player=document.getElementById('player');
			
		
			switch(e){
			case Rewind:
				Player.SetTime(0);
				CurrentPrikIndex=0							
			break;
			case StartPause:
				CurrentPrikIndex=0
				Paused=!Paused;	
				if(Paused){
					
					player.Play();
					alert('play')
					StartPause.innerHTML='&nbsp;&nbsp;&nbsp;||';
					//TaellerObj=window.setInterval("tael()",timerInterval)
				}
				else{
					StartPause.innerHTML='&nbsp;&nbsp;=>';					
					player.Stop();
					
				}
			break;
			case GoToPrev:
			                //Player.SetTime(0);
			                
			break;
			case GoToNext:
			                //Player.SetTime(0);
			                
			break;			

			case setA:
			
			break;
			case setB:
			
			
			break;
			case gotoA:
			
			break;
			case gotoB:
			
			break;
			case passB:
				PlayAB=false;
			
			break;
			case ResetRange:
			
			break;
			
			}
	}
			/*	TheText='';
				for(var k in player ) {
					TheText+='<p>'+k + ' '+player[k]+' <br>';
					//for(var x in k){
					//	TheText+=x +' '+player[k][x]+' <br>';
					//}
				}
			LayInfo.innerHTML = TheText;
			*/
}

function IntializeMelody(media) {
	started=!started;
	
	Layer1.style.visibility='hidden';
	
	/*****************************
	Windows Media Player
	******************************/		
	mp='<object classid="clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95" '+' type="application/' +app+'" width="0" height="0" id="player" >'
	//6BF52A52-394A-11d3-B153-00C04F79FAA6
	//22d6f312-b0f6-11d0-94ab-0080c74c7e95
	//mp='<embed><object classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" '+' type="application/x-oleobject " width="0" height="0" id="player" >'
	mp+='<param name="Balance" value='+TheBalance +'>'
	mp+='<param name="Rate" value="'+hast+ '" >'
	mp+='<param name="PlayCount" value='+ Antal +'>'	
	mp+='<param name="currentPosition" value='+CurTime +'>'
	mp+='<param name="fileName" value="'+media+'">'
	mp+='<param name="Volume" value="'+TheVolume+'">'
	mp+='<embed type="application/x-mplayer2 " src="'+media+'" width="0" height="0">'
	mp+='<\/embed>'
	mp+='<\/object>'
	
	/*****************************
	Quicktime
	******************************/
	//codebase="http://www.apple.com/qtactivex/qtplugin.cab" id
	ThePL ='<embed classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" ' 	
    ThePL+=' id="player"'; 								
    ThePL+=' src="'+ media +'" '; 
    ThePL+=' volume="100" ';								
    ThePL+=' enablejavascript="true" ';   					
    ThePL+=' type="audio/wav"';  							
    ThePL+=' height="16"'; 	   								
    ThePL+=' width="200"';  								
    ThePL+=' >'  
    //ThePL ='';
	//ThePL+='<embed id="player" type="audio/wav" src="'+media+'" width="0" height="0">'
	//ThePL+='<\/embed>'
    ThePL+='</embed>';  
	if(isMP){	
		Layer1.innerHTML=mp;
		Player=document.getElementById('player');
		//window.setTimeout("Player.stop()",100);
		//Player.stop()
		TheTotTime=Player.Duration;
		
	}
	else {	
		ThePlay=document.getElementById("Layer1");
		ThePlay.innerHTML=ThePL;
		Player=document.getElementById("player");
		window.setTimeout("Player.StopPlay()",100);		
		TheTotTime=Player.GetEndTime();
		BPoint=TheTotTime;
	}	
	
CurrentFileType= media.slice(media.lastIndexOf('.'),media.length)	
}
function PlayAnother(){
	
	//Sluk tælleren
	CounterCounting=false;
	tael= "function(){ return false; }";
	window.clearInterval(TaellerObj);
	//submit form så vi kan skifte
	window.setTimeout("TheForm.submit()",130);
	
}

function docu(){
	//for debug dokumentation af tæller
	this.PlayTime=	CurTime;
	this.TotTime=TheTotTime;
}
function tael(){
	/*********************************
	taller tiden med intervallet timerInterval
	Den tid der anvigves er den målte tid fra MediaPlayeren 
	*********************************/

	//Taeller++
	//Documentation af tæller
	//Docu[Docu.length]=new docu();
	if(!CounterCounting) { 		
		return false;	
	}


	if(isMP){
		if(Player.IsDurationValid){
			TheTotTime=Player.Duration;
			CurTime = Player.currentPosition

			
			if(RestartNext){
				CurrentPrikIndex=0;
				switch(TheForm.SelTypeOfArray.value){
				case 'sidstspillet':
					if(TheForm.LastPlayed.options.length>0){
						TheForm.LastPlayed.selectedIndex=0	
						if(StartPlayAnother){
							window.setTimeout("PlayAnother()",1000);
							StartPlayAnother=false;
						}
					}
				break;
				case 'sidsteSoeg':	
				if(StartPlayAnother){
					if(TheForm.LastSearch.selectedIndex<TheForm.LastSearch.options.length-1){
						TheForm.LastSearch.selectedIndex++	
					}
					window.setTimeout("PlayAnother()",1100);
					StartPlayAnother=false;
					//Forhindrer at den går amok i skiftet
				}					
				default:
					//Restart når man er kommet til enden
					CurrentPrikIndex=0;
					Player.Play();
					Player.Rate=hast;
					
				break;				
			}		
		}
		TheTime=TheTotTime-CurTime;
		TheBool=Math.abs(TheTotTime-CurTime)<=1		
		if(Math.abs(TheTotTime-CurTime)<=1.01){
			//Der kan være op til 1 sekunds forskel på den sidste Curtime og total time
			if(TheTotTime>1){
				RestartNext=true;				
			}	
			//LayInfo.innerHTML=TheTotTime+' '+CurTime+' '+timerInterval;			
		}
		else{
			RestartNext=false;
		}
				
		if(!PlayAB) BPoint=TheTotTime;
			
	}
	if(PlayAB){
		if(CurTime>=BPoint){
			Player.currentPosition=APoint;	
		}	
	}
	NodePrik();		
	}
	else {
		TMark=document.getElementById('TMark');
		TidsSkyder=document.getElementById('TidsSkyder');
		TheTotTime=Player.GetEndTime();
		LayInfo.innerHTML=Taeller + ' ' +Player.GetTime()  + ' ' + Player.GetEndTime();
	}
	if(TheTotTime!=0){
		TMark.style.left = CurTime*parseInt(TidsSkyder.style.width) /TheTotTime + parseInt(TidsSkyder.style.left); 		
	}
	if(StartPlayMid){
		//.mid files can only move 1 second at the time
		if((CurTime-APoint)<0&&Math.abs(CurTime-APoint)<1){			
			Player.Mute=true;
		}
		else	{
			Player.Mute=false;
			StartPlayMid=false;
		}
		
	}
		
	if(isMP){
		if(Player.IsDurationValid){
			CurTime = Player.currentPosition
		}
	}	
	else { //QuickTime
	
	}	
}
function NodePrik(){

if(NodeFoelger.length<2) {
	LayPrik.style.visibility='hidden';	
	return false;	
}	
	
if(Player.IsDurationValid){
		CurTime = Player.currentPosition
		if(TheForm.VisPrik.checked){
			LayPrik.style.visibility='visible';
			//LayInfo.innerHTML= NodeFoelger.length+' ' +CurrentPrikIndex+' '+CurTime+' '+NaesteTid
			if(CurTime>NaesteTid) {
				CurrentPrikIndex++
				
				if(NodeFoelger.length>1){
					VerseLength=NodeFoelger[NodeFoelger.length-1].PlayTime-NodeFoelger[0].PlayTime				
				}
			}
			if(NodeFoelger.length>1){
				if(CurTime-VerseNo*VerseLength>	NodeFoelger[NodeFoelger.length-1].PlayTime){
					VerseNo++
					//For at tælle med 
					if(SecondVerse)		CurrentPrikIndex=0;
				}
			}	
			if(CurrentPrikIndex<NodeFoelger.length-1){
				DenneTid=NodeFoelger[CurrentPrikIndex].PlayTime-0.05+VerseNo*VerseLength
				NaesteTid=NodeFoelger[CurrentPrikIndex+1].PlayTime-0.05+VerseNo*VerseLength
			}
			if(CurTime<DenneTid){
				for(j=0;j<NodeFoelger.length-1;j++){
				//Find tiden igen
					if(NodeFoelger[j].PlayTime<CurTime&&NodeFoelger[j+1].PlayTime>CurTime) CurrentPrikIndex=j;
				}
			}

			if(CurTime>DenneTid&&CurTime<NaesteTid){
				if(NodeFoelger.length>1){
					if(NodeFoelger[CurrentPrikIndex].NextNodeURL!=''){
						BilledFil=NodeFoelger[CurrentPrikIndex].NextNodeURL
						NodeLay.innerHTML ='<img onclick=MakeTimeEvent() onmousemove=CurrentNodeMouse(); id=MinNode src="'+BilledFil +'">'+Prikken
						setTimeout("HideTomNode()",500)
					}				
					LayPrik.style.left =NodeFoelger[CurrentPrikIndex].X
					LayPrik.style.top =parseInt(NodeFoelger[CurrentPrikIndex].Y) //-parseInt(LayPrik.style.height)

					
				}
			}
	
	
	
		}		
		  /*if(CurTime>txtTotLaengde.value-0.2&&CurTime<txtTotLaengde.value){
			LayInfo.innerHTML+=CurTime;
 				if(!Gentag){
 				if(txtTotLaengde.value!=0){
					melSel.selectedIndex++;
					play();
					}
				}
			}*/	
		
	}
	
}

function MoveMarker1()  {
 	/**************************************
 	Flytter markøren når man rør ved den.
	---------------------------------------

	***************************************/
	if(MoveTheMarker){
	TheMouse=event.x
	//TMark.style.width='8px'
	TMark.style.left =parseInt(TheMouse)-14;
	//Player.currentPosition=TheTotTime*(parseInt(TheMouse)-14)/ parseInt(TidsSkyder.style.width)
	
	}
	else{
	TMark.style.cursor='hand';
	}

}
function MouseDownMarker()  {
 	/**************************************
 	Flytter markøren når man rør ved den.
	---------------------------------------

	***************************************/
	TheMouse=event.x
	TMark.style.cursor='hand'
	MoveTheMarker=true
	TMark.style.width='30px'
	//TMark.style.left =parseInt(TheMouse)-10;
	//player.CurrentPosition  =TheTotTime*parseInt(TheMouse)/ parseInt(TidsSkyder.style.width)

}
function MouseUpMarker(){
	TMark.style.width='5px';
	MoveTheMarker=false;
	TMark.style.cursor='default'

}
function SetTid(){
	txtA.value =TheTotTime*parseInt(ActiveRange.style.left)/ parseInt(TidsSkyder.style.width)
	txtB.value =txtA.value*1+TheTotTime*parseInt(ActiveRange.style.width)/ parseInt(TidsSkyder.style.width)

//ActiveRange.style.width=CurTime*parseInt(TidsSkyder.style.width) /TheTotTime-parseInt(ActiveRange.style.left)
}
function MarkUp(e){
switch(e){
	case MarkLayFinIndstilling:
		MarkLayFinIndstilling.style.left =TheFinZero;
	break;

}	
}
function LabelNed(e){
	
}		
function SkydNed(e){
	/***************
	Click på skyder
	****************/
	var TheX;
	//TheX=  //- parseInt(TheArea.style.left)
	TheX=parseInt(event.x)-parseInt(TheArea.style.left)

	switch(e){
		case moveme:
			MoveOn=true;
			
		break;
		case TidsSkyder:
		case ActiveRange:			
			TMark.style.left =TheX-2;
			Player.CurrentPosition=TheTotTime*(parseInt(TheX)-parseInt(TidsSkyder.style.left)-2)/ parseInt(TidsSkyder.style.width)
		break;	
		case LaySpeed:
			//MarkLaySpeed.style.left=TheX-2;
			/*********************************
			Ændrer hastigheden	
			*********************************/
			//Rxmouse = event.x;
			var TheVal;
			//MarkHastighed.style.left=Rxmouse - parseInt(LayAll.style.left)-3;  //+ parseInt(LaySpeed.style.left);
			TheVal=(Math.round((parseInt(TheX)-parseInt(LaySpeed.style.left))*175/parseInt(LaySpeed.style.width )+25))/100
			SetHastighed(TheVal)
			//LaySpeedValue.innerHTML = TheVal
			//Player.Rate=TheVal;				
		break;
		case LayBalance:
			/*********************************
			Sætter balancen. der har range: 
			-10.000 ->10.000 (højre til venstre)
			*********************************/		
			MarkLayBalance.style.left=TheX-2;
			TheBalance=-10000 +parseInt(20000*(parseInt(TheX)-parseInt(document.getElementById("LayBalance").style.left))/parseInt(document.getElementById("LayBalance").style.width));
			LayBalanceValue.innerHTML = parseInt(TheBalance/100);
			Player.Balance=TheBalance;
			
		break;
		case LayFinIndstilling:
			MarkLayFinIndstilling.style.left=TheX-2;
			Chg=(TheX-TheFinZero)/40
			LayFinIndstillingValue.innerHTML=parseInt(Chg*10)/10
			if(FininA){
				OldVal=APoint;
				APoint=parseInt((Chg*1+OldVal*1)*100)/100
				if(APoint<0) APoint=0;
				if(TheTotTime!=0){
				TheWidth=BPoint*parseInt(TidsSkyder.style.width)/TheTotTime-parseInt(ActiveRange.style.left) + parseInt(TidsSkyder.style.left)
				if(TheWidth>0){
					ActiveRange.style.width = TheWidth
				}
				ActiveRange.style.left =APoint*parseInt(TidsSkyder.style.width)/TheTotTime + parseInt(TidsSkyder.style.left)
				}
				if(CurrentFileType==".mid"){
					Player.currentPosition=parseInt(APoint);
					StartPlayMid=true;	
				}
				else {	
					Player.currentPosition=APoint;	
				}
			}
			else{
				OldVal=BPoint;
				BPoint=parseInt((Chg*1+OldVal*1)*100)/100
				if(BPoint>TheTotTime) BPoint=TheTotTime;
				ActiveRange.style.width = BPoint*parseInt(TidsSkyder.style.width)/TheTotTime-parseInt(ActiveRange.style.left) + parseInt(TidsSkyder.style.left)
				ActiveRange.style.left =APoint*parseInt(TidsSkyder.style.width)/TheTotTime + parseInt(TidsSkyder.style.left);
				Player.currentPosition=BPoint-2;
			}
			
								moveme.innerHTML=' A:'+parseInt(APoint*10)/10+' B:'+parseInt(BPoint*10)/10+'<span onclick="LukVindue()" onmousemove="this.style.cursor=\'hand\';" style="background-color:CC0000;"> &nbsp;X&nbsp;</span>'
		break;
		case LayVolume:
			MarkLayVolume.style.left=TheX-2;
			TheVolume=-4100+parseInt(4100*(TheX- parseInt(LayVolume.style.left ))/parseInt(LayVolume.style.width ));
			Player.Volume=TheVolume;
			LayVolumeValue.innerHTML=parseInt(TheVolume/41+100)
		
		break;
		case MarkLaySpeed:
		case LaySpeedValue:
			SetHastighed(1);
		
		break;
		case MarkLayBalance:
			Player.balance=0;
			MarkLayBalance.style.left=parseInt(LayBalance.style.left)+parseInt(LayBalance.style.width)/2-1
			LayBalanceValue.innerHTML='0'
		break;
		case LayBalanceValue:
			FirstBalanceKlik=!FirstBalanceKlik;
			if(FirstBalanceKlik){
				Player.balance=-10000;
				MarkLayBalance.style.left=LayBalance.style.left;
				LayBalanceValue.innerHTML='-100'	
			}
			else{
				Player.balance=10000;
				MarkLayBalance.style.left=parseInt(LayBalance.style.left)+parseInt(LayBalance.style.width)-2;
				LayBalanceValue.innerHTML='100'
			}
		
		break;
		
		
		
		
	}

}
function SkydUp(e){
/**************
Klik på skyder
***************/
	var TheX;
	TheX=event.x
switch(e){
	case TidsSkyder:
	case ActiveRange:
	
		
		//Player.CurrentPosition=TheTotTime*(parseInt(TheX)-parseInt(TidsSkyder.style.left)-2)/ parseInt(TidsSkyder.style.width)	
	break;
	case LayFinIndstilling:
		MarkLayFinIndstilling.style.left =TheFinZero;
		
	break;
	}
}
function MakeTimeEvent(){
	//ikke brugt
	if(OptagPrikOn){
		if(!isNaN(CurX)){
		NodeFoelger[NodeFoelger.length]=new AddPrikArray()
		LayPrik.style.visibility='visible';
		}
	}
}
function AddPrikArray(){
	this.PlayTime=Math.round(Player.currentPosition*20)/20
	this.X=parseInt(CurX)//-parseInt(NodeLay.style.left)
	this.Y=parseInt(CurY)-20//-parseInt(NodeLay.style.top)
	LayInfo.innerHTML = NodeFoelger.length+ ' ' +this.PlayTime+'<br>'+CurX+' '+CurY
	
				LayPrik.style.left =CurX
				LayPrik.style.top =this.Y //-   20;//parseInt(LayPrik.style.height) 
			

}
function CurrentNodeMouse(){
  CurX=event.x
  CurY=event.y
	
}
function MoveAll(){
	moveme.style.cursor='move'
if(MoveOn){
	  CurX=event.x
	  CurY=event.y
	  TheArea.style.left=CurX-20
	  TheArea.style.top=CurY-10
 }
}
function BlaaOp(e){
MoveOn=false;	
}
function GemPrikerne(TheArray){
	TheText=''
	for(var i=0;i<TheArray.length;i++){
		if(i>0) TheText+='|';
		for(x in TheArray[i]){
			TheVal=TheArray[i][x]
			TheText+=TheVal+";"
		}		
	}
	return TheText;	
}
function MakeNodeMove(LongText){
NodeFoelger=new Array()
	TheTexts=LongText.split('|')
	for(var i=0;i<TheTexts.length;i++){
		NodeFoelger[NodeFoelger.length]=new MakeANodeMove(TheTexts[i]);
	}

}
function MakeANodeMove(Atxt){
	Atxts=Atxt.split(';')
	if(Atxts.length>2){
		this.Accord=""
		this.NextNodeURL=""
		this.PlayTime=Atxts[0];
		this.X=Atxts[1];
		this.Y=Atxts[2];
		if(Atxts.length>3){
			this.NextNodeURL=Atxts[3]
		}
		if(Atxts.length>4){
			this.Accord=Atxts[4]
		}		
		
	
	}
	
	

}