// FormCheck.js
// 18 Feb 97 created Eric Krock
// (c) 1997 Netscape Communications Corporation

// VARIABLE DECLARATIONS
var digits = "0123456789";
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyz"
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

// s is an abbreviation for "string"
var sEmail = "Email"

// whitespace characters
var whitespace = " \t\n\r";

// i is an abbreviation for "invalid"
var iEmail = "Fältet måste innehålla en korrekt E-post adress (f.eks. post@isphuset.info). Angi E-post adressen igen."

// p is an abbreviation for "prompt"
var pEntryPrompt = "Vänligen ange "
var pZIPCode = "korrekt postnummer t.ex. 240 14"
var pEmail = "en korrekt E-post adress (f.eks. post@isphuset.info)."
var pEmpty = " "
var pPnummer = "personnummer i formatet ÅÅMMDD-12345"
var pDate = "datum i formatet DD-MM-ÅÅÅÅ (01-01-2002)"
var pYear = "avdragstid i antal år"
var pYear2 = "årstal (1999)"
var pAmount = "belopp i hele kronor, uten mellanrum. (f.eks. 1000000)"
var pTlf = "telefonnumret t.ex. 046-854 29"

var defaultEmptyOK = false;

/* FUNCTIONS TO NOTIFY USER OF INPUT REQUIREMENTS OR MISTAKES. */
// Display prompt string s in status bar.
function prompt (s)
{
   window.status = s;
}

// Display data entry prompt string s in status bar.
function promptEntry (s)
{
   window.status = pEntryPrompt + s;
}

//Egen version av promptEntry
function promptEmpty (s)
{
   window.status = s;
}

// Check whether string s is empty.
function isEmpty(s)
{
   return ((s == null) || (s.length == 0))
}

// Returns true if string s is empty or 
// whitespace characters only.
function isWhitespace (s)
{
   var i;

    // Is s empty?
    if (isEmpty(s)) return true;

    // Search through string's characters one by one
    // until we find a non-whitespace character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);

        if (whitespace.indexOf(c) == -1) return false;
    }

    // All characters are whitespace.
    return true;
}

// Notify user that contents of field theField are invalid.
function warnInvalid (theField, s)
{
    alert(s)
	theField.focus()
    theField.select()
    
    return false
}

// isEmail (STRING s [, BOOLEAN emptyOK])
function isEmail (s)
{
   if (isEmpty(s)) 
       if (isEmail.arguments.length == 1) return defaultEmptyOK;
       else return (isEmail.arguments[1] == true);
   
    // is s whitespace?
    if (isWhitespace(s)) return false;
    
    // there must be >= 1 character before @, so we
    // start looking at character position 1 
    // (i.e. second character)
    var i = 1;
    var sLength = s.length;

    // look for @
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    // look for .
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }

    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}


// checkEmail (TEXTFIELD theField [, BOOLEAN emptyOK==false])
function checkEmail (theField, emptyOK)
{ 
  if (checkEmail.arguments.length == 1) emptyOK = defaultEmptyOK;
    if ((emptyOK == true) && (isEmpty(theField.value))) return true;
    else if (!isEmail(theField.value, false)) 
       return warnInvalid (theField, iEmail);
     else 
return true;
}

function checkEmail2 (theField, emptyOK)
{ 
  if (!isEmail(theField.value, false)) 
       return warnInvalid (theField, iEmail);
     else 
return true;
}

//Kontrollerar nödvendiag felt är ifyllda
function CheckFormeudomain2(formObj)
{
	//Kontrollerar Orgnr
	
	if (formObj.COMPANY.value != "") {
		//Kontrollerar orgnr
		if (formObj.ORG_NO.value == "") {
			alert ("Organisationsnummer måste vara ifylld!");
			formObj.ORG_NO.focus();
			return false;
		} 
	} else {
		//Kontrollerar Kontaktperson
		if (formObj.CONTACT.value == "") {
			alert ("Kontaktperson måste vara ifylld!");
			formObj.CONTACT.focus();
			return false;
		} 
		
		//Kontrollerar personnummer
		if (formObj.PERS_NO.value == "") {
			alert ("Personnummer måste vara ifylld!");
			formObj.PERS_NO.focus();
			return false;
		} 
	}
	
	//Kontrollerar telefonnummer
	if (formObj.PHONE.value == "") {
		alert ("Telefonr må måste vara ifylld!");
		formObj.PHONE.focus();
		return false;
	} 

	//Kontrollerar Epostadress
	if (formObj.EMAIL.value == "") {
		alert ("Epostadresse måste vara ifylld!");
		formObj.EMAIL.focus();
		return false;
	} 
	
	//Kontrollerar Epostadress
	if (formObj.ADDRESS.value == "") {
		alert ("Gatuadressen måste vara ifylld!");
		formObj.ADDRESS.focus();
		return false;
	} 

	//Kontrollerar Epostadress
	if (formObj.ZIP_CODE.value == "") {
		alert ("Postnr måste vara ifylld!");
		formObj.ZIP_CODE.focus();
		return false;
	} 

	//Kontrollerar Epostadress
	if (formObj.CITY.value == "") {
		alert ("Ort måste vara ifylld!");
		formObj.CITY.focus();
		return false;
	} 
	
	//Kontrollera att inte personnumer är iflyyd när företag används
	if ((formObj.COMPANY.value != "") && (formObj.PERS_NO.value != "")) {
		alert ("När du söker for företag skall inte personnummer anges!");
		formObj.PERS_NO.focus();
		return false;
	} 
	
	// Skickar resultatet om kontrollen er Ok	
	return true;
}
