//declare script global variables
var ri_error = "";
var ri_charexp = /./;
var ri_letterexp = /[a-z]/i;
var ri_emailexp=/^(.+)@(.+)$/;
var ri_specialchars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
var ri_validchars="\[^\\s" + ri_specialchars + "\]";
var ri_quoteduser="(\"[^\"]*\")";
var ri_ipdomainexp=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
var ri_phexp = /^\(?\d{3}\)?[\s\-]?\d{3}[\s\-]?\d{4}$/;
var ri_zipexp =/^\d{5}-?[\d{4}]?$/;

function riIsValid(pattern, str) {
    return pattern.test(str)
}
            
function riHasLetter(str){
    return ri_letterexp.test(str)
}

function riHasChar(str){
    return ri_charexp.test(str)
}
            
//function to check email address
function riIsEmail(str){
    var msg = "";
    var atom=ri_validchars + '+';
    var word="(" + atom + "|" + ri_quoteduser + ")";
    var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
    var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
    if(!riHasLetter(str)){
        msg += " - email is empty \n";
    } else {
        //check against basic pattern
        if(!riIsValid(ri_emailexp,str)){
            msg += " - check @ and .'s \n";
        } else {
            //
            var matchArray = str.match(ri_emailexp);
            var user=matchArray[1];
            var domain=matchArray[2];
            
            if (user.match(userPat)==null) {
                msg += "check username";
            }
            var IPArray=domain.match(domainPat);
            if (IPArray!=null) {
                  for (var i=1;i<=4;i++) {
                    if (IPArray[i]>255) {
                        msg += " - check destination ip address \n";
                    }
                }
            }
            var domainArray=domain.match(domainPat);
            if (domainArray==null) {
                msg +=" - the domain name doesn't seem to be valid \n";
            }
            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")) {
                    if (domArr[domArr.length-1].length<2 || 
                        domArr[domArr.length-1].length>3) {
                            msg += " - address must end in a three-letter domain, or two letter country \n";
                    }
            }
            if (len<2) {
               msg += " - address is missing a hostname. \n";
            }
            
        }
        
    }

    //if msg is empty return true, else return false
    if(msg!=""){
        ri_error = "check email address for the following:\n";
        ri_error += msg;
        return false;
    } else {
        return true;
    }
}
    
function riCheckForm(f) {	
	
	
    var reqError = "";
    var url;
    // check first name
    if(!riHasLetter(f.firstName.value)){
        reqError += "First name is required. \n";
    }
    if (f.firstName.value == "First name*" || f.firstName.value == "First Name" ) {
        reqError += "Please enter first name. \n";
    }
    // check last name
    if(!riHasLetter(f.lastName.value)){
        reqError += "Last name is required. \n";
    }
    if (f.lastName.value == "Last name*" || f.lastName.value == "Last Name") {
        reqError += "Please enter last name. \n";
    }
    //check email
    if(!riIsEmail(f.email.value)){
        reqError += ri_error;
    }
    //check country
    if (f.countryCode.selectedIndex <= 0) {
    reqError += "Please select a country. \n";
    }
    
    // check for error, display, return true|false
    if(reqError!=""){
    	//s.sendFormEvent('e','Quick Sign-Up Form','tipsForm',reqError);
        alert(reqError);
        ri_error = "";
        return false;
    } else {
    	//url = "/avery/secure/thankyoupopup?"
    	url = f.action + "?";
    	firstName = 'firstName=' + f.firstName.value;
    	lastName = '&lastName=' + f.lastName.value;
    	email = '&email=' + f.email.value;
    	countryCode = '&countryCode=' + f.countryCode.value;
    	thankyouType = '&thankyouType=subscription';
    	locale = '&locale=en_ca';
    	 
        url = url + firstName;
        url += lastName;
        url += email;
        url += countryCode;
        url += thankyouType;
        url += locale;
        
        //s.sendFormEvent('s','Quick Sign-Up Form','tipsForm');
    	window.open(url, 'quickSignUpWin', 
    	   'left=20,top=20,width=560,height=540,toolbar=0,resizable=0');
    	clearForm(f);
    }
    
    
}

                
function clearDefault(inp) {
    if(inp.value == inp.defaultValue) {
        inp.value = "";
    }
}
            
function fillDefault(inp) {
    if(inp.value.length == 0) {
        inp.value = inp.defaultValue;
    }
}

function clearForm(f) {
    f.firstName.value = f.firstName.defaultValue;
    f.lastName.value = f.lastName.defaultValue;
    f.email.value = f.email.defaultValue;
    f.countryCode.selectedIndex = 0;
}   
