$(document).ready(function(){
	//global vars
	var form = $("#userchangeForm");	
	var register_form = $("#useraddForm");	
	var account_form = $("#accountchangeForm");	
	var pass_form = $("#passchangeForm");	
	
	var firstname = $("#firstname");
	var firstnameInfo = $("#firstnameInfo");
	var lastname = $("#lastname");
	var lastnameInfo = $("#lastnameInfo");
	var street = $("#street");
	var streetInfo = $("#streetInfo");
	var zip = $("#zip");
	var zipInfo = $("#zipInfo");
	var email = $("#email");
	var emailInfo = $("#emailInfo");
	var phone = $("#phone");
	var phoneInfo = $("#phoneInfo");
	
	var email1 = $("#email1");
	var email1Info = $("#email1Info");
	
	var email2 = $("#email2");
	var email2Info = $("#email2Info");

	var password1 = $("#password1");
	var password1Info = $("#password1Info");
	
	var password2 = $("#password2");
	var password2Info = $("#password2Info");
	
	var pass1 = $("#pass1");
	var pass1Info = $("#pass1Info");
	
	var pass2 = $("#pass2");
	var pass2Info = $("#pass2Info");
	//On blur 
	firstname.blur(validate_firstname);
	lastname.blur(validate_lastname);
	street.blur(validate_street);
	zip.blur(validate_zip);
	email.blur(validate_email);
	email1.blur(validate_email1);
	email2.blur(validate_email2);
	phone.blur(validate_phone);
	password1.blur(validate_password1);
	password2.blur(validate_password2);
	
	pass1.blur(validate_pass1);
	pass2.blur(validate_pass2)
	
	//On Submitting
	form.submit(function(){
		if( validate_firstname() & validate_lastname() & validate_street() & validate_zip() & validate_email() & validate_phone() )
			return true
		else
			return false;
	});
	register_form.submit(function(){
		if( validate_firstname() & validate_lastname() & validate_street() & validate_zip() & validate_phone() & validate_email1()  & validate_email2()  & validate_password1()  & validate_password2() )
			return true
		else
			return false;
	});
	
	account_form.submit(function(){
		if( validate_firstname() & validate_lastname() & validate_street() & validate_zip() & validate_email() & validate_phone() )
			return true
		else
			return false;
	});
	
	pass_form.submit(function(){
		if( validate_pass1() & validate_pass2() )
			return true
		else
			return false;
	});
	//validation functions
	function validate_firstname(){
		
		//if it's NOT valid
		var a = $("#firstname").val();
		var filter = /^[a-zA-Z- \xC0-\xFF]+$/;
		if(!filter.test(a)){
			firstnameInfo.text("Förnamn saknas.");
			firstnameInfo.addClass("error-field-validation-long");
			return false;
		}	
		if(firstname.val().length < 1 ){
			firstnameInfo.text("Förnamn saknas.");
			firstnameInfo.addClass("error-field-validation-long");	
			return false;
		}
		//if it's valid
		else{
			firstnameInfo.removeClass("error-field-validation-long");
			firstnameInfo.text("");
			return true;
		}	
	}
	
	function validate_lastname(){
		var a = $("#lastname").val();
		var filter = /^[a-zA-Z- \xC0-\xFF]+$/;
		if(!filter.test(a)){
			lastnameInfo.text("Efternamn saknas.");
			lastnameInfo.addClass("error-field-validation-long");
			return false;
		}
		if(lastname.val().length < 1){
			lastnameInfo.text("Efternamn saknas..");
			lastnameInfo.addClass("error-field-validation-long");
			return false;
		}
		//if it's valid
		else{
			lastnameInfo.removeClass("error-field-validation-long");
			lastnameInfo.text("");
			return true;
		}
	}
	
	function validate_street(){
		//if it's NOT valid
		if(street.val().length < 2){
			streetInfo.text("Gatuadress saknas.");
			streetInfo.addClass("error-field-validation-long");
			return false;
		}
		//if it's valid
		else{
			streetInfo.removeClass("error-field-validation-long");
			streetInfo.text(" ");						
			return true;
		}
	}
	
	function validate_zip(){
		//if it's NOT valid
		if(zip.val().length < 5 ){
			zipInfo.text("Postnummer med 5 siffror utan mellanslag.");
			zipInfo.addClass("error-field-validation-short");
			return false;
		} else if (zip.val().match(/^\d+$/) == null) { 
			zipInfo.text("Postnummer med 5 siffror utan mellanslag.");
			zipInfo.addClass("error-field-validation-short");
			return false;
		} else  {
		//if it's valid
			zipInfo.removeClass("error-field-validation-short");
			zipInfo.text("");
			return true;
		}
	}
	
	function validate_email(){
		var a = $("#email").val();
		var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
		//if it's valid email
		if(filter.test(a)){
			emailInfo.removeClass("error-field-validation-long");
			emailInfo.text("");
			return true;
		}
		//if it's NOT valid
		else{
			emailInfo.text("E-postadress måste vara giltig.");
			emailInfo.addClass("error-field-validation-long");
			return false;
		}
	}
function validate_email1(){
		var a = $("#email1").val();
		var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
		//if it's valid email1
		if(filter.test(a)){
			email1Info.removeClass("error-field-validation-long");
			email1Info.text("");
			return true;
		}
		//if it's NOT valid
		else{
			email1Info.text("E-postadress måste vara giltig.");
			email1Info.addClass("error-field-validation-long");
			return false;
		}
	}
	
	function validate_email2(){
		var a = $("#email2").val();
		var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
		//if it's valid email1
		if(filter.test(a)){
			email2Info.removeClass("error-field-validation-long");
			email2Info.text("");
			
		} 
else{
			email2Info.text("E-postadress måste vara giltig.");
			email2Info.addClass("error-field-validation-long");
			return false;
		}
		if(email1.val() != email2.val()){
			email2Info.text("E-postadress måste vara giltig.");
			email2Info.addClass("error-field-validation-long");
			
		}
		return true;
	}
	
	function validate_phone(){
		var a = $("#phone").val();
		var filter = /^[0-9-+]+$/;
		//if it's valid email
		if(filter.test(a)){
			phoneInfo.removeClass("error-field-validation-long");
			phoneInfo.text("");
			return true;
		}
		//if it's NOT valid
		else{
			phoneInfo.text("Telefonnummer saknas.");
			phoneInfo.addClass("error-field-validation-long");
			return false;
		}
	}
	
	function validate_password1(){
		//if it's NOT valid
		if(password1.val().length < 5){
			password1Info.text("Lösenord saknas..");
			password1Info.addClass("error-field-validation-long");
			return false;
		}
		//if it's valid
		else{
			password1Info.removeClass("error-field-validation-long");
			password1Info.text(" ");						
			return true;
		}
	}
	
	function validate_password2(){
		//if it's NOT valid
		if(password2.val().length < 5){
			password2Info.text("Lösenord saknas..");
			password2Info.addClass("error-field-validation-long");
			return false;
		} else if(password1.val() != password2.val()){
			password2Info.text("Lösenord saknas..");
			password2Info.addClass("error-field-validation-long");
			return false;
		}
		//if it's valid
		else{
			password2Info.removeClass("error-field-validation-long");
			password2Info.text(" ");						
			return true;
		}
	}
	
	function validate_pass1(){
		//if it's NOT valid
		if(pass1.val().length < 6){
			pass1Info.text("Lösenord saknas..");
			pass1Info.addClass("error-field-validation-medium");
			return false;
		}
		//if it's valid
		else{
			pass1Info.removeClass("error-field-validation-medium");
			pass1Info.text(" ");						
			return true;
		}
	}
	
	function validate_pass2(){
		//if it's NOT valid
		if(pass2.val().length < 6){
			pass2Info.text("Lösenord saknas..");
			pass2Info.addClass("error-field-validation-medium");
			return false;
		} else if(pass1.val() != pass2.val()){
			pass2Info.text("Lösenord saknas..");
			pass2Info.addClass("error-field-validation-medium");
			return false;
		}
		//if it's valid
		else{
			pass2Info.removeClass("error-field-validation-medium");
			pass2Info.text(" ");						
			return true;
		}
	}
		
});

$("#shippingForm").ready(function(){
								  
	//global vars
	var form = $("#shippingForm");
	var shipping_firstname = $("#shipping_firstname");
	
	var shipping_firstnameInfo = $("#shipping_firstnameInfo");
	var shipping_lastname = $("#shipping_lastname");
	var shipping_lastnameInfo = $("#shipping_lastnameInfo");
	var shipping_street = $("#shipping_street");
	var shipping_streetInfo = $("#shipping_streetInfo");
	var shipping_zip = $("#shipping_zip");
	var shipping_zipInfo = $("#shipping_zipInfo");
	
	//On blur 
	shipping_firstname.blur(validate_shipping_firstname);
	shipping_lastname.blur(validate_shipping_lastname);
	shipping_street.blur(validate_shipping_street);
	shipping_zip.blur(validate_shipping_zip);
	
	//On Submitting
	form.submit(function(){
		if( validate_shipping_firstname() & validate_shipping_lastname() & validate_shipping_street()   & validate_shipping_zip() )
			return true
		else
			return false;
	});
	//validation functions
	
	function validate_shipping_firstname(){
		//if it's NOT valid
		
		var a = $("#shipping_firstname").val();
		var filter = /^[a-zA-Z\xC0-\xFF]+$/;
		if(!filter.test(a)){
			shipping_firstnameInfo.text("Förnamn saknas.");
			shipping_firstnameInfo.addClass("error-field-validation-long");
			return false;
		}
		if(shipping_firstname.val().length < 1){
			shipping_firstnameInfo.text("Förnamn saknas.");
			shipping_firstnameInfo.addClass("error-field-validation-long");	
			return false;
		}
		//if it's valid
		else{
			shipping_firstnameInfo.removeClass("error-field-validation-long");
			shipping_firstnameInfo.text("");
			return true;
		}
	}
	
	function validate_shipping_lastname(){
		//if it's NOT valid
		var a = $("#shipping_lastname").val();
		var filter = /^[a-zA-Z\xC0-\xFF]+$/;
		if(!filter.test(a)){
			shipping_lastnameInfo.text("Efternamn saknas.");
			shipping_lastnameInfo.addClass("error-field-validation-long");
			return false;
		}
		if(shipping_lastname.val().length < 1){
			shipping_lastnameInfo.text("Efternamn saknas.");
			shipping_lastnameInfo.addClass("error-field-validation-long");	
			return false;
		}
		//if it's valid
		else{
			shipping_lastnameInfo.removeClass("error-field-validation-long");
			shipping_lastnameInfo.text("");			
			return true;
		}
	}
	
	function validate_shipping_street(){
		//if it's NOT valid
		if(shipping_street.val().length < 2){
			shipping_streetInfo.text("Gatuadress saknas.");
			shipping_streetInfo.addClass("error-field-validation-long");
			return false;
		}
		//if it's valid
		else{
			shipping_streetInfo.removeClass("error-field-validation-long");
			shipping_streetInfo.text(" ");
			return true;
		}
	}
	
	function validate_shipping_zip(){

		//if it's NOT valid
		if(shipping_zip.val().length < 4 ){
			shipping_zipInfo.text("Postnummer med 5 siffror utan mellanslag.");
			shipping_zipInfo.addClass("error-field-validation-short");
			return false;
		} else 
		if(shipping_zip.val().match(/^\d+$/) == null) { 
			shipping_zipInfo.text("Postnummer med 5 siffror utan mellanslag.");
			shipping_zipInfo.addClass("error-field-validation-short");
			return false;
		} else {
		//if it's valid
			shipping_zipInfo.removeClass("error-field-validation-short");
			shipping_zipInfo.text("");
			return true;
		}
	}

});


