//library.js - holds regex and functions used across validation routines

//Basic Regex validations (cross-form)
function checkEmail(formElement) {
	if (!(/^[\w-]+(\.[\w-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)*?\.[a-z]{2,6}|(\d{1,3}\.){3}\d{1,3})(:\d{4})?$/.test($(formElement).value))){				
		return false;	
	} else {
		return true;
	}
}

function checkDate(formElement) {	
	if(!(/^(0?[1-9]|1[0-2])[\/](0?[1-9]|[12][0-9]|3[01])[\/]((19|20)[0-9]{2})$/.test($(formElement).value))) {
		return false;
	} else {
		return true;
	}
}

function checkYear(formElement) {	
	if(!(/^((19|20)[0-9]{2})$/.test($(formElement).value))) {		
		return false;	
	} else {
		return true;
	}
}

function checkZip(formElement) {
	return(/^([0-9]{5})(-[0-9]{4})?$/.test($(formElement).value));	
}

function checkPhone(formElement) {
	return (/^([0-9]{3}-)?([0-9]{3}-){1}([0-9]{4}){1}$/.test($(formElement).value));	
}

function checkCheckbox(formElement) {	
	return formElement.checked;
}

function checkRadio(formElement) {
	var cnt = -1;
	
	for (var i=formElement.length-1; i > -1; i--) {
        if (formElement[i].checked) {cnt = i; i = -1;}
    }
	
    if (cnt == -1) {		
		return false;
	}
		
	return true;	
}

function getRadioValue(formElement) {
	var value = false;
	for (var i=formElement.length-1; i > -1; i--) {
        if (formElement[i].checked) {value = formElement[i].value; break;}
    }	
	
	return value;
}

function checkSelected(formElement) {
	var selections = 0;
	
	for(var i = 0; i < formElement.options.length; i++) {
		if(formElement.options[i].selected)
		{		  
			selections++;
			return true;		
		}
	}
	
	return false;
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}

function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */

function SubmitNewsletterSignup( x, url ) {
	if (!(/^[\w-]+(\.[\w-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)*?\.[a-z]{2,6}|(\d{1,3}\.){3}\d{1,3})(:\d{4})?$/.test(x.email.value))){				
		alert('Please enter your valid email address to sign-up.');
		return false;
	} else {
		x.action = url;
		return true;
	}
}

function ValidateSendToAFriend(x){
	var emailARR = x.friend_emails.value.split("\n");	
	
	if(emailARR.length > 10) {
		alert('You may not send emails to more than 10 Friend\'s');
		x.friends.focus();
		return false;
	} else if (x.name.value == ""){
		alert('Please enter your Name.');
		x.name.focus();
		return false;
	} else if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(x.email.value))){
		alert('Please enter a valid Email Address.');
		x.email.focus();
		return false;
	} else if (x.friend_emails.value == ""){
		alert('Please enter at least one Friends\' Email Address.');
		x.friend_emails.focus();
		return false;
	} else {
		for(i = 0; i < emailARR.length; i++) {
			emailARR[i] = emailARR[i].replace("\n","");
			emailARR[i] = emailARR[i].replace("\r","");
			if(!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(emailARR[i])))
			{
				alert('The email address \''+ emailARR[i] + '\' on line ' + (i+1) + ' does not appear to be a valid email.');
				return false;
				break;
			}
		}	
	}
}
