$(document).ready(function() {
	$("#s0").click(function() {
		if ($(this).attr("checked") == true) {
			$(".emailList").attr("checked","true");
		}
		if ($(this).attr("checked") == undefined) {
                        $(".emailList").attr("checked","");
                }
	});
});

function emailCheck(emailStr) {
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);

	if (matchArray==null) {
    		alert("Email address seems incorrect (check @ and .'s)");
    		return false;
	}

	var user=matchArray[1];
	var domain=matchArray[2];

	if (user.match(userPat)==null) {
    		alert("The username doesn't seem to be valid.");
    		return false;
	}

	var IPArray=domain.match(ipDomainPat);

	if (IPArray!=null) {
      		for (var i=1;i<=4;i++) {
        		if (IPArray[i]>255) {
	            		alert("Destination IP address is invalid!");
        			return false;
        		}
	    	}
    		return true;
	}

	var domainArray=domain.match(domainPat);

	if (domainArray==null) {
		alert("The domain name doesn't seem to be valid.");
	    	return false;
	}

	var atomPat=new RegExp(atom,"g");
	var domArr=domain.match(atomPat);
	var len=domArr.length;

	if ((domArr[domArr.length-1] != "info") && (domArr[domArr.length-1] != "name") && (domArr[domArr.length-1] != "arpa") && (domArr[domArr.length-1] != "coop") && (domArr[domArr.length-1] != "aero")) {
        	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {
        		alert("The address must end in a three-letter domain, or two letter country.");
	                return false;
        	}
	}

	if (len<2) {
   		var errStr="This address is missing a hostname!";
	   	alert(errStr);
   		return false;
	}

	return true;
}

function UPTvalidateform(thisform) {
	if (thisform.email1.value==""){
                alert("Please enter your Email Address");
                return(true);
        }
	if (thisform.email1.value != thisform.email2.value){
                alert("Email Addresses do not match");
                return(true);
        }

	if (emailCheck(thisform.email1.value)) {           
        	if (document.getElementById('unsubscribe') && !document.getElementById('unsubscribe').checked) {
			alert('Thank you for unsubscribing!');
	        } else {
			var referer = $("#referer").attr("value");
			$.ajax({
                		type: 'POST',
                        	url: 'submitemail.php',
	                        data: {
        	                	'firstName': $("#firstName").attr("value"),
                	                'lastName': $("#lastName").attr("value"),
                        	        'company': $("#company").attr("value"),
                                	'email': $("#email1").attr("value"),
					's1': $("#s1").attr("checked"),
					's2': $("#s2").attr("checked"),
					's3': $("#s3").attr("checked"),
					's4': $("#s4").attr("checked"),
					's5': $("#s5").attr("checked"),
					's6': $("#s6").attr("checked"),
                                        's7': $("#s7").attr("checked"),
                                        's8': $("#s8").attr("checked"),
                                        's9': $("#s9").attr("checked"),
                                        's10': $("#s10").attr("checked")
				},
                	        success: function(data) {
                        		alert('Thank you for signing up!');
					if (referer == "snapnames") {
                                                window.location = "http://www.snapnames.com";
                                        } else {
                                                window.location = "http://showcase.snapnames.com";
                                        }
	                        },
				error: function(data) {
					alert('There was an error.  Please try again.');
				}
        	        });
	        }
         	return false;
        } else {
       		return true;
        }
}

