/*
	***********************************************************
	* Fulhackad av jims för Druidz site, tillägg av land m.m. *
	* Grund av Johan "_ZarX_" Boström för SNL				  *
	***********************************************************
*/

function validatereg() {
	
	var land = document.getElementsByName('land')[0].value;
	
	if( land == "SE" ) {
		if( validatePNum() ) {
			document.newreg.submit();
		}
	}
	else {
		document.newreg.submit();
	}
}


function validatePNum()
{
	
  var sPNum = document.getElementsByName('ar')[0].value+document.getElementsByName('manad')[0].value+document.getElementsByName('dag')[0].value+document.getElementsByName('sistasiffror')[0].value;
	
  var numbers = sPNum.match(/^(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)$/);
  var checkSum = 0;

  var d = new Date();
  if (!isDate(sPNum.substring(0,4),sPNum.substring(4,6),sPNum.substring(6,8))) {
    alert("Datumet " + sPNum.substring(0,8) + " är inte korrekt.");
    return false;
  }

  if (numbers == null) { return false; }

  var n;
  for (var i = 3; i <= 12; i++)
  {
    n=parseInt(numbers[i]);
    if (i % 2 == 0) {
      checkSum+=n;
    } else {
      checkSum+=(n*2)%9+Math.floor(n/9)*9
    }
  }

  if (checkSum%10==0) { return true;}
  return false;
}

function getYear(y) { return (y < 1000) ? y + 1900 : y; }

function isDate(year, month, day)
{
  month = month - 1; // 0-11 in JavaScript
  var tmpDate = new Date(year,month,day);
  if ( (getYear(tmpDate.getYear()) == year) &&
  (month == tmpDate.getMonth()) &&
  (day == tmpDate.getDate()) )
    return true;
  else
    return false;
}


function checkPnr()
{
	var nr			= document.getElementsByName('ar')[0].value+document.getElementsByName('manad')[0].value+document.getElementsByName('dag')[0].value+document.getElementsByName('sistasiffror')[0].value;
	nr 				= nr.substr(2,10)
	var sex			= document.getElementsByName('kon')[0].selectedIndex;
	var checksex	= nr.substr(8,1);
	var checkNr		= nr.substr(9,1);
	var checkValue	= 0
	var nrArray		= new Array(9);

	if (Number(nr) > 0)
	{
		for(var i=0;i<9;i++)
		{
			nrArray[i]=nr.substr(i,1);
		}

		for(var i=0;i<9;i+=2)
		{
			nrArray[i] *= 2;
			if (nrArray[i] > 9)
			{
				nrArray[i] = Number(String(nrArray[i]).substr(0,1))+Number(String(nrArray[i]).substr(1,1));
			}
		}

		for(var i=0;i<9;i++)
		{
			checkValue += Number(nrArray[i]);
		}
		
		if (checkValue>10)
		{
			checkValue = String(checkValue).substr(1,1);
		}
		
		if ((checksex % 2) == 0  || checksex == 0)
			checksex = 1;
		else
			checksex = 0;

		checkValue = (10 - Number(checkValue));
		
		if (checkValue == 10)
			checkValue = String(0);
		
		if (checkValue == checkNr && checksex == sex)
		{
			return true;
		}
		else
		{
			alert('Du har ett felaktigt personnummer eller så har du valt fel kön.');
			return false;
		}
	}
	else {
		alert('Du har ett felaktigt personnummer eller så har du valt fel kön.');
		return false;
	}
}