// PLUSSA CARD CHECK //
function checkFields(f){
	setCookie('formInputs',getFormString(f,true,FS_EXCLUDE_NAMES,''));
	cardcheck = validatePlussaCard(f.elements["INPUT_USER_PLUSSACARD"].value);
	cardlength = f.elements["INPUT_USER_PLUSSACARD"].value.length;
	
	//alert(cardcheck);
	
	//if(cardcheck == "EMPTY") {
	//	alert("Ole hyvä ja anna K-Plussa-korttisi numero.");
	//	return (false);
	//}
	if(cardcheck == "WRONG_LENGTH" && cardlength > 0) {
			alert("Antamasi K-Plussa-kortin numero on väärässä muodossa. Ole hyvä ja tarkista numero. Kirjoitathan kaikki numerot yhteen ILMAN välejä tai erikoismerkkejä. Jos sinulla on K-Plussa-kortti luotto-ominaisuudella, löydät K-Plussa-kortisi numeron kortin takapuolelta. K-Plussa-kortin numero alkaa numerosarjalla 7032.");
			return (false);
	} else if(cardcheck == "NOT_A_NUMBER") {
			alert("Syötteessä saa olla vain numeroita. Kirjaimet ja välilyönnit eivät kelpaa.");
			return (false);
	} else if(cardcheck == "WRONG_PREFIX") {
			alert("Annettu K-Plussa-kortin numero ei ole oikeassa muodossa. Jos sinulla on K-Plussa-kortti luotto-ominaisuudella, löydät K-Plussa-kortisi numeron kortin takapuolelta. K-Plussa-kortin numero alkaa numerosarjalla 7032.");
			return (false);
	} else if(cardcheck == "WRONG_PREFIX_VA") {
			alert("Väliaikaisen K-Plussa-kortin numero ei kelpaa.");
			return (false);
	} else if(cardcheck == "NOT_VALID") {
			alert("Annettu K-Plussa-kortin numero ei ole oikeassa muodossa. Jos sinulla on K-Plussa-kortti luotto-ominaisuudella, löydät K-Plussa-kortisi numeron kortin takapuolelta. K-Plussa-kortin numero alkaa numerosarjalla 7032.");
			return (false);
	}
 
	return true;
}

function validatePlussaCard(pitka) {

	var ka_tunnus_1 = "703240";    // Plussa-kateiskortti, kelpaa
	var not_valid_1 = "7032400";	// VA-kortti, ei saa hyväksyä
	var not_valid_2 = "7032404";	// VA-kortti, ei saa hyväksyä
	
	summa = 0;
	k = 2;
	
	//---Korttinumeron sanity-checkit--------------------------------------------
	if (!pitka)
		return ("EMPTY");
		
	if (pitka.match(/^\s*$/))
		return ("EMPTY");
		
	i = pitka.length;
	if (i != 16)
		return ("WRONG_LENGTH");
		
	if(isNaN(pitka))
		return("NOT_A_NUMBER")
		
	//--- Tarkistetaan kortinantajatunnus ---------------------------------------
	if (!(pitka.substr(0,6) == ka_tunnus_1))
	{
		return ("WRONG_PREFIX");
	}

	if ((pitka.substr(0,7) == not_valid_1) || (pitka.substr(0,7) == not_valid_2))
	{
		return ("WRONG_PREFIX_VA");
	}
	
	
	//--- Tarkistetaan korttinumero merkki kerrallaan ---------------------------

	tark = pitka.substring(i - 1, i);
	for (i -= 2; i >= 0; i--) {
		n = pitka.substring(i, i+1);
		summa = summa + Math.floor((n * k / 10)) + (n * k - Math.floor((n * k / 10)) * 10);
		if (k == 2)
			k = 1;
		else
			k = 2;
	}
	
	//--- Vastaako tarkistusnumero? ---------------------------------------------
	if (tark == (10 - (summa - Math.floor((summa / 10)) * 10)) % 10)
		return ("VALID");
	else
		return ("NOT_VALID");
}
