// email.js


//----- globala variabler -----//----------------------------------
//Känner av vilken läsare användaren använder.
ie = (document.all) ? true:false; 				// IE4+
dom = ((document.getElementById) && (!ie)) ? true:false; 	// Mozilla

//----- IE4+tolkare -----//--------------------------------------
//Tilldelar rätt lyssnare med avseende på användarens läsare.
function setEventByObject(ob, ev, fu) {
  if(dom) {
	ob.addEventListener(ev, fu, false);
  }
  if(ie) {
	ob.attachEvent('on' + ev, fu);
  }
}


setFocus();


//----- funktioner -----//----------------------------------
function setFocus() {
	var pers = form.Personnummer;
	pers.focus();
}


//Kollar om det finns osäkra tecken i sökningen.
function checkValues() {
	// Kontroll att personnumret är i rätt format, ååmmdd-nnnn.
	var ctrlpnr = form.Personnummer;
	var pnr = ctrlpnr.value;
	var pnrpattern = /^([0-9]{6,6}\-[0-9]{4,4})/;
	var result = pnr.match(pnrpattern);
	// Om det inte matchade så visas ett felmeddelande och return false.
	if(!result) {
		alert("Personnumret verkar inte vara angivet i rätt format. Rätt format är: ååmmdd-nnnn.");
		ctrlpnr.focus();
		return false;
	}

	// Kontroll att ett förnamn är ifyllt, minst ett tecken.
	var ctrlfornamn = form.Fornamn;
	ctrlfornamn.value = changeDangerousChars(ctrlfornamn.value);
	fornamn = ctrlfornamn.value;
	// Om förnamn saknades så visas ett felmeddelande och return false.
	if(fornamn.length < 1) {
		alert("Förnamn saknas.");
		ctrlfornamn.focus();
		return false;
	}

	// Kontroll att ett efternamn är ifyllt, minst ett tecken.
	var ctrlefternamn = form.Efternamn;
	ctrlefternamn.value = changeDangerousChars(ctrlefternamn.value);
	efternamn = ctrlefternamn.value;
	// Om efternamn saknades så visas ett felmeddelande och return false.
	if(efternamn.length < 1) {
		alert("Efternamn saknas.");
		ctrlefternamn.focus();
		return false;
	}

	// Kontroll att emailen är i rätt format.
	//  Taget från internet 2005-11-07 (http://hem.passagen.se/rfroberg/programming/web/javascript/regexp.html). En emailadress i mitt exempel får börja med en bokstav, en siffra eller något av tecknen '-' eller '_' (minus eller understreck). Något av dessa tecken kan förekomma en eller flera gånger. Sedan kan en punkt följa och i så fall något av de första typerna av tecken igen, minst ett tecken långt. Mönstret med punkt kan i sin helhet förekomma noll eller flera gånger. Sedan följer ett '@' (snabel-a). Efter '@' kommer ett domännamn. I verkligheten kan man tänka sig ett IP-nummer efter '@', men vi bortser från det i det här exemplet. Ett domännamn har minst två delar, det som kommmer före toppdomänen och själva toppdomänen. Det som kommer före toppdomänen följer samma regler som det som kommer före '@' fast utan '_' (understreck). Själva toppdomänen kommer efter en punkt och kan enbart innehålla bokstäver a-z (eller A-Z) och måste vara mellan två och sex tecken lång.

	var ctrlem = form.Email;
	var em = ctrlem.value;
	var ctrlmob = form.Mobiltel;
	ctrlmob.value = changeDangerousChars(ctrlmob.value);
	mob = ctrlmob.value;

	// Kontroll att antingen en e-mailadress eller ett mobilnr är ifyllt. Om inte visas ett felmeddelande och return false.
	if(em.length < 1 && mob.length < 1) {
		alert("Fyll i antingen en e-mailadress eller ett mobiltelefonnummer.");
		ctrlem.focus();
		return false;
	}
	// Annars...
	else {
		// Kontroll att e-mailen är i rätt format.
		if(em.length > 0) {
			var empattern = /^([-_a-zA-Z0-9]+(\.?[-_a-zA-Z0-9]+)*)+@[-a-zA-Z0-9]+(\.[-a-zA-Z0-9]+)*\.[a-zA-Z]{2,6}$/
			result = em.match(empattern);

			// Om det inte matchade så visas ett felmeddelande och return false.
			if(!result) {
				alert("E-mailadressen verkar inte vara rätt angiven.");
				ctrlem.focus();
				return false;
			}
			return true;
		}
	}
}


//			Ändrad - Byter ut alla enkelfnuttar mot dubbelfnuttar och tar bort alla |-tecken. Trimmar också fältet.
//Tar bort alla '- och |-tecken. Trimmar också fältet.
function changeDangerousChars(string) {
	var quotes = /'/g;
	var dblquotes = /"/g;
	var ors = /\|/g;
	var output = string.replace(/^\s+/g, "").replace(/\s+$/g, "");
//	output = output.replace(quotes, "´");
	output = output.replace(quotes, "");
	output = output.replace(ors, "");
//	output = output.replace(dblquotes, "´´");
	output = output.replace(dblquotes, "");
	return output;
}