﻿$(document).ready(function(){
	// Declare var and set values
	var hasError = "false";
	var errorText;
	var emailRegEx = /^([\w-\.\']+@([\w-]+\.)+[\w-]{2,4})?$/;
	var phoneRegEx = /^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)(| )\d{1,5}){0,1}$/;
	var serialRegEx = /^s2([\w]{4}?(-|)?[\w]{2}?(-|)?[\w]{6})$/;
	var serial25RegEx = /^sii([\d]{3}?(-|)?[\d]{3}?(-|)?[\w]{2}?(-|)?[\d]{6})$/;
	
	$('input[type=text]').each(function(){
		var inputFocus = $(this).attr('id');
		var lineError = inputFocus + "Error";
		$(this).before('<div id="' + lineError + '" class="formError"></div>');
		$('#' + lineError).hide();		
	});
	
	$('#serialNum').after('<div id="serialSuggest"></div>');
	$('#serialSuggest').hide();
	
	// Check for empty fields during
	$('input[type=text]').blur(function(){
		
		var inputFocus = $(this).attr('id');
		var lineError = inputFocus + "Error";
		
		if($(this).val() == "") {
			hasError = "true";
			var errorText = "This field is required.";			
			$('#' + lineError).text(errorText).slideDown('fast');
			$(this).focus();
		} else {
			hasError = "false";
			if (inputFocus == "userEmail") {
				if (!emailRegEx.test($(this).val())) {
					hasError = "true";
					$('#userEmailError').text('A valid email is required.').slideDown('fast');
				} 
			} else if (inputFocus == "userPhone") {
				if (!phoneRegEx.test($(this).val())) {
					hasError = "true";
					$('#userPhoneError').text('A valid phone number is required.').slideDown('fast');
				}
			} else if (inputFocus == "serialNum") {
				if (serial25RegEx.test($(this).val().toLowerCase())) {
					hasError = "true";
					$('#serialNumError').text('That is a Sanction 2.5 serial.').slideDown('fast');
					$('#serialSuggest').html('Were you looking for the <a href="/downloads/archives/sanction-2.5-Install.exe">Sanction 2.5 Install</a> instead?').slideDown('fast');	
					$(this).focus();
					return false;					
				} else if (!serialRegEx.test($(this).val().toLowerCase())) {
					hasError = "true";
					$('#serialNumError').text('This is not a valid serial format.').slideDown('fast');
					return false;
				}
			}
			$('#' + lineError).slideUp('fast');
		}		
	});	
	
	// Check for empty fields on Submit
	$('input[type=submit]').click(function(){
		hasError = "false";
		$('input[type=text]').each(function(){
			var inputFocus = $(this).attr('id');
			var lineError = inputFocus + "Error";

			if($(this).val() == "") {
				hasError = "true";	
				var errorText = "This field is required.";							
				$('#' + lineError).text(errorText).fadeIn('fast');
			} else {
				if (inputFocus == "userEmail") {
					if (!emailRegEx.test($(this).val())) {
						hasError = "true";
						$('#userEmailError').text('A valid email is required.').slideDown('fast');
						$(this).focus();
						return false;
					} 
				} else if (inputFocus == "userPhone") {
					if (!phoneRegEx.test($(this).val())) {
						hasError = "true";
						$('#userPhoneError').text('A valid phone number is required.').slideDown('fast');
						$(this).focus();
						return false;
					}
				}  else if (inputFocus == "serialNum") {
					if (serial25RegEx.test($(this).val().toLowerCase())) {
						hasError = "true";
						$('#serialNumError').text('That is a Sanction 2.5 serial.').slideDown('fast');
						$('#serialSuggest').html('Were you looking for the <a href="/downloads/archives/sanction-2.5-Install.exe">Sanction 2.5 Install</a> instead?').slideDown('fast');	
						$(this).focus();
						return false;					
					} else if (!serialRegEx.test($(this).val().toLowerCase())) {
						hasError = "true";
						$('#serialNumError').text('This is not a valid serial format.').slideDown('fast');
						$(this).focus();
						return false;
					}
				}										
			}
			
		});
		if (hasError == "false") {
			return;
		} else {
			return false;
		}
	});
	
});
