/*
*	Validerar ett svenskt personnummer.
*/
function SWEvalidateSSN(ssn){
	
	if(ssn.length < 10 || checkStr(ssn,"0123456789-") != true){
		return false;
	}
	var rssn = stripChr(ssn,"-");
	if(rssn.length!=10){
		return false;
	}
	
	var msum = 0;
	var odd = false;
	for(i=0;i<rssn.length-1;i++){
		if(odd){
			odd = false;
			msum += rssn.charAt(i)*1;
		}else{
			odd = true;
			if(rssn.charAt(i)*2>9){
				msum += 1+(rssn.charAt(i)*2)-10;
			}else{
				msum += rssn.charAt(i)*2;
			}
		}
	}
	var chkdig = ((msum-msum%10)+10) - msum;
	if(chkdig==10){chkdig=0;}
	if(chkdig == rssn.charAt(9)*1 ){
		return true;
	}else{
		return false;	
	}
	
}

/*
*	Utför en grundläggande validering av en e-post adress.
* Bland annat postitionering av @ . och om tecknen är godkända enligt RFC822.
*/
function validateEmail(email){
	
	//alert(email.indexOf("@") + ":"+ (email.length-6));
	
	var goon = true;
	
	if(email.indexOf("@") < 1 || email.indexOf("@") > email.length-5 || email.indexOf(".") < 1){
		goon = false;
	}else if(checkStr(email,"0123456789@.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+-_") != true){
		goon = false;
	}
	
	if(goon){
		return true;
	}else{
		return false;	
	}
}

/*
*	Kontrollerar så att datumet följer standarden ÅÅMM
*/
function checkShortDate(thedate){
	
	if(thedate.length!=4){
		return false;
	}
	
	if(!checkStr(thedate.charAt(0),"0123456789")){
		return false;
	}
	if(!checkStr(thedate.charAt(1),"0123456789")){
		return false;
	}
	if(!checkStr(thedate.charAt(2),"01")){
		return false;
	}
	if(!checkStr(thedate.charAt(3),"0123456789")){
		return false;
	}
	var m = thedate.charAt(2)+""+thedate.charAt(3);
	if(m>12){
		return false;
	}
	
	return true;
	
}

/*
*	Kontrollerar så att strängen chkstr enbart innehåller tecknen i valchr
*/
function checkStr(chkstr,valchr){
	var chr;

	for (i = 0; i < chkstr.length; i++){ 
		chr = chkstr.charAt(i); 
		if (valchr.indexOf(chr) == -1){
			return false;
		}
	}
	return true;
}

/*
* Ta bort valchar tecknen från chkstr
*/
function stripChr(chkstr,valchr){
	var chr;
	var tmpstr = "";

	for (i = 0; i < chkstr.length; i++){ 
  	chr = chkstr.charAt(i); 
		if (valchr.indexOf(chr) == -1){
    	tmpstr += chr;
		}
	}
	return tmpstr;
}
