    function send_egadget_emailme_checkEmailMultiple(email_address) {
    	var caddrs = email_address + " ";
    	var naddrs = caddrs.length;
    	var cpart = "";
    	var lret = false;
    	var c;

    	for (var i = 0; i < naddrs; i++)
    		switch (c = caddrs.charAt(i)) {
    			case '\r': case '\n': case '\t': case '\f':
    			case ' ':
    			case ';':
    			case ',':
    				if (cpart.length == 0) break;
    				if (!send_egadget_emailme_checkEmail(cpart)) return false;
    				lret = true;
    				cpart = "";
    				break;
    			default:
    				cpart += c;
    		} //end switch
    	return lret;
    } //end function

    function send_egadget_emailme_checkEmail(email_address) {
    	if (email_address.length <= 0) return false;
        if (email_address.charAt(0) == "\"") {
            if ((nat = email_address.indexOf("\"", 1) + 1) < 1) return false;
            else if (nat >= email_address.length) return false;
            else if (email_address.charAt(nat) != "@") return false;
        }
        else if ((nat = email_address.indexOf("@")) < 1) return false;
        else if (email_address.charAt(0) == ".") return false;
        else if (email_address.charAt(nat - 1) == '.') return false;
        else for (var i = 0; i < nat; i++) {
            c = email_address.charAt(i);
            if ((c < "a" | c > "z") & (c < "A" | c > "Z") & (c < "0" | c > "9")
                    & (String(".!#$%&'*+-/=?^_`{|}~").indexOf(c) < 0))
                return false;
        }
        if (email_address.indexOf('@', nat + 1) > 0) return false;
        else if (email_address.charAt(email_address.length - 1) == "@") return false;
        else if ((cdomain = email_address.substring(nat + 1)).indexOf(".") < 1) return false;
        else if (cdomain.indexOf("..") > 0) return false;
        else if (cdomain.charAt(cdomain.length - 1) == ".") return false;
        else if ((cdomain.charAt(cdomain.length - 1) == "-") | cdomain.indexOf("-.") >= 0) return false;
        else if ((cdomain.charAt(0) == "-") | cdomain.indexOf(".-") >= 0) return false;
        else if (cdomain.charAt(0) == "[")
            if (cdomain.indexOf(':') >= 0) return false;
            else if (cdomain.charAt(cdomain.length - 1) != "]") return false;
            else if ((aip = cdomain.substring(1, cdomain.length - 1).split(".")).length != 4) return false;
            else for (var i = 0; i < aip.length; i++)
                if (isNaN(nip = parseInt(aip[i]))) return false;
                else if (nip < 0 | nip > 255) return false;
        else for (var i = 0; i < cdomain.length; i++) {
            c = cdomain.charAt(i);
            if ((c < 'a' | c > 'z') & (c < 'A' | c > 'Z') & (c < '0' | c > '9')
                    & (c != '.') & (c != '-'))
                return false;
        }
        return true;
    }

    function send_egadget_emailme(emailaddress, link_txt, link_url) { //returns boolean. true==success, false==validation error
        var cvalue;
        var oform = document.forms["quimby_eGadget_EmailMe_form"];
        var nat, cdomain, c, aip, nip;

        if (!send_egadget_emailme_checkEmailMultiple(emailaddress)) return false; 
        oform.elements["dst"].value = emailaddress;
 
        cvalue = emailaddress;
        if (cvalue == null) cvalue = "";
        oform.elements["EmailAddress"].value = cvalue;
 
        cvalue = link_txt;
        if (cvalue == null) cvalue = "";
        oform.elements["link_txt"].value = cvalue;
 
        cvalue = link_url;
        if (cvalue == null) cvalue = "";
        oform.elements["link_url"].value = cvalue;
 
        oform.submit();
        return true;
    }
