function checkWholeForm(thisForm) {
    var why = "";
    var theForm = document.getElementById(thisForm)
    why += checkPassword(theForm.password.value);
    why += checkUsername(theForm.username.value);
    why += checkBillingAdress(theForm.billingAdress.value);
    why += checkPostalCode(theForm.postalCode.value);
    why += checkCity(theForm.city.value);
    why += checkArrangerName(theForm.arrangerName.value);
    why += checkContact(theForm.contact.value);
    why += checkPhone(theForm.telephoneNumber.value);
    why += checkEmail(theForm.email.value);
    why += checkRegionID(theForm.regionID.value);
    
    if (why != "") {
       alert(why);
       return false;
    }
return true;
}
function checkWriterForm(thisForm) {
    var why = "";
    var theForm = document.getElementById(thisForm)
    why += checkNotEmpty(theForm.firstName.value, "Förnamn har inte angetts");
    why += checkNotEmpty(theForm.lastName.value, "Efternamn har inte angetts");
    
    if (why != "") {
       alert(why);
       return false;
    }
return true;
}
function checkArrangerForm(thisForm) {
    var why = "";
    var theForm = document.getElementById(thisForm)
    why += checkUsername(theForm.username.value);
    why += checkPassword(theForm.password.value);        
    why += checkFirstName(theForm.firstName.value);
    why += checkLastName(theForm.lastName.value);      

    why += checkArrangerName(theForm.arrangerName.value);   
    why += checkContact(theForm.contactPerson.value);
    why += checkPhone(theForm.telephoneNumber.value);
    why += checkEmail(theForm.email.value);
    why += checkRegionID(theForm.regionID.value);        
    why += checkBillingAdress(theForm.billingAdress.value);
    why += checkPostalNumber(theForm.postalNumber.value);
    why += checkCity(theForm.city.value);    
    
    if (why != "") {
       alert(why);
       return false;
    }
return true;
}

// email

function checkEmail (strng) {
var error="";
if (strng == "") {
   error = "En e-post adress har inte angivits.\n";
}

    var emailFilter=/^.+@.+\..{2,3}$/;
    if (!(emailFilter.test(strng))) { 
       error = "Ange en gilltig e-post adress.\n";
    }
    else {
//test email for illegal characters
       var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
         if (strng.match(illegalChars)) {
          error = "E-postadressen innehåller ogiltiga tecken.\n";
       }
    }
return error;    
}
// Not empty

function checkNotEmpty (string, errorMessage) {
var error="";
	if (string.length < 1) {

		error = errorMessage + "\n";
	}
return error;    
}

function checkInvalidChars(strng)
{
	var error = "";
	var stripped = strng.replace(/[\(\)\.\-\ ]/g, ''); //strip out acceptable non-numeric characters
    if (isNaN(parseInt(stripped))) {
       error = "Fältet innehåller ogiltiga tecken. \n";
    }
    return error;
}

function checkBillingAdress (string) {
	var error  = "";
	error = checkNotEmpty(string, "Fakturaadressen har inte angetts")
	if (error.lenght > 0)
	{ error = "Fakturaadressen har inte angetts";}
return error;    
}

function checkPostalCode (strng) {
	var error  ="";
	error = checkNotEmpty(strng, "Ett postnummer har inte angetts")
	if (error.lenght > 0)
	{ error = "Ett postnummer har inte angetts";}
return error;    
}
function checkPostalNumber(string){
var error  ="";
	error = checkNotEmpty(string, "Ett postnummer har inte angetts")
	var error = "";

	var stripped = string.replace(/[\(\)\.\-\ ]/g, ''); //strip out acceptable non-numeric characters
    if (isNaN(parseInt(stripped))) {
       error = "Postnummret innehåller ogiltiga tecken.";
    }
    if ((stripped.length < 5)) {
	error = "Postnummret innehåller för få tecken och är i formatet 123 45.\n";
    } 
return error;  
}
function checkCity (strng) {
	var error  ="";
	error = checkNotEmpty(strng, "Ort har inte angetts")
	if (error.lenght > 0)
	{ error = "Ort har inte angetts";}
return error;    
}
function checkArrangerName (strng) {
	var error  ="";
	error = checkNotEmpty(strng, "En arrangör har inte angetts")
	if (error.lenght > 0)
	{ error = "En arrangör har inte angetts";}
return error; }function checkFirstName (strng) {
	var error  ="";
	error = checkNotEmpty(strng, "Ett förnamn har inte angetts")
	if (error.lenght > 0)
	{ error = "Ett förnamn har inte angetts";}
return error; 
}function checkLastName (strng) {
	var error  ="";
	error = checkNotEmpty(strng, "Ett efternamn har inte angetts")
	if (error.lenght > 0)
	{ error = "Ett efternamn har inte angetts";}
return error; }
function checkContact (strng) {
	var error  ="";
	error = checkNotEmpty(strng, "En kontaktperson har inte angetts")
	if (error.lenght > 0)
	{ error = "En kontaktperson har inte angetts";}
return error; 
}
function checkRegionID (strng) {
	var error  ="";
	error = checkNotEmpty(strng, "En region har inte angetts")
	if (error.lenght > 0)
	{ error = "En region har inte angetts\n";}
return error;    
}
// phone number - strip out delimiters and check for 10 digits

function checkPhone (strng) {
	var error = "";
	if (strng == "") {
	error = "Ett telefonnummer har inte angetts.\n";
	}

	var stripped = strng.replace(/[\(\)\.\-\ ]/g, ''); //strip out acceptable non-numeric characters
    if (isNaN(parseInt(stripped))) {
       error = "Telefonnumret innehåller ogiltiga tecken.";
    }
    if ((stripped.length < 7)) {
	error = "Telefonnumret innehåller för få tecken. Kontrollera att ett riktnummer har angetts\n";
    } 
return error;
}


// password - between 6-8 chars, uppercase, lowercase, and numeral

function checkPassword (strng) {
var error = "";
	if (strng == "") {
		error = "Ett lösenord har inte angetts.\n";
	}
	else
	{
		var illegalChars = /[\W_]/; // allow only letters and numbers
		if (strng.length < 4) { 
			error = "Lösenordet måste vara mist 4 tecken långt.\n";
		}
		else if (illegalChars.test(strng)) {
			error = "Lösenordet innehåller ogiltiga tecken.\n";
		} 

    }  
return error;    
}    


// username - 4-10 chars, uc, lc, and underscore only.

function checkUsername (strng) {
	var error = "";
	if (strng == "") {
	error = "Ett användarnamn har inte angetts.\n";
	}


    var illegalChars = /\W/; // allow letters, numbers, and underscores

    if (strng.length < 4 ) { 
       error = "Användarnamnet måste vara minst 4 tecken långt.\n";
    }

	return error;
}       


// non-empty textbox

function isEmpty(strng) {
var error = "";
  if (strng.length == 0) {
     error = "The mandatory text area has not been filled in.\n"
  }
return error;	  
}

// was textbox altered

function isDifferent(strng1, string2) {
var error = ""; 
  if (strng1 != string2) {
     error = "You altered the inviolate text area.\n";
  }
return error;
}

// exactly one radio button is chosen

function checkRadio(checkvalue) {
var error = "";
   if (!(checkvalue)) {
       error = "Please check a radio button.\n";
    }
return error;
}

// valid selector from dropdown list

function checkDropdown(choice) {
var error = "";
    if (choice == 0) {
    error = "You didn't choose an option from the drop-down list.\n";
    }    
return error;
}  

// Function to clear the search form
function erase() {
    document.forms['sok'].firstName.value='';
    document.forms['sok'].lastName.value='';
    document.forms['sok'].publication.value='';
    document.forms['sok'].categoryID.value='';
    document.forms['sok'].subjectTypeID.value='';
    document.forms['sok'].fullText.value='';
    document.forms['sok'].regionID.value='';
    
    for(var i=0; i<document.forms['sok'].assigmentTypeID.options.length; i++){
        document.forms['sok'].assigmentTypeID.options[i].selected=false
    }
}  

