//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 += " - complétez l'adresse email \n";
    } else {
        //check against basic pattern
        if(!riIsValid(ri_emailexp,str)){
            msg += " - vérifiez @ et .'s \n";
        } else {
            //
            var matchArray = str.match(ri_emailexp);
            var user=matchArray[1];
            var domain=matchArray[2];
            
            if (user.match(userPat)==null) {
                msg += "vérifiez le nom utilisateur";
            }
            var IPArray=domain.match(domainPat);
            if (IPArray!=null) {
                  for (var i=1;i<=4;i++) {
                    if (IPArray[i]>255) {
                        msg += " - vérifiez la destination de l'adresse IP \n";
                    }
                }
            }
            var domainArray=domain.match(domainPat);
            if (domainArray==null) {
                msg +=" - le nom du domaine ne semble pas être valide \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 += " - l'adresse doit se terminer par trois lettres de domaines, ou deux lettres de pays \n";
                    }
            }
            if (len<2) {
               msg += " - il manque l'adresse au nom d'hôte. \n";
            }
            
        }
        
    }

    //if msg is empty return true, else return false
    if(msg!=""){
        ri_error = "vérifiez l'adresse email pour les éléments suivants:\n";
        ri_error += msg;
        return false;
    } else {
        return true;
    }
}
    
function riCheckForm(f) {	
	
	
    var reqError = "";
    var url;

	//check title
    if (f.title.selectedIndex <= 0) {
    reqError += "Merci de renseigner votre civilité. \n";
    }	
    // check first name
    if(!riHasLetter(f.firstName.value)){
        reqError += "Le prénom est obligatoire. \n";
    }
    if (f.firstName.value == "Prénom*" || f.firstName.value == "Prénom" ) {
        reqError += "Merci de renseigner votre prénom. \n";
    }
    // check last name
    if(!riHasLetter(f.lastName.value)){
        reqError += "Le nom est obligatoire. \n";
    }
    if (f.lastName.value == "Nom*" || f.lastName.value == "Nom") {
        reqError += "Merci de renseigner votre nom. \n";
    }
    //check email
    if(!riIsEmail(f.email.value)){
        reqError += ri_error;
    }
    //check country
    if (f.countryCode.selectedIndex <= 0) {
    reqError += "Merci de sélectionner un pays. \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 + "?";
    	title = 'title=' + f.title.value;
		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=fr_fr';
    	 
        url = url + title;
        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.title.selectedIndex = 0;
	f.firstName.value = f.firstName.defaultValue;
    f.lastName.value = f.lastName.defaultValue;
    f.email.value = f.email.defaultValue;
    f.countryCode.selectedIndex = 0;
}   
