﻿//Javascript utility functions. Depends on Prototype framework.

/*Validates a form with the id FormId. Only fields that starts with req_ gets validated. */
function ValidateForm(FormId){
    var form=$(FormId);
    var formFields=form.getElements();
	var dirty=false;
	
	formFields.each(function(field){
	if(!dirty){
		if($(field).id.startsWith('req_')){
			if($(field).id=='req_email'){
				if(!$(field).getValue()){
					alert(getAlertText($(field).id)); 
					$(field).activate();
					dirty=true;
				}else{
					if(!validateEmail($(field).getValue())){
						alert(getAlertText('emailcheck'));
						$(field).activate();
						dirty=true;
					}
				}
			}else{
				if(!$(field).getValue()){
					alert(getAlertText($(field).id, $(field).name)); 
					$(field).activate();
					dirty=true;
					} 
				}
			}
		}
	});
	
	if(dirty){
		return false;
	}else{
		return true; 
	}	
} 

/* Returns alert text for a form field based on the id of the field*/
function getAlertText(fieldId, fieldName){
	
	switch(fieldId)
	{
		case "req_name":
		return "Ange ditt namn";
		break;
		
		case "req_lastname":
		return "Ange ditt efternamn";
		break;
		
		case "req_company":
		return "Ange företag";
		break;
		
		case "req_address":
		return "Ange din adress";
		break;
		
		case "req_postaladdress":
		return "Ange din postadress";
		break;
		
		case "req_city":
		return "Ange ort";
		break;
		
		case "req_email":
		return "Ange E-postaddress";
		break;
		
		case "emailcheck":
		return "Kontrollera din E-postaddress";
		break;
		
		case "req_phone":
		return "Ange telefonnummer";
		break;
		
		case "req_birthyear":
		return "Ange ditt födelseår";
		break;
		
		case "req_no_of":
		return "Ange antal";
		break;
		
		default:
		return "Ange ett värde i fältet " + fieldName;
		break;
	}

}

function validateEmail(email){
	n=0;
	t=email.toLowerCase();
	n=t.indexOf("@");
	s=t.indexOf(" ");
		if(s!=-1){
			return false;
		}else {
			if (t.indexOf("æ")!=-1 || t.indexOf("ø")!=-1 || t.indexOf("å")!=-1 || t.indexOf("ä")!=-1 || t.indexOf("ö")!=-1 || t.indexOf("Æ")!=-1 || t.indexOf("Ø")!=-1 || t.indexOf("Å")!=-1 || t.indexOf(";")!=-1 || t.indexOf(",")!=-1){
				return false;
			}else {
				if (n<1 || t.length<=n+1){
				return false;
				}
			}	
		}
	return true;
}


