//begin_lib

/*****************************************************************  
*	Copyright 2001 Internetföretaget BokningsBasen HB, Sweden
*	Use of this code is prohibited.
*****************************************************************/

// Browser check
	var ns4;
	var ie4;
	var ns6
	if(document.all){

	 	ie4=true;
	}
	else if(document.layers){

	 	ns4=true;
	}
	else if(document.getElementById){
  
	 	ns6=true;
	}


	//ns4 = (document.layers)? true:false;
	//ie4 =(document.all)? true:false;
	var inmotion=false;
	var menyD;


// Tömmer den kombobox som skickas in som parameter
function emptyList(list)	{

		var len=list.length;
		 
		for(i=len-1;i>=0;i--)	{
			list.options[i]=null;
		}
		 
}

// Fyller insänd listbox med värden från arrayen.
// Arrayen är tvådimensionell enligt:

//Arr 
//-----------------|
//Arr 1 (Name, Value)
//Arr 2 (Name, Value)
//Arr 3 (Name, Value)
//-----------------|

// Variabler in: formulärets combo, array med värden, det värde som ska vara valt.

function fillList(li, arr, sel) {

	var list=li;
	var arrItems=arr;
	var selectedValue=sel;
// Ändra selectedValue, om mindre än 10, så det inleds med 0.
if(selectedValue<10)	{
		selectedValue="0"+selectedValue;
	
		}

	// Ta reda på hur många options som ska skapas.
	var intOptions = arrItems.length;
	// Skapa alla options i en for -loop
	var option=null;
	var onewasselected=false;// Denna sätts true i loopen om någon har blivit selected.
							// Om ingen blev vald fanns inte det värde man önskade.
							// Då sätts sista värdet i insänd array som selected.
	for(var icount=0;icount<intOptions;icount++)	{
	
		// Hämta ut värdet
		var value=arrItems[icount];

		option=new Option(value,value);
		// Lägg till i listan

		eval(list.options[icount]=option);
	
	
		if(value==selectedValue)	{	// Sätt första option vald.
			list.options[icount].selected=true;

			onewasselected=true;
		
			}
		
	
	} 	// Slut for loop.

	if(onewasselected==false)	{
		
		// NILU 010902:
		// Om det inte finns några options, dvs om tiden redan har passerats, varna.
		// Detta sker om man försöker boka en halvtimma, efter att den redan har inletts
		// OCH om halvtimmen därefter är bokad. Då finns ingen alternativ tid att välja för
		// systemet.
		if(intOptions==0){
			alert("Bokning kan ej göras. Tiden har passerats");
			self.close();
		} else {
		// Om ingen option blev vald, välj den sista.
			list.options[intOptions-1].selected=true;
		}
	}


}


//***************************************************************************
//** 
//** Startar nytt fönster för details.
//** 
//***************************************************************************

 function showDetails(session, bid, date)	{
 var url="details.php3?session=";
 url=url+session;
 url=url+"&bid=";
 url=url+bid;
 url=url+"&date=";
 url=url+date;

 detailWindow=window.open(url, 'Details', 'toolbar=no,location=no,copyhistory=no,directories=no,scrollbars=no,resizable=no,WIDTH=340,HEIGHT=380');
 detailWindow.focus();


 }


//***************************************************************************
//** Funktionen startar ett nytt fönster för bookings
//** 
//** 
//***************************************************************************

  function showBookings(url){
   bookingWindow=window.open(url, 'Bookings', 'toolbar=no,location=no,copyhistory=no,directories=no,scrollbars=no,resizable=no,WIDTH=320,HEIGHT=400');
 	bookingWindow.focus();
	}


//***************************************************************************
//** Funktionen startar ett litet fönster där man får skriv in vilken
//** person man bokar åt.
//** 
//***************************************************************************

  function enterPerson(){
   personWindow=window.open('otherbookingdetails.php3', 'Personinformation', 'toolbar=no,location=no,copyhistory=no,directories=no,scrollbars=no,resizable=no,WIDTH=320,HEIGHT=200');
 	personWindow.focus();
	}

function enterPersonWithName(namevar){

	var url="otherbookingdetails.php3?name="+escape(namevar);

   personWindow=window.open(url, 'Personinformation', 'toolbar=no,location=no,copyhistory=no,directories=no,scrollbars=no,resizable=no,WIDTH=320,HEIGHT=200');
 	personWindow.focus();
	}


//***************************************************************************
//** Funktionen fyller två hidden-fält i bookings.php3 som 
//** indikerar att man har bokat åt någon annan.
//**  Anropas av otherBookingDetails.php3
//***************************************************************************
function fillBookingFields(form){


opener.document.forms[0].OtherValue.value=form.OtherValue.value;
//alert(opener.document.forms[0].OtherValue.value);
	if(form.OtherType[0].checked)	{
	opener.document.forms[0].OtherType.value=form.OtherType[0].value;
		}
	if(form.OtherType[1].checked)	{
	opener.document.forms[0].OtherType.value=form.OtherType[1].value;
		}
//alert(opener.document.forms[0].OtherType.value);

self.close();
}

//***************************************************************************
//** Funktionen tömmer två hidden-fält i bookings.php3 som 
//** indikerar att man har bokat åt någon annan.
//** Anropas av Bookings.php3.
//***************************************************************************
function clearBookingFields(){


this.document.forms[0].OtherValue.value="";
this.document.forms[0].OtherType.value="";
//alert(this.document.forms[0].OtherValue.value);
//alert(this.document.forms[0].OtherType.value);


}


	//***************************************************************************
//** Funktionen startar ett nytt fönster för itemDetails
//** 
//** 
//***************************************************************************

  function showItem(url){
   ItemWindow=window.open(url, 'Detaljinfo', 'toolbar=no,location=no,copyhistory=no,directories=no,scrollbars=no,resizable=no,WIDTH=340,HEIGHT=300');
 	ItemWindow.focus();
	}

//***************************************************************************
//** Funktionen startar ett nytt fönster firstinstructions
//** 
//***************************************************************************

  function showInstructions(url){
   InstructionWindow=window.open(url, 'Introduktion', 'toolbar=no,location=no,copyhistory=no,directories=no,scrollbars=yes,resizable=yes,WIDTH=340,HEIGHT=300');
 	InstructionWindow.focus();
	}


//***************************************************************************
//** Funktionen startar ett nytt fönster för UserDetails
//** 
//** 
//***************************************************************************

  function showUser(url){
   UserWindow=window.open(url, 'UserInfo', 'toolbar=no,location=no,copyhistory=no,directories=no,scrollbars=no,resizable=no,WIDTH=340,HEIGHT=300');
 	UserWindow.focus();
	}


//***************************************************************************
//** Funktionen startar ett nytt fönster för val av reklamtyp
//** 
//** 
//***************************************************************************

  function showAdWindow(url){
   AdWindow=window.open(url, 'Reklamtyp', 'toolbar=no,location=no,copyhistory=no,directories=no,scrollbars=no,resizable=no,WIDTH=340,HEIGHT=300');
 	AdWindow.focus();
	}





//***************************************************************************
//** Används för fejakde URL:er i Netscape.
//** 
//** 
//***************************************************************************
 
 function nope()	{
 
 }


//***************************************************************************
//** Används för att ladda om day efter bokning/avbokning. 
//** stänger det fönster som kallar på funktionen.
//** 
//***************************************************************************
function reloadDay(session, date)	{
opener.document.location.href="day.php3?session="+session+"&date="+date;

}


//***************************************************************************
//** 
//** Funktion som kollar att alla fält är ifyllda i reg.formulär.
//** 
//***************************************************************************

 function validateRegistration(form)  {
 		
 		// Kolla att man har accepterat avtalet.
		if(form.avtal.checked==false){
			alert("Du måste acceptera avtalet för att få utnyttja BokningsBasen!");
			return false;

		}

			// Kolla att man valt nåt i moms-fältet
		if(form.VAT[0].checked==false && form.VAT[1].checked==false)	{
			alert("Ange om organisationen är momsbefriad eller ej");
			return false;
		}
	
	
		if(form.Price.options[form.Price.selectedIndex].value=="- - -"){
		alert("Välj " + getFieldName("Price"));
		return false;
		}

	

		// Kolla om manmåste välja reklam och om det gjorts.
		var check =checkAdSelection(form);
		if(check==false)	{
				return false;	// Bryt ut om man måste fylla i reklam.
		}



     var nr=form.elements.length;	// Hämta ut hur många formulärfält det är
	  
	  for(i=0; i<nr;i++){	// loopa igenom alla formulärelement.
		  el=form.elements[i];	// el blir ett element.
		  var illegal=false;

		  if(el.value=='' && el.name!="MemberNo" && el.name!="noad" && el.name!="adcat" ){
		  		alert('Fyll i '+ getFieldName(el.name))
		  		illegal=true;		// Sätts true då inte alla fält fyllts i.
		  		break;
		  }	// end if
	  }	// end for


	  

	  if(illegal==false){
	  
	  		// Kolla här att password är rätt skrivet 2 gånger
		//	if(form.Password.value==form.Password2.value && form.Password.value.length>=6)	{
	  		form.submit()
		//	} else if(form.Password.value!=form.Password2.value) {
		//	alert("Du har inte uppgivit lösenordet två gånger");
		//	} else if(form.Password.value.length<6)	{
		//	 alert("Du måste ange minst 6 tecken som lösenord");
		//	}
	 	}	// End if illegal==false
		return true;
	
}	 // end validate


//***************************************************************************
//** 
//** Validerar Users
//** 
//***************************************************************************

function validate(form)  {

     var nr=form.elements.length;	// Hämta ut hur många formulärfält det är
	  
	  for(i=0; i<nr;i++){	// loopa igenom alla formulärelement.
		  el=form.elements[i];	// el blir ett element.
		  var illegal=false;

		  if(el.value=='' && el.name!="MemberNo" && el.name!="Email" && el.name!="Address" && el.name!="Zip" && el.name!="City" && el.name!="Phone"){
		  		alert('Fyll i '+ getFieldName(el.name))
		  		illegal=true;		// Sätts true då inte alla fält fyllts i.
		  		break;
		  }	// end if
	  }	// end for

	  	// Nilu 2007-03-08:
		// Kolla att datumen för flightinfo är korrekt skrivna
		if(form.Pc ){
		dateRegexp = new RegExp(/^(\d{4})-(\d{2})-(\d{2})$/);
		dateMatch=dateRegexp.exec(form.Pc.value)
			if(dateMatch==null){
				alert("Fyll i Pc-datumet på formen åååå-mm-dd.");
				illegal=true;
			}
		}
		if(form.Cert ){
		dateRegexp = new RegExp(/^(\d{4})-(\d{2})-(\d{2})$/);
		dateMatch=dateRegexp.exec(form.Cert.value)
			if(dateMatch==null){
				alert("Fyll i Certifikat-datumet på formen åååå-mm-dd.");
				illegal=true;
			}
		}

		if(form.Medical ){
		dateRegexp = new RegExp(/^(\d{4})-(\d{2})-(\d{2})$/);
		dateMatch=dateRegexp.exec(form.Medical.value)
			if(dateMatch==null){
				alert("Fyll i Medical-datumet på formen åååå-mm-dd.");
				illegal=true;
			}
		}

	 

	   if(illegal==false){
		
	  		// Kolla här att password är rätt skrivet 2 gånger
			
			if(form.Password.value==form.Password2.value && form.Password.value.length>=6)	{
	  			 // Kolla nu om Email är ifyllt och kryssrutan för att skicka är kryssad. Om inte, varna för att
	  			 // lösenordet kan vara automatiskt genererat, och omöjligt att känna till.
	  			 if(form.Email.value=="" || form.send.status==false){
	  			 	if(confirm("Användaren kommer inte att meddelas sina uppgifter via e-post. Vill du fortsätta?(Lösenordet kan förbli okänt om det har genererats automatiskt)"))	{
	  			
	  			
	  					form.submit()
	  				} 
	  			}else 
	  			{
						form.submit()
	  			}
			} else if(form.Password.value!=form.Password2.value) {
			alert("Du har inte uppgivit lösenordet två gånger");
			} else if(form.Password.value.length<6)	{
			 alert("Du måste ange minst 6 tecken som lösenord");
			}

	

	 	}	// End if illegal==false
		return true;
}	 // end validate


//***************************************************************************
//** 
//** Validerar admin i Users
//** 
//***************************************************************************

function validateAdmin(form)  {

     var nr=form.elements.length;	// Hämta ut hur många formulärfält det är
	  
	  for(i=0; i<nr;i++){	// loopa igenom alla formulärelement.
		  el=form.elements[i];	// el blir ett element.
		  var illegal=false;

		  if(el.value=='' && el.name!="MemberNo"){
		  		alert('Fyll i '+ getFieldName(el.name))
		  		illegal=true;		// Sätts true då inte alla fält fyllts i.
		  		break;
		  }	// end if
	  }	// end for

	   if(illegal==false){
		
	  		// Kolla här att password är rätt skrivet 2 gånger
			
			if(form.Password.value==form.Password2.value && form.Password.value.length>=6)	{
	  		form.submit()
			} else if(form.Password.value!=form.Password2.value) {
			alert("Du har inte uppgivit lösenordet två gånger");
			} else if(form.Password.value.length<6)	{
			 alert("Du måste ange minst 6 tecken som lösenord");
			}
	 	}	// End if illegal==false
		return true;
}	 // end validate


//***************************************************************************
//** 
//** Validerar news.
//** 
//***************************************************************************

function validateNews(form)  {

     var nr=form.elements.length;	// Hämta ut hur många formulärfält det är
	  
	  for(i=0; i<nr;i++){	// loopa igenom alla formulärelement.
		  el=form.elements[i];	// el blir ett element.
		  var illegal=false;

		  if(el.name!="Url" && el.name!="UrlText" && el.value=='' && el.name!="referer" ){
		  		alert('Fyll i '+ getFieldName(el.name))
		  		illegal=true;		// Sätts true då inte alla fält fyllts i.
		  		break;
		  }	// end if
	  }	// end for

	   if(illegal==false){
		
	  		form.submit()
			
	 	}	// End if illegal==false
		return true;
}	 // end validate news



//***************************************************************************
//** Översätter fältnamn till begriplig svenska.
//** 
//** 
//***************************************************************************

function getFieldName(name){	// funktion som översätter fältnamn till förståelig text.
	  if(name=='Handle'){
	  		return('Anv.namn');
		}
	  if(name=='Password'){
	  		return('Lösenord');
		}
		if(name=='Password2'){
	  		return('Lösenord');
		}
	  if(name=='Email'){
	  		return('E-post');
		}
	  if(name=='Address'){
	  		return('Adress');
		}
	  if(name=='Zip'){
	  		return('Postnr.');
		}
	  if(name=='Phone'){
	  		return('Telefon');
		}
	  if(name=='City'){
	  		return('Ort');
		}
	  if(name=='Name'){
	  		return('Namn');
			}
		if(name=='GroupName'){
	  		return('Organisation');
		}
		if(name=='Cathegory'){
	  		return('Intresseområde');
		}
		if(name=='Price'){
	  		return('Prisnivå');
		}
		if(name=='Heading'){
	  		return('Rubrik');
		}
		if(name=='Intro'){
	  		return('Ingress');
		}
		if(name=='Info'){
	  		return('Text');
		}
		if(name=='Pc'){
	  		return('Senaste PC eller lärarledd flygtimme');
		}
		if(name=='Cert'){
	  		return('Certifikatets giltighet');
		}
		if(name=='Medical'){
	  		return('Medical giltighet');
		}
		if(name=='TimeTotal'){
	  		return('Flygtid totalt');
		}
		if(name=='TimeLast1'){
	  		return('Flygtid förra året');
		}
		if(name=='TimeLast2'){
	  		return('Flygtid förrförra året');
		}





		

		

}		// Slut getFieldName


/***********************************************************
* Funktionalitet i (eller som påverkar) menyn (till vänster)
************************************************************/

	// Initiera objekten med variabler
function startup(){

	//ns4 = (document.layers)? true:false;
	//ie4 =(document.all)? true:false;
	 // Sätt upp variabel för blocket.
	 if(ns4) menyD=document.menuDiv;
	 if(ie4) menyD=menuDiv.style;
	 if(ns6) menyD=document.getElementById("menuDiv").style;
	 if(ns4) toolbar1=document.buttonDiv1;
	 if(ie4) toolbar1=buttonDiv1.style;
	 if(ns6) toolbar1=document.getElementById("buttonDiv1").style;
	 if(ns4) toolbar2=document.buttonDiv2;
	 if(ie4) toolbar2=buttonDiv2.style;
	 if(ns6) toolbar2=document.getElementById("buttonDiv2").style;
	 

	 var inmotion = false;	// Variabel som är true då menyn är i rörelse.
	
	 // Y-position
	 menyD.ypos = parseInt(menyD.top);
	 menyD.startypos = parseInt(menyD.top);
	
	 // Stoplägeti y-led
	 menyD.stopypos = 28;
	
	 // Hur många pixlar som ska hoppas i varje steg
  	menyD.step = 10;

}

// Denna funktion är en patch för att få bort horisontell scrollbar
// nederst i menyn på NS 4.5. Denna scrollbar uppkommer då NS renderar
// objekt utanför sidan (Verktygsmenyn). Genom att flytta ut denna
// först efter sidans inläsning blir man av med scrollbar.

function moveOut()	{
 		// Flytta ut menyD till -180
		menyD.top =-190 ;
		// Gör menyD synligt
		if(ns4)	{
			menyD.visibility = "show";
			}
		if(ie4 || ns6)	{
			menyD.visibility = "visible";
			}
			// Sätt ny xpos.
	 menyD.ypos = parseInt(menyD.top);
	 menyD.startypos = parseInt(menyD.top);



}


// Kolla inmotion och om false, kör metoder för rörelsen.
function pushOut(){
 	if(inmotion==false)	{
	 moveOut();
	 slideOut();
	 showFirst();
	}
}

// Kolla inmotion och om false, kör metoder för rörelsen.
function dragIn()	{
	 if(inmotion==false)	{
		  slideIn();
		  showSecond();
	 }
}

// Drar ut menyn
function slideOut() {
	if (menyD.ypos <= menyD.stopypos) {
             menyD.ypos += menyD.step;
             menyD.top = menyD.ypos;
				 inmotion = true;				//Tala om att menyn är i rörelse.
             setTimeout("slideOut()",5);
     }  else {
	  		inmotion = false; // Om menyn har stannat, sätt inmotion false.
		}
}

// Drar in menyn
function slideIn() {
     if (menyD.ypos >= menyD.startypos) {
             menyD.ypos -= menyD.step;
             menyD.top = menyD.ypos;
				 inmotion = true;
             setTimeout("slideIn()",5);
     }	else	{
				inmotion=false;  // Om menyn har stannat, sätt inmotion false.
	  }
}

// släcker version ett av Välj Enhet, tänder version två
function showFirst()	{
				if(ns4)	{
				toolbar1.visibility = "hide";
				toolbar2.visibility = "show";
				}
				if(ie4 || ns6)	{
				toolbar1.visibility = "hidden";
				toolbar2.visibility = "visible";
				}

}

// släcker version två av Välj Enhet, tänder version ett
function showSecond()	{
				if(ns4)	{
				toolbar1.visibility = "show";
				toolbar2.visibility = "hide";
				}
				if(ie4 || ns6)	{
				toolbar1.visibility = "visible";
				toolbar2.visibility = "hidden";
				}

}


//***************************************************************************
//** Öppnar en confirm-dialog med insänt meddelande. Returnerar true för OK 
//** eller false för Cancel.
//** 
//***************************************************************************
function confirmBox(message){
	return confirm(message);
	}

function deleteUser(form)	{
 	var send=confirmBox("Vill du ta bort användaren, samt användarens alla bokningar?");
	if(send==true)	{
	 	form.submit();
	}
}


//***************************************************************************
//**  Frågar om man vill ta bort föremål o alla bokningar.
//** 
//** 
//***************************************************************************

function deleteItem(form)	{
 	var send=confirmBox("Vill du ta bort föremålet, samt alla bokningar som gäller detta?");
	if(send==true)	{
	 	form.submit();
	}
}

	function deleteBooking(form)	{
 	var send=confirmBox("Vill du ta bort bokningen?");
	if(send==true)	{
	 	form.submit();
	}

}

	function deleteNews(form)	{
 	var send=confirmBox("Vill du ta bort artikeln?");
	if(send==true)	{
	 	form.submit();
	}

}

//***************************************************************************
//**  Kollar om inmatat datum är inskrivet på rätt form.
//** 
//** 
//***************************************************************************

function isValidDate(dateStr) {
// Checks for the following valid date formats:
// MM/DD/YY   MM/DD/YYYY   MM-DD-YY   MM-DD-YYYY
// Also separates date into month, day, and year variables

//var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;

//var datePat = /^(\d{4})(\-)(\d{2})(\-)(\d{2})$/;
var datePat = /^(\d{2})(\d{2})(\d{2})$/;
// To require a 4 digit year entry, use this line instead:
// var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;




var matchArray = dateStr.match(datePat); // is the format ok?
if (matchArray == null) {
alert("Ange datum på formen ååmmdd")
return false;
}
month = matchArray[2]; // parse date into variables	(3)
//alert("month=" + month);
day = matchArray[3];	  //(5)
//alert("day=" + day);
year = matchArray[1];
//alert("Year=" + year);
if (month < 1 || month > 12) { // check month range
alert("Ange en månad mellan 1 och 12.");
return false;
}
if (day < 1 || day > 31) {
alert("Ange ett datum mellan 1 och 31.");
return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
alert("Månaden "+month+" har inte 31 dagar!")
return false
}
if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day>29 || (day==29 && !isleap)) {
alert("Februari " + year + " har inte " + day + " dagar!");
return false;
   }
}
return true;  // date is valid
}



//***************************************************************************
//** Skickar iväg en ny sorteringsordning för OwnBookings.
//** Men kollar först att datumen är OK.
//** 
//***************************************************************************
function submitSortings(form)	{
	// Bara om inga fel i datumen.
 if(isValidDate(form.sortstart.value) && isValidDate(form.sortend.value))	{
  form.submit();
 }

}

//***************************************************************************
//** Skickar iväg en ny sorteringsordning för allBookings.
//** Men kollar först att datumen är OK.
//** Sätter först hiddenfältet printable=true, som skickar till print-versionen.
//***************************************************************************
function submitPrintableSortings(form)	{
	// Bara om inga fel i datumen.
 if(isValidDate(form.sortstart.value) && isValidDate(form.sortend.value))	{

 form.printable.value=true;
 form.submit();
 }

}


//***************************************************************************
//** Används vid LogOn.php3. Logon-rutan skall aldrig komma upp i flytande
//** fönster. Istället skall i så fall detta stängas och föräldern skall
//** laddas om, vilket innebär att logon öppnas där istället.
//***************************************************************************
function checkWindow()	{

	// Kolla först om denna har förälder.
	if(window.opener!=null )	{	// Ja, har förälder ( i NS - är förälder)
		// ladda om föräldern
	
		opener.location.reload();

		// stäng detta fönster
		self.close();
		}

}

//***************************************************************************
//** Används i samband med register.php3.
//** Kollar om anv. har valt ett system med reklam. Om så, öppnar ett fönster
//** för val av reklam.
//***************************************************************************
function checkAdSelection(form)	{
		var check=true;	// förblir true om man får spara.
         
	// Hämta ut noad-nivån.
	var noad=form.noad.value;

	// hämta ut valt värde ur selectboxen Price
	var priceid=form.Price.options[form.Price.selectedIndex].value;


	// Kolla om priceid<noad. Då är det reklam
	if(parseInt(priceid,10)<parseInt(noad,10))
                 
 {

		// kolla nu om man redan har valt reklamtyp.
		if(form.adcat.value=="")	   {
			// Endast i detta fall, öppna fönster för val.
			showAdWindow("adselect.php3");
			check=false;	// Ojdå, ingen reklam vald. hindra att spara.

		}
	}	
	else {  // om man har valt utan reklam, töm under alla omst. noad.
	form.adcat.value="";
	}  // slut yttre if.
	return check;	// returnera för att meddela om man får spara eller ej.

}	// slut checkAdSelection

//***************************************************************************
//** Används i samband med adselect.php3
//** Kollar att man valt någon reklamtyp och sparar i så fall i
//** adcat-fältet kommaseparerat?
//***************************************************************************
function saveAdSelection(form)	{
        

		var values = new Array();
		for (var i = 0; i < form.Cathegory.options.length; i++){
 		 if (form.Cathegory.options[i].selected){
    			values[values.length] = form.Cathegory.options[i].value;
    			}	// if
    		}	// for
	opener.document.forms[0].adcat.value = values.join();
	self.close();

 

         }

//***************************************************************************
//** Används i samband med register.php3
//** Varnar för att man måste styrka att org. är momsbefriad.
//***************************************************************************
function warnVAT()	{
alert("VARNING!\r\nDu kommer att bli ombedd att skriftligen styrka att organisationen är momsbefriad.");
}

//***************************************************************************
//** Stänger fönstret som anropar denna
//** 
//***************************************************************************
function closeWindow()	{
	self.close();
}

//***************************************************************************
//** I items.php3.
//** Hämtar in vilken maxtid som är vald, lagrar den i hiddenfältet.
//***************************************************************************
function updateMaxTime(form)	{
	var amount=form.MaxAmount.value;
	var unit=form.MaxUnit.options[form.MaxUnit.selectedIndex].value;


	var maxms=amount*unit;
	form.MaxTime.value=maxms;


}

//***************************************************************************
//** I items.php3.
//** Kollar att fälten är ifyllda och skickar för lagring.
//***************************************************************************
function registerItem(form)	{
	if(form.Name.value==""){
		alert("Ange ett namn på föremålet!");
	}
	 else if(form.Description.value=="")	{
	 	alert("Ange en beskrivning av föremålet");
	 }
	 else if(form.MaxAmount.value==""){
		alert("Ange maximalt tillåten bokningstid i timmar/dagar.\n 0 (noll) innebär obegränsad bokningstid.");
	 } else if(form.MaxUnit.options[form.MaxUnit.selectedIndex].value=="3600")	{
	 	// Om man har valt timmar, kolla så att det inte är mer än 24.
	 	if(form.MaxAmount.value>24)	{
	 		alert("Du får aldrig ange mer än 24 timmar.\n Välj att ange i dagar för längre tid.");
	 		form.MaxAmount.value=24;
	 	} else {
			form.submit();
	 	}
	 
	 }
	 else {
		form.submit();
	 }

}


//***************************************************************************
//** I itemscathegories.php3.
//** Kollar att fälten är ifyllda och skickar för lagring.
//***************************************************************************
function registerItemCat(form)	{
	if(form.Name.value==""){
		alert("Ange ett namn på gruppen!");
	}
	 else {
			form.submit();
	 	}
}



//***************************************************************************
//** I booking.php3
//** Kollar att längden på bokningen inte är längre än godkänd maxtid för föremålet.
//** Kollar även att kommentaren inte är mer än 100 tecken.
//***************************************************************************
function submitBooking(form)	{
	// Hämta ut maxtiden
	var stringMaxtime=form.maxTime.value*1000;	// Gör till millisekunder.

	var intMaxTime=parseInt(stringMaxtime,10);

	// Hämta ut starttiden
	var stringStartYear = form.sYear[form.sYear.selectedIndex].value;	// årtalet för start
	var stringStartMonth = form.sMonth[form.sMonth.selectedIndex].value;	// Månaden för start
	var stringStartDate = form.sDay[form.sDay.selectedIndex].value;	// Dagen för start.
	var stringStartTime = form.sTime[form.sTime.selectedIndex].value;	// Tiden för start.

	// Ta ut delarna ur tiden.
	var stringStartHour=stringStartTime.substr(0,2); //substr(this.last2,0,2);
	var stringStartMinute=stringStartTime.substr(3);//(substr(this.last2,3);

	// Skapa datum för starttiden
	var dateStart=new Date(stringStartYear, stringStartMonth-1, stringStartDate, stringStartHour, stringStartMinute, 00);


	// Hämta ut sluttiden

	var stringEndYear = form.eYear[form.eYear.selectedIndex].value;	// årtalet för nya valda året.
	var stringEndMonth = form.eMonth[form.eMonth.selectedIndex].value;	// Månaden för nya valda året.
	var stringEndDate = form.eDay[form.eDay.selectedIndex].value;	// Dagen för nya valda året.
	var stringEndTime = form.eTime[form.eTime.selectedIndex].value;	// Tiden för nya valda året.
	
	// Ta ut delarna ur tiden, eftersom tiden är sträng på formatet 00:00.
	var stringEndHour=stringEndTime.substr(0,2); //substr(this.last2,0,2);
	var stringEndMinute=stringEndTime.substr(3);//(substr(this.last2,3);

	// Skapa ett datumobjekt för vald sluttid.
	var dateEnd=new Date(stringEndYear, stringEndMonth-1, stringEndDate, stringEndHour, stringEndMinute, 00);


	// Ta fram antal millis mellan start o slut.
	var intBookingTime=dateEnd.valueOf()-dateStart.valueOf();

	// Jämför med maxtime
	// Om OK, gör submit, annars alerta och exit.
	if (intMaxTime<intBookingTime && intMaxTime!=0 )	{
		// Försöker boka för lång tid!

		// Ta fram hur lång tid man maximalt får boka och om detta skall anges i
		// timmar eller dagar.

		var unit="Obegränsat";	// Denna fylls sedan med timmar eller dagar, beroende på vad som ska visas
		var amount=0;	// Det är denna som håller vald mängd timmar/dagar.

		var dayinc=24*60*60*1000;	// Ett dygns millisek.
		var hourinc=60*60*1000;	// En timmas millisek.
		
		if(intMaxTime<dayinc && intMaxTime>0)	{	// Om mindre än en dag, visa som timmar
			unit="Timmar";
			amount=intMaxTime/hourinc;
		} else if(intMaxTime>=dayinc){
			unit="Dagar";
			amount=intMaxTime/dayinc;
		}

		alert("Bokningen får ej göras.\nDetta föremål får maximalt bokas i\n"+amount+" "+unit);

	}else {	// Detta sker om bokning får genomföras.

		// Kolla nu antal tecken i comment-fältet.
		var commentlength=form.Comment.value.length;
		var allowedLength=form.f_allowed.value;
		if(commentlength>allowedLength){
			alert("Bokningen kan ej göras. Kommentaren överskrider "+allowedLength+" tecken.");

		} else {

		form.submit();
		}	// Slut koll på antal tecken i comment.
	}


}	// Slut submitBooking

//***************************************************************************
//** Skickar till allbookings.php3 med printable=true
//** 
//***************************************************************************
function showPrintableBookings(session)	{
 location.href="allbookings.php3?session="+session+"&printable=true";
}

//***************************************************************************
//** Generell funktion som skickar tillbaka till föregående sida.
//** 
//***************************************************************************
function goBack()	{
 history.go(-1);
}

//***************************************************************************
//** Denna funktion kollar om administratören är ny.(inga items eller users)
//** Då ska instruktionsfönstret poppa upp.
//***************************************************************************
function decideInstructions()	{
	// Kolla först om man är på rätt sida.
	// Denna variabel finns bara om man är admin.
	var status=document.nrform.status.value;
	// Sessionsvariabeln används för båda typerna av användare.
	var sessionid=document.nrform.sessionid.value;
	if(status=="admin"){

	var items=document.nrform.nrofitems.value;
	var users=document.nrform.nrofusers.value;
	var sessionid=document.nrform.sessionid.value;

			if(parseInt(items,10)==0 && parseInt(users,10)==1)	{
			showInstructions("firstinstructions.php3?session="+sessionid);

			}	// slut inre if


	}	// slut yttre if

	// Här avgör vi om vi ska visa instruktioner för användare.
	// Försök bara ta ut startscreen om inloggad inte är admin. Annars blir det fel.
	// Kolla så att inloggad inte är admin mha status
	if(status!="admin"){
	var startscreen=document.nrform.startscreen.value;
	}
	if(startscreen=="show") {
		
		showInstructions("firstinstructions_users.php3?session="+sessionid);
		
	}	// Slut if startscreen=="show"
}

//***************************************************************************
//** Denna funktion hamnar man i då användaren stänger sitt first hjälpfönster
//** Då ska fönstret antingen stängas, eller ska en submit ske för att
//** lägga en i db att fönstret inte ska visas igen.
//***************************************************************************
function closeFirstUser(form){
	// Kolla först om startscreen är vald. Då ska vi submitta.
	var startscreen=form.startscreen;
	
	if(startscreen.checked){
	form.submit();	
	} else {
	self.close();	// Stäng fönstret.
	}
	
}

//***************************************************************************
//** Denna funktion kollar att sökning i Users.php3 är OK. Söker sedan.
//***************************************************************************
function searchUsers(form){
	// Ta först ut värdet is_usearch.
	var select=form.s_usearch.options[form.s_usearch.selectedIndex].value;
// Kolla först att inte är -----, då ska man inte kunna söka.
	if(select=="0"){
	 alert("Välj vad du ska söka efter först!");
	} else if(select=="1") {	// alla
	 form.submit();
	} else if(select=="2"){ // namn
			if(form.t_usearch.value==""){
			 alert("Du måste skriva ett namn att söka efter!");
			}  else {
			 form.submit();
			}
	} else if(select=="3"){	  	// Sök på medl.nr.
			if(form.t_usearch.value==""){
			 alert("Du måste skriva ett medlemsnummer att söka efter!");
			}  else {
			 form.submit();
			}

	} // slut if/else för olika typer av sökningar

	}  // slut searchUsers

//***************************************************************************
//** Denna funktion disablar sök och textfält om fel sak valts i s_usearch
//** i user.php3. Triggas av onchang.
//***************************************************************************
function checkUserSelect(form){

	// Ta först ut värdet is_usearch.
	var select=form.s_usearch.options[form.s_usearch.selectedIndex].value;

	if(select=="0"){	// valt ----
		// disabla såväl sök som textfält
		form.b_usearch.disabled=true;
		form.t_usearch.disabled=true;
		}

	if(select=="1"){	// valt alla
	 	// Disabla bara textfältet.
		form.b_usearch.disabled=false;
		form.t_usearch.disabled=true;
	}
	if(select=="2" || select =="3"){	 // Valt namn eller medlemsnr.
		  // enabla båda.
		form.b_usearch.disabled=false;
		form.t_usearch.disabled=false;
		}

	}	 // Slut funktionen

//***************************************************************************
//** Denna funktion gör submit från members.php3 för Visa för utskrift.
//** Den kollar hur många som kommer att visas och varnar om det är över 100.
//***************************************************************************
function submitViewMembers(url,number){
	if(number>100){	// Varna om fler än 100 medlemmar i listan soom ska skrivas ut.
		if(confirm("Listan du vill visa innehåller "+number+" medlemmar.\nDen kan ta lång tid att visa.\nVill du fortsätta?")){
		  this.location.href=url;
		}
		}	else { // Visa direkt om mindre än 100 medlemmar.
		  this.location.href=url;
		}
}	// Slut funktion

 //***************************************************************************
//**  Frågar om man vill ta bort gruppen i itemscathegories.php3 
//***************************************************************************
function deleteItemCat(form)	{
 	var send=confirmBox("Vill du ta bort gruppen?\nFöremålen raderas INTE!");
	if(send==true)	{
	 	form.submit();
	}
}

//***************************************************************************
//**  Sätter i cookie vilken grupp som skall visas i day.php3 från cal.php3
//***************************************************************************
function setGroupCookie(select)	{

 	//Ta först ut värdet som har valts
	var group=select.options[select.selectedIndex].value;

	// Sätt sedan cookien.
	document.cookie="bokningsbasen_group="+group;
	
	
	location.reload();

}

//***************************************************************************
//**  Sätter i cookie vilken grupp som skall visas i day.php3 från day.php3
//***************************************************************************
function setGroupCookieInDay(select)	{

 	//Ta först ut värdet som har valts
	var group=select.options[select.selectedIndex].value;

	// Sätt sedan cookien.
	document.cookie="bokningsbasen_group="+group;

	// Ladda nu om sidan
	location.reload();

}


//***************************************************************************
//**  Används i systemstatus.php3. Verifierar skapande/borttag av Log-tabell.
//***************************************************************************
function checkLogAction(form)	{
	// Hämta ut om man vill skapa eller ta bort 
	if(form.r_Log[0].checked){	// Man har valt Ja
		if(confirm("Vill du skapa en loggfil?")){
			// Här hamnar man om man vill skapa loggfil.
			form.submit();
		}		
	
	}	// Slut val ja	
	else if(form.r_Log[1].checked){
		if(confirm("Vill du verkligen ta bort systemets loggfil?")){
			form.submit();
		}		
	
	}	// slut val nej	

}	// Slut checkLogAction


//***************************************************************************
//**  Används i systemstatus.php3. Verifierar skapande/borttag av AllowLateChange
//***************************************************************************
function checkAllowLateAction(form)	{
	// Hämta ut om man vill skapa eller ta bort 
	if(form.r_Late[0].checked){	// Man har valt Ja
		if(confirm("Systemets användare kommer nu endast att kunna ändra/radera sina bokningar, innan de har påbörjats!")){
			// Här hamnar man om man vill skapa loggfil.
			form.submit();
		}		
	
	}	// Slut val ja	
	else if(form.r_Late[1].checked){
		if(confirm("Vill du verkligen tillåta systemets användare att radera/ändra sina bokningar tills slutet av bokningarna?")){
			if(confirm("BokningsBasen rekommenderar att du i kombination med detta val aktiverar systemets loggfil, om du inte redan har gjort det.\nDå har du möjlighet att följa alla bokningar i systemet även om användarna kan radera sina bokningar medan de pågår.")){

			form.submit();
			}
		}		
	
	}	// slut val nej	

}	// Slut checkLogAction

//***************************************************************************
//** Skickar till log.php3 
//** 
//***************************************************************************
function showLogPage(session)	{
 location.href="log.php3?session="+session;
}

//***************************************************************************
//** Skickar till log.php3 med printable=true
//** 
//***************************************************************************
function showPrintableLog(session)	{
 location.href="log.php3?session="+session+"&printable=true";
}

//***************************************************************************
//** I systemstatus.php3.Gör submit vid ändring av BookingLimit.
//** 
//***************************************************************************
function submitLimit(form)	{
 form.submit();
}

//***************************************************************************
//** I messages.php3. Räknar tecken i rutan och stoppar om mer än 255.
//** 
//***************************************************************************
function countTokens(form)	{

 var no=form.message.value.length;

 // Ett tecken för mycket. Ta bort sista tecknet. Varna.
 if(no>255){
	 text=form.message.value;
	 textcut=text.substring(0,255);
	 form.message.value=textcut;
	 no=form.message.value.length;
	 alert("Du har överskridit tillåten textlängd.");
	}
	 
 form.counter.value=no;

}

//***************************************************************************
//** I messages.php3. Kollar och gör submit
//** 
//***************************************************************************
function sendMessage(form)	{
	
	// Kolla att användare är vald

	// ta ut användare
	name=document.forms[0].s_user.options[document.forms[0].s_user.selectedIndex].value;

	if(name=="null"){
		alert("Du har inte valt en mottagare");

	} else {
		
			form.submit();
		
	}
	
}

//***************************************************************************
//** I messages.php3. Kollar och gör submit
//** 
//***************************************************************************
function deleteMessage(form)	{
		// ta ut användare
	name=document.forms[0].s_user.options[document.forms[0].s_user.selectedIndex].value;

	if(name=="null"){
			alert("Du har inte valt en mottagare");
	
	} else if(document.forms[1].message.value==""){
		alert("Användaren har inget meddelande att radera!");
	

	} else {
		
			if(confirm("Vill du ta bort meddelandet?")){
				form.submit();
			}
	}
}
//***************************************************************************
//** I messages.php3. Sätter hiddenfält i aktuell form för att ange mottagare
//** 
//***************************************************************************
function setMessageReceiver(form){
	
		form.submit();

}



 //***************************************************************************
//**  Frågar om man vill ta bort ett meddelande (nilu 020504) 
//***************************************************************************
function deleteMessage(form)	{
 	var send=confirmBox("Vill du ta bort meddelandet?");
	if(send==true)	{
	 	form.submit();
	}
}


//***************************************************************************
//** I booking.php3. Räknar tecken i rutan och stoppar om mer än 200.
//** 
//***************************************************************************
function countTokens(form)	{

 var no=form.Comment.value.length;
 
 var allowedLength=form.f_allowed.value;
 
 // Hit kommer man när man trycker ner. no är 1 mindre än vad man just tryckt ner.

 if(no>allowedLength){
	 
	 alert("Du har överskridit tillåten textlängd.");
	 text=form.Comment.value;
	 textcut=text.substring(0,allowedLength);
	 form.Comment.value=textcut;
	 no=allowedLength;
	
	}
	 
 form.counter.value=no;

}

//***************************************************************************
//** Används vid bokningsfönster i BB2 för att reloada day.php3
//***************************************************************************
function reloadParent()	{

	// Kolla först om denna har förälder.
	if(window.opener!=null )	{	// Ja, har förälder ( i NS - är förälder)
		// ladda om föräldern
	
		opener.location.reload();

		}

}

//end_lib

