//
// esu-validate.js
// easy-sign-up
// License: GPLv2 or later
// Created by Rew Rixom on February 6, 2013.
// URL: http://greenvilleweb.us, http://greenvilleweb.com, http://beforesite.com
// Copyright 2013 Greenville Web. All rights reserved.
//
var esu_feedback = '';
var esu_required_input_fb = '';
var esu_required_email_fb = '';
var esu_required_phone_fb = '';
var esu_required_checkbox_fb = '';
var esu_required_textarea_fb = '';
function esu_validate(esu_form){
var esu_email_reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
var esu_phone_reg = /^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext|x|ext)\d{1,5}){0,1}$/;
var esu_required_input_reg = /\besu-required-input/;
var esu_required_email_reg = /\besu-required-email/;
var esu_required_phone_reg = /\besu-required-phone/;
var esu_required_checkbox_reg = /\besu-required-checkbox/;
var esu_required_textarea_reg = /\besu-required-textarea/;
if (typeof $ === 'undefined') { var $ = jQuery; }
$('input','#'+esu_form).add('textarea','#'+esu_form).each(function() {
var esu_this_placeholder = $(this).attr('placeholder');
if (esu_this_placeholder == undefined ) { esu_this_placeholder = $(this).prev('label').text(); };
var esu_thiselement = $(this);
var esu_thiselement_val = $(this).val();
var esu_li = esu_thiselement.parent();
$.each(this.attributes, function(i, esu_attrib){
var esu_name = esu_attrib.name;
var esu_value = esu_attrib.value;
if ( esu_name == 'type' && esu_value == 'hidden') { return; };
// text input
if (esu_value.match(esu_required_input_reg)) {
if (esu_thiselement_val.length == 0 || esu_thiselement_val==esu_this_placeholder){
esu_feedback += '
' + esu_this_placeholder + esu_required_txt + '';
esu_li.css(esu_err_colors);
}else{
esu_required_input_fb = '';
esu_li.css(esu_good_colors);
}
};
// email input
if (esu_value.match(esu_required_email_reg)) {
if (esu_thiselement_val.length == 0 || esu_thiselement_val==esu_this_placeholder){
esu_feedback += '' + esu_this_placeholder + esu_required_txt + '';
esu_li.css(esu_err_colors);
}else if (esu_thiselement_val.length !== 0 && esu_email_reg.test(esu_thiselement_val) ){
esu_li.css(esu_good_colors);
}else if( esu_thiselement_val.length !== 0 && !esu_email_reg.test(esu_thiselement_val) ){
esu_feedback += '' + esu_this_placeholder + esu_not_valid_txt + '';
esu_li.css(esu_err_colors);
}
};
// phone input
if (esu_value.match(esu_required_phone_reg)) {
if ( esu_thiselement_val.length == 0 || esu_thiselement_val==esu_this_placeholder ){
esu_feedback += '' + esu_this_placeholder + esu_required_txt + '';
esu_li.css(esu_err_colors);
}else if (esu_thiselement_val.length !== 0 && esu_phone_reg.test(esu_thiselement_val) ){
esu_li.css(esu_good_colors);
}else if (esu_thiselement_val.length !== 0 && !esu_phone_reg.test(esu_thiselement_val) ){
esu_feedback += '' + esu_this_placeholder + esu_not_valid_txt + '';
esu_li.css(esu_err_colors);
}
};
// textarea
if (esu_value.match(esu_required_textarea_reg)) {
if (esu_thiselement_val.length == 0 || esu_thiselement_val==esu_this_placeholder){
esu_feedback += '' + esu_this_placeholder + esu_required_txt + '';
esu_thiselement.parent('li').css(esu_err_colors);
}else{
esu_thiselement.parent('li').css(esu_good_colors);
}
};
// checkbox input
if (esu_value.match(esu_required_checkbox_reg)) {
if (!esu_thiselement.attr('checked')){
esu_feedback += '' + esu_this_placeholder + esu_required_txt + '';
esu_li.css(esu_err_colors);
}else{
esu_li.css(esu_good_colors);
}
};
});
});
if(esu_feedback != ''){
if (esu_show_bar==true) {
var esu_err_box = jQuery('#esu_err');
jQuery('#esu_err ul').html(esu_feedback);
esu_err_box.esuCSS();
esu_err_box.css('display', 'none');
esu_err_box.fadeIn('fast');
esu_err_box.click(function() {
esu_err_box.css('display', 'none');
});
};
esu_feedback = '';
return false;
}
}
(function($) { $('body').prepend(''); })(jQuery);
jQuery.fn.esuCSS = function () {
this.css(esu_err_colors);
this.css(esu_err_css);
return this;
}