var charexp = /./;
var digitexp = /[0-9\.]$/i;
var intexp = /^\d{1,9}$/i;
var transexp = /^\w{1,}\-\d{1,}$/i;
var letterexp = /[a-z]/i;
var phonexp =  /^\d{10}$/;
var yearexp =  /^\d{4}$/;
var memberexp = /^\d{3}$/;
var zipexp = /^\d{5}$|^\d{5}[\-\s]?\d{4}$/;
var emailexp = /^[a-z][a-z_0-9\.]+@[a-z_0-9\.]+\.[a-z]{3}$/i;
var pledgexp = /^\d*$|^\d*\.\d{2}$/;
//var curexp=  /^\s*((\$\s?))?((((\d{1,3}(\,\d{3})*)|(\d+))(\.(\d\d?)?)?)|(\.\d\d))\s*$/;
var curexp=  /^\s*((((\d{1,3}(\,\d{3})*)|(\d+))(\.(\d\d?)?)?)|(\.\d\d))\s*$/;

function isValid(pattern, str) {
	return pattern.test(str)
}

function hasLetter(str) {
	return letterexp.test(str)
}

function hasChar(str) {
	return charexp.test(str)
}

function stripChars(pattern, str) {
	return str.replace(pattern,"")
}

function stripNonDigits(str) {
	return str.replace(/[^0-9]/g,"")
}

function Trim(str) {
    return str.replace(/\s+$|^\s*/gi, "");
}

function CheckBlankField(name, str, form, doc){
	doc.forms[form].elements[name].value = Trim(doc.forms[form].elements[name].value);
	if  (!hasChar(doc.forms[form].elements[name].value)) {
		alert(str);
		doc.forms[form].elements[name].focus();
		return false;
	}
	return true;
}


function CheckFieldValue(name, strval, str, form, doc){
	doc.forms[form].elements[name].value = Trim(doc.forms[form].elements[name].value);
	if  (doc.forms[form].elements[name].value == strval) {
		alert(str);
		doc.forms[form].elements[name].focus();
		return false;
	}
	return true;
}

function CheckPhone(txtphone, name, doc){
	newphone = '';
	if (hasChar(doc.forms[name].elements[txtphone].value)) {
		newphone = stripNonDigits(doc.forms[name].elements[txtphone].value)
		notvalid = !isValid(phonexp,newphone)
	};
	if (newphone == '' || notvalid) {
		alert('Invalid phone number - include area code')
		return false
	}else{
		doc.forms[name].elements[txtphone].value = newphone;
	};
	return true;
}

function GetListValue(list){
	return list.options[list.selectedIndex].value;
}


function emailCheck(emailStr) {
emailStr = Trim(emailStr);
var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
var check=/@[\w\-]+\./;
var checkend=/\.[a-zA-Z]{2,4}$/;
	if(((emailStr.search(exclude) != -1)||(emailStr.search(check)) == -1)||(emailStr.search(checkend) == -1)){
		alert("Email address seems incorrect.  Please try again (check the '@' and '.'s in the email address)");
		return false;
	}
return true;
}

function ValidateCheckboxes(name, str, form, doc) {
	for(i=0;i < doc.forms[form].elements[name].length; i++)
	{
		if(doc.forms[form].elements[name][i].checked==true){ return true; }
	}
	alert(str);
	doc.forms[form].elements[name][0].focus();
	return false;
}

function ClearField(name, str, form, doc){
	if (doc.forms[form].elements[name].value == str){
	doc.forms[form].elements[name].value = '';
	} else if (str == ''){
	doc.forms[form].elements[name].value = '';
	}
	return true;
};

function btnNewsLetter_OnClick(){
    if (!emailCheck(document.forms['newsform'].elements['EmailAddress'].value)){
           document.forms['newsform'].elements['EmailAddress'].focus();
           return false;
    };
    return true;
}

function btnSearch_OnClick(){
    if (!CheckBlankField('query','Please enter search criteria','searchform', document) || !CheckFieldValue('query','search','Please enter search criteria','searchform', document)){return false};
    return true;
};

function btnFindChapter_OnClick(){
    if (!CheckBlankField('chapter_zip','Please enter zip code','chapterform', document) || !CheckFieldValue('chapter_zip','enter zip code','Please enter zip code','chapterform', document)){
    	return false;
    };
    return true;
}

function EmailToFriend(str){
	var theHeight = 530;
	var theWidth = 400;
	var theTop=(screen.height/2)-(theHeight/2);
	var theLeft=(screen.width/2)-(theWidth/2);
	var features='height='+theHeight+',width='+theWidth+',top='+theTop+',left='+theLeft+",scrollbars=yes";
	theWin=window.open(str,'_answer',features);
}