﻿//Javascript utility functions.

/*Validates a form with the id FormId. Only fields that starts with req_ gets validated.  Depends on Prototype framework.*/
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; 
	}	
}

/*Validates order form. Depends on MooTool framework*/
function validateOrderForm(FormId){
		
	var dirty=false;
		
	if(!dirty){
		$$('input[id^=req_]').each(function(item){
			if(item.id=='req_email'&&dirty!=true){
				if(!item.getValue()){
					alert(getAlertText(item.id));
					dirty=true;
					$(item.id).focus();
				}else{
					if(!validateEmail(item.getValue())){
						alert(getAlertText('emailcheck'));
						dirty=true;
						$(item.id).focus();
					}
				}
			}else{
				if(!item.getValue()&&dirty!=true){
					alert(getAlertText(item.id, item.name)); 
					dirty=true;
					$(item.id).focus();
				} 
			}
		});
	}
		
	if(dirty){
		return false;
	}else{
		return true; 
	}
}

/*Validates catalouge form. Depends on MooTool framework*/
function validateCatalougeForm(FormId){
		
	var dirty=false;
		
	if(!dirty){
		$$('#catform').getElements('input[name^=Parameter_]').each(function(item, index){
			if(item.getValue().indexOf('true')==-1)
			{
				alert('Välj minst en tjänst');
				dirty=true;
			}
		});
	}
		
	if(!dirty){
		$$('input[id^=req_]').each(function(item){
			if(item.id=='req_email'&&dirty!=true){
				if(!item.getValue()){
					alert(getAlertText(item.id));
					dirty=true;
					$(item.id).focus();
				}else{
					if(!validateEmail(item.getValue())){
						alert(getAlertText('emailcheck'));
						dirty=true;
						$(item.id).focus();
					}
				}
			}else{
				if(!item.getValue()&&dirty!=true){
					alert(getAlertText(item.id, item.name)); 
					dirty=true;
					$(item.id).focus();
				} 
			}
		});
	}
		
	if(!dirty){
		$$('#catform').getElements('input[id^=deliver_]').each(function(item, index){
			if(item.getValue().indexOf('true')==-1){
				alert('Välj ett leveranssätt');
				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_postalno":
		return "Ange din postnummer";
		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;
}



