function InitializeLeadForm() {
    $('#lead').find("input[type='text'],textarea").each(function(i) {
        $(this).focus(function() {
            $(this).removeClass('error');
        });
    });
}

function SubmitLead() {
    if ( !ValidateLeadForm() ) {
        return false;
    }
    
    var params = $("#lead").serialize();

    $('#leadform').html('<span style="color: white; font-size: 14pt">Please wait while we process your request...</span>');
    
    $.post('/ajax/submitlead.php', params, function(data) {
        $('#leadform').html(data);
    });
    
    return true;
}

function SubmitModalLead(vin) {
    if ( !ValidateLeadForm() ) {
        return false;
    }    
    
    var params = $("#lead").serialize();
    
        
    if ( typeof SellerContacted == 'function' ) {
        SellerContacted(vin); 
    }
    
	$('.cforms-bg').html('<span style="color: white; font-size: 14pt">Please wait while we process your request...</span>');
	
    $.post('/ajax/submitlead.php', params, function(data) {
        $('.cforms-bg').html(data);
    });

    return false
}

function ValidateLeadForm() {
    InitializeLeadForm();
    var result = true;
    var error_description = '';
    $('#lead').find("input[type='text'],textarea").each(function(i){    
        $(this).removeClass('error');
        if ( $(this).hasClass('required') ) {
            if ( $(this).val() == '' || $(this).val() == $(this).attr('title') ) {
                result = false;
                $(this).addClass('error');
                error_description += '<div class="error_message">' + $(this).attr('title') + ' is required.</div>';
            }
        }
        
        if ( $(this).hasClass('validemail') ) {
            if ( ! is_valid_email($(this).val()) ) {
                result = false;
                $(this).addClass('error');
                error_description += '<div class="error_message">' + $(this).attr('title') + ' requires a valid email address.</div>';
            }
        }
        
        if ( $(this).hasClass('zipcode') ) {
            if ( ! is_valid_zipcode($(this).val())) {
                result = false;
                $(this).addClass('error-zip');
                error_description += '<div class="error_message">' + $(this).attr('title') + ' requires a valid zipcode.</div>';
            }
        }
        
        if ( $(this).hasClass('validphone') ) {
            if ( ! is_valid_phonenumber($(this).val())) {
                result = false;
                $(this).addClass('error');
                error_description += '<div class="error_message">' + $(this).attr('title') + ' requires a valid 10 digit phone number.</div>';
            } else {
                var phonenumber = $(this).val();
                $(this).val(phonenumber.replace(/[^0-9]/g,''));                
            }
        } 
    });
    if ( $('#lead input[name="first_name"]').val().length < 3 ) {
        $('#lead input[name="first_name"]').addClass('error');
        error_description += '<div class="error_message">' + $('#lead input[name="first_name"]').attr('title') + ' is required to be at least 3 characters.</div>';
        result = false;
    }
	if ( $('#lead input[name="last_name"]').val().length < 3 ) {
        $('#lead input[name="last_name"]').addClass('error');
        error_description += '<div class="error_message">' + $('#lead input[name="last_name"]').attr('title') + ' is required to be at least 3 characters.</div>';
        result = false;
    }
    
    if ( !result ) {
        $('#lead').find('span.onerror').show();
        $('#lead div.error_description').html(error_description).show();
    }
    return result;
}

function is_valid_email(email) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   
   return reg.test(email);
}

function is_valid_zipcode(zipcode) {  
    var reg = /^([0-9]{5})$/;
    
    return reg.test(zipcode); 
}

function is_valid_phonenumber(phonenumber) {
    var trimmed = phonenumber.replace(/[^0-9]/g,'');
	var firstthree = phonenumber.substr(0,3);
	var firstnumber = phonenumber.substr(0,1);
	var secondthree = phonenumber.substr(3,3);
	var lasteight = phonenumber.substr(3,7);
	var completeflush = phonenumber.substr(0,10);
    if ( trimmed.length != 10 ) {
        return false;
	}
	if ( firstthree == '888' || firstthree == '887' || firstthree == '886' || firstthree == '883' || firstthree == '881' || firstthree == '877' || firstthree == '866' || firstthree == '800' || firstthree == '900' || firstthree == '555' ) {
		return false;
	}
	if ( secondthree == '555' ) {
		return false;
	}
	if ( lasteight == '8675309' ) {
		return false;
	}
	if ( firstnumber == '1' || firstnumber == '0' ) {
		return false;
	}
	if ( completeflush == '0000000000' || completeflush == '1111111111' || completeflush == '2222222222' || completeflush == '3333333333' || completeflush == '4444444444' || completeflush == '5555555555' || completeflush == '6666666666' || completeflush == '7777777777' || completeflush == '8888888888' || completeflush == '9999999999' ) {
		return false;
	}
	
	return true;
}