
$(document).ready(function(){

	// uncomment below when Silverpop is ready
	$("#mailing_list #country").change( function() {
		var c = trim( $(this).val() );
		var n_id = (c == 'United Kingdom') ? 2070190 : 1536216;
		$("#newsletterId_li").val(n_id);
	});
	
	$("#mailing_list #newsletterId_li").click( function() {
		var g = (this.checked) ? 1442152 : '';
		$("#groups_li").val(g);
	});
	
	$("#mailing_list #newsletterId_ar").click( function() {
		var g = (this.checked) ? 19461 : '';
		$("#groups_ar").val(g);
	});
	
	$("#mailing_list #newsletterId_as").click( function() {
		var g = (this.checked) ? 19526 : '';
		$("#groups_as").val(g);
	});
	
	$("#mailing_list #form_mailing_list").submit( function() {
		if ( valid_mailing_list() ) {
			return true;
		} else {
			return false;
		}
	});
	
});
// END DOCUMENT.READY-----------------------------------------------------------------

function valid_mailing_list() {
	$(".err_msg").hide();
	var errs = false;
	var email = trim( $('#email').val() );
	var postalcode = trim( $('#postalcode').val() );
	
	var mobile = trim( $('#mobile').val() );
	
    if (!empty(mobile)) {
        $('#mobile').val( cleanInteger(mobile) );
    }	
	if (empty(email) || !validEmail(email)) {
		$("#err_email").show();
		errs = true;
	}
	if (!empty(postalcode)) {
	    $('#postalcode').val( cleanInteger(postalcode) );
	}
	if (empty(postalcode)) {
	        $("#err_postalcode").show();
	        errs = true;
	    } else if ( empty(cleanPostalCode(postalcode)) ) {
	        $("#err_postalcode").show();
	        errs = true;
	    } else {
	        $('#postalcode').val( cleanPostalCode(postalcode) );
	    }

	return !errs;
}

function cleanInteger(s) {   
    var x = '';
    for (i = 0; i < s.length; i++) {   
        // Check that current character is number.
        var c = s.charAt(i);
        if ( !((c < "0") || (c > "9")) ) {
            x += c;
        }
    }
    // All characters are numbers.
    return x;
}

function cleanPostalCode(s) {   
    var x = '';
    for (i = 0; i < s.length; i++) {   
        // Check that current character is number.
        var c = s.charAt(i);
        if ( !((c < "a") || (c > "z")) || !((c < "0") || (c > "9")) ) {
            x += c;
        }
    }
    // All characters are letters or numbers.
    return x;
}

function validEmail(str) {
	var testresults=true;
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	var emailPat=/^(.+)@(.+)$/; 
	var matchArray=str.match(emailPat); 
	if (matchArray==null) {	testresults=false; }
	if (!filter.test(str)) { testresults=false; }
	return testresults;
}

function isInteger(s) {   
    for (i = 0; i < s.length; i++) {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function empty(x) {
	return (x=='' || x==null);
}

function trim(str, chars) {
	if (empty(str)) {
		return '';
	} else {
		return ltrim(rtrim(str, chars), chars);	
	}
}

function ltrim(str, chars) {
	chars = chars ||"\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}