﻿function pageLoad(sender, args) {
	//$(document).ready(function () {
	///
	/// Sets default value in designated search boxes when they are empty on page load or otherwise
	///
	var divs = [
					[".headSearch", "enter city or zip code"],
					[".footSearch", "enter city or zip code"],
					[".firstName", "first name"],
					[".lastName", "last name"],
					[".address", "address"],
					[".zip", "zip code"],
					[".phone", "phone (1112223333)"],
					[".email", "email address"]
				];
	var defaultClass = "search_default";

	$.each(divs, function (index, value) {
		var divId = value[0];
		var defaultValue = value[1];
		$(divId).addClass(defaultClass);
		$(divId).val(defaultValue);
		$(divId).focus(function () {
			if (this.value == defaultValue) {
				$(this).val('');
				$(this).removeClass(defaultClass);
			}
		});
		$(divId).blur(function () {
			if (this.value == '') {
				$(this).val(defaultValue);
				$(this).addClass(defaultClass);
			}
		});
	});
}
function derp(sender, args) {
	var controlToValidate = "#" + sender['controltovalidate'];
	if ($(controlToValidate).val() != "enter city or zip code" && $(controlToValidate).val().length > 1) {
		args.IsValid = true;
	}
	else {
		args.IsValid = false;
	}
}
function validateFirstName(sender, args) {
	if (emptyOrDefault(sender)) {
		args.IsValid = false;
		sender.errormessage = "Your first name is required";
	}
}
function validateLastName(sender, args) {
	if (emptyOrDefault(sender)) {
		args.IsValid = false;
		sender.errormessage = "Your last name is required";
	}
}
function validateAddress(sender, args) {
	if (emptyOrDefault(sender)) {
		args.IsValid = false;
		sender.errormessage = "An address is required";
	}
}
function validateZip(sender, args) {
	if (emptyOrDefault(sender)) {
		args.IsValid = false;
		sender.errormessage = "A zip code is required";
	}
	if (!(/^\d{5}/).test($("#" + sender['controltovalidate']).val())) {
		args.IsValid = false;
		sender.errormessage = "A valid US zip code is required";
		addErrorClass("#" + sender['controltovalidate']);
	}
}
function validatePhone(sender, args) {
	var parse = $("#" + sender['controltovalidate']).val().replace(/\D/g, "");
	if (emptyOrDefault(sender)) {
		args.IsValid = false;
		sender.errormessage = "A phone number is required";
	}
	if ((/\d{10}/).test(parse) && parse[0] == 1) {
		parse = parse.substring(1, parse.length);
	}
	if (!(/^1?\-?\(?\-?\d{3}\)?\-?\d{3}-?\d{4}/).test($("#" + sender['controltovalidate']).val())) {
		args.IsValid = false;
		sender.errormessage = "A valid US phone number is required";
		addErrorClass("#" + sender['controltovalidate']);
	}
	else if ((/^[0-9]{9}/).test(parse)) {
		$("#" + sender['controltovalidate']).val(parse.substring(0, 3) + "-" + parse.substring(3, 6) + "-" + parse.substring(6, 10));
	}
	
}
function validateEmail(sender, args) {
	if (emptyOrDefault(sender)) {
		args.IsValid = false;
		sender.errormessage = "An email address is required is required";
	}
	if (!(/^[A-Za-z0-9]{1}[A-Za-z0-9._%+-]*@[A-Za-z0-9]{1}[A-Za-z0-9.-]*\.[A-Za-z0-9-]{2,}$/).test($("#" + sender['controltovalidate']).val())) {
		args.IsValid = false;
		sender.errormessage = "A valid email address number is required";
		addErrorClass("#" + sender['controltovalidate']);
	}
}
function addErrorClass(controlToValidate) {
	var errorClass = "error";
	$(controlToValidate).addClass(errorClass);
}
function removeErrorClass(controlToValidate) {
	var errorClass = "error";
	$(controlToValidate).removeClass(errorClass);
}
function emptyOrDefault(sender) {
	var divs = [
							"first name",
							"last name",
							"address",
							"zip code",
							"phone (1112223333)",
							"email address"
						];
	var error = false;
	var controlToValidate = "#" + sender['controltovalidate'];

	if ($.inArray($(controlToValidate).val(), divs) != -1 || $(controlToValidate).val() == null || $(controlToValidate).val().match(/[^\s]/g) == null) {
		if ($(controlToValidate).val().match(/[^\s]/g) == null) {
			$(controlToValidate).val('');
		}
		else {
			addErrorClass(controlToValidate);
		}
		error = true;
	}
	else {
		removeErrorClass(controlToValidate);
	}
	return error;
}
