//validate form submission
function validateLeadAff(lead, form_id, requireZip, requireAddress, requireService)
{
	if(form_id==0) form_id = ""; 
	//make sure encrypted user id set
	var userId = lead.nx_e_userId;
	if(userId && userId.value !="")
	{
		return validateLead(lead, form_id, requireZip, requireAddress, requireService);
	}

	return false; //no userid for some odd reason
	
}
function validateLead(lead, form_id, requireZip, requireAddress, requireService) {
	var reason = "";
	if(requireService)
		reason += validateService(document.getElementById('service_type')); 
	reason += validateName(lead.f_name, document.getElementById('f_name_label'+form_id));
	reason += validatePhone(lead.n_phone1,lead.n_phone2,lead.n_phone3,document.getElementById('phone_label'+form_id));
/*  if (document.getElementById('email_label'+form_id) == 'true'){ */
	reason += validateEmail(lead.email, document.getElementById('email_label'+form_id));
/*  } */

	if (requireZip){
		reason += validateZip(document.getElementById('zip'+form_id).value, document.getElementById('zip_label'+form_id));
	}

/*	var zip = document.getElementById('zip'+form_id); 
	if (zip){
		reason += validateZip(zip.value, document.getElementById('zip_label'+form_id));
	}  
*/
	if(requireAddress)
	{
		var address = lead.address;
		if(!address.value) {
			 var lbl = document.getElementById('address_label'+form_id);
			 lbl.style.color='Red';
			 reason += "your address\n";
		}
	} 
	
	if (document.getElementById('alternate_label'+form_id)&& 
	   ((document.getElementById('d_phone1').value!='')||(document.getElementById('d_phone2').value!='')||(document.getElementById('d_phone3').value!=''))){
		reason += validatePhone(lead.d_phone1,lead.d_phone2,lead.d_phone3,document.getElementById('alternate_label'+form_id));
	}
  if (reason != "") {
    alert("In order to be contacted please fill in:\n"+reason);
    return false;
  }
  disableSubmit(lead);
  return true;
}


function validateZip(fld,lbl) {
    var error = "";
    if (fld == "") {
        error = "your zip code\n";
        lbl.style.color = 'Red';
    } else if (isNaN(fld)) {
        error = "your zip code correctly\n";
        lbl.style.color = 'Red';
    } else if (!(fld.length == 5)) {
        error = "your zip code correctly\n";
        lbl.style.color = 'Red';
    } else {
                lbl.style.color = 'Black';
        }
    return error;
}

function validateName(fld,lbl) {
	var error = "";
	var str=trim(fld.value);
	if (!str || str == "") {
        lbl.style.color = 'Red'; 
        error = "your name\n";
    } else {
        lbl.style.color = 'Black';
    }
    return error;
}

function trim(s)
{
	if(s)	return s.replace(/^\s+|\s+$/, '');
}

function validateEmail(fld,lbl) {
    var error="";
    var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
   
    if (fld.value == "") {
        lbl.style.color = 'Black';
    } else if (!emailFilter.test(tfld)) {              //test email for illegal characters
        lbl.style.color = 'Red';
        error = "your email correctly\n";
	} else if (fld.value.match(illegalChars)) {
        lbl.style.color = 'Red';
        error = "your email correctly\n";
    } else {
        lbl.style.color = 'Black';
    }
    return error;
}

function validatePhone(fld1,fld2,fld3,lbl) {
    var error = "";
	var fld = fld1.value + fld2.value + fld3.value;
	var stripped = fld.replace(/[\(\)\.\-\ ]/g, '');
	var alt="";
	if (lbl.id=="alternate_label") alt="alternate ";
	
	if (fld == "") {
        error = "your phone number\n";
        lbl.style.color = 'Red';
    //} else if (isNaN(parseInt(stripped))) {
	} else if (!isInteger(stripped)) {
        error = "your "+alt+"phone number correctly\n";
        lbl.style.color = 'Red';
	} else if (!(stripped.length == 10)) {
        error = "your "+alt+"phone number correctly\n";
        lbl.style.color = 'Red';
    } else {
		lbl.style.color = 'Black';
	}
    return error;
}

function validateService(fld) {
    var error = "";
    if (fld.value.length == 0) { 
        error = "Please select the service you need\n"
    } else {
    }
    return error;  
}

/* form functions */
function autoTab(field1, len, field2) {
	if (document.getElementById(field1).value.length == len) {
		if (document.getElementById(field2))
			document.getElementById(field2).focus();
		}
}

function disableSubmit(form) {
	var send_button;
	send_button = form.cmdSubmitRequest;
	send_button.style.visibility="hidden";
	return true;
}

function isInteger(s)
{   var i;
    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;
}
