/*************************************************************************
--------------------------------------------------------------------------
Göteborgs IT Konsult AB (GOTIT AB)										
--------------------------------------------------------------------------
Innehåller dessa funktioner:    
1. ini()
		A. Identifiering av webbläsare
		B. Generering av tangent-events
				Edit(e)
				Edit_Pr(e)
				Edit_Up(e)
		C. Generering av mouse-events
				MsDwn(e)
				MsMv(e)
2. OpenWin(url,w,h,t,l)
3. PnrKontroll(pnr)
4. StorleksKontroll()
5. AntalTecken(str,maxAntal)
6. AnalysAvObjekt(str)
7. NumeriskKontroll(str) 	" Kontroll att strängen endast innehåller siffror"
8. NumeriskKontroll2(str) " Kontroll att strängen endast innehåller siffror och mellanslag (ex. kontroll av postnr)"
9. Bookmark(url,description)
10. DbSecure(text)
11. NewPW(antalTecken)
12. DatumKontroll(sDatum)
13. BytFormat(sDatum)
14. SetCheckbox(obj)
15. kontrolleraWebblasare(bUtskrift)
16. ValidEmail(mail)
17. ValidEmailChar(tmp) - tar emot asciivärde
18. ValAvFtg(formular,val)
19. ReLoad(formular)
20. MaxAntal(obj,antal)
21. selectAll(formular,obj) - Markerar allt i en selectbox satt till multiple
22. deselectAll(formular,obj) - Avmarkerar allt i en selectbox satt till multiple
-------------------------------------------------------------------------
Senast ändrad: 020709,020712,021002,021008,030123,030331, 030613
-------------------------------------------------------------------------
**************************************************************************/
 
var ns4, ns6, ie4, ie5, visible, hidden
/* 
1. ----------------------------------------------------------------------------- 
 ini (Anropas när sidan laddats för att avgöra vilken browser som skall anpassas till och 
 			sättning) 
 Inparameter: 
 Returnerar:*/
//function ini(){
	/*A. -----------------------------------------------------------------------------
	Kontroll av webbläsare */
	ns4=((navigator.appName=="Netscape") && (document.layers))?true:false
	ns6=((navigator.appName=="Netscape") && (parseInt(navigator.appVersion) >= 5))?true:false
	ie4=((navigator.appName=="Microsoft Internet Explorer") && (parseInt(navigator.appVersion) == 4))?true:false
	ie5=((navigator.appName=="Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 5))?true:false 

	//Sätter globala javascript-variabler
	if (ns4){
		//Nyttjas vid ShowObj och HideObj
		visible="show";
		hidden="hide";	
	}
	else{
		//Nyttjas vid ShowObj och HideObj
		visible="visible";
		hidden="hidden";
	}
	/* 
	B. ----------------------------------------------------------------------------- 
	 GENERERING AV TANGENT-EVENTS (Hantering av knapptryckningar)
	Den händelse som skall aktiveras avmarkeras både för Netscape och Explorer
	*/
	if (ns4 || ns6) {
	// 		document.captureEvents(Event.KEYDOWN);
	//  	document.captureEvents(Event.KEYPRESS);
	//  	document.captureEvents(Event.KEYUP);
	}
	//document.onkeydown = Edit;
	//document.onkeypress = Edit_Pr;
	//document.onkeyup = Edit_Up;

	/*För att kunna använda sig av Edit, Edit_Pr och Edit_up funktionerna 
	applicera nedanstående script lokalt på fil och lägg till den funktionalitet
	som skall gälla*/

	//ONKEYDOWN
	/*
	function Edit(e){
  	var tangent;
		tangent=(ns4 || ns6)?e.which:window.event.keyCode
		//FUNKTIONALITET
	}
	*/
	//ONKEYPRESS
	/*
	function Edit_Pr(e){
  	var tangent;
		tangent=(ns4 || ns6)?e.which:window.event.keyCode
		//FUNKTIONALITET
	}
	*/
	//ONKEYUP
	/*
	function Edit_Up(e){
  	var tangent;
		tangent=(ns4 || ns6)?e.which:window.event.keyCode
		//FUNKTIONALITET
	}
	*/
	/* 
	C. ----------------------------------------------------------------------------- 
	 GENERERING AV MOUSE-EVENTS (Hantering av musaktiviteter)
	Den händelse som skall aktiveras avmarkeras både för Netscape och Explorer
	*/
	if (ns4 || ns6) {
	 		//document.captureEvents(Event.MOUSEDOWN);
	  	//document.captureEvents(Event.MOUSEMOVE);
	}
	//document.onmousedown = MsDwn;
	//document.onmousemove = MsMv;	

	/*För att kunna använda sig av MsDwn och MsMv funktionerna applicera nedanstående 
	script lokalt på fil och lägg till den funktionalitet som skall gälla*/
	
	/*
	//ONMOUSEDOWN
	function MsDwn(e){
		//FUNKTIONALITET
	}
	*/
	/*
	//ONMOUSEMOVE
	function MsMv(e){
		//FUNKTIONALITET
	}
	*/
//}//INI-slut

/* 
2. ----------------------------------------------------------------------------- 
 OpenWin (Öppnar nytt fönster) 
 Inparameter: url, width, height, top, left, menubar, toolbar, location, status
 Returnerar: inget */
function OpenWin(url,w,h,t,l,menu,tool,loc,status){
	if (w=="")	w = '750';
	if (h=="")	h = '450';
	if (t=="")	t = '0';
	if (l=="")	l = '5';
	if (menu != "no" && menu != "No" && menu != "NO" && menu != "nO") menu = 'yes';
	if (tool != "no" && tool != "No" && tool != "NO" && tool != "nO") tool = 'yes';
	if (loc != "no" && loc != "No" && loc != "NO" && loc != "nO") 		loc = 'yes';
	if (status != "no" && status != "No" && status != "NO" && status != "nO") status = 'yes';	
	//Byt ut & mot @@@@ för att inte strängen skall brytas vid flera parameterar
	if (url.indexOf("help.asp") != -1){
		url = url.replace("&", "@@@@");	
		self.open("popup.asp?url='" + url + "'","","width="+w+",height="+h+",status="+status+",scrollbars=yes,resizable=yes,menubar="+menu+",toolbar="+tool+",location="+loc+",left="+l+",top="+t);
	}
	else if (url.indexOf("kontakt.asp") != -1){
		url = url.replace("&", "@@@@");	
		self.open("popup.asp?url='" + url + "'","","width="+w+",height="+h+",status="+status+",scrollbars=yes,resizable=yes,menubar="+menu+",toolbar="+tool+",location="+loc+",left="+l+",top="+t);
	}
	else
		self.open(url,"","width="+w+",height="+h+",status="+status+",scrollbars=yes,resizable=yes,menubar="+menu+",toolbar="+tool+",location="+loc+",left="+l+",top="+t);
}

/* 
3. -----------------------------------------------------------------------------
 PnrKontroll (Personnummer kontroll)
 Inparameter: personnummer utan bindestreck 
 Returnerar: true eller false */
function PnrKontroll(pnr){
  var sum=0, tal1, tal2,sTF;
	var tmp = pnr
	//Hantering av elever med tillfälligt personnummer, d v s TF + två siffrigt nummer som de fyra sista
	if (pnr.length==10){
		sTF = pnr.substring(6,8);
		if (sTF.toUpperCase()=="TF"){
			//Om personnummer är för tillfällig elev
			return true;
		}else{
			if (NumeriskKontroll(tmp)){
		    for (var i=0; i<pnr.length; i++){
		      tal1=parseInt(pnr.charAt(i));
				  if (i==0 || i==2 || i==4 || i==6 || i==8){
		  	    if (tal1*2>9){
			      tal2=(pnr.charAt(i)*2)%10;
					  tal2=tal2+1;
			  	  }
			    	else{
				  		tal2=tal1*2;
						}	
						sum=sum+tal2;
		 	  	}
			  	else if (i==1 || i==3 || i==5 || i==7){
						sum=sum+tal1;	  
			  	}
			  	else if (i==9){
			    	tal2=sum%10;
						tal2=10-tal2;
						if (tal2==10){
				  		tal2=0;
						}
			    	if (tal2!=tal1){
			      	return false;
			    	}
			  	}
		    }
		    return true;
		  }
		  else{
			  return false;
		  }
		}		
	}else{
		return false;
	}
}

/* 
4. -----------------------------------------------------------------------------
 StorleksKontroll (Kontroll av längd på sträng)
 Anropar även funktonen "AntalTecken" nedan
 Inparameter: sträng, max antal tecken 
 Returnerar: "" eller "övrigt (max "antal" tecken)" */
function StorleksKontroll(str,antal){
  var s="";
  if (!AntalTecken(str, antal)){ // parameter: sträng som skall kontrolleras och max antal tecken
    s=s+"övrigt (max "+antal+" tecken) "
  }
  return s;
}

/* 
5. -----------------------------------------------------------------------------
 AntalTecken (Räknar antal tecken)
 Anropas av funktionen ovan "StorleksKontroll"
 Inparameter: sträng och en sträng med max antal tecken
 Returnerar: true eller false */
function AntalTecken(str, maxAntal){
	var counter=0;
	var totalt=0;
	var tal;
	for (var i=0; i < str.length; i++){
		counter=counter+1;
  	var chr = str.charAt(i);
		if (chr=="\u000D"){
			tal=counter%70;
			counter=counter-tal;
			if (tal>0)
		  	tal=(counter/70)+1;  
			else
		  	tal=counter/70;
			totalt=(totalt+(tal*70));
			counter=0;
		}
  }
  totalt=totalt+counter;
  if (totalt<=maxAntal){
  	return true; // ok! Rätt antal tecken
  }
  else{
  	return false; // Fel! För många tecken
  }
}

/* 
6. -----------------------------------------------------------------------------
 AnalysAvObjekt (Sätter alla radbrytningar till "<br>")
 Inparameter: sträng
 Returnerar: den nya strängen med innehållande <br> */
function AnalysAvObjekt(str){
	var nystr="";
	for (var i=0; i < str.length; i++) {
     var chr = str.charAt(i);
	  if (chr=="\u000D"){
	 	nystr=nystr + "<br>";
	  }
	  else{
	    nystr=nystr + chr;
	  }
	}
	return nystr;
}

/* 
7. -----------------------------------------------------------------------------
 NumeriskKontroll (kontrollerar att inparametern bara innehåller siffror)
 Inparameter: sträng
 Returnerar: true eller false */
function NumeriskKontroll(str){
	for (var i=0; i<str.length; i++) {
     	var chr = str.charAt(i);
		  if (chr=="1" || chr=="2" || chr=="3" || chr=="4" || chr=="5" || chr=="6" || chr=="7" || chr=="8" || chr=="9" || chr=="0"){
			// Gör inget!
		  } 	  	  
		  else
				return false; // Fel! Strängen innehåller icke numeriska tecken
  }	 
  return true; // Strängen är ok
}
/* 
8. -----------------------------------------------------------------------------
 NumeriskKontroll2 (kontrollerar att inparametern bara innehåller siffror och mellanslag)
 Inparameter: sträng
 Returnerar: true eller false */
function NumeriskKontroll2(str){
	for (var i=0; i<str.length; i++) {
     	var chr = str.charAt(i);
		  if (chr==" " || chr=="1" || chr=="2" || chr=="3" || chr=="4" || chr=="5" || chr=="6" || chr=="7" || chr=="8" || chr=="9" || chr=="0"){
			// Gör inget!
		  } 	  	  
		  else
				return false; // Fel! Strängen innehåller icke numeriska tecken
  }	 
  return true; // Strängen är ok
}
/*
/*
9. -----------------------------------------------------------------------------
	Bookmark (lägger till urlen i användarens favoriter)
	Inparameter: url och beskrivning
	Retunerar: */
function Bookmark(url, description){
//***---Denna text visas om man har Netscape.
	netscape="Tryck först på OK och sedan på CTRL+D för att bookmarka sidan."
	if (navigator.appName=='Microsoft Internet Explorer'){
		window.external.AddFavorite(url, description);
	}
	else if (navigator.appName=='Netscape'){
		alert(netscape);
	}
}
/*
10. -----------------------------------------------------------------------------
	DbSecure (tar bort reserverade ord ur inskickad sträng)
	Inparameter: sträng som skall valideras
	Retunerar: validerad sträng*/
function DbSecure(text){
	var nytext = text;
	var nPlats;
	nytext = nytext.toUpperCase();
	//Delete
	nPlats = nytext.indexOf("DELETE ")
	while(nPlats >= 0){
		nytext = nytext.substring(0,nPlats) + nytext.substring(nPlats+7)
		text = text.substring(0,nPlats) + text.substring(nPlats+7)
		nPlats = nytext.indexOf("DELETE ",nPlats)	
	} 
	//Update
	nPlats = nytext.indexOf("UPDATE ")
	while(nPlats >= 0){
		nytext = nytext.substring(0,nPlats) + nytext.substring(nPlats+7)
		text = text.substring(0,nPlats) + text.substring(nPlats+7)
		nPlats = nytext.indexOf("UPDATE ",nPlats)	
	} 
	//Alter
	nPlats = nytext.indexOf("ALTER ")
	while(nPlats >= 0){
		nytext = nytext.substring(0,nPlats) + nytext.substring(nPlats+6)
		text = text.substring(0,nPlats) + text.substring(nPlats+6)
		nPlats = nytext.indexOf("ALTER ",nPlats)	
	} 
	//DROP
	nPlats = nytext.indexOf("DROP ")
	while(nPlats >= 0){
		nytext = nytext.substring(0,nPlats) + nytext.substring(nPlats+5)
		text = text.substring(0,nPlats) + text.substring(nPlats+5)
		nPlats = nytext.indexOf("DROP ",nPlats)	
	} 
	//Create
	nPlats = nytext.indexOf("CREATE ")
	while(nPlats >= 0){
		nytext = nytext.substring(0,nPlats) + nytext.substring(nPlats+7)
		text = text.substring(0,nPlats) + text.substring(nPlats+7)
		nPlats = nytext.indexOf("CREATE ",nPlats)	
	} 
	//Enkelfnuttar
	nPlats = text.indexOf("'")
	while(nPlats >= 0){
		text = text.replace("'","");
		nPlats = text.indexOf("'")		
	} 
	//Dubbelfnuttar
	nPlats = text.indexOf('"')
	while(nPlats >= 0){
		text = text.replace('"','');
		nPlats = text.indexOf('"')		
	} 
	return text;
}
/*
11. -----------------------------------------------------------------------------
	NewPW (skapar nytt lösenord)
	Inparameter 1: antal tecken som lösenordet skall bestå av
	Inparameter 2: en tom sträng "" eller en sträng med de tecken som lösenordet skall tas fram ifrån
	Retunerar: lösenord */
function NewPW(antalTecken,str){
  var pw = "";
	if (str == "")
	  var tecken = "ABCDEFGHJKLMNPQRSTUVWXYZÅÄÖabcdefghjkmnopqrstuvxyzåäö#?23456789";
	else	
	  var tecken = str;	
  var strLangd = tecken.length;
	var i = 0;	
	do{ 
		slump = 1 + Math.floor( Math.random() * strLangd );
    pw = pw + tecken.substr(slump-1, 1);
	  i = i+1
	} 
	while( i < antalTecken )
  return pw;
}
/*
12. -----------------------------------------------------------------------------
	DatumKontroll (Kontrollerar om datumet har formatet yyyy-MM-dd eller yyyyMMdd eller yyMMdd)
	Inparameter: datumsträng som skall valideras
	Retunerar: true/false*/
//
function DatumKontroll(sDatum){
	var sYear, sMonth, sDay
	sYear = "";
	sMonth = "";
	sDay = "";
	/*
	if (sDatum.length == 6){
		if (!NumeriskKontroll(sDatum))
			return false;
		sYear = sDatum.substring(0,2);
		sMonth = sDatum.substring(2,4);
		sDay = sDatum.substring(4,6);		
	}
	else if (sDatum.length == 8){
		if (!NumeriskKontroll(sDatum))
			return false;
		sYear = sDatum.substring(0,4);
		sMonth = sDatum.substring(4,6);
		sDay = sDatum.substring(6,8);
	}
	else 
	*/
	if (sDatum.length == 10){
		sYear = sDatum.substring(0,4);
		sMonth = sDatum.substring(5,7);
		sDay = sDatum.substring(8,10);
		if (!NumeriskKontroll(sYear) || !NumeriskKontroll(sMonth) || !NumeriskKontroll(sDay))
		 return false;
	}
	else if (sDatum == "")
		return true;
	else
		return false;
	//Radering av eventuella nollor i början
	if (sYear.substring(0,1) == "0")
		sYear = sYear.substring(1,2);
	if (sMonth.substring(0,1) == "0")
		sMonth = sMonth.substring(1,2);
	if (sDay.substring(0,1) == "0")
		sDay = sDay.substring(1,2);
	//Variablerna till numeriska
	sYear = parseInt(sYear);
	sMonth = parseInt(sMonth);
	sDay = parseInt(sDay);
	//Kontroll om månader och dagar är rätt
	if (sMonth > 12 || sMonth < 1)
		return false;
	if (sMonth == 1 || sMonth == 3 || sMonth == 5 || sMonth == 7 || sMonth == 8 || sMonth == 10 || sMonth == 12){
		if (sDay > 31 || sDay < 1)
			return false;
	}
	else if (sMonth == 4 || sMonth == 6 || sMonth == 9 || sMonth == 11){
		if (sDay > 31 || sDay < 1)
			return false;
	}
	else if (sMonth == 2){
		//Kontroll om året är skottår eller ej
		if (sYear%4 > 0){
			if (sDay > 28 || sDay < 0)
				return false;
		}
		else{
			if (sDay > 29 || sDay < 0)
				return false;
		}	
	}
	return true;
}
/*
13. -----------------------------------------------------------------------------
	BytFormat (Byter datumformaten yyyyMMdd och yyMMdd till yyyy-MM-dd)
	Inparameter: datumsträng som skall valideras
	Retunerar: riktigt format*/
//
//
function BytFormat(sDatum){
	var sNyttFormat
	if (sDatum.length == 6){
		if (sDatum.substring(0,1) == "0" || sDatum.substring(0,1) == "1" || sDatum.substring(0,1) == "2" || sDatum.substring(0,1) == "3")
			sDatum = "20" + sDatum;
		else	
			sDatum = "19" + sDatum;
	}
	sYear = sDatum.substring(0,4);
	sMonth = sDatum.substring(4,6);
	sDay = sDatum.substring(6,8);
	sNyttFormat = sYear + "-" + sMonth + "-" + sDay
	return sNyttFormat
}

/*
SetCheckbox (sätter checkboxen till 1 eller 0)
Anropas när checkboxen praktik skall sättas
Inparamter: this
*/
function SetCheckbox(obj){
	if (obj.checked){
		obj.value = 1;
		obj.checked = true;
	}
	else{
		obj.value = 0;
		obj.checked = false;
	}
}
/*
Tar inparameter 1 eller 0 i bUtskrift
1 = användaren ska skriva ut med sidbrytningar och behöver ha lägst MSIE5.5 eller NS7
0 = vanliga kontrollen i vänstermenyn
*/
function kontrolleraWebblasare(bUtskrift) {
	var ver = navigator.appVersion
	var vnn = navigator.userAgent
	var bVer=0
	if (bUtskrift==1){
		if (navigator.appName == "Microsoft Internet Explorer" && (ver.indexOf("MSIE 5.5") != -1 || ver.indexOf("MSIE 6")!= -1) ) {
			bVer=1
		}else if (navigator.appName == "Netscape" && (vnn.indexOf("Netscape/7")!= -1)) {
			bVer=1
		}
		if (bVer==0){
			OpenWin('help.asp?helpid=7','500','400','','','no','no','no','no')
		}
	}else{
		if (navigator.appName == "Microsoft Internet Explorer" && (ver.indexOf("MSIE 5") != -1 || ver.indexOf("MSIE 6")!= -1) ) {
			bVer=1
		}else if (navigator.appName == "Netscape" && (vnn.indexOf("Netscape6") != -1 || vnn.indexOf("Netscape/7")!= -1)) {
			bVer=1
		}
		if ((navigator.appName == "Microsoft Internet Explorer" ||navigator.appName == "Netscape" ) && bVer==0){
			document.write("<tr><td style='font-family:Verdana, Arial, sans serif; font-size:9px; border:1px solid #000000;'>")
			document.write("<div style='color:#FF0000; align=left;' >Kontrollera din webbläsare!<br>")
			document.write("Uppdatera till en senare version för att webbplatsen skall fungera bäst.<br>")
			document.write("Webbläsare kan du hämta gratis hos:<br>")
			document.write("<a href='http://www.microsoft.se' target='_blank' style='font-size:9px'>www.microsoft.se</a><br>")
//		document.write("<a href='http://www.netscape.com' target='_blank' style='font-size:9px'>www.netscape.com</a>")
			document.write("</div></td></tr>")
		}else if(navigator.appName != "Microsoft Internet Explorer" && navigator.appName != "Netscape" && bVer==0){
			document.write("<tr><td style='font-family:Verdana, Arial, sans serif; font-size:9px; border:1px solid #000000;'><div style='color:#FF0000; align=left;' >")
			document.write("Det finns ingen garanti för att webbplatsen fungerar för din webbläsare.")
			document.write("</div></td></tr>")
		}
	}
}		

/*
Kontrollerar vanligaste tecknen i epost-adressen
Inparameter: sträng
Ger felmeddelande
Returnerar true eller false
*/
function ValidEmail(mail){
	var bPunkt = 0; nAntalAt = 0; sFel="", bMellanslag=0; 
	var bAtTecken = 0; bSaknarDoman=0; bOgiltigtTecken=0; bStartSlut = 0;
	//om tom returneras ok (det finns alltså ingen adress att kontrollera)
	if (mail.length<1){
		return true
	}//måste bestå av minst 5 tecken x@x.se
	if ((mail.length<5) && (mail.length>0)){
		alert("E-postadressen är inte giltig.")
		return false
	}
	for (var i=0; i < mail.length; i++){
	  var sChar = mail.charAt(i);
	  //alert(sChar +" i=" +i+" len "+mail.length);
		//finns det mellanslag - FEL
		if (sChar == " "){
			bMellanslag = 1
		}//finns det fler än 1 @-tecken - FEL
		else if (sChar =="@"){
			nAntalAt = nAntalAt + 1
			if (nAntalAt > 1){
				bAtTecken = 1
			}
			//@ får inte vara först eller sist i adressen
			if ((mail.charAt(0)==sChar) || (i+1 == mail.length) ){
				bStartSlut = 1
			}
			//det får inte finnas en punkt precis innan @tecknet
			if (mail.charAt(i-1)=="."){
				bSaknarDoman = 1
			}
		}//finns det ingen punkt(t ex domän.se) efter @ - FEL
		else if (sChar == "."){
			//tecknet innan punkt skall vara bokstav/siffra! 
			if (!ValidEmailChar(mail.charCodeAt(i-1))){
				bSaknarDoman = 1
			}
			//punkt får inte vara först eller sist i adressen
			if ((mail.charAt(0)==sChar) || (i+1==mail.length)){
				bStartSlut = 1
			}
			//det måste finnas en punkt efter @tecknet
			if (nAntalAt > 0){
				bPunkt = 1
			}
		}// bindestreck ej först eller sist
		else if (sChar == "-"){
			if ((mail.charAt(0)==sChar) || (i+1==mail.length)){
				bStartSlut = 1
			}
		}//övriga tecken
		else if (!ValidEmailChar(mail.charCodeAt(i))){
			bOgiltigtTecken = 1
		}
	}
	// det finns ingen punkt efter @tecknet
	if ((bPunkt==0) && (mail.length>0)){
		if (sFel!=""){
			sFel =sFel+"\n"
		}
		sFel = sFel+"- ingen punkt som skiljer domän och landskod från varandra i e-postadressen"
	}//det fanns mellanslag
	else if (bMellanslag==1){
		if (sFel!=""){
			sFel =sFel+"\n"
		}
		sFel = sFel+"- mellanslag i e-postadressen"
	}//det saknas bokstäver/siffror innan punkt
	else if (bSaknarDoman==1){
		if (sFel!=""){
			sFel =sFel+"\n"
		}
		sFel = sFel+"- en punkt som verkar felplacerad"
	}//det fanns för många @-tecken
	else if (bAtTecken==1){
		if (sFel!=""){
			sFel =sFel+"\n"
		}
		sFel = sFel+"- för många @-tecken i e-postadressen"
	}//det saknades @-tecken
	else if (nAntalAt==0){
		if (sFel!=""){
			sFel =sFel+"\n"
		}
		sFel = sFel+"- det saknas @-tecken i e-postadressen"
	}//startade och slutade med fel tecken
	else if (bStartSlut==1){
		if (sFel!=""){
			sFel =sFel+"\n"
		}
		sFel = sFel+"- ett @,- eller en punkt först eller sist i e-postadressen"
	}//det finns otillåtna tecken i e-postadressen
	else if (bOgiltigtTecken==1){
		if (sFel!=""){
			sFel =sFel+"\n"
		}
		sFel = sFel+"- otillåtna tecken i e-postadressen. \nEndast a-z, A-Z, 0-9, @-tecken, punkt och underscore (_) är tillåtet"
	}
	//visa resultat
	//sFel = ""
	if (sFel!=""){
		alert("E-postadressen verkar inte stämma! Kontrollera adressen en gång till.\nDet finns \n"+sFel+".")
		return false
	}else{
		return true
	}

}

/*
Används i ValidEmail()
kontrollerar om giltigt emailtecken genom Ascikod!
skicka in tecknets asciikod 
(tmp = str.charCodeAt(i) ELLER tmp = event.KeyCode ELLER tmp = e.which
ValidEmailChar(tmp))
returnerar true/false
*/

function ValidEmailChar(tmp){
	//alert(tmp);
	var bOk = 0
	var i=0
	while (i<1){
		//A-Z
		if (tmp>64 && tmp<91){
			//alert("A-Z")
			bOk = 1
			break
		}//a-z
		else if (tmp >96 && tmp<123){
			//alert("a-z")
			bOk = 1
			break
		}// underscore _
		else if (tmp==95){
			//alert("_")
			bOk = 1
			break
		}//0-9
		else if (tmp>47 && tmp<58){
			//alert("0-9")
			bOk = 1
			break
		}
		//Bortkommenterad kontroll av å, ä, ö tillsvidare
		/*/Å, å
		else if (tmp=197 || tmp= 229){
			bOk = 1
			break
		}//Ä, ä
		else if (tmp=196 || tmp= 228){
			bOk = 1
			break
		}// Ö, ö
		else if (tmp=214 || tmp= 246){
			bOk = 1
			break
		}*/
		i = 1
	}
	return bOk
}

/*

*/

function ValidPhoneNumber(tel){
	var sChar=""; nBindestreck=0;
	for (var i=0; i < tel.length; i++){
		sChar = tel.charAt(i)
		if (!NumeriskKontroll(sChar)){
			if ((sChar!="-")&&(sChar!="+")&&(sChar!="(")&&(sChar!=")")&&(sChar != " ")){
				alert("Du har använt otillåtna tecken i ditt telefonnummer!\nTillåtna tecken är 0-9, - + ( ) och mellanslag.")
				return false
			}
		}
	}
	return true
}

// Används när användaren är kopplad till flera företag/arbetsgivare så att möjligheten att välja företag/arbetsgivare skall finnas
function ValAvFtg(formular,val){
	eval("document."+formular+".ftg_id.value="+val)
	eval("document."+formular+".submit()")
}
			
// Används för att ladda om ett formulär
function ReLoad(formular){
	eval("document."+formular+".submit()")
}

// Gör så att användaren inte kan skriva in obegränsat antal tecken i en textarea
function MaxAntal(obj,antal){
	var str = obj.value;
	if (!StorleksKontroll(str,antal)==""){
		obj.value = obj.value.substr(str,antal);	
	}
}	

// 21. Markerar allt i en selectbox satt till multiple
function selectAll(formular,obj){
	for(x=0; x<(eval("document."+formular+"."+obj+".length")); x++)
	{
		eval("document."+formular+"."+obj+".options[x].selected = true");
	}
}

// 22. Avmarkerar allt i en selectbox satt till multiple
function deselectAll(formular,obj){
	for(x=0; x<(eval("document."+formular+"."+obj+".length")); x++)
	{
		eval("document."+formular+"."+obj+".options[x].selected = false");
	}
}


