function createArrow(inputField, msg, side, midWidth) {
	var arrow = "";
	var arrowObject;
	var animateTime = 2000;
	var arrow_endCSS = {right: 800, left:800, opacity: 0};
	var errorField = $("#errors");
	
	if (midWidth == undefined)
	{
		midWidth = '143';
	}
	if (side == 'left')
	{		
		arrow = "<div class='errorform2' id='error"+inputField+"'><div class='right2'></div><div class='mid' style='width: "+midWidth+"px'><div class='errormessage'>";
		arrow += msg;
		arrow += "</div></div><div class='left2'></div></div>";
		arrowObject = $(arrow);
		errorField.append(arrowObject);
		arrowObject.click(function() {
			arrowObject.fadeOut("slow");
		});
		$("#error"+inputField).css("top",$('#'+inputField).offset().top);
		$("#error"+inputField).css("left",$('#'+inputField).offset().left - $('#error'+inputField).width());
	}
	else if (side == 'right')
	{
		arrow = "<div class='errorform' id='error"+inputField+"'><div class='left'></div><div class='mid'><div class='errormessage'>";
		arrow += msg;
		arrow += "</div></div><div class='right'></div></div>";
		arrowObject = $(arrow);
		errorField.append(arrowObject);
		arrowObject.click(function() {
			arrowObject.fadeOut("slow");
		});
		$("#error"+inputField).css("top",$('#'+inputField).offset().top);
		$("#error"+inputField).css("left",$('#'+inputField).offset().left + $('#'+inputField).width() -3);
	}
}

function validateAerieSweeps() {
	$("div").remove(".errorform");
	$("div").remove(".errorform2");
	
	var msgString = "";
	var formValidates = true;
	
	if(isOneLetter(trim($('#firstName').val()))) {
		msgString = "Please enter your first name.";
		createArrow('firstName', msgString, 'left');
		formValidates = false;
	}
	if(isOneLetter(trim($('#lastName').val()))) {
		msgString = "Please enter your last name.";
		createArrow('lastName', msgString, 'right');
		formValidates = false;
	}
	if(isOneLetter(trim($('#street1').val()))) {
		msgString = "Please enter your address.";
		createArrow('street1', msgString, 'left', '123');
		formValidates = false;
	}
	if(isOneLetter(trim($('#city').val()))) {
		msgString = "Please enter your city.";
		createArrow('city', msgString, 'left', '104');
		formValidates = false;
	}
	if($('#state').val() == "") {
		msgString = "Please select your state.";
		createArrow('state', msgString, 'right');
		formValidates = false;
	}
	var zip = trim($('#zipPostal').val());
	if(!isPostalCode(zip) && !isZip(zip)) {
		msgString = "Please enter a valid zip or postal code.";
		createArrow('zipPostal', msgString, 'left', '183');
		formValidates = false;
	}
	if($('#swp_country').val() == "") {
		msgString = "Please select your country.";
		createArrow('swp_country', msgString, 'right');
		formValidates = false;
	}
	var email = trim($('#email').val());
	if(!isEmail(email)) {
		msgString = "Please enter a valid e-mail address.";
		createArrow('email', msgString, 'left', '168');
		formValidates = false;
	}
	var confirmEmail = trim($('#confirmEmail').val());
	if(isOneLetter(confirmEmail)) {
		msgString = "Please enter a valid e-mail address.";
		createArrow('confirmEmail', msgString, 'right');
		formValidates = false;
	}
	if(!isOneLetter(email) && !isOneLetter(confirmEmail) && (email != confirmEmail)) {
		msgString = "Please confirm your e-mail address.";
		createArrow('confirmEmail', msgString, 'right');
		formValidates = false;
	}
	var phoneNumber = trim($('#phoneNumber').val());
	if(!isPhoneNumber(phoneNumber)) {
		msgString = "Please enter a valid phone number."; 
		createArrow('phoneNumber', msgString, 'left', '169');
		formValidates = false;
	}
	if(!isMobilePhoneNumber(trim($('#mobileNumber').val()))) {
		msgString = "Please enter a valid phone number.";
		createArrow('mobileNumber', msgString, 'right');
		formValidates = false;
	}
	/* Comparing Dates */
	if($('#BirthMonth').val() == "" || $('#BirthDay').val() == "" || $('#BirthYear').val() == "") {
		msgString = "Please enter your birthday.";
		createArrow('BirthMonth', msgString, 'left','130');
		formValidates = false;
	}
	else
	{
		var birthdateYear = $('#BirthYear').val();
		var birthdateMonth = $('#BirthMonth').val();
		var birthdateDay = $('#BirthDay').val();
		var state = $('#state').val();
		var ageToCheck = 18;
		if(state == "ME" && ageToCheck < 18) ageToCheck = 18;
		var birthdate = new Date();
		birthdate.setFullYear(birthdateYear,birthdateMonth-1,birthdateDay);
		var curDate = new Date();
		curDate.setFullYear(curDate.getFullYear() - ageToCheck);
		if ((curDate - birthdate) < 0)
		{
			msgString = "You must be at least " + ageToCheck +" years old.";
			createArrow('BirthMonth', msgString, 'left','160');
			formValidates = false;
		}
	}
	if($('#agree:checked').val() == null) {
		msgString = "Please agree to the terms and conditions.";
		createArrow('agree', msgString, 'left', '195');
		formValidates = false;
	}
	if( !formValidates ) {
		return false;
	} else {
		if (phoneNumber > 0) {
			$('#phoneNumber').val(correctPhoneNumber(phoneNumber));
		}
		return true;
	}
}

function validateKidsSweeps() {
	var msgString = "";
	var formValidates = true;
	$("body").remove(".errorform .errorform2").append("<div id='errors'></div>");
		
	if(isOneLetter(trim($('#firstName').val()))) { 
		msgString = "Please enter your first name."; 
		createArrow('firstName', msgString, 'left');
		formValidates = false;
	}
	if(isOneLetter(trim($('#lastName').val()))) { 
		msgString = "Please enter your last name."; 
		createArrow('lastName', msgString, 'right');
		formValidates = false;
	}
	if(isOneLetter(trim($('#street1').val()))) {
		msgString = "Please enter your address.";
		createArrow('street1', msgString, 'left', '123');
		formValidates = false;
	}
	if(isOneLetter(trim($('#city').val()))) {
		msgString = "Please enter your city.";
		createArrow('city', msgString, 'left', '104');
		formValidates = false;
	}
	if($('#state').val() == "") {
		msgString = "Please select your state.";
		createArrow('state', msgString, 'right');
		formValidates = false;
	}
	var zip = trim($('#zipPostal').val());
	if(!isPostalCode(zip) && !isZip(zip)) {
		msgString = "Please enter a valid zip or postal code.";
		createArrow('zipPostal', msgString, 'left', '183');
		formValidates = false;
	}
	if($('#swp_country').val() == "") {
		msgString = "Please select your country.";
		createArrow('swp_country', msgString, 'right');
		formValidates = false;
	}
	var email = trim($('#email').val());
	if(!isEmail(email)) { 
		msgString = "Please enter a valid e-mail address."; 
		createArrow('email', msgString, 'left', '168');
		formValidates = false;
	}
	var confirmEmail = trim($('#confirmEmail').val());
	if(isOneLetter(confirmEmail)) {
		msgString = "Please enter a valid e-mail address.";
		createArrow('confirmEmail', msgString, 'right');
		formValidates = false;
	}
	if(!isOneLetter(email) && !isOneLetter(confirmEmail) && (email != confirmEmail)) {
		msgString = "Please confirm your e-mail address.";
		createArrow('confirmEmail', msgString, 'right');
		formValidates = false;
	}
	var phoneNumber = trim($('#phoneNumber').val());
	if(!isPhoneNumber(phoneNumber)) { 
		msgString = "Please enter a valid phone number.";
		createArrow('phoneNumber', msgString, 'left', '168');
		formValidates = false;
	}
	/* Comparing Dates */
	if($('#BirthMonth').val() == "" || $('#BirthDay').val() == "" || $('#BirthYear').val() == "") {
		msgString = "Please enter your birthday.";
		createArrow('BirthYear', msgString, 'right');
		formValidates = false;
	}
	else
	{
		var birthdateYear = $('#BirthYear').val();
		var birthdateMonth = $('#BirthMonth').val();
		var birthdateDay = $('#BirthDay').val();
		var state = $('#state').val();
		var ageToCheck = 18;
		if(state == "ME" && ageToCheck < 18) ageToCheck = 18;
		var birthdate = new Date();
		birthdate.setFullYear(birthdateYear,birthdateMonth-1,birthdateDay); 
		var curDate = new Date();
		curDate.setFullYear(curDate.getFullYear() - ageToCheck);
		if ((curDate - birthdate) < 0)
		{
			msgString = "You must be at least " + ageToCheck +" years old.";
			createArrow('BirthYear', msgString, 'right');
			formValidates = false;
		}
	}
	if($('#agree:checked').val() == null) {
		msgString = "Please agree to the terms and conditions.";
		createArrow('agree', msgString, 'right', '195');
		formValidates = false;
	}
	if( !formValidates ) {
		return false;
	} else {
		if (phoneNumber > 0) {
			$('#phoneNumber').val(correctPhoneNumber(phoneNumber));
		}
		return true;
	}
	
}

function validateAeSweeps() {
	$("#errors").empty();
	
	var msgString = "";
	var formValidates = true;
	
	if(isOneLetter(trim($('#firstName').val()))) {
		msgString = "Please enter your first name.";
		createArrow('firstName', msgString, 'left');
		formValidates = false;
	}
	if(isOneLetter(trim($('#lastName').val()))) {
		msgString = "Please enter your last name.";
		createArrow('lastName', msgString, 'right');
		formValidates = false;
	}
	if(isOneLetter(trim($('#street1').val()))) {
		msgString = "Please enter your address.";
		createArrow('street1', msgString, 'left', '123');
		formValidates = false;
	}
	if(isOneLetter(trim($('#city').val()))) {
		msgString = "Please enter your city.";
		createArrow('city', msgString, 'left', '104');
		formValidates = false;
	}
	if($('#state').val() == "") {
		msgString = "Please select your state."; 
		createArrow('state', msgString, 'right');
		formValidates = false;
	}
	var zip = trim($('#zipPostal').val());
	if(!isPostalCode(zip) && !isZip(zip)) {
		msgString = "Please enter a valid zip or postal code.";
		createArrow('zipPostal', msgString, 'left', '183');
		formValidates = false;
	}
	if($('#swp_country').val() == "") {
		msgString = "Please select your country.";
		createArrow('swp_country', msgString, 'right');
		formValidates = false;
	}
	var email = trim($('#email').val());
	if(!isEmail(email)) {
		msgString = "Please enter a valid e-mail address."; 
		createArrow('email', msgString, 'left', '168');
		formValidates = false;
	}
	var confirmEmail = trim($('#confirmEmail').val());
	if(isOneLetter(confirmEmail)) {
		msgString = "Please enter a valid e-mail address.";
		createArrow('confirmEmail', msgString, 'right');
		formValidates = false;
	}
	if(!isOneLetter(email) && !isOneLetter(confirmEmail) && (email != confirmEmail)) {
		msgString = "Please confirm your e-mail address.";
		createArrow('confirmEmail', msgString, 'right');
		formValidates = false;
	}
	var phoneNumber = trim($('#phoneNumber').val());
	if(!isPhoneNumber(phoneNumber)) { 
		msgString = "Please enter a valid phone number."; 
		createArrow('phoneNumber', msgString, 'left', '168');
		formValidates = false;
	}
	if(!isMobilePhoneNumber(trim($('#mobileNumber').val()))) {
		msgString = "Please enter a valid phone number."; 
		createArrow('mobileNumber', msgString, 'right');
		formValidates = false;
	}
	/* Comparing Dates */
	if($('#BirthMonth').val() == "" || $('#BirthDay').val() == "" || $('#BirthYear').val() == "") {
		msgString = "Please enter your birthday.";
		createArrow('BirthMonth', msgString, 'left','130');
		formValidates = false;
	}
	else
	{
		var birthdateYear = $('#BirthYear').val();
		var birthdateMonth = $('#BirthMonth').val();
		var birthdateDay = $('#BirthDay').val();
		var state = $('#state').val();
		var ageToCheck = 18;
		if(state == "ME" && ageToCheck < 18) ageToCheck = 18;
		var birthdate = new Date();  
		birthdate.setFullYear(birthdateYear,birthdateMonth-1,birthdateDay);
		var curDate = new Date();
		curDate.setFullYear(curDate.getFullYear() - ageToCheck);
		if ((curDate - birthdate) < 0)
		{
			msgString = "You must be at least " + ageToCheck +" years old.";
			createArrow('BirthMonth', msgString, 'left','160');
			formValidates = false;
		}
	}
	if($('#agree:checked').val() == null) {  
		msgString = "Please agree to the terms and conditions."; 
		createArrow('agree', msgString, 'left', '195');
		formValidates = false;
	}
	if( !formValidates ) {
		return false;
	} else {
		if (phoneNumber > 0) {
			$('#phoneNumber').val(correctPhoneNumber(phoneNumber));
		}
		return true;
	}
}
function isPhoneNumber(string) {
	if (string.search(/^(1\s*[-\/\.]?)?(\((\d{3})\)|(\d{3}))\s*[-\/\.]?\s*(\d{3})\s*[-\/\.]?\s*(\d{4})\s*(([xX]|[eE][xX][tT])\.?\s*(\d+))*$/) != -1)
		return true;
	else
		return false;
}
function isMobilePhoneNumber(string) {
	if (string.length > 0) {
		return isPhoneNumber(string);
	}
	else {
		return true;
	}
}
function correctPhoneNumber (string) {
	phoneNumber = string.replace(/ /g,"");
	phoneNumber = phoneNumber.replace(/\(/g,"");
	phoneNumber = phoneNumber.replace(/\)/g,"");
	phoneNumber = phoneNumber.replace(/-/g,"");
	phoneNumber = phoneNumber.replace(/\./g,"");
	return phoneNumber;
}
function isBirthday(string) {
	if (string.search(/^\d{2}\s*[\/\\]\d{4}/) != -1) {
		return true;
	} else {
		return false;
	}
}
function isPostalCode(string) {
	if (string.search(/^\s*[a-ceghj-npr-tvxy]\d[a-ceghj-npr-tv-z](\s)?\d[a-ceghj-npr-tv-z]\d\s*$/i) != -1) {
		return true;
	} else {
		return false;
	}
}
function isZip(string) {
	if (string.search(/^\d{5}/) != -1)
		return true;
	else
		return false;
}
function isOneLetter(string) {
	if (string.length >= 1)
		return false;
	else
		return true;
}
function isEmail(string) {
	if (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
		return true;
	else
		return false;
}
function trim(str){
	while(''+str.charAt(0)==' ')
	str=str.substring(1,str.length);
	while(''+str.charAt(str.length-1)==' ')
	str=str.substring(0,str.length-1);
	return str;
}

